highsoft-ui 1.0.164 → 1.0.165

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 (70) hide show
  1. package/CLAUDE.md +36 -0
  2. package/dist/{BrowserFrame-BSM0R7PQ.js → BrowserFrame-BWKH-jYq.js} +2 -2
  3. package/dist/{Button-BCbWIPg1.js → Button-Ckhn8DSF.js} +1 -1
  4. package/dist/{ButtonGroup-DGEDf4ic.js → ButtonGroup-DJ9-E38n.js} +1 -1
  5. package/dist/{Checkbox-CO0SRaAZ.js → Checkbox-D1mlWTmw.js} +1 -1
  6. package/dist/{CodeBlock-Ugik4xMM.js → CodeBlock-C2W0T4RT.js} +5 -5
  7. package/dist/{CookiePolicyModal-TdrVbP_E.js → CookiePolicyModal-CPNTKMHc.js} +2 -2
  8. package/dist/{CopyCode-_sKjpGqB.js → CopyCode-BOehQAZN.js} +3 -3
  9. package/dist/{Dropdown-LiG-JAoo.js → Dropdown-Cjl8RQ5Y.js} +1 -1
  10. package/dist/{Footer-DzIGLnEz.js → Footer-DLMNyBXC.js} +7 -7
  11. package/dist/{FooterBottom-CRe2Mvjd.js → FooterBottom-ZK9F7wLx.js} +1 -1
  12. package/dist/{FooterHelp-CTSvficW.js → FooterHelp-Csfq-quf.js} +1 -1
  13. package/dist/{FooterLinks-BoDdQUWb.js → FooterLinks-CGoBeReu.js} +2 -2
  14. package/dist/{Header-CTO6Y6oH.js → Header-Pe6siDNx.js} +20 -20
  15. package/dist/{InputGrouped-y0JyshpR.js → InputGrouped-BLtnqxWc.js} +2 -2
  16. package/dist/{Label-k6e4Rqb-.js → Label-KDdBAgyD.js} +1 -1
  17. package/dist/{LogoCarousel-pRYdmphl.js → LogoCarousel-CJShpLJo.js} +2 -2
  18. package/dist/{NewsletterSignup-BrmQ7pXZ.js → NewsletterSignup-g8wPQ7NZ.js} +4 -4
  19. package/dist/{Notification-BFLAktZo.js → Notification-DQostuW6.js} +3 -3
  20. package/dist/{PrefPanel-CHkc6r6b.js → PrefPanel-Cf-xZ261.js} +7 -7
  21. package/dist/PrevNextNav-Cd6_IdPd.js +62 -0
  22. package/dist/{RoadmapDetails-BWt0J4Pn.js → RoadmapDetails-DMrLLty1.js} +5 -5
  23. package/dist/{Search-D29JM1a_.js → Search-Cy79c2sN.js} +5 -5
  24. package/dist/{SearchDropdown-BSUAlaMY.js → SearchDropdown-BA7CPuRf.js} +1 -1
  25. package/dist/{VideoCover-C18NhQcY.js → VideoCover-DlhRqr4Q.js} +1 -1
  26. package/dist/{VideoPlayer-UM4M4C5b.js → VideoPlayer-De_ejf8u.js} +5 -5
  27. package/dist/{VideoPlayerModal-IRwjMLoy.js → VideoPlayerModal-DNUIn0jM.js} +2 -2
  28. package/dist/{YoutubeModal-BOnH866s.js → YoutubeModal-D_pHHwxa.js} +2 -2
  29. package/dist/components/BrowserFrame/index.js +1 -1
  30. package/dist/components/Button/index.js +1 -1
  31. package/dist/components/ButtonGroup/index.js +1 -1
  32. package/dist/components/Checkbox/index.js +1 -1
  33. package/dist/components/CodeBlock/index.js +1 -1
  34. package/dist/components/CopyCode/index.js +1 -1
  35. package/dist/components/Dropdown/index.js +1 -1
  36. package/dist/components/Footer/CookiePolicyModal.js +1 -1
  37. package/dist/components/Footer/FooterBottom.js +1 -1
  38. package/dist/components/Footer/FooterHelp.js +1 -1
  39. package/dist/components/Footer/FooterLinks.js +1 -1
  40. package/dist/components/Footer/YoutubeModal.js +1 -1
  41. package/dist/components/Footer/index.js +1 -1
  42. package/dist/components/Header/index.js +1 -1
  43. package/dist/components/InputGrouped/index.js +1 -1
  44. package/dist/components/Label/index.js +1 -1
  45. package/dist/components/LogoCarousel/index.js +1 -1
  46. package/dist/components/Modal/ModalContactFooter.js +2 -2
  47. package/dist/components/Modal/index.js +2 -2
  48. package/dist/components/NewsletterSignup/index.js +1 -1
  49. package/dist/components/Notification/index.js +1 -1
  50. package/dist/components/PrefPanel/index.js +1 -1
  51. package/dist/components/PrevNextNav/index.js +2 -0
  52. package/dist/components/RoadmapDetails/index.js +1 -1
  53. package/dist/components/Search/index.js +1 -1
  54. package/dist/components/SearchDropdown/index.js +1 -1
  55. package/dist/components/Sidebar/NavDisclosure.js +1 -1
  56. package/dist/components/Sidebar/NavGroup.js +1 -1
  57. package/dist/components/Sidebar/Sidebar.js +4 -4
  58. package/dist/components/Sidebar/SidebarLayout.js +1 -1
  59. package/dist/components/Sidebar/SidebarSwitcher.js +1 -1
  60. package/dist/components/VideoCover/index.js +1 -1
  61. package/dist/components/VideoPlayer/VideoPlayerModal.js +1 -1
  62. package/dist/components/VideoPlayer/index.js +1 -1
  63. package/dist/{create-element-DxkdwAGs.js → create-element-BNkLOXrc.js} +1 -1
  64. package/dist/{esm-CUgR2iUX.js → esm-u0DqOC56.js} +65 -51
  65. package/dist/highsoft-ui.css +1 -1
  66. package/dist/lib/components/PrevNextNav/index.d.ts +44 -0
  67. package/dist/lib/main.d.ts +2 -0
  68. package/dist/main.js +23 -22
  69. package/dist/{prism-light-Czk1yGD_.js → prism-light-CAkriFcS.js} +1 -1
  70. package/package.json +1 -1
package/CLAUDE.md CHANGED
@@ -757,6 +757,42 @@ A page that has a site `<Header>` already spends the top of a phone screen on th
757
757
  - The grab handle is `aria-hidden` — it's the touch affordance, and the labelled close button is the control. Under `prefers-reduced-motion: reduce` the sheet arrives and leaves instantly; dragging it still tracks the finger, since that's direct manipulation rather than authored motion.
758
758
  - Widening past 760px retires the sheet without moving focus — a resize isn't a dismissal.
759
759
 
760
+ ### PrevNextNav
761
+ Previous / next footer navigation — two link cards in a three-slot grid (`1fr auto 1fr`) with an optional centered back-to-overview button. For sequential content: docs articles, changelog versions, API option pages.
762
+
763
+ ```tsx
764
+ import NextLink from 'next/link'
765
+
766
+ <PrevNextNav
767
+ as={NextLink}
768
+ aria-label="Article navigation"
769
+ prev={{ href: '/docs/install', title: 'Installation' }}
770
+ next={{ href: '/docs/first-chart', title: 'Your first chart' }}
771
+ back={{ href: '/docs', label: 'All Highcharts Core articles' }}
772
+ />
773
+
774
+ // At an edge, omit the missing side — a disabled "—" card keeps the grid balanced
775
+ <PrevNextNav
776
+ prev={undefined}
777
+ next={{ href: '/core/v1.1.0/', title: 'v1.1.0' }}
778
+ back={{ href: '/core/', label: 'All Highcharts Core versions' }}
779
+ aria-label="Version navigation"
780
+ />
781
+ ```
782
+
783
+ - **`prev` / `next`:** `{ href?, title, linkProps? }` — the link cards (chevron + small "Previous"/"Next" overline + title, ellipsized). Omit one at an edge: it renders as a bordered, non-interactive "—" card at 0.4 opacity so the grid keeps its shape. Omit **both** and the component renders nothing.
784
+ - **`back`:** `{ href?, label, linkProps? }` — the centered overview button (e.g. "All {product} versions"). Optional; without it the cards keep their outer columns.
785
+ - **`as`:** link component for all three slots — `'a'` default, `as={NextLink}` for SPA navigation (like NavItem). `linkProps` forwards per-link extras (`target`, `onClick`, router `to`, …).
786
+ - **`prevLabel` / `nextLabel`:** the overlines, default `'Previous'` / `'Next'` (customizable for localization).
787
+ - **≤850px:** the cards pair up side by side and the back button spans underneath; titles drop to size-75.
788
+ - Hover stays neutral: a `--HS-surface-ui-background-0` wash, card text stepping up to `--HS-text-primary-default`, and the border strengthening to `--HS-surface-ui-border-300` — no brand tint (the brand color is reserved for the focus ring). The background wash is what keeps hover legible in dark mode, where border-300 remaps to the same value as border-200 and the border step alone nearly disappears. Everything uses `--HS-*` tokens, so dark mode is automatic.
789
+
790
+ **Accessibility:**
791
+ - The wrapper is a real `<nav>` — pass `aria-label` to name it ("Article navigation", "Version navigation"); it defaults to `'Previous and next'`.
792
+ - The cards and back button are real links: keyboard reachable, with the shared `a11y-focus-ring` mixin on `:focus-visible` — the two-tone ring (background-colored gap + brand outer) animating on `--animations-bounce-default`, same as InputSolo/Checkbox/RadioBox. Hover colors transition on `--animations-fade-fast`.
793
+ - The disabled edge card is a non-interactive `aria-disabled` span — not focusable, so keyboard users skip straight to the real links, while AT can still read "Previous —" as "there is no previous page".
794
+ - DOM order is prev → back → next, matching the desktop visual order, so focus moves left-to-right across the row.
795
+
760
796
  ## Hooks
761
797
 
762
798
  ### useSuccessFlash
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { G as t, L as n, R as r, k as i } from "./esm-CUgR2iUX.js";
3
- import { t as a } from "./Button-BCbWIPg1.js";
2
+ import { G as t, L as n, R as r, k as i } from "./esm-u0DqOC56.js";
3
+ import { t as a } from "./Button-Ckhn8DSF.js";
4
4
  import { forwardRef as o, useCallback as s, useEffect as c, useRef as l, useState as u } from "react";
5
5
  import { jsx as d, jsxs as f } from "react/jsx-runtime";
6
6
  var p = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { F as t } from "./esm-CUgR2iUX.js";
2
+ import { F as t } from "./esm-u0DqOC56.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-BCbWIPg1.js";
2
+ import { t } from "./Button-Ckhn8DSF.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 { P as t } from "./esm-CUgR2iUX.js";
2
+ import { P as t } from "./esm-u0DqOC56.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 { et as r, q as i } from "./esm-CUgR2iUX.js";
4
- import { t as a } from "./Button-BCbWIPg1.js";
3
+ import { q as r, tt as i } from "./esm-u0DqOC56.js";
4
+ import { t as a } from "./Button-Ckhn8DSF.js";
5
5
  import { t as o } from "./FrameworkIcon-B8GmMx0r.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-Czk1yGD_.js"),
26
- import("./create-element-DxkdwAGs.js").then((e) => e.n),
25
+ import("./prism-light-CAkriFcS.js"),
26
+ import("./create-element-BNkLOXrc.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-CUgR2iUX.js";
2
- import { t } from "./Button-BCbWIPg1.js";
1
+ import { t as e } from "./esm-u0DqOC56.js";
2
+ import { t } from "./Button-Ckhn8DSF.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 { et as r, q as i } from "./esm-CUgR2iUX.js";
4
- import { t as a } from "./Button-BCbWIPg1.js";
3
+ import { q as r, tt as i } from "./esm-u0DqOC56.js";
4
+ import { t as a } from "./Button-Ckhn8DSF.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 { et as t } from "./esm-CUgR2iUX.js";
2
+ import { tt as t } from "./esm-u0DqOC56.js";
3
3
  import { t as n } from "./Icon-DJTgdvsG.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 b, i as x, n as S, r as C, t as w } from "./dist-CE9LFbij.js";
@@ -1,14 +1,14 @@
1
1
  import { r as e } from "./utils-K9S_6_Eq.js";
2
- import { J as t, et as n } from "./esm-CUgR2iUX.js";
3
- import { t as r } from "./Button-BCbWIPg1.js";
2
+ import { J as t, tt as n } from "./esm-u0DqOC56.js";
3
+ import { t as r } from "./Button-Ckhn8DSF.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-BrmQ7pXZ.js";
8
- import { t as c } from "./FooterBottom-CRe2Mvjd.js";
9
- import { t as l } from "./FooterHelp-CTSvficW.js";
10
- import { t as u } from "./FooterLinks-BoDdQUWb.js";
11
- import { t as d } from "./YoutubeModal-BOnH866s.js";
7
+ import { t as s } from "./NewsletterSignup-g8wPQ7NZ.js";
8
+ import { t as c } from "./FooterBottom-ZK9F7wLx.js";
9
+ import { t as l } from "./FooterHelp-Csfq-quf.js";
10
+ import { t as u } from "./FooterLinks-CGoBeReu.js";
11
+ import { t as d } from "./YoutubeModal-D_pHHwxa.js";
12
12
  import { jsx as f, jsxs as p } from "react/jsx-runtime";
13
13
  var m = {
14
14
  discordCard: "_4W4F3q_discordCard",
@@ -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-TdrVbP_E.js";
4
+ import { t as d } from "./CookiePolicyModal-CPNTKMHc.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 { d as n, g as r } from "./esm-CUgR2iUX.js";
2
+ import { d as n, g as r } from "./esm-u0DqOC56.js";
3
3
  import { t as i } from "./Icon-DJTgdvsG.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";
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { I as t } from "./esm-CUgR2iUX.js";
2
+ import { I as t } from "./esm-u0DqOC56.js";
3
3
  import { t as n } from "./Icon-DJTgdvsG.js";
4
4
  import { t as r } from "./Typography-AvvBRu-u.js";
5
- import { t as i } from "./Label-k6e4Rqb-.js";
5
+ import { t as i } from "./Label-KDdBAgyD.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 { A as o, V as s, b as c, f as l, j as u, ot as d, p as f, rt as p, s as m, t as h, tt as g } from "./esm-CUgR2iUX.js";
4
- import { t as _ } from "./Button-BCbWIPg1.js";
3
+ import { A as o, V as s, b as c, f as l, it as u, j as d, nt as f, p, s as m, st as h, t as g } from "./esm-u0DqOC56.js";
4
+ import { t as _ } from "./Button-Ckhn8DSF.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-CHkc6r6b.js";
8
- import { t as x } from "./Search-D29JM1a_.js";
9
- import { t as S } from "./Label-k6e4Rqb-.js";
10
- import { t as C } from "./Notification-BFLAktZo.js";
7
+ import { t as b } from "./PrefPanel-Cf-xZ261.js";
8
+ import { t as x } from "./Search-Cy79c2sN.js";
9
+ import { t as S } from "./Label-KDdBAgyD.js";
10
+ import { t as C } from "./Notification-DQostuW6.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,7 +75,7 @@ var A = {
75
75
  {
76
76
  title: "Products",
77
77
  url: "https://www.highcharts.com/products/",
78
- icon: /* @__PURE__ */ O(g, {})
78
+ icon: /* @__PURE__ */ O(f, {})
79
79
  },
80
80
  {
81
81
  title: "Demos",
@@ -95,12 +95,12 @@ var A = {
95
95
  {
96
96
  title: "Pricing",
97
97
  url: "https://shop.highcharts.com/",
98
- icon: /* @__PURE__ */ O(p, {})
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(d, {})
103
+ icon: /* @__PURE__ */ O(h, {})
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: c = "https://www.highcharts.com", pathname: d, cssVariable: p, position: g = "sticky" }) {
196
+ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host: c = "https://www.highcharts.com", pathname: u, cssVariable: f, position: h = "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 = "", p && document.documentElement.style.setProperty("--header-bottom", `${r}px`), () => {
203
- e.style.transform = "", p && document.documentElement.style.removeProperty("--header-bottom");
202
+ if (h === "static") return e.style.transform = "", f && document.documentElement.style.setProperty("--header-bottom", `${r}px`), () => {
203
+ e.style.transform = "", f && 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)`, p && 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)`, f && 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 = "", p && document.documentElement.style.removeProperty("--header-bottom");
214
+ window.removeEventListener("scroll", u), c !== null && cancelAnimationFrame(c), e.style.transform = "", f && document.documentElement.style.removeProperty("--header-bottom");
215
215
  };
216
216
  }, [
217
- p,
217
+ f,
218
218
  N,
219
219
  V.length,
220
- g,
220
+ h,
221
221
  t?.length
222
222
  ]), n(() => {
223
223
  if (!o.length) return;
@@ -299,7 +299,7 @@ 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/", c),
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,
@@ -312,7 +312,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
312
312
  variant: F ? "soft" : "transparent",
313
313
  className: A.menu,
314
314
  onClick: X,
315
- children: [F ? "Close" : "Menu", O(F ? h : u, {})]
315
+ children: [F ? "Close" : "Menu", O(F ? g : d, {})]
316
316
  }) })
317
317
  ]
318
318
  })
@@ -323,7 +323,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
323
323
  items: t,
324
324
  link: s,
325
325
  host: c,
326
- pathname: d
326
+ pathname: u
327
327
  }),
328
328
  r
329
329
  ]
@@ -363,7 +363,7 @@ 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/", c),
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,
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { Q as t, U as n, W as r } from "./esm-CUgR2iUX.js";
3
- import { t as i } from "./Button-BCbWIPg1.js";
2
+ import { $ as t, U as n, W as r } from "./esm-u0DqOC56.js";
3
+ import { t as i } from "./Button-Ckhn8DSF.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 = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { u as t } from "./esm-CUgR2iUX.js";
2
+ import { u as t } from "./esm-u0DqOC56.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 { a as e } from "./utils-K9S_6_Eq.js";
2
2
  import { t } from "./clsx-BWCAbrjV.js";
3
- import { T as n, x as r } from "./esm-CUgR2iUX.js";
4
- import { t as i } from "./Button-BCbWIPg1.js";
3
+ import { T as n, x as r } from "./esm-u0DqOC56.js";
4
+ import { t as i } from "./Button-Ckhn8DSF.js";
5
5
  import { n as a, t as o } from "./ClientLogo-Dj7K48YL.js";
6
6
  import { useEffect as s, useRef as c, useState as l } from "react";
7
7
  import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
@@ -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 { $ as n, B as r, ot as i } from "./esm-CUgR2iUX.js";
4
- import { t as a } from "./Button-BCbWIPg1.js";
3
+ import { B as n, et as r, st as i } from "./esm-u0DqOC56.js";
4
+ import { t as a } from "./Button-Ckhn8DSF.js";
5
5
  import { t as o } from "./Icon-DJTgdvsG.js";
6
6
  import { t as s } from "./Link-CYR92_U0.js";
7
7
  import { t as c } from "./InputSolo-DUdKtZjX.js";
@@ -78,7 +78,7 @@ function g({ link: g = "a", privacyUrl: _ = "https://www.highcharts.com/privacy/
78
78
  L ? /* @__PURE__ */ m("div", {
79
79
  className: h.content,
80
80
  children: [/* @__PURE__ */ p(o, {
81
- name: r,
81
+ name: n,
82
82
  size: 16
83
83
  }), E ? "Check your inbox and confirm your email to finish signing up." : "You’re already subscribed to our newsletter."]
84
84
  }) : /* @__PURE__ */ m("form", {
@@ -104,7 +104,7 @@ function g({ link: g = "a", privacyUrl: _ = "https://www.highcharts.com/privacy/
104
104
  variant: "success",
105
105
  disabled: !0,
106
106
  children: [/* @__PURE__ */ p(o, {
107
- name: n,
107
+ name: r,
108
108
  size: 16
109
109
  }), "You’re in"]
110
110
  }) : /* @__PURE__ */ p(a, {
@@ -1,8 +1,8 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { t } from "./esm-CUgR2iUX.js";
3
- import { t as n } from "./Button-BCbWIPg1.js";
2
+ import { t } from "./esm-u0DqOC56.js";
3
+ import { t as n } from "./Button-Ckhn8DSF.js";
4
4
  import { t as r } from "./Container-BDssaLig.js";
5
- import { t as i } from "./Label-k6e4Rqb-.js";
5
+ import { t as i } from "./Label-KDdBAgyD.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 { D as r, E as i, et as a, h as o, l as s } from "./esm-CUgR2iUX.js";
4
- import { t as c } from "./Button-BCbWIPg1.js";
3
+ import { D as r, E as i, h as a, l as o, tt as s } from "./esm-u0DqOC56.js";
4
+ import { t as c } from "./Button-Ckhn8DSF.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";
@@ -203,17 +203,17 @@ function $({ children: e, id: t, ...r }) {
203
203
  }), /* @__PURE__ */ k("label", {
204
204
  htmlFor: t,
205
205
  className: Q.radio,
206
- children: [e, /* @__PURE__ */ O(a, { className: Q.check })]
206
+ children: [e, /* @__PURE__ */ O(s, { className: Q.check })]
207
207
  })] });
208
208
  }
209
209
  function de() {
210
- let { theme: n, systemTheme: a, setTheme: l } = e(), u = t();
210
+ let { theme: n, systemTheme: s, 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,
@@ -229,7 +229,7 @@ function de() {
229
229
  children: [
230
230
  /* @__PURE__ */ O(r, {}),
231
231
  "Auto (",
232
- a,
232
+ s,
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(s, {}), "Light"]
241
+ children: [/* @__PURE__ */ O(o, {}), "Light"]
242
242
  }),
243
243
  /* @__PURE__ */ k($, {
244
244
  id: "dark",
@@ -0,0 +1,62 @@
1
+ import { t as e } from "./clsx-BWCAbrjV.js";
2
+ import { Q as t, Z as n } from "./esm-u0DqOC56.js";
3
+ import { t as r } from "./Icon-DJTgdvsG.js";
4
+ import { forwardRef as i } from "react";
5
+ import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ var c = {
7
+ back: "MqOWEq_back",
8
+ disabled: "MqOWEq_disabled",
9
+ label: "MqOWEq_label",
10
+ link: "MqOWEq_link",
11
+ nav: "MqOWEq_nav",
12
+ next: "MqOWEq_next",
13
+ prev: "MqOWEq_prev",
14
+ text: "MqOWEq_text",
15
+ title: "MqOWEq_title"
16
+ }, l = i(({ as: i, prev: l, next: u, back: d, prevLabel: f = "Previous", nextLabel: p = "Next", className: m, "aria-label": h, ...g }, _) => {
17
+ if (!l && !u) return null;
18
+ let v = i || "a", y = (i, l) => {
19
+ let u = l === "prev" ? f : p, d = /* @__PURE__ */ o(r, {
20
+ name: l === "prev" ? t : n,
21
+ size: 16
22
+ }), m = /* @__PURE__ */ s("span", {
23
+ className: c.text,
24
+ children: [/* @__PURE__ */ o("span", {
25
+ className: c.label,
26
+ children: u
27
+ }), /* @__PURE__ */ o("span", {
28
+ className: c.title,
29
+ children: i ? i.title : "—"
30
+ })]
31
+ }), h = l === "prev" ? /* @__PURE__ */ s(a, { children: [d, m] }) : /* @__PURE__ */ s(a, { children: [m, d] }), g = l === "prev" ? c.prev : c.next;
32
+ return i ? /* @__PURE__ */ o(v, {
33
+ className: e(c.link, g),
34
+ href: i.href,
35
+ ...i.linkProps,
36
+ children: h
37
+ }) : /* @__PURE__ */ o("span", {
38
+ className: e(c.link, g, c.disabled),
39
+ "aria-disabled": "true",
40
+ children: h
41
+ });
42
+ };
43
+ return /* @__PURE__ */ s("nav", {
44
+ ref: _,
45
+ className: e(c.nav, m),
46
+ "aria-label": h ?? "Previous and next",
47
+ ...g,
48
+ children: [
49
+ y(l, "prev"),
50
+ d && /* @__PURE__ */ o(v, {
51
+ className: c.back,
52
+ href: d.href,
53
+ ...d.linkProps,
54
+ children: d.label
55
+ }),
56
+ y(u, "next")
57
+ ]
58
+ });
59
+ });
60
+ l.displayName = "PrevNextNav";
61
+ //#endregion
62
+ export { l as t };
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { L as t, N as n, Q as r, c as i } from "./esm-CUgR2iUX.js";
3
- import { t as a } from "./Button-BCbWIPg1.js";
2
+ import { $ as t, L as n, N as r, c as i } from "./esm-u0DqOC56.js";
3
+ import { t as a } from "./Button-Ckhn8DSF.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(r, {})
49
+ children: /* @__PURE__ */ l(t, {})
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 r = e.variant ?? "neutral", i = l(r === "soft" ? t : n, {}), o = e.icon === null ? void 0 : e.icon === void 0 ? i : e.icon;
71
+ let t = e.variant ?? "neutral", i = l(t === "soft" ? n : r, {}), o = e.icon === null ? void 0 : e.icon === void 0 ? i : e.icon;
72
72
  return /* @__PURE__ */ l(a, {
73
- variant: r,
73
+ variant: t,
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 { C as o, H as s, K as c, at as l, it as u, m as d, nt as f, p, st as m, v as h, y as g, z as _ } from "./esm-CUgR2iUX.js";
3
- import { t as v } from "./Button-BCbWIPg1.js";
2
+ import { C as o, H as s, K as c, at as l, ct as u, m as d, ot as f, p, rt as m, v as h, y as g, z as _ } from "./esm-u0DqOC56.js";
3
+ import { t as v } from "./Button-Ckhn8DSF.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";
@@ -4503,8 +4503,8 @@ function Wt() {
4503
4503
  }, ue = {
4504
4504
  products: /* @__PURE__ */ F(d, {}),
4505
4505
  demo: /* @__PURE__ */ F(o, {}),
4506
- docs: /* @__PURE__ */ F(f, {}),
4507
- blog: /* @__PURE__ */ F(m, {}),
4506
+ docs: /* @__PURE__ */ F(m, {}),
4507
+ blog: /* @__PURE__ */ F(u, {}),
4508
4508
  misc: /* @__PURE__ */ F(_, {}),
4509
4509
  shop: /* @__PURE__ */ F(p, {}),
4510
4510
  file: /* @__PURE__ */ F(s, {})
@@ -4601,7 +4601,7 @@ 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(l, {}) }), /* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(u, {}) })]
4604
+ children: [/* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(f, {}) }), /* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(l, {}) })]
4605
4605
  }), "Navigate"]
4606
4606
  }),
4607
4607
  /* @__PURE__ */ I("div", {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { _ as t } from "./esm-CUgR2iUX.js";
2
+ import { _ as t } from "./esm-u0DqOC56.js";
3
3
  import { t as n } from "./Icon-DJTgdvsG.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";
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { ct as t } from "./esm-CUgR2iUX.js";
2
+ import { lt as t } from "./esm-u0DqOC56.js";
3
3
  import { t as n } from "./Icon-DJTgdvsG.js";
4
4
  import { t as r } from "./Typography-AvvBRu-u.js";
5
5
  import { forwardRef as i, useCallback as a, useEffect as o, useRef as s, useState as c } from "react";
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { M as t, S as n, a as r, i, k as a, lt as o, o as s, r as ee, t as c, w as l } from "./esm-CUgR2iUX.js";
2
+ import { M as t, S as n, a as r, i, k as a, o, r as s, t as ee, ut as c, w as l } from "./esm-u0DqOC56.js";
3
3
  import { t as u } from "./Icon-DJTgdvsG.js";
4
4
  import { detectProvider as d, providerPosterUrl as f, useMediaEngine as p } from "./components/VideoPlayer/useMediaEngine.js";
5
5
  import { forwardRef as m, useCallback as h, useEffect as g, useId as _, useImperativeHandle as v, useRef as y, useState as b } from "react";
@@ -216,7 +216,7 @@ var O = m(({ src: m, sources: O, poster: k, muted: re = !1, autoPlay: ie = !1, l
216
216
  break;
217
217
  default:
218
218
  }
219
- }, De = k ?? f(I, m) ?? xe, Oe = V.duration ? E(V.currentTime / V.duration) : 0, ke = V.muted || V.volume === 0 ? ee : V.volume < .5 ? i : r, Ae = {
219
+ }, De = k ?? f(I, m) ?? xe, Oe = V.duration ? E(V.currentTime / V.duration) : 0, ke = V.muted || V.volume === 0 ? s : V.volume < .5 ? i : r, Ae = {
220
220
  "--vp-radius": `${j}px`,
221
221
  "--vp-gradient": ce,
222
222
  aspectRatio: K ? void 0 : se
@@ -365,7 +365,7 @@ var O = m(({ src: m, sources: O, poster: k, muted: re = !1, autoPlay: ie = !1, l
365
365
  "aria-controls": Q,
366
366
  "aria-label": X ? "Hide transcript" : "Show transcript",
367
367
  children: /* @__PURE__ */ x(u, {
368
- name: o,
368
+ name: c,
369
369
  size: 20
370
370
  })
371
371
  }),
@@ -376,7 +376,7 @@ var O = m(({ src: m, sources: O, poster: k, muted: re = !1, autoPlay: ie = !1, l
376
376
  "aria-pressed": Y !== -1,
377
377
  "aria-label": Y === -1 ? "Turn on captions" : z.length > 1 ? `Captions: ${R[Y]?.label ?? ""} — next track` : "Turn off captions",
378
378
  children: /* @__PURE__ */ x(u, {
379
- name: s,
379
+ name: o,
380
380
  size: 20
381
381
  })
382
382
  }),
@@ -414,7 +414,7 @@ var O = m(({ src: m, sources: O, poster: k, muted: re = !1, autoPlay: ie = !1, l
414
414
  onClick: we,
415
415
  "aria-label": "Close transcript",
416
416
  children: /* @__PURE__ */ x(u, {
417
- name: c,
417
+ name: ee,
418
418
  size: 20
419
419
  })
420
420
  })]
@@ -1,7 +1,7 @@
1
- import { n as e } from "./esm-CUgR2iUX.js";
1
+ import { n as e } from "./esm-u0DqOC56.js";
2
2
  import { t } from "./dist-J9cXmrDi.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
- import { t as l } from "./VideoPlayer-UM4M4C5b.js";
4
+ import { t as l } from "./VideoPlayer-De_ejf8u.js";
5
5
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
6
6
  var f = {
7
7
  close: "ig0T5q_close",