highsoft-ui 1.0.161 → 1.0.163

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 +101 -2
  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-CkWQ4zk-.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-D4-209sL.js → Notification-BFLAktZo.js} +3 -3
  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
@@ -398,6 +430,12 @@ const items = [
398
430
  </FormGroup>
399
431
  ```
400
432
 
433
+ **The FormGroup frame is static: 1px, `--HS-surface-ui-border-200`, 8px corners** — no hover state, no focus ring, no 2px step. The group is a container; each row inside previews on hover and marks focus with its own left bar, so a frame that reacted too would double up. The separators between stacked rows and between the cells of a `FormRow` use the same border-200 stroke as the frame. `InputGrouped`/`SelectGrouped` draw no frame of their own — rendered outside a `FormGroup` they have square corners and no border, by design.
434
+
435
+ **Form controls share one resting stroke and one corner.** `FormGroup`, `InputSolo` (size 200), `RadioBox` and `Checkbox` all sit on a 1px `--HS-surface-ui-border-200` stroke with an 8px radius, the same corner as `Button`. `RadioBox`/`Checkbox` step to 2px when selected; `InputSolo` sizes 100/300 keep 8px/12px. A `ButtonGroup` container is deliberately rounder (10px at size 200) because it wraps 8px items with padding — a nested corner has to be larger than the one inside it, so don't flatten it to match. Transparent buttons keep an alpha stroke rather than border-200 so they hold up on tinted and dark grounds.
436
+
437
+ **Accessibility:** the frame carries no state, so nothing about it needs announcing — focus lives on the field inside (`InputGrouped` shows it with its left bar and the native caret), and the radius/stroke changes touch no keyboard, ARIA or motion behaviour. `RadioBox`/`Checkbox` focus rings are drawn by the shared a11y-ring mixin at the box's own radius, so they were moved to 8px with the boxes and still hug the corners.
438
+
401
439
  ### Label (formerly NewTag)
402
440
  ```tsx
403
441
  <Label variant="brand">New</Label> // Default with Stars02 icon
@@ -605,12 +643,73 @@ import { BarChart01 } from '@untitled-ui/icons-react'
605
643
  - **`SidebarMain`** — the fluid content column beside the sidebar.
606
644
  - **`Sidebar`** — the `<aside>`; becomes the bottom sheet on mobile and auto-renders the resize handle, the grab handle and the close button.
607
645
  - **`SidebarHeader` / `SidebarBody`** — fixed top region / scrollable body.
608
- - **`SidebarSection`** — labelled group. `collapsible` surfaces a "Minimize" control that collapses its open `NavGroup`s; `action` slots a custom control instead.
609
- - **`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.
646
+ - **`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`).
647
+ - **`SidebarSwitcher`** — the header picker trigger: an icon tile, a two-line text block and a selector chevron. See below.
648
+ - **`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.
610
649
  - **`NavGroup`** — expandable tree node (`defaultOpen`, controlled `open`/`onOpenChange`, `active` to tint the guide-line on the active path).
611
650
  - **`NavDisclosure`** — collapses behind a tap-toggle on narrow screens, inert on desktop.
612
651
  - 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.
613
652
 
653
+ #### The documentation navigation: `SidebarSwitcher`, `NavGroup`, compact `Dropdown`
654
+
655
+ This is the structure `DocsShell` in documentation-pages renders, and what the
656
+ Storybook `Documentation` story mirrors: standard nav rows (hover wash, brand
657
+ pill for the current page) under a header of two pickers — framework first,
658
+ then product — each a `SidebarSwitcher` driving a compact `Dropdown`. The body
659
+ is one `collapsible` section named after the product, whose areas are
660
+ `NavGroup`s, closed unless they hold the current page. `SidebarSection
661
+ expandable` (the whole section folding behind its label) exists too, but the
662
+ docs site doesn't use it.
663
+
664
+ ```tsx
665
+ <SidebarLayout defaultWidth={300} mobileTriggerLabel="Documentation"
666
+ mobileTriggerIcon={<ProductIcon icon={product} theme="monochrome" size={20} />}>
667
+ <Sidebar aria-label="Documentation">
668
+ <SidebarHeader>
669
+ {/* Header pickers, framework first then product. The switcher is a plain
670
+ <button>, so it slots straight into Dropdown's trigger and Radix wires
671
+ aria-expanded/haspopup. */}
672
+ <Dropdown value={framework} onValueChange={setFramework} closeOnSelect width="trigger" size={100}
673
+ options={frameworks.map((f) => ({ ...f, icon: <FrameworkIcon icon={f.value} size={16} /> }))}
674
+ trigger={
675
+ <SidebarSwitcher icon={<FrameworkIcon icon={framework} size={20} />}
676
+ label="JavaScript" description="Framework" />
677
+ } />
678
+ <Dropdown value={product} onValueChange={setProduct} closeOnSelect width="trigger" size={100}
679
+ options={products.map((p) => ({ ...p, icon: <ProductIcon icon={p.value} theme="monochrome" size={16} /> }))}
680
+ trigger={
681
+ <SidebarSwitcher icon={<ProductIcon icon={product} theme="monochrome" size={20} />}
682
+ label="Highcharts Core" description="Product" />
683
+ } />
684
+ </SidebarHeader>
685
+ <SidebarBody>
686
+ <SidebarSection label="Highcharts Core" collapsible>
687
+ <NavGroup label="Getting started" active defaultOpen>
688
+ <NavItem href="/installation" active>Installation</NavItem>
689
+ <NavItem href="/first-chart">Your first chart</NavItem>
690
+ </NavGroup>
691
+ <NavGroup label="Chart concepts">
692
+ <NavItem href="/tooltip" badge={<Label variant="success" iconLeft={false} border>Pro</Label>}>
693
+ Tooltip
694
+ </NavItem>
695
+ </NavGroup>
696
+ </SidebarSection>
697
+ </SidebarBody>
698
+ </Sidebar>
699
+ <SidebarMain>{children}</SidebarMain>
700
+ </SidebarLayout>
701
+ ```
702
+
703
+ - **`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.
704
+ - **`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.
705
+ - Product icons in the switcher use `theme="monochrome"` (the brand duotone), so the tile reads as one tone next to the framework logo.
706
+
707
+ **Accessibility (switcher / expandable):**
708
+ - `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.
709
+ - 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.
710
+ - State never rests on hover: the active row keeps `aria-current="page"` and the filled brand pill; hover only previews.
711
+ - All three controls show the brand `:focus-visible` ring. Under `prefers-reduced-motion: reduce` the section slide, chevron turn and switcher wash are instant.
712
+
614
713
  #### Mobile (≤760px): the bar and the sheet
615
714
 
616
715
  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 = {