highsoft-ui 1.0.164 → 1.0.166
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/CLAUDE.md +38 -2
- package/dist/{BrowserFrame-BSM0R7PQ.js → BrowserFrame-BWKH-jYq.js} +2 -2
- package/dist/{Button-BCbWIPg1.js → Button-Ckhn8DSF.js} +1 -1
- package/dist/{ButtonGroup-DGEDf4ic.js → ButtonGroup-DJ9-E38n.js} +1 -1
- package/dist/{Checkbox-CO0SRaAZ.js → Checkbox-D1mlWTmw.js} +1 -1
- package/dist/{CodeBlock-Ugik4xMM.js → CodeBlock-C2W0T4RT.js} +5 -5
- package/dist/{CookiePolicyModal-TdrVbP_E.js → CookiePolicyModal-CPNTKMHc.js} +2 -2
- package/dist/{CopyCode-_sKjpGqB.js → CopyCode-BOehQAZN.js} +3 -3
- package/dist/{Dropdown-LiG-JAoo.js → Dropdown-Cjl8RQ5Y.js} +1 -1
- package/dist/{Footer-DzIGLnEz.js → Footer-DLMNyBXC.js} +7 -7
- package/dist/{FooterBottom-CRe2Mvjd.js → FooterBottom-ZK9F7wLx.js} +1 -1
- package/dist/{FooterHelp-CTSvficW.js → FooterHelp-Csfq-quf.js} +1 -1
- package/dist/{FooterLinks-BoDdQUWb.js → FooterLinks-CGoBeReu.js} +2 -2
- package/dist/{Header-CTO6Y6oH.js → Header-Pe6siDNx.js} +20 -20
- package/dist/{InputGrouped-y0JyshpR.js → InputGrouped-BLtnqxWc.js} +2 -2
- package/dist/{Label-k6e4Rqb-.js → Label-KDdBAgyD.js} +1 -1
- package/dist/{LogoCarousel-pRYdmphl.js → LogoCarousel-CJShpLJo.js} +2 -2
- package/dist/{NewsletterSignup-BrmQ7pXZ.js → NewsletterSignup-g8wPQ7NZ.js} +4 -4
- package/dist/{Notification-BFLAktZo.js → Notification-DQostuW6.js} +3 -3
- package/dist/{PrefPanel-CHkc6r6b.js → PrefPanel-Cf-xZ261.js} +7 -7
- package/dist/PrevNextNav-Cd6_IdPd.js +62 -0
- package/dist/{RoadmapDetails-BWt0J4Pn.js → RoadmapDetails-DMrLLty1.js} +5 -5
- package/dist/{Search-D29JM1a_.js → Search-Cy79c2sN.js} +5 -5
- package/dist/{SearchDropdown-BSUAlaMY.js → SearchDropdown-BA7CPuRf.js} +1 -1
- package/dist/{VideoCover-C18NhQcY.js → VideoCover-DlhRqr4Q.js} +1 -1
- package/dist/{VideoPlayer-UM4M4C5b.js → VideoPlayer-De_ejf8u.js} +5 -5
- package/dist/{VideoPlayerModal-IRwjMLoy.js → VideoPlayerModal-DNUIn0jM.js} +2 -2
- package/dist/{YoutubeModal-BOnH866s.js → YoutubeModal-D_pHHwxa.js} +2 -2
- package/dist/components/BrowserFrame/index.js +1 -1
- package/dist/components/Button/index.js +1 -1
- package/dist/components/ButtonGroup/index.js +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/CodeBlock/index.js +1 -1
- package/dist/components/CopyCode/index.js +1 -1
- package/dist/components/Dropdown/index.js +1 -1
- package/dist/components/Footer/CookiePolicyModal.js +1 -1
- package/dist/components/Footer/FooterBottom.js +1 -1
- package/dist/components/Footer/FooterHelp.js +1 -1
- package/dist/components/Footer/FooterLinks.js +1 -1
- package/dist/components/Footer/YoutubeModal.js +1 -1
- package/dist/components/Footer/index.js +1 -1
- package/dist/components/Header/index.js +1 -1
- package/dist/components/InputGrouped/index.js +1 -1
- package/dist/components/Label/index.js +1 -1
- package/dist/components/LogoCarousel/index.js +1 -1
- package/dist/components/Modal/ModalContactFooter.js +2 -2
- package/dist/components/Modal/index.js +2 -2
- package/dist/components/NewsletterSignup/index.js +1 -1
- package/dist/components/Notification/index.js +1 -1
- package/dist/components/PrefPanel/index.js +1 -1
- package/dist/components/PrevNextNav/index.js +2 -0
- package/dist/components/RoadmapDetails/index.js +1 -1
- package/dist/components/Search/index.js +1 -1
- package/dist/components/SearchDropdown/index.js +1 -1
- package/dist/components/Sidebar/NavDisclosure.js +1 -1
- package/dist/components/Sidebar/NavGroup.js +1 -1
- package/dist/components/Sidebar/Sidebar.js +4 -4
- package/dist/components/Sidebar/SidebarLayout.js +1 -1
- package/dist/components/Sidebar/SidebarSwitcher.js +1 -1
- package/dist/components/VideoCover/index.js +1 -1
- package/dist/components/VideoPlayer/VideoPlayerModal.js +1 -1
- package/dist/components/VideoPlayer/index.js +1 -1
- package/dist/components/VideoPlayer/useMediaEngine.js +92 -88
- package/dist/{create-element-DxkdwAGs.js → create-element-BNkLOXrc.js} +1 -1
- package/dist/{esm-CUgR2iUX.js → esm-u0DqOC56.js} +65 -51
- package/dist/highsoft-ui.css +1 -1
- package/dist/lib/components/PrevNextNav/index.d.ts +44 -0
- package/dist/lib/components/VideoPlayer/useMediaEngine.d.ts +6 -0
- package/dist/lib/main.d.ts +2 -0
- package/dist/main.js +23 -22
- package/dist/{prism-light-Czk1yGD_.js → prism-light-CAkriFcS.js} +1 -1
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -563,14 +563,14 @@ Sutro-inspired media player with a brand-accent scrubber, floating volume, auto-
|
|
|
563
563
|
transcript={<HistoryTranscript />}
|
|
564
564
|
/>
|
|
565
565
|
```
|
|
566
|
-
- **`src`** (or **`sources`**): self-hosted URL, or a YouTube/Vimeo link (auto-detected)
|
|
566
|
+
- **`src`** (or **`sources`**): self-hosted URL, or a YouTube/Vimeo link (auto-detected). Privacy-enhanced `youtube-nocookie.com` URLs (what the Highcharts docs use for GDPR) are detected as YouTube and the embed keeps the nocookie host rather than downgrading to `youtube.com`.
|
|
567
567
|
- **`poster`, `muted`, `autoPlay`, `loop`, `playsInline`, `preload`**: standard video props (`autoPlay` needs `muted`)
|
|
568
568
|
- **`aspectRatio`** (default `'16 / 9'`), **`radius`** (default `16`)
|
|
569
569
|
- **`accentGradient`**: scrubber/volume fill — defaults to the brand color; accepts any CSS color or gradient
|
|
570
570
|
- **`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.
|
|
571
571
|
- **`transcript`** (+ **`transcriptTitle`**, default `'Transcript'`): any React content, docked as a panel below the player and toggled from the control bar
|
|
572
572
|
- Keyboard: space/`k` play, `f` fullscreen, `m` mute, `c` captions, `t` transcript, arrows seek; forwards a ref to the underlying `<video>`
|
|
573
|
-
- **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`.
|
|
573
|
+
- **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`. A nocookie source gets the same custom control bar as any YouTube source, so keyboard shortcuts, ARIA and focus handling are unchanged; only the embed host differs.
|
|
574
574
|
- 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.
|
|
575
575
|
- **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`).
|
|
576
576
|
- 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`.
|
|
@@ -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-
|
|
3
|
-
import { t as a } from "./Button-
|
|
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 { P as t } from "./esm-
|
|
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 {
|
|
4
|
-
import { t as a } from "./Button-
|
|
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-
|
|
26
|
-
import("./create-element-
|
|
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 ?
|
|
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-
|
|
2
|
-
import { t } from "./Button-
|
|
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 {
|
|
4
|
-
import { t as a } from "./Button-
|
|
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 ?
|
|
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 {
|
|
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,
|
|
3
|
-
import { t as r } from "./Button-
|
|
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-
|
|
8
|
-
import { t as c } from "./FooterBottom-
|
|
9
|
-
import { t as l } from "./FooterHelp-
|
|
10
|
-
import { t as u } from "./FooterLinks-
|
|
11
|
-
import { t as d } from "./YoutubeModal-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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,
|
|
4
|
-
import { t as _ } from "./Button-
|
|
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-
|
|
8
|
-
import { t as x } from "./Search-
|
|
9
|
-
import { t as S } from "./Label-
|
|
10
|
-
import { t as C } from "./Notification-
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
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 (
|
|
203
|
-
e.style.transform = "",
|
|
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)`,
|
|
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 = "",
|
|
214
|
+
window.removeEventListener("scroll", u), c !== null && cancelAnimationFrame(c), e.style.transform = "", f && document.documentElement.style.removeProperty("--header-bottom");
|
|
215
215
|
};
|
|
216
216
|
}, [
|
|
217
|
-
|
|
217
|
+
f,
|
|
218
218
|
N,
|
|
219
219
|
V.length,
|
|
220
|
-
|
|
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(
|
|
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 ?
|
|
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:
|
|
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(
|
|
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 {
|
|
3
|
-
import { t as i } from "./Button-
|
|
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,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-
|
|
4
|
-
import { t as i } from "./Button-
|
|
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 {
|
|
4
|
-
import { t as a } from "./Button-
|
|
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:
|
|
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:
|
|
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-
|
|
3
|
-
import { t as n } from "./Button-
|
|
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-
|
|
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,
|
|
4
|
-
import { t as c } from "./Button-
|
|
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(
|
|
206
|
+
children: [e, /* @__PURE__ */ O(s, { className: Q.check })]
|
|
207
207
|
})] });
|
|
208
208
|
}
|
|
209
209
|
function de() {
|
|
210
|
-
let { theme: n, systemTheme:
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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 {
|
|
3
|
-
import { t as a } from "./Button-
|
|
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(
|
|
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
|
|
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:
|
|
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,
|
|
3
|
-
import { t as v } from "./Button-
|
|
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(
|
|
4507
|
-
blog: /* @__PURE__ */ F(
|
|
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(
|
|
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-
|
|
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 {
|
|
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";
|