@5even7/dlc-ui 0.2.12 → 0.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  > **发版规则**:默认每次发布只递增补丁号(0.x.y → 0.x.(y+1),即 +0.01);除非手动明确指定新版本号,否则不升次版本。
4
4
 
5
+ ## 0.2.13 - 2026-08-14
6
+
7
+ - Progress 新增内置预置 `森息`(NC-14):包含植物实验室色板、独立流体运动参数和参考图集配置,可直接使用 `preset="森息"`。
8
+ - H5、Vue 2、Vue 3 示例将“植物实验室”改为由内置预置驱动,并在默认预置列表中展示 NC-14。
9
+ - 文档明确 Capsule 的 `click` / `dblclick` 保持原生 H5 语义:双击会先伴随两次 `click`,组件不延迟或吞掉单击事件。
10
+
5
11
  ## 0.2.11 - 2026-08-09
6
12
 
7
13
  - 修复:`--hj-text-bg` / `--hj-text-pad` 两个 cssVars 此前只在文档声明、组件 CSS 未引用,传了不生效;现在 Capsule / Progress 文字区容器真正支持背景与内边距变量(默认仍为透明 / 0,无视觉回归)。
package/README.md CHANGED
@@ -21,6 +21,7 @@ npm install @5even7/dlc-ui
21
21
  | capsule | `初光`(NC-01)、`沧溟`(NC-02)、`玄夜`(NC-03)、`紫霄`(NC-04)、`银汉`(NC-05)、`熔金`(NC-06) | 星云材质 |
22
22
  | progress | `星火`(NC-10)、`迁流`(NC-11)、`幻境`(NC-12) | 流体进度 |
23
23
  | progress | `汐潮`(NC-13) | 潮汐边界(潮起潮落) |
24
+ | progress | `森息`(NC-14) | 植物实验室配色(苔藓培养 / 生长进度) |
24
25
 
25
26
  `dlc-color` 复用同一套星云渲染器,只做背景层,直接使用上表 capsule 的 6 个预置。
26
27
 
@@ -238,6 +239,8 @@ createProgressCapsule(el, {
238
239
  | progress | `dragstart` / `dragend` | `{ value }` |
239
240
  | progress | `error` | `{ message }` |
240
241
 
242
+ `click` 与 `dblclick` 保持原生 H5 的独立事件语义:一次双击会先产生两次 `click`,随后产生一次 `dblclick`。组件不会延迟或吞掉 `click`;若业务需要单击与双击互斥,应由业务层根据自己的等待时长与交互后果处理。
243
+
241
244
  ## 兼容性
242
245
 
243
246
  | 目标 | 构建 | 渲染 |
@@ -259,7 +262,7 @@ npm test # node --test tests/
259
262
 
260
263
  ## 示例怎么看
261
264
 
262
- 三个示例页都会展示全部 6 组星云胶囊与 4 组流体进度(含潮汐 TIDE),并为两类组件各提供一个控制台(可切换“全部/单个”目标、实时调节属性),属性表详细说明每个属性/方法/事件的用途。示例代码在 `examples/` 下。
265
+ 三个示例页都会展示全部 6 组星云胶囊与 5 组流体进度(含潮汐 TIDE 与森息),并为两类组件各提供一个控制台(可切换“全部/单个”目标、实时调节属性),属性表详细说明每个属性/方法/事件的用途。示例代码在 `examples/` 下。
263
266
 
264
267
  ```bash
265
268
  npm run demo:h5 # http://127.0.0.1:4173/examples/h5/
package/dist/capsule.cjs CHANGED
@@ -406,6 +406,15 @@ var PROGRESS_PRESETS = [{
406
406
  initialProgress: 30,
407
407
  edgeStyle: 'tide',
408
408
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
409
+ }, {
410
+ id: 'botanic-lab',
411
+ code: 'NC-14',
412
+ name: '森息',
413
+ subtitle: 'MOSS CULTURE / ROOTING',
414
+ group: 'progress',
415
+ initialProgress: 46,
416
+ edgeStyle: 'flow',
417
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
409
418
  }];
410
419
 
411
420
  [].concat(_toConsumableArray(CAPSULE_PRESETS), _toConsumableArray(PROGRESS_PRESETS));
package/dist/color.cjs CHANGED
@@ -385,6 +385,15 @@ var PROGRESS_PRESETS = [{
385
385
  initialProgress: 30,
386
386
  edgeStyle: 'tide',
387
387
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
388
+ }, {
389
+ id: 'botanic-lab',
390
+ code: 'NC-14',
391
+ name: '森息',
392
+ subtitle: 'MOSS CULTURE / ROOTING',
393
+ group: 'progress',
394
+ initialProgress: 46,
395
+ edgeStyle: 'flow',
396
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
388
397
  }];
389
398
 
390
399
  [].concat(_toConsumableArray(CAPSULE_PRESETS), _toConsumableArray(PROGRESS_PRESETS));
package/dist/index.cjs CHANGED
@@ -409,6 +409,15 @@ var PROGRESS_PRESETS = [{
409
409
  initialProgress: 30,
410
410
  edgeStyle: 'tide',
411
411
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
412
+ }, {
413
+ id: 'botanic-lab',
414
+ code: 'NC-14',
415
+ name: '森息',
416
+ subtitle: 'MOSS CULTURE / ROOTING',
417
+ group: 'progress',
418
+ initialProgress: 46,
419
+ edgeStyle: 'flow',
420
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
412
421
  }];
413
422
 
414
423
  var PRESETS = CAPSULE_PRESETS;
@@ -1689,6 +1698,13 @@ var PROFILE_CONFIG = {
1689
1698
  detail: 0.06,
1690
1699
  lobe: 0.23
1691
1700
  },
1701
+ 'botanic-lab': {
1702
+ seed: 3.46,
1703
+ broad: 0.54,
1704
+ middle: 0.18,
1705
+ detail: 0.05,
1706
+ lobe: 0.28
1707
+ },
1692
1708
  // ponytail: first-pass tide = asymmetric time warp on the same motion pipeline.
1693
1709
  // Refine (foam line / wash streaks) in the shader after visual QA.
1694
1710
  'tide': {
@@ -1984,7 +2000,8 @@ var PALETTES = {
1984
2000
  'model-training': ['#20131f', '#ff3f94', '#ff8a3d', '#fff06a'],
1985
2001
  'agent-migration': ['#111a31', '#245bff', '#00cfff', '#5dffe6'],
1986
2002
  'visual-training': ['#1f172b', '#7042ff', '#42f58d', '#c4ff8a'],
1987
- 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff']
2003
+ 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff'],
2004
+ 'botanic-lab': ['#102a23', '#287a58', '#9bd65b', '#f2ffc4']
1988
2005
  };
1989
2006
  function drawCloud(context, x, y, radiusX, radiusY, color, alpha) {
1990
2007
  context.save();
package/dist/index.mjs CHANGED
@@ -167,6 +167,16 @@ const PROGRESS_PRESETS = [
167
167
  initialProgress: 30,
168
168
  edgeStyle: 'tide',
169
169
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
170
+ },
171
+ {
172
+ id: 'botanic-lab',
173
+ code: 'NC-14',
174
+ name: '森息',
175
+ subtitle: 'MOSS CULTURE / ROOTING',
176
+ group: 'progress',
177
+ initialProgress: 46,
178
+ edgeStyle: 'flow',
179
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
170
180
  }
171
181
  ];
172
182
 
@@ -1473,6 +1483,7 @@ const PROFILE_CONFIG = {
1473
1483
  'model-training': { seed: 0.37, broad: 0.58, middle: 0.25, detail: 0.13, lobe: 0.24 },
1474
1484
  'agent-migration': { seed: 1.71, broad: 0.72, middle: 0.10, detail: 0.03, lobe: 0.18 },
1475
1485
  'visual-training': { seed: 2.83, broad: 0.66, middle: 0.16, detail: 0.06, lobe: 0.23 },
1486
+ 'botanic-lab': { seed: 3.46, broad: 0.54, middle: 0.18, detail: 0.05, lobe: 0.28 },
1476
1487
  // ponytail: first-pass tide = asymmetric time warp on the same motion pipeline.
1477
1488
  // Refine (foam line / wash streaks) in the shader after visual QA.
1478
1489
  'tide': { seed: 4.12, broad: 0.82, middle: 0.07, detail: 0.02, lobe: 0.30, warp: 0.5 }
@@ -1978,7 +1989,8 @@ const PALETTES = {
1978
1989
  'model-training': ['#20131f', '#ff3f94', '#ff8a3d', '#fff06a'],
1979
1990
  'agent-migration': ['#111a31', '#245bff', '#00cfff', '#5dffe6'],
1980
1991
  'visual-training': ['#1f172b', '#7042ff', '#42f58d', '#c4ff8a'],
1981
- 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff']
1992
+ 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff'],
1993
+ 'botanic-lab': ['#102a23', '#287a58', '#9bd65b', '#f2ffc4']
1982
1994
  };
1983
1995
 
1984
1996
  function drawCloud(context, x, y, radiusX, radiusY, color, alpha) {
package/dist/index.umd.js CHANGED
@@ -413,6 +413,15 @@
413
413
  initialProgress: 30,
414
414
  edgeStyle: 'tide',
415
415
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
416
+ }, {
417
+ id: 'botanic-lab',
418
+ code: 'NC-14',
419
+ name: '森息',
420
+ subtitle: 'MOSS CULTURE / ROOTING',
421
+ group: 'progress',
422
+ initialProgress: 46,
423
+ edgeStyle: 'flow',
424
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
416
425
  }];
417
426
 
418
427
  var PRESETS = CAPSULE_PRESETS;
@@ -1693,6 +1702,13 @@
1693
1702
  detail: 0.06,
1694
1703
  lobe: 0.23
1695
1704
  },
1705
+ 'botanic-lab': {
1706
+ seed: 3.46,
1707
+ broad: 0.54,
1708
+ middle: 0.18,
1709
+ detail: 0.05,
1710
+ lobe: 0.28
1711
+ },
1696
1712
  // ponytail: first-pass tide = asymmetric time warp on the same motion pipeline.
1697
1713
  // Refine (foam line / wash streaks) in the shader after visual QA.
1698
1714
  'tide': {
@@ -1988,7 +2004,8 @@
1988
2004
  'model-training': ['#20131f', '#ff3f94', '#ff8a3d', '#fff06a'],
1989
2005
  'agent-migration': ['#111a31', '#245bff', '#00cfff', '#5dffe6'],
1990
2006
  'visual-training': ['#1f172b', '#7042ff', '#42f58d', '#c4ff8a'],
1991
- 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff']
2007
+ 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff'],
2008
+ 'botanic-lab': ['#102a23', '#287a58', '#9bd65b', '#f2ffc4']
1992
2009
  };
1993
2010
  function drawCloud(context, x, y, radiusX, radiusY, color, alpha) {
1994
2011
  context.save();
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CosmicCapsules={})}(this,function(e){"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function r(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}function i(e,t,r){return t&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,f(n.key),n)}}(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=p(e))||t){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function s(e,t,r){return(t=f(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],l=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(e){u=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,t)||p(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||p(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function p(e,r){if(e){if("string"==typeof e)return t(e,r);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}function v(){var e=Object.create(null);return{on:function(t,r){return e[t]||(e[t]=[]),e[t].push(r),function(){var n=e[t];if(n){var o=n.indexOf(r);-1!==o&&n.splice(o,1)}}},off:function(t,r){var n=e[t];if(!n)return!1;var o=n.indexOf(r);return-1!==o&&(n.splice(o,1),!0)},emit:function(t){var r=e[t];if(r){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];var s,l=a(r.slice());try{for(l.s();!(s=l.n()).done;){s.value.apply(void 0,o)}}catch(e){l.e(e)}finally{l.f()}}}}}var m=/^[\d.]+(?:px|%|vw|vh|vmin|vmax|em|rem)$/;function g(e){if("number"==typeof e){if(!Number.isFinite(e)||e<0)throw new Error("Invalid size: ".concat(e));return"".concat(e,"px")}if("string"!=typeof e)throw new Error("Invalid size: ".concat(String(e)));var t=e.trim();if(!t)throw new Error("Invalid size: empty string");if(/^\d+(?:\.\d+)?$/.test(t))return"".concat(t,"px");if(!m.test(t))throw new Error('Invalid size or unsupported unit: "'.concat(e,'" (use px, %, vw, vh, vmin, vmax, em, rem)'));return t}var y={low:{dpr:1},medium:{dpr:1.5},high:{dpr:2}};function b(e){return"auto"===e?(t="undefined"!=typeof navigator?navigator:null,r=t&&"number"==typeof t.deviceMemory?t.deviceMemory:8,n=t&&"number"==typeof t.hardwareConcurrency?t.hardwareConcurrency:8,r<=4||n<=4?1.5:2):(y[e]||y.medium).dpr;var t,r,n}function w(e){var t=Number(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1),r=Number.isFinite(t)?Math.min(1,Math.max(.25,t)):1;return Math.max(.5,b(e)*r)}function x(e,t,r){var n=function(e){for(var t={},r=0,n=Object.keys(e);r<n.length;r++){var o=n[r];void 0!==e[o]&&(t[o]=e[o])}return t},o=n(t&&"object"===h(t)?t:{}),i=n(r&&"object"===h(r)?r:{});return u(u(u({},e),o),i)}var C=["#EAF6FF","#8FD0FF","#3B87F6","#6B58E9"],S=["#EDF2FF","#2F58D5","#1B2040","#E07A43"],E=["#F2EEFF","#B99AF1","#8F74DB","#D7D85C"],P=["#F5F6F8","#B9C0CC","#7F8793","#4A4F59"],R=["#FFF0E6","#F6C26B","#F98A64","#E86D74"],A=[{id:"original",code:"NC-01",name:"初光",group:"warm",seed:1.7,speed:.5,colors:d(["#FFF3EA","#F5B27A","#F67BC6","#A978E8"])},{id:"ocean",code:"NC-02",name:"沧溟",group:"cold",seed:8.2,speed:.48,colors:d(C)},{id:"klein",code:"NC-03",name:"玄夜",group:"cold",seed:14.1,speed:.49,colors:d(S)},{id:"ultraviolet",code:"NC-04",name:"紫霄",group:"cold",seed:23.4,speed:.47,colors:d(E)},{id:"chrome",code:"NC-05",name:"银汉",group:"cold",seed:37.8,speed:.42,colors:d(P)},{id:"plus",code:"NC-06",name:"熔金",group:"warm",seed:51.3,speed:.5,colors:d(R)}],M=[{id:"model-training",code:"NC-10",name:"星火",subtitle:"SHA 4.5 + 100 2026 TKN",group:"progress",initialProgress:43,edgeStyle:"flow",colors:["#2B1025","#FF3F94","#FF8A3D","#FFF06A"]},{id:"agent-migration",code:"NC-11",name:"迁流",subtitle:"TRANSFERRING PROTOCOL",group:"progress",initialProgress:33,edgeStyle:"flow",colors:["#101C37","#245BFF","#00CFFF","#5DFFE6"]},{id:"visual-training",code:"NC-12",name:"幻境",subtitle:"GENERATING POWER ++",group:"progress",initialProgress:58,edgeStyle:"flow",colors:["#21142D","#7042FF","#42F58D","#C4FF8A"]},{id:"tide",code:"NC-13",name:"汐潮",subtitle:"MOON PULL / COAST",group:"progress",initialProgress:30,edgeStyle:"tide",colors:["#0A2239","#2E9BFF","#7FE3FF","#EAF9FF"]}],_=A,T=[].concat(d(A),d(M));function k(e,t){var r="capsule"===e?A:"progress"===e?M:null;if(!r)throw new Error("Unknown preset kind: ".concat(e,' (use "capsule" or "progress")'));for(var n=String(t).trim().toLowerCase(),o=null,i=0;i<r.length;i+=1)if(r[i].name.toLowerCase()===n){o=r[i];break}if(!o)throw new Error("Unknown ".concat(e," preset: ").concat(t));return o}var L={capsule:{width:"100%",height:160,quality:"auto",renderer:"auto",renderScale:1,powerPreference:"high-performance",fps:60,paused:!1,static:!1,respectReducedMotion:!0,mouseColor:!0,textRatio:39},progress:{width:454,height:104,min:0,max:100,step:"any",draggable:!0,keyboard:!0,disabled:!1,readonly:!1,direction:"ltr",precision:0,valueSuffix:"%",edgeStyle:"flow",quality:"auto",renderer:"auto",renderScale:1,powerPreference:"high-performance",fps:60,paused:!1,static:!1,textRatio:54,showValue:!0,respectReducedMotion:!0}},F={brandName:"画境观屿",valueSuffix:"%",progressAria:"{brand} {code} 加载进度",capsuleAria:"打开 {name} 沉浸预览"},D={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function B(e){return Math.min(255,Math.max(0,Math.round(e)))}function N(e){if("string"!=typeof e)return null;var t=e.trim();if(!t)return null;var r=t.toLowerCase();if(D[r])return D[r];if(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(t)){var n=t.slice(1).toLowerCase();return 3===n.length?"#".concat(n.split("").map(function(e){return e+e}).join("")):"#".concat(n)}var o=t.match(/^rgba?\((.*)\)$/i);return o?function(e){var t=e.split(/[,\s/]+/).filter(Boolean);if(t.length<3)return null;var r=function(e){if("string"!=typeof e||!e)return null;if("%"===e.charAt(e.length-1))return B(parseFloat(e)/100*255);var t=Number(e);return Number.isFinite(t)?B(t):null},n=r(t[0]),o=r(t[1]),i=r(t[2]);if(null===n||null===o||null===i)return null;var a=function(e){var t=e.toString(16);return 1===t.length?"0".concat(t):t};return"#".concat(a(n)).concat(a(o)).concat(a(i))}(o[1]):null}function O(e){var t=N(e);if(!t)return[0,0,0];var r=Number.parseInt(t.slice(1),16);return[(r>>16&255)/255,(r>>8&255)/255,(255&r)/255]}function U(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=N(e);if(!r)return"rgba(0, 0, 0, 0)";var n=Number.parseInt(r.slice(1),16),o=n>>8&255,i=255&n;return"rgba(".concat(n>>16&255,", ").concat(o,", ").concat(i,", ").concat(t,")")}function z(e,t,r){var n=e.createShader(t);if(e.shaderSource(n,r),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS)){var o=e.getShaderInfoLog(n)||"Unknown shader compile error";throw e.deleteShader(n),new Error(o)}return n}function I(e){var t=z(e,e.VERTEX_SHADER,"#version 300 es\nin vec2 a_position;\nout vec2 v_uv;\nvoid main() {\n v_uv = a_position * 0.5 + 0.5;\n gl_Position = vec4(a_position, 0.0, 1.0);\n}"),r=z(e,e.FRAGMENT_SHADER,"#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 outColor;\n\nuniform vec2 u_resolution;\nuniform float u_time;\nuniform float u_seed;\nuniform float u_motion;\nuniform vec2 u_pointer;\nuniform vec3 u_colorA;\nuniform vec3 u_colorB;\nuniform vec3 u_colorC;\nuniform vec3 u_colorD;\n\nfloat hash21(vec2 p) {\n p = fract(p * vec2(123.34, 456.21));\n p += dot(p, p + 45.32 + u_seed);\n return fract(p.x * p.y);\n}\n\nfloat noise(vec2 p) {\n vec2 i = floor(p);\n vec2 f = fract(p);\n f = f * f * (3.0 - 2.0 * f);\n float a = hash21(i);\n float b = hash21(i + vec2(1.0, 0.0));\n float c = hash21(i + vec2(0.0, 1.0));\n float d = hash21(i + vec2(1.0, 1.0));\n return mix(mix(a, b, f.x), mix(c, d, f.x), f.y);\n}\n\nfloat fbm(vec2 p) {\n float value = 0.0;\n float amplitude = 0.52;\n mat2 rotation = mat2(0.80, 0.60, -0.60, 0.80);\n for (int i = 0; i < 6; i++) {\n value += amplitude * noise(p);\n p = rotation * p * 2.03 + 17.7;\n amplitude *= 0.5;\n }\n return value;\n}\n\nfloat gaussian(float value, float center, float width) {\n return exp(-pow(value - center, 2.0) / max(width, 0.0001));\n}\n\nvec3 palette(float t) {\n t = clamp(t, 0.0, 1.0);\n vec3 shadow = mix(u_colorA, u_colorB, smoothstep(0.06, 0.62, t));\n vec3 body = mix(u_colorB, u_colorC, smoothstep(0.30, 0.82, t));\n vec3 highlight = mix(u_colorC, u_colorD, smoothstep(0.74, 1.0, t));\n vec3 restrained = mix(shadow, body, smoothstep(0.26, 0.72, t));\n return mix(restrained, highlight, smoothstep(0.78, 0.97, t));\n}\n\nvec3 renderNebula(vec2 uv, vec2 p, vec2 pointer, float distanceToPointer, float t) {\n vec2 delta = p - pointer;\n float influence = exp(-distanceToPointer * 4.6) * u_motion;\n float angle = influence * 1.7;\n mat2 swirl = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\n p = pointer + swirl * delta;\n p += normalize(delta + 0.0001) * influence * 0.08;\n\n vec2 drift = vec2(t * 0.22, -t * 0.13);\n vec2 q = vec2(\n fbm(p * 1.35 + drift + u_seed),\n fbm(p * 1.35 + vec2(5.2, 1.3) - drift * 0.85)\n );\n vec2 r = vec2(\n fbm(p * 2.0 + 3.6 * q + vec2(1.7, 9.2) + t * 0.10),\n fbm(p * 2.0 + 3.0 * q + vec2(8.3, 2.8) - t * 0.085)\n );\n\n float cloud = fbm(p * 1.7 + 4.2 * r);\n float veins = fbm(p * 4.0 - 2.0 * q + t * 0.065);\n float nebula = smoothstep(0.18, 0.91, cloud * 0.9 + veins * 0.22);\n\n vec3 color = palette(nebula);\n color += u_colorD * pow(max(cloud - 0.63, 0.0), 2.0) * 1.05;\n color *= 0.78 + 0.34 * smoothstep(0.15, 0.9, veins);\n\n vec2 starGrid = floor((uv + vec2(u_seed * 0.013, 0.0)) * vec2(132.0, 58.0));\n vec2 starCell = fract(uv * vec2(132.0, 58.0)) - 0.5;\n float starRandom = hash21(starGrid);\n float starShape = smoothstep(0.075, 0.0, length(starCell));\n float starMask = step(0.989, starRandom) * starShape;\n float twinkle = 0.35 + 0.65 * sin(t * (1.0 + starRandom * 2.4) + starRandom * 40.0) * 0.5 + 0.5;\n color += starMask * twinkle * mix(u_colorC, u_colorD, starRandom) * 1.05;\n\n float pointerGlow = exp(-distanceToPointer * 7.0) * u_motion;\n color += u_colorD * pointerGlow * 0.28;\n return color;\n}\n\nvoid main() {\n vec2 uv = v_uv;\n vec2 p = uv - 0.5;\n p.x *= u_resolution.x / max(u_resolution.y, 1.0);\n\n vec2 pointer = u_pointer - 0.5;\n pointer.x *= u_resolution.x / max(u_resolution.y, 1.0);\n float distanceToPointer = length(p - pointer);\n\n vec3 color = renderNebula(uv, p, pointer, distanceToPointer, u_time);\n float vignette = smoothstep(0.94, 0.18, length((uv - 0.5) * vec2(1.0, 1.35)));\n color *= 0.70 + vignette * 0.42;\n color = pow(max(color, vec3(0.0)), vec3(0.88));\n\n outColor = vec4(color, 1.0);\n}"),n=e.createProgram();if(e.attachShader(n,t),e.attachShader(n,r),e.linkProgram(n),e.deleteShader(t),e.deleteShader(r),!e.getProgramParameter(n,e.LINK_STATUS)){var o=e.getProgramInfoLog(n)||"Unknown program link error";throw e.deleteProgram(n),new Error(o)}return n}var j=new WeakSet,V=function(){return i(function e(t,i){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(n(this,e),o(this,j),this.canvas=t,this.preset=u({},i),this.options=u({dprCap:1.75,mouseColor:!0},a),this.gl=t.getContext("webgl2",{alpha:!1,antialias:!1,depth:!1,powerPreference:this.options.powerPreference||"high-performance",preserveDrawingBuffer:!1}),!this.gl)throw new Error("WebGL2 is not available");this.program=I(this.gl),this.locations=r(j,this,G).call(this),this.pointer=[.72,.45],this.pointerTarget=d(this.pointer),this.motion=0,this.motionTarget=0,this.timeOffset=.73*i.seed,this.colors=i.colors.map(O),this.visible=!0,this.disposed=!1,r(j,this,q).call(this),r(j,this,W).call(this),r(j,this,X).call(this),this.resize()},[{key:"setPreset",value:function(e){this.preset=u({},e),this.colors=e.colors.map(O),this.timeOffset=.73*e.seed}},{key:"setDprCap",value:function(e){this.options.dprCap=e,this.resize()}},{key:"setMouseColor",value:function(e){if(this.options.mouseColor=!1!==e,this.options.mouseColor)return this.onPointerMove||r(j,this,W).call(this),this;if(this.onPointerMove){var t=this.eventTarget;t.removeEventListener("pointermove",this.onPointerMove),t.removeEventListener("pointerdown",this.onPointerMove),t.removeEventListener("pointerleave",this.onPointerLeave),this.onPointerMove=null,this.onPointerLeave=null}return this.motionTarget=0,this}},{key:"randomize",value:function(){this.preset.seed=100*Math.random(),this.timeOffset=40*Math.random()}},{key:"resize",value:function(){var e=Math.min(window.devicePixelRatio||1,this.options.dprCap),t=this.canvas.getBoundingClientRect(),r=Math.max(2,Math.round(t.width*e)),n=Math.max(2,Math.round(t.height*e));this.canvas.width===r&&this.canvas.height===n||(this.canvas.width=r,this.canvas.height=n),this.gl.viewport(0,0,r,n)}},{key:"draw",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.disposed&&this.visible){var r=this.gl;this.pointer[0]+=.08*(this.pointerTarget[0]-this.pointer[0]),this.pointer[1]+=.08*(this.pointerTarget[1]-this.pointer[1]),this.motion+=.07*(this.motionTarget-this.motion),r.useProgram(this.program),r.bindBuffer(r.ARRAY_BUFFER,this.buffer),r.enableVertexAttribArray(this.locations.position),r.vertexAttribPointer(this.locations.position,2,r.FLOAT,!1,0,0),r.uniform2f(this.locations.resolution,this.canvas.width,this.canvas.height),r.uniform1f(this.locations.time,this.timeOffset+(t?0:e*this.preset.speed)),r.uniform1f(this.locations.seed,this.preset.seed),r.uniform1f(this.locations.motion,this.motion),r.uniform2f(this.locations.pointer,this.pointer[0],this.pointer[1]),r.uniform3fv(this.locations.colorA,this.colors[0]),r.uniform3fv(this.locations.colorB,this.colors[1]),r.uniform3fv(this.locations.colorC,this.colors[2]),r.uniform3fv(this.locations.colorD,this.colors[3]),r.drawArrays(r.TRIANGLES,0,3)}}},{key:"dispose",value:function(){this.disposed=!0;var e=this.eventTarget||this.canvas;e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerdown",this.onPointerMove),e.removeEventListener("pointerleave",this.onPointerLeave),this.canvas.removeEventListener("webglcontextlost",this.onContextLost,!1),this.canvas.removeEventListener("webglcontextrestored",this.onContextRestored,!1),this.gl.deleteBuffer(this.buffer),this.gl.deleteProgram(this.program);var t=this.gl.getExtension("WEBGL_lose_context");t&&t.loseContext()}}])}();function G(){var e=this,t=this.gl,r=function(r){return t.getUniformLocation(e.program,r)};return{position:t.getAttribLocation(this.program,"a_position"),resolution:r("u_resolution"),time:r("u_time"),seed:r("u_seed"),motion:r("u_motion"),pointer:r("u_pointer"),colorA:r("u_colorA"),colorB:r("u_colorB"),colorC:r("u_colorC"),colorD:r("u_colorD")}}function q(){var e=this.gl,t=new Float32Array([-1,-1,3,-1,-1,3]);this.buffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.buffer),e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)}function W(){var e=this;!1!==this.options.mouseColor&&(this.eventTarget=this.options.eventTarget||this.canvas.parentElement||this.canvas,this.onPointerMove=function(t){var r=e.canvas.getBoundingClientRect();e.pointerTarget[0]=(t.clientX-r.left)/Math.max(r.width,1),e.pointerTarget[1]=1-(t.clientY-r.top)/Math.max(r.height,1),e.motionTarget=1},this.onPointerLeave=function(){e.motionTarget=0},this.eventTarget.addEventListener("pointermove",this.onPointerMove,{passive:!0}),this.eventTarget.addEventListener("pointerdown",this.onPointerMove,{passive:!0}),this.eventTarget.addEventListener("pointerleave",this.onPointerLeave,{passive:!0}))}function X(){var e=this;this.onContextLost=function(t){t.preventDefault(),e.disposed||(e.visible=!1,"function"==typeof e.options.onContextLost&&e.options.onContextLost(t))},this.onContextRestored=function(){e.disposed||(e.program=I(e.gl),e.locations=r(j,e,G).call(e),r(j,e,q).call(e),e.visible=!0,e.resize(),"function"==typeof e.options.onContextRestored&&e.options.onContextRestored())},this.canvas.addEventListener("webglcontextlost",this.onContextLost,!1),this.canvas.addEventListener("webglcontextrestored",this.onContextRestored,!1)}function Y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=c(O(e).map(function(e){return Math.round(255*e)}),3),n=r[0],o=r[1],i=r[2];return"rgba(".concat(n,", ").concat(o,", ").concat(i,", ").concat(t,")")}var H=function(){return i(function e(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n(this,e),this.canvas=t,this.preset=r,this.context=t.getContext("2d"),this.visible=!0,this.timePhase=0,this.dprCap=o.dprCap||1.5},[{key:"resize",value:function(){var e=this.canvas.getBoundingClientRect(),t=Math.min(window.devicePixelRatio||1,this.dprCap),r=Math.max(2,Math.round(e.width*t)),n=Math.max(2,Math.round(e.height*t));this.canvas.width===r&&this.canvas.height===n||(this.canvas.width=r,this.canvas.height=n)}},{key:"drawNebula",value:function(e){var t=this.context,r=this.canvas,n=r.width,o=r.height,i=(e+this.timePhase)*(this.preset.speed||1),a=.7*(this.preset.seed||0),s=t.createLinearGradient(0,0,n,o);s.addColorStop(0,this.preset.colors[0]),s.addColorStop(.38,this.preset.colors[1]),s.addColorStop(.72,this.preset.colors[2]),s.addColorStop(1,this.preset.colors[3]),t.fillStyle=s,t.fillRect(0,0,n,o),t.globalCompositeOperation="screen";for(var l=0;l<6;l+=1){var u=(.5+.45*Math.sin(.32*i+1.7*l+a))*n,c=(.5+.4*Math.cos(.25*i+l+a))*o,d=Math.max(n,o)*(.08+l%3*.04),f=t.createRadialGradient(u,c,0,u,c,d);f.addColorStop(0,Y(this.preset.colors[(l+1)%4],.24)),f.addColorStop(1,Y(this.preset.colors[l%4],0)),t.fillStyle=f,t.fillRect(u-d,c-d,2*d,2*d)}t.globalCompositeOperation="source-over"}},{key:"draw",value:function(e){this.visible&&this.drawNebula(e)}},{key:"setPreset",value:function(e){this.preset=e}},{key:"setDprCap",value:function(e){this.dprCap=e,this.resize()}},{key:"randomize",value:function(){this.preset&&(this.preset.seed=100*Math.random(),this.timePhase=Math.random()*Math.PI*2)}},{key:"setMouseColor",value:function(){}},{key:"dispose",value:function(){}}])}(),K=[],$=!1,Q=!1,J=0,Z=0;function ee(e){if($){var t=[];if(!Q){var r,n=a(K.slice());try{for(n.s();!(r=n.n()).done;){var o=r.value;try{o.isPaused()||t.push(o)}catch(e){}}}catch(e){n.e(e)}finally{n.f()}}if(0===t.length)return $=!1,J=0,void(Z=0);var i=Z?Math.min((e-Z)/1e3,.05):0;Z=e,J=requestAnimationFrame(ee);for(var s=0,l=t;s<l.length;s++){var u=l[s];try{u.onFrame(i,e)}catch(e){console.warn("[dlc-ui] frame error:",e)}}0===K.length&&(cancelAnimationFrame(J),$=!1,J=0)}}function te(){$||($=!0,Z=0,J=requestAnimationFrame(ee))}function re(){te()}function ne(e,t){var r={onFrame:e,isPaused:t};return K.push(r),te(),function(){var e=K.indexOf(r);-1!==e&&K.splice(e,1),0===K.length&&J&&(cancelAnimationFrame(J),$=!1,J=0)}}function oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=!0,n="undefined"==typeof document||!document.hidden,o=!1,i=null;"undefined"!=typeof IntersectionObserver&&(i=new IntersectionObserver(function(e){r=e.some(function(e){return e.isIntersecting}),"function"==typeof t&&t()},{rootMargin:"180px"})).observe(e);var a=function(){n="undefined"!=typeof document&&!document.hidden,"function"==typeof t&&t()};return"undefined"!=typeof document&&document.addEventListener("visibilitychange",a),{isVisible:function(){return r&&n},dispose:function(){o||(o=!0,i&&i.disconnect(),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",a))}}}function ie(e){"function"==typeof queueMicrotask?queueMicrotask(e):"undefined"!=typeof Promise&&"function"==typeof Promise.resolve?Promise.resolve().then(e):setTimeout(e,0)}function ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:60,r=Number(e);return Number.isFinite(r)?Math.min(60,Math.max(1,r)):t}function se(){var e=ae(arguments.length>0&&void 0!==arguments[0]?arguments[0]:60),t=0;return{shouldDraw:function(r){var n=1/e;return!((t+=r)+1e-4<n)&&(t%=n,!0)},setFps:function(r){return e=ae(r,e),t=0,e},getFps:function(){return e}}}function le(e,t){var r=e&&"undefined"!=typeof matchMedia?matchMedia("(prefers-reduced-motion: reduce)"):null,n=function(){"function"==typeof t&&t(Boolean(r&&r.matches))};return r&&("function"==typeof r.addEventListener?r.addEventListener("change",n):"function"==typeof r.addListener&&r.addListener(n)),{matches:function(){return Boolean(r&&r.matches)},dispose:function(){r&&("function"==typeof r.removeEventListener?r.removeEventListener("change",n):"function"==typeof r.removeListener&&r.removeListener(n))}}}function ue(e){if(null==e||"boolean"==typeof e)return null;if("string"==typeof e&&""===e.trim())return null;var t=Number(e);return Number.isFinite(t)?t:null}var ce=240,de={"model-training":{seed:.37,broad:.58,middle:.25,detail:.13,lobe:.24},"agent-migration":{seed:1.71,broad:.72,middle:.1,detail:.03,lobe:.18},"visual-training":{seed:2.83,broad:.66,middle:.16,detail:.06,lobe:.23},tide:{seed:4.12,broad:.82,middle:.07,detail:.02,lobe:.3,warp:.5}},fe=Object.create(null);function he(e,t,r){var n=(e-t)/Math.max(r,.001);return Math.exp(-n*n)}function pe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"flow",r="".concat(e,":").concat(t);return fe[r]||(fe[r]=function(e){for(var t="tide"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"flow")?de.tide:de[e]||de["visual-training"],r=new Uint8Array(19200),n=0;n<ce;n+=1){var o=n/ce*Math.PI*2;t.warp&&(o+=t.warp*Math.sin(2*o));for(var i=.28+.13*Math.sin(.53*o+t.seed),a=.7+.12*Math.cos(.47*o+1.7*t.seed),s=0;s<80;s+=1){var l=s/Math.max(79,1),u=Math.pow(Math.max(Math.sin(Math.PI*l),0),.48),c=Math.sin(l*Math.PI*2*1.35+.58*o+t.seed)*t.broad,d=Math.sin(l*Math.PI*2*3.2-.91*o+2.1*t.seed)*t.middle,f=Math.sin(l*Math.PI*2*6.1+1.31*o+3.2*t.seed)*t.detail,h=(he(l,i,.09)*Math.sin(1.11*o+4*t.seed)-he(l,a,.1)*Math.cos(.97*o+3.3*t.seed))*t.lobe,p=Math.max(-1,Math.min(1,(c+d+f+h)*u));r[s*ce+n]=Math.round(255*(.5*p+.5))}}return r}(e,t)),fe[r]}function ve(e){var t=Number.parseInt(e.replace("#",""),16);return[(t>>16&255)/255,(t>>8&255)/255,(255&t)/255]}var me={"model-training":0,"agent-migration":1,"visual-training":2,tide:3},ge={"model-training":1.05,"agent-migration":1.04,"visual-training":1.04,tide:1.18};function ye(e,t,r){var n=e.createShader(t);if(e.shaderSource(n,r),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS)){var o=e.getShaderInfoLog(n)||"Unknown shader compile error";throw e.deleteShader(n),new Error(o)}return n}var be=function(){return i(function e(t,r){var o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n(this,e);var s=t.getContext("webgl2",{alpha:!1,antialias:!0,premultipliedAlpha:!1,powerPreference:i.powerPreference||"high-performance"});if(!s)throw new Error("WebGL2 unavailable");this.canvas=t,this.options=i,this.gl=s,this.profile="tide"===r.edgeStyle?3:null!==(o=me[r.id])&&void 0!==o?o:2,this.seed=13.7*function(e){var t,r=2166136261,n=a(e);try{for(n.s();!(t=n.n()).done;)r^=t.value.charCodeAt(0),r=Math.imul(r,16777619)}catch(e){n.e(e)}finally{n.f()}return(r>>>0)/4294967295}("".concat(r.id,"-shader"))+1,this.colors=r.colors.map(ve),this.motionData=pe(r.id,r.edgeStyle);var l="tide"===r.edgeStyle?ge.tide:ge[r.id]||1.04;this.motionScale=40*l/1257,this.disposed=!1,this.contextLost=!1,this.setupResources(),this.bindContextEvents()},[{key:"setupResources",value:function(){var e=this.gl;this.program=function(e){var t=ye(e,e.VERTEX_SHADER,"#version 300 es\nin vec2 a_position;\nout vec2 v_uv;\nvoid main() {\n v_uv = a_position * 0.5 + 0.5;\n gl_Position = vec4(a_position, 0.0, 1.0);\n}"),r=ye(e,e.FRAGMENT_SHADER,"#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 outColor;\n\nuniform vec2 u_resolution;\nuniform float u_time;\nuniform float u_progress;\nuniform float u_seed;\nuniform float u_profile;\nuniform sampler2D u_motion;\nuniform sampler2D u_effect;\nuniform float u_hasEffect;\nuniform float u_effectFrames;\nuniform float u_motionDuration;\nuniform float u_motionScale;\nuniform vec3 u_dark;\nuniform vec3 u_accentA;\nuniform vec3 u_accentB;\nuniform vec3 u_glow;\n\nfloat hash21(vec2 p) {\n p = fract(p * vec2(123.34, 456.21));\n p += dot(p, p + 45.32 + u_seed * 11.7);\n return fract(p.x * p.y);\n}\n\nfloat noise(vec2 p) {\n vec2 i = floor(p);\n vec2 f = fract(p);\n f = f * f * (3.0 - 2.0 * f);\n float a = hash21(i);\n float b = hash21(i + vec2(1.0, 0.0));\n float c = hash21(i + vec2(0.0, 1.0));\n float d = hash21(i + vec2(1.0, 1.0));\n return mix(mix(a, b, f.x), mix(c, d, f.x), f.y);\n}\n\nfloat fbm(vec2 p) {\n float value = 0.0;\n float amplitude = 0.55;\n mat2 rotation = mat2(0.82, 0.57, -0.57, 0.82);\n for (int i = 0; i < 6; i++) {\n value += noise(p) * amplitude;\n p = rotation * p * 2.02 + 13.7;\n amplitude *= 0.48;\n }\n return value;\n}\n\nfloat gaussian(float value, float center, float width) {\n float delta = (value - center) / max(width, 0.0001);\n return exp(-delta * delta);\n}\n\nfloat profileMix(float model, float agent, float visual) {\n if (u_profile < 0.5) return model;\n if (u_profile < 1.5) return agent;\n return visual;\n}\n\nfloat motionSample(float y, float t) {\n float phase = fract(t / max(u_motionDuration, 0.001));\n float captured = texture(u_motion, vec2(phase, 1.0 - clamp(y, 0.0, 1.0))).r;\n return (captured * 2.0 - 1.0) * u_motionScale;\n}\n\nfloat edgeDisplacement(float y, float t) {\n return motionSample(y, t);\n}\n\nfloat flowDisplacement(float y, float t) {\n return (\n motionSample(y - 0.024, t) * 0.08 +\n motionSample(y - 0.012, t) * 0.18 +\n motionSample(y, t) * 0.48 +\n motionSample(y + 0.012, t) * 0.18 +\n motionSample(y + 0.024, t) * 0.08\n );\n}\n\nfloat ellipseRing(vec2 p, float radius, float width) {\n return gaussian(length(p), radius, width);\n}\n\nvoid main() {\n vec2 uv = v_uv;\n float t = u_time;\n float edge = u_progress + edgeDisplacement(uv.y, t);\n float flowEdge = u_progress + flowDisplacement(uv.y, t);\n float d = uv.x - edge;\n float fd = uv.x - flowEdge;\n\n vec3 rightBase = vec3(0.125, 0.129, 0.145);\n vec3 color = rightBase;\n\n float leftMask = 1.0 - smoothstep(-0.001, 0.002, d);\n color = mix(color, u_dark, leftMask * profileMix(0.96, 0.92, 0.96));\n\n vec2 flowP = vec2((fd + 0.10) * 6.2, uv.y * 1.95);\n float flowA = fbm(flowP + vec2(-t * 0.22, t * 0.27) + u_seed * 1.7);\n float flowB = fbm(flowP * 1.52 + vec2(t * 0.28, -t * 0.36) + 8.2 + u_seed);\n float flowC = fbm(flowP * 2.25 + vec2(-t * 0.41, t * 0.46) + 19.0);\n\n float farCenter = profileMix(-0.060, -0.079, -0.045) + (flowA - 0.5) * profileMix(0.018, 0.022, 0.014);\n float midCenter = profileMix(-0.039, -0.052, -0.030) + (flowB - 0.5) * profileMix(0.013, 0.016, 0.010);\n float hotCenter = profileMix(-0.026, -0.029, -0.023) + (flowC - 0.5) * 0.010;\n\n float farBand = gaussian(fd, farCenter, profileMix(0.035, 0.049, 0.030));\n float midBand = gaussian(fd, midCenter, profileMix(0.026, 0.034, 0.026));\n float hotBand = gaussian(fd, hotCenter, profileMix(0.023, 0.027, 0.026));\n float darkTrough = gaussian(fd, profileMix(-0.050, -0.058, -0.044) + (flowB - 0.5) * 0.010, profileMix(0.020, 0.025, 0.021));\n\n float ringY = 0.47 + sin(t * 0.58 + u_seed * 2.4) * 0.12;\n vec2 ringP = vec2((fd + 0.086) / 0.078, (uv.y - ringY) / 0.25);\n ringP += vec2((flowB - 0.5) * 0.08, (flowA - 0.5) * 0.06);\n float ringTexture = fbm(ringP * 2.15 + vec2(t * 0.18, -t * 0.14) + u_seed * 1.9);\n float ring = ellipseRing(ringP, 0.66, 0.32) * (0.30 + 0.64 * ringTexture);\n float ringCore = gaussian(length(ringP), 0.25, 0.25);\n float ringPulse = smoothstep(0.58, 0.90, 0.5 + 0.5 * sin(t * 0.82 + u_seed * 4.1));\n float modelRing = ring * ringPulse * (1.0 - step(0.5, u_profile));\n float visualRing = ring * 0.16 * step(1.5, u_profile) * ringPulse;\n\n float cloudGate = leftMask * smoothstep(-0.30, -0.008, fd);\n float textureA = smoothstep(0.24, 0.92, flowA * 0.72 + flowB * 0.42);\n float textureB = smoothstep(0.28, 0.94, flowB * 0.68 + flowC * 0.38);\n\n vec3 hotColor = u_accentB;\n color += u_accentA * farBand * cloudGate * (0.07 + textureA * profileMix(0.42, 0.24, 0.40));\n color += u_accentB * midBand * cloudGate * (0.15 + textureB * profileMix(0.70, 0.46, 0.68));\n color += hotColor * hotBand * cloudGate * profileMix(0.88, 0.62, 0.84);\n float modelMask = 1.0 - step(0.5, u_profile);\n color += u_accentA * (modelRing + visualRing) * cloudGate * profileMix(0.54, 0.0, 0.34);\n color *= 1.0 - darkTrough * profileMix(0.44, 0.24, 0.24) * cloudGate;\n color *= 1.0 - ringCore * modelMask * ringPulse * 0.44 * cloudGate;\n\n float broadHalo = exp(-abs(d) * 96.0);\n float innerHalo = exp(-abs(d) * 176.0);\n float colorCore = exp(-abs(d) * 360.0);\n float sharpCore = exp(-abs(d) * 760.0);\n float leftGate = 1.0 - smoothstep(-0.003, 0.005, d);\n\n color += u_accentA * broadHalo * leftGate * profileMix(0.09, 0.04, 0.06);\n color += hotColor * innerHalo * leftGate * profileMix(0.76, 0.72, 0.78);\n color += u_glow * colorCore * profileMix(0.72, 0.34, 0.24);\n\n float whiteStrength = profileMix(0.10, 0.0, 0.0);\n color += vec3(1.0, 0.99, 0.91) * sharpCore * whiteStrength;\n\n float rightCut = smoothstep(0.001, 0.006, d);\n color = mix(color, rightBase, rightCut);\n\n float effectX = (d * 1257.0 + 260.0) / 320.0;\n float atlasPhase = fract(t / 12.0) * u_effectFrames;\n float atlasFrameA = floor(atlasPhase);\n float atlasFrameB = mod(atlasFrameA + 1.0, u_effectFrames);\n float atlasMix = smoothstep(0.0, 1.0, fract(atlasPhase));\n float atlasXA = (atlasFrameA + clamp(effectX, 0.0, 1.0)) / u_effectFrames;\n float atlasXB = (atlasFrameB + clamp(effectX, 0.0, 1.0)) / u_effectFrames;\n vec3 referenceA = texture(u_effect, vec2(atlasXA, uv.y)).rgb;\n vec3 referenceB = texture(u_effect, vec2(atlasXB, uv.y)).rgb;\n vec3 referenceColor = mix(referenceA, referenceB, atlasMix);\n float stripMask = smoothstep(0.0, 0.018, effectX) * (1.0 - smoothstep(0.982, 1.0, effectX));\n float referenceLeft = 1.0 - smoothstep(-0.026, -0.012, d);\n // 参考图集只提供亮度结构,颜色始终由用户 colors(u_dark / u_accentA /\n // u_accentB / u_glow)决定:这样 setColors / colors 属性在 WebGL 路径下\n // 真实生效,改色有可见反馈,而不是被图集整体覆盖。\n float referenceLuma = dot(referenceColor, vec3(0.299, 0.587, 0.114));\n vec3 tintedColor = color * (0.42 + 0.86 * referenceLuma);\n color = mix(color, tintedColor, stripMask * referenceLeft * u_hasEffect);\n\n outColor = vec4(clamp(color, 0.0, 1.0), 1.0);\n}"),n=e.createProgram();if(e.attachShader(n,t),e.attachShader(n,r),e.linkProgram(n),e.deleteShader(t),e.deleteShader(r),!e.getProgramParameter(n,e.LINK_STATUS)){var o=e.getProgramInfoLog(n)||"Unknown shader link error";throw e.deleteProgram(n),new Error(o)}return n}(e),this.position=e.getAttribLocation(this.program,"a_position"),this.uniforms={resolution:e.getUniformLocation(this.program,"u_resolution"),time:e.getUniformLocation(this.program,"u_time"),progress:e.getUniformLocation(this.program,"u_progress"),seed:e.getUniformLocation(this.program,"u_seed"),profile:e.getUniformLocation(this.program,"u_profile"),motion:e.getUniformLocation(this.program,"u_motion"),effect:e.getUniformLocation(this.program,"u_effect"),hasEffect:e.getUniformLocation(this.program,"u_hasEffect"),effectFrames:e.getUniformLocation(this.program,"u_effectFrames"),motionDuration:e.getUniformLocation(this.program,"u_motionDuration"),motionScale:e.getUniformLocation(this.program,"u_motionScale"),dark:e.getUniformLocation(this.program,"u_dark"),accentA:e.getUniformLocation(this.program,"u_accentA"),accentB:e.getUniformLocation(this.program,"u_accentB"),glow:e.getUniformLocation(this.program,"u_glow")},this.buffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.buffer),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),e.STATIC_DRAW),this.motionTexture=e.createTexture(),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.motionTexture),e.pixelStorei(e.UNPACK_ALIGNMENT,1),e.texImage2D(e.TEXTURE_2D,0,e.R8,ce,80,0,e.RED,e.UNSIGNED_BYTE,this.motionData),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.effectTexture=e.createTexture(),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,this.effectTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGB,1,1,0,e.RGB,e.UNSIGNED_BYTE,new Uint8Array([32,33,38])),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.effectUploaded=!1}},{key:"bindContextEvents",value:function(){var e=this;this.onContextLost=function(t){t.preventDefault(),e.disposed||(e.contextLost=!0,"function"==typeof e.options.onContextLost&&e.options.onContextLost(t))},this.onContextRestored=function(){e.disposed||(e.setupResources(),e.contextLost=!1,e.gl.viewport(0,0,e.canvas.width,e.canvas.height),"function"==typeof e.options.onContextRestored&&e.options.onContextRestored())},this.canvas.addEventListener("webglcontextlost",this.onContextLost,!1),this.canvas.addEventListener("webglcontextrestored",this.onContextRestored,!1)}},{key:"resize",value:function(e,t,r){var n=Math.max(1,Math.round(e*r)),o=Math.max(1,Math.round(t*r));this.canvas.width===n&&this.canvas.height===o||(this.canvas.width=n,this.canvas.height=o),this.gl.viewport(0,0,n,o)}},{key:"draw",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!this.disposed&&!this.contextLost){var n=this.gl;n.useProgram(this.program),n.bindBuffer(n.ARRAY_BUFFER,this.buffer),n.enableVertexAttribArray(this.position),n.vertexAttribPointer(this.position,2,n.FLOAT,!1,0,0),n.uniform2f(this.uniforms.resolution,this.canvas.width,this.canvas.height),n.uniform1f(this.uniforms.time,e),n.uniform1f(this.uniforms.progress,t/100),n.uniform1f(this.uniforms.seed,this.seed),n.uniform1f(this.uniforms.profile,this.profile),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,this.motionTexture),n.uniform1i(this.uniforms.motion,0),n.uniform1f(this.uniforms.motionDuration,12),n.uniform1f(this.uniforms.motionScale,this.motionScale);var o=this.effectUploaded?1:0,i=r&&(r.naturalWidth||r.width||0);if(!this.effectUploaded&&r&&i>0){n.activeTexture(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this.effectTexture),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!0);try{n.texImage2D(n.TEXTURE_2D,0,n.RGB,n.RGB,n.UNSIGNED_BYTE,r),this.effectUploaded=!0,o=1}catch(e){console.warn("[画境观屿] 参考纹理图集上传失败,继续使用程序化降级。",e)}n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1)}n.activeTexture(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this.effectTexture),n.uniform1i(this.uniforms.effect,1),n.uniform1f(this.uniforms.hasEffect,o),n.uniform1f(this.uniforms.effectFrames,24),n.uniform3fv(this.uniforms.dark,this.colors[0]),n.uniform3fv(this.uniforms.accentA,this.colors[1]),n.uniform3fv(this.uniforms.accentB,this.colors[2]),n.uniform3fv(this.uniforms.glow,this.colors[3]),n.drawArrays(n.TRIANGLES,0,6)}}},{key:"setColors",value:function(e){this.colors=e.map(ve)}},{key:"dispose",value:function(){this.disposed=!0;var e=this.gl;this.canvas.removeEventListener("webglcontextlost",this.onContextLost,!1),this.canvas.removeEventListener("webglcontextrestored",this.onContextRestored,!1),e.deleteBuffer(this.buffer),e.deleteTexture(this.motionTexture),e.deleteTexture(this.effectTexture),e.deleteProgram(this.program);var t=e.getExtension("WEBGL_lose_context");t&&t.loseContext()}}])}();var we=Object.create(null),xe={"model-training":["#20131f","#ff3f94","#ff8a3d","#fff06a"],"agent-migration":["#111a31","#245bff","#00cfff","#5dffe6"],"visual-training":["#1f172b","#7042ff","#42f58d","#c4ff8a"],tide:["#0a2239","#2e9bff","#7fe3ff","#eaf9ff"]};function Ce(e,t,r,n,o,i,a){e.save(),e.translate(t,r),e.scale(1,o/n);var s=e.createRadialGradient(0,0,0,0,0,n),l=function(e){var t=Math.round(e).toString(16);return 1===t.length?"0".concat(t):t};s.addColorStop(0,"".concat(i).concat(l(255*a))),s.addColorStop(.46,"".concat(i).concat(l(.42*a*255))),s.addColorStop(1,"".concat(i,"00")),e.fillStyle=s,e.fillRect(-n,-n,2*n,2*n),e.restore()}function Se(e){return we[e]||(we[e]=function(e){var t=xe[e]||xe["visual-training"],r=document.createElement("canvas");r.width=1536,r.height=32;for(var n=r.getContext("2d"),o=0;o<24;o+=1){var i=o/24*Math.PI*2,a=64*o;n.save(),n.translate(a,0),n.fillStyle=t[0],n.fillRect(0,0,64,32),n.globalCompositeOperation="screen",Ce(n,35+5*Math.sin(.83*i),10+5*Math.cos(.61*i),27,18,t[1],"agent-migration"===e?.32:.42),Ce(n,45+4*Math.cos(.72*i),23+4*Math.sin(.54*i),22,15,t[2],.44),Ce(n,53+2*Math.sin(1.07*i),16+6*Math.cos(.89*i),12,13,t[3],"model-training"===e?.3:.2),n.globalCompositeOperation="source-over";var s=n.createRadialGradient(41,16,1,41,16,17);s.addColorStop(0,"rgba(5,6,11,0.64)"),s.addColorStop(.58,"rgba(6,7,12,0.26)"),s.addColorStop(1,"rgba(6,7,12,0)"),n.fillStyle=s,n.fillRect(20,0,44,32),n.restore()}return{image:r,ready:!0}}(e)),we[e]}function Ee(e){var t=e.root,r=e.canvas,n=e.preset,o=e.getProgress,i=e.dprCap,a=void 0===i?2:i,s=e.powerPreference,l=void 0===s?"high-performance":s,u=e.onContextLost,c=e.onContextRestored,d=document.createElement("canvas");d.className="hj-progress-canvas hj-progress-overlay",d.setAttribute("aria-hidden","true"),r.insertAdjacentElement("afterend",d);var f=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{return new be(e,t,r)}catch(e){return console.warn("[画境观屿] 进度流体 WebGL2 不可用,使用 Canvas 2D 降级。",e),null}}(d,n,{powerPreference:l,onContextLost:u,onContextRestored:c});if(!f)return d.remove(),null;var h=Se(n.id);t.classList.add("has-webgl-progress");var p=function(){var e=t.getBoundingClientRect(),r=Math.max(1,e.width),n=Math.max(1,e.height),o=Math.min(window.devicePixelRatio||1,a);d.style.width="".concat(r,"px"),d.style.height="".concat(n,"px"),f.resize(r,n,o)},v=null,m=null;return"undefined"!=typeof ResizeObserver?(v=new ResizeObserver(p)).observe(t):(m=p,window.addEventListener("resize",m)),p(),{update:function(e){var t=e%12,r=o();f.draw(t,Number.isFinite(r)?r:n.initialProgress,h.ready?h.image:null)},setColors:function(e){f.setColors(e)},setDprCap:function(e){a=e,p()},dispose:function(){v&&v.disconnect(),m&&window.removeEventListener("resize",m),f.dispose(),d.remove(),t.classList.remove("has-webgl-progress")}}}function Pe(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,o=ue(e),i=ue(t);if(null===o&&(o=r),null===i&&(i=n),o>i){var a=o;o=i,i=a}return[o,i]}function Re(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"any";if("any"===e||null==e)return"any";var r=ue(e);return null!==r&&r>0?r:t}function Ae(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"any",o=function(e,t,r){var n=ue(e);return null===n?null:Math.min(Math.max(n,t),r)}(e,t,r);if(null===o)return null;if("any"===n||null==n)return o;var i=Re(n);if("any"===i)return o;var a=t+Math.round((o-t)/i)*i;return Math.min(Math.max(Number(a.toFixed(12)),t),r)}function Me(e,t,r){var n=r-t;return!Number.isFinite(n)||n<=0?0:Math.min(Math.max((e-t)/n,0),1)}var _e=function(e,t,r){return Math.min(Math.max(e,t),r)},Te="undefined"!=typeof CanvasRenderingContext2D&&"filter"in CanvasRenderingContext2D.prototype;function ke(e){var t,r=2166136261,n=a(e);try{for(n.s();!(t=n.n()).done;){r^=t.value.charCodeAt(0),r=Math.imul(r,16777619)}}catch(e){n.e(e)}finally{n.f()}return(r>>>0)/4294967295}var Le={"model-training":{cycles:[.98,3.05,5.45],amplitudes:[11.2,11,5.2],speeds:[.31,-.53,.78],bulgeAmplitude:8.2,timeScale:1,glowWidth:5.8,haloWidth:20,whiteAlpha:.72,whiteWidth:1.15,cloudWidth:.17,autoRange:[25,66]},"agent-migration":{cycles:[.62,1.55,2.95],amplitudes:[16,7.8,2.3],speeds:[.25,-.4,.6],bulgeAmplitude:8.4,timeScale:.82,glowWidth:6.3,haloWidth:21,whiteAlpha:.18,whiteWidth:.45,cloudWidth:.18,autoRange:[24,62]},"visual-training":{cycles:[.88,2.45,4.35],amplitudes:[12.8,10.2,4.3],speeds:[.28,-.47,.69],bulgeAmplitude:7.3,timeScale:.91,glowWidth:6,haloWidth:21,whiteAlpha:.3,whiteWidth:.55,cloudWidth:.175,autoRange:[20,75]},tide:{cycles:[.72,1.9,4.2],amplitudes:[19,6.5,1.5],speeds:[.42,-.5,.66],bulgeAmplitude:9.5,timeScale:.85,glowWidth:6.2,haloWidth:21,whiteAlpha:.5,whiteWidth:1,cloudWidth:.18,autoRange:[18,70],surge:.55}},Fe=function(){return i(function e(t){var r,o,i=this,a=t.root,s=t.canvas,l=t.valueElement,u=t.preset,d=t.emitter,f=t.options,h=t.copy,p=t.dirty;n(this,e),this.root=a,this.canvas=s,this.valueElement=l,this.preset=u,this.emitter=d,this.options=f,this.copy=h,this.dirty=p,this.valueSuffix=null!==(r=f.valueSuffix)&&void 0!==r?r:h.valueSuffix,this.profile="tide"===u.edgeStyle?Le.tide:Le[u.id]||Le["visual-training"];var v=c(Pe(f.min,f.max),2);this.min=v[0],this.max=v[1],this.step=Re(f.step),this.precision=Number.isInteger(Number(f.precision))?_e(Number(f.precision),0,20):0,this.formatValue="function"==typeof f.formatValue?f.formatValue:null,this.direction="rtl"===f.direction?"rtl":"ltr",this.dprCap=w(f.quality,f.renderScale),this.ctx=s.getContext("2d"),this.value=Ae(null!==(o=f.value)&&void 0!==o?o:u.initialProgress,this.min,this.max,this.step),null===this.value&&(this.value=_e(u.initialProgress,this.min,this.max)),this.dragging=!1,this.webglActive=!1,this.flowTime=31*ke(u.id),this.seed=ke("".concat(u.id,"-reference"))*Math.PI*2,this.randomState=Math.floor(2147483647*ke("".concat(u.id,"-auto")))||1,this.dpr=1,this.width=0,this.height=0,this.handlers={},this.onResize=function(){i.resizeCanvas(),"function"==typeof i.options.onResize&&i.options.onResize()},this.resizeObserver="undefined"!=typeof ResizeObserver?new ResizeObserver(this.onResize):null,this.resizeObserver?this.resizeObserver.observe(this.root):window.addEventListener("resize",this.onResize),this.suppressEvents=!0,this.setProgress(this.value,"init"),this.suppressEvents=!1,this.bindEvents(),this.resizeCanvas()},[{key:"random",value:function(){return this.randomState=Math.imul(this.randomState,1664525)+1013904223>>>0,this.randomState/4294967296}},{key:"displayText",value:function(){if(this.formatValue)return String(this.formatValue(this.value,{min:this.min,max:this.max,suffix:this.valueSuffix}));var e=this.precision>0?this.value.toFixed(this.precision):String(Math.round(this.value));return"".concat(e).concat(this.valueSuffix)}},{key:"syncValueDom",value:function(){var e=this.displayText();this.root.style.setProperty("--progress",this.value.toFixed(2)),this.root.style.setProperty("--progress-ratio",Me(this.value,this.min,this.max).toFixed(4)),this.root.setAttribute("aria-valuenow",String(this.value)),this.root.setAttribute("aria-valuetext",e),this.valueElement&&(this.valueElement.textContent=e)}},{key:"setProgress",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"auto",r=Ae(e,this.min,this.max,this.step);return null!==r&&(this.value=r,this.syncValueDom(),this.suppressEvents||(this.dirty&&(this.dirty.value=!0),this.emitter.emit("change",{value:this.value,source:t})),!0)}},{key:"setValueSuffix",value:function(e){return this.dirty&&(this.dirty.valueSuffix=!0),this.valueSuffix=String(null==e?"":e),this.syncValueDom(),this}},{key:"setStep",value:function(e){var t=Re(e,this.step);if(t===this.step)return this;this.dirty&&(this.dirty.step=!0),this.step=t;var r=Ae(this.value,this.min,this.max,this.step);return null!==r&&r!==this.value&&this.setProgress(r,"prop"),this}},{key:"setPrecision",value:function(e){var t=Number(e);return!Number.isInteger(t)||t<0||t>20||(this.dirty&&(this.dirty.precision=!0),this.precision=t,this.syncValueDom()),this}},{key:"setFormatValue",value:function(e){return null!=e&&"function"!=typeof e||(this.dirty&&(this.dirty.formatValue=!0),this.formatValue=e||null,this.syncValueDom()),this}},{key:"setDirection",value:function(e){return this.dirty&&(this.dirty.direction=!0),this.direction="rtl"===e?"rtl":"ltr",this.root.dataset.direction=this.direction,this}},{key:"setShowValue",value:function(e){return this.dirty&&(this.dirty.showValue=!0),this.valueElement&&(this.valueElement.hidden=!1===e),this}},{key:"resizeCanvas",value:function(){var e=this.root.getBoundingClientRect();this.dpr=Math.min(window.devicePixelRatio||1,this.dprCap),this.width=Math.max(1,e.width),this.height=Math.max(1,e.height),this.canvas.width=Math.round(this.width*this.dpr),this.canvas.height=Math.round(this.height*this.dpr),this.canvas.style.width="".concat(this.width,"px"),this.canvas.style.height="".concat(this.height,"px"),this.ctx.setTransform(this.dpr,0,0,this.dpr,0,0)}},{key:"edgeEnvelope",value:function(e){var t=Math.sin(Math.PI*_e(e,0,1));return Math.pow(Math.max(t,0),.48)}},{key:"localBulge",value:function(e,t,r){var n=0===r?1:-1,o=.28+.4*r+.13*Math.sin(t*(.19+.035*r)+this.seed*(1.1+r)),i=.075+.016*r+.012*Math.sin(.13*t+2.1*this.seed),a=(e-o)/Math.max(i,.035);return Math.exp(-.5*a*a)*Math.sin(t*(.71+.09*r)+this.seed*(2.7+r))*this.profile.bulgeAmplitude*n}},{key:"edgeOffset",value:function(e,t){for(var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=this.height>0?e/this.height:0,i=this.edgeEnvelope(o),a=t*this.profile.timeScale,s=this.profile.surge?a+this.profile.surge*Math.sin(2*a):a,l=0,u=0;u<this.profile.cycles.length;u+=1){var c=this.profile.cycles[u],d=this.profile.amplitudes[u],f=this.profile.speeds[u],h=.74+.26*Math.sin(s*(.17+.045*u)+this.seed*(u+2.4));l+=Math.sin(o*Math.PI*2*c+s*f*Math.PI*2+this.seed*(u+1)+r)*d*h}return l+=this.localBulge(o,s+r,0),(l+=this.localBulge(o,s-.7*r,1))*i*n}},{key:"createEdgePath",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,i=Math.max(1.8,this.height/92);e.beginPath();for(var a=0;a<=this.height+i;a+=i){var s=t+this.edgeOffset(a,r,n,o);0===a?e.moveTo(s,a):e.lineTo(s,a)}}},{key:"createFillPath",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,i=Math.max(1.8,this.height/92);e.beginPath(),e.moveTo(0,0),e.lineTo(t+this.edgeOffset(0,r,n,o),0);for(var a=i;a<=this.height+i;a+=i)e.lineTo(t+this.edgeOffset(a,r,n,o),a);e.lineTo(0,this.height),e.closePath()}},{key:"drawEllipticalGlow",value:function(e,t,r,n,o,i){var a=this.ctx;a.save(),a.translate(e,t),a.scale(1,n/r);var s=a.createRadialGradient(0,0,0,0,0,r);s.addColorStop(0,U(o,i)),s.addColorStop(.42,U(o,.48*i)),s.addColorStop(1,U(o,0)),a.globalCompositeOperation="screen",a.fillStyle=s,a.fillRect(-r,-r,2*r,2*r),a.restore()}},{key:"drawDarkEllipticalShadow",value:function(e,t,r,n,o){var i=this.ctx;i.save(),i.translate(e,t),i.scale(1,n/r);var a=i.createRadialGradient(0,0,0,0,0,r);a.addColorStop(0,"rgba(6, 6, 11, ".concat(o,")")),a.addColorStop(.54,"rgba(8, 8, 14, ".concat(.62*o,")")),a.addColorStop(1,"rgba(8, 8, 14, 0)"),i.globalCompositeOperation="source-over",i.fillStyle=a,i.fillRect(-r,-r,2*r,2*r),i.restore()}},{key:"drawColorClouds",value:function(e,t,r,n,o){this.ctx;var i=this.width,a=this.height,s=this.profile.cloudWidth,l=t*this.profile.timeScale,u=a*(.28+.13*Math.sin(.24*l+this.seed)),c=a*(.7+.12*Math.cos(.21*l+1.7*this.seed)),d=a*(.49+.15*Math.sin(.31*l+2.3*this.seed)),f=e-.095*i,h=Math.max(52,i*s),p=.42*a;this.drawEllipticalGlow(f,u,h,p,r,.38),this.drawDarkEllipticalShadow(f+.16*h,u,.58*h,.66*p,.74);var v=e-.072*i,m=Math.max(44,i*s*.82),g=.36*a;this.drawEllipticalGlow(v,c,m,g,n,.31),this.drawDarkEllipticalShadow(v+.14*m,c,.54*m,.62*g,.64),this.drawEllipticalGlow(e-.034*i,d,Math.max(30,i*s*.48),.27*a,o,.2)}},{key:"drawPathBand",value:function(e){var t=e.baseX,r=e.time,n=e.phase,o=e.amplitudeScale,i=e.color,a=e.alpha,s=e.blur,l=e.width,u=e.composite,c=void 0===u?"screen":u,d=this.ctx;this.createEdgePath(d,t,r,n,o),d.save(),d.globalCompositeOperation=c,d.globalAlpha=a,Te&&(d.filter="blur(".concat(s,"px)")),d.strokeStyle=i,d.lineWidth=l,d.stroke(),d.restore()}},{key:"setRange",value:function(e,t){var r=Pe(e,t,this.min,this.max);this.min=r[0],this.max=r[1],this.root.setAttribute("aria-valuemin",String(this.min)),this.root.setAttribute("aria-valuemax",String(this.max));var n=Ae(this.value,this.min,this.max,this.step);return n!==this.value?this.setProgress(n,"prop"):this.syncValueDom(),this}},{key:"drawReferenceFlow",value:function(){var e=this.ctx,t=this.width,r=this.height;if(!(!e||t<=0||r<=0)){var n=Math.max(this.max-this.min,1),o=t*Math.min(Math.max((this.value-this.min)/n,0),1),i=this.flowTime,a=c(this.preset.colors,4),s=a[0],l=a[1],u=a[2],d=a[3];e.clearRect(0,0,t,r),e.fillStyle="#202126",e.fillRect(0,0,t,r),this.createFillPath(e,o,i,0,1);var f=e.createLinearGradient(0,0,Math.max(o,1),0);f.addColorStop(0,s),f.addColorStop(.74,s),f.addColorStop(.89,U(s,.99)),f.addColorStop(.955,U(l,.09)),f.addColorStop(.992,U(u,.54)),f.addColorStop(1,U(d,.78)),e.fillStyle=f,e.fill(),this.drawColorClouds(o,i,l,u,d),this.drawPathBand({baseX:o-.105*t,time:i,phase:1.42,amplitudeScale:1.18,color:l,alpha:.22,blur:21,width:54}),this.drawPathBand({baseX:o-.073*t,time:i,phase:-.92,amplitudeScale:1.06,color:u,alpha:.3,blur:15,width:42}),this.drawPathBand({baseX:o-.047*t,time:i,phase:.42,amplitudeScale:.94,color:"rgba(5, 5, 10, 0.92)",alpha:.72,blur:12,width:34,composite:"source-over"}),this.drawPathBand({baseX:o-.025*t,time:i,phase:-.28,amplitudeScale:.96,color:u,alpha:.66,blur:8,width:28}),e.save(),this.createFillPath(e,o,i,0,1),e.clip(),this.createEdgePath(e,o,i,0,1),e.save(),e.globalCompositeOperation="screen",e.strokeStyle=U(l,.2),e.lineWidth=this.profile.haloWidth,e.shadowColor=l,e.shadowBlur=.72*this.profile.haloWidth,e.stroke(),e.restore(),e.save(),e.globalCompositeOperation="screen",e.strokeStyle=U(u,.78),e.lineWidth=this.profile.glowWidth+4.2,e.shadowColor=u,e.shadowBlur=8,e.stroke(),e.restore(),e.save(),e.globalCompositeOperation="screen",e.strokeStyle=U(d,.88),e.lineWidth=this.profile.glowWidth,e.shadowColor=d,e.shadowBlur=5,e.stroke(),e.restore(),e.restore(),e.save(),e.globalCompositeOperation="screen",e.strokeStyle=U(d,.84),e.lineWidth=2.15,e.shadowColor=d,e.shadowBlur=2.5,this.createEdgePath(e,o,i,0,1),e.stroke(),e.restore(),this.profile.whiteAlpha>.05&&(e.save(),e.globalCompositeOperation="screen",e.strokeStyle="rgba(255,255,245,".concat(this.profile.whiteAlpha,")"),e.lineWidth=this.profile.whiteWidth,this.createEdgePath(e,o,i,0,1),e.stroke(),e.restore())}}},{key:"updateFromPointer",value:function(e){var t=this.root.getBoundingClientRect(),r=t.width>0?(e.clientX-t.left)/t.width:0;"rtl"===this.direction&&(r=1-r),this.setProgress(this.min+r*(this.max-this.min),"drag")}},{key:"onKeyDown",value:function(e){var t=this.max-this.min,r=Number(this.step),n=Number.isFinite(r)&&r>0?r:Math.max(t/100,1e-7),o="rtl"===this.direction?-1:1,i={Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown"}[e.key]||e.key||{35:"End",36:"Home",33:"PageUp",34:"PageDown",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown"}[e.keyCode],a=null;"ArrowRight"===i?a=this.value+n*o:"ArrowLeft"===i?a=this.value-n*o:"ArrowUp"===i?a=this.value+n:"ArrowDown"===i?a=this.value-n:"PageUp"===i?a=this.value+10*n:"PageDown"===i?a=this.value-10*n:"Home"===i?a=this.min:"End"===i&&(a=this.max),null!==a&&(e.preventDefault(),this.setProgress(a,"keyboard"))}},{key:"beginDrag",value:function(e){if(void 0===e.button||0===e.button){e.preventDefault();try{this.root.focus({preventScroll:!0})}catch(e){this.root.focus()}this.dragging=!0,this.pendingPointer=null,this._dragRaf=0,this.root.classList.add("is-dragging");try{var t,r;null===(t=(r=this.root).setPointerCapture)||void 0===t||t.call(r,e.pointerId)}catch(e){}this.emitter.emit("dragstart",{value:this.value}),this.updateFromPointer(e)}}},{key:"moveDrag",value:function(e){var t=this;this.dragging&&(e.preventDefault(),this.pendingPointer=e,this._dragRaf||(this._dragRaf=requestAnimationFrame(function(){t._dragRaf=0;var e=t.pendingPointer;t.pendingPointer=null,e&&t.updateFromPointer(e)})))}},{key:"endDrag",value:function(e){if(this.dragging){this.dragging=!1,this._dragRaf&&(cancelAnimationFrame(this._dragRaf),this._dragRaf=0);var t=this.pendingPointer;this.pendingPointer=null,t&&this.updateFromPointer(t),this.root.classList.remove("is-dragging");try{var r,n;void 0!==(null==e?void 0:e.pointerId)&&null!==(r=(n=this.root).hasPointerCapture)&&void 0!==r&&r.call(n,e.pointerId)&&this.root.releasePointerCapture(e.pointerId)}catch(e){}this.emitter.emit("dragend",{value:this.value})}}},{key:"bindEvents",value:function(){var e=this;!1!==this.options.draggable&&(this.handlers.pointerdown=function(t){return e.beginDrag(t)},this.handlers.pointermove=function(t){return e.moveDrag(t)},this.handlers.pointerup=function(t){return e.endDrag(t)},this.handlers.pointercancel=function(t){return e.endDrag(t)},this.root.addEventListener("pointerdown",this.handlers.pointerdown),this.root.addEventListener("pointermove",this.handlers.pointermove),this.root.addEventListener("pointerup",this.handlers.pointerup),this.root.addEventListener("pointercancel",this.handlers.pointercancel)),!1!==this.options.keyboard&&(this.handlers.keydown=function(t){return e.onKeyDown(t)},this.root.addEventListener("keydown",this.handlers.keydown))}},{key:"update",value:function(e,t){t||(this.flowTime+=e)}},{key:"draw",value:function(){this.webglActive||this.drawReferenceFlow()}},{key:"randomize",value:function(){return this.flowTime=40*this.random(),this.flowTime}},{key:"setColors",value:function(e){Array.isArray(e)&&4===e.length&&(this.preset.colors=d(e))}},{key:"dispose",value:function(){this._dragRaf&&cancelAnimationFrame(this._dragRaf),this.resizeObserver?this.resizeObserver.disconnect():window.removeEventListener("resize",this.onResize);for(var e=0,t=Object.keys(this.handlers);e<t.length;e++){var r=t[e],n=this.handlers[r];this.root.removeEventListener(r,n)}this.handlers={}}}])}();var De=new WeakMap;e.ALL_PRESETS=T,e.COPY=F,e.CosmicRenderer=V,e.DEFAULTS=L,e.FallbackRenderer=H,e.PRESETS=_,e.PROGRESS_PRESETS=M,e.ProgressCapsuleController=Fe,e.ProgressFlowRenderer=be,e.QUALITY_TIERS=y,e.createCapsule=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"function"!=typeof e.appendChild)throw new Error("createCapsule: container element is required");var n=u({},k("capsule",null!==(t=r.preset)&&void 0!==t?t:"初光")),o=x(L.capsule,n,r),i=Array.isArray(o.colors)?o.colors.map(N):[];4===i.length&&i.every(Boolean)&&(n.colors=i);var s=ue(o.seed),l=ue(o.speed);null!==s&&(n.seed=s),null!==l&&(n.speed=l),o.colors=d(n.colors),o.seed=n.seed,o.speed=n.speed;var c=Array.isArray(r.colors)?r.colors.map(N):[],f=4===c.length&&c.every(Boolean)?d(c):null,p=void 0!==r.seed?ue(r.seed):null,m=void 0!==r.speed?ue(r.speed):null,y="string"==typeof r.label&&r.label?r.label:null,b=document.createElement("div");b.className="hj-capsule-root hj-capsule-cosmic",b.dataset.group=n.group,b.dataset.mode="nebula",b.dataset.theme=n.theme||"light",b.setAttribute("role","img");var C=function(){b.setAttribute("aria-label",y||F.capsuleAria.replace("{name}",n.name))};C();var S=function(e,t){if(e.innerHTML="",null!=t)if("string"!=typeof t){var r,n=a(Array.isArray(t)?t:[t]);try{for(n.s();!(r=n.n()).done;){var o=r.value;o&&"number"==typeof o.nodeType&&e.appendChild(o)}}catch(e){n.e(e)}finally{n.f()}}else e.innerHTML=t},E=document.createElement("div");E.className="hj-capsule-text hj-capsule-copy";var P=document.createElement("div");P.className="hj-capsule-visual",S(E,r.text),S(P,r.colorContent);var R=document.createElement("canvas");R.className="hj-capsule-canvas",R.setAttribute("aria-hidden","true"),b.appendChild(E),b.appendChild(P),b.appendChild(R),e.appendChild(b);var A,M=v(),_=!0===o.paused,T=!1,D=!0===o.static,B=!1,O=!1,U=function(){},z={preset:!1,seed:!1,speed:!1,colors:!1,textRatio:!1,cssVars:!1,mouseColor:!1,quality:!1,renderScale:!1,paused:!1,static:!1,fps:!1};if("canvas2d"!==o.renderer)try{A=new V(R,o,{dprCap:w(o.quality,o.renderScale),mouseColor:!1!==o.mouseColor,powerPreference:o.powerPreference,onContextLost:function(){B=!0,M.emit("contextlost",{})},onContextRestored:function(){B=!1,M.emit("contextrestored",{}),U(),re()}})}catch(e){A=new H(R,o,{dprCap:w(o.quality,o.renderScale)}),ie(function(){O||M.emit("error",{message:String(e&&e.message?e.message:e)})})}else A=new H(R,o,{dprCap:w(o.quality,o.renderScale)});var I=0,j=se(o.fps);U=function(){return A.draw(I)};var G=function(){b.style.width=g(o.width),b.style.height=g(o.height);for(var e=o.cssVars||{},t=0,r=Object.keys(e);t<r.length;t++){var n=r[t];b.style.setProperty(n,e[n])}void 0!==o.textRatio&&(b.style.setProperty("--hj-text-width","".concat(o.textRatio,"%")),b.style.setProperty("--hj-text-min-width","0")),A.resize()};G();var q=function(){A.resize(),(_||T||D)&&U()},W="undefined"!=typeof ResizeObserver?new ResizeObserver(q):null;W?W.observe(b):window.addEventListener("resize",q);var X=oe(b,re),Y=le(o.respectReducedMotion,function(e){T=e,e?U():re()});T=Y.matches();var K=function(){return _||T||D||B};b.addEventListener("pointerenter",function(){return M.emit("pointerenter",{preset:u({},n)})}),b.addEventListener("pointerleave",function(){return M.emit("pointerleave",{preset:u({},n)})}),b.addEventListener("click",function(e){M.emit("click",{event:e,preset:u({},n)})}),b.addEventListener("pointerdown",function(e){return M.emit("pointerdown",{event:e,preset:u({},n)})}),b.addEventListener("pointerup",function(e){return M.emit("pointerup",{event:e,preset:u({},n)})}),b.addEventListener("dblclick",function(e){return M.emit("dblclick",{event:e,preset:u({},n)})}),U();var $=ne(function(e){I+=e,j.shouldDraw(e)&&A.draw(I)},function(){return K()||!X.isVisible()});return ie(function(){O||M.emit("ready",{preset:u({},n)})}),{element:b,canvas:R,preset:n,on:M.on,off:M.off,setPreset:function(e){var t=k("capsule",e);z.preset=!0,Object.assign(n,t),f&&(n.colors=d(f)),null!==p&&(n.seed=p),null!==m&&(n.speed=m);var r=n.colors.map(N);return r.every(Boolean)&&(n.colors=r),A.setPreset(u({},n)),b.dataset.mode="nebula",b.dataset.theme=n.theme||"light",C(),A.resize(),K()&&U(),M.emit("presetchange",{preset:u({},t)}),this},setColors:function(e){var t=Array.isArray(e)?e.map(N):[];return 4!==t.length||t.some(function(e){return!e})||(z.colors=!0,f=d(t),n.colors=t,A.setPreset(u(u({},n),{},{colors:t})),K()&&U()),this},setSeed:function(e){var t=ue(e);return null===t||(z.seed=!0,p=t,n.seed=t,A.setPreset(u({},n)),K()&&U()),this},setSpeed:function(e){var t=ue(e);return null===t||(z.speed=!0,m=t,n.speed=t,A.setPreset(u({},n)),K()&&U()),this},setText:function(e){return S(E,e),this},setColorContent:function(e){return S(P,e),this},setTextRatio:function(e){var t=Number(e);return!Number.isFinite(t)||t<0||t>100||(z.textRatio=!0,o.textRatio=t,b.style.setProperty("--hj-text-width","".concat(t,"%")),b.style.setProperty("--hj-text-min-width","0")),this},setCssVars:function(e){if(!e||"object"!==h(e))return this;z.cssVars=!0,o.cssVars=u(u({},o.cssVars||{}),e);for(var t=0,r=Object.keys(e);t<r.length;t++){var n=r[t];b.style.setProperty(n,e[n])}return this},setLabel:function(e){return y="string"==typeof e&&e?e:null,C(),this},setMouseColor:function(e){return z.mouseColor=!0,o.mouseColor=!1!==e,"function"==typeof A.setMouseColor&&A.setMouseColor(o.mouseColor),this},setSize:function(e,t){return void 0!==e&&(g(e),o.width=e),void 0!==t&&(g(t),o.height=t),G(),K()&&U(),this},randomize:function(){return this.setSeed(100*Math.random()),this},pause:function(){return z.paused=!0,_=!0,U(),this},resume:function(){return z.paused=!0,_=!1,re(),this},setPaused:function(e){return e?this.pause():this.resume()},setStatic:function(e){return z.static=!0,D=!0===e,o.static=D,D?U():re(),this},setFps:function(e){return z.fps=!0,o.fps=j.setFps(e),re(),this},setQuality:function(e){return z.quality=!0,o.quality=e,"function"==typeof A.setDprCap&&A.setDprCap(w(e,o.renderScale)),K()&&U(),this},setRenderScale:function(e){var t=Number(e);return Number.isFinite(t)?(z.renderScale=!0,o.renderScale=Math.min(1,Math.max(.25,t)),"function"==typeof A.setDprCap&&A.setDprCap(w(o.quality,o.renderScale)),K()&&U(),this):this},dispose:function(){O=!0,$(),X.dispose(),Y.dispose(),W?W.disconnect():window.removeEventListener("resize",q),A.dispose(),b.remove()},get textRatio(){return o.textRatio},get cssVars(){return o.cssVars},get mouseColor(){return o.mouseColor},get quality(){return o.quality},get renderScale(){return o.renderScale},get paused(){return _},get static(){return D},get fps(){return j.getFps()},dirty:z}},e.createColorBackground=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"function"!=typeof e.appendChild)throw new Error("createColorBackground: host element is required");var n=u({},k("capsule",null!==(t=r.preset)&&void 0!==t?t:"初光")),o=x({quality:L.capsule.quality,renderer:L.capsule.renderer,respectReducedMotion:L.capsule.respectReducedMotion,mouseColor:!0,renderScale:1,powerPreference:"high-performance",fps:L.capsule.fps,paused:!1,static:!1,opacity:1,fallbackColor:!0},n,r);o.opacity=Number.isFinite(Number(o.opacity))?Math.min(1,Math.max(0,Number(o.opacity))):1;var i=Array.isArray(o.colors)?o.colors.map(N):[];4===i.length&&i.every(Boolean)&&(n.colors=i);var a=ue(o.seed),s=ue(o.speed);null!==a&&(n.seed=a),null!==s&&(n.speed=s),o.colors=d(n.colors),o.seed=n.seed,o.speed=n.speed;var l=Array.isArray(r.colors)?r.colors.map(N):[],c=4===l.length&&l.every(Boolean)?d(l):null,f=void 0!==r.seed?ue(r.seed):null,h=void 0!==r.speed?ue(r.speed):null;!function(e){var t=De.get(e);if(t)t.count+=1;else{var r={count:1,position:e.style.position,isolation:e.style.isolation},n=getComputedStyle(e);"static"!==n.position&&""!==n.position||(e.style.position="relative"),e.style.isolation="isolate",De.set(e,r)}}(e);var p=document.createElement("div");p.className="dlc-color-layer";var m=function(){p.style.setProperty("--dlc-color-opacity",String(o.opacity));var e=!1===o.fallbackColor||null==o.fallbackColor?"transparent":"string"==typeof o.fallbackColor?o.fallbackColor:n.colors[0];p.style.setProperty("--dlc-color-bg",e)};m();var g=document.createElement("canvas");g.className="dlc-color-canvas",g.setAttribute("aria-hidden","true"),p.appendChild(g),e.appendChild(p);var y,b=v(),C=!0===o.paused,S=!1,E=!0===o.static,P=!1,R=!1,A=function(){},M={preset:!1,seed:!1,speed:!1,colors:!1,opacity:!1,fallbackColor:!1,mouseColor:!1,quality:!1,renderScale:!1,paused:!1,static:!1,fps:!1};if("canvas2d"!==o.renderer)try{y=new V(g,o,{dprCap:w(o.quality,o.renderScale),mouseColor:!1!==o.mouseColor,eventTarget:e,powerPreference:o.powerPreference,onContextLost:function(){P=!0,b.emit("contextlost",{})},onContextRestored:function(){P=!1,b.emit("contextrestored",{}),A(),re()}})}catch(e){y=new H(g,o,{dprCap:w(o.quality,o.renderScale)}),ie(function(){R||b.emit("error",{message:String(e&&e.message?e.message:e)})})}else y=new H(g,o,{dprCap:w(o.quality,o.renderScale)});y.resize();var _=0,T=se(o.fps);A=function(){return y.draw(_)};var F=function(){y.resize(),(C||S||E)&&A()},D="undefined"!=typeof ResizeObserver?new ResizeObserver(F):null;D?D.observe(e):window.addEventListener("resize",F);var B=oe(p,re),O=le(o.respectReducedMotion,function(e){S=e,e?A():re()});S=O.matches();var U=function(){return C||S||E||P};A();var z=ne(function(e){_+=e,T.shouldDraw(e)&&y.draw(_)},function(){return U()||!B.isVisible()});return ie(function(){R||b.emit("ready",{preset:u({},n)})}),{element:e,layer:p,canvas:g,preset:n,on:b.on,off:b.off,setPreset:function(e){var t=k("capsule",e);M.preset=!0,Object.assign(n,t),c&&(n.colors=d(c)),null!==f&&(n.seed=f),null!==h&&(n.speed=h);var r=n.colors.map(N);return r.every(Boolean)&&(n.colors=r),y.setPreset(u({},n)),y.resize(),m(),U()&&A(),b.emit("presetchange",{preset:u({},n)}),this},setColors:function(e){var t=Array.isArray(e)?e.map(N):[];return 4!==t.length||t.some(function(e){return!e})||(M.colors=!0,c=d(t),n.colors=t,y.setPreset(u(u({},n),{},{colors:t})),m(),U()&&A()),this},setSeed:function(e){var t=ue(e);return null===t||(M.seed=!0,f=t,n.seed=t,y.setPreset(u({},n)),U()&&A()),this},setSpeed:function(e){var t=ue(e);return null===t||(M.speed=!0,h=t,n.speed=t,y.setPreset(u({},n)),U()&&A()),this},setFallbackColor:function(e){return M.fallbackColor=!0,o.fallbackColor=e,m(),this},setMouseColor:function(e){return M.mouseColor=!0,o.mouseColor=!1!==e,"function"==typeof y.setMouseColor&&y.setMouseColor(o.mouseColor),this},setQuality:function(e){return M.quality=!0,o.quality=e,"function"==typeof y.setDprCap&&y.setDprCap(w(e,o.renderScale)),U()&&A(),this},setRenderScale:function(e){var t=Number(e);return Number.isFinite(t)?(M.renderScale=!0,o.renderScale=Math.min(1,Math.max(.25,t)),"function"==typeof y.setDprCap&&y.setDprCap(w(o.quality,o.renderScale)),U()&&A(),this):this},setOpacity:function(e){var t=Number(e);return Number.isFinite(t)?(M.opacity=!0,o.opacity=Math.min(1,Math.max(0,t)),p.style.setProperty("--dlc-color-opacity",String(o.opacity)),this):this},randomize:function(){return this.setSeed(100*Math.random()),this},pause:function(){return M.paused=!0,C=!0,A(),this},resume:function(){return M.paused=!0,C=!1,re(),this},setPaused:function(e){return e?this.pause():this.resume()},setStatic:function(e){return M.static=!0,E=!0===e,o.static=E,E?A():re(),this},setFps:function(e){return M.fps=!0,o.fps=T.setFps(e),re(),this},dispose:function(){R=!0,z(),B.dispose(),O.dispose(),D?D.disconnect():window.removeEventListener("resize",F),y.dispose(),p.remove(),function(e){var t=De.get(e);t&&(t.count-=1,t.count>0||(e.style.position=t.position,e.style.isolation=t.isolation,De.delete(e)))}(e)},get opacity(){return o.opacity},get fallbackColor(){return o.fallbackColor},get mouseColor(){return o.mouseColor},get quality(){return o.quality},get renderScale(){return o.renderScale},get paused(){return C},get static(){return E},get fps(){return T.getFps()},dirty:M}},e.createProgressCapsule=function(e){var t,r,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"function"!=typeof e.appendChild)throw new Error("createProgressCapsule: container element is required");var i=u({},k("progress",null!==(t=o.preset)&&void 0!==t?t:"星火")),s=x(L.progress,i,o),l=c(Pe(s.min,s.max),2);s.min=l[0],s.max=l[1],void 0!==s.modelValue&&(s.value=s.modelValue);var f=Array.isArray(s.colors)?s.colors.map(N):[];4===f.length&&f.every(Boolean)&&(i.colors=f);var p="tide"===s.edgeStyle||"flow"===s.edgeStyle?s.edgeStyle:i.edgeStyle;i.edgeStyle=p,s.edgeStyle=p,s.colors=d(i.colors);var m=Array.isArray(o.colors)?o.colors.map(N):[],y=4===m.length&&m.every(Boolean)?d(m):null,b="flow"===o.edgeStyle||"tide"===o.edgeStyle?s.edgeStyle:null,C=F,S="string"==typeof o.label&&o.label?o.label:null,E=!0===s.disabled||""===s.disabled||"true"===s.disabled,P=!0===s.readonly||""===s.readonly||"true"===s.readonly,R=E||P,A=!R&&!1!==s.draggable,M=!R&&!1!==s.keyboard,_={preset:!1,colors:!1,textRatio:!1,cssVars:!1,edgeStyle:!1,value:!1,step:!1,precision:!1,formatValue:!1,direction:!1,showValue:!1,valueSuffix:!1,quality:!1,renderScale:!1,paused:!1,static:!1,fps:!1},T=document.createElement("div");T.className="hj-capsule-root hj-progress-root",T.setAttribute("role","slider"),T.setAttribute("data-draggable",String(A)),T.dataset.direction="rtl"===s.direction?"rtl":"ltr",E&&(T.setAttribute("aria-disabled","true"),T.classList.add("is-disabled")),P&&(T.setAttribute("aria-readonly","true"),T.classList.add("is-readonly")),T.setAttribute("tabindex",R?"-1":M?"0":"-1"),T.setAttribute("aria-orientation","horizontal"),T.setAttribute("aria-valuemin",String(null!==(r=s.min)&&void 0!==r?r:0)),T.setAttribute("aria-valuemax",String(null!==(n=s.max)&&void 0!==n?n:100)),T.setAttribute("aria-valuenow",String(i.initialProgress));var D=function(){var e,t;T.setAttribute("aria-label",S||(e=C.progressAria,t={brand:C.brandName,code:i.code,name:i.name},e.replace(/\{(\w+)\}/g,function(e,r){return void 0!==t[r]?t[r]:""})))};D();var B=document.createElement("canvas");B.className="hj-progress-canvas",B.setAttribute("aria-hidden","true");var O=function(e,t){if(e.innerHTML="",null!=t)if("string"!=typeof t){var r,n=a(Array.isArray(t)?t:[t]);try{for(n.s();!(r=n.n()).done;){var o=r.value;o&&"number"==typeof o.nodeType&&e.appendChild(o)}}catch(e){n.e(e)}finally{n.f()}}else e.innerHTML=t},U=document.createElement("div");U.className="hj-progress-text hj-progress-copy";var z=document.createElement("div");z.className="hj-progress-visual",O(U,o.text),O(z,o.colorContent);var I=document.createElement("div");I.className="hj-progress-value",I.setAttribute("aria-hidden","true"),I.hidden=!1===s.showValue,T.appendChild(B),T.appendChild(U),T.appendChild(z),T.appendChild(I),e.appendChild(T);var j=v(),V=!0===s.paused,G=!1,q=!0===s.static,W=!1,X=!1,Y=function(){},H=function(){W=!0,j.emit("contextlost",{})},K=function(){W=!1,j.emit("contextrestored",{}),Y(),re()},$=function(){T.style.width=g(s.width),T.style.height=g(s.height);for(var e=s.cssVars||{},t=0,r=Object.keys(e);t<r.length;t++){var n=r[t];T.style.setProperty(n,e[n])}void 0!==s.textRatio&&T.style.setProperty("--hj-text-width","".concat(s.textRatio,"%"))};$();var Q=new Fe({root:T,canvas:B,valueElement:I,preset:i,emitter:j,options:u(u({},s),{},{draggable:A,keyboard:M,onResize:function(){(V||G||q)&&Y()}}),copy:C,dirty:_}),J=null;"canvas2d"!==s.renderer&&(J=Ee({root:T,canvas:B,preset:i,getProgress:function(){return 100*Me(Q.value,Q.min,Q.max)},dprCap:w(s.quality,s.renderScale),powerPreference:s.powerPreference,onContextLost:H,onContextRestored:K})),J?Q.webglActive=!0:"canvas2d"!==s.renderer&&ie(function(){X||j.emit("error",{message:"WebGL2 unavailable, using Canvas2D fallback"})});var Z=oe(T,re),ee=le(s.respectReducedMotion,function(e){G=e,e?Y():re()});G=ee.matches();var te=function(){return V||G||q||W},ae=0,ue=se(s.fps);(Y=function(){Q.draw(),J&&J.update(ae)})();var ce=j.on("change",function(){te()&&Y()}),de=ne(function(e,t){ae+=e,Q.update(e,!1),ue.shouldDraw(e)&&(Q.draw(),J&&J.update(ae))},function(){return te()||!Z.isVisible()});return ie(function(){X||j.emit("ready",{preset:u({},i)})}),{element:T,canvas:B,preset:i,on:j.on,off:j.off,setValue:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"prop";return Q.setProgress(e,t),this},getValue:function(){return Q.value},setRange:function(e,t){return Q.setRange(e,t),te()&&Y(),this},setPreset:function(e){var t=k("progress",e);_.preset=!0,Object.assign(i,t),y&&(i.colors=d(y)),b&&(i.edgeStyle=b);var r=i.colors.map(N);return r.every(Boolean)&&(i.colors=r),Q.preset=i,Q.profile="tide"===i.edgeStyle?Le.tide:Le[i.id]||Le["visual-training"],Q.flowTime=31*ke(t.id),Q.seed=ke("".concat(t.id,"-reference"))*Math.PI*2,D(),J&&(J.dispose(),W=!1,J=Ee({root:T,canvas:B,preset:i,getProgress:function(){return 100*Me(Q.value,Q.min,Q.max)},dprCap:w(s.quality,s.renderScale),powerPreference:s.powerPreference,onContextLost:H,onContextRestored:K})),Q.webglActive=Boolean(J),Q.resizeCanvas(),te()&&Y(),j.emit("presetchange",{preset:u({},i)}),this},setEdgeStyle:function(e){var t=String(e||"").toLowerCase();return"flow"!==t&&"tide"!==t||(_.edgeStyle=!0,b=t,i.edgeStyle=t,Q.profile="tide"===t?Le.tide:Le[i.id]||Le["visual-training"],J&&(J.dispose(),W=!1,J=Ee({root:T,canvas:B,preset:i,getProgress:function(){return 100*Me(Q.value,Q.min,Q.max)},dprCap:w(s.quality,s.renderScale),powerPreference:s.powerPreference,onContextLost:H,onContextRestored:K})),Q.webglActive=Boolean(J),Q.resizeCanvas(),te()&&Y()),this},setText:function(e){return O(U,e),this},setColorContent:function(e){return O(z,e),this},setTextRatio:function(e){var t=Number(e);return!Number.isFinite(t)||t<0||t>100||(_.textRatio=!0,s.textRatio=t,T.style.setProperty("--hj-text-width","".concat(t,"%"))),this},setCssVars:function(e){if(!e||"object"!==h(e))return this;_.cssVars=!0,s.cssVars=u(u({},s.cssVars||{}),e);for(var t=0,r=Object.keys(e);t<r.length;t++){var n=r[t];T.style.setProperty(n,e[n])}return this},setLabel:function(e){return S="string"==typeof e&&e?e:null,D(),this},setValueSuffix:function(e){return Q.setValueSuffix(e),this},setStep:function(e){return Q.setStep(e),this},setPrecision:function(e){return Q.setPrecision(e),this},setFormatValue:function(e){return Q.setFormatValue(e),this},setDirection:function(e){return Q.setDirection(e),this},setShowValue:function(e){return Q.setShowValue(e),this},setColors:function(e){var t=Array.isArray(e)?e.map(N):[];return 4!==t.length||t.some(function(e){return!e})||(_.colors=!0,y=d(t),i.colors=d(t),Q.setColors(t),J&&J.setColors(t),Q.resizeCanvas(),te()&&Y()),this},setSize:function(e,t){return void 0!==e&&(g(e),s.width=e),void 0!==t&&(g(t),s.height=t),$(),Q.resizeCanvas(),te()&&Y(),this},randomize:function(){return ae=Q.randomize(),te()&&Y(),this},pause:function(){return _.paused=!0,V=!0,Y(),this},resume:function(){return _.paused=!0,V=!1,re(),this},setPaused:function(e){return e?this.pause():this.resume()},setStatic:function(e){return _.static=!0,q=!0===e,s.static=q,q?Y():re(),this},setFps:function(e){return _.fps=!0,s.fps=ue.setFps(e),re(),this},setQuality:function(e){return _.quality=!0,s.quality=e,Q.dprCap=w(e,s.renderScale),Q.resizeCanvas(),J&&J.setDprCap(Q.dprCap),te()&&Y(),this},setRenderScale:function(e){var t=Number(e);return Number.isFinite(t)?(_.renderScale=!0,s.renderScale=Math.min(1,Math.max(.25,t)),Q.dprCap=w(s.quality,s.renderScale),Q.resizeCanvas(),J&&J.setDprCap(Q.dprCap),te()&&Y(),this):this},dispose:function(){X=!0,de(),ce(),Z.dispose(),ee.dispose(),J&&J.dispose(),Q.dispose(),T.remove()},get textRatio(){return s.textRatio},get cssVars(){return s.cssVars},get min(){return Q.min},get max(){return Q.max},get step(){return Q.step},get precision(){return Q.precision},get formatValue(){return Q.formatValue},get direction(){return Q.direction},get showValue(){return!I.hidden},get valueSuffix(){return Q.valueSuffix},get quality(){return s.quality},get renderScale(){return s.renderScale},get paused(){return V},get static(){return q},get fps(){return ue.getFps()},dirty:_}},e.dprCapFor=b,e.effectiveDprCap=w,e.getPreset=k,e.hexToRgb01=O,e.hexToRgba=U,e.normalizeColor=N,e.parseSize=g,e.pauseAll=function(){Q=!0},e.resumeAll=function(){Q=!1,te()},e.validateColors=function(e){return Array.isArray(e)&&4===e.length&&e.every(function(e){return null!==N(e)})}});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CosmicCapsules={})}(this,function(e){"use strict";function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function r(e,t,r){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:r;throw new TypeError("Private element is not present on this object")}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}function i(e,t,r){return t&&function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,f(n.key),n)}}(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function a(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=p(e))||t){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function s(e,t,r){return(t=f(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach(function(t){s(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],l=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(e){u=!0,o=e}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return s}}(e,t)||p(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e){return function(e){if(Array.isArray(e))return t(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||p(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function p(e,r){if(e){if("string"==typeof e)return t(e,r);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}function m(){var e=Object.create(null);return{on:function(t,r){return e[t]||(e[t]=[]),e[t].push(r),function(){var n=e[t];if(n){var o=n.indexOf(r);-1!==o&&n.splice(o,1)}}},off:function(t,r){var n=e[t];if(!n)return!1;var o=n.indexOf(r);return-1!==o&&(n.splice(o,1),!0)},emit:function(t){var r=e[t];if(r){for(var n=arguments.length,o=new Array(n>1?n-1:0),i=1;i<n;i++)o[i-1]=arguments[i];var s,l=a(r.slice());try{for(l.s();!(s=l.n()).done;){s.value.apply(void 0,o)}}catch(e){l.e(e)}finally{l.f()}}}}}var v=/^[\d.]+(?:px|%|vw|vh|vmin|vmax|em|rem)$/;function g(e){if("number"==typeof e){if(!Number.isFinite(e)||e<0)throw new Error("Invalid size: ".concat(e));return"".concat(e,"px")}if("string"!=typeof e)throw new Error("Invalid size: ".concat(String(e)));var t=e.trim();if(!t)throw new Error("Invalid size: empty string");if(/^\d+(?:\.\d+)?$/.test(t))return"".concat(t,"px");if(!v.test(t))throw new Error('Invalid size or unsupported unit: "'.concat(e,'" (use px, %, vw, vh, vmin, vmax, em, rem)'));return t}var y={low:{dpr:1},medium:{dpr:1.5},high:{dpr:2}};function b(e){return"auto"===e?(t="undefined"!=typeof navigator?navigator:null,r=t&&"number"==typeof t.deviceMemory?t.deviceMemory:8,n=t&&"number"==typeof t.hardwareConcurrency?t.hardwareConcurrency:8,r<=4||n<=4?1.5:2):(y[e]||y.medium).dpr;var t,r,n}function w(e){var t=Number(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1),r=Number.isFinite(t)?Math.min(1,Math.max(.25,t)):1;return Math.max(.5,b(e)*r)}function x(e,t,r){var n=function(e){for(var t={},r=0,n=Object.keys(e);r<n.length;r++){var o=n[r];void 0!==e[o]&&(t[o]=e[o])}return t},o=n(t&&"object"===h(t)?t:{}),i=n(r&&"object"===h(r)?r:{});return u(u(u({},e),o),i)}var C=["#EAF6FF","#8FD0FF","#3B87F6","#6B58E9"],S=["#EDF2FF","#2F58D5","#1B2040","#E07A43"],E=["#F2EEFF","#B99AF1","#8F74DB","#D7D85C"],P=["#F5F6F8","#B9C0CC","#7F8793","#4A4F59"],R=["#FFF0E6","#F6C26B","#F98A64","#E86D74"],A=[{id:"original",code:"NC-01",name:"初光",group:"warm",seed:1.7,speed:.5,colors:d(["#FFF3EA","#F5B27A","#F67BC6","#A978E8"])},{id:"ocean",code:"NC-02",name:"沧溟",group:"cold",seed:8.2,speed:.48,colors:d(C)},{id:"klein",code:"NC-03",name:"玄夜",group:"cold",seed:14.1,speed:.49,colors:d(S)},{id:"ultraviolet",code:"NC-04",name:"紫霄",group:"cold",seed:23.4,speed:.47,colors:d(E)},{id:"chrome",code:"NC-05",name:"银汉",group:"cold",seed:37.8,speed:.42,colors:d(P)},{id:"plus",code:"NC-06",name:"熔金",group:"warm",seed:51.3,speed:.5,colors:d(R)}],M=[{id:"model-training",code:"NC-10",name:"星火",subtitle:"SHA 4.5 + 100 2026 TKN",group:"progress",initialProgress:43,edgeStyle:"flow",colors:["#2B1025","#FF3F94","#FF8A3D","#FFF06A"]},{id:"agent-migration",code:"NC-11",name:"迁流",subtitle:"TRANSFERRING PROTOCOL",group:"progress",initialProgress:33,edgeStyle:"flow",colors:["#101C37","#245BFF","#00CFFF","#5DFFE6"]},{id:"visual-training",code:"NC-12",name:"幻境",subtitle:"GENERATING POWER ++",group:"progress",initialProgress:58,edgeStyle:"flow",colors:["#21142D","#7042FF","#42F58D","#C4FF8A"]},{id:"tide",code:"NC-13",name:"汐潮",subtitle:"MOON PULL / COAST",group:"progress",initialProgress:30,edgeStyle:"tide",colors:["#0A2239","#2E9BFF","#7FE3FF","#EAF9FF"]},{id:"botanic-lab",code:"NC-14",name:"森息",subtitle:"MOSS CULTURE / ROOTING",group:"progress",initialProgress:46,edgeStyle:"flow",colors:["#102A23","#287A58","#9BD65B","#F2FFC4"]}],_=A,T=[].concat(d(A),d(M));function k(e,t){var r="capsule"===e?A:"progress"===e?M:null;if(!r)throw new Error("Unknown preset kind: ".concat(e,' (use "capsule" or "progress")'));for(var n=String(t).trim().toLowerCase(),o=null,i=0;i<r.length;i+=1)if(r[i].name.toLowerCase()===n){o=r[i];break}if(!o)throw new Error("Unknown ".concat(e," preset: ").concat(t));return o}var L={capsule:{width:"100%",height:160,quality:"auto",renderer:"auto",renderScale:1,powerPreference:"high-performance",fps:60,paused:!1,static:!1,respectReducedMotion:!0,mouseColor:!0,textRatio:39},progress:{width:454,height:104,min:0,max:100,step:"any",draggable:!0,keyboard:!0,disabled:!1,readonly:!1,direction:"ltr",precision:0,valueSuffix:"%",edgeStyle:"flow",quality:"auto",renderer:"auto",renderScale:1,powerPreference:"high-performance",fps:60,paused:!1,static:!1,textRatio:54,showValue:!0,respectReducedMotion:!0}},F={brandName:"画境观屿",valueSuffix:"%",progressAria:"{brand} {code} 加载进度",capsuleAria:"打开 {name} 沉浸预览"},D={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function B(e){return Math.min(255,Math.max(0,Math.round(e)))}function N(e){if("string"!=typeof e)return null;var t=e.trim();if(!t)return null;var r=t.toLowerCase();if(D[r])return D[r];if(/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(t)){var n=t.slice(1).toLowerCase();return 3===n.length?"#".concat(n.split("").map(function(e){return e+e}).join("")):"#".concat(n)}var o=t.match(/^rgba?\((.*)\)$/i);return o?function(e){var t=e.split(/[,\s/]+/).filter(Boolean);if(t.length<3)return null;var r=function(e){if("string"!=typeof e||!e)return null;if("%"===e.charAt(e.length-1))return B(parseFloat(e)/100*255);var t=Number(e);return Number.isFinite(t)?B(t):null},n=r(t[0]),o=r(t[1]),i=r(t[2]);if(null===n||null===o||null===i)return null;var a=function(e){var t=e.toString(16);return 1===t.length?"0".concat(t):t};return"#".concat(a(n)).concat(a(o)).concat(a(i))}(o[1]):null}function O(e){var t=N(e);if(!t)return[0,0,0];var r=Number.parseInt(t.slice(1),16);return[(r>>16&255)/255,(r>>8&255)/255,(255&r)/255]}function U(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=N(e);if(!r)return"rgba(0, 0, 0, 0)";var n=Number.parseInt(r.slice(1),16),o=n>>8&255,i=255&n;return"rgba(".concat(n>>16&255,", ").concat(o,", ").concat(i,", ").concat(t,")")}function I(e,t,r){var n=e.createShader(t);if(e.shaderSource(n,r),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS)){var o=e.getShaderInfoLog(n)||"Unknown shader compile error";throw e.deleteShader(n),new Error(o)}return n}function z(e){var t=I(e,e.VERTEX_SHADER,"#version 300 es\nin vec2 a_position;\nout vec2 v_uv;\nvoid main() {\n v_uv = a_position * 0.5 + 0.5;\n gl_Position = vec4(a_position, 0.0, 1.0);\n}"),r=I(e,e.FRAGMENT_SHADER,"#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 outColor;\n\nuniform vec2 u_resolution;\nuniform float u_time;\nuniform float u_seed;\nuniform float u_motion;\nuniform vec2 u_pointer;\nuniform vec3 u_colorA;\nuniform vec3 u_colorB;\nuniform vec3 u_colorC;\nuniform vec3 u_colorD;\n\nfloat hash21(vec2 p) {\n p = fract(p * vec2(123.34, 456.21));\n p += dot(p, p + 45.32 + u_seed);\n return fract(p.x * p.y);\n}\n\nfloat noise(vec2 p) {\n vec2 i = floor(p);\n vec2 f = fract(p);\n f = f * f * (3.0 - 2.0 * f);\n float a = hash21(i);\n float b = hash21(i + vec2(1.0, 0.0));\n float c = hash21(i + vec2(0.0, 1.0));\n float d = hash21(i + vec2(1.0, 1.0));\n return mix(mix(a, b, f.x), mix(c, d, f.x), f.y);\n}\n\nfloat fbm(vec2 p) {\n float value = 0.0;\n float amplitude = 0.52;\n mat2 rotation = mat2(0.80, 0.60, -0.60, 0.80);\n for (int i = 0; i < 6; i++) {\n value += amplitude * noise(p);\n p = rotation * p * 2.03 + 17.7;\n amplitude *= 0.5;\n }\n return value;\n}\n\nfloat gaussian(float value, float center, float width) {\n return exp(-pow(value - center, 2.0) / max(width, 0.0001));\n}\n\nvec3 palette(float t) {\n t = clamp(t, 0.0, 1.0);\n vec3 shadow = mix(u_colorA, u_colorB, smoothstep(0.06, 0.62, t));\n vec3 body = mix(u_colorB, u_colorC, smoothstep(0.30, 0.82, t));\n vec3 highlight = mix(u_colorC, u_colorD, smoothstep(0.74, 1.0, t));\n vec3 restrained = mix(shadow, body, smoothstep(0.26, 0.72, t));\n return mix(restrained, highlight, smoothstep(0.78, 0.97, t));\n}\n\nvec3 renderNebula(vec2 uv, vec2 p, vec2 pointer, float distanceToPointer, float t) {\n vec2 delta = p - pointer;\n float influence = exp(-distanceToPointer * 4.6) * u_motion;\n float angle = influence * 1.7;\n mat2 swirl = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\n p = pointer + swirl * delta;\n p += normalize(delta + 0.0001) * influence * 0.08;\n\n vec2 drift = vec2(t * 0.22, -t * 0.13);\n vec2 q = vec2(\n fbm(p * 1.35 + drift + u_seed),\n fbm(p * 1.35 + vec2(5.2, 1.3) - drift * 0.85)\n );\n vec2 r = vec2(\n fbm(p * 2.0 + 3.6 * q + vec2(1.7, 9.2) + t * 0.10),\n fbm(p * 2.0 + 3.0 * q + vec2(8.3, 2.8) - t * 0.085)\n );\n\n float cloud = fbm(p * 1.7 + 4.2 * r);\n float veins = fbm(p * 4.0 - 2.0 * q + t * 0.065);\n float nebula = smoothstep(0.18, 0.91, cloud * 0.9 + veins * 0.22);\n\n vec3 color = palette(nebula);\n color += u_colorD * pow(max(cloud - 0.63, 0.0), 2.0) * 1.05;\n color *= 0.78 + 0.34 * smoothstep(0.15, 0.9, veins);\n\n vec2 starGrid = floor((uv + vec2(u_seed * 0.013, 0.0)) * vec2(132.0, 58.0));\n vec2 starCell = fract(uv * vec2(132.0, 58.0)) - 0.5;\n float starRandom = hash21(starGrid);\n float starShape = smoothstep(0.075, 0.0, length(starCell));\n float starMask = step(0.989, starRandom) * starShape;\n float twinkle = 0.35 + 0.65 * sin(t * (1.0 + starRandom * 2.4) + starRandom * 40.0) * 0.5 + 0.5;\n color += starMask * twinkle * mix(u_colorC, u_colorD, starRandom) * 1.05;\n\n float pointerGlow = exp(-distanceToPointer * 7.0) * u_motion;\n color += u_colorD * pointerGlow * 0.28;\n return color;\n}\n\nvoid main() {\n vec2 uv = v_uv;\n vec2 p = uv - 0.5;\n p.x *= u_resolution.x / max(u_resolution.y, 1.0);\n\n vec2 pointer = u_pointer - 0.5;\n pointer.x *= u_resolution.x / max(u_resolution.y, 1.0);\n float distanceToPointer = length(p - pointer);\n\n vec3 color = renderNebula(uv, p, pointer, distanceToPointer, u_time);\n float vignette = smoothstep(0.94, 0.18, length((uv - 0.5) * vec2(1.0, 1.35)));\n color *= 0.70 + vignette * 0.42;\n color = pow(max(color, vec3(0.0)), vec3(0.88));\n\n outColor = vec4(color, 1.0);\n}"),n=e.createProgram();if(e.attachShader(n,t),e.attachShader(n,r),e.linkProgram(n),e.deleteShader(t),e.deleteShader(r),!e.getProgramParameter(n,e.LINK_STATUS)){var o=e.getProgramInfoLog(n)||"Unknown program link error";throw e.deleteProgram(n),new Error(o)}return n}var j=new WeakSet,V=function(){return i(function e(t,i){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(n(this,e),o(this,j),this.canvas=t,this.preset=u({},i),this.options=u({dprCap:1.75,mouseColor:!0},a),this.gl=t.getContext("webgl2",{alpha:!1,antialias:!1,depth:!1,powerPreference:this.options.powerPreference||"high-performance",preserveDrawingBuffer:!1}),!this.gl)throw new Error("WebGL2 is not available");this.program=z(this.gl),this.locations=r(j,this,G).call(this),this.pointer=[.72,.45],this.pointerTarget=d(this.pointer),this.motion=0,this.motionTarget=0,this.timeOffset=.73*i.seed,this.colors=i.colors.map(O),this.visible=!0,this.disposed=!1,r(j,this,q).call(this),r(j,this,W).call(this),r(j,this,X).call(this),this.resize()},[{key:"setPreset",value:function(e){this.preset=u({},e),this.colors=e.colors.map(O),this.timeOffset=.73*e.seed}},{key:"setDprCap",value:function(e){this.options.dprCap=e,this.resize()}},{key:"setMouseColor",value:function(e){if(this.options.mouseColor=!1!==e,this.options.mouseColor)return this.onPointerMove||r(j,this,W).call(this),this;if(this.onPointerMove){var t=this.eventTarget;t.removeEventListener("pointermove",this.onPointerMove),t.removeEventListener("pointerdown",this.onPointerMove),t.removeEventListener("pointerleave",this.onPointerLeave),this.onPointerMove=null,this.onPointerLeave=null}return this.motionTarget=0,this}},{key:"randomize",value:function(){this.preset.seed=100*Math.random(),this.timeOffset=40*Math.random()}},{key:"resize",value:function(){var e=Math.min(window.devicePixelRatio||1,this.options.dprCap),t=this.canvas.getBoundingClientRect(),r=Math.max(2,Math.round(t.width*e)),n=Math.max(2,Math.round(t.height*e));this.canvas.width===r&&this.canvas.height===n||(this.canvas.width=r,this.canvas.height=n),this.gl.viewport(0,0,r,n)}},{key:"draw",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.disposed&&this.visible){var r=this.gl;this.pointer[0]+=.08*(this.pointerTarget[0]-this.pointer[0]),this.pointer[1]+=.08*(this.pointerTarget[1]-this.pointer[1]),this.motion+=.07*(this.motionTarget-this.motion),r.useProgram(this.program),r.bindBuffer(r.ARRAY_BUFFER,this.buffer),r.enableVertexAttribArray(this.locations.position),r.vertexAttribPointer(this.locations.position,2,r.FLOAT,!1,0,0),r.uniform2f(this.locations.resolution,this.canvas.width,this.canvas.height),r.uniform1f(this.locations.time,this.timeOffset+(t?0:e*this.preset.speed)),r.uniform1f(this.locations.seed,this.preset.seed),r.uniform1f(this.locations.motion,this.motion),r.uniform2f(this.locations.pointer,this.pointer[0],this.pointer[1]),r.uniform3fv(this.locations.colorA,this.colors[0]),r.uniform3fv(this.locations.colorB,this.colors[1]),r.uniform3fv(this.locations.colorC,this.colors[2]),r.uniform3fv(this.locations.colorD,this.colors[3]),r.drawArrays(r.TRIANGLES,0,3)}}},{key:"dispose",value:function(){this.disposed=!0;var e=this.eventTarget||this.canvas;e.removeEventListener("pointermove",this.onPointerMove),e.removeEventListener("pointerdown",this.onPointerMove),e.removeEventListener("pointerleave",this.onPointerLeave),this.canvas.removeEventListener("webglcontextlost",this.onContextLost,!1),this.canvas.removeEventListener("webglcontextrestored",this.onContextRestored,!1),this.gl.deleteBuffer(this.buffer),this.gl.deleteProgram(this.program);var t=this.gl.getExtension("WEBGL_lose_context");t&&t.loseContext()}}])}();function G(){var e=this,t=this.gl,r=function(r){return t.getUniformLocation(e.program,r)};return{position:t.getAttribLocation(this.program,"a_position"),resolution:r("u_resolution"),time:r("u_time"),seed:r("u_seed"),motion:r("u_motion"),pointer:r("u_pointer"),colorA:r("u_colorA"),colorB:r("u_colorB"),colorC:r("u_colorC"),colorD:r("u_colorD")}}function q(){var e=this.gl,t=new Float32Array([-1,-1,3,-1,-1,3]);this.buffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.buffer),e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)}function W(){var e=this;!1!==this.options.mouseColor&&(this.eventTarget=this.options.eventTarget||this.canvas.parentElement||this.canvas,this.onPointerMove=function(t){var r=e.canvas.getBoundingClientRect();e.pointerTarget[0]=(t.clientX-r.left)/Math.max(r.width,1),e.pointerTarget[1]=1-(t.clientY-r.top)/Math.max(r.height,1),e.motionTarget=1},this.onPointerLeave=function(){e.motionTarget=0},this.eventTarget.addEventListener("pointermove",this.onPointerMove,{passive:!0}),this.eventTarget.addEventListener("pointerdown",this.onPointerMove,{passive:!0}),this.eventTarget.addEventListener("pointerleave",this.onPointerLeave,{passive:!0}))}function X(){var e=this;this.onContextLost=function(t){t.preventDefault(),e.disposed||(e.visible=!1,"function"==typeof e.options.onContextLost&&e.options.onContextLost(t))},this.onContextRestored=function(){e.disposed||(e.program=z(e.gl),e.locations=r(j,e,G).call(e),r(j,e,q).call(e),e.visible=!0,e.resize(),"function"==typeof e.options.onContextRestored&&e.options.onContextRestored())},this.canvas.addEventListener("webglcontextlost",this.onContextLost,!1),this.canvas.addEventListener("webglcontextrestored",this.onContextRestored,!1)}function Y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=c(O(e).map(function(e){return Math.round(255*e)}),3),n=r[0],o=r[1],i=r[2];return"rgba(".concat(n,", ").concat(o,", ").concat(i,", ").concat(t,")")}var H=function(){return i(function e(t,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n(this,e),this.canvas=t,this.preset=r,this.context=t.getContext("2d"),this.visible=!0,this.timePhase=0,this.dprCap=o.dprCap||1.5},[{key:"resize",value:function(){var e=this.canvas.getBoundingClientRect(),t=Math.min(window.devicePixelRatio||1,this.dprCap),r=Math.max(2,Math.round(e.width*t)),n=Math.max(2,Math.round(e.height*t));this.canvas.width===r&&this.canvas.height===n||(this.canvas.width=r,this.canvas.height=n)}},{key:"drawNebula",value:function(e){var t=this.context,r=this.canvas,n=r.width,o=r.height,i=(e+this.timePhase)*(this.preset.speed||1),a=.7*(this.preset.seed||0),s=t.createLinearGradient(0,0,n,o);s.addColorStop(0,this.preset.colors[0]),s.addColorStop(.38,this.preset.colors[1]),s.addColorStop(.72,this.preset.colors[2]),s.addColorStop(1,this.preset.colors[3]),t.fillStyle=s,t.fillRect(0,0,n,o),t.globalCompositeOperation="screen";for(var l=0;l<6;l+=1){var u=(.5+.45*Math.sin(.32*i+1.7*l+a))*n,c=(.5+.4*Math.cos(.25*i+l+a))*o,d=Math.max(n,o)*(.08+l%3*.04),f=t.createRadialGradient(u,c,0,u,c,d);f.addColorStop(0,Y(this.preset.colors[(l+1)%4],.24)),f.addColorStop(1,Y(this.preset.colors[l%4],0)),t.fillStyle=f,t.fillRect(u-d,c-d,2*d,2*d)}t.globalCompositeOperation="source-over"}},{key:"draw",value:function(e){this.visible&&this.drawNebula(e)}},{key:"setPreset",value:function(e){this.preset=e}},{key:"setDprCap",value:function(e){this.dprCap=e,this.resize()}},{key:"randomize",value:function(){this.preset&&(this.preset.seed=100*Math.random(),this.timePhase=Math.random()*Math.PI*2)}},{key:"setMouseColor",value:function(){}},{key:"dispose",value:function(){}}])}(),K=[],$=!1,Q=!1,J=0,Z=0;function ee(e){if($){var t=[];if(!Q){var r,n=a(K.slice());try{for(n.s();!(r=n.n()).done;){var o=r.value;try{o.isPaused()||t.push(o)}catch(e){}}}catch(e){n.e(e)}finally{n.f()}}if(0===t.length)return $=!1,J=0,void(Z=0);var i=Z?Math.min((e-Z)/1e3,.05):0;Z=e,J=requestAnimationFrame(ee);for(var s=0,l=t;s<l.length;s++){var u=l[s];try{u.onFrame(i,e)}catch(e){console.warn("[dlc-ui] frame error:",e)}}0===K.length&&(cancelAnimationFrame(J),$=!1,J=0)}}function te(){$||($=!0,Z=0,J=requestAnimationFrame(ee))}function re(){te()}function ne(e,t){var r={onFrame:e,isPaused:t};return K.push(r),te(),function(){var e=K.indexOf(r);-1!==e&&K.splice(e,1),0===K.length&&J&&(cancelAnimationFrame(J),$=!1,J=0)}}function oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=!0,n="undefined"==typeof document||!document.hidden,o=!1,i=null;"undefined"!=typeof IntersectionObserver&&(i=new IntersectionObserver(function(e){r=e.some(function(e){return e.isIntersecting}),"function"==typeof t&&t()},{rootMargin:"180px"})).observe(e);var a=function(){n="undefined"!=typeof document&&!document.hidden,"function"==typeof t&&t()};return"undefined"!=typeof document&&document.addEventListener("visibilitychange",a),{isVisible:function(){return r&&n},dispose:function(){o||(o=!0,i&&i.disconnect(),"undefined"!=typeof document&&document.removeEventListener("visibilitychange",a))}}}function ie(e){"function"==typeof queueMicrotask?queueMicrotask(e):"undefined"!=typeof Promise&&"function"==typeof Promise.resolve?Promise.resolve().then(e):setTimeout(e,0)}function ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:60,r=Number(e);return Number.isFinite(r)?Math.min(60,Math.max(1,r)):t}function se(){var e=ae(arguments.length>0&&void 0!==arguments[0]?arguments[0]:60),t=0;return{shouldDraw:function(r){var n=1/e;return!((t+=r)+1e-4<n)&&(t%=n,!0)},setFps:function(r){return e=ae(r,e),t=0,e},getFps:function(){return e}}}function le(e,t){var r=e&&"undefined"!=typeof matchMedia?matchMedia("(prefers-reduced-motion: reduce)"):null,n=function(){"function"==typeof t&&t(Boolean(r&&r.matches))};return r&&("function"==typeof r.addEventListener?r.addEventListener("change",n):"function"==typeof r.addListener&&r.addListener(n)),{matches:function(){return Boolean(r&&r.matches)},dispose:function(){r&&("function"==typeof r.removeEventListener?r.removeEventListener("change",n):"function"==typeof r.removeListener&&r.removeListener(n))}}}function ue(e){if(null==e||"boolean"==typeof e)return null;if("string"==typeof e&&""===e.trim())return null;var t=Number(e);return Number.isFinite(t)?t:null}var ce=240,de={"model-training":{seed:.37,broad:.58,middle:.25,detail:.13,lobe:.24},"agent-migration":{seed:1.71,broad:.72,middle:.1,detail:.03,lobe:.18},"visual-training":{seed:2.83,broad:.66,middle:.16,detail:.06,lobe:.23},"botanic-lab":{seed:3.46,broad:.54,middle:.18,detail:.05,lobe:.28},tide:{seed:4.12,broad:.82,middle:.07,detail:.02,lobe:.3,warp:.5}},fe=Object.create(null);function he(e,t,r){var n=(e-t)/Math.max(r,.001);return Math.exp(-n*n)}function pe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"flow",r="".concat(e,":").concat(t);return fe[r]||(fe[r]=function(e){for(var t="tide"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"flow")?de.tide:de[e]||de["visual-training"],r=new Uint8Array(19200),n=0;n<ce;n+=1){var o=n/ce*Math.PI*2;t.warp&&(o+=t.warp*Math.sin(2*o));for(var i=.28+.13*Math.sin(.53*o+t.seed),a=.7+.12*Math.cos(.47*o+1.7*t.seed),s=0;s<80;s+=1){var l=s/Math.max(79,1),u=Math.pow(Math.max(Math.sin(Math.PI*l),0),.48),c=Math.sin(l*Math.PI*2*1.35+.58*o+t.seed)*t.broad,d=Math.sin(l*Math.PI*2*3.2-.91*o+2.1*t.seed)*t.middle,f=Math.sin(l*Math.PI*2*6.1+1.31*o+3.2*t.seed)*t.detail,h=(he(l,i,.09)*Math.sin(1.11*o+4*t.seed)-he(l,a,.1)*Math.cos(.97*o+3.3*t.seed))*t.lobe,p=Math.max(-1,Math.min(1,(c+d+f+h)*u));r[s*ce+n]=Math.round(255*(.5*p+.5))}}return r}(e,t)),fe[r]}function me(e){var t=Number.parseInt(e.replace("#",""),16);return[(t>>16&255)/255,(t>>8&255)/255,(255&t)/255]}var ve={"model-training":0,"agent-migration":1,"visual-training":2,tide:3},ge={"model-training":1.05,"agent-migration":1.04,"visual-training":1.04,tide:1.18};function ye(e,t,r){var n=e.createShader(t);if(e.shaderSource(n,r),e.compileShader(n),!e.getShaderParameter(n,e.COMPILE_STATUS)){var o=e.getShaderInfoLog(n)||"Unknown shader compile error";throw e.deleteShader(n),new Error(o)}return n}var be=function(){return i(function e(t,r){var o,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};n(this,e);var s=t.getContext("webgl2",{alpha:!1,antialias:!0,premultipliedAlpha:!1,powerPreference:i.powerPreference||"high-performance"});if(!s)throw new Error("WebGL2 unavailable");this.canvas=t,this.options=i,this.gl=s,this.profile="tide"===r.edgeStyle?3:null!==(o=ve[r.id])&&void 0!==o?o:2,this.seed=13.7*function(e){var t,r=2166136261,n=a(e);try{for(n.s();!(t=n.n()).done;)r^=t.value.charCodeAt(0),r=Math.imul(r,16777619)}catch(e){n.e(e)}finally{n.f()}return(r>>>0)/4294967295}("".concat(r.id,"-shader"))+1,this.colors=r.colors.map(me),this.motionData=pe(r.id,r.edgeStyle);var l="tide"===r.edgeStyle?ge.tide:ge[r.id]||1.04;this.motionScale=40*l/1257,this.disposed=!1,this.contextLost=!1,this.setupResources(),this.bindContextEvents()},[{key:"setupResources",value:function(){var e=this.gl;this.program=function(e){var t=ye(e,e.VERTEX_SHADER,"#version 300 es\nin vec2 a_position;\nout vec2 v_uv;\nvoid main() {\n v_uv = a_position * 0.5 + 0.5;\n gl_Position = vec4(a_position, 0.0, 1.0);\n}"),r=ye(e,e.FRAGMENT_SHADER,"#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 outColor;\n\nuniform vec2 u_resolution;\nuniform float u_time;\nuniform float u_progress;\nuniform float u_seed;\nuniform float u_profile;\nuniform sampler2D u_motion;\nuniform sampler2D u_effect;\nuniform float u_hasEffect;\nuniform float u_effectFrames;\nuniform float u_motionDuration;\nuniform float u_motionScale;\nuniform vec3 u_dark;\nuniform vec3 u_accentA;\nuniform vec3 u_accentB;\nuniform vec3 u_glow;\n\nfloat hash21(vec2 p) {\n p = fract(p * vec2(123.34, 456.21));\n p += dot(p, p + 45.32 + u_seed * 11.7);\n return fract(p.x * p.y);\n}\n\nfloat noise(vec2 p) {\n vec2 i = floor(p);\n vec2 f = fract(p);\n f = f * f * (3.0 - 2.0 * f);\n float a = hash21(i);\n float b = hash21(i + vec2(1.0, 0.0));\n float c = hash21(i + vec2(0.0, 1.0));\n float d = hash21(i + vec2(1.0, 1.0));\n return mix(mix(a, b, f.x), mix(c, d, f.x), f.y);\n}\n\nfloat fbm(vec2 p) {\n float value = 0.0;\n float amplitude = 0.55;\n mat2 rotation = mat2(0.82, 0.57, -0.57, 0.82);\n for (int i = 0; i < 6; i++) {\n value += noise(p) * amplitude;\n p = rotation * p * 2.02 + 13.7;\n amplitude *= 0.48;\n }\n return value;\n}\n\nfloat gaussian(float value, float center, float width) {\n float delta = (value - center) / max(width, 0.0001);\n return exp(-delta * delta);\n}\n\nfloat profileMix(float model, float agent, float visual) {\n if (u_profile < 0.5) return model;\n if (u_profile < 1.5) return agent;\n return visual;\n}\n\nfloat motionSample(float y, float t) {\n float phase = fract(t / max(u_motionDuration, 0.001));\n float captured = texture(u_motion, vec2(phase, 1.0 - clamp(y, 0.0, 1.0))).r;\n return (captured * 2.0 - 1.0) * u_motionScale;\n}\n\nfloat edgeDisplacement(float y, float t) {\n return motionSample(y, t);\n}\n\nfloat flowDisplacement(float y, float t) {\n return (\n motionSample(y - 0.024, t) * 0.08 +\n motionSample(y - 0.012, t) * 0.18 +\n motionSample(y, t) * 0.48 +\n motionSample(y + 0.012, t) * 0.18 +\n motionSample(y + 0.024, t) * 0.08\n );\n}\n\nfloat ellipseRing(vec2 p, float radius, float width) {\n return gaussian(length(p), radius, width);\n}\n\nvoid main() {\n vec2 uv = v_uv;\n float t = u_time;\n float edge = u_progress + edgeDisplacement(uv.y, t);\n float flowEdge = u_progress + flowDisplacement(uv.y, t);\n float d = uv.x - edge;\n float fd = uv.x - flowEdge;\n\n vec3 rightBase = vec3(0.125, 0.129, 0.145);\n vec3 color = rightBase;\n\n float leftMask = 1.0 - smoothstep(-0.001, 0.002, d);\n color = mix(color, u_dark, leftMask * profileMix(0.96, 0.92, 0.96));\n\n vec2 flowP = vec2((fd + 0.10) * 6.2, uv.y * 1.95);\n float flowA = fbm(flowP + vec2(-t * 0.22, t * 0.27) + u_seed * 1.7);\n float flowB = fbm(flowP * 1.52 + vec2(t * 0.28, -t * 0.36) + 8.2 + u_seed);\n float flowC = fbm(flowP * 2.25 + vec2(-t * 0.41, t * 0.46) + 19.0);\n\n float farCenter = profileMix(-0.060, -0.079, -0.045) + (flowA - 0.5) * profileMix(0.018, 0.022, 0.014);\n float midCenter = profileMix(-0.039, -0.052, -0.030) + (flowB - 0.5) * profileMix(0.013, 0.016, 0.010);\n float hotCenter = profileMix(-0.026, -0.029, -0.023) + (flowC - 0.5) * 0.010;\n\n float farBand = gaussian(fd, farCenter, profileMix(0.035, 0.049, 0.030));\n float midBand = gaussian(fd, midCenter, profileMix(0.026, 0.034, 0.026));\n float hotBand = gaussian(fd, hotCenter, profileMix(0.023, 0.027, 0.026));\n float darkTrough = gaussian(fd, profileMix(-0.050, -0.058, -0.044) + (flowB - 0.5) * 0.010, profileMix(0.020, 0.025, 0.021));\n\n float ringY = 0.47 + sin(t * 0.58 + u_seed * 2.4) * 0.12;\n vec2 ringP = vec2((fd + 0.086) / 0.078, (uv.y - ringY) / 0.25);\n ringP += vec2((flowB - 0.5) * 0.08, (flowA - 0.5) * 0.06);\n float ringTexture = fbm(ringP * 2.15 + vec2(t * 0.18, -t * 0.14) + u_seed * 1.9);\n float ring = ellipseRing(ringP, 0.66, 0.32) * (0.30 + 0.64 * ringTexture);\n float ringCore = gaussian(length(ringP), 0.25, 0.25);\n float ringPulse = smoothstep(0.58, 0.90, 0.5 + 0.5 * sin(t * 0.82 + u_seed * 4.1));\n float modelRing = ring * ringPulse * (1.0 - step(0.5, u_profile));\n float visualRing = ring * 0.16 * step(1.5, u_profile) * ringPulse;\n\n float cloudGate = leftMask * smoothstep(-0.30, -0.008, fd);\n float textureA = smoothstep(0.24, 0.92, flowA * 0.72 + flowB * 0.42);\n float textureB = smoothstep(0.28, 0.94, flowB * 0.68 + flowC * 0.38);\n\n vec3 hotColor = u_accentB;\n color += u_accentA * farBand * cloudGate * (0.07 + textureA * profileMix(0.42, 0.24, 0.40));\n color += u_accentB * midBand * cloudGate * (0.15 + textureB * profileMix(0.70, 0.46, 0.68));\n color += hotColor * hotBand * cloudGate * profileMix(0.88, 0.62, 0.84);\n float modelMask = 1.0 - step(0.5, u_profile);\n color += u_accentA * (modelRing + visualRing) * cloudGate * profileMix(0.54, 0.0, 0.34);\n color *= 1.0 - darkTrough * profileMix(0.44, 0.24, 0.24) * cloudGate;\n color *= 1.0 - ringCore * modelMask * ringPulse * 0.44 * cloudGate;\n\n float broadHalo = exp(-abs(d) * 96.0);\n float innerHalo = exp(-abs(d) * 176.0);\n float colorCore = exp(-abs(d) * 360.0);\n float sharpCore = exp(-abs(d) * 760.0);\n float leftGate = 1.0 - smoothstep(-0.003, 0.005, d);\n\n color += u_accentA * broadHalo * leftGate * profileMix(0.09, 0.04, 0.06);\n color += hotColor * innerHalo * leftGate * profileMix(0.76, 0.72, 0.78);\n color += u_glow * colorCore * profileMix(0.72, 0.34, 0.24);\n\n float whiteStrength = profileMix(0.10, 0.0, 0.0);\n color += vec3(1.0, 0.99, 0.91) * sharpCore * whiteStrength;\n\n float rightCut = smoothstep(0.001, 0.006, d);\n color = mix(color, rightBase, rightCut);\n\n float effectX = (d * 1257.0 + 260.0) / 320.0;\n float atlasPhase = fract(t / 12.0) * u_effectFrames;\n float atlasFrameA = floor(atlasPhase);\n float atlasFrameB = mod(atlasFrameA + 1.0, u_effectFrames);\n float atlasMix = smoothstep(0.0, 1.0, fract(atlasPhase));\n float atlasXA = (atlasFrameA + clamp(effectX, 0.0, 1.0)) / u_effectFrames;\n float atlasXB = (atlasFrameB + clamp(effectX, 0.0, 1.0)) / u_effectFrames;\n vec3 referenceA = texture(u_effect, vec2(atlasXA, uv.y)).rgb;\n vec3 referenceB = texture(u_effect, vec2(atlasXB, uv.y)).rgb;\n vec3 referenceColor = mix(referenceA, referenceB, atlasMix);\n float stripMask = smoothstep(0.0, 0.018, effectX) * (1.0 - smoothstep(0.982, 1.0, effectX));\n float referenceLeft = 1.0 - smoothstep(-0.026, -0.012, d);\n // 参考图集只提供亮度结构,颜色始终由用户 colors(u_dark / u_accentA /\n // u_accentB / u_glow)决定:这样 setColors / colors 属性在 WebGL 路径下\n // 真实生效,改色有可见反馈,而不是被图集整体覆盖。\n float referenceLuma = dot(referenceColor, vec3(0.299, 0.587, 0.114));\n vec3 tintedColor = color * (0.42 + 0.86 * referenceLuma);\n color = mix(color, tintedColor, stripMask * referenceLeft * u_hasEffect);\n\n outColor = vec4(clamp(color, 0.0, 1.0), 1.0);\n}"),n=e.createProgram();if(e.attachShader(n,t),e.attachShader(n,r),e.linkProgram(n),e.deleteShader(t),e.deleteShader(r),!e.getProgramParameter(n,e.LINK_STATUS)){var o=e.getProgramInfoLog(n)||"Unknown shader link error";throw e.deleteProgram(n),new Error(o)}return n}(e),this.position=e.getAttribLocation(this.program,"a_position"),this.uniforms={resolution:e.getUniformLocation(this.program,"u_resolution"),time:e.getUniformLocation(this.program,"u_time"),progress:e.getUniformLocation(this.program,"u_progress"),seed:e.getUniformLocation(this.program,"u_seed"),profile:e.getUniformLocation(this.program,"u_profile"),motion:e.getUniformLocation(this.program,"u_motion"),effect:e.getUniformLocation(this.program,"u_effect"),hasEffect:e.getUniformLocation(this.program,"u_hasEffect"),effectFrames:e.getUniformLocation(this.program,"u_effectFrames"),motionDuration:e.getUniformLocation(this.program,"u_motionDuration"),motionScale:e.getUniformLocation(this.program,"u_motionScale"),dark:e.getUniformLocation(this.program,"u_dark"),accentA:e.getUniformLocation(this.program,"u_accentA"),accentB:e.getUniformLocation(this.program,"u_accentB"),glow:e.getUniformLocation(this.program,"u_glow")},this.buffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.buffer),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),e.STATIC_DRAW),this.motionTexture=e.createTexture(),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.motionTexture),e.pixelStorei(e.UNPACK_ALIGNMENT,1),e.texImage2D(e.TEXTURE_2D,0,e.R8,ce,80,0,e.RED,e.UNSIGNED_BYTE,this.motionData),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.effectTexture=e.createTexture(),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,this.effectTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGB,1,1,0,e.RGB,e.UNSIGNED_BYTE,new Uint8Array([32,33,38])),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.effectUploaded=!1}},{key:"bindContextEvents",value:function(){var e=this;this.onContextLost=function(t){t.preventDefault(),e.disposed||(e.contextLost=!0,"function"==typeof e.options.onContextLost&&e.options.onContextLost(t))},this.onContextRestored=function(){e.disposed||(e.setupResources(),e.contextLost=!1,e.gl.viewport(0,0,e.canvas.width,e.canvas.height),"function"==typeof e.options.onContextRestored&&e.options.onContextRestored())},this.canvas.addEventListener("webglcontextlost",this.onContextLost,!1),this.canvas.addEventListener("webglcontextrestored",this.onContextRestored,!1)}},{key:"resize",value:function(e,t,r){var n=Math.max(1,Math.round(e*r)),o=Math.max(1,Math.round(t*r));this.canvas.width===n&&this.canvas.height===o||(this.canvas.width=n,this.canvas.height=o),this.gl.viewport(0,0,n,o)}},{key:"draw",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!this.disposed&&!this.contextLost){var n=this.gl;n.useProgram(this.program),n.bindBuffer(n.ARRAY_BUFFER,this.buffer),n.enableVertexAttribArray(this.position),n.vertexAttribPointer(this.position,2,n.FLOAT,!1,0,0),n.uniform2f(this.uniforms.resolution,this.canvas.width,this.canvas.height),n.uniform1f(this.uniforms.time,e),n.uniform1f(this.uniforms.progress,t/100),n.uniform1f(this.uniforms.seed,this.seed),n.uniform1f(this.uniforms.profile,this.profile),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,this.motionTexture),n.uniform1i(this.uniforms.motion,0),n.uniform1f(this.uniforms.motionDuration,12),n.uniform1f(this.uniforms.motionScale,this.motionScale);var o=this.effectUploaded?1:0,i=r&&(r.naturalWidth||r.width||0);if(!this.effectUploaded&&r&&i>0){n.activeTexture(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this.effectTexture),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!0);try{n.texImage2D(n.TEXTURE_2D,0,n.RGB,n.RGB,n.UNSIGNED_BYTE,r),this.effectUploaded=!0,o=1}catch(e){console.warn("[画境观屿] 参考纹理图集上传失败,继续使用程序化降级。",e)}n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1)}n.activeTexture(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this.effectTexture),n.uniform1i(this.uniforms.effect,1),n.uniform1f(this.uniforms.hasEffect,o),n.uniform1f(this.uniforms.effectFrames,24),n.uniform3fv(this.uniforms.dark,this.colors[0]),n.uniform3fv(this.uniforms.accentA,this.colors[1]),n.uniform3fv(this.uniforms.accentB,this.colors[2]),n.uniform3fv(this.uniforms.glow,this.colors[3]),n.drawArrays(n.TRIANGLES,0,6)}}},{key:"setColors",value:function(e){this.colors=e.map(me)}},{key:"dispose",value:function(){this.disposed=!0;var e=this.gl;this.canvas.removeEventListener("webglcontextlost",this.onContextLost,!1),this.canvas.removeEventListener("webglcontextrestored",this.onContextRestored,!1),e.deleteBuffer(this.buffer),e.deleteTexture(this.motionTexture),e.deleteTexture(this.effectTexture),e.deleteProgram(this.program);var t=e.getExtension("WEBGL_lose_context");t&&t.loseContext()}}])}();var we=Object.create(null),xe={"model-training":["#20131f","#ff3f94","#ff8a3d","#fff06a"],"agent-migration":["#111a31","#245bff","#00cfff","#5dffe6"],"visual-training":["#1f172b","#7042ff","#42f58d","#c4ff8a"],tide:["#0a2239","#2e9bff","#7fe3ff","#eaf9ff"],"botanic-lab":["#102a23","#287a58","#9bd65b","#f2ffc4"]};function Ce(e,t,r,n,o,i,a){e.save(),e.translate(t,r),e.scale(1,o/n);var s=e.createRadialGradient(0,0,0,0,0,n),l=function(e){var t=Math.round(e).toString(16);return 1===t.length?"0".concat(t):t};s.addColorStop(0,"".concat(i).concat(l(255*a))),s.addColorStop(.46,"".concat(i).concat(l(.42*a*255))),s.addColorStop(1,"".concat(i,"00")),e.fillStyle=s,e.fillRect(-n,-n,2*n,2*n),e.restore()}function Se(e){return we[e]||(we[e]=function(e){var t=xe[e]||xe["visual-training"],r=document.createElement("canvas");r.width=1536,r.height=32;for(var n=r.getContext("2d"),o=0;o<24;o+=1){var i=o/24*Math.PI*2,a=64*o;n.save(),n.translate(a,0),n.fillStyle=t[0],n.fillRect(0,0,64,32),n.globalCompositeOperation="screen",Ce(n,35+5*Math.sin(.83*i),10+5*Math.cos(.61*i),27,18,t[1],"agent-migration"===e?.32:.42),Ce(n,45+4*Math.cos(.72*i),23+4*Math.sin(.54*i),22,15,t[2],.44),Ce(n,53+2*Math.sin(1.07*i),16+6*Math.cos(.89*i),12,13,t[3],"model-training"===e?.3:.2),n.globalCompositeOperation="source-over";var s=n.createRadialGradient(41,16,1,41,16,17);s.addColorStop(0,"rgba(5,6,11,0.64)"),s.addColorStop(.58,"rgba(6,7,12,0.26)"),s.addColorStop(1,"rgba(6,7,12,0)"),n.fillStyle=s,n.fillRect(20,0,44,32),n.restore()}return{image:r,ready:!0}}(e)),we[e]}function Ee(e){var t=e.root,r=e.canvas,n=e.preset,o=e.getProgress,i=e.dprCap,a=void 0===i?2:i,s=e.powerPreference,l=void 0===s?"high-performance":s,u=e.onContextLost,c=e.onContextRestored,d=document.createElement("canvas");d.className="hj-progress-canvas hj-progress-overlay",d.setAttribute("aria-hidden","true"),r.insertAdjacentElement("afterend",d);var f=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};try{return new be(e,t,r)}catch(e){return console.warn("[画境观屿] 进度流体 WebGL2 不可用,使用 Canvas 2D 降级。",e),null}}(d,n,{powerPreference:l,onContextLost:u,onContextRestored:c});if(!f)return d.remove(),null;var h=Se(n.id);t.classList.add("has-webgl-progress");var p=function(){var e=t.getBoundingClientRect(),r=Math.max(1,e.width),n=Math.max(1,e.height),o=Math.min(window.devicePixelRatio||1,a);d.style.width="".concat(r,"px"),d.style.height="".concat(n,"px"),f.resize(r,n,o)},m=null,v=null;return"undefined"!=typeof ResizeObserver?(m=new ResizeObserver(p)).observe(t):(v=p,window.addEventListener("resize",v)),p(),{update:function(e){var t=e%12,r=o();f.draw(t,Number.isFinite(r)?r:n.initialProgress,h.ready?h.image:null)},setColors:function(e){f.setColors(e)},setDprCap:function(e){a=e,p()},dispose:function(){m&&m.disconnect(),v&&window.removeEventListener("resize",v),f.dispose(),d.remove(),t.classList.remove("has-webgl-progress")}}}function Pe(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100,o=ue(e),i=ue(t);if(null===o&&(o=r),null===i&&(i=n),o>i){var a=o;o=i,i=a}return[o,i]}function Re(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"any";if("any"===e||null==e)return"any";var r=ue(e);return null!==r&&r>0?r:t}function Ae(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"any",o=function(e,t,r){var n=ue(e);return null===n?null:Math.min(Math.max(n,t),r)}(e,t,r);if(null===o)return null;if("any"===n||null==n)return o;var i=Re(n);if("any"===i)return o;var a=t+Math.round((o-t)/i)*i;return Math.min(Math.max(Number(a.toFixed(12)),t),r)}function Me(e,t,r){var n=r-t;return!Number.isFinite(n)||n<=0?0:Math.min(Math.max((e-t)/n,0),1)}var _e=function(e,t,r){return Math.min(Math.max(e,t),r)},Te="undefined"!=typeof CanvasRenderingContext2D&&"filter"in CanvasRenderingContext2D.prototype;function ke(e){var t,r=2166136261,n=a(e);try{for(n.s();!(t=n.n()).done;){r^=t.value.charCodeAt(0),r=Math.imul(r,16777619)}}catch(e){n.e(e)}finally{n.f()}return(r>>>0)/4294967295}var Le={"model-training":{cycles:[.98,3.05,5.45],amplitudes:[11.2,11,5.2],speeds:[.31,-.53,.78],bulgeAmplitude:8.2,timeScale:1,glowWidth:5.8,haloWidth:20,whiteAlpha:.72,whiteWidth:1.15,cloudWidth:.17,autoRange:[25,66]},"agent-migration":{cycles:[.62,1.55,2.95],amplitudes:[16,7.8,2.3],speeds:[.25,-.4,.6],bulgeAmplitude:8.4,timeScale:.82,glowWidth:6.3,haloWidth:21,whiteAlpha:.18,whiteWidth:.45,cloudWidth:.18,autoRange:[24,62]},"visual-training":{cycles:[.88,2.45,4.35],amplitudes:[12.8,10.2,4.3],speeds:[.28,-.47,.69],bulgeAmplitude:7.3,timeScale:.91,glowWidth:6,haloWidth:21,whiteAlpha:.3,whiteWidth:.55,cloudWidth:.175,autoRange:[20,75]},tide:{cycles:[.72,1.9,4.2],amplitudes:[19,6.5,1.5],speeds:[.42,-.5,.66],bulgeAmplitude:9.5,timeScale:.85,glowWidth:6.2,haloWidth:21,whiteAlpha:.5,whiteWidth:1,cloudWidth:.18,autoRange:[18,70],surge:.55}},Fe=function(){return i(function e(t){var r,o,i=this,a=t.root,s=t.canvas,l=t.valueElement,u=t.preset,d=t.emitter,f=t.options,h=t.copy,p=t.dirty;n(this,e),this.root=a,this.canvas=s,this.valueElement=l,this.preset=u,this.emitter=d,this.options=f,this.copy=h,this.dirty=p,this.valueSuffix=null!==(r=f.valueSuffix)&&void 0!==r?r:h.valueSuffix,this.profile="tide"===u.edgeStyle?Le.tide:Le[u.id]||Le["visual-training"];var m=c(Pe(f.min,f.max),2);this.min=m[0],this.max=m[1],this.step=Re(f.step),this.precision=Number.isInteger(Number(f.precision))?_e(Number(f.precision),0,20):0,this.formatValue="function"==typeof f.formatValue?f.formatValue:null,this.direction="rtl"===f.direction?"rtl":"ltr",this.dprCap=w(f.quality,f.renderScale),this.ctx=s.getContext("2d"),this.value=Ae(null!==(o=f.value)&&void 0!==o?o:u.initialProgress,this.min,this.max,this.step),null===this.value&&(this.value=_e(u.initialProgress,this.min,this.max)),this.dragging=!1,this.webglActive=!1,this.flowTime=31*ke(u.id),this.seed=ke("".concat(u.id,"-reference"))*Math.PI*2,this.randomState=Math.floor(2147483647*ke("".concat(u.id,"-auto")))||1,this.dpr=1,this.width=0,this.height=0,this.handlers={},this.onResize=function(){i.resizeCanvas(),"function"==typeof i.options.onResize&&i.options.onResize()},this.resizeObserver="undefined"!=typeof ResizeObserver?new ResizeObserver(this.onResize):null,this.resizeObserver?this.resizeObserver.observe(this.root):window.addEventListener("resize",this.onResize),this.suppressEvents=!0,this.setProgress(this.value,"init"),this.suppressEvents=!1,this.bindEvents(),this.resizeCanvas()},[{key:"random",value:function(){return this.randomState=Math.imul(this.randomState,1664525)+1013904223>>>0,this.randomState/4294967296}},{key:"displayText",value:function(){if(this.formatValue)return String(this.formatValue(this.value,{min:this.min,max:this.max,suffix:this.valueSuffix}));var e=this.precision>0?this.value.toFixed(this.precision):String(Math.round(this.value));return"".concat(e).concat(this.valueSuffix)}},{key:"syncValueDom",value:function(){var e=this.displayText();this.root.style.setProperty("--progress",this.value.toFixed(2)),this.root.style.setProperty("--progress-ratio",Me(this.value,this.min,this.max).toFixed(4)),this.root.setAttribute("aria-valuenow",String(this.value)),this.root.setAttribute("aria-valuetext",e),this.valueElement&&(this.valueElement.textContent=e)}},{key:"setProgress",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"auto",r=Ae(e,this.min,this.max,this.step);return null!==r&&(this.value=r,this.syncValueDom(),this.suppressEvents||(this.dirty&&(this.dirty.value=!0),this.emitter.emit("change",{value:this.value,source:t})),!0)}},{key:"setValueSuffix",value:function(e){return this.dirty&&(this.dirty.valueSuffix=!0),this.valueSuffix=String(null==e?"":e),this.syncValueDom(),this}},{key:"setStep",value:function(e){var t=Re(e,this.step);if(t===this.step)return this;this.dirty&&(this.dirty.step=!0),this.step=t;var r=Ae(this.value,this.min,this.max,this.step);return null!==r&&r!==this.value&&this.setProgress(r,"prop"),this}},{key:"setPrecision",value:function(e){var t=Number(e);return!Number.isInteger(t)||t<0||t>20||(this.dirty&&(this.dirty.precision=!0),this.precision=t,this.syncValueDom()),this}},{key:"setFormatValue",value:function(e){return null!=e&&"function"!=typeof e||(this.dirty&&(this.dirty.formatValue=!0),this.formatValue=e||null,this.syncValueDom()),this}},{key:"setDirection",value:function(e){return this.dirty&&(this.dirty.direction=!0),this.direction="rtl"===e?"rtl":"ltr",this.root.dataset.direction=this.direction,this}},{key:"setShowValue",value:function(e){return this.dirty&&(this.dirty.showValue=!0),this.valueElement&&(this.valueElement.hidden=!1===e),this}},{key:"resizeCanvas",value:function(){var e=this.root.getBoundingClientRect();this.dpr=Math.min(window.devicePixelRatio||1,this.dprCap),this.width=Math.max(1,e.width),this.height=Math.max(1,e.height),this.canvas.width=Math.round(this.width*this.dpr),this.canvas.height=Math.round(this.height*this.dpr),this.canvas.style.width="".concat(this.width,"px"),this.canvas.style.height="".concat(this.height,"px"),this.ctx.setTransform(this.dpr,0,0,this.dpr,0,0)}},{key:"edgeEnvelope",value:function(e){var t=Math.sin(Math.PI*_e(e,0,1));return Math.pow(Math.max(t,0),.48)}},{key:"localBulge",value:function(e,t,r){var n=0===r?1:-1,o=.28+.4*r+.13*Math.sin(t*(.19+.035*r)+this.seed*(1.1+r)),i=.075+.016*r+.012*Math.sin(.13*t+2.1*this.seed),a=(e-o)/Math.max(i,.035);return Math.exp(-.5*a*a)*Math.sin(t*(.71+.09*r)+this.seed*(2.7+r))*this.profile.bulgeAmplitude*n}},{key:"edgeOffset",value:function(e,t){for(var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,o=this.height>0?e/this.height:0,i=this.edgeEnvelope(o),a=t*this.profile.timeScale,s=this.profile.surge?a+this.profile.surge*Math.sin(2*a):a,l=0,u=0;u<this.profile.cycles.length;u+=1){var c=this.profile.cycles[u],d=this.profile.amplitudes[u],f=this.profile.speeds[u],h=.74+.26*Math.sin(s*(.17+.045*u)+this.seed*(u+2.4));l+=Math.sin(o*Math.PI*2*c+s*f*Math.PI*2+this.seed*(u+1)+r)*d*h}return l+=this.localBulge(o,s+r,0),(l+=this.localBulge(o,s-.7*r,1))*i*n}},{key:"createEdgePath",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,i=Math.max(1.8,this.height/92);e.beginPath();for(var a=0;a<=this.height+i;a+=i){var s=t+this.edgeOffset(a,r,n,o);0===a?e.moveTo(s,a):e.lineTo(s,a)}}},{key:"createFillPath",value:function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,i=Math.max(1.8,this.height/92);e.beginPath(),e.moveTo(0,0),e.lineTo(t+this.edgeOffset(0,r,n,o),0);for(var a=i;a<=this.height+i;a+=i)e.lineTo(t+this.edgeOffset(a,r,n,o),a);e.lineTo(0,this.height),e.closePath()}},{key:"drawEllipticalGlow",value:function(e,t,r,n,o,i){var a=this.ctx;a.save(),a.translate(e,t),a.scale(1,n/r);var s=a.createRadialGradient(0,0,0,0,0,r);s.addColorStop(0,U(o,i)),s.addColorStop(.42,U(o,.48*i)),s.addColorStop(1,U(o,0)),a.globalCompositeOperation="screen",a.fillStyle=s,a.fillRect(-r,-r,2*r,2*r),a.restore()}},{key:"drawDarkEllipticalShadow",value:function(e,t,r,n,o){var i=this.ctx;i.save(),i.translate(e,t),i.scale(1,n/r);var a=i.createRadialGradient(0,0,0,0,0,r);a.addColorStop(0,"rgba(6, 6, 11, ".concat(o,")")),a.addColorStop(.54,"rgba(8, 8, 14, ".concat(.62*o,")")),a.addColorStop(1,"rgba(8, 8, 14, 0)"),i.globalCompositeOperation="source-over",i.fillStyle=a,i.fillRect(-r,-r,2*r,2*r),i.restore()}},{key:"drawColorClouds",value:function(e,t,r,n,o){this.ctx;var i=this.width,a=this.height,s=this.profile.cloudWidth,l=t*this.profile.timeScale,u=a*(.28+.13*Math.sin(.24*l+this.seed)),c=a*(.7+.12*Math.cos(.21*l+1.7*this.seed)),d=a*(.49+.15*Math.sin(.31*l+2.3*this.seed)),f=e-.095*i,h=Math.max(52,i*s),p=.42*a;this.drawEllipticalGlow(f,u,h,p,r,.38),this.drawDarkEllipticalShadow(f+.16*h,u,.58*h,.66*p,.74);var m=e-.072*i,v=Math.max(44,i*s*.82),g=.36*a;this.drawEllipticalGlow(m,c,v,g,n,.31),this.drawDarkEllipticalShadow(m+.14*v,c,.54*v,.62*g,.64),this.drawEllipticalGlow(e-.034*i,d,Math.max(30,i*s*.48),.27*a,o,.2)}},{key:"drawPathBand",value:function(e){var t=e.baseX,r=e.time,n=e.phase,o=e.amplitudeScale,i=e.color,a=e.alpha,s=e.blur,l=e.width,u=e.composite,c=void 0===u?"screen":u,d=this.ctx;this.createEdgePath(d,t,r,n,o),d.save(),d.globalCompositeOperation=c,d.globalAlpha=a,Te&&(d.filter="blur(".concat(s,"px)")),d.strokeStyle=i,d.lineWidth=l,d.stroke(),d.restore()}},{key:"setRange",value:function(e,t){var r=Pe(e,t,this.min,this.max);this.min=r[0],this.max=r[1],this.root.setAttribute("aria-valuemin",String(this.min)),this.root.setAttribute("aria-valuemax",String(this.max));var n=Ae(this.value,this.min,this.max,this.step);return n!==this.value?this.setProgress(n,"prop"):this.syncValueDom(),this}},{key:"drawReferenceFlow",value:function(){var e=this.ctx,t=this.width,r=this.height;if(!(!e||t<=0||r<=0)){var n=Math.max(this.max-this.min,1),o=t*Math.min(Math.max((this.value-this.min)/n,0),1),i=this.flowTime,a=c(this.preset.colors,4),s=a[0],l=a[1],u=a[2],d=a[3];e.clearRect(0,0,t,r),e.fillStyle="#202126",e.fillRect(0,0,t,r),this.createFillPath(e,o,i,0,1);var f=e.createLinearGradient(0,0,Math.max(o,1),0);f.addColorStop(0,s),f.addColorStop(.74,s),f.addColorStop(.89,U(s,.99)),f.addColorStop(.955,U(l,.09)),f.addColorStop(.992,U(u,.54)),f.addColorStop(1,U(d,.78)),e.fillStyle=f,e.fill(),this.drawColorClouds(o,i,l,u,d),this.drawPathBand({baseX:o-.105*t,time:i,phase:1.42,amplitudeScale:1.18,color:l,alpha:.22,blur:21,width:54}),this.drawPathBand({baseX:o-.073*t,time:i,phase:-.92,amplitudeScale:1.06,color:u,alpha:.3,blur:15,width:42}),this.drawPathBand({baseX:o-.047*t,time:i,phase:.42,amplitudeScale:.94,color:"rgba(5, 5, 10, 0.92)",alpha:.72,blur:12,width:34,composite:"source-over"}),this.drawPathBand({baseX:o-.025*t,time:i,phase:-.28,amplitudeScale:.96,color:u,alpha:.66,blur:8,width:28}),e.save(),this.createFillPath(e,o,i,0,1),e.clip(),this.createEdgePath(e,o,i,0,1),e.save(),e.globalCompositeOperation="screen",e.strokeStyle=U(l,.2),e.lineWidth=this.profile.haloWidth,e.shadowColor=l,e.shadowBlur=.72*this.profile.haloWidth,e.stroke(),e.restore(),e.save(),e.globalCompositeOperation="screen",e.strokeStyle=U(u,.78),e.lineWidth=this.profile.glowWidth+4.2,e.shadowColor=u,e.shadowBlur=8,e.stroke(),e.restore(),e.save(),e.globalCompositeOperation="screen",e.strokeStyle=U(d,.88),e.lineWidth=this.profile.glowWidth,e.shadowColor=d,e.shadowBlur=5,e.stroke(),e.restore(),e.restore(),e.save(),e.globalCompositeOperation="screen",e.strokeStyle=U(d,.84),e.lineWidth=2.15,e.shadowColor=d,e.shadowBlur=2.5,this.createEdgePath(e,o,i,0,1),e.stroke(),e.restore(),this.profile.whiteAlpha>.05&&(e.save(),e.globalCompositeOperation="screen",e.strokeStyle="rgba(255,255,245,".concat(this.profile.whiteAlpha,")"),e.lineWidth=this.profile.whiteWidth,this.createEdgePath(e,o,i,0,1),e.stroke(),e.restore())}}},{key:"updateFromPointer",value:function(e){var t=this.root.getBoundingClientRect(),r=t.width>0?(e.clientX-t.left)/t.width:0;"rtl"===this.direction&&(r=1-r),this.setProgress(this.min+r*(this.max-this.min),"drag")}},{key:"onKeyDown",value:function(e){var t=this.max-this.min,r=Number(this.step),n=Number.isFinite(r)&&r>0?r:Math.max(t/100,1e-7),o="rtl"===this.direction?-1:1,i={Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown"}[e.key]||e.key||{35:"End",36:"Home",33:"PageUp",34:"PageDown",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown"}[e.keyCode],a=null;"ArrowRight"===i?a=this.value+n*o:"ArrowLeft"===i?a=this.value-n*o:"ArrowUp"===i?a=this.value+n:"ArrowDown"===i?a=this.value-n:"PageUp"===i?a=this.value+10*n:"PageDown"===i?a=this.value-10*n:"Home"===i?a=this.min:"End"===i&&(a=this.max),null!==a&&(e.preventDefault(),this.setProgress(a,"keyboard"))}},{key:"beginDrag",value:function(e){if(void 0===e.button||0===e.button){e.preventDefault();try{this.root.focus({preventScroll:!0})}catch(e){this.root.focus()}this.dragging=!0,this.pendingPointer=null,this._dragRaf=0,this.root.classList.add("is-dragging");try{var t,r;null===(t=(r=this.root).setPointerCapture)||void 0===t||t.call(r,e.pointerId)}catch(e){}this.emitter.emit("dragstart",{value:this.value}),this.updateFromPointer(e)}}},{key:"moveDrag",value:function(e){var t=this;this.dragging&&(e.preventDefault(),this.pendingPointer=e,this._dragRaf||(this._dragRaf=requestAnimationFrame(function(){t._dragRaf=0;var e=t.pendingPointer;t.pendingPointer=null,e&&t.updateFromPointer(e)})))}},{key:"endDrag",value:function(e){if(this.dragging){this.dragging=!1,this._dragRaf&&(cancelAnimationFrame(this._dragRaf),this._dragRaf=0);var t=this.pendingPointer;this.pendingPointer=null,t&&this.updateFromPointer(t),this.root.classList.remove("is-dragging");try{var r,n;void 0!==(null==e?void 0:e.pointerId)&&null!==(r=(n=this.root).hasPointerCapture)&&void 0!==r&&r.call(n,e.pointerId)&&this.root.releasePointerCapture(e.pointerId)}catch(e){}this.emitter.emit("dragend",{value:this.value})}}},{key:"bindEvents",value:function(){var e=this;!1!==this.options.draggable&&(this.handlers.pointerdown=function(t){return e.beginDrag(t)},this.handlers.pointermove=function(t){return e.moveDrag(t)},this.handlers.pointerup=function(t){return e.endDrag(t)},this.handlers.pointercancel=function(t){return e.endDrag(t)},this.root.addEventListener("pointerdown",this.handlers.pointerdown),this.root.addEventListener("pointermove",this.handlers.pointermove),this.root.addEventListener("pointerup",this.handlers.pointerup),this.root.addEventListener("pointercancel",this.handlers.pointercancel)),!1!==this.options.keyboard&&(this.handlers.keydown=function(t){return e.onKeyDown(t)},this.root.addEventListener("keydown",this.handlers.keydown))}},{key:"update",value:function(e,t){t||(this.flowTime+=e)}},{key:"draw",value:function(){this.webglActive||this.drawReferenceFlow()}},{key:"randomize",value:function(){return this.flowTime=40*this.random(),this.flowTime}},{key:"setColors",value:function(e){Array.isArray(e)&&4===e.length&&(this.preset.colors=d(e))}},{key:"dispose",value:function(){this._dragRaf&&cancelAnimationFrame(this._dragRaf),this.resizeObserver?this.resizeObserver.disconnect():window.removeEventListener("resize",this.onResize);for(var e=0,t=Object.keys(this.handlers);e<t.length;e++){var r=t[e],n=this.handlers[r];this.root.removeEventListener(r,n)}this.handlers={}}}])}();var De=new WeakMap;e.ALL_PRESETS=T,e.COPY=F,e.CosmicRenderer=V,e.DEFAULTS=L,e.FallbackRenderer=H,e.PRESETS=_,e.PROGRESS_PRESETS=M,e.ProgressCapsuleController=Fe,e.ProgressFlowRenderer=be,e.QUALITY_TIERS=y,e.createCapsule=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"function"!=typeof e.appendChild)throw new Error("createCapsule: container element is required");var n=u({},k("capsule",null!==(t=r.preset)&&void 0!==t?t:"初光")),o=x(L.capsule,n,r),i=Array.isArray(o.colors)?o.colors.map(N):[];4===i.length&&i.every(Boolean)&&(n.colors=i);var s=ue(o.seed),l=ue(o.speed);null!==s&&(n.seed=s),null!==l&&(n.speed=l),o.colors=d(n.colors),o.seed=n.seed,o.speed=n.speed;var c=Array.isArray(r.colors)?r.colors.map(N):[],f=4===c.length&&c.every(Boolean)?d(c):null,p=void 0!==r.seed?ue(r.seed):null,v=void 0!==r.speed?ue(r.speed):null,y="string"==typeof r.label&&r.label?r.label:null,b=document.createElement("div");b.className="hj-capsule-root hj-capsule-cosmic",b.dataset.group=n.group,b.dataset.mode="nebula",b.dataset.theme=n.theme||"light",b.setAttribute("role","img");var C=function(){b.setAttribute("aria-label",y||F.capsuleAria.replace("{name}",n.name))};C();var S=function(e,t){if(e.innerHTML="",null!=t)if("string"!=typeof t){var r,n=a(Array.isArray(t)?t:[t]);try{for(n.s();!(r=n.n()).done;){var o=r.value;o&&"number"==typeof o.nodeType&&e.appendChild(o)}}catch(e){n.e(e)}finally{n.f()}}else e.innerHTML=t},E=document.createElement("div");E.className="hj-capsule-text hj-capsule-copy";var P=document.createElement("div");P.className="hj-capsule-visual",S(E,r.text),S(P,r.colorContent);var R=document.createElement("canvas");R.className="hj-capsule-canvas",R.setAttribute("aria-hidden","true"),b.appendChild(E),b.appendChild(P),b.appendChild(R),e.appendChild(b);var A,M=m(),_=!0===o.paused,T=!1,D=!0===o.static,B=!1,O=!1,U=function(){},I={preset:!1,seed:!1,speed:!1,colors:!1,textRatio:!1,cssVars:!1,mouseColor:!1,quality:!1,renderScale:!1,paused:!1,static:!1,fps:!1};if("canvas2d"!==o.renderer)try{A=new V(R,o,{dprCap:w(o.quality,o.renderScale),mouseColor:!1!==o.mouseColor,powerPreference:o.powerPreference,onContextLost:function(){B=!0,M.emit("contextlost",{})},onContextRestored:function(){B=!1,M.emit("contextrestored",{}),U(),re()}})}catch(e){A=new H(R,o,{dprCap:w(o.quality,o.renderScale)}),ie(function(){O||M.emit("error",{message:String(e&&e.message?e.message:e)})})}else A=new H(R,o,{dprCap:w(o.quality,o.renderScale)});var z=0,j=se(o.fps);U=function(){return A.draw(z)};var G=function(){b.style.width=g(o.width),b.style.height=g(o.height);for(var e=o.cssVars||{},t=0,r=Object.keys(e);t<r.length;t++){var n=r[t];b.style.setProperty(n,e[n])}void 0!==o.textRatio&&(b.style.setProperty("--hj-text-width","".concat(o.textRatio,"%")),b.style.setProperty("--hj-text-min-width","0")),A.resize()};G();var q=function(){A.resize(),(_||T||D)&&U()},W="undefined"!=typeof ResizeObserver?new ResizeObserver(q):null;W?W.observe(b):window.addEventListener("resize",q);var X=oe(b,re),Y=le(o.respectReducedMotion,function(e){T=e,e?U():re()});T=Y.matches();var K=function(){return _||T||D||B};b.addEventListener("pointerenter",function(){return M.emit("pointerenter",{preset:u({},n)})}),b.addEventListener("pointerleave",function(){return M.emit("pointerleave",{preset:u({},n)})}),b.addEventListener("click",function(e){M.emit("click",{event:e,preset:u({},n)})}),b.addEventListener("pointerdown",function(e){return M.emit("pointerdown",{event:e,preset:u({},n)})}),b.addEventListener("pointerup",function(e){return M.emit("pointerup",{event:e,preset:u({},n)})}),b.addEventListener("dblclick",function(e){return M.emit("dblclick",{event:e,preset:u({},n)})}),U();var $=ne(function(e){z+=e,j.shouldDraw(e)&&A.draw(z)},function(){return K()||!X.isVisible()});return ie(function(){O||M.emit("ready",{preset:u({},n)})}),{element:b,canvas:R,preset:n,on:M.on,off:M.off,setPreset:function(e){var t=k("capsule",e);I.preset=!0,Object.assign(n,t),f&&(n.colors=d(f)),null!==p&&(n.seed=p),null!==v&&(n.speed=v);var r=n.colors.map(N);return r.every(Boolean)&&(n.colors=r),A.setPreset(u({},n)),b.dataset.mode="nebula",b.dataset.theme=n.theme||"light",C(),A.resize(),K()&&U(),M.emit("presetchange",{preset:u({},t)}),this},setColors:function(e){var t=Array.isArray(e)?e.map(N):[];return 4!==t.length||t.some(function(e){return!e})||(I.colors=!0,f=d(t),n.colors=t,A.setPreset(u(u({},n),{},{colors:t})),K()&&U()),this},setSeed:function(e){var t=ue(e);return null===t||(I.seed=!0,p=t,n.seed=t,A.setPreset(u({},n)),K()&&U()),this},setSpeed:function(e){var t=ue(e);return null===t||(I.speed=!0,v=t,n.speed=t,A.setPreset(u({},n)),K()&&U()),this},setText:function(e){return S(E,e),this},setColorContent:function(e){return S(P,e),this},setTextRatio:function(e){var t=Number(e);return!Number.isFinite(t)||t<0||t>100||(I.textRatio=!0,o.textRatio=t,b.style.setProperty("--hj-text-width","".concat(t,"%")),b.style.setProperty("--hj-text-min-width","0")),this},setCssVars:function(e){if(!e||"object"!==h(e))return this;I.cssVars=!0,o.cssVars=u(u({},o.cssVars||{}),e);for(var t=0,r=Object.keys(e);t<r.length;t++){var n=r[t];b.style.setProperty(n,e[n])}return this},setLabel:function(e){return y="string"==typeof e&&e?e:null,C(),this},setMouseColor:function(e){return I.mouseColor=!0,o.mouseColor=!1!==e,"function"==typeof A.setMouseColor&&A.setMouseColor(o.mouseColor),this},setSize:function(e,t){return void 0!==e&&(g(e),o.width=e),void 0!==t&&(g(t),o.height=t),G(),K()&&U(),this},randomize:function(){return this.setSeed(100*Math.random()),this},pause:function(){return I.paused=!0,_=!0,U(),this},resume:function(){return I.paused=!0,_=!1,re(),this},setPaused:function(e){return e?this.pause():this.resume()},setStatic:function(e){return I.static=!0,D=!0===e,o.static=D,D?U():re(),this},setFps:function(e){return I.fps=!0,o.fps=j.setFps(e),re(),this},setQuality:function(e){return I.quality=!0,o.quality=e,"function"==typeof A.setDprCap&&A.setDprCap(w(e,o.renderScale)),K()&&U(),this},setRenderScale:function(e){var t=Number(e);return Number.isFinite(t)?(I.renderScale=!0,o.renderScale=Math.min(1,Math.max(.25,t)),"function"==typeof A.setDprCap&&A.setDprCap(w(o.quality,o.renderScale)),K()&&U(),this):this},dispose:function(){O=!0,$(),X.dispose(),Y.dispose(),W?W.disconnect():window.removeEventListener("resize",q),A.dispose(),b.remove()},get textRatio(){return o.textRatio},get cssVars(){return o.cssVars},get mouseColor(){return o.mouseColor},get quality(){return o.quality},get renderScale(){return o.renderScale},get paused(){return _},get static(){return D},get fps(){return j.getFps()},dirty:I}},e.createColorBackground=function(e){var t,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"function"!=typeof e.appendChild)throw new Error("createColorBackground: host element is required");var n=u({},k("capsule",null!==(t=r.preset)&&void 0!==t?t:"初光")),o=x({quality:L.capsule.quality,renderer:L.capsule.renderer,respectReducedMotion:L.capsule.respectReducedMotion,mouseColor:!0,renderScale:1,powerPreference:"high-performance",fps:L.capsule.fps,paused:!1,static:!1,opacity:1,fallbackColor:!0},n,r);o.opacity=Number.isFinite(Number(o.opacity))?Math.min(1,Math.max(0,Number(o.opacity))):1;var i=Array.isArray(o.colors)?o.colors.map(N):[];4===i.length&&i.every(Boolean)&&(n.colors=i);var a=ue(o.seed),s=ue(o.speed);null!==a&&(n.seed=a),null!==s&&(n.speed=s),o.colors=d(n.colors),o.seed=n.seed,o.speed=n.speed;var l=Array.isArray(r.colors)?r.colors.map(N):[],c=4===l.length&&l.every(Boolean)?d(l):null,f=void 0!==r.seed?ue(r.seed):null,h=void 0!==r.speed?ue(r.speed):null;!function(e){var t=De.get(e);if(t)t.count+=1;else{var r={count:1,position:e.style.position,isolation:e.style.isolation},n=getComputedStyle(e);"static"!==n.position&&""!==n.position||(e.style.position="relative"),e.style.isolation="isolate",De.set(e,r)}}(e);var p=document.createElement("div");p.className="dlc-color-layer";var v=function(){p.style.setProperty("--dlc-color-opacity",String(o.opacity));var e=!1===o.fallbackColor||null==o.fallbackColor?"transparent":"string"==typeof o.fallbackColor?o.fallbackColor:n.colors[0];p.style.setProperty("--dlc-color-bg",e)};v();var g=document.createElement("canvas");g.className="dlc-color-canvas",g.setAttribute("aria-hidden","true"),p.appendChild(g),e.appendChild(p);var y,b=m(),C=!0===o.paused,S=!1,E=!0===o.static,P=!1,R=!1,A=function(){},M={preset:!1,seed:!1,speed:!1,colors:!1,opacity:!1,fallbackColor:!1,mouseColor:!1,quality:!1,renderScale:!1,paused:!1,static:!1,fps:!1};if("canvas2d"!==o.renderer)try{y=new V(g,o,{dprCap:w(o.quality,o.renderScale),mouseColor:!1!==o.mouseColor,eventTarget:e,powerPreference:o.powerPreference,onContextLost:function(){P=!0,b.emit("contextlost",{})},onContextRestored:function(){P=!1,b.emit("contextrestored",{}),A(),re()}})}catch(e){y=new H(g,o,{dprCap:w(o.quality,o.renderScale)}),ie(function(){R||b.emit("error",{message:String(e&&e.message?e.message:e)})})}else y=new H(g,o,{dprCap:w(o.quality,o.renderScale)});y.resize();var _=0,T=se(o.fps);A=function(){return y.draw(_)};var F=function(){y.resize(),(C||S||E)&&A()},D="undefined"!=typeof ResizeObserver?new ResizeObserver(F):null;D?D.observe(e):window.addEventListener("resize",F);var B=oe(p,re),O=le(o.respectReducedMotion,function(e){S=e,e?A():re()});S=O.matches();var U=function(){return C||S||E||P};A();var I=ne(function(e){_+=e,T.shouldDraw(e)&&y.draw(_)},function(){return U()||!B.isVisible()});return ie(function(){R||b.emit("ready",{preset:u({},n)})}),{element:e,layer:p,canvas:g,preset:n,on:b.on,off:b.off,setPreset:function(e){var t=k("capsule",e);M.preset=!0,Object.assign(n,t),c&&(n.colors=d(c)),null!==f&&(n.seed=f),null!==h&&(n.speed=h);var r=n.colors.map(N);return r.every(Boolean)&&(n.colors=r),y.setPreset(u({},n)),y.resize(),v(),U()&&A(),b.emit("presetchange",{preset:u({},n)}),this},setColors:function(e){var t=Array.isArray(e)?e.map(N):[];return 4!==t.length||t.some(function(e){return!e})||(M.colors=!0,c=d(t),n.colors=t,y.setPreset(u(u({},n),{},{colors:t})),v(),U()&&A()),this},setSeed:function(e){var t=ue(e);return null===t||(M.seed=!0,f=t,n.seed=t,y.setPreset(u({},n)),U()&&A()),this},setSpeed:function(e){var t=ue(e);return null===t||(M.speed=!0,h=t,n.speed=t,y.setPreset(u({},n)),U()&&A()),this},setFallbackColor:function(e){return M.fallbackColor=!0,o.fallbackColor=e,v(),this},setMouseColor:function(e){return M.mouseColor=!0,o.mouseColor=!1!==e,"function"==typeof y.setMouseColor&&y.setMouseColor(o.mouseColor),this},setQuality:function(e){return M.quality=!0,o.quality=e,"function"==typeof y.setDprCap&&y.setDprCap(w(e,o.renderScale)),U()&&A(),this},setRenderScale:function(e){var t=Number(e);return Number.isFinite(t)?(M.renderScale=!0,o.renderScale=Math.min(1,Math.max(.25,t)),"function"==typeof y.setDprCap&&y.setDprCap(w(o.quality,o.renderScale)),U()&&A(),this):this},setOpacity:function(e){var t=Number(e);return Number.isFinite(t)?(M.opacity=!0,o.opacity=Math.min(1,Math.max(0,t)),p.style.setProperty("--dlc-color-opacity",String(o.opacity)),this):this},randomize:function(){return this.setSeed(100*Math.random()),this},pause:function(){return M.paused=!0,C=!0,A(),this},resume:function(){return M.paused=!0,C=!1,re(),this},setPaused:function(e){return e?this.pause():this.resume()},setStatic:function(e){return M.static=!0,E=!0===e,o.static=E,E?A():re(),this},setFps:function(e){return M.fps=!0,o.fps=T.setFps(e),re(),this},dispose:function(){R=!0,I(),B.dispose(),O.dispose(),D?D.disconnect():window.removeEventListener("resize",F),y.dispose(),p.remove(),function(e){var t=De.get(e);t&&(t.count-=1,t.count>0||(e.style.position=t.position,e.style.isolation=t.isolation,De.delete(e)))}(e)},get opacity(){return o.opacity},get fallbackColor(){return o.fallbackColor},get mouseColor(){return o.mouseColor},get quality(){return o.quality},get renderScale(){return o.renderScale},get paused(){return C},get static(){return E},get fps(){return T.getFps()},dirty:M}},e.createProgressCapsule=function(e){var t,r,n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e||"function"!=typeof e.appendChild)throw new Error("createProgressCapsule: container element is required");var i=u({},k("progress",null!==(t=o.preset)&&void 0!==t?t:"星火")),s=x(L.progress,i,o),l=c(Pe(s.min,s.max),2);s.min=l[0],s.max=l[1],void 0!==s.modelValue&&(s.value=s.modelValue);var f=Array.isArray(s.colors)?s.colors.map(N):[];4===f.length&&f.every(Boolean)&&(i.colors=f);var p="tide"===s.edgeStyle||"flow"===s.edgeStyle?s.edgeStyle:i.edgeStyle;i.edgeStyle=p,s.edgeStyle=p,s.colors=d(i.colors);var v=Array.isArray(o.colors)?o.colors.map(N):[],y=4===v.length&&v.every(Boolean)?d(v):null,b="flow"===o.edgeStyle||"tide"===o.edgeStyle?s.edgeStyle:null,C=F,S="string"==typeof o.label&&o.label?o.label:null,E=!0===s.disabled||""===s.disabled||"true"===s.disabled,P=!0===s.readonly||""===s.readonly||"true"===s.readonly,R=E||P,A=!R&&!1!==s.draggable,M=!R&&!1!==s.keyboard,_={preset:!1,colors:!1,textRatio:!1,cssVars:!1,edgeStyle:!1,value:!1,step:!1,precision:!1,formatValue:!1,direction:!1,showValue:!1,valueSuffix:!1,quality:!1,renderScale:!1,paused:!1,static:!1,fps:!1},T=document.createElement("div");T.className="hj-capsule-root hj-progress-root",T.setAttribute("role","slider"),T.setAttribute("data-draggable",String(A)),T.dataset.direction="rtl"===s.direction?"rtl":"ltr",E&&(T.setAttribute("aria-disabled","true"),T.classList.add("is-disabled")),P&&(T.setAttribute("aria-readonly","true"),T.classList.add("is-readonly")),T.setAttribute("tabindex",R?"-1":M?"0":"-1"),T.setAttribute("aria-orientation","horizontal"),T.setAttribute("aria-valuemin",String(null!==(r=s.min)&&void 0!==r?r:0)),T.setAttribute("aria-valuemax",String(null!==(n=s.max)&&void 0!==n?n:100)),T.setAttribute("aria-valuenow",String(i.initialProgress));var D=function(){var e,t;T.setAttribute("aria-label",S||(e=C.progressAria,t={brand:C.brandName,code:i.code,name:i.name},e.replace(/\{(\w+)\}/g,function(e,r){return void 0!==t[r]?t[r]:""})))};D();var B=document.createElement("canvas");B.className="hj-progress-canvas",B.setAttribute("aria-hidden","true");var O=function(e,t){if(e.innerHTML="",null!=t)if("string"!=typeof t){var r,n=a(Array.isArray(t)?t:[t]);try{for(n.s();!(r=n.n()).done;){var o=r.value;o&&"number"==typeof o.nodeType&&e.appendChild(o)}}catch(e){n.e(e)}finally{n.f()}}else e.innerHTML=t},U=document.createElement("div");U.className="hj-progress-text hj-progress-copy";var I=document.createElement("div");I.className="hj-progress-visual",O(U,o.text),O(I,o.colorContent);var z=document.createElement("div");z.className="hj-progress-value",z.setAttribute("aria-hidden","true"),z.hidden=!1===s.showValue,T.appendChild(B),T.appendChild(U),T.appendChild(I),T.appendChild(z),e.appendChild(T);var j=m(),V=!0===s.paused,G=!1,q=!0===s.static,W=!1,X=!1,Y=function(){},H=function(){W=!0,j.emit("contextlost",{})},K=function(){W=!1,j.emit("contextrestored",{}),Y(),re()},$=function(){T.style.width=g(s.width),T.style.height=g(s.height);for(var e=s.cssVars||{},t=0,r=Object.keys(e);t<r.length;t++){var n=r[t];T.style.setProperty(n,e[n])}void 0!==s.textRatio&&T.style.setProperty("--hj-text-width","".concat(s.textRatio,"%"))};$();var Q=new Fe({root:T,canvas:B,valueElement:z,preset:i,emitter:j,options:u(u({},s),{},{draggable:A,keyboard:M,onResize:function(){(V||G||q)&&Y()}}),copy:C,dirty:_}),J=null;"canvas2d"!==s.renderer&&(J=Ee({root:T,canvas:B,preset:i,getProgress:function(){return 100*Me(Q.value,Q.min,Q.max)},dprCap:w(s.quality,s.renderScale),powerPreference:s.powerPreference,onContextLost:H,onContextRestored:K})),J?Q.webglActive=!0:"canvas2d"!==s.renderer&&ie(function(){X||j.emit("error",{message:"WebGL2 unavailable, using Canvas2D fallback"})});var Z=oe(T,re),ee=le(s.respectReducedMotion,function(e){G=e,e?Y():re()});G=ee.matches();var te=function(){return V||G||q||W},ae=0,ue=se(s.fps);(Y=function(){Q.draw(),J&&J.update(ae)})();var ce=j.on("change",function(){te()&&Y()}),de=ne(function(e,t){ae+=e,Q.update(e,!1),ue.shouldDraw(e)&&(Q.draw(),J&&J.update(ae))},function(){return te()||!Z.isVisible()});return ie(function(){X||j.emit("ready",{preset:u({},i)})}),{element:T,canvas:B,preset:i,on:j.on,off:j.off,setValue:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"prop";return Q.setProgress(e,t),this},getValue:function(){return Q.value},setRange:function(e,t){return Q.setRange(e,t),te()&&Y(),this},setPreset:function(e){var t=k("progress",e);_.preset=!0,Object.assign(i,t),y&&(i.colors=d(y)),b&&(i.edgeStyle=b);var r=i.colors.map(N);return r.every(Boolean)&&(i.colors=r),Q.preset=i,Q.profile="tide"===i.edgeStyle?Le.tide:Le[i.id]||Le["visual-training"],Q.flowTime=31*ke(t.id),Q.seed=ke("".concat(t.id,"-reference"))*Math.PI*2,D(),J&&(J.dispose(),W=!1,J=Ee({root:T,canvas:B,preset:i,getProgress:function(){return 100*Me(Q.value,Q.min,Q.max)},dprCap:w(s.quality,s.renderScale),powerPreference:s.powerPreference,onContextLost:H,onContextRestored:K})),Q.webglActive=Boolean(J),Q.resizeCanvas(),te()&&Y(),j.emit("presetchange",{preset:u({},i)}),this},setEdgeStyle:function(e){var t=String(e||"").toLowerCase();return"flow"!==t&&"tide"!==t||(_.edgeStyle=!0,b=t,i.edgeStyle=t,Q.profile="tide"===t?Le.tide:Le[i.id]||Le["visual-training"],J&&(J.dispose(),W=!1,J=Ee({root:T,canvas:B,preset:i,getProgress:function(){return 100*Me(Q.value,Q.min,Q.max)},dprCap:w(s.quality,s.renderScale),powerPreference:s.powerPreference,onContextLost:H,onContextRestored:K})),Q.webglActive=Boolean(J),Q.resizeCanvas(),te()&&Y()),this},setText:function(e){return O(U,e),this},setColorContent:function(e){return O(I,e),this},setTextRatio:function(e){var t=Number(e);return!Number.isFinite(t)||t<0||t>100||(_.textRatio=!0,s.textRatio=t,T.style.setProperty("--hj-text-width","".concat(t,"%"))),this},setCssVars:function(e){if(!e||"object"!==h(e))return this;_.cssVars=!0,s.cssVars=u(u({},s.cssVars||{}),e);for(var t=0,r=Object.keys(e);t<r.length;t++){var n=r[t];T.style.setProperty(n,e[n])}return this},setLabel:function(e){return S="string"==typeof e&&e?e:null,D(),this},setValueSuffix:function(e){return Q.setValueSuffix(e),this},setStep:function(e){return Q.setStep(e),this},setPrecision:function(e){return Q.setPrecision(e),this},setFormatValue:function(e){return Q.setFormatValue(e),this},setDirection:function(e){return Q.setDirection(e),this},setShowValue:function(e){return Q.setShowValue(e),this},setColors:function(e){var t=Array.isArray(e)?e.map(N):[];return 4!==t.length||t.some(function(e){return!e})||(_.colors=!0,y=d(t),i.colors=d(t),Q.setColors(t),J&&J.setColors(t),Q.resizeCanvas(),te()&&Y()),this},setSize:function(e,t){return void 0!==e&&(g(e),s.width=e),void 0!==t&&(g(t),s.height=t),$(),Q.resizeCanvas(),te()&&Y(),this},randomize:function(){return ae=Q.randomize(),te()&&Y(),this},pause:function(){return _.paused=!0,V=!0,Y(),this},resume:function(){return _.paused=!0,V=!1,re(),this},setPaused:function(e){return e?this.pause():this.resume()},setStatic:function(e){return _.static=!0,q=!0===e,s.static=q,q?Y():re(),this},setFps:function(e){return _.fps=!0,s.fps=ue.setFps(e),re(),this},setQuality:function(e){return _.quality=!0,s.quality=e,Q.dprCap=w(e,s.renderScale),Q.resizeCanvas(),J&&J.setDprCap(Q.dprCap),te()&&Y(),this},setRenderScale:function(e){var t=Number(e);return Number.isFinite(t)?(_.renderScale=!0,s.renderScale=Math.min(1,Math.max(.25,t)),Q.dprCap=w(s.quality,s.renderScale),Q.resizeCanvas(),J&&J.setDprCap(Q.dprCap),te()&&Y(),this):this},dispose:function(){X=!0,de(),ce(),Z.dispose(),ee.dispose(),J&&J.dispose(),Q.dispose(),T.remove()},get textRatio(){return s.textRatio},get cssVars(){return s.cssVars},get min(){return Q.min},get max(){return Q.max},get step(){return Q.step},get precision(){return Q.precision},get formatValue(){return Q.formatValue},get direction(){return Q.direction},get showValue(){return!z.hidden},get valueSuffix(){return Q.valueSuffix},get quality(){return s.quality},get renderScale(){return s.renderScale},get paused(){return V},get static(){return q},get fps(){return ue.getFps()},dirty:_}},e.dprCapFor=b,e.effectiveDprCap=w,e.getPreset=k,e.hexToRgb01=O,e.hexToRgba=U,e.normalizeColor=N,e.parseSize=g,e.pauseAll=function(){Q=!0},e.resumeAll=function(){Q=!1,te()},e.validateColors=function(e){return Array.isArray(e)&&4===e.length&&e.every(function(e){return null!==N(e)})}});
package/dist/progress.cjs CHANGED
@@ -399,6 +399,15 @@ var PROGRESS_PRESETS = [{
399
399
  initialProgress: 30,
400
400
  edgeStyle: 'tide',
401
401
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
402
+ }, {
403
+ id: 'botanic-lab',
404
+ code: 'NC-14',
405
+ name: '森息',
406
+ subtitle: 'MOSS CULTURE / ROOTING',
407
+ group: 'progress',
408
+ initialProgress: 46,
409
+ edgeStyle: 'flow',
410
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
402
411
  }];
403
412
 
404
413
  [].concat(_toConsumableArray(CAPSULE_PRESETS), _toConsumableArray(PROGRESS_PRESETS));
@@ -827,6 +836,13 @@ var PROFILE_CONFIG = {
827
836
  detail: 0.06,
828
837
  lobe: 0.23
829
838
  },
839
+ 'botanic-lab': {
840
+ seed: 3.46,
841
+ broad: 0.54,
842
+ middle: 0.18,
843
+ detail: 0.05,
844
+ lobe: 0.28
845
+ },
830
846
  // ponytail: first-pass tide = asymmetric time warp on the same motion pipeline.
831
847
  // Refine (foam line / wash streaks) in the shader after visual QA.
832
848
  'tide': {
@@ -1122,7 +1138,8 @@ var PALETTES = {
1122
1138
  'model-training': ['#20131f', '#ff3f94', '#ff8a3d', '#fff06a'],
1123
1139
  'agent-migration': ['#111a31', '#245bff', '#00cfff', '#5dffe6'],
1124
1140
  'visual-training': ['#1f172b', '#7042ff', '#42f58d', '#c4ff8a'],
1125
- 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff']
1141
+ 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff'],
1142
+ 'botanic-lab': ['#102a23', '#287a58', '#9bd65b', '#f2ffc4']
1126
1143
  };
1127
1144
  function drawCloud(context, x, y, radiusX, radiusY, color, alpha) {
1128
1145
  context.save();
package/dist/progress.mjs CHANGED
@@ -141,6 +141,16 @@ const PROGRESS_PRESETS = [
141
141
  initialProgress: 30,
142
142
  edgeStyle: 'tide',
143
143
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
144
+ },
145
+ {
146
+ id: 'botanic-lab',
147
+ code: 'NC-14',
148
+ name: '森息',
149
+ subtitle: 'MOSS CULTURE / ROOTING',
150
+ group: 'progress',
151
+ initialProgress: 46,
152
+ edgeStyle: 'flow',
153
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
144
154
  }
145
155
  ];
146
156
 
@@ -543,6 +553,7 @@ const PROFILE_CONFIG = {
543
553
  'model-training': { seed: 0.37, broad: 0.58, middle: 0.25, detail: 0.13, lobe: 0.24 },
544
554
  'agent-migration': { seed: 1.71, broad: 0.72, middle: 0.10, detail: 0.03, lobe: 0.18 },
545
555
  'visual-training': { seed: 2.83, broad: 0.66, middle: 0.16, detail: 0.06, lobe: 0.23 },
556
+ 'botanic-lab': { seed: 3.46, broad: 0.54, middle: 0.18, detail: 0.05, lobe: 0.28 },
546
557
  // ponytail: first-pass tide = asymmetric time warp on the same motion pipeline.
547
558
  // Refine (foam line / wash streaks) in the shader after visual QA.
548
559
  'tide': { seed: 4.12, broad: 0.82, middle: 0.07, detail: 0.02, lobe: 0.30, warp: 0.5 }
@@ -1048,7 +1059,8 @@ const PALETTES = {
1048
1059
  'model-training': ['#20131f', '#ff3f94', '#ff8a3d', '#fff06a'],
1049
1060
  'agent-migration': ['#111a31', '#245bff', '#00cfff', '#5dffe6'],
1050
1061
  'visual-training': ['#1f172b', '#7042ff', '#42f58d', '#c4ff8a'],
1051
- 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff']
1062
+ 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff'],
1063
+ 'botanic-lab': ['#102a23', '#287a58', '#9bd65b', '#f2ffc4']
1052
1064
  };
1053
1065
 
1054
1066
  function drawCloud(context, x, y, radiusX, radiusY, color, alpha) {
package/dist/vue2.cjs CHANGED
@@ -411,6 +411,15 @@ var PROGRESS_PRESETS = [{
411
411
  initialProgress: 30,
412
412
  edgeStyle: 'tide',
413
413
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
414
+ }, {
415
+ id: 'botanic-lab',
416
+ code: 'NC-14',
417
+ name: '森息',
418
+ subtitle: 'MOSS CULTURE / ROOTING',
419
+ group: 'progress',
420
+ initialProgress: 46,
421
+ edgeStyle: 'flow',
422
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
414
423
  }];
415
424
 
416
425
  [].concat(_toConsumableArray(CAPSULE_PRESETS), _toConsumableArray(PROGRESS_PRESETS));
@@ -1677,6 +1686,13 @@ var PROFILE_CONFIG = {
1677
1686
  detail: 0.06,
1678
1687
  lobe: 0.23
1679
1688
  },
1689
+ 'botanic-lab': {
1690
+ seed: 3.46,
1691
+ broad: 0.54,
1692
+ middle: 0.18,
1693
+ detail: 0.05,
1694
+ lobe: 0.28
1695
+ },
1680
1696
  // ponytail: first-pass tide = asymmetric time warp on the same motion pipeline.
1681
1697
  // Refine (foam line / wash streaks) in the shader after visual QA.
1682
1698
  'tide': {
@@ -1972,7 +1988,8 @@ var PALETTES = {
1972
1988
  'model-training': ['#20131f', '#ff3f94', '#ff8a3d', '#fff06a'],
1973
1989
  'agent-migration': ['#111a31', '#245bff', '#00cfff', '#5dffe6'],
1974
1990
  'visual-training': ['#1f172b', '#7042ff', '#42f58d', '#c4ff8a'],
1975
- 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff']
1991
+ 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff'],
1992
+ 'botanic-lab': ['#102a23', '#287a58', '#9bd65b', '#f2ffc4']
1976
1993
  };
1977
1994
  function drawCloud(context, x, y, radiusX, radiusY, color, alpha) {
1978
1995
  context.save();
package/dist/vue2.mjs CHANGED
@@ -167,6 +167,16 @@ const PROGRESS_PRESETS = [
167
167
  initialProgress: 30,
168
168
  edgeStyle: 'tide',
169
169
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
170
+ },
171
+ {
172
+ id: 'botanic-lab',
173
+ code: 'NC-14',
174
+ name: '森息',
175
+ subtitle: 'MOSS CULTURE / ROOTING',
176
+ group: 'progress',
177
+ initialProgress: 46,
178
+ edgeStyle: 'flow',
179
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
170
180
  }
171
181
  ];
172
182
 
@@ -1456,6 +1466,7 @@ const PROFILE_CONFIG = {
1456
1466
  'model-training': { seed: 0.37, broad: 0.58, middle: 0.25, detail: 0.13, lobe: 0.24 },
1457
1467
  'agent-migration': { seed: 1.71, broad: 0.72, middle: 0.10, detail: 0.03, lobe: 0.18 },
1458
1468
  'visual-training': { seed: 2.83, broad: 0.66, middle: 0.16, detail: 0.06, lobe: 0.23 },
1469
+ 'botanic-lab': { seed: 3.46, broad: 0.54, middle: 0.18, detail: 0.05, lobe: 0.28 },
1459
1470
  // ponytail: first-pass tide = asymmetric time warp on the same motion pipeline.
1460
1471
  // Refine (foam line / wash streaks) in the shader after visual QA.
1461
1472
  'tide': { seed: 4.12, broad: 0.82, middle: 0.07, detail: 0.02, lobe: 0.30, warp: 0.5 }
@@ -1961,7 +1972,8 @@ const PALETTES = {
1961
1972
  'model-training': ['#20131f', '#ff3f94', '#ff8a3d', '#fff06a'],
1962
1973
  'agent-migration': ['#111a31', '#245bff', '#00cfff', '#5dffe6'],
1963
1974
  'visual-training': ['#1f172b', '#7042ff', '#42f58d', '#c4ff8a'],
1964
- 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff']
1975
+ 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff'],
1976
+ 'botanic-lab': ['#102a23', '#287a58', '#9bd65b', '#f2ffc4']
1965
1977
  };
1966
1978
 
1967
1979
  function drawCloud(context, x, y, radiusX, radiusY, color, alpha) {
package/dist/vue3.cjs CHANGED
@@ -413,6 +413,15 @@ var PROGRESS_PRESETS = [{
413
413
  initialProgress: 30,
414
414
  edgeStyle: 'tide',
415
415
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
416
+ }, {
417
+ id: 'botanic-lab',
418
+ code: 'NC-14',
419
+ name: '森息',
420
+ subtitle: 'MOSS CULTURE / ROOTING',
421
+ group: 'progress',
422
+ initialProgress: 46,
423
+ edgeStyle: 'flow',
424
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
416
425
  }];
417
426
 
418
427
  [].concat(_toConsumableArray(CAPSULE_PRESETS), _toConsumableArray(PROGRESS_PRESETS));
@@ -1679,6 +1688,13 @@ var PROFILE_CONFIG = {
1679
1688
  detail: 0.06,
1680
1689
  lobe: 0.23
1681
1690
  },
1691
+ 'botanic-lab': {
1692
+ seed: 3.46,
1693
+ broad: 0.54,
1694
+ middle: 0.18,
1695
+ detail: 0.05,
1696
+ lobe: 0.28
1697
+ },
1682
1698
  // ponytail: first-pass tide = asymmetric time warp on the same motion pipeline.
1683
1699
  // Refine (foam line / wash streaks) in the shader after visual QA.
1684
1700
  'tide': {
@@ -1974,7 +1990,8 @@ var PALETTES = {
1974
1990
  'model-training': ['#20131f', '#ff3f94', '#ff8a3d', '#fff06a'],
1975
1991
  'agent-migration': ['#111a31', '#245bff', '#00cfff', '#5dffe6'],
1976
1992
  'visual-training': ['#1f172b', '#7042ff', '#42f58d', '#c4ff8a'],
1977
- 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff']
1993
+ 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff'],
1994
+ 'botanic-lab': ['#102a23', '#287a58', '#9bd65b', '#f2ffc4']
1978
1995
  };
1979
1996
  function drawCloud(context, x, y, radiusX, radiusY, color, alpha) {
1980
1997
  context.save();
package/dist/vue3.mjs CHANGED
@@ -169,6 +169,16 @@ const PROGRESS_PRESETS = [
169
169
  initialProgress: 30,
170
170
  edgeStyle: 'tide',
171
171
  colors: ['#0A2239', '#2E9BFF', '#7FE3FF', '#EAF9FF']
172
+ },
173
+ {
174
+ id: 'botanic-lab',
175
+ code: 'NC-14',
176
+ name: '森息',
177
+ subtitle: 'MOSS CULTURE / ROOTING',
178
+ group: 'progress',
179
+ initialProgress: 46,
180
+ edgeStyle: 'flow',
181
+ colors: ['#102A23', '#287A58', '#9BD65B', '#F2FFC4']
172
182
  }
173
183
  ];
174
184
 
@@ -1458,6 +1468,7 @@ const PROFILE_CONFIG = {
1458
1468
  'model-training': { seed: 0.37, broad: 0.58, middle: 0.25, detail: 0.13, lobe: 0.24 },
1459
1469
  'agent-migration': { seed: 1.71, broad: 0.72, middle: 0.10, detail: 0.03, lobe: 0.18 },
1460
1470
  'visual-training': { seed: 2.83, broad: 0.66, middle: 0.16, detail: 0.06, lobe: 0.23 },
1471
+ 'botanic-lab': { seed: 3.46, broad: 0.54, middle: 0.18, detail: 0.05, lobe: 0.28 },
1461
1472
  // ponytail: first-pass tide = asymmetric time warp on the same motion pipeline.
1462
1473
  // Refine (foam line / wash streaks) in the shader after visual QA.
1463
1474
  'tide': { seed: 4.12, broad: 0.82, middle: 0.07, detail: 0.02, lobe: 0.30, warp: 0.5 }
@@ -1963,7 +1974,8 @@ const PALETTES = {
1963
1974
  'model-training': ['#20131f', '#ff3f94', '#ff8a3d', '#fff06a'],
1964
1975
  'agent-migration': ['#111a31', '#245bff', '#00cfff', '#5dffe6'],
1965
1976
  'visual-training': ['#1f172b', '#7042ff', '#42f58d', '#c4ff8a'],
1966
- 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff']
1977
+ 'tide': ['#0a2239', '#2e9bff', '#7fe3ff', '#eaf9ff'],
1978
+ 'botanic-lab': ['#102a23', '#287a58', '#9bd65b', '#f2ffc4']
1967
1979
  };
1968
1980
 
1969
1981
  function drawCloud(context, x, y, radiusX, radiusY, color, alpha) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@5even7/dlc-ui",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"