highsoft-ui 1.0.146 → 1.0.148

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/CLAUDE.md +13 -1
  2. package/dist/{Button-DIGyNR41.js → Button-BGsqFCRW.js} +1 -1
  3. package/dist/{ButtonGroup-BSQzx-sZ.js → ButtonGroup-DKfaXOeS.js} +1 -1
  4. package/dist/{Checkbox-wlH6EGWW.js → Checkbox-CniRhVkQ.js} +1 -1
  5. package/dist/{CodeBlock-DtTAC5ru.js → CodeBlock-BeseY88j.js} +5 -5
  6. package/dist/{CookiePolicyModal-CGRXL0wR.js → CookiePolicyModal-k89sCBEJ.js} +2 -2
  7. package/dist/{CopyCode-_MHQorJS.js → CopyCode-_yeXCeeq.js} +3 -3
  8. package/dist/{Dropdown-CVyrHJiC.js → Dropdown-B_Ib6i1c.js} +1 -1
  9. package/dist/{Footer-DW2asf8g.js → Footer-_P2pj3K7.js} +8 -8
  10. package/dist/{FooterBottom-CP0f9kYj.js → FooterBottom-CqpN8Wky.js} +1 -1
  11. package/dist/{FooterHelp-BxDXmtHK.js → FooterHelp-Cb5sraAE.js} +3 -3
  12. package/dist/{FooterLinks-BZwAVSm4.js → FooterLinks-CogdK_5Z.js} +2 -2
  13. package/dist/{Header-DQ1xi25C.js → Header-CVKH_INR.js} +25 -25
  14. package/dist/{InputGrouped-BE3zLov9.js → InputGrouped-CHGCMmsK.js} +11 -11
  15. package/dist/{Label-C_KZM-FN.js → Label-CgiWi1v6.js} +1 -1
  16. package/dist/{NewsletterSignup-CJAI81M3.js → NewsletterSignup-DrcPfdrg.js} +2 -2
  17. package/dist/{Notification-C2kN_ceR.js → Notification-B3skQvZE.js} +3 -3
  18. package/dist/{PrefPanel-BZUX1nfw.js → PrefPanel-BGw72I_D.js} +10 -10
  19. package/dist/{RoadmapDetails-CfayA5CZ.js → RoadmapDetails-XS0OylnP.js} +5 -5
  20. package/dist/{Search-Cw_e1PyF.js → Search-UPVxQliM.js} +12 -12
  21. package/dist/{SearchDropdown-ECOTZ1Uf.js → SearchDropdown-L_rQz1vn.js} +1 -1
  22. package/dist/VideoCover-DqMDvzvA.js +195 -0
  23. package/dist/VideoPlayer-Cq_garSg.js +455 -0
  24. package/dist/{VideoPlayerModal-DbP3OjSF.js → VideoPlayerModal-D1v1O2kW.js} +2 -2
  25. package/dist/{YoutubeModal-D_ZHayEn.js → YoutubeModal-BBYdQil8.js} +4 -2
  26. package/dist/components/Button/index.js +1 -1
  27. package/dist/components/ButtonGroup/index.js +1 -1
  28. package/dist/components/Checkbox/index.js +1 -1
  29. package/dist/components/CodeBlock/index.js +1 -1
  30. package/dist/components/CopyCode/index.js +1 -1
  31. package/dist/components/Dropdown/index.js +1 -1
  32. package/dist/components/Footer/CookiePolicyModal.js +1 -1
  33. package/dist/components/Footer/FooterBottom.js +1 -1
  34. package/dist/components/Footer/FooterHelp.js +1 -1
  35. package/dist/components/Footer/FooterLinks.js +1 -1
  36. package/dist/components/Footer/YoutubeModal.js +1 -1
  37. package/dist/components/Footer/index.js +1 -1
  38. package/dist/components/Header/index.js +1 -1
  39. package/dist/components/InputGrouped/index.js +1 -1
  40. package/dist/components/Label/index.js +1 -1
  41. package/dist/components/Modal/ModalContactFooter.js +2 -2
  42. package/dist/components/Modal/index.js +2 -2
  43. package/dist/components/NewsletterSignup/index.js +1 -1
  44. package/dist/components/Notification/index.js +1 -1
  45. package/dist/components/PrefPanel/index.js +1 -1
  46. package/dist/components/RoadmapDetails/index.js +1 -1
  47. package/dist/components/Search/index.js +1 -1
  48. package/dist/components/SearchDropdown/index.js +1 -1
  49. package/dist/components/Sidebar/Sidebar.js +1 -1
  50. package/dist/components/VideoCover/index.js +1 -1
  51. package/dist/components/VideoPlayer/VideoPlayerModal.js +1 -1
  52. package/dist/components/VideoPlayer/index.js +1 -1
  53. package/dist/components/VideoPlayer/useMediaEngine.js +58 -55
  54. package/dist/{create-element-WbENDceu.js → create-element-CDnUGrhg.js} +1 -1
  55. package/dist/{esm-B0YmMAXt.js → esm-BnxclXHW.js} +121 -51
  56. package/dist/highsoft-ui.css +1 -1
  57. package/dist/lib/components/VideoCover/index.d.ts +39 -5
  58. package/dist/lib/components/VideoPlayer/index.d.ts +33 -1
  59. package/dist/lib/main.d.ts +1 -1
  60. package/dist/main.js +18 -18
  61. package/dist/{prism-light-C4xXs3Qn.js → prism-light-COlcVrfu.js} +1 -1
  62. package/dist/scss/variables.scss +4 -0
  63. package/package.json +1 -1
  64. package/dist/VideoCover-BN8wnHpf.js +0 -92
  65. package/dist/VideoPlayer-CKjq7IRq.js +0 -324
package/CLAUDE.md CHANGED
@@ -325,13 +325,25 @@ Sutro-inspired media player with a brand-accent scrubber, floating volume, auto-
325
325
  <VideoPlayer src="https://youtu.be/aqz-KE-bpKQ" /> // driven via the YouTube IFrame API
326
326
  <VideoPlayer src="https://vimeo.com/76979871" autoPlay muted />
327
327
  <VideoPlayer sources={[{ src: '/v.webm', type: 'video/webm' }, { src: '/v.mp4', type: 'video/mp4' }]} />
328
+
329
+ // Captions + a written transcript (self-hosted video)
330
+ <VideoPlayer
331
+ src="/history.mp4"
332
+ tracks={[{ src: '/history.vtt', srclang: 'en', label: 'English', default: true }]}
333
+ transcript={<HistoryTranscript />}
334
+ />
328
335
  ```
329
336
  - **`src`** (or **`sources`**): self-hosted URL, or a YouTube/Vimeo link (auto-detected)
330
337
  - **`poster`, `muted`, `autoPlay`, `loop`, `playsInline`, `preload`**: standard video props (`autoPlay` needs `muted`)
331
338
  - **`aspectRatio`** (default `'16 / 9'`), **`radius`** (default `16`)
332
339
  - **`accentGradient`**: scrubber/volume fill — defaults to the brand color; accepts any CSS color or gradient
333
- - Keyboard: space/`k` play, `f` fullscreen, `m` mute, arrows seek; forwards a ref to the underlying `<video>`
340
+ - **`tracks`**: WebVTT text tracks (`{ src, srclang, label, kind?, default? }`) for self-hosted video. Adds a CC toggle that cycles `captions`/`subtitles` tracks; `descriptions` tracks are loaded for assistive tech but skipped by the toggle. Ignored for YouTube/Vimeo — provider embeds render their own captions.
341
+ - **`transcript`** (+ **`transcriptTitle`**, default `'Transcript'`): any React content, docked as a panel below the player and toggled from the control bar
342
+ - Keyboard: space/`k` play, `f` fullscreen, `m` mute, `c` captions, `t` transcript, arrows seek; forwards a ref to the underlying `<video>`
334
343
  - **Accessibility:** labelled `role="region"` (with an `sr-only` name); scrubber + volume are `role="slider"` with `aria-valuemin/max/now/valuetext`; mute exposes `aria-pressed`; decorative layers are `aria-hidden`; controls respect `prefers-reduced-motion`.
344
+ - Captions satisfy WCAG 1.2.2 and the transcript 1.2.3 / 1.2.8. The CC button exposes `aria-pressed` and the transcript button `aria-expanded` + `aria-controls`; the panel is a labelled `role="region"`. Active toggles are marked by *both* a background wash and an accent-tinted glyph, so the state never rests on color alone.
345
+ - **Cue styling is deliberately left to the browser.** Users' OS/browser caption preferences (macOS Accessibility → Captions, `chrome://settings/captions`) are user-origin styles that beat author CSS at any priority — authoring a cue background/box either doubles up with or fights that layer. Only `font-family`/`line-height` are set. Cue *position* is ours: the overlay animates up while the chrome is visible and back down when it idles (WebKit/Blink via the text-track container pseudo, Firefox via `VTTCue.line`).
346
+ - The collapsed transcript panel is `inert`, so it stays out of the tab order and the AT tree; its reveal animates on the motion tokens and collapses to an instant toggle under `prefers-reduced-motion`.
335
347
 
336
348
  ### VideoCover
337
349
  Chrome-less background/cover video — autoplays muted, loops, and stretches to fill its box like `object-fit: cover` on an image. No controls, no engine, no provider SDKs; self-hosted `<video>` only. Built-in lazy loading + fade-in, an overlay slot for `children`, and optional hover zoom.
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { k as t } from "./esm-B0YmMAXt.js";
2
+ import { M as t } from "./esm-BnxclXHW.js";
3
3
  import { forwardRef as n } from "react";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
5
  var a = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { t } from "./Button-DIGyNR41.js";
2
+ import { t } from "./Button-BGsqFCRW.js";
3
3
  import { useEffect as n, useState as r } from "react";
4
4
  import { jsx as i } from "react/jsx-runtime";
5
5
  var a = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { O as t } from "./esm-B0YmMAXt.js";
2
+ import { j as t } from "./esm-BnxclXHW.js";
3
3
  import { createContext as n, useCallback as r, useContext as i, useEffect as a, useId as o, useRef as s, useState as c } from "react";
4
4
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
5
5
  var d = {
@@ -1,7 +1,7 @@
1
1
  import { r as e, s as t } from "./utils-K9S_6_Eq.js";
2
2
  import { t as n } from "./clsx-BWCAbrjV.js";
3
- import { U as r, z as i } from "./esm-B0YmMAXt.js";
4
- import { t as a } from "./Button-DIGyNR41.js";
3
+ import { H as r, K as i } from "./esm-BnxclXHW.js";
4
+ import { t as a } from "./Button-BGsqFCRW.js";
5
5
  import { t as o } from "./FrameworkIcon-Ds6WrxO0.js";
6
6
  import { Fragment as s, forwardRef as c, useCallback as l, useEffect as u, useMemo as d, useState as f } from "react";
7
7
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
@@ -22,8 +22,8 @@ var h = {
22
22
  }, g = null;
23
23
  function _() {
24
24
  return g ||= Promise.all([
25
- import("./prism-light-C4xXs3Qn.js"),
26
- import("./create-element-WbENDceu.js").then((e) => e.n),
25
+ import("./prism-light-COlcVrfu.js"),
26
+ import("./create-element-CDnUGrhg.js").then((e) => e.n),
27
27
  import("./jsx-B57trbk8.js"),
28
28
  import("./tsx-CJFgwLf7.js"),
29
29
  import("./json-Bfzk2Msc.js"),
@@ -195,7 +195,7 @@ var C = {}, w = ({ children: e }) => /* @__PURE__ */ p("pre", {
195
195
  }), /* @__PURE__ */ p(a, {
196
196
  variant: B ? "success" : "transparent",
197
197
  size: 100,
198
- iconRight: p(B ? r : i, {}),
198
+ iconRight: p(B ? i : r, {}),
199
199
  onClick: U,
200
200
  "aria-label": B ? "Copied" : A,
201
201
  className: h.copyBtn,
@@ -1,5 +1,5 @@
1
- import { t as e } from "./esm-B0YmMAXt.js";
2
- import { t } from "./Button-DIGyNR41.js";
1
+ import { t as e } from "./esm-BnxclXHW.js";
2
+ import { t } from "./Button-BGsqFCRW.js";
3
3
  import { a as n, i as r, n as i, o as a, r as o, s, t as c } from "./dist-f0z6DapB.js";
4
4
  import { useEffect as l, useRef as u, useState as d } from "react";
5
5
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
1
  import { r as e, s as t } from "./utils-K9S_6_Eq.js";
2
2
  import { t as n } from "./clsx-BWCAbrjV.js";
3
- import { U as r, z as i } from "./esm-B0YmMAXt.js";
4
- import { t as a } from "./Button-DIGyNR41.js";
3
+ import { H as r, K as i } from "./esm-BnxclXHW.js";
4
+ import { t as a } from "./Button-BGsqFCRW.js";
5
5
  import { forwardRef as o, useCallback as s } from "react";
6
6
  import { jsx as c, jsxs as l } from "react/jsx-runtime";
7
7
  var u = {
@@ -26,7 +26,7 @@ var u = {
26
26
  }), /* @__PURE__ */ c(a, {
27
27
  variant: x ? "success" : "soft",
28
28
  size: 200,
29
- iconLeft: c(x ? r : i, {}),
29
+ iconLeft: c(x ? i : r, {}),
30
30
  onClick: (e) => {
31
31
  e.stopPropagation(), S();
32
32
  },
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { U as t } from "./esm-B0YmMAXt.js";
2
+ import { K as t } from "./esm-BnxclXHW.js";
3
3
  import { t as n } from "./Icon-VeXJMj8Q.js";
4
4
  import { _ as r, a as i, c as a, d as o, g as s, h as c, i as l, l as u, m as d, n as f, o as p, p as m, r as h, t as g, u as _, v, y } from "./es2015-DWa0ZZ7A.js";
5
5
  import { a as ee, i as b, n as te, r as x, t as S } from "./dist-CE9LFbij.js";
@@ -1,14 +1,14 @@
1
1
  import { r as e } from "./utils-K9S_6_Eq.js";
2
- import { B as t, U as n } from "./esm-B0YmMAXt.js";
3
- import { t as r } from "./Button-DIGyNR41.js";
2
+ import { K as t, U as n } from "./esm-BnxclXHW.js";
3
+ import { t as r } from "./Button-BGsqFCRW.js";
4
4
  import { t as i } from "./Container-BDssaLig.js";
5
5
  import { t as a } from "./DiscordInvite-CLYxexdH.js";
6
6
  import { t as o } from "./Logo-Bz0G2G-k.js";
7
- import { t as s } from "./NewsletterSignup-CJAI81M3.js";
8
- import { t as c } from "./FooterBottom-CP0f9kYj.js";
9
- import { t as l } from "./FooterHelp-BxDXmtHK.js";
10
- import { t as u } from "./FooterLinks-BZwAVSm4.js";
11
- import { t as d } from "./YoutubeModal-D_ZHayEn.js";
7
+ import { t as s } from "./NewsletterSignup-DrcPfdrg.js";
8
+ import { t as c } from "./FooterBottom-CqpN8Wky.js";
9
+ import { t as l } from "./FooterHelp-Cb5sraAE.js";
10
+ import { t as u } from "./FooterLinks-CogdK_5Z.js";
11
+ import { t as d } from "./YoutubeModal-BBYdQil8.js";
12
12
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
13
13
  var m = {
14
14
  discordCard: "_4W4F3q_discordCard",
@@ -29,7 +29,7 @@ function g() {
29
29
  return /* @__PURE__ */ p(r, {
30
30
  variant: "neutral",
31
31
  onClick: () => i(o),
32
- children: [o, f(a ? n : t, {})]
32
+ children: [o, f(a ? t : n, {})]
33
33
  });
34
34
  }
35
35
  function _({ link: e = "a", host: t = "https://www.highcharts.com" }) {
@@ -1,7 +1,7 @@
1
1
  import { a as e, t } from "./utils-K9S_6_Eq.js";
2
2
  import { a as n, c as r, i, n as a, o, r as s, s as c, t as l } from "./fa-B95RwBpz.js";
3
3
  import { t as u } from "./Typography-AvvBRu-u.js";
4
- import { t as d } from "./CookiePolicyModal-CGRXL0wR.js";
4
+ import { t as d } from "./CookiePolicyModal-k89sCBEJ.js";
5
5
  import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
6
6
  //#region node_modules/react-icons/fa6/index.mjs
7
7
  function h(e) {
@@ -1,5 +1,5 @@
1
1
  import { a as e, t } from "./utils-K9S_6_Eq.js";
2
- import { h as n, u as r } from "./esm-B0YmMAXt.js";
2
+ import { d as n, g as r } from "./esm-BnxclXHW.js";
3
3
  import { t as i } from "./Icon-VeXJMj8Q.js";
4
4
  import { o as a, r as o } from "./fa-B95RwBpz.js";
5
5
  import { t as s } from "./Typography-AvvBRu-u.js";
@@ -23,7 +23,7 @@ function d(e, t) {
23
23
  var f = [
24
24
  {
25
25
  icon: /* @__PURE__ */ c(i, {
26
- name: r,
26
+ name: n,
27
27
  size: 20
28
28
  }),
29
29
  subtitle: "Ask tech and sales questions with",
@@ -50,7 +50,7 @@ var f = [
50
50
  },
51
51
  {
52
52
  icon: /* @__PURE__ */ c(i, {
53
- name: n,
53
+ name: r,
54
54
  size: 20
55
55
  }),
56
56
  subtitle: "Contact sales about",
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { A as t } from "./esm-B0YmMAXt.js";
2
+ import { N as t } from "./esm-BnxclXHW.js";
3
3
  import { t as n } from "./Icon-VeXJMj8Q.js";
4
4
  import { t as r } from "./Typography-AvvBRu-u.js";
5
- import { t as i } from "./Label-C_KZM-FN.js";
5
+ import { t as i } from "./Label-CgiWi1v6.js";
6
6
  import a from "./components/icons/MadeInNorway.js";
7
7
  import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
8
  var c = {
@@ -1,13 +1,13 @@
1
1
  import { a as e, d as t, i as n, o as r, u as i } from "./utils-K9S_6_Eq.js";
2
2
  import { t as a } from "./clsx-BWCAbrjV.js";
3
- import { K as o, P as s, T as c, W as l, Y as u, d, f, o as p, t as m, w as h, y as g } from "./esm-B0YmMAXt.js";
4
- import { t as _ } from "./Button-DIGyNR41.js";
3
+ import { D as o, L as s, O as c, Q as l, Y as u, b as d, f, p, q as m, s as h, t as g } from "./esm-BnxclXHW.js";
4
+ import { t as _ } from "./Button-BGsqFCRW.js";
5
5
  import { t as v } from "./Container-BDssaLig.js";
6
6
  import { t as y } from "./Logo-Bz0G2G-k.js";
7
- import { t as b } from "./PrefPanel-BZUX1nfw.js";
8
- import { t as x } from "./Search-Cw_e1PyF.js";
9
- import { t as S } from "./Label-C_KZM-FN.js";
10
- import { t as C } from "./Notification-C2kN_ceR.js";
7
+ import { t as b } from "./PrefPanel-BGw72I_D.js";
8
+ import { t as x } from "./Search-UPVxQliM.js";
9
+ import { t as S } from "./Label-CgiWi1v6.js";
10
+ import { t as C } from "./Notification-B3skQvZE.js";
11
11
  import { useEffect as w, useRef as T, useState as E } from "react";
12
12
  import { Fragment as D, jsx as O, jsxs as k } from "react/jsx-runtime";
13
13
  var A = {
@@ -75,17 +75,17 @@ var A = {
75
75
  {
76
76
  title: "Products",
77
77
  url: "https://www.highcharts.com/products/",
78
- icon: /* @__PURE__ */ O(l, {})
78
+ icon: /* @__PURE__ */ O(m, {})
79
79
  },
80
80
  {
81
81
  title: "Demos",
82
82
  url: "https://www.highcharts.com/demo",
83
- icon: /* @__PURE__ */ O(g, {})
83
+ icon: /* @__PURE__ */ O(d, {})
84
84
  },
85
85
  {
86
86
  title: "Support",
87
87
  url: "https://www.highcharts.com/support/",
88
- icon: /* @__PURE__ */ O(h, {})
88
+ icon: /* @__PURE__ */ O(o, {})
89
89
  },
90
90
  {
91
91
  title: "Resources",
@@ -95,12 +95,12 @@ var A = {
95
95
  {
96
96
  title: "Pricing",
97
97
  url: "https://shop.highcharts.com/",
98
- icon: /* @__PURE__ */ O(o, {})
98
+ icon: /* @__PURE__ */ O(u, {})
99
99
  },
100
100
  {
101
101
  title: "Blog",
102
102
  url: "https://www.highcharts.com/blog/home/",
103
- icon: /* @__PURE__ */ O(u, {})
103
+ icon: /* @__PURE__ */ O(l, {})
104
104
  }
105
105
  ];
106
106
  function B(e, t) {
@@ -193,17 +193,17 @@ function Y() {
193
193
  e && R(M, e);
194
194
  }, [e]), null;
195
195
  }
196
- function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host: l = "https://www.highcharts.com", pathname: u, cssVariable: h, position: g = "sticky" }) {
196
+ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host: l = "https://www.highcharts.com", pathname: u, cssVariable: d, position: m = "sticky" }) {
197
197
  let S = e("(max-width: 374px)"), w = e("(max-width: 849px)"), M = e("(max-width: 1300px)"), N = G(t), P = T(null), [F, L] = E(!1), [V, H] = E([]);
198
198
  n(() => {
199
199
  let e = P.current;
200
200
  if (!e) return;
201
201
  let n = t?.length ? N ? U : W : 0, r = 82 + V.length * 48 + n, i = -(82 + V.length * 48);
202
- if (g === "static") return e.style.transform = "", h && document.documentElement.style.setProperty("--header-bottom", `${r}px`), () => {
203
- e.style.transform = "", h && document.documentElement.style.removeProperty("--header-bottom");
202
+ if (m === "static") return e.style.transform = "", d && document.documentElement.style.setProperty("--header-bottom", `${r}px`), () => {
203
+ e.style.transform = "", d && document.documentElement.style.removeProperty("--header-bottom");
204
204
  };
205
205
  let a = window.scrollY, o = 0, s = null, c = null, l = () => {
206
- c = null, !(!e || s === o) && (e.style.transform = `translate3d(0, ${o}px, 0)`, h && document.documentElement.style.setProperty("--header-bottom", `${r + o}px`), s = o);
206
+ c = null, !(!e || s === o) && (e.style.transform = `translate3d(0, ${o}px, 0)`, d && document.documentElement.style.setProperty("--header-bottom", `${r + o}px`), s = o);
207
207
  };
208
208
  l();
209
209
  let u = () => {
@@ -211,13 +211,13 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
211
211
  a = e, o = Math.min(0, Math.max(i, o - t)), c === null && (c = window.requestAnimationFrame(l));
212
212
  };
213
213
  return window.addEventListener("scroll", u, { passive: !0 }), () => {
214
- window.removeEventListener("scroll", u), c !== null && cancelAnimationFrame(c), e.style.transform = "", h && document.documentElement.style.removeProperty("--header-bottom");
214
+ window.removeEventListener("scroll", u), c !== null && cancelAnimationFrame(c), e.style.transform = "", d && document.documentElement.style.removeProperty("--header-bottom");
215
215
  };
216
216
  }, [
217
- h,
217
+ d,
218
218
  N,
219
219
  V.length,
220
- g,
220
+ m,
221
221
  t?.length
222
222
  ]), n(() => {
223
223
  if (!o.length) return;
@@ -289,7 +289,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
289
289
  children: [/* @__PURE__ */ O("span", {
290
290
  className: A.gpt,
291
291
  children: "Highcharts Assist"
292
- }), /* @__PURE__ */ O(d, {})]
292
+ }), /* @__PURE__ */ O(f, {})]
293
293
  }) }),
294
294
  /* @__PURE__ */ O("li", { children: /* @__PURE__ */ O(x, {}) }),
295
295
  /* @__PURE__ */ O("li", { children: /* @__PURE__ */ O(b, {}) }),
@@ -299,20 +299,20 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
299
299
  as: s,
300
300
  href: B("https://shop.highcharts.com/", l),
301
301
  "aria-label": "Buy Now",
302
- children: [/* @__PURE__ */ O(f, {}), "Buy Now"]
302
+ children: [/* @__PURE__ */ O(p, {}), "Buy Now"]
303
303
  }) }),
304
304
  /* @__PURE__ */ O("li", { children: /* @__PURE__ */ k(_, {
305
305
  className: A.cta,
306
306
  variant: "brand",
307
307
  as: s,
308
308
  href: B("https://www.highcharts.com/download/", l),
309
- children: [/* @__PURE__ */ O(p, {}), "Try for Free"]
309
+ children: [/* @__PURE__ */ O(h, {}), "Try for Free"]
310
310
  }) }),
311
311
  /* @__PURE__ */ O("li", { children: /* @__PURE__ */ k(_, {
312
312
  variant: F ? "soft" : "transparent",
313
313
  className: A.menu,
314
314
  onClick: X,
315
- children: [F ? "Close" : "Menu", O(F ? m : c, {})]
315
+ children: [F ? "Close" : "Menu", O(F ? g : c, {})]
316
316
  }) })
317
317
  ]
318
318
  })
@@ -349,7 +349,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
349
349
  children: [/* @__PURE__ */ O("span", {
350
350
  className: A.gpt,
351
351
  children: "Highcharts Assist"
352
- }), /* @__PURE__ */ O(d, {})]
352
+ }), /* @__PURE__ */ O(f, {})]
353
353
  }) }),
354
354
  /* @__PURE__ */ O("li", { children: /* @__PURE__ */ O(x, {}) }),
355
355
  /* @__PURE__ */ O("li", { children: /* @__PURE__ */ O(b, {}) })
@@ -363,13 +363,13 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
363
363
  fullWidth: !0,
364
364
  as: s,
365
365
  href: B("https://shop.highcharts.com/", l),
366
- children: [/* @__PURE__ */ O(f, {}), "Buy Now"]
366
+ children: [/* @__PURE__ */ O(p, {}), "Buy Now"]
367
367
  }) }), /* @__PURE__ */ O("li", { children: /* @__PURE__ */ k(_, {
368
368
  variant: "success",
369
369
  fullWidth: !0,
370
370
  as: s,
371
371
  href: B("https://www.highcharts.com/download/", l),
372
- children: [/* @__PURE__ */ O(p, {}), "Try for Free"]
372
+ children: [/* @__PURE__ */ O(h, {}), "Try for Free"]
373
373
  }) })]
374
374
  }),
375
375
  /* @__PURE__ */ O("ul", {
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { I as t, L as n, V as r } from "./esm-B0YmMAXt.js";
3
- import { t as i } from "./Button-DIGyNR41.js";
2
+ import { B as t, W as n, z as r } from "./esm-BnxclXHW.js";
3
+ import { t as i } from "./Button-BGsqFCRW.js";
4
4
  import { forwardRef as a, useCallback as o, useEffect as s, useRef as c, useState as l } from "react";
5
5
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
6
6
  var f = {
@@ -41,7 +41,7 @@ function m({ children: t, className: n }) {
41
41
  children: t
42
42
  });
43
43
  }
44
- var h = a(({ label: r, required: a = !1, helpText: p, showHelpText: m = !1, labelIcon: h, iconRight: g, button: _, hasError: v = !1, success: y = !1, disabled: b = !1, className: x, wrapperClassName: S, type: C, onFocus: w, onBlur: T, onChange: E, value: D, defaultValue: O, ...k }, A) => {
44
+ var h = a(({ label: n, required: a = !1, helpText: p, showHelpText: m = !1, labelIcon: h, iconRight: g, button: _, hasError: v = !1, success: y = !1, disabled: b = !1, className: x, wrapperClassName: S, type: C, onFocus: w, onBlur: T, onChange: E, value: D, defaultValue: O, ...k }, A) => {
45
45
  let j = c(null), M = A || j, [N, P] = l(!1), [F, I] = l(!1), [L, R] = l(!1), z = C === "password", [B, V] = l(O === void 0 ? "" : String(O)), H = D !== void 0, U = H ? String(D).length > 0 : B.length > 0, W = o((e) => {
46
46
  P(!0), w?.(e);
47
47
  }, [w]), G = o((e) => {
@@ -81,14 +81,14 @@ var h = a(({ label: r, required: a = !1, helpText: p, showHelpText: m = !1, labe
81
81
  children: [/* @__PURE__ */ d("div", {
82
82
  className: f.leftContent,
83
83
  children: [
84
- r && /* @__PURE__ */ d("div", {
84
+ n && /* @__PURE__ */ d("div", {
85
85
  className: f.labelRow,
86
86
  children: [h && /* @__PURE__ */ u("span", {
87
87
  className: f.labelIcon,
88
88
  children: h
89
89
  }), /* @__PURE__ */ d("span", {
90
90
  className: f.label,
91
- children: [r, a && /* @__PURE__ */ u("span", {
91
+ children: [n, a && /* @__PURE__ */ u("span", {
92
92
  className: f.required,
93
93
  children: " *"
94
94
  })]
@@ -99,7 +99,7 @@ var h = a(({ label: r, required: a = !1, helpText: p, showHelpText: m = !1, labe
99
99
  type: Y,
100
100
  className: e(f.inputElement, x),
101
101
  disabled: b,
102
- "aria-label": r,
102
+ "aria-label": n,
103
103
  "aria-required": a,
104
104
  "aria-invalid": v,
105
105
  value: D,
@@ -130,7 +130,7 @@ var h = a(({ label: r, required: a = !1, helpText: p, showHelpText: m = !1, labe
130
130
  e.stopPropagation(), R((e) => !e);
131
131
  },
132
132
  "aria-label": L ? "Hide password" : "Show password",
133
- children: u(L ? t : n, {})
133
+ children: u(L ? r : t, {})
134
134
  }),
135
135
  _
136
136
  ]
@@ -139,7 +139,7 @@ var h = a(({ label: r, required: a = !1, helpText: p, showHelpText: m = !1, labe
139
139
  });
140
140
  });
141
141
  h.displayName = "InputGrouped";
142
- var g = a(({ label: t, required: n = !1, helpText: i, showHelpText: a = !1, labelIcon: s, hasError: p = !1, success: m = !1, disabled: h = !1, className: g, wrapperClassName: _, placeholder: v, children: y, onFocus: b, onBlur: x, onChange: S, value: C, defaultValue: w, ...T }, E) => {
142
+ var g = a(({ label: t, required: r = !1, helpText: i, showHelpText: a = !1, labelIcon: s, hasError: p = !1, success: m = !1, disabled: h = !1, className: g, wrapperClassName: _, placeholder: v, children: y, onFocus: b, onBlur: x, onChange: S, value: C, defaultValue: w, ...T }, E) => {
143
143
  let D = c(null), O = E || D, [k, A] = l(!1), [j, M] = l(!1), [N, P] = l(w === void 0 ? "" : String(w)), F = C !== void 0, I = F ? String(C).length > 0 : N.length > 0, L = o((e) => {
144
144
  A(!0), b?.(e);
145
145
  }, [b]), R = o((e) => {
@@ -179,7 +179,7 @@ var g = a(({ label: t, required: n = !1, helpText: i, showHelpText: a = !1, labe
179
179
  children: s
180
180
  }), /* @__PURE__ */ d("span", {
181
181
  className: f.label,
182
- children: [t, n && /* @__PURE__ */ u("span", {
182
+ children: [t, r && /* @__PURE__ */ u("span", {
183
183
  className: f.required,
184
184
  children: " *"
185
185
  })]
@@ -190,7 +190,7 @@ var g = a(({ label: t, required: n = !1, helpText: i, showHelpText: a = !1, labe
190
190
  className: e(f.inputElement, f.selectElement, g),
191
191
  disabled: h,
192
192
  "aria-label": t,
193
- "aria-required": n,
193
+ "aria-required": r,
194
194
  "aria-invalid": p,
195
195
  value: C,
196
196
  defaultValue: w,
@@ -214,7 +214,7 @@ var g = a(({ label: t, required: n = !1, helpText: i, showHelpText: a = !1, labe
214
214
  className: f.rightContent,
215
215
  children: /* @__PURE__ */ u("span", {
216
216
  className: e(f.iconRight, f.chevron),
217
- children: /* @__PURE__ */ u(r, {})
217
+ children: /* @__PURE__ */ u(n, {})
218
218
  })
219
219
  })]
220
220
  })
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { l as t } from "./esm-B0YmMAXt.js";
2
+ import { u as t } from "./esm-BnxclXHW.js";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  var i = {
5
5
  attention: "UwHMOW_attention",
@@ -1,7 +1,7 @@
1
1
  import { l as e } from "./utils-K9S_6_Eq.js";
2
2
  import { t } from "./clsx-BWCAbrjV.js";
3
- import { H as n, N as r, Y as i } from "./esm-B0YmMAXt.js";
4
- import { t as a } from "./Button-DIGyNR41.js";
3
+ import { G as n, I as r, Q as i } from "./esm-BnxclXHW.js";
4
+ import { t as a } from "./Button-BGsqFCRW.js";
5
5
  import { t as o } from "./Icon-VeXJMj8Q.js";
6
6
  import { t as s } from "./Link-CYR92_U0.js";
7
7
  import { t as c } from "./InputSolo-DUdKtZjX.js";
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { t } from "./esm-B0YmMAXt.js";
3
- import { t as n } from "./Button-DIGyNR41.js";
2
+ import { t } from "./esm-BnxclXHW.js";
3
+ import { t as n } from "./Button-BGsqFCRW.js";
4
4
  import { t as r } from "./Container-BDssaLig.js";
5
- import { t as i } from "./Label-C_KZM-FN.js";
5
+ import { t as i } from "./Label-CgiWi1v6.js";
6
6
  import { useEffect as a, useState as o } from "react";
7
7
  import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
8
8
  var u = {
@@ -1,7 +1,7 @@
1
1
  import { d as e, o as t } from "./utils-K9S_6_Eq.js";
2
2
  import { t as n } from "./clsx-BWCAbrjV.js";
3
- import { S as r, U as i, c as a, m as o, x as s } from "./esm-B0YmMAXt.js";
4
- import { t as c } from "./Button-DIGyNR41.js";
3
+ import { K as r, T as i, h as a, l as o, w as s } from "./esm-BnxclXHW.js";
4
+ import { t as c } from "./Button-BGsqFCRW.js";
5
5
  import { _ as l, a as u, d, h as f, i as p, l as m, m as h, n as ee, o as g, p as _, r as v, t as y, u as b, y as x } from "./es2015-DWa0ZZ7A.js";
6
6
  import { a as S, i as te, n as C, r as w, t as T } from "./dist-B04QoImH.js";
7
7
  import * as E from "react";
@@ -194,26 +194,26 @@ var oe = P, se = I, ce = R, le = H, ue = W, Q = {
194
194
  };
195
195
  //#endregion
196
196
  //#region lib/components/PrefPanel/index.tsx
197
- function $({ children: e, id: t, ...r }) {
197
+ function $({ children: e, id: t, ...i }) {
198
198
  return /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O("input", {
199
199
  type: "radio",
200
200
  id: t,
201
201
  className: n(Q.radioInput, "sr-only"),
202
- ...r
202
+ ...i
203
203
  }), /* @__PURE__ */ k("label", {
204
204
  htmlFor: t,
205
205
  className: Q.radio,
206
- children: [e, /* @__PURE__ */ O(i, { className: Q.check })]
206
+ children: [e, /* @__PURE__ */ O(r, { className: Q.check })]
207
207
  })] });
208
208
  }
209
209
  function de() {
210
- let { theme: n, systemTheme: i, setTheme: l } = e(), u = t();
210
+ let { theme: n, systemTheme: r, setTheme: l } = e(), u = t();
211
211
  return /* @__PURE__ */ k(oe, { children: [/* @__PURE__ */ O(ce, {
212
212
  asChild: !0,
213
213
  children: /* @__PURE__ */ k(c, {
214
214
  variant: "transparent",
215
215
  "aria-label": "Preferences",
216
- children: [/* @__PURE__ */ O(o, {}), /* @__PURE__ */ O(se, { className: Q.anchor })]
216
+ children: [/* @__PURE__ */ O(a, {}), /* @__PURE__ */ O(se, { className: Q.anchor })]
217
217
  })
218
218
  }), /* @__PURE__ */ O(le, { children: /* @__PURE__ */ O(ue, {
219
219
  sideOffset: 8,
@@ -227,9 +227,9 @@ function de() {
227
227
  checked: n === "system",
228
228
  onChange: () => l("system"),
229
229
  children: [
230
- /* @__PURE__ */ O(r, {}),
230
+ /* @__PURE__ */ O(i, {}),
231
231
  "Auto (",
232
- i,
232
+ r,
233
233
  ")"
234
234
  ]
235
235
  }),
@@ -238,7 +238,7 @@ function de() {
238
238
  name: "theme",
239
239
  checked: n === "light",
240
240
  onChange: () => l("light"),
241
- children: [/* @__PURE__ */ O(a, {}), "Light"]
241
+ children: [/* @__PURE__ */ O(o, {}), "Light"]
242
242
  }),
243
243
  /* @__PURE__ */ k($, {
244
244
  id: "dark",
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { D as t, V as n, j as r, s as i } from "./esm-B0YmMAXt.js";
3
- import { t as a } from "./Button-DIGyNR41.js";
2
+ import { A as t, P as n, W as r, c as i } from "./esm-BnxclXHW.js";
3
+ import { t as a } from "./Button-BGsqFCRW.js";
4
4
  import { t as o } from "./Typography-AvvBRu-u.js";
5
5
  import { useEffect as s, useRef as c } from "react";
6
6
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
@@ -46,7 +46,7 @@ function f({ title: f, items: p, primaryAction: m, meta: h, open: g, defaultOpen
46
46
  }), /* @__PURE__ */ l("span", {
47
47
  className: d.chevron,
48
48
  "aria-hidden": "true",
49
- children: /* @__PURE__ */ l(n, {})
49
+ children: /* @__PURE__ */ l(r, {})
50
50
  })]
51
51
  }),
52
52
  p && p.length > 0 && /* @__PURE__ */ l("ul", {
@@ -68,9 +68,9 @@ function f({ title: f, items: p, primaryAction: m, meta: h, open: g, defaultOpen
68
68
  (m || h) && /* @__PURE__ */ u("div", {
69
69
  className: d.actions,
70
70
  children: [m && ((e) => {
71
- let n = e.variant ?? "neutral", i = l(n === "soft" ? r : t, {}), o = e.icon === null ? void 0 : e.icon === void 0 ? i : e.icon;
71
+ let r = e.variant ?? "neutral", i = l(r === "soft" ? n : t, {}), o = e.icon === null ? void 0 : e.icon === void 0 ? i : e.icon;
72
72
  return /* @__PURE__ */ l(a, {
73
- variant: n,
73
+ variant: r,
74
74
  size: 200,
75
75
  href: e.href,
76
76
  onClick: (t) => {
@@ -1,6 +1,6 @@
1
1
  import { a as e, i as t, n, o as r, r as i, t as a } from "./chunk-jwUa06l-.js";
2
- import { F as o, G as s, J as c, M as l, R as u, X as d, _ as f, b as p, f as m, p as h, q as g, v as _ } from "./esm-B0YmMAXt.js";
3
- import { t as v } from "./Button-DIGyNR41.js";
2
+ import { $ as o, F as s, J as c, R as l, S as u, V as d, X as f, Z as p, m, p as h, v as g, y as _ } from "./esm-BnxclXHW.js";
3
+ import { t as v } from "./Button-BGsqFCRW.js";
4
4
  import { d as y, h as b, l as x, m as S, p as C, u as w } from "./es2015-DWa0ZZ7A.js";
5
5
  import { t as ee } from "./dist-J9cXmrDi.js";
6
6
  import { i as T, n as E, r as D, t as O } from "./dist-CE9LFbij.js";
@@ -4501,13 +4501,13 @@ function Wt() {
4501
4501
  }, le = (e) => {
4502
4502
  n(e.target.value);
4503
4503
  }, ue = {
4504
- products: /* @__PURE__ */ F(h, {}),
4505
- demo: /* @__PURE__ */ F(p, {}),
4506
- docs: /* @__PURE__ */ F(s, {}),
4507
- blog: /* @__PURE__ */ F(d, {}),
4508
- misc: /* @__PURE__ */ F(l, {}),
4509
- shop: /* @__PURE__ */ F(m, {}),
4510
- file: /* @__PURE__ */ F(o, {})
4504
+ products: /* @__PURE__ */ F(m, {}),
4505
+ demo: /* @__PURE__ */ F(u, {}),
4506
+ docs: /* @__PURE__ */ F(c, {}),
4507
+ blog: /* @__PURE__ */ F(o, {}),
4508
+ misc: /* @__PURE__ */ F(s, {}),
4509
+ shop: /* @__PURE__ */ F(h, {}),
4510
+ file: /* @__PURE__ */ F(l, {})
4511
4511
  };
4512
4512
  return /* @__PURE__ */ I(ie, {
4513
4513
  open: a,
@@ -4517,7 +4517,7 @@ function Wt() {
4517
4517
  children: /* @__PURE__ */ F(v, {
4518
4518
  variant: "transparent",
4519
4519
  "aria-label": "Search",
4520
- children: /* @__PURE__ */ F(f, {})
4520
+ children: /* @__PURE__ */ F(g, {})
4521
4521
  })
4522
4522
  }), /* @__PURE__ */ I(k, { children: [/* @__PURE__ */ F(A, { className: Z.overlay }), /* @__PURE__ */ I(ne, {
4523
4523
  className: Z.search,
@@ -4601,14 +4601,14 @@ function Wt() {
4601
4601
  className: Z.bottomGroup,
4602
4602
  children: [/* @__PURE__ */ I("div", {
4603
4603
  className: Z.bottomIcons,
4604
- children: [/* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(c, {}) }), /* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(g, {}) })]
4604
+ children: [/* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(p, {}) }), /* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(f, {}) })]
4605
4605
  }), "Navigate"]
4606
4606
  }),
4607
4607
  /* @__PURE__ */ I("div", {
4608
4608
  className: Z.bottomGroup,
4609
4609
  children: [/* @__PURE__ */ F("div", {
4610
4610
  className: Z.bottomIcons,
4611
- children: /* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(u, {}) })
4611
+ children: /* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(d, {}) })
4612
4612
  }), "Select"]
4613
4613
  }),
4614
4614
  /* @__PURE__ */ I("div", {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { g as t } from "./esm-B0YmMAXt.js";
2
+ import { _ as t } from "./esm-BnxclXHW.js";
3
3
  import { t as n } from "./Icon-VeXJMj8Q.js";
4
4
  import { t as r } from "./InputSolo-DUdKtZjX.js";
5
5
  import { useCallback as i, useEffect as a, useId as o, useMemo as s, useRef as c, useState as l } from "react";