@aracreate/arm-ui 3.12.0 → 4.0.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.mts CHANGED
@@ -294,7 +294,7 @@ interface DataTableRowProps {
294
294
  * so `style` carries the grid/flex shape and `children` carries the cells;
295
295
  * this component only owns the classes and interaction/border wiring that
296
296
  * were previously hand-copied into five separate page files. */
297
- declare function DataTableRow({ children, style, showBorder, onActivate, selected, className, "aria-label": ariaLabel, }: DataTableRowProps): React$1.JSX.Element;
297
+ declare function DataTableRow({ children, style, showBorder, onActivate, selected, className, "aria-label": aria_label, }: DataTableRowProps): React$1.JSX.Element;
298
298
 
299
299
  interface MetricCardProps {
300
300
  label: string;
@@ -373,30 +373,30 @@ declare function Pagination({ currentPage, totalPages, onPageChange, siblingCoun
373
373
  * fork). Values must match the app's copy — see README.md's "Files
374
374
  * duplicated from the app". */
375
375
  declare const layout: {
376
- readonly contentMax: "calc(15 * var(--space-9) + var(--space-5))";
377
- readonly accountCardW: "calc(3 * var(--space-9) + var(--space-8))";
378
- readonly accountCardMinH: "calc(2 * var(--space-9) - var(--space-2))";
379
- readonly monthTitleMinW: "calc(3 * var(--space-9) - var(--space-1))";
380
- readonly bigCalendarH: "calc(10 * var(--space-9))";
381
- readonly sidebarColBasis: "calc(4 * var(--space-9) - var(--space-2))";
382
- readonly sidebarColMin: "calc(3 * var(--space-9) + var(--space-6))";
383
- readonly syncColMin: "calc(5 * var(--space-9))";
384
- readonly syncColWide: "calc(7 * var(--space-9) + var(--space-6))";
385
- readonly dialogSm: "calc(6 * var(--space-9) - var(--space-2))";
386
- readonly dialogBody: "calc(5 * var(--space-9) + var(--space-7))";
387
- readonly authFormMax: "calc(6 * var(--space-9) + var(--space-8))";
388
- readonly brandLogoMax: "calc(6 * var(--space-9) + var(--space-8) - var(--space-1))";
389
- readonly connectedAccountCardH: "calc(var(--space-9) - var(--space-1))";
390
- readonly dialogMd: "calc(6 * var(--space-9) + var(--space-6))";
391
- readonly dialogLg: "calc(7 * var(--space-9) - var(--space-1))";
392
- readonly emptyStateMax: "calc(10 * var(--space-9))";
393
- readonly emptyStateCopyMax: "calc(6 * var(--space-9))";
394
- readonly providerChooserMax: "calc(6 * var(--space-9) + var(--space-6))";
395
- readonly auditColTime: "calc(var(--space-9) + var(--space-2))";
396
- readonly auditColAction: "calc(var(--space-9) + var(--space-5) + var(--space-1))";
397
- readonly searchFieldW: "calc(3 * var(--space-9) + var(--space-5) + var(--space-1))";
398
- readonly settingsGridMin: "calc(5 * var(--space-9) + var(--space-5))";
399
- readonly placeholderMd: "calc(6 * var(--space-9) + var(--space-4))";
376
+ readonly content_max: "calc(15 * var(--space-9) + var(--space-5))";
377
+ readonly account_card_w: "calc(3 * var(--space-9) + var(--space-8))";
378
+ readonly account_card_min_h: "calc(2 * var(--space-9) - var(--space-2))";
379
+ readonly month_title_min_w: "calc(3 * var(--space-9) - var(--space-1))";
380
+ readonly big_calendar_h: "calc(10 * var(--space-9))";
381
+ readonly sidebar_col_basis: "calc(4 * var(--space-9) - var(--space-2))";
382
+ readonly sidebar_col_min: "calc(3 * var(--space-9) + var(--space-6))";
383
+ readonly sync_col_min: "calc(5 * var(--space-9))";
384
+ readonly sync_col_wide: "calc(7 * var(--space-9) + var(--space-6))";
385
+ readonly dialog_sm: "calc(6 * var(--space-9) - var(--space-2))";
386
+ readonly dialog_body: "calc(5 * var(--space-9) + var(--space-7))";
387
+ readonly auth_form_max: "calc(6 * var(--space-9) + var(--space-8))";
388
+ readonly brand_logo_max: "calc(6 * var(--space-9) + var(--space-8) - var(--space-1))";
389
+ readonly connected_account_card_h: "calc(var(--space-9) - var(--space-1))";
390
+ readonly dialog_md: "calc(6 * var(--space-9) + var(--space-6))";
391
+ readonly dialog_lg: "calc(7 * var(--space-9) - var(--space-1))";
392
+ readonly empty_state_max: "calc(10 * var(--space-9))";
393
+ readonly empty_state_copy_max: "calc(6 * var(--space-9))";
394
+ readonly provider_chooser_max: "calc(6 * var(--space-9) + var(--space-6))";
395
+ readonly audit_col_time: "calc(var(--space-9) + var(--space-2))";
396
+ readonly audit_col_action: "calc(var(--space-9) + var(--space-5) + var(--space-1))";
397
+ readonly search_field_w: "calc(3 * var(--space-9) + var(--space-5) + var(--space-1))";
398
+ readonly settings_grid_min: "calc(5 * var(--space-9) + var(--space-5))";
399
+ readonly placeholder_md: "calc(6 * var(--space-9) + var(--space-4))";
400
400
  };
401
401
 
402
402
  /**
@@ -405,19 +405,19 @@ declare const layout: {
405
405
  * Headings used to pick a Radix `size` per instance, so the same `<h1>`
406
406
  * rendered at 14.4px in the shell, 16.2px in a remote and 18px on Home, and
407
407
  * an `<h3>` could equal its own `<h1>` or the 12.6px body copy. The level now
408
- * decides the size: pass `size={headingSize[level]}` alongside `as={level}`.
408
+ * decides the size: pass `size={heading_size[level]}` alongside `as={level}`.
409
409
  *
410
410
  * Values are Radix font-size steps, so they follow the Theme's `scaling`. At
411
411
  * the platform's 90% that is h1 21.6px, h2 18px, h3 16.2px, h4 14.4px — every
412
412
  * level one step apart and above body text (step 2, 12.6px).
413
413
  */
414
- declare const headingSize: {
414
+ declare const heading_size: {
415
415
  readonly h1: "6";
416
416
  readonly h2: "5";
417
417
  readonly h3: "4";
418
418
  readonly h4: "3";
419
419
  };
420
- type HeadingLevel = keyof typeof headingSize;
420
+ type HeadingLevel = keyof typeof heading_size;
421
421
 
422
422
  /** Duplicated from the app's src/lib/mock.ts Role type (not imported) so
423
423
  * this package has no dependency back into the app. Keep in sync if the
@@ -438,12 +438,13 @@ interface NavItem {
438
438
  root?: string;
439
439
  badge?: string;
440
440
  bundle?: boolean;
441
+ drillable?: boolean;
441
442
  }
442
443
  interface NavGroup {
443
444
  id: string;
444
445
  label: string;
445
446
  items: NavItem[];
446
- defaultCollapsed?: boolean;
447
+ default_collapsed?: boolean;
447
448
  }
448
449
  type NavEntry = NavItem | NavGroup;
449
450
  interface SidebarUser {
@@ -452,7 +453,7 @@ interface SidebarUser {
452
453
  /** Profile photo URL. Omitted or unloadable falls back to the derived
453
454
  * initials, so a consumer with no photo on the profile payload passes
454
455
  * nothing and keeps the previous appearance. */
455
- avatarSrc?: string;
456
+ avatar_src?: string;
456
457
  }
457
458
  interface SidebarDevRole {
458
459
  role: Role;
@@ -475,9 +476,6 @@ interface SidebarProps {
475
476
  /** Currently signed-in user, or null/undefined if not authenticated. */
476
477
  user?: SidebarUser | null;
477
478
  onSignOut: () => void;
478
- /** Calendar section only drills in once the app has at least one connected
479
- * account — pass false to keep the global menu (e.g. no accounts yet). */
480
- hasCalendarAccounts?: boolean;
481
479
  brandLogoExpandedSrc?: string;
482
480
  brandLogoCollapsedSrc?: string;
483
481
  /** Where the account menu's Help entry opens, in a new tab. Omit to leave
@@ -490,7 +488,7 @@ interface SidebarProps {
490
488
  onDevRoleSelect?: (email: string) => void;
491
489
  showDevRoles?: boolean;
492
490
  }
493
- declare function Sidebar({ collapsed, onToggle, onClose, items, persistKey, utilityHrefs: utilityHrefsProp, user, onSignOut, hasCalendarAccounts, brandLogoExpandedSrc, brandLogoCollapsedSrc, helpHref, devRoles, onDevRoleSelect, showDevRoles, }: SidebarProps): React$1.JSX.Element;
491
+ declare function Sidebar({ collapsed, onToggle, onClose, items, persistKey, utilityHrefs: utility_hrefs_prop, user, onSignOut, brandLogoExpandedSrc, brandLogoCollapsedSrc, helpHref, devRoles, onDevRoleSelect, showDevRoles, }: SidebarProps): React$1.JSX.Element;
494
492
 
495
493
  /**
496
494
  * Single source of truth for status / role / activity / audit colors.
@@ -554,7 +552,7 @@ declare const AUDIT_ACTION_META: Record<AuditAction, {
554
552
  }>;
555
553
  /** Falls back rather than throwing: the backend can log an action this build
556
554
  * has never heard of, and an unknown row must still render. */
557
- declare function auditActionMeta(action: string): {
555
+ declare function audit_action_meta(action: string): {
558
556
  label: string;
559
557
  tag: string;
560
558
  badge: "amber" | "gray" | "yellow" | "red" | "green";
@@ -621,16 +619,14 @@ type TopbarTitleRow = [
621
619
  page: string,
622
620
  exact?: boolean
623
621
  ];
624
- type TopbarAdminTitleRow = [prefix: string, page: string];
625
622
  interface TopbarProps {
626
623
  onSearchOpen: () => void;
627
624
  onMenuOpen: () => void;
628
625
  showMenu: boolean;
629
- /** Override the breadcrumb route tables — defaults to arm-ui's own routes. */
626
+ /** The breadcrumb route table — defaults to the shell's own pages. */
630
627
  titles?: TopbarTitleRow[];
631
- adminTitles?: TopbarAdminTitleRow[];
632
628
  }
633
- declare function Topbar({ onSearchOpen, onMenuOpen, showMenu, titles, adminTitles, }: TopbarProps): React$1.JSX.Element;
629
+ declare function Topbar({ onSearchOpen, onMenuOpen, showMenu, titles, }: TopbarProps): React$1.JSX.Element;
634
630
 
635
631
  type SearchResultType = "app" | "people" | "page";
636
632
  interface SearchResult {
@@ -650,48 +646,48 @@ interface SearchOverlayProps {
650
646
  title?: string;
651
647
  placeholder?: string;
652
648
  }
653
- declare function SearchOverlay({ open, onClose, results: resultPool, onSelectResult, title, placeholder, }: SearchOverlayProps): React$1.JSX.Element;
649
+ declare function SearchOverlay({ open, onClose, results: result_pool, onSelectResult, title, placeholder, }: SearchOverlayProps): React$1.JSX.Element;
654
650
 
655
651
  /** Duplicated from the app's src/lib/calendar-mock.ts (not imported) so this
656
652
  * package has no dependency back into the app. Keep in sync if the app's
657
653
  * calendar data model changes. */
658
654
  interface CalendarAccountCalendar {
659
655
  id: string;
660
- accountId: string;
656
+ account_id: string;
661
657
  name: string;
662
- isPrimary: boolean;
658
+ is_primary: boolean;
663
659
  /** Drives the import dialog's color dot, the legend, and month/week dots. */
664
- colorToken: string;
660
+ color_token: string;
665
661
  }
666
662
  interface CalendarAccount {
667
663
  id: string;
668
664
  provider: CalendarProvider;
669
665
  email: string;
670
- displayName: string;
666
+ display_name: string;
671
667
  initials: string;
672
- authStatus: "active" | "reauth" | "failed";
668
+ auth_status: "active" | "reauth" | "failed";
673
669
  calendars: CalendarAccountCalendar[];
674
670
  }
675
- declare function findCalendar(accounts: CalendarAccount[], calendarId: string): {
671
+ declare function find_calendar(accounts: CalendarAccount[], calendar_id: string): {
676
672
  account: CalendarAccount;
677
673
  calendar: CalendarAccountCalendar;
678
674
  } | undefined;
679
675
  interface AvailabilityBlock {
680
676
  id: string;
681
- calendarId: string;
682
- accountId: string;
677
+ calendar_id: string;
678
+ account_id: string;
683
679
  /** 0 = Monday … 6 = Sunday (week-relative) */
684
680
  day: number;
685
- startHour: number;
686
- startMinute: number;
687
- endHour: number;
688
- endMinute: number;
681
+ start_hour: number;
682
+ start_minute: number;
683
+ end_hour: number;
684
+ end_minute: number;
689
685
  title: string;
690
686
  description?: string;
691
687
  location?: string;
692
688
  /** Marked private at the source — always renders as the sync's tag alone,
693
689
  * regardless of that sync's field toggles. */
694
- isPrivate: boolean;
690
+ is_private: boolean;
695
691
  }
696
692
  interface DatedAvailabilityBlock extends AvailabilityBlock {
697
693
  date: Date;
@@ -699,23 +695,23 @@ interface DatedAvailabilityBlock extends AvailabilityBlock {
699
695
  interface ResolvedBlock extends DatedAvailabilityBlock {
700
696
  /** True when this occurrence is showing on a calendar it wasn't natively
701
697
  * created on (i.e. merged in via a sync), as opposed to its home calendar. */
702
- isMerged: boolean;
698
+ is_merged: boolean;
703
699
  }
704
700
  type SyncStatus = "synced" | "syncing" | "error";
705
701
  interface CalendarSync {
706
702
  id: string;
707
703
  name: string;
708
- targetCalendarId: string;
709
- sourceCalendarIds: string[];
704
+ target_calendar_id: string;
705
+ source_calendar_ids: string[];
710
706
  status: SyncStatus;
711
- lastSyncedLabel?: string;
712
- showTitle: boolean;
713
- showDescription: boolean;
714
- showLocation: boolean;
707
+ last_synced_label?: string;
708
+ show_title: boolean;
709
+ show_description: boolean;
710
+ show_location: boolean;
715
711
  /** The sync's tag — the label its events carry on the target calendar.
716
712
  * Optional so existing callers keep compiling; treat an absent value as the
717
713
  * default, "Busy". */
718
- tagLabel?: string;
714
+ tag_label?: string;
719
715
  }
720
716
 
721
717
  interface CalendarDayHeaderProps extends HeaderProps {
@@ -986,14 +982,14 @@ interface UseConnectAccountOptions {
986
982
  * ImportCalendarsDialog opens with that account's calendars → confirming
987
983
  * adds the account and calls `onImported`. */
988
984
  declare function useConnectAccount({ accounts, connectProvider, onAccountAdded, onImported }: UseConnectAccountOptions): {
989
- connectingProvider: CalendarProvider | null;
990
- pendingAccount: CalendarAccount | null;
991
- failedProvider: CalendarProvider | null;
985
+ connecting_provider: CalendarProvider | null;
986
+ pending_account: CalendarAccount | null;
987
+ failed_provider: CalendarProvider | null;
992
988
  exhausted: boolean;
993
989
  connect: (provider: CalendarProvider) => void;
994
- confirmImport: (selectedCalendarIds: string[]) => void;
995
- cancelImport: () => void;
996
- dismissError: () => void;
990
+ confirm_import: (selected_calendar_ids: string[]) => void;
991
+ cancel_import: () => void;
992
+ dismiss_error: () => void;
997
993
  };
998
994
 
999
995
  interface AddAccountMenuProps extends UseConnectAccountOptions {
@@ -1250,7 +1246,7 @@ declare const theme: {
1250
1246
  readonly focus: "focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-background-primary focus-visible:ring-2";
1251
1247
  readonly disabled: "disabled:opacity-60 disabled:cursor-not-allowed disabled:pointer-events-none";
1252
1248
  readonly interactive: "cursor-pointer select-none";
1253
- readonly highContrast: "forced-colors:border forced-colors:border-solid";
1249
+ readonly high_contrast: "forced-colors:border forced-colors:border-solid";
1254
1250
  };
1255
1251
  readonly sizes: {
1256
1252
  readonly xs: {
@@ -1367,24 +1363,24 @@ declare const theme: {
1367
1363
  readonly linear: "ease-linear";
1368
1364
  readonly in: "ease-in";
1369
1365
  readonly out: "ease-out";
1370
- readonly inOut: "ease-in-out";
1366
+ readonly in_out: "ease-in-out";
1371
1367
  };
1372
- readonly fadeIn: "animate-in fade-in";
1373
- readonly fadeOut: "animate-out fade-out";
1374
- readonly slideIn: "animate-in slide-in-from-bottom-2";
1375
- readonly slideOut: "animate-out slide-out-to-bottom-2";
1376
- readonly scaleIn: "animate-in zoom-in-95";
1377
- readonly scaleOut: "animate-out zoom-out-95";
1368
+ readonly fade_in: "animate-in fade-in";
1369
+ readonly fade_out: "animate-out fade-out";
1370
+ readonly slide_in: "animate-in slide-in-from-bottom-2";
1371
+ readonly slide_out: "animate-out slide-out-to-bottom-2";
1372
+ readonly scale_in: "animate-in zoom-in-95";
1373
+ readonly scale_out: "animate-out zoom-out-95";
1378
1374
  };
1379
1375
  readonly accessibility: {
1380
- readonly srOnly: "sr-only";
1381
- readonly focusTrap: "focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2";
1382
- readonly highContrast: "forced-colors:border forced-colors:border-solid";
1383
- readonly reducedMotion: "motion-reduce:transition-none motion-reduce:animate-none";
1384
- readonly touchTarget: "min-h-11 min-w-11";
1376
+ readonly sr_only: "sr-only";
1377
+ readonly focus_trap: "focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2";
1378
+ readonly high_contrast: "forced-colors:border forced-colors:border-solid";
1379
+ readonly reduced_motion: "motion-reduce:transition-none motion-reduce:animate-none";
1380
+ readonly touch_target: "min-h-11 min-w-11";
1385
1381
  };
1386
1382
  };
1387
- declare const getColor: (colorName: keyof typeof colors, shade?: keyof typeof colors.primary | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12) => string;
1383
+ declare const get_color: (color_name: keyof typeof colors, shade?: keyof typeof colors.primary | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12) => string;
1388
1384
  type ThemeSize = keyof typeof theme.sizes;
1389
1385
  type ThemeVariant = keyof typeof theme.variants;
1390
1386
  type ThemeVariantStyle = keyof typeof theme.variants.primary;
@@ -1525,50 +1521,50 @@ interface AccessibilityProps {
1525
1521
  }
1526
1522
 
1527
1523
  declare function cn(...inputs: ClassValue[]): string;
1528
- declare function getVariantStyles(variant: ThemeVariant, style?: ThemeVariantStyle): string;
1529
- declare function getSizeStyles(size: ThemeSize): string;
1530
- declare function getBaseStyles(): string;
1531
- declare function getInteractiveStyles(): string;
1532
- declare function getAccessibilityStyles(options?: {
1533
- focusVisible?: boolean;
1534
- highContrast?: boolean;
1535
- reducedMotion?: boolean;
1524
+ declare function get_variant_styles(variant: ThemeVariant, style?: ThemeVariantStyle): string;
1525
+ declare function get_size_styles(size: ThemeSize): string;
1526
+ declare function get_base_styles(): string;
1527
+ declare function get_interactive_styles(): string;
1528
+ declare function get_accessibility_styles(options?: {
1529
+ focus_visible?: boolean;
1530
+ high_contrast?: boolean;
1531
+ reduced_motion?: boolean;
1536
1532
  }): string;
1537
- declare function getResponsiveClasses<T extends string>(value: ResponsiveValue<T>, prefix?: string): string;
1538
- declare function getSpacingClass(spacing: ThemeSpacing, type?: "gap" | "margin" | "padding"): string;
1539
- declare function getRadiusClass(radius: ThemeRadius): string;
1540
- declare function getTypographyClass(typography: keyof typeof theme.typography): string;
1541
- declare function getBgClass(colorName: ThemeColor, shade?: ThemeColorShade): string;
1542
- declare function getTextClass(colorName: ThemeColor, shade?: ThemeColorShade): string;
1543
- declare function getBorderClass(colorName: ThemeColor, shade?: ThemeColorShade): string;
1544
- declare function getHoverBgClass(colorName: ThemeColor, shade?: ThemeColorShade): string;
1545
- declare function getHoverTextClass(colorName: ThemeColor, shade?: ThemeColorShade): string;
1546
- declare function getFocusRingClass(colorName: ThemeColor, shade?: ThemeColorShade): string;
1547
- declare function getAnimationClass(animation: keyof typeof theme.animations): string;
1548
- declare function createCompoundVariants<T>(base: string, variants: Record<string, Record<string, string>>, compoundVariants?: Array<{
1533
+ declare function get_responsive_classes<T extends string>(value: ResponsiveValue<T>, prefix?: string): string;
1534
+ declare function get_spacing_class(spacing: ThemeSpacing, type?: "gap" | "margin" | "padding"): string;
1535
+ declare function get_radius_class(radius: ThemeRadius): string;
1536
+ declare function get_typography_class(typography: keyof typeof theme.typography): string;
1537
+ declare function get_bg_class(color_name: ThemeColor, shade?: ThemeColorShade): string;
1538
+ declare function get_text_class(color_name: ThemeColor, shade?: ThemeColorShade): string;
1539
+ declare function get_border_class(color_name: ThemeColor, shade?: ThemeColorShade): string;
1540
+ declare function get_hover_bg_class(color_name: ThemeColor, shade?: ThemeColorShade): string;
1541
+ declare function get_hover_text_class(color_name: ThemeColor, shade?: ThemeColorShade): string;
1542
+ declare function get_focus_ring_class(color_name: ThemeColor, shade?: ThemeColorShade): string;
1543
+ declare function get_animation_class(animation: keyof typeof theme.animations): string;
1544
+ declare function create_compound_variants<T>(base: string, variants: Record<string, Record<string, string>>, compound_variants?: Array<{
1549
1545
  conditions: Record<string, string>;
1550
- className: string;
1546
+ class_name: string;
1551
1547
  }>): (props: T) => string;
1552
1548
  interface VariantConfig<T extends Record<string, Record<string, string>>> {
1553
1549
  base?: string;
1554
1550
  variants?: T;
1555
- compoundVariants?: Array<{
1551
+ compound_variants?: Array<{
1556
1552
  conditions: Partial<{
1557
1553
  [K in keyof T]: keyof T[K];
1558
1554
  }>;
1559
- className: string;
1555
+ class_name: string;
1560
1556
  }>;
1561
- defaultVariants?: Partial<{
1557
+ default_variants?: Partial<{
1562
1558
  [K in keyof T]: keyof T[K];
1563
1559
  }>;
1564
1560
  }
1565
- declare function createVariantGenerator<T extends Record<string, Record<string, string>>>(config: VariantConfig<T>): (props: Partial<{ [K in keyof T]: keyof T[K]; }> & {
1566
- className?: string;
1561
+ declare function create_variant_generator<T extends Record<string, Record<string, string>>>(config: VariantConfig<T>): (props: Partial<{ [K in keyof T]: keyof T[K]; }> & {
1562
+ class_name?: string;
1567
1563
  }) => string;
1568
- declare function mergeProps<T extends Record<string, unknown>>(defaultProps: Partial<T>, userProps: T): T;
1569
- declare function conditionalClass(condition: boolean | undefined | null, trueClass: string, falseClass?: string): string;
1570
- declare function getFocusableElements(container: HTMLElement): HTMLElement[];
1571
- declare function handleArrowNavigation(event: KeyboardEvent, elements: HTMLElement[], currentIndex: number, options?: {
1564
+ declare function merge_props<T extends Record<string, unknown>>(default_props: Partial<T>, user_props: T): T;
1565
+ declare function conditional_class(condition: boolean | undefined | null, true_class: string, false_class?: string): string;
1566
+ declare function get_focusable_elements(container: HTMLElement): HTMLElement[];
1567
+ declare function handle_arrow_navigation(event: KeyboardEvent, elements: HTMLElement[], current_index: number, options?: {
1572
1568
  loop?: boolean;
1573
1569
  orientation?: "horizontal" | "vertical" | "both";
1574
1570
  }): number;
@@ -1578,22 +1574,47 @@ interface UIProviderProps extends Omit<Partial<ThemeProps>, "children"> {
1578
1574
  }
1579
1575
  declare function UIProvider({ children, appearance, radius, scaling, accentColor, grayColor, panelBackground, className, }: UIProviderProps): React__default.JSX.Element;
1580
1576
 
1581
- declare function useControllableState<T>({ value, defaultValue, onChange, }: {
1577
+ /** Event type → payload type. Empty here: each app adds its own events by
1578
+ * declaration merging —
1579
+ *
1580
+ * declare module "@aracreate/arm-ui" {
1581
+ * interface ShellEventMap {
1582
+ * "calendar.accounts.changed": null;
1583
+ * }
1584
+ * }
1585
+ */
1586
+ interface ShellEventMap {
1587
+ }
1588
+ type ShellEventType = Extract<keyof ShellEventMap, string>;
1589
+ interface ShellEvents {
1590
+ /** Deliver `payload` to every listener for `type`, in this document and in
1591
+ * every other same-origin document. Throws a TypeError when the type is not
1592
+ * "<app>.<event>" or the payload is not plain JSON. */
1593
+ emit<K extends ShellEventType>(type: K, payload: ShellEventMap[K]): void;
1594
+ /** Listen for `type`; returns a function that stops listening. */
1595
+ on<K extends ShellEventType>(type: K, fn: (payload: ShellEventMap[K]) => void): () => void;
1596
+ }
1597
+ declare const SHELL_CHANNEL = "arm.shell.v1";
1598
+ declare const shell: {
1599
+ events: ShellEvents;
1600
+ };
1601
+
1602
+ declare function useControllableState<T>({ value, default_value, on_change, }: {
1582
1603
  value?: T;
1583
- defaultValue?: T;
1584
- onChange?: (value: T) => void;
1585
- }): readonly [T | undefined, (newValue: T | ((prev: T | undefined) => T)) => void];
1604
+ default_value?: T;
1605
+ on_change?: (value: T) => void;
1606
+ }): readonly [T | undefined, (new_value: T | ((prev: T | undefined) => T)) => void];
1586
1607
 
1587
- declare function useDisclosure(defaultOpen?: boolean): {
1588
- isOpen: boolean;
1608
+ declare function useDisclosure(default_open?: boolean): {
1609
+ is_open: boolean;
1589
1610
  open: () => void;
1590
1611
  close: () => void;
1591
1612
  toggle: () => void;
1592
- onOpen: () => void;
1593
- onClose: () => void;
1594
- onToggle: () => void;
1613
+ on_open: () => void;
1614
+ on_close: () => void;
1615
+ on_toggle: () => void;
1595
1616
  };
1596
1617
 
1597
1618
  declare function useClickOutside<T extends HTMLElement = HTMLElement>(handler: () => void, enabled?: boolean): React$1.RefObject<T | null>;
1598
1619
 
1599
- export { ACTIVITY_META, AUDIT_ACTION_META, AccentCard, type AccentCardProps, AccentHeader, type AccentHeaderProps, type AccessibilityProps, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AccountCalendarsDialog, type AccountCalendarsDialogProps, AccountCard, type AccountCardProps, ActivityRow, type ActivityRowProps, type ActivityType, AddAccountMenu, type AddAccountMenuProps, AppCard, type AppCardProps, type AuditAction, AuthCard, type AvailabilityBlock, type BaseProps, BigCalendarView, type BigCalendarViewProps, BrandPanel, type CalendarAccount, type CalendarAccountCalendar, CalendarDayHeader, type CalendarDayHeaderProps, CalendarMergedView, type CalendarMergedViewProps, CalendarPickList, type CalendarProvider, type CalendarSync, CalendarToolbar, CardFooter, type CardFooterProps, type ComponentState, ConfirmDialog, type ConfirmDialogProps, ConnectProviderList, ConnectProviderRows, type ConnectProviderRowsProps, ConnectedAccountCard, DashboardErrorCard, type DashboardErrorCardProps, DataTableRow, type DataTableRowProps, type DatedAvailabilityBlock, Drawer, DrawerClose, DrawerContent, type DrawerContentProps, DrawerDefaultClose, DrawerDescription, DrawerHeader, DrawerTitle, DrawerTrigger, EmptyCard, type EmptyCardProps, EventBlock, type EventBlockProps, type FormFieldProps, GoogleIcon, type HeadingLevel, IconTile, type IconTileProps, ImportCalendarsDialog, type ImportCalendarsDialogProps, type InteractionStates, METRIC_STATUS_COLOR, MetricCard, type MetricCardProps, type MetricStatus, MicrosoftIcon, MiniMonthPicker, type MiniMonthPickerProps, MonthGrid, type MonthGridProps, type NavEntry, type NavGroup, type NavItem, OnboardingStepDots, OnboardingStepper, OtpInput, OtpVerifyStep, type OtpVerifyStepProps, PROVIDER_LABEL, PROVIDER_META, Pagination, type PaginationProps, PausedBadge, type PausedBadgeProps, type PolymorphicComponent, type PolymorphicComponentProps, ProviderIcon, ROLE_LABELS, ROLE_META, type ResolvedBlock, type ResponsiveValue, type Role, SHELL_HEADER_H, STATUS_META, SearchOverlay, type SearchOverlayProps, type SearchResult, type SearchResultType, Sidebar, type SidebarDevRole, type SidebarProps, type SidebarUser, type Size, Skeleton, type SkeletonProps, SyncDetailsDialog, type SyncDetailsDialogProps, SyncPreviewRail, type SyncStatus, Toast, type ToastProps, Topbar, type TopbarAdminTitleRow, type TopbarProps, type TopbarTitleRow, UIProvider, type UseConnectAccountOptions, type UserStatus, type Variant, type WizardStepMeta, WizardStepper, auditActionMeta, cn, colors, conditionalClass, createCompoundVariants, createVariantGenerator, findCalendar, getAccessibilityStyles, getAnimationClass, getBaseStyles, getBgClass, getBorderClass, getColor, getFocusRingClass, getFocusableElements, getHoverBgClass, getHoverTextClass, getInteractiveStyles, getRadiusClass, getResponsiveClasses, getSizeStyles, getSpacingClass, getTextClass, getTypographyClass, getVariantStyles, handleArrowNavigation, headingSize, layout, mergeProps, theme, useClickOutside, useConnectAccount, useControllableState, useDisclosure };
1620
+ export { ACTIVITY_META, AUDIT_ACTION_META, AccentCard, type AccentCardProps, AccentHeader, type AccentHeaderProps, type AccessibilityProps, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AccountCalendarsDialog, type AccountCalendarsDialogProps, AccountCard, type AccountCardProps, ActivityRow, type ActivityRowProps, type ActivityType, AddAccountMenu, type AddAccountMenuProps, AppCard, type AppCardProps, type AuditAction, AuthCard, type AvailabilityBlock, type BaseProps, BigCalendarView, type BigCalendarViewProps, BrandPanel, type CalendarAccount, type CalendarAccountCalendar, CalendarDayHeader, type CalendarDayHeaderProps, CalendarMergedView, type CalendarMergedViewProps, CalendarPickList, type CalendarProvider, type CalendarSync, CalendarToolbar, CardFooter, type CardFooterProps, type ComponentState, ConfirmDialog, type ConfirmDialogProps, ConnectProviderList, ConnectProviderRows, type ConnectProviderRowsProps, ConnectedAccountCard, DashboardErrorCard, type DashboardErrorCardProps, DataTableRow, type DataTableRowProps, type DatedAvailabilityBlock, Drawer, DrawerClose, DrawerContent, type DrawerContentProps, DrawerDefaultClose, DrawerDescription, DrawerHeader, DrawerTitle, DrawerTrigger, EmptyCard, type EmptyCardProps, EventBlock, type EventBlockProps, type FormFieldProps, GoogleIcon, type HeadingLevel, IconTile, type IconTileProps, ImportCalendarsDialog, type ImportCalendarsDialogProps, type InteractionStates, METRIC_STATUS_COLOR, MetricCard, type MetricCardProps, type MetricStatus, MicrosoftIcon, MiniMonthPicker, type MiniMonthPickerProps, MonthGrid, type MonthGridProps, type NavEntry, type NavGroup, type NavItem, OnboardingStepDots, OnboardingStepper, OtpInput, OtpVerifyStep, type OtpVerifyStepProps, PROVIDER_LABEL, PROVIDER_META, Pagination, type PaginationProps, PausedBadge, type PausedBadgeProps, type PolymorphicComponent, type PolymorphicComponentProps, ProviderIcon, ROLE_LABELS, ROLE_META, type ResolvedBlock, type ResponsiveValue, type Role, SHELL_CHANNEL, SHELL_HEADER_H, STATUS_META, SearchOverlay, type SearchOverlayProps, type SearchResult, type SearchResultType, type ShellEventMap, type ShellEventType, type ShellEvents, Sidebar, type SidebarDevRole, type SidebarProps, type SidebarUser, type Size, Skeleton, type SkeletonProps, SyncDetailsDialog, type SyncDetailsDialogProps, SyncPreviewRail, type SyncStatus, Toast, type ToastProps, Topbar, type TopbarProps, type TopbarTitleRow, UIProvider, type UseConnectAccountOptions, type UserStatus, type Variant, type WizardStepMeta, WizardStepper, audit_action_meta, cn, colors, conditional_class, create_compound_variants, create_variant_generator, find_calendar, get_accessibility_styles, get_animation_class, get_base_styles, get_bg_class, get_border_class, get_color, get_focus_ring_class, get_focusable_elements, get_hover_bg_class, get_hover_text_class, get_interactive_styles, get_radius_class, get_responsive_classes, get_size_styles, get_spacing_class, get_text_class, get_typography_class, get_variant_styles, handle_arrow_navigation, heading_size, layout, merge_props, shell, theme, useClickOutside, useConnectAccount, useControllableState, useDisclosure };