efficient-shell 4.127.0 → 4.132.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.
Files changed (128) hide show
  1. package/README.md +938 -5
  2. package/dist/{Browser-F5TKMP4K.js → Browser-XPVJ2K7B.js} +13 -10
  3. package/dist/Browser-XPVJ2K7B.js.map +1 -0
  4. package/dist/{Calculator-T3XG7S73.js → Calculator-ZXJPXG7F.js} +12 -9
  5. package/dist/Calculator-ZXJPXG7F.js.map +1 -0
  6. package/dist/ConfirmDialog-MTC7QMUJ.js +4 -0
  7. package/dist/{ConfirmDialog-LJXMB45A.js.map → ConfirmDialog-MTC7QMUJ.js.map} +1 -1
  8. package/dist/{CurrencyConverter-CASQMKLO.js → CurrencyConverter-WSJ2BBSX.js} +12 -9
  9. package/dist/CurrencyConverter-WSJ2BBSX.js.map +1 -0
  10. package/dist/{Documents-YX67YTZS.js → Documents-ONGSXUJI.js} +14 -11
  11. package/dist/Documents-ONGSXUJI.js.map +1 -0
  12. package/dist/{Files-QB63GO6J.js → Files-GQZMFWXQ.js} +17 -14
  13. package/dist/Files-GQZMFWXQ.js.map +1 -0
  14. package/dist/{Notepad-3SUD5XUE.js → Notepad-HM73XAM4.js} +15 -12
  15. package/dist/Notepad-HM73XAM4.js.map +1 -0
  16. package/dist/PdfViewer-M2YGZIYX.js +5 -0
  17. package/dist/{PdfViewer-LSP3YNFC.js.map → PdfViewer-M2YGZIYX.js.map} +1 -1
  18. package/dist/{PomodoroTimer-4EHD2QC4.js → PomodoroTimer-DG3LI5CX.js} +14 -11
  19. package/dist/PomodoroTimer-DG3LI5CX.js.map +1 -0
  20. package/dist/{Preview-4ZHR4SKP.js → Preview-TUSV4UMO.js} +16 -13
  21. package/dist/Preview-TUSV4UMO.js.map +1 -0
  22. package/dist/{Sidebar-J76PV4QF.js → Sidebar-BPU7RCZP.js} +5 -4
  23. package/dist/Sidebar-BPU7RCZP.js.map +1 -0
  24. package/dist/{Spreadsheet-G3SC7XJ5.js → Spreadsheet-3WTXCHYQ.js} +14 -11
  25. package/dist/Spreadsheet-3WTXCHYQ.js.map +1 -0
  26. package/dist/{Stock-TLT4VN2R.js → Stock-YMPOMUAW.js} +12 -9
  27. package/dist/Stock-YMPOMUAW.js.map +1 -0
  28. package/dist/{Weather-FRKX3DAK.js → Weather-NZO3CWLH.js} +12 -9
  29. package/dist/Weather-NZO3CWLH.js.map +1 -0
  30. package/dist/{WorldClock-GKCITO3M.js → WorldClock-HUC6D3AD.js} +12 -9
  31. package/dist/WorldClock-HUC6D3AD.js.map +1 -0
  32. package/dist/apps/index.js +26 -22
  33. package/dist/apps/index.js.map +1 -1
  34. package/dist/brand.css +1 -1
  35. package/dist/chunk-7IN7YZAL.js +547 -0
  36. package/dist/chunk-7IN7YZAL.js.map +1 -0
  37. package/dist/{chunk-YNGPTOL6.js → chunk-7MA5XBWD.js} +3 -3
  38. package/dist/{chunk-YNGPTOL6.js.map → chunk-7MA5XBWD.js.map} +1 -1
  39. package/dist/{chunk-WK7FV7VV.js → chunk-BJ34QOR3.js} +827 -625
  40. package/dist/chunk-BJ34QOR3.js.map +1 -0
  41. package/dist/{chunk-HNH7FOYB.js → chunk-CGXMWHQW.js} +7 -6
  42. package/dist/chunk-CGXMWHQW.js.map +1 -0
  43. package/dist/{chunk-XUCIYMN7.js → chunk-CJYO4RVV.js} +4 -4
  44. package/dist/{chunk-XUCIYMN7.js.map → chunk-CJYO4RVV.js.map} +1 -1
  45. package/dist/{chunk-N3CG5HG5.js → chunk-CLGNTGC5.js} +12 -11
  46. package/dist/chunk-CLGNTGC5.js.map +1 -0
  47. package/dist/chunk-D276EMXS.js +57 -0
  48. package/dist/chunk-D276EMXS.js.map +1 -0
  49. package/dist/{chunk-7KIOEKHS.js → chunk-E3TWIN7Z.js} +21 -135
  50. package/dist/chunk-E3TWIN7Z.js.map +1 -0
  51. package/dist/{chunk-2VM2FRZJ.js → chunk-EENVXIVU.js} +47 -67
  52. package/dist/chunk-EENVXIVU.js.map +1 -0
  53. package/dist/{chunk-YG45DAUT.js → chunk-FONEQRBH.js} +17 -11
  54. package/dist/chunk-FONEQRBH.js.map +1 -0
  55. package/dist/chunk-IPXN646P.js +14 -0
  56. package/dist/chunk-IPXN646P.js.map +1 -0
  57. package/dist/chunk-IRWSRJ4K.js +48 -0
  58. package/dist/chunk-IRWSRJ4K.js.map +1 -0
  59. package/dist/chunk-JMKYYPOF.js +7 -0
  60. package/dist/{chunk-CJZXR7MG.js.map → chunk-JMKYYPOF.js.map} +1 -1
  61. package/dist/{chunk-JFQGPY7W.js → chunk-KWEX4ZAF.js} +20 -17
  62. package/dist/chunk-KWEX4ZAF.js.map +1 -0
  63. package/dist/{chunk-OKEFO6TI.js → chunk-LQTVTOSY.js} +10 -10
  64. package/dist/chunk-LQTVTOSY.js.map +1 -0
  65. package/dist/{chunk-G4KA3SAX.js → chunk-MQPX6ERJ.js} +4 -4
  66. package/dist/{chunk-G4KA3SAX.js.map → chunk-MQPX6ERJ.js.map} +1 -1
  67. package/dist/{chunk-FQB24B42.js → chunk-SEWF4O3H.js} +3 -3
  68. package/dist/{chunk-FQB24B42.js.map → chunk-SEWF4O3H.js.map} +1 -1
  69. package/dist/{chunk-AXWC3332.js → chunk-TFXJRHJV.js} +3 -3
  70. package/dist/{chunk-AXWC3332.js.map → chunk-TFXJRHJV.js.map} +1 -1
  71. package/dist/{chunk-G3HQLQYZ.js → chunk-TQURTLK2.js} +59 -34
  72. package/dist/chunk-TQURTLK2.js.map +1 -0
  73. package/dist/{chunk-6XQHH7D2.js → chunk-TRCWINHF.js} +5 -5
  74. package/dist/{chunk-6XQHH7D2.js.map → chunk-TRCWINHF.js.map} +1 -1
  75. package/dist/{chunk-NPJCMM6V.js → chunk-VWZIGZFF.js} +4 -4
  76. package/dist/{chunk-NPJCMM6V.js.map → chunk-VWZIGZFF.js.map} +1 -1
  77. package/dist/{chunk-HYZ5QMVO.js → chunk-XH3ELPQZ.js} +22 -19
  78. package/dist/chunk-XH3ELPQZ.js.map +1 -0
  79. package/dist/{chunk-PPUZJFCI.js → chunk-ZKHD4J73.js} +8 -7
  80. package/dist/chunk-ZKHD4J73.js.map +1 -0
  81. package/dist/file-intake/index.js +3 -1
  82. package/dist/file-intake/index.js.map +1 -1
  83. package/dist/{index-dQia6NpB.d.ts → index-COwksV6G.d.ts} +699 -199
  84. package/dist/index.d.ts +2 -2
  85. package/dist/index.js +37 -32
  86. package/dist/index.js.map +1 -1
  87. package/dist/map/index.js +5 -3
  88. package/dist/map/index.js.map +1 -1
  89. package/dist/markdown/index.js +4 -3
  90. package/dist/markdown/index.js.map +1 -1
  91. package/dist/page-tabs/index.js +12 -8
  92. package/dist/page-tabs/index.js.map +1 -1
  93. package/dist/shell.css +17 -17
  94. package/dist/themes.css +15 -0
  95. package/dist/ui/index.d.ts +1 -1
  96. package/dist/ui/index.js +17 -13
  97. package/dist/ui/index.js.map +1 -1
  98. package/dist/ui.css +691 -283
  99. package/package.json +1 -1
  100. package/dist/Browser-F5TKMP4K.js.map +0 -1
  101. package/dist/Calculator-T3XG7S73.js.map +0 -1
  102. package/dist/ConfirmDialog-LJXMB45A.js +0 -3
  103. package/dist/CurrencyConverter-CASQMKLO.js.map +0 -1
  104. package/dist/Documents-YX67YTZS.js.map +0 -1
  105. package/dist/Files-QB63GO6J.js.map +0 -1
  106. package/dist/Notepad-3SUD5XUE.js.map +0 -1
  107. package/dist/PdfViewer-LSP3YNFC.js +0 -4
  108. package/dist/PomodoroTimer-4EHD2QC4.js.map +0 -1
  109. package/dist/Preview-4ZHR4SKP.js.map +0 -1
  110. package/dist/Sidebar-J76PV4QF.js.map +0 -1
  111. package/dist/Spreadsheet-G3SC7XJ5.js.map +0 -1
  112. package/dist/Stock-TLT4VN2R.js.map +0 -1
  113. package/dist/Weather-FRKX3DAK.js.map +0 -1
  114. package/dist/WorldClock-GKCITO3M.js.map +0 -1
  115. package/dist/chunk-2VM2FRZJ.js.map +0 -1
  116. package/dist/chunk-3CUSBZWG.js +0 -59
  117. package/dist/chunk-3CUSBZWG.js.map +0 -1
  118. package/dist/chunk-7KIOEKHS.js.map +0 -1
  119. package/dist/chunk-CJZXR7MG.js +0 -7
  120. package/dist/chunk-G3HQLQYZ.js.map +0 -1
  121. package/dist/chunk-HNH7FOYB.js.map +0 -1
  122. package/dist/chunk-HYZ5QMVO.js.map +0 -1
  123. package/dist/chunk-JFQGPY7W.js.map +0 -1
  124. package/dist/chunk-N3CG5HG5.js.map +0 -1
  125. package/dist/chunk-OKEFO6TI.js.map +0 -1
  126. package/dist/chunk-PPUZJFCI.js.map +0 -1
  127. package/dist/chunk-WK7FV7VV.js.map +0 -1
  128. package/dist/chunk-YG45DAUT.js.map +0 -1
@@ -373,6 +373,581 @@ interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {
373
373
  }
374
374
  declare function Label({ required, children, className, ...rest }: LabelProps): react_jsx_runtime.JSX.Element;
375
375
 
376
+ interface ShellStrings {
377
+ /** Window chrome: control tooltips and the title bar's accessible name. */
378
+ window: {
379
+ minimize: string;
380
+ /** Bring a hand-minimized window back — the tab's own control. */
381
+ restore: string;
382
+ maximize: string;
383
+ windowed: string;
384
+ pinOnTop: string;
385
+ unpin: string;
386
+ close: string;
387
+ /** Suffix of the title bar's aria-label: `"{title} — {windowSuffix}"`. */
388
+ windowSuffix: string;
389
+ prev: string;
390
+ next: string;
391
+ snapLayouts: string;
392
+ snapLeft: string;
393
+ snapRight: string;
394
+ snapTopLeft: string;
395
+ snapTopRight: string;
396
+ snapBottomLeft: string;
397
+ snapBottomRight: string;
398
+ };
399
+ /** Taskbar and exposé. */
400
+ taskbar: {
401
+ closeWindow: string;
402
+ offscreenHint: string;
403
+ offscreenDot: string;
404
+ expose: string;
405
+ addToDesktop: string;
406
+ removeFromDesktop: string;
407
+ /** Group menu — a taskbar tab standing for more than one window. The
408
+ * count is appended by the caller, e.g. "Close all (3)". */
409
+ minimizeAllWindows: string;
410
+ restoreAllWindows: string;
411
+ closeAllWindows: string;
412
+ };
413
+ /** The logout cover. */
414
+ logout: {
415
+ goodbye: string;
416
+ seeYou: string;
417
+ };
418
+ /** About + What's New dialogs. */
419
+ about: {
420
+ aboutPrefix: string;
421
+ thisApp: string;
422
+ openSourceLicenses: string;
423
+ whatsNew: string;
424
+ noChangelog: string;
425
+ };
426
+ /** Data-display defaults (DataTable, lists). */
427
+ table: {
428
+ empty: string;
429
+ loading: string;
430
+ selectAll: string;
431
+ selectRow: string;
432
+ };
433
+ /** Picker defaults (SearchableSelect, TagInput). */
434
+ select: {
435
+ none: string;
436
+ noMatches: string;
437
+ allSelected: string;
438
+ clear: string;
439
+ /** aria-label of a TagInput chip's remove button: `"{remove} {label}"`. */
440
+ remove: string;
441
+ /** The whole chip label, when the word order is not "{remove} {label}".
442
+ * Wins over `remove` when supplied. */
443
+ removeItem?: (label: string) => string;
444
+ };
445
+ /** Notification bell + popup. */
446
+ notifications: {
447
+ title: string;
448
+ markAllRead: string;
449
+ dnd: string;
450
+ dndOn: string;
451
+ caughtUp: string;
452
+ empty: string;
453
+ viewAll: string;
454
+ cardLabel: string;
455
+ dismiss: string;
456
+ };
457
+ /** Form-level messages. */
458
+ form: {
459
+ errorSummaryTitle: string;
460
+ };
461
+ /** HelpCenter chrome. */
462
+ help: {
463
+ title: string;
464
+ searchPlaceholder: string;
465
+ empty: string;
466
+ noResults: string;
467
+ loading: string;
468
+ pickArticle: string;
469
+ noBody: string;
470
+ draft: string;
471
+ newArticle: string;
472
+ edit: string;
473
+ };
474
+ /** The app-update banner (a deploy happened under a long-lived tab). */
475
+ update: {
476
+ available: string;
477
+ refreshNow: string;
478
+ };
479
+ /** The page-tab strip (`react-os-shell/page-tabs`). */
480
+ pageTabs: {
481
+ /** The strip's accessible name. */
482
+ label: string;
483
+ /** A tab's close button, and the menu item: `"{close} {title}"` for the button. */
484
+ close: string;
485
+ /** The close button's whole label, when the word order is not
486
+ * "{close} {title}". Wins over `close` for the button when supplied. */
487
+ closeTab?: (title: string) => string;
488
+ closeOthers: string;
489
+ closeRight: string;
490
+ closeAll: string;
491
+ /** Marks a tab with unsaved changes (the dot's accessible text). */
492
+ unsaved: string;
493
+ /** Asked before a tab with unsaved changes closes. */
494
+ discardTitle: string;
495
+ discardOne: string;
496
+ /** Several at once — the count is prefixed by the caller: "3 pages have…". */
497
+ discardMany: string;
498
+ /** The whole several-at-once sentence, for a language whose noun follows
499
+ * the count's plural form. Wins over `discardMany` when supplied. */
500
+ discardCount?: (count: number) => string;
501
+ discardConfirm: string;
502
+ keepEditing: string;
503
+ };
504
+ /** `Dialog` and `Drawer`'s close control, and the dialogs behind `confirm`,
505
+ * `confirmDestructive` and `prompt` (each option a caller passes wins). */
506
+ dialog: {
507
+ close: string;
508
+ cancel: string;
509
+ ok: string;
510
+ /** `confirm`'s heading when the caller gives no `title`. */
511
+ confirmTitle: string;
512
+ /** `confirmDestructive`'s heading, cancel and confirm defaults. */
513
+ destructiveTitle: string;
514
+ destructiveCancel: string;
515
+ destructiveConfirm: string;
516
+ /** The line over the type-to-confirm box; the word is drawn in a `<kbd>`
517
+ * wherever the sentence puts it. */
518
+ typeToConfirm: (word: string) => string;
519
+ /** `prompt`'s heading when the caller gives no `title`. */
520
+ promptTitle: string;
521
+ };
522
+ /** The month grid (`Calendar`, and the pickers that open it). Month and
523
+ * weekday NAMES are not here — they come from `locale`. */
524
+ calendar: {
525
+ previousMonth: string;
526
+ nextMonth: string;
527
+ previousYear: string;
528
+ nextYear: string;
529
+ previousYears: string;
530
+ nextYears: string;
531
+ /** The month and year panels' accessible names. */
532
+ monthPanel: string;
533
+ yearPanel: string;
534
+ /** The heading's month button. */
535
+ chooseMonth: (month: string) => string;
536
+ /** The heading's year button. */
537
+ chooseYear: (year: number) => string;
538
+ };
539
+ /** `DatePicker`'s trigger and popover. */
540
+ datePicker: {
541
+ placeholder: string;
542
+ /** The popover's accessible name when the field has no `aria-label`. */
543
+ dialog: string;
544
+ clear: string;
545
+ today: string;
546
+ };
547
+ /** `DateRangePicker`. */
548
+ dateRange: {
549
+ placeholder: string;
550
+ /** The trigger's × button. */
551
+ clearRange: string;
552
+ /** The popover's and the grid's accessible name. */
553
+ dialog: string;
554
+ from: string;
555
+ to: string;
556
+ /** The From/To boxes before a day is chosen. */
557
+ start: string;
558
+ end: string;
559
+ /** The trigger with only one end of the range set. */
560
+ fromOnly: (date: string) => string;
561
+ toOnly: (date: string) => string;
562
+ last2Weeks: string;
563
+ lastMonth: string;
564
+ last3Months: string;
565
+ last6Months: string;
566
+ last12Months: string;
567
+ custom: string;
568
+ clear: string;
569
+ cancel: string;
570
+ apply: string;
571
+ };
572
+ /** `Pagination` (and `DataTable`'s pager). */
573
+ pagination: {
574
+ label: string;
575
+ first: string;
576
+ previous: string;
577
+ next: string;
578
+ last: string;
579
+ };
580
+ /** `ListFooter` and `ListLoadError`. `label` is the caller's own noun
581
+ * ("records"); the counts are numbers, for the plural. */
582
+ list: {
583
+ /** Before the em dash: "3 selected — 40 records". */
584
+ selected: (count: number) => string;
585
+ allLoaded: (total: number, label: string) => string;
586
+ count: (total: number, label: string) => string;
587
+ loadedOf: (loaded: number, total: number, label: string) => string;
588
+ /** After a middle dot: "40 of 900 records · Loading more...". */
589
+ loadingMore: string;
590
+ loadError: string;
591
+ loadErrorMessage: string;
592
+ retry: string;
593
+ };
594
+ /** `Kanban`'s defaults (its own props win). */
595
+ kanban: {
596
+ loading: string;
597
+ empty: string;
598
+ dropHere: string;
599
+ addItem: string;
600
+ };
601
+ /** File intake: `FilePicker`, `ComposerAttachments`, and the rejection
602
+ * messages every upload control shares. */
603
+ files: {
604
+ attach: string;
605
+ drop: string;
606
+ remove: (name: string) => string;
607
+ chooseMany: string;
608
+ chooseOne: string;
609
+ /** After the choose link, in the same line. */
610
+ dragMany: string;
611
+ dragOne: string;
612
+ /** `hint` is the caller's `acceptHint` when it is a string, else ''. */
613
+ notAccepted: (name: string, hint: string) => string;
614
+ /** `size` and `limit` arrive written out — "6.2 MB". */
615
+ tooLarge: (name: string, size: string, limit: string) => string;
616
+ tooMany: (name: string, max: number) => string;
617
+ bytes: (value: number) => string;
618
+ kilobytes: (value: number) => string;
619
+ megabytes: (value: number) => string;
620
+ };
621
+ /** `MediaUploadField` and `MediaUploadGrid`. */
622
+ media: {
623
+ uploadImage: string;
624
+ uploadVideo: string;
625
+ uploadFile: string;
626
+ /** The drop zone's accessible name when its prompt is not a string. */
627
+ upload: string;
628
+ cta: string;
629
+ replace: string;
630
+ remove: string;
631
+ uploading: string;
632
+ cover: string;
633
+ add: string;
634
+ addMedia: string;
635
+ empty: string;
636
+ removeItem: (name: string) => string;
637
+ /** A reorderable thumbnail's accessible name. */
638
+ reorder: (name: string, position: number, total: number) => string;
639
+ };
640
+ /** `BrandAssetEditor`. `noun` is the last word of `assetName`, lower-cased
641
+ * ("Portal logo" → "logo"); a translation that cannot use it has
642
+ * `assetName` itself. */
643
+ brandAsset: {
644
+ save: (noun: string, assetName: string) => string;
645
+ remove: (noun: string, assetName: string) => string;
646
+ discard: string;
647
+ saveFailed: (noun: string, assetName: string) => string;
648
+ removeFailed: (noun: string, assetName: string) => string;
649
+ region: (assetName: string, subjectName: string) => string;
650
+ usedFor: (subjectName: string) => string;
651
+ previews: (assetName: string) => string;
652
+ preview: string;
653
+ alt: (subjectName: string, assetName: string) => string;
654
+ };
655
+ /** `Snippet`'s copy button, and the clipboard's toasts. */
656
+ copy: {
657
+ copy: string;
658
+ copyLabel: (label: string) => string;
659
+ /** Snippet's spoken confirmation. */
660
+ copied: string;
661
+ /** `copyToClipboard`'s success toast; `label` names what was copied. */
662
+ copiedLabel: (label: string) => string;
663
+ failed: string;
664
+ };
665
+ /** `NumericKeypad`. */
666
+ keypad: {
667
+ backspace: string;
668
+ enter: string;
669
+ };
670
+ /** `Banner`. */
671
+ banner: {
672
+ dismiss: string;
673
+ };
674
+ /** A closable `ColoredBadge`'s × (its `closeLabel` wins). */
675
+ badge: {
676
+ /** When the badge's content is not plain text. */
677
+ remove: string;
678
+ removeItem: (label: string) => string;
679
+ };
680
+ /** `Breadcrumbs`. */
681
+ breadcrumbs: {
682
+ label: string;
683
+ /** The ellipsis standing for the crumbs `maxItems` folded away. */
684
+ hidden: string;
685
+ };
686
+ /** `EmptyState`'s line when the caller gives neither a title nor a message. */
687
+ emptyState: {
688
+ message: string;
689
+ };
690
+ /** `ErrorPage`, `ErrorBoundary` and `Result`'s status defaults. */
691
+ errors: {
692
+ notFound: string;
693
+ notFoundBody: string;
694
+ forbidden: string;
695
+ forbiddenBody: string;
696
+ /** `Result status="403"`'s title — gentler than `ErrorPage`'s. */
697
+ noAccess: string;
698
+ serverError: string;
699
+ serverErrorBody: string;
700
+ retry: string;
701
+ details: string;
702
+ };
703
+ /** `GlobalSearch`. */
704
+ search: {
705
+ placeholder: string;
706
+ /** The key cap beside the input. */
707
+ escBadge: string;
708
+ searching: string;
709
+ noResults: string;
710
+ minChars: (min: number) => string;
711
+ navigate: string;
712
+ open: string;
713
+ close: string;
714
+ enterKey: string;
715
+ escKey: string;
716
+ };
717
+ /** `EditableGrid`. */
718
+ grid: {
719
+ selectAll: string;
720
+ insertRowAbove: string;
721
+ insertRowBelow: string;
722
+ deleteRow: (row: number) => string;
723
+ insertColumnLeft: string;
724
+ insertColumnRight: string;
725
+ deleteColumn: (column: string) => string;
726
+ resize: string;
727
+ fill: string;
728
+ };
729
+ /** `SidebarLayout`'s resize handle. */
730
+ sidebar: {
731
+ resize: string;
732
+ };
733
+ /** `MarkdownLite`. */
734
+ markdown: {
735
+ /** Before an image placeholder's caption, with an em dash between. */
736
+ screenshot: string;
737
+ };
738
+ /** The word a severity marker is spoken and tooltipped with. */
739
+ severity: {
740
+ success: string;
741
+ warning: string;
742
+ danger: string;
743
+ /** A token that is not one of the three, as received. */
744
+ unrecognised: (token: string) => string;
745
+ };
746
+ /** `MetricBar` and `BudgetBar`. */
747
+ meter: {
748
+ noData: string;
749
+ warningAt: (bound: number) => string;
750
+ criticalAt: (bound: number) => string;
751
+ noReading: string;
752
+ noBudget: string;
753
+ /** The meter's spoken value: "84% of budget". */
754
+ ofBudget: (value: string) => string;
755
+ /** The deadline marker's tooltip. */
756
+ budget: string;
757
+ hoursMinutes: (hours: number, minutes: number) => string;
758
+ minutesSeconds: (minutes: number, seconds: number) => string;
759
+ seconds: (seconds: number) => string;
760
+ };
761
+ /** The chart family. Series, axis and category names are the caller's. */
762
+ charts: {
763
+ showTable: string;
764
+ loading: string;
765
+ noData: string;
766
+ windowStart: string;
767
+ windowEnd: string;
768
+ window: (from: string, to: string, count: number) => string;
769
+ overIntervals: (series: string[], count: number) => string;
770
+ acrossCategories: (series: string[], count: number) => string;
771
+ acrossMeasures: (series: string[], count: number) => string;
772
+ /** The pie's accessible name; `total` is written by the caller's `formatValue`. */
773
+ breakdown: (total: string, segments: number) => string;
774
+ funnel: (stages: number, first: string, last: string) => string;
775
+ radialTrack: (count: number) => string;
776
+ radialCycle: (count: number) => string;
777
+ /** Column heads of the screen-reader tables some charts carry. */
778
+ tableFrom: string;
779
+ tableTo: string;
780
+ tableItem: string;
781
+ tableLevel: string;
782
+ tableSeries: string;
783
+ inBucket: (total: string) => string;
784
+ inCategory: (total: string) => string;
785
+ value: string;
786
+ share: string;
787
+ count: string;
788
+ flow: string;
789
+ totalFlow: string;
790
+ throughput: string;
791
+ open: string;
792
+ high: string;
793
+ low: string;
794
+ close: string;
795
+ maximum: string;
796
+ q3: string;
797
+ median: string;
798
+ q1: string;
799
+ minimum: string;
800
+ distribution: string;
801
+ fiveNumber: (label: string, count: number) => string;
802
+ outliers: (count: number) => string;
803
+ price: string;
804
+ ohlc: (label: string, count: number) => string;
805
+ closedAbove: string;
806
+ closedBelow: string;
807
+ noFlows: string;
808
+ chord: (count: number) => string;
809
+ noStages: string;
810
+ ofFirstStage: string;
811
+ droppedHere: string;
812
+ intensity: string;
813
+ noActivity: string;
814
+ heatmap: (label: string, rows: number, columns: number) => string;
815
+ /** A histogram's y-axis title. */
816
+ countAxis: string;
817
+ histogram: (label: string, bins: number, observations: number) => string;
818
+ observations: string;
819
+ /** `Meter` with no value to judge. */
820
+ notEnough: string;
821
+ objectiveMet: (objective: string) => string;
822
+ objectiveMissed: (objective: string) => string;
823
+ nothingToPlot: string;
824
+ nothingToCompare: string;
825
+ /** The pie slice the small segments are folded into. */
826
+ other: string;
827
+ nothingToBreakDown: string;
828
+ range: string;
829
+ rangeLabel: (label: string, count: number) => string;
830
+ nothingToRank: string;
831
+ /** Spoken after the emphasised row of `RankedBars`. */
832
+ emphasised: string;
833
+ sankey: (nodes: number, links: number) => string;
834
+ noObservations: string;
835
+ xAxis: string;
836
+ yAxis: string;
837
+ size: string;
838
+ scatter: (series: string[], yLabel: string, xLabel: string) => string;
839
+ outsideRange: (count: number) => string;
840
+ waterfall: (steps: number, from: string, to: string) => string;
841
+ balance: string;
842
+ increase: string;
843
+ decrease: string;
844
+ runningTotal: string;
845
+ sunburst: (total: string, depth: number) => string;
846
+ treemap: (count: number) => string;
847
+ /** `StatTile`'s delta direction, spoken after the arrow glyph. */
848
+ trendUp: string;
849
+ trendDown: string;
850
+ trendFlat: string;
851
+ };
852
+ /** `TimelineTrack` and `MilestoneTimeline`. */
853
+ timeline: {
854
+ /** A cut in the axis: "412 days". */
855
+ days: (count: number) => string;
856
+ daysToToday: (count: number) => string;
857
+ notReached: string;
858
+ /** Before the first pending entry, with a middle dot after it. */
859
+ next: string;
860
+ more: (count: number) => string;
861
+ today: string;
862
+ todayTitle: (date: string) => string;
863
+ open: (name: string) => string;
864
+ openButton: string;
865
+ scrub: string;
866
+ alsoToCome: (names: string[]) => string;
867
+ start: (date: string) => string;
868
+ /** A folded run of marks: its count, then each member's own name. */
869
+ events: (count: number, names: string[]) => string;
870
+ started: (date: string) => string;
871
+ duration: (days: number) => string;
872
+ reached: (dated: number, total: number) => string;
873
+ milestones: (title: string) => string;
874
+ };
875
+ /** `ProductionTimeline`. */
876
+ production: {
877
+ heading: string;
878
+ /** The synthetic report standing for the production start. */
879
+ start: string;
880
+ /** The synthetic report between two real ones. */
881
+ estimated: string;
882
+ estimatedCompletion: string;
883
+ estDone: string;
884
+ play: string;
885
+ pause: string;
886
+ playTitle: string;
887
+ backTo: (report: string) => string;
888
+ /** The report is drawn bold wherever the sentence puts it. */
889
+ showing: (report: string) => string;
890
+ overall: (percent: number) => string;
891
+ inStock: (pieces: number) => string;
892
+ noReport: string;
893
+ leadTime: (days: number) => string;
894
+ report: string;
895
+ shipment: string;
896
+ inspection: string;
897
+ invoice: string;
898
+ scrub: string;
899
+ label: (from: string, to: string) => string;
900
+ };
901
+ /** `ContainerFillChart`. Volumes are cubic metres. */
902
+ containers: {
903
+ items: (count: number) => string;
904
+ pieces: (count: number) => string;
905
+ split: (instructed: number, loaded: number) => string;
906
+ added: (count: number, pieces: number) => string;
907
+ fill: (volume: number, capacity: number) => string;
908
+ total: string;
909
+ instructed: (volume: number) => string;
910
+ loaded: (volume: number) => string;
911
+ volume: (volume: number) => string;
912
+ noVolume: string;
913
+ };
914
+ /** `toast.notify`'s card. */
915
+ toast: {
916
+ notification: string;
917
+ };
918
+ }
919
+ declare const DEFAULT_SHELL_STRINGS: ShellStrings;
920
+ /** A per-section partial: override any subset of a section's strings. */
921
+ type ShellStringsOverride = {
922
+ [S in keyof ShellStrings]?: Partial<ShellStrings[S]>;
923
+ };
924
+ /**
925
+ * Mount once, near the top of the app. `value` is a partial — sections and
926
+ * keys you do not translate keep their English defaults, so a catalog never
927
+ * breaks by falling behind a release.
928
+ *
929
+ * `locale` is a BCP 47 tag (`'de-DE'`, `'ja'`, `'zh-Hant'`) for how numbers and
930
+ * dates are written; omit it and they are written exactly as without a
931
+ * provider. A nested provider without a `locale` keeps its parent's — a subtree
932
+ * that overrides one string should not lose the app's number format. Strings
933
+ * do not cascade that way: a nested provider's `value` merges onto the English
934
+ * defaults, as it always has.
935
+ */
936
+ declare function ShellStringsProvider({ value, locale, children }: {
937
+ value?: ShellStringsOverride;
938
+ locale?: string;
939
+ children: ReactNode;
940
+ }): react_jsx_runtime.JSX.Element;
941
+ /** The active catalog — English defaults when no provider is mounted. */
942
+ declare function useShellStrings(): ShellStrings;
943
+ /**
944
+ * The provider's `locale`, canonicalised — `undefined` when there is no
945
+ * provider or it was given none. Hand it to `formatDate(value, { locale })`,
946
+ * `fmtSliderDate(ms, locale)`, or `Intl` directly, so a host's own cells write
947
+ * numbers and dates the way the kit's do.
948
+ */
949
+ declare function useShellLocale(): string | undefined;
950
+
376
951
  /**
377
952
  * Derive a human filename from a media URL: drop the query string, strip a
378
953
  * 32-hex upload prefix, and URL-decode.
@@ -447,7 +1022,7 @@ interface MediaUploadFieldProps {
447
1022
  disabled?: boolean;
448
1023
  }
449
1024
 
450
- declare function MediaUploadField({ value, onChange, onPick, onFile, label, hint, error, required, className, accept, maxSizeBytes, fit, height, placeholder, cta, acceptHint, showFilename, allowReplace, allowRemove, replaceLabel, removeLabel, busy, busyLabel, disabled, }: MediaUploadFieldProps): react_jsx_runtime.JSX.Element;
1025
+ declare function MediaUploadField({ value, onChange, onPick, onFile, label, hint, error, required, className, accept, maxSizeBytes, fit, height, placeholder, cta: ctaProp, acceptHint, showFilename, allowReplace, allowRemove, replaceLabel: replaceLabelProp, removeLabel: removeLabelProp, busy, busyLabel: busyLabelProp, disabled, }: MediaUploadFieldProps): react_jsx_runtime.JSX.Element;
451
1026
 
452
1027
  type BrandMarkSlot = 'favicon' | 'compact' | 'wordmark';
453
1028
  type BrandMarkSurface = 'light' | 'dark';
@@ -649,7 +1224,7 @@ interface MediaUploadGridProps {
649
1224
  /** View only — thumbnails without Add / remove / reorder affordances. */
650
1225
  readOnly?: boolean;
651
1226
  }
652
- declare function MediaUploadGrid({ items, onPick, onFiles, onRemove, onReorder, label, hint, error, required, className, accept, maxSizeBytes, maxFiles, fit, thumbSize, placeholder, cta, acceptHint, showCover, coverLabel, busy, busyLabel, disabled, readOnly, }: MediaUploadGridProps): react_jsx_runtime.JSX.Element;
1227
+ declare function MediaUploadGrid({ items, onPick, onFiles, onRemove, onReorder, label, hint, error, required, className, accept, maxSizeBytes, maxFiles, fit, thumbSize, placeholder, cta: ctaProp, acceptHint, showCover, coverLabel: coverLabelProp, busy, busyLabel: busyLabelProp, disabled, readOnly, }: MediaUploadGridProps): react_jsx_runtime.JSX.Element;
653
1228
 
654
1229
  interface DateRangePickerProps {
655
1230
  /** Start of the range as `YYYY-MM-DD`, or '' when unset. */
@@ -692,7 +1267,7 @@ interface DateRangePickerProps {
692
1267
  * back one day for every user east of Greenwich.
693
1268
  */
694
1269
  declare function toISODate(d: Date): string;
695
- declare function DateRangePicker({ from, to, onChange, formatDisplay, clearable, placeholder, fullWidth, }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
1270
+ declare function DateRangePicker({ from, to, onChange, formatDisplay: formatDisplayProp, clearable, placeholder: placeholderProp, fullWidth, }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
696
1271
 
697
1272
  type CalendarMode = 'single' | 'range';
698
1273
  interface CalendarProps {
@@ -1164,7 +1739,7 @@ interface AttachButtonProps {
1164
1739
  disabled?: boolean;
1165
1740
  }
1166
1741
  /** The paperclip. One label everywhere: "Attach files". */
1167
- declare function AttachButton({ onClick, count, variant, label, disabled }: AttachButtonProps): react_jsx_runtime.JSX.Element;
1742
+ declare function AttachButton({ onClick, count, variant, label: labelProp, disabled }: AttachButtonProps): react_jsx_runtime.JSX.Element;
1168
1743
  interface ComposerAttachmentsProps extends FileIntakeLimits {
1169
1744
  /** The pending files. */
1170
1745
  files: File[];
@@ -2040,7 +2615,7 @@ interface MetricBarProps {
2040
2615
  ariaLabel?: string;
2041
2616
  className?: string;
2042
2617
  }
2043
- declare function MetricBar({ label, value, max, warn, crit, severity, detail, formatValue, emptyLabel, size, ariaLabel, className, }: MetricBarProps): react_jsx_runtime.JSX.Element;
2618
+ declare function MetricBar({ label, value, max, warn, crit, severity, detail, formatValue, emptyLabel: emptyLabelProp, size, ariaLabel, className, }: MetricBarProps): react_jsx_runtime.JSX.Element;
2044
2619
 
2045
2620
  /** What the numbers say, before anything is drawn. Exported because a run LIST
2046
2621
  * needs the same verdict to sort and filter by, and re-deriving it at the call
@@ -2079,7 +2654,7 @@ interface BudgetBarProps {
2079
2654
  * list that colours its rows and the bar inside a row cannot disagree.
2080
2655
  */
2081
2656
  declare function budgetState(elapsed: number | null | undefined, budget: number | null | undefined): BudgetState;
2082
- declare function BudgetBar({ label, elapsed, budget, grace, detail, formatDuration, emptyLabel, noBudgetLabel, size, ariaLabel, className, }: BudgetBarProps): react_jsx_runtime.JSX.Element;
2657
+ declare function BudgetBar({ label, elapsed, budget, grace, detail, formatDuration: formatDurationProp, emptyLabel: emptyLabelProp, noBudgetLabel: noBudgetLabelProp, size, ariaLabel, className, }: BudgetBarProps): react_jsx_runtime.JSX.Element;
2083
2658
 
2084
2659
  /**
2085
2660
  * The five shapes that carry meaning on a timeline, plus the flag that opens
@@ -2384,7 +2959,12 @@ interface TimelineTrackProps {
2384
2959
  /** Where the filled part of the rail stops. Defaults to the last item, never
2385
2960
  * past today; `null` draws no fill. With a thumb it follows the thumb. */
2386
2961
  fillToMs?: number | null;
2387
- /** "Now". Defaults to `Date.now()`, captured once so render stays idempotent. */
2962
+ /**
2963
+ * "Now". Defaults to `Date.now()`, captured once so render stays idempotent —
2964
+ * when the track mounts, or on a server-rendered page when hydration ends:
2965
+ * the server's clock is not the reader's, so the HTML it sends has no today
2966
+ * tick and the fill is not clipped to a today it cannot know.
2967
+ */
2388
2968
  todayMs?: number;
2389
2969
  /**
2390
2970
  * `'lanes'` packs every label into two rows and folds same-kind runs into
@@ -2936,7 +3516,7 @@ interface ProductionTimelineProps {
2936
3516
  * displayed snapshot. The same block serves the admin PP window and the
2937
3517
  * customer portal's order window, which feeds it order-level snapshots the
2938
3518
  * backend has already pro-rated to that customer. */
2939
- declare function ProductionTimeline({ snapshot, onPickReport, onOpenReport, onOpenMarker, renderReportPreview, onScrubProgress, heading, edgeCaptions, reportLabel, resetLabel, variant, onPlayStart, }: ProductionTimelineProps): react_jsx_runtime.JSX.Element | null;
3519
+ declare function ProductionTimeline({ snapshot, onPickReport, onOpenReport, onOpenMarker, renderReportPreview, onScrubProgress, heading: headingProp, edgeCaptions, reportLabel, resetLabel, variant, onPlayStart, }: ProductionTimelineProps): react_jsx_runtime.JSX.Element | null;
2940
3520
 
2941
3521
  /**
2942
3522
  * Date maths the timeline family shares — `MilestoneTimeline` (milestone dots
@@ -2952,8 +3532,13 @@ declare const DAY_MS = 86400000;
2952
3532
  * the last pixel.
2953
3533
  */
2954
3534
  declare function toDayMs(dateStr: string | null | undefined): number | null;
2955
- /** Format an epoch-ms value as a short date in the user's date format. */
2956
- declare function fmtSliderDate(ms: number): string;
3535
+ /**
3536
+ * Format an epoch-ms value as a short date in the user's date format — or, given
3537
+ * a locale (`useShellLocale()`), the way that locale writes a date. The timeline
3538
+ * components pass the provider's; without one this is the stored format, as it
3539
+ * always was.
3540
+ */
3541
+ declare function fmtSliderDate(ms: number, locale?: string): string;
2957
3542
 
2958
3543
  /** Default item shape — overridable via the accessor props for any other shape. */
2959
3544
  interface ContainerFillItem {
@@ -3302,7 +3887,7 @@ interface PopupMenuProps {
3302
3887
  portal?: boolean;
3303
3888
  }
3304
3889
  /** Container for a popup menu — auto-clamps to stay within viewport */
3305
- declare function PopupMenu({ children, style, className, onClose, minWidth, portal }: PopupMenuProps): react_jsx_runtime.JSX.Element;
3890
+ declare function PopupMenu({ children, style, className, onClose, minWidth, portal }: PopupMenuProps): react_jsx_runtime.JSX.Element | null;
3306
3891
  /** A clickable menu item */
3307
3892
  interface PopupMenuItemProps {
3308
3893
  onClick?: () => void;
@@ -3370,6 +3955,31 @@ declare function PopupMenuLabel({ children }: {
3370
3955
  *
3371
3956
  * (Historically `toast.info` rendered the top-right notification card; it now
3372
3957
  * renders a brief toast — that persistent card moved to `toast.notify`.)
3958
+ *
3959
+ * ── Built for a strict Content-Security-Policy ──
3960
+ *
3961
+ * Every node here is made with `createElement`/`createElementNS` and dressed
3962
+ * with CLASSES from ui.css (`.rosh-toast`, `.rosh-notif`…). There is no HTML
3963
+ * string, no `style="…"` attribute and no `on…=` handler anywhere in the
3964
+ * markup, and that is load-bearing rather than tidy:
3965
+ *
3966
+ * - An inline handler attribute is inline SCRIPT. Under any `script-src`
3967
+ * without `'unsafe-inline'` (a nonce-based policy, which is what Next.js
3968
+ * apps run) the browser refuses it and files a violation report. The
3969
+ * notification card's close button used to carry one for its hover colour,
3970
+ * so every `toast.notify` on such a site was a CSP report.
3971
+ * - A `style` attribute that arrives through markup is governed by
3972
+ * `style-src`; a policy with a nonce or a hash there ignores
3973
+ * `'unsafe-inline'` and drops it. Styles set through the CSSOM
3974
+ * (`el.style.opacity = …`) are not, which is why the enter/leave motion
3975
+ * below still writes `el.style` directly — that is the one dynamic part.
3976
+ * - No `innerHTML` also means nothing here needs a Trusted Types policy.
3977
+ *
3978
+ * The cost is that the toast's look now lives in ui.css, which every consumer
3979
+ * already imports (alone, or inside styles.css). Its colours are custom
3980
+ * properties there (`--rosh-toast-*`) with the values it always had, so a host
3981
+ * can restyle a toast without forking it.
3982
+ * `tests/strictCsp.test.ts` holds the DOM to all of this.
3373
3983
  */
3374
3984
  type ToastPlacement = 'top' | 'bottom';
3375
3985
  interface ToastOptions {
@@ -3639,7 +4249,7 @@ interface GlobalSearchProps extends Partial<SearchConfig> {
3639
4249
  */
3640
4250
  onSelect?: (result: SearchResult) => void;
3641
4251
  }
3642
- declare function GlobalSearch({ providers, typeIcons, placeholder, onSelect }?: GlobalSearchProps): react.ReactPortal | null;
4252
+ declare function GlobalSearch({ providers, typeIcons, placeholder: placeholderProp, onSelect }?: GlobalSearchProps): react.ReactPortal | null;
3643
4253
 
3644
4254
  /**
3645
4255
  * The shell's z-index scale — one map instead of literals scattered across the
@@ -3837,14 +4447,8 @@ interface KanbanProps<T> {
3837
4447
  /** Label for the per-column add button. */
3838
4448
  addItemText?: string;
3839
4449
  }
3840
- declare function Kanban<T>({ items, columns, columnOf, getId, onMove, renderCard, onCardClick, sortInColumn, isLoading, loadingText, emptyState, showColumnsWhenEmpty, columnEmptyText, onAddItem, addItemText, }: KanbanProps<T>): react_jsx_runtime.JSX.Element;
4450
+ declare function Kanban<T>({ items, columns, columnOf, getId, onMove, renderCard, onCardClick, sortInColumn, isLoading, loadingText: loadingTextProp, emptyState, showColumnsWhenEmpty, columnEmptyText: columnEmptyTextProp, onAddItem, addItemText: addItemTextProp, }: KanbanProps<T>): react_jsx_runtime.JSX.Element;
3841
4451
 
3842
- /**
3843
- * Pagination — a numbered page control for classic paginated tables/lists, with
3844
- * prev/next and optional first/last edges and ellipsis gaps. Controlled: the
3845
- * consumer owns `page` and updates it in `onPageChange`. Complements ListFooter
3846
- * (which shows counts/selection for infinite-scroll lists).
3847
- */
3848
4452
  interface PaginationProps {
3849
4453
  /** Current page, 1-based. */
3850
4454
  page: number;
@@ -4035,6 +4639,10 @@ interface ListFooterProps {
4035
4639
  * "[X selected — ] Y records"
4036
4640
  * "Y of Z records · Loading more..."
4037
4641
  * "All N records loaded"
4642
+ *
4643
+ * The sentences are the catalog's `list` section — functions of the counts, so
4644
+ * a host's own plural rules choose the words — and the separators (the em dash,
4645
+ * the middle dot) stay here, where they are typography rather than language.
4038
4646
  */
4039
4647
  declare function ListFooter({ selectedCount, loadedCount, totalCount, label, isFetchingMore, extra, }: ListFooterProps): react_jsx_runtime.JSX.Element;
4040
4648
 
@@ -5125,7 +5733,8 @@ declare function ErrorPage({ code, actions }: ErrorPageProps): react_jsx_runtime
5125
5733
 
5126
5734
  type Theme = 'system' | 'light' | 'dark' | 'pink' | 'green' | 'grey' | 'blue';
5127
5735
  /** Resolve a stored theme to the attribute value <html> actually carries
5128
- * ('system' follows the OS dark-mode media query). */
5736
+ * ('system' follows the OS dark-mode media query, and is 'light' on a server,
5737
+ * which has no OS setting to follow). */
5129
5738
  declare function resolveTheme(theme: string | null | undefined): string;
5130
5739
  /**
5131
5740
  * Imperatively apply a theme/accent/custom-color prefs snapshot to <html>.
@@ -5185,146 +5794,20 @@ declare function useLocalStoragePrefs(storageKey?: string, defaults?: Record<str
5185
5794
  * A caller that must know reads `useShellPrefsAdapter` instead. */
5186
5795
  declare function useShellPrefs(): ShellPrefsAdapter;
5187
5796
 
5188
- interface ShellStrings {
5189
- /** Window chrome: control tooltips and the title bar's accessible name. */
5190
- window: {
5191
- minimize: string;
5192
- /** Bring a hand-minimized window back — the tab's own control. */
5193
- restore: string;
5194
- maximize: string;
5195
- windowed: string;
5196
- pinOnTop: string;
5197
- unpin: string;
5198
- close: string;
5199
- /** Suffix of the title bar's aria-label: `"{title} — {windowSuffix}"`. */
5200
- windowSuffix: string;
5201
- prev: string;
5202
- next: string;
5203
- snapLayouts: string;
5204
- snapLeft: string;
5205
- snapRight: string;
5206
- snapTopLeft: string;
5207
- snapTopRight: string;
5208
- snapBottomLeft: string;
5209
- snapBottomRight: string;
5210
- };
5211
- /** Taskbar and exposé. */
5212
- taskbar: {
5213
- closeWindow: string;
5214
- offscreenHint: string;
5215
- offscreenDot: string;
5216
- expose: string;
5217
- addToDesktop: string;
5218
- removeFromDesktop: string;
5219
- /** Group menu — a taskbar tab standing for more than one window. The
5220
- * count is appended by the caller, e.g. "Close all (3)". */
5221
- minimizeAllWindows: string;
5222
- restoreAllWindows: string;
5223
- closeAllWindows: string;
5224
- };
5225
- /** The logout cover. */
5226
- logout: {
5227
- goodbye: string;
5228
- seeYou: string;
5229
- };
5230
- /** About + What's New dialogs. */
5231
- about: {
5232
- aboutPrefix: string;
5233
- thisApp: string;
5234
- openSourceLicenses: string;
5235
- whatsNew: string;
5236
- noChangelog: string;
5237
- };
5238
- /** Data-display defaults (DataTable, lists). */
5239
- table: {
5240
- empty: string;
5241
- loading: string;
5242
- selectAll: string;
5243
- selectRow: string;
5244
- };
5245
- /** Picker defaults (SearchableSelect, TagInput). */
5246
- select: {
5247
- none: string;
5248
- noMatches: string;
5249
- allSelected: string;
5250
- clear: string;
5251
- /** aria-label of a TagInput chip's remove button: `"{remove} {label}"`. */
5252
- remove: string;
5253
- };
5254
- /** Notification bell + popup. */
5255
- notifications: {
5256
- title: string;
5257
- markAllRead: string;
5258
- dnd: string;
5259
- dndOn: string;
5260
- caughtUp: string;
5261
- empty: string;
5262
- viewAll: string;
5263
- cardLabel: string;
5264
- dismiss: string;
5265
- };
5266
- /** Form-level messages. */
5267
- form: {
5268
- errorSummaryTitle: string;
5269
- };
5270
- /** HelpCenter chrome. */
5271
- help: {
5272
- title: string;
5273
- searchPlaceholder: string;
5274
- empty: string;
5275
- noResults: string;
5276
- loading: string;
5277
- pickArticle: string;
5278
- noBody: string;
5279
- draft: string;
5280
- newArticle: string;
5281
- edit: string;
5282
- };
5283
- /** The app-update banner (a deploy happened under a long-lived tab). */
5284
- update: {
5285
- available: string;
5286
- refreshNow: string;
5287
- };
5288
- /** The page-tab strip (`react-os-shell/page-tabs`). */
5289
- pageTabs: {
5290
- /** The strip's accessible name. */
5291
- label: string;
5292
- /** A tab's close button, and the menu item: `"{close} {title}"` for the button. */
5293
- close: string;
5294
- closeOthers: string;
5295
- closeRight: string;
5296
- closeAll: string;
5297
- /** Marks a tab with unsaved changes (the dot's accessible text). */
5298
- unsaved: string;
5299
- /** Asked before a tab with unsaved changes closes. */
5300
- discardTitle: string;
5301
- discardOne: string;
5302
- /** Several at once — the count is prefixed by the caller: "3 pages have…". */
5303
- discardMany: string;
5304
- discardConfirm: string;
5305
- keepEditing: string;
5306
- };
5307
- }
5308
- declare const DEFAULT_SHELL_STRINGS: ShellStrings;
5309
- /** A per-section partial: override any subset of a section's strings. */
5310
- type ShellStringsOverride = {
5311
- [S in keyof ShellStrings]?: Partial<ShellStrings[S]>;
5312
- };
5313
- /**
5314
- * Mount once, near the top of the app. `value` is a partial — sections and
5315
- * keys you do not translate keep their English defaults, so a catalog never
5316
- * breaks by falling behind a release.
5317
- */
5318
- declare function ShellStringsProvider({ value, children }: {
5319
- value: ShellStringsOverride;
5320
- children: ReactNode;
5321
- }): react_jsx_runtime.JSX.Element;
5322
- /** The active catalog — English defaults when no provider is mounted. */
5323
- declare function useShellStrings(): ShellStrings;
5324
-
5325
5797
  /** Frosted glass style — shared across all menus, popups, and glass UI elements.
5326
5798
  * Reads --menu-opacity CSS variable set by the theme system, and adapts the
5327
- * base tint to dark mode so menus don't stay light-cream when text is light. */
5799
+ * base tint to dark mode so menus don't stay light-cream when text is light.
5800
+ *
5801
+ * Every colour is a token from ui.css ("Kit colours" there), so a host can
5802
+ * restyle the popups without forking this: the surface they are tinted from
5803
+ * (`--rosh-glass-surface`, which reads `--surface`), the stop across the middle,
5804
+ * the edge and the depth. Each token's default is the literal this function
5805
+ * used to write, in both themes. The numbers stay here — the alphas follow
5806
+ * `--menu-opacity`, which is read per call, and the blur differs by theme.
5807
+ *
5808
+ * To make every popup SOLID in the host's own surface colour, put
5809
+ * `rosh-reduce-transparency` on <html>: the branch below then paints one opaque
5810
+ * `--rosh-glass-surface`, and the stylesheet drops every backdrop blur. */
5328
5811
  declare function glassStyle(opacity?: number): CSSProperties;
5329
5812
  /** Glass divider border color */
5330
5813
  declare const GLASS_DIVIDER = "border-white/20";
@@ -5434,41 +5917,58 @@ declare function isStaleChunkError(error: unknown): boolean;
5434
5917
  */
5435
5918
  declare function installStaleChunkReload(options?: StaleChunkReloadOptions): () => void;
5436
5919
 
5920
+ interface FormatDateOptions {
5921
+ /**
5922
+ * A BCP 47 tag — usually `useShellLocale()`. With one, the date is written by
5923
+ * `Intl.DateTimeFormat` in that locale and the stored `user_date_format` is
5924
+ * not read; without one, the stored format decides, as it always has.
5925
+ */
5926
+ locale?: string;
5927
+ /**
5928
+ * How a localised date is written. Defaults to `{ dateStyle: 'medium' }` —
5929
+ * `Oct 2, 2026`, `02.10.2026`, `2026/10/02`. Ignored without `locale`, and
5930
+ * the time zone is always UTC, because the value is a calendar day rather
5931
+ * than an instant (see `formatDate`).
5932
+ */
5933
+ style?: Intl.DateTimeFormatOptions;
5934
+ }
5437
5935
  /**
5438
5936
  * Format a date string (YYYY-MM-DD or ISO timestamp) for display.
5439
5937
  * Returns '—' for null/empty values.
5938
+ *
5939
+ * Only the DATE part of a timestamp is read, with or without a locale: the
5940
+ * value is treated as the calendar day it names, never as an instant to be
5941
+ * moved into the reader's time zone (which would print the 1st as the 31st
5942
+ * anywhere west of Greenwich). The localised path builds that day at UTC
5943
+ * midnight and formats it in UTC for the same reason.
5440
5944
  */
5441
- declare function formatDate(value: string | null | undefined): string;
5945
+ declare function formatDate(value: string | null | undefined, options?: FormatDateOptions): string;
5442
5946
 
5443
5947
  declare function useClickOutside(ref: RefObject<HTMLElement | null>, onClose: () => void): void;
5444
5948
 
5445
5949
  declare function useIsMobile(): boolean;
5446
5950
 
5447
5951
  /**
5448
- * Keyboard shortcuts: the platform-aware STRINGS a shortcut is written with,
5449
- * and the badge that renders one.
5450
- *
5451
- * Both live here because they are one concept — a shortcut nobody can see is
5452
- * not a shortcut — and because the strings came first: the constants have
5453
- * shipped for years and the badge around them was left to each consumer, which
5454
- * is how the admin portal ended up with 109 hand-written `<kbd>` elements
5455
- * across 80 files in two different sizes.
5952
+ * Whether the READER is on a Mac. Fixed when the module loads, and `false` on a
5953
+ * server whatever the server runs on: Node has had a global `navigator` since
5954
+ * 21, and its `platform` is the machine's own — a guard on `navigator` alone
5955
+ * let a Mac server write \u2318 into HTML for every reader it served.
5456
5956
  */
5457
5957
  declare const isMac: boolean;
5458
5958
  /** Platform-aware modifier symbols */
5459
- declare const MOD: string;
5460
- declare const ALT: string;
5959
+ declare const MOD: "⌘" | "Ctrl";
5960
+ declare const ALT: "Alt" | "⌥";
5461
5961
  declare const SHIFT = "\u21E7";
5462
5962
  declare const ENTER = "\u23CE";
5463
5963
  /** Common shortcut labels */
5464
- declare const CMD_ENTER: string;
5465
- declare const CMD_S: string;
5466
- declare const CMD_K: string;
5467
- declare const CMD_DOT: string;
5468
- declare const CMD_A: string;
5469
- declare const ALT_SHIFT_D: string;
5470
- declare const ALT_SHIFT_E: string;
5471
- declare const ALT_SHIFT_N: string;
5964
+ declare const CMD_ENTER: "⌘⏎" | "Ctrl⏎";
5965
+ declare const CMD_S: "⌘S" | "Ctrl+S";
5966
+ declare const CMD_K: "⌘K" | "Ctrl+K";
5967
+ declare const CMD_DOT: "⌘." | "Ctrl+.";
5968
+ declare const CMD_A: "⌘A" | "Ctrl+A";
5969
+ declare const ALT_SHIFT_D: "⌥⇧D" | "Alt+Shift+D";
5970
+ declare const ALT_SHIFT_E: "⌥⇧E" | "Alt+Shift+E";
5971
+ declare const ALT_SHIFT_N: "⌥⇧N" | "Alt+Shift+N";
5472
5972
  type KbdSize = 'sm' | 'md';
5473
5973
  interface KbdProps {
5474
5974
  /**
@@ -5799,9 +6299,9 @@ declare function autoHighlightIndex(values: (number | null | undefined)[], mode?
5799
6299
 
5800
6300
  declare function usePlotWidth(ref: RefObject<HTMLElement | null>, fallback?: number): number;
5801
6301
 
5802
- declare function RankedBars({ rows, max, formatValue, emphasisKey, highlight, emphasisTone, barHeight, rowGap, animate, className, emptyLabel, }: RankedBarsProps): react_jsx_runtime.JSX.Element;
6302
+ declare function RankedBars({ rows, max, formatValue: formatValueProp, emphasisKey, highlight, emphasisTone, barHeight, rowGap, animate, className, emptyLabel: emptyLabelProp, }: RankedBarsProps): react_jsx_runtime.JSX.Element;
5803
6303
 
5804
- declare function Meter({ value, segments, objective, label, detail, formatValue, tone, className, unavailableLabel, }: MeterProps): react_jsx_runtime.JSX.Element;
6304
+ declare function Meter({ value, segments, objective, label, detail, formatValue: formatValueProp, tone, className, unavailableLabel: unavailableLabelProp, }: MeterProps): react_jsx_runtime.JSX.Element;
5805
6305
 
5806
6306
  declare function StatTile({ label, value, unit, delta, deltaTone, trend, trendTone, footnote, className, }: StatTileProps): react_jsx_runtime.JSX.Element;
5807
6307
 
@@ -5809,7 +6309,7 @@ declare function ChartFrame({ title, subtitle, legend, table, tableLabel, busy,
5809
6309
 
5810
6310
  declare function ChartTooltip({ variant, title, rows, footnote, emphasisKey, className, }: ChartTooltipProps): react_jsx_runtime.JSX.Element;
5811
6311
 
5812
- declare function ChartSkeleton({ height, width, variant, bars, label, className, }: ChartSkeletonProps): react_jsx_runtime.JSX.Element;
6312
+ declare function ChartSkeleton({ height, width, variant, bars, label: labelProp, className, }: ChartSkeletonProps): react_jsx_runtime.JSX.Element;
5813
6313
 
5814
6314
  declare function ChartDot({ cx, cy, color, variant, pulse, title, }: ChartDotProps): react_jsx_runtime.JSX.Element;
5815
6315
 
@@ -5857,48 +6357,48 @@ interface CartesianPlotProps {
5857
6357
  className?: string;
5858
6358
  emptyLabel?: string;
5859
6359
  }
5860
- declare function CartesianPlot({ labels, values, height, width: widthProp, bandPadding, min, max, yTickCount, formatValue, yAxisLabel, xTickAnchor, children, tooltip, ariaLabel, className, emptyLabel, }: CartesianPlotProps): react_jsx_runtime.JSX.Element;
6360
+ declare function CartesianPlot({ labels, values, height, width: widthProp, bandPadding, min, max, yTickCount, formatValue: formatValueProp, yAxisLabel, xTickAnchor, children, tooltip, ariaLabel, className, emptyLabel: emptyLabelProp, }: CartesianPlotProps): react_jsx_runtime.JSX.Element;
5861
6361
 
5862
- declare function TimeSeriesChart({ series, labels, height, stacked, stackMode, levels, curve, tension, max, yTickCount, formatValue, yAxisLabel, referenceLines, labelEndpoints, dots, dotVariant, pulse, brush, range, onRangeChange, loading, animate, reveal, fillVariant, gridStyle, width: widthProp, className, emptyLabel, }: TimeSeriesChartProps): react_jsx_runtime.JSX.Element;
6362
+ declare function TimeSeriesChart({ series, labels, height, stacked, stackMode, levels, curve, tension, max, yTickCount, formatValue: formatValueProp, yAxisLabel, referenceLines, labelEndpoints, dots, dotVariant, pulse, brush, range, onRangeChange, loading, animate, reveal, fillVariant, gridStyle, width: widthProp, className, emptyLabel: emptyLabelProp, }: TimeSeriesChartProps): react_jsx_runtime.JSX.Element;
5863
6363
 
5864
- declare function ColumnChart({ series, labels, stacked, stackMode, height, width, max, formatValue, yAxisLabel, className, emptyLabel, radius, loading, animate, glow, emphasise, activeKey, highlight, }: ColumnChartProps): react_jsx_runtime.JSX.Element;
6364
+ declare function ColumnChart({ series, labels, stacked, stackMode, height, width, max, formatValue: formatValueProp, yAxisLabel, className, emptyLabel, radius, loading, animate, glow, emphasise, activeKey, highlight, }: ColumnChartProps): react_jsx_runtime.JSX.Element;
5865
6365
 
5866
6366
  /** All-pairs colour separation holds for three slots, not eight. */
5867
6367
  declare const SCATTER_SERIES_CAP = 3;
5868
- declare function ScatterChart({ series, height, width: widthProp, xLabel, yLabel, formatX, formatY, xDomain, yDomain, xScale, yScale, radiusRange, className, emptyLabel, }: ScatterChartProps): react_jsx_runtime.JSX.Element;
6368
+ declare function ScatterChart({ series, height, width: widthProp, xLabel, yLabel, formatX: formatXProp, formatY: formatYProp, xDomain, yDomain, xScale, yScale, radiusRange, className, emptyLabel: emptyLabelProp, }: ScatterChartProps): react_jsx_runtime.JSX.Element;
5869
6369
 
5870
- declare function RangeChart({ rows, labels, variant, curve, height, width, max, min, formatValue, yAxisLabel, color, tone, label, className, emptyLabel, radius, }: RangeChartProps): react_jsx_runtime.JSX.Element;
6370
+ declare function RangeChart({ rows, labels, variant, curve, height, width, max, min, formatValue: formatValueProp, yAxisLabel, color, tone, label: labelProp, className, emptyLabel, radius, }: RangeChartProps): react_jsx_runtime.JSX.Element;
5871
6371
 
5872
- declare function WaterfallChart({ steps, height, width, formatValue, yAxisLabel, className, emptyLabel, radius, connectors, }: WaterfallChartProps): react_jsx_runtime.JSX.Element;
6372
+ declare function WaterfallChart({ steps, height, width, formatValue: formatValueProp, yAxisLabel, className, emptyLabel, radius, connectors, }: WaterfallChartProps): react_jsx_runtime.JSX.Element;
5873
6373
 
5874
- declare function HistogramChart({ values, bins, precomputed, height, width, color, tone, formatBound, formatCount, yAxisLabel, label, className, emptyLabel, }: HistogramChartProps): react_jsx_runtime.JSX.Element;
6374
+ declare function HistogramChart({ values, bins, precomputed, height, width, color, tone, formatBound: formatBoundProp, formatCount: formatCountProp, yAxisLabel: yAxisLabelProp, label: labelProp, className, emptyLabel, }: HistogramChartProps): react_jsx_runtime.JSX.Element;
5875
6375
 
5876
- declare function BoxPlotChart({ boxes, height, width, color, tone, formatValue, yAxisLabel, label, className, emptyLabel, }: BoxPlotChartProps): react_jsx_runtime.JSX.Element;
6376
+ declare function BoxPlotChart({ boxes, height, width, color, tone, formatValue: formatValueProp, yAxisLabel, label: labelProp, className, emptyLabel, }: BoxPlotChartProps): react_jsx_runtime.JSX.Element;
5877
6377
 
5878
- declare function CandlestickChart({ candles, variant, height, width, formatValue, yAxisLabel, label, className, emptyLabel, }: CandlestickChartProps): react_jsx_runtime.JSX.Element;
6378
+ declare function CandlestickChart({ candles, variant, height, width, formatValue: formatValueProp, yAxisLabel, label: labelProp, className, emptyLabel, }: CandlestickChartProps): react_jsx_runtime.JSX.Element;
5879
6379
 
5880
- declare function HeatmapChart({ rows, columns, cells, height, width: widthProp, color, max, formatValue, label, className, emptyLabel, cellGap, cellRadius, }: HeatmapChartProps): react_jsx_runtime.JSX.Element;
6380
+ declare function HeatmapChart({ rows, columns, cells, height, width: widthProp, color, max, formatValue: formatValueProp, label: labelProp, className, emptyLabel: emptyLabelProp, cellGap, cellRadius, }: HeatmapChartProps): react_jsx_runtime.JSX.Element;
5881
6381
 
5882
6382
  /** All-pairs colour separation holds for three slots, not eight. */
5883
6383
  declare const RADAR_SERIES_CAP = 3;
5884
- declare function RadarChart({ axes, series, size, mode, grid, rings, formatValue, animate, className, emptyLabel, }: RadarChartProps): react_jsx_runtime.JSX.Element;
6384
+ declare function RadarChart({ axes, series, size, mode, grid, rings, formatValue: formatValueProp, animate, className, emptyLabel: emptyLabelProp, }: RadarChartProps): react_jsx_runtime.JSX.Element;
5885
6385
 
5886
- declare function PieChart({ segments, variant, size, innerRadius, padAngle, maxSegments, otherLabel, formatValue, centerLabel, animate, labels, labelMinShare, className, emptyLabel, }: PieChartProps): react_jsx_runtime.JSX.Element;
6386
+ declare function PieChart({ segments, variant, size, innerRadius, padAngle, maxSegments, otherLabel: otherLabelProp, formatValue: formatValueProp, centerLabel, animate, labels, labelMinShare, className, emptyLabel: emptyLabelProp, }: PieChartProps): react_jsx_runtime.JSX.Element;
5887
6387
 
5888
- declare function RadialBarChart({ rows, variant, size, max, formatValue, animate, className, emptyLabel, trackGap, }: RadialBarChartProps): react_jsx_runtime.JSX.Element;
6388
+ declare function RadialBarChart({ rows, variant, size, max, formatValue: formatValueProp, animate, className, emptyLabel: emptyLabelProp, trackGap, }: RadialBarChartProps): react_jsx_runtime.JSX.Element;
5889
6389
 
5890
- declare function FunnelChart({ stages, shape, height, width, gap, formatValue, color, className, emptyLabel, }: FunnelChartProps): react_jsx_runtime.JSX.Element;
6390
+ declare function FunnelChart({ stages, shape, height, width, gap, formatValue: formatValueProp, color, className, emptyLabel: emptyLabelProp, }: FunnelChartProps): react_jsx_runtime.JSX.Element;
5891
6391
 
5892
- declare function TreemapChart({ items, height, width: widthProp, gap, radius, formatValue, color, className, emptyLabel, }: TreemapChartProps): react_jsx_runtime.JSX.Element;
6392
+ declare function TreemapChart({ items, height, width: widthProp, gap, radius, formatValue: formatValueProp, color, className, emptyLabel: emptyLabelProp, }: TreemapChartProps): react_jsx_runtime.JSX.Element;
5893
6393
 
5894
- declare function SunburstChart({ nodes, size, innerRadius, ringGap, formatValue, centerLabel, className, emptyLabel, }: SunburstChartProps): react_jsx_runtime.JSX.Element;
6394
+ declare function SunburstChart({ nodes, size, innerRadius, ringGap, formatValue: formatValueProp, centerLabel, className, emptyLabel: emptyLabelProp, }: SunburstChartProps): react_jsx_runtime.JSX.Element;
5895
6395
 
5896
- declare function SankeyChart({ nodes, links, height, width: widthProp, nodeWidth, nodePadding, formatValue, className, emptyLabel, }: SankeyChartProps): react_jsx_runtime.JSX.Element;
6396
+ declare function SankeyChart({ nodes, links, height, width: widthProp, nodeWidth, nodePadding, formatValue: formatValueProp, className, emptyLabel: emptyLabelProp, }: SankeyChartProps): react_jsx_runtime.JSX.Element;
5897
6397
 
5898
- declare function ChordChart({ labels, matrix, size, maxNodes, padAngle, arcWidth, formatValue, className, emptyLabel, }: ChordChartProps): react_jsx_runtime.JSX.Element;
6398
+ declare function ChordChart({ labels, matrix, size, maxNodes, padAngle, arcWidth, formatValue: formatValueProp, className, emptyLabel: emptyLabelProp, }: ChordChartProps): react_jsx_runtime.JSX.Element;
5899
6399
 
5900
6400
  /** Package version, injected by tsup at build time. Stays as an empty
5901
6401
  * string when the source is consumed without a build (e.g. tests). */
5902
6402
  declare const VERSION: string;
5903
6403
 
5904
- export { type BudgetBarProps as $, ALT as A, type BackgroundVariant as B, type ColumnDef as C, type BandScale as D, Banner as E, type BannerEmphasis as F, type BannerProps as G, type BannerTone as H, BarChart as I, type BarChartProps as J, type BoxPlotBox as K, BoxPlotChart as L, type BoxPlotChartProps as M, BrandAssetEditor as N, type BrandAssetEditorProps as O, type PaginatedResponse as P, type BrandAssetPreview as Q, BrandMark as R, type SearchConfig as S, type BrandMarkProps as T, type BrandMarkSlot as U, type BrandMarkSurface as V, type BrandMarkTreatment as W, type BreadcrumbItem as X, Breadcrumbs as Y, type BreadcrumbsProps as Z, BudgetBar as _, type SortState as a, type ContainerFillChartProps as a$, type BudgetState as a0, Button as a1, type ButtonProps as a2, type ButtonSize as a3, type ButtonVariant as a4, CHART_INK as a5, CMD_A as a6, CMD_DOT as a7, CMD_ENTER as a8, CMD_K as a9, type ChartLegendEntry as aA, type ChartLegendSwatch as aB, type ChartRange as aC, type ChartReferenceLine as aD, type ChartRevealDirection as aE, ChartSkeleton as aF, type ChartSkeletonProps as aG, type ChartStatusTone as aH, type ChartStrokeVariant as aI, ChartTooltip as aJ, type ChartTooltipProps as aK, type ChartTooltipRow as aL, ChatTemplate as aM, Checkbox as aN, type CheckboxProps as aO, CheckoutTemplate as aP, ChordChart as aQ, type ChordChartProps as aR, ColoredBadge as aS, type ColoredBadgeProps as aT, ColumnChart as aU, type ColumnChartProps as aV, type ColumnSeries as aW, ComposerAttachments as aX, type ComposerAttachmentsProps as aY, ConfirmProvider as aZ, ContainerFillChart as a_, CMD_S as aa, Calendar as ab, type CalendarMode as ac, type CalendarProps as ad, type Candle as ae, CandlestickChart as af, type CandlestickChartProps as ag, Card as ah, type CardPadding as ai, type CardProps as aj, CartesianPlot as ak, type CartesianPlotProps as al, type CellStyle as am, type ChartBackgroundVariant as an, ChartBrush as ao, type ChartBrushProps as ap, type ChartCurve as aq, ChartDefs as ar, type ChartDefsProps as as, ChartDot as at, type ChartDotProps as au, type ChartDotVariant as av, type ChartFillVariant as aw, ChartFrame as ax, type ChartFrameProps as ay, ChartHighlightProvider as az, ALT_SHIFT_D as b, FunnelChart as b$, type ContainerFillItem as b0, CountBadge as b1, type CountBadgeProps as b2, type CountBadgeTone as b3, type Curve as b4, DAY_MS as b5, DEFAULT_SHELL_STRINGS as b6, DashboardTemplate as b7, DataTable as b8, type DataTableColumn as b9, type DrawerSize as bA, DropdownMenu as bB, type DropdownMenuAlign as bC, type DropdownMenuItem as bD, type DropdownMenuProps as bE, type DropdownMenuSide as bF, type DropdownPositionOptions as bG, ENTER as bH, EditableGrid as bI, type EditableGridProps as bJ, EmailTemplate as bK, EmptyState as bL, type EmptyStateProps as bM, ErrorBoundary as bN, type ErrorBoundaryProps as bO, ErrorPage as bP, type ErrorPageProps as bQ, type FileIntake as bR, FilePicker as bS, type FilePickerProps as bT, type FillVariant as bU, type FormError as bV, FormErrorSummary as bW, type FormErrorSummaryProps as bX, FormField as bY, type FormFieldProps as bZ, FormLayoutPage as b_, type DataTableColumnGroup as ba, type DataTableHeader as bb, DataTablePage as bc, type DataTableProps as bd, DatePicker as be, type DatePickerProps as bf, DateRangePicker as bg, type DateRangePickerProps as bh, DateTimePicker as bi, type DateTimePickerProps as bj, type DescriptionColumns as bk, type DescriptionItem as bl, DescriptionList as bm, type DescriptionListProps as bn, Dialog as bo, type DialogProps as bp, type DialogSize as bq, Divider as br, type DividerProps as bs, type DividerSpacing as bt, DonutChart as bu, type DonutChartProps as bv, type DonutSegment as bw, Drawer as bx, type DrawerProps as by, type DrawerSide as bz, ALT_SHIFT_E as c, type MenuPos as c$, type FunnelChartProps as c0, type FunnelStage as c1, GLASS_DIVIDER as c2, GLASS_INPUT_BG as c3, GROUP_COLORS as c4, GROUP_COLORS_SOLID as c5, GalleryTemplate as c6, type Gap as c7, GlobalSearch as c8, type GlobalSearchProps as c9, type KanbanProps as cA, Kbd as cB, type KbdProps as cC, type KbdSize as cD, Label as cE, type LabelProps as cF, type LadderScale as cG, LineChart as cH, type LineChartProps as cI, type LineChartSeries as cJ, type LinearScale as cK, ListFooter as cL, ListLoadError as cM, type ListLoadErrorProps as cN, LoadingSpinner as cO, type LoadingSpinnerProps as cP, MAX_FRACTION_DIGITS as cQ, MENU_MAX_HEIGHT as cR, MOD as cS, MOTION as cT, Markdown as cU, type MarkdownProps as cV, MediaUploadField as cW, type MediaUploadFieldProps as cX, MediaUploadGrid as cY, type MediaUploadGridItem as cZ, type MediaUploadGridProps as c_, Grid as ca, type GridCols as cb, type GridColumn as cc, type GridProps as cd, HeatmapChart as ce, type HeatmapChartProps as cf, HelpCenter as cg, type HelpCenterDoc as ch, type HelpCenterProps as ci, type HistogramBin as cj, HistogramChart as ck, type HistogramChartProps as cl, INPUT_BASE as cm, INPUT_SIZES as cn, IconButton as co, type IconButtonProps as cp, Inline as cq, type InlineProps as cr, Input as cs, InputNumber as ct, type InputNumberProps as cu, type InputProps as cv, type InputSize as cw, type Justify as cx, Kanban as cy, type KanbanColumn as cz, ALT_SHIFT_N as d, RankedBars as d$, Meter as d0, type MeterProps as d1, MetricBar as d2, type MetricBarProps as d3, type Milestone as d4, type MilestoneKind as d5, MilestoneTimeline as d6, type MilestoneTimelineProps as d7, NEXT_CHUNK_PATH_PREFIX as d8, NativeSelect as d9, type PortalBrandingContextValue as dA, PortalBrandingProvider as dB, type PortalBrandingProviderProps as dC, ProductionTimeline as dD, type ProductionTimelineProps as dE, type ProductionTimelineSnapshot as dF, type ProgressItem as dG, type PublicPortal as dH, type PublicPortalBranding as dI, RADAR_SERIES_CAP as dJ, type RadarAxis as dK, RadarChart as dL, type RadarChartProps as dM, type RadarSeries as dN, RadialBarChart as dO, type RadialBarChartProps as dP, type RadialBarRow as dQ, Radio as dR, RadioGroup as dS, type RadioGroupOption as dT, type RadioGroupOrientation as dU, type RadioGroupProps as dV, type RadioProps as dW, type Range as dX, RangeChart as dY, type RangeChartProps as dZ, type RangeRow as d_, NumericKeypad as da, type NumericKeypadProps as db, OVERLAY_OPEN_EVENT as dc, POPUP_MAX_WIDTH as dd, POST_PRODUCTION_STATUSES as de, PageHeader as df, type PageHeaderProps as dg, Pagination as dh, type PaginationProps as di, PaperclipGlyph as dj, Paragraph as dk, type ParagraphProps as dl, PieChart as dm, type PieChartProps as dn, type PieSegment as dp, type PlotGeometry as dq, type Point as dr, PopupMenu as ds, PopupMenuDivider as dt, PopupMenuItem as du, type PopupMenuItemProps as dv, PopupMenuLabel as dw, type PopupMenuProps as dx, PopupSubmenu as dy, type PopupSubmenuProps as dz, APP_UPDATE_POLL_MS as e, StatCard as e$, type RankedBarsProps as e0, type RankedBarsRow as e1, type ResolvedPortalBrandAsset as e2, Result as e3, type ResultProps as e4, type ResultStatus as e5, type RevealDirection as e6, SCATTER_SERIES_CAP as e7, SERIES_SLOT_COUNT as e8, SERIES_VARS as e9, SettingRow as eA, type SettingRowProps as eB, type SeverityTone as eC, type ShellPrefsAdapter as eD, ShellPrefsProvider as eE, type ShellStrings as eF, type ShellStringsOverride as eG, ShellStringsProvider as eH, SidebarActionButton as eI, type SidebarActionButtonProps as eJ, SidebarGroupLabel as eK, SidebarLayout as eL, type SidebarLayoutProps as eM, SidebarNavItem as eN, type SidebarNavItemProps as eO, Skeleton as eP, type SkeletonProps as eQ, type SkeletonVariant as eR, Snippet as eS, type SnippetProps as eT, type SnippetSize as eU, type SnippetVariant as eV, Sparkline as eW, type SparklineProps as eX, Stack as eY, type StackProps as eZ, type StaleChunkReloadOptions as e_, SHIFT as ea, STAGES as eb, STALE_CHUNK_RELOAD_COOLDOWN_MS as ec, STALE_CHUNK_RELOAD_KEY as ed, STATUS_VARS as ee, SankeyChart as ef, type SankeyChartProps as eg, type SankeyLink as eh, type SankeyNode as ei, ScatterChart as ej, type ScatterChartProps as ek, type ScatterPoint as el, type ScatterSeries as em, type SearchProvider as en, type SearchResult as eo, type SearchableOption as ep, SearchableSelect as eq, type SearchableSelectProps as er, Segmented as es, type SegmentedOption as et, type SegmentedProps as eu, type SegmentedSize as ev, Select as ew, type SelectOption as ex, type SelectProps as ey, type SemanticGroup as ez, Accordion as f, type TopNavProps as f$, type StatCardProps as f0, StatTile as f1, type StatTileProps as f2, Statistic as f3, type StatisticProps as f4, type StatisticSize as f5, type StatisticTone as f6, StatusBadge as f7, StatusBadgeProvider as f8, type StatusEmphasis as f9, type TileSize as fA, TimePicker as fB, type TimePickerProps as fC, TimeSeriesChart as fD, type TimeSeriesChartProps as fE, type TimeSeriesSeries as fF, type TimelineMarker as fG, type TimelineMarkerKind as fH, type TimelineReport as fI, type TimelineScrubProgress as fJ, TimelineTrack as fK, type TimelineTrackItem as fL, type TimelineTrackKind as fM, type TimelineTrackPending as fN, type TimelineTrackPhase as fO, type TimelineTrackPlayback as fP, type TimelineTrackProps as fQ, type TimelineTrackThumb as fR, Title as fS, type TitleLevel as fT, type TitleProps as fU, type ToastOptions as fV, type ToastPlacement as fW, Tooltip as fX, type TooltipProps as fY, TopNav as fZ, type TopNavItem as f_, type StepItem as fa, Stepper as fb, type StepperProps as fc, type StrokeVariant as fd, SunburstChart as fe, type SunburstChartProps as ff, type SunburstNode as fg, Switch as fh, type SwitchProps as fi, type SwitchSize as fj, type TabItem as fk, Tabs as fl, type TabsProps as fm, TagInput as fn, type TagInputOption as fo, type TagInputProps as fp, Text as fq, type TextProps as fr, type TextSize as fs, type TextTone as ft, type TextWeight as fu, Textarea as fv, type TextareaProps as fw, type Theme as fx, TileButton as fy, type TileButtonProps as fz, type AccordionItem as g, seriesColor as g$, TreemapChart as g0, type TreemapChartProps as g1, type TreemapItem as g2, type TreemapTile as g3, type UseAppUpdateOptions as g4, type UseProductionTimelineOpts as g5, VERSION as g6, VITE_PRELOAD_ERROR_EVENT as g7, WaterfallChart as g8, type WaterfallChartProps as g9, fromKey as gA, glassStyle as gB, glowId as gC, groundId as gD, groupColors as gE, highlightOpacity as gF, inputClasses as gG, installStaleChunkReload as gH, isMac as gI, isSeverityTone as gJ, isStaleChunkError as gK, ladderScale as gL, linearPath as gM, linearScale as gN, logScale as gO, maskId as gP, mediaFileName as gQ, monotonePath as gR, niceMax as gS, polygonPoints as gT, popupBounds as gU, prompt as gV, radiusScale as gW, resolveBrandMarkTreatment as gX, resolvePortalBrandAsset as gY, resolveSeriesColor as gZ, resolveTheme as g_, type WaterfallStep as ga, type ZLayer as gb, Z_LAYERS as gc, angleScale as gd, appendKey as ge, applyThemePrefs as gf, arcPath as gg, areaBetween as gh, areaFrom as gi, autoHighlightIndex as gj, backspace as gk, bandScale as gl, binValues as gm, budgetState as gn, bumpPath as go, calcOverall as gp, calcReportOverall as gq, confirm as gr, confirmDestructive as gs, curvePath as gt, dashFor as gu, dismissPopups as gv, fillFor as gw, fillId as gx, fmtSliderDate as gy, formatDate as gz, type AccordionProps as h, severityOf as h0, splinePath as h1, squarify as h2, stagger as h3, stepPath as h4, tabButtonId as h5, tabPanelId as h6, toKey as h7, toDayMs as h8, toISODate as h9, toast as ha, useAppUpdate as hb, useClickOutside as hc, useConfirm as hd, useDropdownPosition as he, useFocusTrap as hf, useHighlight as hg, useIsMobile as hh, useLocalStoragePrefs as hi, usePlotWidth as hj, usePortalBranding as hk, useProductionTimeline as hl, useScrollLock as hm, useShellPrefs as hn, useShellStrings as ho, useTheme as hp, type Align as i, type AngleScale as j, AppUpdateBanner as k, type AppUpdateBannerProps as l, AttachButton as m, type AttachButtonProps as n, AttachmentDropZone as o, type AttachmentDropZoneProps as p, AttachmentList as q, type AttachmentListProps as r, AuthScreen as s, type AuthScreenProps as t, Avatar as u, AvatarGroup as v, type AvatarGroupProps as w, type AvatarProps as x, type AvatarSize as y, type AvatarStatus as z };
6404
+ export { type BudgetBarProps as $, ALT as A, type BackgroundVariant as B, type ColumnDef as C, type BandScale as D, Banner as E, type BannerEmphasis as F, type BannerProps as G, type BannerTone as H, BarChart as I, type BarChartProps as J, type BoxPlotBox as K, BoxPlotChart as L, type BoxPlotChartProps as M, BrandAssetEditor as N, type BrandAssetEditorProps as O, type PaginatedResponse as P, type BrandAssetPreview as Q, BrandMark as R, type SearchConfig as S, type BrandMarkProps as T, type BrandMarkSlot as U, type BrandMarkSurface as V, type BrandMarkTreatment as W, type BreadcrumbItem as X, Breadcrumbs as Y, type BreadcrumbsProps as Z, BudgetBar as _, type SortState as a, type ContainerFillChartProps as a$, type BudgetState as a0, Button as a1, type ButtonProps as a2, type ButtonSize as a3, type ButtonVariant as a4, CHART_INK as a5, CMD_A as a6, CMD_DOT as a7, CMD_ENTER as a8, CMD_K as a9, type ChartLegendEntry as aA, type ChartLegendSwatch as aB, type ChartRange as aC, type ChartReferenceLine as aD, type ChartRevealDirection as aE, ChartSkeleton as aF, type ChartSkeletonProps as aG, type ChartStatusTone as aH, type ChartStrokeVariant as aI, ChartTooltip as aJ, type ChartTooltipProps as aK, type ChartTooltipRow as aL, ChatTemplate as aM, Checkbox as aN, type CheckboxProps as aO, CheckoutTemplate as aP, ChordChart as aQ, type ChordChartProps as aR, ColoredBadge as aS, type ColoredBadgeProps as aT, ColumnChart as aU, type ColumnChartProps as aV, type ColumnSeries as aW, ComposerAttachments as aX, type ComposerAttachmentsProps as aY, ConfirmProvider as aZ, ContainerFillChart as a_, CMD_S as aa, Calendar as ab, type CalendarMode as ac, type CalendarProps as ad, type Candle as ae, CandlestickChart as af, type CandlestickChartProps as ag, Card as ah, type CardPadding as ai, type CardProps as aj, CartesianPlot as ak, type CartesianPlotProps as al, type CellStyle as am, type ChartBackgroundVariant as an, ChartBrush as ao, type ChartBrushProps as ap, type ChartCurve as aq, ChartDefs as ar, type ChartDefsProps as as, ChartDot as at, type ChartDotProps as au, type ChartDotVariant as av, type ChartFillVariant as aw, ChartFrame as ax, type ChartFrameProps as ay, ChartHighlightProvider as az, ALT_SHIFT_D as b, type FormatDateOptions as b$, type ContainerFillItem as b0, CountBadge as b1, type CountBadgeProps as b2, type CountBadgeTone as b3, type Curve as b4, DAY_MS as b5, DEFAULT_SHELL_STRINGS as b6, DashboardTemplate as b7, DataTable as b8, type DataTableColumn as b9, type DrawerSize as bA, DropdownMenu as bB, type DropdownMenuAlign as bC, type DropdownMenuItem as bD, type DropdownMenuProps as bE, type DropdownMenuSide as bF, type DropdownPositionOptions as bG, ENTER as bH, EditableGrid as bI, type EditableGridProps as bJ, EmailTemplate as bK, EmptyState as bL, type EmptyStateProps as bM, ErrorBoundary as bN, type ErrorBoundaryProps as bO, ErrorPage as bP, type ErrorPageProps as bQ, type FileIntake as bR, FilePicker as bS, type FilePickerProps as bT, type FillVariant as bU, type FormError as bV, FormErrorSummary as bW, type FormErrorSummaryProps as bX, FormField as bY, type FormFieldProps as bZ, FormLayoutPage as b_, type DataTableColumnGroup as ba, type DataTableHeader as bb, DataTablePage as bc, type DataTableProps as bd, DatePicker as be, type DatePickerProps as bf, DateRangePicker as bg, type DateRangePickerProps as bh, DateTimePicker as bi, type DateTimePickerProps as bj, type DescriptionColumns as bk, type DescriptionItem as bl, DescriptionList as bm, type DescriptionListProps as bn, Dialog as bo, type DialogProps as bp, type DialogSize as bq, Divider as br, type DividerProps as bs, type DividerSpacing as bt, DonutChart as bu, type DonutChartProps as bv, type DonutSegment as bw, Drawer as bx, type DrawerProps as by, type DrawerSide as bz, ALT_SHIFT_E as c, type MediaUploadGridProps as c$, FunnelChart as c0, type FunnelChartProps as c1, type FunnelStage as c2, GLASS_DIVIDER as c3, GLASS_INPUT_BG as c4, GROUP_COLORS as c5, GROUP_COLORS_SOLID as c6, GalleryTemplate as c7, type Gap as c8, GlobalSearch as c9, type KanbanColumn as cA, type KanbanProps as cB, Kbd as cC, type KbdProps as cD, type KbdSize as cE, Label as cF, type LabelProps as cG, type LadderScale as cH, LineChart as cI, type LineChartProps as cJ, type LineChartSeries as cK, type LinearScale as cL, ListFooter as cM, ListLoadError as cN, type ListLoadErrorProps as cO, LoadingSpinner as cP, type LoadingSpinnerProps as cQ, MAX_FRACTION_DIGITS as cR, MENU_MAX_HEIGHT as cS, MOD as cT, MOTION as cU, Markdown as cV, type MarkdownProps as cW, MediaUploadField as cX, type MediaUploadFieldProps as cY, MediaUploadGrid as cZ, type MediaUploadGridItem as c_, type GlobalSearchProps as ca, Grid as cb, type GridCols as cc, type GridColumn as cd, type GridProps as ce, HeatmapChart as cf, type HeatmapChartProps as cg, HelpCenter as ch, type HelpCenterDoc as ci, type HelpCenterProps as cj, type HistogramBin as ck, HistogramChart as cl, type HistogramChartProps as cm, INPUT_BASE as cn, INPUT_SIZES as co, IconButton as cp, type IconButtonProps as cq, Inline as cr, type InlineProps as cs, Input as ct, InputNumber as cu, type InputNumberProps as cv, type InputProps as cw, type InputSize as cx, type Justify as cy, Kanban as cz, ALT_SHIFT_N as d, type RangeRow as d$, type MenuPos as d0, Meter as d1, type MeterProps as d2, MetricBar as d3, type MetricBarProps as d4, type Milestone as d5, type MilestoneKind as d6, MilestoneTimeline as d7, type MilestoneTimelineProps as d8, NEXT_CHUNK_PATH_PREFIX as d9, type PopupSubmenuProps as dA, type PortalBrandingContextValue as dB, PortalBrandingProvider as dC, type PortalBrandingProviderProps as dD, ProductionTimeline as dE, type ProductionTimelineProps as dF, type ProductionTimelineSnapshot as dG, type ProgressItem as dH, type PublicPortal as dI, type PublicPortalBranding as dJ, RADAR_SERIES_CAP as dK, type RadarAxis as dL, RadarChart as dM, type RadarChartProps as dN, type RadarSeries as dO, RadialBarChart as dP, type RadialBarChartProps as dQ, type RadialBarRow as dR, Radio as dS, RadioGroup as dT, type RadioGroupOption as dU, type RadioGroupOrientation as dV, type RadioGroupProps as dW, type RadioProps as dX, type Range as dY, RangeChart as dZ, type RangeChartProps as d_, NativeSelect as da, NumericKeypad as db, type NumericKeypadProps as dc, OVERLAY_OPEN_EVENT as dd, POPUP_MAX_WIDTH as de, POST_PRODUCTION_STATUSES as df, PageHeader as dg, type PageHeaderProps as dh, Pagination as di, type PaginationProps as dj, PaperclipGlyph as dk, Paragraph as dl, type ParagraphProps as dm, PieChart as dn, type PieChartProps as dp, type PieSegment as dq, type PlotGeometry as dr, type Point as ds, PopupMenu as dt, PopupMenuDivider as du, PopupMenuItem as dv, type PopupMenuItemProps as dw, PopupMenuLabel as dx, type PopupMenuProps as dy, PopupSubmenu as dz, APP_UPDATE_POLL_MS as e, type StaleChunkReloadOptions as e$, RankedBars as e0, type RankedBarsProps as e1, type RankedBarsRow as e2, type ResolvedPortalBrandAsset as e3, Result as e4, type ResultProps as e5, type ResultStatus as e6, type RevealDirection as e7, SCATTER_SERIES_CAP as e8, SERIES_SLOT_COUNT as e9, type SemanticGroup as eA, SettingRow as eB, type SettingRowProps as eC, type SeverityTone as eD, type ShellPrefsAdapter as eE, ShellPrefsProvider as eF, type ShellStrings as eG, type ShellStringsOverride as eH, ShellStringsProvider as eI, SidebarActionButton as eJ, type SidebarActionButtonProps as eK, SidebarGroupLabel as eL, SidebarLayout as eM, type SidebarLayoutProps as eN, SidebarNavItem as eO, type SidebarNavItemProps as eP, Skeleton as eQ, type SkeletonProps as eR, type SkeletonVariant as eS, Snippet as eT, type SnippetProps as eU, type SnippetSize as eV, type SnippetVariant as eW, Sparkline as eX, type SparklineProps as eY, Stack as eZ, type StackProps as e_, SERIES_VARS as ea, SHIFT as eb, STAGES as ec, STALE_CHUNK_RELOAD_COOLDOWN_MS as ed, STALE_CHUNK_RELOAD_KEY as ee, STATUS_VARS as ef, SankeyChart as eg, type SankeyChartProps as eh, type SankeyLink as ei, type SankeyNode as ej, ScatterChart as ek, type ScatterChartProps as el, type ScatterPoint as em, type ScatterSeries as en, type SearchProvider as eo, type SearchResult as ep, type SearchableOption as eq, SearchableSelect as er, type SearchableSelectProps as es, Segmented as et, type SegmentedOption as eu, type SegmentedProps as ev, type SegmentedSize as ew, Select as ex, type SelectOption as ey, type SelectProps as ez, Accordion as f, type TopNavItem as f$, StatCard as f0, type StatCardProps as f1, StatTile as f2, type StatTileProps as f3, Statistic as f4, type StatisticProps as f5, type StatisticSize as f6, type StatisticTone as f7, StatusBadge as f8, StatusBadgeProvider as f9, type TileButtonProps as fA, type TileSize as fB, TimePicker as fC, type TimePickerProps as fD, TimeSeriesChart as fE, type TimeSeriesChartProps as fF, type TimeSeriesSeries as fG, type TimelineMarker as fH, type TimelineMarkerKind as fI, type TimelineReport as fJ, type TimelineScrubProgress as fK, TimelineTrack as fL, type TimelineTrackItem as fM, type TimelineTrackKind as fN, type TimelineTrackPending as fO, type TimelineTrackPhase as fP, type TimelineTrackPlayback as fQ, type TimelineTrackProps as fR, type TimelineTrackThumb as fS, Title as fT, type TitleLevel as fU, type TitleProps as fV, type ToastOptions as fW, type ToastPlacement as fX, Tooltip as fY, type TooltipProps as fZ, TopNav as f_, type StatusEmphasis as fa, type StepItem as fb, Stepper as fc, type StepperProps as fd, type StrokeVariant as fe, SunburstChart as ff, type SunburstChartProps as fg, type SunburstNode as fh, Switch as fi, type SwitchProps as fj, type SwitchSize as fk, type TabItem as fl, Tabs as fm, type TabsProps as fn, TagInput as fo, type TagInputOption as fp, type TagInputProps as fq, Text as fr, type TextProps as fs, type TextSize as ft, type TextTone as fu, type TextWeight as fv, Textarea as fw, type TextareaProps as fx, type Theme as fy, TileButton as fz, type AccordionItem as g, resolveTheme as g$, type TopNavProps as g0, TreemapChart as g1, type TreemapChartProps as g2, type TreemapItem as g3, type TreemapTile as g4, type UseAppUpdateOptions as g5, type UseProductionTimelineOpts as g6, VERSION as g7, VITE_PRELOAD_ERROR_EVENT as g8, WaterfallChart as g9, formatDate as gA, fromKey as gB, glassStyle as gC, glowId as gD, groundId as gE, groupColors as gF, highlightOpacity as gG, inputClasses as gH, installStaleChunkReload as gI, isMac as gJ, isSeverityTone as gK, isStaleChunkError as gL, ladderScale as gM, linearPath as gN, linearScale as gO, logScale as gP, maskId as gQ, mediaFileName as gR, monotonePath as gS, niceMax as gT, polygonPoints as gU, popupBounds as gV, prompt as gW, radiusScale as gX, resolveBrandMarkTreatment as gY, resolvePortalBrandAsset as gZ, resolveSeriesColor as g_, type WaterfallChartProps as ga, type WaterfallStep as gb, type ZLayer as gc, Z_LAYERS as gd, angleScale as ge, appendKey as gf, applyThemePrefs as gg, arcPath as gh, areaBetween as gi, areaFrom as gj, autoHighlightIndex as gk, backspace as gl, bandScale as gm, binValues as gn, budgetState as go, bumpPath as gp, calcOverall as gq, calcReportOverall as gr, confirm as gs, confirmDestructive as gt, curvePath as gu, dashFor as gv, dismissPopups as gw, fillFor as gx, fillId as gy, fmtSliderDate as gz, type AccordionProps as h, seriesColor as h0, severityOf as h1, splinePath as h2, squarify as h3, stagger as h4, stepPath as h5, tabButtonId as h6, tabPanelId as h7, toKey as h8, toDayMs as h9, toISODate as ha, toast as hb, useAppUpdate as hc, useClickOutside as hd, useConfirm as he, useDropdownPosition as hf, useFocusTrap as hg, useHighlight as hh, useIsMobile as hi, useLocalStoragePrefs as hj, usePlotWidth as hk, usePortalBranding as hl, useProductionTimeline as hm, useScrollLock as hn, useShellLocale as ho, useShellPrefs as hp, useShellStrings as hq, useTheme as hr, type Align as i, type AngleScale as j, AppUpdateBanner as k, type AppUpdateBannerProps as l, AttachButton as m, type AttachButtonProps as n, AttachmentDropZone as o, type AttachmentDropZoneProps as p, AttachmentList as q, type AttachmentListProps as r, AuthScreen as s, type AuthScreenProps as t, Avatar as u, AvatarGroup as v, type AvatarGroupProps as w, type AvatarProps as x, type AvatarSize as y, type AvatarStatus as z };