@particle-academy/react-fancy 5.2.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -996,8 +996,66 @@ interface BrandProps {
996
996
  size?: "sm" | "md" | "lg";
997
997
  className?: string;
998
998
  }
999
+ interface BrandMarkProps extends HTMLAttributes<HTMLSpanElement> {
1000
+ /** What sits in the square — a letter, an initial, an icon. */
1001
+ glyph?: ReactNode;
1002
+ /**
1003
+ * `"sm" | "md" | "lg"`, or an exact pixel size when a design calls for one
1004
+ * the scale does not have.
1005
+ */
1006
+ size?: "sm" | "md" | "lg" | number;
1007
+ }
1008
+
1009
+ declare const Brand: react.ForwardRefExoticComponent<BrandProps & react.RefAttributes<HTMLDivElement>> & {
1010
+ Mark: react.ForwardRefExoticComponent<BrandMarkProps & react.RefAttributes<HTMLSpanElement>>;
1011
+ };
1012
+
1013
+ /**
1014
+ * The square logo tile — a glyph centred in a rounded, coloured square.
1015
+ *
1016
+ * `Brand` has always taken its mark as a caller-supplied `logo` node, which is
1017
+ * exactly why every page that wanted one rebuilt the same square: fixed size,
1018
+ * rounded, grid-centred, bold, white, and `shrink-0` so a flex row never
1019
+ * squashes it. Four surfaces carried that block inline.
1020
+ *
1021
+ * ## It ships no brand colour, deliberately
1022
+ *
1023
+ * The default is a neutral zinc tile. A component library inventing your brand
1024
+ * gradient would be wrong, and would be the first thing every consumer had to
1025
+ * override — so the FILL is `className`'s job and only the geometry lives here.
1026
+ * That is also what the duplicated code actually had in common: each copy
1027
+ * already pulled its gradient from a token class and hand-rolled the box.
1028
+ */
1029
+ declare const BrandMark: react.ForwardRefExoticComponent<BrandMarkProps & react.RefAttributes<HTMLSpanElement>>;
1030
+
1031
+ interface EyebrowProps extends HTMLAttributes<HTMLDivElement> {
1032
+ /** The section marker — `"01"`, `"00"`, a roman numeral. Emphasised. */
1033
+ num?: ReactNode;
1034
+ /** The section name. Rendered after `num` and an em dash. */
1035
+ label?: ReactNode;
1036
+ /** A second item pushed to the far end of the line. */
1037
+ aside?: ReactNode;
1038
+ /** Draw the hairline rule under the head. Default `false`. */
1039
+ rule?: boolean;
1040
+ /** Full control — replaces the `num`/`label` pair, keeping the arrangement. */
1041
+ children?: ReactNode;
1042
+ }
999
1043
 
1000
- declare const Brand: react.ForwardRefExoticComponent<BrandProps & react.RefAttributes<HTMLDivElement>>;
1044
+ /**
1045
+ * The mono running head that opens a section — `01 — SELECTED WORK`, optionally
1046
+ * over a hairline rule, with a second item pushed to the far end.
1047
+ *
1048
+ * Thirty-six surfaces in the Inspiration Gallery carry some version of this. It
1049
+ * is a small component for a reason: what they share is the STRUCTURE (a
1050
+ * numbered marker, a label, an optional trailing aside, an optional rule) while
1051
+ * every one of them restyles the type. So this owns the arrangement and the
1052
+ * uppercase mono default, and gets out of the way of `className`.
1053
+ *
1054
+ * `num` is emphasised rather than styled a fixed colour, because in half the
1055
+ * designs it is the only part of the line that is not muted — and expressing
1056
+ * that with a `<b>` keeps it meaningful when the styling is replaced wholesale.
1057
+ */
1058
+ declare const Eyebrow: react.ForwardRefExoticComponent<EyebrowProps & react.RefAttributes<HTMLDivElement>>;
1001
1059
 
1002
1060
  interface ProfileProps {
1003
1061
  src?: string;
@@ -1015,6 +1073,34 @@ declare const Profile: react.ForwardRefExoticComponent<ProfileProps & react.RefA
1015
1073
  interface CardProps extends HTMLAttributes<HTMLDivElement> {
1016
1074
  variant?: "outlined" | "elevated" | "flat";
1017
1075
  padding?: "none" | "sm" | "md" | "lg";
1076
+ /**
1077
+ * Card is a link or a grid tile: adds the hover lift + border/shadow
1078
+ * response, and clips children to the rounded corners so a `Card.Media`
1079
+ * sits flush.
1080
+ */
1081
+ interactive?: boolean;
1082
+ }
1083
+ interface CardMediaProps extends HTMLAttributes<HTMLDivElement> {
1084
+ /** Image URL. Omit for a pure colour/gradient tile. */
1085
+ src?: string;
1086
+ alt?: string;
1087
+ /** CSS `aspect-ratio`. Default `"16/9"`. Ignored when `height` is set. */
1088
+ ratio?: string;
1089
+ /** Fixed height instead of an aspect ratio. */
1090
+ height?: number | string;
1091
+ /**
1092
+ * Shown UNDER the image — while it loads, and permanently if it never
1093
+ * arrives. Any CSS background value, so a gradient works.
1094
+ */
1095
+ background?: string;
1096
+ /** `object-position` for the image. Default `"center"`. */
1097
+ objectPosition?: string;
1098
+ loading?: "lazy" | "eager";
1099
+ /** Slots pinned to the media's corners — a number chip, a status pill. */
1100
+ topLeft?: ReactNode;
1101
+ topRight?: ReactNode;
1102
+ bottomLeft?: ReactNode;
1103
+ bottomRight?: ReactNode;
1018
1104
  }
1019
1105
  interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {
1020
1106
  }
@@ -1024,6 +1110,7 @@ interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {
1024
1110
  }
1025
1111
 
1026
1112
  declare const Card: react.ForwardRefExoticComponent<CardProps & react.RefAttributes<HTMLDivElement>> & {
1113
+ Media: react.ForwardRefExoticComponent<CardMediaProps & react.RefAttributes<HTMLDivElement>>;
1027
1114
  Header: react.ForwardRefExoticComponent<CardHeaderProps & react.RefAttributes<HTMLDivElement>>;
1028
1115
  Body: react.ForwardRefExoticComponent<CardBodyProps & react.RefAttributes<HTMLDivElement>>;
1029
1116
  Footer: react.ForwardRefExoticComponent<CardFooterProps & react.RefAttributes<HTMLDivElement>>;
@@ -3931,4 +4018,4 @@ declare const AudioViewer: react.ForwardRefExoticComponent<AudioViewerProps & re
3931
4018
  */
3932
4019
  declare const PdfViewer: react.ForwardRefExoticComponent<PdfViewerProps & react.RefAttributes<HTMLDivElement>>;
3933
4020
 
3934
- export { Accordion, type AccordionContentProps, type AccordionContextValue, type AccordionItemProps, type AccordionOrientation, AccordionPanel, AccordionPanelContent, type AccordionPanelContentProps, type AccordionPanelProps, AccordionPanelSection, type AccordionPanelSectionProps, AccordionPanelTrigger, type AccordionPanelTriggerProps, type AccordionProps, type AccordionTriggerProps, Action, type ActionColor, type ActionProps, type AffixPosition, AudioViewer, type AudioViewerProps, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, type AvatarProps, Badge, type BadgeProps, Brand, type BrandProps, Breadcrumbs, type BreadcrumbsItemProps, type BreadcrumbsProps, Button, type ButtonColor, type ButtonProps, Calendar, type CalendarMode, type CalendarProps, Callout, type CalloutProps, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardProps, Carousel, type CarouselContextValue, type CarouselControlsProps, type CarouselPanelsProps, type CarouselProps, type CarouselSlideProps, type CarouselStepsProps, type CarouselVariant, Chart, type ChartAreaProps, type ChartBarData, type ChartBarProps, type ChartCommonProps, type ChartDonutData, type ChartDonutProps, type ChartHorizontalBarProps, type ChartLineProps, type ChartPieData, type ChartPieProps, type ChartSeries, type ChartSparklineProps, type ChartStackedBarProps, ChatDrawer, type ChatDrawerProps, type ChatDrawerTab, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, CodeView, type CodeViewProps, type Color, ColorPicker, type ColorPickerProps, Command, type CommandContextValue, type CommandEmptyProps, type CommandGroupProps, type CommandInputProps, type CommandItemProps, type CommandListProps, type CommandProps, Composer, type ComposerProps, ContentRenderer, type ContentRendererProps, ContextMenu, type ContextMenuContentProps, type ContextMenuContextValue, type ContextMenuItemProps, type ContextMenuProps, type ContextMenuSeparatorProps, type ContextMenuTriggerProps, type ControlledAdapterHandle, DatePicker, type DatePickerProps, type DateRange, DisplayValue, type DisplayValueProps, Drawer, type DrawerAttach, type DrawerBodyProps, type DrawerContainerProps, type DrawerContextValue, type DrawerFooterProps, type DrawerHeaderProps, type DrawerProps, type DrawerSide, type DrawerSize, type DropPosition, Dropdown, type DropdownContextValue, type DropdownItemProps, type DropdownItemsProps, type DropdownProps, type DropdownSeparatorProps, type DropdownTriggerProps, EMOJI_CATEGORY_ORDER, EMOJI_DATA, EMOJI_ENTRIES, Editor, type EditorAction, type EditorContentProps, type EditorContextValue, type EditorProps, type EditorSourceToggleProps, type EditorToolbarProps, Emoji, type EmojiCategory, type EmojiCategoryKey, type EmojiEntry, type EmojiFlatEntry, type EmojiProps, EmojiSelect, type EmojiSelectProps, FauxClient, type FauxClientProps, Field, type FieldMode, FieldModeContext, type FieldModeContextValue, type FieldProps, FileBrowser, type FileBrowserContextValue, type FileBrowserNodeProps, type FileBrowserPathBarProps, type FileBrowserProps, type FileBrowserProvider, type FileBrowserRow, type FileBrowserToolbarProps, type FileBrowserTreeProps, type FileEntry, type FileKind, type FileLoadStatus, type FileSelectMode, type FileSnapshotNode, type FileSort, type FileSortDirection, type FileSortField, FileUpload, type FileUploadContextValue, type FileUploadDropzoneProps, type FileUploadListProps, type FileUploadProps, Form, type FormProps, FormProvider, type FormProviderProps, Heading, type HeadingProps, Icon, type IconProps, type IconSet, ImageViewer, type ImageViewerProps, type ImageViewerViewport, Input, type InputAffixProps, type InputBaseProps, type InputOption, type InputOptionGroup, type InputProps, InputTag, type InputTagAdapter, type InputTagAdapterState, type InputTagProps, type InputTagTrigger, type InputTagTriggers, Kanban, type KanbanCardMoveHandler, type KanbanCardProps, type KanbanColumnHandleProps, type KanbanColumnMoveHandler, type KanbanColumnProps, type KanbanContextValue, type KanbanProps, MagicWand, type MagicWandAction, type MagicWandAppearance, type MagicWandProps, type MagicWandSelection, Marquee, type MarqueeDirection, type MarqueeProps, type MediaKind, MediaViewer, type MediaViewerProps, Menu, type MenuContextValue, type MenuGroupProps, type MenuItemProps, type MenuOrientation, type MenuProps, type MenuSubmenuProps, MobileMenu, type MobileMenuBottomBarProps, type MobileMenuContextValue, type MobileMenuFlyoutProps, type MobileMenuItemProps, type MobileMenuSide, type MobileMenuVariant, Modal, type ModalBodyProps, type ModalContextValue, type ModalFooterProps, type ModalHeaderProps, type ModalProps, MoodMeter, type MoodMeterProps, MultiSwitch, type MultiSwitchProps, Navbar, type NavbarBrandProps, type NavbarContextValue, type NavbarItemProps, type NavbarItemsProps, type NavbarProps, type NavbarToggleProps, type NodeRect, OtpInput, type OtpInputProps, Pagination, type PaginationProps, PdfViewer, type PdfViewerProps, Pillbox, type PillboxProps, type Placement, Popover, type PopoverContentProps, type PopoverContextValue, type PopoverProps, type PopoverTriggerProps, Portal, type PortalProps, Profile, type ProfileProps, Progress, type ProgressProps, type PromptAttachment, type PromptCmd, PromptInput, type PromptInputProps, type PromptMention, RadioGroup, type RadioGroupProps, ReasonTag, type ReasonTagProps, type ReasonTagSource, type ReasonTagTheme, type RenderExtension, type RenderExtensionProps, type ResolveMediaTypeInput, SKIN_TONES, type SectionRenderState, type SectionRenderable, Select, type SelectProps, Separator, type SeparatorProps, Sidebar, type SidebarCollapseMode, type SidebarContextValue, type SidebarGroupProps, type SidebarItemProps, type SidebarProps, type SidebarSubmenuProps, type SidebarToggleProps, type Size, Skeleton, type SkeletonProps, type SkinTone, Slider, type SliderProps, StickyNote, type StickyNoteColor, type StickyNoteProps, Switch, type SwitchProps, Table, type TableBodyProps, type TableCellProps, type TableColumnProps, type TableHeadProps, type TablePaginationProps, type TableProps, type TableRowProps, type TableRowTrayProps, type TableSearchProps, type TableTrayProps, Tabs, type TabsContextValue, type TabsListProps, type TabsPanelProps, type TabsPanelsProps, type TabsProps, type TabsTabProps, type TabsVariant, Text, type TextProps, Textarea, type TextareaProps, TimeGrid, type TimeGridProps, type TimeGridTone, TimePicker, type TimePickerProps, Timeline, type TimelineBlockProps, type TimelineEvent, type TimelineItemProps, type TimelineOrientation, type TimelineProps, type TimelineVariant, Toast, type ToastContextValue, type ToastData, type ToastPosition, type ToastProviderProps, type ToastVariant, Tooltip, type TooltipProps, TreeNav, type TreeNavContextValue, type TreeNavProps, type TreeNodeData, type TreeNodeProps, type Variant, VideoViewer, type VideoViewerProps, applyTone, cn, configureIcons, contentEditableAdapter, controlledAdapter, find, hasSkinTones, inputAdapter, registerExtension, registerExtensions, registerIconAddendum, registerIconSet, registerIcons, resolve, resolveMediaType, sanitizeHref, sanitizeHtml, search, skinTones, textareaAdapter, useAccordion, useAccordionPanel, useAccordionSection, useAnimation, useCarousel, useCommand, useContextMenu, useControllableState, useDrawer, useDropdown, useEditor, useEscapeKey, useFieldMode, useFileBrowser, useFileUpload, useFloatingPosition, useFocusTrap, useId, useKanban, useMenu, useMobileMenu, useModal, useNavbar, useNodeRegistry, useOutsideClick, usePanZoom, usePopover, useSidebar, useTabs, useToast, useTreeNav };
4021
+ export { Accordion, type AccordionContentProps, type AccordionContextValue, type AccordionItemProps, type AccordionOrientation, AccordionPanel, AccordionPanelContent, type AccordionPanelContentProps, type AccordionPanelProps, AccordionPanelSection, type AccordionPanelSectionProps, AccordionPanelTrigger, type AccordionPanelTriggerProps, type AccordionProps, type AccordionTriggerProps, Action, type ActionColor, type ActionProps, type AffixPosition, AudioViewer, type AudioViewerProps, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, type AvatarProps, Badge, type BadgeProps, Brand, BrandMark, type BrandMarkProps, type BrandProps, Breadcrumbs, type BreadcrumbsItemProps, type BreadcrumbsProps, Button, type ButtonColor, type ButtonProps, Calendar, type CalendarMode, type CalendarProps, Callout, type CalloutProps, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardProps, Carousel, type CarouselContextValue, type CarouselControlsProps, type CarouselPanelsProps, type CarouselProps, type CarouselSlideProps, type CarouselStepsProps, type CarouselVariant, Chart, type ChartAreaProps, type ChartBarData, type ChartBarProps, type ChartCommonProps, type ChartDonutData, type ChartDonutProps, type ChartHorizontalBarProps, type ChartLineProps, type ChartPieData, type ChartPieProps, type ChartSeries, type ChartSparklineProps, type ChartStackedBarProps, ChatDrawer, type ChatDrawerProps, type ChatDrawerTab, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, CodeView, type CodeViewProps, type Color, ColorPicker, type ColorPickerProps, Command, type CommandContextValue, type CommandEmptyProps, type CommandGroupProps, type CommandInputProps, type CommandItemProps, type CommandListProps, type CommandProps, Composer, type ComposerProps, ContentRenderer, type ContentRendererProps, ContextMenu, type ContextMenuContentProps, type ContextMenuContextValue, type ContextMenuItemProps, type ContextMenuProps, type ContextMenuSeparatorProps, type ContextMenuTriggerProps, type ControlledAdapterHandle, DatePicker, type DatePickerProps, type DateRange, DisplayValue, type DisplayValueProps, Drawer, type DrawerAttach, type DrawerBodyProps, type DrawerContainerProps, type DrawerContextValue, type DrawerFooterProps, type DrawerHeaderProps, type DrawerProps, type DrawerSide, type DrawerSize, type DropPosition, Dropdown, type DropdownContextValue, type DropdownItemProps, type DropdownItemsProps, type DropdownProps, type DropdownSeparatorProps, type DropdownTriggerProps, EMOJI_CATEGORY_ORDER, EMOJI_DATA, EMOJI_ENTRIES, Editor, type EditorAction, type EditorContentProps, type EditorContextValue, type EditorProps, type EditorSourceToggleProps, type EditorToolbarProps, Emoji, type EmojiCategory, type EmojiCategoryKey, type EmojiEntry, type EmojiFlatEntry, type EmojiProps, EmojiSelect, type EmojiSelectProps, Eyebrow, type EyebrowProps, FauxClient, type FauxClientProps, Field, type FieldMode, FieldModeContext, type FieldModeContextValue, type FieldProps, FileBrowser, type FileBrowserContextValue, type FileBrowserNodeProps, type FileBrowserPathBarProps, type FileBrowserProps, type FileBrowserProvider, type FileBrowserRow, type FileBrowserToolbarProps, type FileBrowserTreeProps, type FileEntry, type FileKind, type FileLoadStatus, type FileSelectMode, type FileSnapshotNode, type FileSort, type FileSortDirection, type FileSortField, FileUpload, type FileUploadContextValue, type FileUploadDropzoneProps, type FileUploadListProps, type FileUploadProps, Form, type FormProps, FormProvider, type FormProviderProps, Heading, type HeadingProps, Icon, type IconProps, type IconSet, ImageViewer, type ImageViewerProps, type ImageViewerViewport, Input, type InputAffixProps, type InputBaseProps, type InputOption, type InputOptionGroup, type InputProps, InputTag, type InputTagAdapter, type InputTagAdapterState, type InputTagProps, type InputTagTrigger, type InputTagTriggers, Kanban, type KanbanCardMoveHandler, type KanbanCardProps, type KanbanColumnHandleProps, type KanbanColumnMoveHandler, type KanbanColumnProps, type KanbanContextValue, type KanbanProps, MagicWand, type MagicWandAction, type MagicWandAppearance, type MagicWandProps, type MagicWandSelection, Marquee, type MarqueeDirection, type MarqueeProps, type MediaKind, MediaViewer, type MediaViewerProps, Menu, type MenuContextValue, type MenuGroupProps, type MenuItemProps, type MenuOrientation, type MenuProps, type MenuSubmenuProps, MobileMenu, type MobileMenuBottomBarProps, type MobileMenuContextValue, type MobileMenuFlyoutProps, type MobileMenuItemProps, type MobileMenuSide, type MobileMenuVariant, Modal, type ModalBodyProps, type ModalContextValue, type ModalFooterProps, type ModalHeaderProps, type ModalProps, MoodMeter, type MoodMeterProps, MultiSwitch, type MultiSwitchProps, Navbar, type NavbarBrandProps, type NavbarContextValue, type NavbarItemProps, type NavbarItemsProps, type NavbarProps, type NavbarToggleProps, type NodeRect, OtpInput, type OtpInputProps, Pagination, type PaginationProps, PdfViewer, type PdfViewerProps, Pillbox, type PillboxProps, type Placement, Popover, type PopoverContentProps, type PopoverContextValue, type PopoverProps, type PopoverTriggerProps, Portal, type PortalProps, Profile, type ProfileProps, Progress, type ProgressProps, type PromptAttachment, type PromptCmd, PromptInput, type PromptInputProps, type PromptMention, RadioGroup, type RadioGroupProps, ReasonTag, type ReasonTagProps, type ReasonTagSource, type ReasonTagTheme, type RenderExtension, type RenderExtensionProps, type ResolveMediaTypeInput, SKIN_TONES, type SectionRenderState, type SectionRenderable, Select, type SelectProps, Separator, type SeparatorProps, Sidebar, type SidebarCollapseMode, type SidebarContextValue, type SidebarGroupProps, type SidebarItemProps, type SidebarProps, type SidebarSubmenuProps, type SidebarToggleProps, type Size, Skeleton, type SkeletonProps, type SkinTone, Slider, type SliderProps, StickyNote, type StickyNoteColor, type StickyNoteProps, Switch, type SwitchProps, Table, type TableBodyProps, type TableCellProps, type TableColumnProps, type TableHeadProps, type TablePaginationProps, type TableProps, type TableRowProps, type TableRowTrayProps, type TableSearchProps, type TableTrayProps, Tabs, type TabsContextValue, type TabsListProps, type TabsPanelProps, type TabsPanelsProps, type TabsProps, type TabsTabProps, type TabsVariant, Text, type TextProps, Textarea, type TextareaProps, TimeGrid, type TimeGridProps, type TimeGridTone, TimePicker, type TimePickerProps, Timeline, type TimelineBlockProps, type TimelineEvent, type TimelineItemProps, type TimelineOrientation, type TimelineProps, type TimelineVariant, Toast, type ToastContextValue, type ToastData, type ToastPosition, type ToastProviderProps, type ToastVariant, Tooltip, type TooltipProps, TreeNav, type TreeNavContextValue, type TreeNavProps, type TreeNodeData, type TreeNodeProps, type Variant, VideoViewer, type VideoViewerProps, applyTone, cn, configureIcons, contentEditableAdapter, controlledAdapter, find, hasSkinTones, inputAdapter, registerExtension, registerExtensions, registerIconAddendum, registerIconSet, registerIcons, resolve, resolveMediaType, sanitizeHref, sanitizeHtml, search, skinTones, textareaAdapter, useAccordion, useAccordionPanel, useAccordionSection, useAnimation, useCarousel, useCommand, useContextMenu, useControllableState, useDrawer, useDropdown, useEditor, useEscapeKey, useFieldMode, useFileBrowser, useFileUpload, useFloatingPosition, useFocusTrap, useId, useKanban, useMenu, useMobileMenu, useModal, useNavbar, useNodeRegistry, useOutsideClick, usePanZoom, usePopover, useSidebar, useTabs, useToast, useTreeNav };
package/dist/index.d.ts CHANGED
@@ -996,8 +996,66 @@ interface BrandProps {
996
996
  size?: "sm" | "md" | "lg";
997
997
  className?: string;
998
998
  }
999
+ interface BrandMarkProps extends HTMLAttributes<HTMLSpanElement> {
1000
+ /** What sits in the square — a letter, an initial, an icon. */
1001
+ glyph?: ReactNode;
1002
+ /**
1003
+ * `"sm" | "md" | "lg"`, or an exact pixel size when a design calls for one
1004
+ * the scale does not have.
1005
+ */
1006
+ size?: "sm" | "md" | "lg" | number;
1007
+ }
1008
+
1009
+ declare const Brand: react.ForwardRefExoticComponent<BrandProps & react.RefAttributes<HTMLDivElement>> & {
1010
+ Mark: react.ForwardRefExoticComponent<BrandMarkProps & react.RefAttributes<HTMLSpanElement>>;
1011
+ };
1012
+
1013
+ /**
1014
+ * The square logo tile — a glyph centred in a rounded, coloured square.
1015
+ *
1016
+ * `Brand` has always taken its mark as a caller-supplied `logo` node, which is
1017
+ * exactly why every page that wanted one rebuilt the same square: fixed size,
1018
+ * rounded, grid-centred, bold, white, and `shrink-0` so a flex row never
1019
+ * squashes it. Four surfaces carried that block inline.
1020
+ *
1021
+ * ## It ships no brand colour, deliberately
1022
+ *
1023
+ * The default is a neutral zinc tile. A component library inventing your brand
1024
+ * gradient would be wrong, and would be the first thing every consumer had to
1025
+ * override — so the FILL is `className`'s job and only the geometry lives here.
1026
+ * That is also what the duplicated code actually had in common: each copy
1027
+ * already pulled its gradient from a token class and hand-rolled the box.
1028
+ */
1029
+ declare const BrandMark: react.ForwardRefExoticComponent<BrandMarkProps & react.RefAttributes<HTMLSpanElement>>;
1030
+
1031
+ interface EyebrowProps extends HTMLAttributes<HTMLDivElement> {
1032
+ /** The section marker — `"01"`, `"00"`, a roman numeral. Emphasised. */
1033
+ num?: ReactNode;
1034
+ /** The section name. Rendered after `num` and an em dash. */
1035
+ label?: ReactNode;
1036
+ /** A second item pushed to the far end of the line. */
1037
+ aside?: ReactNode;
1038
+ /** Draw the hairline rule under the head. Default `false`. */
1039
+ rule?: boolean;
1040
+ /** Full control — replaces the `num`/`label` pair, keeping the arrangement. */
1041
+ children?: ReactNode;
1042
+ }
999
1043
 
1000
- declare const Brand: react.ForwardRefExoticComponent<BrandProps & react.RefAttributes<HTMLDivElement>>;
1044
+ /**
1045
+ * The mono running head that opens a section — `01 — SELECTED WORK`, optionally
1046
+ * over a hairline rule, with a second item pushed to the far end.
1047
+ *
1048
+ * Thirty-six surfaces in the Inspiration Gallery carry some version of this. It
1049
+ * is a small component for a reason: what they share is the STRUCTURE (a
1050
+ * numbered marker, a label, an optional trailing aside, an optional rule) while
1051
+ * every one of them restyles the type. So this owns the arrangement and the
1052
+ * uppercase mono default, and gets out of the way of `className`.
1053
+ *
1054
+ * `num` is emphasised rather than styled a fixed colour, because in half the
1055
+ * designs it is the only part of the line that is not muted — and expressing
1056
+ * that with a `<b>` keeps it meaningful when the styling is replaced wholesale.
1057
+ */
1058
+ declare const Eyebrow: react.ForwardRefExoticComponent<EyebrowProps & react.RefAttributes<HTMLDivElement>>;
1001
1059
 
1002
1060
  interface ProfileProps {
1003
1061
  src?: string;
@@ -1015,6 +1073,34 @@ declare const Profile: react.ForwardRefExoticComponent<ProfileProps & react.RefA
1015
1073
  interface CardProps extends HTMLAttributes<HTMLDivElement> {
1016
1074
  variant?: "outlined" | "elevated" | "flat";
1017
1075
  padding?: "none" | "sm" | "md" | "lg";
1076
+ /**
1077
+ * Card is a link or a grid tile: adds the hover lift + border/shadow
1078
+ * response, and clips children to the rounded corners so a `Card.Media`
1079
+ * sits flush.
1080
+ */
1081
+ interactive?: boolean;
1082
+ }
1083
+ interface CardMediaProps extends HTMLAttributes<HTMLDivElement> {
1084
+ /** Image URL. Omit for a pure colour/gradient tile. */
1085
+ src?: string;
1086
+ alt?: string;
1087
+ /** CSS `aspect-ratio`. Default `"16/9"`. Ignored when `height` is set. */
1088
+ ratio?: string;
1089
+ /** Fixed height instead of an aspect ratio. */
1090
+ height?: number | string;
1091
+ /**
1092
+ * Shown UNDER the image — while it loads, and permanently if it never
1093
+ * arrives. Any CSS background value, so a gradient works.
1094
+ */
1095
+ background?: string;
1096
+ /** `object-position` for the image. Default `"center"`. */
1097
+ objectPosition?: string;
1098
+ loading?: "lazy" | "eager";
1099
+ /** Slots pinned to the media's corners — a number chip, a status pill. */
1100
+ topLeft?: ReactNode;
1101
+ topRight?: ReactNode;
1102
+ bottomLeft?: ReactNode;
1103
+ bottomRight?: ReactNode;
1018
1104
  }
1019
1105
  interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {
1020
1106
  }
@@ -1024,6 +1110,7 @@ interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {
1024
1110
  }
1025
1111
 
1026
1112
  declare const Card: react.ForwardRefExoticComponent<CardProps & react.RefAttributes<HTMLDivElement>> & {
1113
+ Media: react.ForwardRefExoticComponent<CardMediaProps & react.RefAttributes<HTMLDivElement>>;
1027
1114
  Header: react.ForwardRefExoticComponent<CardHeaderProps & react.RefAttributes<HTMLDivElement>>;
1028
1115
  Body: react.ForwardRefExoticComponent<CardBodyProps & react.RefAttributes<HTMLDivElement>>;
1029
1116
  Footer: react.ForwardRefExoticComponent<CardFooterProps & react.RefAttributes<HTMLDivElement>>;
@@ -3931,4 +4018,4 @@ declare const AudioViewer: react.ForwardRefExoticComponent<AudioViewerProps & re
3931
4018
  */
3932
4019
  declare const PdfViewer: react.ForwardRefExoticComponent<PdfViewerProps & react.RefAttributes<HTMLDivElement>>;
3933
4020
 
3934
- export { Accordion, type AccordionContentProps, type AccordionContextValue, type AccordionItemProps, type AccordionOrientation, AccordionPanel, AccordionPanelContent, type AccordionPanelContentProps, type AccordionPanelProps, AccordionPanelSection, type AccordionPanelSectionProps, AccordionPanelTrigger, type AccordionPanelTriggerProps, type AccordionProps, type AccordionTriggerProps, Action, type ActionColor, type ActionProps, type AffixPosition, AudioViewer, type AudioViewerProps, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, type AvatarProps, Badge, type BadgeProps, Brand, type BrandProps, Breadcrumbs, type BreadcrumbsItemProps, type BreadcrumbsProps, Button, type ButtonColor, type ButtonProps, Calendar, type CalendarMode, type CalendarProps, Callout, type CalloutProps, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardProps, Carousel, type CarouselContextValue, type CarouselControlsProps, type CarouselPanelsProps, type CarouselProps, type CarouselSlideProps, type CarouselStepsProps, type CarouselVariant, Chart, type ChartAreaProps, type ChartBarData, type ChartBarProps, type ChartCommonProps, type ChartDonutData, type ChartDonutProps, type ChartHorizontalBarProps, type ChartLineProps, type ChartPieData, type ChartPieProps, type ChartSeries, type ChartSparklineProps, type ChartStackedBarProps, ChatDrawer, type ChatDrawerProps, type ChatDrawerTab, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, CodeView, type CodeViewProps, type Color, ColorPicker, type ColorPickerProps, Command, type CommandContextValue, type CommandEmptyProps, type CommandGroupProps, type CommandInputProps, type CommandItemProps, type CommandListProps, type CommandProps, Composer, type ComposerProps, ContentRenderer, type ContentRendererProps, ContextMenu, type ContextMenuContentProps, type ContextMenuContextValue, type ContextMenuItemProps, type ContextMenuProps, type ContextMenuSeparatorProps, type ContextMenuTriggerProps, type ControlledAdapterHandle, DatePicker, type DatePickerProps, type DateRange, DisplayValue, type DisplayValueProps, Drawer, type DrawerAttach, type DrawerBodyProps, type DrawerContainerProps, type DrawerContextValue, type DrawerFooterProps, type DrawerHeaderProps, type DrawerProps, type DrawerSide, type DrawerSize, type DropPosition, Dropdown, type DropdownContextValue, type DropdownItemProps, type DropdownItemsProps, type DropdownProps, type DropdownSeparatorProps, type DropdownTriggerProps, EMOJI_CATEGORY_ORDER, EMOJI_DATA, EMOJI_ENTRIES, Editor, type EditorAction, type EditorContentProps, type EditorContextValue, type EditorProps, type EditorSourceToggleProps, type EditorToolbarProps, Emoji, type EmojiCategory, type EmojiCategoryKey, type EmojiEntry, type EmojiFlatEntry, type EmojiProps, EmojiSelect, type EmojiSelectProps, FauxClient, type FauxClientProps, Field, type FieldMode, FieldModeContext, type FieldModeContextValue, type FieldProps, FileBrowser, type FileBrowserContextValue, type FileBrowserNodeProps, type FileBrowserPathBarProps, type FileBrowserProps, type FileBrowserProvider, type FileBrowserRow, type FileBrowserToolbarProps, type FileBrowserTreeProps, type FileEntry, type FileKind, type FileLoadStatus, type FileSelectMode, type FileSnapshotNode, type FileSort, type FileSortDirection, type FileSortField, FileUpload, type FileUploadContextValue, type FileUploadDropzoneProps, type FileUploadListProps, type FileUploadProps, Form, type FormProps, FormProvider, type FormProviderProps, Heading, type HeadingProps, Icon, type IconProps, type IconSet, ImageViewer, type ImageViewerProps, type ImageViewerViewport, Input, type InputAffixProps, type InputBaseProps, type InputOption, type InputOptionGroup, type InputProps, InputTag, type InputTagAdapter, type InputTagAdapterState, type InputTagProps, type InputTagTrigger, type InputTagTriggers, Kanban, type KanbanCardMoveHandler, type KanbanCardProps, type KanbanColumnHandleProps, type KanbanColumnMoveHandler, type KanbanColumnProps, type KanbanContextValue, type KanbanProps, MagicWand, type MagicWandAction, type MagicWandAppearance, type MagicWandProps, type MagicWandSelection, Marquee, type MarqueeDirection, type MarqueeProps, type MediaKind, MediaViewer, type MediaViewerProps, Menu, type MenuContextValue, type MenuGroupProps, type MenuItemProps, type MenuOrientation, type MenuProps, type MenuSubmenuProps, MobileMenu, type MobileMenuBottomBarProps, type MobileMenuContextValue, type MobileMenuFlyoutProps, type MobileMenuItemProps, type MobileMenuSide, type MobileMenuVariant, Modal, type ModalBodyProps, type ModalContextValue, type ModalFooterProps, type ModalHeaderProps, type ModalProps, MoodMeter, type MoodMeterProps, MultiSwitch, type MultiSwitchProps, Navbar, type NavbarBrandProps, type NavbarContextValue, type NavbarItemProps, type NavbarItemsProps, type NavbarProps, type NavbarToggleProps, type NodeRect, OtpInput, type OtpInputProps, Pagination, type PaginationProps, PdfViewer, type PdfViewerProps, Pillbox, type PillboxProps, type Placement, Popover, type PopoverContentProps, type PopoverContextValue, type PopoverProps, type PopoverTriggerProps, Portal, type PortalProps, Profile, type ProfileProps, Progress, type ProgressProps, type PromptAttachment, type PromptCmd, PromptInput, type PromptInputProps, type PromptMention, RadioGroup, type RadioGroupProps, ReasonTag, type ReasonTagProps, type ReasonTagSource, type ReasonTagTheme, type RenderExtension, type RenderExtensionProps, type ResolveMediaTypeInput, SKIN_TONES, type SectionRenderState, type SectionRenderable, Select, type SelectProps, Separator, type SeparatorProps, Sidebar, type SidebarCollapseMode, type SidebarContextValue, type SidebarGroupProps, type SidebarItemProps, type SidebarProps, type SidebarSubmenuProps, type SidebarToggleProps, type Size, Skeleton, type SkeletonProps, type SkinTone, Slider, type SliderProps, StickyNote, type StickyNoteColor, type StickyNoteProps, Switch, type SwitchProps, Table, type TableBodyProps, type TableCellProps, type TableColumnProps, type TableHeadProps, type TablePaginationProps, type TableProps, type TableRowProps, type TableRowTrayProps, type TableSearchProps, type TableTrayProps, Tabs, type TabsContextValue, type TabsListProps, type TabsPanelProps, type TabsPanelsProps, type TabsProps, type TabsTabProps, type TabsVariant, Text, type TextProps, Textarea, type TextareaProps, TimeGrid, type TimeGridProps, type TimeGridTone, TimePicker, type TimePickerProps, Timeline, type TimelineBlockProps, type TimelineEvent, type TimelineItemProps, type TimelineOrientation, type TimelineProps, type TimelineVariant, Toast, type ToastContextValue, type ToastData, type ToastPosition, type ToastProviderProps, type ToastVariant, Tooltip, type TooltipProps, TreeNav, type TreeNavContextValue, type TreeNavProps, type TreeNodeData, type TreeNodeProps, type Variant, VideoViewer, type VideoViewerProps, applyTone, cn, configureIcons, contentEditableAdapter, controlledAdapter, find, hasSkinTones, inputAdapter, registerExtension, registerExtensions, registerIconAddendum, registerIconSet, registerIcons, resolve, resolveMediaType, sanitizeHref, sanitizeHtml, search, skinTones, textareaAdapter, useAccordion, useAccordionPanel, useAccordionSection, useAnimation, useCarousel, useCommand, useContextMenu, useControllableState, useDrawer, useDropdown, useEditor, useEscapeKey, useFieldMode, useFileBrowser, useFileUpload, useFloatingPosition, useFocusTrap, useId, useKanban, useMenu, useMobileMenu, useModal, useNavbar, useNodeRegistry, useOutsideClick, usePanZoom, usePopover, useSidebar, useTabs, useToast, useTreeNav };
4021
+ export { Accordion, type AccordionContentProps, type AccordionContextValue, type AccordionItemProps, type AccordionOrientation, AccordionPanel, AccordionPanelContent, type AccordionPanelContentProps, type AccordionPanelProps, AccordionPanelSection, type AccordionPanelSectionProps, AccordionPanelTrigger, type AccordionPanelTriggerProps, type AccordionProps, type AccordionTriggerProps, Action, type ActionColor, type ActionProps, type AffixPosition, AudioViewer, type AudioViewerProps, Autocomplete, type AutocompleteOption, type AutocompleteProps, Avatar, type AvatarProps, Badge, type BadgeProps, Brand, BrandMark, type BrandMarkProps, type BrandProps, Breadcrumbs, type BreadcrumbsItemProps, type BreadcrumbsProps, Button, type ButtonColor, type ButtonProps, Calendar, type CalendarMode, type CalendarProps, Callout, type CalloutProps, Card, type CardBodyProps, type CardFooterProps, type CardHeaderProps, type CardProps, Carousel, type CarouselContextValue, type CarouselControlsProps, type CarouselPanelsProps, type CarouselProps, type CarouselSlideProps, type CarouselStepsProps, type CarouselVariant, Chart, type ChartAreaProps, type ChartBarData, type ChartBarProps, type ChartCommonProps, type ChartDonutData, type ChartDonutProps, type ChartHorizontalBarProps, type ChartLineProps, type ChartPieData, type ChartPieProps, type ChartSeries, type ChartSparklineProps, type ChartStackedBarProps, ChatDrawer, type ChatDrawerProps, type ChatDrawerTab, Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps, CodeView, type CodeViewProps, type Color, ColorPicker, type ColorPickerProps, Command, type CommandContextValue, type CommandEmptyProps, type CommandGroupProps, type CommandInputProps, type CommandItemProps, type CommandListProps, type CommandProps, Composer, type ComposerProps, ContentRenderer, type ContentRendererProps, ContextMenu, type ContextMenuContentProps, type ContextMenuContextValue, type ContextMenuItemProps, type ContextMenuProps, type ContextMenuSeparatorProps, type ContextMenuTriggerProps, type ControlledAdapterHandle, DatePicker, type DatePickerProps, type DateRange, DisplayValue, type DisplayValueProps, Drawer, type DrawerAttach, type DrawerBodyProps, type DrawerContainerProps, type DrawerContextValue, type DrawerFooterProps, type DrawerHeaderProps, type DrawerProps, type DrawerSide, type DrawerSize, type DropPosition, Dropdown, type DropdownContextValue, type DropdownItemProps, type DropdownItemsProps, type DropdownProps, type DropdownSeparatorProps, type DropdownTriggerProps, EMOJI_CATEGORY_ORDER, EMOJI_DATA, EMOJI_ENTRIES, Editor, type EditorAction, type EditorContentProps, type EditorContextValue, type EditorProps, type EditorSourceToggleProps, type EditorToolbarProps, Emoji, type EmojiCategory, type EmojiCategoryKey, type EmojiEntry, type EmojiFlatEntry, type EmojiProps, EmojiSelect, type EmojiSelectProps, Eyebrow, type EyebrowProps, FauxClient, type FauxClientProps, Field, type FieldMode, FieldModeContext, type FieldModeContextValue, type FieldProps, FileBrowser, type FileBrowserContextValue, type FileBrowserNodeProps, type FileBrowserPathBarProps, type FileBrowserProps, type FileBrowserProvider, type FileBrowserRow, type FileBrowserToolbarProps, type FileBrowserTreeProps, type FileEntry, type FileKind, type FileLoadStatus, type FileSelectMode, type FileSnapshotNode, type FileSort, type FileSortDirection, type FileSortField, FileUpload, type FileUploadContextValue, type FileUploadDropzoneProps, type FileUploadListProps, type FileUploadProps, Form, type FormProps, FormProvider, type FormProviderProps, Heading, type HeadingProps, Icon, type IconProps, type IconSet, ImageViewer, type ImageViewerProps, type ImageViewerViewport, Input, type InputAffixProps, type InputBaseProps, type InputOption, type InputOptionGroup, type InputProps, InputTag, type InputTagAdapter, type InputTagAdapterState, type InputTagProps, type InputTagTrigger, type InputTagTriggers, Kanban, type KanbanCardMoveHandler, type KanbanCardProps, type KanbanColumnHandleProps, type KanbanColumnMoveHandler, type KanbanColumnProps, type KanbanContextValue, type KanbanProps, MagicWand, type MagicWandAction, type MagicWandAppearance, type MagicWandProps, type MagicWandSelection, Marquee, type MarqueeDirection, type MarqueeProps, type MediaKind, MediaViewer, type MediaViewerProps, Menu, type MenuContextValue, type MenuGroupProps, type MenuItemProps, type MenuOrientation, type MenuProps, type MenuSubmenuProps, MobileMenu, type MobileMenuBottomBarProps, type MobileMenuContextValue, type MobileMenuFlyoutProps, type MobileMenuItemProps, type MobileMenuSide, type MobileMenuVariant, Modal, type ModalBodyProps, type ModalContextValue, type ModalFooterProps, type ModalHeaderProps, type ModalProps, MoodMeter, type MoodMeterProps, MultiSwitch, type MultiSwitchProps, Navbar, type NavbarBrandProps, type NavbarContextValue, type NavbarItemProps, type NavbarItemsProps, type NavbarProps, type NavbarToggleProps, type NodeRect, OtpInput, type OtpInputProps, Pagination, type PaginationProps, PdfViewer, type PdfViewerProps, Pillbox, type PillboxProps, type Placement, Popover, type PopoverContentProps, type PopoverContextValue, type PopoverProps, type PopoverTriggerProps, Portal, type PortalProps, Profile, type ProfileProps, Progress, type ProgressProps, type PromptAttachment, type PromptCmd, PromptInput, type PromptInputProps, type PromptMention, RadioGroup, type RadioGroupProps, ReasonTag, type ReasonTagProps, type ReasonTagSource, type ReasonTagTheme, type RenderExtension, type RenderExtensionProps, type ResolveMediaTypeInput, SKIN_TONES, type SectionRenderState, type SectionRenderable, Select, type SelectProps, Separator, type SeparatorProps, Sidebar, type SidebarCollapseMode, type SidebarContextValue, type SidebarGroupProps, type SidebarItemProps, type SidebarProps, type SidebarSubmenuProps, type SidebarToggleProps, type Size, Skeleton, type SkeletonProps, type SkinTone, Slider, type SliderProps, StickyNote, type StickyNoteColor, type StickyNoteProps, Switch, type SwitchProps, Table, type TableBodyProps, type TableCellProps, type TableColumnProps, type TableHeadProps, type TablePaginationProps, type TableProps, type TableRowProps, type TableRowTrayProps, type TableSearchProps, type TableTrayProps, Tabs, type TabsContextValue, type TabsListProps, type TabsPanelProps, type TabsPanelsProps, type TabsProps, type TabsTabProps, type TabsVariant, Text, type TextProps, Textarea, type TextareaProps, TimeGrid, type TimeGridProps, type TimeGridTone, TimePicker, type TimePickerProps, Timeline, type TimelineBlockProps, type TimelineEvent, type TimelineItemProps, type TimelineOrientation, type TimelineProps, type TimelineVariant, Toast, type ToastContextValue, type ToastData, type ToastPosition, type ToastProviderProps, type ToastVariant, Tooltip, type TooltipProps, TreeNav, type TreeNavContextValue, type TreeNavProps, type TreeNodeData, type TreeNodeProps, type Variant, VideoViewer, type VideoViewerProps, applyTone, cn, configureIcons, contentEditableAdapter, controlledAdapter, find, hasSkinTones, inputAdapter, registerExtension, registerExtensions, registerIconAddendum, registerIconSet, registerIcons, resolve, resolveMediaType, sanitizeHref, sanitizeHtml, search, skinTones, textareaAdapter, useAccordion, useAccordionPanel, useAccordionSection, useAnimation, useCarousel, useCommand, useContextMenu, useControllableState, useDrawer, useDropdown, useEditor, useEscapeKey, useFieldMode, useFileBrowser, useFileUpload, useFloatingPosition, useFocusTrap, useId, useKanban, useMenu, useMobileMenu, useModal, useNavbar, useNodeRegistry, useOutsideClick, usePanZoom, usePopover, useSidebar, useTabs, useToast, useTreeNav };
package/dist/index.js CHANGED
@@ -4114,7 +4114,7 @@ var Checkbox = forwardRef(
4114
4114
  el.indeterminate = indeterminate ?? false;
4115
4115
  }
4116
4116
  }, [indeterminate]);
4117
- const sizeClasses6 = {
4117
+ const sizeClasses7 = {
4118
4118
  xs: "h-3.5 w-3.5",
4119
4119
  sm: "h-4 w-4",
4120
4120
  md: "h-[18px] w-[18px]",
@@ -4140,7 +4140,7 @@ var Checkbox = forwardRef(
4140
4140
  } : void 0,
4141
4141
  className: cn(
4142
4142
  "flex shrink-0 items-center justify-center text-zinc-700 dark:text-zinc-200",
4143
- sizeClasses6,
4143
+ sizeClasses7,
4144
4144
  interactive && "cursor-pointer rounded outline-none transition-colors hover:text-zinc-900 focus-visible:ring-2 focus-visible:ring-blue-500/40 dark:hover:text-white"
4145
4145
  ),
4146
4146
  "aria-hidden": interactive ? void 0 : "true",
@@ -4169,7 +4169,7 @@ var Checkbox = forwardRef(
4169
4169
  },
4170
4170
  onChange: (e) => setChecked(e.target.checked),
4171
4171
  className: cn(
4172
- sizeClasses6,
4172
+ sizeClasses7,
4173
4173
  "cursor-pointer rounded border border-zinc-300 bg-white text-blue-600 transition-[border-color,box-shadow] duration-150 focus:ring-2 focus:ring-blue-500/40 focus:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-[#1e1e24]",
4174
4174
  dirtyRingClasses(dirty),
4175
4175
  error && "border-red-500"
@@ -4227,7 +4227,7 @@ function CheckboxGroup({
4227
4227
  const next = value.includes(optionValue) ? value.filter((v) => v !== optionValue) : [...value, optionValue];
4228
4228
  setValue(next);
4229
4229
  };
4230
- const sizeClasses6 = {
4230
+ const sizeClasses7 = {
4231
4231
  xs: "h-3.5 w-3.5",
4232
4232
  sm: "h-4 w-4",
4233
4233
  md: "h-[18px] w-[18px]",
@@ -4263,7 +4263,7 @@ function CheckboxGroup({
4263
4263
  autoFocus: interactive && index === 0,
4264
4264
  onChange: () => handleToggle(resolved.value),
4265
4265
  className: cn(
4266
- sizeClasses6,
4266
+ sizeClasses7,
4267
4267
  "cursor-pointer rounded border border-zinc-300 bg-white text-blue-600 transition-[border-color,box-shadow] duration-150 focus:ring-2 focus:ring-blue-500/40 focus:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-[#1e1e24]",
4268
4268
  dirtyRingClasses(dirty),
4269
4269
  error && "border-red-500"
@@ -4330,7 +4330,7 @@ function RadioGroup({
4330
4330
  defaultValue,
4331
4331
  onValueChange
4332
4332
  );
4333
- const sizeClasses6 = {
4333
+ const sizeClasses7 = {
4334
4334
  xs: "h-3.5 w-3.5",
4335
4335
  sm: "h-4 w-4",
4336
4336
  md: "h-[18px] w-[18px]",
@@ -4369,7 +4369,7 @@ function RadioGroup({
4369
4369
  autoFocus: shouldAutoFocus,
4370
4370
  onChange: () => setValue(resolved.value),
4371
4371
  className: cn(
4372
- sizeClasses6,
4372
+ sizeClasses7,
4373
4373
  "cursor-pointer border border-zinc-300 bg-white text-blue-600 transition-[border-color,box-shadow] duration-150 focus:ring-2 focus:ring-blue-500/40 focus:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-[#1e1e24]",
4374
4374
  dirtyRingClasses(dirty),
4375
4375
  error && "border-red-500"
@@ -6865,6 +6865,36 @@ var Progress = forwardRef(
6865
6865
  }
6866
6866
  );
6867
6867
  Progress.displayName = "Progress";
6868
+ var sizeClasses6 = {
6869
+ sm: "h-6 w-6 rounded-md text-[11px]",
6870
+ md: "h-8 w-8 rounded-lg text-sm",
6871
+ lg: "h-11 w-11 rounded-xl text-lg"
6872
+ };
6873
+ var BrandMark = forwardRef(
6874
+ ({ glyph, size = "md", className, style, ...props }, ref) => {
6875
+ const numeric = typeof size === "number";
6876
+ return /* @__PURE__ */ jsx(
6877
+ "span",
6878
+ {
6879
+ ref,
6880
+ "data-react-fancy-brand-mark": "",
6881
+ "aria-hidden": props["aria-label"] ? void 0 : true,
6882
+ className: cn(
6883
+ "grid shrink-0 place-items-center font-bold leading-none text-white select-none",
6884
+ numeric ? "rounded-lg" : sizeClasses6[size],
6885
+ // Overridable default: a mark with no `className` still reads as a
6886
+ // mark rather than as an invisible box.
6887
+ "bg-zinc-900 dark:bg-zinc-100 dark:text-zinc-900",
6888
+ className
6889
+ ),
6890
+ style: numeric ? { height: size, width: size, fontSize: Math.round(size * 0.5), ...style } : style,
6891
+ ...props,
6892
+ children: glyph
6893
+ }
6894
+ );
6895
+ }
6896
+ );
6897
+ BrandMark.displayName = "BrandMark";
6868
6898
  var gapClasses = {
6869
6899
  sm: "gap-2",
6870
6900
  md: "gap-3",
@@ -6880,7 +6910,7 @@ var taglineClasses = {
6880
6910
  md: "text-sm",
6881
6911
  lg: "text-base"
6882
6912
  };
6883
- var Brand = forwardRef(
6913
+ var BrandRoot = forwardRef(
6884
6914
  ({ logo, name, tagline, size = "md", className }, ref) => {
6885
6915
  return /* @__PURE__ */ jsxs(
6886
6916
  "div",
@@ -6917,7 +6947,36 @@ var Brand = forwardRef(
6917
6947
  );
6918
6948
  }
6919
6949
  );
6920
- Brand.displayName = "Brand";
6950
+ BrandRoot.displayName = "Brand";
6951
+ var Brand = Object.assign(BrandRoot, { Mark: BrandMark });
6952
+ var Eyebrow = forwardRef(
6953
+ ({ num, label, aside, rule = false, className, children, ...props }, ref) => {
6954
+ return /* @__PURE__ */ jsxs(
6955
+ "div",
6956
+ {
6957
+ ref,
6958
+ "data-react-fancy-eyebrow": "",
6959
+ className: cn(
6960
+ "flex items-baseline gap-3 font-mono text-[11.5px] uppercase tracking-wider text-zinc-500 dark:text-zinc-400",
6961
+ rule && "border-b border-zinc-200 pb-2 dark:border-zinc-800",
6962
+ className
6963
+ ),
6964
+ ...props,
6965
+ children: [
6966
+ children ?? /* @__PURE__ */ jsxs("span", { children: [
6967
+ num != null && /* @__PURE__ */ jsxs(Fragment, { children: [
6968
+ /* @__PURE__ */ jsx("b", { className: "font-medium text-zinc-900 dark:text-zinc-100", children: num }),
6969
+ label != null && " \u2014 "
6970
+ ] }),
6971
+ label
6972
+ ] }),
6973
+ aside != null && /* @__PURE__ */ jsx("span", { className: "ml-auto", children: aside })
6974
+ ]
6975
+ }
6976
+ );
6977
+ }
6978
+ );
6979
+ Eyebrow.displayName = "Eyebrow";
6921
6980
  var gapClasses2 = {
6922
6981
  sm: "gap-2",
6923
6982
  md: "gap-3",
@@ -7040,6 +7099,66 @@ var CardFooter = forwardRef(
7040
7099
  }
7041
7100
  );
7042
7101
  CardFooter.displayName = "CardFooter";
7102
+ var CardMedia = forwardRef(
7103
+ ({
7104
+ src,
7105
+ alt = "",
7106
+ ratio = "16/9",
7107
+ height,
7108
+ background,
7109
+ objectPosition = "center",
7110
+ loading = "lazy",
7111
+ topLeft,
7112
+ topRight,
7113
+ bottomLeft,
7114
+ bottomRight,
7115
+ className,
7116
+ style,
7117
+ children,
7118
+ ...props
7119
+ }, ref) => {
7120
+ return /* @__PURE__ */ jsxs(
7121
+ "div",
7122
+ {
7123
+ ref,
7124
+ "data-react-fancy-card-media": "",
7125
+ className: cn(
7126
+ "relative overflow-hidden rounded-t-lg",
7127
+ // Card's `padding` prop pads EVERY direct div child
7128
+ // (`[&>div]:px-4 …`), which would inset the media and break the
7129
+ // flush-to-the-edge look every caller wants. `!` wins regardless of
7130
+ // stylesheet order, which plain `p-0` would not.
7131
+ "!px-0 !py-0",
7132
+ className
7133
+ ),
7134
+ style: {
7135
+ ...height === void 0 ? { aspectRatio: ratio } : { height },
7136
+ ...background ? { background } : null,
7137
+ ...style
7138
+ },
7139
+ ...props,
7140
+ children: [
7141
+ src ? /* @__PURE__ */ jsx(
7142
+ "img",
7143
+ {
7144
+ src,
7145
+ alt,
7146
+ loading,
7147
+ className: "absolute inset-0 h-full w-full object-cover",
7148
+ style: { objectPosition }
7149
+ }
7150
+ ) : null,
7151
+ children,
7152
+ topLeft ? /* @__PURE__ */ jsx("span", { className: "absolute left-2 top-2 z-10", children: topLeft }) : null,
7153
+ topRight ? /* @__PURE__ */ jsx("span", { className: "absolute right-2 top-2 z-10", children: topRight }) : null,
7154
+ bottomLeft ? /* @__PURE__ */ jsx("span", { className: "absolute bottom-2 left-2 z-10", children: bottomLeft }) : null,
7155
+ bottomRight ? /* @__PURE__ */ jsx("span", { className: "absolute bottom-2 right-2 z-10", children: bottomRight }) : null
7156
+ ]
7157
+ }
7158
+ );
7159
+ }
7160
+ );
7161
+ CardMedia.displayName = "CardMedia";
7043
7162
  var variantClasses = {
7044
7163
  outlined: "border border-zinc-200 dark:border-zinc-700",
7045
7164
  elevated: "shadow-md border border-zinc-100 dark:border-zinc-800",
@@ -7055,6 +7174,7 @@ var CardRoot = forwardRef(
7055
7174
  ({
7056
7175
  variant = "outlined",
7057
7176
  padding = "md",
7177
+ interactive = false,
7058
7178
  className,
7059
7179
  children,
7060
7180
  ...props
@@ -7067,6 +7187,10 @@ var CardRoot = forwardRef(
7067
7187
  className: cn(
7068
7188
  "rounded-lg bg-white dark:bg-zinc-900",
7069
7189
  variantClasses[variant],
7190
+ // `overflow-hidden` is part of `interactive` rather than always-on:
7191
+ // clipping unconditionally would cut off popovers and dropdowns that
7192
+ // legitimately overflow a static card.
7193
+ interactive && "overflow-hidden transition hover:-translate-y-0.5 hover:shadow-lg hover:border-zinc-300 dark:hover:border-zinc-600",
7070
7194
  paddingClasses[padding],
7071
7195
  className
7072
7196
  ),
@@ -7078,6 +7202,7 @@ var CardRoot = forwardRef(
7078
7202
  );
7079
7203
  CardRoot.displayName = "Card";
7080
7204
  var Card = Object.assign(CardRoot, {
7205
+ Media: CardMedia,
7081
7206
  Header: CardHeader,
7082
7207
  Body: CardBody,
7083
7208
  Footer: CardFooter
@@ -16375,6 +16500,6 @@ var MediaViewer = forwardRef(
16375
16500
  );
16376
16501
  MediaViewer.displayName = "MediaViewer";
16377
16502
 
16378
- export { Accordion, AccordionPanel, AccordionPanelContent, AccordionPanelSection, AccordionPanelTrigger, Action, AudioViewer, Autocomplete, Avatar, Badge, Brand, Breadcrumbs, Button, Calendar, Callout, Card, Carousel, Chart, ChatDrawer, Checkbox, CheckboxGroup, CodeView, ColorPicker, Command, Composer, ContentRenderer, ContextMenu, DatePicker, DisplayValue, Drawer, Dropdown, EMOJI_CATEGORY_ORDER, EMOJI_DATA, EMOJI_ENTRIES, Editor, Emoji, EmojiSelect, FauxClient, Field, FieldModeContext, FileBrowser, FileUpload, Form, FormProvider, Heading, Icon, ImageViewer, Input, InputTag, Kanban, MagicWand, Marquee, MediaViewer, Menu2 as Menu, MobileMenu, Modal, MoodMeter, MultiSwitch, Navbar, OtpInput, Pagination, PdfViewer, Pillbox, Popover, Portal, Profile, Progress, PromptInput, RadioGroup, ReasonTag, SKIN_TONES, Select, Separator, Sidebar, Skeleton, Slider, StickyNote, Switch, Table, Tabs, Text, Textarea, TimeGrid, TimePicker, Timeline, Toast, Tooltip, TreeNav, VideoViewer, applyTone, cn, configureIcons, contentEditableAdapter, controlledAdapter, find, hasSkinTones, inputAdapter, registerExtension, registerExtensions, registerIconAddendum, registerIconSet, registerIcons, resolve, resolveMediaType, sanitizeHref, sanitizeHtml, search, skinTones, textareaAdapter, useAccordion, useAccordionPanel, useAccordionSection, useAnimation, useCarousel, useCommand, useContextMenu, useControllableState, useDrawer, useDropdown, useEditor, useEscapeKey, useFieldMode, useFileBrowser, useFileUpload, useFloatingPosition, useFocusTrap, useId12 as useId, useKanban, useMenu, useMobileMenu, useModal, useNavbar, useNodeRegistry, useOutsideClick, usePanZoom, usePopover, useSidebar, useTabs, useToast, useTreeNav };
16503
+ export { Accordion, AccordionPanel, AccordionPanelContent, AccordionPanelSection, AccordionPanelTrigger, Action, AudioViewer, Autocomplete, Avatar, Badge, Brand, BrandMark, Breadcrumbs, Button, Calendar, Callout, Card, Carousel, Chart, ChatDrawer, Checkbox, CheckboxGroup, CodeView, ColorPicker, Command, Composer, ContentRenderer, ContextMenu, DatePicker, DisplayValue, Drawer, Dropdown, EMOJI_CATEGORY_ORDER, EMOJI_DATA, EMOJI_ENTRIES, Editor, Emoji, EmojiSelect, Eyebrow, FauxClient, Field, FieldModeContext, FileBrowser, FileUpload, Form, FormProvider, Heading, Icon, ImageViewer, Input, InputTag, Kanban, MagicWand, Marquee, MediaViewer, Menu2 as Menu, MobileMenu, Modal, MoodMeter, MultiSwitch, Navbar, OtpInput, Pagination, PdfViewer, Pillbox, Popover, Portal, Profile, Progress, PromptInput, RadioGroup, ReasonTag, SKIN_TONES, Select, Separator, Sidebar, Skeleton, Slider, StickyNote, Switch, Table, Tabs, Text, Textarea, TimeGrid, TimePicker, Timeline, Toast, Tooltip, TreeNav, VideoViewer, applyTone, cn, configureIcons, contentEditableAdapter, controlledAdapter, find, hasSkinTones, inputAdapter, registerExtension, registerExtensions, registerIconAddendum, registerIconSet, registerIcons, resolve, resolveMediaType, sanitizeHref, sanitizeHtml, search, skinTones, textareaAdapter, useAccordion, useAccordionPanel, useAccordionSection, useAnimation, useCarousel, useCommand, useContextMenu, useControllableState, useDrawer, useDropdown, useEditor, useEscapeKey, useFieldMode, useFileBrowser, useFileUpload, useFloatingPosition, useFocusTrap, useId12 as useId, useKanban, useMenu, useMobileMenu, useModal, useNavbar, useNodeRegistry, useOutsideClick, usePanZoom, usePopover, useSidebar, useTabs, useToast, useTreeNav };
16379
16504
  //# sourceMappingURL=index.js.map
16380
16505
  //# sourceMappingURL=index.js.map