react-os-shell 0.7.4 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,9 +1,7 @@
1
- import { useEmailUnreadCount } from './chunk-PDFQNHW7.js';
2
- import { useMailAuth } from './chunk-VBFB3ZIN.js';
3
- export { setShellMailServer, useMailAuth } from './chunk-VBFB3ZIN.js';
4
- import { formatDate } from './chunk-NSU7OHPC.js';
5
- export { formatDate } from './chunk-NSU7OHPC.js';
1
+ import { formatDate } from './chunk-Y4QYGQKS.js';
2
+ export { formatDate } from './chunk-Y4QYGQKS.js';
6
3
  import { subscribePomo, getPomoSnapshot } from './chunk-MK3HLUO4.js';
4
+ export { setShellTodoProvider } from './chunk-QTJ2CHJX.js';
7
5
  import { useShellPrefs } from './chunk-36VM54SC.js';
8
6
  export { ShellPrefsProvider, useLocalStoragePrefs, useShellPrefs } from './chunk-36VM54SC.js';
9
7
  import { PREVIEW_OPENED_EVENT, openPreviewFile } from './chunk-SUUADOG6.js';
@@ -13,7 +11,7 @@ import './chunk-KUIPWCTJ.js';
13
11
  import { toast_default } from './chunk-WIJ45SYD.js';
14
12
  export { toast_default as toast } from './chunk-WIJ45SYD.js';
15
13
  export { EditableGrid } from './chunk-ZETQWO2W.js';
16
- import { useWindowManager, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, Modal, WINDOW_REGISTRY, isPageEntry, ModalActions, useIsMobile, useModalActive, client_default, LoadingSpinner, setWindowPosition, ThumbCard, activateModal } from './chunk-3T6SQ4UO.js';
14
+ import { useWindowManager, PopupMenu, PopupMenuLabel, PopupMenuDivider, PopupMenuItem, Modal, WINDOW_REGISTRY, isPageEntry, useIsMobile, ModalActions, useModalActive, client_default, LoadingSpinner, setWindowPosition, ThumbCard, activateModal } from './chunk-3T6SQ4UO.js';
17
15
  export { CancelButton, CopyButton, DocFavStar, Modal, ModalActions, PopupMenu, PopupMenuDivider, PopupMenuItem, PopupMenuLabel, WindowManagerProvider, WindowTitle, commitExposeHighlight, exitExposeMode, getActiveWindowRoute, getExposeHighlight, getWindowPosition, isEntityEntry, isPageEntry, setExposeHighlight, setShellApiClient, setShellWindowRegistry, setWindowDefaultPosition, setWindowPosition, subscribeExposeHighlight, toggleExposeMode, useModalActive, useWidgetSettings, useWindowManager, useWindowMenuItem, useWindowTitle } from './chunk-3T6SQ4UO.js';
18
16
  import { confirm } from './chunk-UBN4IUDE.js';
19
17
  export { ConfirmProvider, confirm, confirmDestructive, prompt } from './chunk-UBN4IUDE.js';
@@ -1402,7 +1400,7 @@ function WidgetManager({ open, onClose }) {
1402
1400
  }
1403
1401
 
1404
1402
  // src/version.ts
1405
- var VERSION = "0.7.4" ;
1403
+ var VERSION = "0.8.0" ;
1406
1404
  var APP_VERSION = VERSION;
1407
1405
 
1408
1406
  // src/changelog.ts
@@ -3011,221 +3009,6 @@ function useTheme() {
3011
3009
  }, [accentColor, customBgColor, customTitleColor, customWindowColor, customButtonColor]);
3012
3010
  return { theme: saved, resolved };
3013
3011
  }
3014
- var PRESETS = [
3015
- {
3016
- id: "fastmail",
3017
- label: "Fastmail",
3018
- imap: { host: "imap.fastmail.com", port: 993, secure: true },
3019
- smtp: { host: "smtp.fastmail.com", port: 465, secure: true },
3020
- caldav: "https://caldav.fastmail.com/"
3021
- },
3022
- {
3023
- id: "icloud",
3024
- label: "iCloud",
3025
- note: "Requires an app-specific password (appleid.apple.com).",
3026
- imap: { host: "imap.mail.me.com", port: 993, secure: true },
3027
- smtp: { host: "smtp.mail.me.com", port: 587, secure: false },
3028
- caldav: "https://caldav.icloud.com/"
3029
- },
3030
- {
3031
- id: "yahoo",
3032
- label: "Yahoo",
3033
- note: "Requires an app password (account.yahoo.com).",
3034
- imap: { host: "imap.mail.yahoo.com", port: 993, secure: true },
3035
- smtp: { host: "smtp.mail.yahoo.com", port: 465, secure: true },
3036
- caldav: "https://caldav.calendar.yahoo.com/"
3037
- },
3038
- {
3039
- id: "gmail",
3040
- label: "Gmail (app password required)",
3041
- note: "Enable 2FA and create an app password \u2014 Gmail rejects regular passwords for IMAP.",
3042
- imap: { host: "imap.gmail.com", port: 993, secure: true },
3043
- smtp: { host: "smtp.gmail.com", port: 465, secure: true }
3044
- },
3045
- {
3046
- id: "outlook",
3047
- label: "Outlook (app password required)",
3048
- note: "Modern auth not supported \u2014 generate an app password in Microsoft account settings.",
3049
- imap: { host: "outlook.office365.com", port: 993, secure: true },
3050
- smtp: { host: "smtp.office365.com", port: 587, secure: false }
3051
- },
3052
- {
3053
- id: "custom",
3054
- label: "Custom",
3055
- imap: { host: "", port: 993, secure: true },
3056
- smtp: { host: "", port: 465, secure: true }
3057
- }
3058
- ];
3059
- function MailConnectModal({ open, onClose }) {
3060
- const { isConnected, user, capabilities, login, logout, loading, error } = useMailAuth();
3061
- const [presetId, setPresetId] = useState("fastmail");
3062
- const preset = PRESETS.find((p) => p.id === presetId) || PRESETS[0];
3063
- const prefill = typeof window !== "undefined" ? localStorage.getItem("mail_login_prefill_email") || "" : "";
3064
- const [email, setEmail] = useState(prefill);
3065
- const [password, setPassword] = useState("");
3066
- const [imapHost, setImapHost] = useState(preset.imap.host);
3067
- const [imapPort, setImapPort] = useState(preset.imap.port);
3068
- const [imapSecure, setImapSecure] = useState(preset.imap.secure);
3069
- const [smtpHost, setSmtpHost] = useState(preset.smtp.host);
3070
- const [smtpPort, setSmtpPort] = useState(preset.smtp.port);
3071
- const [smtpSecure, setSmtpSecure] = useState(preset.smtp.secure);
3072
- const [caldavUrl, setCaldavUrl] = useState(preset.caldav || "");
3073
- const [localError, setLocalError] = useState(null);
3074
- useEffect(() => {
3075
- setImapHost(preset.imap.host);
3076
- setImapPort(preset.imap.port);
3077
- setImapSecure(preset.imap.secure);
3078
- setSmtpHost(preset.smtp.host);
3079
- setSmtpPort(preset.smtp.port);
3080
- setSmtpSecure(preset.smtp.secure);
3081
- setCaldavUrl(preset.caldav || "");
3082
- }, [preset]);
3083
- async function handleSubmit(e) {
3084
- e.preventDefault();
3085
- setLocalError(null);
3086
- if (!email || !password) {
3087
- setLocalError("Email and password are required");
3088
- return;
3089
- }
3090
- const payload = {
3091
- imap: { host: imapHost, port: imapPort, secure: imapSecure, user: email, pass: password },
3092
- smtp: { host: smtpHost, port: smtpPort, secure: smtpSecure, user: email, pass: password },
3093
- caldav: caldavUrl ? { serverUrl: caldavUrl, user: email, pass: password } : void 0
3094
- };
3095
- try {
3096
- await login(payload);
3097
- onClose();
3098
- } catch {
3099
- }
3100
- }
3101
- return /* @__PURE__ */ jsxs(Modal, { open, onClose, title: "Mail & Calendar", size: "md", children: [
3102
- isConnected ? /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
3103
- /* @__PURE__ */ jsxs("div", { className: "rounded-lg border border-green-200 bg-green-50 p-4", children: [
3104
- /* @__PURE__ */ jsxs("p", { className: "text-sm font-medium text-green-900", children: [
3105
- "Connected as ",
3106
- user?.email
3107
- ] }),
3108
- /* @__PURE__ */ jsxs("p", { className: "text-xs text-green-700 mt-1", children: [
3109
- "IMAP: ok \xB7 SMTP: ok \xB7 CalDAV: ",
3110
- capabilities?.caldav ? "ok" : "not configured"
3111
- ] })
3112
- ] }),
3113
- /* @__PURE__ */ jsx("p", { className: "text-xs text-gray-500", children: "Disconnect to switch accounts. Credentials are not persisted to disk \u2014 restarting the bridge server signs you out." })
3114
- ] }) : /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [
3115
- /* @__PURE__ */ jsxs("label", { className: "block", children: [
3116
- /* @__PURE__ */ jsx("span", { className: "block text-xs font-medium text-gray-700 mb-1", children: "Provider" }),
3117
- /* @__PURE__ */ jsx(
3118
- "select",
3119
- {
3120
- value: presetId,
3121
- onChange: (e) => setPresetId(e.target.value),
3122
- className: "w-full rounded-md border border-gray-300 px-3 py-2 text-sm",
3123
- children: PRESETS.map((p) => /* @__PURE__ */ jsx("option", { value: p.id, children: p.label }, p.id))
3124
- }
3125
- )
3126
- ] }),
3127
- preset.note && /* @__PURE__ */ jsx("p", { className: "text-[11px] text-amber-700 bg-amber-50 border border-amber-200 rounded p-2", children: preset.note }),
3128
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-3", children: [
3129
- /* @__PURE__ */ jsxs("label", { className: "block col-span-2", children: [
3130
- /* @__PURE__ */ jsx("span", { className: "block text-xs font-medium text-gray-700 mb-1", children: "Email" }),
3131
- /* @__PURE__ */ jsx(
3132
- "input",
3133
- {
3134
- type: "email",
3135
- value: email,
3136
- onChange: (e) => setEmail(e.target.value),
3137
- autoComplete: "username",
3138
- className: "w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
3139
- }
3140
- )
3141
- ] }),
3142
- /* @__PURE__ */ jsxs("label", { className: "block col-span-2", children: [
3143
- /* @__PURE__ */ jsx("span", { className: "block text-xs font-medium text-gray-700 mb-1", children: "Password" }),
3144
- /* @__PURE__ */ jsx(
3145
- "input",
3146
- {
3147
- type: "password",
3148
- value: password,
3149
- onChange: (e) => setPassword(e.target.value),
3150
- autoComplete: "current-password",
3151
- className: "w-full rounded-md border border-gray-300 px-3 py-2 text-sm"
3152
- }
3153
- )
3154
- ] })
3155
- ] }),
3156
- /* @__PURE__ */ jsxs("fieldset", { className: "border border-gray-200 rounded-md p-3", children: [
3157
- /* @__PURE__ */ jsx("legend", { className: "px-1 text-xs font-medium text-gray-600", children: "IMAP (incoming)" }),
3158
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-2", children: [
3159
- /* @__PURE__ */ jsxs("label", { className: "block col-span-2", children: [
3160
- /* @__PURE__ */ jsx("span", { className: "block text-[11px] text-gray-600 mb-1", children: "Host" }),
3161
- /* @__PURE__ */ jsx("input", { value: imapHost, onChange: (e) => setImapHost(e.target.value), className: "w-full rounded border border-gray-300 px-2 py-1 text-sm" })
3162
- ] }),
3163
- /* @__PURE__ */ jsxs("label", { className: "block", children: [
3164
- /* @__PURE__ */ jsx("span", { className: "block text-[11px] text-gray-600 mb-1", children: "Port" }),
3165
- /* @__PURE__ */ jsx("input", { type: "number", value: imapPort, onChange: (e) => setImapPort(Number(e.target.value)), className: "w-full rounded border border-gray-300 px-2 py-1 text-sm" })
3166
- ] }),
3167
- /* @__PURE__ */ jsxs("label", { className: "col-span-3 flex items-center gap-2 text-xs text-gray-600 mt-1", children: [
3168
- /* @__PURE__ */ jsx("input", { type: "checkbox", checked: imapSecure, onChange: (e) => setImapSecure(e.target.checked) }),
3169
- "Use TLS/SSL (recommended for port 993)"
3170
- ] })
3171
- ] })
3172
- ] }),
3173
- /* @__PURE__ */ jsxs("fieldset", { className: "border border-gray-200 rounded-md p-3", children: [
3174
- /* @__PURE__ */ jsx("legend", { className: "px-1 text-xs font-medium text-gray-600", children: "SMTP (outgoing)" }),
3175
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-2", children: [
3176
- /* @__PURE__ */ jsxs("label", { className: "block col-span-2", children: [
3177
- /* @__PURE__ */ jsx("span", { className: "block text-[11px] text-gray-600 mb-1", children: "Host" }),
3178
- /* @__PURE__ */ jsx("input", { value: smtpHost, onChange: (e) => setSmtpHost(e.target.value), className: "w-full rounded border border-gray-300 px-2 py-1 text-sm" })
3179
- ] }),
3180
- /* @__PURE__ */ jsxs("label", { className: "block", children: [
3181
- /* @__PURE__ */ jsx("span", { className: "block text-[11px] text-gray-600 mb-1", children: "Port" }),
3182
- /* @__PURE__ */ jsx("input", { type: "number", value: smtpPort, onChange: (e) => setSmtpPort(Number(e.target.value)), className: "w-full rounded border border-gray-300 px-2 py-1 text-sm" })
3183
- ] }),
3184
- /* @__PURE__ */ jsxs("label", { className: "col-span-3 flex items-center gap-2 text-xs text-gray-600 mt-1", children: [
3185
- /* @__PURE__ */ jsx("input", { type: "checkbox", checked: smtpSecure, onChange: (e) => setSmtpSecure(e.target.checked) }),
3186
- "Use TLS/SSL (recommended for port 465)"
3187
- ] })
3188
- ] })
3189
- ] }),
3190
- /* @__PURE__ */ jsxs("fieldset", { className: "border border-gray-200 rounded-md p-3", children: [
3191
- /* @__PURE__ */ jsx("legend", { className: "px-1 text-xs font-medium text-gray-600", children: "CalDAV (optional)" }),
3192
- /* @__PURE__ */ jsxs("label", { className: "block", children: [
3193
- /* @__PURE__ */ jsx("span", { className: "block text-[11px] text-gray-600 mb-1", children: "Server URL" }),
3194
- /* @__PURE__ */ jsx(
3195
- "input",
3196
- {
3197
- type: "url",
3198
- value: caldavUrl,
3199
- onChange: (e) => setCaldavUrl(e.target.value),
3200
- placeholder: "https://caldav.example.com/",
3201
- className: "w-full rounded border border-gray-300 px-2 py-1 text-sm"
3202
- }
3203
- )
3204
- ] }),
3205
- /* @__PURE__ */ jsx("p", { className: "text-[10px] text-gray-500 mt-1", children: "Leave blank to skip calendar setup." })
3206
- ] }),
3207
- (localError || error) && /* @__PURE__ */ jsx("p", { className: "text-sm text-red-600 bg-red-50 border border-red-200 rounded p-2", children: localError || error })
3208
- ] }),
3209
- /* @__PURE__ */ jsx(ModalActions, { children: isConnected ? /* @__PURE__ */ jsx(
3210
- "button",
3211
- {
3212
- onClick: logout,
3213
- disabled: loading,
3214
- className: "inline-flex items-center gap-1.5 text-red-600 border border-red-200 bg-white px-4 py-2 text-sm font-medium rounded-lg hover:bg-red-50 disabled:opacity-50",
3215
- children: loading ? "Disconnecting\u2026" : "Disconnect"
3216
- }
3217
- ) : /* @__PURE__ */ jsx(
3218
- "button",
3219
- {
3220
- type: "button",
3221
- onClick: (e) => handleSubmit(e),
3222
- disabled: loading,
3223
- className: "inline-flex items-center gap-2 bg-gray-900 text-white px-5 py-2 text-sm font-medium rounded-lg hover:bg-gray-800 disabled:opacity-50",
3224
- children: loading ? "Connecting\u2026" : "Connect"
3225
- }
3226
- ) })
3227
- ] });
3228
- }
3229
3012
  function useClickOutside(ref, onClose) {
3230
3013
  useEffect(() => {
3231
3014
  const handler = (e) => {
@@ -4693,14 +4476,11 @@ function TaskbarClock() {
4693
4476
  const rect = buttonRef.current?.getBoundingClientRect();
4694
4477
  const right = rect ? Math.max(8, window.innerWidth - rect.right) : 8;
4695
4478
  const posStyle = taskbarPos === "top" ? { right, top: (rect?.bottom ?? 0) + 4 } : { right, bottom: window.innerHeight - (rect?.top ?? 0) + 4 };
4696
- return /* @__PURE__ */ jsx("div", { className: "fixed z-[300] rounded-lg border border-gray-200 bg-white shadow-xl", style: posStyle, children: /* @__PURE__ */ jsx(CalendarPopup, { now, onOpenCalendar: () => {
4697
- openPage("/calendar");
4698
- setOpen(false);
4699
- } }) });
4479
+ return /* @__PURE__ */ jsx("div", { className: "fixed z-[300] rounded-lg border border-gray-200 bg-white shadow-xl", style: posStyle, children: /* @__PURE__ */ jsx(CalendarPopup, { now }) });
4700
4480
  })()
4701
4481
  ] });
4702
4482
  }
4703
- function CalendarPopup({ now, onOpenCalendar }) {
4483
+ function CalendarPopup({ now }) {
4704
4484
  const [month, setMonth] = useState(() => new Date(now.getFullYear(), now.getMonth(), 1));
4705
4485
  const monthLabel = month.toLocaleDateString(void 0, { month: "long", year: "numeric" });
4706
4486
  const fullDate = now.toLocaleDateString(void 0, { weekday: "long", month: "long", day: "numeric" });
@@ -4747,18 +4527,7 @@ function CalendarPopup({ now, onOpenCalendar }) {
4747
4527
  },
4748
4528
  i
4749
4529
  );
4750
- }) }),
4751
- /* @__PURE__ */ jsx("div", { className: "mt-2 pt-2 border-t border-gray-100", children: /* @__PURE__ */ jsxs(
4752
- "button",
4753
- {
4754
- onClick: onOpenCalendar,
4755
- className: "w-full text-[11px] font-medium text-gray-500 hover:text-blue-600 hover:bg-blue-50 rounded py-1 transition-colors flex items-center justify-center gap-1.5",
4756
- children: [
4757
- /* @__PURE__ */ jsx("svg", { className: "h-3.5 w-3.5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 1.8, children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5" }) }),
4758
- "Open Calendar"
4759
- ]
4760
- }
4761
- ) })
4530
+ }) })
4762
4531
  ] });
4763
4532
  }
4764
4533
  function TaskbarContextMenu({ x, y, position, size, onChangePosition, onChangeSize, onClose, onReportBug }) {
@@ -4826,14 +4595,12 @@ function Layout({
4826
4595
  categories = startMenuCategories,
4827
4596
  notifications,
4828
4597
  search,
4829
- taskbarTrayLeft,
4830
- showMail = true
4598
+ taskbarTrayLeft
4831
4599
  } = {}) {
4832
4600
  const bugReport = useBugReport();
4833
4601
  const { user, logout, hasAnyPerm } = useAuth();
4834
4602
  const { openPage, openEntity, openWindows } = useWindowManager();
4835
4603
  const [menuOpen, setMenuOpen] = useState(false);
4836
- useEmailUnreadCount();
4837
4604
  const isMobile = useIsMobile();
4838
4605
  const profile = user || {};
4839
4606
  useTheme();
@@ -4892,14 +4659,7 @@ function Layout({
4892
4659
  const [balloonDismissed, setBalloonDismissed] = useState(false);
4893
4660
  const [isFullscreen, setIsFullscreen] = useState(!!document.fullscreenElement);
4894
4661
  const [taskbarMenu, setTaskbarMenu] = useState(null);
4895
- const [mailConnectOpen, setMailConnectOpen] = useState(false);
4896
- const { isConnected: mailConnected } = useMailAuth();
4897
4662
  const [showLogout, setShowLogout] = useState(false);
4898
- useEffect(() => {
4899
- const handler = () => setMailConnectOpen(true);
4900
- window.addEventListener("open-mail-connect", handler);
4901
- return () => window.removeEventListener("open-mail-connect", handler);
4902
- }, []);
4903
4663
  const savePref = useCallback((key, value) => {
4904
4664
  savePrefs({ [key]: value });
4905
4665
  }, [savePrefs]);
@@ -5157,18 +4917,9 @@ function Layout({
5157
4917
  /* @__PURE__ */ jsx("div", { id: "taskbar-windows", className: `flex-1 flex ${isVerticalTaskbar ? "flex-col items-center gap-1 min-h-0 overflow-y-auto w-full" : "items-center gap-1.5 min-w-0 overflow-x-auto"}` }),
5158
4918
  /* @__PURE__ */ jsx("div", { className: isVerticalTaskbar ? "h-px w-6 bg-gray-300 my-1" : "w-px h-6 bg-gray-300 mx-1" }),
5159
4919
  isVerticalTaskbar ? (
5160
- /* Vertical: clock + mail-connect + bell evenly spaced */
4920
+ /* Vertical: clock + bell evenly spaced */
5161
4921
  /* @__PURE__ */ jsx("div", { className: "w-full px-2", children: /* @__PURE__ */ jsxs("div", { className: `flex items-center justify-center gap-2 ${taskbarPosition === "right" ? "flex-row-reverse" : ""}`, children: [
5162
4922
  /* @__PURE__ */ jsx(TaskbarClock, {}),
5163
- showMail && /* @__PURE__ */ jsx(
5164
- "button",
5165
- {
5166
- onClick: () => setMailConnectOpen(true),
5167
- title: mailConnected ? "Mail & Calendar Connected" : "Connect Mail & Calendar",
5168
- className: `shrink-0 rounded-md p-1.5 transition-colors ${mailConnected ? "hover:bg-green-50 text-green-600" : "text-gray-500 hover:text-gray-900 hover:bg-gray-200"}`,
5169
- children: /* @__PURE__ */ jsx("svg", { className: "h-3.5 w-3.5", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.8, children: /* @__PURE__ */ jsx("path", { d: "M3 7l9 6 9-6M5 5h14a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2z", strokeLinecap: "round", strokeLinejoin: "round" }) })
5170
- }
5171
- ),
5172
4923
  /* @__PURE__ */ jsx(TaskbarPomodoro, {}),
5173
4924
  taskbarTrayLeft,
5174
4925
  notifications && /* @__PURE__ */ jsx(NotificationBell, { ...notifications, popDirection: taskbarPosition === "right" ? "left" : "right" })
@@ -5179,15 +4930,6 @@ function Layout({
5179
4930
  /* @__PURE__ */ jsx(TaskbarPomodoro, {}),
5180
4931
  taskbarTrayLeft,
5181
4932
  notifications && /* @__PURE__ */ jsx(NotificationBell, { ...notifications }),
5182
- showMail && /* @__PURE__ */ jsx(
5183
- "button",
5184
- {
5185
- onClick: () => setMailConnectOpen(true),
5186
- title: mailConnected ? "Mail & Calendar Connected" : "Connect Mail & Calendar",
5187
- className: `shrink-0 rounded-md p-2 transition-colors ${mailConnected ? "hover:bg-green-50 text-green-600" : "text-gray-500 hover:text-gray-900 hover:bg-gray-200"}`,
5188
- children: /* @__PURE__ */ jsx("svg", { className: "h-4 w-4", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.8, children: /* @__PURE__ */ jsx("path", { d: "M3 7l9 6 9-6M5 5h14a2 2 0 012 2v10a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2z", strokeLinecap: "round", strokeLinejoin: "round" }) })
5189
- }
5190
- ),
5191
4933
  /* @__PURE__ */ jsx(TaskbarClock, {})
5192
4934
  ] })
5193
4935
  )
@@ -5216,8 +4958,7 @@ function Layout({
5216
4958
  }
5217
4959
  ),
5218
4960
  /* @__PURE__ */ jsx(GlobalSearch, { ...search }),
5219
- /* @__PURE__ */ jsx(ShortcutHelp, {}),
5220
- /* @__PURE__ */ jsx(MailConnectModal, { open: mailConnectOpen, onClose: () => setMailConnectOpen(false) })
4961
+ /* @__PURE__ */ jsx(ShortcutHelp, {})
5221
4962
  ] });
5222
4963
  }
5223
4964
  var THEMES = [
@@ -6633,6 +6374,6 @@ function useEditHotkey(callback) {
6633
6374
  }, [callback, isActive]);
6634
6375
  }
6635
6376
 
6636
- export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, BehaviorPanel, BugReportConfigProvider, BugReportDetail, BugReportProvider, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, Customization, DEV_BANNER_TEXT, Desktop, DesktopHostProvider, DevIndicator, ENTER, EntityList, GlobalSearch, HelpCenter, Layout, ListFooter, MOD, MailConnectModal, Markdown, NotificationBell, ResizableTable, SHIFT, ShellEntityFetcherProvider, ShortcutHelp, SoundsPanel, StartMenu, StatusBadge, StatusBadgeProvider, SystemPreferences, VERSION, WidgetManager, applyDevTitle, createWindowRegistry, isDevEnv, isMac, openBugReportDialog, reportBug, useBugReport, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useInfiniteScroll, useNewHotkey, useShellEntityFetcher, useSort, useTableNav };
6377
+ export { ALT, ALT_SHIFT_D, ALT_SHIFT_E, ALT_SHIFT_N, BehaviorPanel, BugReportConfigProvider, BugReportDetail, BugReportProvider, CMD_A, CMD_DOT, CMD_ENTER, CMD_K, CMD_S, Customization, DEV_BANNER_TEXT, Desktop, DesktopHostProvider, DevIndicator, ENTER, EntityList, GlobalSearch, HelpCenter, Layout, ListFooter, MOD, Markdown, NotificationBell, ResizableTable, SHIFT, ShellEntityFetcherProvider, ShortcutHelp, SoundsPanel, StartMenu, StatusBadge, StatusBadgeProvider, SystemPreferences, VERSION, WidgetManager, applyDevTitle, createWindowRegistry, isDevEnv, isMac, openBugReportDialog, reportBug, useBugReport, useClickOutside, useColumnConfig, useDesktopHost, useEditHotkey, useInfiniteScroll, useNewHotkey, useShellEntityFetcher, useSort, useTableNav };
6637
6378
  //# sourceMappingURL=index.js.map
6638
6379
  //# sourceMappingURL=index.js.map