Commit graph

412 commits

Author SHA1 Message Date
ByteAtATime
55763bd497
feat(detail): tweak component styles and structure
This commit enhances the Detail, MetadataLabel, MetadataLink, MetadataSeparator, and MetadataTagListItem components by refining their styles and structure. Changes include adjustments to class names for better responsiveness, removal of unnecessary elements, and updates to button and heading styles for improved consistency and visual appeal.
2025-06-30 15:09:42 -07:00
ByteAtATime
82db9457bf
refactor(detail): remove loading indicator from detail component
Because the loading indicator logic has been consolidated in the header/input, this is not needed anymore.
2025-06-30 13:33:38 -07:00
ByteAtATime
cc2fbba7fe
refactor(header): simplify search bar accessory rendering 2025-06-30 13:32:38 -07:00
ByteAtATime
8da06e34fb
feat(header): update back button styles 2025-06-30 13:30:16 -07:00
ByteAtATime
69cc4d0778
feat(loading): add background to loading indicator 2025-06-30 13:22:36 -07:00
ByteAtATime
3948e69b82
feat(dropdown): tweak input height and item spacing 2025-06-30 13:19:01 -07:00
ByteAtATime
930461e71b
feat(dropdown): adjust dropdown styles
This commit modifies the AccessoryDropdown component by importing ChevronDown alongside ChevronsUpDown, updating the button's width and height, and refining the icon size. Additionally, it changes the dropdown item type from ListDropdownItemProps to DropdownItemProps for better type consistency. The DropdownItem component has been updated to remove the CheckIcon, and the command input has had the SearchIcon removed for a cleaner design.
2025-06-30 13:03:07 -07:00
ByteAtATime
beafaffb73
feat(tauri): update window dimensions to 774x474 2025-06-30 11:50:17 -07:00
ByteAtATime
43feacbf2b
feat(grid): tweak grid spacing
This commit updates the basic styles for the Grid component. Specifically, it sets:
- Horizontal padding to 16px
- Content size to 115x115px (not sure if this is correct)
- Border for content in each item
- Left align text
- 4px margin below content, no margin between title and subtitle
- 8px vertical gap, 10px horizontal gap
- 4px gap between section header and contents (implemented with `-mb-1`)
2025-06-30 11:50:10 -07:00
ByteAtATime
1ac4562678
fix(props): use ViewSectionProps instead of legacy List/GridSectionProps 2025-06-30 11:31:55 -07:00
ByteAtATime
efcd5dba67
feat(command-palette): display Raycast logo in command palette
This commit dynamically switches between two Raycast logos depending on light/dark mode. To accomplish this, the base ActionBar component had to accept a title of type Snippet.
2025-06-30 11:25:33 -07:00
ByteAtATime
20395ae8ee
style(backend): formatting 2025-06-30 11:06:09 -07:00
ByteAtATime
8284ec5d4f
style(client): formatting 2025-06-30 11:05:55 -07:00
ByteAtATime
8f7ad190f9
feat(header): add 8px margin below headers 2025-06-30 11:05:29 -07:00
ByteAtATime
6622c07b21
feat(header): update header styles
This commit changes the header styles to alignw ith Raycast. Specifically, it sets:
- Text to "Search for apps and commands..."
- Height to 60px
- Horizontal padding to 16px
- Text size to `text-lg`
2025-06-30 11:01:37 -07:00
ByteAtATime
e872dd25fb
refactor(client): extract header inputs to shared component
This commit introduces a new `HeaderInput.svelte` component to standardize the appearance and behavior of all header-level inputs across the application. updates the inputs in views like the command palette, extensions store, clipboard history, and file search, removing duplicated styles and ensuring a consistent user interface. It also exports the InputProps type from the input component to be used in HeaderInput.
2025-06-30 10:53:39 -07:00
ByteAtATime
94871214a6
fix(list): add !important to isSelected styles
Because the hover: selector has a higher priority than `bg-accent`, it would override the styles.
2025-06-30 10:42:47 -07:00
ByteAtATime
327ec3cf7d
feat(footer): reorder action buttons to hide separator when highlighted
This commit moves the separator to be the last element in its parent, using `order-[n]` classes to maintain the original order. This way, we can attach "peer" classes to the buttons, allowing the separator to disappear when any peer button is hovered (`peer-hover:opacity-0`).

In the future, this may lead to weird issues with the divs not being exactly the same as the buttons. If this is the case, we may have to pass down the class. However, it should be "good enough" for now.
2025-06-30 10:25:19 -07:00
ByteAtATime
613e260996
feat(footer): update primary action button and ActionMenu trigger to use size "action" 2025-06-30 10:23:01 -07:00
ByteAtATime
e4e98b8bb8
feat(footer): adjust sizing in Footer and ActionBar
This commit updates the layout to be the same as Raycast. In particular:
- Sets height to 40px
- Horizontal padding to 12px**

** - we only set the padding to 8px because the button padding will make up for the other 4px. We may have to update the left padding in the future.
2025-06-30 10:20:44 -07:00
ByteAtATime
7779957c1b
feat(button): add new action size for button
This size is intended for Raycast's action buttons at the bottom right. Specifically, it has a left margin of 8px (for text) and a right margin of 4px (for keyboard shortcut). It also has a height of 28px.
2025-06-30 10:16:31 -07:00
ByteAtATime
bd5931e8a2
feat(list): remove icon wrapper
The wrapper for the icon was causing unintended cropping of the icon. It was not needed in the first place, so it has been removed.
2025-06-30 09:48:45 -07:00
ByteAtATime
79bb6bdd91
feat(list): slightly tweak spacing for list
This commit updates the spacing for the list and list item components. In particular, it sets:
- left and right margin to 8px
- x-padding to 8px
- height to 48px
- border radius to ~6-7px
- horizontal spacing to 12px
2025-06-30 09:42:05 -07:00
ByteAtATime
dc38b38611
feat(backend): only hide window on unfocus in production 2025-06-30 09:30:50 -07:00
ByteAtATime
5b064d5b66
feat(sidecar): use current plugin name in cache namespace
This commit moves the current plugin details, previously in api/index.ts, to the state.ts file. This way, it can be accessed in the cache.ts file, which uses it as the "namespace", used to create the cache data directory.
2025-06-30 09:23:58 -07:00
ByteAtATime
f66d6a2103
fix(kbd): correct capitalization of keyboard shortcut keys
Originally, we had the whole key `.toUpperCase()`, resulting in shortcuts like "Ctrl + ENTER". This changes the behavior to say "Ctrl + Enter", while keeping the capitalization of single characters (e.g. "Ctrl + B")
2025-06-29 20:01:06 -07:00
ByteAtATime
c9e8a0bba2
refactor(actions): centralize action logic and fix primary action execution
This commit introduces a global `actionBus` to decouple the "Enter" key press event from the specific action's implementation. As a result, all action-related logic is now consolidated within `Action.svelte`, which determines its own role (primary/secondary) by observing the global `uiStore`. This ensures that pressing Enter correctly executes the full root action (e.g., copying to clipboard, opening a URL) and its associated listener, which was previously a bug.
2025-06-29 18:30:46 -07:00
ByteAtATime
e90e0de6be
feat(components): add focus and reset commands for form elements
This commit introduces the `FOCUS_ELEMENT` and `RESET_ELEMENT` message schemas and implements corresponding focus and reset functionalities in form components. The imperative bus is utilized to handle these commands, allowing for improved interaction with form elements like TextField, TextArea, and Dropdown.

It also fixes the `onSubmit` logic to pass the values of the form as a single argument, a mapping from IDs to values, as defined in the documentation.
2025-06-29 18:08:06 -07:00
ByteAtATime
27c1410a48
feat(actions): add Action.SubmitForm to action components and update related schemas
This commit accomplishes two things. First of all, it updates the logic in `ui.svelte.ts` to look for the action panel in the root of the Form component. Second, it adds the `Action.SubmitForm` component.
2025-06-29 17:32:14 -07:00
ByteAtATime
68bc075a39
feat(form): implement serializeEvent utility for form input handling
Previously, we were trying to pass the raw event, which gets serialized as `{isTrusted: true}`. This commit serializes it into the `FormEvent` type as defined in @raycast/api. It directly provides the type, target.id, and target.value. It uses a Zod schema for the value, translated directly from the FormValue_2 type in @raycast/api.
2025-06-29 17:06:40 -07:00
ByteAtATime
4a02d12ce4
feat(form): add LinkAccessory component and update related schemas 2025-06-29 16:54:56 -07:00
ByteAtATime
1ccdc97f0c
feat(dropdown): add 'Form.Dropdown.Section' type to DropdownSection component 2025-06-29 16:52:56 -07:00
ByteAtATime
af205594a2
feat(form): add LinkAccessory component to form structure 2025-06-29 16:44:22 -07:00
ByteAtATime
5ddba9d8fe
feat(actions): add ActionSubmitForm to action components 2025-06-29 16:44:15 -07:00
ByteAtATime
a0b303492f
feat(form): add TextField component and update component map 2025-06-29 16:44:09 -07:00
ByteAtATime
e7c96e6e3b
fix(extensions): fix extension list infinite scroll
Now that our extension list has migrated to virtualization, the previously used scroll tracking did not work. This commit adds props to ExtensionListView and BaseList to add the onscroll event listener as well as a bindable reference to the VList.
2025-06-29 16:36:09 -07:00
ByteAtATime
ec74ac81c1
feat(api): add keyboard shortcuts module
This commit introduces a new `keyboard.ts` module that defines key equivalents, modifiers, and common keyboard shortcuts for the application. The `Keyboard` object is exported for use in other parts of the codebase, enhancing keyboard navigation capabilities.
2025-06-29 16:27:54 -07:00
ByteAtATime
cfbd31f51b
refactor(backend): implement Storable trait and refactor database operations
This commit introduces the `Storable` trait to standardize the conversion of database rows into application data structures. It refactors existing manager implementations (`AiUsageManager`, `FrecencyManager`, `QuicklinkManager`, `SnippetManager`) to utilize the new `query` and `execute` methods in the `Store` struct.
2025-06-29 16:11:34 -07:00
ByteAtATime
881fb9f53d
refactor(props): update section props schema in base view
This commit replaces the ListSectionProps schema with the new ViewSectionProps schema in the base view component, ensuring consistency in prop handling for header sections. Additionally, it removes the unused GridSectionProps schema reference, streamlining the code.
2025-06-29 16:09:13 -07:00
ByteAtATime
a83bb9ba8f
refactor(props): consolidate prop schemas for core components
This refactoring centralizes duplicated prop schemas for UI components like Dropdowns, Metadata, and Sections into canonical files. It reduces  redundant schemas across `list.ts`, `grid.ts`, and `form.ts`.
2025-06-29 15:59:55 -07:00
ByteAtATime
7156827585
refactor(backend): abstract database logic into generic Store
This commit introduces a generic `Store` struct to handle all common database operations, such as connection management and schema initialization. All existing manager structs (`QuicklinkManager`, `SnippetManager`, `FrecencyManager`, `ClipboardHistoryManager`, `AiUsageManager`) have been refactored to use this new abstraction.
2025-06-29 15:48:03 -07:00
ByteAtATime
23c222a956
feat: centralize focus management stack
Introduces a new global `focusManager` store to handle focus transitions declaratively across the application. This new system solves a bug where focus would incorrectly return to a menu's trigger button on close, instead of the main search input. By having components request and release focus from a central stack, we ensure focus is always managed predictably, improving keyboard navigation.
2025-06-29 15:25:05 -07:00
ByteAtATime
9058da2419
feat(actions): add constant width to ActionMenu contents
Previously, the width was determined mostly by the contents, meaning each menu basically had its own width. This changes that to add a `w-80` class to the content.
2025-06-29 11:38:33 -07:00
ByteAtATime
8852c73f5a
feat(actions): improve keyboard shortcut display
Previously, the logic for displaying keyboard shortcuts was all over the place. This commit creates a single KeyboardShortcut component that is responsible for displaying it. It slightly changes some styles in the Kbd component, and also adds the Tauri `os` plugin to determine whether to display Mac symbols or Windows names. It also maps cmd to Ctrl on Windows.
2025-06-29 11:32:18 -07:00
ByteAtATime
4a580ce5b9
feat: update kbd styles 2025-06-29 11:19:07 -07:00
ByteAtATime
323697284b
style: formatting 2025-06-29 11:18:49 -07:00
ByteAtATime
a5bd2e9a9a
feat(command-palette): add calculator actions to command palette action bar
This commit adds new actions to the command palette's action bar for calculator items, including options to copy answers and place them in the search bar. The setSearchText function is also introduced for the "put answer in search bar" action.
2025-06-29 10:31:04 -07:00
ByteAtATime
505380a8d7
feat(command-palette): clear search instead of hiding window when applicable
Previously, the main page would hide the window regardless of whether the command palette search bar had any contents or not. This commit changes the behavior to clear the search bar instead, when applicable, *otherwise* close the window.
2025-06-29 10:22:00 -07:00
ByteAtATime
88de3758d0
refactor(page): remove unused Soulver calculation invocation 2025-06-29 10:16:54 -07:00
ByteAtATime
10d6709b44
feat(soulver): add ResultFormatter for evaluation results
This commit introduces the ResultFormatter function, which formats various evaluation results based on their type.
2025-06-29 10:12:05 -07:00