efficient-shell 6.4.0 → 7.7.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 (88) hide show
  1. package/README.md +88 -22
  2. package/dist/Browser-56LX7FTE.js +43 -0
  3. package/dist/Calculator-GBKLJHM6.js +29 -0
  4. package/dist/ConfirmDialog-PS5BXNAT.js +1 -0
  5. package/dist/CurrencyConverter-ZXY7XNG6.js +21 -0
  6. package/dist/{Documents-ADFEHEUW.js → Documents-SVKR757H.js} +27 -27
  7. package/dist/Files-KSHU7ROB.js +87 -0
  8. package/dist/Notepad-5GT2GUCJ.js +25 -0
  9. package/dist/PdfViewer-YVAWFZVH.js +1 -0
  10. package/dist/PomodoroTimer-GAGDQ4NF.js +91 -0
  11. package/dist/Preview-YDCDW5NE.js +182 -0
  12. package/dist/Sidebar-IH6WUPKT.js +44 -0
  13. package/dist/Spreadsheet-SYR23K4I.js +37 -0
  14. package/dist/Stock-LH5CR667.js +16 -0
  15. package/dist/{Weather-BLO354GM.js → Weather-MZGIPR2R.js} +35 -35
  16. package/dist/WorldClock-DLB2RRLI.js +32 -0
  17. package/dist/apps/index.js +1 -1
  18. package/dist/bin/ui-check.js +1 -1
  19. package/dist/brand.css +1 -1
  20. package/dist/chunk-2ALIPI3D.js +1 -0
  21. package/dist/{chunk-MORDXCV6.js → chunk-2R5RTN5T.js} +1 -1
  22. package/dist/{chunk-5LUN632W.js → chunk-43XFZY4K.js} +2 -2
  23. package/dist/{chunk-ZEIKSMFR.js → chunk-4JGNJYVL.js} +8 -8
  24. package/dist/{chunk-XO2AMGVU.js → chunk-5TOLXFQ6.js} +1 -1
  25. package/dist/{chunk-QJHWLDEN.js → chunk-6SCHK75C.js} +50 -50
  26. package/dist/{chunk-4JZZLUGG.js → chunk-B4PGVDB6.js} +1 -1
  27. package/dist/chunk-BUGGBB5J.js +1 -0
  28. package/dist/{chunk-2SSRFEOZ.js → chunk-CJHT4VTF.js} +1 -1
  29. package/dist/chunk-CLFUF3BH.js +9 -0
  30. package/dist/{chunk-I2H2CKID.js → chunk-CQ2DLPPS.js} +1 -1
  31. package/dist/{chunk-HQLAISFX.js → chunk-G4CTTSAR.js} +4 -4
  32. package/dist/{chunk-I534M65N.js → chunk-HIRMYFOF.js} +2 -2
  33. package/dist/{chunk-SK5DL6JX.js → chunk-JKHXDQEI.js} +14 -14
  34. package/dist/{chunk-GWDVD3VQ.js → chunk-JQRIAZDP.js} +23 -23
  35. package/dist/{chunk-IHZL3GJU.js → chunk-KONXUO5I.js} +1 -1
  36. package/dist/{chunk-Q5O5UMJY.js → chunk-M4MCXII7.js} +1 -1
  37. package/dist/{chunk-UUYPUKP7.js → chunk-M4TRVJTO.js} +1 -1
  38. package/dist/chunk-MSGBGLGI.js +29 -0
  39. package/dist/{chunk-CXJQ42XT.js → chunk-N7JTY3LU.js} +15 -15
  40. package/dist/{chunk-VR6TR575.js → chunk-NODT4F2C.js} +3 -3
  41. package/dist/{chunk-R5VRLW5Z.js → chunk-OXTM3XZI.js} +1 -1
  42. package/dist/chunk-PT4Z3KIA.js +12 -0
  43. package/dist/chunk-QRCDQPJA.js +1 -0
  44. package/dist/{chunk-7PGHRG6J.js → chunk-QUVE5JZZ.js} +11 -11
  45. package/dist/{chunk-YX2IMURA.js → chunk-R2TPTM4O.js} +8 -8
  46. package/dist/{chunk-5K76RQML.js → chunk-RBKIYZ7H.js} +1 -1
  47. package/dist/{chunk-GJ37JCC2.js → chunk-RUHUTZN4.js} +1 -1
  48. package/dist/chunk-TCYS67ND.js +1016 -0
  49. package/dist/file-intake/index.js +1 -1
  50. package/dist/i18n/index.d.ts +1 -1
  51. package/dist/icons/efficient-looks.js +4 -4
  52. package/dist/icons/efficient.d.ts +2 -2
  53. package/dist/icons/efficient.js +3 -3
  54. package/dist/icons/index.js +1 -1
  55. package/dist/{index-D5bms_uA.d.ts → index-BkBsXpfV.d.ts} +285 -88
  56. package/dist/index.d.ts +3 -3
  57. package/dist/index.js +635 -639
  58. package/dist/locales/zh-Hans.d.ts +1 -1
  59. package/dist/locales/zh-Hans.js +1 -1
  60. package/dist/map/index.js +8 -8
  61. package/dist/markdown/index.js +1 -1
  62. package/dist/page-tabs/index.js +5 -5
  63. package/dist/pdf/index.js +1 -1
  64. package/dist/{strings-fYzxZPn4.d.ts → strings-BQtq9300.d.ts} +17 -2
  65. package/dist/telemetry/index.js +1 -1
  66. package/dist/ui/index.d.ts +2 -2
  67. package/dist/ui/index.js +1 -1
  68. package/dist/ui.css +48 -54
  69. package/package.json +1 -1
  70. package/dist/Browser-USPZWDYH.js +0 -43
  71. package/dist/Calculator-FP5HUWCW.js +0 -29
  72. package/dist/ConfirmDialog-3TIHKJRT.js +0 -1
  73. package/dist/CurrencyConverter-XD5LYOCD.js +0 -21
  74. package/dist/Files-BVUVRNC5.js +0 -87
  75. package/dist/Notepad-WJI5ODGS.js +0 -25
  76. package/dist/PdfViewer-226I3LSD.js +0 -1
  77. package/dist/PomodoroTimer-GEMQHIPJ.js +0 -91
  78. package/dist/Preview-HNSEYNZL.js +0 -182
  79. package/dist/Sidebar-PVHZPNIY.js +0 -44
  80. package/dist/Spreadsheet-6Z5ACGTT.js +0 -37
  81. package/dist/Stock-X3LIU4ZX.js +0 -16
  82. package/dist/WorldClock-BAH7QFRG.js +0 -32
  83. package/dist/chunk-5MDQNFOG.js +0 -9
  84. package/dist/chunk-DBXZS7OA.js +0 -29
  85. package/dist/chunk-K6DKX55N.js +0 -1
  86. package/dist/chunk-PFKMIPZH.js +0 -1028
  87. package/dist/chunk-S3LGKIZ3.js +0 -12
  88. package/dist/chunk-SBF5A6XV.js +0 -1
@@ -1,9 +1,9 @@
1
- export { A as ALT, b as ALT_SHIFT_D, c as ALT_SHIFT_E, d as ALT_SHIFT_N, e as APP_UPDATE_POLL_MS, f as Accordion, g as AccordionItem, h as AccordionProps, i as Align, j as AlignmentGrid, k as AlignmentGridProps, l as AlignmentPoint, m as AngleScale, n as AppUpdateBanner, o as AppUpdateBannerProps, p as AttachButton, q as AttachButtonProps, r as AttachmentDropZone, s as AttachmentDropZoneProps, t as AttachmentList, u as AttachmentListProps, v as AuthScreen, w as AuthScreenProps, x as Avatar, y as AvatarGroup, z as AvatarGroupProps, B as AvatarProps, D as AvatarSize, E as AvatarStatus, F as BORDER_WIDTHS, G as BackgroundVariant, H as BandScale, I as Banner, J as BannerEmphasis, K as BannerProps, L as BannerTone, M as BarChart, N as BarChartProps, O as BorderRole, Q as BoxPlotBox, R as BoxPlotChart, T as BoxPlotChartProps, U as BrandAssetEditor, V as BrandAssetEditorProps, W as BrandAssetPreview, X as BrandMark, Y as BrandMarkProps, Z as BrandMarkSlot, _ as BrandMarkSurface, $ as BrandMarkTreatment, a0 as BreadcrumbItem, a1 as Breadcrumbs, a2 as BreadcrumbsProps, a3 as BudgetBar, a4 as BudgetBarProps, a5 as BudgetState, a6 as Button, a7 as ButtonClassesOptions, a8 as ButtonProps, a9 as ButtonSize, aa as ButtonVariant, ab as CHART_INK, ac as CMD_A, ad as CMD_DOT, ae as CMD_ENTER, af as CMD_K, ag as CMD_S, ah as COLUMN_COUNT_MAX, ai as COLUMN_COUNT_WIDTHS, aj as COLUMN_SHARES_EQUAL, ak as COLUMN_SHARE_MIN, al as CONTROL_HEIGHTS, am as CORNERS, an as Calendar, ao as CalendarMode, ap as CalendarProps, aq as Candle, ar as CandlestickChart, as as CandlestickChartProps, at as Card, au as CardPadding, av as CardProps, aw as CardTone, ax as CartesianPlot, ay as CartesianPlotProps, az as CellStyle, aA as ChartBackgroundVariant, aB as ChartBrush, aC as ChartBrushProps, aD as ChartCurve, aE as ChartDefs, aF as ChartDefsProps, aG as ChartDot, aH as ChartDotProps, aI as ChartDotVariant, aJ as ChartFillVariant, aK as ChartFrame, aL as ChartFrameProps, aM as ChartHighlightProvider, aN as ChartLegendEntry, aO as ChartLegendSwatch, aP as ChartRange, aQ as ChartReferenceLine, aR as ChartRevealDirection, aS as ChartSkeleton, aT as ChartSkeletonProps, aU as ChartStatusTone, aV as ChartStrokeVariant, aW as ChartTooltip, aX as ChartTooltipProps, aY as ChartTooltipRow, aZ as ChatTemplate, a_ as Checkbox, a$ as CheckboxProps, b0 as CheckoutTemplate, b1 as ChordChart, b2 as ChordChartProps, b3 as ColorPicker, b4 as ColorPickerPanel, b5 as ColorPickerPanelProps, b6 as ColorPickerProps, b7 as ColorPreset, b8 as ColorSwatch, b9 as ColorSwatchProps, ba as ColorSwatchSize, bb as ColoredBadge, bc as ColoredBadgeProps, bd as ColumnChart, be as ColumnChartProps, C as ColumnDef, bf as ColumnSeries, bg as ColumnShares, bh as ComposerAttachments, bi as ComposerAttachmentsProps, bj as ConfirmProvider, bk as ContainerFillChart, bl as ContainerFillChartProps, bm as ContainerFillItem, bn as ContextMenu, bo as ContextMenuPoint, bp as ContextMenuProps, bq as ContextMenuState, br as ControlSize, bs as CornerOption, bt as Corners, bu as CornersInput, bv as CornersInputProps, bw as CountBadge, bx as CountBadgeProps, by as CountBadgeTone, bz as Curve, bA as DAY_MS, bB as DashboardTemplate, bC as DataTable, bD as DataTableColumn, bE as DataTableColumnGroup, bF as DataTableHeader, bG as DataTablePage, bH as DataTableProps, bI as DataTableRowLink, bJ as DataTableRowProps, bK as DatePicker, bL as DatePickerProps, bM as DateRangePicker, bN as DateRangePickerProps, bO as DateTimePicker, bP as DateTimePickerProps, bQ as DescriptionColumns, bR as DescriptionItem, bS as DescriptionList, bT as DescriptionListProps, bU as Dialog, bV as DialogProps, bW as DialogSize, bX as DisplayChipItem, bY as DisplayChips, bZ as DisplayChipsProps, b_ as Divider, b$ as DividerProps, c0 as DividerSpacing, c1 as DonutChart, c2 as DonutChartProps, c3 as DonutSegment, c4 as Drawer, c5 as DrawerProps, c6 as DrawerSide, c7 as DrawerSize, c8 as DropdownMenu, c9 as DropdownMenuAlign, ca as DropdownMenuCheckboxItem, cb as DropdownMenuDividerItem, cc as DropdownMenuEntry, cd as DropdownMenuItem, ce as DropdownMenuLabelItem, cf as DropdownMenuLinkItem, cg as DropdownMenuProps, ch as DropdownMenuRadioItem, ci as DropdownMenuSide, cj as DropdownPositionOptions, ck as ELEVATION_LEVELS, cl as ENGLISH, cm as ENTER, cn as EditableGrid, co as EditableGridProps, cp as ElevationLevel, cq as EmailTemplate, cr as EmptyState, cs as EmptyStateProps, ct as EmptyValue, cu as EmptyValueProps, cv as ErrorBoundary, cw as ErrorBoundaryProps, cx as ErrorPage, cy as ErrorPageProps, cz as FONT_WEIGHTS, cA as FileIntake, cB as FilePicker, cC as FilePickerProps, cD as FillVariant, cE as FontWeightRole, cF as FormError, cG as FormErrorSummary, cH as FormErrorSummaryProps, cI as FormField, cJ as FormFieldProps, cK as FormLayoutPage, cL as FunnelChart, cM as FunnelChartProps, cN as FunnelStage, cO as GLASS_DIVIDER, cQ as GROUP_COLORS, cR as GROUP_COLORS_SOLID, cS as GalleryTemplate, cT as Gap, cU as GlassOptions, cV as GlobalSearch, cW as GlobalSearchProps, cX as Grid, cY as GridCols, cZ as GridColumn, c_ as GridProps, c$ as HeatmapChart, d0 as HeatmapChartProps, d1 as HelpCenter, d2 as HelpCenterDoc, d3 as HelpCenterProps, d4 as HexInput, d5 as HistogramBin, d6 as HistogramChart, d7 as HistogramChartProps, d8 as Hsv, d9 as INPUT_BASE, da as INPUT_SIZES, db as IconButton, dc as IconButtonClassesOptions, dd as IconButtonProps, de as IconRail, df as IconRailButton, dg as IconRailButtonProps, dh as IconRailLabels, di as IconRailLabelsShown, dj as IconRailOrientation, dk as IconRailProps, dl as ImageFocusPoint, dm as ImageFocusPointProps, dn as Inline, dp as InlineProps, dq as Input, dr as InputNumber, ds as InputNumberProps, dt as InputProps, du as InputSize, dv as Justify, dw as Kanban, dx as KanbanColumn, dy as KanbanProps, dz as Kbd, dA as KbdProps, dB as KbdSize, dC as KbdTone, dD as Label, dE as LabelClassesOptions, dF as LabelProps, dG as LadderScale, dH as LanguagePanel, dI as LanguagePanelProps, dJ as LanguageSelect, dK as LanguageSelectProps, dL as LineChart, dM as LineChartProps, dN as LineChartSeries, dO as LinearScale, dP as LinkFilter, dQ as LinkFilterField, dR as LinkKindChoice, dS as LinkOption, dT as LinkOptionGroup, dU as LinkPicker, dV as LinkPickerFieldProps, dW as LinkPickerProps, dX as LinkPickerWindowProps, dY as LinkRules, dZ as LinkTarget, d_ as ListDrop, d$ as ListFooter, e0 as ListLoadError, e1 as ListLoadErrorProps, e2 as ListMove, e3 as ListRow, e4 as ListRowProps, e5 as LoadingSpinner, e6 as LoadingSpinnerProps, e7 as MAX_FRACTION_DIGITS, e8 as MENU_MAX_HEIGHT, e9 as MOD, ea as MOTION, eb as MOTION_DURATIONS, ec as Markdown, ec as MarkdownLite, ed as MarkdownLiteProps, ed as MarkdownProps, ee as MediaUploadField, ef as MediaUploadFieldProps, eg as MediaUploadGrid, eh as MediaUploadGridItem, ei as MediaUploadGridProps, ej as MenuPos, ek as Meter, el as MeterProps, em as MetricBar, en as MetricBarProps, eo as Milestone, ep as MilestoneKind, eq as MilestoneTimeline, er as MilestoneTimelineProps, es as MotionSpeed, eu as NEXT_CHUNK_PATH_PREFIX, ev as NativeSelect, ew as NumericKeypad, ex as NumericKeypadProps, ey as OVERLAY_OPEN_EVENT, ez as POPUP_MAX_WIDTH, eA as POST_PRODUCTION_STATUSES, eB as PageHeader, eC as PageHeaderProps, P as PaginatedResponse, eD as Pagination, eE as PaginationProps, eF as PaperclipGlyph, eG as Paragraph, eH as ParagraphProps, eI as PieChart, eJ as PieChartProps, eK as PieSegment, eL as PlotGeometry, eM as Point, eN as Popover, eO as PopoverAlign, eP as PopoverProps, eQ as PopoverRenderProps, eR as PopoverSide, eS as PopupMenu, eT as PopupMenuDivider, eU as PopupMenuItem, eV as PopupMenuItemProps, eW as PopupMenuLabel, eX as PopupMenuProps, eY as PopupSubmenu, eZ as PopupSubmenuProps, e_ as PortalBrandingContextValue, e$ as PortalBrandingProvider, f0 as PortalBrandingProviderProps, f1 as ProductionTimeline, f2 as ProductionTimelineProps, f3 as ProductionTimelineSnapshot, f4 as ProgressItem, f5 as PublicPortal, f6 as PublicPortalBranding, f7 as RADAR_SERIES_CAP, f8 as RADIUS_ROLES, f9 as RadarAxis, fa as RadarChart, fb as RadarChartProps, fc as RadarSeries, fd as RadialBarChart, fe as RadialBarChartProps, ff as RadialBarRow, fg as Radio, fh as RadioGroup, fi as RadioGroupOption, fj as RadioGroupOrientation, fk as RadioGroupProps, fl as RadioProps, fm as RadiusRole, fn as Range, fo as RangeChart, fp as RangeChartProps, fq as RangeRow, fr as RankedBars, fs as RankedBarsProps, ft as RankedBarsRow, fu as ResizeHandle, fv as ResizeHandleOrientation, fw as ResizeHandleProps, fx as ResizeHandleSide, fy as ResizeHandleStackSide, fz as ResolvedPortalBrandAsset, fA as Result, fB as ResultProps, fC as ResultStatus, fD as RevealDirection, fE as SCATTER_SERIES_CAP, fF as SERIES_SLOT_COUNT, fG as SERIES_VARS, fH as SHELL_LANGUAGE_STORAGE_KEY, fI as SHIFT, fJ as SPACING_ROLES, fK as SPACING_SCALE, fL as STAGES, fM as STALE_CHUNK_RELOAD_COOLDOWN_MS, fN as STALE_CHUNK_RELOAD_KEY, fO as STATUS_VARS, fP as SankeyChart, fQ as SankeyChartProps, fR as SankeyLink, fS as SankeyNode, fT as ScatterChart, fU as ScatterChartProps, fV as ScatterPoint, fW as ScatterSeries, S as SearchConfig, fX as SearchListRoute, fY as SearchProvider, fZ as SearchQuickAction, f_ as SearchResponse, f$ as SearchResult, g0 as SearchableItem, g1 as SearchableOption, g2 as SearchableOptionGroup, g3 as SearchableSelect, g4 as SearchableSelectBaseProps, g5 as SearchableSelectMultipleProps, g6 as SearchableSelectProps, g7 as Segmented, g8 as SegmentedOption, g9 as SegmentedProps, ga as SegmentedSize, gb as Select, gc as SelectBaseProps, gd as SelectItem, ge as SelectMultipleProps, gf as SelectOption, gg as SelectOptionGroup, gh as SelectProps, gi as SemanticGroup, gj as SettingRow, gk as SettingRowProps, gl as SeverityTone, go as ShellLanguage, gp as ShellLanguageProvider, gq as ShellLanguageState, gr as ShellPrefsAdapter, gs as ShellPrefsProvider, gt as SidebarActionButton, gu as SidebarActionButtonProps, gv as SidebarGroupLabel, gw as SidebarGroupLabelProps, gx as SidebarLayout, gy as SidebarLayoutProps, gz as SidebarNavGroup, gA as SidebarNavGroupProps, gB as SidebarNavItem, gC as SidebarNavItemProps, gD as Skeleton, gE as SkeletonProps, gF as SkeletonVariant, gG as Slider, gH as SliderProps, gI as SliderSize, gJ as Snippet, gK as SnippetProps, gL as SnippetSize, gM as SnippetVariant, a as SortState, gN as SortableList, gO as SortableListProps, gP as SortableListSpacing, gQ as SpacingRole, gR as SpacingStep, gS as Sparkline, gT as SparklineProps, gU as Stack, gV as StackProps, gW as StaleChunkReloadOptions, gX as StatCard, gY as StatCardProps, gZ as StatTile, g_ as StatTileProps, g$ as Statistic, h0 as StatisticProps, h1 as StatisticSize, h2 as StatisticTone, h3 as StatusBadge, h4 as StatusBadgeProvider, h5 as StatusEmphasis, h6 as StepItem, h7 as Stepper, h8 as StepperProps, h9 as StrokeVariant, ha as SunburstChart, hb as SunburstChartProps, hc as SunburstNode, hd as Switch, he as SwitchProps, hf as SwitchSize, hg as TYPE_SCALE, hh as TabItem, hi as Tabs, hj as TabsProps, hk as TagInput, hl as TagInputOption, hm as TagInputProps, hn as Text, ho as TextLinkField, hp as TextLinkFieldProps, hq as TextProps, hr as TextSize, hs as TextTone, ht as TextWeight, hu as Textarea, hv as TextareaProps, hw as Theme, hx as TileButton, hy as TileButtonProps, hz as TileSize, hA as TimeAgo, hB as TimeAgoProps, hC as TimePicker, hD as TimePickerProps, hE as TimeSeriesChart, hF as TimeSeriesChartProps, hG as TimeSeriesSeries, hH as TimelineMarker, hI as TimelineMarkerKind, hJ as TimelineReport, hK as TimelineScrubProgress, hL as TimelineTrack, hM as TimelineTrackItem, hN as TimelineTrackKind, hO as TimelineTrackPending, hP as TimelineTrackPhase, hQ as TimelineTrackPlayback, hR as TimelineTrackProps, hS as TimelineTrackThumb, hT as Title, hU as TitleLevel, hV as TitleProps, hW as ToastOptions, hX as ToastPlacement, hY as Tooltip, hZ as TooltipProps, h_ as TopNav, h$ as TopNavItem, i0 as TopNavProps, i1 as Tree, i2 as TreeDrop, i3 as TreeEmptySlot, i4 as TreeEmptySlotProps, i5 as TreeGroup, i6 as TreeGroupLabel, i7 as TreeGroupProps, i8 as TreeMove, i9 as TreeProps, ia as TreeRow, ib as TreeRowProps, ic as TreeSeam, id as TreeSeamProps, ie as TreemapChart, ig as TreemapChartProps, ih as TreemapItem, ii as TreemapTile, ij as TypeStep, ik as UseAppUpdateOptions, il as UseContextMenu, im as UseProductionTimelineOpts, io as VERSION, ip as VITE_PRELOAD_ERROR_EVENT, iq as WaterfallChart, ir as WaterfallChartProps, is as WaterfallStep, it as WidthsBar, iu as WidthsBarProps, iv as ZLayer, iw as Z_LAYERS, ix as angleScale, iy as appendKey, iz as applyCorners, iA as applyIconSet, iB as applyThemePrefs, iC as arcPath, iD as areaBetween, iE as areaFrom, iF as autoHighlightIndex, iG as backspace, iH as bandScale, iI as binValues, iJ as budgetState, iK as bumpPath, iL as buttonClasses, iM as calcOverall, iN as calcReportOverall, iO as colorFill, iP as colorSwatchClasses, iQ as columnSharesWidths, iR as confirm, iS as confirmDestructive, iT as curvePath, iU as dashFor, iW as dismissPopups, iX as fillFor, iY as fillId, iZ as fmtSliderDate, i_ as fromDateKey, i$ as glassStyle, j0 as glowId, j1 as groundId, j2 as groupColors, j3 as hexToHsv, j4 as highlightOpacity, j5 as hsvToHex, j6 as iconButtonClasses, j7 as inputClasses, j8 as installStaleChunkReload, j9 as isMac, ja as isSeverityTone, jb as isSpacingStep, jc as isStaleChunkError, je as labelClasses, jf as ladderScale, jg as languageSelectWidth, jh as leavesContextMenuAlone, ji as linearPath, jj as linearScale, jk as logScale, jl as maskId, jm as matchShellLanguage, jn as mediaFileName, jo as monotonePath, jp as niceMax, jq as openGlobalSearch, jr as parseHexColor, js as polygonPoints, jt as popupBounds, ju as prompt, jv as pushRecentSearch, jw as radiusScale, jx as readSavedShellLanguage, jy as registerModalEscapeInterceptor, jz as resolveBrandMarkTreatment, jA as resolveColumnShares, jB as resolveColumnWidths, jC as resolveCorners, jD as resolvePortalBrandAsset, jE as resolveSeriesColor, jF as resolveShellLanguage, jG as resolveTheme, jH as sanitizeRecentSearches, jI as saveShellLanguage, jJ as seriesColor, jK as severityOf, jL as splinePath, jM as squarify, jN as stagger, jO as stepPath, jP as tabButtonId, jQ as tabPanelId, jR as toDateKey, jS as toDayMs, jT as toISODate, jU as toast, jV as useAppUpdate, jW as useClickOutside, jX as useConfirm, jY as useContextMenu, jZ as useDebouncedValue, j_ as useDropdownPosition, j$ as useFocusTrap, k0 as useHighlight, k1 as useIsMobile, k2 as useLocalStoragePrefs, k3 as usePlotWidth, k4 as usePortalBranding, k5 as useProductionTimeline, k6 as useScrollLock, k7 as useShellLanguage, k8 as useShellPrefs, k9 as useStatusLabel, ka as useTheme } from '../index-D5bms_uA.js';
1
+ export { A as ALT, b as ALT_SHIFT_D, c as ALT_SHIFT_E, d as ALT_SHIFT_N, e as APP_UPDATE_POLL_MS, f as Accordion, g as AccordionItem, h as AccordionProps, i as Align, j as AlignmentGrid, k as AlignmentGridProps, l as AlignmentPoint, m as AngleScale, n as AppUpdateBanner, o as AppUpdateBannerProps, p as AttachButton, q as AttachButtonProps, r as AttachmentDropZone, s as AttachmentDropZoneProps, t as AttachmentList, u as AttachmentListProps, v as AuthScreen, w as AuthScreenProps, x as Avatar, y as AvatarGroup, z as AvatarGroupProps, B as AvatarProps, D as AvatarSize, E as AvatarStatus, F as BORDER_WIDTHS, G as BackgroundVariant, H as BandScale, I as Banner, J as BannerEmphasis, K as BannerProps, L as BannerTone, M as BorderRole, N as BoxPlotBox, O as BoxPlotChart, Q as BoxPlotChartProps, R as BrandAssetEditor, T as BrandAssetEditorProps, U as BrandAssetPreview, V as BrandMark, W as BrandMarkProps, X as BrandMarkSlot, Y as BrandMarkSurface, Z as BrandMarkTreatment, _ as BreadcrumbItem, $ as Breadcrumbs, a0 as BreadcrumbsProps, a1 as BudgetBar, a2 as BudgetBarProps, a3 as BudgetState, a4 as Button, a5 as ButtonClassesOptions, a6 as ButtonProps, a7 as ButtonSize, a8 as ButtonVariant, a9 as CHART_INK, aa as CMD_A, ab as CMD_DOT, ac as CMD_ENTER, ad as CMD_K, ae as CMD_S, af as COLUMN_COUNT_MAX, ag as COLUMN_COUNT_WIDTHS, ah as COLUMN_SHARES_EQUAL, ai as COLUMN_SHARE_MIN, aj as CONTROL_HEIGHTS, ak as CORNERS, al as Calendar, am as CalendarMode, an as CalendarProps, ao as Candle, ap as CandlestickChart, aq as CandlestickChartProps, ar as Card, as as CardPadding, at as CardProps, au as CardTone, av as CartesianPlot, aw as CartesianPlotProps, ax as CellStyle, ay as ChartBackgroundVariant, az as ChartBrush, aA as ChartBrushProps, aB as ChartCurve, aC as ChartDefs, aD as ChartDefsProps, aE as ChartDot, aF as ChartDotProps, aG as ChartDotVariant, aH as ChartFillVariant, aI as ChartFrame, aJ as ChartFrameProps, aK as ChartHighlightProvider, aL as ChartLegendEntry, aM as ChartLegendSwatch, aN as ChartRange, aO as ChartReferenceLine, aP as ChartRevealDirection, aQ as ChartSkeleton, aR as ChartSkeletonProps, aS as ChartStatusTone, aT as ChartStrokeVariant, aU as ChartTooltip, aV as ChartTooltipProps, aW as ChartTooltipRow, aX as ChatTemplate, aY as Checkbox, aZ as CheckboxProps, a_ as CheckoutTemplate, a$ as ChordChart, b0 as ChordChartProps, b1 as ColorPicker, b2 as ColorPickerPanel, b3 as ColorPickerPanelProps, b4 as ColorPickerProps, b5 as ColorPreset, b6 as ColorSwatch, b7 as ColorSwatchProps, b8 as ColorSwatchSize, b9 as ColoredBadge, ba as ColoredBadgeProps, bb as ColumnChart, bc as ColumnChartProps, C as ColumnDef, bd as ColumnSeries, be as ColumnShares, bf as ComposerAttachments, bg as ComposerAttachmentsProps, bh as ConfirmProvider, bi as ContainerFillChart, bj as ContainerFillChartProps, bk as ContainerFillItem, bl as ContextMenu, bm as ContextMenuPoint, bn as ContextMenuProps, bo as ContextMenuState, bp as ControlSize, bq as CornerOption, br as Corners, bs as CornersInput, bt as CornersInputProps, bu as CountBadge, bv as CountBadgeProps, bw as CountBadgeTone, bx as Curve, by as DAY_MS, bz as DashboardTemplate, bA as DataTable, bB as DataTableColumn, bC as DataTableColumnGroup, bD as DataTableHeader, bE as DataTablePage, bF as DataTableProps, bG as DataTableRowLink, bH as DataTableRowProps, bI as DatePicker, bJ as DatePickerProps, bK as DateRangePicker, bL as DateRangePickerProps, bM as DateTimePicker, bN as DateTimePickerProps, bO as DescriptionColumns, bP as DescriptionItem, bQ as DescriptionList, bR as DescriptionListProps, bS as Dialog, bT as DialogProps, bU as DialogSize, bV as DisplayChipItem, bW as DisplayChips, bX as DisplayChipsProps, bY as Divider, bZ as DividerProps, b_ as DividerSpacing, b$ as Drawer, c0 as DrawerProps, c1 as DrawerSide, c2 as DrawerSize, c3 as DropdownMenu, c4 as DropdownMenuAlign, c5 as DropdownMenuCheckboxItem, c6 as DropdownMenuDividerItem, c7 as DropdownMenuEntry, c8 as DropdownMenuItem, c9 as DropdownMenuLabelItem, ca as DropdownMenuLinkItem, cb as DropdownMenuProps, cc as DropdownMenuRadioItem, cd as DropdownMenuSide, ce as DropdownPositionOptions, cf as ELEVATION_LEVELS, cg as ENGLISH, ch as ENTER, ci as EditableGrid, cj as EditableGridProps, ck as ElevationLevel, cl as EmailTemplate, cm as EmptyState, cn as EmptyStateProps, co as EmptyValue, cp as EmptyValueProps, cq as ErrorBoundary, cr as ErrorBoundaryProps, cs as ErrorPage, ct as ErrorPageProps, cu as FONT_WEIGHTS, cv as FileIntake, cw as FilePicker, cx as FilePickerProps, cy as FillVariant, cz as FontWeightRole, cA as FormError, cB as FormErrorSummary, cC as FormErrorSummaryProps, cD as FormField, cE as FormFieldProps, cF as FormLayoutPage, cG as FunnelChart, cH as FunnelChartProps, cI as FunnelStage, cJ as GLASS_DIVIDER, cL as GROUP_COLORS, cM as GROUP_COLORS_SOLID, cN as GalleryTemplate, cO as Gap, cP as GlassOptions, cQ as GlobalSearch, cR as GlobalSearchProps, cS as Grid, cT as GridCols, cU as GridColumn, cV as GridProps, cW as HeatmapChart, cX as HeatmapChartProps, cY as HelpCenter, cZ as HelpCenterDoc, c_ as HelpCenterProps, c$ as HexInput, d0 as HistogramBin, d1 as HistogramChart, d2 as HistogramChartProps, d3 as Hsv, d4 as INPUT_BASE, d5 as INPUT_SIZES, d6 as IconButton, d7 as IconButtonClassesOptions, d8 as IconButtonProps, d9 as IconRail, da as IconRailButton, db as IconRailButtonProps, dc as IconRailLabels, dd as IconRailLabelsShown, de as IconRailOrientation, df as IconRailProps, dg as ImageFocusPoint, dh as ImageFocusPointProps, di as Inline, dj as InlineProps, dk as Input, dl as InputNumber, dm as InputNumberProps, dn as InputProps, dp as InputSize, dq as Justify, dr as Kanban, ds as KanbanColumn, dt as KanbanProps, du as Kbd, dv as KbdProps, dw as KbdSize, dx as KbdTone, dy as Label, dz as LabelClassesOptions, dA as LabelProps, dB as LadderScale, dC as LanguagePanel, dD as LanguagePanelProps, dE as LanguageSelect, dF as LanguageSelectProps, dG as LinearScale, dH as LinkFilter, dI as LinkFilterField, dJ as LinkKindChoice, dK as LinkOption, dL as LinkOptionGroup, dM as LinkPicker, dN as LinkPickerFieldProps, dO as LinkPickerProps, dP as LinkPickerWindowProps, dQ as LinkRules, dR as LinkTarget, dS as ListDrop, dT as ListFooter, dU as ListLoadError, dV as ListLoadErrorProps, dW as ListMove, dX as ListRow, dY as ListRowProps, dZ as LoadingSpinner, d_ as LoadingSpinnerProps, d$ as MAX_FRACTION_DIGITS, e0 as MENU_MAX_HEIGHT, e1 as MOD, e2 as MOTION, e3 as MOTION_DURATIONS, e4 as Markdown, e4 as MarkdownLite, e5 as MarkdownLiteProps, e5 as MarkdownProps, e6 as MediaUploadField, e7 as MediaUploadFieldProps, e8 as MediaUploadGrid, e9 as MediaUploadGridItem, ea as MediaUploadGridProps, eb as MenuPos, ec as Meter, ed as MeterProps, ee as MetricBar, ef as MetricBarProps, eg as Milestone, eh as MilestoneKind, ei as MilestoneTimeline, ej as MilestoneTimelineProps, ek as MotionSpeed, em as NEXT_CHUNK_PATH_PREFIX, en as NativeSelect, eo as NiceAxis, ep as NumericKeypad, eq as NumericKeypadProps, er as OVERLAY_OPEN_EVENT, es as POPUP_MAX_WIDTH, et as POST_PRODUCTION_STATUSES, eu as PageHeader, ev as PageHeaderProps, P as PaginatedResponse, ew as Pagination, ex as PaginationProps, ey as PaperclipGlyph, ez as Paragraph, eA as ParagraphProps, eB as PieChart, eC as PieChartProps, eD as PieSegment, eE as PlotGeometry, eF as Point, eG as Popover, eH as PopoverAlign, eI as PopoverProps, eJ as PopoverRenderProps, eK as PopoverSide, eL as PopupMenu, eM as PopupMenuDivider, eN as PopupMenuItem, eO as PopupMenuItemProps, eP as PopupMenuLabel, eQ as PopupMenuProps, eR as PopupSubmenu, eS as PopupSubmenuProps, eT as PortalBrandingContextValue, eU as PortalBrandingProvider, eV as PortalBrandingProviderProps, eW as ProductionTimeline, eX as ProductionTimelineProps, eY as ProductionTimelineSnapshot, eZ as ProgressItem, e_ as PublicPortal, e$ as PublicPortalBranding, f0 as RADAR_SERIES_CAP, f1 as RADIUS_ROLES, f2 as ROW_HEIGHTS, f3 as RadarAxis, f4 as RadarChart, f5 as RadarChartProps, f6 as RadarSeries, f7 as RadialBarChart, f8 as RadialBarChartProps, f9 as RadialBarRow, fa as Radio, fb as RadioGroup, fc as RadioGroupOption, fd as RadioGroupOrientation, fe as RadioGroupProps, ff as RadioProps, fg as RadiusRole, fh as Range, fi as RangeChart, fj as RangeChartProps, fk as RangeRow, fl as RankedBars, fm as RankedBarsProps, fn as RankedBarsRow, fo as ResizeHandle, fp as ResizeHandleOrientation, fq as ResizeHandleProps, fr as ResizeHandleSide, fs as ResizeHandleStackSide, ft as ResolvedPortalBrandAsset, fu as Result, fv as ResultProps, fw as ResultStatus, fx as RevealDirection, fy as SCATTER_SERIES_CAP, fz as SERIES_SLOT_COUNT, fA as SERIES_VARS, fB as SHELL_LANGUAGE_STORAGE_KEY, fC as SHIFT, fD as SPACING_ROLES, fE as SPACING_SCALE, fF as STAGES, fG as STALE_CHUNK_RELOAD_COOLDOWN_MS, fH as STALE_CHUNK_RELOAD_KEY, fI as STATUS_VARS, fJ as SankeyChart, fK as SankeyChartProps, fL as SankeyLink, fM as SankeyNode, fN as ScatterChart, fO as ScatterChartProps, fP as ScatterPoint, fQ as ScatterSeries, S as SearchConfig, fR as SearchListRoute, fS as SearchProvider, fT as SearchQuickAction, fU as SearchResponse, fV as SearchResult, fW as SearchableItem, fX as SearchableOption, fY as SearchableOptionGroup, fZ as SearchableSelect, f_ as SearchableSelectBaseProps, f$ as SearchableSelectMultipleProps, g0 as SearchableSelectProps, g1 as Segmented, g2 as SegmentedOption, g3 as SegmentedProps, g4 as SegmentedSize, g5 as Select, g6 as SelectBaseProps, g7 as SelectItem, g8 as SelectMultipleProps, g9 as SelectOption, ga as SelectOptionGroup, gb as SelectProps, gc as SemanticGroup, gd as SeriesSlots, ge as SettingRow, gf as SettingRowProps, gg as SeverityTone, gj as ShellLanguage, gk as ShellLanguageProvider, gl as ShellLanguageState, gm as ShellPrefsAdapter, gn as ShellPrefsProvider, go as SidebarActionButton, gp as SidebarActionButtonProps, gq as SidebarGroupLabel, gr as SidebarGroupLabelProps, gs as SidebarLayout, gt as SidebarLayoutProps, gu as SidebarNavGroup, gv as SidebarNavGroupProps, gw as SidebarNavItem, gx as SidebarNavItemProps, gy as Skeleton, gz as SkeletonProps, gA as SkeletonVariant, gB as Slider, gC as SliderProps, gD as SliderSize, gE as Snippet, gF as SnippetProps, gG as SnippetSize, gH as SnippetVariant, a as SortState, gI as SortableList, gJ as SortableListProps, gK as SortableListSpacing, gL as SpacingRole, gM as SpacingStep, gN as Sparkline, gO as SparklineProps, gP as Stack, gQ as StackProps, gR as StaleChunkReloadOptions, gS as StatCard, gT as StatCardProps, gU as StatTile, gV as StatTileProps, gW as Statistic, gX as StatisticProps, gY as StatisticSize, gZ as StatisticTone, g_ as StatusBadge, g$ as StatusBadgeProvider, h0 as StatusEmphasis, h1 as StepItem, h2 as Stepper, h3 as StepperProps, h4 as StrokeVariant, h5 as SunburstChart, h6 as SunburstChartProps, h7 as SunburstNode, h8 as Switch, h9 as SwitchProps, ha as SwitchSize, hb as TYPE_SCALE, hc as TabItem, hd as Tabs, he as TabsProps, hf as TagInput, hg as TagInputOption, hh as TagInputProps, hi as TagInputTone, hj as Text, hk as TextLinkField, hl as TextLinkFieldProps, hm as TextProps, hn as TextSize, ho as TextTone, hp as TextWeight, hq as Textarea, hr as TextareaProps, hs as Theme, ht as TileButton, hu as TileButtonProps, hv as TileSize, hw as TimeAgo, hx as TimeAgoProps, hy as TimePicker, hz as TimePickerProps, hA as TimeSeriesChart, hB as TimeSeriesChartProps, hC as TimeSeriesSeries, hD as TimelineMarker, hE as TimelineMarkerKind, hF as TimelineReport, hG as TimelineScrubProgress, hH as TimelineTrack, hI as TimelineTrackItem, hJ as TimelineTrackKind, hK as TimelineTrackPending, hL as TimelineTrackPhase, hM as TimelineTrackPlayback, hN as TimelineTrackProps, hO as TimelineTrackThumb, hP as Title, hQ as TitleLevel, hR as TitleProps, hS as ToastOptions, hT as ToastPlacement, hU as Tooltip, hV as TooltipProps, hW as TopNav, hX as TopNavItem, hY as TopNavProps, hZ as Tree, h_ as TreeDrop, h$ as TreeEmptySlot, i0 as TreeEmptySlotProps, i1 as TreeGroup, i2 as TreeGroupLabel, i3 as TreeGroupProps, i4 as TreeMove, i5 as TreeProps, i6 as TreeRow, i7 as TreeRowProps, i8 as TreeSeam, i9 as TreeSeamProps, ia as TreemapChart, ib as TreemapChartProps, ic as TreemapItem, id as TreemapTile, ie as TypeStep, ig as UseAppUpdateOptions, ih as UseContextMenu, ii as UseProductionTimelineOpts, ij as VERSION, ik as VITE_PRELOAD_ERROR_EVENT, il as WaterfallChart, im as WaterfallChartProps, io as WaterfallStep, ip as WidthsBar, iq as WidthsBarProps, ir as ZLayer, is as Z_LAYERS, it as angleScale, iu as appendKey, iv as applyCorners, iw as applyIconSet, ix as applyThemePrefs, iy as arcPath, iz as areaBetween, iA as areaFrom, iB as assignSeriesSlots, iC as autoHighlightIndex, iD as backspace, iE as bandScale, iF as binValues, iG as budgetState, iH as bumpPath, iI as buttonClasses, iJ as calcOverall, iK as calcReportOverall, iL as colorFill, iM as colorSwatchClasses, iN as columnSharesWidths, iO as confirm, iP as confirmDestructive, iQ as curvePath, iR as dashFor, iT as dismissPopups, iU as fillFor, iV as fillId, iW as fmtSliderDate, iX as fromDateKey, iY as glassStyle, iZ as glowId, i_ as groundId, i$ as groupColors, j0 as hexToHsv, j1 as highlightOpacity, j2 as hsvToHex, j3 as iconButtonClasses, j4 as inputClasses, j5 as installStaleChunkReload, j6 as isMac, j7 as isSeverityTone, j8 as isSpacingStep, j9 as isStaleChunkError, jb as labelClasses, jc as ladderScale, jd as languageSelectWidth, je as leavesContextMenuAlone, jf as linearPath, jg as linearScale, jh as logScale, ji as maskId, jj as matchShellLanguage, jk as mediaFileName, jl as monotonePath, jm as niceAxis, jn as niceMax, jo as openGlobalSearch, jp as parseHexColor, jq as polygonPoints, jr as popupBounds, js as prompt, jt as pushRecentSearch, ju as radiusScale, jv as readSavedShellLanguage, jw as registerModalEscapeInterceptor, jx as resolveBrandMarkTreatment, jy as resolveColumnShares, jz as resolveColumnWidths, jA as resolveCorners, jB as resolvePortalBrandAsset, jC as resolveSeriesColor, jD as resolveSeriesColorWithin, jE as resolveShellLanguage, jF as resolveTheme, jG as sanitizeRecentSearches, jH as saveShellLanguage, jI as seriesColor, jJ as severityOf, jK as splinePath, jL as squarify, jM as stagger, jN as stepPath, jO as tabButtonId, jP as tabPanelId, jQ as toDateKey, jR as toDayMs, jS as toISODate, jT as toast, jU as toggleSeriesSlot, jV as useAppUpdate, jW as useClickOutside, jX as useConfirm, jY as useContextMenu, jZ as useDebouncedValue, j_ as useDropdownPosition, j$ as useFocusTrap, k0 as useHighlight, k1 as useIsMobile, k2 as useLocalStoragePrefs, k3 as usePlotWidth, k4 as usePortalBranding, k5 as useProductionTimeline, k6 as useScrollLock, k7 as useShellLanguage, k8 as useShellPrefs, k9 as useStatusLabel, ka as useTheme } from '../index-BkBsXpfV.js';
2
2
  export { C as CurrencyFormat, D as DATE_FORMAT_OPTIONS, a as DateFormatKey, E as EMPTY_VALUE, F as FOCAL_DEFAULT, b as FOCAL_NUDGE_COARSE, c as FOCAL_NUDGE_STEP, d as FocalPoint, e as FormatDateOptions, f as FormatMoneyOptions, T as TZ_AUTO, g as TimeAgoOptions, h as currencyDecimals, i as currencySymbol, j as firstDayOfWeek, k as focalFromRect, l as formatBytes, m as formatDate, n as formatDateTime, o as formatFocal, p as formatMoney, q as formatTime, r as getUserDateFormat, s as getUserTimezone, t as nudgeFocal, u as parseFocal, v as setCurrencyFormats, w as setUserDateFormat, x as setUserTimezone, y as syncTimezoneFromProfile, z as timeAgo } from '../index-CHufemKB.js';
3
3
  export { isSafeLinkHref } from '../markup/index.js';
4
4
  export { FileIntakeAlert, FileIntakeLimits, FileIntakeOptions, FileRejection, FileRejectionReason, acceptsFile, useFileIntake } from '../file-intake/index.js';
5
5
  export { ICON_NAMES, Icon, IconName, IconProps, IconTone, isIconName } from '../icons/index.js';
6
6
  export { a as IconDrawing, I as IconSet, b as activeIconSet, i as iconSets, c as iconsVersion, r as registerIconSet, d as registerIcons, e as resolveIcon, s as setDefaultIconSet, f as setIconSet, g as subscribeIcons } from '../registry-Dw6QO2Ch.js';
7
- export { D as DEFAULT_SHELL_STRINGS, a as ShellStrings, S as ShellStringsOverride, b as ShellStringsProvider, u as useShellLocale, c as useShellStrings } from '../strings-fYzxZPn4.js';
7
+ export { D as DEFAULT_SHELL_STRINGS, a as ShellStrings, S as ShellStringsOverride, b as ShellStringsProvider, u as useShellLocale, c as useShellStrings } from '../strings-BQtq9300.js';
8
8
  import 'react';
9
9
  import 'react/jsx-runtime';
package/dist/ui/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{APP_UPDATE_POLL_MS,Accordion,AlignmentGrid,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,BORDER_WIDTHS,Banner,BarChart,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,COLUMN_COUNT_MAX,COLUMN_COUNT_WIDTHS,COLUMN_SHARES_EQUAL,COLUMN_SHARE_MIN,CONTROL_HEIGHTS,CORNERS,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColorPicker,ColorPickerPanel,ColorSwatch,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,ContextMenu,CornersInput,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,DisplayChips,Divider,DonutChart,Drawer,DropdownMenu,ELEVATION_LEVELS,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FONT_WEIGHTS,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,INPUT_BASE,INPUT_SIZES,IconButton_default as IconButton,IconRail,IconRailButton,ImageFocusPoint,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LineChart,LinkPicker,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,MOTION_DURATIONS,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,Popover,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RADIUS_ROLES,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,SPACING_ROLES,SPACING_SCALE,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,TYPE_SCALE,Tabs,TagInput,Text,TextLinkField,Textarea_default as Textarea,TileButton_default as TileButton,TimeAgo,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,TopNav,Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam,TreemapChart,WaterfallChart,WidthsBar,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,columnSharesWidths,curvePath,dashFor,fillFor,fillId,fmtSliderDate,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,inputClasses,isSeverityTone,isSpacingStep,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceMax,parseHexColor,polygonPoints,radiusScale,resolveColumnShares,resolveColumnWidths,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme}from"../chunk-PFKMIPZH.js";export{Breadcrumbs}from"../chunk-Q5O5UMJY.js";export{ResizeHandle,SidebarLayout}from"../chunk-5LUN632W.js";export{BrandMark,GlobalSearch,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"../chunk-7PGHRG6J.js";export{EditableGrid}from"../chunk-YX2IMURA.js";import"../chunk-BR22X7E5.js";export{isSafeLinkHref}from"../chunk-PJPK2ADX.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"../chunk-5K76RQML.js";export{toast_default as toast}from"../chunk-GJ37JCC2.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,LoadingSpinner,MOD,NEXT_CHUNK_PATH_PREFIX,Result,SHIFT,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,ShellPrefsProvider,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isMac,isStaleChunkError,useIsMobile,useLocalStoragePrefs,useShellPrefs}from"../chunk-HQLAISFX.js";import"../chunk-5A7MWTXX.js";export{Button_default as Button,MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,buttonClasses,iconButtonClasses,popupBounds,useDropdownPosition}from"../chunk-S3LGKIZ3.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"../chunk-DBXZS7OA.js";export{PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,leavesContextMenuAlone}from"../chunk-ZEIKSMFR.js";import"../chunk-UVBK6YSR.js";export{GLASS_DIVIDER,glassStyle}from"../chunk-7IQ3B77H.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"../chunk-FIEA5CGB.js";import"../chunk-D65T4H6J.js";export{VERSION}from"../chunk-SBF5A6XV.js";import"../chunk-KNUR2UEG.js";export{FOCAL_DEFAULT,FOCAL_NUDGE_COARSE,FOCAL_NUDGE_STEP,focalFromRect,formatFocal,nudgeFocal,parseFocal}from"../chunk-AP2QEJXQ.js";export{DATE_FORMAT_OPTIONS,EMPTY_VALUE,TZ_AUTO,currencyDecimals,currencySymbol,firstDayOfWeek,formatBytes,formatDate,formatDateTime,formatMoney,formatTime,getUserDateFormat,getUserTimezone,setCurrencyFormats,setUserDateFormat,setUserTimezone,syncTimezoneFromProfile,timeAgo}from"../chunk-W32SKK3D.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"../chunk-UUYPUKP7.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"../chunk-K6DKX55N.js";import"../chunk-C3QOHMR6.js";export{ICON_NAMES,isIconName}from"../chunk-WOEFPBQF.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"../chunk-2SSRFEOZ.js";
2
+ export{APP_UPDATE_POLL_MS,Accordion,AlignmentGrid,AppUpdateBanner,AttachButton,AttachmentDropZone,AttachmentList,AuthScreen,Avatar,AvatarGroup,BORDER_WIDTHS,Banner,BoxPlotChart,BrandAssetEditor,BudgetBar,CHART_INK,COLUMN_COUNT_MAX,COLUMN_COUNT_WIDTHS,COLUMN_SHARES_EQUAL,COLUMN_SHARE_MIN,CONTROL_HEIGHTS,CORNERS,Calendar,CandlestickChart,Card,CartesianPlot,ChartBrush,ChartDefs,ChartDot,ChartFrame,ChartHighlightProvider,ChartSkeleton,ChartTooltip,ChatTemplate,Checkbox_default as Checkbox,CheckoutTemplate,ChordChart,ColorPicker,ColorPickerPanel,ColorSwatch,ColoredBadge,ColumnChart,ComposerAttachments,ContainerFillChart,ContextMenu,CornersInput,CountBadge,DAY_MS,DashboardTemplate,DataTable,DataTablePage,DatePicker_default as DatePicker,DateRangePicker,DateTimePicker_default as DateTimePicker,DescriptionList,DisplayChips,Divider,Drawer,DropdownMenu,ELEVATION_LEVELS,EmailTemplate,EmptyState,EmptyValue,ErrorBoundary,ErrorPage,FONT_WEIGHTS,FilePicker_default as FilePicker,FormErrorSummary,FormField,FormLayoutPage,FunnelChart,GROUP_COLORS,GROUP_COLORS_SOLID,GalleryTemplate,Grid,HeatmapChart,HelpCenter,HexInput,HistogramChart,INPUT_BASE,INPUT_SIZES,IconButton_default as IconButton,IconRail,IconRailButton,ImageFocusPoint,Inline,Input_default as Input,InputNumber_default as InputNumber,Kanban,Label,LanguagePanel,LanguageSelect,LinkPicker,ListFooter,ListLoadError,ListRow,MAX_FRACTION_DIGITS,MOTION,MOTION_DURATIONS,Markdown,Markdown as MarkdownLite,MediaUploadField,MediaUploadGrid,Meter,MetricBar,MilestoneTimeline,NativeSelect,NumericKeypad,POST_PRODUCTION_STATUSES,PageHeader,Pagination,PaperclipGlyph,Paragraph,PieChart,Popover,PortalBrandingProvider,ProductionTimeline,RADAR_SERIES_CAP,RADIUS_ROLES,ROW_HEIGHTS,RadarChart,RadialBarChart,Radio_default as Radio,RadioGroup,RangeChart,RankedBars,SCATTER_SERIES_CAP,SERIES_SLOT_COUNT,SERIES_VARS,SPACING_ROLES,SPACING_SCALE,STAGES,STATUS_VARS,SankeyChart,ScatterChart,SearchableSelect,Segmented,Select_default as Select,SettingRow,SidebarActionButton,SidebarGroupLabel,SidebarNavGroup,SidebarNavItem,Skeleton,Slider,Snippet,SortableList,Sparkline,Stack,StatCard,StatTile,Statistic,StatusBadge,StatusBadgeProvider,Stepper,SunburstChart,Switch_default as Switch,TYPE_SCALE,Tabs,TagInput,Text,TextLinkField,Textarea_default as Textarea,TileButton_default as TileButton,TimeAgo,TimePicker_default as TimePicker,TimeSeriesChart,TimelineTrack,Title,TopNav,Tree,TreeEmptySlot,TreeGroup,TreeGroupLabel,TreeRow,TreeSeam,TreemapChart,WaterfallChart,WidthsBar,angleScale,appendKey,applyCorners,applyIconSet,applyThemePrefs,arcPath,areaBetween,areaFrom,assignSeriesSlots,autoHighlightIndex,backspace,bandScale,binValues,budgetState,bumpPath,calcOverall,calcReportOverall,colorFill,colorSwatchClasses,columnSharesWidths,curvePath,dashFor,fillFor,fillId,fmtSliderDate,fromKey as fromDateKey,glowId,groundId,groupColors,hexToHsv,highlightOpacity,hsvToHex,inputClasses,isSeverityTone,isSpacingStep,labelClasses,ladderScale,languageSelectWidth,linearPath,linearScale,logScale,maskId,mediaFileName,monotonePath,niceAxis,niceMax,parseHexColor,polygonPoints,radiusScale,resolveColumnShares,resolveColumnWidths,resolveCorners,resolvePortalBrandAsset,resolveSeriesColor,resolveSeriesColorWithin,resolveTheme,seriesColor,severityOf,splinePath,squarify,stagger,stepPath,tabButtonId,tabPanelId,toKey as toDateKey,toDayMs,toISODate,toggleSeriesSlot,useAppUpdate,useClickOutside,useContextMenu,useDebouncedValue,useHighlight,usePlotWidth,usePortalBranding,useProductionTimeline,useStatusLabel,useTheme}from"../chunk-TCYS67ND.js";export{Breadcrumbs}from"../chunk-M4MCXII7.js";export{ResizeHandle,SidebarLayout}from"../chunk-43XFZY4K.js";export{BrandMark,GlobalSearch,openGlobalSearch,pushRecent as pushRecentSearch,resolveBrandMarkTreatment,sanitizeRecent as sanitizeRecentSearches}from"../chunk-QUVE5JZZ.js";export{EditableGrid}from"../chunk-R2TPTM4O.js";import"../chunk-BR22X7E5.js";export{isSafeLinkHref}from"../chunk-PJPK2ADX.js";export{ENGLISH,SHELL_LANGUAGE_STORAGE_KEY,ShellLanguageProvider,matchShellLanguage,readSavedShellLanguage,resolveShellLanguage,saveShellLanguage,useShellLanguage}from"../chunk-RBKIYZ7H.js";export{toast_default as toast}from"../chunk-RUHUTZN4.js";export{ALT,ALT_SHIFT_D,ALT_SHIFT_E,ALT_SHIFT_N,CMD_A,CMD_DOT,CMD_ENTER,CMD_K,CMD_S,ENTER,Kbd,LoadingSpinner,MOD,NEXT_CHUNK_PATH_PREFIX,Result,SHIFT,STALE_CHUNK_RELOAD_COOLDOWN_MS,STALE_CHUNK_RELOAD_KEY,ShellPrefsProvider,VITE_PRELOAD_ERROR_EVENT,installStaleChunkReload,isMac,isStaleChunkError,useIsMobile,useLocalStoragePrefs,useShellPrefs}from"../chunk-G4CTTSAR.js";import"../chunk-5A7MWTXX.js";export{Button_default as Button,MENU_MAX_HEIGHT,POPUP_MAX_WIDTH,Tooltip,popupBounds,useDropdownPosition}from"../chunk-PT4Z3KIA.js";export{ConfirmProvider,Dialog,confirm,confirmDestructive,prompt,useConfirm,useFocusTrap,useScrollLock}from"../chunk-MSGBGLGI.js";export{PopupMenu,PopupMenuDivider,PopupMenuItem,PopupMenuLabel,PopupSubmenu,leavesContextMenuAlone}from"../chunk-4JGNJYVL.js";import"../chunk-UVBK6YSR.js";export{buttonClasses,iconButtonClasses}from"../chunk-2ALIPI3D.js";export{GLASS_DIVIDER,glassStyle}from"../chunk-7IQ3B77H.js";export{OVERLAY_OPEN_EVENT,Z_LAYERS,dismissPopups,registerModalEscapeInterceptor}from"../chunk-FIEA5CGB.js";import"../chunk-D65T4H6J.js";export{VERSION}from"../chunk-BUGGBB5J.js";import"../chunk-KNUR2UEG.js";export{FileIntakeAlert,acceptsFile,useFileIntake}from"../chunk-M4TRVJTO.js";export{DEFAULT_SHELL_STRINGS,ShellStringsProvider,useShellLocale,useShellStrings}from"../chunk-QRCDQPJA.js";import"../chunk-C3QOHMR6.js";export{FOCAL_DEFAULT,FOCAL_NUDGE_COARSE,FOCAL_NUDGE_STEP,focalFromRect,formatFocal,nudgeFocal,parseFocal}from"../chunk-AP2QEJXQ.js";export{DATE_FORMAT_OPTIONS,EMPTY_VALUE,TZ_AUTO,currencyDecimals,currencySymbol,firstDayOfWeek,formatBytes,formatDate,formatDateTime,formatMoney,formatTime,getUserDateFormat,getUserTimezone,setCurrencyFormats,setUserDateFormat,setUserTimezone,syncTimezoneFromProfile,timeAgo}from"../chunk-W32SKK3D.js";export{ICON_NAMES,isIconName}from"../chunk-WOEFPBQF.js";export{Icon,activeIconSet,iconSets,iconsVersion,registerIconSet,registerIcons,resolveIcon,setDefaultIconSet,setIconSet,subscribeIcons}from"../chunk-CJHT4VTF.js";
package/dist/ui.css CHANGED
@@ -257,6 +257,12 @@
257
257
  --control-height-sm: 1.5rem;
258
258
  --control-height-md: 2rem;
259
259
  --control-height-lg: 2.5rem;
260
+
261
+ /* Row heights (Lewis, 2026-10-13): menu, list and sidebar rows, and the
262
+ main window bar. An exception to the control ladder; controls stay on
263
+ it. */
264
+ --row-height-menu: 2.25rem;
265
+ --row-height-window-bar: 2.75rem;
260
266
  }
261
267
 
262
268
  /* The default `utils/glass.ts` already assumes at `getMenuOpacity()`'s
@@ -816,22 +822,6 @@ html.rosh-reduce-transparency *::after {
816
822
  /* SidebarLayout's resize handle under the pointer, when no custom accent is
817
823
  set — the custom accent's `--accent-500` still wins, read where it is set. */
818
824
  --rosh-resize-handle: #3b82f6;
819
-
820
- /* DonutChart's default segment colours, in assignment order, and its track.
821
- NOT the `--viz-series-*` palette above: the donut predates it and its
822
- callers have been showing these hues, so this is the same eight in the
823
- same order. A host that wants one palette across every chart points these
824
- at the series tokens. The track is a translucent slate, read over either
825
- theme, which is why nothing here has a dark step. */
826
- --rosh-donut-1: #3b82f6;
827
- --rosh-donut-2: #22c55e;
828
- --rosh-donut-3: #f59e0b;
829
- --rosh-donut-4: #ef4444;
830
- --rosh-donut-5: #6366f1;
831
- --rosh-donut-6: #14b8a6;
832
- --rosh-donut-7: #a855f7;
833
- --rosh-donut-8: #64748b;
834
- --rosh-donut-track: rgba(148, 163, 184, 0.25);
835
825
  }
836
826
 
837
827
  /* ── Kit colours, dark ──────────────────────────────────────────────────────
@@ -1530,11 +1520,11 @@ html.rosh-reduce-transparency *::after {
1530
1520
  }
1531
1521
  .rosh-tl-ico { flex: none; width: 15px; height: 15px; align-self: center; margin-right: -3px; }
1532
1522
  .rosh-tl-ico svg { width: 15px; height: 15px; }
1533
- .rosh-tl-title { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: -0.005em; }
1523
+ .rosh-tl-title { margin: 0; font-size: var(--text-sm); font-weight: 600; letter-spacing: -0.005em; }
1534
1524
  /* `min-width: 0` is what lets a long meta line WRAP rather than push the
1535
1525
  actions onto a row of their own: a flex item's default minimum is its
1536
1526
  content, and five facts about a production order are wider than a card. */
1537
- .rosh-tl-meta { margin: 0; font-size: 12px; font-variant-numeric: tabular-nums; min-width: 0; }
1527
+ .rosh-tl-meta { margin: 0; font-size: var(--text-xs); font-variant-numeric: tabular-nums; min-width: 0; }
1538
1528
  .rosh-tl-meta b { font-weight: 500; }
1539
1529
  .rosh-tl-head-actions {
1540
1530
  display: inline-flex; align-items: center; gap: 10px; margin-left: auto; flex: none;
@@ -1545,7 +1535,7 @@ html.rosh-reduce-transparency *::after {
1545
1535
  .rosh-tl-play {
1546
1536
  display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px 0 10px;
1547
1537
  border-radius: 14px; cursor: pointer; white-space: nowrap;
1548
- font: inherit; font-size: 11.5px; font-weight: 500;
1538
+ font: inherit; font-size: var(--text-xs); font-weight: 500;
1549
1539
  background: var(--surface-raised); border-width: 1px; border-style: solid;
1550
1540
  transition: color 160ms ease-out, border-color 160ms ease-out;
1551
1541
  }
@@ -1556,12 +1546,12 @@ html.rosh-reduce-transparency *::after {
1556
1546
  margin-top: 14px; padding-top: 12px;
1557
1547
  border-top-width: 1px; border-top-style: solid;
1558
1548
  }
1559
- .rosh-tl-status { margin: 0; font-size: 12px; font-variant-numeric: tabular-nums; }
1549
+ .rosh-tl-status { margin: 0; font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
1560
1550
  .rosh-tl-legend { display: flex; gap: 6px; flex-wrap: wrap; margin-left: auto; }
1561
1551
  .rosh-tl-legend > span {
1562
1552
  display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 9px 0 7px;
1563
1553
  border-width: 1px; border-style: solid; border-radius: 11px;
1564
- font-size: 10.5px; background: var(--surface-raised);
1554
+ font-size: var(--text-2xs); background: var(--surface-raised);
1565
1555
  }
1566
1556
  /* The legend's glyphs are the track's glyphs at legend size, so a chip can
1567
1557
  never describe a shape the rail no longer draws. */
@@ -1586,7 +1576,7 @@ html.rosh-reduce-transparency *::after {
1586
1576
  .rosh-tl-edge {
1587
1577
  position: absolute; white-space: nowrap;
1588
1578
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
1589
- font-size: 10px; line-height: 1.3; color: var(--ink-muted);
1579
+ font-size: var(--text-2xs); line-height: 1.3; color: var(--ink-muted);
1590
1580
  }
1591
1581
  .rosh-tl-edge.is-end { transform: translateX(-100%); }
1592
1582
 
@@ -1623,7 +1613,7 @@ html.rosh-reduce-transparency *::after {
1623
1613
  .rosh-tl-tick.is-week { opacity: 0.5; }
1624
1614
  .rosh-tl-month, .rosh-tl-rulercut span {
1625
1615
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
1626
- font-size: 10px; line-height: 1.1; color: var(--ink-faint);
1616
+ font-size: var(--text-2xs); line-height: 1.1; color: var(--ink-faint);
1627
1617
  }
1628
1618
  .rosh-tl-month { position: absolute; white-space: nowrap; }
1629
1619
  .rosh-tl-rulercut {
@@ -1640,7 +1630,7 @@ html.rosh-reduce-transparency *::after {
1640
1630
  }
1641
1631
  .rosh-tl-todaytag {
1642
1632
  position: absolute; white-space: nowrap; border-radius: 5px; padding: 1px 6px;
1643
- font-size: 10px; font-weight: 500; letter-spacing: 0.02em;
1633
+ font-size: var(--text-2xs); font-weight: 500; letter-spacing: 0.02em;
1644
1634
  color: var(--ink-muted); background: var(--surface-raised);
1645
1635
  }
1646
1636
 
@@ -1699,7 +1689,7 @@ html.rosh-reduce-transparency *::after {
1699
1689
  text over the rail is a mark's caption, and the undated things are a dashed
1700
1690
  cap at the end of a dashed tail. */
1701
1691
  .rosh-tl-flank {
1702
- flex: none; white-space: nowrap; font-size: 11px; font-weight: 500; line-height: 1;
1692
+ flex: none; white-space: nowrap; font-size: var(--text-2xs); font-weight: 500; line-height: 1;
1703
1693
  color: var(--ink-muted);
1704
1694
  }
1705
1695
  /* The caption over a mark — `v3` over a revision. Mono, like every other
@@ -1707,7 +1697,7 @@ html.rosh-reduce-transparency *::after {
1707
1697
  .rosh-tl-caption {
1708
1698
  position: absolute; transform: translateX(-50%); white-space: nowrap; pointer-events: none;
1709
1699
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
1710
- font-size: 10px; line-height: 1.1; color: var(--ink-muted);
1700
+ font-size: var(--text-2xs); line-height: 1.1; color: var(--ink-muted);
1711
1701
  }
1712
1702
  /* The tail: from the end of the axis to the cap. Dashed, because it is not
1713
1703
  time — it is the distance to a date nobody has. */
@@ -1750,7 +1740,7 @@ html.rosh-reduce-transparency *::after {
1750
1740
  .rosh-tl-count {
1751
1741
  position: absolute; transform: translate(9px, -14px);
1752
1742
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
1753
- font-size: 9px; font-weight: 600; line-height: 1; letter-spacing: -0.02em;
1743
+ font-size: var(--text-3xs); font-weight: 600; line-height: 1; letter-spacing: -0.02em;
1754
1744
  color: var(--tl-accent); pointer-events: none;
1755
1745
  padding: 1px 2px; border-radius: 4px; background: var(--surface-sunken);
1756
1746
  }
@@ -1762,7 +1752,7 @@ html.rosh-reduce-transparency *::after {
1762
1752
  }
1763
1753
  .rosh-tl-foldnum {
1764
1754
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
1765
- font-size: 9px; font-weight: 600; line-height: 1; letter-spacing: -0.02em;
1755
+ font-size: var(--text-3xs); font-weight: 600; line-height: 1; letter-spacing: -0.02em;
1766
1756
  }
1767
1757
  .rosh-tl-node.is-active { box-shadow: 0 0 0 2px var(--surface-sunken), 0 0 0 5px var(--line); }
1768
1758
  /* The flash as the scrubber's thumb crosses a mark. It rides the same 160ms
@@ -1791,12 +1781,12 @@ html.rosh-reduce-transparency *::after {
1791
1781
  background: var(--surface-raised); border: 1px solid var(--line);
1792
1782
  }
1793
1783
  .rosh-tl-name {
1794
- font-size: 11px; font-weight: 500; line-height: 1.25; color: var(--ink-strong);
1784
+ font-size: var(--text-2xs); font-weight: 500; line-height: 1.25; color: var(--ink-strong);
1795
1785
  transition: color 160ms cubic-bezier(0, 0, 0.2, 1);
1796
1786
  }
1797
1787
  .rosh-tl-date, .rosh-tl-detail {
1798
1788
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
1799
- font-size: 10px; line-height: 1.3; color: var(--ink-faint);
1789
+ font-size: var(--text-2xs); line-height: 1.3; color: var(--ink-faint);
1800
1790
  }
1801
1791
  .rosh-tl-detail { font-family: inherit; color: var(--ink-muted); margin-top: 2px; }
1802
1792
  .rosh-tl-label.is-current .rosh-tl-name { font-weight: 600; }
@@ -1815,7 +1805,7 @@ html.rosh-reduce-transparency *::after {
1815
1805
  }
1816
1806
  .rosh-tl-phase-label {
1817
1807
  position: absolute; transform: translateX(-50%); white-space: nowrap;
1818
- font-size: 9px; line-height: 1.2; pointer-events: none;
1808
+ font-size: var(--text-3xs); line-height: 1.2; pointer-events: none;
1819
1809
  }
1820
1810
 
1821
1811
  .rosh-tl-lead, .rosh-tl-cspan {
@@ -1826,7 +1816,7 @@ html.rosh-reduce-transparency *::after {
1826
1816
  .rosh-tl-pill {
1827
1817
  position: absolute; display: inline-flex; align-items: center; gap: 4px;
1828
1818
  height: 19px; padding: 0 7px; border-radius: 10px; cursor: pointer; white-space: nowrap;
1829
- font: inherit; font-size: 10px; font-weight: 500;
1819
+ font: inherit; font-size: var(--text-2xs); font-weight: 500;
1830
1820
  color: var(--ink); background: var(--surface); border: 1px solid currentColor;
1831
1821
  transition: box-shadow 160ms cubic-bezier(0, 0, 0.2, 1);
1832
1822
  }
@@ -1853,30 +1843,30 @@ html.rosh-reduce-transparency *::after {
1853
1843
  .rosh-tl-bubble.is-preview { max-width: 280px; min-width: 180px; }
1854
1844
  .rosh-tl-preview {
1855
1845
  display: flex; flex-direction: column; gap: 3px;
1856
- margin-top: 5px; font-size: 11px; color: var(--ink-muted);
1846
+ margin-top: 5px; font-size: var(--text-2xs); color: var(--ink-muted);
1857
1847
  }
1858
1848
  /* The way out of the popover and into the thing it is previewing. */
1859
1849
  .rosh-tl-bubble-open {
1860
1850
  margin-top: 6px; padding: 5px 0 0; width: 100%; text-align: left; cursor: pointer;
1861
1851
  background: none; border: 0; border-top-width: 1px; border-top-style: solid;
1862
1852
  border-top-color: var(--line);
1863
- font: inherit; font-size: 11px; font-weight: 500;
1853
+ font: inherit; font-size: var(--text-2xs); font-weight: 500;
1864
1854
  }
1865
1855
  .rosh-tl-bubble-open:hover { text-decoration: underline; }
1866
1856
  .rosh-tl-bubble-open:focus-visible:not(.rosh-host-focus *) { outline: 2px solid var(--tl-focus); outline-offset: 2px; }
1867
1857
 
1868
1858
  .rosh-tl-popover-head {
1869
- margin: 0 0 5px; font-size: 10px; font-weight: 500; letter-spacing: 0.06em;
1859
+ margin: 0 0 5px; font-size: var(--text-3xs); font-weight: 500; letter-spacing: 0.06em;
1870
1860
  text-transform: uppercase; color: var(--ink-faint);
1871
1861
  }
1872
1862
  .rosh-tl-popover ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
1873
- .rosh-tl-popover li { display: flex; gap: 8px; justify-content: space-between; font-size: 11px; }
1863
+ .rosh-tl-popover li { display: flex; gap: 8px; justify-content: space-between; font-size: var(--text-2xs); }
1874
1864
  /* What a FOLD says, which is the same list plus each member's own card: a run
1875
1865
  that is all one date can never be opened, so this is the only place those
1876
1866
  members exist. A column, because a preview under a row is a paragraph and not
1877
1867
  a third column. */
1878
1868
  .rosh-tl-fold-list ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
1879
- .rosh-tl-fold-list li { display: flex; flex-direction: column; font-size: 11px; }
1869
+ .rosh-tl-fold-list li { display: flex; flex-direction: column; font-size: var(--text-2xs); }
1880
1870
  .rosh-tl-foldrow { display: flex; gap: 8px; justify-content: space-between; margin: 0; }
1881
1871
  .rosh-tl-fold-list .rosh-tl-preview { margin-top: 2px; }
1882
1872
 
@@ -1915,7 +1905,7 @@ html.rosh-reduce-transparency *::after {
1915
1905
  reads as the link it is. */
1916
1906
  .rosh-tl-open {
1917
1907
  padding: 0; border: 0; background: none; cursor: pointer; text-align: left;
1918
- font: inherit; font-size: 11px; font-weight: 500; line-height: 1.25;
1908
+ font: inherit; font-size: var(--text-2xs); font-weight: 500; line-height: 1.25;
1919
1909
  }
1920
1910
  .rosh-tl-open:hover { text-decoration: underline; }
1921
1911
  /* The radius shapes whichever outline is drawn, the host's included, so it is
@@ -1928,7 +1918,7 @@ html.rosh-reduce-transparency *::after {
1928
1918
  position: absolute; transform: translateX(-50%); z-index: 5; white-space: nowrap;
1929
1919
  transition: left 120ms cubic-bezier(0.22, 1, 0.36, 1);
1930
1920
  font-family: var(--font-mono); font-variant-numeric: tabular-nums;
1931
- font-size: 10.5px; font-weight: 500; padding: 3px 8px; border-radius: 7px;
1921
+ font-size: var(--text-2xs); font-weight: 500; padding: 3px 8px; border-radius: 7px;
1932
1922
  background: var(--ink-strongest); color: var(--surface);
1933
1923
  }
1934
1924
  .rosh-tl-chip::after {
@@ -1937,12 +1927,12 @@ html.rosh-reduce-transparency *::after {
1937
1927
  }
1938
1928
 
1939
1929
  .rosh-tl-pending { padding-top: 16px; }
1940
- .rosh-tl-pending-head { margin: 0 0 8px; font-size: 10px; font-weight: 500; color: var(--ink-faint); }
1930
+ .rosh-tl-pending-head { margin: 0 0 8px; font-size: var(--text-2xs); font-weight: 500; color: var(--ink-faint); }
1941
1931
  .rosh-tl-ghosts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
1942
- .rosh-tl-ghosts li { display: flex; align-items: center; gap: 9px; font-size: 11px; color: var(--ink-muted); }
1932
+ .rosh-tl-ghosts li { display: flex; align-items: center; gap: 9px; font-size: var(--text-2xs); color: var(--ink-muted); }
1943
1933
  .rosh-tl-ghosts .rosh-tl-node { position: relative; --rosh-tl-shift: translate(0, 0); flex: none; }
1944
1934
  .rosh-tl-ghosts b { font-weight: 500; color: var(--ink-faint); }
1945
- .rosh-tl-more { margin-top: 9px; font-size: 11px; text-decoration: underline; cursor: pointer; }
1935
+ .rosh-tl-more { margin-top: 9px; font-size: var(--text-2xs); text-decoration: underline; cursor: pointer; }
1946
1936
 
1947
1937
  /* The vertical variant: under a 320px track the axis is abandoned rather than
1948
1938
  squeezed, and the connector carries the fill. */
@@ -1966,7 +1956,7 @@ html.rosh-reduce-transparency *::after {
1966
1956
  .rosh-tl-v > li[aria-current] .rosh-tl-name { font-weight: 600; }
1967
1957
  .rosh-tl-vgap {
1968
1958
  position: relative; margin: 0; padding: 0 0 14px 26px; min-height: 20px;
1969
- font-family: var(--font-mono); font-size: 10px; color: var(--ink-faint);
1959
+ font-family: var(--font-mono); font-size: var(--text-2xs); color: var(--ink-faint);
1970
1960
  }
1971
1961
 
1972
1962
  /* ── Timeline motion ────────────────────────────────────────────────────────
@@ -2067,13 +2057,17 @@ html.rosh-reduce-transparency *::after {
2067
2057
  :is([data-theme="dark"], .dark) .bg-gray-50 { background-color: var(--surface-sunken) !important; }
2068
2058
  :is([data-theme="dark"], .dark) .bg-gray-100 { background-color: var(--surface) !important; }
2069
2059
  :is([data-theme="dark"], .dark) .bg-gray-200 { background-color: var(--surface-raised) !important; }
2070
- /* Segmented's chosen option. The track is bg-gray-100 and the chosen option
2071
- bg-white, and the two remaps above send BOTH to --surface: in dark the chosen
2072
- option was the colour of its own track, told apart only by a faint shadow and
2073
- ink a step brighter than the others'. Raised instead, as the light theme's
2074
- white pill is raised off its grey track. After the remaps on purpose: the
2075
- same weight, so the later rule wins. */
2076
- :is([data-theme="dark"], .dark) .rosh-segmented-on { background-color: var(--surface-raised) !important; }
2060
+ /* Segmented's chosen option has no rule here. It was a white chip, which the
2061
+ remaps above sent to the same --surface as its bg-gray-100 track, so a rule
2062
+ raised it. Since 2026-10-12 (owner) it is the solid blue chip pill Tabs
2063
+ draw, and blue-600 is not remapped: the same chip in both themes, 3.1:1 on
2064
+ the dark track (tests/choiceStrip.test.tsx). */
2065
+ /* The choice strip's track (Segmented, pill Tabs) keeps the --surface fill
2066
+ above in dark, so the chip stays 3:1 on it, and gets its frame from a 1px
2067
+ INSET ring in --line-strong instead: a lighter fill would drop the chip to
2068
+ 2.4:1. Inset, so no size changes. Dark only; light has no edge (owner,
2069
+ 2026-10-13: the strip floated with no frame in dark). */
2070
+ :is([data-theme="dark"], .dark) .rosh-choice-track { box-shadow: inset 0 0 0 1px var(--line-strong) !important; }
2077
2071
 
2078
2072
  /* Text */
2079
2073
  :is([data-theme="dark"], .dark) .text-gray-900 { color: var(--ink-strongest) !important; }
@@ -2559,7 +2553,7 @@ input.rosh-field-shows-choice::placeholder { color: inherit; opacity: 1; }
2559
2553
  transition: opacity 300ms ease, transform 300ms ease;
2560
2554
  align-items: center;
2561
2555
  gap: 8px;
2562
- font-size: 13px;
2556
+ font-size: var(--text-sm);
2563
2557
  font-weight: 500;
2564
2558
  color: var(--rosh-toast-ink);
2565
2559
  max-width: min(90vw, 460px);
@@ -2594,7 +2588,7 @@ input.rosh-field-shows-choice::placeholder { color: inherit; opacity: 1; }
2594
2588
  }
2595
2589
  .rosh-notif-body { flex: 1; min-width: 0; }
2596
2590
  .rosh-notif-title {
2597
- font-size: 11px;
2591
+ font-size: var(--text-2xs);
2598
2592
  font-weight: 600;
2599
2593
  color: var(--rosh-toast-info);
2600
2594
  text-transform: uppercase;
@@ -2602,7 +2596,7 @@ input.rosh-field-shows-choice::placeholder { color: inherit; opacity: 1; }
2602
2596
  margin-bottom: 2px;
2603
2597
  }
2604
2598
  .rosh-notif-msg {
2605
- font-size: 13px;
2599
+ font-size: var(--text-sm);
2606
2600
  font-weight: 500;
2607
2601
  color: var(--rosh-toast-ink);
2608
2602
  line-height: 1.4;
@@ -2611,7 +2605,7 @@ input.rosh-field-shows-choice::placeholder { color: inherit; opacity: 1; }
2611
2605
  flex-shrink: 0;
2612
2606
  padding: 4px;
2613
2607
  color: var(--rosh-toast-dismiss);
2614
- font-size: 18px;
2608
+ font-size: var(--text-lg);
2615
2609
  line-height: 1;
2616
2610
  transition: color 0.2s;
2617
2611
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efficient-shell",
3
- "version": "6.4.0",
3
+ "version": "7.7.0",
4
4
  "description": "Desktop-style React UI shell — windows, taskbar, start menu, sticky notes, frosted glass theming, and bundled apps.",
5
5
  "license": "UNLICENSED",
6
6
  "author": "Efficient Pty Ltd",
@@ -1,43 +0,0 @@
1
- import{peekBrowserStartUrl as e,claimBrowserStartUrl as t}from"./chunk-LWLCNQY7.js";import{AboutApp as o}from"./chunk-5MDQNFOG.js";import{WindowTitle as r}from"./chunk-QJHWLDEN.js";import"./chunk-DSSLOQDW.js";import"./chunk-I2H2CKID.js";import"./chunk-HQLAISFX.js";import"./chunk-5A7MWTXX.js";import"./chunk-S3LGKIZ3.js";import{confirm as a}from"./chunk-DBXZS7OA.js";import"./chunk-ZEIKSMFR.js";import"./chunk-UVBK6YSR.js";import"./chunk-7IQ3B77H.js";import"./chunk-FIEA5CGB.js";import"./chunk-D65T4H6J.js";import"./chunk-SBF5A6XV.js";import"./chunk-KNUR2UEG.js";import"./chunk-K6DKX55N.js";import"./chunk-C3QOHMR6.js";import{Icon as n}from"./chunk-2SSRFEOZ.js";import{useRef as s,useEffect as l,useState as i}from"react";import{jsxs as c,jsx as m,Fragment as d}from"react/jsx-runtime";var u="react-os-shell:browser-bookmarks",h="react-os-shell:browser-homepage",p="https://en.wikipedia.org/wiki/Main_Page",g=[{label:"Wikipedia",url:"https://en.wikipedia.org/wiki/Main_Page"},{label:"DevDocs",url:"https://devdocs.io"},{label:"Example",url:"https://example.com"}],b=new Set(["ac ad ae af ag ai al am ao aq ar as at au aw ax az ba bb bd be bf bg bh bi","bj bm bn bo br bs bt bw by bz ca cc cd cf cg ch ci ck cl cm cn co cr cu cv","cw cx cy cz de dj dk dm do dz ec ee eg er es et eu fi fj fk fm fo fr ga gd","ge gf gg gh gi gl gm gn gp gq gr gs gt gu gw gy hk hm hn hr ht hu id ie il","im in io iq ir is it je jm jo jp ke kg kh ki km kn kp kr kw ky kz la lb lc","li lk lr ls lt lu lv ly ma mc md me mg mh mk ml mm mn mo mp mq mr ms mt mu","mv mw mx my mz na nc ne nf ng ni nl no np nr nu nz om pa pe pf pg ph pk pl","pm pn pr ps pt pw py qa re ro rs ru rw sa sb sc sd se sg sh si sk sl sm sn","so sr ss st su sv sx sy sz tc td tf tg th tj tk tl tm tn to tr tt tv tw tz","ua ug uk us uy uz va vc ve vg vi vn vu wf ws ye yt za zm zw","com net org edu gov mil int info biz name pro app dev xyz online site tech","store shop cloud design digital agency studio media news blog live life","world today email systems solutions services software page link space host","press wiki team group works careers finance capital energy academy"].join(" ").split(" "));function f(e){let t=e.trim();return t?/^[a-z][a-z0-9+.-]*:\/\//i.test(t)?t:function(e){const t=/^([\w-]+\.)+([a-z]{2,})(\/.*)?$/i.exec(e);return null!==t&&b.has(t[2].toLowerCase())}(t)?"https://"+t:"https://duckduckgo.com/?q="+encodeURIComponent(t):""}var k=["duckduckgo.com","developer.mozilla.org","google.com","gmail.com","youtube.com","facebook.com","instagram.com","whatsapp.com","twitter.com","x.com","github.com","gitlab.com","linkedin.com","reddit.com","pinterest.com","amazon.com","amazon.ca","amazon.co.uk","apple.com","icloud.com","microsoft.com","outlook.com","live.com","office.com","netflix.com","spotify.com","paypal.com","stripe.com","chat.openai.com","chatgpt.com","claude.ai"];function x(){if("undefined"==typeof window)return g;try{const e=localStorage.getItem(u);if(!e)return g;const t=JSON.parse(e);if(Array.isArray(t)&&t.every(e=>"string"==typeof e?.url))return t}catch{}return g}function w(){return"undefined"==typeof window?p:localStorage.getItem(h)||p}function y(){const d=s(void 0);void 0===d.current&&(d.current=e()),l(()=>{null!=d.current&&t(d.current)},[]);const p=d.current?f(d.current.url):"",[g,b]=i(w),[k,y]=i(p||g),[j,C]=i(k),[z,S]=i([k]),[R,W]=i(0),[L,D]=i(0),[E,H]=i(x),[I,O]=i(!1),[F,K]=i(null),U=s(null),A=s(null);l(()=>{try{localStorage.setItem(u,JSON.stringify(E))}catch{}},[E]);const B=e=>{const t=f(e);t&&(y(t),C(t),S(e=>{const o=e.slice(0,R+1);return o.push(t),o}),W(e=>e+1),O(!1))},M=()=>{"undefined"!=typeof window&&window.open(k,"_blank","noopener,noreferrer")},T=()=>{const e=F?.trim();e?(H(t=>[...t,{label:e,url:k}]),K(null)):K(null)};l(()=>{if(null===F)return;U.current?.focus(),U.current?.select();const e=e=>{const t=e.target;t?.closest("[data-bookmark-popover]")||K(null)},t=setTimeout(()=>document.addEventListener("mousedown",e),0);return()=>{clearTimeout(t),document.removeEventListener("mousedown",e)}},[null!==F]);const X=e=>{H(t=>t.filter((t,o)=>o!==e))},G=R>0,Q=R<z.length-1,q=E.some(e=>e.url===k),P="p-1.5 rounded hover:bg-gray-200 transition-colors text-gray-600 disabled:opacity-30";/* @__PURE__ */
2
- return c("div",{className:"relative flex flex-col h-full bg-white",children:[
3
- /* @__PURE__ */m(r,{title:`Browser - ${v(k)}`}),
4
- /* @__PURE__ */m(o,{app:"browser"}),
5
- /* @__PURE__ */c("div",{className:"flex items-center gap-1 px-2 py-1.5 border-b border-gray-200 bg-gray-50 shrink-0",children:[
6
- /* @__PURE__ */m("button",{onClick:()=>{if(R>0){const e=R-1;W(e),y(z[e]),C(z[e]),O(!1)}},disabled:!G,className:P,title:"Back",children:/* @__PURE__ */m(n,{name:"chevron-left",className:"h-4 w-4",strokeWidth:2})}),
7
- /* @__PURE__ */m("button",{onClick:()=>{if(R<z.length-1){const e=R+1;W(e),y(z[e]),C(z[e]),O(!1)}},disabled:!Q,className:P,title:"Forward",children:/* @__PURE__ */m(n,{name:"chevron-right",className:"h-4 w-4",strokeWidth:2})}),
8
- /* @__PURE__ */m("button",{onClick:()=>D(e=>e+1),className:P,title:"Refresh",children:/* @__PURE__ */m(n,{name:"refresh",className:"h-4 w-4",strokeWidth:1.8})}),
9
- /* @__PURE__ */m("button",{onClick:()=>B(g),className:P,title:"Home",children:/* @__PURE__ */m(n,{name:"home",className:"h-4 w-4",strokeWidth:1.8})}),
10
- /* @__PURE__ */m("form",{onSubmit:e=>{e.preventDefault(),B(j)},className:"flex-1 flex items-center mx-1",children:/* @__PURE__ */c("div",{className:"flex items-center w-full bg-white border border-gray-300 rounded focus-within:border-blue-400 focus-within:ring-1 focus-within:ring-blue-200",children:[
11
- /* @__PURE__ */m("span",{className:"px-2 text-gray-400 text-xs",children:k.startsWith("https://")?"🔒":"⚠️"}),
12
- /* @__PURE__ */m("input",{type:"text",value:j,onChange:e=>C(e.target.value),onFocus:e=>e.target.select(),className:"flex-1 px-1 py-1 text-sm bg-transparent outline-none font-mono",spellCheck:!1,placeholder:"Enter URL or search…"}),k!==j&&/* @__PURE__ */m("button",{type:"button",onClick:()=>C(k),className:"px-1.5 text-[10px] text-gray-400 hover:text-gray-700",title:"Reset to current URL",children:"×"})]})}),
13
- /* @__PURE__ */m("button",{"data-bookmark-popover":!0,onClick:()=>q?X(E.findIndex(e=>e.url===k)):void K(v(k)),className:P+" "+(q?"text-yellow-500":""),title:q?"Remove bookmark":"Add bookmark",children:/* @__PURE__ */m(n,{name:"star",className:"h-4 w-4",fill:q?"currentColor":"none",strokeWidth:1.5})}),
14
- /* @__PURE__ */m("button",{onClick:M,className:P,title:"Open in new tab",children:/* @__PURE__ */m(n,{name:"external",className:"h-4 w-4",strokeWidth:1.5})}),
15
- /* @__PURE__ */m("button",{onClick:()=>O(e=>!e),className:P,title:"Embedding help",children:/* @__PURE__ */m(n,{name:"help",className:"h-4 w-4",strokeWidth:1.5})})]}),null!==F&&/* @__PURE__ */c("div",{"data-bookmark-popover":!0,className:"absolute right-3 top-12 z-30 w-72 bg-white border border-gray-200 rounded-md shadow-lg p-3",children:[
16
- /* @__PURE__ */m("div",{className:"text-[11px] font-semibold uppercase tracking-wide text-gray-500 mb-1",children:"Bookmark this page"}),
17
- /* @__PURE__ */m("div",{className:"text-[11px] text-gray-400 truncate mb-2 font-mono",title:k,children:k}),
18
- /* @__PURE__ */m("input",{ref:U,type:"text",value:F,onChange:e=>K(e.target.value),onKeyDown:e=>{"Enter"===e.key?T():"Escape"===e.key&&K(null)},placeholder:"Name",className:"w-full text-sm px-2 py-1.5 border border-gray-300 rounded focus:outline-none focus:border-blue-400 focus:ring-1 focus:ring-blue-200"}),
19
- /* @__PURE__ */c("div",{className:"flex justify-end gap-1 mt-2",children:[
20
- /* @__PURE__ */m("button",{onClick:()=>K(null),className:"px-2 py-1 text-xs text-gray-600 hover:bg-gray-100 rounded",children:"Cancel"}),
21
- /* @__PURE__ */m("button",{onClick:T,disabled:!F.trim(),className:"px-2 py-1 text-xs bg-blue-500 text-white rounded hover:bg-blue-600 disabled:opacity-40",children:"Save"})]})]}),
22
- /* @__PURE__ */c("div",{className:"flex items-center gap-0.5 px-2 py-1 border-b border-gray-200 bg-white shrink-0 overflow-x-auto",children:[0===E.length&&/* @__PURE__ */m("span",{className:"text-[11px] text-gray-400 italic px-2",children:"No bookmarks yet — star the address bar to add one."}),E.map((e,t)=>/* @__PURE__ */c("button",{onClick:()=>B(e.url),onContextMenu:async o=>{o.preventDefault();await a({title:"Remove bookmark",message:`"${e.label}" will be removed from your bookmarks.`,confirmLabel:"Remove",variant:"danger"})&&X(t)},className:"flex items-center gap-1.5 px-2 py-0.5 rounded text-[12px] text-gray-700 hover:bg-gray-100 whitespace-nowrap",title:`${e.url}\n(right-click to remove)`,children:[
23
- /* @__PURE__ */m("img",{src:`https://icons.duckduckgo.com/ip3/${new URL(e.url).hostname}.ico`,alt:"",className:"h-3.5 w-3.5",onError:e=>{e.target.style.visibility="hidden"}}),e.label]},t)),
24
- /* @__PURE__ */m("div",{className:"flex-1"}),
25
- /* @__PURE__ */m("button",{onClick:()=>{b(k);try{localStorage.setItem(h,k)}catch{}},className:"px-2 py-0.5 text-[11px] text-gray-500 hover:text-gray-800",title:"Set current page as homepage",children:"Set as home"})]}),
26
- /* @__PURE__ */m("div",{className:"flex-1 relative min-h-0 bg-gray-50",children:/* @__PURE__ */m(N,{url:k,iframeKey:L,iframeRef:A,openExternal:M,showHelp:I,dismissHelp:()=>O(!1)})})]})}function v(e){try{return new URL(e).hostname.replace(/^www\./,"")}catch{return e}}function N({url:e,iframeKey:t,iframeRef:o,openExternal:r,showHelp:a,dismissHelp:s}){const[u,h]=i(!1);l(()=>{h(!1)},[e]);return function(e){try{const t=new URL(e).hostname.toLowerCase();return k.some(e=>t===e||t.endsWith("."+e))}catch{return!1}}(e)&&!u?/* @__PURE__ */m("div",{className:"absolute inset-0 flex items-center justify-center bg-white p-8",children:/* @__PURE__ */c("div",{className:"max-w-md text-center",children:[
27
- /* @__PURE__ */m(n,{name:"no-symbol",className:"h-14 w-14 mx-auto text-gray-300 mb-3",strokeWidth:1.2}),
28
- /* @__PURE__ */c("h3",{className:"text-base font-semibold text-gray-800 mb-1",children:[v(e)," can't be embedded"]}),
29
- /* @__PURE__ */c("p",{className:"text-sm text-gray-500 mb-4",children:["This site sends an ",
30
- /* @__PURE__ */m("span",{className:"font-mono text-xs",children:"X-Frame-Options"})," ","or ",
31
- /* @__PURE__ */m("span",{className:"font-mono text-xs",children:"Content-Security-Policy"})," header that refuses iframe embedding. The browser blocks the load before our app can do anything about it."]}),
32
- /* @__PURE__ */c("div",{className:"flex flex-col items-center gap-2",children:[
33
- /* @__PURE__ */c("button",{onClick:r,className:"px-4 py-2 bg-blue-500 text-white text-sm rounded hover:bg-blue-600 inline-flex items-center gap-2",children:[
34
- /* @__PURE__ */m(n,{name:"external",className:"h-4 w-4",strokeWidth:1.5}),"Open in a new tab"]}),
35
- /* @__PURE__ */m("button",{onClick:()=>h(!0),className:"text-xs text-gray-500 hover:text-gray-800 underline",children:"Try loading it here anyway"})]})]})}):/* @__PURE__ */c(d,{children:[
36
- /* @__PURE__ */m("iframe",{ref:o,src:e,className:"absolute inset-0 w-full h-full bg-white",sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-modals",referrerPolicy:"no-referrer-when-downgrade"},t+e),a&&/* @__PURE__ */c("div",{className:"absolute top-2 right-2 max-w-sm bg-white border border-gray-200 rounded-md shadow-lg p-3 text-xs text-gray-700 z-10",children:[
37
- /* @__PURE__ */m("div",{className:"font-medium text-gray-900 mb-1",children:"Why is this page blank?"}),
38
- /* @__PURE__ */c("p",{className:"mb-2",children:["Most major sites (Google, GitHub, banks, news) refuse to be embedded in an iframe via ",
39
- /* @__PURE__ */m("span",{className:"font-mono",children:"X-Frame-Options"})," or Content Security Policy. There's no workaround — the browser blocks the load before our app can do anything."]}),
40
- /* @__PURE__ */c("p",{children:["Hit the ",
41
- /* @__PURE__ */m("span",{className:"font-medium",children:"↗"})," button to open the page in a real new tab. Sites that ",
42
- /* @__PURE__ */m("em",{children:"do"})," allow embedding (Wikipedia, DevDocs, your own apps) work fine in here."]}),
43
- /* @__PURE__ */m("button",{onClick:s,className:"mt-2 text-[11px] text-blue-600 hover:underline",children:"Got it"})]})]})}export{y as default};
@@ -1,29 +0,0 @@
1
- import{loadAppearance as e,WidgetSettingsModal as t}from"./chunk-XO2AMGVU.js";import{useWidgetSettings as n}from"./chunk-QJHWLDEN.js";import"./chunk-DSSLOQDW.js";import"./chunk-I2H2CKID.js";import"./chunk-HQLAISFX.js";import"./chunk-5A7MWTXX.js";import"./chunk-S3LGKIZ3.js";import"./chunk-DBXZS7OA.js";import"./chunk-ZEIKSMFR.js";import"./chunk-UVBK6YSR.js";import"./chunk-7IQ3B77H.js";import"./chunk-FIEA5CGB.js";import"./chunk-D65T4H6J.js";import"./chunk-KNUR2UEG.js";import"./chunk-K6DKX55N.js";import"./chunk-C3QOHMR6.js";import{Icon as l}from"./chunk-2SSRFEOZ.js";import{useState as r,useRef as c,useCallback as i,useEffect as a}from"react";import{jsxs as o,Fragment as s,jsx as u}from"react/jsx-runtime";var d="calc_appearance";function h(){const[h,m]=r("0"),[b,k]=r(null),[p,g]=r(null),[y,N]=r(!1),[x,f]=r(""),[v,C]=r([]),[$,j]=r(!1),[S,E]=r(()=>e(d)),[w,A]=r(!1),[D,F]=r(S),I=c(null);n(i(()=>{F({...S}),A(!0)},[S]));const T=i(e=>{f(""),m(t=>y||"0"===t?(N(!1),"."===e?"0.":e):"."===e&&t.includes(".")?t:t+e)},[y]),W=i(()=>{m("0"),k(null),g(null),N(!1)},[]),B=i((e,t,n)=>{switch(n){case"+":return e+t;case"-":return e-t;case"×":return e*t;case"÷":return 0===t?0:e/t;default:return t}},[]),K=i(e=>{const t=parseFloat(h);if(null!==b&&p&&!y){const e=B(b,t,p);m(String(e)),k(e),C(n=>[`${b} ${p} ${t} = ${e}`,...n].slice(0,20))}else k(t);g(e),N(!0)},[h,b,p,y,B]),L=i(()=>{if(null===b||!p)return;const e=parseFloat(h),t=B(b,e,p),n=`${b} ${p} ${e} =`;C(e=>[`${n} ${t}`,...e].slice(0,20)),f(n),m(String(t)),k(null),g(null),N(!0)},[h,b,p,B]),O=i(()=>{m(e=>String(parseFloat(e)/100))},[]),X=i(()=>{m(e=>e.startsWith("-")?e.slice(1):"0"===e?e:"-"+e)},[]);a(()=>{const e=e=>{const t=e.target.tagName;"INPUT"!==t&&"TEXTAREA"!==t&&"SELECT"!==t&&(e.key>="0"&&e.key<="9"?T(e.key):"."===e.key?T("."):"+"===e.key?K("+"):"-"===e.key?K("-"):"*"===e.key?K("×"):"/"===e.key?(e.preventDefault(),K("÷")):"Enter"===e.key||"="===e.key?("Enter"===e.key&&e.target instanceof Node&&I.current?.contains(e.target)&&e.preventDefault(),L()):"Escape"===e.key?W():"Backspace"===e.key?m(e=>e.length>1?e.slice(0,-1):"0"):"%"===e.key&&O())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[T,K,L,W,O]);const H="flex items-center justify-center rounded-lg text-sm font-medium transition-colors",R=`${H} bg-white border border-gray-200 text-gray-900 hover:bg-gray-50 active:bg-gray-100`,M=`${H} bg-blue-50 border border-blue-200 text-blue-700 hover:bg-blue-100 active:bg-blue-200`,Q=`${H} bg-gray-100 border border-gray-200 text-gray-600 hover:bg-gray-200 active:bg-gray-300`,U=`${H} bg-blue-600 text-white hover:bg-blue-700 active:bg-blue-800`;/* @__PURE__ */
2
- return o(s,{children:[
3
- /* @__PURE__ */o("div",{ref:I,className:"flex flex-col h-full",style:{opacity:S.activeOpacity/100,backdropFilter:S.activeBlur>0?`blur(${S.activeBlur}px)`:void 0},children:[
4
- /* @__PURE__ */o("div",{className:"bg-slate-200 rounded-t-lg px-4 py-2 group/display relative flex flex-col justify-end min-h-[120px] border-b border-slate-300",children:[
5
- /* @__PURE__ */u("div",{className:"flex flex-col justify-end flex-1 overflow-hidden",children:v.slice(0,3).reverse().map((e,t)=>/* @__PURE__ */u("div",{className:"text-[11px] text-slate-400 text-right font-mono truncate",children:e},t))}),(x||p&&null!==b)&&/* @__PURE__ */u("div",{className:"text-base text-slate-600 text-right font-mono",children:x||`${b} ${p} ${y?"":h}`}),
6
- /* @__PURE__ */o("div",{className:"flex items-center gap-2",children:[
7
- /* @__PURE__ */u("button",{onClick:()=>{navigator.clipboard.writeText(h),j(!0),setTimeout(()=>j(!1),1200)},title:"Copy result",className:"shrink-0 text-slate-300 hover:text-slate-500 transition-colors opacity-0 group-hover/display:opacity-100",children:/* @__PURE__ */u(l,$?{name:"check",className:"h-5 w-5 text-green-500",strokeWidth:2}:{name:"copy",className:"h-5 w-5",strokeWidth:2})}),
8
- /* @__PURE__ */u("div",{className:"text-right text-4xl font-mono font-bold text-slate-800 truncate flex-1",children:(e=>{const t=parseFloat(e);return isNaN(t)||e.endsWith(".")||e.endsWith(".0")||Math.abs(t)<1e15&&e.length<16?e:t.toExponential(6)})(h)})]})]}),
9
- /* @__PURE__ */o("div",{className:"grid grid-cols-4 grid-rows-5 gap-1.5 flex-1 min-h-0 p-2",children:[
10
- /* @__PURE__ */u("button",{onClick:W,className:Q,children:"AC"}),
11
- /* @__PURE__ */u("button",{onClick:X,className:Q,children:"+/−"}),
12
- /* @__PURE__ */u("button",{onClick:O,className:Q,children:"%"}),
13
- /* @__PURE__ */u("button",{onClick:()=>K("÷"),className:`${M} ${"÷"===p?"ring-2 ring-blue-400":""}`,children:"÷"}),
14
- /* @__PURE__ */u("button",{onClick:()=>T("7"),className:R,children:"7"}),
15
- /* @__PURE__ */u("button",{onClick:()=>T("8"),className:R,children:"8"}),
16
- /* @__PURE__ */u("button",{onClick:()=>T("9"),className:R,children:"9"}),
17
- /* @__PURE__ */u("button",{onClick:()=>K("×"),className:`${M} ${"×"===p?"ring-2 ring-blue-400":""}`,children:"×"}),
18
- /* @__PURE__ */u("button",{onClick:()=>T("4"),className:R,children:"4"}),
19
- /* @__PURE__ */u("button",{onClick:()=>T("5"),className:R,children:"5"}),
20
- /* @__PURE__ */u("button",{onClick:()=>T("6"),className:R,children:"6"}),
21
- /* @__PURE__ */u("button",{onClick:()=>K("-"),className:`${M} ${"-"===p?"ring-2 ring-blue-400":""}`,children:"−"}),
22
- /* @__PURE__ */u("button",{onClick:()=>T("1"),className:R,children:"1"}),
23
- /* @__PURE__ */u("button",{onClick:()=>T("2"),className:R,children:"2"}),
24
- /* @__PURE__ */u("button",{onClick:()=>T("3"),className:R,children:"3"}),
25
- /* @__PURE__ */u("button",{onClick:()=>K("+"),className:`${M} ${"+"===p?"ring-2 ring-blue-400":""}`,children:"+"}),
26
- /* @__PURE__ */u("button",{onClick:()=>T("0"),className:`${R} col-span-2`,children:"0"}),
27
- /* @__PURE__ */u("button",{onClick:()=>T("."),className:R,children:"."}),
28
- /* @__PURE__ */u("button",{onClick:L,className:U,children:"="})]})]}),
29
- /* @__PURE__ */u(t,{open:w,onClose:()=>A(!1),title:"Calculator Settings",appearance:D,onAppearanceChange:F,onSave:()=>{E(D),localStorage.setItem(d,JSON.stringify(D)),A(!1)}})]})}export{h as default};
@@ -1 +0,0 @@
1
- export{ConfirmProvider,confirm,confirmDestructive,prompt,useConfirm}from"./chunk-DBXZS7OA.js";import"./chunk-UVBK6YSR.js";import"./chunk-FIEA5CGB.js";import"./chunk-K6DKX55N.js";import"./chunk-C3QOHMR6.js";import"./chunk-2SSRFEOZ.js";
@@ -1,21 +0,0 @@
1
- import{loadAppearance as e,WidgetSettingsModal as t}from"./chunk-XO2AMGVU.js";import{useWidgetSettings as r}from"./chunk-QJHWLDEN.js";import"./chunk-DSSLOQDW.js";import"./chunk-I2H2CKID.js";import"./chunk-HQLAISFX.js";import"./chunk-5A7MWTXX.js";import"./chunk-S3LGKIZ3.js";import"./chunk-DBXZS7OA.js";import"./chunk-ZEIKSMFR.js";import"./chunk-UVBK6YSR.js";import"./chunk-7IQ3B77H.js";import"./chunk-FIEA5CGB.js";import"./chunk-D65T4H6J.js";import"./chunk-KNUR2UEG.js";import"./chunk-K6DKX55N.js";import"./chunk-C3QOHMR6.js";import"./chunk-2SSRFEOZ.js";import{useState as n,useCallback as a,useEffect as s}from"react";import{jsxs as c,Fragment as o,jsx as i}from"react/jsx-runtime";var l=["USD","CNY","AUD","GBP","EUR","JPY","CAD","THB","NZD","SGD","HKD","CHF","KRW","INR","MXN","BRL"],m=[["USD","CNY"],["USD","AUD"],["GBP","USD"],["USD","JPY"]],u="currency_pairs",p="currency_appearance",d="currency_rates_cache";function h(e){try{const t=JSON.parse(localStorage.getItem(d)||"{}")[e];if(t&&Date.now()-t.timestamp<36e5)return t.rates}catch{}return null}function g(e,t){try{const r=JSON.parse(localStorage.getItem(d)||"{}");r[e]={rates:t,timestamp:Date.now()},localStorage.setItem(d,JSON.stringify(r))}catch{}}function x(){try{const e=JSON.parse(localStorage.getItem(u)||"");if(Array.isArray(e)&&e.length)return e.slice(0,4)}catch{}return m}var y={USD:"🇺🇸",CNY:"🇨🇳",AUD:"🇦🇺",GBP:"🇬🇧",JPY:"🇯🇵",CAD:"🇨🇦",EUR:"🇪🇺",THB:"🇹🇭",NZD:"🇳🇿",SGD:"🇸🇬",HKD:"🇭🇰",CHF:"🇨🇭",KRW:"🇰🇷",INR:"🇮🇳",MXN:"🇲🇽",BRL:"🇧🇷"};function f(){const[m,d]=n(x),[f,N]=n(()=>e(p)),[b,S]=n({}),[v,D]=n(!1),[k,j]=n(!1),[C,I]=n([]),[U,A]=n(f),[B,O]=n("USD"),[R,H]=n("CNY");r(a(()=>{I([...m]),A({...f}),j(!0)},[m,f])),s(()=>{const e=[...new Set(m.map(([e])=>e))];let t=!0;return async function(){D(!0);const r={};for(const t of e){const e=h(t);if(e)r[t]=e;else try{const e=await fetch(`https://open.er-api.com/v6/latest/${t}`),n=await e.json();n.rates&&(r[t]=n.rates,g(t,n.rates))}catch{}}t&&(S(r),D(!1))}(),()=>{t=!1}},[m]);/* @__PURE__ */
2
- return c(o,{children:[
3
- /* @__PURE__ */i("div",{style:{backgroundColor:`rgb(var(--taskbar-bg-rgb, 243 244 246) / ${f.activeOpacity/100})`,backdropFilter:f.activeBlur>0?`blur(${f.activeBlur}px)`:void 0},children:/* @__PURE__ */c("div",{className:"px-4 py-3 space-y-1",children:[v&&/* @__PURE__ */i("div",{className:"text-xs text-gray-400 text-center py-4",children:"Loading rates..."}),m.map(([e,t],r)=>{const n=b[e]?.[t];/* @__PURE__ */
4
- return c("button",{onClick:()=>{const e=m.map((e,t)=>t===r?[e[1],e[0]]:e);d(e),localStorage.setItem(u,JSON.stringify(e))},className:"flex items-center justify-between px-2 py-2 border-b border-gray-200 last:border-0 w-full hover:bg-gray-100 rounded transition-colors cursor-pointer",children:[
5
- /* @__PURE__ */c("div",{className:"flex items-center gap-1.5",children:[
6
- /* @__PURE__ */i("span",{className:"text-base",children:y[e]||""}),
7
- /* @__PURE__ */i("span",{className:"text-sm font-semibold text-gray-700",children:e}),
8
- /* @__PURE__ */i("svg",{className:"h-3 w-3 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:/* @__PURE__ */i("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4"})}),
9
- /* @__PURE__ */i("span",{className:"text-base",children:y[t]||""}),
10
- /* @__PURE__ */i("span",{className:"text-sm font-semibold text-gray-700",children:t})]}),
11
- /* @__PURE__ */i("div",{className:"text-base font-mono font-semibold text-gray-900 tabular-nums",children:null!=n?n.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:4}):"—"})]},`${e}-${t}-${r}`)})]})}),
12
- /* @__PURE__ */i(t,{open:k,onClose:()=>j(!1),title:"Currency Settings",appearance:U,onAppearanceChange:A,onSave:()=>{if(0===C.length)return;const e=C.slice(0,4);d(e),N(U),localStorage.setItem(u,JSON.stringify(e)),localStorage.setItem(p,JSON.stringify(U)),j(!1)},children:/* @__PURE__ */c("div",{children:[
13
- /* @__PURE__ */c("h3",{className:"text-sm font-semibold text-gray-700 mb-2",children:["Currency Pairs ",
14
- /* @__PURE__ */c("span",{className:"text-[11px] font-normal text-gray-400",children:["(",C.length,"/",4,")"]})]}),
15
- /* @__PURE__ */i("div",{className:"space-y-1 mb-2",children:C.map(([e,t],r)=>/* @__PURE__ */c("div",{className:"flex items-center justify-between py-1 px-2 bg-gray-50 rounded",children:[
16
- /* @__PURE__ */c("span",{className:"text-sm",children:[y[e]||""," ",e," → ",y[t]||""," ",t]}),
17
- /* @__PURE__ */i("button",{onClick:()=>I(e=>e.filter((e,t)=>t!==r)),className:"text-red-400 hover:text-red-600",children:"×"})]},r))}),C.length<4?/* @__PURE__ */c("div",{className:"flex items-center gap-2",children:[
18
- /* @__PURE__ */i("select",{value:B,onChange:e=>O(e.target.value),className:"bg-gray-50 border border-gray-200 rounded px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-blue-500",children:l.map(e=>/* @__PURE__ */i("option",{children:e},e))}),
19
- /* @__PURE__ */i("span",{className:"text-gray-400",children:"→"}),
20
- /* @__PURE__ */i("select",{value:R,onChange:e=>H(e.target.value),className:"bg-gray-50 border border-gray-200 rounded px-2 py-1 text-sm focus:outline-none focus:ring-1 focus:ring-blue-500",children:l.map(e=>/* @__PURE__ */i("option",{children:e},e))}),
21
- /* @__PURE__ */i("button",{onClick:()=>{B!==R&&C.length<4&&I(e=>[...e,[B,R]])},className:"text-sm font-medium text-blue-600 hover:text-blue-800 px-2",children:"+ Add"})]}):/* @__PURE__ */c("p",{className:"text-[11px] text-gray-400 italic",children:["Max ",4," pairs — remove one to add another."]})]})})]})}export{f as default};