@borisj74/bv-ds 0.1.3 → 0.1.4

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.ts CHANGED
@@ -313,25 +313,73 @@ interface ButtonUtilityProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement
313
313
  }
314
314
  declare function ButtonUtility({ icon, label, size, variant, tooltip, className, ...rest }: ButtonUtilityProps): react.JSX.Element;
315
315
 
316
+ type CalendarEventColor = "neutral" | "brand" | "emerald" | "blue" | "indigo" | "purple" | "pink" | "orange" | "amber";
317
+ type CalendarEventBreakpoint = "desktop" | "mobile";
318
+ type CalendarEventState = "default" | "hover";
319
+ interface CalendarEventProps {
320
+ /** Event title. */
321
+ title: string;
322
+ /** Optional time label (e.g. "9:00 AM"). */
323
+ time?: string;
324
+ color?: CalendarEventColor;
325
+ /** Filled colour-fill style vs the subtle white style. */
326
+ filled?: boolean;
327
+ /** Desktop renders the full chip; mobile collapses to an 8px dot. */
328
+ breakpoint?: CalendarEventBreakpoint;
329
+ /** `hover` darkens the fill one shade (filled chips only). */
330
+ state?: CalendarEventState;
331
+ className?: string;
332
+ }
333
+ declare function CalendarEvent({ title, time, color, filled, breakpoint, state, className, }: CalendarEventProps): react.JSX.Element;
334
+
335
+ type CalendarCellBreakpoint = "desktop" | "mobile";
336
+ interface CalendarCellEvent {
337
+ title: string;
338
+ time?: string;
339
+ color?: CalendarEventColor;
340
+ }
316
341
  interface CalendarCellProps {
317
342
  /** Day-of-month number. */
318
343
  date: string | number;
344
+ /**
345
+ * Declarative events for this day — rendered as filled `CalendarEvent`
346
+ * chips (collapsed to dots on mobile). Use `children` instead for full
347
+ * control over each chip.
348
+ */
349
+ events?: CalendarCellEvent[];
319
350
  /** Event chips for this day — typically `CalendarEvent` instances. */
320
351
  children?: ReactNode;
321
352
  /** "+N more" overflow count shown beneath the events. */
322
353
  moreCount?: number;
354
+ /** Today — date number in a brand-solid circle. */
355
+ isToday?: boolean;
356
+ /** Selected day — date number in a secondary-fill circle. */
357
+ isSelected?: boolean;
323
358
  /** Other-month / disabled styling. */
324
- muted?: boolean;
325
- /** Marks today (date number in brand). */
359
+ isDisabled?: boolean;
360
+ /** Legacy alias for `isToday`. */
326
361
  current?: boolean;
362
+ /** Legacy alias for `isDisabled`. */
363
+ muted?: boolean;
364
+ /** Desktop renders full chips; mobile collapses chips to dots. */
365
+ breakpoint?: CalendarCellBreakpoint;
327
366
  /** Renders a hover "+" add button bottom-right. */
328
367
  onAdd?: () => void;
329
368
  className?: string;
330
369
  }
331
370
  /** A single day cell in the month grid. Composes CalendarEvent chips. */
332
- declare function CalendarCell({ date, children, moreCount, muted, current, onAdd, className, }: CalendarCellProps): react.JSX.Element;
371
+ declare function CalendarCell({ date, events, children, moreCount, isToday, isSelected, isDisabled, current, muted, breakpoint, onAdd, className, }: CalendarCellProps): react.JSX.Element;
333
372
 
373
+ type CalendarTimeslotType = "empty" | "30min" | "60min" | "90min" | "120min";
374
+ type CalendarTimeslotState = "default" | "hover";
334
375
  interface CalendarCellDayWeekViewProps {
376
+ /**
377
+ * Slot duration — drives the row height (empty/30min → 48px, 60min → 96px,
378
+ * 90min → 144px, 120min → 192px). Omit to keep the auto min-height.
379
+ */
380
+ type?: CalendarTimeslotType;
381
+ /** `hover` tints the slot (also rendered via CSS :hover). */
382
+ state?: CalendarTimeslotState;
335
383
  /** Event block(s) occupying the slot — typically CalendarEventDayWeekView. */
336
384
  children?: ReactNode;
337
385
  /** Renders a hover "+" add button bottom-right. */
@@ -341,20 +389,29 @@ interface CalendarCellDayWeekViewProps {
341
389
  className?: string;
342
390
  }
343
391
  /** A time-slot cell in day/week view. Holds CalendarEventDayWeekView blocks. */
344
- declare function CalendarCellDayWeekView({ children, onAdd, muted, className, }: CalendarCellDayWeekViewProps): react.JSX.Element;
392
+ declare function CalendarCellDayWeekView({ type, state, children, onAdd, muted, className, }: CalendarCellDayWeekViewProps): react.JSX.Element;
345
393
 
346
394
  type CalendarColumnHeaderOrientation = "horizontal" | "vertical";
395
+ type CalendarColumnHeaderType = "default" | "selected" | "today";
396
+ type CalendarBreakpoint = "desktop" | "mobile";
347
397
  interface CalendarColumnHeaderProps {
348
398
  /** Weekday label (e.g. "Mon"). */
349
399
  weekday: string;
350
400
  /** Date number. */
351
401
  date: string | number;
352
- /** Active day — renders the date in a brand-solid circle. */
402
+ /**
403
+ * Cell state. `selected` → brand-solid circle behind the date; `today` →
404
+ * brand text + brand underline. Takes precedence over `current` when set.
405
+ */
406
+ type?: CalendarColumnHeaderType;
407
+ /** Legacy boolean — equivalent to `type="selected"`. Kept for back-compat. */
353
408
  current?: boolean;
354
409
  orientation?: CalendarColumnHeaderOrientation;
410
+ /** Desktop fixes the column to 160px; mobile lets it size to content. */
411
+ breakpoint?: CalendarBreakpoint;
355
412
  className?: string;
356
413
  }
357
- declare function CalendarColumnHeader({ weekday, date, current, orientation, className, }: CalendarColumnHeaderProps): react.JSX.Element;
414
+ declare function CalendarColumnHeader({ weekday, date, type, current, orientation, breakpoint, className, }: CalendarColumnHeaderProps): react.JSX.Element;
358
415
 
359
416
  interface CalendarDateIconProps {
360
417
  /** Short month label (e.g. "JAN"). Rendered uppercase. */
@@ -365,19 +422,6 @@ interface CalendarDateIconProps {
365
422
  }
366
423
  declare function CalendarDateIcon({ month, day, className }: CalendarDateIconProps): react.JSX.Element;
367
424
 
368
- type CalendarEventColor = "neutral" | "brand" | "emerald" | "blue" | "indigo" | "purple" | "pink" | "orange" | "amber";
369
- interface CalendarEventProps {
370
- /** Event title. */
371
- title: string;
372
- /** Optional time label (e.g. "9:00 AM"). */
373
- time?: string;
374
- color?: CalendarEventColor;
375
- /** Filled colour-fill style vs the subtle white style. */
376
- filled?: boolean;
377
- className?: string;
378
- }
379
- declare function CalendarEvent({ title, time, color, filled, className, }: CalendarEventProps): react.JSX.Element;
380
-
381
425
  interface CalendarEventDayWeekViewProps {
382
426
  title: string;
383
427
  time?: string;
@@ -393,6 +437,8 @@ interface CalendarHeaderProps {
393
437
  title: string;
394
438
  /** Date range subtitle, e.g. "Jan 1, 2027 – Jan 31, 2027". */
395
439
  range?: string;
440
+ /** Alias for `range` — Batch-36 prop name. `range` wins if both set. */
441
+ supportingText?: string;
396
442
  /** Badge beside the title (e.g. a PillBadge "Week 1"). */
397
443
  badge?: ReactNode;
398
444
  /** Leading date chip — typically a CalendarDateIcon. */
@@ -402,25 +448,30 @@ interface CalendarHeaderProps {
402
448
  className?: string;
403
449
  }
404
450
  /** Top bar of the calendar composite. A layout shell — drop controls into `actions`. */
405
- declare function CalendarHeader({ title, range, badge, dateIcon, actions, className, }: CalendarHeaderProps): react.JSX.Element;
451
+ declare function CalendarHeader({ title, range, supportingText, badge, dateIcon, actions, className, }: CalendarHeaderProps): react.JSX.Element;
406
452
 
407
453
  interface CalendarRowLabelProps {
408
454
  /** Time label for the row gutter (e.g. "9 AM"). */
409
- label: string;
455
+ label?: string;
456
+ /** Alias for `label` — Batch-36 prop name. One of the two is required. */
457
+ time?: string;
410
458
  className?: string;
411
459
  }
412
460
  /** Left-gutter time label aligned to the top of a day/week-view row. */
413
- declare function CalendarRowLabel({ label, className }: CalendarRowLabelProps): react.JSX.Element;
461
+ declare function CalendarRowLabel({ label, time, className }: CalendarRowLabelProps): react.JSX.Element;
414
462
 
415
463
  type CalendarTimemarkerAlign = "left" | "center";
464
+ type CalendarTimemarkerBreakpoint = "desktop" | "mobile";
416
465
  interface CalendarTimemarkerProps {
417
466
  /** Time label (e.g. "2:20 PM"). */
418
467
  time: string;
419
468
  /** Label position: leading, or centered between two line halves. */
420
469
  align?: CalendarTimemarkerAlign;
470
+ /** Desktop shows the time label; mobile collapses to dot + line only. */
471
+ breakpoint?: CalendarTimemarkerBreakpoint;
421
472
  className?: string;
422
473
  }
423
- declare function CalendarTimemarker({ time, align, className, }: CalendarTimemarkerProps): react.JSX.Element;
474
+ declare function CalendarTimemarker({ time, align, breakpoint, className, }: CalendarTimemarkerProps): react.JSX.Element;
424
475
 
425
476
  type CalendarView = "day" | "week" | "month";
426
477
  interface CalendarViewOption {
@@ -431,10 +482,16 @@ interface CalendarViewOption {
431
482
  interface CalendarViewDropdownProps {
432
483
  value: CalendarView;
433
484
  onChange?: (value: CalendarView) => void;
485
+ /** Alias for `onChange` — Batch-36 prop name. Both fire on selection. */
486
+ onSelect?: (value: CalendarView) => void;
487
+ /** Controlled open state. Omit to let the component manage its own. */
488
+ open?: boolean;
489
+ /** Fires whenever the menu wants to open/close (controlled or not). */
490
+ onOpenChange?: (open: boolean) => void;
434
491
  options?: CalendarViewOption[];
435
492
  className?: string;
436
493
  }
437
- declare function CalendarViewDropdown({ value, onChange, options, className, }: CalendarViewDropdownProps): react.JSX.Element;
494
+ declare function CalendarViewDropdown({ value, onChange, onSelect, open: openProp, onOpenChange, options, className, }: CalendarViewDropdownProps): react.JSX.Element;
438
495
 
439
496
  interface CardHeaderProps {
440
497
  /** Card section title. */
@@ -2789,4 +2846,4 @@ declare namespace index {
2789
2846
  export { index_BoxIllustration as BoxIllustration, index_CloudIllustration as CloudIllustration, index_CreditCardIllustration as CreditCardIllustration, index_DocumentsIllustration as DocumentsIllustration };
2790
2847
  }
2791
2848
 
2792
- export { ActivityFeed, type ActivityFeedDivider, type ActivityFeedProps, ActivityGauge, type ActivityGaugeLegend, type ActivityGaugeProps, type ActivityGaugeSeries, type ActivityGaugeSize, AdvancedFilterBar, type AdvancedFilterBarProps, Alert, type AlertAction, type AlertColor, type AlertProps, type AlertSize, Avatar, AvatarAddButton, type AvatarAddButtonProps, type AvatarAddButtonSize, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarGroupSize, AvatarLabelGroup, type AvatarLabelGroupProps, type AvatarLabelGroupSize, AvatarProfilePhoto, type AvatarProfilePhotoProps, type AvatarProfilePhotoSize, type AvatarProps, type AvatarSize, BadgeCloseX, type BadgeCloseXProps, type BadgeCloseXShape, type BadgeColor, type BadgeCommonProps, BadgeGroup, type BadgeGroupBadgePosition, type BadgeGroupProps, type BadgeGroupSize, type BadgeGroupType, type BadgeSize, BreadcrumbButtonBase, type BreadcrumbButtonBaseProps, type BreadcrumbButtonType, Breadcrumbs, type BreadcrumbsDivider, type BreadcrumbsProps, Button, ButtonCloseX, type ButtonCloseXProps, type ButtonCloseXSize, ButtonDestructive, type ButtonDestructiveHierarchy, type ButtonDestructiveProps, type ButtonDestructiveSize, ButtonGroup, type ButtonGroupProps, ButtonGroupSegment, type ButtonGroupSegmentProps, type ButtonGroupSegmentSize, type ButtonProps, ButtonUtility, type ButtonUtilityProps, type ButtonUtilitySize, type ButtonUtilityVariant, CalendarCell, CalendarCellDayWeekView, type CalendarCellDayWeekViewProps, type CalendarCellProps, CalendarColumnHeader, type CalendarColumnHeaderOrientation, type CalendarColumnHeaderProps, CalendarDateIcon, type CalendarDateIconProps, CalendarEvent, type CalendarEventColor, CalendarEventDayWeekView, type CalendarEventDayWeekViewProps, type CalendarEventProps, CalendarHeader, type CalendarHeaderProps, CalendarRowLabel, type CalendarRowLabelProps, CalendarTimemarker, type CalendarTimemarkerAlign, type CalendarTimemarkerProps, type CalendarView, CalendarViewDropdown, type CalendarViewDropdownProps, type CalendarViewOption, CardHeader, type CardHeaderProps, CarouselArrow, type CarouselArrowDirection, type CarouselArrowProps, type CarouselArrowSize, CarouselImage, type CarouselImageProps, Change, type ChangeProps, type ChangeTrend, type ChangeType, ChartLegend, type ChartLegendItem, type ChartLegendPosition, type ChartLegendProps, ChartMarker, type ChartMarkerLine, type ChartMarkerProps, ChartMini, type ChartMiniDatum, type ChartMiniProps, type ChartMiniTrend, type ChartSeries, type ChartStyle, ChartTooltip, type ChartTooltipPayloadItem, type ChartTooltipProps, type CheckControlSize, Checkbox, type CheckboxProps, CodeSnippet, type CodeSnippetProps, CodeSnippetTabs, type CodeSnippetTabsProps, ColorBadge, type ColorBadgeProps, CommandBar, CommandBarFooter, type CommandBarFooterHint, type CommandBarFooterProps, CommandBarMenuSection, type CommandBarMenuSectionProps, CommandBarNavigationIcon, type CommandBarNavigationIconProps, type CommandBarProps, CommandDropdownMenuItem, type CommandDropdownMenuItemProps, CommandInput, type CommandInputProps, CommandShortcut, type CommandShortcutProps, ContentDivider, type ContentDividerProps, type ContentDividerStyle, type ContentDividerType, ContentFeatureText, type ContentFeatureTextProps, type ContentFeatureTextSize, ContentHeading, type ContentHeadingProps, type ContentHeadingSize, ContentParagraph, type ContentParagraphProps, type ContentParagraphSize, ContentQuote, type ContentQuoteAlign, type ContentQuoteProps, type ContentQuoteSize, ContentRule, type ContentRuleProps, type ContentRuleSize, ContextMenu, type ContextMenuProps, type ContextMenuState, DatePickerCell, type DatePickerCellProps, type DatePickerCellType, DatePickerListItem, type DatePickerListItemProps, DatePickerMenu, type DatePickerMenuProps, DropdownAccountListItem, type DropdownAccountListItemProps, DropdownMenuFooter, type DropdownMenuFooterProps, type DropdownMenuFooterType, DropdownMenuHeader, type DropdownMenuHeaderProps, type DropdownMenuHeaderType, DropdownMenuItemInsetIcon, type DropdownMenuItemInsetIconProps, type DropdownMenuItemInsetIconType, DropdownMenuListItem, type DropdownMenuListItemProps, EmptyState, type EmptyStateProps, type EmptyStateSize, FeaturedIcon, type FeaturedIconColor, type FeaturedIconProps, type FeaturedIconSize, type FeaturedIconTheme, FeedItemBase, type FeedItemBaseProps, type FeedItemSize, FileUpload, FileUploadBase, type FileUploadBaseProps, FileUploadItemBase, type FileUploadItemBaseProps, type FileUploadItemIconType, type FileUploadItemStatus, type FileUploadItemType, type FileUploadProps, FilterBar, type FilterBarProps, FilterTabs, type FilterTabsProps, FiltersDropdownMenu, type FiltersDropdownMenuProps, FiltersSlideoutMenu, type FiltersSlideoutMenuProps, type HeaderNavItem, HeaderNavigation, type HeaderNavigationProps, type HeaderNavigationType, HelpIcon, type HelpIconProps, InputField, type InputFieldProps, type InputFieldSize, type InputFieldType, LeadingInputField, type LeadingInputFieldProps, LineAndBarChart, type LineAndBarChartProps, LinkMessage, type LinkMessageProps, type LinkMessageType, LoadingIndicator, type LoadingIndicatorProps, type LoadingIndicatorSize, type LoadingIndicatorStyle, MediaMessage, type MediaMessageProps, type MediaMessageType, MegaInputFieldBase, type MegaInputFieldBaseProps, type MegaInputFieldBaseSize, Message, MessageAction, MessageActionButton, type MessageActionButtonProps, MessageActionPanel, type MessageActionPanelProps, type MessageActionProps, type MessageActionType, type MessageBubbleTone, type MessageProps, MessageReaction, type MessageReactionProps, type MessageStatus, MessageStatusIcon, type MessageStatusIconProps, type MessageType, MetricItem, type MetricItemProps, Modal, ModalActions, type ModalActionsProps, type ModalActionsType, ModalHeader, type ModalHeaderProps, type ModalHeaderType, type ModalProps, type ModalSize, ModernBadge, type ModernBadgeProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, NavAccountCard, type NavAccountCardBreakpoint, NavAccountCardMenuItem, type NavAccountCardMenuItemProps, type NavAccountCardMenuItemType, type NavAccountCardProps, type NavAccountCardVariant, NavButton, type NavButtonProps, NavFeaturedCard, type NavFeaturedCardProps, NavItemBase, type NavItemBaseProps, NavItemDropdownBase, type NavItemDropdownBaseProps, NavMenuButton, type NavMenuButtonProps, Notification, type NotificationProps, type NotificationVariant, NumberInput, type NumberInputLayout, type NumberInputProps, PageHeader, type PageHeaderProps, type PageHeaderStyle, Pagination, PaginationButtonGroupBase, type PaginationButtonGroupBaseProps, type PaginationButtonGroupType, PaginationCards, type PaginationCardsProps, type PaginationCardsVariant, PaginationDotGroup, type PaginationDotGroupProps, PaginationDotIndicator, type PaginationDotIndicatorProps, type PaginationDotSize, type PaginationDotVariant, PaginationNumberBase, type PaginationNumberBaseProps, type PaginationNumberShape, type PaginationProps, type PaginationType, PieChart, type PieChartProps, type PieChartSize, type PieSlice, PillBadge, type PillBadgeProps, ProgressBar, type ProgressBarLabel, type ProgressBarProps, ProgressCircle, type ProgressCircleProps, type ProgressCircleShape, type ProgressCircleSize, RadarChart, type RadarChartProps, type RadarLegendPosition, Radio, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupItemSize, type RadioGroupItemType, type RadioGroupProps, type RadioProps, SectionFooter, type SectionFooterProps, type SectionFooterType, SectionHeader, type SectionHeaderProps, SectionLabel, type SectionLabelProps, type SectionLabelSize, Select, SelectMenuItem, type SelectMenuItemProps, type SelectMenuItemSize, type SelectProps, type SelectSize, type SelectType, SidebarNavigation, type SidebarNavigationProps, type SidebarNavigationType, SlideOutMenuHeader, type SlideOutMenuHeaderProps, SlideoutMenu, type SlideoutMenuProps, type SlideoutMenuSide, type SlideoutMenuSize, Slider, type SliderLabel, type SliderProps, type SocialBrand, SocialButton, type SocialButtonProps, type SocialButtonSize, type SocialButtonTheme, StatusIcon, type StatusIconProps, type StatusIconType, StepBase, type StepBaseProps, StepIconBase, type StepIconBaseProps, type StepIconSize, type StepIconType, type StepOrientation, type StepStatus, TabButtonBase, type TabButtonBaseProps, type TabButtonSize, type TabButtonType, type TabItem, TableCell, type TableCellProps, type TableCellSize, TableHeaderCell, type TableHeaderCellProps, type TableHeaderCellSize, TableHeaderLabel, type TableHeaderLabelArrow, type TableHeaderLabelProps, Tabs, type TabsOrientation, type TabsProps, Tag, type TagProps, type TagSize, TagsInputField, type TagsInputFieldProps, type TagsInputVariant, TextEditorToolbar, TextEditorToolbarDivider, type TextEditorToolbarProps, TextEditorTooltip, type TextEditorTooltipProps, TextareaInputField, type TextareaInputFieldProps, Toggle, type ToggleProps, type ToggleSize, type ToggleType, Tooltip, type TooltipArrow, type TooltipProps, TrailingInputField, type TrailingInputFieldProps, type TreeNode, TreeView, TreeViewConnector, type TreeViewConnectorProps, type TreeViewConnectorSize, type TreeViewConnectorType, TreeViewItem, type TreeViewItemProps, type TreeViewItemSize, type TreeViewProps, type UseContextMenuReturn, type VerificationCodeDigits, VerificationCodeInput, type VerificationCodeInputProps, type VerificationCodeSize, index as illustrations, useContextMenu };
2849
+ export { ActivityFeed, type ActivityFeedDivider, type ActivityFeedProps, ActivityGauge, type ActivityGaugeLegend, type ActivityGaugeProps, type ActivityGaugeSeries, type ActivityGaugeSize, AdvancedFilterBar, type AdvancedFilterBarProps, Alert, type AlertAction, type AlertColor, type AlertProps, type AlertSize, Avatar, AvatarAddButton, type AvatarAddButtonProps, type AvatarAddButtonSize, AvatarGroup, type AvatarGroupItem, type AvatarGroupProps, type AvatarGroupSize, AvatarLabelGroup, type AvatarLabelGroupProps, type AvatarLabelGroupSize, AvatarProfilePhoto, type AvatarProfilePhotoProps, type AvatarProfilePhotoSize, type AvatarProps, type AvatarSize, BadgeCloseX, type BadgeCloseXProps, type BadgeCloseXShape, type BadgeColor, type BadgeCommonProps, BadgeGroup, type BadgeGroupBadgePosition, type BadgeGroupProps, type BadgeGroupSize, type BadgeGroupType, type BadgeSize, BreadcrumbButtonBase, type BreadcrumbButtonBaseProps, type BreadcrumbButtonType, Breadcrumbs, type BreadcrumbsDivider, type BreadcrumbsProps, Button, ButtonCloseX, type ButtonCloseXProps, type ButtonCloseXSize, ButtonDestructive, type ButtonDestructiveHierarchy, type ButtonDestructiveProps, type ButtonDestructiveSize, ButtonGroup, type ButtonGroupProps, ButtonGroupSegment, type ButtonGroupSegmentProps, type ButtonGroupSegmentSize, type ButtonProps, ButtonUtility, type ButtonUtilityProps, type ButtonUtilitySize, type ButtonUtilityVariant, type CalendarBreakpoint, CalendarCell, type CalendarCellBreakpoint, CalendarCellDayWeekView, type CalendarCellDayWeekViewProps, type CalendarCellEvent, type CalendarCellProps, CalendarColumnHeader, type CalendarColumnHeaderOrientation, type CalendarColumnHeaderProps, type CalendarColumnHeaderType, CalendarDateIcon, type CalendarDateIconProps, CalendarEvent, type CalendarEventBreakpoint, type CalendarEventColor, CalendarEventDayWeekView, type CalendarEventDayWeekViewProps, type CalendarEventProps, type CalendarEventState, CalendarHeader, type CalendarHeaderProps, CalendarRowLabel, type CalendarRowLabelProps, CalendarTimemarker, type CalendarTimemarkerAlign, type CalendarTimemarkerBreakpoint, type CalendarTimemarkerProps, type CalendarTimeslotState, type CalendarTimeslotType, type CalendarView, CalendarViewDropdown, type CalendarViewDropdownProps, type CalendarViewOption, CardHeader, type CardHeaderProps, CarouselArrow, type CarouselArrowDirection, type CarouselArrowProps, type CarouselArrowSize, CarouselImage, type CarouselImageProps, Change, type ChangeProps, type ChangeTrend, type ChangeType, ChartLegend, type ChartLegendItem, type ChartLegendPosition, type ChartLegendProps, ChartMarker, type ChartMarkerLine, type ChartMarkerProps, ChartMini, type ChartMiniDatum, type ChartMiniProps, type ChartMiniTrend, type ChartSeries, type ChartStyle, ChartTooltip, type ChartTooltipPayloadItem, type ChartTooltipProps, type CheckControlSize, Checkbox, type CheckboxProps, CodeSnippet, type CodeSnippetProps, CodeSnippetTabs, type CodeSnippetTabsProps, ColorBadge, type ColorBadgeProps, CommandBar, CommandBarFooter, type CommandBarFooterHint, type CommandBarFooterProps, CommandBarMenuSection, type CommandBarMenuSectionProps, CommandBarNavigationIcon, type CommandBarNavigationIconProps, type CommandBarProps, CommandDropdownMenuItem, type CommandDropdownMenuItemProps, CommandInput, type CommandInputProps, CommandShortcut, type CommandShortcutProps, ContentDivider, type ContentDividerProps, type ContentDividerStyle, type ContentDividerType, ContentFeatureText, type ContentFeatureTextProps, type ContentFeatureTextSize, ContentHeading, type ContentHeadingProps, type ContentHeadingSize, ContentParagraph, type ContentParagraphProps, type ContentParagraphSize, ContentQuote, type ContentQuoteAlign, type ContentQuoteProps, type ContentQuoteSize, ContentRule, type ContentRuleProps, type ContentRuleSize, ContextMenu, type ContextMenuProps, type ContextMenuState, DatePickerCell, type DatePickerCellProps, type DatePickerCellType, DatePickerListItem, type DatePickerListItemProps, DatePickerMenu, type DatePickerMenuProps, DropdownAccountListItem, type DropdownAccountListItemProps, DropdownMenuFooter, type DropdownMenuFooterProps, type DropdownMenuFooterType, DropdownMenuHeader, type DropdownMenuHeaderProps, type DropdownMenuHeaderType, DropdownMenuItemInsetIcon, type DropdownMenuItemInsetIconProps, type DropdownMenuItemInsetIconType, DropdownMenuListItem, type DropdownMenuListItemProps, EmptyState, type EmptyStateProps, type EmptyStateSize, FeaturedIcon, type FeaturedIconColor, type FeaturedIconProps, type FeaturedIconSize, type FeaturedIconTheme, FeedItemBase, type FeedItemBaseProps, type FeedItemSize, FileUpload, FileUploadBase, type FileUploadBaseProps, FileUploadItemBase, type FileUploadItemBaseProps, type FileUploadItemIconType, type FileUploadItemStatus, type FileUploadItemType, type FileUploadProps, FilterBar, type FilterBarProps, FilterTabs, type FilterTabsProps, FiltersDropdownMenu, type FiltersDropdownMenuProps, FiltersSlideoutMenu, type FiltersSlideoutMenuProps, type HeaderNavItem, HeaderNavigation, type HeaderNavigationProps, type HeaderNavigationType, HelpIcon, type HelpIconProps, InputField, type InputFieldProps, type InputFieldSize, type InputFieldType, LeadingInputField, type LeadingInputFieldProps, LineAndBarChart, type LineAndBarChartProps, LinkMessage, type LinkMessageProps, type LinkMessageType, LoadingIndicator, type LoadingIndicatorProps, type LoadingIndicatorSize, type LoadingIndicatorStyle, MediaMessage, type MediaMessageProps, type MediaMessageType, MegaInputFieldBase, type MegaInputFieldBaseProps, type MegaInputFieldBaseSize, Message, MessageAction, MessageActionButton, type MessageActionButtonProps, MessageActionPanel, type MessageActionPanelProps, type MessageActionProps, type MessageActionType, type MessageBubbleTone, type MessageProps, MessageReaction, type MessageReactionProps, type MessageStatus, MessageStatusIcon, type MessageStatusIconProps, type MessageType, MetricItem, type MetricItemProps, Modal, ModalActions, type ModalActionsProps, type ModalActionsType, ModalHeader, type ModalHeaderProps, type ModalHeaderType, type ModalProps, type ModalSize, ModernBadge, type ModernBadgeProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, NavAccountCard, type NavAccountCardBreakpoint, NavAccountCardMenuItem, type NavAccountCardMenuItemProps, type NavAccountCardMenuItemType, type NavAccountCardProps, type NavAccountCardVariant, NavButton, type NavButtonProps, NavFeaturedCard, type NavFeaturedCardProps, NavItemBase, type NavItemBaseProps, NavItemDropdownBase, type NavItemDropdownBaseProps, NavMenuButton, type NavMenuButtonProps, Notification, type NotificationProps, type NotificationVariant, NumberInput, type NumberInputLayout, type NumberInputProps, PageHeader, type PageHeaderProps, type PageHeaderStyle, Pagination, PaginationButtonGroupBase, type PaginationButtonGroupBaseProps, type PaginationButtonGroupType, PaginationCards, type PaginationCardsProps, type PaginationCardsVariant, PaginationDotGroup, type PaginationDotGroupProps, PaginationDotIndicator, type PaginationDotIndicatorProps, type PaginationDotSize, type PaginationDotVariant, PaginationNumberBase, type PaginationNumberBaseProps, type PaginationNumberShape, type PaginationProps, type PaginationType, PieChart, type PieChartProps, type PieChartSize, type PieSlice, PillBadge, type PillBadgeProps, ProgressBar, type ProgressBarLabel, type ProgressBarProps, ProgressCircle, type ProgressCircleProps, type ProgressCircleShape, type ProgressCircleSize, RadarChart, type RadarChartProps, type RadarLegendPosition, Radio, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupItemSize, type RadioGroupItemType, type RadioGroupProps, type RadioProps, SectionFooter, type SectionFooterProps, type SectionFooterType, SectionHeader, type SectionHeaderProps, SectionLabel, type SectionLabelProps, type SectionLabelSize, Select, SelectMenuItem, type SelectMenuItemProps, type SelectMenuItemSize, type SelectProps, type SelectSize, type SelectType, SidebarNavigation, type SidebarNavigationProps, type SidebarNavigationType, SlideOutMenuHeader, type SlideOutMenuHeaderProps, SlideoutMenu, type SlideoutMenuProps, type SlideoutMenuSide, type SlideoutMenuSize, Slider, type SliderLabel, type SliderProps, type SocialBrand, SocialButton, type SocialButtonProps, type SocialButtonSize, type SocialButtonTheme, StatusIcon, type StatusIconProps, type StatusIconType, StepBase, type StepBaseProps, StepIconBase, type StepIconBaseProps, type StepIconSize, type StepIconType, type StepOrientation, type StepStatus, TabButtonBase, type TabButtonBaseProps, type TabButtonSize, type TabButtonType, type TabItem, TableCell, type TableCellProps, type TableCellSize, TableHeaderCell, type TableHeaderCellProps, type TableHeaderCellSize, TableHeaderLabel, type TableHeaderLabelArrow, type TableHeaderLabelProps, Tabs, type TabsOrientation, type TabsProps, Tag, type TagProps, type TagSize, TagsInputField, type TagsInputFieldProps, type TagsInputVariant, TextEditorToolbar, TextEditorToolbarDivider, type TextEditorToolbarProps, TextEditorTooltip, type TextEditorTooltipProps, TextareaInputField, type TextareaInputFieldProps, Toggle, type ToggleProps, type ToggleSize, type ToggleType, Tooltip, type TooltipArrow, type TooltipProps, TrailingInputField, type TrailingInputFieldProps, type TreeNode, TreeView, TreeViewConnector, type TreeViewConnectorProps, type TreeViewConnectorSize, type TreeViewConnectorType, TreeViewItem, type TreeViewItemProps, type TreeViewItemSize, type TreeViewProps, type UseContextMenuReturn, type VerificationCodeDigits, VerificationCodeInput, type VerificationCodeInputProps, type VerificationCodeSize, index as illustrations, useContextMenu };
package/dist/index.js CHANGED
@@ -6096,6 +6096,97 @@ function ButtonUtility({
6096
6096
  ) : null
6097
6097
  ] });
6098
6098
  }
6099
+ var dotClasses = {
6100
+ neutral: "bg-utility-neutral-500",
6101
+ brand: "bg-utility-brand-500",
6102
+ emerald: "bg-utility-emerald-500",
6103
+ blue: "bg-utility-blue-500",
6104
+ indigo: "bg-utility-indigo-500",
6105
+ purple: "bg-utility-purple-500",
6106
+ pink: "bg-utility-pink-500",
6107
+ orange: "bg-utility-orange-500",
6108
+ amber: "bg-utility-amber-500"
6109
+ };
6110
+ var filledClasses = {
6111
+ neutral: "bg-utility-neutral-50 border-utility-neutral-200 text-utility-neutral-700",
6112
+ brand: "bg-utility-brand-50 border-utility-brand-200 text-utility-brand-700",
6113
+ emerald: "bg-utility-emerald-50 border-utility-emerald-200 text-utility-emerald-700",
6114
+ blue: "bg-utility-blue-50 border-utility-blue-200 text-utility-blue-700",
6115
+ indigo: "bg-utility-indigo-50 border-utility-indigo-200 text-utility-indigo-700",
6116
+ purple: "bg-utility-purple-50 border-utility-purple-200 text-utility-purple-700",
6117
+ pink: "bg-utility-pink-50 border-utility-pink-200 text-utility-pink-700",
6118
+ orange: "bg-utility-orange-50 border-utility-orange-200 text-utility-orange-700",
6119
+ amber: "bg-utility-amber-50 border-utility-amber-200 text-utility-amber-700"
6120
+ };
6121
+ var filledHoverClasses = {
6122
+ neutral: "bg-utility-neutral-100",
6123
+ brand: "bg-utility-brand-100",
6124
+ emerald: "bg-utility-emerald-100",
6125
+ blue: "bg-utility-blue-100",
6126
+ indigo: "bg-utility-indigo-100",
6127
+ purple: "bg-utility-purple-100",
6128
+ pink: "bg-utility-pink-100",
6129
+ orange: "bg-utility-orange-100",
6130
+ amber: "bg-utility-amber-100"
6131
+ };
6132
+ var timeClasses = {
6133
+ neutral: "text-utility-neutral-600",
6134
+ brand: "text-utility-brand-600",
6135
+ emerald: "text-utility-emerald-600",
6136
+ blue: "text-utility-blue-600",
6137
+ indigo: "text-utility-indigo-600",
6138
+ purple: "text-utility-purple-600",
6139
+ pink: "text-utility-pink-600",
6140
+ orange: "text-utility-orange-600",
6141
+ amber: "text-utility-amber-600"
6142
+ };
6143
+ function CalendarEvent({
6144
+ title,
6145
+ time: time2,
6146
+ color: color2 = "neutral",
6147
+ filled = false,
6148
+ breakpoint = "desktop",
6149
+ state = "default",
6150
+ className
6151
+ }) {
6152
+ if (breakpoint === "mobile") {
6153
+ return /* @__PURE__ */ jsx(
6154
+ "span",
6155
+ {
6156
+ className: clsx_default("inline-block size-2 rounded-full", dotClasses[color2], className),
6157
+ role: "img",
6158
+ "aria-label": time2 ? `${title}, ${time2}` : title
6159
+ }
6160
+ );
6161
+ }
6162
+ return /* @__PURE__ */ jsxs(
6163
+ "div",
6164
+ {
6165
+ className: clsx_default(
6166
+ "flex w-full items-center gap-md rounded-sm border px-md py-xs font-body text-xs",
6167
+ filled ? clsx_default(filledClasses[color2], state === "hover" && filledHoverClasses[color2]) : clsx_default(
6168
+ "border-border-secondary bg-bg-primary text-text-secondary",
6169
+ state === "hover" && "bg-bg-primary-hover"
6170
+ ),
6171
+ className
6172
+ ),
6173
+ children: [
6174
+ /* @__PURE__ */ jsx("span", { className: clsx_default("size-2 shrink-0 rounded-full", dotClasses[color2]), "aria-hidden": true }),
6175
+ /* @__PURE__ */ jsx("span", { className: "truncate font-semibold", children: title }),
6176
+ time2 ? /* @__PURE__ */ jsx(
6177
+ "span",
6178
+ {
6179
+ className: clsx_default(
6180
+ "ml-auto shrink-0 font-normal",
6181
+ filled ? timeClasses[color2] : "text-text-tertiary"
6182
+ ),
6183
+ children: time2
6184
+ }
6185
+ ) : null
6186
+ ]
6187
+ }
6188
+ );
6189
+ }
6099
6190
  function PlusIcon2() {
6100
6191
  return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsx(
6101
6192
  "path",
@@ -6110,19 +6201,26 @@ function PlusIcon2() {
6110
6201
  }
6111
6202
  function CalendarCell({
6112
6203
  date: date2,
6204
+ events,
6113
6205
  children,
6114
6206
  moreCount,
6115
- muted = false,
6207
+ isToday,
6208
+ isSelected = false,
6209
+ isDisabled,
6116
6210
  current = false,
6211
+ muted = false,
6212
+ breakpoint = "desktop",
6117
6213
  onAdd,
6118
6214
  className
6119
6215
  }) {
6216
+ const today = isToday ?? current;
6217
+ const disabled = isDisabled ?? muted;
6120
6218
  return /* @__PURE__ */ jsxs(
6121
6219
  "div",
6122
6220
  {
6123
6221
  className: clsx_default(
6124
6222
  "group relative flex min-h-[120px] flex-col gap-xs bg-bg-primary p-md font-body",
6125
- muted && "bg-bg-secondary",
6223
+ disabled && "bg-bg-secondary",
6126
6224
  className
6127
6225
  ),
6128
6226
  children: [
@@ -6130,12 +6228,31 @@ function CalendarCell({
6130
6228
  "span",
6131
6229
  {
6132
6230
  className: clsx_default(
6133
- "text-xs font-semibold",
6134
- current ? "text-text-brand-secondary" : muted ? "text-text-quaternary" : "text-text-secondary"
6231
+ "flex size-6 items-center justify-center text-xs font-semibold",
6232
+ today ? "rounded-full bg-bg-brand-solid text-white" : isSelected ? "rounded-full bg-bg-secondary text-text-secondary" : disabled ? "text-text-quaternary" : "text-text-secondary"
6135
6233
  ),
6136
6234
  children: date2
6137
6235
  }
6138
6236
  ),
6237
+ events && events.length > 0 ? /* @__PURE__ */ jsx(
6238
+ "div",
6239
+ {
6240
+ className: clsx_default(
6241
+ breakpoint === "mobile" ? "flex flex-row flex-wrap gap-xxs" : "flex flex-col gap-xs"
6242
+ ),
6243
+ children: events.map((ev, i) => /* @__PURE__ */ jsx(
6244
+ CalendarEvent,
6245
+ {
6246
+ title: ev.title,
6247
+ time: ev.time,
6248
+ color: ev.color,
6249
+ filled: true,
6250
+ breakpoint
6251
+ },
6252
+ i
6253
+ ))
6254
+ }
6255
+ ) : null,
6139
6256
  children ? /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-xs", children }) : null,
6140
6257
  moreCount && moreCount > 0 ? /* @__PURE__ */ jsxs("span", { className: "text-xs font-medium text-text-tertiary", children: [
6141
6258
  moreCount,
@@ -6155,6 +6272,13 @@ function CalendarCell({
6155
6272
  }
6156
6273
  );
6157
6274
  }
6275
+ var heightClasses = {
6276
+ empty: "h-[48px]",
6277
+ "30min": "h-[48px]",
6278
+ "60min": "h-[96px]",
6279
+ "90min": "h-[144px]",
6280
+ "120min": "h-[192px]"
6281
+ };
6158
6282
  function PlusIcon3() {
6159
6283
  return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 20 20", fill: "none", className: "size-4", "aria-hidden": true, children: /* @__PURE__ */ jsx(
6160
6284
  "path",
@@ -6168,6 +6292,8 @@ function PlusIcon3() {
6168
6292
  ) });
6169
6293
  }
6170
6294
  function CalendarCellDayWeekView({
6295
+ type,
6296
+ state = "default",
6171
6297
  children,
6172
6298
  onAdd,
6173
6299
  muted = false,
@@ -6177,8 +6303,9 @@ function CalendarCellDayWeekView({
6177
6303
  "div",
6178
6304
  {
6179
6305
  className: clsx_default(
6180
- "group relative min-h-[64px] border-b border-border-secondary p-xs font-body",
6181
- muted ? "bg-bg-secondary" : "bg-bg-primary",
6306
+ "group relative border-b border-border-secondary p-xs font-body transition-colors hover:bg-bg-secondary",
6307
+ type ? heightClasses[type] : "min-h-[64px]",
6308
+ muted ? "bg-bg-secondary" : state === "hover" ? "bg-bg-secondary" : "bg-bg-primary",
6182
6309
  className
6183
6310
  ),
6184
6311
  children: [
@@ -6200,16 +6327,20 @@ function CalendarCellDayWeekView({
6200
6327
  function CalendarColumnHeader({
6201
6328
  weekday,
6202
6329
  date: date2,
6330
+ type,
6203
6331
  current = false,
6204
6332
  orientation = "vertical",
6333
+ breakpoint = "desktop",
6205
6334
  className
6206
6335
  }) {
6336
+ const state = type ?? (current ? "selected" : "default");
6207
6337
  return /* @__PURE__ */ jsxs(
6208
6338
  "div",
6209
6339
  {
6210
6340
  className: clsx_default(
6211
6341
  "flex items-center justify-center gap-md py-md font-body",
6212
6342
  orientation === "vertical" && "flex-col gap-xs",
6343
+ breakpoint === "desktop" && "w-[160px]",
6213
6344
  className
6214
6345
  ),
6215
6346
  children: [
@@ -6219,9 +6350,11 @@ function CalendarColumnHeader({
6219
6350
  {
6220
6351
  className: clsx_default(
6221
6352
  "flex items-center justify-center text-xs font-semibold",
6222
- current ? "size-6 rounded-full bg-bg-brand-solid text-white" : "text-text-secondary"
6353
+ state === "selected" && "size-6 rounded-full bg-bg-brand-solid text-white",
6354
+ state === "today" && "border-b-2 border-border-brand pb-xxs text-text-brand-secondary",
6355
+ state === "default" && "text-text-secondary"
6223
6356
  ),
6224
- "aria-current": current ? "date" : void 0,
6357
+ "aria-current": state !== "default" ? "date" : void 0,
6225
6358
  children: date2
6226
6359
  }
6227
6360
  )
@@ -6244,51 +6377,6 @@ function CalendarDateIcon({ month, day, className }) {
6244
6377
  }
6245
6378
  );
6246
6379
  }
6247
- var dotClasses = {
6248
- neutral: "bg-utility-neutral-500",
6249
- brand: "bg-utility-brand-500",
6250
- emerald: "bg-utility-emerald-500",
6251
- blue: "bg-utility-blue-500",
6252
- indigo: "bg-utility-indigo-500",
6253
- purple: "bg-utility-purple-500",
6254
- pink: "bg-utility-pink-500",
6255
- orange: "bg-utility-orange-500",
6256
- amber: "bg-utility-amber-500"
6257
- };
6258
- var filledClasses = {
6259
- neutral: "bg-utility-neutral-100 text-utility-neutral-700",
6260
- brand: "bg-utility-brand-100 text-utility-brand-700",
6261
- emerald: "bg-utility-emerald-100 text-utility-emerald-700",
6262
- blue: "bg-utility-blue-100 text-utility-blue-700",
6263
- indigo: "bg-utility-indigo-100 text-utility-indigo-700",
6264
- purple: "bg-utility-purple-100 text-utility-purple-700",
6265
- pink: "bg-utility-pink-100 text-utility-pink-700",
6266
- orange: "bg-utility-orange-100 text-utility-orange-700",
6267
- amber: "bg-utility-amber-100 text-utility-amber-700"
6268
- };
6269
- function CalendarEvent({
6270
- title,
6271
- time: time2,
6272
- color: color2 = "neutral",
6273
- filled = false,
6274
- className
6275
- }) {
6276
- return /* @__PURE__ */ jsxs(
6277
- "div",
6278
- {
6279
- className: clsx_default(
6280
- "flex w-full items-center gap-md rounded-sm px-md py-xs font-body text-xs",
6281
- filled ? filledClasses[color2] : "border border-border-secondary bg-bg-primary text-text-secondary",
6282
- className
6283
- ),
6284
- children: [
6285
- /* @__PURE__ */ jsx("span", { className: clsx_default("size-2 shrink-0 rounded-full", dotClasses[color2]), "aria-hidden": true }),
6286
- /* @__PURE__ */ jsx("span", { className: "truncate font-semibold", children: title }),
6287
- time2 ? /* @__PURE__ */ jsx("span", { className: clsx_default("ml-auto shrink-0 font-normal", !filled && "text-text-tertiary"), children: time2 }) : null
6288
- ]
6289
- }
6290
- );
6291
- }
6292
6380
  var accentClasses = {
6293
6381
  neutral: "border-l-utility-neutral-500",
6294
6382
  brand: "border-l-utility-brand-500",
@@ -6355,11 +6443,13 @@ function CalendarEventDayWeekView({
6355
6443
  function CalendarHeader({
6356
6444
  title,
6357
6445
  range: range6,
6446
+ supportingText,
6358
6447
  badge,
6359
6448
  dateIcon,
6360
6449
  actions,
6361
6450
  className
6362
6451
  }) {
6452
+ const subtitle = range6 ?? supportingText;
6363
6453
  return /* @__PURE__ */ jsxs(
6364
6454
  "div",
6365
6455
  {
@@ -6375,7 +6465,7 @@ function CalendarHeader({
6375
6465
  /* @__PURE__ */ jsx("h2", { className: "text-lg font-bold text-text-primary", children: title }),
6376
6466
  badge
6377
6467
  ] }),
6378
- range6 ? /* @__PURE__ */ jsx("p", { className: "text-sm text-text-tertiary", children: range6 }) : null
6468
+ subtitle ? /* @__PURE__ */ jsx("p", { className: "text-sm text-text-tertiary", children: subtitle }) : null
6379
6469
  ] })
6380
6470
  ] }),
6381
6471
  actions ? /* @__PURE__ */ jsx("div", { className: "flex items-center gap-md", children: actions }) : null
@@ -6383,7 +6473,7 @@ function CalendarHeader({
6383
6473
  }
6384
6474
  );
6385
6475
  }
6386
- function CalendarRowLabel({ label, className }) {
6476
+ function CalendarRowLabel({ label, time: time2, className }) {
6387
6477
  return /* @__PURE__ */ jsx(
6388
6478
  "div",
6389
6479
  {
@@ -6391,7 +6481,7 @@ function CalendarRowLabel({ label, className }) {
6391
6481
  "pr-md text-right text-xs font-medium text-text-quaternary font-body",
6392
6482
  className
6393
6483
  ),
6394
- children: label
6484
+ children: time2 ?? label
6395
6485
  }
6396
6486
  );
6397
6487
  }
@@ -6401,15 +6491,17 @@ var Label = ({ time: time2 }) => /* @__PURE__ */ jsx("span", { className: "shrin
6401
6491
  function CalendarTimemarker({
6402
6492
  time: time2,
6403
6493
  align = "left",
6494
+ breakpoint = "desktop",
6404
6495
  className
6405
6496
  }) {
6497
+ const showLabel = breakpoint === "desktop";
6406
6498
  return /* @__PURE__ */ jsx("div", { className: clsx_default("flex w-full items-center gap-xs font-body", className), children: align === "center" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
6407
6499
  /* @__PURE__ */ jsx(Dot, {}),
6408
6500
  /* @__PURE__ */ jsx(Line, {}),
6409
- /* @__PURE__ */ jsx(Label, { time: time2 }),
6501
+ showLabel ? /* @__PURE__ */ jsx(Label, { time: time2 }) : null,
6410
6502
  /* @__PURE__ */ jsx(Line, {})
6411
6503
  ] }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [
6412
- /* @__PURE__ */ jsx(Label, { time: time2 }),
6504
+ showLabel ? /* @__PURE__ */ jsx(Label, { time: time2 }) : null,
6413
6505
  /* @__PURE__ */ jsx(Dot, {}),
6414
6506
  /* @__PURE__ */ jsx(Line, {})
6415
6507
  ] }) });
@@ -6434,10 +6526,19 @@ function Chevron2() {
6434
6526
  function CalendarViewDropdown({
6435
6527
  value,
6436
6528
  onChange,
6529
+ onSelect,
6530
+ open: openProp,
6531
+ onOpenChange,
6437
6532
  options = DEFAULT_OPTIONS,
6438
6533
  className
6439
6534
  }) {
6440
- const [open, setOpen] = useState(false);
6535
+ const [internalOpen, setInternalOpen] = useState(false);
6536
+ const isControlled = openProp !== void 0;
6537
+ const open = isControlled ? openProp : internalOpen;
6538
+ const setOpen = (next) => {
6539
+ if (!isControlled) setInternalOpen(next);
6540
+ onOpenChange?.(next);
6541
+ };
6441
6542
  const selected = options.find((o) => o.value === value) ?? options[0];
6442
6543
  return /* @__PURE__ */ jsxs("div", { className: clsx_default("relative inline-block font-body", className), children: [
6443
6544
  /* @__PURE__ */ jsxs(
@@ -6446,7 +6547,7 @@ function CalendarViewDropdown({
6446
6547
  type: "button",
6447
6548
  "aria-haspopup": "listbox",
6448
6549
  "aria-expanded": open,
6449
- onClick: () => setOpen((v) => !v),
6550
+ onClick: () => setOpen(!open),
6450
6551
  className: "inline-flex items-center gap-md rounded-md border border-border-primary bg-bg-primary px-lg py-md text-sm font-semibold text-text-secondary shadow-skeuomorphic transition-colors hover:bg-bg-primary-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-border-brand focus-visible:ring-offset-2 focus-visible:ring-offset-bg-primary",
6451
6552
  children: [
6452
6553
  selected.label,
@@ -6467,6 +6568,7 @@ function CalendarViewDropdown({
6467
6568
  type: "button",
6468
6569
  onClick: () => {
6469
6570
  onChange?.(opt.value);
6571
+ onSelect?.(opt.value);
6470
6572
  setOpen(false);
6471
6573
  },
6472
6574
  className: "flex w-full items-center gap-md rounded-sm px-md py-xs text-sm font-medium text-text-secondary transition-colors hover:bg-bg-primary-hover",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@borisj74/bv-ds",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "bv-ds — React component library synced from Figma (Untitled UI v8.0), built on Tailwind CSS",
5
5
  "license": "MIT",
6
6
  "type": "module",