Skip to content

Conversation

@mdatelle
Copy link
Contributor

@mdatelle mdatelle commented Mar 25, 2025

Summary by CodeRabbit

  • Refactor

    • Improved type safety and consistency across UI components by leveraging centralized type definitions.
  • Chores

    • Updated and consolidated UI component dependencies by migrating from a previous library to a new one and refining package configurations.
  • Style

    • Standardized code formatting for uniform syntax and improved readability.
  • Tests

    • Expanded testing configuration to include additional file types for enhanced test coverage.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 25, 2025

Walkthrough

This pull request refactors multiple UI components within the unraid-ui repository. It updates property types (e.g., BadgeProps, ButtonProps, SheetContentProps) to use centralized variant types and standardizes import sources by replacing references to radix-vue with reka-ui. Several components also receive consistent formatting changes (e.g., using single quotes) and minor adjustments in prop definitions. Additionally, unused bindings (such as teleportTarget in Sidebar) are removed, package dependencies are updated, and TypeScript configuration is expanded to include Vue files.

Changes

File(s) Change Summary
unraid-ui/src/components/common/badge/Badge.vue
unraid-ui/src/components/common/badge/badge.variants.ts
Updated BadgeProps to use BadgeVariants for variant and size; added VariantProps import and centralized type definitions.
unraid-ui/src/components/common/scroll-area/ScrollArea.vue
unraid-ui/src/components/common/scroll-area/ScrollBar.vue
Changed import sources from radix-vue to reka-ui; standardized defineProps formatting (single quotes) and adjusted class binding.
unraid-ui/src/components/common/sheet/SheetContent.vue
unraid-ui/src/components/common/sheet/sheet.variants.ts
Revised SheetContentProps to employ SheetVariants; introduced usage of useTeleport for dynamic teleport target handling.
unraid-ui/src/components/common/stepper/... Updated all stepper-related components (Stepper.vue, StepperDescription.vue, StepperIndicator.vue, StepperItem.vue, StepperSeparator.vue, StepperTitle.vue, StepperTrigger.vue) to import types and components from reka-ui.
unraid-ui/src/components/common/tabs/... Modified Tabs components (Tabs.vue, TabsContent.vue, TabsList.vue, TabsTrigger.vue) to update import sources from radix-vue to reka-ui and standardized props definitions.
unraid-ui/src/components/common/tooltip/... Revised Tooltip components (Tooltip.vue, TooltipContent.vue, TooltipProvider.vue, TooltipTrigger.vue) to import from reka-ui, add missing semicolons, and adjust prop formatting.
unraid-ui/src/components/form/label/Label.vue
unraid-ui/src/components/form/switch/Switch.vue
unraid-ui/src/forms/Select.vue
Adjusted form component imports to reference reka-ui; standardized prop definitions and removed explicit type casting in Select.vue.
web/components/Notifications/Sidebar.vue Removed the unused teleportTarget variable and its binding, simplifying the component.
unraid-ui/stories/components/common/Sheet.stories.ts Removed the unused import of the Vue h function.
unraid-ui/package.json
web/package.json
unraid-ui/tsconfig.test.json
Removed the radix-vue dependency and associated overrides; added a new dev dependency (vite-plugin-vue-tracer), and expanded TS include patterns to cover Vue files.
unraid-ui/src/components/common/button/... Updated ButtonProps to use ButtonVariants for variant and size, with corresponding import and formatting adjustments in computed properties.

Sequence Diagram(s)

sequenceDiagram
  participant SC as SheetContent.vue
  participant UT as useTeleport
  participant DP as DialogPortal
  SC->>UT: Call useTeleport()
  UT-->>SC: Return teleportTarget
  SC->>DP: Pass teleportTarget as "to" prop
Loading

Possibly related PRs

Suggested reviewers

  • zackspear
  • pujitm
  • elibosley

Poem

In our code's realm, a refactor takes flight,
Imports now journey from radix to reka with might.
Types align in harmony, clear and new,
Teleport targets dance in a dynamic view.
A merry tune of change rings true in our sight!
🚀💻🎨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro (Legacy)

📥 Commits

Reviewing files that changed from the base of the PR and between 4063583 and babc65d.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1)
  • web/package.json (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (4)
  • GitHub Check: Test API
  • GitHub Check: Build Web App
  • GitHub Check: Build API
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (2)
web/package.json (2)

70-70: New Dev Dependency: vite-plugin-vue-tracer

The addition of this dependency in the devDependencies section helps enable Vue tracing during development. Please verify that version ^0.1.3 is compatible with our current Nuxt and tooling setup.


117-117: Simplified Overrides

The overrides section has been streamlined to only include "vue": "latest", which aligns with our transition away from radix-vue. Please confirm that the removal of any overrides related to radix-vue does not negatively impact module resolution or integration within the project.


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
unraid-ui/src/components/common/tabs/Tabs.vue (1)

2-3: Refactor imports to use 'reka-ui'.
The updated import statements correctly replace the old dependency ('radix-vue') with 'reka-ui'. Please verify that TabsRoot, useForwardPropsEmits, and their associated types (TabsRootEmits and TabsRootProps) meet the expected interface and behavior to ensure seamless integration across the tabs components.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro (Legacy)

📥 Commits

Reviewing files that changed from the base of the PR and between 6636f65 and 43b0975.

📒 Files selected for processing (24)
  • unraid-ui/src/components/common/badge/Badge.vue (1 hunks)
  • unraid-ui/src/components/common/badge/badge.variants.ts (1 hunks)
  • unraid-ui/src/components/common/scroll-area/ScrollArea.vue (2 hunks)
  • unraid-ui/src/components/common/scroll-area/ScrollBar.vue (2 hunks)
  • unraid-ui/src/components/common/sheet/SheetContent.vue (3 hunks)
  • unraid-ui/src/components/common/sheet/sheet.variants.ts (1 hunks)
  • unraid-ui/src/components/common/stepper/Stepper.vue (1 hunks)
  • unraid-ui/src/components/common/stepper/StepperDescription.vue (1 hunks)
  • unraid-ui/src/components/common/stepper/StepperIndicator.vue (1 hunks)
  • unraid-ui/src/components/common/stepper/StepperItem.vue (1 hunks)
  • unraid-ui/src/components/common/stepper/StepperSeparator.vue (1 hunks)
  • unraid-ui/src/components/common/stepper/StepperTitle.vue (1 hunks)
  • unraid-ui/src/components/common/stepper/StepperTrigger.vue (1 hunks)
  • unraid-ui/src/components/common/tabs/Tabs.vue (1 hunks)
  • unraid-ui/src/components/common/tabs/TabsContent.vue (1 hunks)
  • unraid-ui/src/components/common/tabs/TabsList.vue (1 hunks)
  • unraid-ui/src/components/common/tabs/TabsTrigger.vue (1 hunks)
  • unraid-ui/src/components/common/tooltip/Tooltip.vue (1 hunks)
  • unraid-ui/src/components/common/tooltip/TooltipContent.vue (1 hunks)
  • unraid-ui/src/components/common/tooltip/TooltipProvider.vue (1 hunks)
  • unraid-ui/src/components/common/tooltip/TooltipTrigger.vue (1 hunks)
  • unraid-ui/src/components/form/label/Label.vue (1 hunks)
  • unraid-ui/src/components/form/switch/Switch.vue (1 hunks)
  • web/components/Notifications/Sidebar.vue (1 hunks)
🧰 Additional context used
🧬 Code Definitions (2)
unraid-ui/src/components/common/badge/badge.variants.ts (1)
unraid-ui/src/components/common/badge/index.ts (1)
  • badgeVariants (2-2)
unraid-ui/src/components/common/sheet/sheet.variants.ts (1)
unraid-ui/src/components/common/sheet/index.ts (1)
  • sheetVariants (9-9)
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (41)
unraid-ui/src/components/form/switch/Switch.vue (4)

2-2: Import reordering looks good

The import of cn from the utils library has been properly moved to the top.


7-9: Library dependency updated correctly

The import types are now coming from 'reka-ui' instead of 'radix-vue' as per the refactoring objective. The component maintains its functionality while using the new library.


10-10: Import grouping and ordering adjustment

The vue imports have been moved after the component-specific imports, maintaining a consistent import organization pattern.


12-12: Quote style standardization

Updated the quote style from double quotes to single quotes for the HTMLAttributes['class'] type annotation, improving consistency with the rest of the codebase.

unraid-ui/src/components/common/tabs/TabsList.vue (2)

2-4: Import source changed from radix-vue to reka-ui

The component's import source has been updated from "radix-vue" to "reka-ui" as part of the broader refactoring effort mentioned in the PR objective. The imports have also been reordered following a pattern of local utilities first, then third-party components, followed by Vue utilities.


6-6: Quote style consistency update in props definition

The quote style in the type definition has been changed from double quotes to single quotes (HTMLAttributes["class"]HTMLAttributes['class']). This appears to be a style consistency update that aligns with the project's coding standards.

unraid-ui/src/components/common/tabs/TabsContent.vue (2)

3-3: Package dependency updated from radix-vue to reka-ui.

The import source for TabsContent and TabsContentProps has been changed from radix-vue to reka-ui, which aligns with the PR objective to swap out radix with reka.


6-6: Style formatting update.

The props definition has been updated to use single quotes instead of double quotes for the class attribute type, maintaining consistency with the project's code style.

unraid-ui/src/components/common/tabs/TabsTrigger.vue (2)

2-4: Import source changed from radix-vue to reka-ui.

The component now imports from 'reka-ui' instead of 'radix-vue', aligned with the PR objective to swap out radix with reka. Import statements have also been standardized with single quotes and slightly reordered.


6-6: Updated props definition style.

The props definition now uses single quotes for the HTMLAttributes['class'] type annotation, maintaining consistency with the import statement formatting.

unraid-ui/src/components/common/tooltip/Tooltip.vue (1)

7-7: Import source updated from radix-vue to reka-ui.

The change follows the PR objective of switching from radix-vue to reka-ui while maintaining the same component functionality.

unraid-ui/src/components/common/tooltip/TooltipTrigger.vue (2)

2-2: Import source updated from radix-vue to reka-ui.

The import source has been successfully updated to use reka-ui instead of radix-vue.


4-4: Added semicolon for consistency.

A semicolon was added to the end of the defineProps statement, improving code style consistency.

unraid-ui/src/components/common/tooltip/TooltipProvider.vue (2)

2-2: Import source updated from radix-vue to reka-ui.

The import source has been successfully updated to use reka-ui instead of radix-vue.


4-4: Added semicolon for consistency.

A semicolon was added to the end of the defineProps statement, improving code style consistency.

unraid-ui/src/components/common/tooltip/TooltipContent.vue (4)

2-3: Reordered imports for better organization.

Local imports (useTeleport and cn) have been moved to the top, which is a common practice for import organization.


4-10: Updated import source from radix-vue to reka-ui.

The import source has been successfully updated to use reka-ui instead of radix-vue, consistent with the other tooltip components.


11-11: Reorganized Vue imports.

Vue-specific imports have been moved after the component imports, improving code organization.


17-20: Reformatted props definition for better readability.

The withDefaults call has been reformatted into a more concise style while maintaining the same functionality.

unraid-ui/src/components/form/label/Label.vue (2)

2-4: Import Adjustments: Transition to reka-ui is correctly applied.

The updated import statement for Label and LabelProps now coming from 'reka-ui' (instead of "radix-vue") meets the PR objectives and maintains consistency across the project. The reordering for cn, computed, and HTMLAttributes is clear and follows project style guidelines.


6-6: Props Definition Syntax Update.

Switching to single quotes in the type declaration (HTMLAttributes['class']) improves consistency and aligns with the project's coding style.

unraid-ui/src/components/common/sheet/SheetContent.vue (1)

2-2: Improved type safety and teleport handling

The changes to this component improve both type safety and teleport handling:

  1. Imported useTeleport composable to manage teleport targets dynamically
  2. Updated prop types to use the SheetVariants interface instead of string literals
  3. The DialogPortal now uses the dynamically determined teleportTarget instead of a static prop

This refactoring centralizes teleport target management and enforces better type checking through the sheet variants.

Also applies to: 14-14, 17-18, 25-26, 47-47

unraid-ui/src/components/common/sheet/sheet.variants.ts (1)

1-1: Added type exports and standardized string formatting

This change adds a proper type export for sheet variants and standardizes string formatting to single quotes. The exported SheetVariants type enables better type inference when using sheet variants throughout the application.

Also applies to: 4-25, 27-27

unraid-ui/src/components/common/badge/badge.variants.ts (1)

1-1: Added type exports and standardized string formatting

Similar to the sheet variants, this change exports a BadgeVariants type and standardizes string formatting to single quotes. The exported type will improve type checking and code completion when using badge variants in components.

Also applies to: 4-35, 39-39

web/components/Notifications/Sidebar.vue (1)

42-42: Simplified teleport handling

The component no longer explicitly uses teleportTarget, aligning with the changes in SheetContent.vue which now handles teleport targets internally. The component still calls determineTeleportTarget() during prepareToViewNotifications(), ensuring proper teleport functionality.

unraid-ui/src/components/common/scroll-area/ScrollArea.vue (3)

3-3: Library dependency updated from radix-vue to reka-ui

The import source has been changed from 'radix-vue' to 'reka-ui', aligning with the PR objective to swap out radix with reka.


7-7: Quote style standardized to single quotes

The type declaration for HTMLAttributes["class"] has been updated to use single quotes for consistency.


17-17: Template formatting improved

The ScrollAreaRoot component line has been condensed for better readability.

unraid-ui/src/components/common/scroll-area/ScrollBar.vue (4)

3-3: Library dependency updated from radix-vue to reka-ui

The import source has been changed from 'radix-vue' to 'reka-ui', aligning with the PR objective to swap out radix with reka.


7-7: Quote style standardized to single quotes

The type declaration for HTMLAttributes["class"] has been updated to use single quotes for consistency.


9-9: Quote style standardized to single quotes

The default value for orientation has been updated to use single quotes.


27-28: Template conditional expressions simplified

The orientation class conditional expressions have been reformatted for better readability.

unraid-ui/src/components/common/badge/Badge.vue (2)

4-4: Added import for centralized badge variants

Imported badgeVariants and BadgeVariants type from a dedicated variants file, improving type organization.


7-8: Improved type references for variant and size

Replaced inline string literal unions with references to the centralized BadgeVariants type. This improves maintainability by centralizing variant definitions and ensures consistency across the application.

unraid-ui/src/components/common/stepper/StepperIndicator.vue (1)

3-4: Successfully transitioned from radix-vue to reka-ui

The imports have been updated to use reka-ui instead of radix-vue. The change is clean and the fact that no other modifications were needed suggests good API compatibility between the libraries.

unraid-ui/src/components/common/stepper/StepperTitle.vue (1)

3-4: Successfully transitioned from radix-vue to reka-ui

The import statements have been updated from radix-vue to reka-ui. The change is consistent with the other components and maintains the same functionality.

unraid-ui/src/components/common/stepper/StepperItem.vue (1)

3-4: Successfully transitioned from radix-vue to reka-ui

The import statements have been cleanly updated. The component continues to use the same API, suggesting that reka-ui maintains compatible interfaces with radix-vue.

unraid-ui/src/components/common/stepper/StepperDescription.vue (1)

3-4: Successfully transitioned from radix-vue to reka-ui

The import statements have been updated correctly. The consistent pattern across all stepper components indicates a well-executed library transition.

unraid-ui/src/components/common/stepper/StepperTrigger.vue (1)

3-4:

Details

❓ Verification inconclusive

Imports updated from radix-vue to reka-ui correctly.

The change from radix-vue to reka-ui is consistent with the PR objectives. Please ensure that reka-ui provides the same interface for StepperTrigger and useForwardProps to maintain compatibility.


🏁 Script executed:

#!/bin/bash
# Check if the reka-ui package exports the same components and types
rg -p "export.*StepperTrigger|export.*useForwardProps" --type js --type ts node_modules/reka-ui

Length of output: 158


Action Required: Confirm ‘reka-ui’ Package Availability and Interface Compatibility

The updated imports from radix-vue to reka-ui look correct. However, the initial verification script did not locate a "node_modules/reka-ui" directory. Please manually verify that the "reka-ui" package is correctly installed (or otherwise available) and that it exports both StepperTrigger and useForwardProps with the expected interface to maintain compatibility.

unraid-ui/src/components/common/stepper/StepperSeparator.vue (1)

3-4: Imports updated from radix-vue to reka-ui correctly.

The import changes are consistent with the PR objectives of swapping radix-vue with reka-ui. The component functionality remains unchanged.

unraid-ui/src/components/common/stepper/Stepper.vue (1)

3-4:

Details

✅ Verification successful

Imports updated from radix-vue to reka-ui correctly.

The import changes for the Stepper root component match the PR objectives and are consistent with the changes in the other stepper components.


🌐 Web query:

What is reka-ui and how does it compare to radix-vue?

💡 Result:

Reka UI is an open-source UI component library for Vue.js that prioritizes accessibility, customization, and developer experience. Originally rebranded from Radix Vue in its v2 evolution, it serves as a modern successor while maintaining core principles from both Radix UI and its Vue implementation[1][8].

Key Features of Reka UI

  • Accessibility-focused: Implements WAI-ARIA patterns with built-in keyboard navigation and screen reader support[1][18]
  • Unstyled components: Provides fully customizable base components without imposed styling[1][5]
  • Vue 3 optimized: Built for Composition API with TypeScript support and tree-shaking[5][12]
  • Enhanced component library: Offers 55+ primitives compared to Radix Vue's original set[2][5]
  • Modern tooling: Integrates with Tailwind CSS v4 and introduces Tailwind Variants for dynamic styling[2][5]

Comparison with Radix Vue

Feature Radix Vue Reka UI
Branding Community-led Vue port Official rebranded version
Component Count ~30 primitives 55+ primitives[2][5]
Styling System Basic Tailwind Tailwind Variants[5]
Form Component APIs v-model:checked syntax Simplified v-model[4]
Nuxt Integration Separate module Built-in Nuxt support[4][12]
Filter Controls Basic implementation Redesigned Combobox API[4]
CSS Variables --radix-* prefix --reka-* prefix[4]
Performance Standard bundle Improved tree-shaking[1]

Key Improvements in Reka UI

  1. Expanded component library: Adds new patterns like TagsInput and enhanced Combobox functionality[6][11]
  2. Modernized APIs:
    • Simplified form component bindings (e.g., v-model instead of v-model:checked)[4]
    • Improved SSR support and state management[6]
  3. TypeScript integration: Full type safety with auto-completion for props and themes[5]
  4. Active development: Regular updates addressing component-specific issues and feature requests[6][17]

Migration Path

Developers can transition from Radix Vue through:

  1. Package replacement: npm add reka-ui[4]
  2. Global search/replace for imports and CSS variables[4]
  3. API adjustments for form controls and Combobox components[4][6]

Reka UI maintains Radix Vue's commitment to accessibility while offering expanded capabilities through its Vue 3-first design and modern tooling integrations[1][5][8]. For new Vue projects, it represents the recommended evolution of the Radix Vue concept with improved developer ergonomics and component depth.

Citations:


Reka UI migration confirmed:
The update in unraid-ui/src/components/common/stepper/Stepper.vue now correctly imports both types and components from the rebranded Reka UI library. This change aligns with the PR objectives, reflects the modernized API and improved feature set of Reka UI compared to the legacy Radix Vue, and is consistent with the updates seen across other stepper components.

Copy link
Member

@elibosley elibosley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's chat about that type change if you'd like. This looks great otherwise!

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro (Legacy)

📥 Commits

Reviewing files that changed from the base of the PR and between 79af98c and 4043423.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (5)
  • unraid-ui/package.json (1 hunks)
  • unraid-ui/src/components/common/button/Button.vue (1 hunks)
  • unraid-ui/src/components/common/button/button.variants.ts (1 hunks)
  • web/components/Notifications/Sidebar.vue (1 hunks)
  • web/package.json (0 hunks)
💤 Files with no reviewable changes (1)
  • web/package.json
🧰 Additional context used
🧬 Code Definitions (1)
unraid-ui/src/components/common/button/button.variants.ts (2)
unraid-ui/src/index.ts (1)
  • buttonVariants (92-92)
unraid-ui/src/components/common/button/index.ts (1)
  • buttonVariants (2-2)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Build Web App
  • GitHub Check: Build API
  • GitHub Check: Cloudflare Pages
🔇 Additional comments (9)
web/components/Notifications/Sidebar.vue (2)

42-42: Simplified teleport handling

The removal of teleportTarget from the destructuring assignment simplifies the component by eliminating explicit teleportation handling. This is consistent with the PR's objective of migrating from radix-vue to reka-ui, which appears to handle teleportation internally.


129-132: Improved SheetContent implementation

The :to prop has been removed from SheetContent, which is consistent with the teleport handling changes. The new reka-ui implementation appears to manage teleportation internally, making the component usage cleaner.

unraid-ui/src/components/common/button/button.variants.ts (3)

1-1: Appropriate import addition.

Adding the VariantProps import is necessary for the new type export at the end of the file.


4-4: Consistent string formatting.

Changed double quotes to single quotes for string literals throughout the file, maintaining consistency with the project's style.

Also applies to: 8-13, 16-19, 23-24


29-29: Good type export addition.

Adding the ButtonVariants type export improves type safety by providing a centralized type definition for button variants and sizes that can be used throughout the application.

unraid-ui/src/components/common/button/Button.vue (4)

2-4: Well-organized imports.

Imports are now logically ordered (internal utilities, Vue core, local modules) and include the new ButtonVariants type.


7-8: Improved type safety.

Replacing string literal types with ButtonVariants references creates a single source of truth for button variants and sizes, making the component more maintainable.


13-14: Consistent string formatting.

Changed double quotes to single quotes in default values, maintaining consistency with the rest of the codebase.


18-18: Simplified return statement.

The computed property's return statement is now more concise without sacrificing readability.

@mdatelle mdatelle force-pushed the refactor/switch-to-reka-ui branch from 1b5f53a to 4063583 Compare March 26, 2025 15:25
@zackspear zackspear requested a review from elibosley March 26, 2025 17:44
@github-actions
Copy link
Contributor

This plugin has been deployed to Cloudflare R2 and is available for testing.
Download it at this URL:

https://preview.dl.unraid.net/unraid-api/tag/PR1271/dynamix.unraid.net.plg

@mdatelle mdatelle merged commit 78cfe9a into main Mar 26, 2025
8 checks passed
@mdatelle mdatelle deleted the refactor/switch-to-reka-ui branch March 26, 2025 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants