@invergent/ui-sdk 0.0.0-stage → 2.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -2
- package/dist/accordion.cjs +97 -0
- package/dist/accordion.cjs.map +1 -0
- package/dist/accordion.d.cts +10 -0
- package/dist/accordion.d.ts +10 -0
- package/dist/accordion.js +92 -0
- package/dist/accordion.js.map +1 -0
- package/dist/alert.cjs +82 -0
- package/dist/alert.cjs.map +1 -0
- package/dist/alert.d.cts +14 -0
- package/dist/alert.d.ts +14 -0
- package/dist/alert.js +77 -0
- package/dist/alert.js.map +1 -0
- package/dist/avatar.cjs +110 -0
- package/dist/avatar.cjs.map +1 -0
- package/dist/avatar.d.cts +14 -0
- package/dist/avatar.d.ts +14 -0
- package/dist/avatar.js +103 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.cjs +47 -0
- package/dist/badge.cjs.map +1 -0
- package/dist/badge.d.cts +13 -0
- package/dist/badge.d.ts +13 -0
- package/dist/badge.js +44 -0
- package/dist/badge.js.map +1 -0
- package/dist/brand-beam.cjs +2303 -0
- package/dist/brand-beam.cjs.map +1 -0
- package/dist/brand-beam.d.cts +36 -0
- package/dist/brand-beam.d.ts +36 -0
- package/dist/brand-beam.js +2301 -0
- package/dist/brand-beam.js.map +1 -0
- package/dist/button.cjs +17 -0
- package/dist/button.cjs.map +1 -0
- package/dist/button.d.cts +14 -0
- package/dist/button.d.ts +14 -0
- package/dist/button.js +4 -0
- package/dist/button.js.map +1 -0
- package/dist/card.cjs +109 -0
- package/dist/card.cjs.map +1 -0
- package/dist/card.d.cts +14 -0
- package/dist/card.d.ts +14 -0
- package/dist/card.js +101 -0
- package/dist/card.js.map +1 -0
- package/dist/chart.cjs +275 -0
- package/dist/chart.cjs.map +1 -0
- package/dist/chart.d.cts +47 -0
- package/dist/chart.d.ts +47 -0
- package/dist/chart.js +247 -0
- package/dist/chart.js.map +1 -0
- package/dist/checkbox.cjs +41 -0
- package/dist/checkbox.cjs.map +1 -0
- package/dist/checkbox.d.cts +7 -0
- package/dist/checkbox.d.ts +7 -0
- package/dist/checkbox.js +39 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chip.cjs +92 -0
- package/dist/chip.cjs.map +1 -0
- package/dist/chip.d.cts +33 -0
- package/dist/chip.d.ts +33 -0
- package/dist/chip.js +86 -0
- package/dist/chip.js.map +1 -0
- package/dist/choice-card.cjs +127 -0
- package/dist/choice-card.cjs.map +1 -0
- package/dist/choice-card.d.cts +20 -0
- package/dist/choice-card.d.ts +20 -0
- package/dist/choice-card.js +124 -0
- package/dist/choice-card.js.map +1 -0
- package/dist/chunk-2UHRDVPT.cjs +183 -0
- package/dist/chunk-2UHRDVPT.cjs.map +1 -0
- package/dist/chunk-5CRE35VX.js +20 -0
- package/dist/chunk-5CRE35VX.js.map +1 -0
- package/dist/chunk-6ARYCL4L.cjs +30 -0
- package/dist/chunk-6ARYCL4L.cjs.map +1 -0
- package/dist/chunk-6JCVTRUK.js +21 -0
- package/dist/chunk-6JCVTRUK.js.map +1 -0
- package/dist/chunk-6YHDDRIM.cjs +13 -0
- package/dist/chunk-6YHDDRIM.cjs.map +1 -0
- package/dist/chunk-A44JJ6NH.js +58 -0
- package/dist/chunk-A44JJ6NH.js.map +1 -0
- package/dist/chunk-CPAFEXKR.js +63 -0
- package/dist/chunk-CPAFEXKR.js.map +1 -0
- package/dist/chunk-CTIEUG5L.js +28 -0
- package/dist/chunk-CTIEUG5L.js.map +1 -0
- package/dist/chunk-DSDDDYG3.cjs +60 -0
- package/dist/chunk-DSDDDYG3.cjs.map +1 -0
- package/dist/chunk-IB7LTHEQ.js +55 -0
- package/dist/chunk-IB7LTHEQ.js.map +1 -0
- package/dist/chunk-ID7MWMJO.cjs +162 -0
- package/dist/chunk-ID7MWMJO.cjs.map +1 -0
- package/dist/chunk-IVMZANP7.cjs +67 -0
- package/dist/chunk-IVMZANP7.cjs.map +1 -0
- package/dist/chunk-L73QIINW.js +157 -0
- package/dist/chunk-L73QIINW.js.map +1 -0
- package/dist/chunk-LZGII7SX.js +11 -0
- package/dist/chunk-LZGII7SX.js.map +1 -0
- package/dist/chunk-M677T75H.js +24 -0
- package/dist/chunk-M677T75H.js.map +1 -0
- package/dist/chunk-OAVCB3MR.cjs +26 -0
- package/dist/chunk-OAVCB3MR.cjs.map +1 -0
- package/dist/chunk-RVX6SN4U.cjs +23 -0
- package/dist/chunk-RVX6SN4U.cjs.map +1 -0
- package/dist/chunk-T74Z3WTK.js +151 -0
- package/dist/chunk-T74Z3WTK.js.map +1 -0
- package/dist/chunk-UOUXW63J.cjs +22 -0
- package/dist/chunk-UOUXW63J.cjs.map +1 -0
- package/dist/chunk-VBICNC43.cjs +61 -0
- package/dist/chunk-VBICNC43.cjs.map +1 -0
- package/dist/collapsible-header.cjs +66 -0
- package/dist/collapsible-header.cjs.map +1 -0
- package/dist/collapsible-header.d.cts +15 -0
- package/dist/collapsible-header.d.ts +15 -0
- package/dist/collapsible-header.js +63 -0
- package/dist/collapsible-header.js.map +1 -0
- package/dist/collapsible.cjs +38 -0
- package/dist/collapsible.cjs.map +1 -0
- package/dist/collapsible.d.cts +8 -0
- package/dist/collapsible.d.ts +8 -0
- package/dist/collapsible.js +34 -0
- package/dist/collapsible.js.map +1 -0
- package/dist/color-picker.cjs +60 -0
- package/dist/color-picker.cjs.map +1 -0
- package/dist/color-picker.d.cts +12 -0
- package/dist/color-picker.d.ts +12 -0
- package/dist/color-picker.js +57 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/confirm-dialog.cjs +72 -0
- package/dist/confirm-dialog.cjs.map +1 -0
- package/dist/confirm-dialog.d.cts +19 -0
- package/dist/confirm-dialog.d.ts +19 -0
- package/dist/confirm-dialog.js +70 -0
- package/dist/confirm-dialog.js.map +1 -0
- package/dist/control-styles.cjs +16 -0
- package/dist/control-styles.cjs.map +1 -0
- package/dist/control-styles.d.cts +7 -0
- package/dist/control-styles.d.ts +7 -0
- package/dist/control-styles.js +10 -0
- package/dist/control-styles.js.map +1 -0
- package/dist/dialog.cjs +50 -0
- package/dist/dialog.cjs.map +1 -0
- package/dist/dialog.d.cts +20 -0
- package/dist/dialog.d.ts +20 -0
- package/dist/dialog.js +5 -0
- package/dist/dialog.js.map +1 -0
- package/dist/dropdown-menu.cjs +265 -0
- package/dist/dropdown-menu.cjs.map +1 -0
- package/dist/dropdown-menu.d.cts +32 -0
- package/dist/dropdown-menu.d.ts +32 -0
- package/dist/dropdown-menu.js +249 -0
- package/dist/dropdown-menu.js.map +1 -0
- package/dist/empty-state.cjs +50 -0
- package/dist/empty-state.cjs.map +1 -0
- package/dist/empty-state.d.cts +23 -0
- package/dist/empty-state.d.ts +23 -0
- package/dist/empty-state.js +47 -0
- package/dist/empty-state.js.map +1 -0
- package/dist/field.cjs +221 -0
- package/dist/field.cjs.map +1 -0
- package/dist/field.d.cts +30 -0
- package/dist/field.d.ts +30 -0
- package/dist/field.js +210 -0
- package/dist/field.js.map +1 -0
- package/dist/input-group.cjs +148 -0
- package/dist/input-group.cjs.map +1 -0
- package/dist/input-group.d.cts +20 -0
- package/dist/input-group.d.ts +20 -0
- package/dist/input-group.js +141 -0
- package/dist/input-group.js.map +1 -0
- package/dist/input.cjs +13 -0
- package/dist/input.cjs.map +1 -0
- package/dist/input.d.cts +6 -0
- package/dist/input.d.ts +6 -0
- package/dist/input.js +4 -0
- package/dist/input.js.map +1 -0
- package/dist/label.cjs +13 -0
- package/dist/label.cjs.map +1 -0
- package/dist/label.d.cts +7 -0
- package/dist/label.d.ts +7 -0
- package/dist/label.js +4 -0
- package/dist/label.js.map +1 -0
- package/dist/lib/utils.cjs +12 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.d.cts +5 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.js +3 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/list-row.cjs +188 -0
- package/dist/list-row.cjs.map +1 -0
- package/dist/list-row.d.cts +51 -0
- package/dist/list-row.d.ts +51 -0
- package/dist/list-row.js +164 -0
- package/dist/list-row.js.map +1 -0
- package/dist/pill-tabs.cjs +109 -0
- package/dist/pill-tabs.cjs.map +1 -0
- package/dist/pill-tabs.d.cts +24 -0
- package/dist/pill-tabs.d.ts +24 -0
- package/dist/pill-tabs.js +107 -0
- package/dist/pill-tabs.js.map +1 -0
- package/dist/popover.cjs +88 -0
- package/dist/popover.cjs.map +1 -0
- package/dist/popover.d.cts +13 -0
- package/dist/popover.d.ts +13 -0
- package/dist/popover.js +80 -0
- package/dist/popover.js.map +1 -0
- package/dist/progress-bar.cjs +28 -0
- package/dist/progress-bar.cjs.map +1 -0
- package/dist/progress-bar.d.cts +11 -0
- package/dist/progress-bar.d.ts +11 -0
- package/dist/progress-bar.js +26 -0
- package/dist/progress-bar.js.map +1 -0
- package/dist/scroll-area.cjs +63 -0
- package/dist/scroll-area.cjs.map +1 -0
- package/dist/scroll-area.d.cts +8 -0
- package/dist/scroll-area.d.ts +8 -0
- package/dist/scroll-area.js +60 -0
- package/dist/scroll-area.js.map +1 -0
- package/dist/section-label.cjs +30 -0
- package/dist/section-label.cjs.map +1 -0
- package/dist/section-label.d.cts +13 -0
- package/dist/section-label.d.ts +13 -0
- package/dist/section-label.js +28 -0
- package/dist/section-label.js.map +1 -0
- package/dist/segmented-control.cjs +75 -0
- package/dist/segmented-control.cjs.map +1 -0
- package/dist/segmented-control.d.cts +26 -0
- package/dist/segmented-control.d.ts +26 -0
- package/dist/segmented-control.js +53 -0
- package/dist/segmented-control.js.map +1 -0
- package/dist/select.cjs +193 -0
- package/dist/select.cjs.map +1 -0
- package/dist/select.d.cts +18 -0
- package/dist/select.d.ts +18 -0
- package/dist/select.js +182 -0
- package/dist/select.js.map +1 -0
- package/dist/separator.cjs +13 -0
- package/dist/separator.cjs.map +1 -0
- package/dist/separator.d.cts +7 -0
- package/dist/separator.d.ts +7 -0
- package/dist/separator.js +4 -0
- package/dist/separator.js.map +1 -0
- package/dist/sidebar.cjs +29 -0
- package/dist/sidebar.cjs.map +1 -0
- package/dist/sidebar.d.cts +58 -0
- package/dist/sidebar.d.ts +58 -0
- package/dist/sidebar.js +4 -0
- package/dist/sidebar.js.map +1 -0
- package/dist/skeleton.cjs +19 -0
- package/dist/skeleton.cjs.map +1 -0
- package/dist/skeleton.d.cts +5 -0
- package/dist/skeleton.d.ts +5 -0
- package/dist/skeleton.js +17 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/sonner.cjs +40 -0
- package/dist/sonner.cjs.map +1 -0
- package/dist/sonner.d.cts +6 -0
- package/dist/sonner.d.ts +6 -0
- package/dist/sonner.js +38 -0
- package/dist/sonner.js.map +1 -0
- package/dist/sparkline.cjs +44 -0
- package/dist/sparkline.cjs.map +1 -0
- package/dist/sparkline.d.cts +12 -0
- package/dist/sparkline.d.ts +12 -0
- package/dist/sparkline.js +42 -0
- package/dist/sparkline.js.map +1 -0
- package/dist/spinner.cjs +13 -0
- package/dist/spinner.cjs.map +1 -0
- package/dist/spinner.d.cts +5 -0
- package/dist/spinner.d.ts +5 -0
- package/dist/spinner.js +11 -0
- package/dist/spinner.js.map +1 -0
- package/dist/stat-card.cjs +65 -0
- package/dist/stat-card.cjs.map +1 -0
- package/dist/stat-card.d.cts +22 -0
- package/dist/stat-card.d.ts +22 -0
- package/dist/stat-card.js +61 -0
- package/dist/stat-card.js.map +1 -0
- package/dist/status-dot.cjs +32 -0
- package/dist/status-dot.cjs.map +1 -0
- package/dist/status-dot.d.cts +11 -0
- package/dist/status-dot.d.ts +11 -0
- package/dist/status-dot.js +29 -0
- package/dist/status-dot.js.map +1 -0
- package/dist/switch.cjs +38 -0
- package/dist/switch.cjs.map +1 -0
- package/dist/switch.d.cts +9 -0
- package/dist/switch.d.ts +9 -0
- package/dist/switch.js +36 -0
- package/dist/switch.js.map +1 -0
- package/dist/table.cjs +118 -0
- package/dist/table.cjs.map +1 -0
- package/dist/table.d.cts +13 -0
- package/dist/table.d.ts +13 -0
- package/dist/table.js +109 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.cjs +124 -0
- package/dist/tabs.cjs.map +1 -0
- package/dist/tabs.d.cts +15 -0
- package/dist/tabs.d.ts +15 -0
- package/dist/tabs.js +118 -0
- package/dist/tabs.js.map +1 -0
- package/dist/text-link.cjs +51 -0
- package/dist/text-link.cjs.map +1 -0
- package/dist/text-link.d.cts +15 -0
- package/dist/text-link.d.ts +15 -0
- package/dist/text-link.js +48 -0
- package/dist/text-link.js.map +1 -0
- package/dist/textarea.cjs +13 -0
- package/dist/textarea.cjs.map +1 -0
- package/dist/textarea.d.cts +6 -0
- package/dist/textarea.d.ts +6 -0
- package/dist/textarea.js +4 -0
- package/dist/textarea.js.map +1 -0
- package/dist/theme.css +109 -0
- package/dist/toggle-group.cjs +155 -0
- package/dist/toggle-group.cjs.map +1 -0
- package/dist/toggle-group.d.cts +31 -0
- package/dist/toggle-group.d.ts +31 -0
- package/dist/toggle-group.js +130 -0
- package/dist/toggle-group.js.map +1 -0
- package/dist/toggle.cjs +21 -0
- package/dist/toggle.cjs.map +1 -0
- package/dist/toggle.d.cts +23 -0
- package/dist/toggle.d.ts +23 -0
- package/dist/toggle.js +4 -0
- package/dist/toggle.js.map +1 -0
- package/dist/tokens.css +77 -0
- package/dist/tooltip.cjs +25 -0
- package/dist/tooltip.cjs.map +1 -0
- package/dist/tooltip.d.cts +10 -0
- package/dist/tooltip.d.ts +10 -0
- package/dist/tooltip.js +4 -0
- package/dist/tooltip.js.map +1 -0
- package/package.json +60 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/border-beam/styles.ts","../src/border-beam/pulseDriver.ts","../src/border-beam/BorderBeam.tsx","../src/brand-beam.tsx"],"names":["BorderBeam","child","jsx"],"mappings":"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","file":"brand-beam.js","sourcesContent":["// Vendored from border-beam v1.3.0 (https://github.com/Jakubantalik/border-beam)\n// MIT License, Copyright (c) Jakub Antalik — see LICENSE-border-beam.md\n// Local modifications: 'brand' amber color variant; theme auto-detection\n// extended to honor an ancestor .dark/.light class or data-theme attribute.\n\nimport type { SizeConfig, ThemeColors, BorderBeamColorVariant, BorderBeamSize } from './types';\n\n/**\n * Size presets for border radius and dimensions\n */\nexport const sizePresets: Record<BorderBeamSize, SizeConfig> = {\n sm: {\n borderRadius: 32,\n borderWidth: 1,\n width: 70,\n height: 36,\n },\n md: {\n borderRadius: 16,\n borderWidth: 1,\n },\n line: {\n borderRadius: 16,\n borderWidth: 1,\n },\n 'pulse-outside': {\n borderRadius: 16,\n borderWidth: 1,\n },\n 'pulse-inner': {\n borderRadius: 16,\n borderWidth: 1,\n },\n};\n\n/**\n * Per-size theme presets matching the tuned v5 control panel defaults\n */\nexport const sizeThemePresets: Record<BorderBeamSize, Record<'dark' | 'light', ThemeColors>> = {\n sm: {\n dark: {\n strokeOpacity: 0.46,\n innerOpacity: 0.24,\n bloomOpacity: 0.38,\n innerShadow: 'rgba(255, 255, 255, 0.3)',\n saturation: 1.2,\n },\n light: {\n strokeOpacity: 0.12,\n innerOpacity: 0.3,\n bloomOpacity: 0.16,\n innerShadow: 'rgba(0, 0, 0, 0.14)',\n saturation: 1.8,\n },\n },\n md: {\n dark: {\n strokeOpacity: 0.26,\n innerOpacity: 0.42,\n bloomOpacity: 0.24,\n innerShadow: 'rgba(255, 255, 255, 0.27)',\n saturation: 1.2,\n },\n light: {\n strokeOpacity: 0.12,\n innerOpacity: 0.26,\n bloomOpacity: 0.34,\n innerShadow: 'rgba(0, 0, 0, 0.14)',\n saturation: 1.5,\n },\n },\n line: {\n dark: {\n strokeOpacity: 1.14,\n innerOpacity: 0.7,\n bloomOpacity: 0.8,\n innerShadow: 'rgba(255, 255, 255, 0.1)',\n saturation: 1.2,\n },\n light: {\n strokeOpacity: 0.16,\n innerOpacity: 0.32,\n bloomOpacity: 0.3,\n innerShadow: 'rgba(0, 0, 0, 0.14)',\n saturation: 1.95,\n },\n },\n // Pulse Outside — outward-blooming breathe (ported from v5 \"Breathe Outside Uncropped\" / c6)\n 'pulse-outside': {\n dark: {\n strokeOpacity: 0.94,\n innerOpacity: 0.34,\n bloomOpacity: 0.3,\n innerShadow: 'transparent',\n saturation: 1.2,\n brightness: 1.9,\n // v5 Card 5 frames the card with a single 1px hairline (its box-shadow at\n // 0.3). Wrapped components here already supply their own ~equivalent 1px\n // border, so the beam must NOT add a second hairline on top or the edge\n // reads brighter than v5. Kept at 0 to match v5's single-hairline look.\n hairlineOpacity: 0,\n },\n light: {\n strokeOpacity: 1.96,\n innerOpacity: 1.04,\n bloomOpacity: 0.42,\n innerShadow: 'transparent',\n saturation: 0.6,\n brightness: 1.7,\n hairlineOpacity: 0,\n },\n },\n // Pulse Inner — contained breathe (ported from v5 \"Breathe\" / c4)\n 'pulse-inner': {\n dark: {\n strokeOpacity: 1.54,\n innerOpacity: 0.44,\n bloomOpacity: 0.66,\n innerShadow: 'transparent',\n saturation: 1.2,\n brightness: 0.75,\n },\n light: {\n strokeOpacity: 0.32,\n innerOpacity: 0.4,\n bloomOpacity: 0.8,\n innerShadow: 'transparent',\n saturation: 0.75,\n brightness: 1.3,\n },\n },\n};\n\n/**\n * @deprecated Use `sizeThemePresets` for per-size theme values.\n * Retained for backward compatibility — maps to `md` size presets.\n */\nexport const themeColors: Record<'dark' | 'light', ThemeColors> = {\n dark: { ...sizeThemePresets.md.dark },\n light: { ...sizeThemePresets.md.light },\n};\n\n/**\n * Color palettes for each color variant\n */\nconst colorPalettes = {\n colorful: {\n border: [\n { color: 'rgb(255, 50, 100)', pos: '33% -7.4%', size: '70px 40px' },\n { color: 'rgb(40, 140, 255)', pos: '12% -5%', size: '60px 35px' },\n { color: 'rgb(50, 200, 80)', pos: '2.1% 68.3%', size: '40px 70px' },\n { color: 'rgb(30, 185, 170)', pos: '2.1% 68.3%', size: '20px 35px' },\n { color: 'rgb(100, 70, 255)', pos: '74.4% 100%', size: '180px 32px' },\n { color: 'rgb(40, 140, 255)', pos: '55% 100%', size: '85px 26px' },\n { color: 'rgb(255, 120, 40)', pos: '93.9% 0%', size: '74px 32px' },\n { color: 'rgb(240, 50, 180)', pos: '100% 27.1%', size: '26px 42px' },\n { color: 'rgb(180, 40, 240)', pos: '100% 27.1%', size: '52px 48px' },\n ],\n spike: { primary: 'rgb(255, 60, 80)', secondary: 'rgba(40, 190, 180, 0.98)' },\n spikeLt: { primary: 'rgb(200, 30, 60)', secondary: 'rgb(20, 150, 140)' },\n },\n mono: {\n border: [\n { color: 'rgb(180, 180, 180)', pos: '33% -7.4%', size: '70px 40px' },\n { color: 'rgb(140, 140, 140)', pos: '12% -5%', size: '60px 35px' },\n { color: 'rgb(160, 160, 160)', pos: '2.1% 68.3%', size: '40px 70px' },\n { color: 'rgb(130, 130, 130)', pos: '2.1% 68.3%', size: '20px 35px' },\n { color: 'rgb(170, 170, 170)', pos: '74.4% 100%', size: '180px 32px' },\n { color: 'rgb(150, 150, 150)', pos: '55% 100%', size: '85px 26px' },\n { color: 'rgb(190, 190, 190)', pos: '93.9% 0%', size: '74px 32px' },\n { color: 'rgb(145, 145, 145)', pos: '100% 27.1%', size: '26px 42px' },\n { color: 'rgb(165, 165, 165)', pos: '100% 27.1%', size: '52px 48px' },\n ],\n spike: { primary: 'rgb(200, 200, 200)', secondary: 'rgb(170, 170, 170)' },\n spikeLt: { primary: 'rgb(80, 80, 80)', secondary: 'rgb(120, 120, 120)' },\n },\n ocean: {\n border: [\n { color: 'rgb(100, 80, 220)', pos: '33% -7.4%', size: '70px 40px' },\n { color: 'rgb(60, 120, 255)', pos: '12% -5%', size: '60px 35px' },\n { color: 'rgb(80, 100, 200)', pos: '2.1% 68.3%', size: '40px 70px' },\n { color: 'rgb(50, 140, 220)', pos: '2.1% 68.3%', size: '20px 35px' },\n { color: 'rgb(120, 80, 255)', pos: '74.4% 100%', size: '180px 32px' },\n { color: 'rgb(70, 130, 255)', pos: '55% 100%', size: '85px 26px' },\n { color: 'rgb(140, 100, 240)', pos: '93.9% 0%', size: '74px 32px' },\n { color: 'rgb(90, 110, 230)', pos: '100% 27.1%', size: '26px 42px' },\n { color: 'rgb(130, 70, 255)', pos: '100% 27.1%', size: '52px 48px' },\n ],\n spike: { primary: 'rgb(100, 120, 255)', secondary: 'rgba(130, 100, 220, 0.98)' },\n spikeLt: { primary: 'rgb(60, 60, 180)', secondary: 'rgb(80, 100, 200)' },\n },\n sunset: {\n border: [\n { color: 'rgb(255, 80, 50)', pos: '33% -7.4%', size: '70px 40px' },\n { color: 'rgb(255, 160, 40)', pos: '12% -5%', size: '60px 35px' },\n { color: 'rgb(255, 120, 60)', pos: '2.1% 68.3%', size: '40px 70px' },\n { color: 'rgb(255, 200, 50)', pos: '2.1% 68.3%', size: '20px 35px' },\n { color: 'rgb(255, 100, 80)', pos: '74.4% 100%', size: '180px 32px' },\n { color: 'rgb(255, 180, 60)', pos: '55% 100%', size: '85px 26px' },\n { color: 'rgb(255, 60, 60)', pos: '93.9% 0%', size: '74px 32px' },\n { color: 'rgb(255, 140, 50)', pos: '100% 27.1%', size: '26px 42px' },\n { color: 'rgb(255, 90, 70)', pos: '100% 27.1%', size: '52px 48px' },\n ],\n spike: { primary: 'rgb(255, 140, 80)', secondary: 'rgba(255, 100, 60, 0.98)' },\n spikeLt: { primary: 'rgb(200, 80, 40)', secondary: 'rgb(220, 120, 30)' },\n },\n brand: {\n border: [\n { color: 'rgb(217, 119, 6)', pos: '33% -7.4%', size: '70px 40px' },\n { color: 'rgb(245, 158, 11)', pos: '12% -5%', size: '60px 35px' },\n { color: 'rgb(234, 138, 9)', pos: '2.1% 68.3%', size: '40px 70px' },\n { color: 'rgb(252, 211, 77)', pos: '2.1% 68.3%', size: '20px 35px' },\n { color: 'rgb(245, 158, 11)', pos: '74.4% 100%', size: '180px 32px' },\n { color: 'rgb(251, 191, 36)', pos: '55% 100%', size: '85px 26px' },\n { color: 'rgb(217, 119, 6)', pos: '93.9% 0%', size: '74px 32px' },\n { color: 'rgb(251, 191, 36)', pos: '100% 27.1%', size: '26px 42px' },\n { color: 'rgb(245, 158, 11)', pos: '100% 27.1%', size: '52px 48px' },\n ],\n spike: { primary: 'rgb(251, 191, 36)', secondary: 'rgba(245, 158, 11, 0.98)' },\n spikeLt: { primary: 'rgb(180, 83, 9)', secondary: 'rgb(202, 138, 4)' },\n },\n};\n\n/**\n * Small size color palettes (compact gradients for button-sized elements)\n */\nconst smallColorPalettes = {\n colorful: {\n border: [\n { color: 'rgb(50, 200, 80)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgb(30, 185, 170)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgb(255, 120, 40)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgb(100, 70, 255)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgb(240, 50, 180)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgb(180, 40, 240)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgb(40, 140, 255)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgb(255, 50, 100)', pos: '100% 27%', size: '11px 12px' },\n ],\n inner: [\n { color: 'rgba(50, 200, 80, 0.5)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgba(30, 185, 170, 0.45)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgba(255, 120, 40, 0.35)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgba(100, 70, 255, 0.35)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgba(240, 50, 180, 0.3)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgba(180, 40, 240, 0.4)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgba(40, 140, 255, 0.3)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgba(255, 50, 100, 0.3)', pos: '100% 27%', size: '11px 12px' },\n ],\n },\n mono: {\n border: [\n { color: 'rgb(160, 160, 160)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgb(140, 140, 140)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgb(180, 180, 180)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgb(150, 150, 150)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgb(170, 170, 170)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgb(155, 155, 155)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgb(145, 145, 145)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgb(165, 165, 165)', pos: '100% 27%', size: '11px 12px' },\n ],\n inner: [\n { color: 'rgba(160, 160, 160, 0.25)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgba(140, 140, 140, 0.22)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgba(180, 180, 180, 0.17)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgba(150, 150, 150, 0.17)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgba(170, 170, 170, 0.15)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgba(155, 155, 155, 0.20)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgba(145, 145, 145, 0.15)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgba(165, 165, 165, 0.15)', pos: '100% 27%', size: '11px 12px' },\n ],\n },\n ocean: {\n border: [\n { color: 'rgb(60, 140, 200)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgb(50, 120, 180)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgb(100, 80, 220)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgb(80, 100, 255)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgb(120, 70, 240)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgb(90, 80, 220)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgb(70, 110, 255)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgb(110, 90, 230)', pos: '100% 27%', size: '11px 12px' },\n ],\n inner: [\n { color: 'rgba(60, 140, 200, 0.5)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgba(50, 120, 180, 0.45)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgba(100, 80, 220, 0.35)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgba(80, 100, 255, 0.35)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgba(120, 70, 240, 0.3)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgba(90, 80, 220, 0.4)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgba(70, 110, 255, 0.3)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgba(110, 90, 230, 0.3)', pos: '100% 27%', size: '11px 12px' },\n ],\n },\n sunset: {\n border: [\n { color: 'rgb(255, 180, 50)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgb(255, 150, 40)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgb(255, 80, 60)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgb(255, 100, 80)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgb(255, 60, 80)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgb(255, 120, 60)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgb(255, 200, 50)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgb(255, 90, 70)', pos: '100% 27%', size: '11px 12px' },\n ],\n inner: [\n { color: 'rgba(255, 180, 50, 0.5)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgba(255, 150, 40, 0.45)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgba(255, 80, 60, 0.35)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgba(255, 100, 80, 0.35)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgba(255, 60, 80, 0.3)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgba(255, 120, 60, 0.4)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgba(255, 200, 50, 0.3)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgba(255, 90, 70, 0.3)', pos: '100% 27%', size: '11px 12px' },\n ],\n },\n brand: {\n border: [\n { color: 'rgb(251, 191, 36)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgb(245, 158, 11)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgb(217, 119, 6)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgb(245, 158, 11)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgb(217, 119, 6)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgb(245, 158, 11)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgb(252, 211, 77)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgb(251, 191, 36)', pos: '100% 27%', size: '11px 12px' },\n ],\n inner: [\n { color: 'rgba(251, 191, 36, 0.5)', pos: '2% 68%', size: '9px 18px' },\n { color: 'rgba(245, 158, 11, 0.45)', pos: '2% 68%', size: '4px 8px' },\n { color: 'rgba(217, 119, 6, 0.35)', pos: '72% -3%', size: '59px 9px' },\n { color: 'rgba(245, 158, 11, 0.35)', pos: '74% 100%', size: '42px 7px' },\n { color: 'rgba(217, 119, 6, 0.3)', pos: '100% 27%', size: '10px 17px' },\n { color: 'rgba(245, 158, 11, 0.4)', pos: '100% 27%', size: '10px 18px' },\n { color: 'rgba(252, 211, 77, 0.3)', pos: '100% 27%', size: '5px 10px' },\n { color: 'rgba(251, 191, 36, 0.3)', pos: '100% 27%', size: '11px 12px' },\n ],\n },\n};\n\nfunction getSmallColorGradients(colorVariant: BorderBeamColorVariant): string {\n const palette = smallColorPalettes[colorVariant];\n return palette.border\n .map(c => `radial-gradient(ellipse ${c.size} at ${c.pos}, ${c.color}, transparent)`)\n .join(',\\n ');\n}\n\nfunction getSmallInnerGradients(colorVariant: BorderBeamColorVariant): string {\n const palette = smallColorPalettes[colorVariant];\n return palette.inner\n .map(c => `radial-gradient(ellipse ${c.size} at ${c.pos}, ${c.color}, transparent)`)\n .join(',\\n ');\n}\n\nfunction getColorGradients(colorVariant: BorderBeamColorVariant): string {\n const palette = colorPalettes[colorVariant];\n return palette.border\n .map(c => `radial-gradient(ellipse ${c.size} at ${c.pos}, ${c.color}, transparent)`)\n .join(',\\n ');\n}\n\nfunction getInnerGradients(colorVariant: BorderBeamColorVariant): string {\n const palette = colorPalettes[colorVariant];\n // Mono variant gets 50% lower opacity\n const baseOpacity = colorVariant === 'mono' ? 0.225 : 0.45;\n return palette.border\n .map(c => {\n const rgba = c.color.replace('rgb(', 'rgba(').replace(')', `, ${baseOpacity})`);\n const smallerSize = c.size.split(' ').map(s => {\n const val = parseInt(s);\n return `${Math.round(val * 0.9)}px`;\n }).join(' ');\n return `radial-gradient(ellipse ${smallerSize} at ${c.pos}, ${rgba}, transparent)`;\n })\n .join(',\\n ');\n}\n\nfunction getSpikeColors(colorVariant: BorderBeamColorVariant, isDark: boolean) {\n const palette = colorPalettes[colorVariant];\n return isDark ? palette.spike : palette.spikeLt;\n}\n\nconst lineColorPalettes = {\n colorful: {\n dark: [\n { color: 'rgb(255, 50, 100)', sizeW: 36, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(40, 180, 220)', sizeW: 30, sizeH: 32, offsetX: 39, offsetY: 0 },\n { color: 'rgb(50, 200, 80)', sizeW: 33, sizeH: 28, offsetX: -36, offsetY: 2 },\n { color: 'rgb(180, 40, 240)', sizeW: 29, sizeH: 34, offsetX: -54, offsetY: 0 },\n { color: 'rgb(255, 160, 30)', sizeW: 27, sizeH: 30, offsetX: 51, offsetY: -1 },\n { color: 'rgb(100, 70, 255)', sizeW: 36, sizeH: 24, offsetX: 21, offsetY: 1 },\n { color: 'rgb(40, 140, 255)', sizeW: 30, sizeH: 22, offsetX: -21, offsetY: 0 },\n { color: 'rgb(240, 50, 180)', sizeW: 25, sizeH: 28, offsetX: 66, offsetY: 1 },\n { color: 'rgb(30, 185, 170)', sizeW: 23, sizeH: 30, offsetX: -66, offsetY: -1 },\n ],\n light: [\n { color: 'rgb(255, 50, 100)', sizeW: 45, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(40, 140, 255)', sizeW: 35, sizeH: 32, offsetX: 65, offsetY: 0 },\n { color: 'rgb(50, 200, 80)', sizeW: 40, sizeH: 28, offsetX: -60, offsetY: 2 },\n { color: 'rgb(180, 40, 240)', sizeW: 35, sizeH: 34, offsetX: -90, offsetY: 0 },\n { color: 'rgb(30, 185, 170)', sizeW: 38, sizeH: 30, offsetX: 85, offsetY: -1 },\n { color: 'rgb(100, 70, 255)', sizeW: 50, sizeH: 24, offsetX: 35, offsetY: 1 },\n { color: 'rgb(40, 140, 255)', sizeW: 40, sizeH: 22, offsetX: -35, offsetY: 0 },\n { color: 'rgb(255, 120, 40)', sizeW: 35, sizeH: 28, offsetX: 110, offsetY: 1 },\n { color: 'rgb(240, 50, 180)', sizeW: 30, sizeH: 30, offsetX: -110, offsetY: -1 },\n ],\n },\n mono: {\n dark: [\n { color: 'rgb(200, 200, 200)', sizeW: 36, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(170, 170, 170)', sizeW: 30, sizeH: 32, offsetX: 39, offsetY: 0 },\n { color: 'rgb(155, 155, 155)', sizeW: 33, sizeH: 28, offsetX: -36, offsetY: 2 },\n { color: 'rgb(185, 185, 185)', sizeW: 29, sizeH: 34, offsetX: -54, offsetY: 0 },\n { color: 'rgb(165, 165, 165)', sizeW: 27, sizeH: 30, offsetX: 51, offsetY: -1 },\n { color: 'rgb(180, 180, 180)', sizeW: 36, sizeH: 24, offsetX: 21, offsetY: 1 },\n { color: 'rgb(160, 160, 160)', sizeW: 30, sizeH: 22, offsetX: -21, offsetY: 0 },\n { color: 'rgb(175, 175, 175)', sizeW: 25, sizeH: 28, offsetX: 66, offsetY: 1 },\n { color: 'rgb(190, 190, 190)', sizeW: 23, sizeH: 30, offsetX: -66, offsetY: -1 },\n ],\n light: [\n { color: 'rgb(100, 100, 100)', sizeW: 45, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(80, 80, 80)', sizeW: 35, sizeH: 32, offsetX: 65, offsetY: 0 },\n { color: 'rgb(90, 90, 90)', sizeW: 40, sizeH: 28, offsetX: -60, offsetY: 2 },\n { color: 'rgb(70, 70, 70)', sizeW: 35, sizeH: 34, offsetX: -90, offsetY: 0 },\n { color: 'rgb(85, 85, 85)', sizeW: 38, sizeH: 30, offsetX: 85, offsetY: -1 },\n { color: 'rgb(95, 95, 95)', sizeW: 50, sizeH: 24, offsetX: 35, offsetY: 1 },\n { color: 'rgb(75, 75, 75)', sizeW: 40, sizeH: 22, offsetX: -35, offsetY: 0 },\n { color: 'rgb(105, 105, 105)', sizeW: 35, sizeH: 28, offsetX: 110, offsetY: 1 },\n { color: 'rgb(65, 65, 65)', sizeW: 30, sizeH: 30, offsetX: -110, offsetY: -1 },\n ],\n },\n ocean: {\n dark: [\n { color: 'rgb(100, 80, 220)', sizeW: 36, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(60, 120, 255)', sizeW: 30, sizeH: 32, offsetX: 39, offsetY: 0 },\n { color: 'rgb(80, 100, 200)', sizeW: 33, sizeH: 28, offsetX: -36, offsetY: 2 },\n { color: 'rgb(130, 70, 255)', sizeW: 29, sizeH: 34, offsetX: -54, offsetY: 0 },\n { color: 'rgb(70, 130, 255)', sizeW: 27, sizeH: 30, offsetX: 51, offsetY: -1 },\n { color: 'rgb(120, 80, 255)', sizeW: 36, sizeH: 24, offsetX: 21, offsetY: 1 },\n { color: 'rgb(90, 110, 230)', sizeW: 30, sizeH: 22, offsetX: -21, offsetY: 0 },\n { color: 'rgb(110, 90, 240)', sizeW: 25, sizeH: 28, offsetX: 66, offsetY: 1 },\n { color: 'rgb(140, 100, 255)', sizeW: 23, sizeH: 30, offsetX: -66, offsetY: -1 },\n ],\n light: [\n { color: 'rgb(80, 60, 200)', sizeW: 45, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(50, 100, 220)', sizeW: 35, sizeH: 32, offsetX: 65, offsetY: 0 },\n { color: 'rgb(70, 90, 190)', sizeW: 40, sizeH: 28, offsetX: -60, offsetY: 2 },\n { color: 'rgb(110, 60, 220)', sizeW: 35, sizeH: 34, offsetX: -90, offsetY: 0 },\n { color: 'rgb(60, 110, 230)', sizeW: 38, sizeH: 30, offsetX: 85, offsetY: -1 },\n { color: 'rgb(100, 70, 240)', sizeW: 50, sizeH: 24, offsetX: 35, offsetY: 1 },\n { color: 'rgb(80, 100, 210)', sizeW: 40, sizeH: 22, offsetX: -35, offsetY: 0 },\n { color: 'rgb(90, 80, 225)', sizeW: 35, sizeH: 28, offsetX: 110, offsetY: 1 },\n { color: 'rgb(120, 90, 245)', sizeW: 30, sizeH: 30, offsetX: -110, offsetY: -1 },\n ],\n },\n sunset: {\n dark: [\n { color: 'rgb(255, 100, 60)', sizeW: 36, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(255, 180, 50)', sizeW: 30, sizeH: 32, offsetX: 39, offsetY: 0 },\n { color: 'rgb(255, 140, 70)', sizeW: 33, sizeH: 28, offsetX: -36, offsetY: 2 },\n { color: 'rgb(255, 80, 80)', sizeW: 29, sizeH: 34, offsetX: -54, offsetY: 0 },\n { color: 'rgb(255, 200, 60)', sizeW: 27, sizeH: 30, offsetX: 51, offsetY: -1 },\n { color: 'rgb(255, 120, 50)', sizeW: 36, sizeH: 24, offsetX: 21, offsetY: 1 },\n { color: 'rgb(255, 160, 80)', sizeW: 30, sizeH: 22, offsetX: -21, offsetY: 0 },\n { color: 'rgb(255, 90, 60)', sizeW: 25, sizeH: 28, offsetX: 66, offsetY: 1 },\n { color: 'rgb(255, 70, 70)', sizeW: 23, sizeH: 30, offsetX: -66, offsetY: -1 },\n ],\n light: [\n { color: 'rgb(220, 80, 40)', sizeW: 45, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(230, 150, 30)', sizeW: 35, sizeH: 32, offsetX: 65, offsetY: 0 },\n { color: 'rgb(210, 110, 50)', sizeW: 40, sizeH: 28, offsetX: -60, offsetY: 2 },\n { color: 'rgb(200, 60, 60)', sizeW: 35, sizeH: 34, offsetX: -90, offsetY: 0 },\n { color: 'rgb(220, 170, 40)', sizeW: 38, sizeH: 30, offsetX: 85, offsetY: -1 },\n { color: 'rgb(210, 100, 30)', sizeW: 50, sizeH: 24, offsetX: 35, offsetY: 1 },\n { color: 'rgb(230, 130, 60)', sizeW: 40, sizeH: 22, offsetX: -35, offsetY: 0 },\n { color: 'rgb(190, 70, 50)', sizeW: 35, sizeH: 28, offsetX: 110, offsetY: 1 },\n { color: 'rgb(180, 50, 50)', sizeW: 30, sizeH: 30, offsetX: -110, offsetY: -1 },\n ],\n },\n brand: {\n dark: [\n { color: 'rgb(245, 158, 11)', sizeW: 36, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(251, 191, 36)', sizeW: 30, sizeH: 32, offsetX: 39, offsetY: 0 },\n { color: 'rgb(245, 158, 11)', sizeW: 33, sizeH: 28, offsetX: -36, offsetY: 2 },\n { color: 'rgb(217, 119, 6)', sizeW: 29, sizeH: 34, offsetX: -54, offsetY: 0 },\n { color: 'rgb(252, 211, 77)', sizeW: 27, sizeH: 30, offsetX: 51, offsetY: -1 },\n { color: 'rgb(234, 138, 9)', sizeW: 36, sizeH: 24, offsetX: 21, offsetY: 1 },\n { color: 'rgb(251, 191, 36)', sizeW: 30, sizeH: 22, offsetX: -21, offsetY: 0 },\n { color: 'rgb(217, 119, 6)', sizeW: 25, sizeH: 28, offsetX: 66, offsetY: 1 },\n { color: 'rgb(245, 158, 11)', sizeW: 23, sizeH: 30, offsetX: -66, offsetY: -1 },\n ],\n light: [\n { color: 'rgb(180, 83, 9)', sizeW: 45, sizeH: 36, offsetX: 0, offsetY: 2 },\n { color: 'rgb(202, 138, 4)', sizeW: 35, sizeH: 32, offsetX: 65, offsetY: 0 },\n { color: 'rgb(180, 83, 9)', sizeW: 40, sizeH: 28, offsetX: -60, offsetY: 2 },\n { color: 'rgb(146, 64, 14)', sizeW: 35, sizeH: 34, offsetX: -90, offsetY: 0 },\n { color: 'rgb(202, 138, 4)', sizeW: 38, sizeH: 30, offsetX: 85, offsetY: -1 },\n { color: 'rgb(161, 98, 7)', sizeW: 50, sizeH: 24, offsetX: 35, offsetY: 1 },\n { color: 'rgb(202, 138, 4)', sizeW: 40, sizeH: 22, offsetX: -35, offsetY: 0 },\n { color: 'rgb(146, 64, 14)', sizeW: 35, sizeH: 28, offsetX: 110, offsetY: 1 },\n { color: 'rgb(180, 83, 9)', sizeW: 30, sizeH: 30, offsetX: -110, offsetY: -1 },\n ],\n },\n};\n\nfunction getLineColorGradients(colorVariant: BorderBeamColorVariant, isDark: boolean, id: string): string {\n const palette = lineColorPalettes[colorVariant][isDark ? 'dark' : 'light'];\n return palette\n .map(c => {\n const offsetXStr = c.offsetX === 0 ? '' : (c.offsetX > 0 ? ` + ${c.offsetX}px` : ` - ${Math.abs(c.offsetX)}px`);\n const offsetYStr = c.offsetY === 0 ? '' : (c.offsetY > 0 ? ` + ${c.offsetY}px` : ` - ${Math.abs(c.offsetY)}px`);\n return `radial-gradient(ellipse calc(${c.sizeW}px * var(--beam-w-${id})) calc(${c.sizeH}px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%${offsetXStr}) calc(100%${offsetYStr}), ${c.color}, transparent)`;\n })\n .join(',\\n ');\n}\n\n// Inner gradient data matching v5.css exactly\nconst lineInnerGradientData = {\n colorful: [\n { color: 'rgba(255, 50, 100, 0.48)', sizeW: 33, sizeH: 30, offsetX: 0, offsetY: 0 },\n { color: 'rgba(40, 180, 220, 0.42)', sizeW: 24, sizeH: 26, offsetX: 39, offsetY: -3 },\n { color: 'rgba(50, 200, 80, 0.48)', sizeW: 27, sizeH: 24, offsetX: -36, offsetY: 0 },\n { color: 'rgba(180, 40, 240, 0.42)', sizeW: 23, sizeH: 28, offsetX: -54, offsetY: -2 },\n { color: 'rgba(255, 160, 30, 0.50)', sizeW: 24, sizeH: 24, offsetX: 51, offsetY: -1 },\n { color: 'rgba(100, 70, 255, 0.45)', sizeW: 30, sizeH: 20, offsetX: 21, offsetY: 0 },\n { color: 'rgba(40, 140, 255, 0.40)', sizeW: 25, sizeH: 18, offsetX: -21, offsetY: -2 },\n { color: 'rgba(240, 50, 180, 0.45)', sizeW: 21, sizeH: 24, offsetX: 66, offsetY: 0 },\n { color: 'rgba(30, 185, 170, 0.52)', sizeW: 18, sizeH: 26, offsetX: -66, offsetY: -1 },\n ],\n mono: [\n { color: 'rgba(200, 200, 200, 0.48)', sizeW: 33, sizeH: 30, offsetX: 0, offsetY: 0 },\n { color: 'rgba(170, 170, 170, 0.42)', sizeW: 24, sizeH: 26, offsetX: 39, offsetY: -3 },\n { color: 'rgba(155, 155, 155, 0.48)', sizeW: 27, sizeH: 24, offsetX: -36, offsetY: 0 },\n { color: 'rgba(185, 185, 185, 0.42)', sizeW: 23, sizeH: 28, offsetX: -54, offsetY: -2 },\n { color: 'rgba(165, 165, 165, 0.50)', sizeW: 24, sizeH: 24, offsetX: 51, offsetY: -1 },\n { color: 'rgba(180, 180, 180, 0.45)', sizeW: 30, sizeH: 20, offsetX: 21, offsetY: 0 },\n { color: 'rgba(160, 160, 160, 0.40)', sizeW: 25, sizeH: 18, offsetX: -21, offsetY: -2 },\n { color: 'rgba(175, 175, 175, 0.45)', sizeW: 21, sizeH: 24, offsetX: 66, offsetY: 0 },\n { color: 'rgba(190, 190, 190, 0.52)', sizeW: 18, sizeH: 26, offsetX: -66, offsetY: -1 },\n ],\n ocean: [\n { color: 'rgba(100, 80, 220, 0.48)', sizeW: 33, sizeH: 30, offsetX: 0, offsetY: 0 },\n { color: 'rgba(60, 120, 255, 0.42)', sizeW: 24, sizeH: 26, offsetX: 39, offsetY: -3 },\n { color: 'rgba(80, 100, 200, 0.48)', sizeW: 27, sizeH: 24, offsetX: -36, offsetY: 0 },\n { color: 'rgba(130, 70, 255, 0.42)', sizeW: 23, sizeH: 28, offsetX: -54, offsetY: -2 },\n { color: 'rgba(70, 130, 255, 0.50)', sizeW: 24, sizeH: 24, offsetX: 51, offsetY: -1 },\n { color: 'rgba(120, 80, 255, 0.45)', sizeW: 30, sizeH: 20, offsetX: 21, offsetY: 0 },\n { color: 'rgba(90, 110, 230, 0.40)', sizeW: 25, sizeH: 18, offsetX: -21, offsetY: -2 },\n { color: 'rgba(110, 90, 240, 0.45)', sizeW: 21, sizeH: 24, offsetX: 66, offsetY: 0 },\n { color: 'rgba(140, 100, 255, 0.52)', sizeW: 18, sizeH: 26, offsetX: -66, offsetY: -1 },\n ],\n sunset: [\n { color: 'rgba(255, 100, 60, 0.48)', sizeW: 33, sizeH: 30, offsetX: 0, offsetY: 0 },\n { color: 'rgba(255, 180, 50, 0.42)', sizeW: 24, sizeH: 26, offsetX: 39, offsetY: -3 },\n { color: 'rgba(255, 140, 70, 0.48)', sizeW: 27, sizeH: 24, offsetX: -36, offsetY: 0 },\n { color: 'rgba(255, 80, 80, 0.42)', sizeW: 23, sizeH: 28, offsetX: -54, offsetY: -2 },\n { color: 'rgba(255, 200, 60, 0.50)', sizeW: 24, sizeH: 24, offsetX: 51, offsetY: -1 },\n { color: 'rgba(255, 120, 50, 0.45)', sizeW: 30, sizeH: 20, offsetX: 21, offsetY: 0 },\n { color: 'rgba(255, 160, 80, 0.40)', sizeW: 25, sizeH: 18, offsetX: -21, offsetY: -2 },\n { color: 'rgba(255, 90, 60, 0.45)', sizeW: 21, sizeH: 24, offsetX: 66, offsetY: 0 },\n { color: 'rgba(255, 70, 70, 0.52)', sizeW: 18, sizeH: 26, offsetX: -66, offsetY: -1 },\n ],\n brand: [\n { color: 'rgba(245, 158, 11, 0.48)', sizeW: 33, sizeH: 30, offsetX: 0, offsetY: 0 },\n { color: 'rgba(251, 191, 36, 0.42)', sizeW: 24, sizeH: 26, offsetX: 39, offsetY: -3 },\n { color: 'rgba(245, 158, 11, 0.48)', sizeW: 27, sizeH: 24, offsetX: -36, offsetY: 0 },\n { color: 'rgba(217, 119, 6, 0.42)', sizeW: 23, sizeH: 28, offsetX: -54, offsetY: -2 },\n { color: 'rgba(252, 211, 77, 0.50)', sizeW: 24, sizeH: 24, offsetX: 51, offsetY: -1 },\n { color: 'rgba(234, 138, 9, 0.45)', sizeW: 30, sizeH: 20, offsetX: 21, offsetY: 0 },\n { color: 'rgba(251, 191, 36, 0.40)', sizeW: 25, sizeH: 18, offsetX: -21, offsetY: -2 },\n { color: 'rgba(217, 119, 6, 0.45)', sizeW: 21, sizeH: 24, offsetX: 66, offsetY: 0 },\n { color: 'rgba(245, 158, 11, 0.52)', sizeW: 18, sizeH: 26, offsetX: -66, offsetY: -1 },\n ],\n};\n\nfunction getLineInnerGradients(colorVariant: BorderBeamColorVariant, id: string): string {\n const data = lineInnerGradientData[colorVariant];\n return data\n .map(c => {\n const offsetXStr = c.offsetX === 0 ? '' : (c.offsetX > 0 ? ` + ${c.offsetX}px` : ` - ${Math.abs(c.offsetX)}px`);\n const offsetYStr = c.offsetY === 0 ? '' : ` - ${Math.abs(c.offsetY)}px`;\n return `radial-gradient(ellipse calc(${c.sizeW}px * var(--beam-w-${id})) calc(${c.sizeH}px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%${offsetXStr}) calc(100%${offsetYStr}), ${c.color}, transparent)`;\n })\n .join(',\\n ');\n}\n\nconst lineBloomColors = {\n colorful: {\n dark: {\n spikes: [\n { color1: 'rgb(100, 70, 255)', color2: 'rgba(100, 70, 255, 1)' }, // 36%\n { color1: 'rgba(255, 170, 40, 0.59)', color2: 'rgba(255, 170, 40, 0.29)' }, // 50%\n { color1: 'rgb(50, 200, 100)', color2: 'rgba(50, 200, 100, 1)' }, // 64%\n { color1: 'rgba(200, 50, 240, 0.91)', color2: 'rgba(200, 50, 240, 0.45)' }, // 78%\n { color1: 'rgb(40, 140, 255)', color2: 'rgba(40, 140, 255, 1)' }, // 92%\n ],\n },\n light: {\n spikes: [\n { color1: 'rgb(80, 50, 200)', color2: 'rgba(80, 50, 200, 0.8)' }, // 36%\n { color1: 'rgba(210, 130, 0, 0.7)', color2: 'rgba(210, 130, 0, 0.46)' }, // 50%\n { color1: 'rgb(30, 160, 70)', color2: 'rgba(30, 160, 70, 0.82)' }, // 64%\n { color1: 'rgb(160, 30, 190)', color2: 'rgba(160, 30, 190, 0.7)' }, // 78%\n { color1: 'rgb(30, 100, 200)', color2: 'rgba(30, 100, 200, 0.78)' }, // 92%\n ],\n },\n },\n mono: {\n dark: {\n spikes: [\n { color1: 'rgb(200, 200, 200)', color2: 'rgba(200, 200, 200, 1)' },\n { color1: 'rgba(180, 180, 180, 0.59)', color2: 'rgba(180, 180, 180, 0.29)' },\n { color1: 'rgb(190, 190, 190)', color2: 'rgba(190, 190, 190, 1)' },\n { color1: 'rgba(170, 170, 170, 0.91)', color2: 'rgba(170, 170, 170, 0.45)' },\n { color1: 'rgb(185, 185, 185)', color2: 'rgba(185, 185, 185, 1)' },\n ],\n },\n light: {\n spikes: [\n { color1: 'rgb(80, 80, 80)', color2: 'rgba(80, 80, 80, 0.8)' },\n { color1: 'rgba(100, 100, 100, 0.7)', color2: 'rgba(100, 100, 100, 0.46)' },\n { color1: 'rgb(70, 70, 70)', color2: 'rgba(70, 70, 70, 0.82)' },\n { color1: 'rgb(90, 90, 90)', color2: 'rgba(90, 90, 90, 0.7)' },\n { color1: 'rgb(85, 85, 85)', color2: 'rgba(85, 85, 85, 0.78)' },\n ],\n },\n },\n ocean: {\n dark: {\n spikes: [\n { color1: 'rgb(100, 80, 255)', color2: 'rgb(100, 80, 255)' },\n { color1: 'rgba(80, 130, 220, 0.59)', color2: 'rgba(80, 130, 220, 0.29)' },\n { color1: 'rgb(60, 100, 255)', color2: 'rgb(60, 100, 255)' },\n { color1: 'rgba(90, 120, 200, 0.91)', color2: 'rgba(90, 120, 200, 0.45)' },\n { color1: 'rgb(120, 90, 255)', color2: 'rgb(120, 90, 255)' },\n ],\n },\n light: {\n spikes: [\n { color1: 'rgb(50, 40, 180)', color2: 'rgba(50, 40, 180, 0.8)' },\n { color1: 'rgba(40, 80, 200, 0.7)', color2: 'rgba(40, 80, 200, 0.46)' },\n { color1: 'rgb(30, 50, 190)', color2: 'rgba(30, 50, 190, 0.82)' },\n { color1: 'rgb(60, 90, 180)', color2: 'rgba(60, 90, 180, 0.7)' },\n { color1: 'rgb(70, 60, 200)', color2: 'rgba(70, 60, 200, 0.78)' },\n ],\n },\n },\n sunset: {\n dark: {\n spikes: [\n { color1: 'rgb(255, 100, 80)', color2: 'rgb(255, 100, 80)' },\n { color1: 'rgba(255, 150, 80, 0.59)', color2: 'rgba(255, 150, 80, 0.29)' },\n { color1: 'rgb(255, 80, 60)', color2: 'rgb(255, 80, 60)' },\n { color1: 'rgba(255, 120, 50, 0.91)', color2: 'rgba(255, 120, 50, 0.45)' },\n { color1: 'rgb(255, 140, 70)', color2: 'rgb(255, 140, 70)' },\n ],\n },\n light: {\n spikes: [\n { color1: 'rgb(200, 60, 30)', color2: 'rgba(200, 60, 30, 0.8)' },\n { color1: 'rgba(220, 100, 20, 0.7)', color2: 'rgba(220, 100, 20, 0.46)' },\n { color1: 'rgb(180, 40, 20)', color2: 'rgba(180, 40, 20, 0.82)' },\n { color1: 'rgb(210, 80, 10)', color2: 'rgba(210, 80, 10, 0.7)' },\n { color1: 'rgb(190, 70, 30)', color2: 'rgba(190, 70, 30, 0.78)' },\n ],\n },\n },\n brand: {\n dark: {\n spikes: [\n { color1: 'rgb(251, 191, 36)', color2: 'rgb(251, 191, 36)' },\n { color1: 'rgba(245, 158, 11, 0.59)', color2: 'rgba(245, 158, 11, 0.29)' },\n { color1: 'rgb(217, 119, 6)', color2: 'rgb(217, 119, 6)' },\n { color1: 'rgba(252, 211, 77, 0.91)', color2: 'rgba(252, 211, 77, 0.45)' },\n { color1: 'rgb(245, 158, 11)', color2: 'rgb(245, 158, 11)' },\n ],\n },\n light: {\n spikes: [\n { color1: 'rgb(180, 83, 9)', color2: 'rgba(180, 83, 9, 0.8)' },\n { color1: 'rgba(202, 138, 4, 0.7)', color2: 'rgba(202, 138, 4, 0.46)' },\n { color1: 'rgb(146, 64, 14)', color2: 'rgba(146, 64, 14, 0.82)' },\n { color1: 'rgb(202, 138, 4)', color2: 'rgba(202, 138, 4, 0.7)' },\n { color1: 'rgb(161, 98, 7)', color2: 'rgba(161, 98, 7, 0.78)' },\n ],\n },\n },\n};\n\nfunction withAlpha(color: string, alpha: number): string {\n const rgbaMatch = color.match(/^rgba\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*[\\d.]+\\s*\\)$/);\n if (rgbaMatch) return `rgba(${rgbaMatch[1]}, ${rgbaMatch[2]}, ${rgbaMatch[3]}, ${alpha})`;\n const rgbMatch = color.match(/^rgb\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)$/);\n if (rgbMatch) return `rgba(${rgbMatch[1]}, ${rgbMatch[2]}, ${rgbMatch[3]}, ${alpha})`;\n return color;\n}\n\nfunction attenuateSpike(color: string, factor: number): string {\n const rgbaMatch = color.match(/^rgba\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)$/);\n if (rgbaMatch) return `rgba(${rgbaMatch[1]}, ${rgbaMatch[2]}, ${rgbaMatch[3]}, ${(parseFloat(rgbaMatch[4]) * factor).toFixed(2)})`;\n const rgbMatch = color.match(/^rgb\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)$/);\n if (rgbMatch) return `rgba(${rgbMatch[1]}, ${rgbMatch[2]}, ${rgbMatch[3]}, ${factor.toFixed(2)})`;\n return color;\n}\n\nfunction getLineBloomGradients(colorVariant: BorderBeamColorVariant, isDark: boolean, id: string): string {\n const spikeColors = getSpikeColors(colorVariant, isDark);\n const bloomData = lineBloomColors[colorVariant][isDark ? 'dark' : 'light'];\n const isMono = colorVariant === 'mono';\n\n // Mono uses uniform gray so thin spikes at full opacity look like harsh bars.\n // Attenuate opacity and widen the thin gradients so they appear as soft glows.\n const att = isMono ? 0.14 : 1;\n const sc1 = isMono ? attenuateSpike(spikeColors.primary, 0.14) : spikeColors.primary;\n const sc1_mid = isMono ? attenuateSpike(spikeColors.primary, 0.09) : spikeColors.primary;\n const sc2 = isMono ? attenuateSpike(spikeColors.secondary, 0.12) : spikeColors.secondary;\n const sc2_mid = isMono ? withAlpha(spikeColors.secondary, 0.06) : withAlpha(spikeColors.secondary, 0.49);\n\n const spikes = bloomData.spikes.map(s => isMono\n ? { color1: attenuateSpike(s.color1, att), color2: attenuateSpike(s.color2, att * 0.7) }\n : s\n );\n\n // Mono: wide, blurred soft spikes; shortened heights\n const thinW1 = isMono ? '12px' : '0.8px';\n const thinW2 = isMono ? '14px' : '2px';\n const thinW3 = isMono ? '12px' : '1.2px';\n const thinW4 = isMono ? '10px' : '0.6px';\n const thinH1 = isMono ? '42px' : '92px';\n const thinH2 = isMono ? '38px' : '72px';\n const thinH3 = isMono ? '40px' : '85px';\n const thinH4 = isMono ? '32px' : '60px';\n const thinLW = isMono ? '12px' : '1px';\n\n // Main glow: center dot + ambient — mono gets 50% lower opacity\n const glowDotC = isMono ? 'rgba(255, 255, 255, 0.5)' : 'rgba(255, 255, 255, 1)';\n const glowDot20 = isMono ? 'rgba(255, 255, 255, 0.45)' : 'rgba(255, 255, 255, 0.9)';\n const glowDot50 = isMono ? 'rgba(255, 255, 255, 0.25)' : 'rgba(255, 255, 255, 0.5)';\n const glowAmbC = isMono ? 'rgba(255, 255, 255, 0.15)' : 'rgba(255, 255, 255, 0.3)';\n const glowAmb25 = isMono ? 'rgba(255, 255, 255, 0.06)' : 'rgba(255, 255, 255, 0.12)';\n const glowAmb55 = isMono ? 'rgba(255, 255, 255, 0.015)': 'rgba(255, 255, 255, 0.03)';\n\n if (isDark) {\n return `radial-gradient(ellipse calc(${thinW1} * var(--beam-spike-${id})) calc(${thinH1} * var(--beam-h-${id})) at 8% calc(100% - 2px), ${sc1}, ${sc1_mid} 30%, transparent 88%),\n radial-gradient(ellipse calc(10px * var(--beam-spike2-${id})) calc(35px * var(--beam-h-${id})) at 22% calc(100% - 4px), ${sc2}, ${sc2_mid} 50%, transparent 95%),\n radial-gradient(ellipse calc(${thinW2} * (2 - var(--beam-spike-${id}))) calc(${thinH2} * var(--beam-h-${id})) at 36% calc(100% - 3px), ${spikes[0].color1}, ${spikes[0].color2} 40%, transparent 90%),\n radial-gradient(ellipse calc(14px * var(--beam-spike2-${id})) calc(28px * var(--beam-h-${id})) at 50% calc(100% - 2px), ${spikes[1].color1}, ${spikes[1].color2} 55%, transparent 96%),\n radial-gradient(ellipse calc(${thinW3} * (2 - var(--beam-spike2-${id}))) calc(${thinH3} * var(--beam-h-${id})) at 64% calc(100% - 4px), ${spikes[2].color1}, ${spikes[2].color2} 35%, transparent 89%),\n radial-gradient(ellipse calc(7px * var(--beam-spike-${id})) calc(45px * var(--beam-h-${id})) at 78% calc(100% - 2px), ${spikes[3].color1}, ${spikes[3].color2} 48%, transparent 94%),\n radial-gradient(ellipse calc(${thinW4} * (2 - var(--beam-spike-${id}))) calc(${thinH4} * var(--beam-h-${id})) at 92% calc(100% - 3px), ${spikes[4].color1}, ${spikes[4].color2} 42%, transparent 91%),\n radial-gradient(ellipse calc(21px * var(--beam-spike-${id})) calc(15px * var(--beam-spike2-${id})) at calc(var(--beam-x-${id}) * 100%) calc(100% + 1px), ${glowDotC} 0%, ${glowDot20} 20%, ${glowDot50} 50%, transparent 100%),\n radial-gradient(ellipse calc(42px * var(--beam-w-${id})) calc(40px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) 100%, ${glowAmbC} 0%, ${glowAmb25} 25%, ${glowAmb55} 55%, transparent 80%)`;\n } else {\n const sc1_lt = isMono ? attenuateSpike(spikeColors.primary, 0.11) : withAlpha(spikeColors.primary, 0.85);\n const sc2_lt = isMono ? attenuateSpike(spikeColors.secondary, 0.09) : withAlpha(spikeColors.secondary, 0.7);\n return `radial-gradient(ellipse calc(${thinW1} * var(--beam-spike-${id})) calc(${thinH1} * var(--beam-h-${id})) at 8% calc(100% - 2px), ${sc1}, ${sc1_lt} 30%, transparent 88%),\n radial-gradient(ellipse calc(10px * var(--beam-spike2-${id})) calc(35px * var(--beam-h-${id})) at 22% calc(100% - 4px), ${sc2}, ${sc2_lt} 50%, transparent 95%),\n radial-gradient(ellipse calc(${thinW2} * (2 - var(--beam-spike-${id}))) calc(${thinH2} * var(--beam-h-${id})) at 36% calc(100% - 3px), ${spikes[0].color1}, ${spikes[0].color2} 40%, transparent 90%),\n radial-gradient(ellipse calc(14px * var(--beam-spike2-${id})) calc(28px * var(--beam-h-${id})) at 50% calc(100% - 2px), ${spikes[1].color1}, ${spikes[1].color2} 55%, transparent 96%),\n radial-gradient(ellipse calc(${thinW3} * (2 - var(--beam-spike2-${id}))) calc(${thinH3} * var(--beam-h-${id})) at 64% calc(100% - 4px), ${spikes[2].color1}, ${spikes[2].color2} 35%, transparent 89%),\n radial-gradient(ellipse calc(7px * var(--beam-spike-${id})) calc(45px * var(--beam-h-${id})) at 78% calc(100% - 2px), ${spikes[3].color1}, ${spikes[3].color2} 48%, transparent 94%),\n radial-gradient(ellipse calc(${thinLW} * (2 - var(--beam-spike-${id}))) calc(${thinH4} * var(--beam-h-${id})) at 92% calc(100% - 3px), ${spikes[4].color1}, ${spikes[4].color2} 42%, transparent 91%),\n radial-gradient(ellipse calc(50px * var(--beam-w-${id})) calc(32px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) calc(100%), rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.18) 30%, rgba(0, 0, 0, 0.03) 60%, transparent 85%)`;\n }\n}\n\n/* ──────────────────────────────────────────────────────────────────────────\n * Pulse family (breathing glow, no rotation) — ported from the v5 prototype\n * Card 4 (\"pulse-inner\", contained) and Card 5 (\"pulse-outside\", outward bloom).\n *\n * Both effects animate three independent size/drift regions (g1/g2/g3) and four\n * per-quadrant opacity oscillators (tl/tr/bl/br) on desynced periods, plus a\n * global height oscillator (gh) and a hue-shift filter. The gradient COLORS come\n * from the shared `colorPalettes` (so every color variant + strength works), while\n * the geometry below (sizes/positions/region/quadrant) is identical across colors.\n * ──────────────────────────────────────────────────────────────────────────*/\n\ntype PulseRegion = 1 | 2 | 3;\ntype PulseQuad = 'tl' | 'tr' | 'bl' | 'br';\n\n// Which size-region (g1/g2/g3) and opacity-quadrant each of the 9 palette\n// gradients belongs to (taken from the v5 Card 4 ::after ordering).\nconst PULSE_RING_MAP: { region: PulseRegion; quad: PulseQuad }[] = [\n { region: 1, quad: 'tl' },\n { region: 2, quad: 'tl' },\n { region: 3, quad: 'bl' },\n { region: 1, quad: 'bl' },\n { region: 2, quad: 'br' },\n { region: 3, quad: 'br' },\n { region: 1, quad: 'tr' },\n { region: 2, quad: 'tr' },\n { region: 3, quad: 'tr' },\n];\n\n// Card 4 inner-perimeter (::before) gradient sizes — slightly smaller than the ring.\nconst PULSE_INNER_SIZES: [number, number][] = [\n [65, 35], [55, 30], [35, 65], [15, 30], [173, 28], [80, 22], [69, 28], [22, 38], [47, 44],\n];\n\ninterface PulseGradientDef {\n ci: number; // index into colorPalettes[variant].border\n region: PulseRegion;\n quad: PulseQuad;\n w: number;\n h: number;\n x?: string; // explicit position (outer effect); falls back to palette pos\n y?: string;\n}\n\n// Card 4 bloom — 7 of the 9 colors, expanded sizes (positions come from palette).\nconst PULSE_INNER_BLOOM: PulseGradientDef[] = [\n { ci: 0, region: 1, quad: 'tl', w: 84, h: 48 },\n { ci: 1, region: 2, quad: 'tl', w: 72, h: 42 },\n { ci: 2, region: 3, quad: 'bl', w: 48, h: 84 },\n { ci: 4, region: 2, quad: 'br', w: 216, h: 38 },\n { ci: 5, region: 3, quad: 'br', w: 102, h: 31 },\n { ci: 6, region: 1, quad: 'tr', w: 89, h: 38 },\n { ci: 8, region: 3, quad: 'tr', w: 62, h: 58 },\n];\n\n// Card 5 outward core (::after hairline + ::before glow share this edge-positioned set).\nconst PULSE_OUTER_CORE: PulseGradientDef[] = [\n { ci: 0, region: 1, quad: 'tl', w: 80, h: 19, x: '27%', y: '0%' },\n { ci: 6, region: 2, quad: 'tr', w: 74, h: 11, x: '73%', y: '-1%' },\n { ci: 7, region: 3, quad: 'tr', w: 15, h: 44, x: '100%', y: '33%' },\n { ci: 8, region: 1, quad: 'br', w: 19, h: 38, x: '101%', y: '72%' },\n { ci: 4, region: 2, quad: 'br', w: 84, h: 13, x: '67%', y: '100%' },\n { ci: 1, region: 3, quad: 'bl', w: 60, h: 21, x: '24%', y: '101%' },\n { ci: 2, region: 1, quad: 'bl', w: 17, h: 40, x: '0%', y: '60%' },\n { ci: 3, region: 2, quad: 'tl', w: 13, h: 32, x: '-1%', y: '28%' },\n];\n\n// Card 5 outward bloom — wider/blurred halo (7 gradients).\nconst PULSE_OUTER_BLOOM: PulseGradientDef[] = [\n { ci: 0, region: 1, quad: 'tl', w: 110, h: 30, x: '27%', y: '3%' },\n { ci: 6, region: 2, quad: 'tr', w: 100, h: 20, x: '73%', y: '1%' },\n { ci: 7, region: 3, quad: 'tr', w: 26, h: 62, x: '100%', y: '33%' },\n { ci: 8, region: 1, quad: 'br', w: 30, h: 56, x: '101%', y: '72%' },\n { ci: 4, region: 2, quad: 'br', w: 120, h: 22, x: '67%', y: '99%' },\n { ci: 1, region: 3, quad: 'bl', w: 88, h: 32, x: '24%', y: '99%' },\n { ci: 2, region: 1, quad: 'bl', w: 28, h: 58, x: '0%', y: '60%' },\n];\n\n// Convert an `rgb()` palette color into `rgba()` whose alpha is the live quadrant\n// opacity custom property, so the gradient breathes per-quadrant.\nfunction withAlphaVar(color: string, quad: PulseQuad, id: string): string {\n const m = color.match(/^rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/);\n const rgb = m ? `${m[1]}, ${m[2]}, ${m[3]}` : '255, 255, 255';\n return `rgba(${rgb}, var(--bop-${quad}-${id}))`;\n}\n\nfunction pulseGrad(\n color: string,\n w: number,\n h: number,\n region: PulseRegion,\n quad: PulseQuad,\n x: string,\n y: string,\n id: string\n): string {\n // `--pulse-glow-sx/sy` (set inline by the component for pulse-outside) scale the\n // blob WIDTH/HEIGHT to the measured element size, so the glow fits any component.\n // Positions stay percentage-based, so blobs keep hugging the element's edges.\n // Defaults to 1 (e.g. pulse-inner never sets them), leaving geometry unchanged.\n // `--pulse-glow-boost` is a consumer hook: a relative multiplier on top of the\n // measured scale, so the glow can be intensified proportionally on any element.\n return `radial-gradient(ellipse calc(${w}px * var(--bw${region}-${id}) * var(--pulse-glow-sx, 1) * var(--pulse-glow-boost, 1)) calc(${h}px * var(--bh${region}-${id}) * var(--bgh-${id}) * var(--pulse-glow-sy, 1) * var(--pulse-glow-boost, 1)) at calc(${x} + var(--bx${region}-${id})) calc(${y} + var(--by${region}-${id})), ${withAlphaVar(color, quad, id)}, transparent)`;\n}\n\n// The 9-gradient perimeter ring (Card 4 ::after / Card 5 stroke share this) —\n// positions + sizes come straight from the palette, region/quad from PULSE_RING_MAP.\nfunction pulseRingGradients(variant: BorderBeamColorVariant, id: string): string {\n return colorPalettes[variant].border\n .map((c, i) => {\n const { region, quad } = PULSE_RING_MAP[i];\n const [x, y] = c.pos.split(' ');\n const [w, h] = c.size.split(' ').map(parseFloat);\n return pulseGrad(c.color, w, h, region, quad, x, y, id);\n })\n .join(',\\n ');\n}\n\n// Card 4 inner-perimeter gradients (smaller sizes) plus the bright corner accents.\nfunction pulseInnerGradients(variant: BorderBeamColorVariant, id: string, isDark: boolean): string {\n const palette = colorPalettes[variant].border;\n const grads = palette.map((c, i) => {\n const { region, quad } = PULSE_RING_MAP[i];\n const [x, y] = c.pos.split(' ');\n const [w, h] = PULSE_INNER_SIZES[i];\n return pulseGrad(c.color, w, h, region, quad, x, y, id);\n });\n const cornerRGB = isDark ? '255, 255, 255' : '0, 0, 0';\n const cornerAlpha = isDark ? 0.18 : 0.08;\n const corners: [string, string, PulseQuad][] = [\n ['0%', '0%', 'tl'],\n ['100%', '0%', 'tr'],\n ['0%', '100%', 'bl'],\n ['100%', '100%', 'br'],\n ];\n const cornerGrads = corners.map(\n ([x, y, q]) =>\n `radial-gradient(ellipse 60px 60px at ${x} ${y}, rgba(${cornerRGB}, calc(${cornerAlpha} * var(--bop-${q}-${id}))), transparent 70%)`\n );\n return [...grads, ...cornerGrads].join(',\\n ');\n}\n\n// Emit a fixed gradient table (used by inner bloom + both outer layers).\nfunction pulseTableGradients(\n table: PulseGradientDef[],\n variant: BorderBeamColorVariant,\n id: string\n): string {\n const palette = colorPalettes[variant].border;\n return table\n .map(e => {\n const c = palette[e.ci];\n const [px, py] = c.pos.split(' ');\n return pulseGrad(c.color, e.w, e.h, e.region, e.quad, e.x ?? px, e.y ?? py, id);\n })\n .join(',\\n ');\n}\n\n// Frozen variant of the bloom gradients: emits literal sizes/positions with a\n// fixed per-blob alpha (the time-average of the breathing range) instead of the\n// live `var(--bw…/--bop…)` custom properties. Because the bloom's background no\n// longer changes per frame, its heavily-blurred bitmap is painted ONCE and cached\n// by the compositor rather than re-rasterized 60–120×/sec — the single biggest\n// per-frame cost in the pulse effect.\nfunction pulseTableGradientsStatic(\n table: PulseGradientDef[],\n variant: BorderBeamColorVariant,\n frozenAlpha: number\n): string {\n const palette = colorPalettes[variant].border;\n const a = +frozenAlpha.toFixed(3);\n return table\n .map(e => {\n const c = palette[e.ci];\n const [px, py] = c.pos.split(' ');\n const x = e.x ?? px;\n const y = e.y ?? py;\n const m = c.color.match(/^rgb\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/);\n const rgb = m ? `${m[1]}, ${m[2]}, ${m[3]}` : '255, 255, 255';\n // Scale the blob to the measured element via `--pulse-glow-sx/sy` (same as\n // the live stroke/core layers). The var only changes on resize, so the\n // blurred bloom bitmap is still painted once and cached between resizes.\n // Defaults to 1 (pulse-inner never sets it), leaving inner geometry as-is.\n return `radial-gradient(ellipse calc(${e.w}px * var(--pulse-glow-sx, 1) * var(--pulse-glow-boost, 1)) calc(${e.h}px * var(--pulse-glow-sy, 1) * var(--pulse-glow-boost, 1)) at ${x} ${y}, rgba(${rgb}, ${a}), transparent)`;\n })\n .join(',\\n ');\n}\n\n// Pauses every animation on an instance (wrapper + pseudo layers + bloom) when it\n// carries the `data-paused` attribute. Driven by an IntersectionObserver so beams\n// that are scrolled offscreen stop doing per-frame paint work entirely.\nfunction pausedAnimationsRule(id: string): string {\n return `\n[data-beam=\"${id}\"][data-paused],\n[data-beam=\"${id}\"][data-paused]::after,\n[data-beam=\"${id}\"][data-paused]::before,\n[data-beam=\"${id}\"][data-paused] [data-beam-bloom] {\n animation-play-state: paused !important;\n}`;\n}\n\n// @property registrations for all per-instance pulse custom properties.\nfunction pulsePropertyRegs(id: string): string {\n const numbers = ['bw1', 'bh1', 'bw2', 'bh2', 'bw3', 'bh3', 'bgh', 'bop-tl', 'bop-tr', 'bop-bl', 'bop-br'];\n const lengths = ['bx1', 'by1', 'bx2', 'by2', 'bx3', 'by3'];\n const numReg = numbers\n .map(\n n => `@property --${n}-${id} {\\n syntax: \"<number>\";\\n initial-value: 1;\\n inherits: true;\\n}`\n )\n .join('\\n\\n');\n const lenReg = lengths\n .map(\n n => `@property --${n}-${id} {\\n syntax: \"<length>\";\\n initial-value: 0px;\\n inherits: true;\\n}`\n )\n .join('\\n\\n');\n return `${numReg}\\n\\n${lenReg}\\n\\n@property --beam-opacity-${id} {\\n syntax: \"<number>\";\\n initial-value: 0;\\n inherits: true;\\n}\\n\\n@property --beam-hue-${id} {\\n syntax: \"<angle>\";\\n initial-value: 0deg;\\n inherits: true;\\n}`;\n}\n\n// ── Pulse breathing driver ───────────────────────────────────────────────────\n// The breathing motion (size/drift/quadrant-opacity/height) and the slow hue\n// drift used to run as ~15 per-instance CSS `@property` keyframe animations at\n// the display refresh rate (60–120 Hz). Because each value feeds the painted\n// gradients/filters, that meant repainting the breathing layers 60–120×/sec.\n// The motion is very slow (1.6–6.4 s periods), so we instead drive the same CSS\n// vars from a single shared requestAnimationFrame loop throttled to ~30 fps\n// (see pulseDriver.ts). This halves the paint frequency on 60 Hz displays and\n// quarters it on 120 Hz, with no perceptible change to the breathing.\n\n/** A single sinusoidal oscillator that ping-pongs a CSS var between `a` and `b`. */\nexport interface PulseOscillatorDef {\n prop: string;\n a: number;\n b: number;\n /** Full period in seconds. */\n period: number;\n /** Phase offset in seconds (desyncs otherwise-identical oscillators). */\n delay: number;\n /** '' for unitless <number> vars, 'px' for <length> drift vars. */\n unit: '' | 'px';\n}\n\nexport interface PulseDriverConfig {\n oscillators: PulseOscillatorDef[];\n /**\n * Hue motion driven into `--beam-hue-<id>`; null when colors are static.\n * `continuous` rotates a full 360° loop over `period` (so every palette color\n * cycles through every edge for a lively, ever-changing wash); otherwise it\n * ping-pongs between -range and +range.\n */\n hue: { prop: string; range: number; period: number; continuous?: boolean } | null;\n}\n\n/** Theme/size/duration-tuned breathing parameters (shared by CSS + JS driver). */\nfunction pulseParams(size: BorderBeamSize, theme: 'dark' | 'light', duration: number) {\n const isDark = theme === 'dark';\n const durScale = duration / 2.3;\n if (size === 'pulse-inner') {\n return {\n sp: 0.28,\n dr: isDark ? 33 : 40,\n op: isDark ? 0.48 : 0.45,\n gh: isDark ? 0.34 : 0.22,\n bs: (isDark ? 1.9 : 2.6) * durScale,\n ss: (isDark ? 2.6 : 4.6) * durScale,\n ghs: (isDark ? 2.4 : 5.5) * durScale,\n // Full hue revolution period (seconds) — colors continuously cycle.\n huePeriod: 16,\n };\n }\n return {\n sp: isDark ? 0.28 : 0.36,\n dr: isDark ? 14 : 19,\n op: isDark ? 0.46 : 0,\n gh: isDark ? 0.16 : 0.58,\n bs: (isDark ? 2.3 : 3.7) * durScale,\n ss: (isDark ? 6.4 : 4.6) * durScale,\n ghs: (isDark ? 2.4 : 3.8) * durScale,\n // Full hue revolution period (seconds) — colors continuously cycle.\n huePeriod: 14,\n };\n}\n\n/** Build the oscillator table for an instance (matches the former keyframes). */\nfunction pulseOscillatorDefs(id: string, p: ReturnType<typeof pulseParams>): PulseOscillatorDef[] {\n const { sp, dr, op, gh, bs, ss, ghs } = p;\n return [\n { prop: `--bw1-${id}`, a: 1 - sp, b: 1 + sp * 1.1, period: ss * 0.9, delay: 0, unit: '' },\n { prop: `--bh1-${id}`, a: 1 + sp * 0.9, b: 1 - sp * 0.85, period: ss * 1.26, delay: 0, unit: '' },\n { prop: `--bx1-${id}`, a: -dr, b: dr * 0.9, period: bs * 1.6, delay: 0, unit: 'px' },\n { prop: `--by1-${id}`, a: dr * 0.55, b: -dr * 0.7, period: bs * 1.6, delay: 0, unit: 'px' },\n { prop: `--bw2-${id}`, a: 1 + sp, b: 1 - sp * 0.85, period: ss * 1.1, delay: 0, unit: '' },\n { prop: `--bh2-${id}`, a: 1 - sp * 0.8, b: 1 + sp * 1.05, period: ss * 0.81, delay: 0, unit: '' },\n { prop: `--bx2-${id}`, a: dr * 0.8, b: -dr * 0.9, period: bs * 1.88, delay: 0, unit: 'px' },\n { prop: `--by2-${id}`, a: -dr, b: dr * 0.65, period: bs * 1.88, delay: 0, unit: 'px' },\n { prop: `--bw3-${id}`, a: 1 - sp * 0.6, b: 1 + sp * 1.15, period: ss * 0.98, delay: 0, unit: '' },\n { prop: `--bh3-${id}`, a: 1 + sp * 0.75, b: 1 - sp, period: ss * 1.4, delay: 0, unit: '' },\n { prop: `--bx3-${id}`, a: -dr * 0.6, b: dr, period: bs * 1.45, delay: 0, unit: 'px' },\n { prop: `--by3-${id}`, a: -dr * 0.85, b: dr * 0.45, period: bs * 1.45, delay: 0, unit: 'px' },\n { prop: `--bgh-${id}`, a: 1 - gh, b: 1 + gh, period: ghs, delay: 0, unit: '' },\n { prop: `--bop-tl-${id}`, a: 1 - op, b: 1, period: bs, delay: 0, unit: '' },\n { prop: `--bop-tr-${id}`, a: 1 - op, b: 1, period: bs * 1.32, delay: bs * 0.28, unit: '' },\n { prop: `--bop-bl-${id}`, a: 1 - op, b: 1, period: bs * 0.84, delay: bs * 0.55, unit: '' },\n { prop: `--bop-br-${id}`, a: 1 - op, b: 1, period: bs * 1.58, delay: bs * 0.83, unit: '' },\n ];\n}\n\n/**\n * Returns the runtime config the JS driver needs to animate a pulse instance,\n * or null for non-pulse sizes. Kept in sync with the CSS by sharing pulseParams.\n */\nexport function getPulseDriverConfig(\n size: BorderBeamSize,\n theme: 'dark' | 'light',\n duration: number,\n _hueRange: number,\n staticColors: boolean,\n id: string\n): PulseDriverConfig | null {\n if (size !== 'pulse-inner' && size !== 'pulse-outside') return null;\n const p = pulseParams(size, theme, duration);\n return {\n oscillators: pulseOscillatorDefs(id, p),\n // Pulse colors continuously rotate a full hue circle so the palette is never\n // pinned to fixed edges (no more \"always red top-right / green left\").\n hue: staticColors\n ? null\n : { prop: `--beam-hue-${id}`, range: 360, period: p.huePeriod, continuous: true },\n };\n}\n\n// Only the (short, one-shot) fade is still a CSS animation; the breathing is\n// driven from JS so it can be frame-rate capped and paused offscreen.\nfunction pulseWrapperAnimation(id: string, fadeName: string, fadeDur: number): string {\n return ` animation: ${fadeName}-${id} ${fadeDur}s ease forwards;`;\n}\n\ninterface GenerateStylesOptions {\n id: string;\n borderRadius: number;\n borderWidth: number;\n duration: number;\n strokeOpacity: number;\n innerOpacity: number;\n bloomOpacity: number;\n innerShadow: string;\n size: BorderBeamSize;\n colorVariant: BorderBeamColorVariant;\n staticColors: boolean;\n brightness: number;\n saturation: number;\n hueRange: number;\n theme: 'dark' | 'light';\n /** Opacity of the 1px hairline outline (pulse-outside only). Falls back to 0. */\n hairlineOpacity?: number;\n}\n\n/**\n * Generate complete CSS for a BorderBeam instance\n */\nexport function generateBeamCSS(options: GenerateStylesOptions): string {\n const { size } = options;\n\n if (size === 'line') {\n return generateLineVariantCSS(options);\n }\n \n if (size === 'sm') {\n return generateSmallVariantCSS(options);\n }\n\n if (size === 'pulse-inner') {\n return generatePulseInnerVariantCSS(options);\n }\n\n if (size === 'pulse-outside') {\n return generatePulseOuterVariantCSS(options);\n }\n\n return generateBorderVariantCSS(options);\n}\n\nfunction generateSmallVariantCSS(options: GenerateStylesOptions): string {\n const {\n id,\n borderRadius,\n borderWidth,\n duration,\n strokeOpacity,\n innerOpacity,\n bloomOpacity,\n innerShadow,\n colorVariant,\n staticColors,\n brightness,\n saturation,\n hueRange,\n theme,\n } = options;\n\n const innerRadius = Math.max(0, borderRadius - borderWidth);\n \n const monoOpacityMultiplier = colorVariant === 'mono' ? 0.5 : 1.0;\n const finalStrokeOpacity = strokeOpacity * monoOpacityMultiplier;\n const finalInnerOpacity = innerOpacity * monoOpacityMultiplier;\n const finalBloomOpacity = bloomOpacity * monoOpacityMultiplier;\n \n const hueShiftAnimation = staticColors \n ? '' \n : `animation: beam-hue-shift-${id} 12s ease-in-out infinite;`;\n \n const hueShiftKeyframes = staticColors ? '' : `\n@keyframes beam-hue-shift-${id} {\n 0% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) - ${hueRange}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n 50% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) + ${hueRange}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n 100% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) - ${hueRange}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n}`;\n\n const isDark = theme === 'dark';\n \n const whiteGradient = isDark\n ? `conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 54%,\n rgba(255, 255, 255, 0.1) 57%,\n rgba(255, 255, 255, 0.3) 60%,\n rgba(255, 255, 255, 0.6) 63%,\n rgba(255, 255, 255, 0.75) 66%,\n rgba(255, 255, 255, 0.6) 69%,\n rgba(255, 255, 255, 0.3) 72%,\n rgba(255, 255, 255, 0.1) 75%,\n transparent 78%, transparent 100%\n )`\n : `conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 54%,\n rgba(0, 0, 0, 0.08) 57%,\n rgba(0, 0, 0, 0.2) 60%,\n rgba(0, 0, 0, 0.4) 63%,\n rgba(0, 0, 0, 0.55) 66%,\n rgba(0, 0, 0, 0.4) 69%,\n rgba(0, 0, 0, 0.2) 72%,\n rgba(0, 0, 0, 0.08) 75%,\n transparent 78%, transparent 100%\n )`;\n\n const colorGradients = getSmallColorGradients(colorVariant);\n const innerGradients = getSmallInnerGradients(colorVariant);\n\n const bloomGradient = isDark\n ? `conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 58%,\n rgba(255, 255, 255, 0.03) 62%,\n rgba(255, 255, 255, 0.08) 65%,\n rgba(255, 255, 255, 0.2) 67%,\n rgba(255, 255, 255, 0.45) 69%,\n rgba(255, 255, 255, 0.85) 70%,\n rgba(255, 255, 255, 0.85) 70.5%,\n rgba(255, 255, 255, 0.45) 71.5%,\n rgba(255, 255, 255, 0.2) 73%,\n rgba(255, 255, 255, 0.08) 75%,\n rgba(255, 255, 255, 0.03) 78%,\n transparent 82%\n )`\n : `conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 58%,\n rgba(0, 0, 0, 0.02) 62%,\n rgba(0, 0, 0, 0.08) 65%,\n rgba(0, 0, 0, 0.2) 67%,\n rgba(0, 0, 0, 0.4) 69%,\n rgba(0, 0, 0, 0.6) 70%,\n rgba(0, 0, 0, 0.6) 70.5%,\n rgba(0, 0, 0, 0.4) 71.5%,\n rgba(0, 0, 0, 0.2) 73%,\n rgba(0, 0, 0, 0.08) 75%,\n rgba(0, 0, 0, 0.02) 78%,\n transparent 82%\n )`;\n\n // Small variant uses wider mask to show more of the beam around the smaller element\n const smallMask = `conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 22%,\n rgba(255, 255, 255, 0.12) 28%, rgba(255, 255, 255, 0.4) 36%,\n white 46%, white 82%,\n rgba(255, 255, 255, 0.4) 88%, rgba(255, 255, 255, 0.12) 94%,\n transparent 97%, transparent 100%\n )`;\n\n return `\n@property --beam-angle-${id} {\n syntax: \"<angle>\";\n initial-value: 0deg;\n inherits: true;\n}\n\n@property --beam-opacity-${id} {\n syntax: \"<number>\";\n initial-value: 0;\n inherits: true;\n}\n\n[data-beam=\"${id}\"] {\n position: relative;\n border-radius: ${borderRadius}px;\n overflow: hidden;\n}\n\n[data-beam=\"${id}\"][data-active] {\n animation:\n beam-spin-${id} ${duration}s linear infinite,\n beam-fade-in-${id} 0.6s ease forwards;\n}\n\n[data-beam=\"${id}\"][data-fading] {\n animation:\n beam-spin-${id} ${duration}s linear infinite,\n beam-fade-out-${id} 0.5s ease forwards;\n}\n\n[data-beam=\"${id}\"][data-active]::after,\n[data-beam=\"${id}\"][data-fading]::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${innerRadius}px;\n padding: ${borderWidth}px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${whiteGradient},${colorGradients};\n -webkit-mask:\n conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 30%,\n rgba(255, 255, 255, 0.1) 36%, rgba(255, 255, 255, 0.35) 44%,\n white 52%, white 80%,\n rgba(255, 255, 255, 0.35) 86%, rgba(255, 255, 255, 0.1) 92%,\n transparent 95%, transparent 100%\n ),\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n -webkit-mask-composite: source-in, xor;\n mask:\n conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 30%,\n rgba(255, 255, 255, 0.1) 36%, rgba(255, 255, 255, 0.35) 44%,\n white 52%, white 80%,\n rgba(255, 255, 255, 0.35) 86%, rgba(255, 255, 255, 0.1) 92%,\n transparent 95%, transparent 100%\n ),\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n mask-composite: intersect, exclude;\n pointer-events: none;\n z-index: 2;\n opacity: calc(var(--beam-opacity-${id}) * ${finalStrokeOpacity.toFixed(2)} * var(--beam-stroke-opacity, 1) * var(--beam-strength, 1));\n ${hueShiftAnimation}\n}\n\n[data-beam=\"${id}\"][data-active]::before,\n[data-beam=\"${id}\"][data-fading]::before {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${borderRadius}px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${innerGradients};\n box-shadow: inset 0 0 5px 1px ${innerShadow};\n -webkit-mask-image: ${smallMask};\n -webkit-mask-composite: source-over;\n mask-image: ${smallMask};\n mask-composite: add;\n pointer-events: none;\n z-index: 1;\n opacity: calc(var(--beam-opacity-${id}) * ${finalInnerOpacity.toFixed(2)} * var(--beam-inner-opacity, 1) * var(--beam-strength, 1));\n ${hueShiftAnimation}\n}\n\n[data-beam=\"${id}\"] [data-beam-bloom] {\n display: none;\n position: absolute;\n inset: 0;\n border-radius: ${innerRadius}px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${bloomGradient};\n -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n mask-composite: exclude;\n padding: ${borderWidth}px;\n filter: blur(8px) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)});\n pointer-events: none;\n z-index: 3;\n opacity: 0;\n}\n\n[data-beam=\"${id}\"][data-active] [data-beam-bloom],\n[data-beam=\"${id}\"][data-fading] [data-beam-bloom] {\n display: block;\n opacity: calc(var(--beam-opacity-${id}) * ${finalBloomOpacity.toFixed(2)} * var(--beam-bloom-opacity, 1) * var(--beam-strength, 1));\n}\n\n@keyframes beam-spin-${id} {\n to { --beam-angle-${id}: 360deg; }\n}\n\n@keyframes beam-fade-in-${id} {\n to { --beam-opacity-${id}: 1; }\n}\n\n@keyframes beam-fade-out-${id} {\n from { --beam-opacity-${id}: 1; }\n to { --beam-opacity-${id}: 0; }\n}\n${hueShiftKeyframes}\n${pausedAnimationsRule(id)}\n`;\n}\n\nfunction generateBorderVariantCSS(options: GenerateStylesOptions): string {\n const {\n id,\n borderRadius,\n borderWidth,\n duration,\n strokeOpacity,\n innerOpacity,\n bloomOpacity,\n innerShadow,\n colorVariant,\n staticColors,\n brightness,\n saturation,\n hueRange,\n theme,\n } = options;\n\n const innerRadius = Math.max(0, borderRadius - borderWidth);\n \n // Mono variant gets 50% lower opacity\n const monoOpacityMultiplier = colorVariant === 'mono' ? 0.5 : 1.0;\n const finalStrokeOpacity = strokeOpacity * monoOpacityMultiplier;\n const finalInnerOpacity = innerOpacity * monoOpacityMultiplier;\n const finalBloomOpacity = bloomOpacity * monoOpacityMultiplier;\n \n const hueShiftAnimation = staticColors \n ? '' \n : `animation: beam-hue-shift-${id} 12s ease-in-out infinite;`;\n \n const hueShiftKeyframes = staticColors ? '' : `\n@keyframes beam-hue-shift-${id} {\n 0% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) - ${hueRange}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n 50% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) + ${hueRange}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n 100% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) - ${hueRange}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n}`;\n\n const isDark = theme === 'dark';\n \n const whiteGradient = isDark\n ? `conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 54%,\n rgba(255, 255, 255, 0.1) 57%,\n rgba(255, 255, 255, 0.3) 60%,\n rgba(255, 255, 255, 0.6) 63%,\n rgba(255, 255, 255, 0.75) 66%,\n rgba(255, 255, 255, 0.6) 69%,\n rgba(255, 255, 255, 0.3) 72%,\n rgba(255, 255, 255, 0.1) 75%,\n transparent 78%, transparent 100%\n )`\n : `conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 54%,\n rgba(0, 0, 0, 0.08) 57%,\n rgba(0, 0, 0, 0.2) 60%,\n rgba(0, 0, 0, 0.4) 63%,\n rgba(0, 0, 0, 0.55) 66%,\n rgba(0, 0, 0, 0.4) 69%,\n rgba(0, 0, 0, 0.2) 72%,\n rgba(0, 0, 0, 0.08) 75%,\n transparent 78%, transparent 100%\n )`;\n\n const colorGradients = getColorGradients(colorVariant);\n const innerGradients = getInnerGradients(colorVariant);\n\n const bloomGradient = isDark\n ? `conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 58%,\n rgba(255, 255, 255, 0.03) 62%,\n rgba(255, 255, 255, 0.08) 65%,\n rgba(255, 255, 255, 0.2) 67%,\n rgba(255, 255, 255, 0.45) 69%,\n rgba(255, 255, 255, 0.85) 70%,\n rgba(255, 255, 255, 0.85) 70.5%,\n rgba(255, 255, 255, 0.45) 71.5%,\n rgba(255, 255, 255, 0.2) 73%,\n rgba(255, 255, 255, 0.08) 75%,\n rgba(255, 255, 255, 0.03) 78%,\n transparent 82%\n )`\n : `conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 58%,\n rgba(0, 0, 0, 0.02) 62%,\n rgba(0, 0, 0, 0.08) 65%,\n rgba(0, 0, 0, 0.2) 67%,\n rgba(0, 0, 0, 0.4) 69%,\n rgba(0, 0, 0, 0.6) 70%,\n rgba(0, 0, 0, 0.6) 70.5%,\n rgba(0, 0, 0, 0.4) 71.5%,\n rgba(0, 0, 0, 0.2) 73%,\n rgba(0, 0, 0, 0.08) 75%,\n rgba(0, 0, 0, 0.02) 78%,\n transparent 82%\n )`;\n\n return `\n@property --beam-angle-${id} {\n syntax: \"<angle>\";\n initial-value: 0deg;\n inherits: true;\n}\n\n@property --beam-opacity-${id} {\n syntax: \"<number>\";\n initial-value: 0;\n inherits: true;\n}\n\n[data-beam=\"${id}\"] {\n position: relative;\n border-radius: ${borderRadius}px;\n overflow: hidden;\n}\n\n[data-beam=\"${id}\"][data-active] {\n animation:\n beam-spin-${id} ${duration}s linear infinite,\n beam-fade-in-${id} 0.6s ease forwards;\n}\n\n[data-beam=\"${id}\"][data-fading] {\n animation:\n beam-spin-${id} ${duration}s linear infinite,\n beam-fade-out-${id} 0.5s ease forwards;\n}\n\n[data-beam=\"${id}\"][data-active]::after,\n[data-beam=\"${id}\"][data-fading]::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${innerRadius}px;\n padding: ${borderWidth}px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${whiteGradient},${colorGradients};\n -webkit-mask:\n conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 30%,\n rgba(255, 255, 255, 0.1) 36%, rgba(255, 255, 255, 0.35) 44%,\n white 52%, white 80%,\n rgba(255, 255, 255, 0.35) 86%, rgba(255, 255, 255, 0.1) 92%,\n transparent 95%, transparent 100%\n ),\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n -webkit-mask-composite: source-in, xor;\n mask:\n conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 30%,\n rgba(255, 255, 255, 0.1) 36%, rgba(255, 255, 255, 0.35) 44%,\n white 52%, white 80%,\n rgba(255, 255, 255, 0.35) 86%, rgba(255, 255, 255, 0.1) 92%,\n transparent 95%, transparent 100%\n ),\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n mask-composite: intersect, exclude;\n pointer-events: none;\n z-index: 2;\n opacity: calc(var(--beam-opacity-${id}) * ${finalStrokeOpacity.toFixed(2)} * var(--beam-stroke-opacity, 1) * var(--beam-strength, 1));\n ${hueShiftAnimation}\n}\n\n[data-beam=\"${id}\"][data-active]::before,\n[data-beam=\"${id}\"][data-fading]::before {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${borderRadius}px;\n background: ${innerGradients};\n box-shadow: inset 0 0 9px 1px ${innerShadow};\n -webkit-mask-image:\n conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 30%,\n rgba(255, 255, 255, 0.1) 36%, rgba(255, 255, 255, 0.35) 44%,\n white 52%, white 80%,\n rgba(255, 255, 255, 0.35) 86%, rgba(255, 255, 255, 0.1) 92%,\n transparent 95%, transparent 100%\n ),\n linear-gradient(white, transparent 28px, transparent calc(100% - 28px), white),\n linear-gradient(to right, white, transparent 28px, transparent calc(100% - 28px), white);\n -webkit-mask-composite: source-in, source-over;\n mask-image:\n conic-gradient(\n from var(--beam-angle-${id}),\n transparent 0%, transparent 30%,\n rgba(255, 255, 255, 0.1) 36%, rgba(255, 255, 255, 0.35) 44%,\n white 52%, white 80%,\n rgba(255, 255, 255, 0.35) 86%, rgba(255, 255, 255, 0.1) 92%,\n transparent 95%, transparent 100%\n ),\n linear-gradient(white, transparent 28px, transparent calc(100% - 28px), white),\n linear-gradient(to right, white, transparent 28px, transparent calc(100% - 28px), white);\n mask-composite: intersect, add;\n pointer-events: none;\n z-index: 1;\n opacity: calc(var(--beam-opacity-${id}) * ${finalInnerOpacity.toFixed(2)} * var(--beam-inner-opacity, 1) * var(--beam-strength, 1));\n clip-path: inset(0 round ${borderRadius}px);\n ${hueShiftAnimation}\n}\n\n[data-beam=\"${id}\"] [data-beam-bloom] {\n display: none;\n position: absolute;\n inset: 0;\n border-radius: ${innerRadius}px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${bloomGradient};\n -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n mask-composite: exclude;\n padding: ${borderWidth}px;\n filter: blur(8px) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)});\n pointer-events: none;\n z-index: 3;\n opacity: 0;\n}\n\n[data-beam=\"${id}\"][data-active] [data-beam-bloom],\n[data-beam=\"${id}\"][data-fading] [data-beam-bloom] {\n display: block;\n opacity: calc(var(--beam-opacity-${id}) * ${finalBloomOpacity.toFixed(2)} * var(--beam-bloom-opacity, 1) * var(--beam-strength, 1));\n}\n\n@keyframes beam-spin-${id} {\n to { --beam-angle-${id}: 360deg; }\n}\n\n@keyframes beam-fade-in-${id} {\n to { --beam-opacity-${id}: 1; }\n}\n\n@keyframes beam-fade-out-${id} {\n from { --beam-opacity-${id}: 1; }\n to { --beam-opacity-${id}: 0; }\n}\n${hueShiftKeyframes}\n${pausedAnimationsRule(id)}\n`;\n}\n\n/**\n * Pulse Inner — contained breathing glow (port of v5 Card 4).\n * A full colorful perimeter ring (::after), an inner perimeter glow with corner\n * accents (::before), and a soft blurred bloom, all clipped inside the element.\n */\nfunction generatePulseInnerVariantCSS(options: GenerateStylesOptions): string {\n const {\n id, borderRadius, borderWidth, duration,\n strokeOpacity, innerOpacity, bloomOpacity,\n colorVariant, staticColors, brightness, saturation, theme,\n } = options;\n\n const isDark = theme === 'dark';\n\n const monoMul = colorVariant === 'mono' ? 0.5 : 1.0;\n const sStroke = (strokeOpacity * monoMul).toFixed(2);\n const sInner = (innerOpacity * monoMul).toFixed(2);\n const sBloom = (bloomOpacity * monoMul).toFixed(2);\n\n // Breathing parameters (theme-tuned). The motion itself is now driven from JS\n // (see getPulseDriverConfig / pulseDriver.ts); only `op` is needed here to set\n // the frozen bloom's average alpha.\n const { op } = pulseParams('pulse-inner', theme, duration);\n const bloomBlur = 8;\n\n const b = brightness.toFixed(2);\n const s = saturation.toFixed(2);\n\n // Slow hue drift is driven into --beam-hue-<id> by the JS loop (capped fps),\n // so the breathing layers no longer repaint at the display refresh rate.\n const ringAnim = staticColors\n ? `filter: brightness(${b}) saturate(${s});`\n : `filter: hue-rotate(calc(var(--beam-hue-base, 0deg) + var(--beam-hue-${id}))) brightness(${b}) saturate(${s});`;\n // Bloom shares the SAME hue rotation as the ring so the wide glow and the tight\n // ring stay color-synced. Gradients keep frozen opacity; only hue-rotate varies.\n const bloomAnim = staticColors\n ? `filter: blur(${bloomBlur}px) brightness(${b}) saturate(${s});`\n : `filter: blur(${bloomBlur}px) hue-rotate(calc(var(--beam-hue-base, 0deg) + var(--beam-hue-${id}))) brightness(${b}) saturate(${s});`;\n\n const ringGradients = pulseRingGradients(colorVariant, id);\n const innerGradients = pulseInnerGradients(colorVariant, id, isDark);\n // Frozen at the breathing time-average (midpoint of the [1-op, 1] opacity range).\n const bloomGradients = pulseTableGradientsStatic(PULSE_INNER_BLOOM, colorVariant, 1 - op * 0.5);\n\n return `\n${pulsePropertyRegs(id)}\n\n[data-beam=\"${id}\"] {\n position: relative;\n border-radius: ${borderRadius}px;\n overflow: hidden;\n isolation: isolate;\n}\n\n[data-beam=\"${id}\"][data-active] {\n${pulseWrapperAnimation(id, 'beam-fade-in', 0.6)}\n}\n\n[data-beam=\"${id}\"][data-fading] {\n${pulseWrapperAnimation(id, 'beam-fade-out', 0.5)}\n}\n\n[data-beam=\"${id}\"][data-active]::after,\n[data-beam=\"${id}\"][data-fading]::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${borderRadius}px;\n padding: ${borderWidth}px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${ringGradients};\n -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n mask-composite: exclude;\n pointer-events: none;\n z-index: 2;\n will-change: opacity, filter;\n opacity: calc(var(--beam-opacity-${id}) * ${sStroke} * var(--beam-stroke-opacity, 1) * var(--beam-strength, 1));\n ${ringAnim}\n}\n\n[data-beam=\"${id}\"][data-active]::before,\n[data-beam=\"${id}\"][data-fading]::before {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${borderRadius}px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${innerGradients};\n -webkit-mask-image:\n linear-gradient(white, transparent 28px, transparent calc(100% - 28px), white),\n linear-gradient(to right, white, transparent 28px, transparent calc(100% - 28px), white);\n -webkit-mask-composite: source-over;\n mask-image:\n linear-gradient(white, transparent 28px, transparent calc(100% - 28px), white),\n linear-gradient(to right, white, transparent 28px, transparent calc(100% - 28px), white);\n mask-composite: add;\n pointer-events: none;\n z-index: 1;\n will-change: opacity, filter;\n opacity: calc(var(--beam-opacity-${id}) * ${sInner} * var(--beam-inner-opacity, 1) * var(--beam-strength, 1));\n ${ringAnim}\n}\n\n[data-beam=\"${id}\"] [data-beam-bloom] {\n display: none;\n position: absolute;\n inset: 0;\n border-radius: ${borderRadius}px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${bloomGradients};\n -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n mask-composite: exclude;\n padding: ${borderWidth}px;\n pointer-events: none;\n z-index: 3;\n will-change: opacity;\n opacity: 0;\n}\n\n[data-beam=\"${id}\"][data-active] [data-beam-bloom],\n[data-beam=\"${id}\"][data-fading] [data-beam-bloom] {\n display: block;\n opacity: calc(var(--beam-opacity-${id}) * ${sBloom} * var(--beam-bloom-opacity, 1) * var(--beam-strength, 1));\n ${bloomAnim}\n}\n\n@keyframes beam-fade-in-${id} { to { --beam-opacity-${id}: 1; } }\n@keyframes beam-fade-out-${id} { from { --beam-opacity-${id}: 1; } to { --beam-opacity-${id}: 0; } }\n${pausedAnimationsRule(id)}\n\n@media (prefers-reduced-motion: reduce) {\n [data-beam=\"${id}\"][data-active],\n [data-beam=\"${id}\"][data-fading],\n [data-beam=\"${id}\"][data-active]::after,\n [data-beam=\"${id}\"][data-fading]::after,\n [data-beam=\"${id}\"][data-active]::before,\n [data-beam=\"${id}\"][data-fading]::before,\n [data-beam=\"${id}\"][data-active] [data-beam-bloom],\n [data-beam=\"${id}\"][data-fading] [data-beam-bloom] {\n animation: none !important;\n }\n}\n`;\n}\n\n/**\n * Pulse Outside — outward-blooming breathing glow (port of v5 Card 5).\n * A crisp 1px colored stroke hugs the outer edge (::after), while the colorful\n * core (::before) and soft halo (bloom) radiate OUTWARD behind the element\n * (z-index:-1), so the glow spills outside and is never cropped.\n *\n * Requires the wrapped child to be opaque so the inner part is covered and only\n * the outward halo shows.\n */\nfunction generatePulseOuterVariantCSS(options: GenerateStylesOptions): string {\n const {\n id, borderRadius, duration,\n strokeOpacity, innerOpacity, bloomOpacity,\n colorVariant, staticColors, brightness, saturation, theme,\n hairlineOpacity = 0,\n } = options;\n\n const isDark = theme === 'dark';\n\n const monoMul = colorVariant === 'mono' ? 0.5 : 1.0;\n const sStroke = (strokeOpacity * monoMul).toFixed(2);\n const sInner = (innerOpacity * monoMul).toFixed(2);\n const sBloom = (bloomOpacity * monoMul).toFixed(2);\n\n // A constant 1px hairline frames the element. It is painted on the inner 1px\n // ring of the border-box (same place a standard `inset 0 0 0 1px` component\n // border sits) so the beam hairline/stroke align with the wrapped element's\n // own hairline instead of floating 1px outside it.\n const hairRGB = isDark ? '70, 70, 70' : '0, 0, 0';\n const hairOp = hairlineOpacity.toFixed(2);\n const hairlineLine = `linear-gradient(rgba(${hairRGB}, ${hairOp}), rgba(${hairRGB}, ${hairOp}))`;\n\n // Breathing parameters (theme-tuned). The motion is driven from JS now\n // (getPulseDriverConfig / pulseDriver.ts); only `op` is needed here for the\n // frozen bloom's average alpha.\n const { op } = pulseParams('pulse-outside', theme, duration);\n\n // Theme-dependent outward-glow constants (ported from v5 c6 defaults).\n const sw = 0.95; // glow width size\n const sh = 0.9; // glow height size (same in both themes)\n const glowBlur = isDark ? 3 : 6;\n const bloomBlur = isDark ? 22.5 : 15;\n\n const b = brightness.toFixed(2);\n const s = saturation.toFixed(2);\n\n // Slow hue drift is driven into --beam-hue-<id> by the JS loop (capped fps).\n const strokeAnim = staticColors\n ? `filter: brightness(${b}) saturate(${s});`\n : `filter: hue-rotate(calc(var(--beam-hue-base, 0deg) + var(--beam-hue-${id}))) brightness(${b}) saturate(${s});`;\n // Consumer hooks (--beam-core-blur / --beam-bloom-blur / --beam-glow-brightness /\n // --beam-glow-saturate) let integrators tune the glow WITHOUT overriding the whole\n // `filter` — replacing it externally would drop the hue-rotate term and desync the\n // glow colors from the stroke ring.\n const glowBright = `brightness(var(--beam-glow-brightness, ${b})) saturate(var(--beam-glow-saturate, ${s}))`;\n const coreAnim = staticColors\n ? `filter: blur(var(--beam-core-blur, ${glowBlur}px)) ${glowBright};`\n : `filter: blur(var(--beam-core-blur, ${glowBlur}px)) hue-rotate(calc(var(--beam-hue-base, 0deg) + var(--beam-hue-${id}))) ${glowBright};`;\n // Bloom (large halo) shares the SAME hue rotation as the core/stroke so the\n // wide glow and the tight glow stay in color sync (most visible on blue/green).\n // Its gradients keep frozen opacity, so only the cheap hue-rotate varies.\n const bloomAnim = staticColors\n ? `filter: blur(var(--beam-bloom-blur, ${bloomBlur}px)) ${glowBright};`\n : `filter: blur(var(--beam-bloom-blur, ${bloomBlur}px)) hue-rotate(calc(var(--beam-hue-base, 0deg) + var(--beam-hue-${id}))) ${glowBright};`;\n\n const strokeGradients = pulseTableGradients(PULSE_OUTER_CORE, colorVariant, id);\n const coreGradients = pulseTableGradients(PULSE_OUTER_CORE, colorVariant, id);\n // Frozen at the breathing time-average (midpoint of the [1-op, 1] opacity range).\n const bloomGradients = pulseTableGradientsStatic(PULSE_OUTER_BLOOM, colorVariant, 1 - op * 0.5);\n // Paint a static hairline in the SAME masked ring as the stroke glow so their\n // position and anti-aliasing always match exactly.\n const strokeBackground = hairlineOpacity > 0\n ? `${strokeGradients},\n ${hairlineLine}`\n : strokeGradients;\n\n return `\n${pulsePropertyRegs(id)}\n\n[data-beam=\"${id}\"] {\n position: relative;\n border-radius: ${borderRadius}px;\n overflow: visible;\n isolation: isolate;\n}\n\n[data-beam=\"${id}\"][data-active] {\n${pulseWrapperAnimation(id, 'beam-fade-in', 0.6)}\n}\n\n[data-beam=\"${id}\"][data-fading] {\n${pulseWrapperAnimation(id, 'beam-fade-out', 0.5)}\n}\n${hairlineOpacity > 0 ? `\n/* Idle hairline — painted above the (opaque) child in the inner 1px edge ring so\n it overlaps a standard inset component border exactly. */\n[data-beam=\"${id}\"]::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${borderRadius}px;\n padding: 1px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${hairlineLine};\n -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n mask-composite: exclude;\n pointer-events: none;\n z-index: 2;\n}\n` : ''}\n[data-beam=\"${id}\"][data-active]::after,\n[data-beam=\"${id}\"][data-fading]::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${borderRadius}px;\n padding: 1px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${strokeBackground};\n -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);\n mask-composite: exclude;\n pointer-events: none;\n z-index: 2;\n will-change: opacity, filter;\n opacity: calc(var(--beam-opacity-${id}) * ${sStroke} * var(--beam-stroke-opacity, 1) * var(--beam-strength, 1));\n ${strokeAnim}\n}\n\n[data-beam=\"${id}\"][data-active]::before,\n[data-beam=\"${id}\"][data-fading]::before {\n content: \"\";\n position: absolute;\n inset: -10px;\n z-index: -1;\n border-radius: ${borderRadius + 10}px;\n background: ${coreGradients};\n transform: scale(${sw}, ${sh});\n pointer-events: none;\n will-change: opacity, filter;\n opacity: calc(var(--beam-opacity-${id}) * ${sInner} * var(--beam-inner-opacity, 1) * var(--beam-strength, 1));\n ${coreAnim}\n}\n\n[data-beam=\"${id}\"] [data-beam-bloom] {\n display: none;\n position: absolute;\n inset: -30px;\n z-index: -1;\n border-radius: ${borderRadius + 30}px;\n background: ${bloomGradients};\n transform: scale(${sw}, ${sh});\n pointer-events: none;\n will-change: transform;\n opacity: 0;\n}\n\n[data-beam=\"${id}\"][data-active] [data-beam-bloom],\n[data-beam=\"${id}\"][data-fading] [data-beam-bloom] {\n display: block;\n opacity: calc(var(--beam-opacity-${id}) * ${sBloom} * var(--beam-bloom-opacity, 1) * var(--beam-strength, 1));\n ${bloomAnim}\n}\n\n@keyframes beam-fade-in-${id} { to { --beam-opacity-${id}: 1; } }\n@keyframes beam-fade-out-${id} { from { --beam-opacity-${id}: 1; } to { --beam-opacity-${id}: 0; } }\n${pausedAnimationsRule(id)}\n\n@media (prefers-reduced-motion: reduce) {\n [data-beam=\"${id}\"][data-active],\n [data-beam=\"${id}\"][data-fading],\n [data-beam=\"${id}\"][data-active]::after,\n [data-beam=\"${id}\"][data-fading]::after,\n [data-beam=\"${id}\"][data-active]::before,\n [data-beam=\"${id}\"][data-fading]::before,\n [data-beam=\"${id}\"][data-active] [data-beam-bloom],\n [data-beam=\"${id}\"][data-fading] [data-beam-bloom] {\n animation: none !important;\n }\n}\n`;\n}\n\nfunction generateLineVariantCSS(options: GenerateStylesOptions): string {\n const {\n id,\n borderRadius,\n borderWidth,\n duration,\n strokeOpacity,\n innerOpacity,\n bloomOpacity,\n innerShadow,\n colorVariant,\n staticColors,\n brightness,\n saturation,\n hueRange,\n theme,\n } = options;\n\n const innerRadius = Math.max(0, borderRadius - borderWidth);\n const isDark = theme === 'dark';\n \n const finalStrokeOpacity = strokeOpacity;\n const finalInnerOpacity = innerOpacity;\n const finalBloomOpacity = bloomOpacity;\n \n const hueShiftAnimation = staticColors \n ? '' \n : `animation: beam-hue-shift-${id} 12s ease-in-out infinite;`;\n\n const hueShiftBloomAnimation = staticColors\n ? ''\n : `animation: beam-hue-shift-bloom-${id} 8s ease-in-out infinite;`;\n \n const hueShiftKeyframes = staticColors ? '' : `\n@keyframes beam-hue-shift-${id} {\n 0% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) - ${hueRange}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n 50% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) + ${hueRange}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n 100% { filter: hue-rotate(calc(var(--beam-hue-base, 0deg) - ${hueRange}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n}\n\n@keyframes beam-hue-shift-bloom-${id} {\n 0% { filter: blur(8px) hue-rotate(calc(var(--beam-hue-base, 0deg) - ${hueRange + 10}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n 50% { filter: blur(8px) hue-rotate(calc(var(--beam-hue-base, 0deg) + ${hueRange + 10}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n 100% { filter: blur(8px) hue-rotate(calc(var(--beam-hue-base, 0deg) - ${hueRange + 10}deg)) brightness(${brightness.toFixed(2)}) saturate(${saturation.toFixed(2)}); }\n}`;\n\n const whiteHighlight = isDark\n ? `radial-gradient(\n ellipse calc(24px * var(--beam-w-${id})) calc(28px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) calc(100% + 2px),\n rgba(255, 255, 255, 0.38) 0%,\n rgba(255, 255, 255, 0.12) 30%,\n transparent 65%\n )`\n : `radial-gradient(\n ellipse calc(35px * var(--beam-w-${id})) calc(28px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) calc(100% + 2px),\n rgba(0, 0, 0, 0.6) 0%,\n rgba(0, 0, 0, 0.25) 35%,\n transparent 70%\n )`;\n\n const colorGradients = getLineColorGradients(colorVariant, isDark, id);\n const innerGradients = getLineInnerGradients(colorVariant, id);\n\n const bloomGradients = getLineBloomGradients(colorVariant, isDark, id);\n const monoBloomBlur = colorVariant === 'mono' ? 'filter: blur(6px);' : '';\n\n return `\n@property --beam-x-${id} {\n syntax: \"<number>\";\n initial-value: 0;\n inherits: true;\n}\n\n@property --beam-w-${id} {\n syntax: \"<number>\";\n initial-value: 1;\n inherits: true;\n}\n\n@property --beam-h-${id} {\n syntax: \"<number>\";\n initial-value: 1;\n inherits: true;\n}\n\n@property --beam-spike-${id} {\n syntax: \"<number>\";\n initial-value: 1;\n inherits: true;\n}\n\n@property --beam-spike2-${id} {\n syntax: \"<number>\";\n initial-value: 1;\n inherits: true;\n}\n\n@property --beam-edge-${id} {\n syntax: \"<number>\";\n initial-value: 1;\n inherits: true;\n}\n\n@property --beam-opacity-${id} {\n syntax: \"<number>\";\n initial-value: 0;\n inherits: true;\n}\n\n[data-beam=\"${id}\"] {\n position: relative;\n border-radius: ${borderRadius}px;\n overflow: hidden;\n}\n\n[data-beam=\"${id}\"][data-active] {\n animation:\n beam-travel-${id} ${duration}s linear infinite,\n beam-edge-fade-${id} ${duration}s linear infinite,\n beam-breathe-${id} ${(duration * 1.3).toFixed(1)}s ease-in-out infinite,\n beam-spike-${id} ${(duration * 1.33).toFixed(1)}s ease-in-out infinite,\n beam-spike2-${id} ${(duration * 1.7).toFixed(1)}s ease-in-out infinite,\n beam-fade-in-${id} 0.6s ease forwards;\n}\n\n[data-beam=\"${id}\"][data-fading] {\n animation:\n beam-travel-${id} ${duration}s linear infinite,\n beam-edge-fade-${id} ${duration}s linear infinite,\n beam-breathe-${id} ${(duration * 1.3).toFixed(1)}s ease-in-out infinite,\n beam-spike-${id} ${(duration * 1.33).toFixed(1)}s ease-in-out infinite,\n beam-spike2-${id} ${(duration * 1.7).toFixed(1)}s ease-in-out infinite,\n beam-fade-out-${id} 0.5s ease forwards;\n}\n\n[data-beam=\"${id}\"][data-active]::after,\n[data-beam=\"${id}\"][data-fading]::after {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${innerRadius}px;\n padding: ${borderWidth}px;\n clip-path: inset(0 round ${borderRadius}px);\n background: ${whiteHighlight}, ${colorGradients};\n -webkit-mask:\n radial-gradient(\n ellipse calc(78px * var(--beam-w-${id})) calc(60px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) 100%,\n white 0%, rgba(255, 255, 255, 0.5) 45%, transparent 100%\n ),\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n -webkit-mask-composite: source-in, xor;\n mask:\n radial-gradient(\n ellipse calc(78px * var(--beam-w-${id})) calc(60px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) 100%,\n white 0%, rgba(255, 255, 255, 0.5) 45%, transparent 100%\n ),\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n mask-composite: intersect, exclude;\n pointer-events: none;\n z-index: 2;\n opacity: calc(var(--beam-opacity-${id}) * var(--beam-edge-${id}) * ${finalStrokeOpacity.toFixed(2)} * var(--beam-stroke-opacity, 1) * var(--beam-strength, 1));\n ${hueShiftAnimation}\n}\n\n[data-beam=\"${id}\"][data-active]::before,\n[data-beam=\"${id}\"][data-fading]::before {\n content: \"\";\n position: absolute;\n inset: 0;\n border-radius: ${borderRadius}px;\n background: ${innerGradients};\n box-shadow: inset 0 0 9px 1px ${innerShadow};\n -webkit-mask-image:\n radial-gradient(\n ellipse calc(78px * var(--beam-w-${id})) calc(60px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) 100%,\n white 0%, rgba(255, 255, 255, 0.5) 45%, transparent 100%\n ),\n linear-gradient(white, transparent 28px, transparent calc(100% - 28px), white),\n linear-gradient(to right, white, transparent 28px, transparent calc(100% - 28px), white);\n -webkit-mask-composite: source-in, source-over;\n mask-image:\n radial-gradient(\n ellipse calc(78px * var(--beam-w-${id})) calc(60px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) 100%,\n white 0%, rgba(255, 255, 255, 0.5) 45%, transparent 100%\n ),\n linear-gradient(white, transparent 28px, transparent calc(100% - 28px), white),\n linear-gradient(to right, white, transparent 28px, transparent calc(100% - 28px), white);\n mask-composite: intersect, add;\n pointer-events: none;\n z-index: 1;\n opacity: calc(var(--beam-opacity-${id}) * var(--beam-edge-${id}) * ${finalInnerOpacity.toFixed(2)} * var(--beam-inner-opacity, 1) * var(--beam-strength, 1));\n clip-path: inset(0 round ${borderRadius}px);\n ${hueShiftAnimation}\n}\n\n[data-beam=\"${id}\"] [data-beam-bloom] {\n display: none;\n position: absolute;\n inset: 0;\n border-radius: ${innerRadius}px;\n clip-path: inset(0 round ${borderRadius}px);\n padding: 0;\n -webkit-mask: radial-gradient(\n ellipse calc(84px * var(--beam-w-${id})) calc(110px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) 100%,\n white 0%, rgba(255, 255, 255, 0.5) 35%, transparent 100%\n );\n -webkit-mask-composite: source-over;\n mask: radial-gradient(\n ellipse calc(84px * var(--beam-w-${id})) calc(110px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) 100%,\n white 0%, rgba(255, 255, 255, 0.5) 35%, transparent 100%\n );\n mask-composite: add;\n background: ${bloomGradients};\n ${monoBloomBlur}\n pointer-events: none;\n z-index: 3;\n opacity: 0;\n}\n\n[data-beam=\"${id}\"][data-active] [data-beam-bloom],\n[data-beam=\"${id}\"][data-fading] [data-beam-bloom] {\n display: block;\n opacity: calc(var(--beam-opacity-${id}) * var(--beam-edge-${id}) * ${finalBloomOpacity.toFixed(2)} * var(--beam-bloom-opacity, 1) * var(--beam-strength, 1));\n ${hueShiftBloomAnimation}\n}\n\n@keyframes beam-travel-${id} {\n 0% { --beam-x-${id}: 0.06; --beam-w-${id}: 0.5; }\n 10% { --beam-x-${id}: 0.15; --beam-w-${id}: 0.8; }\n 20% { --beam-x-${id}: 0.25; --beam-w-${id}: 1.1; }\n 30% { --beam-x-${id}: 0.35; --beam-w-${id}: 1.3; }\n 40% { --beam-x-${id}: 0.44; --beam-w-${id}: 1.45; }\n 50% { --beam-x-${id}: 0.5; --beam-w-${id}: 1.5; }\n 60% { --beam-x-${id}: 0.56; --beam-w-${id}: 1.45; }\n 70% { --beam-x-${id}: 0.65; --beam-w-${id}: 1.3; }\n 80% { --beam-x-${id}: 0.75; --beam-w-${id}: 1.1; }\n 90% { --beam-x-${id}: 0.85; --beam-w-${id}: 0.8; }\n 100% { --beam-x-${id}: 0.94; --beam-w-${id}: 0.5; }\n}\n\n@keyframes beam-edge-fade-${id} {\n 0% { --beam-edge-${id}: 0; }\n 12.5% { --beam-edge-${id}: 0; }\n 32.5% { --beam-edge-${id}: 1; }\n 67.5% { --beam-edge-${id}: 1; }\n 87.5% { --beam-edge-${id}: 0; }\n 100% { --beam-edge-${id}: 0; }\n}\n\n@keyframes beam-breathe-${id} {\n 0%, 100% { --beam-h-${id}: 0.8; }\n 25% { --beam-h-${id}: 1.25; }\n 55% { --beam-h-${id}: 0.85; }\n 80% { --beam-h-${id}: 1.3; }\n}\n\n@keyframes beam-spike-${id} {\n 0% { --beam-spike-${id}: 0.8; }\n 25% { --beam-spike-${id}: 1.3; }\n 50% { --beam-spike-${id}: 0.9; }\n 75% { --beam-spike-${id}: 1.4; }\n 100% { --beam-spike-${id}: 0.8; }\n}\n\n@keyframes beam-spike2-${id} {\n 0% { --beam-spike2-${id}: 1.2; }\n 25% { --beam-spike2-${id}: 0.7; }\n 50% { --beam-spike2-${id}: 1.4; }\n 75% { --beam-spike2-${id}: 0.8; }\n 100% { --beam-spike2-${id}: 1.2; }\n}\n\n@keyframes beam-fade-in-${id} {\n to { --beam-opacity-${id}: 1; }\n}\n\n@keyframes beam-fade-out-${id} {\n from { --beam-opacity-${id}: 1; }\n to { --beam-opacity-${id}: 0; }\n}\n${hueShiftKeyframes}\n${pausedAnimationsRule(id)}\n`;\n}\n","// Vendored from border-beam v1.3.0 (https://github.com/Jakubantalik/border-beam)\n// MIT License, Copyright (c) Jakub Antalik — see LICENSE-border-beam.md\n// Local modifications: 'brand' amber color variant; theme auto-detection\n// extended to honor an ancestor .dark/.light class or data-theme attribute.\n\nimport type { PulseDriverConfig } from './styles';\n\n/**\n * Shared breathing driver for the Pulse effects.\n *\n * The pulse breathing (size / drift / per-quadrant opacity / height) and the\n * slow hue drift used to run as ~15 per-instance CSS `@property` keyframe\n * animations at the display refresh rate (60–120 Hz). Because each value feeds\n * the painted gradients/filters, that repainted the breathing layers 60–120×/s.\n *\n * The motion is very slow (1.6–6.4 s periods), so instead every registered\n * instance is driven from a SINGLE shared requestAnimationFrame loop throttled\n * to ~30 fps. This halves the paint frequency on 60 Hz displays and quarters it\n * on 120 Hz, with no perceptible change to the breathing.\n *\n * Each oscillator ping-pongs a CSS custom property between `a` and `b` with an\n * ease-in-out (cosine) curve over `period` seconds, offset by `delay` seconds so\n * otherwise-identical oscillators desync (matching the former CSS keyframes +\n * animation-delay).\n */\n\ninterface PulseInstance {\n el: HTMLElement;\n config: PulseDriverConfig;\n}\n\nconst instances = new Set<PulseInstance>();\nlet rafId: number | null = null;\nlet lastFrame = 0;\n\n// ~30 fps. Subtract a small slack so a frame that lands a hair early still runs.\nconst FRAME_INTERVAL = 1000 / 30 - 2;\n\nconst TWO_PI = Math.PI * 2;\n\n/** Cosine ease-in-out factor in [0, 1]: 0 at phase 0/1, 1 at phase 0.5. */\nfunction pingPong(phase: number): number {\n return (1 - Math.cos(TWO_PI * phase)) / 2;\n}\n\nfunction frame(ts: number): void {\n rafId = requestAnimationFrame(frame);\n\n if (ts - lastFrame < FRAME_INTERVAL) return;\n lastFrame = ts;\n\n const tSec = ts / 1000;\n\n instances.forEach(({ el, config }) => {\n for (const osc of config.oscillators) {\n // Match CSS animation-delay semantics: a positive delay starts later.\n const phase = (tSec - osc.delay) / osc.period;\n const value = osc.a + (osc.b - osc.a) * pingPong(phase);\n el.style.setProperty(\n osc.prop,\n osc.unit === 'px' ? `${value.toFixed(2)}px` : value.toFixed(4)\n );\n }\n\n if (config.hue) {\n const { prop, range, period, continuous } = config.hue;\n // `continuous` rotates a full circle (0→range, looping) so every color\n // sweeps through every edge; otherwise drift between -range and +range.\n const value = continuous\n ? ((tSec / period) % 1) * range\n : -range + 2 * range * pingPong(tSec / period);\n el.style.setProperty(prop, `${value.toFixed(2)}deg`);\n }\n });\n}\n\nfunction startLoop(): void {\n if (rafId == null) {\n lastFrame = 0;\n rafId = requestAnimationFrame(frame);\n }\n}\n\nfunction stopLoopIfIdle(): void {\n if (instances.size === 0 && rafId != null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n}\n\n/**\n * Register an element to be driven by the shared pulse loop.\n *\n * @returns a cleanup function that unregisters the instance (and stops the\n * shared loop once no instances remain).\n */\nexport function registerPulseInstance(\n el: HTMLElement,\n config: PulseDriverConfig\n): () => void {\n const instance: PulseInstance = { el, config };\n instances.add(instance);\n startLoop();\n\n return () => {\n instances.delete(instance);\n stopLoopIfIdle();\n };\n}\n","// Vendored from border-beam v1.3.0 (https://github.com/Jakubantalik/border-beam)\n// MIT License, Copyright (c) Jakub Antalik — see LICENSE-border-beam.md\n// Local modifications: 'brand' amber color variant; theme auto-detection\n// extended to honor an ancestor .dark/.light class or data-theme attribute;\n// all per-instance overhead (generated <style> tag, theme/radius/visibility\n// observers) gated on active||fading so always-mounted inactive wrappers\n// cost nothing beyond a plain <div>.\n\nimport {\n forwardRef,\n useId,\n useEffect,\n useState,\n useCallback,\n useMemo,\n useRef,\n type CSSProperties,\n type ForwardedRef,\n type AnimationEvent,\n type MutableRefObject,\n} from 'react';\nimport type { BorderBeamProps, BorderBeamTheme } from './types';\nimport { sizePresets, sizeThemePresets, generateBeamCSS, getPulseDriverConfig } from './styles';\nimport { registerPulseInstance } from './pulseDriver';\n\n// The app-level theme signal: a `dark`/`light` class or `data-theme`\n// attribute on <html> (the Tailwind/shadcn convention both Surogate\n// frontends use). Falls back to the OS preference when the document\n// carries no explicit theme.\nfunction documentTheme(): 'dark' | 'light' | null {\n if (typeof document === 'undefined') return null;\n const root = document.documentElement;\n const attr = root.getAttribute('data-theme');\n if (attr === 'dark' || attr === 'light') return attr;\n if (root.classList.contains('dark')) return 'dark';\n if (root.classList.contains('light')) return 'light';\n return null;\n}\n\n// `enabled` gates the live subscriptions: inactive beam instances still\n// resolve the theme once on mount (and on re-activation) but hold no\n// matchMedia listener or <html> MutationObserver while dormant.\nfunction useSystemTheme(enabled: boolean): 'dark' | 'light' {\n const [theme, setTheme] = useState<'dark' | 'light'>(() => {\n const fromDocument = documentTheme();\n if (fromDocument) return fromDocument;\n if (typeof window === 'undefined') return 'dark';\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n });\n\n useEffect(() => {\n if (!enabled || typeof window === 'undefined') return;\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const resolve = () => {\n setTheme(documentTheme() ?? (mediaQuery.matches ? 'dark' : 'light'));\n };\n resolve();\n\n mediaQuery.addEventListener('change', resolve);\n // Live app-level toggles: watch class/data-theme flips on <html>.\n const observer =\n typeof MutationObserver !== 'undefined'\n ? new MutationObserver(resolve)\n : null;\n observer?.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class', 'data-theme'],\n });\n return () => {\n mediaQuery.removeEventListener('change', resolve);\n observer?.disconnect();\n };\n }, [enabled]);\n\n return theme;\n}\n\nfunction resolveTheme(theme: BorderBeamTheme, systemTheme: 'dark' | 'light'): 'dark' | 'light' {\n return theme === 'auto' ? systemTheme : theme;\n}\n\n/**\n * BorderBeam component - Animated border beam effect for React\n *\n * @example\n * ```tsx\n * <BorderBeam>\n * <Card>Content</Card>\n * </BorderBeam>\n * ```\n */\nexport const BorderBeam = forwardRef<HTMLDivElement, BorderBeamProps>(\n function BorderBeam(\n {\n children,\n size = 'md',\n colorVariant = 'colorful',\n theme = 'dark',\n staticColors = false,\n duration,\n active = true,\n borderRadius: customBorderRadius,\n brightness: brightnessProp,\n saturation,\n hueRange = 30,\n strength = 1,\n className,\n style,\n onActivate,\n onDeactivate,\n onAnimationEnd: consumerOnAnimationEnd,\n ...props\n }: BorderBeamProps,\n ref: ForwardedRef<HTMLDivElement>\n ) {\n const baseId = useId();\n const id = baseId.replace(/:/g, '-');\n const internalRef = useRef<HTMLDivElement>(null);\n\n const [isActive, setIsActive] = useState(active);\n const [isFading, setIsFading] = useState(false);\n const [isVisible, setIsVisible] = useState(true);\n const [detectedRadius, setDetectedRadius] = useState<number | null>(null);\n const [pulseGlowScale, setPulseGlowScale] = useState<{ x: number; y: number }>({ x: 1, y: 1 });\n\n // Everything below that costs anything — the generated <style> tag,\n // the theme/radius/visibility observers — is gated on this, so an\n // always-mounted wrapper with active=false is just a plain <div>.\n const effectsOn = isActive || isFading;\n const systemTheme = useSystemTheme(effectsOn);\n\n // Auto-detect child border radius when no explicit value is provided\n useEffect(() => {\n if (!effectsOn || customBorderRadius != null) return;\n const el = internalRef.current;\n if (!el) return;\n\n const detect = () => {\n const child = el.firstElementChild as HTMLElement | null;\n if (!child) return;\n const computed = getComputedStyle(child);\n const raw = parseFloat(computed.borderTopLeftRadius);\n if (!isNaN(raw) && raw > 0) {\n setDetectedRadius(raw);\n }\n };\n\n detect();\n\n // Re-detect if child layout changes (e.g. CSS loaded late)\n const observer = new MutationObserver(detect);\n observer.observe(el, { childList: true, subtree: false });\n return () => observer.disconnect();\n }, [effectsOn, customBorderRadius, children]);\n\n useEffect(() => {\n if (active && !isActive && !isFading) {\n setIsActive(true);\n } else if (!active && isActive && !isFading) {\n setIsFading(true);\n }\n }, [active, isActive, isFading]);\n\n // Pause the (paint-heavy) animations while the element is scrolled offscreen.\n // This stops per-frame painting entirely for hidden instances without changing\n // their logical active/fading state, so it never fires onActivate/onDeactivate.\n useEffect(() => {\n if (!effectsOn) return;\n const el = internalRef.current;\n if (!el || typeof IntersectionObserver === 'undefined') return;\n\n const observer = new IntersectionObserver(\n entries => {\n for (const entry of entries) setIsVisible(entry.isIntersecting);\n },\n // Start animating slightly before the element scrolls into view.\n { rootMargin: '256px' }\n );\n\n observer.observe(el);\n return () => observer.disconnect();\n }, [effectsOn]);\n\n // Pulse Outside glow geometry is authored in fixed pixels for a reference\n // element (~350x140). Measure the actual wrapped element and scale the glow\n // per-axis so the halo grows/shrinks to fit any component it's applied to.\n useEffect(() => {\n if (!effectsOn || size !== 'pulse-outside') {\n setPulseGlowScale({ x: 1, y: 1 });\n return;\n }\n\n const el = internalRef.current;\n if (!el) return;\n\n const REF_WIDTH = 350;\n const REF_HEIGHT = 140;\n // Allow the glow to both shrink (small buttons) and grow (large cards),\n // with generous bounds to avoid degenerate geometry at the extremes.\n const MIN_SCALE = 0.35;\n const MAX_SCALE = 4;\n const clamp = (value: number) => Math.max(MIN_SCALE, Math.min(MAX_SCALE, value));\n\n const measure = () => {\n const child = el.firstElementChild as HTMLElement | null;\n if (!child) return;\n const rect = child.getBoundingClientRect();\n if (!rect.width || !rect.height) return;\n const x = +clamp(rect.width / REF_WIDTH).toFixed(3);\n const y = +clamp(rect.height / REF_HEIGHT).toFixed(3);\n setPulseGlowScale(prev => (prev.x === x && prev.y === y ? prev : { x, y }));\n };\n\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n\n const child = el.firstElementChild as HTMLElement | null;\n if (!child) return;\n\n const resizeObserver = new ResizeObserver(measure);\n resizeObserver.observe(child);\n return () => resizeObserver.disconnect();\n }, [effectsOn, size, children]);\n\n const handleAnimationEnd = useCallback(\n (e: AnimationEvent<HTMLDivElement>) => {\n const animationName = e.animationName;\n\n if (animationName.includes('fade-out')) {\n setIsActive(false);\n setIsFading(false);\n onDeactivate?.();\n } else if (animationName.includes('fade-in')) {\n onActivate?.();\n }\n\n consumerOnAnimationEnd?.(e);\n },\n [onActivate, onDeactivate, consumerOnAnimationEnd]\n );\n\n const resolvedTheme = resolveTheme(theme, systemTheme);\n const themeConfig = sizeThemePresets[size][resolvedTheme];\n const sizeConfig = sizePresets[size];\n\n const isPulse = size === 'pulse-inner' || size === 'pulse-outside';\n\n const finalBorderRadius = customBorderRadius ?? detectedRadius ?? sizeConfig.borderRadius;\n const finalDuration = duration ?? (size === 'line' ? 3.1 : isPulse ? 2.3 : 1.96);\n const finalSaturation = saturation ?? themeConfig.saturation;\n const finalBrightness = brightnessProp ?? themeConfig.brightness ?? 1.3;\n const finalHueRange = size === 'line' ? Math.min(hueRange, 13) : hueRange;\n const finalStaticColors = colorVariant === 'mono' ? true : staticColors;\n\n const cssStyles = useMemo(\n () =>\n !effectsOn\n ? ''\n : generateBeamCSS({\n id,\n borderRadius: finalBorderRadius,\n borderWidth: sizeConfig.borderWidth,\n duration: finalDuration,\n strokeOpacity: themeConfig.strokeOpacity,\n innerOpacity: themeConfig.innerOpacity,\n bloomOpacity: themeConfig.bloomOpacity,\n innerShadow: themeConfig.innerShadow,\n size,\n colorVariant,\n staticColors: finalStaticColors,\n brightness: finalBrightness,\n saturation: finalSaturation,\n hueRange: finalHueRange,\n theme: resolvedTheme,\n hairlineOpacity: themeConfig.hairlineOpacity,\n }),\n [\n effectsOn,\n id,\n finalBorderRadius,\n sizeConfig.borderWidth,\n finalDuration,\n themeConfig.strokeOpacity,\n themeConfig.innerOpacity,\n themeConfig.bloomOpacity,\n themeConfig.innerShadow,\n themeConfig.hairlineOpacity,\n size,\n colorVariant,\n finalStaticColors,\n finalBrightness,\n finalSaturation,\n finalHueRange,\n resolvedTheme,\n ]\n );\n\n // Runtime config for the JS breathing driver (null for non-pulse sizes).\n const driverConfig = useMemo(\n () =>\n isPulse\n ? getPulseDriverConfig(size, resolvedTheme, finalDuration, finalHueRange, finalStaticColors, id)\n : null,\n [isPulse, size, resolvedTheme, finalDuration, finalHueRange, finalStaticColors, id]\n );\n\n // Drive the Pulse breathing from the shared, fps-capped rAF loop while the\n // instance is on, onscreen, and the user hasn't requested reduced motion.\n useEffect(() => {\n if (!driverConfig) return;\n if (!(isActive || isFading) || !isVisible) return;\n\n const el = internalRef.current;\n if (!el) return;\n\n if (\n typeof window !== 'undefined' &&\n window.matchMedia?.('(prefers-reduced-motion: reduce)').matches\n ) {\n return;\n }\n\n return registerPulseInstance(el, driverConfig);\n }, [driverConfig, isActive, isFading, isVisible]);\n\n const setRefs = useCallback(\n (node: HTMLDivElement | null) => {\n (internalRef as MutableRefObject<HTMLDivElement | null>).current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n (ref as MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [ref]\n );\n\n const mergedStyle = {\n ...(style ?? {}),\n '--beam-strength': Math.max(0, Math.min(1, strength)),\n ...(size === 'pulse-outside'\n ? { '--pulse-glow-sx': pulseGlowScale.x, '--pulse-glow-sy': pulseGlowScale.y }\n : {}),\n } as CSSProperties;\n\n return (\n <>\n {effectsOn && <style>{cssStyles}</style>}\n <div\n {...props}\n ref={setRefs}\n data-beam={id}\n data-active={isActive && !isFading ? '' : undefined}\n data-fading={isFading ? '' : undefined}\n data-paused={isActive && !isFading && !isVisible ? '' : undefined}\n className={className}\n style={mergedStyle}\n onAnimationEnd={handleAnimationEnd}\n >\n {children}\n <div data-beam-bloom />\n </div>\n </>\n );\n }\n);\n\nexport default BorderBeam;\n","// Copyright (c) 2026, Invergent SA, developed by Flavius Burca\n// SPDX-License-Identifier: AGPL-3.0-only\n//\n// The platform-flavored border beam: always the Surogate amber `brand`\n// palette, app-aware light/dark, and motion-safe. The rotate presets\n// (`sm`/`md`/`line`) have no built-in `prefers-reduced-motion` handling\n// upstream, so this wrapper deactivates them for reduced-motion users;\n// the pulse presets already render a static frame on their own.\n\nimport { useSyncExternalStore, type ReactNode } from \"react\";\nimport { BorderBeam, type BorderBeamSize } from \"./border-beam\";\n\nconst ROTATE_SIZES: ReadonlySet<BorderBeamSize> = new Set([\"sm\", \"md\", \"line\"]);\n\n// One shared matchMedia subscription for every BrandBeam instance —\n// reduced motion is a global signal, so per-instance listeners would\n// only multiply with wrapper count.\nconst REDUCED_MOTION_QUERY = \"(prefers-reduced-motion: reduce)\";\n\nfunction subscribeReducedMotion(onChange: () => void): () => void {\n if (typeof window === \"undefined\" || !window.matchMedia) return () => {};\n const mediaQuery = window.matchMedia(REDUCED_MOTION_QUERY);\n mediaQuery.addEventListener(\"change\", onChange);\n return () => mediaQuery.removeEventListener(\"change\", onChange);\n}\n\nfunction readReducedMotion(): boolean {\n if (typeof window === \"undefined\" || !window.matchMedia) return false;\n return window.matchMedia(REDUCED_MOTION_QUERY).matches;\n}\n\nfunction readReducedMotionServer(): boolean {\n return false;\n}\n\nexport interface BrandBeamProps {\n children: ReactNode;\n /** Beam preset. Rotate: sm|md|line; pulse: pulse-inner|pulse-outside. */\n size?: BorderBeamSize;\n /** Whether the beam is showing; fades smoothly on change. */\n active?: boolean;\n /** Effect opacity 0–1; only affects the beam layers. */\n strength?: number;\n /** Explicit border radius in px; auto-detected from the child when omitted. */\n borderRadius?: number;\n className?: string;\n}\n\n/**\n * Wrap an element in the Surogate-branded border beam. Renders the\n * amber ramp in both themes and honors `prefers-reduced-motion`.\n */\nexport function BrandBeam({\n children,\n size = \"md\",\n active = true,\n strength,\n borderRadius,\n className,\n}: BrandBeamProps) {\n const reducedMotion = useSyncExternalStore(\n subscribeReducedMotion,\n readReducedMotion,\n readReducedMotionServer,\n );\n const effectiveActive =\n active && !(reducedMotion && ROTATE_SIZES.has(size));\n\n return (\n <BorderBeam\n size={size}\n colorVariant=\"brand\"\n theme=\"auto\"\n active={effectiveActive}\n strength={strength}\n borderRadius={borderRadius}\n className={className}\n >\n {children}\n </BorderBeam>\n );\n}\n"]}
|
package/dist/button.cjs
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkVBICNC43_cjs = require('./chunk-VBICNC43.cjs');
|
|
4
|
+
require('./chunk-6YHDDRIM.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "Button", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkVBICNC43_cjs.Button; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "buttonVariants", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunkVBICNC43_cjs.buttonVariants; }
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=button.cjs.map
|
|
17
|
+
//# sourceMappingURL=button.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"button.cjs"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const buttonVariants: (props?: ({
|
|
7
|
+
variant?: "default" | "destructive" | "link" | "secondary" | "outline" | "ghost" | null | undefined;
|
|
8
|
+
size?: "default" | "sm" | "lg" | "icon" | "xs" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
}): react_jsx_runtime.JSX.Element;
|
|
13
|
+
|
|
14
|
+
export { Button, buttonVariants };
|
package/dist/button.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { VariantProps } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
declare const buttonVariants: (props?: ({
|
|
7
|
+
variant?: "default" | "destructive" | "link" | "secondary" | "outline" | "ghost" | null | undefined;
|
|
8
|
+
size?: "default" | "sm" | "lg" | "icon" | "xs" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
|
+
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
}): react_jsx_runtime.JSX.Element;
|
|
13
|
+
|
|
14
|
+
export { Button, buttonVariants };
|
package/dist/button.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"button.js"}
|