@heyramzi/ui 2.11.1 → 2.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/dist/agents/helpers.js +38 -38
  2. package/dist/agents/page-state.js +49 -50
  3. package/dist/agents/vendor/color.js +146 -127
  4. package/dist/agents/vendor/draw.js +617 -508
  5. package/dist/agents/vendor/engine.js +698 -599
  6. package/dist/agents/vendor/mesh.js +653 -683
  7. package/dist/agents/vendor/plastic.js +3913 -3112
  8. package/dist/agents/vendor/presets.js +163 -164
  9. package/dist/agents/vendor/shapes.js +21 -20
  10. package/dist/agents/vendor/ticker.js +41 -42
  11. package/dist/agents/vendor/types.js +1 -0
  12. package/dist/agents/vendor/wear.js +1421 -1448
  13. package/dist/ai/confirmation/confirmation-context.svelte.js +6 -6
  14. package/dist/ai/confirmation/index.js +3 -1
  15. package/dist/ai/index.js +33 -0
  16. package/dist/ai/prompt-input/index.js +3 -1
  17. package/dist/ai/reasoning/index.js +3 -1
  18. package/dist/ai/reasoning/reasoning-context.svelte.js +6 -6
  19. package/dist/ai/suggestion/index.js +3 -1
  20. package/dist/ai/typing-dots/index.js +3 -1
  21. package/dist/animations/text-swap.js +24 -24
  22. package/dist/brand/index.js +54 -48
  23. package/dist/canvas/card/resize.js +5 -3
  24. package/dist/canvas/edges/edge-path.js +255 -242
  25. package/dist/canvas/editor/context-menu.js +39 -36
  26. package/dist/canvas/editor/dispatch.svelte.js +154 -151
  27. package/dist/canvas/editor/editor-context.js +7 -2
  28. package/dist/canvas/editor/editor-mode.js +1 -0
  29. package/dist/canvas/editor/frame.js +73 -76
  30. package/dist/canvas/editor/hand-context.js +5 -2
  31. package/dist/canvas/editor/history-core.js +163 -191
  32. package/dist/canvas/editor/keymap.js +95 -169
  33. package/dist/canvas/editor/layout-actions.js +143 -144
  34. package/dist/canvas/editor/lock.js +52 -51
  35. package/dist/canvas/editor/rebase.js +217 -240
  36. package/dist/canvas/editor/style.js +132 -137
  37. package/dist/canvas/editor/text-field-context.js +7 -2
  38. package/dist/canvas/editor/z-order.js +65 -70
  39. package/dist/canvas/headless/alignment.js +22 -16
  40. package/dist/canvas/headless/break-apart-find.js +286 -279
  41. package/dist/canvas/headless/break-apart-pieces.js +62 -58
  42. package/dist/canvas/headless/break-apart-plan.js +299 -325
  43. package/dist/canvas/headless/break-apart-style.js +75 -70
  44. package/dist/canvas/headless/break-apart.js +188 -181
  45. package/dist/canvas/headless/canvas-cleanup.js +78 -58
  46. package/dist/canvas/headless/edge-anchors.js +115 -116
  47. package/dist/canvas/headless/edge-memo.js +24 -22
  48. package/dist/canvas/headless/edge-serialization.js +17 -27
  49. package/dist/canvas/headless/figure-geometry.js +232 -264
  50. package/dist/canvas/headless/fit-viewport.js +84 -67
  51. package/dist/canvas/headless/grid.js +88 -86
  52. package/dist/canvas/headless/icon-node.js +44 -36
  53. package/dist/canvas/headless/index.js +1 -0
  54. package/dist/canvas/headless/linkify.js +17 -19
  55. package/dist/canvas/headless/pen-marks.js +101 -95
  56. package/dist/canvas/headless/sketch.js +231 -209
  57. package/dist/canvas/headless/snap-guides.js +99 -83
  58. package/dist/canvas/headless/svg-figure.js +133 -117
  59. package/dist/canvas/headless/table-layout.js +146 -107
  60. package/dist/canvas/index.js +2 -0
  61. package/dist/canvas/lod/lod-mode.svelte.js +20 -18
  62. package/dist/canvas/lod/render-all.svelte.js +36 -39
  63. package/dist/canvas/ops/arrange.js +78 -71
  64. package/dist/canvas/ops/ops.js +260 -255
  65. package/dist/canvas/pen/colors.js +37 -35
  66. package/dist/canvas/pen/eraser.js +28 -27
  67. package/dist/canvas/pen/geometry.js +120 -130
  68. package/dist/canvas/pen/index.js +1 -0
  69. package/dist/canvas/pen/ops.js +11 -11
  70. package/dist/canvas/pen/pen-session.js +150 -159
  71. package/dist/canvas/pen/plugin.js +107 -104
  72. package/dist/canvas/pen/shapes.js +73 -68
  73. package/dist/canvas/pen/stroke-path.js +32 -30
  74. package/dist/canvas/pen/types.js +21 -21
  75. package/dist/canvas/pen/ui.js +10 -8
  76. package/dist/canvas/plugin.js +46 -46
  77. package/dist/canvas/screen/glyphs.js +12 -11
  78. package/dist/canvas/screen/labels.js +22 -22
  79. package/dist/canvas/screen/parts.js +98 -111
  80. package/dist/canvas/screen/plugin.js +47 -56
  81. package/dist/canvas/screen/types.js +30 -35
  82. package/dist/canvas/screen/ui.js +7 -7
  83. package/dist/canvas/test-utils.js +14 -14
  84. package/dist/canvas/types.js +1 -0
  85. package/dist/canvas/ui/forward-wheel.js +24 -25
  86. package/dist/canvas/ui/icons.js +64 -131
  87. package/dist/canvas/ui/place-panel.js +58 -49
  88. package/dist/canvas/ui/shortcut-tip.js +14 -12
  89. package/dist/canvas/ui/tools.js +300 -385
  90. package/dist/charts/dashboard/chart.js +4 -0
  91. package/dist/charts/dashboard/data-table.js +11 -0
  92. package/dist/charts/dashboard/windows.js +8 -3
  93. package/dist/charts/edge-fade.js +10 -5
  94. package/dist/charts/hover-band.js +16 -11
  95. package/dist/charts/index.js +0 -1
  96. package/dist/charts/motion.js +11 -7
  97. package/dist/charts/primitives/chart-utils.js +12 -12
  98. package/dist/components/copy/clipboard.js +32 -32
  99. package/dist/components/copy/copied.svelte.js +31 -23
  100. package/dist/components/data-table/data-table.js +39 -39
  101. package/dist/components/docs/index.js +4 -0
  102. package/dist/components/docs/scroll-spy.svelte.js +73 -68
  103. package/dist/components/list-page/filter-section.js +4 -1
  104. package/dist/components/list-page/index.js +2 -0
  105. package/dist/components/list-page/list-table.js +7 -2
  106. package/dist/components/list-page/queue-rail.js +14 -0
  107. package/dist/components/list-page/section-host.js +4 -2
  108. package/dist/components/list-page/step.js +4 -3
  109. package/dist/components/list-page/types.js +1 -0
  110. package/dist/components/picker/trigger.js +48 -30
  111. package/dist/components/picker/types.js +1 -0
  112. package/dist/components/segmented/collapse.js +38 -27
  113. package/dist/components/segmented/index.js +8 -0
  114. package/dist/components/segmented/segmented.js +67 -42
  115. package/dist/components/star-rating-input/index.js +3 -1
  116. package/dist/components/table-view/types.js +1 -0
  117. package/dist/components/tags-input/tags.js +81 -69
  118. package/dist/components/theme/index.js +4 -0
  119. package/dist/components/toolbar/index.js +4 -0
  120. package/dist/components/toolbar/toolbar-trigger.js +14 -1
  121. package/dist/editor/anchors.js +17 -13
  122. package/dist/editor/block-id.js +52 -51
  123. package/dist/editor/block-ops.js +108 -80
  124. package/dist/editor/doc-blocks.js +155 -166
  125. package/dist/editor/extensions.js +139 -180
  126. package/dist/editor/index.js +4 -0
  127. package/dist/editor/markdown-test-helpers.js +4 -2
  128. package/dist/editor/markdown.js +420 -408
  129. package/dist/editor/serializer.js +204 -200
  130. package/dist/editor/slash-items.js +89 -101
  131. package/dist/editor/youtube-url.js +25 -20
  132. package/dist/effects/animated-beam/path-calculator.svelte.js +43 -38
  133. package/dist/effects/animated-beam/types.js +1 -0
  134. package/dist/effects/border-beam/css.js +92 -78
  135. package/dist/effects/border-beam/presets.js +1705 -1720
  136. package/dist/effects/border-beam/register-properties.js +43 -33
  137. package/dist/effects/border-beam/types.js +1 -0
  138. package/dist/effects/image-comparison/compare.js +3 -2
  139. package/dist/effects/image-reveal/types.js +1 -0
  140. package/dist/effects/magnetic/magnetic.js +58 -52
  141. package/dist/effects/reveal/observe.js +50 -40
  142. package/dist/effects/reveal/types.js +1 -0
  143. package/dist/effects/shader-gradient/color.js +36 -29
  144. package/dist/effects/shader-gradient/renderer.js +384 -295
  145. package/dist/effects/shader-gradient/shaders.js +31 -0
  146. package/dist/effects/shader-gradient/types.js +1 -0
  147. package/dist/icons/apple-symbol-exports.js +99 -124
  148. package/dist/icons/sf-symbols.js +357 -461
  149. package/dist/icons/trades.js +43 -28
  150. package/dist/inbox/index.js +1 -0
  151. package/dist/inbox/logic.js +126 -122
  152. package/dist/inbox/types.js +43 -43
  153. package/dist/lib/arrive.js +19 -12
  154. package/dist/lib/icon-types.js +1 -0
  155. package/dist/lib/initials.js +16 -10
  156. package/dist/lib/layout.js +5 -0
  157. package/dist/lib/panel.js +13 -0
  158. package/dist/lib/result.js +22 -22
  159. package/dist/lib/sliding-pill.js +59 -44
  160. package/dist/lib/theme-transition.js +43 -43
  161. package/dist/lib/tone.js +31 -24
  162. package/dist/lib/utils.js +3 -1
  163. package/dist/onboarding/define-tours.js +24 -23
  164. package/dist/onboarding/onboarding.svelte.js +16 -12
  165. package/dist/onboarding/pick.js +10 -6
  166. package/dist/onboarding/stores.js +40 -41
  167. package/dist/onboarding/wait.js +24 -23
  168. package/dist/panel/side-panel-types.js +1 -0
  169. package/dist/record/demo-data.js +459 -486
  170. package/dist/record/fields.js +129 -131
  171. package/dist/record/format.js +70 -82
  172. package/dist/record/gutter.js +1 -0
  173. package/dist/record/kinds.js +95 -105
  174. package/dist/record/logic.js +238 -219
  175. package/dist/record/types.js +49 -48
  176. package/dist/shadcn/accordion/index.js +3 -1
  177. package/dist/shadcn/alert/index.js +3 -1
  178. package/dist/shadcn/alert-dialog/index.js +3 -1
  179. package/dist/shadcn/attachment/index.js +3 -1
  180. package/dist/shadcn/avatar/index.js +3 -1
  181. package/dist/shadcn/breadcrumb/index.js +3 -1
  182. package/dist/shadcn/bubble/index.js +3 -1
  183. package/dist/shadcn/button/index.js +3 -1
  184. package/dist/shadcn/calendar/index.js +3 -1
  185. package/dist/shadcn/card/index.js +3 -1
  186. package/dist/shadcn/checkbox/index.js +3 -1
  187. package/dist/shadcn/code-block/index.js +3 -1
  188. package/dist/shadcn/collapsible/index.js +3 -1
  189. package/dist/shadcn/command/index.js +4 -1
  190. package/dist/shadcn/context-menu/index.js +3 -1
  191. package/dist/shadcn/dialog/index.js +3 -1
  192. package/dist/shadcn/dropdown-menu/menu-item.js +40 -20
  193. package/dist/shadcn/empty/index.js +3 -1
  194. package/dist/shadcn/field/index.js +3 -1
  195. package/dist/shadcn/hooks/highlighter.js +77 -75
  196. package/dist/shadcn/hooks/is-mobile.svelte.js +3 -3
  197. package/dist/shadcn/hooks/use-highlighted-code.svelte.js +62 -62
  198. package/dist/shadcn/input/index.js +3 -1
  199. package/dist/shadcn/kbd/index.js +3 -1
  200. package/dist/shadcn/label/index.js +3 -1
  201. package/dist/shadcn/marker/index.js +3 -1
  202. package/dist/shadcn/message/index.js +3 -1
  203. package/dist/shadcn/message-scroller/index.js +3 -1
  204. package/dist/shadcn/popover/index.js +3 -1
  205. package/dist/shadcn/progress/index.js +3 -1
  206. package/dist/shadcn/progress/tone.js +8 -7
  207. package/dist/shadcn/radio-group/index.js +3 -1
  208. package/dist/shadcn/scroll-area/index.js +3 -1
  209. package/dist/shadcn/select/index.js +3 -1
  210. package/dist/shadcn/separator/index.js +3 -1
  211. package/dist/shadcn/sheet/index.js +3 -1
  212. package/dist/shadcn/sidebar/context.svelte.js +42 -28
  213. package/dist/shadcn/sidebar/index.js +3 -1
  214. package/dist/shadcn/skeleton/index.js +3 -1
  215. package/dist/shadcn/slider/index.js +3 -1
  216. package/dist/shadcn/switch/index.js +3 -1
  217. package/dist/shadcn/table/index.js +3 -1
  218. package/dist/shadcn/tabs/index.js +3 -1
  219. package/dist/shadcn/textarea/index.js +3 -1
  220. package/dist/shadcn/toggle/index.js +3 -1
  221. package/dist/shadcn/toggle-group/index.js +3 -1
  222. package/dist/shadcn/tooltip/context.js +7 -2
  223. package/dist/shadcn/tooltip/index.js +3 -1
  224. package/dist/shadcn/trace/index.js +3 -1
  225. package/dist/slides/bridges.js +65 -59
  226. package/dist/slides/deck-controller.svelte.js +210 -207
  227. package/dist/slides/export/capture.js +66 -71
  228. package/dist/slides/export/ffmpeg.js +76 -72
  229. package/dist/slides/export/index.js +3 -0
  230. package/dist/slides/export/launch.js +9 -6
  231. package/dist/slides/export/pdf.js +60 -54
  232. package/dist/slides/export/types.js +1 -0
  233. package/dist/slides/labels.js +24 -24
  234. package/dist/slides/layout.js +39 -41
  235. package/dist/slides/model.js +9 -7
  236. package/dist/slides/navigation.js +78 -73
  237. package/dist/slides/types.js +2 -2
  238. package/dist/status/define-statuses.js +18 -14
  239. package/dist/status/status-types.js +1 -0
  240. package/dist/test-setup.js +24 -20
  241. package/dist/thread/logic.js +73 -77
  242. package/dist/thread/types.js +21 -21
  243. package/dist/work/board-order.js +94 -90
  244. package/dist/work/dates.js +16 -9
  245. package/dist/work/detail/detail-types.js +18 -18
  246. package/dist/work/docs/edited.js +32 -29
  247. package/dist/work/docs/index.js +4 -0
  248. package/dist/work/docs/labels.js +34 -34
  249. package/dist/work/docs/menu.js +113 -106
  250. package/dist/work/docs/outline.js +39 -29
  251. package/dist/work/gantt/logic.js +211 -235
  252. package/dist/work/inbox/inbox-logic.js +71 -75
  253. package/dist/work/inbox/inbox-statuses.js +75 -72
  254. package/dist/work/inbox/inbox-types.js +1 -0
  255. package/dist/work/kanban-drag.js +27 -22
  256. package/dist/work/kanban-types.js +1 -0
  257. package/dist/work/presets/sales.js +36 -32
  258. package/dist/work/reorder.js +9 -8
  259. package/dist/work/task-types.js +1 -0
  260. package/dist/work/time/duration.js +51 -46
  261. package/dist/work/time/time-types.js +23 -23
  262. package/dist/work/use-kanban-dnd.svelte.js +126 -125
  263. package/package.json +3 -1
  264. package/src/components/list-page/master-detail.svelte +3 -1
  265. package/src/components/list-page/rail-row.svelte +4 -4
  266. package/src/editor/markdown.ts +30 -35
@@ -1,1736 +1,1719 @@
1
1
  export const sizePresets = {
2
- sm: {
3
- borderRadius: 18,
4
- borderWidth: 1,
5
- width: 70,
6
- height: 36
7
- },
8
- md: {
9
- borderRadius: 16,
10
- borderWidth: 1
11
- },
12
- line: {
13
- borderRadius: 16,
14
- borderWidth: 1
15
- }
2
+ sm: {
3
+ borderRadius: 18,
4
+ borderWidth: 1,
5
+ width: 70,
6
+ height: 36
7
+ },
8
+ md: {
9
+ borderRadius: 16,
10
+ borderWidth: 1
11
+ },
12
+ line: {
13
+ borderRadius: 16,
14
+ borderWidth: 1
15
+ }
16
16
  };
17
17
  export const sizeThemePresets = {
18
- sm: {
19
- dark: {
20
- strokeOpacity: 0.48,
21
- innerOpacity: 0.7,
22
- bloomOpacity: 0.8,
23
- innerShadow: "rgba(255, 255, 255, 0.3)",
24
- saturation: 1.2
25
- },
26
- light: {
27
- strokeOpacity: 0.33,
28
- innerOpacity: 0.46,
29
- bloomOpacity: 0.54,
30
- innerShadow: "rgba(0, 0, 0, 0.14)",
31
- saturation: 0.96
32
- }
33
- },
34
- md: {
35
- dark: {
36
- strokeOpacity: 0.48,
37
- innerOpacity: 0.7,
38
- bloomOpacity: 0.8,
39
- innerShadow: "rgba(255, 255, 255, 0.27)",
40
- saturation: 1.2
41
- },
42
- light: {
43
- strokeOpacity: 0.33,
44
- innerOpacity: 0.46,
45
- bloomOpacity: 0.54,
46
- innerShadow: "rgba(0, 0, 0, 0.14)",
47
- saturation: 0.96
48
- }
49
- },
50
- line: {
51
- dark: {
52
- strokeOpacity: 0.72,
53
- innerOpacity: 0.7,
54
- bloomOpacity: 0.8,
55
- innerShadow: "rgba(255, 255, 255, 0.1)",
56
- saturation: 1.2
57
- },
58
- light: {
59
- strokeOpacity: 0.72,
60
- innerOpacity: 0.7,
61
- bloomOpacity: 0.8,
62
- innerShadow: "rgba(0, 0, 0, 0.14)",
63
- saturation: 1.2
64
- }
65
- }
18
+ sm: {
19
+ dark: {
20
+ strokeOpacity: .48,
21
+ innerOpacity: .7,
22
+ bloomOpacity: .8,
23
+ innerShadow: "rgba(255, 255, 255, 0.3)",
24
+ saturation: 1.2
25
+ },
26
+ light: {
27
+ strokeOpacity: .33,
28
+ innerOpacity: .46,
29
+ bloomOpacity: .54,
30
+ innerShadow: "rgba(0, 0, 0, 0.14)",
31
+ saturation: .96
32
+ }
33
+ },
34
+ md: {
35
+ dark: {
36
+ strokeOpacity: .48,
37
+ innerOpacity: .7,
38
+ bloomOpacity: .8,
39
+ innerShadow: "rgba(255, 255, 255, 0.27)",
40
+ saturation: 1.2
41
+ },
42
+ light: {
43
+ strokeOpacity: .33,
44
+ innerOpacity: .46,
45
+ bloomOpacity: .54,
46
+ innerShadow: "rgba(0, 0, 0, 0.14)",
47
+ saturation: .96
48
+ }
49
+ },
50
+ line: {
51
+ dark: {
52
+ strokeOpacity: .72,
53
+ innerOpacity: .7,
54
+ bloomOpacity: .8,
55
+ innerShadow: "rgba(255, 255, 255, 0.1)",
56
+ saturation: 1.2
57
+ },
58
+ light: {
59
+ strokeOpacity: .72,
60
+ innerOpacity: .7,
61
+ bloomOpacity: .8,
62
+ innerShadow: "rgba(0, 0, 0, 0.14)",
63
+ saturation: 1.2
64
+ }
65
+ }
66
66
  };
67
67
  export const themeColors = {
68
- dark: {
69
- ...sizeThemePresets.md.dark
70
- },
71
- light: {
72
- ...sizeThemePresets.md.light
73
- }
68
+ dark: { ...sizeThemePresets.md.dark },
69
+ light: { ...sizeThemePresets.md.light }
74
70
  };
75
71
  const borderColors = {
76
- colorful: {
77
- border: [
78
- {
79
- color: "rgb(255, 50, 100)",
80
- pos: "33% -7.4%",
81
- size: "70px 40px"
82
- },
83
- {
84
- color: "rgb(40, 140, 255)",
85
- pos: "12% -5%",
86
- size: "60px 35px"
87
- },
88
- {
89
- color: "rgb(50, 200, 80)",
90
- pos: "2.1% 68.3%",
91
- size: "40px 70px"
92
- },
93
- {
94
- color: "rgb(30, 185, 170)",
95
- pos: "2.1% 68.3%",
96
- size: "20px 35px"
97
- },
98
- {
99
- color: "rgb(100, 70, 255)",
100
- pos: "74.4% 100%",
101
- size: "180px 32px"
102
- },
103
- {
104
- color: "rgb(40, 140, 255)",
105
- pos: "55% 100%",
106
- size: "85px 26px"
107
- },
108
- {
109
- color: "rgb(255, 120, 40)",
110
- pos: "93.9% 0%",
111
- size: "74px 32px"
112
- },
113
- {
114
- color: "rgb(240, 50, 180)",
115
- pos: "100% 27.1%",
116
- size: "26px 42px"
117
- },
118
- {
119
- color: "rgb(180, 40, 240)",
120
- pos: "100% 27.1%",
121
- size: "52px 48px"
122
- }
123
- ],
124
- spike: {
125
- primary: "rgb(255, 60, 80)",
126
- secondary: "rgba(40, 190, 180, 0.98)"
127
- },
128
- spikeLt: {
129
- primary: "rgb(200, 30, 60)",
130
- secondary: "rgb(20, 150, 140)"
131
- }
132
- },
133
- mono: {
134
- border: [
135
- {
136
- color: "rgb(180, 180, 180)",
137
- pos: "33% -7.4%",
138
- size: "70px 40px"
139
- },
140
- {
141
- color: "rgb(140, 140, 140)",
142
- pos: "12% -5%",
143
- size: "60px 35px"
144
- },
145
- {
146
- color: "rgb(160, 160, 160)",
147
- pos: "2.1% 68.3%",
148
- size: "40px 70px"
149
- },
150
- {
151
- color: "rgb(130, 130, 130)",
152
- pos: "2.1% 68.3%",
153
- size: "20px 35px"
154
- },
155
- {
156
- color: "rgb(170, 170, 170)",
157
- pos: "74.4% 100%",
158
- size: "180px 32px"
159
- },
160
- {
161
- color: "rgb(150, 150, 150)",
162
- pos: "55% 100%",
163
- size: "85px 26px"
164
- },
165
- {
166
- color: "rgb(190, 190, 190)",
167
- pos: "93.9% 0%",
168
- size: "74px 32px"
169
- },
170
- {
171
- color: "rgb(145, 145, 145)",
172
- pos: "100% 27.1%",
173
- size: "26px 42px"
174
- },
175
- {
176
- color: "rgb(165, 165, 165)",
177
- pos: "100% 27.1%",
178
- size: "52px 48px"
179
- }
180
- ],
181
- spike: {
182
- primary: "rgb(200, 200, 200)",
183
- secondary: "rgb(170, 170, 170)"
184
- },
185
- spikeLt: {
186
- primary: "rgb(80, 80, 80)",
187
- secondary: "rgb(120, 120, 120)"
188
- }
189
- },
190
- ocean: {
191
- border: [
192
- {
193
- color: "rgb(100, 80, 220)",
194
- pos: "33% -7.4%",
195
- size: "70px 40px"
196
- },
197
- {
198
- color: "rgb(60, 120, 255)",
199
- pos: "12% -5%",
200
- size: "60px 35px"
201
- },
202
- {
203
- color: "rgb(80, 100, 200)",
204
- pos: "2.1% 68.3%",
205
- size: "40px 70px"
206
- },
207
- {
208
- color: "rgb(50, 140, 220)",
209
- pos: "2.1% 68.3%",
210
- size: "20px 35px"
211
- },
212
- {
213
- color: "rgb(120, 80, 255)",
214
- pos: "74.4% 100%",
215
- size: "180px 32px"
216
- },
217
- {
218
- color: "rgb(70, 130, 255)",
219
- pos: "55% 100%",
220
- size: "85px 26px"
221
- },
222
- {
223
- color: "rgb(140, 100, 240)",
224
- pos: "93.9% 0%",
225
- size: "74px 32px"
226
- },
227
- {
228
- color: "rgb(90, 110, 230)",
229
- pos: "100% 27.1%",
230
- size: "26px 42px"
231
- },
232
- {
233
- color: "rgb(130, 70, 255)",
234
- pos: "100% 27.1%",
235
- size: "52px 48px"
236
- }
237
- ],
238
- spike: {
239
- primary: "rgb(100, 120, 255)",
240
- secondary: "rgba(130, 100, 220, 0.98)"
241
- },
242
- spikeLt: {
243
- primary: "rgb(60, 60, 180)",
244
- secondary: "rgb(80, 100, 200)"
245
- }
246
- },
247
- sunset: {
248
- border: [
249
- {
250
- color: "rgb(255, 80, 50)",
251
- pos: "33% -7.4%",
252
- size: "70px 40px"
253
- },
254
- {
255
- color: "rgb(255, 160, 40)",
256
- pos: "12% -5%",
257
- size: "60px 35px"
258
- },
259
- {
260
- color: "rgb(255, 120, 60)",
261
- pos: "2.1% 68.3%",
262
- size: "40px 70px"
263
- },
264
- {
265
- color: "rgb(255, 200, 50)",
266
- pos: "2.1% 68.3%",
267
- size: "20px 35px"
268
- },
269
- {
270
- color: "rgb(255, 100, 80)",
271
- pos: "74.4% 100%",
272
- size: "180px 32px"
273
- },
274
- {
275
- color: "rgb(255, 180, 60)",
276
- pos: "55% 100%",
277
- size: "85px 26px"
278
- },
279
- {
280
- color: "rgb(255, 60, 60)",
281
- pos: "93.9% 0%",
282
- size: "74px 32px"
283
- },
284
- {
285
- color: "rgb(255, 140, 50)",
286
- pos: "100% 27.1%",
287
- size: "26px 42px"
288
- },
289
- {
290
- color: "rgb(255, 90, 70)",
291
- pos: "100% 27.1%",
292
- size: "52px 48px"
293
- }
294
- ],
295
- spike: {
296
- primary: "rgb(255, 140, 80)",
297
- secondary: "rgba(255, 100, 60, 0.98)"
298
- },
299
- spikeLt: {
300
- primary: "rgb(200, 80, 40)",
301
- secondary: "rgb(220, 120, 30)"
302
- }
303
- }
72
+ colorful: {
73
+ border: [
74
+ {
75
+ color: "rgb(255, 50, 100)",
76
+ pos: "33% -7.4%",
77
+ size: "70px 40px"
78
+ },
79
+ {
80
+ color: "rgb(40, 140, 255)",
81
+ pos: "12% -5%",
82
+ size: "60px 35px"
83
+ },
84
+ {
85
+ color: "rgb(50, 200, 80)",
86
+ pos: "2.1% 68.3%",
87
+ size: "40px 70px"
88
+ },
89
+ {
90
+ color: "rgb(30, 185, 170)",
91
+ pos: "2.1% 68.3%",
92
+ size: "20px 35px"
93
+ },
94
+ {
95
+ color: "rgb(100, 70, 255)",
96
+ pos: "74.4% 100%",
97
+ size: "180px 32px"
98
+ },
99
+ {
100
+ color: "rgb(40, 140, 255)",
101
+ pos: "55% 100%",
102
+ size: "85px 26px"
103
+ },
104
+ {
105
+ color: "rgb(255, 120, 40)",
106
+ pos: "93.9% 0%",
107
+ size: "74px 32px"
108
+ },
109
+ {
110
+ color: "rgb(240, 50, 180)",
111
+ pos: "100% 27.1%",
112
+ size: "26px 42px"
113
+ },
114
+ {
115
+ color: "rgb(180, 40, 240)",
116
+ pos: "100% 27.1%",
117
+ size: "52px 48px"
118
+ }
119
+ ],
120
+ spike: {
121
+ primary: "rgb(255, 60, 80)",
122
+ secondary: "rgba(40, 190, 180, 0.98)"
123
+ },
124
+ spikeLt: {
125
+ primary: "rgb(200, 30, 60)",
126
+ secondary: "rgb(20, 150, 140)"
127
+ }
128
+ },
129
+ mono: {
130
+ border: [
131
+ {
132
+ color: "rgb(180, 180, 180)",
133
+ pos: "33% -7.4%",
134
+ size: "70px 40px"
135
+ },
136
+ {
137
+ color: "rgb(140, 140, 140)",
138
+ pos: "12% -5%",
139
+ size: "60px 35px"
140
+ },
141
+ {
142
+ color: "rgb(160, 160, 160)",
143
+ pos: "2.1% 68.3%",
144
+ size: "40px 70px"
145
+ },
146
+ {
147
+ color: "rgb(130, 130, 130)",
148
+ pos: "2.1% 68.3%",
149
+ size: "20px 35px"
150
+ },
151
+ {
152
+ color: "rgb(170, 170, 170)",
153
+ pos: "74.4% 100%",
154
+ size: "180px 32px"
155
+ },
156
+ {
157
+ color: "rgb(150, 150, 150)",
158
+ pos: "55% 100%",
159
+ size: "85px 26px"
160
+ },
161
+ {
162
+ color: "rgb(190, 190, 190)",
163
+ pos: "93.9% 0%",
164
+ size: "74px 32px"
165
+ },
166
+ {
167
+ color: "rgb(145, 145, 145)",
168
+ pos: "100% 27.1%",
169
+ size: "26px 42px"
170
+ },
171
+ {
172
+ color: "rgb(165, 165, 165)",
173
+ pos: "100% 27.1%",
174
+ size: "52px 48px"
175
+ }
176
+ ],
177
+ spike: {
178
+ primary: "rgb(200, 200, 200)",
179
+ secondary: "rgb(170, 170, 170)"
180
+ },
181
+ spikeLt: {
182
+ primary: "rgb(80, 80, 80)",
183
+ secondary: "rgb(120, 120, 120)"
184
+ }
185
+ },
186
+ ocean: {
187
+ border: [
188
+ {
189
+ color: "rgb(100, 80, 220)",
190
+ pos: "33% -7.4%",
191
+ size: "70px 40px"
192
+ },
193
+ {
194
+ color: "rgb(60, 120, 255)",
195
+ pos: "12% -5%",
196
+ size: "60px 35px"
197
+ },
198
+ {
199
+ color: "rgb(80, 100, 200)",
200
+ pos: "2.1% 68.3%",
201
+ size: "40px 70px"
202
+ },
203
+ {
204
+ color: "rgb(50, 140, 220)",
205
+ pos: "2.1% 68.3%",
206
+ size: "20px 35px"
207
+ },
208
+ {
209
+ color: "rgb(120, 80, 255)",
210
+ pos: "74.4% 100%",
211
+ size: "180px 32px"
212
+ },
213
+ {
214
+ color: "rgb(70, 130, 255)",
215
+ pos: "55% 100%",
216
+ size: "85px 26px"
217
+ },
218
+ {
219
+ color: "rgb(140, 100, 240)",
220
+ pos: "93.9% 0%",
221
+ size: "74px 32px"
222
+ },
223
+ {
224
+ color: "rgb(90, 110, 230)",
225
+ pos: "100% 27.1%",
226
+ size: "26px 42px"
227
+ },
228
+ {
229
+ color: "rgb(130, 70, 255)",
230
+ pos: "100% 27.1%",
231
+ size: "52px 48px"
232
+ }
233
+ ],
234
+ spike: {
235
+ primary: "rgb(100, 120, 255)",
236
+ secondary: "rgba(130, 100, 220, 0.98)"
237
+ },
238
+ spikeLt: {
239
+ primary: "rgb(60, 60, 180)",
240
+ secondary: "rgb(80, 100, 200)"
241
+ }
242
+ },
243
+ sunset: {
244
+ border: [
245
+ {
246
+ color: "rgb(255, 80, 50)",
247
+ pos: "33% -7.4%",
248
+ size: "70px 40px"
249
+ },
250
+ {
251
+ color: "rgb(255, 160, 40)",
252
+ pos: "12% -5%",
253
+ size: "60px 35px"
254
+ },
255
+ {
256
+ color: "rgb(255, 120, 60)",
257
+ pos: "2.1% 68.3%",
258
+ size: "40px 70px"
259
+ },
260
+ {
261
+ color: "rgb(255, 200, 50)",
262
+ pos: "2.1% 68.3%",
263
+ size: "20px 35px"
264
+ },
265
+ {
266
+ color: "rgb(255, 100, 80)",
267
+ pos: "74.4% 100%",
268
+ size: "180px 32px"
269
+ },
270
+ {
271
+ color: "rgb(255, 180, 60)",
272
+ pos: "55% 100%",
273
+ size: "85px 26px"
274
+ },
275
+ {
276
+ color: "rgb(255, 60, 60)",
277
+ pos: "93.9% 0%",
278
+ size: "74px 32px"
279
+ },
280
+ {
281
+ color: "rgb(255, 140, 50)",
282
+ pos: "100% 27.1%",
283
+ size: "26px 42px"
284
+ },
285
+ {
286
+ color: "rgb(255, 90, 70)",
287
+ pos: "100% 27.1%",
288
+ size: "52px 48px"
289
+ }
290
+ ],
291
+ spike: {
292
+ primary: "rgb(255, 140, 80)",
293
+ secondary: "rgba(255, 100, 60, 0.98)"
294
+ },
295
+ spikeLt: {
296
+ primary: "rgb(200, 80, 40)",
297
+ secondary: "rgb(220, 120, 30)"
298
+ }
299
+ }
304
300
  };
305
301
  const smGradients = {
306
- colorful: {
307
- border: [
308
- {
309
- color: "rgb(50, 200, 80)",
310
- pos: "2% 68%",
311
- size: "9px 18px"
312
- },
313
- {
314
- color: "rgb(30, 185, 170)",
315
- pos: "2% 68%",
316
- size: "4px 8px"
317
- },
318
- {
319
- color: "rgb(255, 120, 40)",
320
- pos: "72% -3%",
321
- size: "59px 9px"
322
- },
323
- {
324
- color: "rgb(100, 70, 255)",
325
- pos: "74% 100%",
326
- size: "42px 7px"
327
- },
328
- {
329
- color: "rgb(240, 50, 180)",
330
- pos: "100% 27%",
331
- size: "10px 17px"
332
- },
333
- {
334
- color: "rgb(180, 40, 240)",
335
- pos: "100% 27%",
336
- size: "10px 18px"
337
- },
338
- {
339
- color: "rgb(40, 140, 255)",
340
- pos: "100% 27%",
341
- size: "5px 10px"
342
- },
343
- {
344
- color: "rgb(255, 50, 100)",
345
- pos: "100% 27%",
346
- size: "11px 12px"
347
- }
348
- ],
349
- inner: [
350
- {
351
- color: "rgba(50, 200, 80, 0.5)",
352
- pos: "2% 68%",
353
- size: "9px 18px"
354
- },
355
- {
356
- color: "rgba(30, 185, 170, 0.45)",
357
- pos: "2% 68%",
358
- size: "4px 8px"
359
- },
360
- {
361
- color: "rgba(255, 120, 40, 0.35)",
362
- pos: "72% -3%",
363
- size: "59px 9px"
364
- },
365
- {
366
- color: "rgba(100, 70, 255, 0.35)",
367
- pos: "74% 100%",
368
- size: "42px 7px"
369
- },
370
- {
371
- color: "rgba(240, 50, 180, 0.3)",
372
- pos: "100% 27%",
373
- size: "10px 17px"
374
- },
375
- {
376
- color: "rgba(180, 40, 240, 0.4)",
377
- pos: "100% 27%",
378
- size: "10px 18px"
379
- },
380
- {
381
- color: "rgba(40, 140, 255, 0.3)",
382
- pos: "100% 27%",
383
- size: "5px 10px"
384
- },
385
- {
386
- color: "rgba(255, 50, 100, 0.3)",
387
- pos: "100% 27%",
388
- size: "11px 12px"
389
- }
390
- ]
391
- },
392
- mono: {
393
- border: [
394
- {
395
- color: "rgb(160, 160, 160)",
396
- pos: "2% 68%",
397
- size: "9px 18px"
398
- },
399
- {
400
- color: "rgb(140, 140, 140)",
401
- pos: "2% 68%",
402
- size: "4px 8px"
403
- },
404
- {
405
- color: "rgb(180, 180, 180)",
406
- pos: "72% -3%",
407
- size: "59px 9px"
408
- },
409
- {
410
- color: "rgb(150, 150, 150)",
411
- pos: "74% 100%",
412
- size: "42px 7px"
413
- },
414
- {
415
- color: "rgb(170, 170, 170)",
416
- pos: "100% 27%",
417
- size: "10px 17px"
418
- },
419
- {
420
- color: "rgb(155, 155, 155)",
421
- pos: "100% 27%",
422
- size: "10px 18px"
423
- },
424
- {
425
- color: "rgb(145, 145, 145)",
426
- pos: "100% 27%",
427
- size: "5px 10px"
428
- },
429
- {
430
- color: "rgb(165, 165, 165)",
431
- pos: "100% 27%",
432
- size: "11px 12px"
433
- }
434
- ],
435
- inner: [
436
- {
437
- color: "rgba(160, 160, 160, 0.25)",
438
- pos: "2% 68%",
439
- size: "9px 18px"
440
- },
441
- {
442
- color: "rgba(140, 140, 140, 0.22)",
443
- pos: "2% 68%",
444
- size: "4px 8px"
445
- },
446
- {
447
- color: "rgba(180, 180, 180, 0.17)",
448
- pos: "72% -3%",
449
- size: "59px 9px"
450
- },
451
- {
452
- color: "rgba(150, 150, 150, 0.17)",
453
- pos: "74% 100%",
454
- size: "42px 7px"
455
- },
456
- {
457
- color: "rgba(170, 170, 170, 0.15)",
458
- pos: "100% 27%",
459
- size: "10px 17px"
460
- },
461
- {
462
- color: "rgba(155, 155, 155, 0.20)",
463
- pos: "100% 27%",
464
- size: "10px 18px"
465
- },
466
- {
467
- color: "rgba(145, 145, 145, 0.15)",
468
- pos: "100% 27%",
469
- size: "5px 10px"
470
- },
471
- {
472
- color: "rgba(165, 165, 165, 0.15)",
473
- pos: "100% 27%",
474
- size: "11px 12px"
475
- }
476
- ]
477
- },
478
- ocean: {
479
- border: [
480
- {
481
- color: "rgb(60, 140, 200)",
482
- pos: "2% 68%",
483
- size: "9px 18px"
484
- },
485
- {
486
- color: "rgb(50, 120, 180)",
487
- pos: "2% 68%",
488
- size: "4px 8px"
489
- },
490
- {
491
- color: "rgb(100, 80, 220)",
492
- pos: "72% -3%",
493
- size: "59px 9px"
494
- },
495
- {
496
- color: "rgb(80, 100, 255)",
497
- pos: "74% 100%",
498
- size: "42px 7px"
499
- },
500
- {
501
- color: "rgb(120, 70, 240)",
502
- pos: "100% 27%",
503
- size: "10px 17px"
504
- },
505
- {
506
- color: "rgb(90, 80, 220)",
507
- pos: "100% 27%",
508
- size: "10px 18px"
509
- },
510
- {
511
- color: "rgb(70, 110, 255)",
512
- pos: "100% 27%",
513
- size: "5px 10px"
514
- },
515
- {
516
- color: "rgb(110, 90, 230)",
517
- pos: "100% 27%",
518
- size: "11px 12px"
519
- }
520
- ],
521
- inner: [
522
- {
523
- color: "rgba(60, 140, 200, 0.5)",
524
- pos: "2% 68%",
525
- size: "9px 18px"
526
- },
527
- {
528
- color: "rgba(50, 120, 180, 0.45)",
529
- pos: "2% 68%",
530
- size: "4px 8px"
531
- },
532
- {
533
- color: "rgba(100, 80, 220, 0.35)",
534
- pos: "72% -3%",
535
- size: "59px 9px"
536
- },
537
- {
538
- color: "rgba(80, 100, 255, 0.35)",
539
- pos: "74% 100%",
540
- size: "42px 7px"
541
- },
542
- {
543
- color: "rgba(120, 70, 240, 0.3)",
544
- pos: "100% 27%",
545
- size: "10px 17px"
546
- },
547
- {
548
- color: "rgba(90, 80, 220, 0.4)",
549
- pos: "100% 27%",
550
- size: "10px 18px"
551
- },
552
- {
553
- color: "rgba(70, 110, 255, 0.3)",
554
- pos: "100% 27%",
555
- size: "5px 10px"
556
- },
557
- {
558
- color: "rgba(110, 90, 230, 0.3)",
559
- pos: "100% 27%",
560
- size: "11px 12px"
561
- }
562
- ]
563
- },
564
- sunset: {
565
- border: [
566
- {
567
- color: "rgb(255, 180, 50)",
568
- pos: "2% 68%",
569
- size: "9px 18px"
570
- },
571
- {
572
- color: "rgb(255, 150, 40)",
573
- pos: "2% 68%",
574
- size: "4px 8px"
575
- },
576
- {
577
- color: "rgb(255, 80, 60)",
578
- pos: "72% -3%",
579
- size: "59px 9px"
580
- },
581
- {
582
- color: "rgb(255, 100, 80)",
583
- pos: "74% 100%",
584
- size: "42px 7px"
585
- },
586
- {
587
- color: "rgb(255, 60, 80)",
588
- pos: "100% 27%",
589
- size: "10px 17px"
590
- },
591
- {
592
- color: "rgb(255, 120, 60)",
593
- pos: "100% 27%",
594
- size: "10px 18px"
595
- },
596
- {
597
- color: "rgb(255, 200, 50)",
598
- pos: "100% 27%",
599
- size: "5px 10px"
600
- },
601
- {
602
- color: "rgb(255, 90, 70)",
603
- pos: "100% 27%",
604
- size: "11px 12px"
605
- }
606
- ],
607
- inner: [
608
- {
609
- color: "rgba(255, 180, 50, 0.5)",
610
- pos: "2% 68%",
611
- size: "9px 18px"
612
- },
613
- {
614
- color: "rgba(255, 150, 40, 0.45)",
615
- pos: "2% 68%",
616
- size: "4px 8px"
617
- },
618
- {
619
- color: "rgba(255, 80, 60, 0.35)",
620
- pos: "72% -3%",
621
- size: "59px 9px"
622
- },
623
- {
624
- color: "rgba(255, 100, 80, 0.35)",
625
- pos: "74% 100%",
626
- size: "42px 7px"
627
- },
628
- {
629
- color: "rgba(255, 60, 80, 0.3)",
630
- pos: "100% 27%",
631
- size: "10px 17px"
632
- },
633
- {
634
- color: "rgba(255, 120, 60, 0.4)",
635
- pos: "100% 27%",
636
- size: "10px 18px"
637
- },
638
- {
639
- color: "rgba(255, 200, 50, 0.3)",
640
- pos: "100% 27%",
641
- size: "5px 10px"
642
- },
643
- {
644
- color: "rgba(255, 90, 70, 0.3)",
645
- pos: "100% 27%",
646
- size: "11px 12px"
647
- }
648
- ]
649
- }
302
+ colorful: {
303
+ border: [
304
+ {
305
+ color: "rgb(50, 200, 80)",
306
+ pos: "2% 68%",
307
+ size: "9px 18px"
308
+ },
309
+ {
310
+ color: "rgb(30, 185, 170)",
311
+ pos: "2% 68%",
312
+ size: "4px 8px"
313
+ },
314
+ {
315
+ color: "rgb(255, 120, 40)",
316
+ pos: "72% -3%",
317
+ size: "59px 9px"
318
+ },
319
+ {
320
+ color: "rgb(100, 70, 255)",
321
+ pos: "74% 100%",
322
+ size: "42px 7px"
323
+ },
324
+ {
325
+ color: "rgb(240, 50, 180)",
326
+ pos: "100% 27%",
327
+ size: "10px 17px"
328
+ },
329
+ {
330
+ color: "rgb(180, 40, 240)",
331
+ pos: "100% 27%",
332
+ size: "10px 18px"
333
+ },
334
+ {
335
+ color: "rgb(40, 140, 255)",
336
+ pos: "100% 27%",
337
+ size: "5px 10px"
338
+ },
339
+ {
340
+ color: "rgb(255, 50, 100)",
341
+ pos: "100% 27%",
342
+ size: "11px 12px"
343
+ }
344
+ ],
345
+ inner: [
346
+ {
347
+ color: "rgba(50, 200, 80, 0.5)",
348
+ pos: "2% 68%",
349
+ size: "9px 18px"
350
+ },
351
+ {
352
+ color: "rgba(30, 185, 170, 0.45)",
353
+ pos: "2% 68%",
354
+ size: "4px 8px"
355
+ },
356
+ {
357
+ color: "rgba(255, 120, 40, 0.35)",
358
+ pos: "72% -3%",
359
+ size: "59px 9px"
360
+ },
361
+ {
362
+ color: "rgba(100, 70, 255, 0.35)",
363
+ pos: "74% 100%",
364
+ size: "42px 7px"
365
+ },
366
+ {
367
+ color: "rgba(240, 50, 180, 0.3)",
368
+ pos: "100% 27%",
369
+ size: "10px 17px"
370
+ },
371
+ {
372
+ color: "rgba(180, 40, 240, 0.4)",
373
+ pos: "100% 27%",
374
+ size: "10px 18px"
375
+ },
376
+ {
377
+ color: "rgba(40, 140, 255, 0.3)",
378
+ pos: "100% 27%",
379
+ size: "5px 10px"
380
+ },
381
+ {
382
+ color: "rgba(255, 50, 100, 0.3)",
383
+ pos: "100% 27%",
384
+ size: "11px 12px"
385
+ }
386
+ ]
387
+ },
388
+ mono: {
389
+ border: [
390
+ {
391
+ color: "rgb(160, 160, 160)",
392
+ pos: "2% 68%",
393
+ size: "9px 18px"
394
+ },
395
+ {
396
+ color: "rgb(140, 140, 140)",
397
+ pos: "2% 68%",
398
+ size: "4px 8px"
399
+ },
400
+ {
401
+ color: "rgb(180, 180, 180)",
402
+ pos: "72% -3%",
403
+ size: "59px 9px"
404
+ },
405
+ {
406
+ color: "rgb(150, 150, 150)",
407
+ pos: "74% 100%",
408
+ size: "42px 7px"
409
+ },
410
+ {
411
+ color: "rgb(170, 170, 170)",
412
+ pos: "100% 27%",
413
+ size: "10px 17px"
414
+ },
415
+ {
416
+ color: "rgb(155, 155, 155)",
417
+ pos: "100% 27%",
418
+ size: "10px 18px"
419
+ },
420
+ {
421
+ color: "rgb(145, 145, 145)",
422
+ pos: "100% 27%",
423
+ size: "5px 10px"
424
+ },
425
+ {
426
+ color: "rgb(165, 165, 165)",
427
+ pos: "100% 27%",
428
+ size: "11px 12px"
429
+ }
430
+ ],
431
+ inner: [
432
+ {
433
+ color: "rgba(160, 160, 160, 0.25)",
434
+ pos: "2% 68%",
435
+ size: "9px 18px"
436
+ },
437
+ {
438
+ color: "rgba(140, 140, 140, 0.22)",
439
+ pos: "2% 68%",
440
+ size: "4px 8px"
441
+ },
442
+ {
443
+ color: "rgba(180, 180, 180, 0.17)",
444
+ pos: "72% -3%",
445
+ size: "59px 9px"
446
+ },
447
+ {
448
+ color: "rgba(150, 150, 150, 0.17)",
449
+ pos: "74% 100%",
450
+ size: "42px 7px"
451
+ },
452
+ {
453
+ color: "rgba(170, 170, 170, 0.15)",
454
+ pos: "100% 27%",
455
+ size: "10px 17px"
456
+ },
457
+ {
458
+ color: "rgba(155, 155, 155, 0.20)",
459
+ pos: "100% 27%",
460
+ size: "10px 18px"
461
+ },
462
+ {
463
+ color: "rgba(145, 145, 145, 0.15)",
464
+ pos: "100% 27%",
465
+ size: "5px 10px"
466
+ },
467
+ {
468
+ color: "rgba(165, 165, 165, 0.15)",
469
+ pos: "100% 27%",
470
+ size: "11px 12px"
471
+ }
472
+ ]
473
+ },
474
+ ocean: {
475
+ border: [
476
+ {
477
+ color: "rgb(60, 140, 200)",
478
+ pos: "2% 68%",
479
+ size: "9px 18px"
480
+ },
481
+ {
482
+ color: "rgb(50, 120, 180)",
483
+ pos: "2% 68%",
484
+ size: "4px 8px"
485
+ },
486
+ {
487
+ color: "rgb(100, 80, 220)",
488
+ pos: "72% -3%",
489
+ size: "59px 9px"
490
+ },
491
+ {
492
+ color: "rgb(80, 100, 255)",
493
+ pos: "74% 100%",
494
+ size: "42px 7px"
495
+ },
496
+ {
497
+ color: "rgb(120, 70, 240)",
498
+ pos: "100% 27%",
499
+ size: "10px 17px"
500
+ },
501
+ {
502
+ color: "rgb(90, 80, 220)",
503
+ pos: "100% 27%",
504
+ size: "10px 18px"
505
+ },
506
+ {
507
+ color: "rgb(70, 110, 255)",
508
+ pos: "100% 27%",
509
+ size: "5px 10px"
510
+ },
511
+ {
512
+ color: "rgb(110, 90, 230)",
513
+ pos: "100% 27%",
514
+ size: "11px 12px"
515
+ }
516
+ ],
517
+ inner: [
518
+ {
519
+ color: "rgba(60, 140, 200, 0.5)",
520
+ pos: "2% 68%",
521
+ size: "9px 18px"
522
+ },
523
+ {
524
+ color: "rgba(50, 120, 180, 0.45)",
525
+ pos: "2% 68%",
526
+ size: "4px 8px"
527
+ },
528
+ {
529
+ color: "rgba(100, 80, 220, 0.35)",
530
+ pos: "72% -3%",
531
+ size: "59px 9px"
532
+ },
533
+ {
534
+ color: "rgba(80, 100, 255, 0.35)",
535
+ pos: "74% 100%",
536
+ size: "42px 7px"
537
+ },
538
+ {
539
+ color: "rgba(120, 70, 240, 0.3)",
540
+ pos: "100% 27%",
541
+ size: "10px 17px"
542
+ },
543
+ {
544
+ color: "rgba(90, 80, 220, 0.4)",
545
+ pos: "100% 27%",
546
+ size: "10px 18px"
547
+ },
548
+ {
549
+ color: "rgba(70, 110, 255, 0.3)",
550
+ pos: "100% 27%",
551
+ size: "5px 10px"
552
+ },
553
+ {
554
+ color: "rgba(110, 90, 230, 0.3)",
555
+ pos: "100% 27%",
556
+ size: "11px 12px"
557
+ }
558
+ ]
559
+ },
560
+ sunset: {
561
+ border: [
562
+ {
563
+ color: "rgb(255, 180, 50)",
564
+ pos: "2% 68%",
565
+ size: "9px 18px"
566
+ },
567
+ {
568
+ color: "rgb(255, 150, 40)",
569
+ pos: "2% 68%",
570
+ size: "4px 8px"
571
+ },
572
+ {
573
+ color: "rgb(255, 80, 60)",
574
+ pos: "72% -3%",
575
+ size: "59px 9px"
576
+ },
577
+ {
578
+ color: "rgb(255, 100, 80)",
579
+ pos: "74% 100%",
580
+ size: "42px 7px"
581
+ },
582
+ {
583
+ color: "rgb(255, 60, 80)",
584
+ pos: "100% 27%",
585
+ size: "10px 17px"
586
+ },
587
+ {
588
+ color: "rgb(255, 120, 60)",
589
+ pos: "100% 27%",
590
+ size: "10px 18px"
591
+ },
592
+ {
593
+ color: "rgb(255, 200, 50)",
594
+ pos: "100% 27%",
595
+ size: "5px 10px"
596
+ },
597
+ {
598
+ color: "rgb(255, 90, 70)",
599
+ pos: "100% 27%",
600
+ size: "11px 12px"
601
+ }
602
+ ],
603
+ inner: [
604
+ {
605
+ color: "rgba(255, 180, 50, 0.5)",
606
+ pos: "2% 68%",
607
+ size: "9px 18px"
608
+ },
609
+ {
610
+ color: "rgba(255, 150, 40, 0.45)",
611
+ pos: "2% 68%",
612
+ size: "4px 8px"
613
+ },
614
+ {
615
+ color: "rgba(255, 80, 60, 0.35)",
616
+ pos: "72% -3%",
617
+ size: "59px 9px"
618
+ },
619
+ {
620
+ color: "rgba(255, 100, 80, 0.35)",
621
+ pos: "74% 100%",
622
+ size: "42px 7px"
623
+ },
624
+ {
625
+ color: "rgba(255, 60, 80, 0.3)",
626
+ pos: "100% 27%",
627
+ size: "10px 17px"
628
+ },
629
+ {
630
+ color: "rgba(255, 120, 60, 0.4)",
631
+ pos: "100% 27%",
632
+ size: "10px 18px"
633
+ },
634
+ {
635
+ color: "rgba(255, 200, 50, 0.3)",
636
+ pos: "100% 27%",
637
+ size: "5px 10px"
638
+ },
639
+ {
640
+ color: "rgba(255, 90, 70, 0.3)",
641
+ pos: "100% 27%",
642
+ size: "11px 12px"
643
+ }
644
+ ]
645
+ }
650
646
  };
647
+ // WHY: parses #rgb, #rrggbb, rgb(...), rgba(...) into rgba(...) at the given
648
+ // alpha. Used to recolor inner/spike gradients with caller-supplied colors
649
+ // while preserving the alpha cadence the existing presets rely on.
651
650
  function toRgba(input, alpha) {
652
- const hex = input.trim().match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);
653
- if (hex) {
654
- const h = hex[1];
655
- const r = parseInt(h.length === 3 ? h[0] + h[0] : h.slice(0, 2), 16);
656
- const g = parseInt(h.length === 3 ? h[1] + h[1] : h.slice(2, 4), 16);
657
- const b = parseInt(h.length === 3 ? h[2] + h[2] : h.slice(4, 6), 16);
658
- return `rgba(${r}, ${g}, ${b}, ${alpha})`;
659
- }
660
- const rgba = input.match(/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/);
661
- if (rgba) return `rgba(${rgba[1]}, ${rgba[2]}, ${rgba[3]}, ${alpha})`;
662
- return input;
651
+ const hex = input.trim().match(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i);
652
+ if (hex) {
653
+ const h = hex[1];
654
+ const r = parseInt(h.length === 3 ? h[0] + h[0] : h.slice(0, 2), 16);
655
+ const g = parseInt(h.length === 3 ? h[1] + h[1] : h.slice(2, 4), 16);
656
+ const b = parseInt(h.length === 3 ? h[2] + h[2] : h.slice(4, 6), 16);
657
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
658
+ }
659
+ const rgba = input.match(/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/);
660
+ if (rgba) return `rgba(${rgba[1]}, ${rgba[2]}, ${rgba[3]}, ${alpha})`;
661
+ return input;
663
662
  }
664
663
  function pickColor(customColors, presetColor, index) {
665
- if (!customColors || customColors.length === 0) return presetColor;
666
- return customColors[index % customColors.length];
664
+ if (!customColors || customColors.length === 0) return presetColor;
665
+ return customColors[index % customColors.length];
667
666
  }
668
667
  function pickColorAtAlpha(customColors, presetColor, index, alpha) {
669
- if (!customColors || customColors.length === 0) {
670
- return presetColor.replace("rgb(", "rgba(").replace(")", `, ${alpha})`);
671
- }
672
- return toRgba(customColors[index % customColors.length], alpha);
668
+ if (!customColors || customColors.length === 0) {
669
+ return presetColor.replace("rgb(", "rgba(").replace(")", `, ${alpha})`);
670
+ }
671
+ return toRgba(customColors[index % customColors.length], alpha);
673
672
  }
674
673
  export function smBorderGradient(variant, customColors) {
675
- return smGradients[variant].border.map((s, i)=>`radial-gradient(ellipse ${s.size} at ${s.pos}, ${pickColor(customColors, s.color, i)}, transparent)`).join(",\n ");
674
+ return smGradients[variant].border.map((s, i) => `radial-gradient(ellipse ${s.size} at ${s.pos}, ${pickColor(customColors, s.color, i)}, transparent)`).join(",\n ");
676
675
  }
677
676
  export function smInnerGradient(variant, customColors) {
678
- return smGradients[variant].inner.map((s, i)=>{
679
- if (!customColors || customColors.length === 0) {
680
- return `radial-gradient(ellipse ${s.size} at ${s.pos}, ${s.color}, transparent)`;
681
- }
682
- const alphaMatch = s.color.match(/[\d.]+\s*\)$/);
683
- const alpha = alphaMatch ? parseFloat(alphaMatch[0]) : 0.4;
684
- return `radial-gradient(ellipse ${s.size} at ${s.pos}, ${toRgba(customColors[i % customColors.length], alpha)}, transparent)`;
685
- }).join(",\n ");
677
+ return smGradients[variant].inner.map((s, i) => {
678
+ if (!customColors || customColors.length === 0) {
679
+ return `radial-gradient(ellipse ${s.size} at ${s.pos}, ${s.color}, transparent)`;
680
+ }
681
+ const alphaMatch = s.color.match(/[\d.]+\s*\)$/);
682
+ const alpha = alphaMatch ? parseFloat(alphaMatch[0]) : .4;
683
+ return `radial-gradient(ellipse ${s.size} at ${s.pos}, ${toRgba(customColors[i % customColors.length], alpha)}, transparent)`;
684
+ }).join(",\n ");
686
685
  }
687
686
  export function mdBorderGradient(variant, customColors) {
688
- return borderColors[variant].border.map((s, i)=>`radial-gradient(ellipse ${s.size} at ${s.pos}, ${pickColor(customColors, s.color, i)}, transparent)`).join(",\n ");
687
+ return borderColors[variant].border.map((s, i) => `radial-gradient(ellipse ${s.size} at ${s.pos}, ${pickColor(customColors, s.color, i)}, transparent)`).join(",\n ");
689
688
  }
690
689
  export function mdInnerGradient(variant, customColors) {
691
- const cfg = borderColors[variant];
692
- const alpha = variant === "mono" ? 0.225 : 0.45;
693
- return cfg.border.map((s, i)=>{
694
- const color = pickColorAtAlpha(customColors, s.color, i, alpha);
695
- const size = s.size.split(" ").map((v)=>`${Math.round(parseInt(v) * 0.9)}px`).join(" ");
696
- return `radial-gradient(ellipse ${size} at ${s.pos}, ${color}, transparent)`;
697
- }).join(",\n ");
690
+ const cfg = borderColors[variant];
691
+ const alpha = variant === "mono" ? .225 : .45;
692
+ return cfg.border.map((s, i) => {
693
+ const color = pickColorAtAlpha(customColors, s.color, i, alpha);
694
+ const size = s.size.split(" ").map((v) => `${Math.round(parseInt(v) * .9)}px`).join(" ");
695
+ return `radial-gradient(ellipse ${size} at ${s.pos}, ${color}, transparent)`;
696
+ }).join(",\n ");
698
697
  }
699
698
  export function spikeColors(variant, dark, customColors) {
700
- if (customColors && customColors.length > 0) {
701
- const primary = customColors[0];
702
- const secondary = customColors[customColors.length - 1] ?? customColors[0];
703
- return {
704
- primary,
705
- secondary
706
- };
707
- }
708
- const cfg = borderColors[variant];
709
- return dark ? cfg.spike : cfg.spikeLt;
699
+ if (customColors && customColors.length > 0) {
700
+ const primary = customColors[0];
701
+ const secondary = customColors[customColors.length - 1] ?? customColors[0];
702
+ return {
703
+ primary,
704
+ secondary
705
+ };
706
+ }
707
+ const cfg = borderColors[variant];
708
+ return dark ? cfg.spike : cfg.spikeLt;
710
709
  }
711
710
  const lineBorderGradients = {
712
- colorful: {
713
- dark: [
714
- {
715
- color: "rgb(255, 50, 100)",
716
- sizeW: 36,
717
- sizeH: 36,
718
- offsetX: 0,
719
- offsetY: 2
720
- },
721
- {
722
- color: "rgb(40, 180, 220)",
723
- sizeW: 30,
724
- sizeH: 32,
725
- offsetX: 39,
726
- offsetY: 0
727
- },
728
- {
729
- color: "rgb(50, 200, 80)",
730
- sizeW: 33,
731
- sizeH: 28,
732
- offsetX: -36,
733
- offsetY: 2
734
- },
735
- {
736
- color: "rgb(180, 40, 240)",
737
- sizeW: 29,
738
- sizeH: 34,
739
- offsetX: -54,
740
- offsetY: 0
741
- },
742
- {
743
- color: "rgb(255, 160, 30)",
744
- sizeW: 27,
745
- sizeH: 30,
746
- offsetX: 51,
747
- offsetY: -1
748
- },
749
- {
750
- color: "rgb(100, 70, 255)",
751
- sizeW: 36,
752
- sizeH: 24,
753
- offsetX: 21,
754
- offsetY: 1
755
- },
756
- {
757
- color: "rgb(40, 140, 255)",
758
- sizeW: 30,
759
- sizeH: 22,
760
- offsetX: -21,
761
- offsetY: 0
762
- },
763
- {
764
- color: "rgb(240, 50, 180)",
765
- sizeW: 25,
766
- sizeH: 28,
767
- offsetX: 66,
768
- offsetY: 1
769
- },
770
- {
771
- color: "rgb(30, 185, 170)",
772
- sizeW: 23,
773
- sizeH: 30,
774
- offsetX: -66,
775
- offsetY: -1
776
- }
777
- ],
778
- light: [
779
- {
780
- color: "rgb(255, 50, 100)",
781
- sizeW: 45,
782
- sizeH: 36,
783
- offsetX: 0,
784
- offsetY: 2
785
- },
786
- {
787
- color: "rgb(40, 140, 255)",
788
- sizeW: 35,
789
- sizeH: 32,
790
- offsetX: 65,
791
- offsetY: 0
792
- },
793
- {
794
- color: "rgb(50, 200, 80)",
795
- sizeW: 40,
796
- sizeH: 28,
797
- offsetX: -60,
798
- offsetY: 2
799
- },
800
- {
801
- color: "rgb(180, 40, 240)",
802
- sizeW: 35,
803
- sizeH: 34,
804
- offsetX: -90,
805
- offsetY: 0
806
- },
807
- {
808
- color: "rgb(30, 185, 170)",
809
- sizeW: 38,
810
- sizeH: 30,
811
- offsetX: 85,
812
- offsetY: -1
813
- },
814
- {
815
- color: "rgb(100, 70, 255)",
816
- sizeW: 50,
817
- sizeH: 24,
818
- offsetX: 35,
819
- offsetY: 1
820
- },
821
- {
822
- color: "rgb(40, 140, 255)",
823
- sizeW: 40,
824
- sizeH: 22,
825
- offsetX: -35,
826
- offsetY: 0
827
- },
828
- {
829
- color: "rgb(255, 120, 40)",
830
- sizeW: 35,
831
- sizeH: 28,
832
- offsetX: 110,
833
- offsetY: 1
834
- },
835
- {
836
- color: "rgb(240, 50, 180)",
837
- sizeW: 30,
838
- sizeH: 30,
839
- offsetX: -110,
840
- offsetY: -1
841
- }
842
- ]
843
- },
844
- mono: {
845
- dark: [
846
- {
847
- color: "rgb(200, 200, 200)",
848
- sizeW: 36,
849
- sizeH: 36,
850
- offsetX: 0,
851
- offsetY: 2
852
- },
853
- {
854
- color: "rgb(170, 170, 170)",
855
- sizeW: 30,
856
- sizeH: 32,
857
- offsetX: 39,
858
- offsetY: 0
859
- },
860
- {
861
- color: "rgb(155, 155, 155)",
862
- sizeW: 33,
863
- sizeH: 28,
864
- offsetX: -36,
865
- offsetY: 2
866
- },
867
- {
868
- color: "rgb(185, 185, 185)",
869
- sizeW: 29,
870
- sizeH: 34,
871
- offsetX: -54,
872
- offsetY: 0
873
- },
874
- {
875
- color: "rgb(165, 165, 165)",
876
- sizeW: 27,
877
- sizeH: 30,
878
- offsetX: 51,
879
- offsetY: -1
880
- },
881
- {
882
- color: "rgb(180, 180, 180)",
883
- sizeW: 36,
884
- sizeH: 24,
885
- offsetX: 21,
886
- offsetY: 1
887
- },
888
- {
889
- color: "rgb(160, 160, 160)",
890
- sizeW: 30,
891
- sizeH: 22,
892
- offsetX: -21,
893
- offsetY: 0
894
- },
895
- {
896
- color: "rgb(175, 175, 175)",
897
- sizeW: 25,
898
- sizeH: 28,
899
- offsetX: 66,
900
- offsetY: 1
901
- },
902
- {
903
- color: "rgb(190, 190, 190)",
904
- sizeW: 23,
905
- sizeH: 30,
906
- offsetX: -66,
907
- offsetY: -1
908
- }
909
- ],
910
- light: [
911
- {
912
- color: "rgb(100, 100, 100)",
913
- sizeW: 45,
914
- sizeH: 36,
915
- offsetX: 0,
916
- offsetY: 2
917
- },
918
- {
919
- color: "rgb(80, 80, 80)",
920
- sizeW: 35,
921
- sizeH: 32,
922
- offsetX: 65,
923
- offsetY: 0
924
- },
925
- {
926
- color: "rgb(90, 90, 90)",
927
- sizeW: 40,
928
- sizeH: 28,
929
- offsetX: -60,
930
- offsetY: 2
931
- },
932
- {
933
- color: "rgb(70, 70, 70)",
934
- sizeW: 35,
935
- sizeH: 34,
936
- offsetX: -90,
937
- offsetY: 0
938
- },
939
- {
940
- color: "rgb(85, 85, 85)",
941
- sizeW: 38,
942
- sizeH: 30,
943
- offsetX: 85,
944
- offsetY: -1
945
- },
946
- {
947
- color: "rgb(95, 95, 95)",
948
- sizeW: 50,
949
- sizeH: 24,
950
- offsetX: 35,
951
- offsetY: 1
952
- },
953
- {
954
- color: "rgb(75, 75, 75)",
955
- sizeW: 40,
956
- sizeH: 22,
957
- offsetX: -35,
958
- offsetY: 0
959
- },
960
- {
961
- color: "rgb(105, 105, 105)",
962
- sizeW: 35,
963
- sizeH: 28,
964
- offsetX: 110,
965
- offsetY: 1
966
- },
967
- {
968
- color: "rgb(65, 65, 65)",
969
- sizeW: 30,
970
- sizeH: 30,
971
- offsetX: -110,
972
- offsetY: -1
973
- }
974
- ]
975
- },
976
- ocean: {
977
- dark: [
978
- {
979
- color: "rgb(100, 80, 220)",
980
- sizeW: 36,
981
- sizeH: 36,
982
- offsetX: 0,
983
- offsetY: 2
984
- },
985
- {
986
- color: "rgb(60, 120, 255)",
987
- sizeW: 30,
988
- sizeH: 32,
989
- offsetX: 39,
990
- offsetY: 0
991
- },
992
- {
993
- color: "rgb(80, 100, 200)",
994
- sizeW: 33,
995
- sizeH: 28,
996
- offsetX: -36,
997
- offsetY: 2
998
- },
999
- {
1000
- color: "rgb(130, 70, 255)",
1001
- sizeW: 29,
1002
- sizeH: 34,
1003
- offsetX: -54,
1004
- offsetY: 0
1005
- },
1006
- {
1007
- color: "rgb(70, 130, 255)",
1008
- sizeW: 27,
1009
- sizeH: 30,
1010
- offsetX: 51,
1011
- offsetY: -1
1012
- },
1013
- {
1014
- color: "rgb(120, 80, 255)",
1015
- sizeW: 36,
1016
- sizeH: 24,
1017
- offsetX: 21,
1018
- offsetY: 1
1019
- },
1020
- {
1021
- color: "rgb(90, 110, 230)",
1022
- sizeW: 30,
1023
- sizeH: 22,
1024
- offsetX: -21,
1025
- offsetY: 0
1026
- },
1027
- {
1028
- color: "rgb(110, 90, 240)",
1029
- sizeW: 25,
1030
- sizeH: 28,
1031
- offsetX: 66,
1032
- offsetY: 1
1033
- },
1034
- {
1035
- color: "rgb(140, 100, 255)",
1036
- sizeW: 23,
1037
- sizeH: 30,
1038
- offsetX: -66,
1039
- offsetY: -1
1040
- }
1041
- ],
1042
- light: [
1043
- {
1044
- color: "rgb(80, 60, 200)",
1045
- sizeW: 45,
1046
- sizeH: 36,
1047
- offsetX: 0,
1048
- offsetY: 2
1049
- },
1050
- {
1051
- color: "rgb(50, 100, 220)",
1052
- sizeW: 35,
1053
- sizeH: 32,
1054
- offsetX: 65,
1055
- offsetY: 0
1056
- },
1057
- {
1058
- color: "rgb(70, 90, 190)",
1059
- sizeW: 40,
1060
- sizeH: 28,
1061
- offsetX: -60,
1062
- offsetY: 2
1063
- },
1064
- {
1065
- color: "rgb(110, 60, 220)",
1066
- sizeW: 35,
1067
- sizeH: 34,
1068
- offsetX: -90,
1069
- offsetY: 0
1070
- },
1071
- {
1072
- color: "rgb(60, 110, 230)",
1073
- sizeW: 38,
1074
- sizeH: 30,
1075
- offsetX: 85,
1076
- offsetY: -1
1077
- },
1078
- {
1079
- color: "rgb(100, 70, 240)",
1080
- sizeW: 50,
1081
- sizeH: 24,
1082
- offsetX: 35,
1083
- offsetY: 1
1084
- },
1085
- {
1086
- color: "rgb(80, 100, 210)",
1087
- sizeW: 40,
1088
- sizeH: 22,
1089
- offsetX: -35,
1090
- offsetY: 0
1091
- },
1092
- {
1093
- color: "rgb(90, 80, 225)",
1094
- sizeW: 35,
1095
- sizeH: 28,
1096
- offsetX: 110,
1097
- offsetY: 1
1098
- },
1099
- {
1100
- color: "rgb(120, 90, 245)",
1101
- sizeW: 30,
1102
- sizeH: 30,
1103
- offsetX: -110,
1104
- offsetY: -1
1105
- }
1106
- ]
1107
- },
1108
- sunset: {
1109
- dark: [
1110
- {
1111
- color: "rgb(255, 100, 60)",
1112
- sizeW: 36,
1113
- sizeH: 36,
1114
- offsetX: 0,
1115
- offsetY: 2
1116
- },
1117
- {
1118
- color: "rgb(255, 180, 50)",
1119
- sizeW: 30,
1120
- sizeH: 32,
1121
- offsetX: 39,
1122
- offsetY: 0
1123
- },
1124
- {
1125
- color: "rgb(255, 140, 70)",
1126
- sizeW: 33,
1127
- sizeH: 28,
1128
- offsetX: -36,
1129
- offsetY: 2
1130
- },
1131
- {
1132
- color: "rgb(255, 80, 80)",
1133
- sizeW: 29,
1134
- sizeH: 34,
1135
- offsetX: -54,
1136
- offsetY: 0
1137
- },
1138
- {
1139
- color: "rgb(255, 200, 60)",
1140
- sizeW: 27,
1141
- sizeH: 30,
1142
- offsetX: 51,
1143
- offsetY: -1
1144
- },
1145
- {
1146
- color: "rgb(255, 120, 50)",
1147
- sizeW: 36,
1148
- sizeH: 24,
1149
- offsetX: 21,
1150
- offsetY: 1
1151
- },
1152
- {
1153
- color: "rgb(255, 160, 80)",
1154
- sizeW: 30,
1155
- sizeH: 22,
1156
- offsetX: -21,
1157
- offsetY: 0
1158
- },
1159
- {
1160
- color: "rgb(255, 90, 60)",
1161
- sizeW: 25,
1162
- sizeH: 28,
1163
- offsetX: 66,
1164
- offsetY: 1
1165
- },
1166
- {
1167
- color: "rgb(255, 70, 70)",
1168
- sizeW: 23,
1169
- sizeH: 30,
1170
- offsetX: -66,
1171
- offsetY: -1
1172
- }
1173
- ],
1174
- light: [
1175
- {
1176
- color: "rgb(220, 80, 40)",
1177
- sizeW: 45,
1178
- sizeH: 36,
1179
- offsetX: 0,
1180
- offsetY: 2
1181
- },
1182
- {
1183
- color: "rgb(230, 150, 30)",
1184
- sizeW: 35,
1185
- sizeH: 32,
1186
- offsetX: 65,
1187
- offsetY: 0
1188
- },
1189
- {
1190
- color: "rgb(210, 110, 50)",
1191
- sizeW: 40,
1192
- sizeH: 28,
1193
- offsetX: -60,
1194
- offsetY: 2
1195
- },
1196
- {
1197
- color: "rgb(200, 60, 60)",
1198
- sizeW: 35,
1199
- sizeH: 34,
1200
- offsetX: -90,
1201
- offsetY: 0
1202
- },
1203
- {
1204
- color: "rgb(220, 170, 40)",
1205
- sizeW: 38,
1206
- sizeH: 30,
1207
- offsetX: 85,
1208
- offsetY: -1
1209
- },
1210
- {
1211
- color: "rgb(210, 100, 30)",
1212
- sizeW: 50,
1213
- sizeH: 24,
1214
- offsetX: 35,
1215
- offsetY: 1
1216
- },
1217
- {
1218
- color: "rgb(230, 130, 60)",
1219
- sizeW: 40,
1220
- sizeH: 22,
1221
- offsetX: -35,
1222
- offsetY: 0
1223
- },
1224
- {
1225
- color: "rgb(190, 70, 50)",
1226
- sizeW: 35,
1227
- sizeH: 28,
1228
- offsetX: 110,
1229
- offsetY: 1
1230
- },
1231
- {
1232
- color: "rgb(180, 50, 50)",
1233
- sizeW: 30,
1234
- sizeH: 30,
1235
- offsetX: -110,
1236
- offsetY: -1
1237
- }
1238
- ]
1239
- }
711
+ colorful: {
712
+ dark: [
713
+ {
714
+ color: "rgb(255, 50, 100)",
715
+ sizeW: 36,
716
+ sizeH: 36,
717
+ offsetX: 0,
718
+ offsetY: 2
719
+ },
720
+ {
721
+ color: "rgb(40, 180, 220)",
722
+ sizeW: 30,
723
+ sizeH: 32,
724
+ offsetX: 39,
725
+ offsetY: 0
726
+ },
727
+ {
728
+ color: "rgb(50, 200, 80)",
729
+ sizeW: 33,
730
+ sizeH: 28,
731
+ offsetX: -36,
732
+ offsetY: 2
733
+ },
734
+ {
735
+ color: "rgb(180, 40, 240)",
736
+ sizeW: 29,
737
+ sizeH: 34,
738
+ offsetX: -54,
739
+ offsetY: 0
740
+ },
741
+ {
742
+ color: "rgb(255, 160, 30)",
743
+ sizeW: 27,
744
+ sizeH: 30,
745
+ offsetX: 51,
746
+ offsetY: -1
747
+ },
748
+ {
749
+ color: "rgb(100, 70, 255)",
750
+ sizeW: 36,
751
+ sizeH: 24,
752
+ offsetX: 21,
753
+ offsetY: 1
754
+ },
755
+ {
756
+ color: "rgb(40, 140, 255)",
757
+ sizeW: 30,
758
+ sizeH: 22,
759
+ offsetX: -21,
760
+ offsetY: 0
761
+ },
762
+ {
763
+ color: "rgb(240, 50, 180)",
764
+ sizeW: 25,
765
+ sizeH: 28,
766
+ offsetX: 66,
767
+ offsetY: 1
768
+ },
769
+ {
770
+ color: "rgb(30, 185, 170)",
771
+ sizeW: 23,
772
+ sizeH: 30,
773
+ offsetX: -66,
774
+ offsetY: -1
775
+ }
776
+ ],
777
+ light: [
778
+ {
779
+ color: "rgb(255, 50, 100)",
780
+ sizeW: 45,
781
+ sizeH: 36,
782
+ offsetX: 0,
783
+ offsetY: 2
784
+ },
785
+ {
786
+ color: "rgb(40, 140, 255)",
787
+ sizeW: 35,
788
+ sizeH: 32,
789
+ offsetX: 65,
790
+ offsetY: 0
791
+ },
792
+ {
793
+ color: "rgb(50, 200, 80)",
794
+ sizeW: 40,
795
+ sizeH: 28,
796
+ offsetX: -60,
797
+ offsetY: 2
798
+ },
799
+ {
800
+ color: "rgb(180, 40, 240)",
801
+ sizeW: 35,
802
+ sizeH: 34,
803
+ offsetX: -90,
804
+ offsetY: 0
805
+ },
806
+ {
807
+ color: "rgb(30, 185, 170)",
808
+ sizeW: 38,
809
+ sizeH: 30,
810
+ offsetX: 85,
811
+ offsetY: -1
812
+ },
813
+ {
814
+ color: "rgb(100, 70, 255)",
815
+ sizeW: 50,
816
+ sizeH: 24,
817
+ offsetX: 35,
818
+ offsetY: 1
819
+ },
820
+ {
821
+ color: "rgb(40, 140, 255)",
822
+ sizeW: 40,
823
+ sizeH: 22,
824
+ offsetX: -35,
825
+ offsetY: 0
826
+ },
827
+ {
828
+ color: "rgb(255, 120, 40)",
829
+ sizeW: 35,
830
+ sizeH: 28,
831
+ offsetX: 110,
832
+ offsetY: 1
833
+ },
834
+ {
835
+ color: "rgb(240, 50, 180)",
836
+ sizeW: 30,
837
+ sizeH: 30,
838
+ offsetX: -110,
839
+ offsetY: -1
840
+ }
841
+ ]
842
+ },
843
+ mono: {
844
+ dark: [
845
+ {
846
+ color: "rgb(200, 200, 200)",
847
+ sizeW: 36,
848
+ sizeH: 36,
849
+ offsetX: 0,
850
+ offsetY: 2
851
+ },
852
+ {
853
+ color: "rgb(170, 170, 170)",
854
+ sizeW: 30,
855
+ sizeH: 32,
856
+ offsetX: 39,
857
+ offsetY: 0
858
+ },
859
+ {
860
+ color: "rgb(155, 155, 155)",
861
+ sizeW: 33,
862
+ sizeH: 28,
863
+ offsetX: -36,
864
+ offsetY: 2
865
+ },
866
+ {
867
+ color: "rgb(185, 185, 185)",
868
+ sizeW: 29,
869
+ sizeH: 34,
870
+ offsetX: -54,
871
+ offsetY: 0
872
+ },
873
+ {
874
+ color: "rgb(165, 165, 165)",
875
+ sizeW: 27,
876
+ sizeH: 30,
877
+ offsetX: 51,
878
+ offsetY: -1
879
+ },
880
+ {
881
+ color: "rgb(180, 180, 180)",
882
+ sizeW: 36,
883
+ sizeH: 24,
884
+ offsetX: 21,
885
+ offsetY: 1
886
+ },
887
+ {
888
+ color: "rgb(160, 160, 160)",
889
+ sizeW: 30,
890
+ sizeH: 22,
891
+ offsetX: -21,
892
+ offsetY: 0
893
+ },
894
+ {
895
+ color: "rgb(175, 175, 175)",
896
+ sizeW: 25,
897
+ sizeH: 28,
898
+ offsetX: 66,
899
+ offsetY: 1
900
+ },
901
+ {
902
+ color: "rgb(190, 190, 190)",
903
+ sizeW: 23,
904
+ sizeH: 30,
905
+ offsetX: -66,
906
+ offsetY: -1
907
+ }
908
+ ],
909
+ light: [
910
+ {
911
+ color: "rgb(100, 100, 100)",
912
+ sizeW: 45,
913
+ sizeH: 36,
914
+ offsetX: 0,
915
+ offsetY: 2
916
+ },
917
+ {
918
+ color: "rgb(80, 80, 80)",
919
+ sizeW: 35,
920
+ sizeH: 32,
921
+ offsetX: 65,
922
+ offsetY: 0
923
+ },
924
+ {
925
+ color: "rgb(90, 90, 90)",
926
+ sizeW: 40,
927
+ sizeH: 28,
928
+ offsetX: -60,
929
+ offsetY: 2
930
+ },
931
+ {
932
+ color: "rgb(70, 70, 70)",
933
+ sizeW: 35,
934
+ sizeH: 34,
935
+ offsetX: -90,
936
+ offsetY: 0
937
+ },
938
+ {
939
+ color: "rgb(85, 85, 85)",
940
+ sizeW: 38,
941
+ sizeH: 30,
942
+ offsetX: 85,
943
+ offsetY: -1
944
+ },
945
+ {
946
+ color: "rgb(95, 95, 95)",
947
+ sizeW: 50,
948
+ sizeH: 24,
949
+ offsetX: 35,
950
+ offsetY: 1
951
+ },
952
+ {
953
+ color: "rgb(75, 75, 75)",
954
+ sizeW: 40,
955
+ sizeH: 22,
956
+ offsetX: -35,
957
+ offsetY: 0
958
+ },
959
+ {
960
+ color: "rgb(105, 105, 105)",
961
+ sizeW: 35,
962
+ sizeH: 28,
963
+ offsetX: 110,
964
+ offsetY: 1
965
+ },
966
+ {
967
+ color: "rgb(65, 65, 65)",
968
+ sizeW: 30,
969
+ sizeH: 30,
970
+ offsetX: -110,
971
+ offsetY: -1
972
+ }
973
+ ]
974
+ },
975
+ ocean: {
976
+ dark: [
977
+ {
978
+ color: "rgb(100, 80, 220)",
979
+ sizeW: 36,
980
+ sizeH: 36,
981
+ offsetX: 0,
982
+ offsetY: 2
983
+ },
984
+ {
985
+ color: "rgb(60, 120, 255)",
986
+ sizeW: 30,
987
+ sizeH: 32,
988
+ offsetX: 39,
989
+ offsetY: 0
990
+ },
991
+ {
992
+ color: "rgb(80, 100, 200)",
993
+ sizeW: 33,
994
+ sizeH: 28,
995
+ offsetX: -36,
996
+ offsetY: 2
997
+ },
998
+ {
999
+ color: "rgb(130, 70, 255)",
1000
+ sizeW: 29,
1001
+ sizeH: 34,
1002
+ offsetX: -54,
1003
+ offsetY: 0
1004
+ },
1005
+ {
1006
+ color: "rgb(70, 130, 255)",
1007
+ sizeW: 27,
1008
+ sizeH: 30,
1009
+ offsetX: 51,
1010
+ offsetY: -1
1011
+ },
1012
+ {
1013
+ color: "rgb(120, 80, 255)",
1014
+ sizeW: 36,
1015
+ sizeH: 24,
1016
+ offsetX: 21,
1017
+ offsetY: 1
1018
+ },
1019
+ {
1020
+ color: "rgb(90, 110, 230)",
1021
+ sizeW: 30,
1022
+ sizeH: 22,
1023
+ offsetX: -21,
1024
+ offsetY: 0
1025
+ },
1026
+ {
1027
+ color: "rgb(110, 90, 240)",
1028
+ sizeW: 25,
1029
+ sizeH: 28,
1030
+ offsetX: 66,
1031
+ offsetY: 1
1032
+ },
1033
+ {
1034
+ color: "rgb(140, 100, 255)",
1035
+ sizeW: 23,
1036
+ sizeH: 30,
1037
+ offsetX: -66,
1038
+ offsetY: -1
1039
+ }
1040
+ ],
1041
+ light: [
1042
+ {
1043
+ color: "rgb(80, 60, 200)",
1044
+ sizeW: 45,
1045
+ sizeH: 36,
1046
+ offsetX: 0,
1047
+ offsetY: 2
1048
+ },
1049
+ {
1050
+ color: "rgb(50, 100, 220)",
1051
+ sizeW: 35,
1052
+ sizeH: 32,
1053
+ offsetX: 65,
1054
+ offsetY: 0
1055
+ },
1056
+ {
1057
+ color: "rgb(70, 90, 190)",
1058
+ sizeW: 40,
1059
+ sizeH: 28,
1060
+ offsetX: -60,
1061
+ offsetY: 2
1062
+ },
1063
+ {
1064
+ color: "rgb(110, 60, 220)",
1065
+ sizeW: 35,
1066
+ sizeH: 34,
1067
+ offsetX: -90,
1068
+ offsetY: 0
1069
+ },
1070
+ {
1071
+ color: "rgb(60, 110, 230)",
1072
+ sizeW: 38,
1073
+ sizeH: 30,
1074
+ offsetX: 85,
1075
+ offsetY: -1
1076
+ },
1077
+ {
1078
+ color: "rgb(100, 70, 240)",
1079
+ sizeW: 50,
1080
+ sizeH: 24,
1081
+ offsetX: 35,
1082
+ offsetY: 1
1083
+ },
1084
+ {
1085
+ color: "rgb(80, 100, 210)",
1086
+ sizeW: 40,
1087
+ sizeH: 22,
1088
+ offsetX: -35,
1089
+ offsetY: 0
1090
+ },
1091
+ {
1092
+ color: "rgb(90, 80, 225)",
1093
+ sizeW: 35,
1094
+ sizeH: 28,
1095
+ offsetX: 110,
1096
+ offsetY: 1
1097
+ },
1098
+ {
1099
+ color: "rgb(120, 90, 245)",
1100
+ sizeW: 30,
1101
+ sizeH: 30,
1102
+ offsetX: -110,
1103
+ offsetY: -1
1104
+ }
1105
+ ]
1106
+ },
1107
+ sunset: {
1108
+ dark: [
1109
+ {
1110
+ color: "rgb(255, 100, 60)",
1111
+ sizeW: 36,
1112
+ sizeH: 36,
1113
+ offsetX: 0,
1114
+ offsetY: 2
1115
+ },
1116
+ {
1117
+ color: "rgb(255, 180, 50)",
1118
+ sizeW: 30,
1119
+ sizeH: 32,
1120
+ offsetX: 39,
1121
+ offsetY: 0
1122
+ },
1123
+ {
1124
+ color: "rgb(255, 140, 70)",
1125
+ sizeW: 33,
1126
+ sizeH: 28,
1127
+ offsetX: -36,
1128
+ offsetY: 2
1129
+ },
1130
+ {
1131
+ color: "rgb(255, 80, 80)",
1132
+ sizeW: 29,
1133
+ sizeH: 34,
1134
+ offsetX: -54,
1135
+ offsetY: 0
1136
+ },
1137
+ {
1138
+ color: "rgb(255, 200, 60)",
1139
+ sizeW: 27,
1140
+ sizeH: 30,
1141
+ offsetX: 51,
1142
+ offsetY: -1
1143
+ },
1144
+ {
1145
+ color: "rgb(255, 120, 50)",
1146
+ sizeW: 36,
1147
+ sizeH: 24,
1148
+ offsetX: 21,
1149
+ offsetY: 1
1150
+ },
1151
+ {
1152
+ color: "rgb(255, 160, 80)",
1153
+ sizeW: 30,
1154
+ sizeH: 22,
1155
+ offsetX: -21,
1156
+ offsetY: 0
1157
+ },
1158
+ {
1159
+ color: "rgb(255, 90, 60)",
1160
+ sizeW: 25,
1161
+ sizeH: 28,
1162
+ offsetX: 66,
1163
+ offsetY: 1
1164
+ },
1165
+ {
1166
+ color: "rgb(255, 70, 70)",
1167
+ sizeW: 23,
1168
+ sizeH: 30,
1169
+ offsetX: -66,
1170
+ offsetY: -1
1171
+ }
1172
+ ],
1173
+ light: [
1174
+ {
1175
+ color: "rgb(220, 80, 40)",
1176
+ sizeW: 45,
1177
+ sizeH: 36,
1178
+ offsetX: 0,
1179
+ offsetY: 2
1180
+ },
1181
+ {
1182
+ color: "rgb(230, 150, 30)",
1183
+ sizeW: 35,
1184
+ sizeH: 32,
1185
+ offsetX: 65,
1186
+ offsetY: 0
1187
+ },
1188
+ {
1189
+ color: "rgb(210, 110, 50)",
1190
+ sizeW: 40,
1191
+ sizeH: 28,
1192
+ offsetX: -60,
1193
+ offsetY: 2
1194
+ },
1195
+ {
1196
+ color: "rgb(200, 60, 60)",
1197
+ sizeW: 35,
1198
+ sizeH: 34,
1199
+ offsetX: -90,
1200
+ offsetY: 0
1201
+ },
1202
+ {
1203
+ color: "rgb(220, 170, 40)",
1204
+ sizeW: 38,
1205
+ sizeH: 30,
1206
+ offsetX: 85,
1207
+ offsetY: -1
1208
+ },
1209
+ {
1210
+ color: "rgb(210, 100, 30)",
1211
+ sizeW: 50,
1212
+ sizeH: 24,
1213
+ offsetX: 35,
1214
+ offsetY: 1
1215
+ },
1216
+ {
1217
+ color: "rgb(230, 130, 60)",
1218
+ sizeW: 40,
1219
+ sizeH: 22,
1220
+ offsetX: -35,
1221
+ offsetY: 0
1222
+ },
1223
+ {
1224
+ color: "rgb(190, 70, 50)",
1225
+ sizeW: 35,
1226
+ sizeH: 28,
1227
+ offsetX: 110,
1228
+ offsetY: 1
1229
+ },
1230
+ {
1231
+ color: "rgb(180, 50, 50)",
1232
+ sizeW: 30,
1233
+ sizeH: 30,
1234
+ offsetX: -110,
1235
+ offsetY: -1
1236
+ }
1237
+ ]
1238
+ }
1240
1239
  };
1241
1240
  export function lineBorderGradient(variant, dark, id, customColors) {
1242
- return lineBorderGradients[variant][dark ? "dark" : "light"].map((s, i)=>{
1243
- const ox = s.offsetX === 0 ? "" : s.offsetX > 0 ? ` + ${s.offsetX}px` : ` - ${Math.abs(s.offsetX)}px`;
1244
- const oy = s.offsetY === 0 ? "" : s.offsetY > 0 ? ` + ${s.offsetY}px` : ` - ${Math.abs(s.offsetY)}px`;
1245
- const color = pickColor(customColors, s.color, i);
1246
- return `radial-gradient(ellipse calc(${s.sizeW}px * var(--beam-w-${id})) calc(${s.sizeH}px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%${ox}) calc(100%${oy}), ${color}, transparent)`;
1247
- }).join(",\n ");
1241
+ return lineBorderGradients[variant][dark ? "dark" : "light"].map((s, i) => {
1242
+ const ox = s.offsetX === 0 ? "" : s.offsetX > 0 ? ` + ${s.offsetX}px` : ` - ${Math.abs(s.offsetX)}px`;
1243
+ const oy = s.offsetY === 0 ? "" : s.offsetY > 0 ? ` + ${s.offsetY}px` : ` - ${Math.abs(s.offsetY)}px`;
1244
+ const color = pickColor(customColors, s.color, i);
1245
+ return `radial-gradient(ellipse calc(${s.sizeW}px * var(--beam-w-${id})) calc(${s.sizeH}px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%${ox}) calc(100%${oy}), ${color}, transparent)`;
1246
+ }).join(",\n ");
1248
1247
  }
1249
1248
  const lineInnerGradients = {
1250
- colorful: [
1251
- {
1252
- color: "rgba(255, 50, 100, 0.48)",
1253
- sizeW: 33,
1254
- sizeH: 30,
1255
- offsetX: 0,
1256
- offsetY: 0
1257
- },
1258
- {
1259
- color: "rgba(40, 180, 220, 0.42)",
1260
- sizeW: 24,
1261
- sizeH: 26,
1262
- offsetX: 39,
1263
- offsetY: -3
1264
- },
1265
- {
1266
- color: "rgba(50, 200, 80, 0.48)",
1267
- sizeW: 27,
1268
- sizeH: 24,
1269
- offsetX: -36,
1270
- offsetY: 0
1271
- },
1272
- {
1273
- color: "rgba(180, 40, 240, 0.42)",
1274
- sizeW: 23,
1275
- sizeH: 28,
1276
- offsetX: -54,
1277
- offsetY: -2
1278
- },
1279
- {
1280
- color: "rgba(255, 160, 30, 0.50)",
1281
- sizeW: 24,
1282
- sizeH: 24,
1283
- offsetX: 51,
1284
- offsetY: -1
1285
- },
1286
- {
1287
- color: "rgba(100, 70, 255, 0.45)",
1288
- sizeW: 30,
1289
- sizeH: 20,
1290
- offsetX: 21,
1291
- offsetY: 0
1292
- },
1293
- {
1294
- color: "rgba(40, 140, 255, 0.40)",
1295
- sizeW: 25,
1296
- sizeH: 18,
1297
- offsetX: -21,
1298
- offsetY: -2
1299
- },
1300
- {
1301
- color: "rgba(240, 50, 180, 0.45)",
1302
- sizeW: 21,
1303
- sizeH: 24,
1304
- offsetX: 66,
1305
- offsetY: 0
1306
- },
1307
- {
1308
- color: "rgba(30, 185, 170, 0.52)",
1309
- sizeW: 18,
1310
- sizeH: 26,
1311
- offsetX: -66,
1312
- offsetY: -1
1313
- }
1314
- ],
1315
- mono: [
1316
- {
1317
- color: "rgba(200, 200, 200, 0.48)",
1318
- sizeW: 33,
1319
- sizeH: 30,
1320
- offsetX: 0,
1321
- offsetY: 0
1322
- },
1323
- {
1324
- color: "rgba(170, 170, 170, 0.42)",
1325
- sizeW: 24,
1326
- sizeH: 26,
1327
- offsetX: 39,
1328
- offsetY: -3
1329
- },
1330
- {
1331
- color: "rgba(155, 155, 155, 0.48)",
1332
- sizeW: 27,
1333
- sizeH: 24,
1334
- offsetX: -36,
1335
- offsetY: 0
1336
- },
1337
- {
1338
- color: "rgba(185, 185, 185, 0.42)",
1339
- sizeW: 23,
1340
- sizeH: 28,
1341
- offsetX: -54,
1342
- offsetY: -2
1343
- },
1344
- {
1345
- color: "rgba(165, 165, 165, 0.50)",
1346
- sizeW: 24,
1347
- sizeH: 24,
1348
- offsetX: 51,
1349
- offsetY: -1
1350
- },
1351
- {
1352
- color: "rgba(180, 180, 180, 0.45)",
1353
- sizeW: 30,
1354
- sizeH: 20,
1355
- offsetX: 21,
1356
- offsetY: 0
1357
- },
1358
- {
1359
- color: "rgba(160, 160, 160, 0.40)",
1360
- sizeW: 25,
1361
- sizeH: 18,
1362
- offsetX: -21,
1363
- offsetY: -2
1364
- },
1365
- {
1366
- color: "rgba(175, 175, 175, 0.45)",
1367
- sizeW: 21,
1368
- sizeH: 24,
1369
- offsetX: 66,
1370
- offsetY: 0
1371
- },
1372
- {
1373
- color: "rgba(190, 190, 190, 0.52)",
1374
- sizeW: 18,
1375
- sizeH: 26,
1376
- offsetX: -66,
1377
- offsetY: -1
1378
- }
1379
- ],
1380
- ocean: [
1381
- {
1382
- color: "rgba(100, 80, 220, 0.48)",
1383
- sizeW: 33,
1384
- sizeH: 30,
1385
- offsetX: 0,
1386
- offsetY: 0
1387
- },
1388
- {
1389
- color: "rgba(60, 120, 255, 0.42)",
1390
- sizeW: 24,
1391
- sizeH: 26,
1392
- offsetX: 39,
1393
- offsetY: -3
1394
- },
1395
- {
1396
- color: "rgba(80, 100, 200, 0.48)",
1397
- sizeW: 27,
1398
- sizeH: 24,
1399
- offsetX: -36,
1400
- offsetY: 0
1401
- },
1402
- {
1403
- color: "rgba(130, 70, 255, 0.42)",
1404
- sizeW: 23,
1405
- sizeH: 28,
1406
- offsetX: -54,
1407
- offsetY: -2
1408
- },
1409
- {
1410
- color: "rgba(70, 130, 255, 0.50)",
1411
- sizeW: 24,
1412
- sizeH: 24,
1413
- offsetX: 51,
1414
- offsetY: -1
1415
- },
1416
- {
1417
- color: "rgba(120, 80, 255, 0.45)",
1418
- sizeW: 30,
1419
- sizeH: 20,
1420
- offsetX: 21,
1421
- offsetY: 0
1422
- },
1423
- {
1424
- color: "rgba(90, 110, 230, 0.40)",
1425
- sizeW: 25,
1426
- sizeH: 18,
1427
- offsetX: -21,
1428
- offsetY: -2
1429
- },
1430
- {
1431
- color: "rgba(110, 90, 240, 0.45)",
1432
- sizeW: 21,
1433
- sizeH: 24,
1434
- offsetX: 66,
1435
- offsetY: 0
1436
- },
1437
- {
1438
- color: "rgba(140, 100, 255, 0.52)",
1439
- sizeW: 18,
1440
- sizeH: 26,
1441
- offsetX: -66,
1442
- offsetY: -1
1443
- }
1444
- ],
1445
- sunset: [
1446
- {
1447
- color: "rgba(255, 100, 60, 0.48)",
1448
- sizeW: 33,
1449
- sizeH: 30,
1450
- offsetX: 0,
1451
- offsetY: 0
1452
- },
1453
- {
1454
- color: "rgba(255, 180, 50, 0.42)",
1455
- sizeW: 24,
1456
- sizeH: 26,
1457
- offsetX: 39,
1458
- offsetY: -3
1459
- },
1460
- {
1461
- color: "rgba(255, 140, 70, 0.48)",
1462
- sizeW: 27,
1463
- sizeH: 24,
1464
- offsetX: -36,
1465
- offsetY: 0
1466
- },
1467
- {
1468
- color: "rgba(255, 80, 80, 0.42)",
1469
- sizeW: 23,
1470
- sizeH: 28,
1471
- offsetX: -54,
1472
- offsetY: -2
1473
- },
1474
- {
1475
- color: "rgba(255, 200, 60, 0.50)",
1476
- sizeW: 24,
1477
- sizeH: 24,
1478
- offsetX: 51,
1479
- offsetY: -1
1480
- },
1481
- {
1482
- color: "rgba(255, 120, 50, 0.45)",
1483
- sizeW: 30,
1484
- sizeH: 20,
1485
- offsetX: 21,
1486
- offsetY: 0
1487
- },
1488
- {
1489
- color: "rgba(255, 160, 80, 0.40)",
1490
- sizeW: 25,
1491
- sizeH: 18,
1492
- offsetX: -21,
1493
- offsetY: -2
1494
- },
1495
- {
1496
- color: "rgba(255, 90, 60, 0.45)",
1497
- sizeW: 21,
1498
- sizeH: 24,
1499
- offsetX: 66,
1500
- offsetY: 0
1501
- },
1502
- {
1503
- color: "rgba(255, 70, 70, 0.52)",
1504
- sizeW: 18,
1505
- sizeH: 26,
1506
- offsetX: -66,
1507
- offsetY: -1
1508
- }
1509
- ]
1249
+ colorful: [
1250
+ {
1251
+ color: "rgba(255, 50, 100, 0.48)",
1252
+ sizeW: 33,
1253
+ sizeH: 30,
1254
+ offsetX: 0,
1255
+ offsetY: 0
1256
+ },
1257
+ {
1258
+ color: "rgba(40, 180, 220, 0.42)",
1259
+ sizeW: 24,
1260
+ sizeH: 26,
1261
+ offsetX: 39,
1262
+ offsetY: -3
1263
+ },
1264
+ {
1265
+ color: "rgba(50, 200, 80, 0.48)",
1266
+ sizeW: 27,
1267
+ sizeH: 24,
1268
+ offsetX: -36,
1269
+ offsetY: 0
1270
+ },
1271
+ {
1272
+ color: "rgba(180, 40, 240, 0.42)",
1273
+ sizeW: 23,
1274
+ sizeH: 28,
1275
+ offsetX: -54,
1276
+ offsetY: -2
1277
+ },
1278
+ {
1279
+ color: "rgba(255, 160, 30, 0.50)",
1280
+ sizeW: 24,
1281
+ sizeH: 24,
1282
+ offsetX: 51,
1283
+ offsetY: -1
1284
+ },
1285
+ {
1286
+ color: "rgba(100, 70, 255, 0.45)",
1287
+ sizeW: 30,
1288
+ sizeH: 20,
1289
+ offsetX: 21,
1290
+ offsetY: 0
1291
+ },
1292
+ {
1293
+ color: "rgba(40, 140, 255, 0.40)",
1294
+ sizeW: 25,
1295
+ sizeH: 18,
1296
+ offsetX: -21,
1297
+ offsetY: -2
1298
+ },
1299
+ {
1300
+ color: "rgba(240, 50, 180, 0.45)",
1301
+ sizeW: 21,
1302
+ sizeH: 24,
1303
+ offsetX: 66,
1304
+ offsetY: 0
1305
+ },
1306
+ {
1307
+ color: "rgba(30, 185, 170, 0.52)",
1308
+ sizeW: 18,
1309
+ sizeH: 26,
1310
+ offsetX: -66,
1311
+ offsetY: -1
1312
+ }
1313
+ ],
1314
+ mono: [
1315
+ {
1316
+ color: "rgba(200, 200, 200, 0.48)",
1317
+ sizeW: 33,
1318
+ sizeH: 30,
1319
+ offsetX: 0,
1320
+ offsetY: 0
1321
+ },
1322
+ {
1323
+ color: "rgba(170, 170, 170, 0.42)",
1324
+ sizeW: 24,
1325
+ sizeH: 26,
1326
+ offsetX: 39,
1327
+ offsetY: -3
1328
+ },
1329
+ {
1330
+ color: "rgba(155, 155, 155, 0.48)",
1331
+ sizeW: 27,
1332
+ sizeH: 24,
1333
+ offsetX: -36,
1334
+ offsetY: 0
1335
+ },
1336
+ {
1337
+ color: "rgba(185, 185, 185, 0.42)",
1338
+ sizeW: 23,
1339
+ sizeH: 28,
1340
+ offsetX: -54,
1341
+ offsetY: -2
1342
+ },
1343
+ {
1344
+ color: "rgba(165, 165, 165, 0.50)",
1345
+ sizeW: 24,
1346
+ sizeH: 24,
1347
+ offsetX: 51,
1348
+ offsetY: -1
1349
+ },
1350
+ {
1351
+ color: "rgba(180, 180, 180, 0.45)",
1352
+ sizeW: 30,
1353
+ sizeH: 20,
1354
+ offsetX: 21,
1355
+ offsetY: 0
1356
+ },
1357
+ {
1358
+ color: "rgba(160, 160, 160, 0.40)",
1359
+ sizeW: 25,
1360
+ sizeH: 18,
1361
+ offsetX: -21,
1362
+ offsetY: -2
1363
+ },
1364
+ {
1365
+ color: "rgba(175, 175, 175, 0.45)",
1366
+ sizeW: 21,
1367
+ sizeH: 24,
1368
+ offsetX: 66,
1369
+ offsetY: 0
1370
+ },
1371
+ {
1372
+ color: "rgba(190, 190, 190, 0.52)",
1373
+ sizeW: 18,
1374
+ sizeH: 26,
1375
+ offsetX: -66,
1376
+ offsetY: -1
1377
+ }
1378
+ ],
1379
+ ocean: [
1380
+ {
1381
+ color: "rgba(100, 80, 220, 0.48)",
1382
+ sizeW: 33,
1383
+ sizeH: 30,
1384
+ offsetX: 0,
1385
+ offsetY: 0
1386
+ },
1387
+ {
1388
+ color: "rgba(60, 120, 255, 0.42)",
1389
+ sizeW: 24,
1390
+ sizeH: 26,
1391
+ offsetX: 39,
1392
+ offsetY: -3
1393
+ },
1394
+ {
1395
+ color: "rgba(80, 100, 200, 0.48)",
1396
+ sizeW: 27,
1397
+ sizeH: 24,
1398
+ offsetX: -36,
1399
+ offsetY: 0
1400
+ },
1401
+ {
1402
+ color: "rgba(130, 70, 255, 0.42)",
1403
+ sizeW: 23,
1404
+ sizeH: 28,
1405
+ offsetX: -54,
1406
+ offsetY: -2
1407
+ },
1408
+ {
1409
+ color: "rgba(70, 130, 255, 0.50)",
1410
+ sizeW: 24,
1411
+ sizeH: 24,
1412
+ offsetX: 51,
1413
+ offsetY: -1
1414
+ },
1415
+ {
1416
+ color: "rgba(120, 80, 255, 0.45)",
1417
+ sizeW: 30,
1418
+ sizeH: 20,
1419
+ offsetX: 21,
1420
+ offsetY: 0
1421
+ },
1422
+ {
1423
+ color: "rgba(90, 110, 230, 0.40)",
1424
+ sizeW: 25,
1425
+ sizeH: 18,
1426
+ offsetX: -21,
1427
+ offsetY: -2
1428
+ },
1429
+ {
1430
+ color: "rgba(110, 90, 240, 0.45)",
1431
+ sizeW: 21,
1432
+ sizeH: 24,
1433
+ offsetX: 66,
1434
+ offsetY: 0
1435
+ },
1436
+ {
1437
+ color: "rgba(140, 100, 255, 0.52)",
1438
+ sizeW: 18,
1439
+ sizeH: 26,
1440
+ offsetX: -66,
1441
+ offsetY: -1
1442
+ }
1443
+ ],
1444
+ sunset: [
1445
+ {
1446
+ color: "rgba(255, 100, 60, 0.48)",
1447
+ sizeW: 33,
1448
+ sizeH: 30,
1449
+ offsetX: 0,
1450
+ offsetY: 0
1451
+ },
1452
+ {
1453
+ color: "rgba(255, 180, 50, 0.42)",
1454
+ sizeW: 24,
1455
+ sizeH: 26,
1456
+ offsetX: 39,
1457
+ offsetY: -3
1458
+ },
1459
+ {
1460
+ color: "rgba(255, 140, 70, 0.48)",
1461
+ sizeW: 27,
1462
+ sizeH: 24,
1463
+ offsetX: -36,
1464
+ offsetY: 0
1465
+ },
1466
+ {
1467
+ color: "rgba(255, 80, 80, 0.42)",
1468
+ sizeW: 23,
1469
+ sizeH: 28,
1470
+ offsetX: -54,
1471
+ offsetY: -2
1472
+ },
1473
+ {
1474
+ color: "rgba(255, 200, 60, 0.50)",
1475
+ sizeW: 24,
1476
+ sizeH: 24,
1477
+ offsetX: 51,
1478
+ offsetY: -1
1479
+ },
1480
+ {
1481
+ color: "rgba(255, 120, 50, 0.45)",
1482
+ sizeW: 30,
1483
+ sizeH: 20,
1484
+ offsetX: 21,
1485
+ offsetY: 0
1486
+ },
1487
+ {
1488
+ color: "rgba(255, 160, 80, 0.40)",
1489
+ sizeW: 25,
1490
+ sizeH: 18,
1491
+ offsetX: -21,
1492
+ offsetY: -2
1493
+ },
1494
+ {
1495
+ color: "rgba(255, 90, 60, 0.45)",
1496
+ sizeW: 21,
1497
+ sizeH: 24,
1498
+ offsetX: 66,
1499
+ offsetY: 0
1500
+ },
1501
+ {
1502
+ color: "rgba(255, 70, 70, 0.52)",
1503
+ sizeW: 18,
1504
+ sizeH: 26,
1505
+ offsetX: -66,
1506
+ offsetY: -1
1507
+ }
1508
+ ]
1510
1509
  };
1511
1510
  export function lineInnerGradient(variant, id, customColors) {
1512
- return lineInnerGradients[variant].map((s, i)=>{
1513
- const ox = s.offsetX === 0 ? "" : s.offsetX > 0 ? ` + ${s.offsetX}px` : ` - ${Math.abs(s.offsetX)}px`;
1514
- const oy = s.offsetY === 0 ? "" : ` - ${Math.abs(s.offsetY)}px`;
1515
- let color = s.color;
1516
- if (customColors && customColors.length > 0) {
1517
- const alphaMatch = s.color.match(/[\d.]+\s*\)$/);
1518
- const alpha = alphaMatch ? parseFloat(alphaMatch[0]) : 0.45;
1519
- color = toRgba(customColors[i % customColors.length], alpha);
1520
- }
1521
- return `radial-gradient(ellipse calc(${s.sizeW}px * var(--beam-w-${id})) calc(${s.sizeH}px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%${ox}) calc(100%${oy}), ${color}, transparent)`;
1522
- }).join(",\n ");
1511
+ return lineInnerGradients[variant].map((s, i) => {
1512
+ const ox = s.offsetX === 0 ? "" : s.offsetX > 0 ? ` + ${s.offsetX}px` : ` - ${Math.abs(s.offsetX)}px`;
1513
+ const oy = s.offsetY === 0 ? "" : ` - ${Math.abs(s.offsetY)}px`;
1514
+ let color = s.color;
1515
+ if (customColors && customColors.length > 0) {
1516
+ const alphaMatch = s.color.match(/[\d.]+\s*\)$/);
1517
+ const alpha = alphaMatch ? parseFloat(alphaMatch[0]) : .45;
1518
+ color = toRgba(customColors[i % customColors.length], alpha);
1519
+ }
1520
+ return `radial-gradient(ellipse calc(${s.sizeW}px * var(--beam-w-${id})) calc(${s.sizeH}px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%${ox}) calc(100%${oy}), ${color}, transparent)`;
1521
+ }).join(",\n ");
1523
1522
  }
1524
1523
  const lineSpikeColors = {
1525
- colorful: {
1526
- dark: {
1527
- spikes: [
1528
- {
1529
- color1: "rgb(100, 70, 255)",
1530
- color2: "rgba(100, 70, 255, 1)"
1531
- },
1532
- {
1533
- color1: "rgba(255, 170, 40, 0.59)",
1534
- color2: "rgba(255, 170, 40, 0.29)"
1535
- },
1536
- {
1537
- color1: "rgb(50, 200, 100)",
1538
- color2: "rgba(50, 200, 100, 1)"
1539
- },
1540
- {
1541
- color1: "rgba(200, 50, 240, 0.91)",
1542
- color2: "rgba(200, 50, 240, 0.45)"
1543
- },
1544
- {
1545
- color1: "rgb(40, 140, 255)",
1546
- color2: "rgba(40, 140, 255, 1)"
1547
- }
1548
- ]
1549
- },
1550
- light: {
1551
- spikes: [
1552
- {
1553
- color1: "rgb(80, 50, 200)",
1554
- color2: "rgba(80, 50, 200, 0.8)"
1555
- },
1556
- {
1557
- color1: "rgba(210, 130, 0, 0.7)",
1558
- color2: "rgba(210, 130, 0, 0.46)"
1559
- },
1560
- {
1561
- color1: "rgb(30, 160, 70)",
1562
- color2: "rgba(30, 160, 70, 0.82)"
1563
- },
1564
- {
1565
- color1: "rgb(160, 30, 190)",
1566
- color2: "rgba(160, 30, 190, 0.7)"
1567
- },
1568
- {
1569
- color1: "rgb(30, 100, 200)",
1570
- color2: "rgba(30, 100, 200, 0.78)"
1571
- }
1572
- ]
1573
- }
1574
- },
1575
- mono: {
1576
- dark: {
1577
- spikes: [
1578
- {
1579
- color1: "rgb(200, 200, 200)",
1580
- color2: "rgba(200, 200, 200, 1)"
1581
- },
1582
- {
1583
- color1: "rgba(180, 180, 180, 0.59)",
1584
- color2: "rgba(180, 180, 180, 0.29)"
1585
- },
1586
- {
1587
- color1: "rgb(190, 190, 190)",
1588
- color2: "rgba(190, 190, 190, 1)"
1589
- },
1590
- {
1591
- color1: "rgba(170, 170, 170, 0.91)",
1592
- color2: "rgba(170, 170, 170, 0.45)"
1593
- },
1594
- {
1595
- color1: "rgb(185, 185, 185)",
1596
- color2: "rgba(185, 185, 185, 1)"
1597
- }
1598
- ]
1599
- },
1600
- light: {
1601
- spikes: [
1602
- {
1603
- color1: "rgb(80, 80, 80)",
1604
- color2: "rgba(80, 80, 80, 0.8)"
1605
- },
1606
- {
1607
- color1: "rgba(100, 100, 100, 0.7)",
1608
- color2: "rgba(100, 100, 100, 0.46)"
1609
- },
1610
- {
1611
- color1: "rgb(70, 70, 70)",
1612
- color2: "rgba(70, 70, 70, 0.82)"
1613
- },
1614
- {
1615
- color1: "rgb(90, 90, 90)",
1616
- color2: "rgba(90, 90, 90, 0.7)"
1617
- },
1618
- {
1619
- color1: "rgb(85, 85, 85)",
1620
- color2: "rgba(85, 85, 85, 0.78)"
1621
- }
1622
- ]
1623
- }
1624
- },
1625
- ocean: {
1626
- dark: {
1627
- spikes: [
1628
- {
1629
- color1: "rgb(100, 80, 255)",
1630
- color2: "rgb(100, 80, 255)"
1631
- },
1632
- {
1633
- color1: "rgba(80, 130, 220, 0.59)",
1634
- color2: "rgba(80, 130, 220, 0.29)"
1635
- },
1636
- {
1637
- color1: "rgb(60, 100, 255)",
1638
- color2: "rgb(60, 100, 255)"
1639
- },
1640
- {
1641
- color1: "rgba(90, 120, 200, 0.91)",
1642
- color2: "rgba(90, 120, 200, 0.45)"
1643
- },
1644
- {
1645
- color1: "rgb(120, 90, 255)",
1646
- color2: "rgb(120, 90, 255)"
1647
- }
1648
- ]
1649
- },
1650
- light: {
1651
- spikes: [
1652
- {
1653
- color1: "rgb(50, 40, 180)",
1654
- color2: "rgba(50, 40, 180, 0.8)"
1655
- },
1656
- {
1657
- color1: "rgba(40, 80, 200, 0.7)",
1658
- color2: "rgba(40, 80, 200, 0.46)"
1659
- },
1660
- {
1661
- color1: "rgb(30, 50, 190)",
1662
- color2: "rgba(30, 50, 190, 0.82)"
1663
- },
1664
- {
1665
- color1: "rgb(60, 90, 180)",
1666
- color2: "rgba(60, 90, 180, 0.7)"
1667
- },
1668
- {
1669
- color1: "rgb(70, 60, 200)",
1670
- color2: "rgba(70, 60, 200, 0.78)"
1671
- }
1672
- ]
1673
- }
1674
- },
1675
- sunset: {
1676
- dark: {
1677
- spikes: [
1678
- {
1679
- color1: "rgb(255, 100, 80)",
1680
- color2: "rgb(255, 100, 80)"
1681
- },
1682
- {
1683
- color1: "rgba(255, 150, 80, 0.59)",
1684
- color2: "rgba(255, 150, 80, 0.29)"
1685
- },
1686
- {
1687
- color1: "rgb(255, 80, 60)",
1688
- color2: "rgb(255, 80, 60)"
1689
- },
1690
- {
1691
- color1: "rgba(255, 120, 50, 0.91)",
1692
- color2: "rgba(255, 120, 50, 0.45)"
1693
- },
1694
- {
1695
- color1: "rgb(255, 140, 70)",
1696
- color2: "rgb(255, 140, 70)"
1697
- }
1698
- ]
1699
- },
1700
- light: {
1701
- spikes: [
1702
- {
1703
- color1: "rgb(200, 60, 30)",
1704
- color2: "rgba(200, 60, 30, 0.8)"
1705
- },
1706
- {
1707
- color1: "rgba(220, 100, 20, 0.7)",
1708
- color2: "rgba(220, 100, 20, 0.46)"
1709
- },
1710
- {
1711
- color1: "rgb(180, 40, 20)",
1712
- color2: "rgba(180, 40, 20, 0.82)"
1713
- },
1714
- {
1715
- color1: "rgb(210, 80, 10)",
1716
- color2: "rgba(210, 80, 10, 0.7)"
1717
- },
1718
- {
1719
- color1: "rgb(190, 70, 30)",
1720
- color2: "rgba(190, 70, 30, 0.78)"
1721
- }
1722
- ]
1723
- }
1724
- }
1524
+ colorful: {
1525
+ dark: { spikes: [
1526
+ {
1527
+ color1: "rgb(100, 70, 255)",
1528
+ color2: "rgba(100, 70, 255, 1)"
1529
+ },
1530
+ {
1531
+ color1: "rgba(255, 170, 40, 0.59)",
1532
+ color2: "rgba(255, 170, 40, 0.29)"
1533
+ },
1534
+ {
1535
+ color1: "rgb(50, 200, 100)",
1536
+ color2: "rgba(50, 200, 100, 1)"
1537
+ },
1538
+ {
1539
+ color1: "rgba(200, 50, 240, 0.91)",
1540
+ color2: "rgba(200, 50, 240, 0.45)"
1541
+ },
1542
+ {
1543
+ color1: "rgb(40, 140, 255)",
1544
+ color2: "rgba(40, 140, 255, 1)"
1545
+ }
1546
+ ] },
1547
+ light: { spikes: [
1548
+ {
1549
+ color1: "rgb(80, 50, 200)",
1550
+ color2: "rgba(80, 50, 200, 0.8)"
1551
+ },
1552
+ {
1553
+ color1: "rgba(210, 130, 0, 0.7)",
1554
+ color2: "rgba(210, 130, 0, 0.46)"
1555
+ },
1556
+ {
1557
+ color1: "rgb(30, 160, 70)",
1558
+ color2: "rgba(30, 160, 70, 0.82)"
1559
+ },
1560
+ {
1561
+ color1: "rgb(160, 30, 190)",
1562
+ color2: "rgba(160, 30, 190, 0.7)"
1563
+ },
1564
+ {
1565
+ color1: "rgb(30, 100, 200)",
1566
+ color2: "rgba(30, 100, 200, 0.78)"
1567
+ }
1568
+ ] }
1569
+ },
1570
+ mono: {
1571
+ dark: { spikes: [
1572
+ {
1573
+ color1: "rgb(200, 200, 200)",
1574
+ color2: "rgba(200, 200, 200, 1)"
1575
+ },
1576
+ {
1577
+ color1: "rgba(180, 180, 180, 0.59)",
1578
+ color2: "rgba(180, 180, 180, 0.29)"
1579
+ },
1580
+ {
1581
+ color1: "rgb(190, 190, 190)",
1582
+ color2: "rgba(190, 190, 190, 1)"
1583
+ },
1584
+ {
1585
+ color1: "rgba(170, 170, 170, 0.91)",
1586
+ color2: "rgba(170, 170, 170, 0.45)"
1587
+ },
1588
+ {
1589
+ color1: "rgb(185, 185, 185)",
1590
+ color2: "rgba(185, 185, 185, 1)"
1591
+ }
1592
+ ] },
1593
+ light: { spikes: [
1594
+ {
1595
+ color1: "rgb(80, 80, 80)",
1596
+ color2: "rgba(80, 80, 80, 0.8)"
1597
+ },
1598
+ {
1599
+ color1: "rgba(100, 100, 100, 0.7)",
1600
+ color2: "rgba(100, 100, 100, 0.46)"
1601
+ },
1602
+ {
1603
+ color1: "rgb(70, 70, 70)",
1604
+ color2: "rgba(70, 70, 70, 0.82)"
1605
+ },
1606
+ {
1607
+ color1: "rgb(90, 90, 90)",
1608
+ color2: "rgba(90, 90, 90, 0.7)"
1609
+ },
1610
+ {
1611
+ color1: "rgb(85, 85, 85)",
1612
+ color2: "rgba(85, 85, 85, 0.78)"
1613
+ }
1614
+ ] }
1615
+ },
1616
+ ocean: {
1617
+ dark: { spikes: [
1618
+ {
1619
+ color1: "rgb(100, 80, 255)",
1620
+ color2: "rgb(100, 80, 255)"
1621
+ },
1622
+ {
1623
+ color1: "rgba(80, 130, 220, 0.59)",
1624
+ color2: "rgba(80, 130, 220, 0.29)"
1625
+ },
1626
+ {
1627
+ color1: "rgb(60, 100, 255)",
1628
+ color2: "rgb(60, 100, 255)"
1629
+ },
1630
+ {
1631
+ color1: "rgba(90, 120, 200, 0.91)",
1632
+ color2: "rgba(90, 120, 200, 0.45)"
1633
+ },
1634
+ {
1635
+ color1: "rgb(120, 90, 255)",
1636
+ color2: "rgb(120, 90, 255)"
1637
+ }
1638
+ ] },
1639
+ light: { spikes: [
1640
+ {
1641
+ color1: "rgb(50, 40, 180)",
1642
+ color2: "rgba(50, 40, 180, 0.8)"
1643
+ },
1644
+ {
1645
+ color1: "rgba(40, 80, 200, 0.7)",
1646
+ color2: "rgba(40, 80, 200, 0.46)"
1647
+ },
1648
+ {
1649
+ color1: "rgb(30, 50, 190)",
1650
+ color2: "rgba(30, 50, 190, 0.82)"
1651
+ },
1652
+ {
1653
+ color1: "rgb(60, 90, 180)",
1654
+ color2: "rgba(60, 90, 180, 0.7)"
1655
+ },
1656
+ {
1657
+ color1: "rgb(70, 60, 200)",
1658
+ color2: "rgba(70, 60, 200, 0.78)"
1659
+ }
1660
+ ] }
1661
+ },
1662
+ sunset: {
1663
+ dark: { spikes: [
1664
+ {
1665
+ color1: "rgb(255, 100, 80)",
1666
+ color2: "rgb(255, 100, 80)"
1667
+ },
1668
+ {
1669
+ color1: "rgba(255, 150, 80, 0.59)",
1670
+ color2: "rgba(255, 150, 80, 0.29)"
1671
+ },
1672
+ {
1673
+ color1: "rgb(255, 80, 60)",
1674
+ color2: "rgb(255, 80, 60)"
1675
+ },
1676
+ {
1677
+ color1: "rgba(255, 120, 50, 0.91)",
1678
+ color2: "rgba(255, 120, 50, 0.45)"
1679
+ },
1680
+ {
1681
+ color1: "rgb(255, 140, 70)",
1682
+ color2: "rgb(255, 140, 70)"
1683
+ }
1684
+ ] },
1685
+ light: { spikes: [
1686
+ {
1687
+ color1: "rgb(200, 60, 30)",
1688
+ color2: "rgba(200, 60, 30, 0.8)"
1689
+ },
1690
+ {
1691
+ color1: "rgba(220, 100, 20, 0.7)",
1692
+ color2: "rgba(220, 100, 20, 0.46)"
1693
+ },
1694
+ {
1695
+ color1: "rgb(180, 40, 20)",
1696
+ color2: "rgba(180, 40, 20, 0.82)"
1697
+ },
1698
+ {
1699
+ color1: "rgb(210, 80, 10)",
1700
+ color2: "rgba(210, 80, 10, 0.7)"
1701
+ },
1702
+ {
1703
+ color1: "rgb(190, 70, 30)",
1704
+ color2: "rgba(190, 70, 30, 0.78)"
1705
+ }
1706
+ ] }
1707
+ }
1725
1708
  };
1726
1709
  function colorWithAlpha(color, alpha) {
1727
- const rgba = color.match(/^rgba\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*[\d.]+\s*\)$/);
1728
- if (rgba) return `rgba(${rgba[1]}, ${rgba[2]}, ${rgba[3]}, ${alpha})`;
1729
- const rgb = color.match(/^rgb\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)$/);
1730
- return rgb ? `rgba(${rgb[1]}, ${rgb[2]}, ${rgb[3]}, ${alpha})` : color;
1710
+ const rgba = color.match(/^rgba\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*[\d.]+\s*\)$/);
1711
+ if (rgba) return `rgba(${rgba[1]}, ${rgba[2]}, ${rgba[3]}, ${alpha})`;
1712
+ const rgb = color.match(/^rgb\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)$/);
1713
+ return rgb ? `rgba(${rgb[1]}, ${rgb[2]}, ${rgb[3]}, ${alpha})` : color;
1731
1714
  }
1732
1715
  function monoLineBloom(dark, id) {
1733
- return dark ? `radial-gradient(ellipse calc(18px * var(--beam-spike-${id})) calc(30px * var(--beam-h-${id})) at 8% calc(100% - 2px), rgba(200, 200, 200, 0.35), rgba(200, 200, 200, 0.12) 50%, transparent 100%),
1716
+ return dark ? `radial-gradient(ellipse calc(18px * var(--beam-spike-${id})) calc(30px * var(--beam-h-${id})) at 8% calc(100% - 2px), rgba(200, 200, 200, 0.35), rgba(200, 200, 200, 0.12) 50%, transparent 100%),
1734
1717
  radial-gradient(ellipse calc(14px * var(--beam-spike2-${id})) calc(28px * var(--beam-h-${id})) at 22% calc(100% - 4px), rgba(170, 170, 170, 0.3), rgba(170, 170, 170, 0.1) 50%, transparent 100%),
1735
1718
  radial-gradient(ellipse calc(16px * var(--beam-spike-${id})) calc(32px * var(--beam-h-${id})) at 36% calc(100% - 3px), rgba(190, 190, 190, 0.35), rgba(190, 190, 190, 0.12) 50%, transparent 100%),
1736
1719
  radial-gradient(ellipse calc(20px * var(--beam-spike2-${id})) calc(25px * var(--beam-h-${id})) at 50% calc(100% - 2px), rgba(180, 180, 180, 0.25), rgba(180, 180, 180, 0.08) 55%, transparent 100%),
@@ -1748,26 +1731,28 @@ function monoLineBloom(dark, id) {
1748
1731
  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%)`;
1749
1732
  }
1750
1733
  export function lineBloomGradient(variant, dark, id, customColors) {
1751
- const spike = spikeColors(variant, dark, customColors);
1752
- const primary = spike.primary;
1753
- const secondary = spike.secondary;
1754
- const presetSpikes = lineSpikeColors[variant][dark ? "dark" : "light"].spikes;
1755
- const spikes = customColors && customColors.length > 0 ? presetSpikes.map((s, i)=>{
1756
- const c = customColors[i % customColors.length];
1757
- const a1 = parseFloat(s.color1.match(/[\d.]+\s*\)$/)?.[0] ?? "1");
1758
- const a2 = parseFloat(s.color2.match(/[\d.]+\s*\)$/)?.[0] ?? "1");
1759
- return {
1760
- color1: toRgba(c, a1),
1761
- color2: toRgba(c, a2)
1762
- };
1763
- }) : presetSpikes;
1764
- if (variant === "mono" && (!customColors || customColors.length === 0)) return monoLineBloom(dark, id);
1765
- if (dark) {
1766
- const c = primary;
1767
- const f = primary;
1768
- const i = secondary;
1769
- const n = colorWithAlpha(secondary, 0.49);
1770
- return `radial-gradient(ellipse calc(0.8px * var(--beam-spike-${id})) calc(92px * var(--beam-h-${id})) at 8% calc(100% - 2px), ${c}, ${f} 30%, transparent 88%),
1734
+ const spike = spikeColors(variant, dark, customColors);
1735
+ const primary = spike.primary;
1736
+ const secondary = spike.secondary;
1737
+ // WHY: when callers supply colors, recolor the 5 paired spike stops by cycling the palette and reusing the preset's alpha cadence so the shimmer rhythm is preserved.
1738
+ // Mono is the tonal exception.
1739
+ const presetSpikes = lineSpikeColors[variant][dark ? "dark" : "light"].spikes;
1740
+ const spikes = customColors && customColors.length > 0 ? presetSpikes.map((s, i) => {
1741
+ const c = customColors[i % customColors.length];
1742
+ const a1 = parseFloat(s.color1.match(/[\d.]+\s*\)$/)?.[0] ?? "1");
1743
+ const a2 = parseFloat(s.color2.match(/[\d.]+\s*\)$/)?.[0] ?? "1");
1744
+ return {
1745
+ color1: toRgba(c, a1),
1746
+ color2: toRgba(c, a2)
1747
+ };
1748
+ }) : presetSpikes;
1749
+ if (variant === "mono" && (!customColors || customColors.length === 0)) return monoLineBloom(dark, id);
1750
+ if (dark) {
1751
+ const c = primary;
1752
+ const f = primary;
1753
+ const i = secondary;
1754
+ const n = colorWithAlpha(secondary, .49);
1755
+ return `radial-gradient(ellipse calc(0.8px * var(--beam-spike-${id})) calc(92px * var(--beam-h-${id})) at 8% calc(100% - 2px), ${c}, ${f} 30%, transparent 88%),
1771
1756
  radial-gradient(ellipse calc(10px * var(--beam-spike2-${id})) calc(35px * var(--beam-h-${id})) at 22% calc(100% - 4px), ${i}, ${n} 50%, transparent 95%),
1772
1757
  radial-gradient(ellipse calc(2px * (2 - var(--beam-spike-${id}))) calc(72px * var(--beam-h-${id})) at 36% calc(100% - 3px), ${spikes[0].color1}, ${spikes[0].color2} 40%, transparent 90%),
1773
1758
  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%),
@@ -1776,12 +1761,12 @@ export function lineBloomGradient(variant, dark, id, customColors) {
1776
1761
  radial-gradient(ellipse calc(0.6px * (2 - var(--beam-spike-${id}))) calc(60px * var(--beam-h-${id})) at 92% calc(100% - 3px), ${spikes[4].color1}, ${spikes[4].color2} 42%, transparent 91%),
1777
1762
  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), rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.9) 20%, rgba(255, 255, 255, 0.5) 50%, transparent 100%),
1778
1763
  radial-gradient(ellipse calc(42px * var(--beam-w-${id})) calc(40px * var(--beam-h-${id})) at calc(var(--beam-x-${id}) * 100%) 100%, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.12) 25%, rgba(255, 255, 255, 0.03) 55%, transparent 80%)`;
1779
- }
1780
- const c = primary;
1781
- const f = colorWithAlpha(primary, 0.85);
1782
- const i = secondary;
1783
- const n = colorWithAlpha(secondary, 0.7);
1784
- return `radial-gradient(ellipse calc(0.8px * var(--beam-spike-${id})) calc(92px * var(--beam-h-${id})) at 8% calc(100% - 2px), ${c}, ${f} 30%, transparent 88%),
1764
+ }
1765
+ const c = primary;
1766
+ const f = colorWithAlpha(primary, .85);
1767
+ const i = secondary;
1768
+ const n = colorWithAlpha(secondary, .7);
1769
+ return `radial-gradient(ellipse calc(0.8px * var(--beam-spike-${id})) calc(92px * var(--beam-h-${id})) at 8% calc(100% - 2px), ${c}, ${f} 30%, transparent 88%),
1785
1770
  radial-gradient(ellipse calc(10px * var(--beam-spike2-${id})) calc(35px * var(--beam-h-${id})) at 22% calc(100% - 4px), ${i}, ${n} 50%, transparent 95%),
1786
1771
  radial-gradient(ellipse calc(2px * (2 - var(--beam-spike-${id}))) calc(72px * var(--beam-h-${id})) at 36% calc(100% - 3px), ${spikes[0].color1}, ${spikes[0].color2} 40%, transparent 90%),
1787
1772
  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%),