* Update component props and add GitLab link
- Made `ref` prop optional in TauriLink component
- Added GitLab mirror URL to GitHubProvenanceCard
- Included a link to the GitLab mirror in the card layout
- Adjusted layout for StoreExtDetail component for better responsiveness
- Imported Tooltip component for potential future use
* chore: add parse-github-url dependency and update GitHub parsing logic
- Added `parse-github-url` package as a dependency in `package.json`.
- Updated `parseGitHubRepoFromUri` function to utilize `parse-github-url` for improved URI parsing.
- Introduced `getGitHubRepoMetadata` function to fetch repository metadata using Octokit.
- Updated validation data structure to include optional `repoId`.
- Enhanced tests to cover new functionality and error handling for invalid URIs.
* fix typo
* refactor: update validation data structure and improve function documentation
- Removed optional `repoId` from `ExtensionPublishValidationData` and adjusted related function to reflect this change.
- Added a note in the `validateJsrPackageAsKunkunExtension` function documentation to clarify frontend/backend verification logic.
- Updated `ExtPublishMetadata` to rename `repoId` to `repoNodeId` for clarity.
* refactor: remove GitLab mirror link from GitHubProvenanceCard
- Removed the GitLab mirror URL and its associated link from the GitHubProvenanceCard component.
- Commented out the layout for the GitLab mirror instead of deleting it, preserving the structure for potential future use.
* refactor: simplify GitHub repository URI parsing
- Removed dependency on `parse-github-url` and implemented a regex-based approach for parsing GitHub repository URIs in the `parseGitHubRepoFromUri` function.
- Enhanced error handling for invalid URIs while maintaining the function's output structure.
* feat: add Gitea mirror link to GitHubProvenanceCard
- Introduced a new link to the Gitea mirror repository in the GitHubProvenanceCard component.
- Updated the layout to reflect the new mirror link while removing the commented-out GitLab mirror section.
* refactor: enhance Globe component's location handling
- Updated the Globe component to conditionally render markers based on the provided locations prop.
- Simplified the destructuring of props for better readability.
- Retained default marker locations for cases where no locations are provided.
* pnpm lock
* update deno lock
* chore: update kkrpc and tauri-api-adapter versions, enhance serialization handling
- Bump kkrpc version to 0.2.2 in multiple packages including desktop and api.
- Update tauri-api-adapter version to 0.3.27.
- Introduce a new utility function to determine kkrpc serialization based on API version.
- Refactor RPC channel initialization to include serialization version in desktop extension handling.
- Increment desktop package version to 0.1.36 and api package version to 0.1.7.
* chore: update dependencies in pnpm-lock and package.json
- Upgrade postcss version for autoprefixer to 8.5.3 in pnpm-lock.yaml.
- Add semver package with version 7.7.1 in package.json.
- Update CHANGELOG.md to reflect recent kkrpc upgrades and changes.
* update tauri-plugin-system-info submodule to latest commit cb32fe8
* Update dependencies to latest versions, including valibot to 1.0.0-rc.4 and kkrpc to 0.2.1 across multiple packages. Bump api package version to 0.1.6.
* Update desktop and API package versions; change development server port and URL
* minor ui updates to shiki
* feat: add markdown renderer
* feat(ui): add scroll area component and expand markdown renderer
* feat(ui): expand markdown syntax highlighting with additional language support
* feat(ui): add markdown language support to syntax highlighting
* feat(ui): update markdown syntax highlighting theme to GitHub Dark Default
* feat(ui): add bash language support to markdown syntax highlighting
* feat: add globe component
* Change RetroGrid bg color
* feat: add headless command list to store detail component
* feat: update markdown renderer
Replace svelte-markdown with svelte-exmarkdown, with custom tauri link renderer and code highlight support
* format and fix eslint
* fix: change icon in manifest
* refactor(ui): move BorderBeam component to ui package and update imports
* feat(ui): add new animation components and keyframes utility
* chore(deps): remove svelte-motion and related dependencies
* chore(deps): add svelte-motion and related dependencies
* fix(ui): eslint
* fix: extension store demo image display
* fix(ui): go to settings item in dropdown menu
* format
* refactor(desktop): move ext loading code in store from +page.ts to +page.svelte
try to solve blank screen on slow network
* Revert "refactor(desktop): move ext loading code in store from +page.ts to +page.svelte"
This reverts commit 4a0a695ce615cee695849c64746ba569680ff8c4.
* feat(desktop): add full-screen loading state and border beam animation
- Implement full-screen loading component with BorderBeam animation
- Add fullScreenLoading flag to appState store
- Update extension store pages to use full-screen loading
- Add border beam animation to Tailwind config
- Enhance page loading experience with visual feedback
* feat(desktop): add dance animation to loading screen and update imports
- Add Dance component to FullScreenLoading with subtle background effect
- Remove unused fade transition import from layout
- Update lz-string import in utils to use default import
- Clean up compress test imports
* feat(desktop): add back button to full-screen loading component
- Import ArrowLeftIcon and Constants from @kksh/ui
- Add back button with absolute positioning
- Remove "Go Home" text button
- Enhance loading screen with improved navigation
* refactor(desktop): update BorderBeam component to use Svelte 5 runes
- Add platform-specific icon path selection for Windows
- Enhance app command item rendering with dynamic icon resolution
- Modify icon loading to use applications-rs for Windows icon extraction
- Update Rust icon loading utility to provide more robust error handling
* clean path and exit after onSelect
* format
* do not clean linux app path, and clear search term
---------
Co-authored-by: Huakun Shen <huakun.shen@huakunshen.com>
* chore: comment out auto install for on boarding, its behavior and speed is unpredictable
* fix: clear action when ui template exits
* fix: update extension command search store references
* feat(ui): implement virtual list with advanced search and section handling
- Add @tanstack/svelte-virtual for efficient list rendering
- Integrate Fuse.js for advanced search across list items and sections
- Create dynamic virtual list with support for section headers
- Enhance list view with flexible search and filtering capabilities
- Add new types and components for virtual list management
* chore(desktop): bump package version to 0.1.29
* feat: add paste API to extension API
* feat(desktop): enhance clipboard and hotkey utilities
- Add `hideAndPaste` utility function to simplify window hiding and clipboard pasting
- Adjust key press and sleep timings for more reliable input simulation
- Implement window focus listener in clipboard extension
- Bind input element reference for automatic focus management
* feat(permissions): enhance clipboard permission handling
- Update clipboard permission schema to include paste permission
- Modify clipboard API to check for paste permission before executing
- Refactor permission map and schema for more flexible permission management
* feat(desktop): refactor extension command search and rendering
- Add `svelte-inspect-value` for debugging
- Implement new `ExtCmds` component to replace `ExtCmdsGroup`
- Enhance extension command search with separate Fuse.js instances for installed and dev extensions
- Simplify extension command filtering and rendering logic
- Add derived stores for extension commands with improved type safety
* feat(desktop): improve extension command search filtering
* bump @kksh/api version
* feat(permissions): add clipboard paste permission description
* upgrade tauri-plugin-shellx
* feat(shell): add killPid method to shell API with new permission
* fix: extension new window
* feat(shell): enhance process management and logging in extensions
- Add debug logging for extension process events
- Implement process tracking in UI worker
- Update shell API to support custom process recording
- Modify extension template to demonstrate process spawning
- Refactor shell command handling with improved error handling
* Add killPid extension API to @kksh/api
* chore(deps): update tauri-plugin-shellx-api to version 2.0.15
* pnpm lock
* chore(deps): update dependencies and lock file
- Upgrade ESLint to version 9.21.0
- Update @types/bun to version 1.2.3
- Bump various development dependencies
- Reorganize package.json dependencies in ui package
* chore(deps): update SvelteKit template dependencies
- Add @eslint/js version 9.21.0
- Update package.json dependency order
- Sync pnpm-lock.yaml with package.json changes
* chore: add eslint to desktop
* chore(deps): remove local tauri-plugin-shellx and use published version 2.0.15
* bump desktop to 0.1.28
* feat: add lockHideOnBlur to prevent app hiding during dialogs
* feat: add Fuse.js for advanced search filtering across app sections
* chore: update .prettierignore and clean up imports in AddDevExtForm
* fix(desktop): improve hotkey and paste functionality with refined key press timing
* fix(clipboard): streamline clipboard handling for macOS and add TODO for Windows/Linux support
* removed a comment
* fix(desktop): update version to 0.1.26 and enhance app execution handling for Linux
* fix(desktop): remove redundant app path display in AppsCmds component
* fix: change escape key behavior to navigate home instead of back
* feat: load custom ui extension with http server on Linux
Linux now uses the same loading approach as Windows due to a bug https://github.com/tauri-apps/tauri/issues/12767
* feat: add tauri-plugin-system-info-api dependency to deno.lock
* crosslink issue on linux, and cleanup entire dir
* moved copy_dir_all to rust
* using dircpy instead of diy due to complications
* refactor: move copy_dir_all to jarvis plugin
All commands are in jarvis plugin, this is more organized.
And this API will be exposed to extensions.
---------
Co-authored-by: Huakun Shen <huakun.shen@huakunshen.com>
* feat(shell): add hidden window style to PowerShell script execution
Modify PowerShell script execution to run with hidden window style in both TypeScript API and Rust plugin to prevent visible command windows
* feat(desktop): implement cross-platform paste functionality in clipboard extension
* feat(desktop): enhance hotkey functionality with registration and update methods
* fix(desktop): remove unnecessary border from command root styling
* feat(desktop): add cross-platform paste support for clipboard extension
- Import Tauri OS plugin to detect platform
- Implement platform-specific paste methods for macOS, Windows, and Linux
- Add error handling for unsupported platforms
- Center windows in Tauri configuration
* feat(desktop): extend global key handler to support Linux control key for settings navigation
* feat(desktop): add file system watch support for extensions
- Enable file system watching for package.json and test files
- Update Cargo.toml to include file system watch feature
- Add console logging for file system events
* feat(desktop): add extension auto reload mechanism for dev extensions
- Implement `reloadExtension` method in extensions store
- Add Tauri event for reloading a single extension
- Update UI worker to watch package.json and trigger extension reload
- Add Linux dependencies for building from source in CONTRIBUTING.md
* feat: add publisher link to extension detail
* fix: improve IconMultiplexer and StoreExtDetail component rendering
* feat: add published date to extension details view
* chore: add moment.js and clean up imports in StoreExtDetail
* fix: support cloudflare worker
Otherwise cloudflare worker gets html instead of json
* refactor: move AppsCmds component to desktop app
* bump: version to 0.1.1
* fix: package.json fetching cors error
* fix: improve files field validation in verify command
* feat: make dropdown width in main search input dynamic
* feat(ui): add install button for web extension store
* update submodules
* format
* feat(desktop): disable clipboard auto paste for windows and linux
They are not implemented yet, current code only works for mac
- Add writeToClipboard utility function to handle different clipboard content types
- Implement paste() method to simulate keyboard paste action
- Update onItemSelected to hide app and auto-paste selected clipboard item
- Add core:app:allow-app-hide capability to support app hiding