highsoft-ui 1.0.144 → 1.0.145
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 +48 -0
- package/dist/{Button-awCDIEXQ.js → Button-DIGyNR41.js} +1 -1
- package/dist/{ButtonGroup-Cwn0djAz.js → ButtonGroup-BSQzx-sZ.js} +1 -1
- package/dist/{Checkbox-CrF45NBl.js → Checkbox-wlH6EGWW.js} +1 -1
- package/dist/{CodeBlock-BIdeK3gz.js → CodeBlock-DtTAC5ru.js} +5 -5
- package/dist/{CookiePolicyModal-CTA02JGV.js → CookiePolicyModal-CGRXL0wR.js} +2 -2
- package/dist/{CopyCode-QiPNPCQN.js → CopyCode-_MHQorJS.js} +3 -3
- package/dist/{Dropdown-0Vn7yro7.js → Dropdown-CVyrHJiC.js} +1 -1
- package/dist/{Footer-BlCmsIDd.js → Footer-DW2asf8g.js} +7 -7
- package/dist/{FooterBottom-CF5ctutk.js → FooterBottom-CP0f9kYj.js} +1 -1
- package/dist/{FooterHelp-BthIJ2ye.js → FooterHelp-BxDXmtHK.js} +1 -1
- package/dist/{FooterLinks-BBOOTdRf.js → FooterLinks-BZwAVSm4.js} +2 -2
- package/dist/{Header-DY4mJxHm.js → Header-DQ1xi25C.js} +32 -32
- package/dist/{InputGrouped-DyxraUpb.js → InputGrouped-BE3zLov9.js} +13 -13
- package/dist/{Label-DdXaM1Bo.js → Label-C_KZM-FN.js} +1 -1
- package/dist/{NewsletterSignup-BMRnrbw8.js → NewsletterSignup-CJAI81M3.js} +2 -2
- package/dist/{Notification-DM31Uzfz.js → Notification-C2kN_ceR.js} +3 -3
- package/dist/{PrefPanel-DDD8R_-o.js → PrefPanel-BZUX1nfw.js} +11 -11
- package/dist/{RoadmapDetails-DsLtsnqg.js → RoadmapDetails-CfayA5CZ.js} +3 -3
- package/dist/{Search-CDOpNByw.js → Search-Cw_e1PyF.js} +10 -10
- package/dist/{SearchDropdown-D65lySm_.js → SearchDropdown-ECOTZ1Uf.js} +1 -1
- package/dist/VideoCover-BN8wnHpf.js +92 -0
- package/dist/VideoPlayer-CKjq7IRq.js +324 -0
- package/dist/VideoPlayerModal-DbP3OjSF.js +55 -0
- package/dist/YoutubeModal-D_ZHayEn.js +35 -0
- 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 +2 -0
- package/dist/components/VideoPlayer/VideoPlayerModal.js +2 -0
- package/dist/components/VideoPlayer/index.js +2 -0
- package/dist/components/VideoPlayer/useMediaEngine.js +275 -0
- package/dist/{create-element-CWTzyETe.js → create-element-WbENDceu.js} +1 -1
- package/dist/{esm-VMwHsplm.js → esm-B0YmMAXt.js} +90 -20
- package/dist/highsoft-ui.css +1 -1
- package/dist/lib/components/VideoCover/index.d.ts +75 -0
- package/dist/lib/components/VideoPlayer/VideoPlayerModal.d.ts +27 -0
- package/dist/lib/components/VideoPlayer/index.d.ts +43 -0
- package/dist/lib/components/VideoPlayer/useMediaEngine.d.ts +44 -0
- package/dist/lib/main.d.ts +6 -0
- package/dist/main.js +32 -29
- package/dist/{prism-light-B3yrtgki.js → prism-light-C4xXs3Qn.js} +1 -1
- package/package.json +1 -1
- package/dist/YoutubeModal-CZgbaRB6.js +0 -92
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
/** A single `<source>` entry for the underlying `<video>`. */
|
|
3
|
+
export interface VideoCoverSource {
|
|
4
|
+
src: string;
|
|
5
|
+
/** MIME type, e.g. `video/webm`. */
|
|
6
|
+
type?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface VideoCoverProps {
|
|
9
|
+
/** Video URL. Use `sources` for multiple self-hosted encodings instead. */
|
|
10
|
+
src?: string;
|
|
11
|
+
/** Multiple `<source>` encodings; the browser picks the first it supports. */
|
|
12
|
+
sources?: VideoCoverSource[];
|
|
13
|
+
/** Poster image shown before the video loads / fades in. */
|
|
14
|
+
poster?: string;
|
|
15
|
+
/**
|
|
16
|
+
* How the video fills the box, like CSS `object-fit`. `'cover'` (default)
|
|
17
|
+
* stretches to fill and crops overflow; `'contain'` letterboxes.
|
|
18
|
+
*/
|
|
19
|
+
fit?: 'cover' | 'contain' | 'fill';
|
|
20
|
+
/** Autoplay on mount. Default `true`. */
|
|
21
|
+
autoPlay?: boolean;
|
|
22
|
+
/** Loop when the video ends. Default `true`. */
|
|
23
|
+
loop?: boolean;
|
|
24
|
+
/** Start muted — required for autoplay. Default `true`. */
|
|
25
|
+
muted?: boolean;
|
|
26
|
+
/** Play inline on iOS. Default `true`. */
|
|
27
|
+
playsInline?: boolean;
|
|
28
|
+
/** How much to preload once loading starts. Default `auto`. */
|
|
29
|
+
preload?: 'none' | 'metadata' | 'auto';
|
|
30
|
+
/**
|
|
31
|
+
* Defer loading the video until it scrolls near the viewport (via
|
|
32
|
+
* `IntersectionObserver`), then fade it in. Default `true`. Set `false` to
|
|
33
|
+
* load eagerly.
|
|
34
|
+
*/
|
|
35
|
+
lazy?: boolean;
|
|
36
|
+
/** Zoom the video slightly when the cover is hovered (preview-tile affordance). */
|
|
37
|
+
hoverZoom?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Reduced-motion behavior. Defaults to the user's `prefers-reduced-motion`
|
|
40
|
+
* setting — when they've asked for reduced motion the video doesn't autoplay
|
|
41
|
+
* and all transitions are disabled; it shows a single static frame instead.
|
|
42
|
+
* Pass a value to override the OS setting: `false` forces normal playback,
|
|
43
|
+
* and `true` / `'no-animation'` / `'skip-to-end'` force the reduced treatment
|
|
44
|
+
* with a chosen frame:
|
|
45
|
+
* - `'no-animation'` (or `true`) — the first frame.
|
|
46
|
+
* - `'skip-to-end'` — the last frame.
|
|
47
|
+
*/
|
|
48
|
+
reducedMotion?: boolean | 'no-animation' | 'skip-to-end';
|
|
49
|
+
/**
|
|
50
|
+
* Fixed aspect ratio, e.g. `'16 / 9'`. Omit to fill the parent's height
|
|
51
|
+
* instead (size the parent to shape the cover).
|
|
52
|
+
*/
|
|
53
|
+
aspectRatio?: string;
|
|
54
|
+
/** Corner radius in px. Default `0`. */
|
|
55
|
+
radius?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Overlay content rendered on top of the video (icons, captions, a play
|
|
58
|
+
* badge, …). Interactive by default; pointer events pass through the video.
|
|
59
|
+
*/
|
|
60
|
+
children?: ReactNode;
|
|
61
|
+
/**
|
|
62
|
+
* Accessible label. When set, the element is exposed as an image with this
|
|
63
|
+
* label; when omitted, it's treated as decorative (`aria-hidden`).
|
|
64
|
+
*/
|
|
65
|
+
'aria-label'?: string;
|
|
66
|
+
className?: string;
|
|
67
|
+
style?: CSSProperties;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* A chrome-less background/cover video — autoplays muted, loops, and stretches
|
|
71
|
+
* to fill its box like `object-fit: cover` on an image. No controls, no
|
|
72
|
+
* playback engine, no provider SDKs; just a self-hosted `<video>` with built-in
|
|
73
|
+
* lazy loading and an optional overlay for arbitrary `children`.
|
|
74
|
+
*/
|
|
75
|
+
export declare const VideoCover: import('react').ForwardRefExoticComponent<VideoCoverProps & import('react').RefAttributes<HTMLVideoElement>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { VideoPlayerProps } from './index';
|
|
3
|
+
export interface VideoPlayerModalProps extends VideoPlayerProps {
|
|
4
|
+
/** Element that opens the modal (rendered as the dialog trigger). */
|
|
5
|
+
trigger?: ReactNode;
|
|
6
|
+
/** Controlled open state. */
|
|
7
|
+
open?: boolean;
|
|
8
|
+
/** Uncontrolled initial open state. */
|
|
9
|
+
defaultOpen?: boolean;
|
|
10
|
+
/** Fires when the open state changes. */
|
|
11
|
+
onOpenChange?: (open: boolean) => void;
|
|
12
|
+
/** Accessible dialog title (visually hidden). */
|
|
13
|
+
title?: string;
|
|
14
|
+
/** Max width of the video frame in the modal. Default `900`. */
|
|
15
|
+
maxWidth?: number | string;
|
|
16
|
+
/** Close-button label. Default `'Close'`. */
|
|
17
|
+
closeLabel?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Lightbox wrapper around `VideoPlayer` — opens the player in a centered,
|
|
21
|
+
* dimmed Radix dialog. The player mounts on open (so autoplay + provider SDKs
|
|
22
|
+
* only kick in then) and unmounts on close (stopping playback).
|
|
23
|
+
*/
|
|
24
|
+
export declare function VideoPlayerModal({ trigger, open, defaultOpen, onOpenChange, title, maxWidth, closeLabel, autoPlay, ...playerProps }: VideoPlayerModalProps): import("react").JSX.Element;
|
|
25
|
+
export declare namespace VideoPlayerModal {
|
|
26
|
+
var displayName: string;
|
|
27
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
/** A single `<source>` entry for the underlying `<video>`. */
|
|
3
|
+
export interface VideoPlayerSource {
|
|
4
|
+
src: string;
|
|
5
|
+
/** MIME type, e.g. `video/mp4`. */
|
|
6
|
+
type?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface VideoPlayerProps {
|
|
9
|
+
/**
|
|
10
|
+
* Video URL. A YouTube or Vimeo link is auto-detected and driven through the
|
|
11
|
+
* same custom chrome via their player SDKs. Use `sources` for multiple
|
|
12
|
+
* self-hosted encodings instead.
|
|
13
|
+
*/
|
|
14
|
+
src?: string;
|
|
15
|
+
/** Multiple `<source>` encodings; the browser picks the first it supports. */
|
|
16
|
+
sources?: VideoPlayerSource[];
|
|
17
|
+
/** Poster image shown before playback (self-hosted video only). */
|
|
18
|
+
poster?: string;
|
|
19
|
+
/** Start muted (required by most browsers for `autoPlay`). */
|
|
20
|
+
muted?: boolean;
|
|
21
|
+
/** Autoplay on mount. Pair with `muted` for it to actually start. */
|
|
22
|
+
autoPlay?: boolean;
|
|
23
|
+
/** Loop when the video ends. */
|
|
24
|
+
loop?: boolean;
|
|
25
|
+
/** Play inline on iOS rather than going fullscreen. Defaults to `true`. */
|
|
26
|
+
playsInline?: boolean;
|
|
27
|
+
/** How much to preload (self-hosted video only). Defaults to `metadata`. */
|
|
28
|
+
preload?: 'none' | 'metadata' | 'auto';
|
|
29
|
+
/** Frame aspect ratio, e.g. `'16 / 9'` (default) or `'4 / 3'`. */
|
|
30
|
+
aspectRatio?: string;
|
|
31
|
+
/** Corner radius of the frame in px. Default `16`. */
|
|
32
|
+
radius?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Accent used for the progress + volume fill. Defaults to the Highsoft brand
|
|
35
|
+
* color; accepts any CSS color or `<image>` value (e.g. a `linear-gradient`).
|
|
36
|
+
*/
|
|
37
|
+
accentGradient?: string;
|
|
38
|
+
/** Accessible label for the player region. */
|
|
39
|
+
'aria-label'?: string;
|
|
40
|
+
className?: string;
|
|
41
|
+
style?: CSSProperties;
|
|
42
|
+
}
|
|
43
|
+
export declare const VideoPlayer: import('react').ForwardRefExoticComponent<VideoPlayerProps & import('react').RefAttributes<HTMLVideoElement>>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** Which backend drives playback. Auto-detected from the `src`. */
|
|
2
|
+
export type MediaProvider = 'file' | 'youtube' | 'vimeo';
|
|
3
|
+
export interface MediaState {
|
|
4
|
+
ready: boolean;
|
|
5
|
+
playing: boolean;
|
|
6
|
+
ended: boolean;
|
|
7
|
+
duration: number;
|
|
8
|
+
currentTime: number;
|
|
9
|
+
/** Buffered fraction, 0–1. */
|
|
10
|
+
buffered: number;
|
|
11
|
+
/** Volume, 0–1. */
|
|
12
|
+
volume: number;
|
|
13
|
+
muted: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function detectProvider(src?: string, hasSources?: boolean): MediaProvider;
|
|
16
|
+
/**
|
|
17
|
+
* An unbranded still frame for a provider's start screen, used to mask the
|
|
18
|
+
* embed's own (branded) poster before playback begins. YouTube exposes a
|
|
19
|
+
* thumbnail image; Vimeo's needs an async SDK call, so it's covered with a
|
|
20
|
+
* solid backdrop instead.
|
|
21
|
+
*/
|
|
22
|
+
export declare function providerPosterUrl(provider: MediaProvider, src?: string): string | undefined;
|
|
23
|
+
export interface MediaEngineOptions {
|
|
24
|
+
provider: MediaProvider;
|
|
25
|
+
src?: string;
|
|
26
|
+
muted: boolean;
|
|
27
|
+
autoPlay: boolean;
|
|
28
|
+
loop: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface MediaEngine {
|
|
31
|
+
state: MediaState;
|
|
32
|
+
/** Attach to the native `<video>` when provider is `file`. */
|
|
33
|
+
videoRef: (node: HTMLVideoElement | null) => void;
|
|
34
|
+
/** Attach to the embed container when provider is `youtube` / `vimeo`. */
|
|
35
|
+
mountRef: (node: HTMLDivElement | null) => void;
|
|
36
|
+
toggle(): void;
|
|
37
|
+
seekFraction(fraction: number): void;
|
|
38
|
+
seekBy(deltaSeconds: number): void;
|
|
39
|
+
setVolume(volume: number): void;
|
|
40
|
+
toggleMute(): void;
|
|
41
|
+
beginSeek(): void;
|
|
42
|
+
endSeek(): void;
|
|
43
|
+
}
|
|
44
|
+
export declare function useMediaEngine({ provider, src, muted, autoPlay, loop }: MediaEngineOptions): MediaEngine;
|
package/dist/lib/main.d.ts
CHANGED
|
@@ -58,5 +58,11 @@ export { Notification } from './components/Notification';
|
|
|
58
58
|
export { SidebarLayout, SidebarMain, Sidebar, SidebarHeader, SidebarBody, SidebarSection, SidebarResizer, NavItem, NavGroup, NavDisclosure, useSidebarLayout, useOptionalSidebarLayout } from './components/Sidebar';
|
|
59
59
|
export type { SidebarLayoutProps, SidebarProps, SidebarSectionProps, NavItemProps, NavGroupProps, NavDisclosureProps, SidebarLayoutContextValue } from './components/Sidebar';
|
|
60
60
|
export { PrefPanel } from './components/PrefPanel';
|
|
61
|
+
export { VideoPlayer } from './components/VideoPlayer';
|
|
62
|
+
export type { VideoPlayerProps, VideoPlayerSource } from './components/VideoPlayer';
|
|
63
|
+
export { VideoPlayerModal } from './components/VideoPlayer/VideoPlayerModal';
|
|
64
|
+
export type { VideoPlayerModalProps } from './components/VideoPlayer/VideoPlayerModal';
|
|
65
|
+
export { VideoCover } from './components/VideoCover';
|
|
66
|
+
export type { VideoCoverProps, VideoCoverSource } from './components/VideoCover';
|
|
61
67
|
export { ThemeLoader, themeLoaderScript } from './components/ThemeLoader';
|
|
62
68
|
export { useTheme, useClipboard, useSuccessFlash } from './utils';
|
package/dist/main.js
CHANGED
|
@@ -1,42 +1,45 @@
|
|
|
1
1
|
import { c as e, d as t, r as n, s as r, u as i } from "./utils-K9S_6_Eq.js";
|
|
2
2
|
import { t as a } from "./Box-BZgeSeCV.js";
|
|
3
|
-
import { t as o } from "./Button-
|
|
4
|
-
import { t as s } from "./CopyCode-
|
|
3
|
+
import { t as o } from "./Button-DIGyNR41.js";
|
|
4
|
+
import { t as s } from "./CopyCode-_MHQorJS.js";
|
|
5
5
|
import { t as c } from "./FrameworkIcon-Ds6WrxO0.js";
|
|
6
|
-
import { t as l } from "./CodeBlock-
|
|
6
|
+
import { t as l } from "./CodeBlock-DtTAC5ru.js";
|
|
7
7
|
import { t as u } from "./Icon-VeXJMj8Q.js";
|
|
8
8
|
import { t as d } from "./Link-CYR92_U0.js";
|
|
9
9
|
import { t as f } from "./ProductIcon-DFLAYWbu.js";
|
|
10
|
-
import { t as p } from "./ButtonGroup-
|
|
10
|
+
import { t as p } from "./ButtonGroup-BSQzx-sZ.js";
|
|
11
11
|
import { t as m } from "./InputSolo-DUdKtZjX.js";
|
|
12
|
-
import { t as h } from "./SearchDropdown-
|
|
13
|
-
import { i as g, n as _, r as v, t as y } from "./InputGrouped-
|
|
12
|
+
import { t as h } from "./SearchDropdown-ECOTZ1Uf.js";
|
|
13
|
+
import { i as g, n as _, r as v, t as y } from "./InputGrouped-BE3zLov9.js";
|
|
14
14
|
import { t as b } from "./Container-BDssaLig.js";
|
|
15
15
|
import { t as x } from "./DiscordInvite-CLYxexdH.js";
|
|
16
16
|
import { t as S } from "./Heading-DNDHqYWO.js";
|
|
17
17
|
import { t as C } from "./Typography-AvvBRu-u.js";
|
|
18
18
|
import { t as w } from "./Logo-Bz0G2G-k.js";
|
|
19
|
-
import { t as T } from "./NewsletterSignup-
|
|
20
|
-
import { n as E, r as D, t as O } from "./Dropdown-
|
|
21
|
-
import { t as k } from "./PrefPanel-
|
|
22
|
-
import { n as A, t as j } from "./Label-
|
|
23
|
-
import { t as M } from "./
|
|
24
|
-
import {
|
|
25
|
-
import { t as P } from "./
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import { n as
|
|
30
|
-
import {
|
|
31
|
-
import { t as
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
19
|
+
import { t as T } from "./NewsletterSignup-CJAI81M3.js";
|
|
20
|
+
import { n as E, r as D, t as O } from "./Dropdown-CVyrHJiC.js";
|
|
21
|
+
import { t as k } from "./PrefPanel-BZUX1nfw.js";
|
|
22
|
+
import { n as A, t as j } from "./Label-C_KZM-FN.js";
|
|
23
|
+
import { t as M } from "./VideoCover-BN8wnHpf.js";
|
|
24
|
+
import { t as N } from "./VideoPlayer-CKjq7IRq.js";
|
|
25
|
+
import { t as P } from "./VideoPlayerModal-DbP3OjSF.js";
|
|
26
|
+
import { t as F } from "./Footer-DW2asf8g.js";
|
|
27
|
+
import { n as I } from "./GPTInput-C0YG1990.js";
|
|
28
|
+
import { t as L } from "./Notification-C2kN_ceR.js";
|
|
29
|
+
import { n as R, t as z } from "./Header-DQ1xi25C.js";
|
|
30
|
+
import { t as B } from "./Tabs-BuDaPqdN.js";
|
|
31
|
+
import { n as V, t as H } from "./RadioBox-o1Ssyj0s.js";
|
|
32
|
+
import { n as U, t as W } from "./Checkbox-wlH6EGWW.js";
|
|
33
|
+
import { Modal as G } from "./components/Modal/index.js";
|
|
34
|
+
import { t as K } from "./RoadmapDetails-CfayA5CZ.js";
|
|
35
|
+
import { ModalContactFooter as q } from "./components/Modal/ModalContactFooter.js";
|
|
36
|
+
import { useOptionalSidebarLayout as J, useSidebarLayout as Y } from "./components/Sidebar/context.js";
|
|
37
|
+
import { SidebarLayout as X, SidebarMain as Z } from "./components/Sidebar/SidebarLayout.js";
|
|
38
|
+
import { SidebarResizer as Q } from "./components/Sidebar/SidebarResizer.js";
|
|
39
|
+
import { Sidebar as $, SidebarBody as ee, SidebarHeader as te, SidebarSection as ne } from "./components/Sidebar/Sidebar.js";
|
|
40
|
+
import { NavItem as re } from "./components/Sidebar/NavItem.js";
|
|
41
|
+
import { NavGroup as ie } from "./components/Sidebar/NavGroup.js";
|
|
42
|
+
import { NavDisclosure as ae } from "./components/Sidebar/NavDisclosure.js";
|
|
40
43
|
import "./components/Sidebar/index.js";
|
|
41
|
-
import { ThemeLoader as
|
|
42
|
-
export { a as Box, o as Button, p as ButtonGroup,
|
|
44
|
+
import { ThemeLoader as oe, themeLoaderScript as se } from "./components/ThemeLoader/index.js";
|
|
45
|
+
export { a as Box, o as Button, p as ButtonGroup, W as Checkbox, U as CheckboxGroup, l as CodeBlock, b as Container, s as CopyCode, x as DiscordInvite, O as Dropdown, E as DropdownItem, D as DropdownSeparator, F as Footer, y as FormGroup, _ as FormRow, c as FrameworkIcon, I as GPTInput, z as Header, S as Heading, u as Icon, v as InputGrouped, m as InputSolo, j as Label, d as Link, w as Logo, G as Modal, q as ModalContactFooter, ae as NavDisclosure, ie as NavGroup, re as NavItem, A as NewTag, T as NewsletterSignup, L as Notification, k as PrefPanel, f as ProductIcon, H as RadioBox, V as RadioBoxGroup, K as RoadmapDetails, h as SearchDropdown, g as SelectGrouped, $ as Sidebar, ee as SidebarBody, te as SidebarHeader, X as SidebarLayout, Z as SidebarMain, Q as SidebarResizer, ne as SidebarSection, R as SubHeader, B as Tabs, oe as ThemeLoader, i as ThemeProvider, C as Typography, M as VideoCover, N as VideoPlayer, P as VideoPlayerModal, se as themeLoaderScript, n as useClipboard, t as useNextTheme, J as useOptionalSidebarLayout, Y as useSidebarLayout, r as useSuccessFlash, e as useTheme };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as e } from "./chunk-jwUa06l-.js";
|
|
2
|
-
import { r as t, t as n } from "./create-element-
|
|
2
|
+
import { r as t, t as n } from "./create-element-WbENDceu.js";
|
|
3
3
|
import r from "react";
|
|
4
4
|
//#region node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js
|
|
5
5
|
function i(e, t) {
|
package/package.json
CHANGED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { n as e } from "./esm-VMwHsplm.js";
|
|
2
|
-
import { s as t } from "./fa-B95RwBpz.js";
|
|
3
|
-
import { t as n } from "./dist-J9cXmrDi.js";
|
|
4
|
-
import { a as r, i, n as a, o, r as s, s as c, t as l } from "./dist-f0z6DapB.js";
|
|
5
|
-
import { useEffect as u, useRef as d, useState as f } from "react";
|
|
6
|
-
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
7
|
-
var h = {
|
|
8
|
-
dialogClose: "elwCNG_dialogClose",
|
|
9
|
-
dialogOverlay: "elwCNG_dialogOverlay",
|
|
10
|
-
show: "elwCNG_show",
|
|
11
|
-
youtube: "elwCNG_youtube",
|
|
12
|
-
youtubeContent: "elwCNG_youtubeContent",
|
|
13
|
-
youtubeCopy: "elwCNG_youtubeCopy",
|
|
14
|
-
youtubeMedia: "elwCNG_youtubeMedia",
|
|
15
|
-
youtubePreview: "elwCNG_youtubePreview",
|
|
16
|
-
youtubePreviewVisible: "elwCNG_youtubePreviewVisible"
|
|
17
|
-
}, g = "Meet the team behind the charts", _ = "Video: Meet the team behind the charts", v = "https://player.vimeo.com/video/955924808?autoplay=1", y = "https://shop.highcharts.com/footer.webm", b = "200px";
|
|
18
|
-
function x() {
|
|
19
|
-
let x = d(null), [S, C] = f(!1), [w, T] = f(!1);
|
|
20
|
-
return u(() => {
|
|
21
|
-
let e = x.current;
|
|
22
|
-
if (S || !e) return;
|
|
23
|
-
if (typeof IntersectionObserver > "u") {
|
|
24
|
-
C(!0);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
let t = new IntersectionObserver(([e]) => {
|
|
28
|
-
e?.isIntersecting && (C(!0), t.disconnect());
|
|
29
|
-
}, { rootMargin: b });
|
|
30
|
-
return t.observe(e), () => t.disconnect();
|
|
31
|
-
}, [S]), /* @__PURE__ */ m(l, {
|
|
32
|
-
onOpenChange: (e) => e && C(!0),
|
|
33
|
-
children: [/* @__PURE__ */ p(c, {
|
|
34
|
-
asChild: !0,
|
|
35
|
-
children: /* @__PURE__ */ m("button", {
|
|
36
|
-
ref: x,
|
|
37
|
-
type: "button",
|
|
38
|
-
className: h.youtube,
|
|
39
|
-
"aria-label": g,
|
|
40
|
-
onPointerEnter: () => C(!0),
|
|
41
|
-
onFocus: () => C(!0),
|
|
42
|
-
children: [/* @__PURE__ */ p("span", {
|
|
43
|
-
className: h.youtubeMedia,
|
|
44
|
-
"aria-hidden": "true",
|
|
45
|
-
children: S && /* @__PURE__ */ p("video", {
|
|
46
|
-
className: `${h.youtubePreview} ${w ? h.youtubePreviewVisible : ""}`,
|
|
47
|
-
autoPlay: !0,
|
|
48
|
-
loop: !0,
|
|
49
|
-
muted: !0,
|
|
50
|
-
playsInline: !0,
|
|
51
|
-
preload: "metadata",
|
|
52
|
-
onCanPlay: () => T(!0),
|
|
53
|
-
children: /* @__PURE__ */ p("source", {
|
|
54
|
-
src: y,
|
|
55
|
-
type: "video/webm"
|
|
56
|
-
})
|
|
57
|
-
})
|
|
58
|
-
}), /* @__PURE__ */ m("span", {
|
|
59
|
-
className: h.youtubeCopy,
|
|
60
|
-
children: [/* @__PURE__ */ p(t, {}), /* @__PURE__ */ p("p", { children: g })]
|
|
61
|
-
})]
|
|
62
|
-
})
|
|
63
|
-
}), /* @__PURE__ */ m(r, { children: [/* @__PURE__ */ p(i, { className: h.dialogOverlay }), /* @__PURE__ */ m(s, {
|
|
64
|
-
className: h.youtubeContent,
|
|
65
|
-
"aria-describedby": void 0,
|
|
66
|
-
children: [
|
|
67
|
-
/* @__PURE__ */ p(n, {
|
|
68
|
-
asChild: !0,
|
|
69
|
-
children: /* @__PURE__ */ p(o, { children: _ })
|
|
70
|
-
}),
|
|
71
|
-
/* @__PURE__ */ p(a, {
|
|
72
|
-
className: h.dialogClose,
|
|
73
|
-
"aria-label": "Close",
|
|
74
|
-
children: /* @__PURE__ */ p(e, {
|
|
75
|
-
width: 20,
|
|
76
|
-
height: 20
|
|
77
|
-
})
|
|
78
|
-
}),
|
|
79
|
-
/* @__PURE__ */ p("iframe", {
|
|
80
|
-
width: "100%",
|
|
81
|
-
height: "100%",
|
|
82
|
-
src: v,
|
|
83
|
-
title: _,
|
|
84
|
-
allow: "autoplay",
|
|
85
|
-
allowFullScreen: !0
|
|
86
|
-
})
|
|
87
|
-
]
|
|
88
|
-
})] })]
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
//#endregion
|
|
92
|
-
export { x as t };
|