highsoft-ui 1.0.153 → 1.0.154
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 +60 -6
- package/dist/{Button-BGsqFCRW.js → Button-DSGsV45k.js} +1 -1
- package/dist/{ButtonGroup-DKfaXOeS.js → ButtonGroup-DNTpDU-E.js} +1 -1
- package/dist/{Checkbox-CniRhVkQ.js → Checkbox-imALf2_N.js} +1 -1
- package/dist/{CodeBlock-BKiZQpA5.js → CodeBlock-7BTXXf30.js} +4 -4
- package/dist/{CookiePolicyModal-k89sCBEJ.js → CookiePolicyModal-DulwuSp4.js} +2 -2
- package/dist/{CopyCode-_yeXCeeq.js → CopyCode-PbZbRLn-.js} +2 -2
- package/dist/{Dropdown-B_Ib6i1c.js → Dropdown-c_EhnzqC.js} +1 -1
- package/dist/{Footer-ZdzuxuhY.js → Footer-C6a3PeJq.js} +8 -8
- package/dist/{FooterBottom-CqpN8Wky.js → FooterBottom-DADUJdzz.js} +1 -1
- package/dist/{FooterHelp-Cb5sraAE.js → FooterHelp-DN7Mdy40.js} +1 -1
- package/dist/{FooterLinks-HGxMx6Xz.js → FooterLinks-rrtsCIdv.js} +2 -2
- package/dist/{Header-CVKH_INR.js → Header-BokKjfF7.js} +38 -38
- package/dist/{InputGrouped-CHGCMmsK.js → InputGrouped-BJEodhml.js} +11 -11
- package/dist/{Label-CgiWi1v6.js → Label-BhFeSC8Z.js} +1 -1
- package/dist/{NewsletterSignup-DrcPfdrg.js → NewsletterSignup-mPKBEpYq.js} +2 -2
- package/dist/{Notification-B3skQvZE.js → Notification-JovL5anc.js} +3 -3
- package/dist/{PrefPanel-BGw72I_D.js → PrefPanel-DxSIkYDF.js} +8 -8
- package/dist/{RoadmapDetails-XS0OylnP.js → RoadmapDetails-ZnyXG2j7.js} +6 -6
- package/dist/{Search-UPVxQliM.js → Search-Cc9ZJgGx.js} +13 -13
- package/dist/{SearchDropdown-L_rQz1vn.js → SearchDropdown-B5CFwNib.js} +1 -1
- package/dist/{VideoCover-DqMDvzvA.js → VideoCover-BkbLsmQ_.js} +1 -1
- package/dist/{VideoPlayer-Cq_garSg.js → VideoPlayer-CY63501h.js} +7 -7
- package/dist/{VideoPlayerModal-D1v1O2kW.js → VideoPlayerModal-DIHMoFgS.js} +2 -2
- package/dist/{YoutubeModal-BBYdQil8.js → YoutubeModal-DqBis8Cm.js} +2 -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/NavDisclosure.js +26 -31
- package/dist/components/Sidebar/NavGroup.js +69 -56
- package/dist/components/Sidebar/NavItem.js +23 -16
- package/dist/components/Sidebar/Sidebar.js +115 -82
- package/dist/components/Sidebar/SidebarLayout.js +109 -69
- package/dist/components/Sidebar/SidebarResizer.js +1 -1
- package/dist/components/Sidebar/navPath.js +12 -0
- 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/{create-element-CDnUGrhg.js → create-element-C3ORyDVw.js} +1 -1
- package/dist/{esm-BnxclXHW.js → esm-C4Ybr9s4.js} +85 -43
- package/dist/highsoft-ui.css +1 -1
- package/dist/lib/components/Sidebar/Sidebar.d.ts +10 -5
- package/dist/lib/components/Sidebar/SidebarLayout.d.ts +37 -5
- package/dist/lib/components/Sidebar/context.d.ts +30 -2
- package/dist/lib/components/Sidebar/navPath.d.ts +17 -0
- package/dist/main.js +18 -18
- package/dist/{prism-light-COlcVrfu.js → prism-light-BLaY8zo6.js} +1 -1
- package/dist/{styles.module-Bd4HbnpA.js → styles.module-DGKft2EO.js} +12 -1
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -205,9 +205,17 @@ The foundational layout component. Use it instead of raw `<div>` with inline sty
|
|
|
205
205
|
- Polymorphic: `<Link as={RouterLink} to="/page">` for SPA navigation
|
|
206
206
|
|
|
207
207
|
### Icon
|
|
208
|
+
Wraps an `@untitled-ui/icons-react` icon so it picks up the design system's size
|
|
209
|
+
and stroke-width scale. `name` takes the **component**, not a string — you still
|
|
210
|
+
import the icon itself.
|
|
208
211
|
```tsx
|
|
209
|
-
|
|
212
|
+
import { ChevronRight } from '@untitled-ui/icons-react'
|
|
213
|
+
|
|
214
|
+
<Icon name={ChevronRight} size={16} />
|
|
210
215
|
```
|
|
216
|
+
- **`name`:** the icon component from `@untitled-ui/icons-react`
|
|
217
|
+
- **`size`:** `12` | `16` | `20` | `24` (default) | `32` | `40` | `52` | `64` | `72` — each maps to a stroke width (16 → 1.33, 20 → 1.67, 24 → 2), which is what keeps icons visually consistent at different sizes
|
|
218
|
+
- Icons passed to `Button`/`Label` via `iconLeft`/`iconRight` don't need this — those components size raw SVG children themselves.
|
|
211
219
|
|
|
212
220
|
### FrameworkIcon
|
|
213
221
|
Language, framework and platform brand icons in two themes.
|
|
@@ -242,6 +250,7 @@ Standalone, self-bordered text field with a floating label, help text, and error
|
|
|
242
250
|
- **`variant`:** `"default"`, `"white"`
|
|
243
251
|
- **`iconLeft`:** icon rendered inside the field (not next to the label — that's `InputGrouped`'s `labelIcon`)
|
|
244
252
|
- **`hasError` / `success`:** state styling; pair with `helpText`
|
|
253
|
+
- **Touch devices get a 16px field** regardless of `size`. iOS Safari zooms the whole viewport when you focus a field whose text is under 16px, and doesn't zoom back out — so sizes `100` and `200` are floored under `@media (pointer: coarse)`. **Don't "fix" this at the page level** with a `maximum-scale=1` / `user-scalable=no` viewport meta: that buys it by disabling pinch-zoom for everyone, which fails WCAG 1.4.4 (Resize Text).
|
|
245
254
|
|
|
246
255
|
### SearchDropdown
|
|
247
256
|
Combobox / autocomplete: a search field (built on `InputSolo`) with a filtered, keyboard-navigable results popover and match highlighting.
|
|
@@ -403,7 +412,7 @@ Lightbox wrapping `VideoPlayer` in a Radix dialog. The player mounts on open (au
|
|
|
403
412
|
### Sidebar (SidebarLayout, Sidebar, NavItem, NavGroup, …)
|
|
404
413
|
A composable, resizable sidebar-navigation shell for docs/app layouts. The
|
|
405
414
|
`<SidebarLayout>` is a two-column grid that owns the resize width and the mobile
|
|
406
|
-
|
|
415
|
+
bottom sheet; compose the rest inside it.
|
|
407
416
|
|
|
408
417
|
```tsx
|
|
409
418
|
import {
|
|
@@ -433,15 +442,60 @@ import { BarChart01 } from '@untitled-ui/icons-react'
|
|
|
433
442
|
</SidebarLayout>
|
|
434
443
|
```
|
|
435
444
|
|
|
436
|
-
- **`SidebarLayout`** — the grid shell. `defaultWidth`/`minWidth`/`maxWidth` (drag-to-resize), `storageKey` (persist width), `resizable` (default `true`), `fill` (default `true` — grows to fill a flex/grid parent)
|
|
445
|
+
- **`SidebarLayout`** — the grid shell. `defaultWidth`/`minWidth`/`maxWidth` (drag-to-resize), `storageKey` (persist width), `resizable` (default `true`), `fill` (default `true` — grows to fill a flex/grid parent). Owns the mobile bar and sheet (see below).
|
|
437
446
|
- **`SidebarMain`** — the fluid content column beside the sidebar.
|
|
438
|
-
- **`Sidebar`** — the `<aside>`; becomes the
|
|
447
|
+
- **`Sidebar`** — the `<aside>`; becomes the bottom sheet on mobile and auto-renders the resize handle, the grab handle and the close button.
|
|
439
448
|
- **`SidebarHeader` / `SidebarBody`** — fixed top region / scrollable body.
|
|
440
449
|
- **`SidebarSection`** — labelled group. `collapsible` surfaces a "Minimize" control that collapses its open `NavGroup`s; `action` slots a custom control instead.
|
|
441
|
-
- **`NavItem`** — polymorphic nav link (`as`, default `<a>`); `active`, `icon`. Closes the mobile
|
|
450
|
+
- **`NavItem`** — polymorphic nav link (`as`, default `<a>`); `active`, `icon`. Closes the mobile sheet on click, after a ~350ms beat so the row visibly takes its selected state under the finger rather than the sheet vanishing out from under the tap. **Touch only** (`pointer: coarse`) — the same breakpoint fires on a narrow desktop window, where hover has already shown which row is which and the pause would just read as lag. Open parents pin to the top while their list scrolls.
|
|
442
451
|
- **`NavGroup`** — expandable tree node (`defaultOpen`, controlled `open`/`onOpenChange`, `active` to tint the guide-line on the active path).
|
|
443
452
|
- **`NavDisclosure`** — collapses behind a tap-toggle on narrow screens, inert on desktop.
|
|
444
|
-
- The sidebar imposes **no background** of its own — set `--hs-sidebar-bg` (the mobile
|
|
453
|
+
- The sidebar imposes **no background** of its own — set `--hs-sidebar-bg` (the mobile sheet keeps an opaque fallback). Colours use `--HS-*` tokens, so dark mode is automatic.
|
|
454
|
+
|
|
455
|
+
#### Mobile (≤760px): the bar and the sheet
|
|
456
|
+
|
|
457
|
+
A page that has a site `<Header>` already spends the top of a phone screen on the site menu. A second hamburger 40px below it reads as one navigation split in half, whatever the second one is called — so the section nav takes the **opposite end of the screen**: a bar fixed in thumb reach that **names its own contents and where you currently are**, and a sheet that rises from it. Different place, different shape, different words, so the two are legible as different controls at a glance.
|
|
458
|
+
|
|
459
|
+
**The position line comes for free.** The bar names the page you're on by reading the active `<NavItem>` — `"<enclosing group> / <item>"`, e.g. `"Highcharts Core / v12.5.0"`. The sidebar already knows which item is current, so nothing needs passing:
|
|
460
|
+
|
|
461
|
+
```tsx
|
|
462
|
+
<SidebarLayout
|
|
463
|
+
storageKey="changelog.sidebarWidth"
|
|
464
|
+
mobileTriggerLabel="Changelog" // what this nav is
|
|
465
|
+
mobileTriggerIcon={<ProductMark slug={product} />}
|
|
466
|
+
mobileTriggerAction={<SearchButton />} // stays outside the sheet
|
|
467
|
+
>
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
- **`mobileTriggerLabel`** (default `"Navigation"`) — names the nav. Rendered as a small overline above the position line; with no position line it becomes the headline instead.
|
|
471
|
+
- **`mobileTriggerValue`** — override the derived position. Only worth passing when you want different wording; pass `false` to show no position line at all. Derivation needs labels that reduce to text (a string, `v{version}`, a wrapped span); a label built from arbitrary JSX yields nothing, and then this prop is how you say it. Deep trees keep the **last two** segments, so the most specific part survives at 320px.
|
|
472
|
+
- **`mobileTriggerIcon`** — 20×20 leading glyph.
|
|
473
|
+
- **`mobileTriggerAction`** — a control slotted beside the trigger, outside the sheet, divided off so a thumb aimed at it can't open the tree. **Put search here** — on a phone it's usually what the reader came for, and shutting it inside the sheet costs an extra tap. Wire it to `openMobile({ focus: 'search' })`, which opens the sheet and puts the caret in the first field of `<SidebarHeader>`: tapping search means "let me type", so the keyboard coming up is the point rather than an intrusion. (Opening any other way focuses the sheet, precisely so the keyboard *doesn't* come up and cover it.)
|
|
474
|
+
|
|
475
|
+
```tsx
|
|
476
|
+
function MobileSearchButton() {
|
|
477
|
+
const { openMobile } = useSidebarLayout()
|
|
478
|
+
return (
|
|
479
|
+
<Button variant="transparent" size={300} aria-label="Search"
|
|
480
|
+
onClick={() => openMobile({ focus: 'search' })}>
|
|
481
|
+
<SearchMd />
|
|
482
|
+
</Button>
|
|
483
|
+
)
|
|
484
|
+
}
|
|
485
|
+
```
|
|
486
|
+
- **`mobileBar`** (default `true`) — set `false` to drive the sheet from your own control via `useSidebarLayout().openMobile()`; you then own `aria-expanded`, `aria-controls="hs-sidebar-drawer"` and returning focus.
|
|
487
|
+
- **`--hs-sidebar-mobile-bar-h`** — the space the fixed bar occupies (`0px` above the breakpoint). Read it to keep anything outside the layout clear of the bar: `footer { padding-bottom: var(--hs-sidebar-mobile-bar-h); }`. It tracks the breakpoint, not the presence of a `<SidebarLayout>`, so only read it on pages that render one.
|
|
488
|
+
- `useSidebarLayout()` also exposes **`isMobile`** — whether the layout is currently in its narrow form.
|
|
489
|
+
|
|
490
|
+
**Accessibility:**
|
|
491
|
+
- The trigger keeps `aria-expanded` + `aria-controls="hs-sidebar-drawer"`. The open sheet is a `role="dialog"` `aria-modal` **with focus trapped inside it**; Escape, the backdrop, the close button and dragging the grab handle down all dismiss it, and focus returns to the trigger every time. Selecting a `NavItem` closes it too.
|
|
492
|
+
- **Opening moves focus to the sheet itself** (`tabindex="-1"`), not to the close button. A screen reader then announces what opened — "Changelog navigation, dialog" — rather than the one control that dismisses it, and a keyboard open doesn't park a focus ring on the X. The first Tab still reaches the close button; Shift+Tab from the sheet wraps to the last item instead of stepping out. The sheet has no focus indicator of its own, which is fine because it isn't keyboard operable — you can't tab to it.
|
|
493
|
+
- While closed on a narrow screen the sidebar is **`inert`**, so its (often several hundred) links stay out of the tab order and the AT tree. The bar's own controls stay reachable.
|
|
494
|
+
- The trigger fills a **44px** target and the sheet's controls are large enough to hit without aiming; nothing depends on hover. `:focus-visible` shows the brand focus ring, so a narrow *desktop* window — the same breakpoint, but with a cursor and keyboard — behaves as expected.
|
|
495
|
+
- Opening the sheet **locks page scroll** (compensating for the scrollbar so a narrow desktop window doesn't jolt sideways) and restores it on close.
|
|
496
|
+
- The sheet **stays inside the visual viewport when a software keyboard opens**. iOS doesn't shrink the layout viewport for the keyboard — it shrinks the *visual* viewport and scrolls the layout one underneath, which would leave a bottom-anchored `position: fixed` sheet half behind the keyboard with its head pushed off the top, hiding the search field that focusing it was meant to expose. `<Sidebar>` tracks `visualViewport` and lifts/caps the sheet to match. Only for a keyboard-sized bite (≥120px), so a moving address bar doesn't resize it, and it hands the geometry back to CSS when the keyboard goes.
|
|
497
|
+
- 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.
|
|
498
|
+
- Widening past 760px retires the sheet without moving focus — a resize isn't a dismissal.
|
|
445
499
|
|
|
446
500
|
## Hooks
|
|
447
501
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./clsx-BWCAbrjV.js";
|
|
2
|
-
import {
|
|
2
|
+
import { M as t } from "./esm-C4Ybr9s4.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 { U as r, Y as i } from "./esm-C4Ybr9s4.js";
|
|
4
|
+
import { t as a } from "./Button-DSGsV45k.js";
|
|
5
5
|
import { t as o } from "./FrameworkIcon-D7N3PjYr.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-BLaY8zo6.js"),
|
|
26
|
+
import("./create-element-C3ORyDVw.js").then((e) => e.n),
|
|
27
27
|
import("./jsx-B57trbk8.js"),
|
|
28
28
|
import("./tsx-CJFgwLf7.js"),
|
|
29
29
|
import("./json-Bfzk2Msc.js"),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as e } from "./esm-
|
|
2
|
-
import { t } from "./Button-
|
|
1
|
+
import { t as e } from "./esm-C4Ybr9s4.js";
|
|
2
|
+
import { t } from "./Button-DSGsV45k.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 { U as r, Y as i } from "./esm-C4Ybr9s4.js";
|
|
4
|
+
import { t as a } from "./Button-DSGsV45k.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 = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./clsx-BWCAbrjV.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Y as t } from "./esm-C4Ybr9s4.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 { W as t, Y as n } from "./esm-C4Ybr9s4.js";
|
|
3
|
+
import { t as r } from "./Button-DSGsV45k.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-mPKBEpYq.js";
|
|
8
|
+
import { t as c } from "./FooterBottom-DADUJdzz.js";
|
|
9
|
+
import { t as l } from "./FooterHelp-DN7Mdy40.js";
|
|
10
|
+
import { t as u } from "./FooterLinks-rrtsCIdv.js";
|
|
11
|
+
import { t as d } from "./YoutubeModal-DqBis8Cm.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 ? n : t, {})]
|
|
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-DulwuSp4.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-C4Ybr9s4.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";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as e } from "./clsx-BWCAbrjV.js";
|
|
2
|
-
import {
|
|
2
|
+
import { P as t } from "./esm-C4Ybr9s4.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-BhFeSC8Z.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 { O as o, Q as s, R as c, X as l, b as u, f as d, k as f, p, s as m, t as h, tt as g } from "./esm-C4Ybr9s4.js";
|
|
4
|
+
import { t as _ } from "./Button-DSGsV45k.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-DxSIkYDF.js";
|
|
8
|
+
import { t as x } from "./Search-Cc9ZJgGx.js";
|
|
9
|
+
import { t as S } from "./Label-BhFeSC8Z.js";
|
|
10
|
+
import { t as C } from "./Notification-JovL5anc.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,12 +75,12 @@ var A = {
|
|
|
75
75
|
{
|
|
76
76
|
title: "Products",
|
|
77
77
|
url: "https://www.highcharts.com/products/",
|
|
78
|
-
icon: /* @__PURE__ */ O(
|
|
78
|
+
icon: /* @__PURE__ */ O(l, {})
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
title: "Demos",
|
|
82
82
|
url: "https://www.highcharts.com/demo",
|
|
83
|
-
icon: /* @__PURE__ */ O(
|
|
83
|
+
icon: /* @__PURE__ */ O(u, {})
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
title: "Support",
|
|
@@ -90,17 +90,17 @@ var A = {
|
|
|
90
90
|
{
|
|
91
91
|
title: "Resources",
|
|
92
92
|
url: "https://www.highcharts.com/resources/",
|
|
93
|
-
icon: /* @__PURE__ */ O(
|
|
93
|
+
icon: /* @__PURE__ */ O(c, {})
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
96
|
title: "Pricing",
|
|
97
97
|
url: "https://shop.highcharts.com/",
|
|
98
|
-
icon: /* @__PURE__ */ O(
|
|
98
|
+
icon: /* @__PURE__ */ O(s, {})
|
|
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(g, {})
|
|
104
104
|
}
|
|
105
105
|
];
|
|
106
106
|
function B(e, t) {
|
|
@@ -193,37 +193,37 @@ 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:
|
|
196
|
+
function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host: c = "https://www.highcharts.com", pathname: l, cssVariable: u, position: g = "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 (g === "static") return e.style.transform = "", u && document.documentElement.style.setProperty("--header-bottom", `${r}px`), () => {
|
|
203
|
+
e.style.transform = "", u && 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)`, u && document.documentElement.style.setProperty("--header-bottom", `${r + o}px`), s = o);
|
|
207
207
|
};
|
|
208
208
|
l();
|
|
209
|
-
let
|
|
209
|
+
let d = () => {
|
|
210
210
|
let e = window.scrollY, t = e - a;
|
|
211
211
|
a = e, o = Math.min(0, Math.max(i, o - t)), c === null && (c = window.requestAnimationFrame(l));
|
|
212
212
|
};
|
|
213
|
-
return window.addEventListener("scroll",
|
|
214
|
-
window.removeEventListener("scroll",
|
|
213
|
+
return window.addEventListener("scroll", d, { passive: !0 }), () => {
|
|
214
|
+
window.removeEventListener("scroll", d), c !== null && cancelAnimationFrame(c), e.style.transform = "", u && document.documentElement.style.removeProperty("--header-bottom");
|
|
215
215
|
};
|
|
216
216
|
}, [
|
|
217
|
-
|
|
217
|
+
u,
|
|
218
218
|
N,
|
|
219
219
|
V.length,
|
|
220
|
-
|
|
220
|
+
g,
|
|
221
221
|
t?.length
|
|
222
222
|
]), n(() => {
|
|
223
223
|
if (!o.length) return;
|
|
224
224
|
let e = I();
|
|
225
225
|
H(e ? o.filter((t) => !t.id || !e.closed.includes(t.id)) : o);
|
|
226
|
-
}, [
|
|
226
|
+
}, [c, o]);
|
|
227
227
|
let q = (e) => {
|
|
228
228
|
if (e.preventDefault(), !(e.nativeEvent instanceof KeyboardEvent) || e.nativeEvent.code === "Enter" || e.nativeEvent.code === "Space") {
|
|
229
229
|
let e = document.querySelector("main");
|
|
@@ -266,7 +266,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
266
266
|
}),
|
|
267
267
|
/* @__PURE__ */ O(s, {
|
|
268
268
|
className: A.logo,
|
|
269
|
-
href: B("https://www.highcharts.com/",
|
|
269
|
+
href: B("https://www.highcharts.com/", c),
|
|
270
270
|
children: /* @__PURE__ */ O(y, { showText: !M || w && !S })
|
|
271
271
|
}),
|
|
272
272
|
/* @__PURE__ */ O("ul", {
|
|
@@ -275,7 +275,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
275
275
|
variant: "plain",
|
|
276
276
|
size: 300,
|
|
277
277
|
as: s,
|
|
278
|
-
href: B(t,
|
|
278
|
+
href: B(t, c),
|
|
279
279
|
children: e
|
|
280
280
|
}) }, n))
|
|
281
281
|
}),
|
|
@@ -285,11 +285,11 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
285
285
|
/* @__PURE__ */ O("li", { children: /* @__PURE__ */ k(_, {
|
|
286
286
|
variant: "transparent",
|
|
287
287
|
as: s,
|
|
288
|
-
href: B("https://www.highcharts.com/chat/gpt/",
|
|
288
|
+
href: B("https://www.highcharts.com/chat/gpt/", c),
|
|
289
289
|
children: [/* @__PURE__ */ O("span", {
|
|
290
290
|
className: A.gpt,
|
|
291
291
|
children: "Highcharts Assist"
|
|
292
|
-
}), /* @__PURE__ */ O(
|
|
292
|
+
}), /* @__PURE__ */ O(d, {})]
|
|
293
293
|
}) }),
|
|
294
294
|
/* @__PURE__ */ O("li", { children: /* @__PURE__ */ O(x, {}) }),
|
|
295
295
|
/* @__PURE__ */ O("li", { children: /* @__PURE__ */ O(b, {}) }),
|
|
@@ -297,7 +297,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
297
297
|
className: A.cta,
|
|
298
298
|
variant: "success",
|
|
299
299
|
as: s,
|
|
300
|
-
href: B("https://shop.highcharts.com/",
|
|
300
|
+
href: B("https://shop.highcharts.com/", c),
|
|
301
301
|
"aria-label": "Buy Now",
|
|
302
302
|
children: [/* @__PURE__ */ O(p, {}), "Buy Now"]
|
|
303
303
|
}) }),
|
|
@@ -305,14 +305,14 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
305
305
|
className: A.cta,
|
|
306
306
|
variant: "brand",
|
|
307
307
|
as: s,
|
|
308
|
-
href: B("https://www.highcharts.com/download/",
|
|
309
|
-
children: [/* @__PURE__ */ O(
|
|
308
|
+
href: B("https://www.highcharts.com/download/", c),
|
|
309
|
+
children: [/* @__PURE__ */ O(m, {}), "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 ? h : f, {})]
|
|
316
316
|
}) })
|
|
317
317
|
]
|
|
318
318
|
})
|
|
@@ -322,8 +322,8 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
322
322
|
!!t?.length && /* @__PURE__ */ O(K, {
|
|
323
323
|
items: t,
|
|
324
324
|
link: s,
|
|
325
|
-
host:
|
|
326
|
-
pathname:
|
|
325
|
+
host: c,
|
|
326
|
+
pathname: l
|
|
327
327
|
}),
|
|
328
328
|
r
|
|
329
329
|
]
|
|
@@ -337,7 +337,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
337
337
|
className: A.container,
|
|
338
338
|
children: [/* @__PURE__ */ O(s, {
|
|
339
339
|
className: A.logo,
|
|
340
|
-
href: B("https://www.highcharts.com/",
|
|
340
|
+
href: B("https://www.highcharts.com/", c),
|
|
341
341
|
children: /* @__PURE__ */ O(y, { showText: !S })
|
|
342
342
|
}), /* @__PURE__ */ k("ul", {
|
|
343
343
|
className: A.buttons,
|
|
@@ -345,11 +345,11 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
345
345
|
/* @__PURE__ */ O("li", { children: /* @__PURE__ */ k(_, {
|
|
346
346
|
variant: "transparent",
|
|
347
347
|
as: s,
|
|
348
|
-
href: B("https://www.highcharts.com/chat/gpt/",
|
|
348
|
+
href: B("https://www.highcharts.com/chat/gpt/", c),
|
|
349
349
|
children: [/* @__PURE__ */ O("span", {
|
|
350
350
|
className: A.gpt,
|
|
351
351
|
children: "Highcharts Assist"
|
|
352
|
-
}), /* @__PURE__ */ O(
|
|
352
|
+
}), /* @__PURE__ */ O(d, {})]
|
|
353
353
|
}) }),
|
|
354
354
|
/* @__PURE__ */ O("li", { children: /* @__PURE__ */ O(x, {}) }),
|
|
355
355
|
/* @__PURE__ */ O("li", { children: /* @__PURE__ */ O(b, {}) })
|
|
@@ -362,14 +362,14 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
362
362
|
variant: "brand",
|
|
363
363
|
fullWidth: !0,
|
|
364
364
|
as: s,
|
|
365
|
-
href: B("https://shop.highcharts.com/",
|
|
365
|
+
href: B("https://shop.highcharts.com/", c),
|
|
366
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
|
-
href: B("https://www.highcharts.com/download/",
|
|
372
|
-
children: [/* @__PURE__ */ O(
|
|
371
|
+
href: B("https://www.highcharts.com/download/", c),
|
|
372
|
+
children: [/* @__PURE__ */ O(m, {}), "Try for Free"]
|
|
373
373
|
}) })]
|
|
374
374
|
}),
|
|
375
375
|
/* @__PURE__ */ O("ul", {
|
|
@@ -379,7 +379,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
|
|
|
379
379
|
size: 500,
|
|
380
380
|
fullWidth: !0,
|
|
381
381
|
as: s,
|
|
382
|
-
href: B(t,
|
|
382
|
+
href: B(t, c),
|
|
383
383
|
children: [n, e]
|
|
384
384
|
}) }, r))
|
|
385
385
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./clsx-BWCAbrjV.js";
|
|
2
|
-
import { B as t,
|
|
3
|
-
import { t as i } from "./Button-
|
|
2
|
+
import { B as t, V as n, q as r } from "./esm-C4Ybr9s4.js";
|
|
3
|
+
import { t as i } from "./Button-DSGsV45k.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: r, required: a = !1, helpText: p, showHelpText: m = !1, labelIcon: h, iconRight: g, button: _, hasError: v = !1, success: y = !1, disabled: b = !1, className: x, wrapperClassName: S, type: C, onFocus: w, onBlur: T, onChange: E, value: D, defaultValue: O, ...k }, A) => {
|
|
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: n, 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
|
+
r && /* @__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: [r, a && /* @__PURE__ */ u("span", {
|
|
92
92
|
className: f.required,
|
|
93
93
|
children: " *"
|
|
94
94
|
})]
|
|
@@ -99,7 +99,7 @@ var h = a(({ label: n, 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": r,
|
|
103
103
|
"aria-required": a,
|
|
104
104
|
"aria-invalid": v,
|
|
105
105
|
value: D,
|
|
@@ -130,7 +130,7 @@ var h = a(({ label: n, 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 ? t : n, {})
|
|
134
134
|
}),
|
|
135
135
|
_
|
|
136
136
|
]
|
|
@@ -139,7 +139,7 @@ var h = a(({ label: n, 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: n = !1, helpText: i, showHelpText: a = !1, labelIcon: s, hasError: p = !1, success: m = !1, disabled: h = !1, className: g, wrapperClassName: _, placeholder: v, children: y, onFocus: b, onBlur: x, onChange: S, value: C, defaultValue: w, ...T }, E) => {
|
|
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: r = !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, n && /* @__PURE__ */ u("span", {
|
|
183
183
|
className: f.required,
|
|
184
184
|
children: " *"
|
|
185
185
|
})]
|
|
@@ -190,7 +190,7 @@ var g = a(({ label: t, required: r = !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": n,
|
|
194
194
|
"aria-invalid": p,
|
|
195
195
|
value: C,
|
|
196
196
|
defaultValue: w,
|
|
@@ -214,7 +214,7 @@ var g = a(({ label: t, required: r = !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(r, {})
|
|
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 { J as n, L as r, tt as i } from "./esm-C4Ybr9s4.js";
|
|
4
|
+
import { t as a } from "./Button-DSGsV45k.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-C4Ybr9s4.js";
|
|
3
|
+
import { t as n } from "./Button-DSGsV45k.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-BhFeSC8Z.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 { T as r, Y as i, h as a, l as o, w as s } from "./esm-C4Ybr9s4.js";
|
|
4
|
+
import { t as c } from "./Button-DSGsV45k.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,20 +194,20 @@ 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, ...r }) {
|
|
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
|
+
...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(i, { className: Q.check })]
|
|
207
207
|
})] });
|
|
208
208
|
}
|
|
209
209
|
function de() {
|
|
210
|
-
let { theme: n, systemTheme:
|
|
210
|
+
let { theme: n, systemTheme: i, 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, {
|
|
@@ -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(r, {}),
|
|
231
231
|
"Auto (",
|
|
232
|
-
|
|
232
|
+
i,
|
|
233
233
|
")"
|
|
234
234
|
]
|
|
235
235
|
}),
|