@stacksjs/desktop 0.2.46 → 0.2.53
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 +14 -2
- package/dist/index.js.map +3 -3
- package/dist/types.d.ts +10 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2639,6 +2639,17 @@ function getDesktopConfig() {
|
|
|
2639
2639
|
function resetDesktopConfig() {
|
|
2640
2640
|
currentConfig = {};
|
|
2641
2641
|
}
|
|
2642
|
+
function prepareSidebarConfig(options) {
|
|
2643
|
+
if (!options.sidebarConfig)
|
|
2644
|
+
return;
|
|
2645
|
+
const config = { ...options.sidebarConfig };
|
|
2646
|
+
if (config.variant === "desktop") {
|
|
2647
|
+
config.material = config.material ?? "sidebar";
|
|
2648
|
+
config.backgroundEffect = config.backgroundEffect ?? "shimmer";
|
|
2649
|
+
config.allowsVibrancy = config.allowsVibrancy ?? true;
|
|
2650
|
+
}
|
|
2651
|
+
return config;
|
|
2652
|
+
}
|
|
2642
2653
|
var DEFAULT_SEARCH_PATHS = [
|
|
2643
2654
|
join(process3.env.HOME || "", ".bun/bin/craft"),
|
|
2644
2655
|
join(process3.env.HOME || "", "Code/Tools/craft/packages/zig/zig-out/bin/craft"),
|
|
@@ -2782,6 +2793,7 @@ async function openDevWindow(port, options = {}) {
|
|
|
2782
2793
|
const { createApp } = await import("ts-craft");
|
|
2783
2794
|
console.log("\u26A1 Opening native window via ts-craft\u2026");
|
|
2784
2795
|
const useSystemTray = !options.nativeSidebar;
|
|
2796
|
+
const sidebarConfig = prepareSidebarConfig(options);
|
|
2785
2797
|
const app = createApp({
|
|
2786
2798
|
url,
|
|
2787
2799
|
craftPath: getCraftBinaryPath(),
|
|
@@ -2796,7 +2808,7 @@ async function openDevWindow(port, options = {}) {
|
|
|
2796
2808
|
devTools: true,
|
|
2797
2809
|
nativeSidebar: options.nativeSidebar ?? false,
|
|
2798
2810
|
sidebarWidth: options.sidebarWidth ?? 260,
|
|
2799
|
-
sidebarConfig
|
|
2811
|
+
sidebarConfig
|
|
2800
2812
|
}
|
|
2801
2813
|
});
|
|
2802
2814
|
const id = `dev-window-${port}`;
|
|
@@ -6356,4 +6368,4 @@ export {
|
|
|
6356
6368
|
AVAILABLE_COMPONENTS
|
|
6357
6369
|
};
|
|
6358
6370
|
|
|
6359
|
-
//# debugId=
|
|
6371
|
+
//# debugId=D139D4159F3DC4BC64756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"import type { ModalButton, ModalOptions, ModalResult } from './types'\n\n/**\n * Modal Dialog Implementation\n *\n * Provides cross-platform modal dialog functionality.\n * Uses native dialogs when available, falls back to web-based modals.\n *\n * Features:\n * - Multiple dialog types (info, warning, error, success, question)\n * - Custom buttons with actions\n * - Promise-based API\n * - Keyboard support (Enter/Escape)\n * - Accessible by default\n */\n\n// =============================================================================\n// Types\n// =============================================================================\n\ninterface ModalState {\n id: string\n options: ModalOptions\n resolve: (result: ModalResult) => void\n element?: HTMLElement\n}\n\n// =============================================================================\n// Platform Detection\n// =============================================================================\n\n/**\n * Check if native dialog APIs are available\n */\nfunction hasNativeDialogSupport(): boolean {\n // Future: Check for @stacksjs/zyte bindings\n return false\n}\n\n/**\n * Check if running in browser environment\n */\nfunction isBrowser(): boolean {\n return typeof window !== 'undefined' && typeof document !== 'undefined'\n}\n\n// =============================================================================\n// Modal Manager\n// =============================================================================\n\n// Active modal stack\nconst activeModals: ModalState[] = []\n\n/**\n * Generate a unique modal ID\n */\nfunction generateModalId(): string {\n return `modal-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`\n}\n\n/**\n * Get icon for modal type\n */\nfunction getModalIcon(type: ModalOptions['type']): string {\n switch (type) {\n case 'info':\n return 'ℹ'\n case 'warning':\n return '⚠'\n case 'error':\n return '✖'\n case 'success':\n return '✔'\n case 'question':\n return '❓'\n default:\n return 'ℹ'\n }\n}\n\n/**\n * Get default buttons for modal type\n */\nfunction getDefaultButtons(type: ModalOptions['type']): ModalButton[] {\n if (type === 'question') {\n return [\n { label: 'No', style: 'default' },\n { label: 'Yes', style: 'primary' },\n ]\n }\n return [{ label: 'OK', style: 'primary' }]\n}\n\n/**\n * Create modal HTML for web-based implementation\n */\nfunction createModalHTML(state: ModalState): string {\n const { options } = state\n const icon = getModalIcon(options.type)\n const buttons = options.buttons || getDefaultButtons(options.type)\n const typeClass = options.type || 'info'\n\n let buttonsHtml = ''\n buttons.forEach((btn, index) => {\n const styleClass = btn.style === 'destructive' ? 'destructive' : btn.style === 'primary' ? 'primary' : 'default'\n const autoFocus = index === (options.defaultButton ?? buttons.length - 1) ? 'autofocus' : ''\n buttonsHtml += `<button class=\"stx-modal-btn ${styleClass}\" data-index=\"${index}\" ${autoFocus}>${btn.label}</button>`\n })\n\n return `\n <div class=\"stx-modal-overlay\" data-modal-id=\"${state.id}\">\n <div class=\"stx-modal ${typeClass}\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"${state.id}-title\">\n <div class=\"stx-modal-icon\">${icon}</div>\n <div class=\"stx-modal-content\">\n ${options.title ? `<h2 id=\"${state.id}-title\" class=\"stx-modal-title\">${escapeHtml(options.title)}</h2>` : ''}\n <p class=\"stx-modal-message\">${escapeHtml(options.message)}</p>\n </div>\n <div class=\"stx-modal-buttons\">${buttonsHtml}</div>\n </div>\n </div>\n `\n}\n\n/**\n * Escape HTML to prevent XSS\n */\nfunction escapeHtml(str: string): string {\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n/**\n * Close a modal and resolve with result\n */\nfunction closeModal(state: ModalState, buttonIndex: number, cancelled: boolean = false): void {\n // Remove from active modals\n const index = activeModals.indexOf(state)\n if (index > -1) {\n activeModals.splice(index, 1)\n }\n\n // Remove DOM element if exists\n if (state.element && isBrowser()) {\n state.element.remove()\n }\n\n // Call button action if provided\n const buttons = state.options.buttons || getDefaultButtons(state.options.type)\n const button = buttons[buttonIndex]\n if (button?.action) {\n button.action()\n }\n\n // Resolve promise\n state.resolve({ buttonIndex, cancelled })\n}\n\n/**\n * Show a native modal dialog\n *\n * @param options - Modal configuration options\n * @returns Promise resolving to the modal result\n *\n * @example\n * ```typescript\n * const result = await showModal({\n * title: 'Confirm Action',\n * message: 'Are you sure you want to proceed?',\n * type: 'question',\n * buttons: [\n * { label: 'Cancel', style: 'default' },\n * { label: 'Confirm', style: 'primary' },\n * ],\n * })\n *\n * if (result.buttonIndex === 1) {\n * // User clicked Confirm\n * }\n * ```\n */\nexport async function showModal(options: ModalOptions): Promise<ModalResult> {\n const hasNative = hasNativeDialogSupport()\n const id = generateModalId()\n\n return new Promise((resolve) => {\n const state: ModalState = {\n id,\n options,\n resolve,\n }\n\n activeModals.push(state)\n\n if (hasNative) {\n // Future: Use native dialog\n console.log(`[stx-modal] Showing native modal: ${options.title || 'Modal'}`)\n // For now, immediately resolve\n setTimeout(() => {\n closeModal(state, options.defaultButton ?? 0, false)\n }, 0)\n }\n else if (isBrowser()) {\n // Web-based implementation\n try {\n const container = document.createElement('div')\n container.innerHTML = createModalHTML(state)\n const overlay = container.firstElementChild as HTMLElement\n\n if (!overlay) {\n // Fallback to console if DOM manipulation fails\n console.log(`[stx-modal] ${options.type?.toUpperCase() || 'INFO'}: ${options.title || 'Modal'}`)\n console.log(`[stx-modal] ${options.message}`)\n setTimeout(() => {\n closeModal(state, options.defaultButton ?? 0, false)\n }, 0)\n return\n }\n\n state.element = overlay\n\n try {\n document.body.appendChild(overlay)\n }\n catch {\n // Fallback to console if appendChild fails (e.g., in very-happy-dom)\n console.log(`[stx-modal] ${options.type?.toUpperCase() || 'INFO'}: ${options.title || 'Modal'}`)\n console.log(`[stx-modal] ${options.message}`)\n setTimeout(() => {\n closeModal(state, options.defaultButton ?? 0, false)\n }, 0)\n return\n }\n\n // Handle button clicks\n try {\n overlay.querySelectorAll('.stx-modal-btn').forEach((btn) => {\n btn.addEventListener('click', () => {\n const index = Number.parseInt((btn as HTMLElement).dataset.index || '0', 10)\n closeModal(state, index, false)\n })\n })\n }\n catch {\n // Ignore querySelectorAll errors in very-happy-dom\n }\n\n // Handle overlay click (close on backdrop click)\n try {\n overlay.addEventListener('click', (e) => {\n if (e.target === overlay) {\n const cancelIndex = options.cancelButton ?? 0\n closeModal(state, cancelIndex, true)\n }\n })\n }\n catch {\n // Ignore addEventListener errors\n }\n\n // Handle keyboard\n try {\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n const cancelIndex = options.cancelButton ?? 0\n closeModal(state, cancelIndex, true)\n document.removeEventListener('keydown', handleKeydown)\n }\n else if (e.key === 'Enter') {\n const defaultIndex = options.defaultButton ?? ((options.buttons || getDefaultButtons(options.type)).length - 1)\n closeModal(state, defaultIndex, false)\n document.removeEventListener('keydown', handleKeydown)\n }\n }\n document.addEventListener('keydown', handleKeydown)\n }\n catch {\n // Ignore keyboard event errors\n }\n\n // Focus first button\n try {\n const firstButton = overlay.querySelector('.stx-modal-btn[autofocus]') as HTMLElement\n if (firstButton) {\n firstButton.focus()\n }\n }\n catch {\n // Ignore focus errors\n }\n }\n catch {\n // Fallback to console if any DOM operation fails\n console.log(`[stx-modal] ${options.type?.toUpperCase() || 'INFO'}: ${options.title || 'Modal'}`)\n console.log(`[stx-modal] ${options.message}`)\n setTimeout(() => {\n closeModal(state, options.defaultButton ?? 0, false)\n }, 0)\n }\n }\n else {\n // Node.js environment - console fallback\n console.log(`[stx-modal] ${options.type?.toUpperCase() || 'INFO'}: ${options.title || 'Modal'}`)\n console.log(`[stx-modal] ${options.message}`)\n const buttons = options.buttons || getDefaultButtons(options.type)\n console.log(`[stx-modal] Buttons: ${buttons.map(b => b.label).join(', ')}`)\n\n // Auto-resolve with default button\n setTimeout(() => {\n closeModal(state, options.defaultButton ?? 0, false)\n }, 0)\n }\n })\n}\n\n/**\n * Show an info modal\n */\nexport async function showInfoModal(title: string, message: string): Promise<ModalResult> {\n return showModal({ title, message, type: 'info' })\n}\n\n/**\n * Show a warning modal\n */\nexport async function showWarningModal(title: string, message: string): Promise<ModalResult> {\n return showModal({ title, message, type: 'warning' })\n}\n\n/**\n * Show an error modal\n */\nexport async function showErrorModal(title: string, message: string): Promise<ModalResult> {\n return showModal({ title, message, type: 'error' })\n}\n\n/**\n * Show a success modal\n */\nexport async function showSuccessModal(title: string, message: string): Promise<ModalResult> {\n return showModal({ title, message, type: 'success' })\n}\n\n/**\n * Show a question/confirmation modal\n */\nexport async function showQuestionModal(title: string, message: string): Promise<ModalResult> {\n return showModal({\n title,\n message,\n type: 'question',\n buttons: [\n { label: 'No', style: 'default' },\n { label: 'Yes', style: 'primary' },\n ],\n defaultButton: 1,\n cancelButton: 0,\n })\n}\n\n/**\n * Show a confirm dialog (alias for showQuestionModal)\n */\nexport async function confirm(message: string, title: string = 'Confirm'): Promise<boolean> {\n const result = await showQuestionModal(title, message)\n return result.buttonIndex === 1\n}\n\n/**\n * Show an alert dialog (single OK button)\n */\nexport async function alert(message: string, title: string = 'Alert'): Promise<void> {\n await showInfoModal(title, message)\n}\n\n/**\n * Show a prompt dialog with input field\n */\nexport async function prompt(message: string, defaultValue: string = '', title: string = 'Input'): Promise<string | null> {\n // This would need custom implementation for input field\n // For now, use console in Node.js or native prompt in browser\n if (isBrowser() && typeof window.prompt === 'function') {\n return window.prompt(message, defaultValue)\n }\n\n console.log(`[stx-modal] PROMPT: ${title}`)\n console.log(`[stx-modal] ${message}`)\n console.log(`[stx-modal] Default: ${defaultValue}`)\n\n // In Node.js, would need readline or similar\n return defaultValue\n}\n\n/**\n * Get number of active modals\n */\nexport function getActiveModalCount(): number {\n return activeModals.length\n}\n\n/**\n * Close all active modals\n */\nexport function closeAllModals(): void {\n // Close in reverse order (top-most first)\n while (activeModals.length > 0) {\n const state = activeModals[activeModals.length - 1]\n closeModal(state, 0, true)\n }\n}\n\n/**\n * CSS styles for web-based modals\n */\nexport const MODAL_STYLES = `\n.stx-modal-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10000;\n animation: stx-modal-fade-in 0.15s ease-out;\n}\n\n@keyframes stx-modal-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n.stx-modal {\n background: #fff;\n border-radius: 12px;\n padding: 24px;\n max-width: 400px;\n width: 90%;\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);\n animation: stx-modal-slide-up 0.2s ease-out;\n}\n\n@keyframes stx-modal-slide-up {\n from { transform: translateY(20px); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n}\n\n@media (prefers-color-scheme: dark) {\n .stx-modal {\n background: #2d2d2d;\n color: #fff;\n }\n}\n\n.stx-modal-icon {\n font-size: 48px;\n text-align: center;\n margin-bottom: 16px;\n}\n\n.stx-modal.info .stx-modal-icon { color: #3498db; }\n.stx-modal.warning .stx-modal-icon { color: #f39c12; }\n.stx-modal.error .stx-modal-icon { color: #e74c3c; }\n.stx-modal.success .stx-modal-icon { color: #27ae60; }\n.stx-modal.question .stx-modal-icon { color: #9b59b6; }\n\n.stx-modal-content {\n text-align: center;\n margin-bottom: 24px;\n}\n\n.stx-modal-title {\n margin: 0 0 8px;\n font-size: 20px;\n font-weight: 600;\n}\n\n.stx-modal-message {\n margin: 0;\n color: #666;\n line-height: 1.5;\n}\n\n@media (prefers-color-scheme: dark) {\n .stx-modal-message { color: #aaa; }\n}\n\n.stx-modal-buttons {\n display: flex;\n gap: 8px;\n justify-content: center;\n}\n\n.stx-modal-btn {\n padding: 10px 24px;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n border: none;\n transition: background 0.15s, transform 0.1s;\n}\n\n.stx-modal-btn:hover {\n transform: translateY(-1px);\n}\n\n.stx-modal-btn:active {\n transform: translateY(0);\n}\n\n.stx-modal-btn.default {\n background: #e0e0e0;\n color: #333;\n}\n\n.stx-modal-btn.default:hover {\n background: #d0d0d0;\n}\n\n.stx-modal-btn.primary {\n background: #3498db;\n color: #fff;\n}\n\n.stx-modal-btn.primary:hover {\n background: #2980b9;\n}\n\n.stx-modal-btn.destructive {\n background: #e74c3c;\n color: #fff;\n}\n\n.stx-modal-btn.destructive:hover {\n background: #c0392b;\n}\n\n@media (prefers-color-scheme: dark) {\n .stx-modal-btn.default {\n background: #444;\n color: #fff;\n }\n .stx-modal-btn.default:hover {\n background: #555;\n }\n}\n`\n",
|
|
8
8
|
"// @ts-nocheck - Skip type checking due to menu item type constraints\nimport type { SystemTrayInstance, SystemTrayMenuItem, SystemTrayOptions } from './types'\nimport process from 'node:process'\n\n/**\n * System Tray / Menubar Implementation\n *\n * Provides cross-platform system tray functionality using Craft's native APIs.\n *\n * ## Architecture\n *\n * When running inside a Craft native window, tray operations use the\n * `window.craft.tray` bridge to communicate with the native process.\n *\n * When running outside Craft (e.g., in browser or Node.js), provides a\n * web-based simulation for development and testing.\n *\n * ## Usage in Craft\n *\n * The tray is automatically enabled when you pass `systemTray: true` to\n * the window options in Craft. This module provides additional TypeScript\n * APIs for programmatic control.\n *\n * ```typescript\n * // Create tray via @stacksjs/desktop\n * const tray = await createSystemTray({\n * tooltip: 'My App',\n * menu: [\n * { label: 'Show Window', onClick: () => window.craft.window.show() },\n * { type: 'separator' },\n * { label: 'Quit', onClick: () => window.craft.app.quit() },\n * ],\n * })\n *\n * // Or use Craft's bridge directly in your HTML/JS:\n * window.craft.tray.setTitle('My App')\n * window.craft.tray.setMenu([...])\n * ```\n */\n\n// =============================================================================\n// Types\n// =============================================================================\n\ninterface TrayState {\n icon: string\n tooltip: string\n menu: SystemTrayMenuItem[]\n visible: boolean\n}\n\n/**\n * Menu item format expected by Craft's tray bridge\n */\ninterface CraftMenuItemDefinition {\n id: string\n label: string\n type?: 'normal' | 'separator' | 'checkbox' | 'radio'\n checked?: boolean\n enabled?: boolean\n action?: string\n shortcut?: string\n submenu?: CraftMenuItemDefinition[]\n}\n\n// =============================================================================\n// Platform Detection\n// =============================================================================\n\n/**\n * Detect the current platform\n */\nfunction getPlatform(): 'darwin' | 'linux' | 'win32' | 'unknown' {\n if (process.platform) {\n return process.platform as 'darwin' | 'linux' | 'win32' | 'unknown'\n }\n return 'unknown'\n}\n\n/**\n * Check if running inside a Craft native window\n */\nfunction isInCraftWindow(): boolean {\n if (typeof window !== 'undefined' && (window as any).craft?.tray) {\n return true\n }\n return false\n}\n\n// =============================================================================\n// Menu Conversion\n// =============================================================================\n\n/**\n * Convert SystemTrayMenuItem to Craft's menu format\n */\nfunction convertMenuItem(item: SystemTrayMenuItem, index: number): CraftMenuItemDefinition {\n if (item.type === 'separator') {\n return {\n id: `sep-${index}`,\n label: '',\n type: 'separator',\n }\n }\n\n const menuItem: CraftMenuItemDefinition = {\n id: `item-${index}-${item.label.replace(/\\s+/g, '-').toLowerCase()}`,\n label: item.label,\n type: item.type || 'normal',\n enabled: item.enabled !== false,\n }\n\n if (item.accelerator) {\n menuItem.shortcut = item.accelerator\n }\n\n if (item.type === 'checkbox') {\n menuItem.checked = item.checked || false\n }\n\n if (item.type === 'submenu' && item.submenu) {\n menuItem.submenu = item.submenu.map((subItem, subIndex) =>\n convertMenuItem(subItem, subIndex),\n )\n }\n\n return menuItem\n}\n\n/**\n * Convert array of SystemTrayMenuItems to Craft format\n */\nfunction convertMenuItems(items: SystemTrayMenuItem[]): CraftMenuItemDefinition[] {\n return items.map((item, index) => convertMenuItem(item, index))\n}\n\n// =============================================================================\n// Menu Rendering (Web Simulation)\n// =============================================================================\n\n/**\n * Render a menu item to HTML (for web-based simulation)\n */\nfunction renderMenuItem(item: SystemTrayMenuItem, level: number = 0): string {\n if (item.type === 'separator') {\n return '<hr class=\"stx-tray-separator\" />'\n }\n\n const indent = ' '.repeat(level)\n const disabled = item.enabled === false ? 'disabled' : ''\n const checked = item.checked ? '✓ ' : ''\n const accelerator = item.accelerator ? `<span class=\"accelerator\">${item.accelerator}</span>` : ''\n\n let html = `${indent}<div class=\"stx-tray-item ${disabled}\" data-action=\"${item.label}\">`\n html += `<span class=\"label\">${checked}${item.label}</span>${accelerator}`\n\n if (item.type === 'submenu' && item.submenu) {\n html += '<span class=\"arrow\">▸</span>'\n html += '<div class=\"stx-tray-submenu\">'\n for (const subItem of item.submenu) {\n html += renderMenuItem(subItem, level + 1)\n }\n html += '</div>'\n }\n\n html += '</div>'\n return html\n}\n\n/**\n * Render the full tray menu to HTML\n */\nfunction renderTrayMenu(menu: SystemTrayMenuItem[]): string {\n let html = '<div class=\"stx-tray-menu\">'\n for (const item of menu) {\n html += renderMenuItem(item)\n }\n html += '</div>'\n return html\n}\n\n// =============================================================================\n// Tray Manager\n// =============================================================================\n\n// Active tray instances\nconst activeTrayInstances = new Map<string, { state: TrayState, handlers: Map<string, () => void> }>()\n\n/**\n * Generate a unique tray ID\n */\nfunction generateTrayId(): string {\n return `tray-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`\n}\n\n/**\n * Set up event listener for tray menu actions (Craft bridge)\n */\nlet craftTrayListenerSetup = false\n\nfunction setupCraftTrayListener(): void {\n if (craftTrayListenerSetup || typeof window === 'undefined') return\n\n window.addEventListener('craft:tray:menu', ((event: CustomEvent) => {\n const { action } = event.detail\n // Find the handler for this action\n for (const instance of activeTrayInstances.values()) {\n const handler = instance.handlers.get(action)\n if (handler) {\n handler()\n break\n }\n }\n }) as EventListener)\n\n craftTrayListenerSetup = true\n}\n\n/**\n * Create a system tray/menubar application\n *\n * When running inside a Craft native window, this creates a real native tray.\n * Otherwise, it creates a simulated tray for development purposes.\n *\n * @param options - Tray configuration options\n * @returns System tray instance\n *\n * @example\n * ```typescript\n * const tray = await createSystemTray({\n * icon: './icon.png',\n * tooltip: 'My App',\n * menu: [\n * { label: 'Show Window', onClick: () => stxWindow.show() },\n * { type: 'separator' },\n * { label: 'Quit', onClick: () => stxWindow.quit() },\n * ],\n * })\n * ```\n */\nexport async function createSystemTray(options: SystemTrayOptions = {}): Promise<SystemTrayInstance> {\n const id = generateTrayId()\n const platform = getPlatform()\n const inCraft = isInCraftWindow()\n\n // Initialize state\n const state: TrayState = {\n icon: options.icon || '',\n tooltip: options.tooltip || 'stx Application',\n menu: options.menu || [],\n visible: true,\n }\n\n // Store click handlers\n const handlers = new Map<string, () => void>()\n for (const item of options.menu || []) {\n if (item.type !== 'separator' && item.onClick) {\n handlers.set(item.label, item.onClick)\n }\n // Handle submenu items\n if (item.type === 'submenu' && item.submenu) {\n for (const subItem of item.submenu) {\n if (subItem.type !== 'separator' && subItem.onClick) {\n handlers.set(subItem.label, subItem.onClick)\n }\n }\n }\n }\n\n // Store instance\n activeTrayInstances.set(id, { state, handlers })\n\n // Platform-specific implementation\n if (inCraft) {\n setupCraftTrayListener()\n\n // Use Craft's native tray APIs\n const craftWindow = window as any\n try {\n // Set the tray title/tooltip\n if (state.tooltip) {\n await craftWindow.craft.tray.setTitle({ title: state.tooltip })\n await craftWindow.craft.tray.setTooltip({ tooltip: state.tooltip })\n }\n\n // Set the icon if provided\n if (state.icon) {\n await craftWindow.craft.tray.setIcon({ icon: state.icon })\n }\n\n // Set the menu\n const craftMenu = convertMenuItems(state.menu)\n await craftWindow.craft.tray.setMenu({ items: craftMenu })\n\n console.log(`[stx-tray] Native tray created for ${platform}`)\n }\n catch (error) {\n console.warn('[stx-tray] Failed to create native tray:', error)\n }\n }\n else {\n // Web-based simulation for development\n console.log(`[stx-tray] Created simulated tray (not in Craft window)`)\n console.log(`[stx-tray] ID: ${id}`)\n console.log(`[stx-tray] Tooltip: ${state.tooltip}`)\n console.log(`[stx-tray] Menu items: ${state.menu.length}`)\n }\n\n // Create instance methods\n const instance: SystemTrayInstance = {\n id,\n\n setIcon: (icon: string) => {\n state.icon = icon\n if (inCraft) {\n const craftWindow = window as any\n craftWindow.craft.tray.setIcon({ icon }).catch((e: Error) => {\n console.warn('[stx-tray] Failed to set icon:', e)\n })\n }\n console.log(`[stx-tray:${id}] Icon updated`)\n },\n\n setTooltip: (tooltip: string) => {\n state.tooltip = tooltip\n if (inCraft) {\n const craftWindow = window as any\n craftWindow.craft.tray.setTooltip({ tooltip }).catch((e: Error) => {\n console.warn('[stx-tray] Failed to set tooltip:', e)\n })\n }\n console.log(`[stx-tray:${id}] Tooltip: ${tooltip}`)\n },\n\n setMenu: (menu: SystemTrayMenuItem[]) => {\n state.menu = menu\n // Update handlers\n handlers.clear()\n for (const item of menu) {\n if (item.type !== 'separator' && item.onClick) {\n handlers.set(item.label, item.onClick)\n }\n if (item.type === 'submenu' && item.submenu) {\n for (const subItem of item.submenu) {\n if (subItem.type !== 'separator' && subItem.onClick) {\n handlers.set(subItem.label, subItem.onClick)\n }\n }\n }\n }\n\n if (inCraft) {\n const craftWindow = window as any\n const craftMenu = convertMenuItems(menu)\n craftWindow.craft.tray.setMenu({ items: craftMenu }).catch((e: Error) => {\n console.warn('[stx-tray] Failed to set menu:', e)\n })\n }\n console.log(`[stx-tray:${id}] Menu updated (${menu.length} items)`)\n },\n\n destroy: () => {\n state.visible = false\n activeTrayInstances.delete(id)\n if (inCraft) {\n const craftWindow = window as any\n craftWindow.craft.tray.destroy?.().catch((e: Error) => {\n console.warn('[stx-tray] Failed to destroy tray:', e)\n })\n }\n console.log(`[stx-tray:${id}] Destroyed`)\n },\n }\n\n return instance\n}\n\n/**\n * Create a menubar application (alias for createSystemTray)\n */\nexport const createMenubar: typeof createSystemTray = createSystemTray\n\n/**\n * Get all active tray instances\n */\nexport function getActiveTrayInstances(): string[] {\n return Array.from(activeTrayInstances.keys())\n}\n\n/**\n * Get a tray instance by ID\n */\nexport function getTrayInstance(id: string): SystemTrayInstance | null {\n const instance = activeTrayInstances.get(id)\n if (!instance)\n return null\n\n const inCraft = isInCraftWindow()\n\n return {\n id,\n setIcon: (icon: string) => {\n instance.state.icon = icon\n if (inCraft) {\n const craftWindow = window as any\n craftWindow.craft.tray.setIcon({ icon }).catch(() => {})\n }\n },\n setTooltip: (tooltip: string) => {\n instance.state.tooltip = tooltip\n if (inCraft) {\n const craftWindow = window as any\n craftWindow.craft.tray.setTooltip({ tooltip }).catch(() => {})\n }\n },\n setMenu: (menu: SystemTrayMenuItem[]) => {\n instance.state.menu = menu\n if (inCraft) {\n const craftWindow = window as any\n const craftMenu = convertMenuItems(menu)\n craftWindow.craft.tray.setMenu({ items: craftMenu }).catch(() => {})\n }\n },\n destroy: () => {\n activeTrayInstances.delete(id)\n if (inCraft) {\n const craftWindow = window as any\n craftWindow.craft.tray.destroy?.().catch(() => {})\n }\n },\n }\n}\n\n/**\n * Trigger a menu item action by label\n * Useful for testing and programmatic control\n */\nexport function triggerTrayAction(trayId: string, actionLabel: string): boolean {\n const instance = activeTrayInstances.get(trayId)\n if (!instance)\n return false\n\n const handler = instance.handlers.get(actionLabel)\n if (handler) {\n handler()\n return true\n }\n return false\n}\n\n/**\n * Get the HTML for a simulated tray menu\n * Useful for web-based testing and development\n */\nexport function getSimulatedTrayHTML(trayId: string): string | null {\n const instance = activeTrayInstances.get(trayId)\n if (!instance)\n return null\n\n return renderTrayMenu(instance.state.menu)\n}\n\n// =============================================================================\n// Bridge Script Generator\n// =============================================================================\n\n/**\n * Generate a JavaScript snippet for tray control from inside a webview.\n * This provides convenient wrappers around the Craft tray bridge.\n */\nexport function getTrayBridgeScript(): string {\n return `\n// STX Desktop Tray Bridge\n// Provides convenient wrappers around window.craft.tray APIs\nwindow.stxTray = {\n setTitle: (title) => window.craft?.tray?.setTitle({ title }),\n setTooltip: (tooltip) => window.craft?.tray?.setTooltip({ tooltip }),\n setIcon: (icon) => window.craft?.tray?.setIcon({ icon }),\n setMenu: (items) => window.craft?.tray?.setMenu({ items }),\n destroy: () => window.craft?.tray?.destroy(),\n\n // Check if tray is available\n isAvailable: () => typeof window.craft?.tray !== 'undefined',\n};\n`\n}\n\n// =============================================================================\n// CSS Styles\n// =============================================================================\n\n/**\n * CSS styles for the simulated tray menu\n */\nexport const TRAY_MENU_STYLES = `\n.stx-tray-menu {\n background: #2d2d2d;\n border-radius: 8px;\n padding: 4px 0;\n min-width: 200px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n font-size: 13px;\n color: #fff;\n}\n\n.stx-tray-item {\n padding: 6px 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n position: relative;\n}\n\n.stx-tray-item:hover {\n background: #3d3d3d;\n}\n\n.stx-tray-item.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.stx-tray-item .label {\n flex: 1;\n}\n\n.stx-tray-item .accelerator {\n margin-left: 20px;\n opacity: 0.6;\n font-size: 12px;\n}\n\n.stx-tray-item .arrow {\n margin-left: 8px;\n font-size: 10px;\n}\n\n.stx-tray-separator {\n margin: 4px 0;\n border: none;\n border-top: 1px solid #444;\n}\n\n.stx-tray-submenu {\n position: absolute;\n left: 100%;\n top: 0;\n background: #2d2d2d;\n border-radius: 8px;\n padding: 4px 0;\n min-width: 150px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);\n display: none;\n}\n\n.stx-tray-item:hover > .stx-tray-submenu {\n display: block;\n}\n`\n",
|
|
9
9
|
"/**\n * Native Dialog Integration\n *\n * Provides native file dialogs, message boxes, and other system dialogs\n * using Craft's Dialog Bridge APIs.\n *\n * When running inside a Craft native window, these dialogs use the native\n * OS dialogs (NSOpenPanel on macOS, etc.). When running in a browser,\n * they fall back to web alternatives where possible.\n */\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Options for opening a file dialog\n */\nexport interface OpenDialogOptions {\n /** Dialog title */\n title?: string\n /** Default path to open */\n defaultPath?: string\n /** Button label (e.g., \"Open\", \"Select\") */\n buttonLabel?: string\n /** File type filters */\n filters?: FileFilter[]\n /** Allow selecting multiple files */\n multiSelections?: boolean\n /** Show hidden files */\n showHiddenFiles?: boolean\n /** Allow selecting directories */\n canChooseDirectories?: boolean\n /** Allow selecting files */\n canChooseFiles?: boolean\n /** Allow creating new directories */\n canCreateDirectories?: boolean\n}\n\n/**\n * Options for saving a file dialog\n */\nexport interface SaveDialogOptions {\n /** Dialog title */\n title?: string\n /** Default path/filename */\n defaultPath?: string\n /** Button label (e.g., \"Save\") */\n buttonLabel?: string\n /** File type filters */\n filters?: FileFilter[]\n /** Show hidden files */\n showHiddenFiles?: boolean\n /** Allow creating new directories */\n canCreateDirectories?: boolean\n}\n\n/**\n * File type filter\n */\nexport interface FileFilter {\n /** Filter name (e.g., \"Images\") */\n name: string\n /** File extensions (e.g., [\"png\", \"jpg\", \"gif\"]) */\n extensions: string[]\n}\n\n/**\n * Result from open dialog\n */\nexport interface OpenDialogResult {\n /** Whether the dialog was cancelled */\n canceled: boolean\n /** Selected file paths */\n filePaths: string[]\n}\n\n/**\n * Result from save dialog\n */\nexport interface SaveDialogResult {\n /** Whether the dialog was cancelled */\n canceled: boolean\n /** Selected file path */\n filePath?: string\n}\n\n/**\n * Options for message box dialog\n */\nexport interface MessageBoxOptions {\n /** Message box type */\n type?: 'none' | 'info' | 'warning' | 'error' | 'question'\n /** Dialog title */\n title?: string\n /** Main message */\n message: string\n /** Secondary detail text */\n detail?: string\n /** Button labels */\n buttons?: string[]\n /** Index of default button */\n defaultButton?: number\n /** Index of cancel button */\n cancelButton?: number\n}\n\n/**\n * Result from message box\n */\nexport interface MessageBoxResult {\n /** Index of button clicked */\n response: number\n}\n\n/**\n * Options for color picker dialog\n */\nexport interface ColorPickerOptions {\n /** Initial color (hex format) */\n color?: string\n /** Show alpha/opacity control */\n showAlpha?: boolean\n}\n\n/**\n * Result from color picker\n */\nexport interface ColorPickerResult {\n /** Whether the dialog was cancelled */\n canceled: boolean\n /** Selected color in hex format */\n color?: string\n}\n\n// =============================================================================\n// Platform Detection\n// =============================================================================\n\n/**\n * Check if running inside a Craft native window\n */\nfunction isInCraftWindow(): boolean {\n if (typeof window !== 'undefined' && (window as any).craft?.dialog) {\n return true\n }\n return false\n}\n\n// =============================================================================\n// Native Dialog Functions\n// =============================================================================\n\n/**\n * Show a native file open dialog\n *\n * When running in Craft, uses the native OS file picker.\n * In browser, falls back to HTML file input.\n *\n * @param options - Dialog options\n * @returns Promise resolving to selected files or cancellation\n *\n * @example\n * ```typescript\n * const result = await showOpenDialog({\n * title: 'Select an image',\n * filters: [{ name: 'Images', extensions: ['png', 'jpg', 'gif'] }],\n * multiSelections: true,\n * })\n *\n * if (!result.canceled) {\n * console.log('Selected:', result.filePaths)\n * }\n * ```\n */\nexport async function showOpenDialog(options: OpenDialogOptions = {}): Promise<OpenDialogResult> {\n if (isInCraftWindow()) {\n // Use Craft's native dialog\n const craftWindow = window as any\n try {\n return await craftWindow.craft.dialog.showOpenDialog(options)\n }\n catch (error) {\n console.warn('[stx-dialog] Failed to show native open dialog:', error)\n // Fall through to web fallback\n }\n }\n\n // Web fallback: use file input\n return new Promise((resolve) => {\n if (typeof document === 'undefined') {\n resolve({ canceled: true, filePaths: [] })\n return\n }\n\n const input = document.createElement('input')\n input.type = 'file'\n input.multiple = options.multiSelections ?? false\n\n // Set accept types from filters\n if (options.filters?.length) {\n const extensions = options.filters.flatMap(f => f.extensions.map(e => `.${e}`))\n input.accept = extensions.join(',')\n }\n\n // Directory selection (limited browser support)\n if (options.canChooseDirectories && !options.canChooseFiles) {\n (input as any).webkitdirectory = true\n }\n\n input.onchange = () => {\n const files = Array.from(input.files || [])\n if (files.length === 0) {\n resolve({ canceled: true, filePaths: [] })\n }\n else {\n // Note: In browsers, we can only get file names, not full paths\n const filePaths = files.map(f => f.name)\n resolve({ canceled: false, filePaths })\n }\n }\n\n input.oncancel = () => {\n resolve({ canceled: true, filePaths: [] })\n }\n\n input.click()\n })\n}\n\n/**\n * Show a native file save dialog\n *\n * When running in Craft, uses the native OS save dialog.\n * In browser, this is limited to triggering downloads.\n *\n * @param options - Dialog options\n * @returns Promise resolving to selected path or cancellation\n *\n * @example\n * ```typescript\n * const result = await showSaveDialog({\n * title: 'Save document',\n * defaultPath: 'document.txt',\n * filters: [{ name: 'Text Files', extensions: ['txt'] }],\n * })\n *\n * if (!result.canceled && result.filePath) {\n * console.log('Save to:', result.filePath)\n * }\n * ```\n */\nexport async function showSaveDialog(options: SaveDialogOptions = {}): Promise<SaveDialogResult> {\n if (isInCraftWindow()) {\n // Use Craft's native dialog\n const craftWindow = window as any\n try {\n return await craftWindow.craft.dialog.showSaveDialog(options)\n }\n catch (error) {\n console.warn('[stx-dialog] Failed to show native save dialog:', error)\n }\n }\n\n // Web fallback: use showSaveFilePicker if available (modern browsers)\n if (typeof window !== 'undefined' && 'showSaveFilePicker' in window) {\n try {\n const fileTypes = options.filters?.map(f => ({\n description: f.name,\n accept: {\n '*/*': f.extensions.map(e => `.${e}`),\n },\n }))\n\n const handle = await (window as any).showSaveFilePicker({\n suggestedName: options.defaultPath,\n types: fileTypes,\n })\n\n return { canceled: false, filePath: handle.name }\n }\n catch (error) {\n // User cancelled or API not supported\n return { canceled: true }\n }\n }\n\n // Fallback: prompt for filename\n console.warn('[stx-dialog] Save dialog not available, using prompt fallback')\n const filename = prompt('Enter filename:', options.defaultPath || 'file.txt')\n if (filename) {\n return { canceled: false, filePath: filename }\n }\n return { canceled: true }\n}\n\n/**\n * Show a native message box dialog\n *\n * When running in Craft, uses the native OS message box.\n * In browser, falls back to confirm/alert dialogs.\n *\n * @param options - Message box options\n * @returns Promise resolving to button index clicked\n *\n * @example\n * ```typescript\n * const result = await showMessageBox({\n * type: 'question',\n * title: 'Confirm',\n * message: 'Are you sure you want to delete this file?',\n * buttons: ['Cancel', 'Delete'],\n * defaultButton: 0,\n * cancelButton: 0,\n * })\n *\n * if (result.response === 1) {\n * // User clicked \"Delete\"\n * }\n * ```\n */\nexport async function showMessageBox(options: MessageBoxOptions): Promise<MessageBoxResult> {\n if (isInCraftWindow()) {\n // Use Craft's native dialog\n const craftWindow = window as any\n try {\n return await craftWindow.craft.dialog.showMessageBox(options)\n }\n catch (error) {\n console.warn('[stx-dialog] Failed to show native message box:', error)\n }\n }\n\n // Web fallback\n const buttons = options.buttons || ['OK']\n\n if (buttons.length === 1) {\n // Simple alert\n alert(options.message)\n return { response: 0 }\n }\n\n if (buttons.length === 2 && options.type === 'question') {\n // Use confirm for simple yes/no\n const confirmed = confirm(options.message)\n return { response: confirmed ? 1 : 0 }\n }\n\n // For more complex dialogs, we'd need a custom modal\n // For now, fall back to confirm\n console.warn('[stx-dialog] Complex message box not fully supported in browser, using confirm')\n const confirmed = confirm(`${options.message}\\n\\n${buttons.join(' / ')}`)\n return { response: confirmed ? (buttons.length - 1) : 0 }\n}\n\n/**\n * Show a native color picker dialog\n *\n * @param options - Color picker options\n * @returns Promise resolving to selected color or cancellation\n *\n * @example\n * ```typescript\n * const result = await showColorPicker({\n * color: '#ff0000',\n * showAlpha: true,\n * })\n *\n * if (!result.canceled && result.color) {\n * document.body.style.backgroundColor = result.color\n * }\n * ```\n */\nexport async function showColorPicker(options: ColorPickerOptions = {}): Promise<ColorPickerResult> {\n if (isInCraftWindow()) {\n // Use Craft's native dialog\n const craftWindow = window as any\n try {\n return await craftWindow.craft.dialog.showColorPicker(options)\n }\n catch (error) {\n console.warn('[stx-dialog] Failed to show native color picker:', error)\n }\n }\n\n // Web fallback: use color input\n return new Promise((resolve) => {\n if (typeof document === 'undefined') {\n resolve({ canceled: true })\n return\n }\n\n const input = document.createElement('input')\n input.type = 'color'\n input.value = options.color || '#000000'\n\n input.onchange = () => {\n resolve({ canceled: false, color: input.value })\n }\n\n input.oncancel = () => {\n resolve({ canceled: true })\n }\n\n input.click()\n })\n}\n\n// =============================================================================\n// Convenience Functions\n// =============================================================================\n\n/**\n * Show a simple alert message dialog (native)\n *\n * @param message - Message to display\n * @param title - Optional dialog title\n */\nexport async function showAlertDialog(message: string, title?: string): Promise<void> {\n await showMessageBox({\n type: 'info',\n title: title || 'Alert',\n message,\n buttons: ['OK'],\n })\n}\n\n/**\n * Show a confirmation dialog (native)\n *\n * @param message - Message to display\n * @param title - Optional dialog title\n * @returns True if confirmed, false if cancelled\n */\nexport async function showConfirmDialog(message: string, title?: string): Promise<boolean> {\n const result = await showMessageBox({\n type: 'question',\n title: title || 'Confirm',\n message,\n buttons: ['Cancel', 'OK'],\n defaultButton: 1,\n cancelButton: 0,\n })\n return result.response === 1\n}\n\n/**\n * Show an error dialog (native)\n *\n * @param message - Error message\n * @param title - Optional dialog title\n */\nexport async function showErrorDialog(message: string, title?: string): Promise<void> {\n await showMessageBox({\n type: 'error',\n title: title || 'Error',\n message,\n buttons: ['OK'],\n })\n}\n\n/**\n * Show a warning dialog (native)\n *\n * @param message - Warning message\n * @param title - Optional dialog title\n */\nexport async function showWarningDialog(message: string, title?: string): Promise<void> {\n await showMessageBox({\n type: 'warning',\n title: title || 'Warning',\n message,\n buttons: ['OK'],\n })\n}\n\n// =============================================================================\n// Bridge Script Generator\n// =============================================================================\n\n/**\n * Generate a JavaScript snippet for dialog control from inside a webview.\n * This provides convenient wrappers around the Craft dialog bridge.\n */\nexport function getDialogBridgeScript(): string {\n return `\n// STX Desktop Dialog Bridge\n// Provides convenient wrappers around window.craft.dialog APIs\nwindow.stxDialog = {\n // File dialogs\n showOpenDialog: (options) => window.craft?.dialog?.showOpenDialog(options),\n showSaveDialog: (options) => window.craft?.dialog?.showSaveDialog(options),\n\n // Message dialogs\n showMessageBox: (options) => window.craft?.dialog?.showMessageBox(options),\n\n // Color picker\n showColorPicker: (options) => window.craft?.dialog?.showColorPicker(options),\n\n // Font picker\n showFontPicker: (options) => window.craft?.dialog?.showFontPicker(options),\n\n // Convenience functions\n alert: async (message, title) => {\n return window.craft?.dialog?.showMessageBox({\n type: 'info',\n title: title || 'Alert',\n message,\n buttons: ['OK'],\n });\n },\n\n confirm: async (message, title) => {\n const result = await window.craft?.dialog?.showMessageBox({\n type: 'question',\n title: title || 'Confirm',\n message,\n buttons: ['Cancel', 'OK'],\n });\n return result?.response === 1;\n },\n\n error: async (message, title) => {\n return window.craft?.dialog?.showMessageBox({\n type: 'error',\n title: title || 'Error',\n message,\n buttons: ['OK'],\n });\n },\n\n // Check if dialog is available\n isAvailable: () => typeof window.craft?.dialog !== 'undefined',\n};\n`\n}\n",
|
|
10
|
-
"/* eslint-disable no-console */\nimport type { WindowInstance, WindowOptions } from './types'\nimport { existsSync } from 'node:fs'\nimport { join } from 'node:path'\nimport process from 'node:process'\n\n// =============================================================================\n// Configuration\n// =============================================================================\n\n/**\n * Desktop window configuration.\n * Can be set via environment variables or setDesktopConfig().\n */\nexport interface DesktopConfig {\n /**\n * Custom path to craft binary.\n * Set via CRAFT_BINARY_PATH env var or setDesktopConfig().\n */\n craftBinaryPath?: string\n /**\n * Additional search paths for craft binary.\n * Searched after craftBinaryPath if set.\n */\n additionalSearchPaths?: string[]\n /**\n * Maximum retries when opening native window fails.\n * Default: 1 (no retries)\n */\n maxRetries?: number\n /**\n * Delay between retries in milliseconds.\n * Default: 1000\n */\n retryDelay?: number\n}\n\n/**\n * Current desktop configuration\n */\nlet currentConfig: DesktopConfig = {}\n\n/**\n * Configure desktop window settings\n *\n * @example\n * ```typescript\n * setDesktopConfig({\n * craftBinaryPath: '/custom/path/to/craft',\n * maxRetries: 3,\n * retryDelay: 2000\n * })\n * ```\n */\nexport function setDesktopConfig(config: Partial<DesktopConfig>): void {\n currentConfig = { ...currentConfig, ...config }\n}\n\n/**\n * Get current desktop configuration\n */\nexport function getDesktopConfig(): DesktopConfig {\n return { ...currentConfig }\n}\n\n/**\n * Reset desktop configuration to defaults\n */\nexport function resetDesktopConfig(): void {\n currentConfig = {}\n}\n\n// =============================================================================\n// Binary Resolution\n// =============================================================================\n\n/**\n * Default paths to search for craft binary.\n * Used when CRAFT_BINARY_PATH is not set.\n */\nconst DEFAULT_SEARCH_PATHS = [\n // Global bun installation\n join(process.env.HOME || '', '.bun/bin/craft'),\n // Absolute path to craft in standard location\n join(process.env.HOME || '', 'Code/Tools/craft/packages/zig/zig-out/bin/craft'),\n join(process.env.HOME || '', 'Code/craft/packages/zig/zig-out/bin/craft'),\n // From linked ts-craft in monorepo (both craft and craft-minimal)\n join(process.cwd(), '../../craft/packages/zig/zig-out/bin/craft'),\n join(process.cwd(), '../../craft/packages/zig/zig-out/bin/craft-minimal'),\n join(process.cwd(), '../../../craft/packages/zig/zig-out/bin/craft'),\n join(process.cwd(), '../../../craft/packages/zig/zig-out/bin/craft-minimal'),\n // If running from stx repo root\n join(process.cwd(), '../craft/packages/zig/zig-out/bin/craft'),\n join(process.cwd(), '../craft/packages/zig/zig-out/bin/craft-minimal'),\n // Local craft installation\n join(process.cwd(), 'node_modules/.bin/craft'),\n]\n\n/**\n * Find craft binary in configured locations.\n *\n * Resolution order:\n * 1. CRAFT_BINARY_PATH environment variable\n * 2. config.craftBinaryPath (set via setDesktopConfig)\n * 3. config.additionalSearchPaths\n * 4. DEFAULT_SEARCH_PATHS (monorepo locations)\n *\n * @returns Path to craft binary or undefined if not found\n */\nfunction getCraftBinaryPath(): string | undefined {\n // 1. Check environment variable first (highest priority)\n const envPath = process.env.CRAFT_BINARY_PATH\n if (envPath && existsSync(envPath)) {\n return envPath\n }\n\n // 2. Check configured path\n if (currentConfig.craftBinaryPath && existsSync(currentConfig.craftBinaryPath)) {\n return currentConfig.craftBinaryPath\n }\n\n // 3. Check additional configured paths\n const additionalPaths = currentConfig.additionalSearchPaths || []\n for (const searchPath of additionalPaths) {\n if (existsSync(searchPath)) {\n return searchPath\n }\n }\n\n // 4. Check default paths\n for (const searchPath of DEFAULT_SEARCH_PATHS) {\n if (existsSync(searchPath)) {\n return searchPath\n }\n }\n\n return undefined\n}\n\n// =============================================================================\n// Window Instance Management\n// =============================================================================\n\n/**\n * Active window instances managed by this module\n */\nconst activeWindows = new Map<string, {\n app: any\n url: string\n options: WindowOptions\n}>()\n\n/**\n * Get all active window IDs\n */\nexport function getActiveWindowIds(): string[] {\n return Array.from(activeWindows.keys())\n}\n\n/**\n * Get a window by ID\n */\nexport function getWindow(id: string): WindowInstance | null {\n const windowData = activeWindows.get(id)\n if (!windowData) return null\n return createWindowInstance(id, windowData.app)\n}\n\n/**\n * Close all active windows\n */\nexport function closeAllWindows(): void {\n for (const [id, windowData] of activeWindows) {\n try {\n windowData.app?.close?.()\n }\n catch (e) {\n console.warn(`Failed to close window ${id}:`, e)\n }\n }\n activeWindows.clear()\n}\n\n/**\n * Create a WindowInstance object with control methods\n */\nfunction createWindowInstance(id: string, app: any): WindowInstance {\n return {\n id,\n\n show: () => {\n // The window is shown when created via app.show()\n // This is a no-op since ts-craft auto-shows windows\n console.log(`[stx/desktop] Window ${id} shown`)\n },\n\n hide: () => {\n // ts-craft doesn't expose hide directly from the process side\n // This would need to be called from inside the webview via window.craft.window.hide()\n console.log(`[stx/desktop] To hide window, use window.craft.window.hide() from inside the webview`)\n },\n\n close: () => {\n const windowData = activeWindows.get(id)\n if (windowData?.app) {\n windowData.app.close()\n activeWindows.delete(id)\n console.log(`[stx/desktop] Window ${id} closed`)\n }\n },\n\n focus: () => {\n console.log(`[stx/desktop] To focus window, use window.craft.window.focus() from inside the webview`)\n },\n\n minimize: () => {\n console.log(`[stx/desktop] To minimize window, use window.craft.window.minimize() from inside the webview`)\n },\n\n maximize: () => {\n console.log(`[stx/desktop] To maximize window, use window.craft.window.maximize() from inside the webview`)\n },\n\n restore: () => {\n console.log(`[stx/desktop] To restore window, use window.craft.window.show() from inside the webview`)\n },\n\n setTitle: (title: string) => {\n console.log(`[stx/desktop] To set title, use window.craft.window.setTitle({ title: \"${title}\" }) from inside the webview`)\n },\n\n loadURL: (url: string) => {\n // Re-create the window with the new URL\n console.log(`[stx/desktop] To navigate, use window.location.href = \"${url}\" from inside the webview`)\n },\n\n reload: () => {\n console.log(`[stx/desktop] To reload, use window.craft.window.reload() from inside the webview`)\n },\n }\n}\n\n// =============================================================================\n// Window Creation\n// =============================================================================\n\n/**\n * Create a native window with URL\n *\n * Uses ts-craft to create native desktop windows. Falls back to returning null\n * if ts-craft is not available.\n *\n * ## Window Control\n *\n * The CraftApp spawns a native webview process. Window control methods like\n * hide(), minimize(), setTitle() etc. are available via the `window.craft`\n * bridge **inside** the webview context:\n *\n * ```javascript\n * // Inside your HTML/JS running in the webview:\n * window.craft.window.hide()\n * window.craft.window.minimize()\n * window.craft.window.setTitle({ title: 'New Title' })\n * window.craft.window.center()\n * ```\n *\n * The returned WindowInstance provides the `close()` method which terminates\n * the native process from the Node.js side.\n *\n * @param url - URL to load in the window\n * @param options - Window configuration options\n * @returns WindowInstance if successful, null if ts-craft unavailable\n */\nexport async function createWindow(url: string, options: WindowOptions = {}): Promise<WindowInstance | null> {\n const {\n title = 'stx Desktop',\n width = 1200,\n height = 800,\n darkMode = false,\n hotReload = false,\n resizable = true,\n frameless = false,\n alwaysOnTop = false,\n } = options\n\n try {\n // Dynamically import ts-craft\n const { createApp } = await import('ts-craft')\n\n const craftPath = getCraftBinaryPath()\n\n const app = createApp({\n url,\n craftPath,\n window: {\n title,\n width,\n height,\n darkMode,\n hotReload,\n resizable,\n frameless,\n alwaysOnTop,\n },\n })\n\n // Generate unique ID\n const id = `craft-window-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`\n\n // Store the window instance\n activeWindows.set(id, { app, url, options })\n\n // Show the window\n await app.show()\n\n return createWindowInstance(id, app)\n }\n catch (error) {\n console.error('Failed to create native window:', error)\n console.warn('Falling back to browser...')\n return null\n }\n}\n\n/**\n * Open a development server window\n * This is specifically for the stx dev server --native flag\n *\n * Uses ts-craft to create a native window, falls back to browser if unavailable.\n */\nexport async function openDevWindow(port: number, options: WindowOptions = {}): Promise<boolean> {\n const url = `http://localhost:${port}/`\n\n // Bail out of native paths under bun:test to avoid spawning real\n // webview processes from unit tests. Tests assert that the function\n // returns false in this environment.\n const isTestEnv = process.env.NODE_ENV === 'test' || process.env.BUN_TEST\n if (isTestEnv) {\n console.warn('⚠ Skipping native window in test environment')\n console.log('(Skipping browser fallback in test environment)')\n return false\n }\n\n // Path 1 — `ts-craft` package, when it's actually installed in the host\n // workspace. This is the original path; we keep it for projects that\n // depend on `ts-craft` for richer typings / sidebar config.\n try {\n const { createApp } = await import('ts-craft')\n\n console.log('⚡ Opening native window via ts-craft…')\n const useSystemTray = !options.nativeSidebar\n const app = createApp({\n url,\n craftPath: getCraftBinaryPath(),\n window: {\n title: options.title || 'stx Development',\n width: options.width || 1400,\n height: options.height || 900,\n resizable: true,\n systemTray: useSystemTray,\n darkMode: options.darkMode ?? true,\n hotReload: options.hotReload ?? true,\n devTools: true,\n nativeSidebar: options.nativeSidebar ?? false,\n sidebarWidth: options.sidebarWidth ?? 260,\n sidebarConfig: options.sidebarConfig as Record<string, unknown> | undefined,\n },\n })\n\n const id = `dev-window-${port}`\n activeWindows.set(id, { app, url, options })\n await app.show()\n console.log(`✓ Native window opened at ${url}`)\n return true\n }\n catch (tsCraftErr) {\n // Path 2 — native binary spawned directly. ts-craft is just a thin\n // wrapper around this; if it isn't installed we can still drive Craft\n // via `craft --url … --title … --width … --height …`. In practice this\n // is the path most monorepo users hit, since they have the `craft`\n // binary in `~/.bun/bin` but no JS package.\n const craftPath = getCraftBinaryPath()\n if (craftPath) {\n try {\n console.log(`⚡ Opening native window via craft binary (${craftPath})…`)\n const { spawn } = await import('node:child_process')\n const args: string[] = [\n '--url', url,\n '--title', options.title || 'stx Development',\n '--width', String(options.width || 1400),\n '--height', String(options.height || 900),\n ]\n if (options.darkMode) args.push('--dark')\n if (options.hotReload ?? true) args.push('--hot-reload')\n\n const child = spawn(craftPath, args, { stdio: 'inherit' })\n\n // Bridge the child's lifetime to the host process so closing the\n // window cleanly exits the dev server (matches `bun --bun … --native`\n // expectations).\n child.on('exit', () => process.exit(0))\n child.on('error', err => console.warn('craft child error:', err.message))\n\n const id = `dev-window-${port}`\n activeWindows.set(id, { app: { close: () => child.kill() }, url, options })\n console.log(`✓ Native window opened at ${url}`)\n return true\n }\n catch (binaryErr) {\n console.warn('⚠ Could not spawn craft binary:', (binaryErr as Error).message)\n }\n }\n else {\n console.warn('⚠ ts-craft not installed and no craft binary found')\n console.warn(` (ts-craft error: ${(tsCraftErr as Error).message})`)\n }\n\n // Path 3 — give up on native, open the system browser. Skipped in test.\n if (process.env.NODE_ENV === 'test' || process.env.BUN_TEST) {\n console.log('(Skipping browser fallback in test environment)')\n return false\n }\n console.log('📱 Opening in browser instead…')\n try {\n const { spawn } = await import('node:child_process')\n const platform = process.platform\n const command = platform === 'darwin' ? 'open' : platform === 'win32' ? 'cmd' : 'xdg-open'\n const args = platform === 'win32' ? ['/c', 'start', url] : [url]\n spawn(command, args, { detached: true, stdio: 'ignore' }).unref()\n console.log(`✓ Browser opened at ${url}`)\n return true\n }\n catch (browserError) {\n console.error('Could not open browser:', browserError)\n console.log(`Please open manually: ${url}`)\n return false\n }\n }\n}\n\n/**\n * Create a window with HTML content\n *\n * Uses ts-craft to display HTML content in a native window.\n */\nexport async function createWindowWithHTML(html: string, options: WindowOptions = {}): Promise<WindowInstance | null> {\n const {\n title = 'stx Desktop',\n width = 1200,\n height = 800,\n darkMode = false,\n hotReload = false,\n resizable = true,\n frameless = false,\n alwaysOnTop = false,\n } = options\n\n try {\n // Dynamically import ts-craft\n const { createApp } = await import('ts-craft')\n\n const craftPath = getCraftBinaryPath()\n\n const app = createApp({\n html,\n craftPath,\n window: {\n title,\n width,\n height,\n darkMode,\n hotReload,\n resizable,\n frameless,\n alwaysOnTop,\n },\n })\n\n const id = `craft-window-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`\n activeWindows.set(id, { app, url: 'html-content', options })\n\n await app.show()\n\n return createWindowInstance(id, app)\n }\n catch (error) {\n console.error('Failed to create window with HTML:', error)\n return null\n }\n}\n\n/**\n * Helper to check if webview implementation is available\n */\nexport function isWebviewAvailable(): boolean {\n try {\n // Try to require ts-craft to check if it's available\n require.resolve('ts-craft')\n return true\n }\n catch {\n return false\n }\n}\n\n// =============================================================================\n// Bridge Script Generator\n// =============================================================================\n\n/**\n * Generate a JavaScript snippet to inject into HTML that provides\n * helper functions for common window operations.\n *\n * This can be injected into your HTML to provide easier access to Craft APIs.\n *\n * @example\n * ```typescript\n * const html = `\n * <html>\n * <head>\n * <script>${getWindowBridgeScript()}</script>\n * </head>\n * <body>\n * <button onclick=\"stxWindow.minimize()\">Minimize</button>\n * </body>\n * </html>\n * `\n * await createWindowWithHTML(html)\n * ```\n */\nexport function getWindowBridgeScript(): string {\n return `\n// STX Desktop Window Bridge\n// Provides convenient wrappers around window.craft APIs\nwindow.stxWindow = {\n // Window control\n hide: () => window.craft?.window?.hide(),\n show: () => window.craft?.window?.show(),\n toggle: () => window.craft?.window?.toggle(),\n close: () => window.craft?.window?.close(),\n minimize: () => window.craft?.window?.minimize(),\n maximize: () => window.craft?.window?.maximize(),\n focus: () => window.craft?.window?.focus(),\n center: () => window.craft?.window?.center(),\n reload: () => window.craft?.window?.reload(),\n toggleFullscreen: () => window.craft?.window?.toggleFullscreen(),\n\n // Window properties\n setTitle: (title) => window.craft?.window?.setTitle({ title }),\n setSize: (width, height) => window.craft?.window?.setSize({ width, height }),\n setPosition: (x, y) => window.craft?.window?.setPosition({ x, y }),\n setAlwaysOnTop: (alwaysOnTop) => window.craft?.window?.setAlwaysOnTop({ alwaysOnTop }),\n setResizable: (resizable) => window.craft?.window?.setResizable({ resizable }),\n setOpacity: (opacity) => window.craft?.window?.setOpacity({ opacity }),\n\n // macOS-specific\n setVibrancy: (vibrancy) => window.craft?.window?.setVibrancy({ vibrancy }),\n\n // App control\n quit: () => window.craft?.app?.quit(),\n isDarkMode: () => window.craft?.app?.isDarkMode(),\n getLocale: () => window.craft?.app?.getLocale(),\n\n // Notifications\n notify: (options) => window.craft?.app?.notify(options),\n\n // Check if running in Craft\n isCraftAvailable: () => typeof window.craft !== 'undefined',\n};\n\n// Expose as global for backwards compatibility\nwindow.desktop = window.stxWindow;\n`\n}\n",
|
|
10
|
+
"/* eslint-disable no-console */\nimport type { SidebarConfig, WindowInstance, WindowOptions } from './types'\nimport { existsSync } from 'node:fs'\nimport { join } from 'node:path'\nimport process from 'node:process'\n\n// =============================================================================\n// Configuration\n// =============================================================================\n\n/**\n * Desktop window configuration.\n * Can be set via environment variables or setDesktopConfig().\n */\nexport interface DesktopConfig {\n /**\n * Custom path to craft binary.\n * Set via CRAFT_BINARY_PATH env var or setDesktopConfig().\n */\n craftBinaryPath?: string\n /**\n * Additional search paths for craft binary.\n * Searched after craftBinaryPath if set.\n */\n additionalSearchPaths?: string[]\n /**\n * Maximum retries when opening native window fails.\n * Default: 1 (no retries)\n */\n maxRetries?: number\n /**\n * Delay between retries in milliseconds.\n * Default: 1000\n */\n retryDelay?: number\n}\n\n/**\n * Current desktop configuration\n */\nlet currentConfig: DesktopConfig = {}\n\n/**\n * Configure desktop window settings\n *\n * @example\n * ```typescript\n * setDesktopConfig({\n * craftBinaryPath: '/custom/path/to/craft',\n * maxRetries: 3,\n * retryDelay: 2000\n * })\n * ```\n */\nexport function setDesktopConfig(config: Partial<DesktopConfig>): void {\n currentConfig = { ...currentConfig, ...config }\n}\n\n/**\n * Get current desktop configuration\n */\nexport function getDesktopConfig(): DesktopConfig {\n return { ...currentConfig }\n}\n\n/**\n * Reset desktop configuration to defaults\n */\nexport function resetDesktopConfig(): void {\n currentConfig = {}\n}\n\nfunction prepareSidebarConfig(options: WindowOptions): SidebarConfig | undefined {\n if (!options.sidebarConfig) return undefined\n\n const config: SidebarConfig = { ...options.sidebarConfig }\n if (config.variant === 'desktop') {\n config.material = config.material ?? 'sidebar'\n config.backgroundEffect = config.backgroundEffect ?? 'shimmer'\n config.allowsVibrancy = config.allowsVibrancy ?? true\n }\n\n return config\n}\n\n// =============================================================================\n// Binary Resolution\n// =============================================================================\n\n/**\n * Default paths to search for craft binary.\n * Used when CRAFT_BINARY_PATH is not set.\n */\nconst DEFAULT_SEARCH_PATHS = [\n // Global bun installation\n join(process.env.HOME || '', '.bun/bin/craft'),\n // Absolute path to craft in standard location\n join(process.env.HOME || '', 'Code/Tools/craft/packages/zig/zig-out/bin/craft'),\n join(process.env.HOME || '', 'Code/craft/packages/zig/zig-out/bin/craft'),\n // From linked ts-craft in monorepo (both craft and craft-minimal)\n join(process.cwd(), '../../craft/packages/zig/zig-out/bin/craft'),\n join(process.cwd(), '../../craft/packages/zig/zig-out/bin/craft-minimal'),\n join(process.cwd(), '../../../craft/packages/zig/zig-out/bin/craft'),\n join(process.cwd(), '../../../craft/packages/zig/zig-out/bin/craft-minimal'),\n // If running from stx repo root\n join(process.cwd(), '../craft/packages/zig/zig-out/bin/craft'),\n join(process.cwd(), '../craft/packages/zig/zig-out/bin/craft-minimal'),\n // Local craft installation\n join(process.cwd(), 'node_modules/.bin/craft'),\n]\n\n/**\n * Find craft binary in configured locations.\n *\n * Resolution order:\n * 1. CRAFT_BINARY_PATH environment variable\n * 2. config.craftBinaryPath (set via setDesktopConfig)\n * 3. config.additionalSearchPaths\n * 4. DEFAULT_SEARCH_PATHS (monorepo locations)\n *\n * @returns Path to craft binary or undefined if not found\n */\nfunction getCraftBinaryPath(): string | undefined {\n // 1. Check environment variable first (highest priority)\n const envPath = process.env.CRAFT_BINARY_PATH\n if (envPath && existsSync(envPath)) {\n return envPath\n }\n\n // 2. Check configured path\n if (currentConfig.craftBinaryPath && existsSync(currentConfig.craftBinaryPath)) {\n return currentConfig.craftBinaryPath\n }\n\n // 3. Check additional configured paths\n const additionalPaths = currentConfig.additionalSearchPaths || []\n for (const searchPath of additionalPaths) {\n if (existsSync(searchPath)) {\n return searchPath\n }\n }\n\n // 4. Check default paths\n for (const searchPath of DEFAULT_SEARCH_PATHS) {\n if (existsSync(searchPath)) {\n return searchPath\n }\n }\n\n return undefined\n}\n\n// =============================================================================\n// Window Instance Management\n// =============================================================================\n\n/**\n * Active window instances managed by this module\n */\nconst activeWindows = new Map<string, {\n app: any\n url: string\n options: WindowOptions\n}>()\n\n/**\n * Get all active window IDs\n */\nexport function getActiveWindowIds(): string[] {\n return Array.from(activeWindows.keys())\n}\n\n/**\n * Get a window by ID\n */\nexport function getWindow(id: string): WindowInstance | null {\n const windowData = activeWindows.get(id)\n if (!windowData) return null\n return createWindowInstance(id, windowData.app)\n}\n\n/**\n * Close all active windows\n */\nexport function closeAllWindows(): void {\n for (const [id, windowData] of activeWindows) {\n try {\n windowData.app?.close?.()\n }\n catch (e) {\n console.warn(`Failed to close window ${id}:`, e)\n }\n }\n activeWindows.clear()\n}\n\n/**\n * Create a WindowInstance object with control methods\n */\nfunction createWindowInstance(id: string, app: any): WindowInstance {\n return {\n id,\n\n show: () => {\n // The window is shown when created via app.show()\n // This is a no-op since ts-craft auto-shows windows\n console.log(`[stx/desktop] Window ${id} shown`)\n },\n\n hide: () => {\n // ts-craft doesn't expose hide directly from the process side\n // This would need to be called from inside the webview via window.craft.window.hide()\n console.log(`[stx/desktop] To hide window, use window.craft.window.hide() from inside the webview`)\n },\n\n close: () => {\n const windowData = activeWindows.get(id)\n if (windowData?.app) {\n windowData.app.close()\n activeWindows.delete(id)\n console.log(`[stx/desktop] Window ${id} closed`)\n }\n },\n\n focus: () => {\n console.log(`[stx/desktop] To focus window, use window.craft.window.focus() from inside the webview`)\n },\n\n minimize: () => {\n console.log(`[stx/desktop] To minimize window, use window.craft.window.minimize() from inside the webview`)\n },\n\n maximize: () => {\n console.log(`[stx/desktop] To maximize window, use window.craft.window.maximize() from inside the webview`)\n },\n\n restore: () => {\n console.log(`[stx/desktop] To restore window, use window.craft.window.show() from inside the webview`)\n },\n\n setTitle: (title: string) => {\n console.log(`[stx/desktop] To set title, use window.craft.window.setTitle({ title: \"${title}\" }) from inside the webview`)\n },\n\n loadURL: (url: string) => {\n // Re-create the window with the new URL\n console.log(`[stx/desktop] To navigate, use window.location.href = \"${url}\" from inside the webview`)\n },\n\n reload: () => {\n console.log(`[stx/desktop] To reload, use window.craft.window.reload() from inside the webview`)\n },\n }\n}\n\n// =============================================================================\n// Window Creation\n// =============================================================================\n\n/**\n * Create a native window with URL\n *\n * Uses ts-craft to create native desktop windows. Falls back to returning null\n * if ts-craft is not available.\n *\n * ## Window Control\n *\n * The CraftApp spawns a native webview process. Window control methods like\n * hide(), minimize(), setTitle() etc. are available via the `window.craft`\n * bridge **inside** the webview context:\n *\n * ```javascript\n * // Inside your HTML/JS running in the webview:\n * window.craft.window.hide()\n * window.craft.window.minimize()\n * window.craft.window.setTitle({ title: 'New Title' })\n * window.craft.window.center()\n * ```\n *\n * The returned WindowInstance provides the `close()` method which terminates\n * the native process from the Node.js side.\n *\n * @param url - URL to load in the window\n * @param options - Window configuration options\n * @returns WindowInstance if successful, null if ts-craft unavailable\n */\nexport async function createWindow(url: string, options: WindowOptions = {}): Promise<WindowInstance | null> {\n const {\n title = 'stx Desktop',\n width = 1200,\n height = 800,\n darkMode = false,\n hotReload = false,\n resizable = true,\n frameless = false,\n alwaysOnTop = false,\n } = options\n\n try {\n // Dynamically import ts-craft\n const { createApp } = await import('ts-craft')\n\n const craftPath = getCraftBinaryPath()\n\n const app = createApp({\n url,\n craftPath,\n window: {\n title,\n width,\n height,\n darkMode,\n hotReload,\n resizable,\n frameless,\n alwaysOnTop,\n },\n })\n\n // Generate unique ID\n const id = `craft-window-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`\n\n // Store the window instance\n activeWindows.set(id, { app, url, options })\n\n // Show the window\n await app.show()\n\n return createWindowInstance(id, app)\n }\n catch (error) {\n console.error('Failed to create native window:', error)\n console.warn('Falling back to browser...')\n return null\n }\n}\n\n/**\n * Open a development server window\n * This is specifically for the stx dev server --native flag\n *\n * Uses ts-craft to create a native window, falls back to browser if unavailable.\n */\nexport async function openDevWindow(port: number, options: WindowOptions = {}): Promise<boolean> {\n const url = `http://localhost:${port}/`\n\n // Bail out of native paths under bun:test to avoid spawning real\n // webview processes from unit tests. Tests assert that the function\n // returns false in this environment.\n const isTestEnv = process.env.NODE_ENV === 'test' || process.env.BUN_TEST\n if (isTestEnv) {\n console.warn('⚠ Skipping native window in test environment')\n console.log('(Skipping browser fallback in test environment)')\n return false\n }\n\n // Path 1 — `ts-craft` package, when it's actually installed in the host\n // workspace. This is the original path; we keep it for projects that\n // depend on `ts-craft` for richer typings / sidebar config.\n try {\n const { createApp } = await import('ts-craft')\n\n console.log('⚡ Opening native window via ts-craft…')\n const useSystemTray = !options.nativeSidebar\n const sidebarConfig = prepareSidebarConfig(options)\n const app = createApp({\n url,\n craftPath: getCraftBinaryPath(),\n window: {\n title: options.title || 'stx Development',\n width: options.width || 1400,\n height: options.height || 900,\n resizable: true,\n systemTray: useSystemTray,\n darkMode: options.darkMode ?? true,\n hotReload: options.hotReload ?? true,\n devTools: true,\n nativeSidebar: options.nativeSidebar ?? false,\n sidebarWidth: options.sidebarWidth ?? 260,\n sidebarConfig: sidebarConfig as Record<string, unknown> | undefined,\n },\n })\n\n const id = `dev-window-${port}`\n activeWindows.set(id, { app, url, options })\n await app.show()\n console.log(`✓ Native window opened at ${url}`)\n return true\n }\n catch (tsCraftErr) {\n // Path 2 — native binary spawned directly. ts-craft is just a thin\n // wrapper around this; if it isn't installed we can still drive Craft\n // via `craft --url … --title … --width … --height …`. In practice this\n // is the path most monorepo users hit, since they have the `craft`\n // binary in `~/.bun/bin` but no JS package.\n const craftPath = getCraftBinaryPath()\n if (craftPath) {\n try {\n console.log(`⚡ Opening native window via craft binary (${craftPath})…`)\n const { spawn } = await import('node:child_process')\n const args: string[] = [\n '--url', url,\n '--title', options.title || 'stx Development',\n '--width', String(options.width || 1400),\n '--height', String(options.height || 900),\n ]\n if (options.darkMode) args.push('--dark')\n if (options.hotReload ?? true) args.push('--hot-reload')\n\n const child = spawn(craftPath, args, { stdio: 'inherit' })\n\n // Bridge the child's lifetime to the host process so closing the\n // window cleanly exits the dev server (matches `bun --bun … --native`\n // expectations).\n child.on('exit', () => process.exit(0))\n child.on('error', err => console.warn('craft child error:', err.message))\n\n const id = `dev-window-${port}`\n activeWindows.set(id, { app: { close: () => child.kill() }, url, options })\n console.log(`✓ Native window opened at ${url}`)\n return true\n }\n catch (binaryErr) {\n console.warn('⚠ Could not spawn craft binary:', (binaryErr as Error).message)\n }\n }\n else {\n console.warn('⚠ ts-craft not installed and no craft binary found')\n console.warn(` (ts-craft error: ${(tsCraftErr as Error).message})`)\n }\n\n // Path 3 — give up on native, open the system browser. Skipped in test.\n if (process.env.NODE_ENV === 'test' || process.env.BUN_TEST) {\n console.log('(Skipping browser fallback in test environment)')\n return false\n }\n console.log('📱 Opening in browser instead…')\n try {\n const { spawn } = await import('node:child_process')\n const platform = process.platform\n const command = platform === 'darwin' ? 'open' : platform === 'win32' ? 'cmd' : 'xdg-open'\n const args = platform === 'win32' ? ['/c', 'start', url] : [url]\n spawn(command, args, { detached: true, stdio: 'ignore' }).unref()\n console.log(`✓ Browser opened at ${url}`)\n return true\n }\n catch (browserError) {\n console.error('Could not open browser:', browserError)\n console.log(`Please open manually: ${url}`)\n return false\n }\n }\n}\n\n/**\n * Create a window with HTML content\n *\n * Uses ts-craft to display HTML content in a native window.\n */\nexport async function createWindowWithHTML(html: string, options: WindowOptions = {}): Promise<WindowInstance | null> {\n const {\n title = 'stx Desktop',\n width = 1200,\n height = 800,\n darkMode = false,\n hotReload = false,\n resizable = true,\n frameless = false,\n alwaysOnTop = false,\n } = options\n\n try {\n // Dynamically import ts-craft\n const { createApp } = await import('ts-craft')\n\n const craftPath = getCraftBinaryPath()\n\n const app = createApp({\n html,\n craftPath,\n window: {\n title,\n width,\n height,\n darkMode,\n hotReload,\n resizable,\n frameless,\n alwaysOnTop,\n },\n })\n\n const id = `craft-window-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`\n activeWindows.set(id, { app, url: 'html-content', options })\n\n await app.show()\n\n return createWindowInstance(id, app)\n }\n catch (error) {\n console.error('Failed to create window with HTML:', error)\n return null\n }\n}\n\n/**\n * Helper to check if webview implementation is available\n */\nexport function isWebviewAvailable(): boolean {\n try {\n // Try to require ts-craft to check if it's available\n require.resolve('ts-craft')\n return true\n }\n catch {\n return false\n }\n}\n\n// =============================================================================\n// Bridge Script Generator\n// =============================================================================\n\n/**\n * Generate a JavaScript snippet to inject into HTML that provides\n * helper functions for common window operations.\n *\n * This can be injected into your HTML to provide easier access to Craft APIs.\n *\n * @example\n * ```typescript\n * const html = `\n * <html>\n * <head>\n * <script>${getWindowBridgeScript()}</script>\n * </head>\n * <body>\n * <button onclick=\"stxWindow.minimize()\">Minimize</button>\n * </body>\n * </html>\n * `\n * await createWindowWithHTML(html)\n * ```\n */\nexport function getWindowBridgeScript(): string {\n return `\n// STX Desktop Window Bridge\n// Provides convenient wrappers around window.craft APIs\nwindow.stxWindow = {\n // Window control\n hide: () => window.craft?.window?.hide(),\n show: () => window.craft?.window?.show(),\n toggle: () => window.craft?.window?.toggle(),\n close: () => window.craft?.window?.close(),\n minimize: () => window.craft?.window?.minimize(),\n maximize: () => window.craft?.window?.maximize(),\n focus: () => window.craft?.window?.focus(),\n center: () => window.craft?.window?.center(),\n reload: () => window.craft?.window?.reload(),\n toggleFullscreen: () => window.craft?.window?.toggleFullscreen(),\n\n // Window properties\n setTitle: (title) => window.craft?.window?.setTitle({ title }),\n setSize: (width, height) => window.craft?.window?.setSize({ width, height }),\n setPosition: (x, y) => window.craft?.window?.setPosition({ x, y }),\n setAlwaysOnTop: (alwaysOnTop) => window.craft?.window?.setAlwaysOnTop({ alwaysOnTop }),\n setResizable: (resizable) => window.craft?.window?.setResizable({ resizable }),\n setOpacity: (opacity) => window.craft?.window?.setOpacity({ opacity }),\n\n // macOS-specific\n setVibrancy: (vibrancy) => window.craft?.window?.setVibrancy({ vibrancy }),\n\n // App control\n quit: () => window.craft?.app?.quit(),\n isDarkMode: () => window.craft?.app?.isDarkMode(),\n getLocale: () => window.craft?.app?.getLocale(),\n\n // Notifications\n notify: (options) => window.craft?.app?.notify(options),\n\n // Check if running in Craft\n isCraftAvailable: () => typeof window.craft !== 'undefined',\n};\n\n// Expose as global for backwards compatibility\nwindow.desktop = window.stxWindow;\n`\n}\n",
|
|
11
11
|
"/**\n * Power Management API\n *\n * Provides control over system sleep behavior using macOS caffeinate.\n * Spawns and manages /usr/bin/caffeinate processes.\n *\n * @example\n * ```typescript\n * import { caffeinate, decaffeinate, isCaffeinated, getCaffeinateStatus } from '@stacksjs/desktop'\n *\n * // Prevent sleep indefinitely\n * const instance = caffeinate()\n *\n * // Prevent sleep for 30 minutes\n * const instance = caffeinate({ duration: 30 })\n *\n * // Prevent only display sleep for 1 hour\n * const instance = caffeinate({\n * duration: 60,\n * preventDisplaySleep: true,\n * preventIdleSleep: false,\n * preventSystemSleep: false,\n * })\n *\n * // Check status\n * console.log(isCaffeinated()) // true\n * console.log(getCaffeinateStatus())\n *\n * // Stop\n * decaffeinate()\n * ```\n */\n\nimport type { Subprocess } from 'bun'\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface CaffeinateOptions {\n /** Duration in minutes. -1 or undefined = indefinite */\n duration?: number\n /** Prevent display from sleeping (-d flag). Default: true */\n preventDisplaySleep?: boolean\n /** Prevent system from idle sleeping (-i flag). Default: true */\n preventIdleSleep?: boolean\n /** Prevent system from sleeping (-s flag). Default: true */\n preventSystemSleep?: boolean\n /** Prevent disk from sleeping (-m flag). Default: false */\n preventDiskSleep?: boolean\n /** Create an assertion to prevent sleep on behalf of user (-u flag). Default: true */\n assertUserActivity?: boolean\n}\n\nexport interface CaffeinateInstance {\n /** Process ID of the caffeinate process */\n readonly pid: number\n /** When caffeinate was started */\n readonly startedAt: Date\n /** When caffeinate will end (null = indefinite) */\n readonly endsAt: Date | null\n /** Options used to create this instance */\n readonly options: CaffeinateOptions\n /** Whether this instance is still active */\n readonly isActive: boolean\n /** Remaining milliseconds (null = indefinite, 0 = expired) */\n readonly remainingMs: number | null\n /** Elapsed milliseconds since start */\n readonly elapsedMs: number\n /** Stop this caffeinate instance */\n stop(): void\n /** Register a callback for when this instance expires (duration-based only) */\n onExpire(handler: () => void): void\n}\n\nexport interface CaffeinateStatus {\n /** Whether caffeinate is currently active */\n active: boolean\n /** The current caffeinate instance, if any */\n instance: CaffeinateInstance | null\n /** When the current session started */\n startedAt: Date | null\n /** When the current session will end */\n endsAt: Date | null\n /** Duration in minutes (-1 = indefinite, null = not active) */\n durationMinutes: number | null\n}\n\n// ============================================================================\n// Internal State\n// ============================================================================\n\nlet currentProcess: Subprocess | null = null\nlet currentInstance: CaffeinateInstanceImpl | null = null\n\nclass CaffeinateInstanceImpl implements CaffeinateInstance {\n private _process: Subprocess\n private _startedAt: Date\n private _endsAt: Date | null\n private _options: CaffeinateOptions\n private _expireHandlers: Array<() => void> = []\n private _expireTimer: ReturnType<typeof setTimeout> | null = null\n private _stopped = false\n\n constructor(process: Subprocess, options: CaffeinateOptions) {\n this._process = process\n this._options = options\n this._startedAt = new Date()\n\n const duration = options.duration\n if (duration && duration > 0) {\n const durationMs = duration * 60 * 1000\n this._endsAt = new Date(this._startedAt.getTime() + durationMs)\n\n this._expireTimer = setTimeout(() => {\n this._stopped = true\n for (const handler of this._expireHandlers) {\n try {\n handler()\n }\n catch {}\n }\n }, durationMs)\n }\n else {\n this._endsAt = null\n }\n }\n\n get pid(): number {\n return this._process.pid\n }\n\n get startedAt(): Date {\n return this._startedAt\n }\n\n get endsAt(): Date | null {\n return this._endsAt\n }\n\n get options(): CaffeinateOptions {\n return { ...this._options }\n }\n\n get isActive(): boolean {\n if (this._stopped)\n return false\n // Check if process is still running\n return this._process.exitCode === null\n }\n\n get remainingMs(): number | null {\n if (!this._endsAt)\n return null\n const remaining = this._endsAt.getTime() - Date.now()\n return Math.max(0, remaining)\n }\n\n get elapsedMs(): number {\n return Date.now() - this._startedAt.getTime()\n }\n\n stop(): void {\n if (this._stopped)\n return\n this._stopped = true\n\n if (this._expireTimer) {\n clearTimeout(this._expireTimer)\n this._expireTimer = null\n }\n\n try {\n this._process.kill()\n }\n catch {\n // Process may have already exited\n }\n }\n\n onExpire(handler: () => void): void {\n this._expireHandlers.push(handler)\n }\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Start preventing the system from sleeping.\n *\n * Spawns a `/usr/bin/caffeinate` process with the specified options.\n * If caffeinate is already active, the previous instance is stopped first.\n *\n * @param options - Caffeinate configuration\n * @returns A CaffeinateInstance for monitoring and controlling the session\n */\nexport function caffeinate(options: CaffeinateOptions = {}): CaffeinateInstance {\n // Stop any existing instance\n decaffeinate()\n\n const {\n duration,\n preventDisplaySleep = true,\n preventIdleSleep = true,\n preventSystemSleep = true,\n preventDiskSleep = false,\n assertUserActivity = true,\n } = options\n\n // Build flags\n const flags: string[] = []\n if (preventDisplaySleep)\n flags.push('-d')\n if (preventIdleSleep)\n flags.push('-i')\n if (preventSystemSleep)\n flags.push('-s')\n if (preventDiskSleep)\n flags.push('-m')\n if (assertUserActivity)\n flags.push('-u')\n\n // Build args\n const args: string[] = [...flags]\n\n // Add duration if specified (in seconds)\n if (duration && duration > 0) {\n args.push('-t', String(duration * 60))\n }\n\n // Spawn caffeinate\n const proc = Bun.spawn(['/usr/bin/caffeinate', ...args], {\n stdio: ['ignore', 'ignore', 'ignore'],\n })\n\n const instance = new CaffeinateInstanceImpl(proc, options)\n currentProcess = proc\n currentInstance = instance\n\n return instance\n}\n\n/**\n * Stop caffeinate and allow the system to sleep normally.\n *\n * @param instance - Specific instance to stop. If omitted, stops the current active instance.\n */\nexport function decaffeinate(instance?: CaffeinateInstance): void {\n if (instance) {\n instance.stop()\n if (currentInstance === instance) {\n currentProcess = null\n currentInstance = null\n }\n return\n }\n\n if (currentInstance) {\n currentInstance.stop()\n }\n currentProcess = null\n currentInstance = null\n}\n\n/**\n * Check if caffeinate is currently active.\n */\nexport function isCaffeinated(): boolean {\n return currentInstance !== null && currentInstance.isActive\n}\n\n/**\n * Get the current caffeinate status.\n */\nexport function getCaffeinateStatus(): CaffeinateStatus {\n if (!currentInstance || !currentInstance.isActive) {\n return {\n active: false,\n instance: null,\n startedAt: null,\n endsAt: null,\n durationMinutes: null,\n }\n }\n\n const opts = currentInstance.options\n const duration = opts.duration\n\n return {\n active: true,\n instance: currentInstance,\n startedAt: currentInstance.startedAt,\n endsAt: currentInstance.endsAt,\n durationMinutes: (duration && duration > 0) ? duration : -1,\n }\n}\n\n/**\n * Format remaining caffeinate time as a human-readable string.\n *\n * @example\n * ```typescript\n * formatRemainingTime(instance) // \"25:30\" or \"∞\"\n * ```\n */\nexport function formatRemainingTime(instance?: CaffeinateInstance | null): string {\n const inst = instance || currentInstance\n if (!inst || !inst.isActive)\n return '0:00'\n\n const remaining = inst.remainingMs\n if (remaining === null)\n return '∞'\n\n const totalSeconds = Math.ceil(remaining / 1000)\n const hours = Math.floor(totalSeconds / 3600)\n const minutes = Math.floor((totalSeconds % 3600) / 60)\n const seconds = totalSeconds % 60\n\n if (hours > 0)\n return `${hours}:${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`\n return `${minutes}:${String(seconds).padStart(2, '0')}`\n}\n\n/**\n * Get a formatted description of the caffeinate duration.\n */\nexport function formatDuration(minutes: number): string {\n if (minutes <= 0 || minutes === -1)\n return 'Indefinitely'\n if (minutes < 60)\n return `${minutes} minutes`\n if (minutes === 60)\n return '1 hour'\n if (minutes % 60 === 0)\n return `${minutes / 60} hours`\n const h = Math.floor(minutes / 60)\n const m = minutes % 60\n return `${h}h ${m}m`\n}\n",
|
|
12
12
|
"/**\n * Preferences / Settings Storage API\n *\n * Simple JSON-based preferences storage for desktop applications.\n * Stores data in platform-appropriate locations with file watching\n * and change notification support.\n *\n * @example\n * ```typescript\n * import { createPreferences } from '@stacksjs/desktop'\n *\n * const prefs = createPreferences({\n * name: 'my-app',\n * defaults: {\n * theme: 'dark',\n * fontSize: 14,\n * autoSave: true,\n * },\n * })\n *\n * // Get a value\n * const theme = prefs.get('theme') // 'dark'\n *\n * // Set a value\n * prefs.set('theme', 'light')\n *\n * // Listen for changes\n * prefs.onChange('theme', (newVal, oldVal) => {\n * console.log(`Theme changed from ${oldVal} to ${newVal}`)\n * })\n *\n * // Get all values\n * const all = prefs.getAll()\n *\n * // Reset to defaults\n * prefs.reset()\n * ```\n */\n\nimport { existsSync, mkdirSync, readFileSync, writeFileSync, watch } from 'node:fs'\nimport { dirname, join } from 'node:path'\nimport { homedir, platform } from 'node:os'\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface PreferencesOptions<T extends Record<string, unknown>> {\n /** Application name (used for file path) */\n name: string\n /** Default preference values */\n defaults: T\n /** Custom storage path (overrides platform default) */\n path?: string\n /** Watch for external file changes. Default: true */\n watch?: boolean\n}\n\nexport interface Preferences<T extends Record<string, unknown>> {\n /** Get a preference value */\n get<K extends keyof T>(key: K): T[K]\n /** Set a preference value */\n set<K extends keyof T>(key: K, value: T[K]): void\n /** Get all preference values */\n getAll(): T\n /** Check if a preference has been set (non-default) */\n has(key: keyof T): boolean\n /** Delete a preference (revert to default) */\n delete(key: keyof T): void\n /** Reset all preferences to defaults */\n reset(): void\n /** Listen for changes to a specific preference */\n onChange<K extends keyof T>(key: K, handler: (value: T[K], oldValue: T[K]) => void): () => void\n /** Listen for any preference change */\n onAnyChange(handler: (key: keyof T, value: unknown, oldValue: unknown) => void): () => void\n /** The file path where preferences are stored */\n readonly path: string\n /** Close the preferences (stop file watching) */\n close(): void\n}\n\n// eslint-disable-next-line pickier/no-unused-vars\ntype ChangeHandler = (key: string, value: unknown, oldValue: unknown) => void\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction getDefaultPrefsDir(appName: string): string {\n const os = platform()\n const home = homedir()\n\n switch (os) {\n case 'darwin':\n return join(home, 'Library', 'Application Support', appName)\n case 'win32':\n return join(process.env.APPDATA || join(home, 'AppData', 'Roaming'), appName)\n default:\n return join(home, '.config', appName)\n }\n}\n\n// ============================================================================\n// Implementation\n// ============================================================================\n\nclass PreferencesImpl<T extends Record<string, unknown>> implements Preferences<T> {\n private _defaults: T\n private _data: Record<string, unknown>\n private _path: string\n private _changeHandlers: Map<string, Set<(value: unknown, oldValue: unknown) => void>> = new Map()\n private _anyChangeHandlers: Set<ChangeHandler> = new Set()\n private _watcher: ReturnType<typeof watch> | null = null\n private _writeTimer: ReturnType<typeof setTimeout> | null = null\n private _writing = false\n\n constructor(options: PreferencesOptions<T>) {\n this._defaults = { ...options.defaults }\n\n const dir = options.path\n ? dirname(options.path)\n : getDefaultPrefsDir(options.name)\n\n this._path = options.path || join(dir, 'preferences.json')\n\n // Ensure directory exists\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true })\n }\n\n // Load existing preferences or create with defaults\n this._data = this._load()\n\n // Set up file watcher\n if (options.watch !== false) {\n this._setupWatcher()\n }\n }\n\n get path(): string {\n return this._path\n }\n\n get<K extends keyof T>(key: K): T[K] {\n if (key in this._data) {\n return this._data[key as string] as T[K]\n }\n return this._defaults[key]\n }\n\n set<K extends keyof T>(key: K, value: T[K]): void {\n const oldValue = this.get(key)\n if (JSON.stringify(oldValue) === JSON.stringify(value))\n return\n\n this._data[key as string] = value\n this._scheduleSave()\n this._notifyChange(key as string, value, oldValue)\n }\n\n getAll(): T {\n return { ...this._defaults, ...this._data } as T\n }\n\n has(key: keyof T): boolean {\n return key in this._data\n }\n\n delete(key: keyof T): void {\n if (!(key in this._data))\n return\n const oldValue = this._data[key as string]\n delete this._data[key as string]\n this._scheduleSave()\n this._notifyChange(key as string, this._defaults[key], oldValue)\n }\n\n reset(): void {\n const oldData = { ...this._data }\n this._data = {}\n this._save()\n\n // Notify all changed keys\n for (const key of Object.keys(oldData)) {\n const defaultVal = (this._defaults as Record<string, unknown>)[key]\n this._notifyChange(key, defaultVal, oldData[key])\n }\n }\n\n onChange<K extends keyof T>(key: K, handler: (value: T[K], oldValue: T[K]) => void): () => void {\n const keyStr = key as string\n if (!this._changeHandlers.has(keyStr)) {\n this._changeHandlers.set(keyStr, new Set())\n }\n // eslint-disable-next-line pickier/no-unused-vars\n this._changeHandlers.get(keyStr)!.add(handler as (value: unknown, oldValue: unknown) => void)\n\n return () => {\n // eslint-disable-next-line pickier/no-unused-vars\n this._changeHandlers.get(keyStr)?.delete(handler as (value: unknown, oldValue: unknown) => void)\n }\n }\n\n onAnyChange(handler: ChangeHandler): () => void {\n this._anyChangeHandlers.add(handler)\n return () => {\n this._anyChangeHandlers.delete(handler)\n }\n }\n\n close(): void {\n if (this._watcher) {\n this._watcher.close()\n this._watcher = null\n }\n if (this._writeTimer) {\n clearTimeout(this._writeTimer)\n this._writeTimer = null\n // Flush pending writes\n this._save()\n }\n }\n\n // --------------------------------------------------------------------------\n // Private\n // --------------------------------------------------------------------------\n\n private _load(): Record<string, unknown> {\n try {\n if (existsSync(this._path)) {\n const content = readFileSync(this._path, 'utf-8')\n return JSON.parse(content)\n }\n }\n catch {\n // File doesn't exist or is corrupt, start fresh\n }\n return {}\n }\n\n private _save(): void {\n this._writing = true\n try {\n const json = JSON.stringify({ ...this._defaults, ...this._data }, null, 2)\n writeFileSync(this._path, json, 'utf-8')\n }\n catch (err) {\n console.error(`Failed to save preferences to ${this._path}:`, err)\n }\n finally {\n // Small delay before re-enabling watcher to avoid self-trigger\n setTimeout(() => {\n this._writing = false\n }, 100)\n }\n }\n\n private _scheduleSave(): void {\n if (this._writeTimer) {\n clearTimeout(this._writeTimer)\n }\n // Debounce writes by 50ms\n this._writeTimer = setTimeout(() => {\n this._writeTimer = null\n this._save()\n }, 50)\n }\n\n private _setupWatcher(): void {\n try {\n if (!existsSync(this._path)) {\n // Create the file first so we can watch it\n this._save()\n }\n\n this._watcher = watch(this._path, () => {\n if (this._writing)\n return\n\n // Reload and diff\n const newData = this._load()\n const oldData = { ...this._data }\n this._data = newData\n\n // Find changed keys\n const allKeys = new Set([...Object.keys(oldData), ...Object.keys(newData)])\n for (const key of allKeys) {\n const oldVal = key in oldData ? oldData[key] : (this._defaults as Record<string, unknown>)[key]\n const newVal = key in newData ? newData[key] : (this._defaults as Record<string, unknown>)[key]\n if (JSON.stringify(oldVal) !== JSON.stringify(newVal)) {\n this._notifyChange(key, newVal, oldVal)\n }\n }\n })\n }\n catch {\n // Watcher setup failed, preferences still work without watching\n }\n }\n\n private _notifyChange(key: string, value: unknown, oldValue: unknown): void {\n // Key-specific handlers\n const handlers = this._changeHandlers.get(key)\n if (handlers) {\n for (const handler of handlers) {\n try {\n handler(value, oldValue)\n }\n catch {}\n }\n }\n\n // Any-change handlers\n for (const handler of this._anyChangeHandlers) {\n try {\n handler(key, value, oldValue)\n }\n catch {}\n }\n }\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Create a preferences store for your application.\n *\n * Preferences are stored as JSON in a platform-appropriate location:\n * - macOS: ~/Library/Application Support/{name}/preferences.json\n * - Windows: %APPDATA%/{name}/preferences.json\n * - Linux: ~/.config/{name}/preferences.json\n */\nexport function createPreferences<T extends Record<string, unknown>>(\n options: PreferencesOptions<T>,\n): Preferences<T> {\n return new PreferencesImpl(options)\n}\n",
|
|
13
13
|
"/**\n * Auto-Launch / Login Items (subprocess-based)\n *\n * Manages auto-start by writing platform-specific config files:\n * - macOS: LaunchAgents plist files\n * - Linux: XDG autostart .desktop files\n * - Windows: Registry entries\n *\n * **Choosing between this and `nativeAutoLaunch`:** prefer\n * `nativeAutoLaunch` when running inside a Craft window — it uses\n * `SMAppService` (the modern Apple-recommended API) and doesn't write\n * any files of its own. This module exists for environments without a\n * Craft bridge, or apps that need the LaunchAgent file as a side\n * effect (some launchers honour those even when SMAppService doesn't).\n *\n * @example\n * ```typescript\n * import { setAutoLaunch, isAutoLaunchEnabled } from '@stacksjs/desktop'\n *\n * // Enable auto-launch\n * await setAutoLaunch(true, { appName: 'Barista' })\n *\n * // Check status\n * const enabled = await isAutoLaunchEnabled('Barista')\n *\n * // Disable\n * await setAutoLaunch(false, { appName: 'Barista' })\n * ```\n */\n\nimport { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs'\nimport { join } from 'node:path'\nimport { homedir, platform } from 'node:os'\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface AutoLaunchOptions {\n /** Application name for the login item */\n appName?: string\n /** Path to the application executable. Defaults to process.execPath */\n appPath?: string\n /** Arguments to pass when launching */\n args?: string[]\n /** Start the app hidden/minimized */\n isHidden?: boolean\n}\n\n// ============================================================================\n// Platform Implementations\n// ============================================================================\n\nfunction getLaunchAgentPath(appName: string): string {\n const identifier = appName.toLowerCase().replace(/[^a-z0-9]/g, '-')\n return join(homedir(), 'Library', 'LaunchAgents', `com.${identifier}.plist`)\n}\n\nfunction getLinuxAutostartPath(appName: string): string {\n const configDir = process.env.XDG_CONFIG_HOME || join(homedir(), '.config')\n return join(configDir, 'autostart', `${appName.toLowerCase()}.desktop`)\n}\n\nasync function setAutoLaunchMacOS(enabled: boolean, options: AutoLaunchOptions): Promise<void> {\n const appName = options.appName || 'StxApp'\n const plistPath = getLaunchAgentPath(appName)\n const launchAgentsDir = join(homedir(), 'Library', 'LaunchAgents')\n\n if (enabled) {\n const appPath = options.appPath || process.execPath\n const args = options.args || []\n const programArgs = [appPath, ...args]\n\n const plist = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n <key>Label</key>\n <string>com.${appName.toLowerCase().replace(/[^a-z0-9]/g, '-')}</string>\n <key>ProgramArguments</key>\n <array>\n${programArgs.map(arg => ` <string>${escapeXml(arg)}</string>`).join('\\n')}\n </array>\n <key>RunAtLoad</key>\n <true/>\n <key>KeepAlive</key>\n <false/>\n${options.isHidden ? ` <key>ProcessType</key>\n <string>Background</string>` : ''}\n</dict>\n</plist>`\n\n if (!existsSync(launchAgentsDir)) {\n mkdirSync(launchAgentsDir, { recursive: true })\n }\n\n writeFileSync(plistPath, plist, 'utf-8')\n }\n else {\n if (existsSync(plistPath)) {\n unlinkSync(plistPath)\n }\n }\n}\n\nasync function setAutoLaunchLinux(enabled: boolean, options: AutoLaunchOptions): Promise<void> {\n const appName = options.appName || 'StxApp'\n const desktopPath = getLinuxAutostartPath(appName)\n const autostartDir = join(process.env.XDG_CONFIG_HOME || join(homedir(), '.config'), 'autostart')\n\n if (enabled) {\n const appPath = options.appPath || process.execPath\n const args = options.args || []\n const exec = [appPath, ...args].join(' ')\n\n const desktopEntry = `[Desktop Entry]\nType=Application\nName=${appName}\nExec=${exec}\nTerminal=false\nStartupNotify=false\n${options.isHidden ? 'X-GNOME-Autostart-enabled=true\\nNoDisplay=true' : ''}\n`\n\n if (!existsSync(autostartDir)) {\n mkdirSync(autostartDir, { recursive: true })\n }\n\n writeFileSync(desktopPath, desktopEntry, 'utf-8')\n }\n else {\n if (existsSync(desktopPath)) {\n unlinkSync(desktopPath)\n }\n }\n}\n\nasync function isAutoLaunchEnabledMacOS(appName: string): Promise<boolean> {\n return existsSync(getLaunchAgentPath(appName))\n}\n\nasync function isAutoLaunchEnabledLinux(appName: string): Promise<boolean> {\n const path = getLinuxAutostartPath(appName)\n if (!existsSync(path))\n return false\n\n try {\n const content = readFileSync(path, 'utf-8')\n // Check for explicit disable\n if (content.includes('X-GNOME-Autostart-enabled=false'))\n return false\n if (content.includes('Hidden=true'))\n return false\n return true\n }\n catch {\n return false\n }\n}\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction escapeXml(str: string): string {\n return str\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\n/**\n * Enable or disable auto-launch on system login.\n *\n * On macOS, creates/removes a LaunchAgent plist.\n * On Linux, creates/removes an XDG autostart .desktop file.\n */\nexport async function setAutoLaunch(enabled: boolean, options: AutoLaunchOptions = {}): Promise<void> {\n const os = platform()\n\n switch (os) {\n case 'darwin':\n return setAutoLaunchMacOS(enabled, options)\n case 'linux':\n return setAutoLaunchLinux(enabled, options)\n default:\n throw new Error(`Auto-launch is not yet supported on ${os}`)\n }\n}\n\n/**\n * Check if auto-launch is enabled for the given app.\n */\nexport async function isAutoLaunchEnabled(appName?: string): Promise<boolean> {\n const name = appName || 'StxApp'\n const os = platform()\n\n switch (os) {\n case 'darwin':\n return isAutoLaunchEnabledMacOS(name)\n case 'linux':\n return isAutoLaunchEnabledLinux(name)\n default:\n return false\n }\n}\n",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"/**\n * Serial-port I/O — for IoT, Arduino, label printers, etc.\n *\n * `list()` enumerates `/dev/cu.*` + `/dev/tty.*` (macOS) or\n * `/dev/ttyUSB*` / `/dev/ttyACM*` / `/dev/ttyS*` (Linux). Apps use\n * the resulting paths to populate \"choose device\" UIs.\n *\n * Open + read + write needs platform-specific termios setup; the\n * native side stubs those today and returns `ok:false` with a\n * reason. The list is the part most apps need first (the \"which\n * device\" UI).\n */\n\nimport { hasBridge, onCraftEvent } from './_bridge'\n\nexport interface SerialPort {\n /** Absolute device path (e.g. `/dev/cu.usbmodem14101`). */\n path: string\n}\n\nexport interface SerialDataEvent {\n /** Open-handle id returned from `open()`. */\n id: string\n /** Raw bytes received since the last event. */\n data: number[]\n}\n\nexport interface SerialAPI {\n list: () => Promise<SerialPort[]>\n open: (path: string, baud?: number) => Promise<{ id?: string, ok: boolean, reason?: string }>\n write: (id: string, data: string) => Promise<{ ok: boolean, reason?: string }>\n close: (id: string) => Promise<void>\n onData: (cb: (event: SerialDataEvent) => void) => () => void\n}\n\nexport const serial: SerialAPI = {\n async list() {\n if (!hasBridge('serial')) return []\n return await window.craft!.serial.list()\n },\n async open(path, baud = 9600) {\n if (!path) throw new Error('serial.open: path is required')\n if (!hasBridge('serial')) return { ok: false, reason: 'bridge unavailable' }\n return await window.craft!.serial.open(path, baud)\n },\n async write(id, data) {\n if (!id) throw new Error('serial.write: id is required')\n if (!hasBridge('serial')) return { ok: false, reason: 'bridge unavailable' }\n return await window.craft!.serial.write(id, data)\n },\n async close(id) {\n if (!hasBridge('serial')) return\n await window.craft!.serial.close(id)\n },\n onData(cb) { return onCraftEvent<SerialDataEvent>('craft:serial:data', cb) },\n}\n",
|
|
63
63
|
"/**\n * Capabilities — single place to ask \"is this bridge usable on the\n * current host?\" rather than scattering `hasBridge('xxx')` checks.\n *\n * The TypeScript SDK is largely cross-platform — every module has a\n * sensible fallback when the bridge is missing — but a number of\n * macOS-specific APIs (Vision, AppleScript, Spotlight, Continuity,\n * etc.) only return real data inside a Craft window on macOS.\n *\n * `getCapabilities()` returns a snapshot of which bridges respond. App\n * code can use this to enable or hide UI rather than relying on calls\n * that fail silently.\n */\n\nimport { hasBridge } from './_bridge'\n\n/**\n * The set of bridges the SDK knows about, plus the platforms each is\n * implemented on. Used to power the `capabilities` map and to drive\n * docs / tooling.\n *\n * `'all'` means the bridge has a working web/non-bridge fallback too;\n * `'macos'` means it requires a Craft macOS host; `'native'` means it\n * needs *some* Craft host (mac/linux/windows) but has no web fallback.\n */\nexport type BridgePlatformSupport = 'all' | 'native' | 'macos'\n\nexport interface BridgeCapability {\n /** Bridge namespace as it appears under `window.craft`. */\n name: string\n /** Where the bridge is implemented today. */\n support: BridgePlatformSupport\n /** True when the bridge is reachable from the current host. */\n available: boolean\n}\n\n/**\n * Authoritative list. Keep in sync with the TS modules + native side.\n * When a new bridge ships, add a row here; the public capabilities\n * surface picks it up automatically.\n */\nconst BRIDGE_INDEX: Array<{ name: string, support: BridgePlatformSupport }> = [\n // Cross-platform with sensible web fallback\n { name: 'fs', support: 'native' },\n { name: 'shell', support: 'native' },\n { name: 'system', support: 'all' },\n { name: 'clipboard', support: 'all' },\n { name: 'dialog', support: 'all' },\n { name: 'window', support: 'native' },\n { name: 'tray', support: 'native' },\n { name: 'menu', support: 'native' },\n { name: 'theme', support: 'all' },\n { name: 'screen', support: 'all' },\n { name: 'network', support: 'all' },\n { name: 'power', support: 'all' },\n { name: 'battery', support: 'all' },\n { name: 'notifications', support: 'all' },\n { name: 'globalShortcuts', support: 'native' },\n { name: 'autolaunch', support: 'native' },\n { name: 'appInfo', support: 'all' },\n { name: 'localServer', support: 'native' },\n { name: 'bluetooth', support: 'native' },\n { name: 'crashReporter', support: 'all' },\n { name: 'updater', support: 'native' },\n { name: 'iap', support: 'macos' },\n { name: 'keychain', support: 'native' },\n { name: 'log', support: 'all' },\n\n // macOS-specific\n { name: 'biometric', support: 'macos' },\n { name: 'location', support: 'macos' },\n { name: 'audio', support: 'macos' },\n { name: 'deepLink', support: 'native' },\n { name: 'handoff', support: 'macos' },\n { name: 'liveActivities', support: 'macos' },\n { name: 'touchbar', support: 'macos' },\n { name: 'dragOut', support: 'macos' },\n { name: 'appleScript', support: 'macos' },\n { name: 'fileAssociations', support: 'native' },\n { name: 'tags', support: 'macos' },\n { name: 'pdf', support: 'macos' },\n { name: 'bonjour', support: 'macos' },\n { name: 'spotlight', support: 'macos' },\n { name: 'speechRecognition', support: 'macos' },\n { name: 'vision', support: 'macos' },\n { name: 'midi', support: 'macos' },\n { name: 'coreml', support: 'macos' },\n { name: 'continuityCamera', support: 'macos' },\n { name: 'serviceMenu', support: 'macos' },\n { name: 'serial', support: 'native' },\n]\n\n/**\n * Snapshot of every known bridge's availability on the current host.\n * Re-call after the bridge IIFE loads (e.g. `DOMContentLoaded`) — the\n * `available` field is computed against `window.craft` at call time.\n */\nexport function getCapabilities(): BridgeCapability[] {\n return BRIDGE_INDEX.map(({ name, support }) => ({\n name,\n support,\n available: hasBridge(name),\n }))\n}\n\n/**\n * Lookup a single capability by name. Returns `undefined` for bridges\n * the SDK doesn't know about.\n */\nexport function getCapability(name: string): BridgeCapability | undefined {\n const entry = BRIDGE_INDEX.find(b => b.name === name)\n if (!entry) return undefined\n return { ...entry, available: hasBridge(name) }\n}\n\n/**\n * Convenience predicate — `true` when a bridge is *both* known to the\n * SDK and currently reachable.\n */\nexport function isAvailable(name: string): boolean {\n const cap = getCapability(name)\n return !!cap && cap.available\n}\n"
|
|
64
64
|
],
|
|
65
|
-
"mappings": "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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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",
|
|
66
|
-
"debugId": "
|
|
65
|
+
"mappings": "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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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",
|
|
66
|
+
"debugId": "D139D4159F3DC4BC64756E2164756E21",
|
|
67
67
|
"names": []
|
|
68
68
|
}
|
package/dist/types.d.ts
CHANGED
|
@@ -25,10 +25,11 @@ export declare interface SidebarSection {
|
|
|
25
25
|
collapsed?: boolean
|
|
26
26
|
items: SidebarItem[]
|
|
27
27
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Native sidebar configuration
|
|
30
|
-
*/
|
|
31
28
|
export declare interface SidebarConfig {
|
|
29
|
+
variant?: SidebarVariant
|
|
30
|
+
material?: SidebarMaterial
|
|
31
|
+
backgroundEffect?: SidebarBackgroundEffect
|
|
32
|
+
allowsVibrancy?: boolean
|
|
32
33
|
sections: SidebarSection[]
|
|
33
34
|
minWidth?: number
|
|
34
35
|
maxWidth?: number
|
|
@@ -142,6 +143,12 @@ export declare interface ModalResult {
|
|
|
142
143
|
buttonIndex: number
|
|
143
144
|
cancelled: boolean
|
|
144
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Native sidebar configuration
|
|
148
|
+
*/
|
|
149
|
+
export type SidebarVariant = 'tahoe' | 'vibrancy' | 'solid' | 'transparent' | 'workspace' | 'desktop';
|
|
150
|
+
export type SidebarMaterial = 'auto' | 'sidebar' | 'hud' | 'popover' | 'content';
|
|
151
|
+
export type SidebarBackgroundEffect = 'none' | 'vibrancy' | 'shimmer';
|
|
145
152
|
/**
|
|
146
153
|
* System tray menu item
|
|
147
154
|
*/
|
package/package.json
CHANGED