+
{{ $t("location.tree.no_locations") }}
-
-
diff --git a/frontend/components/Maintenance/EditModal.vue b/frontend/components/Maintenance/EditModal.vue
index 07c14848..ff53bfb7 100644
--- a/frontend/components/Maintenance/EditModal.vue
+++ b/frontend/components/Maintenance/EditModal.vue
@@ -1,24 +1,28 @@
-
-
- {{ entry.id ? $t("maintenance.modal.edit_title") : $t("maintenance.modal.new_title") }}
-
-
-
+ {{ entry.id ? $t("maintenance.modal.edit_action") : $t("maintenance.modal.new_action") }}
+
+
+
+
+
-
-
diff --git a/frontend/components/global/CopyText.vue b/frontend/components/global/CopyText.vue
index ed67674c..da5f83f5 100644
--- a/frontend/components/global/CopyText.vue
+++ b/frontend/components/global/CopyText.vue
@@ -1,53 +1,64 @@
-
+
+
+
+
+
+ {{ $t("components.global.copy_text.failed_to_copy") }}
+ {{ isNotHttps ? $t("components.global.copy_text.https_required") : "" }}
+
+
+ {{ $t("components.global.copy_text.learn_more") }}
+
+ {{ $t("components.global.copy_text.documentation") }}
+
+
+
+
+ Continue
+
+
+
-
+
+
+
+
+
+
+
+
+ {{ $t("components.global.page_qr_code.qr_tooltip") }}
+
+
+
diff --git a/frontend/components/global/PasswordScore.vue b/frontend/components/global/PasswordScore.vue
index a0bd41b5..a22d7c60 100644
--- a/frontend/components/global/PasswordScore.vue
+++ b/frontend/components/global/PasswordScore.vue
@@ -1,20 +1,13 @@
{{ $t("components.global.password_score.password_strength") }}: {{ message }}
-
+
+
+
+
+
diff --git a/frontend/components/ui/breadcrumb/BreadcrumbEllipsis.vue b/frontend/components/ui/breadcrumb/BreadcrumbEllipsis.vue
new file mode 100644
index 00000000..cfccf9fe
--- /dev/null
+++ b/frontend/components/ui/breadcrumb/BreadcrumbEllipsis.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+ More
+
+
diff --git a/frontend/components/ui/breadcrumb/BreadcrumbItem.vue b/frontend/components/ui/breadcrumb/BreadcrumbItem.vue
new file mode 100644
index 00000000..42e721cd
--- /dev/null
+++ b/frontend/components/ui/breadcrumb/BreadcrumbItem.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/breadcrumb/BreadcrumbLink.vue b/frontend/components/ui/breadcrumb/BreadcrumbLink.vue
new file mode 100644
index 00000000..bb0e6652
--- /dev/null
+++ b/frontend/components/ui/breadcrumb/BreadcrumbLink.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/breadcrumb/BreadcrumbList.vue b/frontend/components/ui/breadcrumb/BreadcrumbList.vue
new file mode 100644
index 00000000..60856cc4
--- /dev/null
+++ b/frontend/components/ui/breadcrumb/BreadcrumbList.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/breadcrumb/BreadcrumbPage.vue b/frontend/components/ui/breadcrumb/BreadcrumbPage.vue
new file mode 100644
index 00000000..fe43bda6
--- /dev/null
+++ b/frontend/components/ui/breadcrumb/BreadcrumbPage.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/breadcrumb/BreadcrumbSeparator.vue b/frontend/components/ui/breadcrumb/BreadcrumbSeparator.vue
new file mode 100644
index 00000000..a9c47fea
--- /dev/null
+++ b/frontend/components/ui/breadcrumb/BreadcrumbSeparator.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/breadcrumb/index.ts b/frontend/components/ui/breadcrumb/index.ts
new file mode 100644
index 00000000..05909832
--- /dev/null
+++ b/frontend/components/ui/breadcrumb/index.ts
@@ -0,0 +1,7 @@
+export { default as Breadcrumb } from './Breadcrumb.vue'
+export { default as BreadcrumbEllipsis } from './BreadcrumbEllipsis.vue'
+export { default as BreadcrumbItem } from './BreadcrumbItem.vue'
+export { default as BreadcrumbLink } from './BreadcrumbLink.vue'
+export { default as BreadcrumbList } from './BreadcrumbList.vue'
+export { default as BreadcrumbPage } from './BreadcrumbPage.vue'
+export { default as BreadcrumbSeparator } from './BreadcrumbSeparator.vue'
diff --git a/frontend/components/ui/button/Button.vue b/frontend/components/ui/button/Button.vue
index b330368b..8360b20b 100644
--- a/frontend/components/ui/button/Button.vue
+++ b/frontend/components/ui/button/Button.vue
@@ -16,7 +16,12 @@
-
+
diff --git a/frontend/components/ui/button/ButtonGroup.vue b/frontend/components/ui/button/ButtonGroup.vue
index 1f41545f..dc9bf926 100644
--- a/frontend/components/ui/button/ButtonGroup.vue
+++ b/frontend/components/ui/button/ButtonGroup.vue
@@ -10,9 +10,12 @@
:class="
cn(
'inline-flex rounded-lg',
- '[&>*]:rounded-none',
- '[&>*:first-child]:rounded-l-lg',
- '[&>*:last-child]:rounded-r-lg',
+ '[&>[data-button=true]]:rounded-none',
+ '[&>[data-button=true]:first-child]:rounded-l-lg',
+ '[&>[data-button=true]:last-child]:rounded-r-lg',
+ '[&_[data-button=true]]:rounded-none',
+ '[&_[data-button=true][data-pos=start]]:rounded-l-lg',
+ '[&_[data-button=true][data-pos=end]]:rounded-r-lg',
props.class
)
"
diff --git a/frontend/components/ui/card/Card.vue b/frontend/components/ui/card/Card.vue
new file mode 100644
index 00000000..82429a4d
--- /dev/null
+++ b/frontend/components/ui/card/Card.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/card/CardContent.vue b/frontend/components/ui/card/CardContent.vue
new file mode 100644
index 00000000..785913a1
--- /dev/null
+++ b/frontend/components/ui/card/CardContent.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/card/CardDescription.vue b/frontend/components/ui/card/CardDescription.vue
new file mode 100644
index 00000000..d5faedd5
--- /dev/null
+++ b/frontend/components/ui/card/CardDescription.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/card/CardFooter.vue b/frontend/components/ui/card/CardFooter.vue
new file mode 100644
index 00000000..1ed2efe5
--- /dev/null
+++ b/frontend/components/ui/card/CardFooter.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/card/CardHeader.vue b/frontend/components/ui/card/CardHeader.vue
new file mode 100644
index 00000000..951d227e
--- /dev/null
+++ b/frontend/components/ui/card/CardHeader.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/card/CardTitle.vue b/frontend/components/ui/card/CardTitle.vue
new file mode 100644
index 00000000..842e1689
--- /dev/null
+++ b/frontend/components/ui/card/CardTitle.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/card/index.ts b/frontend/components/ui/card/index.ts
new file mode 100644
index 00000000..9ff6d5e7
--- /dev/null
+++ b/frontend/components/ui/card/index.ts
@@ -0,0 +1,6 @@
+export { default as Card } from './Card.vue'
+export { default as CardContent } from './CardContent.vue'
+export { default as CardDescription } from './CardDescription.vue'
+export { default as CardFooter } from './CardFooter.vue'
+export { default as CardHeader } from './CardHeader.vue'
+export { default as CardTitle } from './CardTitle.vue'
diff --git a/frontend/components/ui/checkbox/Checkbox.vue b/frontend/components/ui/checkbox/Checkbox.vue
new file mode 100644
index 00000000..de746b58
--- /dev/null
+++ b/frontend/components/ui/checkbox/Checkbox.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/components/ui/checkbox/index.ts b/frontend/components/ui/checkbox/index.ts
new file mode 100644
index 00000000..8c28c286
--- /dev/null
+++ b/frontend/components/ui/checkbox/index.ts
@@ -0,0 +1 @@
+export { default as Checkbox } from './Checkbox.vue'
diff --git a/frontend/components/ui/command/CommandDialog.vue b/frontend/components/ui/command/CommandDialog.vue
index 825774ec..6356ed26 100644
--- a/frontend/components/ui/command/CommandDialog.vue
+++ b/frontend/components/ui/command/CommandDialog.vue
@@ -12,7 +12,8 @@ const forwarded = useForwardPropsEmits(props, emits)