@lovett/ui 0.0.5 → 0.0.7

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 (56) hide show
  1. package/dist/index.d.ts +279 -115
  2. package/dist/index.js +479 -66
  3. package/dist/index.js.map +1 -1
  4. package/dist/styles.css +74 -0
  5. package/dist/tokens.css +181 -60
  6. package/package.json +16 -4
  7. package/src/__tests__/button.test.tsx +137 -0
  8. package/src/__tests__/card.test.tsx +103 -0
  9. package/src/__tests__/dead-render.test.tsx +117 -0
  10. package/src/__tests__/input.test.tsx +134 -0
  11. package/src/__tests__/modal.test.tsx +154 -0
  12. package/src/__tests__/page-shell.test.tsx +128 -0
  13. package/src/__tests__/setup.ts +43 -0
  14. package/src/__tests__/token-shape.test.ts +193 -0
  15. package/src/card.tsx +1 -1
  16. package/src/collapsible-card.tsx +85 -0
  17. package/src/data-grid/table-body.tsx +8 -1
  18. package/src/dropdown-menu.tsx +1 -1
  19. package/src/floating-status-bar.tsx +1 -1
  20. package/src/folder-tree-picker.tsx +5 -6
  21. package/src/frame-stack.tsx +27 -10
  22. package/src/hero-form-card.tsx +2 -2
  23. package/src/icons/brand.tsx +187 -0
  24. package/src/index.ts +32 -0
  25. package/src/lib/clipboard.ts +14 -0
  26. package/src/lib/color.ts +111 -0
  27. package/src/meta-cell.tsx +52 -0
  28. package/src/meta-previews/MetaFeedCarousel.tsx +1 -1
  29. package/src/meta-previews/MetaFeedPreview.tsx +1 -1
  30. package/src/modal.tsx +77 -6
  31. package/src/pill-button.tsx +23 -5
  32. package/src/profile-section.tsx +40 -9
  33. package/src/sortable-table.tsx +5 -1
  34. package/src/styles.css +74 -0
  35. package/src/tabs.tsx +4 -0
  36. package/src/tag-chip-input.tsx +1 -1
  37. package/src/theme-v2.css +466 -0
  38. package/src/tokens.css +181 -60
  39. package/src/v2/README.md +208 -0
  40. package/src/v2/__demo__/showcase.tsx +1045 -0
  41. package/src/v2/action.tsx +91 -0
  42. package/src/v2/callout.tsx +76 -0
  43. package/src/v2/document-section.tsx +82 -0
  44. package/src/v2/document-shell.tsx +0 -0
  45. package/src/v2/field-row.tsx +113 -0
  46. package/src/v2/icons.tsx +165 -0
  47. package/src/v2/index.ts +147 -0
  48. package/src/v2/layout.tsx +293 -0
  49. package/src/v2/progress-track.tsx +89 -0
  50. package/src/v2/stat-tile.tsx +129 -0
  51. package/src/v2/states.tsx +271 -0
  52. package/src/v2/status-pill.tsx +74 -0
  53. package/src/v2/theme.css +1861 -0
  54. package/src/v2/timeline.tsx +81 -0
  55. package/src/v2/tokens.ts +228 -0
  56. package/src/value-chip.tsx +76 -0
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as react from 'react';
3
2
  import react__default, { HTMLAttributes, ReactNode, ButtonHTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes, CSSProperties, RefObject, ComponentProps, ComponentType, FormHTMLAttributes, FormEvent } from 'react';
4
3
  import { Toaster as Toaster$1 } from 'sonner';
@@ -34,21 +33,21 @@ interface CardProps extends DivProps {
34
33
  interactive?: boolean;
35
34
  }
36
35
  declare const CardRoot: react.ForwardRefExoticComponent<CardProps & react.RefAttributes<HTMLDivElement>>;
37
- declare function Head({ className, ...rest }: DivProps): react_jsx_runtime.JSX.Element;
38
- declare function Body({ className, ...rest }: DivProps): react_jsx_runtime.JSX.Element;
39
- declare function Tray$1({ className, ...rest }: DivProps): react_jsx_runtime.JSX.Element;
40
- declare function Foot({ className, ...rest }: DivProps): react_jsx_runtime.JSX.Element;
41
- declare function Title({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
36
+ declare function Head({ className, ...rest }: DivProps): react.JSX.Element;
37
+ declare function Body({ className, ...rest }: DivProps): react.JSX.Element;
38
+ declare function Tray$1({ className, ...rest }: DivProps): react.JSX.Element;
39
+ declare function Foot({ className, ...rest }: DivProps): react.JSX.Element;
40
+ declare function Title({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): react.JSX.Element;
42
41
  declare function Desc({ children, className, ...rest }: HTMLAttributes<HTMLDivElement> & {
43
42
  clamp?: 2 | 3;
44
- }): react_jsx_runtime.JSX.Element;
45
- declare function Meta({ className, ...rest }: DivProps): react_jsx_runtime.JSX.Element;
43
+ }): react.JSX.Element;
44
+ declare function Meta({ className, ...rest }: DivProps): react.JSX.Element;
46
45
  declare function MetaItem({ icon, children, className, }: {
47
46
  icon?: ReactNode;
48
47
  children: ReactNode;
49
48
  className?: string;
50
- }): react_jsx_runtime.JSX.Element;
51
- declare function Actions({ className, ...rest }: DivProps): react_jsx_runtime.JSX.Element;
49
+ }): react.JSX.Element;
50
+ declare function Actions({ className, ...rest }: DivProps): react.JSX.Element;
52
51
  interface ActionButtonProps$1 extends HTMLAttributes<HTMLButtonElement> {
53
52
  danger?: boolean;
54
53
  }
@@ -63,13 +62,13 @@ declare function IconTile({ bg, fg, size, className, children, }: {
63
62
  size?: number;
64
63
  className?: string;
65
64
  children: ReactNode;
66
- }): react_jsx_runtime.JSX.Element;
65
+ }): react.JSX.Element;
67
66
  /** Tag row helper — reads `--tag-bg`/`--border` automatically. */
68
67
  declare function TagRow({ tags, max, className, }: {
69
68
  tags: string[];
70
69
  max?: number;
71
70
  className?: string;
72
- }): react_jsx_runtime.JSX.Element;
71
+ }): react.JSX.Element;
73
72
  type CardComponent = typeof CardRoot & {
74
73
  Head: typeof Head;
75
74
  Body: typeof Body;
@@ -86,6 +85,22 @@ type CardComponent = typeof CardRoot & {
86
85
  };
87
86
  declare const Card: CardComponent;
88
87
 
88
+ interface CollapsibleCardProps {
89
+ title: ReactNode;
90
+ /** Optional leading icon (rendered before the title). */
91
+ icon?: ReactNode;
92
+ /** Optional header content after the title (e.g. a count or subtitle). */
93
+ meta?: ReactNode;
94
+ /** Right-aligned header controls, kept outside the collapse toggle. */
95
+ actions?: ReactNode;
96
+ /** Start expanded (default) or collapsed. */
97
+ defaultOpen?: boolean;
98
+ /** Body padding utility; pass '' for full-bleed bodies (e.g. tables). */
99
+ contentClassName?: string;
100
+ children: ReactNode;
101
+ }
102
+ declare function CollapsibleCard({ title, icon, meta, actions, defaultOpen, contentClassName, children, }: CollapsibleCardProps): react.JSX.Element;
103
+
89
104
  type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'destructive-soft' | 'icon' | 'toolbar';
90
105
  type ButtonSize = 'sm' | 'md' | 'lg';
91
106
  type ButtonShape = 'default' | 'circle';
@@ -107,7 +122,7 @@ interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
107
122
  /** One or more `<Button>` elements. */
108
123
  children: ReactNode;
109
124
  }
110
- declare function ButtonGroup({ children, className, role, ...rest }: ButtonGroupProps): react_jsx_runtime.JSX.Element;
125
+ declare function ButtonGroup({ children, className, role, ...rest }: ButtonGroupProps): react.JSX.Element;
111
126
 
112
127
  type InputSize = 'sm' | 'md' | 'lg';
113
128
  interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'prefix'> {
@@ -179,10 +194,10 @@ interface ModalProps {
179
194
  children: ReactNode;
180
195
  className?: string;
181
196
  }
182
- declare function Modal({ isOpen, onClose, title, children, className }: ModalProps): react_jsx_runtime.JSX.Element | null;
197
+ declare function Modal({ isOpen, onClose, title, children, className }: ModalProps): react.JSX.Element | null;
183
198
  declare namespace Modal {
184
- var Tray: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react_jsx_runtime.JSX.Element;
185
- var Footer: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react_jsx_runtime.JSX.Element;
199
+ var Tray: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
200
+ var Footer: ({ className, ...rest }: HTMLAttributes<HTMLDivElement>) => react.JSX.Element;
186
201
  }
187
202
 
188
203
  type Side$1 = 'right' | 'bottom';
@@ -245,7 +260,7 @@ interface FloatingDrawerProps {
245
260
  * the right-drawer's body padding so the action bar feels integrated. */
246
261
  headerClassName?: string;
247
262
  }
248
- declare function FloatingDrawer({ isOpen, onClose, side, size, resizable, onResize, title, titleSlot, footer, children, className, panelClassName, modal, anchor, showClose, headerClassName, collapsed, }: FloatingDrawerProps): react_jsx_runtime.JSX.Element;
263
+ declare function FloatingDrawer({ isOpen, onClose, side, size, resizable, onResize, title, titleSlot, footer, children, className, panelClassName, modal, anchor, showClose, headerClassName, collapsed, }: FloatingDrawerProps): react.JSX.Element;
249
264
  /**
250
265
  * DetailSection — small label/value layout for drawer body content.
251
266
  * Ports verbatim from brand-ai-extension's detail-drawer.tsx.
@@ -254,7 +269,7 @@ declare function DetailSection({ label, children, className, }: {
254
269
  label: string;
255
270
  children: ReactNode;
256
271
  className?: string;
257
- }): react_jsx_runtime.JSX.Element;
272
+ }): react.JSX.Element;
258
273
 
259
274
  type BrandLogoTileSize = 'xs' | 'sm' | 'md' | 'lg' | number;
260
275
  interface BrandLogoTileProps {
@@ -300,12 +315,12 @@ interface BrandLogoTileProps {
300
315
  className?: string;
301
316
  style?: CSSProperties;
302
317
  }
303
- declare function BrandLogoTile({ size, url, name, isFavicon, accentGlow, fallbackChar, background, color, borderless, className, style, }: BrandLogoTileProps): react_jsx_runtime.JSX.Element;
318
+ declare function BrandLogoTile({ size, url, name, isFavicon, accentGlow, fallbackChar, background, color, borderless, className, style, }: BrandLogoTileProps): react.JSX.Element;
304
319
 
305
320
  interface ActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
306
321
  label: string;
307
322
  }
308
- declare function ActionButton({ label, className, children, ...rest }: ActionButtonProps): react_jsx_runtime.JSX.Element;
323
+ declare function ActionButton({ label, className, children, ...rest }: ActionButtonProps): react.JSX.Element;
309
324
  interface FootProps {
310
325
  meta?: ReactNode;
311
326
  link?: {
@@ -317,7 +332,7 @@ interface FootProps {
317
332
  /** FootItem — a single icon+text item inside the foot. */
318
333
  declare function FootItem({ children }: {
319
334
  children: ReactNode;
320
- }): react_jsx_runtime.JSX.Element;
335
+ }): react.JSX.Element;
321
336
  interface BaseProps {
322
337
  /** DOM id and `data-section-id` for ChipNav scroll-spy. */
323
338
  id: string;
@@ -331,6 +346,20 @@ interface BaseProps {
331
346
  foot?: FootProps;
332
347
  /** Extra padding tweak. */
333
348
  className?: string;
349
+ /**
350
+ * Render as a SINGLE flat surface — header, divider, body — instead of
351
+ * the default frame-plus-inner-tray.
352
+ *
353
+ * Use this when the section is already inside a <FrameStack>. A framed
354
+ * section nested in a frame gives you three surface tiers (group frame →
355
+ * section frame → tray), which reads as boxes inside boxes. Flat is the
356
+ * shape <SectionCard> uses in the Social Spec builder, and it is what
357
+ * makes a group of sections read as one contained unit rather than as a
358
+ * stack of independent cards.
359
+ *
360
+ * Default (false) is unchanged, so every existing consumer is unaffected.
361
+ */
362
+ flat?: boolean;
334
363
  }
335
364
  interface StaticSectionProps extends BaseProps {
336
365
  /** Right-side header actions (override default pencil/generate). */
@@ -355,7 +384,7 @@ interface EditableSectionProps extends BaseProps {
355
384
  actions?: undefined;
356
385
  }
357
386
  type ProfileSectionProps = StaticSectionProps | EditableSectionProps;
358
- declare function ProfileSection(props: ProfileSectionProps): react_jsx_runtime.JSX.Element;
387
+ declare function ProfileSection(props: ProfileSectionProps): react.JSX.Element;
359
388
  type ProfileSectionComponent = typeof ProfileSection & {
360
389
  ActionButton: typeof ActionButton;
361
390
  FootItem: typeof FootItem;
@@ -435,7 +464,7 @@ interface ChipNavProps {
435
464
  */
436
465
  density?: 'comfortable' | 'compact';
437
466
  }
438
- declare function ChipNav({ items, scrollContainer, stickyTop, scrollOffset, actions, className, style, surface, activeId: activeIdProp, onItemClick, position, density, }: ChipNavProps): react_jsx_runtime.JSX.Element;
467
+ declare function ChipNav({ items, scrollContainer, stickyTop, scrollOffset, actions, className, style, surface, activeId: activeIdProp, onItemClick, position, density, }: ChipNavProps): react.JSX.Element;
439
468
 
440
469
  interface CompletionRingProps {
441
470
  /** 0–100. Values outside the range are clamped. */
@@ -460,7 +489,7 @@ interface CompletionRingProps {
460
489
  className?: string;
461
490
  style?: CSSProperties;
462
491
  }
463
- declare function CompletionRing({ percent, size, strokeWidth, label, showLabel, trackColor, fillColor, className, style, }: CompletionRingProps): react_jsx_runtime.JSX.Element;
492
+ declare function CompletionRing({ percent, size, strokeWidth, label, showLabel, trackColor, fillColor, className, style, }: CompletionRingProps): react.JSX.Element;
464
493
 
465
494
  /**
466
495
  * MicrosoftLogo — the Microsoft four-square brand mark, for "Sign in with
@@ -476,7 +505,64 @@ interface MicrosoftLogoProps {
476
505
  size?: number;
477
506
  className?: string;
478
507
  }
479
- declare function MicrosoftLogo({ size, className }: MicrosoftLogoProps): react_jsx_runtime.JSX.Element;
508
+ declare function MicrosoftLogo({ size, className }: MicrosoftLogoProps): react.JSX.Element;
509
+
510
+ /**
511
+ * Brand platform glyphs — real mono (currentColor) marks for the ad platforms
512
+ * the Social Spec builds for, replacing approximate Lucide stand-ins (Ghost for
513
+ * Snapchat, Home for Nextdoor, Music for TikTok, Megaphone for Meta). ADR-135.
514
+ *
515
+ * `@lovett/ui` is the one allowed home for bespoke SVG definitions (CLAUDE.md
516
+ * §2/§6) — same rationale as `MicrosoftLogo`. Path data is extracted from the
517
+ * owner's MIT-licensed fork github.com/edwinlov3tt/logos-apps (upstream: the
518
+ * ln-dev7 "logos" collection); each glyph is normalized to a single-colour
519
+ * `currentColor` silhouette so it adapts to its context (active pill = white,
520
+ * inactive tab = grey) — full-colour marks would clash inside the red pill.
521
+ * Extraction choices were picked by visual review; Facebook, Messenger and
522
+ * TikTok silhouettes are true path-boolean derivations of the official marks
523
+ * (disc⊖f, bubble⊖bolt, glitch-layer union — computed offline with paper.js,
524
+ * baked here as static path data).
525
+ *
526
+ * Marks are trademarks of their platforms — used nominatively to refer to the
527
+ * platforms themselves, exactly like the platform-chrome in the ad previews.
528
+ */
529
+ interface BrandIconProps {
530
+ /** Square box size in px; the glyph letterboxes inside (non-square viewBoxes
531
+ * centre via preserveAspectRatio). Default 16 — a tab/affix glyph. */
532
+ size?: number;
533
+ className?: string;
534
+ }
535
+ /** Meta brand glyph (mono, currentColor). */
536
+ declare function BrandMeta({ size, className }: BrandIconProps): react.JSX.Element;
537
+ /** Facebook brand glyph (mono, currentColor). */
538
+ declare function BrandFacebook({ size, className }: BrandIconProps): react.JSX.Element;
539
+ /** Instagram brand glyph (mono, currentColor). */
540
+ declare function BrandInstagram({ size, className }: BrandIconProps): react.JSX.Element;
541
+ /** Messenger brand glyph (mono, currentColor). */
542
+ declare function BrandMessenger({ size, className }: BrandIconProps): react.JSX.Element;
543
+ /** LinkedIn brand glyph (mono, currentColor). */
544
+ declare function BrandLinkedIn({ size, className }: BrandIconProps): react.JSX.Element;
545
+ /** Nextdoor brand glyph (mono, currentColor). */
546
+ declare function BrandNextdoor({ size, className }: BrandIconProps): react.JSX.Element;
547
+ /** Pinterest brand glyph (mono, currentColor). */
548
+ declare function BrandPinterest({ size, className }: BrandIconProps): react.JSX.Element;
549
+ /** Snapchat brand glyph (mono, currentColor). */
550
+ declare function BrandSnapchat({ size, className }: BrandIconProps): react.JSX.Element;
551
+ /** TikTok brand glyph (mono, currentColor). */
552
+ declare function BrandTikTok({ size, className }: BrandIconProps): react.JSX.Element;
553
+ /** Keyed map for registry-style resolution (e.g. the Social Spec tactic icons). */
554
+ declare const BRAND_ICONS: {
555
+ readonly meta: typeof BrandMeta;
556
+ readonly facebook: typeof BrandFacebook;
557
+ readonly instagram: typeof BrandInstagram;
558
+ readonly messenger: typeof BrandMessenger;
559
+ readonly linkedin: typeof BrandLinkedIn;
560
+ readonly nextdoor: typeof BrandNextdoor;
561
+ readonly pinterest: typeof BrandPinterest;
562
+ readonly snapchat: typeof BrandSnapchat;
563
+ readonly tiktok: typeof BrandTikTok;
564
+ };
565
+ type BrandIconKey = keyof typeof BRAND_ICONS;
480
566
 
481
567
  interface ChoroplethProps {
482
568
  /** `radius` → concentric circles; `isochrone` → concentric polygons. */
@@ -484,7 +570,7 @@ interface ChoroplethProps {
484
570
  className?: string;
485
571
  style?: CSSProperties;
486
572
  }
487
- declare function Choropleth({ mode, className, style }: ChoroplethProps): react_jsx_runtime.JSX.Element;
573
+ declare function Choropleth({ mode, className, style }: ChoroplethProps): react.JSX.Element;
488
574
 
489
575
  type Crumb = {
490
576
  label: string;
@@ -520,7 +606,7 @@ interface PageShellProps {
520
606
  }
521
607
  declare function PageHeaderSlotProvider({ children }: {
522
608
  children: ReactNode;
523
- }): react_jsx_runtime.JSX.Element;
609
+ }): react.JSX.Element;
524
610
  /**
525
611
  * Page shell — promoted from brand-ai-extension Phase 2a (ADR-009 Decision 7).
526
612
  *
@@ -533,7 +619,7 @@ declare function PageHeaderSlotProvider({ children }: {
533
619
  * rendering its own bar — the workspace uses this to merge the lens crumbs
534
620
  * onto the same row as the workspace sidebar toggle.
535
621
  */
536
- declare function PageShell({ crumbs, breadcrumb, title, actions, headerCenter, children, contentClassName, }: PageShellProps): react_jsx_runtime.JSX.Element;
622
+ declare function PageShell({ crumbs, breadcrumb, title, actions, headerCenter, children, contentClassName, }: PageShellProps): react.JSX.Element;
537
623
 
538
624
  /**
539
625
  * PageHeaderHost — single workspace-level header bar that the active
@@ -570,7 +656,7 @@ declare function PageHeaderHost({ leading, center, trailing, padX, }: {
570
656
  */
571
657
  center?: ReactNode;
572
658
  trailing?: ReactNode;
573
- }): react_jsx_runtime.JSX.Element;
659
+ }): react.JSX.Element;
574
660
  /**
575
661
  * Scrollable wrapper that exposes its scrollRef via a render prop so
576
662
  * the consuming header (PageShell's internal PageHeader) can subscribe
@@ -579,7 +665,7 @@ declare function PageHeaderHost({ leading, center, trailing, padX, }: {
579
665
  declare function AppScroll({ children, className, }: {
580
666
  children: (scrollRef: RefObject<HTMLDivElement | null>) => ReactNode;
581
667
  className?: string;
582
- }): react_jsx_runtime.JSX.Element;
668
+ }): react.JSX.Element;
583
669
 
584
670
  type SonnerToasterProps = ComponentProps<typeof Toaster$1>;
585
671
  /**
@@ -592,18 +678,18 @@ type SonnerToasterProps = ComponentProps<typeof Toaster$1>;
592
678
  * Apps can override any prop (position, duration, theme, etc.) by
593
679
  * passing it through.
594
680
  */
595
- declare function Toaster(props: SonnerToasterProps): react_jsx_runtime.JSX.Element;
681
+ declare function Toaster(props: SonnerToasterProps): react.JSX.Element;
596
682
 
597
683
  declare function SectionLabel({ children }: {
598
684
  children: ReactNode;
599
- }): react_jsx_runtime.JSX.Element;
685
+ }): react.JSX.Element;
600
686
  declare function IdentityLabel({ children }: {
601
687
  children: ReactNode;
602
- }): react_jsx_runtime.JSX.Element;
688
+ }): react.JSX.Element;
603
689
  declare function IdentityValue({ children, className, }: {
604
690
  children: ReactNode;
605
691
  className?: string;
606
- }): react_jsx_runtime.JSX.Element;
692
+ }): react.JSX.Element;
607
693
  declare function TextInput({ value, onChange, placeholder, autoFocus, autoComplete, name, }: {
608
694
  value: string;
609
695
  onChange: (v: string) => void;
@@ -613,7 +699,7 @@ declare function TextInput({ value, onChange, placeholder, autoFocus, autoComple
613
699
  autoComplete?: string | undefined;
614
700
  /** Forwarded so the field participates in form submission / autofill heuristics. */
615
701
  name?: string | undefined;
616
- }): react_jsx_runtime.JSX.Element;
702
+ }): react.JSX.Element;
617
703
  declare function TextareaInput({ value, onChange, placeholder, autoFocus, autoComplete, name, rows, }: {
618
704
  value: string;
619
705
  onChange: (v: string) => void;
@@ -622,15 +708,15 @@ declare function TextareaInput({ value, onChange, placeholder, autoFocus, autoCo
622
708
  autoComplete?: string | undefined;
623
709
  name?: string | undefined;
624
710
  rows?: number | undefined;
625
- }): react_jsx_runtime.JSX.Element;
711
+ }): react.JSX.Element;
626
712
  declare function EmptyPlaceholder({ label, description, onAdd, }: {
627
713
  label: string;
628
714
  description?: string | undefined;
629
715
  onAdd?: (() => void) | undefined;
630
- }): react_jsx_runtime.JSX.Element;
716
+ }): react.JSX.Element;
631
717
  declare function ListItem({ children }: {
632
718
  children: ReactNode;
633
- }): react_jsx_runtime.JSX.Element;
719
+ }): react.JSX.Element;
634
720
 
635
721
  type Strategy = 'vertical' | 'horizontal' | 'grid';
636
722
  declare function SortableList<T>({ items, getId, onReorder, strategy, children, }: {
@@ -639,7 +725,7 @@ declare function SortableList<T>({ items, getId, onReorder, strategy, children,
639
725
  onReorder: (items: T[]) => void;
640
726
  strategy?: Strategy;
641
727
  children: ReactNode;
642
- }): react_jsx_runtime.JSX.Element;
728
+ }): react.JSX.Element;
643
729
  declare function SortableItem({ id, children, }: {
644
730
  id: string;
645
731
  children: (props: {
@@ -648,11 +734,11 @@ declare function SortableItem({ id, children, }: {
648
734
  style: CSSProperties;
649
735
  isDragging: boolean;
650
736
  }) => ReactNode;
651
- }): react_jsx_runtime.JSX.Element;
737
+ }): react.JSX.Element;
652
738
  declare function DragHandle({ dragHandleProps, className, }: {
653
739
  dragHandleProps: HTMLAttributes<HTMLElement>;
654
740
  className?: string;
655
- }): react_jsx_runtime.JSX.Element;
741
+ }): react.JSX.Element;
656
742
 
657
743
  interface EmptyStateProps {
658
744
  /** Lucide icon (or any ReactNode) rendered inside the 56×56 tile.
@@ -668,7 +754,7 @@ interface EmptyStateProps {
668
754
  * (e.g. when the parent already provides vertical padding). */
669
755
  className?: string;
670
756
  }
671
- declare function EmptyState({ icon, title, description, actions, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
757
+ declare function EmptyState({ icon, title, description, actions, className, }: EmptyStateProps): react.JSX.Element;
672
758
 
673
759
  interface RadioGroupProps<T extends string = string> {
674
760
  /** Form name — required for proper radio semantics + form submission. */
@@ -688,7 +774,7 @@ interface RadioGroupProps<T extends string = string> {
688
774
  /** Disable every child radio. */
689
775
  disabled?: boolean;
690
776
  }
691
- declare function RadioGroup<T extends string = string>({ name, value, onChange, children, ariaLabel, orientation, className, disabled, }: RadioGroupProps<T>): react_jsx_runtime.JSX.Element;
777
+ declare function RadioGroup<T extends string = string>({ name, value, onChange, children, ariaLabel, orientation, className, disabled, }: RadioGroupProps<T>): react.JSX.Element;
692
778
  interface RadioProps {
693
779
  /** Value emitted to the group's onChange when picked. */
694
780
  value: string;
@@ -714,7 +800,7 @@ interface OptionTileProps {
714
800
  disabled: boolean | undefined;
715
801
  className: string | undefined;
716
802
  }
717
- declare function OptionTile({ selected, onSelect, inputType, inputName, label, description, disabled, className, }: OptionTileProps): react_jsx_runtime.JSX.Element;
803
+ declare function OptionTile({ selected, onSelect, inputType, inputName, label, description, disabled, className, }: OptionTileProps): react.JSX.Element;
718
804
  interface OptionTileGroupOption<T extends string> {
719
805
  value: T;
720
806
  label: ReactNode;
@@ -741,7 +827,7 @@ type OptionTileGroupProps<T extends string = string> = {
741
827
  /** Optional shared `name` attr on the underlying checkboxes (rarely needed). */
742
828
  name?: string;
743
829
  };
744
- declare function OptionTileGroup<T extends string = string>(props: OptionTileGroupProps<T>): react_jsx_runtime.JSX.Element;
830
+ declare function OptionTileGroup<T extends string = string>(props: OptionTileGroupProps<T>): react.JSX.Element;
745
831
 
746
832
  type MetricCardTone = 'neutral' | 'accent' | 'success' | 'warning' | 'destructive' | 'info';
747
833
  interface MetricCardProps {
@@ -765,7 +851,7 @@ interface MetricCardProps {
765
851
  /** Optional className override for the outer container. */
766
852
  className?: string;
767
853
  }
768
- declare function MetricCard({ value, label, tone, icon, labelPosition, className, }: MetricCardProps): react_jsx_runtime.JSX.Element;
854
+ declare function MetricCard({ value, label, tone, icon, labelPosition, className, }: MetricCardProps): react.JSX.Element;
769
855
 
770
856
  /**
771
857
  * ProgressBar — labeled fill bar.
@@ -789,7 +875,7 @@ interface ProgressBarProps {
789
875
  /** Track height in px (default 8). */
790
876
  height?: number;
791
877
  }
792
- declare function ProgressBar({ label, percent, status, height }: ProgressBarProps): react_jsx_runtime.JSX.Element;
878
+ declare function ProgressBar({ label, percent, status, height }: ProgressBarProps): react.JSX.Element;
793
879
 
794
880
  /**
795
881
  * StepLoader — a sequential, multi-step loading indicator (3-5 steps). Each step
@@ -821,7 +907,7 @@ interface StepLoaderProps {
821
907
  minLastStepMs?: number;
822
908
  className?: string;
823
909
  }
824
- declare function StepLoader({ steps, done, onComplete, defaultStepMs, minLastStepMs, className, }: StepLoaderProps): react_jsx_runtime.JSX.Element;
910
+ declare function StepLoader({ steps, done, onComplete, defaultStepMs, minLastStepMs, className, }: StepLoaderProps): react.JSX.Element;
825
911
 
826
912
  type BadgeTone = 'neutral' | 'accent' | 'success' | 'warning' | 'destructive' | 'info';
827
913
  interface BadgeProps {
@@ -838,7 +924,7 @@ interface BadgeProps {
838
924
  /** Extra classes merged onto the outer span (no longer replaces base). */
839
925
  className?: string;
840
926
  }
841
- declare function Badge({ tone, children, icon, dot, size, className, }: BadgeProps): react_jsx_runtime.JSX.Element;
927
+ declare function Badge({ tone, children, icon, dot, size, className, }: BadgeProps): react.JSX.Element;
842
928
 
843
929
  interface TokenBadgeProps {
844
930
  /** Public token name to tint from, e.g. `--folder-teal`, `--accent`,
@@ -860,7 +946,79 @@ interface TokenBadgeProps {
860
946
  uppercase?: boolean;
861
947
  className?: string;
862
948
  }
863
- declare function TokenBadge({ colorVar, children, variant, dot, icon, size, shape, uppercase, className, }: TokenBadgeProps): react_jsx_runtime.JSX.Element;
949
+ declare function TokenBadge({ colorVar, children, variant, dot, icon, size, shape, uppercase, className, }: TokenBadgeProps): react.JSX.Element;
950
+
951
+ interface ValueChipProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'value'> {
952
+ children: ReactNode;
953
+ /** Makes the chip copyable. The toast reads "Copied <copyLabel>". */
954
+ copyValue?: string;
955
+ copyLabel?: string;
956
+ /** `sm` for dense rows (10px), `md` default (11px). */
957
+ size?: 'sm' | 'md';
958
+ /** Stretch to fill a flex row — the equal-thirds hex/rgb/hsl layout. */
959
+ fill?: boolean;
960
+ }
961
+ declare const ValueChip: react.ForwardRefExoticComponent<ValueChipProps & react.RefAttributes<HTMLButtonElement>>;
962
+
963
+ interface MetaCellProps extends HTMLAttributes<HTMLDivElement> {
964
+ label: ReactNode;
965
+ children: ReactNode;
966
+ /** Optional leading glyph in the label row. */
967
+ icon?: ReactNode;
968
+ }
969
+ declare const MetaCell: react.ForwardRefExoticComponent<MetaCellProps & react.RefAttributes<HTMLDivElement>>;
970
+
971
+ declare function copyText(value: string, label?: string): Promise<void>;
972
+
973
+ /**
974
+ * Colour maths for brand-palette surfaces — hex to rgb/hsl, WCAG contrast.
975
+ *
976
+ * Promoted from `apps/extension/src/sidepanel/color-utils.ts` when the
977
+ * workspace's Brand Profile grew the same colour cards the extension's
978
+ * Colors tab already had. Two consumers, one implementation — the same
979
+ * rule the platform-chrome tokens were consolidated under.
980
+ *
981
+ * Pure functions, no deps, no DOM.
982
+ */
983
+ type RgbTuple = [number, number, number];
984
+ /** Parse `#abc` or `#aabbcc` (with or without the hash) into an rgb tuple. */
985
+ declare function hexToRgbTuple(hex: string): RgbTuple;
986
+ /** `"24, 119, 242"` — display form, the inside of an `rgb()`. */
987
+ declare function rgbString(hex: string): string;
988
+ /**
989
+ * `"rgb(24, 119, 242)"` — a complete CSS value, for copying.
990
+ *
991
+ * Lives here rather than being assembled at the call site because the
992
+ * token-boundary lint reads `rgb(...)` in app code as a raw colour
993
+ * literal — correctly, since it cannot tell a clipboard string from a
994
+ * style. packages/ui is the exempt substrate, so this is its job.
995
+ */
996
+ declare function rgbCss(hex: string): string;
997
+ /** `"217° 89% 52%"` — display form, not a CSS value. */
998
+ declare function hslString(hex: string): string;
999
+ /** WCAG 2.1 relative luminance (sRGB). */
1000
+ declare function relativeLuminance(hex: string): number;
1001
+ /** Contrast ratio between two relative luminances. */
1002
+ declare function contrastRatio(a: number, b: number): number;
1003
+ /**
1004
+ * Whether black or white text reads better ON this colour, and at what
1005
+ * ratio. Used to pick a legible foreground for a swatch banner.
1006
+ */
1007
+ declare function bestTextOn(hex: string): {
1008
+ onLight: boolean;
1009
+ ratio: number;
1010
+ };
1011
+ interface WcagBadge {
1012
+ label: string;
1013
+ pass: boolean;
1014
+ }
1015
+ /**
1016
+ * The three standard thresholds, scored against the BEST of black-or-white
1017
+ * text on this swatch. It answers "can any text sit on this colour", which
1018
+ * is the useful question for a brand palette — not "is this colour itself
1019
+ * readable", which depends on a background the palette doesn't know.
1020
+ */
1021
+ declare function wcagBadges(hex: string): WcagBadge[];
864
1022
 
865
1023
  /**
866
1024
  * AllocationSparkbar — a compact per-period bar strip.
@@ -890,7 +1048,7 @@ interface AllocationSparkbarProps {
890
1048
  height?: number;
891
1049
  className?: string;
892
1050
  }
893
- declare function AllocationSparkbar({ values, baseColorVar, colorVars, labels, titles, height, className, }: AllocationSparkbarProps): react_jsx_runtime.JSX.Element;
1051
+ declare function AllocationSparkbar({ values, baseColorVar, colorVars, labels, titles, height, className, }: AllocationSparkbarProps): react.JSX.Element;
894
1052
 
895
1053
  type FloatingStatusTone = 'neutral' | 'accent' | 'success' | 'warning' | 'destructive' | 'info';
896
1054
  interface FloatingStatusBarProps {
@@ -908,7 +1066,7 @@ interface FloatingStatusBarProps {
908
1066
  * bottom-center. */
909
1067
  className?: string;
910
1068
  }
911
- declare function FloatingStatusBar({ tone, label, meta, summary, action, className, }: FloatingStatusBarProps): react_jsx_runtime.JSX.Element;
1069
+ declare function FloatingStatusBar({ tone, label, meta, summary, action, className, }: FloatingStatusBarProps): react.JSX.Element;
912
1070
 
913
1071
  interface StatsGridProps {
914
1072
  children: ReactNode;
@@ -918,7 +1076,7 @@ interface StatsGridProps {
918
1076
  /** Optional className override for the outer container. */
919
1077
  className?: string;
920
1078
  }
921
- declare function StatsGrid({ children, minColumnWidth, className, }: StatsGridProps): react_jsx_runtime.JSX.Element;
1079
+ declare function StatsGrid({ children, minColumnWidth, className, }: StatsGridProps): react.JSX.Element;
922
1080
 
923
1081
  interface Column<T> {
924
1082
  /** Unique id; doubles as the sort key. Use a `keyof T` string or
@@ -957,7 +1115,7 @@ interface SortableTableProps<T> {
957
1115
  /** Compact density (smaller padding). Default false. */
958
1116
  compact?: boolean;
959
1117
  }
960
- declare function SortableTable<T>({ columns, rows, rowKey, initialSort, onRowClick, emptyState, zebra, compact, }: SortableTableProps<T>): react_jsx_runtime.JSX.Element;
1118
+ declare function SortableTable<T>({ columns, rows, rowKey, initialSort, onRowClick, emptyState, zebra, compact, }: SortableTableProps<T>): react.JSX.Element;
961
1119
 
962
1120
  /**
963
1121
  * Pagination — "Showing X-Y of Z" + prev/next buttons.
@@ -979,7 +1137,7 @@ interface PaginationProps {
979
1137
  totalItems: number;
980
1138
  onPageChange: (page: number) => void;
981
1139
  }
982
- declare function Pagination({ currentPage, pageSize, totalItems, onPageChange, }: PaginationProps): react_jsx_runtime.JSX.Element | null;
1140
+ declare function Pagination({ currentPage, pageSize, totalItems, onPageChange, }: PaginationProps): react.JSX.Element | null;
983
1141
 
984
1142
  interface Tab {
985
1143
  id: string;
@@ -989,6 +1147,9 @@ interface Tab {
989
1147
  /** Optional count badge rendered after the label. */
990
1148
  count?: number;
991
1149
  disabled?: boolean;
1150
+ /** Accessible name for ICON-ONLY tabs (label rendered empty) — e.g. the
1151
+ * responsive platform switcher's compact tier (ADR-135). */
1152
+ ariaLabel?: string;
992
1153
  }
993
1154
  interface TabsProps {
994
1155
  tabs: Tab[];
@@ -1002,7 +1163,7 @@ interface TabsProps {
1002
1163
  stretch?: boolean;
1003
1164
  className?: string;
1004
1165
  }
1005
- declare function Tabs({ tabs, activeTabId, onTabChange, size, variant, stretch, className, }: TabsProps): react_jsx_runtime.JSX.Element;
1166
+ declare function Tabs({ tabs, activeTabId, onTabChange, size, variant, stretch, className, }: TabsProps): react.JSX.Element;
1006
1167
 
1007
1168
  interface PillButtonProps {
1008
1169
  active: boolean;
@@ -1016,7 +1177,7 @@ interface PillButtonProps {
1016
1177
  icon?: ReactNode;
1017
1178
  disabled?: boolean;
1018
1179
  }
1019
- declare function PillButton({ active, onClick, children, size, tone, icon, disabled, }: PillButtonProps): react_jsx_runtime.JSX.Element;
1180
+ declare function PillButton({ active, onClick, children, size, tone, icon, disabled, }: PillButtonProps): react.JSX.Element;
1020
1181
 
1021
1182
  interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange' | 'checked'> {
1022
1183
  checked?: boolean;
@@ -1035,7 +1196,7 @@ interface DropdownMenuProps {
1035
1196
  defaultOpen?: boolean;
1036
1197
  children: ReactNode;
1037
1198
  }
1038
- declare function DropdownMenu({ open: controlledOpen, onOpenChange, defaultOpen, children, }: DropdownMenuProps): react_jsx_runtime.JSX.Element;
1199
+ declare function DropdownMenu({ open: controlledOpen, onOpenChange, defaultOpen, children, }: DropdownMenuProps): react.JSX.Element;
1039
1200
  interface DropdownMenuTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
1040
1201
  /** Skip the default secondary-Button styling. Useful when wrapping
1041
1202
  * an existing Button primitive. */
@@ -1046,7 +1207,7 @@ interface DropdownMenuTriggerProps extends ButtonHTMLAttributes<HTMLButtonElemen
1046
1207
  * secondary Button visual (rounded-xl + `--bg-card` fill + 1px
1047
1208
  * `--border`). Set `unstyled` to wrap your own button shape.
1048
1209
  */
1049
- declare function DropdownMenuTrigger({ unstyled, className, onClick, children, ...rest }: DropdownMenuTriggerProps): react_jsx_runtime.JSX.Element;
1210
+ declare function DropdownMenuTrigger({ unstyled, className, onClick, children, ...rest }: DropdownMenuTriggerProps): react.JSX.Element;
1050
1211
  interface DropdownMenuContentProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
1051
1212
  children: ReactNode;
1052
1213
  /** Horizontal alignment relative to the trigger. Default `start`. */
@@ -1065,18 +1226,18 @@ interface DropdownMenuItemProps extends ButtonHTMLAttributes<HTMLButtonElement>
1065
1226
  * items that have one. */
1066
1227
  inset?: boolean;
1067
1228
  }
1068
- declare function DropdownMenuItem({ variant, inset, className, onClick, children, ...rest }: DropdownMenuItemProps): react_jsx_runtime.JSX.Element;
1229
+ declare function DropdownMenuItem({ variant, inset, className, onClick, children, ...rest }: DropdownMenuItemProps): react.JSX.Element;
1069
1230
  interface DropdownMenuCheckboxItemProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {
1070
1231
  checked?: boolean;
1071
1232
  onCheckedChange?: (checked: boolean) => void;
1072
1233
  }
1073
- declare function DropdownMenuCheckboxItem({ checked, onCheckedChange, className, children, onClick, disabled, ...rest }: DropdownMenuCheckboxItemProps): react_jsx_runtime.JSX.Element;
1074
- declare function DropdownMenuSeparator({ className, ...rest }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1234
+ declare function DropdownMenuCheckboxItem({ checked, onCheckedChange, className, children, onClick, disabled, ...rest }: DropdownMenuCheckboxItemProps): react.JSX.Element;
1235
+ declare function DropdownMenuSeparator({ className, ...rest }: HTMLAttributes<HTMLDivElement>): react.JSX.Element;
1075
1236
  interface DropdownMenuLabelProps extends HTMLAttributes<HTMLDivElement> {
1076
1237
  inset?: boolean;
1077
1238
  }
1078
- declare function DropdownMenuLabel({ inset, className, ...rest }: DropdownMenuLabelProps): react_jsx_runtime.JSX.Element;
1079
- declare function DropdownMenuGroup({ className, ...rest }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1239
+ declare function DropdownMenuLabel({ inset, className, ...rest }: DropdownMenuLabelProps): react.JSX.Element;
1240
+ declare function DropdownMenuGroup({ className, ...rest }: HTMLAttributes<HTMLDivElement>): react.JSX.Element;
1080
1241
 
1081
1242
  /**
1082
1243
  * DataGrid public types.
@@ -1213,7 +1374,7 @@ type EditingCell<ColumnId extends string> = {
1213
1374
  };
1214
1375
  };
1215
1376
 
1216
- declare function DataGrid<Row extends DataGridRowBase, ColumnId extends string>({ rows, columns, getRowLabel, renderCell, isEditableColumn, getCellEditValue, applyCellEdit, getDrawerCellValue, canOpenDrawer, renderSummary, renderDrawerPanel, renderToolbar, onToolbarPropsChange, onOpenDrawerCell, drawerModal, drawerSize, stickySummaryFooter, stickyHeader, fillWidth, fillAvailableHeight, tableContainerClassName, onRowsChange, sort, onSortChange, }: DataGridProps<Row, ColumnId>): react_jsx_runtime.JSX.Element;
1377
+ declare function DataGrid<Row extends DataGridRowBase, ColumnId extends string>({ rows, columns, getRowLabel, renderCell, isEditableColumn, getCellEditValue, applyCellEdit, getDrawerCellValue, canOpenDrawer, renderSummary, renderDrawerPanel, renderToolbar, onToolbarPropsChange, onOpenDrawerCell, drawerModal, drawerSize, stickySummaryFooter, stickyHeader, fillWidth, fillAvailableHeight, tableContainerClassName, onRowsChange, sort, onSortChange, }: DataGridProps<Row, ColumnId>): react.JSX.Element;
1217
1378
 
1218
1379
  interface DataGridToolbarProps {
1219
1380
  /** Left slot — typically a <SearchBar>. Stretches up to a comfortable
@@ -1223,19 +1384,19 @@ interface DataGridToolbarProps {
1223
1384
  children?: ReactNode;
1224
1385
  className?: string;
1225
1386
  }
1226
- declare function DataGridToolbar({ search, children, className, }: DataGridToolbarProps): react_jsx_runtime.JSX.Element;
1387
+ declare function DataGridToolbar({ search, children, className, }: DataGridToolbarProps): react.JSX.Element;
1227
1388
 
1228
1389
  type DataGridColumnOptionsMenuProps<ColumnId extends string> = Pick<DataGridToolbarRenderProps<ColumnId>, 'showSummaries' | 'onShowSummariesChange' | 'visibleColumns' | 'visibleColumnIds' | 'hiddenColumns' | 'toggleColumnVisibility' | 'optionsSensors' | 'onOptionColumnDragEnd' | 'optionsDndContextId'> & {
1229
1390
  triggerLabel?: string;
1230
1391
  };
1231
- declare function DataGridColumnOptionsMenu<ColumnId extends string>({ showSummaries, onShowSummariesChange, visibleColumns, visibleColumnIds, hiddenColumns, toggleColumnVisibility, optionsSensors, onOptionColumnDragEnd, optionsDndContextId, triggerLabel, }: DataGridColumnOptionsMenuProps<ColumnId>): react_jsx_runtime.JSX.Element;
1392
+ declare function DataGridColumnOptionsMenu<ColumnId extends string>({ showSummaries, onShowSummariesChange, visibleColumns, visibleColumnIds, hiddenColumns, toggleColumnVisibility, optionsSensors, onOptionColumnDragEnd, optionsDndContextId, triggerLabel, }: DataGridColumnOptionsMenuProps<ColumnId>): react.JSX.Element;
1232
1393
 
1233
1394
  type DataGridDragOverlayProps<ColumnId extends string> = {
1234
1395
  dragOverlayColumn: DataGridColumn<ColumnId> | null;
1235
1396
  columnWidths: Record<ColumnId, number>;
1236
1397
  dragOverlayHeight: number;
1237
1398
  };
1238
- declare function DataGridDragOverlay<ColumnId extends string>({ dragOverlayColumn, columnWidths, dragOverlayHeight, }: DataGridDragOverlayProps<ColumnId>): react_jsx_runtime.JSX.Element | null;
1399
+ declare function DataGridDragOverlay<ColumnId extends string>({ dragOverlayColumn, columnWidths, dragOverlayHeight, }: DataGridDragOverlayProps<ColumnId>): react.JSX.Element | null;
1239
1400
  type DataGridDropIndicatorProps = {
1240
1401
  dropIndicatorLeft: number | null;
1241
1402
  dragTableRect: {
@@ -1243,7 +1404,7 @@ type DataGridDropIndicatorProps = {
1243
1404
  height: number;
1244
1405
  } | null;
1245
1406
  };
1246
- declare function DataGridDropIndicator({ dropIndicatorLeft, dragTableRect, }: DataGridDropIndicatorProps): react_jsx_runtime.JSX.Element | null;
1407
+ declare function DataGridDropIndicator({ dropIndicatorLeft, dragTableRect, }: DataGridDropIndicatorProps): react.JSX.Element | null;
1247
1408
 
1248
1409
  interface DropdownButtonItem {
1249
1410
  /** Stable id for keying. If omitted, the index is used (avoid for
@@ -1299,7 +1460,7 @@ interface DropdownButtonProps {
1299
1460
  * an engaged filter. Pair with `activeId` for filter-chip use. */
1300
1461
  active?: boolean;
1301
1462
  }
1302
- declare function DropdownButton({ label, variant, size, leadingIcon, trailingIcon, items, disabled, loading, className, align, side, sideOffset, menuWidth, triggerAriaLabel, activeId, active, }: DropdownButtonProps): react_jsx_runtime.JSX.Element;
1463
+ declare function DropdownButton({ label, variant, size, leadingIcon, trailingIcon, items, disabled, loading, className, align, side, sideOffset, menuWidth, triggerAriaLabel, activeId, active, }: DropdownButtonProps): react.JSX.Element;
1303
1464
 
1304
1465
  interface AccordionProps {
1305
1466
  /** Ids of the currently-open sections. */
@@ -1309,7 +1470,7 @@ interface AccordionProps {
1309
1470
  children: ReactNode;
1310
1471
  className?: string;
1311
1472
  }
1312
- declare function Accordion({ openIds, onToggle, children, className }: AccordionProps): react_jsx_runtime.JSX.Element;
1473
+ declare function Accordion({ openIds, onToggle, children, className }: AccordionProps): react.JSX.Element;
1313
1474
  interface AccordionSectionProps {
1314
1475
  /** Stable id — matched against the Accordion's `openIds`. */
1315
1476
  id: string;
@@ -1323,7 +1484,7 @@ interface AccordionSectionProps {
1323
1484
  complete?: boolean;
1324
1485
  children: ReactNode;
1325
1486
  }
1326
- declare function AccordionSection({ id, title, summary, badge, complete, children, }: AccordionSectionProps): react_jsx_runtime.JSX.Element;
1487
+ declare function AccordionSection({ id, title, summary, badge, complete, children, }: AccordionSectionProps): react.JSX.Element;
1327
1488
  declare const AccordionCompound: typeof Accordion & {
1328
1489
  Section: typeof AccordionSection;
1329
1490
  };
@@ -1365,7 +1526,7 @@ interface MenuButtonProps {
1365
1526
  /** aria-label for the trigger when the visible label is ambiguous. */
1366
1527
  triggerAriaLabel?: string;
1367
1528
  }
1368
- declare function MenuButton({ label, items, leadingIcon, disabled, align, menuWidth, className, triggerAriaLabel, }: MenuButtonProps): react_jsx_runtime.JSX.Element;
1529
+ declare function MenuButton({ label, items, leadingIcon, disabled, align, menuWidth, className, triggerAriaLabel, }: MenuButtonProps): react.JSX.Element;
1369
1530
 
1370
1531
  /**
1371
1532
  * CopyField — an input/output field with a copy button pinned to the
@@ -1407,7 +1568,7 @@ interface CopyFieldProps {
1407
1568
  copyToastMessage?: string;
1408
1569
  className?: string;
1409
1570
  }
1410
- declare function CopyField({ value, onChange, multiline, rows, placeholder, readOnly, label, hideLabel, id, copyToastMessage, className, }: CopyFieldProps): react_jsx_runtime.JSX.Element;
1571
+ declare function CopyField({ value, onChange, multiline, rows, placeholder, readOnly, label, hideLabel, id, copyToastMessage, className, }: CopyFieldProps): react.JSX.Element;
1411
1572
 
1412
1573
  /**
1413
1574
  * TagChipInput — type-to-create chips with autocomplete.
@@ -1450,7 +1611,7 @@ interface TagChipInputProps {
1450
1611
  error?: boolean;
1451
1612
  className?: string;
1452
1613
  }
1453
- declare function TagChipInput({ value, onChange, suggestions, placeholder, max, maxLength, disabled, id, error, className, }: TagChipInputProps): react_jsx_runtime.JSX.Element;
1614
+ declare function TagChipInput({ value, onChange, suggestions, placeholder, max, maxLength, disabled, id, error, className, }: TagChipInputProps): react.JSX.Element;
1454
1615
 
1455
1616
  /**
1456
1617
  * FolderTreePicker — dropdown picker for a nestable folder tree.
@@ -1503,7 +1664,7 @@ interface FolderTreePickerProps {
1503
1664
  /** Apply error styling to the trigger. */
1504
1665
  error?: boolean;
1505
1666
  }
1506
- declare function FolderTreePicker({ folders, value, onChange, onCreateFolder, placeholder, disabled, id, className, error, }: FolderTreePickerProps): react_jsx_runtime.JSX.Element;
1667
+ declare function FolderTreePicker({ folders, value, onChange, onCreateFolder, placeholder, disabled, id, className, error, }: FolderTreePickerProps): react.JSX.Element;
1507
1668
 
1508
1669
  interface HeroFormCardProps extends Omit<FormHTMLAttributes<HTMLFormElement>, 'title' | 'onSubmit'> {
1509
1670
  /** Small accent text above the title, e.g. "Brand · Research". */
@@ -1543,7 +1704,7 @@ interface HeroFormCardSectionProps extends Omit<HTMLAttributes<HTMLElement>, 'ti
1543
1704
  trailing?: ReactNode;
1544
1705
  children: ReactNode;
1545
1706
  }
1546
- declare function Section({ title, icon, description, trailing, children, className, ...rest }: HeroFormCardSectionProps): react_jsx_runtime.JSX.Element;
1707
+ declare function Section({ title, icon, description, trailing, children, className, ...rest }: HeroFormCardSectionProps): react.JSX.Element;
1547
1708
  interface HeroFormCardFieldProps {
1548
1709
  /** Visible field label. */
1549
1710
  label: ReactNode;
@@ -1558,8 +1719,8 @@ interface HeroFormCardFieldProps {
1558
1719
  children: ReactNode;
1559
1720
  className?: string;
1560
1721
  }
1561
- declare function Field({ label, htmlFor, required, optional, error, hint, children, className, }: HeroFormCardFieldProps): react_jsx_runtime.JSX.Element;
1562
- declare function FieldRow({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1722
+ declare function Field({ label, htmlFor, required, optional, error, hint, children, className, }: HeroFormCardFieldProps): react.JSX.Element;
1723
+ declare function FieldRow({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): react.JSX.Element;
1563
1724
  interface HeroFormCardBannerProps {
1564
1725
  /** Optional leading icon. */
1565
1726
  icon?: ReactNode;
@@ -1569,7 +1730,7 @@ interface HeroFormCardBannerProps {
1569
1730
  tone?: 'info' | 'accent' | 'success' | 'warning' | 'destructive';
1570
1731
  className?: string;
1571
1732
  }
1572
- declare function Banner({ icon, children, tone, className, }: HeroFormCardBannerProps): react_jsx_runtime.JSX.Element;
1733
+ declare function Banner({ icon, children, tone, className, }: HeroFormCardBannerProps): react.JSX.Element;
1573
1734
  interface HeroFormCardAdvancedProps {
1574
1735
  summary?: ReactNode;
1575
1736
  /** Optional icon node next to the summary. */
@@ -1578,8 +1739,8 @@ interface HeroFormCardAdvancedProps {
1578
1739
  children: ReactNode;
1579
1740
  className?: string;
1580
1741
  }
1581
- declare function Advanced({ summary, icon, defaultOpen, children, className, }: HeroFormCardAdvancedProps): react_jsx_runtime.JSX.Element;
1582
- declare function Footer({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
1742
+ declare function Advanced({ summary, icon, defaultOpen, children, className, }: HeroFormCardAdvancedProps): react.JSX.Element;
1743
+ declare function Footer({ children, className, ...rest }: HTMLAttributes<HTMLDivElement>): react.JSX.Element;
1583
1744
  declare const HeroFormCardCompound: react.ForwardRefExoticComponent<HeroFormCardProps & react.RefAttributes<HTMLFormElement>> & {
1584
1745
  Section: typeof Section;
1585
1746
  Field: typeof Field;
@@ -1609,7 +1770,7 @@ interface RangeSliderProps {
1609
1770
  disabled?: boolean;
1610
1771
  className?: string;
1611
1772
  }
1612
- declare function RangeSlider({ min, max, value, onChange, step, label, formatValue, id, disabled, className, }: RangeSliderProps): react_jsx_runtime.JSX.Element;
1773
+ declare function RangeSlider({ min, max, value, onChange, step, label, formatValue, id, disabled, className, }: RangeSliderProps): react.JSX.Element;
1613
1774
 
1614
1775
  interface SegmentedPillItem<Id extends string = string> {
1615
1776
  id: Id;
@@ -1633,7 +1794,7 @@ interface SegmentedPillProps<Id extends string = string> {
1633
1794
  stretch?: boolean;
1634
1795
  className?: string;
1635
1796
  }
1636
- declare function SegmentedPill<Id extends string = string>({ items, value, onChange, ariaLabel, size, stretch, className, }: SegmentedPillProps<Id>): react_jsx_runtime.JSX.Element;
1797
+ declare function SegmentedPill<Id extends string = string>({ items, value, onChange, ariaLabel, size, stretch, className, }: SegmentedPillProps<Id>): react.JSX.Element;
1637
1798
 
1638
1799
  interface ShellProps extends HTMLAttributes<HTMLDivElement> {
1639
1800
  /** Max-width for the auto-centered page-level wrapper, in pixels.
@@ -1665,7 +1826,7 @@ interface ShellTrayHeaderProps extends Omit<HTMLAttributes<HTMLElement>, 'title'
1665
1826
  /** Tighter padding for dense layouts. */
1666
1827
  compact?: boolean;
1667
1828
  }
1668
- declare function TrayHeader({ title, meta, index, description, compact, className, style, ...rest }: ShellTrayHeaderProps): react_jsx_runtime.JSX.Element;
1829
+ declare function TrayHeader({ title, meta, index, description, compact, className, style, ...rest }: ShellTrayHeaderProps): react.JSX.Element;
1669
1830
  interface ShellTrayBodyProps extends HTMLAttributes<HTMLDivElement> {
1670
1831
  /** Vertical gap between children. Default `form` (16px). `grid`
1671
1832
  * (14px) is for tighter sub-card grids. `flush` (0) lets the
@@ -1674,7 +1835,7 @@ interface ShellTrayBodyProps extends HTMLAttributes<HTMLDivElement> {
1674
1835
  /** Tighter padding for dense layouts. */
1675
1836
  compact?: boolean;
1676
1837
  }
1677
- declare function TrayBody({ spacing, compact, className, style, children, ...rest }: ShellTrayBodyProps): react_jsx_runtime.JSX.Element;
1838
+ declare function TrayBody({ spacing, compact, className, style, children, ...rest }: ShellTrayBodyProps): react.JSX.Element;
1678
1839
  interface ShellTrayFooterProps extends HTMLAttributes<HTMLDivElement> {
1679
1840
  /** Tighter padding for dense layouts. */
1680
1841
  compact?: boolean;
@@ -1685,12 +1846,12 @@ interface ShellTrayFooterProps extends HTMLAttributes<HTMLDivElement> {
1685
1846
  * the right edge via `margin-left: auto`. */
1686
1847
  right?: ReactNode;
1687
1848
  }
1688
- declare function TrayFooter({ compact, left, right, className, style, children, ...rest }: ShellTrayFooterProps): react_jsx_runtime.JSX.Element;
1849
+ declare function TrayFooter({ compact, left, right, className, style, children, ...rest }: ShellTrayFooterProps): react.JSX.Element;
1689
1850
  interface ShellSubCardProps extends HTMLAttributes<HTMLDivElement> {
1690
1851
  /** Optional header content rendered above the body. */
1691
1852
  header?: ReactNode;
1692
1853
  }
1693
- declare function SubCard({ header, className, style, children, ...rest }: ShellSubCardProps): react_jsx_runtime.JSX.Element;
1854
+ declare function SubCard({ header, className, style, children, ...rest }: ShellSubCardProps): react.JSX.Element;
1694
1855
  /** Value-text tone for <ShellStat>. Semantic tones map to the public
1695
1856
  * status tokens — handy for traffic-light KPIs (e.g. competition). */
1696
1857
  type ShellStatTone = 'default' | 'accent' | 'success' | 'warning' | 'destructive';
@@ -1707,7 +1868,7 @@ interface ShellStatProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
1707
1868
  * color (`success` / `warning` / `destructive`). */
1708
1869
  valueTone?: ShellStatTone;
1709
1870
  }
1710
- declare function ShellStat({ label, value, icon, hint, valueTone, className, ...rest }: ShellStatProps): react_jsx_runtime.JSX.Element;
1871
+ declare function ShellStat({ label, value, icon, hint, valueTone, className, ...rest }: ShellStatProps): react.JSX.Element;
1711
1872
  type ShellComponent = typeof ShellRoot & {
1712
1873
  Tray: typeof Tray;
1713
1874
  TrayHeader: typeof TrayHeader;
@@ -1740,7 +1901,7 @@ interface FolderCardProps {
1740
1901
  menuSlot?: ReactNode;
1741
1902
  className?: string;
1742
1903
  }
1743
- declare function FolderCard({ name, colorKey, assetCount, folderCount, selected, selectable, onOpen, onSelect, menuSlot, className, }: FolderCardProps): react_jsx_runtime.JSX.Element;
1904
+ declare function FolderCard({ name, colorKey, assetCount, folderCount, selected, selectable, onOpen, onSelect, menuSlot, className, }: FolderCardProps): react.JSX.Element;
1744
1905
 
1745
1906
  interface BulkActionBarProps {
1746
1907
  /** Selection count shown in the accent badge. */
@@ -1752,7 +1913,7 @@ interface BulkActionBarProps {
1752
1913
  children: ReactNode;
1753
1914
  onClear: () => void;
1754
1915
  }
1755
- declare function BulkActionBar({ count, summary, children, onClear, }: BulkActionBarProps): react_jsx_runtime.JSX.Element;
1916
+ declare function BulkActionBar({ count, summary, children, onClear, }: BulkActionBarProps): react.JSX.Element;
1756
1917
 
1757
1918
  /**
1758
1919
  * FileUploadButton — paperclip trigger that opens a native file picker.
@@ -1766,7 +1927,7 @@ interface FileUploadButtonProps {
1766
1927
  fileCount?: number;
1767
1928
  maxFiles?: number;
1768
1929
  }
1769
- declare function FileUploadButton({ onFilesSelected, disabled, fileCount, maxFiles, }: FileUploadButtonProps): react_jsx_runtime.JSX.Element;
1930
+ declare function FileUploadButton({ onFilesSelected, disabled, fileCount, maxFiles, }: FileUploadButtonProps): react.JSX.Element;
1770
1931
 
1771
1932
  interface FileDropZoneProps {
1772
1933
  children: ReactNode;
@@ -1774,7 +1935,7 @@ interface FileDropZoneProps {
1774
1935
  disabled?: boolean;
1775
1936
  className?: string;
1776
1937
  }
1777
- declare function FileDropZone({ children, onFilesDropped, disabled, className, }: FileDropZoneProps): react_jsx_runtime.JSX.Element;
1938
+ declare function FileDropZone({ children, onFilesDropped, disabled, className, }: FileDropZoneProps): react.JSX.Element;
1778
1939
 
1779
1940
  /**
1780
1941
  * useFileUpload — stateful file-selection, validation, text-extraction, and
@@ -1847,13 +2008,13 @@ interface FilePreviewGridProps {
1847
2008
  onRemove: (id: string) => void;
1848
2009
  className?: string;
1849
2010
  }
1850
- declare function FilePreviewGrid({ files, onRemove, className }: FilePreviewGridProps): react_jsx_runtime.JSX.Element | null;
2011
+ declare function FilePreviewGrid({ files, onRemove, className }: FilePreviewGridProps): react.JSX.Element | null;
1851
2012
 
1852
2013
  interface FilePreviewItemProps {
1853
2014
  pendingFile: PendingFile;
1854
2015
  onRemove: (id: string) => void;
1855
2016
  }
1856
- declare function FilePreviewItem({ pendingFile, onRemove }: FilePreviewItemProps): react_jsx_runtime.JSX.Element;
2017
+ declare function FilePreviewItem({ pendingFile, onRemove }: FilePreviewItemProps): react.JSX.Element;
1857
2018
 
1858
2019
  /**
1859
2020
  * FileThumbnail — icon-based preview tile for non-image files; renders the
@@ -1873,7 +2034,7 @@ interface FileThumbnailProps {
1873
2034
  previewUrl?: string;
1874
2035
  className?: string;
1875
2036
  }
1876
- declare function FileThumbnail({ file, previewUrl, className }: FileThumbnailProps): react_jsx_runtime.JSX.Element;
2037
+ declare function FileThumbnail({ file, previewUrl, className }: FileThumbnailProps): react.JSX.Element;
1877
2038
 
1878
2039
  interface CodeBlockProps {
1879
2040
  /** Lowercased language identifier, e.g. "typescript" or "json". */
@@ -1881,7 +2042,7 @@ interface CodeBlockProps {
1881
2042
  /** Raw source text. */
1882
2043
  children: string;
1883
2044
  }
1884
- declare function CodeBlock({ language, children }: CodeBlockProps): react_jsx_runtime.JSX.Element;
2045
+ declare function CodeBlock({ language, children }: CodeBlockProps): react.JSX.Element;
1885
2046
  /**
1886
2047
  * MarkdownCode — react-markdown code element adapter.
1887
2048
  *
@@ -1889,7 +2050,7 @@ declare function CodeBlock({ language, children }: CodeBlockProps): react_jsx_ru
1889
2050
  * Fenced code (triple backtick, className="language-xxx") delegates to
1890
2051
  * CodeBlock for syntax highlighting + copy button.
1891
2052
  */
1892
- declare function MarkdownCode({ className, children }: HTMLAttributes<HTMLElement>): react_jsx_runtime.JSX.Element;
2053
+ declare function MarkdownCode({ className, children }: HTMLAttributes<HTMLElement>): react.JSX.Element;
1893
2054
 
1894
2055
  interface MarkdownRendererProps {
1895
2056
  /** Raw markdown string to render. */
@@ -1902,7 +2063,7 @@ interface MarkdownRendererProps {
1902
2063
  * Renders headings, lists, code (via CodeBlock), tables, task lists,
1903
2064
  * strikethrough, blockquotes, and links with workspace token styling.
1904
2065
  */
1905
- declare function MarkdownRenderer({ children, className }: MarkdownRendererProps): react_jsx_runtime.JSX.Element;
2066
+ declare function MarkdownRenderer({ children, className }: MarkdownRendererProps): react.JSX.Element;
1906
2067
 
1907
2068
  interface ResizableHandleProps {
1908
2069
  /** Which edge of the parent the handle decorates. */
@@ -1927,12 +2088,12 @@ interface ResizableHandleProps {
1927
2088
  disabled?: boolean;
1928
2089
  className?: string;
1929
2090
  }
1930
- declare function ResizableHandle({ side, value, onChange, onCommit, min, max, defaultValue, step, 'aria-label': ariaLabel, disabled, className, }: ResizableHandleProps): react_jsx_runtime.JSX.Element;
2091
+ declare function ResizableHandle({ side, value, onChange, onCommit, min, max, defaultValue, step, 'aria-label': ariaLabel, disabled, className, }: ResizableHandleProps): react.JSX.Element;
1931
2092
  interface ResizablePaneProps extends ResizableHandleProps {
1932
2093
  children: ReactNode;
1933
2094
  paneClassName?: string;
1934
2095
  }
1935
- declare function ResizablePane({ children, paneClassName, ...handleProps }: ResizablePaneProps): react_jsx_runtime.JSX.Element;
2096
+ declare function ResizablePane({ children, paneClassName, ...handleProps }: ResizablePaneProps): react.JSX.Element;
1936
2097
 
1937
2098
  interface KbdProps {
1938
2099
  /** Child text — typically a single key glyph or short string. */
@@ -1940,13 +2101,16 @@ interface KbdProps {
1940
2101
  /** Optional size — defaults to 'md'. */
1941
2102
  size?: 'sm' | 'md';
1942
2103
  }
1943
- declare function Kbd({ children, size }: KbdProps): react_jsx_runtime.JSX.Element;
2104
+ declare function Kbd({ children, size }: KbdProps): react.JSX.Element;
1944
2105
 
1945
2106
  interface FrameStackProps extends HTMLAttributes<HTMLDivElement> {
1946
2107
  /** Visual gap between child cards. Defaults to 10 px to match the
1947
2108
  * prototype's spec. Override only with a token value
1948
2109
  * (e.g. `'var(--space-3)'` for 12 px) — never a literal. */
1949
2110
  gap?: string;
2111
+ /** Outer padding. Defaults to `--tray-inset`, the same inset <Card>
2112
+ * uses, so a framed group and a framed card share one edge. */
2113
+ padding?: string;
1950
2114
  }
1951
2115
  declare const FrameStack: react.ForwardRefExoticComponent<FrameStackProps & react.RefAttributes<HTMLDivElement>>;
1952
2116
 
@@ -1990,7 +2154,7 @@ interface CalculatorShellProps {
1990
2154
  * CalculatorShell — the layout primitive. See file-level JSDoc for the
1991
2155
  * locked layout / interaction / token rules.
1992
2156
  */
1993
- declare function CalculatorShell({ title, subtitle, inputs, result, formula, secondaryStats, onReset, copyValue, shareUrl, }: CalculatorShellProps): react_jsx_runtime.JSX.Element;
2157
+ declare function CalculatorShell({ title, subtitle, inputs, result, formula, secondaryStats, onReset, copyValue, shareUrl, }: CalculatorShellProps): react.JSX.Element;
1994
2158
 
1995
2159
  type CalcLayout = 'shell' | 'open';
1996
2160
  /**
@@ -2041,7 +2205,7 @@ interface CalculatorShellV2Props {
2041
2205
  * "Benchmark unavailable in manual mode" placeholder (Amendment 1 E). */
2042
2206
  benchmarkSlot?: ReactNode;
2043
2207
  }
2044
- declare function CalculatorShellV2({ eyebrow, title, icon, layout, inputs, result, footerNote, actions, assumptions, copyReport, benchmarkSlot, }: CalculatorShellV2Props): react_jsx_runtime.JSX.Element;
2208
+ declare function CalculatorShellV2({ eyebrow, title, icon, layout, inputs, result, footerNote, actions, assumptions, copyReport, benchmarkSlot, }: CalculatorShellV2Props): react.JSX.Element;
2045
2209
 
2046
2210
  interface StatRowStep {
2047
2211
  /** Lucide glyph (~16px). Inherits the dark-frame label colour. */
@@ -2058,7 +2222,7 @@ interface StatRowProps {
2058
2222
  steps: StatRowStep[];
2059
2223
  className?: string;
2060
2224
  }
2061
- declare function StatRow({ steps, className }: StatRowProps): react_jsx_runtime.JSX.Element;
2225
+ declare function StatRow({ steps, className }: StatRowProps): react.JSX.Element;
2062
2226
 
2063
2227
  /**
2064
2228
  * Slider — single-value numeric slider (ADR-076 D8).
@@ -2087,7 +2251,7 @@ interface SliderProps {
2087
2251
  disabled?: boolean;
2088
2252
  className?: string;
2089
2253
  }
2090
- declare function Slider({ value, min, max, step, onChange, 'aria-label': ariaLabel, disabled, className, }: SliderProps): react_jsx_runtime.JSX.Element;
2254
+ declare function Slider({ value, min, max, step, onChange, 'aria-label': ariaLabel, disabled, className, }: SliderProps): react.JSX.Element;
2091
2255
 
2092
2256
  /**
2093
2257
  * Number-formatting helpers — small set of pure, zero-dep utilities
@@ -2197,7 +2361,7 @@ interface PageHeroProps {
2197
2361
  leading?: ReactNode;
2198
2362
  className?: string;
2199
2363
  }
2200
- declare function PageHero({ eyebrow, title, subtitle, actions, leading, className, }: PageHeroProps): react_jsx_runtime.JSX.Element;
2364
+ declare function PageHero({ eyebrow, title, subtitle, actions, leading, className, }: PageHeroProps): react.JSX.Element;
2201
2365
 
2202
2366
  interface SearchBarProps {
2203
2367
  value: string;
@@ -2206,7 +2370,7 @@ interface SearchBarProps {
2206
2370
  width?: number | string;
2207
2371
  className?: string;
2208
2372
  }
2209
- declare function SearchBar({ value, onChange, placeholder, width, className, }: SearchBarProps): react_jsx_runtime.JSX.Element;
2373
+ declare function SearchBar({ value, onChange, placeholder, width, className, }: SearchBarProps): react.JSX.Element;
2210
2374
 
2211
2375
  interface FilterBarProps {
2212
2376
  /**
@@ -2220,7 +2384,7 @@ interface FilterBarProps {
2220
2384
  className?: string;
2221
2385
  children: ReactNode;
2222
2386
  }
2223
- declare function FilterBarRoot({ variant, 'aria-label': ariaLabel, className, children, }: FilterBarProps): react_jsx_runtime.JSX.Element;
2387
+ declare function FilterBarRoot({ variant, 'aria-label': ariaLabel, className, children, }: FilterBarProps): react.JSX.Element;
2224
2388
  interface FilterBarSearchProps {
2225
2389
  value: string;
2226
2390
  onChange: (next: string) => void;
@@ -2231,15 +2395,15 @@ interface FilterBarSearchProps {
2231
2395
  className?: string;
2232
2396
  }
2233
2397
  /** Standardized search field: small `Input` with a leading magnifier. */
2234
- declare function FilterBarSearch({ value, onChange, placeholder, 'aria-label': ariaLabel, className, }: FilterBarSearchProps): react_jsx_runtime.JSX.Element;
2398
+ declare function FilterBarSearch({ value, onChange, placeholder, 'aria-label': ariaLabel, className, }: FilterBarSearchProps): react.JSX.Element;
2235
2399
  /** Flexible spacer — everything after it is pushed to the right edge. */
2236
- declare function FilterBarSpacer(): react_jsx_runtime.JSX.Element;
2400
+ declare function FilterBarSpacer(): react.JSX.Element;
2237
2401
  interface FilterBarCountProps {
2238
2402
  shown: number;
2239
2403
  total: number;
2240
2404
  }
2241
2405
  /** Right-aligned "{shown} of {total}" result count, tabular-nums. */
2242
- declare function FilterBarCount({ shown, total }: FilterBarCountProps): react_jsx_runtime.JSX.Element;
2406
+ declare function FilterBarCount({ shown, total }: FilterBarCountProps): react.JSX.Element;
2243
2407
  declare const FilterBar: typeof FilterBarRoot & {
2244
2408
  Search: typeof FilterBarSearch;
2245
2409
  Spacer: typeof FilterBarSpacer;
@@ -2267,7 +2431,7 @@ interface FilterDropdownProps<T extends string = string> {
2267
2431
  className?: string;
2268
2432
  align?: 'left' | 'right';
2269
2433
  }
2270
- declare function FilterDropdown<T extends string = string>({ label, value, onChange, options, neutralValue, triggerValueLabel, className, align, }: FilterDropdownProps<T>): react_jsx_runtime.JSX.Element;
2434
+ declare function FilterDropdown<T extends string = string>({ label, value, onChange, options, neutralValue, triggerValueLabel, className, align, }: FilterDropdownProps<T>): react.JSX.Element;
2271
2435
 
2272
2436
  interface DeviceFrameProps {
2273
2437
  /** Which device bezel to render. */
@@ -2283,7 +2447,7 @@ interface DeviceFrameProps {
2283
2447
  /** Optional className on the outer frame element. */
2284
2448
  className?: string;
2285
2449
  }
2286
- declare function DeviceFrame({ device, url, children, className }: DeviceFrameProps): react_jsx_runtime.JSX.Element;
2450
+ declare function DeviceFrame({ device, url, children, className }: DeviceFrameProps): react.JSX.Element;
2287
2451
 
2288
2452
  interface CreativeMediaProps {
2289
2453
  src: string;
@@ -2492,4 +2656,4 @@ declare namespace index {
2492
2656
  export { type index_CarouselCardView as CarouselCardView, type index_CarouselViewProps as CarouselViewProps, index_CreativeMedia as CreativeMedia, index_InstagramExplorePreview as InstagramExplorePreview, index_InstagramFeedCarousel as InstagramFeedCarousel, index_InstagramFeedPreview as InstagramFeedPreview, index_MetaFeedCarousel as MetaFeedCarousel, index_MetaFeedPreview as MetaFeedPreview, index_MetaInstreamPreview as MetaInstreamPreview, index_MetaMessengerPreview as MetaMessengerPreview, index_MetaReelPreview as MetaReelPreview, index_MetaRightColumnPreview as MetaRightColumnPreview, index_MetaSearchPreview as MetaSearchPreview, index_MetaStoryPreview as MetaStoryPreview, index_PLACEMENT_CONFIGS as PLACEMENT_CONFIGS, type index_PlacementPreview as PlacementPreview, type index_PreviewAdData as PreviewAdData, type index_PreviewConfiguration as PreviewConfiguration, type index_PreviewDevice as PreviewDevice, type index_PreviewPlacement as PreviewPlacement, type index_PreviewPlatform as PreviewPlatform };
2493
2657
  }
2494
2658
 
2495
- export { AccordionCompound as Accordion, type AccordionProps, type AccordionSectionProps, AllocationSparkbar, type AllocationSparkbarProps, AppScroll, Badge, type BadgeProps, type BadgeTone, BrandLogoTile, type BrandLogoTileProps, type BrandLogoTileSize, BulkActionBar, type BulkActionBarProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ButtonShape, type ButtonSize, type ButtonVariant, type CalcLayout, type CalcPrefill, CalculatorShell, type CalculatorShellProps, CalculatorShellV2, type CalculatorShellV2Props, Card, Checkbox, type CheckboxProps, ChipNav, type ChipNavItem, Choropleth, type ChoroplethProps, CodeBlock, type CodeBlockProps, CompletionRing, type CompletionRingProps, CopyField, type CopyFieldProps, type Crumb, DataGrid, type DataGridColumn, DataGridColumnOptionsMenu, DataGridDragOverlay, type DataGridDrawerPanelProps, DataGridDropIndicator, type DataGridIcon, type DataGridProps, type DataGridRowBase, type DataGridSortState, DataGridToolbar, type DataGridToolbarProps, type DataGridToolbarRenderProps, DetailSection, DeviceFrame, type DeviceFrameProps, DragHandle, DropdownButton, type DropdownButtonItem, type DropdownButtonProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, type DropdownMenuProps, DropdownMenuSeparator, DropdownMenuTrigger, type DropdownMenuTriggerProps, type EditingCell, EmptyPlaceholder, EmptyState, type EmptyStateProps, FOLDER_COLOR_KEYS, FileDropZone, FilePreviewGrid, FilePreviewItem, FileThumbnail, FileUploadButton, FilterBar, type FilterBarCountProps, type FilterBarProps, type FilterBarSearchProps, FilterDropdown, type FilterDropdownProps, type FilterOption, FloatingDrawer, type FloatingDrawerProps, FloatingStatusBar, type FloatingStatusBarProps, type FloatingStatusTone, FolderCard, type FolderCardProps, type FolderColorKey, type FolderTreeNode, FolderTreePicker, type FolderTreePickerProps, FrameStack, type FrameStackProps, HEADER_HEIGHT, HeroFormCardCompound as HeroFormCard, type HeroFormCardAdvancedProps, type HeroFormCardBannerProps, type HeroFormCardFieldProps, type HeroFormCardProps, type HeroFormCardSectionProps, IconTile, IdentityLabel, IdentityValue, Input, type InputProps, type InputSize, Kbd, type KbdProps, ListItem, MarkdownCode, MarkdownRenderer, type MarkdownRendererProps, MenuButton, type MenuButtonEntry, type MenuButtonItem, type MenuButtonProps, type MenuButtonSeparator, index as MetaPreviews, MetricCard, type MetricCardProps, type MetricCardTone, MicrosoftLogo, type MicrosoftLogoProps, Modal, OptionTile, OptionTileGroup, type OptionTileGroupProps, type OptionTileProps, PLACEMENT_CONFIGS, PageHeaderHost, PageHeaderSlotProvider, PageHero, type PageHeroProps, PageShell, Pagination, type PaginationProps, type PendingFile, PillButton, type PillButtonProps, type PlacementPreview, type PreviewAdData, type PreviewConfiguration, type PreviewDevice, type PreviewPlacement, type PreviewPlatform, PS as ProfileSection, type ProfileSectionProps, ProgressBar, type ProgressBarProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, RangeSlider, type RangeSliderProps, ResizableHandle, type ResizableHandleProps, ResizablePane, type ResizablePaneProps, SECTION_SCROLL_OFFSET, SearchBar, type SearchBarProps, SectionLabel, SegmentedPill, type SegmentedPillItem, type SegmentedPillProps, Shell, type ShellProps, ShellStat, type ShellStatProps, type ShellStatTone, type ShellSubCardProps, type ShellTrayBodyProps, type ShellTrayFooterProps, type ShellTrayHeaderProps, type ShellTrayProps, Slider, type SliderProps, SortableItem, SortableList, SortableTable, type Column as SortableTableColumn, type SortableTableProps, StatRow, type StatRowProps, type StatRowStep, StatsGrid, type StatsGridProps, StepLoader, type StepLoaderProps, type StepLoaderStep, type Tab, Tabs, type TabsProps, TagChipInput, type TagChipInputProps, TagRow, TextInput, Textarea, TextareaInput, type TextareaProps, Toaster, TokenBadge, type TokenBadgeProps, type UploadResult, type UseFileUploadOptions, cn, folderColorVar, formatCurrency, formatNumber, formatPercent, formatRatio, useFileUpload };
2659
+ export { AccordionCompound as Accordion, type AccordionProps, type AccordionSectionProps, AllocationSparkbar, type AllocationSparkbarProps, AppScroll, BRAND_ICONS, Badge, type BadgeProps, type BadgeTone, BrandFacebook, type BrandIconKey, type BrandIconProps, BrandInstagram, BrandLinkedIn, BrandLogoTile, type BrandLogoTileProps, type BrandLogoTileSize, BrandMessenger, BrandMeta, BrandNextdoor, BrandPinterest, BrandSnapchat, BrandTikTok, BulkActionBar, type BulkActionBarProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, type ButtonShape, type ButtonSize, type ButtonVariant, type CalcLayout, type CalcPrefill, CalculatorShell, type CalculatorShellProps, CalculatorShellV2, type CalculatorShellV2Props, Card, Checkbox, type CheckboxProps, ChipNav, type ChipNavItem, Choropleth, type ChoroplethProps, CodeBlock, type CodeBlockProps, CollapsibleCard, type CollapsibleCardProps, CompletionRing, type CompletionRingProps, CopyField, type CopyFieldProps, type Crumb, DataGrid, type DataGridColumn, DataGridColumnOptionsMenu, DataGridDragOverlay, type DataGridDrawerPanelProps, DataGridDropIndicator, type DataGridIcon, type DataGridProps, type DataGridRowBase, type DataGridSortState, DataGridToolbar, type DataGridToolbarProps, type DataGridToolbarRenderProps, DetailSection, DeviceFrame, type DeviceFrameProps, DragHandle, DropdownButton, type DropdownButtonItem, type DropdownButtonProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, type DropdownMenuProps, DropdownMenuSeparator, DropdownMenuTrigger, type DropdownMenuTriggerProps, type EditingCell, EmptyPlaceholder, EmptyState, type EmptyStateProps, FOLDER_COLOR_KEYS, FileDropZone, FilePreviewGrid, FilePreviewItem, FileThumbnail, FileUploadButton, FilterBar, type FilterBarCountProps, type FilterBarProps, type FilterBarSearchProps, FilterDropdown, type FilterDropdownProps, type FilterOption, FloatingDrawer, type FloatingDrawerProps, FloatingStatusBar, type FloatingStatusBarProps, type FloatingStatusTone, FolderCard, type FolderCardProps, type FolderColorKey, type FolderTreeNode, FolderTreePicker, type FolderTreePickerProps, FrameStack, type FrameStackProps, HEADER_HEIGHT, HeroFormCardCompound as HeroFormCard, type HeroFormCardAdvancedProps, type HeroFormCardBannerProps, type HeroFormCardFieldProps, type HeroFormCardProps, type HeroFormCardSectionProps, IconTile, IdentityLabel, IdentityValue, Input, type InputProps, type InputSize, Kbd, type KbdProps, ListItem, MarkdownCode, MarkdownRenderer, type MarkdownRendererProps, MenuButton, type MenuButtonEntry, type MenuButtonItem, type MenuButtonProps, type MenuButtonSeparator, MetaCell, type MetaCellProps, index as MetaPreviews, MetricCard, type MetricCardProps, type MetricCardTone, MicrosoftLogo, type MicrosoftLogoProps, Modal, OptionTile, OptionTileGroup, type OptionTileGroupProps, type OptionTileProps, PLACEMENT_CONFIGS, PageHeaderHost, PageHeaderSlotProvider, PageHero, type PageHeroProps, PageShell, Pagination, type PaginationProps, type PendingFile, PillButton, type PillButtonProps, type PlacementPreview, type PreviewAdData, type PreviewConfiguration, type PreviewDevice, type PreviewPlacement, type PreviewPlatform, PS as ProfileSection, type ProfileSectionProps, ProgressBar, type ProgressBarProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, RangeSlider, type RangeSliderProps, ResizableHandle, type ResizableHandleProps, ResizablePane, type ResizablePaneProps, type RgbTuple, SECTION_SCROLL_OFFSET, SearchBar, type SearchBarProps, SectionLabel, SegmentedPill, type SegmentedPillItem, type SegmentedPillProps, Shell, type ShellProps, ShellStat, type ShellStatProps, type ShellStatTone, type ShellSubCardProps, type ShellTrayBodyProps, type ShellTrayFooterProps, type ShellTrayHeaderProps, type ShellTrayProps, Slider, type SliderProps, SortableItem, SortableList, SortableTable, type Column as SortableTableColumn, type SortableTableProps, StatRow, type StatRowProps, type StatRowStep, StatsGrid, type StatsGridProps, StepLoader, type StepLoaderProps, type StepLoaderStep, type Tab, Tabs, type TabsProps, TagChipInput, type TagChipInputProps, TagRow, TextInput, Textarea, TextareaInput, type TextareaProps, Toaster, TokenBadge, type TokenBadgeProps, type UploadResult, type UseFileUploadOptions, ValueChip, type ValueChipProps, type WcagBadge, bestTextOn, cn, contrastRatio, copyText, folderColorVar, formatCurrency, formatNumber, formatPercent, formatRatio, hexToRgbTuple, hslString, relativeLuminance, rgbCss, rgbString, useFileUpload, wcagBadges };