highsoft-ui 1.0.145 → 1.0.147
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 +15 -1
- package/dist/{Button-DIGyNR41.js → Button-BGsqFCRW.js} +1 -1
- package/dist/{ButtonGroup-BSQzx-sZ.js → ButtonGroup-DKfaXOeS.js} +1 -1
- package/dist/{Checkbox-wlH6EGWW.js → Checkbox-CniRhVkQ.js} +1 -1
- package/dist/{CodeBlock-DtTAC5ru.js → CodeBlock-BeseY88j.js} +5 -5
- package/dist/{CookiePolicyModal-CGRXL0wR.js → CookiePolicyModal-k89sCBEJ.js} +2 -2
- package/dist/{CopyCode-_MHQorJS.js → CopyCode-_yeXCeeq.js} +3 -3
- package/dist/{Dropdown-CVyrHJiC.js → Dropdown-B_Ib6i1c.js} +1 -1
- package/dist/{Footer-DW2asf8g.js → Footer-_P2pj3K7.js} +8 -8
- package/dist/{FooterBottom-CP0f9kYj.js → FooterBottom-CqpN8Wky.js} +1 -1
- package/dist/{FooterHelp-BxDXmtHK.js → FooterHelp-Cb5sraAE.js} +3 -3
- package/dist/{FooterLinks-BZwAVSm4.js → FooterLinks-CogdK_5Z.js} +2 -2
- package/dist/{Header-DQ1xi25C.js → Header-CVKH_INR.js} +25 -25
- package/dist/{InputGrouped-BE3zLov9.js → InputGrouped-CHGCMmsK.js} +11 -11
- package/dist/{Label-C_KZM-FN.js → Label-CgiWi1v6.js} +1 -1
- package/dist/{NewsletterSignup-CJAI81M3.js → NewsletterSignup-DrcPfdrg.js} +2 -2
- package/dist/{Notification-C2kN_ceR.js → Notification-B3skQvZE.js} +3 -3
- package/dist/{PrefPanel-BZUX1nfw.js → PrefPanel-BGw72I_D.js} +10 -10
- package/dist/{RoadmapDetails-CfayA5CZ.js → RoadmapDetails-XS0OylnP.js} +5 -5
- package/dist/{Search-Cw_e1PyF.js → Search-UPVxQliM.js} +12 -12
- package/dist/{SearchDropdown-ECOTZ1Uf.js → SearchDropdown-L_rQz1vn.js} +1 -1
- package/dist/VideoCover-DqMDvzvA.js +195 -0
- package/dist/VideoPlayer-Cq_garSg.js +455 -0
- package/dist/{VideoPlayerModal-DbP3OjSF.js → VideoPlayerModal-D1v1O2kW.js} +2 -2
- package/dist/{YoutubeModal-D_ZHayEn.js → YoutubeModal-BBYdQil8.js} +4 -2
- 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/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/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/Sidebar.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 +58 -55
- package/dist/{create-element-WbENDceu.js → create-element-CDnUGrhg.js} +1 -1
- package/dist/{esm-B0YmMAXt.js → esm-BnxclXHW.js} +121 -51
- package/dist/highsoft-ui.css +1 -1
- package/dist/lib/components/VideoCover/index.d.ts +39 -5
- package/dist/lib/components/VideoPlayer/index.d.ts +33 -1
- package/dist/lib/main.d.ts +1 -1
- package/dist/main.js +18 -18
- package/dist/{prism-light-C4xXs3Qn.js → prism-light-COlcVrfu.js} +1 -1
- package/dist/scss/variables.scss +25 -20
- package/package.json +1 -1
- package/dist/VideoCover-BN8wnHpf.js +0 -92
- package/dist/VideoPlayer-CKjq7IRq.js +0 -324
package/CLAUDE.md
CHANGED
|
@@ -176,6 +176,8 @@ The foundational layout component. Use it instead of raw `<div>` with inline sty
|
|
|
176
176
|
- **`iconLeft`:** `ReactNode` — icon placed before the label
|
|
177
177
|
- **`iconRight`:** `ReactNode` — icon placed after the label
|
|
178
178
|
- **`as`:** polymorphic — auto-detects `<a>` when `href` is provided
|
|
179
|
+
- **`disabled` / `loading`:** both render the button non-interactive and share one **unified disabled treatment** across variants — the coloured variants (`brand`, `success`, `attention`, `danger`) fall back to the same neutral surface as `neutral`/`soft` rather than a greyed brand colour, so a disabled control never reads as active. In dark mode disabled buttons use a muted fill with lighter (`neutral-400`) label text and a defined (`neutral-1000`) border; `transparent` stays flat but keeps its border, and `plain` is borderless label-only.
|
|
180
|
+
- **Accessibility:** a real `<button>` uses the native `disabled` attribute (removed from the tab order, not clickable); when rendered as `<a>` (via `href`), disabled instead sets `aria-disabled`, drops `href`, forces `tabIndex={-1}`, and blocks the click — so the disabled meaning is exposed either way. Disabled label contrast is intentionally muted and is exempt from WCAG 1.4.3 (inactive controls). `:focus-visible` shows a 2px brand focus ring on every variant; transitions use the design-token animations and respect `prefers-reduced-motion` via the shared tokens.
|
|
179
181
|
|
|
180
182
|
### Heading
|
|
181
183
|
```tsx
|
|
@@ -323,13 +325,25 @@ Sutro-inspired media player with a brand-accent scrubber, floating volume, auto-
|
|
|
323
325
|
<VideoPlayer src="https://youtu.be/aqz-KE-bpKQ" /> // driven via the YouTube IFrame API
|
|
324
326
|
<VideoPlayer src="https://vimeo.com/76979871" autoPlay muted />
|
|
325
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
|
+
/>
|
|
326
335
|
```
|
|
327
336
|
- **`src`** (or **`sources`**): self-hosted URL, or a YouTube/Vimeo link (auto-detected)
|
|
328
337
|
- **`poster`, `muted`, `autoPlay`, `loop`, `playsInline`, `preload`**: standard video props (`autoPlay` needs `muted`)
|
|
329
338
|
- **`aspectRatio`** (default `'16 / 9'`), **`radius`** (default `16`)
|
|
330
339
|
- **`accentGradient`**: scrubber/volume fill — defaults to the brand color; accepts any CSS color or gradient
|
|
331
|
-
-
|
|
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>`
|
|
332
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`.
|
|
333
347
|
|
|
334
348
|
### VideoCover
|
|
335
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 {
|
|
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 {
|
|
4
|
-
import { t as a } from "./Button-
|
|
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-
|
|
26
|
-
import("./create-element-
|
|
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 ?
|
|
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-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 {
|
|
4
|
-
import { t as a } from "./Button-
|
|
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 ?
|
|
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 { 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 {
|
|
3
|
-
import { t as r } from "./Button-
|
|
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-
|
|
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-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 ?
|
|
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-
|
|
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 {
|
|
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:
|
|
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:
|
|
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 {
|
|
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-
|
|
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 {
|
|
4
|
-
import { t as _ } from "./Button-
|
|
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-
|
|
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-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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(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:
|
|
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 (
|
|
203
|
-
e.style.transform = "",
|
|
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)`,
|
|
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 = "",
|
|
214
|
+
window.removeEventListener("scroll", u), c !== null && cancelAnimationFrame(c), e.style.transform = "", d && document.documentElement.style.removeProperty("--header-bottom");
|
|
215
215
|
};
|
|
216
216
|
}, [
|
|
217
|
-
|
|
217
|
+
d,
|
|
218
218
|
N,
|
|
219
219
|
V.length,
|
|
220
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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 ?
|
|
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(
|
|
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(
|
|
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(
|
|
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 {
|
|
3
|
-
import { t as i } from "./Button-
|
|
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:
|
|
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
|
-
|
|
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: [
|
|
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":
|
|
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 ?
|
|
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:
|
|
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,
|
|
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":
|
|
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(
|
|
217
|
+
children: /* @__PURE__ */ u(n, {})
|
|
218
218
|
})
|
|
219
219
|
})]
|
|
220
220
|
})
|
|
@@ -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 { 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-
|
|
3
|
-
import { t as n } from "./Button-
|
|
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-
|
|
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 {
|
|
4
|
-
import { t as c } from "./Button-
|
|
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, ...
|
|
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
|
-
...
|
|
202
|
+
...i
|
|
203
203
|
}), /* @__PURE__ */ k("label", {
|
|
204
204
|
htmlFor: t,
|
|
205
205
|
className: Q.radio,
|
|
206
|
-
children: [e, /* @__PURE__ */ O(
|
|
206
|
+
children: [e, /* @__PURE__ */ O(r, { className: Q.check })]
|
|
207
207
|
})] });
|
|
208
208
|
}
|
|
209
209
|
function de() {
|
|
210
|
-
let { theme: n, systemTheme:
|
|
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(
|
|
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(
|
|
230
|
+
/* @__PURE__ */ O(i, {}),
|
|
231
231
|
"Auto (",
|
|
232
|
-
|
|
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(
|
|
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 {
|
|
3
|
-
import { t as a } from "./Button-
|
|
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(
|
|
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
|
|
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:
|
|
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 {
|
|
3
|
-
import { t as v } from "./Button-
|
|
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(
|
|
4505
|
-
demo: /* @__PURE__ */ F(
|
|
4506
|
-
docs: /* @__PURE__ */ F(
|
|
4507
|
-
blog: /* @__PURE__ */ F(
|
|
4508
|
-
misc: /* @__PURE__ */ F(
|
|
4509
|
-
shop: /* @__PURE__ */ F(
|
|
4510
|
-
file: /* @__PURE__ */ F(
|
|
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(
|
|
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(
|
|
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(
|
|
4611
|
+
children: /* @__PURE__ */ F("span", { children: /* @__PURE__ */ F(d, {}) })
|
|
4612
4612
|
}), "Select"]
|
|
4613
4613
|
}),
|
|
4614
4614
|
/* @__PURE__ */ I("div", {
|