highsoft-ui 1.0.155 → 1.0.157

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/CLAUDE.md +78 -0
  2. package/dist/BrowserFrame-BUneieY7.js +133 -0
  3. package/dist/{Button-DSGsV45k.js → Button-CjxX21gW.js} +1 -1
  4. package/dist/{ButtonGroup-DNTpDU-E.js → ButtonGroup-B4LYol17.js} +1 -1
  5. package/dist/{Checkbox-imALf2_N.js → Checkbox-BkxibNey.js} +1 -1
  6. package/dist/ClientLogo-Dj7K48YL.js +104 -0
  7. package/dist/{CodeBlock-7BTXXf30.js → CodeBlock-Ds79AzEX.js} +5 -5
  8. package/dist/{CookiePolicyModal-DulwuSp4.js → CookiePolicyModal-9p_OGcpB.js} +2 -2
  9. package/dist/{CopyCode-PbZbRLn-.js → CopyCode-90z6BfV0.js} +3 -3
  10. package/dist/{Dropdown-c_EhnzqC.js → Dropdown-D3AnhPYO.js} +1 -1
  11. package/dist/{Footer-C6a3PeJq.js → Footer-DDj7XStD.js} +8 -8
  12. package/dist/{FooterBottom-DADUJdzz.js → FooterBottom-BV9xJbRt.js} +1 -1
  13. package/dist/{FooterHelp-DN7Mdy40.js → FooterHelp-CnoweyYC.js} +1 -1
  14. package/dist/{FooterLinks-rrtsCIdv.js → FooterLinks-BCr9brR3.js} +2 -2
  15. package/dist/{Header-BokKjfF7.js → Header-Dsji2l2m.js} +19 -19
  16. package/dist/{InputGrouped-BJEodhml.js → InputGrouped-BUJKBG0D.js} +2 -2
  17. package/dist/{Label-BhFeSC8Z.js → Label-DgPVoDMR.js} +1 -1
  18. package/dist/LogoCarousel-DEvwvCfr.js +131 -0
  19. package/dist/{NewsletterSignup-mPKBEpYq.js → NewsletterSignup-Bk0SU1NB.js} +4 -4
  20. package/dist/{Notification-JovL5anc.js → Notification-D0ow_x0-.js} +3 -3
  21. package/dist/{PrefPanel-DxSIkYDF.js → PrefPanel-B4MyeLGu.js} +11 -11
  22. package/dist/{RoadmapDetails-ZnyXG2j7.js → RoadmapDetails-CATh63TE.js} +6 -6
  23. package/dist/{Search-Cc9ZJgGx.js → Search-T4R860vH.js} +11 -11
  24. package/dist/{SearchDropdown-B5CFwNib.js → SearchDropdown-BetSrTgQ.js} +1 -1
  25. package/dist/{VideoCover-BkbLsmQ_.js → VideoCover-B59ykzJi.js} +1 -1
  26. package/dist/{VideoPlayer-CY63501h.js → VideoPlayer-ChyiZ0sK.js} +6 -6
  27. package/dist/{VideoPlayerModal-DIHMoFgS.js → VideoPlayerModal-D6ze_Evt.js} +2 -2
  28. package/dist/{YoutubeModal-DqBis8Cm.js → YoutubeModal-CXwczXZa.js} +2 -2
  29. package/dist/components/BrowserFrame/index.js +2 -0
  30. package/dist/components/Button/index.js +1 -1
  31. package/dist/components/ButtonGroup/index.js +1 -1
  32. package/dist/components/Checkbox/index.js +1 -1
  33. package/dist/components/ClientLogo/dimensions.js +133 -0
  34. package/dist/components/ClientLogo/icons/mono/Alteryx.js +18 -0
  35. package/dist/components/ClientLogo/icons/mono/BankOfAmerica.js +18 -0
  36. package/dist/components/ClientLogo/icons/mono/BnpParibas.js +21 -0
  37. package/dist/components/ClientLogo/icons/mono/BoldBi.js +34 -0
  38. package/dist/components/ClientLogo/icons/mono/Citi.js +21 -0
  39. package/dist/components/ClientLogo/icons/mono/Crowdstrike.js +44 -0
  40. package/dist/components/ClientLogo/icons/mono/Cvs.js +16 -0
  41. package/dist/components/ClientLogo/icons/mono/Drivetrain.js +30 -0
  42. package/dist/components/ClientLogo/icons/mono/Epa.js +16 -0
  43. package/dist/components/ClientLogo/icons/mono/Fnz.js +16 -0
  44. package/dist/components/ClientLogo/icons/mono/Gainsight.js +16 -0
  45. package/dist/components/ClientLogo/icons/mono/GiGavenVidere.js +26 -0
  46. package/dist/components/ClientLogo/icons/mono/Github.js +21 -0
  47. package/dist/components/ClientLogo/icons/mono/Google.js +16 -0
  48. package/dist/components/ClientLogo/icons/mono/Horus.js +19 -0
  49. package/dist/components/ClientLogo/icons/mono/Icbc.js +23 -0
  50. package/dist/components/ClientLogo/icons/mono/JohnsonJohnson.js +16 -0
  51. package/dist/components/ClientLogo/icons/mono/Medtronic.js +16 -0
  52. package/dist/components/ClientLogo/icons/mono/Morningstar.js +19 -0
  53. package/dist/components/ClientLogo/icons/mono/Mufg.js +16 -0
  54. package/dist/components/ClientLogo/icons/mono/Netflix.js +16 -0
  55. package/dist/components/ClientLogo/icons/mono/Paypal.js +30 -0
  56. package/dist/components/ClientLogo/icons/mono/Pfizer.js +19 -0
  57. package/dist/components/ClientLogo/icons/mono/Salesforce.js +21 -0
  58. package/dist/components/ClientLogo/icons/mono/Samsung.js +16 -0
  59. package/dist/components/ClientLogo/icons/mono/Sap.js +16 -0
  60. package/dist/components/ClientLogo/icons/mono/Testmo.js +54 -0
  61. package/dist/components/ClientLogo/icons/mono/ThomsonReuters.js +16 -0
  62. package/dist/components/ClientLogo/icons/mono/Verizon.js +16 -0
  63. package/dist/components/ClientLogo/icons/mono/Visa.js +16 -0
  64. package/dist/components/ClientLogo/icons/mono/Who.js +26 -0
  65. package/dist/components/ClientLogo/icons/mono/X.js +16 -0
  66. package/dist/components/ClientLogo/icons/mono/index.js +70 -0
  67. package/dist/components/ClientLogo/index.js +2 -0
  68. package/dist/components/CodeBlock/index.js +1 -1
  69. package/dist/components/CopyCode/index.js +1 -1
  70. package/dist/components/Dropdown/index.js +1 -1
  71. package/dist/components/Footer/CookiePolicyModal.js +1 -1
  72. package/dist/components/Footer/FooterBottom.js +1 -1
  73. package/dist/components/Footer/FooterHelp.js +1 -1
  74. package/dist/components/Footer/FooterLinks.js +1 -1
  75. package/dist/components/Footer/YoutubeModal.js +1 -1
  76. package/dist/components/Footer/index.js +1 -1
  77. package/dist/components/Header/index.js +1 -1
  78. package/dist/components/InputGrouped/index.js +1 -1
  79. package/dist/components/Label/index.js +1 -1
  80. package/dist/components/LogoCarousel/index.js +2 -0
  81. package/dist/components/Modal/ModalContactFooter.js +2 -2
  82. package/dist/components/Modal/index.js +2 -2
  83. package/dist/components/NewsletterSignup/index.js +1 -1
  84. package/dist/components/Notification/index.js +1 -1
  85. package/dist/components/PrefPanel/index.js +1 -1
  86. package/dist/components/RoadmapDetails/index.js +1 -1
  87. package/dist/components/Search/index.js +1 -1
  88. package/dist/components/SearchDropdown/index.js +1 -1
  89. package/dist/components/Sidebar/NavDisclosure.js +1 -1
  90. package/dist/components/Sidebar/NavGroup.js +1 -1
  91. package/dist/components/Sidebar/Sidebar.js +2 -2
  92. package/dist/components/Sidebar/SidebarLayout.js +1 -1
  93. package/dist/components/VideoCover/index.js +1 -1
  94. package/dist/components/VideoPlayer/VideoPlayerModal.js +1 -1
  95. package/dist/components/VideoPlayer/index.js +1 -1
  96. package/dist/{create-element-C3ORyDVw.js → create-element-Bftz4UxU.js} +1 -1
  97. package/dist/{esm-C4Ybr9s4.js → esm-LCYnNVvi.js} +104 -42
  98. package/dist/highsoft-ui.css +1 -1
  99. package/dist/lib/components/BrowserFrame/index.d.ts +83 -0
  100. package/dist/lib/components/ClientLogo/dimensions.d.ts +131 -0
  101. package/dist/lib/components/ClientLogo/icons/mono/Alteryx.d.ts +2 -0
  102. package/dist/lib/components/ClientLogo/icons/mono/BankOfAmerica.d.ts +2 -0
  103. package/dist/lib/components/ClientLogo/icons/mono/BnpParibas.d.ts +2 -0
  104. package/dist/lib/components/ClientLogo/icons/mono/BoldBi.d.ts +2 -0
  105. package/dist/lib/components/ClientLogo/icons/mono/Citi.d.ts +2 -0
  106. package/dist/lib/components/ClientLogo/icons/mono/Crowdstrike.d.ts +2 -0
  107. package/dist/lib/components/ClientLogo/icons/mono/Cvs.d.ts +2 -0
  108. package/dist/lib/components/ClientLogo/icons/mono/Drivetrain.d.ts +2 -0
  109. package/dist/lib/components/ClientLogo/icons/mono/Epa.d.ts +2 -0
  110. package/dist/lib/components/ClientLogo/icons/mono/Fnz.d.ts +2 -0
  111. package/dist/lib/components/ClientLogo/icons/mono/Gainsight.d.ts +2 -0
  112. package/dist/lib/components/ClientLogo/icons/mono/GiGavenVidere.d.ts +2 -0
  113. package/dist/lib/components/ClientLogo/icons/mono/Github.d.ts +2 -0
  114. package/dist/lib/components/ClientLogo/icons/mono/Google.d.ts +2 -0
  115. package/dist/lib/components/ClientLogo/icons/mono/Horus.d.ts +2 -0
  116. package/dist/lib/components/ClientLogo/icons/mono/Icbc.d.ts +2 -0
  117. package/dist/lib/components/ClientLogo/icons/mono/JohnsonJohnson.d.ts +2 -0
  118. package/dist/lib/components/ClientLogo/icons/mono/Medtronic.d.ts +2 -0
  119. package/dist/lib/components/ClientLogo/icons/mono/Morningstar.d.ts +2 -0
  120. package/dist/lib/components/ClientLogo/icons/mono/Mufg.d.ts +2 -0
  121. package/dist/lib/components/ClientLogo/icons/mono/Netflix.d.ts +2 -0
  122. package/dist/lib/components/ClientLogo/icons/mono/Paypal.d.ts +2 -0
  123. package/dist/lib/components/ClientLogo/icons/mono/Pfizer.d.ts +2 -0
  124. package/dist/lib/components/ClientLogo/icons/mono/Salesforce.d.ts +2 -0
  125. package/dist/lib/components/ClientLogo/icons/mono/Samsung.d.ts +2 -0
  126. package/dist/lib/components/ClientLogo/icons/mono/Sap.d.ts +2 -0
  127. package/dist/lib/components/ClientLogo/icons/mono/Testmo.d.ts +2 -0
  128. package/dist/lib/components/ClientLogo/icons/mono/ThomsonReuters.d.ts +2 -0
  129. package/dist/lib/components/ClientLogo/icons/mono/Verizon.d.ts +2 -0
  130. package/dist/lib/components/ClientLogo/icons/mono/Visa.d.ts +2 -0
  131. package/dist/lib/components/ClientLogo/icons/mono/Who.d.ts +2 -0
  132. package/dist/lib/components/ClientLogo/icons/mono/X.d.ts +2 -0
  133. package/dist/lib/components/ClientLogo/icons/mono/index.d.ts +32 -0
  134. package/dist/lib/components/ClientLogo/index.d.ts +54 -0
  135. package/dist/lib/components/LogoCarousel/index.d.ts +60 -0
  136. package/dist/lib/main.d.ts +6 -0
  137. package/dist/main.js +45 -42
  138. package/dist/{prism-light-BLaY8zo6.js → prism-light-CqF2CLQS.js} +1 -1
  139. package/package.json +2 -1
package/CLAUDE.md CHANGED
@@ -262,6 +262,49 @@ The `.tsx` icons are **generated** — put Figma exports in `lib/components/Prod
262
262
  - **Keyboard/focus:** the icon is a non-interactive `<span>` — no focus, nothing in the tab order. `box` is presentational; focus styling belongs to the interactive ancestor.
263
263
  - **Reduced motion:** under `prefers-reduced-motion: reduce` the `box` tile drops the hover lift but keeps the `box-shadow` step (instant depth change instead of movement); the shell keeps its `background-color` fade — a colour change, not motion.
264
264
 
265
+ ### ClientLogo
266
+ Customer/client brand logos (Netflix, Visa, PayPal, …) in a single tone.
267
+ ```tsx
268
+ <ClientLogo logo="netflix" /> // size 32 (baseline height in px)
269
+ <ClientLogo logo="visa" size={40} /> // bigger, same relative scale
270
+ <ClientLogo logo="github" width={90} /> // explicit width override
271
+ ```
272
+ - **`logo`:** kebab-case company name (`netflix`, `bank-of-america`, `johnson-johnson`, …) — see `ClientLogoName`
273
+ - **`size`:** visual size in px — the rendered height of a baseline logo (default `32`). Every logo is scaled by the same `size / baseHeight` factor, so a wall keeps the **relative sizes tuned in Figma**: the exports share a 109-unit baseline height, and a logo exported taller renders bigger on purpose. When a logo reads too big/small, fix its export height in Figma and re-run the generator — no per-logo constants in code.
274
+ - **`width` / `height`:** explicit overrides (number or CSS length); the other dimension follows the aspect ratio
275
+ - `clientLogoLabels` exports human-readable names (`'johnson-johnson'` → `"Johnson & Johnson"`) for captions and accessible lists
276
+ - Logos are responsive: `max-width: 100%` lets them shrink inside narrower grid cells, height follows the viewBox aspect
277
+
278
+ **Fills are semantic text tokens, not currentColor** — main paths use `--HS-text-primary-default`, and duotone marks (PayPal's back "P") use `--HS-text-tertiary-default` for the secondary tone, with `currentColor` as fallback when tokens aren't loaded. Logos match the text hierarchy and remap in dark mode; they do **not** follow a parent's `color`.
279
+
280
+ The `.tsx` icons are **generated** — drop Figma exports in `lib/components/ClientLogo/svg-export/` (`company=<name>.svg`, optionally `, Color=<Yes|No>`; sources are pre-optimized with SVGO), map the name in `scripts/convert-client-logos.cjs`, then `npm run icons:clients` + `npm run prettier`. The generator also emits `dimensions.ts` (per-logo viewBox size + baseline height) — hand-edits to `icons/` or `dimensions.ts` are reverted on regeneration. New names also go in the `ClientLogoName` type + `logoComponentMap` + `clientLogoLabels`.
281
+
282
+ **Accessibility:**
283
+ - Decorative by default — an inline `<svg>` with no accessible name. When a logo stands alone as meaningful content, name it at the call site: `role="img"` + `aria-label` (props spread onto the `<svg>`).
284
+ - Token fills keep the logos at text-hierarchy contrast in both themes; the duotone secondary is tertiary text, legible on default surfaces.
285
+ - Non-interactive `<span>` — no focus, nothing in the tab order.
286
+
287
+ ### LogoCarousel
288
+ Auto-scrolling "trusted by" strip of client logos — seamless loop, edge fades, pause control.
289
+ ```tsx
290
+ <LogoCarousel /> // full set, 40 px/s
291
+ <LogoCarousel logos={['netflix', 'visa', 'google']} slowOnHover />
292
+ <LogoCarousel direction="right" speed={60} size={32} />
293
+ ```
294
+ - **`logos`:** `ClientLogoName[]` (default: the full set); **`size`:** forwarded to each `ClientLogo` (default `28`)
295
+ - **`speed`:** px/s (default `40`) — duration is derived from the measured content width, so the perceived pace is constant regardless of logo count or viewport; **`direction`:** `left` (default) | `right`
296
+ - **`slowOnHover`:** ramps the animation down to ⅓ speed on hover and back up on leave — an eased `playbackRate` transition, never a hard stop (full pausing belongs to the pause button)
297
+ - **`gap`** (default `64`), **`fade`** (edge mask width, default `64`), **`label`** (region name, default `'Client logos'`), **`pauseLabel`**/**`resumeLabel`** (button text, default `'Pause'`/`'Resume'`)
298
+ - **`reducedMotion`:** `boolean` — defaults to the user's `prefers-reduced-motion`; when on, the strip renders **static and horizontally scrollable** instead of animating
299
+ - Fills its container's width (`width: 100%; min-width: 0` — safe as a flex/grid child)
300
+ - **Performance:** the only per-frame change is one composited `transform` (translate3d + `will-change`) — no layout, no paint; logos rasterize once into a GPU layer. Content is repeated only as often as the viewport needs, and an IntersectionObserver pauses the animation off-screen.
301
+
302
+ **Accessibility:**
303
+ - The moving strip is `aria-hidden`; screen readers get a **static visually-hidden list of company names** (from `clientLogoLabels`) inside the labelled region — nothing announces mid-motion, every company is always reachable.
304
+ - The pause button satisfies WCAG 2.2.2 (Pause, Stop, Hide): a real `Button` (transparent, size 50) whose visible label flips Pause/Resume — the label carries the state, deliberately no `aria-pressed` on top.
305
+ - Under `prefers-reduced-motion` nothing moves, from the very first frame (a CSS media-query guard covers pre-hydration): users get the static scrollable strip — a focusable (`tabindex=0`), labelled viewport with the brand focus ring, arrow-key scrollable, and a real list pairing each logo with its visually-hidden name. The pause button disappears (nothing to pause).
306
+ - Hover slow-down is pointer-only polish; no functionality depends on it.
307
+
265
308
  ### InputSolo
266
309
  Standalone, self-bordered text field with a floating label, help text, and error/success states.
267
310
  ```tsx
@@ -358,6 +401,41 @@ const a = 2 // [!code ++]`} />
358
401
  - **`copyLabel`:** copy button label (default `'Copy code'`).
359
402
  - Colors come from `--code-block-*` design tokens (light/dark automatic). Code renders in IBM Plex Mono — load `@fontsource/ibm-plex-mono` (or it falls back to the system monospace).
360
403
 
404
+ ### BrowserFrame
405
+ Browser-window chrome around embedded content — a real `<iframe>` via `src`, or any children (a live demo, plain markup). Three bar variants share one shell.
406
+ ```tsx
407
+ // Full: traffic lights, URL pill, View button opening href in a new tab
408
+ <BrowserFrame src="https://www.highcharts.com/samples/nonav/highcharts/website/homepage-defaults-demo"
409
+ displayUrl="https://www.highcharts.com/demo" title="Smart defaults demo" />
410
+
411
+ // Fullscreen action instead of View
412
+ <BrowserFrame src={url} action="fullscreen" title="…" />
413
+
414
+ // Mini: muted dots, centered explainer, external-link buttons
415
+ <BrowserFrame variant="mini" src={url} title="…"
416
+ explainer="World map with drilldown" explainerHref={demoUrl}
417
+ actions={[{ label: 'JSFiddle', href: fiddleUrl }, { label: 'CodePen', href: penUrl }]} />
418
+
419
+ // Plain chrome around children at their natural height
420
+ <BrowserFrame variant="plain" aspectRatio="auto">
421
+ <LiveChartDemo />
422
+ </BrowserFrame>
423
+ ```
424
+ - **`variant`:** `full` (URL pill + action button, default) | `mini` (explainer line) | `plain` (dots only)
425
+ - **`src`:** embeds a real `<iframe>` (lazy-loaded; `sandbox`, `allow`, `allowFullScreen`, `referrerPolicy`, `loading` forwarded). **`children`** renders instead of an iframe. **`title`** is required with `src` — it names the iframe for AT.
426
+ - **`displayUrl`** — address shown in the pill (defaults to `src`); **`href`** — link target for the URL text and View button (defaults to `displayUrl`/`src`)
427
+ - **`action`:** `view` (default) | `fullscreen` | `none`. Fullscreen uses the Fullscreen API on the frame and falls back to opening `href` in a new tab when the API is missing (iOS Safari) or rejects (embedding page without `allowfullscreen`).
428
+ - **`explainer`** / **`explainerHref`** (mini), **`actions`** — external-link soft buttons
429
+ - **`dots`:** `color` | `muted` — defaults per variant (colored traffic lights on `full`, muted on `mini`/`plain`); override to force either
430
+ - **`aspectRatio`** (default `'3 / 2'`, `'auto'` = children flow naturally), **`width`**, **`height`** (fixed height overrides `aspectRatio`), **`radius`** (default `8`)
431
+ - **Bar geometry:** the bar is 40px (`plain` 34px) — 8px padding around 24px controls (size-100 `Button`s and the URL pill). Dots are 11px (`plain` 10px).
432
+ - **Theming:** the shell uses `--HS-*` tokens, so dark mode is automatic. The colored dots are the one sanctioned primitive use (`--primitives-danger/attention/success-400`) — decorative window realism with no semantic token, identical in both modes like macOS's own. **The site theme propagates into cross-origin embeds:** `[data-theme]` on the root maps to `color-scheme` on the iframe element, which is what `prefers-color-scheme` resolves from inside a frame — an embed that supports dark mode flips with the site, no JS involved. The default (no `data-theme`) is `light`, matching the tokens' own light-by-default behavior — the embed follows the chrome around it, never the OS directly. `ThemeLoader` resolves even the "system" preference to a concrete `data-theme`, so themed pages always drive it explicitly; nested `[data-theme='light']` sections inside a dark page are honored like the tokens honor them.
433
+
434
+ **Accessibility:**
435
+ - The window dots are decorative (`aria-hidden`); the embedded `<iframe>` carries `title` as its accessible name — describe what it shows.
436
+ - The URL text, explainer, and action buttons are real links/`Button`s: keyboard reachable, brand `:focus-visible` ring, `target="_blank"` with `rel="noreferrer"`. The Fullscreen button's label switches to "Exit fullscreen" while active.
437
+ - The frame itself is a non-interactive `<div>` — nothing in the tab order beyond its controls; no authored motion, so there's nothing to gate on `prefers-reduced-motion` beyond the shared Button tokens.
438
+
361
439
  ### Layout
362
440
  ```tsx
363
441
  <Header />
@@ -0,0 +1,133 @@
1
+ import { t as e } from "./clsx-BWCAbrjV.js";
2
+ import { G as t, L as n, R as r, k as i } from "./esm-LCYnNVvi.js";
3
+ import { t as a } from "./Button-CjxX21gW.js";
4
+ import { forwardRef as o, useCallback as s, useEffect as c, useRef as l, useState as u } from "react";
5
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
6
+ var p = {
7
+ actions: "VfGqmW_actions",
8
+ body: "VfGqmW_body",
9
+ bodyAspect: "VfGqmW_bodyAspect",
10
+ bodyFill: "VfGqmW_bodyFill",
11
+ content: "VfGqmW_content",
12
+ dot: "VfGqmW_dot",
13
+ dots: "VfGqmW_dots",
14
+ dotsColor: "VfGqmW_dotsColor",
15
+ explainer: "VfGqmW_explainer",
16
+ frame: "VfGqmW_frame",
17
+ iframe: "VfGqmW_iframe",
18
+ mini: "VfGqmW_mini",
19
+ plain: "VfGqmW_plain",
20
+ topBar: "VfGqmW_topBar",
21
+ url: "VfGqmW_url",
22
+ urlBar: "VfGqmW_urlBar"
23
+ }, m = o(({ variant: o = "full", src: m, displayUrl: h, href: g, action: _ = "view", actionLabel: v, explainer: y, explainerHref: b, actions: x, dots: S, aspectRatio: C = "3 / 2", width: w, height: T, radius: E = 8, title: D, loading: O = "lazy", sandbox: k, allow: A, allowFullScreen: j = !0, referrerPolicy: M, children: N, className: P, style: F, ...I }, L) => {
24
+ let R = l(null), [z, B] = u(!1), V = s((e) => {
25
+ R.current = e, typeof L == "function" ? L(e) : L && (L.current = e);
26
+ }, [L]);
27
+ c(() => {
28
+ let e = () => B(document.fullscreenElement === R.current);
29
+ return document.addEventListener("fullscreenchange", e), () => document.removeEventListener("fullscreenchange", e);
30
+ }, []), m && !D && console.warn("BrowserFrame: `title` is required with `src` — it names the iframe for assistive tech. Falling back to \"Embedded content\".");
31
+ let H = h ?? m, U = g ?? H, W = S ?? (o === "full" ? "color" : "muted"), G = T === void 0 && C !== "auto", K = s(() => {
32
+ let e = R.current;
33
+ if (!e) return;
34
+ let t = () => {
35
+ U && window.open(U, "_blank", "noopener,noreferrer");
36
+ };
37
+ document.fullscreenElement === e ? document.exitFullscreen().catch(() => {}) : e.requestFullscreen ? e.requestFullscreen().catch(t) : t();
38
+ }, [U]), q = o === "full" && _ !== "none" ? _ === "fullscreen" ? /* @__PURE__ */ d(a, {
39
+ variant: "soft",
40
+ size: 100,
41
+ iconRight: d(z ? i : t, {}),
42
+ onClick: K,
43
+ children: v ?? (z ? "Exit fullscreen" : "Fullscreen")
44
+ }) : U ? /* @__PURE__ */ d(a, {
45
+ variant: "soft",
46
+ size: 100,
47
+ iconRight: /* @__PURE__ */ d(r, {}),
48
+ href: U,
49
+ target: "_blank",
50
+ rel: "noreferrer",
51
+ children: v ?? "View"
52
+ }) : null : null, J = o === "mini" && y ? b ? /* @__PURE__ */ d("a", {
53
+ className: p.explainer,
54
+ href: b,
55
+ target: "_blank",
56
+ rel: "noreferrer",
57
+ children: y
58
+ }) : /* @__PURE__ */ d("span", {
59
+ className: p.explainer,
60
+ children: y
61
+ }) : null;
62
+ return /* @__PURE__ */ f("div", {
63
+ ref: V,
64
+ className: e(p.frame, o === "plain" && p.plain, o === "mini" && p.mini, P),
65
+ style: {
66
+ "--hsbf-radius": `${E}px`,
67
+ "--hsbf-aspect": G ? C : void 0,
68
+ width: w,
69
+ height: T,
70
+ ...F
71
+ },
72
+ ...I,
73
+ children: [/* @__PURE__ */ f("div", {
74
+ className: p.topBar,
75
+ children: [
76
+ /* @__PURE__ */ f("span", {
77
+ className: e(p.dots, W === "color" && p.dotsColor),
78
+ "aria-hidden": "true",
79
+ children: [
80
+ /* @__PURE__ */ d("span", { className: p.dot }),
81
+ /* @__PURE__ */ d("span", { className: p.dot }),
82
+ /* @__PURE__ */ d("span", { className: p.dot })
83
+ ]
84
+ }),
85
+ o === "full" && H && /* @__PURE__ */ d("span", {
86
+ className: p.urlBar,
87
+ children: U ? /* @__PURE__ */ d("a", {
88
+ className: p.url,
89
+ href: U,
90
+ target: "_blank",
91
+ rel: "noreferrer",
92
+ children: H
93
+ }) : /* @__PURE__ */ d("span", {
94
+ className: p.url,
95
+ children: H
96
+ })
97
+ }),
98
+ q,
99
+ J,
100
+ x && x.length > 0 && /* @__PURE__ */ d("span", {
101
+ className: p.actions,
102
+ children: x.map((e) => /* @__PURE__ */ d(a, {
103
+ variant: "soft",
104
+ size: 100,
105
+ iconRight: /* @__PURE__ */ d(n, {}),
106
+ href: e.href,
107
+ target: "_blank",
108
+ rel: "noreferrer",
109
+ children: e.label
110
+ }, `${e.label}-${e.href}`))
111
+ })
112
+ ]
113
+ }), /* @__PURE__ */ f("div", {
114
+ className: e(p.body, G && p.bodyAspect, (G || T !== void 0) && p.bodyFill),
115
+ children: [m && !N && /* @__PURE__ */ d("iframe", {
116
+ className: p.iframe,
117
+ src: m,
118
+ title: D ?? "Embedded content",
119
+ loading: O,
120
+ sandbox: k,
121
+ allow: A,
122
+ allowFullScreen: j,
123
+ referrerPolicy: M
124
+ }), N && /* @__PURE__ */ d("div", {
125
+ className: p.content,
126
+ children: N
127
+ })]
128
+ })]
129
+ });
130
+ });
131
+ m.displayName = "BrowserFrame";
132
+ //#endregion
133
+ export { m as t };
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { N as t } from "./esm-C4Ybr9s4.js";
2
+ import { F as t } from "./esm-LCYnNVvi.js";
3
3
  import { forwardRef as n } from "react";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
5
  var a = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { t } from "./Button-DSGsV45k.js";
2
+ import { t } from "./Button-CjxX21gW.js";
3
3
  import { useEffect as n, useState as r } from "react";
4
4
  import { jsx as i } from "react/jsx-runtime";
5
5
  var a = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { M as t } from "./esm-C4Ybr9s4.js";
2
+ import { P as t } from "./esm-LCYnNVvi.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 = {
@@ -0,0 +1,104 @@
1
+ import { t as e } from "./clsx-BWCAbrjV.js";
2
+ import { clientLogoDimensions as t } from "./components/ClientLogo/dimensions.js";
3
+ import { t as n } from "./components/ClientLogo/icons/mono/index.js";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ var i = { logo: "bdy1Ua_logo" }, a = {
6
+ netflix: "Netflix",
7
+ samsung: "Samsung",
8
+ sap: "Sap",
9
+ "thomson-reuters": "ThomsonReuters",
10
+ verizon: "Verizon",
11
+ x: "X",
12
+ visa: "Visa",
13
+ github: "Github",
14
+ google: "Google",
15
+ "bank-of-america": "BankOfAmerica",
16
+ fnz: "Fnz",
17
+ "bnp-paribas": "BnpParibas",
18
+ mufg: "Mufg",
19
+ icbc: "Icbc",
20
+ citi: "Citi",
21
+ "johnson-johnson": "JohnsonJohnson",
22
+ medtronic: "Medtronic",
23
+ cvs: "Cvs",
24
+ pfizer: "Pfizer",
25
+ who: "Who",
26
+ paypal: "Paypal",
27
+ salesforce: "Salesforce",
28
+ crowdstrike: "Crowdstrike",
29
+ alteryx: "Alteryx",
30
+ gainsight: "Gainsight",
31
+ "bold-bi": "BoldBi",
32
+ horus: "Horus",
33
+ morningstar: "Morningstar",
34
+ epa: "Epa",
35
+ testmo: "Testmo",
36
+ "gi-gaven-videre": "GiGavenVidere",
37
+ drivetrain: "Drivetrain"
38
+ }, o = {
39
+ netflix: "Netflix",
40
+ samsung: "Samsung",
41
+ sap: "SAP",
42
+ "thomson-reuters": "Thomson Reuters",
43
+ verizon: "Verizon",
44
+ x: "X",
45
+ visa: "Visa",
46
+ github: "GitHub",
47
+ google: "Google",
48
+ "bank-of-america": "Bank of America",
49
+ fnz: "FNZ",
50
+ "bnp-paribas": "BNP Paribas",
51
+ mufg: "MUFG",
52
+ icbc: "ICBC",
53
+ citi: "Citi",
54
+ "johnson-johnson": "Johnson & Johnson",
55
+ medtronic: "Medtronic",
56
+ cvs: "CVS Pharmacy",
57
+ pfizer: "Pfizer",
58
+ who: "World Health Organization",
59
+ paypal: "PayPal",
60
+ salesforce: "Salesforce",
61
+ crowdstrike: "CrowdStrike",
62
+ alteryx: "Alteryx",
63
+ gainsight: "Gainsight",
64
+ "bold-bi": "Bold BI",
65
+ horus: "Horus",
66
+ morningstar: "Morningstar",
67
+ epa: "EPA",
68
+ testmo: "Testmo",
69
+ "gi-gaven-videre": "Gi gaven videre",
70
+ drivetrain: "Drivetrain"
71
+ };
72
+ function s({ logo: o, size: s = 32, width: c, height: l, className: u, style: d, ...f }) {
73
+ let p = n[a[o]];
74
+ if (!p) return console.warn(`ClientLogo: No logo found for "${o}"`), null;
75
+ let m;
76
+ if (l !== void 0) m = {
77
+ width: c ?? "auto",
78
+ height: l
79
+ };
80
+ else if (c !== void 0) m = {
81
+ width: c,
82
+ height: "auto"
83
+ };
84
+ else {
85
+ let e = t[o], n = s / 109;
86
+ m = {
87
+ width: e.width * n,
88
+ maxWidth: "100%",
89
+ height: "auto"
90
+ };
91
+ }
92
+ return /* @__PURE__ */ r("span", {
93
+ className: e("hsui-client-logo", i.logo, u),
94
+ children: /* @__PURE__ */ r(p, {
95
+ style: {
96
+ ...m,
97
+ ...d
98
+ },
99
+ ...f
100
+ })
101
+ });
102
+ }
103
+ //#endregion
104
+ export { o as n, s as t };
@@ -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 { U as r, Y as i } from "./esm-C4Ybr9s4.js";
4
- import { t as a } from "./Button-DSGsV45k.js";
3
+ import { $ as r, q as i } from "./esm-LCYnNVvi.js";
4
+ import { t as a } from "./Button-CjxX21gW.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-BLaY8zo6.js"),
26
- import("./create-element-C3ORyDVw.js").then((e) => e.n),
25
+ import("./prism-light-CqF2CLQS.js"),
26
+ import("./create-element-Bftz4UxU.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 ? i : r, {}),
198
+ iconRight: p(B ? r : i, {}),
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-C4Ybr9s4.js";
2
- import { t } from "./Button-DSGsV45k.js";
1
+ import { t as e } from "./esm-LCYnNVvi.js";
2
+ import { t } from "./Button-CjxX21gW.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 { U as r, Y as i } from "./esm-C4Ybr9s4.js";
4
- import { t as a } from "./Button-DSGsV45k.js";
3
+ import { $ as r, q as i } from "./esm-LCYnNVvi.js";
4
+ import { t as a } from "./Button-CjxX21gW.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 ? i : r, {}),
29
+ iconLeft: c(x ? r : i, {}),
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 { Y as t } from "./esm-C4Ybr9s4.js";
2
+ import { $ as t } from "./esm-LCYnNVvi.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 { W as t, Y as n } from "./esm-C4Ybr9s4.js";
3
- import { t as r } from "./Button-DSGsV45k.js";
2
+ import { $ as t, J as n } from "./esm-LCYnNVvi.js";
3
+ import { t as r } from "./Button-CjxX21gW.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-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";
7
+ import { t as s } from "./NewsletterSignup-Bk0SU1NB.js";
8
+ import { t as c } from "./FooterBottom-BV9xJbRt.js";
9
+ import { t as l } from "./FooterHelp-CnoweyYC.js";
10
+ import { t as u } from "./FooterLinks-BCr9brR3.js";
11
+ import { t as d } from "./YoutubeModal-CXwczXZa.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 ? n : t, {})]
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-DulwuSp4.js";
4
+ import { t as d } from "./CookiePolicyModal-9p_OGcpB.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-C4Ybr9s4.js";
2
+ import { d as n, g as r } from "./esm-LCYnNVvi.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 { P as t } from "./esm-C4Ybr9s4.js";
2
+ import { I as t } from "./esm-LCYnNVvi.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-BhFeSC8Z.js";
5
+ import { t as i } from "./Label-DgPVoDMR.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 { 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";
3
+ import { A as o, V as s, at as c, b as l, et as u, f as d, j as f, nt as p, p as m, s as h, t as g } from "./esm-LCYnNVvi.js";
4
+ import { t as _ } from "./Button-CjxX21gW.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-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";
7
+ import { t as b } from "./PrefPanel-B4MyeLGu.js";
8
+ import { t as x } from "./Search-T4R860vH.js";
9
+ import { t as S } from "./Label-DgPVoDMR.js";
10
+ import { t as C } from "./Notification-D0ow_x0-.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(l, {})
78
+ icon: /* @__PURE__ */ O(u, {})
79
79
  },
80
80
  {
81
81
  title: "Demos",
82
82
  url: "https://www.highcharts.com/demo",
83
- icon: /* @__PURE__ */ O(u, {})
83
+ icon: /* @__PURE__ */ O(l, {})
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(c, {})
93
+ icon: /* @__PURE__ */ O(s, {})
94
94
  },
95
95
  {
96
96
  title: "Pricing",
97
97
  url: "https://shop.highcharts.com/",
98
- icon: /* @__PURE__ */ O(s, {})
98
+ icon: /* @__PURE__ */ O(p, {})
99
99
  },
100
100
  {
101
101
  title: "Blog",
102
102
  url: "https://www.highcharts.com/blog/home/",
103
- icon: /* @__PURE__ */ O(g, {})
103
+ icon: /* @__PURE__ */ O(c, {})
104
104
  }
105
105
  ];
106
106
  function B(e, t) {
@@ -193,13 +193,13 @@ function Y() {
193
193
  e && R(M, e);
194
194
  }, [e]), null;
195
195
  }
196
- function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host: c = "https://www.highcharts.com", pathname: l, cssVariable: u, position: g = "sticky" }) {
196
+ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host: c = "https://www.highcharts.com", pathname: l, cssVariable: u, position: p = "sticky" }) {
197
197
  let S = e("(max-width: 374px)"), w = e("(max-width: 849px)"), M = e("(max-width: 1300px)"), N = G(t), P = T(null), [F, L] = E(!1), [V, H] = E([]);
198
198
  n(() => {
199
199
  let e = P.current;
200
200
  if (!e) return;
201
201
  let n = t?.length ? N ? U : W : 0, r = 82 + V.length * 48 + n, i = -(82 + V.length * 48);
202
- if (g === "static") return e.style.transform = "", u && document.documentElement.style.setProperty("--header-bottom", `${r}px`), () => {
202
+ if (p === "static") return e.style.transform = "", u && document.documentElement.style.setProperty("--header-bottom", `${r}px`), () => {
203
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 = () => {
@@ -217,7 +217,7 @@ function X({ subItems: t, children: r, notifications: o = J, link: s = "a", host
217
217
  u,
218
218
  N,
219
219
  V.length,
220
- g,
220
+ p,
221
221
  t?.length
222
222
  ]), n(() => {
223
223
  if (!o.length) return;
@@ -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/", c),
301
301
  "aria-label": "Buy Now",
302
- children: [/* @__PURE__ */ O(p, {}), "Buy Now"]
302
+ children: [/* @__PURE__ */ O(m, {}), "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/", c),
309
- children: [/* @__PURE__ */ O(m, {}), "Try for Free"]
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 ? h : f, {})]
315
+ children: [F ? "Close" : "Menu", O(F ? g : f, {})]
316
316
  }) })
317
317
  ]
318
318
  })
@@ -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/", c),
366
- children: [/* @__PURE__ */ O(p, {}), "Buy Now"]
366
+ children: [/* @__PURE__ */ O(m, {}), "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/", c),
372
- children: [/* @__PURE__ */ O(m, {}), "Try for Free"]
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 { B as t, V as n, q as r } from "./esm-C4Ybr9s4.js";
3
- import { t as i } from "./Button-DSGsV45k.js";
2
+ import { U as t, W as n, Z as r } from "./esm-LCYnNVvi.js";
3
+ import { t as i } from "./Button-CjxX21gW.js";
4
4
  import { forwardRef as a, useCallback as o, useEffect as s, useRef as c, useState as l } from "react";
5
5
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
6
6
  var f = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { u as t } from "./esm-C4Ybr9s4.js";
2
+ import { u as t } from "./esm-LCYnNVvi.js";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  var i = {
5
5
  attention: "UwHMOW_attention",