@xenide-io/the-old-ui-theme 0.9.18 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Chip-BzuNgJIa.d.mts → Chip-Dw2g2t8D.d.mts} +18 -4
- package/dist/{Chip-BzuNgJIa.d.ts → Chip-Dw2g2t8D.d.ts} +18 -4
- package/dist/{chunk-6SVJAU5K.mjs → chunk-RIPGN6FG.mjs} +1333 -526
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +490 -119
- package/dist/index.mjs +11 -3
- package/dist/suite-analytics--Mf1RZbw.d.mts +29 -0
- package/dist/suite-analytics--Mf1RZbw.d.ts +29 -0
- package/dist/suite.d.mts +36 -4
- package/dist/suite.d.ts +36 -4
- package/dist/suite.js +4617 -4001
- package/dist/suite.mjs +1456 -868
- package/dist/tailwind-preset.js +10 -1
- package/dist/tailwind-preset.mjs +10 -1
- package/dist/ui.d.mts +33 -4
- package/dist/ui.d.ts +33 -4
- package/dist/ui.js +1364 -571
- package/dist/ui.mjs +15 -1
- package/docs/macos-identity-audit.md +279 -0
- package/package.json +1 -1
- package/src/app/globals.css +390 -44
- package/src/components/ui/Accordion.tsx +4 -7
- package/src/components/ui/Avatar.tsx +5 -5
- package/src/components/ui/BrandSpinner.tsx +256 -0
- package/src/components/ui/Calendar.tsx +7 -7
- package/src/components/ui/CodeBlock.tsx +14 -11
- package/src/components/ui/CollapsibleSection.tsx +4 -4
- package/src/components/ui/CommandPalette.tsx +7 -10
- package/src/components/ui/EmptyState.tsx +2 -2
- package/src/components/ui/Input.tsx +1 -1
- package/src/components/ui/Marketing.tsx +144 -0
- package/src/components/ui/MarketingIllustrations.tsx +287 -0
- package/src/components/ui/Panel.tsx +1 -1
- package/src/components/ui/SegmentedControl.tsx +59 -13
- package/src/components/ui/SettingsLayout.tsx +4 -0
- package/src/components/ui/ShowcaseWrapper.tsx +3 -3
- package/src/components/ui/Table.tsx +45 -10
- package/src/components/ui/Typography.tsx +4 -4
- package/src/components/ui/avatar-stat.test.tsx +14 -1
- package/src/components/ui/brand-spinner.test.tsx +62 -0
- package/src/components/ui/index.ts +19 -11
- package/src/components/ui/interaction-primitives.test.tsx +12 -6
- package/src/components/ui/marketing.test.tsx +39 -0
- package/src/components/ui/table.test.tsx +47 -0
- package/src/styles/suite-skin.css +471 -74
- package/src/styles/themes.css +45 -45
- package/src/styles/typography.css +25 -1
- package/src/suite/components/ai-draft-editor.tsx +184 -0
- package/src/suite/components/ai-panel-workflows.test.tsx +179 -0
- package/src/suite/components/ai-panel.tsx +201 -31
- package/src/suite/components/app-switcher.tsx +22 -9
- package/src/suite/components/command-palette-host.tsx +20 -2
- package/src/suite/components/suite-app-layout.tsx +7 -4
- package/src/suite/components/suite-bottom-nav.tsx +1 -1
- package/src/suite/components/suite-clients-projects-directory.tsx +6 -6
- package/src/suite/components/suite-integration-picker.tsx +7 -7
- package/src/suite/components/suite-integration-rules.tsx +5 -5
- package/src/suite/components/suite-layout.test.tsx +32 -3
- package/src/suite/components/suite-layout.tsx +4 -4
- package/src/suite/components/suite-mobile-drawer.tsx +2 -2
- package/src/suite/components/suite-mobile-header.tsx +1 -1
- package/src/suite/components/suite-notification-bell.tsx +27 -6
- package/src/suite/components/suite-notification-settings.tsx +182 -0
- package/src/suite/components/suite-palette-library.test.tsx +46 -0
- package/src/suite/components/suite-palette-library.tsx +82 -15
- package/src/suite/components/suite-settings-layout.tsx +2 -2
- package/src/suite/components/suite-settings-mobile-nav.tsx +10 -10
- package/src/suite/components/suite-sidebar.test.tsx +39 -0
- package/src/suite/components/suite-sidebar.tsx +41 -19
- package/src/suite/components/suite-skeleton.tsx +6 -6
- package/src/suite/components/suite-user-menu.tsx +2 -2
- package/src/suite/components/theme-provider.tsx +2 -0
- package/src/suite/components/today-calibrating.tsx +3 -3
- package/src/suite/components/today-ui.tsx +42 -37
- package/src/suite/components/workspace-switcher.tsx +3 -3
- package/src/suite/index.ts +14 -0
- package/src/suite/lib/suite-notifications.tsx +5 -0
- package/tailwind-preset.ts +9 -0
package/dist/index.mjs
CHANGED
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
Avatar,
|
|
9
9
|
AvatarGroup,
|
|
10
10
|
Badge,
|
|
11
|
+
BrandSpinner,
|
|
11
12
|
Button,
|
|
12
13
|
ButtonChrome,
|
|
13
14
|
CANONICAL_ICONS,
|
|
@@ -131,6 +132,7 @@ import {
|
|
|
131
132
|
Panel,
|
|
132
133
|
Progress,
|
|
133
134
|
Radio,
|
|
135
|
+
SUITE_ANALYTICS_EVENT,
|
|
134
136
|
SearchInput,
|
|
135
137
|
SectionTitle,
|
|
136
138
|
SegmentedControl,
|
|
@@ -157,8 +159,10 @@ import {
|
|
|
157
159
|
getTheme,
|
|
158
160
|
isThemeId,
|
|
159
161
|
persistTheme,
|
|
160
|
-
readStoredTheme
|
|
161
|
-
|
|
162
|
+
readStoredTheme,
|
|
163
|
+
subscribeSuiteAnalytics,
|
|
164
|
+
trackSuiteEvent
|
|
165
|
+
} from "./chunk-RIPGN6FG.mjs";
|
|
162
166
|
import "./chunk-FWCSY2DS.mjs";
|
|
163
167
|
export {
|
|
164
168
|
Accordion,
|
|
@@ -169,6 +173,7 @@ export {
|
|
|
169
173
|
Avatar,
|
|
170
174
|
AvatarGroup,
|
|
171
175
|
Badge,
|
|
176
|
+
BrandSpinner,
|
|
172
177
|
Button,
|
|
173
178
|
ButtonChrome,
|
|
174
179
|
CANONICAL_ICONS,
|
|
@@ -293,6 +298,7 @@ export {
|
|
|
293
298
|
Panel,
|
|
294
299
|
Progress,
|
|
295
300
|
Radio,
|
|
301
|
+
SUITE_ANALYTICS_EVENT,
|
|
296
302
|
SearchInput,
|
|
297
303
|
SectionTitle,
|
|
298
304
|
SegmentedControl,
|
|
@@ -319,5 +325,7 @@ export {
|
|
|
319
325
|
getTheme,
|
|
320
326
|
isThemeId,
|
|
321
327
|
persistTheme,
|
|
322
|
-
readStoredTheme
|
|
328
|
+
readStoredTheme,
|
|
329
|
+
subscribeSuiteAnalytics,
|
|
330
|
+
trackSuiteEvent
|
|
323
331
|
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analytics bridge for shared `the-old-ui` components.
|
|
3
|
+
*
|
|
4
|
+
* The shared package must not depend on `@xenide-io/suite-client`, so instead
|
|
5
|
+
* of importing an analytics client it emits a browser CustomEvent that each
|
|
6
|
+
* host app forwards to its own client (e.g. `analytics.capture`). This mirrors
|
|
7
|
+
* the existing `suite-mutated` / `tt-timer-mutated` window-event pattern and
|
|
8
|
+
* works across the package's separate `index` / `ui` / `suite` bundles because
|
|
9
|
+
* `window` is the single shared instance.
|
|
10
|
+
*/
|
|
11
|
+
/** Window event apps subscribe to in order to forward suite analytics. */
|
|
12
|
+
declare const SUITE_ANALYTICS_EVENT = "shellstack:analytics";
|
|
13
|
+
type SuiteAnalyticsProperties = Record<string, unknown>;
|
|
14
|
+
interface SuiteAnalyticsEventDetail {
|
|
15
|
+
event: string;
|
|
16
|
+
properties?: SuiteAnalyticsProperties;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Emit a shared-component analytics event. Safe to call during SSR and never
|
|
20
|
+
* throws into the UI: analytics must never break an interaction.
|
|
21
|
+
*/
|
|
22
|
+
declare function trackSuiteEvent(event: string, properties?: SuiteAnalyticsProperties): void;
|
|
23
|
+
/**
|
|
24
|
+
* Subscribe to suite analytics emitted by shared components. Returns an
|
|
25
|
+
* unsubscribe function. Host apps wire this once in their analytics provider.
|
|
26
|
+
*/
|
|
27
|
+
declare function subscribeSuiteAnalytics(handler: (event: string, properties?: SuiteAnalyticsProperties) => void): () => void;
|
|
28
|
+
|
|
29
|
+
export { SUITE_ANALYTICS_EVENT as S, type SuiteAnalyticsEventDetail as a, type SuiteAnalyticsProperties as b, subscribeSuiteAnalytics as s, trackSuiteEvent as t };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analytics bridge for shared `the-old-ui` components.
|
|
3
|
+
*
|
|
4
|
+
* The shared package must not depend on `@xenide-io/suite-client`, so instead
|
|
5
|
+
* of importing an analytics client it emits a browser CustomEvent that each
|
|
6
|
+
* host app forwards to its own client (e.g. `analytics.capture`). This mirrors
|
|
7
|
+
* the existing `suite-mutated` / `tt-timer-mutated` window-event pattern and
|
|
8
|
+
* works across the package's separate `index` / `ui` / `suite` bundles because
|
|
9
|
+
* `window` is the single shared instance.
|
|
10
|
+
*/
|
|
11
|
+
/** Window event apps subscribe to in order to forward suite analytics. */
|
|
12
|
+
declare const SUITE_ANALYTICS_EVENT = "shellstack:analytics";
|
|
13
|
+
type SuiteAnalyticsProperties = Record<string, unknown>;
|
|
14
|
+
interface SuiteAnalyticsEventDetail {
|
|
15
|
+
event: string;
|
|
16
|
+
properties?: SuiteAnalyticsProperties;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Emit a shared-component analytics event. Safe to call during SSR and never
|
|
20
|
+
* throws into the UI: analytics must never break an interaction.
|
|
21
|
+
*/
|
|
22
|
+
declare function trackSuiteEvent(event: string, properties?: SuiteAnalyticsProperties): void;
|
|
23
|
+
/**
|
|
24
|
+
* Subscribe to suite analytics emitted by shared components. Returns an
|
|
25
|
+
* unsubscribe function. Host apps wire this once in their analytics provider.
|
|
26
|
+
*/
|
|
27
|
+
declare function subscribeSuiteAnalytics(handler: (event: string, properties?: SuiteAnalyticsProperties) => void): () => void;
|
|
28
|
+
|
|
29
|
+
export { SUITE_ANALYTICS_EVENT as S, type SuiteAnalyticsEventDetail as a, type SuiteAnalyticsProperties as b, subscribeSuiteAnalytics as s, trackSuiteEvent as t };
|
package/dist/suite.d.mts
CHANGED
|
@@ -2,6 +2,7 @@ import * as react from 'react';
|
|
|
2
2
|
import { ReactNode, ComponentType, ButtonHTMLAttributes, CSSProperties, PointerEvent, ElementType } from 'react';
|
|
3
3
|
export { S as SuiteResolvedTheme, a as SuiteTheme, b as SuiteThemeBootOptions, c as SuiteThemeConfig, d as SuiteThemeContextValue, e as SuiteThemeProvider, s as suiteThemeBootScript, u as useSuiteTheme } from './theme-boot-P-oqKVZF.mjs';
|
|
4
4
|
import { ClassValue } from 'clsx';
|
|
5
|
+
export { S as SUITE_ANALYTICS_EVENT, a as SuiteAnalyticsEventDetail, b as SuiteAnalyticsProperties, s as subscribeSuiteAnalytics, t as trackSuiteEvent } from './suite-analytics--Mf1RZbw.mjs';
|
|
5
6
|
export { m } from 'motion/react';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -51,11 +52,12 @@ declare function getTodayGreeting(user?: {
|
|
|
51
52
|
overdueCount?: number;
|
|
52
53
|
hours?: number;
|
|
53
54
|
}): string;
|
|
54
|
-
declare function TodayHero({ message, brief, briefMeta, }: {
|
|
55
|
+
declare function TodayHero({ message, brief, briefMeta, action, }: {
|
|
55
56
|
message?: ReactNode;
|
|
56
57
|
/** AI / local focus brief under the greeting. */
|
|
57
58
|
brief?: ReactNode;
|
|
58
59
|
briefMeta?: ReactNode;
|
|
60
|
+
action?: ReactNode;
|
|
59
61
|
}): react.JSX.Element;
|
|
60
62
|
type TodayPrimaryAccent = "tides" | "turtletime" | "kraken" | "shellstack" | "neutral";
|
|
61
63
|
/**
|
|
@@ -83,7 +85,7 @@ declare function TodayEmptyAction({ title, description, actionLabel, href, onCli
|
|
|
83
85
|
onClick?: () => void;
|
|
84
86
|
dataTest?: string;
|
|
85
87
|
}): react.JSX.Element;
|
|
86
|
-
/**
|
|
88
|
+
/** Daily work queue and contextual rail; both stay in the page's scroll flow. */
|
|
87
89
|
declare function TodayLayout({ primary, main, aside, className, }: {
|
|
88
90
|
primary?: ReactNode;
|
|
89
91
|
main: ReactNode;
|
|
@@ -268,6 +270,28 @@ declare function SuiteNotificationBell({ dropdownMenu: DropdownMenu, dataTest, t
|
|
|
268
270
|
triggerDataTest?: string;
|
|
269
271
|
}): react.JSX.Element;
|
|
270
272
|
|
|
273
|
+
type SuiteWebPushState = "unsupported" | "unconfigured" | "default" | "granted" | "denied" | "subscribed";
|
|
274
|
+
/** Structural contract matching `createWebPushClient` from @xenide-io/suite-client. */
|
|
275
|
+
interface SuiteWebPushController {
|
|
276
|
+
supported(): boolean;
|
|
277
|
+
getState(): Promise<SuiteWebPushState>;
|
|
278
|
+
enable(): Promise<void>;
|
|
279
|
+
disable(): Promise<void>;
|
|
280
|
+
}
|
|
281
|
+
interface SuiteNotificationSettingsProps {
|
|
282
|
+
controller: SuiteWebPushController;
|
|
283
|
+
title?: string;
|
|
284
|
+
description?: string;
|
|
285
|
+
dataTest?: string;
|
|
286
|
+
className?: string;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Settings card that lets a user enable or disable browser notifications for
|
|
290
|
+
* this device. State and delivery live in the app's suite-client web push
|
|
291
|
+
* controller; this component is presentational.
|
|
292
|
+
*/
|
|
293
|
+
declare function SuiteNotificationSettings({ controller, title, description, dataTest, className, }: SuiteNotificationSettingsProps): react.JSX.Element;
|
|
294
|
+
|
|
271
295
|
/**
|
|
272
296
|
* Cmd/Ctrl+K command palette host. Apps build the item list and inject the
|
|
273
297
|
* theme CommandPalette primitive.
|
|
@@ -567,13 +591,21 @@ declare function SuiteAiPanel({ presets, emptyState, title, fetchChat, sendMessa
|
|
|
567
591
|
onSwitchApp?: (app: SuiteAppSlug, path: string) => void;
|
|
568
592
|
/** Client-side same-app route change — keeps Shelly mounted. */
|
|
569
593
|
onSameAppNavigate?: (path: string) => void;
|
|
570
|
-
resolveAction?: (id: string, decision: "confirm" | "cancel") => Promise<{
|
|
594
|
+
resolveAction?: (id: string, decision: "confirm" | "cancel", edits?: Record<string, unknown>) => Promise<{
|
|
571
595
|
messages: SuiteAiChatMessage[];
|
|
572
596
|
}>;
|
|
573
597
|
/** A durable background job is still preparing the assistant reply. */
|
|
574
598
|
isWaitingForReply?: boolean;
|
|
575
599
|
}): react.JSX.Element | null;
|
|
576
600
|
|
|
601
|
+
declare function suiteAiDraftFields(kind: string, payload?: Record<string, unknown>): Record<string, unknown> | null;
|
|
602
|
+
declare function SuiteAiDraftEditor({ kind, draft, canAddTasks, onChange, }: {
|
|
603
|
+
kind: string;
|
|
604
|
+
draft: Record<string, unknown>;
|
|
605
|
+
canAddTasks: boolean;
|
|
606
|
+
onChange: (draft: Record<string, unknown>) => void;
|
|
607
|
+
}): react.JSX.Element;
|
|
608
|
+
|
|
577
609
|
interface SuiteWorkspaceEntry {
|
|
578
610
|
id: string;
|
|
579
611
|
name: string;
|
|
@@ -1266,4 +1298,4 @@ declare function findPaletteIcons(options: {
|
|
|
1266
1298
|
results: PaletteHit[];
|
|
1267
1299
|
}>;
|
|
1268
1300
|
|
|
1269
|
-
export { APP_ACCENTS, APP_GLYPHS, AnimatedMoon, AnimatedSun, AppSwitcher, AppSwitcherChevron, AppSwitcherMark, CommandPaletteHost, DeferredChrome, type PaletteCollection, type PaletteCollectionDetail, type PaletteHit, type PaletteIcon, type PaletteLibrary, SIDEBAR_COLLAPSE_THRESHOLD, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_EXPANDED_WIDTH, SIDEBAR_RAIL_WIDTH, SUITE_APPS, SUITE_APP_MAP, SUITE_ASK_AI_OPEN_KEY, SUITE_ASK_AI_OPEN_QUERY, SUITE_GLYPHS, SUITE_ICON_NAMES, SUITE_MUTATED_EVENT, SUITE_NOTIFICATIONS_POLL_MS, SUITE_OPEN_ASK_AI_EVENT, SUITE_SIDEBAR_WIDTH_COOKIE, SUITE_SIDEBAR_WIDTH_KEY, SUITE_SPRINGS, SUITE_THEME_COOKIE, SourceAppGlyph, type SuiteAccentSlug, type SuiteAiAction, type SuiteAiActionStatus, type SuiteAiChatMessage, SuiteAiPanel, type SuiteAiPreset, type SuiteAppAccent, type SuiteAppDefinition, type SuiteAppEntry, SuiteAppIcon, type SuiteAppIconProps, SuiteAppLayout, type SuiteAppLayoutProps, type SuiteAppSelectOptions, type SuiteAppSlug, SuiteAppStrip, type SuiteAskAiOpenDetail, SuiteBottomNav, type SuiteBottomNavItem, SuiteBreadcrumbs, type SuiteBreadcrumbsProps, SuiteClientsProjectsDirectory, type SuiteClientsProjectsDirectoryProps, type SuiteCommandItem, type SuiteCommandPaletteComponent, type SuiteDirectoryClient, type SuiteDirectoryFields, type SuiteDirectoryProject, type SuiteDirectoryProjectFields, type SuiteDropdownItemComponent, type SuiteDropdownMenuComponent, type SuiteDropdownMenuProps, SuiteEmptyState, SuiteEntityIcon, type SuiteGlyph, type SuiteGlyphElement, type SuiteHrefTarget, SuiteIcon, type SuiteIconName, type SuiteIconProps, type SuiteIntegrationEvent, SuiteIntegrationPicker, type SuiteIntegrationPickerItem, type SuiteIntegrationPickerProps, type SuiteIntegrationRule, type SuiteIntegrationRuleActionType, type SuiteIntegrationRuleInput, type SuiteIntegrationRuleProject, SuiteIntegrationRules, type SuiteIntegrationRulesProps, SuiteMobileDrawer, SuiteMobileHeader, SuiteMotionProvider, type SuiteNotification, SuiteNotificationBell, type SuiteNotificationsContextValue, SuiteNotificationsProvider, type SuiteNotificationsResponse, SuitePage, SuitePageHeader, type SuitePageWidth, SuitePaletteLibrary, type SuitePalettePick, SuiteSectionHeader, SuiteSettingsLayout, type SuiteSettingsLayoutProps, SuiteSettingsMobileNav, type SuiteSettingsNavItem, SuiteSidebar, type SuiteSidebarNavItem, SuiteSkeleton, SuiteSkeletonCard, SuiteSkeletonList, type SuiteSpinnerComponent, type SuiteSpringName, SuiteTabList, SuiteToolbar, SuiteUserMenu, type SuiteUserMenuProps, type SuiteWorkspaceEntry, type SuiteWorkspaceGroup, SuiteWorkspaceSwitcher, TURTLETIME_TIMER_MUTATED_EVENT, TodayAskAiCard, TodayCalibrating, TodayEmptyAction, TodayEmptyState, TodayHero, TodayLayout, TodayPageFrame, TodayPanel, type TodayPrimaryAccent, TodayPrimaryAction, TodaySection, TodayTimeIcon, TodayTopBar, appSwitcherMarkClass, appSwitcherMenuItemClass, appSwitcherTriggerClass, classifySuiteHref, cn, consumePendingAskAiPrompt, consumeSuiteAskAiOpenFromLocation, fetchPaletteCollection, fetchPaletteLibrary, findPaletteIcons, getTodayGreeting, openSuiteAskAi, pathWithSuiteAskAiOpen, persistSidebarWidth, persistSuiteAskAiOpen, readSidebarWidth, readSuiteAskAiOpen, resetSuiteSidebarWidth, resolveSuiteNotificationHref, sidebarColumnWidth, sourceToSuiteApp, suiteAppBaseUrl, suiteAppLabel, useIdleMount, useSidebarWidth, useSuiteNotifications };
|
|
1301
|
+
export { APP_ACCENTS, APP_GLYPHS, AnimatedMoon, AnimatedSun, AppSwitcher, AppSwitcherChevron, AppSwitcherMark, CommandPaletteHost, DeferredChrome, type PaletteCollection, type PaletteCollectionDetail, type PaletteHit, type PaletteIcon, type PaletteLibrary, SIDEBAR_COLLAPSE_THRESHOLD, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_EXPANDED_WIDTH, SIDEBAR_RAIL_WIDTH, SUITE_APPS, SUITE_APP_MAP, SUITE_ASK_AI_OPEN_KEY, SUITE_ASK_AI_OPEN_QUERY, SUITE_GLYPHS, SUITE_ICON_NAMES, SUITE_MUTATED_EVENT, SUITE_NOTIFICATIONS_POLL_MS, SUITE_OPEN_ASK_AI_EVENT, SUITE_SIDEBAR_WIDTH_COOKIE, SUITE_SIDEBAR_WIDTH_KEY, SUITE_SPRINGS, SUITE_THEME_COOKIE, SourceAppGlyph, type SuiteAccentSlug, type SuiteAiAction, type SuiteAiActionStatus, type SuiteAiChatMessage, SuiteAiDraftEditor, SuiteAiPanel, type SuiteAiPreset, type SuiteAppAccent, type SuiteAppDefinition, type SuiteAppEntry, SuiteAppIcon, type SuiteAppIconProps, SuiteAppLayout, type SuiteAppLayoutProps, type SuiteAppSelectOptions, type SuiteAppSlug, SuiteAppStrip, type SuiteAskAiOpenDetail, SuiteBottomNav, type SuiteBottomNavItem, SuiteBreadcrumbs, type SuiteBreadcrumbsProps, SuiteClientsProjectsDirectory, type SuiteClientsProjectsDirectoryProps, type SuiteCommandItem, type SuiteCommandPaletteComponent, type SuiteDirectoryClient, type SuiteDirectoryFields, type SuiteDirectoryProject, type SuiteDirectoryProjectFields, type SuiteDropdownItemComponent, type SuiteDropdownMenuComponent, type SuiteDropdownMenuProps, SuiteEmptyState, SuiteEntityIcon, type SuiteGlyph, type SuiteGlyphElement, type SuiteHrefTarget, SuiteIcon, type SuiteIconName, type SuiteIconProps, type SuiteIntegrationEvent, SuiteIntegrationPicker, type SuiteIntegrationPickerItem, type SuiteIntegrationPickerProps, type SuiteIntegrationRule, type SuiteIntegrationRuleActionType, type SuiteIntegrationRuleInput, type SuiteIntegrationRuleProject, SuiteIntegrationRules, type SuiteIntegrationRulesProps, SuiteMobileDrawer, SuiteMobileHeader, SuiteMotionProvider, type SuiteNotification, SuiteNotificationBell, SuiteNotificationSettings, type SuiteNotificationSettingsProps, type SuiteNotificationsContextValue, SuiteNotificationsProvider, type SuiteNotificationsResponse, SuitePage, SuitePageHeader, type SuitePageWidth, SuitePaletteLibrary, type SuitePalettePick, SuiteSectionHeader, SuiteSettingsLayout, type SuiteSettingsLayoutProps, SuiteSettingsMobileNav, type SuiteSettingsNavItem, SuiteSidebar, type SuiteSidebarNavItem, SuiteSkeleton, SuiteSkeletonCard, SuiteSkeletonList, type SuiteSpinnerComponent, type SuiteSpringName, SuiteTabList, SuiteToolbar, SuiteUserMenu, type SuiteUserMenuProps, type SuiteWebPushController, type SuiteWebPushState, type SuiteWorkspaceEntry, type SuiteWorkspaceGroup, SuiteWorkspaceSwitcher, TURTLETIME_TIMER_MUTATED_EVENT, TodayAskAiCard, TodayCalibrating, TodayEmptyAction, TodayEmptyState, TodayHero, TodayLayout, TodayPageFrame, TodayPanel, type TodayPrimaryAccent, TodayPrimaryAction, TodaySection, TodayTimeIcon, TodayTopBar, appSwitcherMarkClass, appSwitcherMenuItemClass, appSwitcherTriggerClass, classifySuiteHref, cn, consumePendingAskAiPrompt, consumeSuiteAskAiOpenFromLocation, fetchPaletteCollection, fetchPaletteLibrary, findPaletteIcons, getTodayGreeting, openSuiteAskAi, pathWithSuiteAskAiOpen, persistSidebarWidth, persistSuiteAskAiOpen, readSidebarWidth, readSuiteAskAiOpen, resetSuiteSidebarWidth, resolveSuiteNotificationHref, sidebarColumnWidth, sourceToSuiteApp, suiteAiDraftFields, suiteAppBaseUrl, suiteAppLabel, useIdleMount, useSidebarWidth, useSuiteNotifications };
|
package/dist/suite.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as react from 'react';
|
|
|
2
2
|
import { ReactNode, ComponentType, ButtonHTMLAttributes, CSSProperties, PointerEvent, ElementType } from 'react';
|
|
3
3
|
export { S as SuiteResolvedTheme, a as SuiteTheme, b as SuiteThemeBootOptions, c as SuiteThemeConfig, d as SuiteThemeContextValue, e as SuiteThemeProvider, s as suiteThemeBootScript, u as useSuiteTheme } from './theme-boot-P-oqKVZF.js';
|
|
4
4
|
import { ClassValue } from 'clsx';
|
|
5
|
+
export { S as SUITE_ANALYTICS_EVENT, a as SuiteAnalyticsEventDetail, b as SuiteAnalyticsProperties, s as subscribeSuiteAnalytics, t as trackSuiteEvent } from './suite-analytics--Mf1RZbw.js';
|
|
5
6
|
export { m } from 'motion/react';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -51,11 +52,12 @@ declare function getTodayGreeting(user?: {
|
|
|
51
52
|
overdueCount?: number;
|
|
52
53
|
hours?: number;
|
|
53
54
|
}): string;
|
|
54
|
-
declare function TodayHero({ message, brief, briefMeta, }: {
|
|
55
|
+
declare function TodayHero({ message, brief, briefMeta, action, }: {
|
|
55
56
|
message?: ReactNode;
|
|
56
57
|
/** AI / local focus brief under the greeting. */
|
|
57
58
|
brief?: ReactNode;
|
|
58
59
|
briefMeta?: ReactNode;
|
|
60
|
+
action?: ReactNode;
|
|
59
61
|
}): react.JSX.Element;
|
|
60
62
|
type TodayPrimaryAccent = "tides" | "turtletime" | "kraken" | "shellstack" | "neutral";
|
|
61
63
|
/**
|
|
@@ -83,7 +85,7 @@ declare function TodayEmptyAction({ title, description, actionLabel, href, onCli
|
|
|
83
85
|
onClick?: () => void;
|
|
84
86
|
dataTest?: string;
|
|
85
87
|
}): react.JSX.Element;
|
|
86
|
-
/**
|
|
88
|
+
/** Daily work queue and contextual rail; both stay in the page's scroll flow. */
|
|
87
89
|
declare function TodayLayout({ primary, main, aside, className, }: {
|
|
88
90
|
primary?: ReactNode;
|
|
89
91
|
main: ReactNode;
|
|
@@ -268,6 +270,28 @@ declare function SuiteNotificationBell({ dropdownMenu: DropdownMenu, dataTest, t
|
|
|
268
270
|
triggerDataTest?: string;
|
|
269
271
|
}): react.JSX.Element;
|
|
270
272
|
|
|
273
|
+
type SuiteWebPushState = "unsupported" | "unconfigured" | "default" | "granted" | "denied" | "subscribed";
|
|
274
|
+
/** Structural contract matching `createWebPushClient` from @xenide-io/suite-client. */
|
|
275
|
+
interface SuiteWebPushController {
|
|
276
|
+
supported(): boolean;
|
|
277
|
+
getState(): Promise<SuiteWebPushState>;
|
|
278
|
+
enable(): Promise<void>;
|
|
279
|
+
disable(): Promise<void>;
|
|
280
|
+
}
|
|
281
|
+
interface SuiteNotificationSettingsProps {
|
|
282
|
+
controller: SuiteWebPushController;
|
|
283
|
+
title?: string;
|
|
284
|
+
description?: string;
|
|
285
|
+
dataTest?: string;
|
|
286
|
+
className?: string;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Settings card that lets a user enable or disable browser notifications for
|
|
290
|
+
* this device. State and delivery live in the app's suite-client web push
|
|
291
|
+
* controller; this component is presentational.
|
|
292
|
+
*/
|
|
293
|
+
declare function SuiteNotificationSettings({ controller, title, description, dataTest, className, }: SuiteNotificationSettingsProps): react.JSX.Element;
|
|
294
|
+
|
|
271
295
|
/**
|
|
272
296
|
* Cmd/Ctrl+K command palette host. Apps build the item list and inject the
|
|
273
297
|
* theme CommandPalette primitive.
|
|
@@ -567,13 +591,21 @@ declare function SuiteAiPanel({ presets, emptyState, title, fetchChat, sendMessa
|
|
|
567
591
|
onSwitchApp?: (app: SuiteAppSlug, path: string) => void;
|
|
568
592
|
/** Client-side same-app route change — keeps Shelly mounted. */
|
|
569
593
|
onSameAppNavigate?: (path: string) => void;
|
|
570
|
-
resolveAction?: (id: string, decision: "confirm" | "cancel") => Promise<{
|
|
594
|
+
resolveAction?: (id: string, decision: "confirm" | "cancel", edits?: Record<string, unknown>) => Promise<{
|
|
571
595
|
messages: SuiteAiChatMessage[];
|
|
572
596
|
}>;
|
|
573
597
|
/** A durable background job is still preparing the assistant reply. */
|
|
574
598
|
isWaitingForReply?: boolean;
|
|
575
599
|
}): react.JSX.Element | null;
|
|
576
600
|
|
|
601
|
+
declare function suiteAiDraftFields(kind: string, payload?: Record<string, unknown>): Record<string, unknown> | null;
|
|
602
|
+
declare function SuiteAiDraftEditor({ kind, draft, canAddTasks, onChange, }: {
|
|
603
|
+
kind: string;
|
|
604
|
+
draft: Record<string, unknown>;
|
|
605
|
+
canAddTasks: boolean;
|
|
606
|
+
onChange: (draft: Record<string, unknown>) => void;
|
|
607
|
+
}): react.JSX.Element;
|
|
608
|
+
|
|
577
609
|
interface SuiteWorkspaceEntry {
|
|
578
610
|
id: string;
|
|
579
611
|
name: string;
|
|
@@ -1266,4 +1298,4 @@ declare function findPaletteIcons(options: {
|
|
|
1266
1298
|
results: PaletteHit[];
|
|
1267
1299
|
}>;
|
|
1268
1300
|
|
|
1269
|
-
export { APP_ACCENTS, APP_GLYPHS, AnimatedMoon, AnimatedSun, AppSwitcher, AppSwitcherChevron, AppSwitcherMark, CommandPaletteHost, DeferredChrome, type PaletteCollection, type PaletteCollectionDetail, type PaletteHit, type PaletteIcon, type PaletteLibrary, SIDEBAR_COLLAPSE_THRESHOLD, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_EXPANDED_WIDTH, SIDEBAR_RAIL_WIDTH, SUITE_APPS, SUITE_APP_MAP, SUITE_ASK_AI_OPEN_KEY, SUITE_ASK_AI_OPEN_QUERY, SUITE_GLYPHS, SUITE_ICON_NAMES, SUITE_MUTATED_EVENT, SUITE_NOTIFICATIONS_POLL_MS, SUITE_OPEN_ASK_AI_EVENT, SUITE_SIDEBAR_WIDTH_COOKIE, SUITE_SIDEBAR_WIDTH_KEY, SUITE_SPRINGS, SUITE_THEME_COOKIE, SourceAppGlyph, type SuiteAccentSlug, type SuiteAiAction, type SuiteAiActionStatus, type SuiteAiChatMessage, SuiteAiPanel, type SuiteAiPreset, type SuiteAppAccent, type SuiteAppDefinition, type SuiteAppEntry, SuiteAppIcon, type SuiteAppIconProps, SuiteAppLayout, type SuiteAppLayoutProps, type SuiteAppSelectOptions, type SuiteAppSlug, SuiteAppStrip, type SuiteAskAiOpenDetail, SuiteBottomNav, type SuiteBottomNavItem, SuiteBreadcrumbs, type SuiteBreadcrumbsProps, SuiteClientsProjectsDirectory, type SuiteClientsProjectsDirectoryProps, type SuiteCommandItem, type SuiteCommandPaletteComponent, type SuiteDirectoryClient, type SuiteDirectoryFields, type SuiteDirectoryProject, type SuiteDirectoryProjectFields, type SuiteDropdownItemComponent, type SuiteDropdownMenuComponent, type SuiteDropdownMenuProps, SuiteEmptyState, SuiteEntityIcon, type SuiteGlyph, type SuiteGlyphElement, type SuiteHrefTarget, SuiteIcon, type SuiteIconName, type SuiteIconProps, type SuiteIntegrationEvent, SuiteIntegrationPicker, type SuiteIntegrationPickerItem, type SuiteIntegrationPickerProps, type SuiteIntegrationRule, type SuiteIntegrationRuleActionType, type SuiteIntegrationRuleInput, type SuiteIntegrationRuleProject, SuiteIntegrationRules, type SuiteIntegrationRulesProps, SuiteMobileDrawer, SuiteMobileHeader, SuiteMotionProvider, type SuiteNotification, SuiteNotificationBell, type SuiteNotificationsContextValue, SuiteNotificationsProvider, type SuiteNotificationsResponse, SuitePage, SuitePageHeader, type SuitePageWidth, SuitePaletteLibrary, type SuitePalettePick, SuiteSectionHeader, SuiteSettingsLayout, type SuiteSettingsLayoutProps, SuiteSettingsMobileNav, type SuiteSettingsNavItem, SuiteSidebar, type SuiteSidebarNavItem, SuiteSkeleton, SuiteSkeletonCard, SuiteSkeletonList, type SuiteSpinnerComponent, type SuiteSpringName, SuiteTabList, SuiteToolbar, SuiteUserMenu, type SuiteUserMenuProps, type SuiteWorkspaceEntry, type SuiteWorkspaceGroup, SuiteWorkspaceSwitcher, TURTLETIME_TIMER_MUTATED_EVENT, TodayAskAiCard, TodayCalibrating, TodayEmptyAction, TodayEmptyState, TodayHero, TodayLayout, TodayPageFrame, TodayPanel, type TodayPrimaryAccent, TodayPrimaryAction, TodaySection, TodayTimeIcon, TodayTopBar, appSwitcherMarkClass, appSwitcherMenuItemClass, appSwitcherTriggerClass, classifySuiteHref, cn, consumePendingAskAiPrompt, consumeSuiteAskAiOpenFromLocation, fetchPaletteCollection, fetchPaletteLibrary, findPaletteIcons, getTodayGreeting, openSuiteAskAi, pathWithSuiteAskAiOpen, persistSidebarWidth, persistSuiteAskAiOpen, readSidebarWidth, readSuiteAskAiOpen, resetSuiteSidebarWidth, resolveSuiteNotificationHref, sidebarColumnWidth, sourceToSuiteApp, suiteAppBaseUrl, suiteAppLabel, useIdleMount, useSidebarWidth, useSuiteNotifications };
|
|
1301
|
+
export { APP_ACCENTS, APP_GLYPHS, AnimatedMoon, AnimatedSun, AppSwitcher, AppSwitcherChevron, AppSwitcherMark, CommandPaletteHost, DeferredChrome, type PaletteCollection, type PaletteCollectionDetail, type PaletteHit, type PaletteIcon, type PaletteLibrary, SIDEBAR_COLLAPSE_THRESHOLD, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_EXPANDED_WIDTH, SIDEBAR_RAIL_WIDTH, SUITE_APPS, SUITE_APP_MAP, SUITE_ASK_AI_OPEN_KEY, SUITE_ASK_AI_OPEN_QUERY, SUITE_GLYPHS, SUITE_ICON_NAMES, SUITE_MUTATED_EVENT, SUITE_NOTIFICATIONS_POLL_MS, SUITE_OPEN_ASK_AI_EVENT, SUITE_SIDEBAR_WIDTH_COOKIE, SUITE_SIDEBAR_WIDTH_KEY, SUITE_SPRINGS, SUITE_THEME_COOKIE, SourceAppGlyph, type SuiteAccentSlug, type SuiteAiAction, type SuiteAiActionStatus, type SuiteAiChatMessage, SuiteAiDraftEditor, SuiteAiPanel, type SuiteAiPreset, type SuiteAppAccent, type SuiteAppDefinition, type SuiteAppEntry, SuiteAppIcon, type SuiteAppIconProps, SuiteAppLayout, type SuiteAppLayoutProps, type SuiteAppSelectOptions, type SuiteAppSlug, SuiteAppStrip, type SuiteAskAiOpenDetail, SuiteBottomNav, type SuiteBottomNavItem, SuiteBreadcrumbs, type SuiteBreadcrumbsProps, SuiteClientsProjectsDirectory, type SuiteClientsProjectsDirectoryProps, type SuiteCommandItem, type SuiteCommandPaletteComponent, type SuiteDirectoryClient, type SuiteDirectoryFields, type SuiteDirectoryProject, type SuiteDirectoryProjectFields, type SuiteDropdownItemComponent, type SuiteDropdownMenuComponent, type SuiteDropdownMenuProps, SuiteEmptyState, SuiteEntityIcon, type SuiteGlyph, type SuiteGlyphElement, type SuiteHrefTarget, SuiteIcon, type SuiteIconName, type SuiteIconProps, type SuiteIntegrationEvent, SuiteIntegrationPicker, type SuiteIntegrationPickerItem, type SuiteIntegrationPickerProps, type SuiteIntegrationRule, type SuiteIntegrationRuleActionType, type SuiteIntegrationRuleInput, type SuiteIntegrationRuleProject, SuiteIntegrationRules, type SuiteIntegrationRulesProps, SuiteMobileDrawer, SuiteMobileHeader, SuiteMotionProvider, type SuiteNotification, SuiteNotificationBell, SuiteNotificationSettings, type SuiteNotificationSettingsProps, type SuiteNotificationsContextValue, SuiteNotificationsProvider, type SuiteNotificationsResponse, SuitePage, SuitePageHeader, type SuitePageWidth, SuitePaletteLibrary, type SuitePalettePick, SuiteSectionHeader, SuiteSettingsLayout, type SuiteSettingsLayoutProps, SuiteSettingsMobileNav, type SuiteSettingsNavItem, SuiteSidebar, type SuiteSidebarNavItem, SuiteSkeleton, SuiteSkeletonCard, SuiteSkeletonList, type SuiteSpinnerComponent, type SuiteSpringName, SuiteTabList, SuiteToolbar, SuiteUserMenu, type SuiteUserMenuProps, type SuiteWebPushController, type SuiteWebPushState, type SuiteWorkspaceEntry, type SuiteWorkspaceGroup, SuiteWorkspaceSwitcher, TURTLETIME_TIMER_MUTATED_EVENT, TodayAskAiCard, TodayCalibrating, TodayEmptyAction, TodayEmptyState, TodayHero, TodayLayout, TodayPageFrame, TodayPanel, type TodayPrimaryAccent, TodayPrimaryAction, TodaySection, TodayTimeIcon, TodayTopBar, appSwitcherMarkClass, appSwitcherMenuItemClass, appSwitcherTriggerClass, classifySuiteHref, cn, consumePendingAskAiPrompt, consumeSuiteAskAiOpenFromLocation, fetchPaletteCollection, fetchPaletteLibrary, findPaletteIcons, getTodayGreeting, openSuiteAskAi, pathWithSuiteAskAiOpen, persistSidebarWidth, persistSuiteAskAiOpen, readSidebarWidth, readSuiteAskAiOpen, resetSuiteSidebarWidth, resolveSuiteNotificationHref, sidebarColumnWidth, sourceToSuiteApp, suiteAiDraftFields, suiteAppBaseUrl, suiteAppLabel, useIdleMount, useSidebarWidth, useSuiteNotifications };
|