highsoft-ui 1.0.160 → 1.0.162

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 (78) hide show
  1. package/CLAUDE.md +111 -4
  2. package/dist/{BrowserFrame-BUneieY7.js → BrowserFrame-D-DoBOXv.js} +2 -2
  3. package/dist/{Button-CjxX21gW.js → Button-BCbWIPg1.js} +1 -1
  4. package/dist/{ButtonGroup-DanFXfXA.js → ButtonGroup-DGEDf4ic.js} +1 -1
  5. package/dist/{Checkbox-BkxibNey.js → Checkbox-CO0SRaAZ.js} +1 -1
  6. package/dist/{CodeBlock-BkSyiiCb.js → CodeBlock-Ugik4xMM.js} +4 -4
  7. package/dist/{CookiePolicyModal-9p_OGcpB.js → CookiePolicyModal-TdrVbP_E.js} +2 -2
  8. package/dist/{CopyCode-90z6BfV0.js → CopyCode-_sKjpGqB.js} +2 -2
  9. package/dist/{Dropdown-8bjCO1Lx.js → Dropdown-LiG-JAoo.js} +267 -234
  10. package/dist/{Footer-DVZIe2ax.js → Footer-DzIGLnEz.js} +8 -8
  11. package/dist/{FooterBottom-BV9xJbRt.js → FooterBottom-CRe2Mvjd.js} +1 -1
  12. package/dist/{FooterHelp-Dlnj0dUF.js → FooterHelp-CTSvficW.js} +1 -1
  13. package/dist/{FooterLinks-BAdqoexV.js → FooterLinks-BoDdQUWb.js} +2 -2
  14. package/dist/{Header-Dsji2l2m.js → Header-CTO6Y6oH.js} +26 -26
  15. package/dist/{InputGrouped-BUJKBG0D.js → InputGrouped-y0JyshpR.js} +13 -13
  16. package/dist/{Label-DgPVoDMR.js → Label-k6e4Rqb-.js} +1 -1
  17. package/dist/{LogoCarousel-DEvwvCfr.js → LogoCarousel-pRYdmphl.js} +2 -2
  18. package/dist/{NewsletterSignup-BP3AxNHH.js → NewsletterSignup-BrmQ7pXZ.js} +4 -4
  19. package/dist/{Notification-D0ow_x0-.js → Notification-BFLAktZo.js} +34 -32
  20. package/dist/{PrefPanel-B4MyeLGu.js → PrefPanel-CHkc6r6b.js} +9 -9
  21. package/dist/{RoadmapDetails-CATh63TE.js → RoadmapDetails-BWt0J4Pn.js} +2 -2
  22. package/dist/{Search-T4R860vH.js → Search-D29JM1a_.js} +7 -7
  23. package/dist/{SearchDropdown-fcfDUjOp.js → SearchDropdown-BSUAlaMY.js} +1 -1
  24. package/dist/{VideoCover-BXIkxFuT.js → VideoCover-C18NhQcY.js} +1 -1
  25. package/dist/{VideoPlayer-BB8jVMa5.js → VideoPlayer-UM4M4C5b.js} +4 -4
  26. package/dist/{VideoPlayerModal-fnAUwVMI.js → VideoPlayerModal-IRwjMLoy.js} +2 -2
  27. package/dist/{YoutubeModal-C3rfaDki.js → YoutubeModal-BOnH866s.js} +2 -2
  28. package/dist/components/BrowserFrame/index.js +1 -1
  29. package/dist/components/Button/index.js +1 -1
  30. package/dist/components/ButtonGroup/index.js +1 -1
  31. package/dist/components/Checkbox/index.js +1 -1
  32. package/dist/components/CodeBlock/index.js +1 -1
  33. package/dist/components/CopyCode/index.js +1 -1
  34. package/dist/components/Dropdown/index.js +1 -1
  35. package/dist/components/Footer/CookiePolicyModal.js +1 -1
  36. package/dist/components/Footer/FooterBottom.js +1 -1
  37. package/dist/components/Footer/FooterHelp.js +1 -1
  38. package/dist/components/Footer/FooterLinks.js +1 -1
  39. package/dist/components/Footer/YoutubeModal.js +1 -1
  40. package/dist/components/Footer/index.js +1 -1
  41. package/dist/components/Header/index.js +1 -1
  42. package/dist/components/InputGrouped/index.js +1 -1
  43. package/dist/components/Label/index.js +1 -1
  44. package/dist/components/LogoCarousel/index.js +1 -1
  45. package/dist/components/Modal/ModalContactFooter.js +2 -2
  46. package/dist/components/Modal/index.js +2 -2
  47. package/dist/components/NewsletterSignup/index.js +1 -1
  48. package/dist/components/Notification/index.js +1 -1
  49. package/dist/components/PrefPanel/index.js +1 -1
  50. package/dist/components/RoadmapDetails/index.js +1 -1
  51. package/dist/components/Search/index.js +1 -1
  52. package/dist/components/SearchDropdown/index.js +1 -1
  53. package/dist/components/Sidebar/NavDisclosure.js +2 -2
  54. package/dist/components/Sidebar/NavGroup.js +21 -37
  55. package/dist/components/Sidebar/NavItem.js +26 -19
  56. package/dist/components/Sidebar/Sidebar.js +97 -69
  57. package/dist/components/Sidebar/SidebarLayout.js +2 -2
  58. package/dist/components/Sidebar/SidebarResizer.js +1 -1
  59. package/dist/components/Sidebar/SidebarSwitcher.js +48 -0
  60. package/dist/components/Sidebar/index.js +5 -4
  61. package/dist/components/Sidebar/useSlideClip.js +27 -0
  62. package/dist/components/VideoCover/index.js +1 -1
  63. package/dist/components/VideoPlayer/VideoPlayerModal.js +1 -1
  64. package/dist/components/VideoPlayer/index.js +1 -1
  65. package/dist/{create-element-Bftz4UxU.js → create-element-DxkdwAGs.js} +1 -1
  66. package/dist/{esm-LCYnNVvi.js → esm-CUgR2iUX.js} +63 -49
  67. package/dist/highsoft-ui.css +1 -1
  68. package/dist/lib/components/Dropdown/index.d.ts +32 -3
  69. package/dist/lib/components/Sidebar/NavItem.d.ts +5 -0
  70. package/dist/lib/components/Sidebar/Sidebar.d.ts +12 -1
  71. package/dist/lib/components/Sidebar/SidebarSwitcher.d.ts +31 -0
  72. package/dist/lib/components/Sidebar/index.d.ts +2 -0
  73. package/dist/lib/components/Sidebar/useSlideClip.d.ts +30 -0
  74. package/dist/lib/main.d.ts +2 -2
  75. package/dist/main.js +26 -25
  76. package/dist/{prism-light-CqF2CLQS.js → prism-light-Czk1yGD_.js} +1 -1
  77. package/dist/{styles.module-DGKft2EO.js → styles.module-B9V15An9.js} +16 -0
  78. package/package.json +1 -1
package/CLAUDE.md CHANGED
@@ -362,6 +362,38 @@ Standalone, self-bordered text field with a floating label, help text, and error
362
362
  - **`hasError` / `success`:** state styling; pair with `helpText`
363
363
  - **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).
364
364
 
365
+ ### Dropdown
366
+ Menu popover (Radix DropdownMenu) hung off any trigger — single-select with a check column, or a plain action menu.
367
+ ```tsx
368
+ <Dropdown
369
+ trigger={<Button variant="neutral" size={300} iconRight={<ChevronDown />}>Theme</Button>}
370
+ value={theme} onValueChange={setTheme}
371
+ options={[{ value: 'light', label: 'Light' }, { value: 'dark', label: 'Dark' }]}
372
+ />
373
+
374
+ // Action menu — no selection state, closes on pick
375
+ <Dropdown trigger={…} closeOnSelect>
376
+ <DropdownItem onSelect={rename}>Rename</DropdownItem>
377
+ </Dropdown>
378
+
379
+ // Compact menu under a small trigger (SidebarSwitcher)
380
+ <Dropdown trigger={<SidebarSwitcher … />} size={100} width="trigger" closeOnSelect options={…} />
381
+ ```
382
+ - **`options`** (`{ value, label, icon?, disabled? }[]`) or composable **`DropdownItem`** children
383
+ - **`value` / `onValueChange`**: single-select mode (items become radio items)
384
+ - **`indicator`:** how the selected row is marked; the default follows the variant (`plain` → `fill`, `divided` → `check`). `fill` gives it the brand selected pair — `--HS-surface-brand-background-100` with `--HS-text-brand-selected`, stepping to background-200 on hover — the same pair the Sidebar's active row uses, with no leading column. `check` renders a check glyph in a leading column and leaves the row unfilled; use it when the menu sits on a brand-tinted surface or the rows already carry colour. `showCheck` is a deprecated alias (`true` → `check`, `false` → `fill`).
385
+ - **`closeOnSelect`**: default `false` so users can change their mind; set `true` for action menus and switchers
386
+ - **`variant`:** `plain` (default) is a padded white panel with transparent, rounded rows — hover and keyboard focus are one soft inset wash (`--HS-surface-ui-background-50`), the selected row is marked by the check alone, and disabled rows fade. It uses the same surface language as the Button or `SidebarSwitcher` it hangs off, so the menu reads as a floating menu rather than a list. `divided` is the list treatment: edge-to-edge rows separated by hairlines, hover lifts a row to white, keyboard focus adds a 3px brand bar down the left. Use it for dense pickers that should read as a list.
387
+ - **`size`:** `200` (default) is the menu for a size-300 Button: 14px medium labels on ~30px rows (`divided`: 14px semi on 37px rows). `100` is the compact menu for small triggers like `SidebarSwitcher`: 12px medium labels on ~26px rows with a 12px check glyph, so the list reads at the trigger's label size instead of two steps above it. Don't shrink the default instead — every Button-triggered menu would drop below its trigger.
388
+ - **`width`:** omit to hug the widest item, `'trigger'` to match the trigger, or a CSS length; **`side`/`align`/`sideOffset`**
389
+
390
+ **Accessibility:**
391
+ - Built on Radix `DropdownMenu`: the trigger gets `aria-haspopup="menu"` + `aria-expanded`, the panel is `role="menu"`, and in single-select mode items are `role="menuitemradio"` with `aria-checked` — so the selected row is announced whichever `indicator` draws it. Disabled items carry `aria-disabled` and stay in the list.
392
+ - Keyboard: Enter/Space/ArrowDown open the menu and focus the first item; arrows move, Home/End jump, Enter/Space select, Escape closes and returns focus to the trigger. Typing jumps to the first matching label.
393
+ - Hover and keyboard focus share one highlight (Radix sets `data-highlighted` for both), so the focused row is always visible. The `plain` variant's wash is `--HS-surface-ui-background-50` on white; `divided` adds a 3px brand bar on keyboard focus. The `fill` selected pair (`brand-background-100` + `text-brand-selected`) is the same pair the Sidebar's active row uses and inverts in dark mode.
394
+ - The check glyph is decorative (the state lives in `aria-checked`); leading icons are decorative too. Open/close animate on the shared tokens and drop to instant under `prefers-reduced-motion`.
395
+ - **Focus return after a pointer pick shows no ring.** Radix returns focus to the trigger when the menu closes; that move happens by script outside the click handler, so WebKit (and Chromium after a keyboard-focused menu) paints it as keyboard focus and a mouse user sees the trigger light up. Dropdown remembers whether the closing interaction was a pointer (item pick, outside click) and, if so, takes over the focus return and sets `data-hs-pointer-focus` on the trigger until its next keydown or blur. `Button` and `SidebarSwitcher` scope their `:focus-visible` ring with `:not([data-hs-pointer-focus])`; a custom trigger that wants the same quiet return should do likewise. Keyboard closes (Enter, Escape) keep the ring, and focus always lands on the trigger either way.
396
+
365
397
  ### SearchDropdown
366
398
  Combobox / autocomplete: a search field (built on `InputSolo`) with a filtered, keyboard-navigable results popover and match highlighting.
367
399
  ```tsx
@@ -489,10 +521,24 @@ Browser-window chrome around embedded content — a real `<iframe>` via `src`, o
489
521
  ```
490
522
 
491
523
  ### Notification
524
+ Full-width banner at the top of the page (the Header renders these). Supports a single item or a rotating carousel, an optional link, and dismissal.
492
525
  ```tsx
493
- <Notification variant="success" title="Saved" />
494
- <Notification variant="danger" title="Error" message="Something went wrong" />
526
+ <Notification
527
+ content={{ title: 'Highcharts v12 is here!', description: 'See what changed.', url: '/blog/v12', tag: 'new' }}
528
+ variant="brand"
529
+ closable
530
+ onClose={() => dismiss(id)}
531
+ />
495
532
  ```
533
+ - **`content`:** one `NotificationItem` or an array (rotates every 15s, pauses on hover/focus) — `{ title?, description?, url?, tag? }`
534
+ - **`variant`:** `brand` (default) | `success` | `danger` | `attention`
535
+ - **`closable`** (default `true`) + **`onClose`**: shows the close button
536
+
537
+ **Accessibility:**
538
+ - The wrapper is a `<div>`, never a link: when an item has a `url`, the link is an **inner stretched link** (an inset-0 `::after` spans the banner) and the close button is its **sibling** stacked above it — a `<button>` may not nest inside an `<a>` (invalid HTML; Next.js flags it, and nested interactive controls confuse AT). The whole banner stays clickable and the close button still works.
539
+ - The link takes its accessible name from the visible banner text; the close button is a real `Button` with `aria-label="Close notification"`.
540
+ - `:focus-visible` on the link draws the ring via the stretched `::after`, so it wraps the full banner like the old wrapper-level outline did. Hover highlight applies only while the *link* is hovered (via `:has`) — hovering the close button no longer suggests the banner will navigate.
541
+ - Inactive carousel slides are `aria-hidden` with `pointer-events: none`; rotation pauses on hover and while focus is inside the banner.
496
542
 
497
543
  ### VideoPlayer
498
544
  Sutro-inspired media player with a brand-accent scrubber, floating volume, auto-hiding chrome, and fullscreen. One custom control bar drives **self-hosted files, YouTube and Vimeo** — provider SDKs load lazily and their branded start screens are masked with an unbranded thumbnail until first play.
@@ -591,12 +637,73 @@ import { BarChart01 } from '@untitled-ui/icons-react'
591
637
  - **`SidebarMain`** — the fluid content column beside the sidebar.
592
638
  - **`Sidebar`** — the `<aside>`; becomes the bottom sheet on mobile and auto-renders the resize handle, the grab handle and the close button.
593
639
  - **`SidebarHeader` / `SidebarBody`** — fixed top region / scrollable body.
594
- - **`SidebarSection`** — labelled group. `collapsible` surfaces a "Minimize" control that collapses its open `NavGroup`s; `action` slots a custom control instead.
595
- - **`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.
640
+ - **`SidebarSection`** — labelled group. `collapsible` surfaces a "Minimize" control that collapses its open `NavGroup`s; `action` slots a custom control instead. `expandable` lets the whole section fold away behind its label (a chevron toggle; `defaultOpen` true, or controlled `open`/`onOpenChange`).
641
+ - **`SidebarSwitcher`** — the header picker trigger: an icon tile, a two-line text block and a selector chevron. See below.
642
+ - **`NavItem`** — polymorphic nav link (`as`, default `<a>`); `active`, `icon`, `badge` (a trailing node after the label — typically `<Label variant="success" iconLeft={false} border>Pro</Label>`). 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.
596
643
  - **`NavGroup`** — expandable tree node (`defaultOpen`, controlled `open`/`onOpenChange`, `active` to tint the guide-line on the active path).
597
644
  - **`NavDisclosure`** — collapses behind a tap-toggle on narrow screens, inert on desktop.
598
645
  - 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.
599
646
 
647
+ #### The documentation navigation: `SidebarSwitcher`, `NavGroup`, compact `Dropdown`
648
+
649
+ This is the structure `DocsShell` in documentation-pages renders, and what the
650
+ Storybook `Documentation` story mirrors: standard nav rows (hover wash, brand
651
+ pill for the current page) under a header of two pickers — framework first,
652
+ then product — each a `SidebarSwitcher` driving a compact `Dropdown`. The body
653
+ is one `collapsible` section named after the product, whose areas are
654
+ `NavGroup`s, closed unless they hold the current page. `SidebarSection
655
+ expandable` (the whole section folding behind its label) exists too, but the
656
+ docs site doesn't use it.
657
+
658
+ ```tsx
659
+ <SidebarLayout defaultWidth={300} mobileTriggerLabel="Documentation"
660
+ mobileTriggerIcon={<ProductIcon icon={product} theme="monochrome" size={20} />}>
661
+ <Sidebar aria-label="Documentation">
662
+ <SidebarHeader>
663
+ {/* Header pickers, framework first then product. The switcher is a plain
664
+ <button>, so it slots straight into Dropdown's trigger and Radix wires
665
+ aria-expanded/haspopup. */}
666
+ <Dropdown value={framework} onValueChange={setFramework} closeOnSelect width="trigger" size={100}
667
+ options={frameworks.map((f) => ({ ...f, icon: <FrameworkIcon icon={f.value} size={16} /> }))}
668
+ trigger={
669
+ <SidebarSwitcher icon={<FrameworkIcon icon={framework} size={20} />}
670
+ label="JavaScript" description="Framework" />
671
+ } />
672
+ <Dropdown value={product} onValueChange={setProduct} closeOnSelect width="trigger" size={100}
673
+ options={products.map((p) => ({ ...p, icon: <ProductIcon icon={p.value} theme="monochrome" size={16} /> }))}
674
+ trigger={
675
+ <SidebarSwitcher icon={<ProductIcon icon={product} theme="monochrome" size={20} />}
676
+ label="Highcharts Core" description="Product" />
677
+ } />
678
+ </SidebarHeader>
679
+ <SidebarBody>
680
+ <SidebarSection label="Highcharts Core" collapsible>
681
+ <NavGroup label="Getting started" active defaultOpen>
682
+ <NavItem href="/installation" active>Installation</NavItem>
683
+ <NavItem href="/first-chart">Your first chart</NavItem>
684
+ </NavGroup>
685
+ <NavGroup label="Chart concepts">
686
+ <NavItem href="/tooltip" badge={<Label variant="success" iconLeft={false} border>Pro</Label>}>
687
+ Tooltip
688
+ </NavItem>
689
+ </NavGroup>
690
+ </SidebarSection>
691
+ </SidebarBody>
692
+ </Sidebar>
693
+ <SidebarMain>{children}</SidebarMain>
694
+ </SidebarLayout>
695
+ ```
696
+
697
+ - **`SidebarSwitcher`** props: `icon` (goes in a 32px tile with 6px padding — a `ProductIcon`/`FrameworkIcon` at `20`, or an `Icon` at `16`), `label`, `description`, `chevron` (default `true`), `interactive` (default `true`; `false` renders a static row with no button, chevron or hover for when there's nothing to switch to). Everything else is a button prop (`aria-label`, `onClick`, …) and the ref lands on the `<button>`. Hover is the same translucent wash the nav rows use (`--hs-nav-hover-bg`), arriving in 100ms with no easing and held while the menu is open, so the switchers and the list below read as one surface; the chevron darkens with the text and turns brand while open. The icon tile is a white chip — `--HS-surface-ui-background-0` with a `--HS-surface-ui-border-100` hairline — so the icon keeps a clean ground under the wash, and every tile looks the same. The two text lines sit tight (line-height 1.2, no gap) so they read as one unit.
698
+ - **`SidebarSection expandable`**: the label becomes the toggle, filling the head so the whole row is the target with the chevron at its far end. The body slides closed on the same 0fr→1fr grid transition `NavGroup` uses (clipped only while sliding, so sticky group toggles inside an open section still pin). A Minimize/`action` control, if any, sits beside the toggle as a sibling.
699
+ - Product icons in the switcher use `theme="monochrome"` (the brand duotone), so the tile reads as one tone next to the framework logo.
700
+
701
+ **Accessibility (switcher / expandable):**
702
+ - `SidebarSwitcher` is a real `<button>`, named by its visible text — label then description, "JavaScript, Framework" — pass `aria-label` to override. The tile and chevron are `aria-hidden`. As a `Dropdown` trigger it gets `aria-expanded` + `aria-haspopup` from Radix, and the menu is keyboard-operable as usual. `interactive={false}` renders a `<div>`, so nothing focusable is left behind.
703
+ - An expandable section's label is a `<button>` inside its `<h3>` with `aria-expanded` and `aria-controls` pointing at the body. The folded body is **`inert`** as well as clipped, so its links leave the tab order and the accessibility tree; a screen reader's headings list still shows the section.
704
+ - State never rests on hover: the active row keeps `aria-current="page"` and the filled brand pill; hover only previews.
705
+ - All three controls show the brand `:focus-visible` ring. Under `prefers-reduced-motion: reduce` the section slide, chevron turn and switcher wash are instant.
706
+
600
707
  #### Mobile (≤760px): the bar and the sheet
601
708
 
602
709
  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.
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { G as t, L as n, R as r, k as i } from "./esm-LCYnNVvi.js";
3
- import { t as a } from "./Button-CjxX21gW.js";
2
+ import { G as t, L as n, R as r, k as i } from "./esm-CUgR2iUX.js";
3
+ import { t as a } from "./Button-BCbWIPg1.js";
4
4
  import { forwardRef as o, useCallback as s, useEffect as c, useRef as l, useState as u } from "react";
5
5
  import { jsx as d, jsxs as f } from "react/jsx-runtime";
6
6
  var p = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./clsx-BWCAbrjV.js";
2
- import { F as t } from "./esm-LCYnNVvi.js";
2
+ import { F as t } from "./esm-CUgR2iUX.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-CjxX21gW.js";
2
+ import { t } from "./Button-BCbWIPg1.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 { P as t } from "./esm-LCYnNVvi.js";
2
+ import { P as t } from "./esm-CUgR2iUX.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 { $ as r, q as i } from "./esm-LCYnNVvi.js";
4
- import { t as a } from "./Button-CjxX21gW.js";
3
+ import { et as r, q as i } from "./esm-CUgR2iUX.js";
4
+ import { t as a } from "./Button-BCbWIPg1.js";
5
5
  import { t as o } from "./FrameworkIcon-B8GmMx0r.js";
6
6
  import { Fragment as s, forwardRef as c, useCallback as l, useEffect as u, useMemo as d, useState as f } from "react";
7
7
  import { jsx as p, jsxs as m } from "react/jsx-runtime";
@@ -22,8 +22,8 @@ var h = {
22
22
  }, g = null;
23
23
  function _() {
24
24
  return g ||= Promise.all([
25
- import("./prism-light-CqF2CLQS.js"),
26
- import("./create-element-Bftz4UxU.js").then((e) => e.n),
25
+ import("./prism-light-Czk1yGD_.js"),
26
+ import("./create-element-DxkdwAGs.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-LCYnNVvi.js";
2
- import { t } from "./Button-CjxX21gW.js";
1
+ import { t as e } from "./esm-CUgR2iUX.js";
2
+ import { t } from "./Button-BCbWIPg1.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 { $ as r, q as i } from "./esm-LCYnNVvi.js";
4
- import { t as a } from "./Button-CjxX21gW.js";
3
+ import { et as r, q as i } from "./esm-CUgR2iUX.js";
4
+ import { t as a } from "./Button-BCbWIPg1.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 = {