@brumaombra/ui-vintage 0.1.0
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/LICENSE +21 -0
- package/README.md +78 -0
- package/dist/AlertDialogTitle.vue_vue_type_script_setup_true_lang-CWCr2erD.js +360 -0
- package/dist/AlertDialogTrigger.vue_vue_type_script_setup_true_lang-vNwxOYhM.js +158 -0
- package/dist/BackgroundGrid-Cxvbtefm.js +13 -0
- package/dist/Busy-B65Nd9ec.js +62 -0
- package/dist/BusyIndicator-CnWzSMDb.js +4 -0
- package/dist/BusyIndicator.vue_vue_type_script_setup_true_lang-CYeXMI_V.js +66 -0
- package/dist/CalendarPrevButton.vue_vue_type_script_setup_true_lang-C-WnFnvj.js +3805 -0
- package/dist/Card.vue_vue_type_script_setup_true_lang-6ol3rxy1.js +27 -0
- package/dist/CardTitle.vue_vue_type_script_setup_true_lang-DVAd7AWF.js +112 -0
- package/dist/Collection-CmOoLBo7.js +76 -0
- package/dist/ConfigProvider-D2O0Jles.js +6 -0
- package/dist/ConfirmDialog-DEsvF0b_.js +4 -0
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-BAd1l1zF.js +230 -0
- package/dist/DashboardShell.vue_vue_type_script_setup_true_lang-CT2SQBXv.js +171 -0
- package/dist/DatePicker.vue_vue_type_script_setup_true_lang-D8mev2ha.js +92 -0
- package/dist/DialogClose-BNlqG4G2.js +36 -0
- package/dist/DialogTitle-DXj0nkXn.js +522 -0
- package/dist/DialogTitle.vue_vue_type_script_setup_true_lang-Bw40D4AK.js +174 -0
- package/dist/DialogTrigger-CpyKnu11.js +52 -0
- package/dist/DialogTrigger.vue_vue_type_script_setup_true_lang-DLrFiCsw.js +141 -0
- package/dist/FocusScope-C3mcVwsf.js +454 -0
- package/dist/Input.vue_vue_type_script_setup_true_lang-U778IWa0.js +37 -0
- package/dist/Label.vue_vue_type_script_setup_true_lang-B_fwvfJ-.js +65 -0
- package/dist/MessageDialog-BrowppID.js +4 -0
- package/dist/MessageDialog.vue_vue_type_script_setup_true_lang-Ddih5Isd.js +242 -0
- package/dist/NativeSelectOption.vue_vue_type_script_setup_true_lang-DS87OTLT.js +73 -0
- package/dist/PopoverAnchor.vue_vue_type_script_setup_true_lang-CsfybvZp.js +61 -0
- package/dist/PopoverTrigger.vue_vue_type_script_setup_true_lang-KTcg6Jnl.js +798 -0
- package/dist/PopperContent-BiM0YLO3.js +2144 -0
- package/dist/Primitive-D3IcFg81.js +61 -0
- package/dist/SelectValue.vue_vue_type_script_setup_true_lang-DGAI4hw5.js +2124 -0
- package/dist/Separator-CFm_M4pb.js +87 -0
- package/dist/Separator.vue_vue_type_script_setup_true_lang-COrZ60NR.js +29 -0
- package/dist/SheetTitle.vue_vue_type_script_setup_true_lang-DLoXGMbx.js +175 -0
- package/dist/SheetTrigger.vue_vue_type_script_setup_true_lang-CE2XJNHy.js +62 -0
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-BSbVyZz7.js +20 -0
- package/dist/Slider.vue_vue_type_script_setup_true_lang-D-cAN-4Q.js +802 -0
- package/dist/SliderFormComponent.vue_vue_type_script_setup_true_lang-KPzC_Lmr.js +59 -0
- package/dist/Switch.vue_vue_type_script_setup_true_lang-BWKCycMm.js +226 -0
- package/dist/SwitchFormComponent.vue_vue_type_script_setup_true_lang-XOBEs3pa.js +39 -0
- package/dist/Teleport-CuUn4UkG.js +493 -0
- package/dist/TooltipProvider.vue_vue_type_script_setup_true_lang-DwIfCQjY.js +28 -0
- package/dist/TooltipTrigger.vue_vue_type_script_setup_true_lang-BRyHTWgw.js +1117 -0
- package/dist/VisuallyHidden-udQT2Fmo.js +60 -0
- package/dist/VisuallyHiddenInput-DLAsRwUw.js +142 -0
- package/dist/_plugin-vue_export-helper-1tPrXgE0.js +10 -0
- package/dist/alert-dialog.d.ts +2 -0
- package/dist/alert-dialog.js +13 -0
- package/dist/alert.d.ts +2 -0
- package/dist/alert.js +76 -0
- package/dist/background-grid.d.ts +6 -0
- package/dist/background-grid.js +5 -0
- package/dist/busy-indicator.d.ts +2 -0
- package/dist/busy-indicator.js +6 -0
- package/dist/busy.d.ts +2 -0
- package/dist/busy.js +4 -0
- package/dist/button.d.ts +2 -0
- package/dist/button.js +63 -0
- package/dist/calendar.d.ts +2 -0
- package/dist/calendar.js +15 -0
- package/dist/card.d.ts +2 -0
- package/dist/card.js +11 -0
- package/dist/check-iejznCzf.js +11 -0
- package/dist/chevron-down-DP-oz-sL.js +13 -0
- package/dist/clamp-D5Ye0kJT.js +6 -0
- package/dist/command.d.ts +2 -0
- package/dist/command.js +1122 -0
- package/dist/components/background-grid/BackgroundGrid.vue.d.ts +2 -0
- package/dist/components/background-grid/index.d.ts +2 -0
- package/dist/components/busy-indicator/BusyIndicator.vue.d.ts +2 -0
- package/dist/components/busy-indicator/busy-indicator-state.d.ts +15 -0
- package/dist/components/busy-indicator/index.d.ts +3 -0
- package/dist/components/confirm-dialog/ConfirmDialog.vue.d.ts +2 -0
- package/dist/components/confirm-dialog/confirm-dialog-state.d.ts +37 -0
- package/dist/components/confirm-dialog/index.d.ts +3 -0
- package/dist/components/dashboard-shell/DashboardShell.vue.d.ts +54 -0
- package/dist/components/dashboard-shell/index.d.ts +2 -0
- package/dist/components/message-dialog/MessageDialog.vue.d.ts +2 -0
- package/dist/components/message-dialog/index.d.ts +3 -0
- package/dist/components/message-dialog/message-dialog-state.d.ts +28 -0
- package/dist/components/slider-form-component/SliderFormComponent.vue.d.ts +23 -0
- package/dist/components/slider-form-component/index.d.ts +2 -0
- package/dist/components/switch-form-component/SwitchFormComponent.vue.d.ts +12 -0
- package/dist/components/switch-form-component/index.d.ts +2 -0
- package/dist/components/ui/alert/Alert.vue.d.ts +23 -0
- package/dist/components/ui/alert/AlertDescription.vue.d.ts +21 -0
- package/dist/components/ui/alert/AlertTitle.vue.d.ts +21 -0
- package/dist/components/ui/alert/index.d.ts +8 -0
- package/dist/components/ui/alert-dialog/AlertDialog.vue.d.ts +25 -0
- package/dist/components/ui/alert-dialog/AlertDialogAction.vue.d.ts +22 -0
- package/dist/components/ui/alert-dialog/AlertDialogCancel.vue.d.ts +22 -0
- package/dist/components/ui/alert-dialog/AlertDialogContent.vue.d.ts +36 -0
- package/dist/components/ui/alert-dialog/AlertDialogDescription.vue.d.ts +22 -0
- package/dist/components/ui/alert-dialog/AlertDialogFooter.vue.d.ts +21 -0
- package/dist/components/ui/alert-dialog/AlertDialogHeader.vue.d.ts +21 -0
- package/dist/components/ui/alert-dialog/AlertDialogTitle.vue.d.ts +22 -0
- package/dist/components/ui/alert-dialog/AlertDialogTrigger.vue.d.ts +18 -0
- package/dist/components/ui/alert-dialog/index.d.ts +9 -0
- package/dist/components/ui/busy/Busy.vue.d.ts +27 -0
- package/dist/components/ui/busy/index.d.ts +1 -0
- package/dist/components/ui/button/Button.vue.d.ts +27 -0
- package/dist/components/ui/button/index.d.ts +7 -0
- package/dist/components/ui/calendar/Calendar.vue.d.ts +44 -0
- package/dist/components/ui/calendar/CalendarCell.vue.d.ts +22 -0
- package/dist/components/ui/calendar/CalendarCellTrigger.vue.d.ts +24 -0
- package/dist/components/ui/calendar/CalendarGrid.vue.d.ts +22 -0
- package/dist/components/ui/calendar/CalendarGridBody.vue.d.ts +18 -0
- package/dist/components/ui/calendar/CalendarGridHead.vue.d.ts +22 -0
- package/dist/components/ui/calendar/CalendarGridRow.vue.d.ts +22 -0
- package/dist/components/ui/calendar/CalendarHeadCell.vue.d.ts +22 -0
- package/dist/components/ui/calendar/CalendarHeader.vue.d.ts +22 -0
- package/dist/components/ui/calendar/CalendarHeading.vue.d.ts +28 -0
- package/dist/components/ui/calendar/CalendarNextButton.vue.d.ts +22 -0
- package/dist/components/ui/calendar/CalendarPrevButton.vue.d.ts +22 -0
- package/dist/components/ui/calendar/index.d.ts +13 -0
- package/dist/components/ui/card/Card.vue.d.ts +21 -0
- package/dist/components/ui/card/CardAction.vue.d.ts +21 -0
- package/dist/components/ui/card/CardContent.vue.d.ts +21 -0
- package/dist/components/ui/card/CardDescription.vue.d.ts +21 -0
- package/dist/components/ui/card/CardFooter.vue.d.ts +21 -0
- package/dist/components/ui/card/CardHeader.vue.d.ts +21 -0
- package/dist/components/ui/card/CardTitle.vue.d.ts +21 -0
- package/dist/components/ui/card/index.d.ts +7 -0
- package/dist/components/ui/command/Command.vue.d.ts +40 -0
- package/dist/components/ui/command/CommandDialog.vue.d.ts +32 -0
- package/dist/components/ui/command/CommandEmpty.vue.d.ts +22 -0
- package/dist/components/ui/command/CommandGroup.vue.d.ts +23 -0
- package/dist/components/ui/command/CommandInput.vue.d.ts +7 -0
- package/dist/components/ui/command/CommandItem.vue.d.ts +30 -0
- package/dist/components/ui/command/CommandList.vue.d.ts +22 -0
- package/dist/components/ui/command/CommandSeparator.vue.d.ts +22 -0
- package/dist/components/ui/command/CommandShortcut.vue.d.ts +21 -0
- package/dist/components/ui/command/index.d.ts +90 -0
- package/dist/components/ui/date-picker/DatePicker.vue.d.ts +19 -0
- package/dist/components/ui/date-picker/index.d.ts +2 -0
- package/dist/components/ui/dialog/Dialog.vue.d.ts +25 -0
- package/dist/components/ui/dialog/DialogClose.vue.d.ts +18 -0
- package/dist/components/ui/dialog/DialogContent.vue.d.ts +39 -0
- package/dist/components/ui/dialog/DialogDescription.vue.d.ts +22 -0
- package/dist/components/ui/dialog/DialogFooter.vue.d.ts +24 -0
- package/dist/components/ui/dialog/DialogHeader.vue.d.ts +21 -0
- package/dist/components/ui/dialog/DialogOverlay.vue.d.ts +22 -0
- package/dist/components/ui/dialog/DialogScrollContent.vue.d.ts +36 -0
- package/dist/components/ui/dialog/DialogTitle.vue.d.ts +22 -0
- package/dist/components/ui/dialog/DialogTrigger.vue.d.ts +18 -0
- package/dist/components/ui/dialog/index.d.ts +10 -0
- package/dist/components/ui/field/Field.vue.d.ts +23 -0
- package/dist/components/ui/field/FieldContent.vue.d.ts +21 -0
- package/dist/components/ui/field/FieldDescription.vue.d.ts +21 -0
- package/dist/components/ui/field/FieldError.vue.d.ts +24 -0
- package/dist/components/ui/field/FieldGroup.vue.d.ts +21 -0
- package/dist/components/ui/field/FieldLabel.vue.d.ts +21 -0
- package/dist/components/ui/field/FieldLegend.vue.d.ts +22 -0
- package/dist/components/ui/field/FieldSeparator.vue.d.ts +21 -0
- package/dist/components/ui/field/FieldSet.vue.d.ts +21 -0
- package/dist/components/ui/field/FieldTitle.vue.d.ts +21 -0
- package/dist/components/ui/field/index.d.ts +15 -0
- package/dist/components/ui/input/Input.vue.d.ts +12 -0
- package/dist/components/ui/input/index.d.ts +1 -0
- package/dist/components/ui/label/Label.vue.d.ts +22 -0
- package/dist/components/ui/label/index.d.ts +1 -0
- package/dist/components/ui/native-select/NativeSelect.vue.d.ts +27 -0
- package/dist/components/ui/native-select/NativeSelectOptGroup.vue.d.ts +21 -0
- package/dist/components/ui/native-select/NativeSelectOption.vue.d.ts +21 -0
- package/dist/components/ui/native-select/index.d.ts +3 -0
- package/dist/components/ui/popover/Popover.vue.d.ts +25 -0
- package/dist/components/ui/popover/PopoverAnchor.vue.d.ts +18 -0
- package/dist/components/ui/popover/PopoverContent.vue.d.ts +39 -0
- package/dist/components/ui/popover/PopoverTrigger.vue.d.ts +18 -0
- package/dist/components/ui/popover/index.d.ts +4 -0
- package/dist/components/ui/select/Select.vue.d.ts +28 -0
- package/dist/components/ui/select/SelectContent.vue.d.ts +32 -0
- package/dist/components/ui/select/SelectGroup.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectItem.vue.d.ts +24 -0
- package/dist/components/ui/select/SelectItemText.vue.d.ts +18 -0
- package/dist/components/ui/select/SelectLabel.vue.d.ts +22 -0
- package/dist/components/ui/select/SelectScrollDownButton.vue.d.ts +22 -0
- package/dist/components/ui/select/SelectScrollUpButton.vue.d.ts +22 -0
- package/dist/components/ui/select/SelectSeparator.vue.d.ts +7 -0
- package/dist/components/ui/select/SelectTrigger.vue.d.ts +25 -0
- package/dist/components/ui/select/SelectValue.vue.d.ts +18 -0
- package/dist/components/ui/select/index.d.ts +11 -0
- package/dist/components/ui/separator/Separator.vue.d.ts +10 -0
- package/dist/components/ui/separator/index.d.ts +1 -0
- package/dist/components/ui/sheet/Sheet.vue.d.ts +25 -0
- package/dist/components/ui/sheet/SheetClose.vue.d.ts +18 -0
- package/dist/components/ui/sheet/SheetContent.vue.d.ts +39 -0
- package/dist/components/ui/sheet/SheetDescription.vue.d.ts +22 -0
- package/dist/components/ui/sheet/SheetFooter.vue.d.ts +21 -0
- package/dist/components/ui/sheet/SheetHeader.vue.d.ts +21 -0
- package/dist/components/ui/sheet/SheetOverlay.vue.d.ts +22 -0
- package/dist/components/ui/sheet/SheetTitle.vue.d.ts +22 -0
- package/dist/components/ui/sheet/SheetTrigger.vue.d.ts +18 -0
- package/dist/components/ui/sheet/index.d.ts +8 -0
- package/dist/components/ui/sidebar/Sidebar.vue.d.ts +24 -0
- package/dist/components/ui/sidebar/SidebarContent.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarFooter.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarGroup.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarGroupAction.vue.d.ts +22 -0
- package/dist/components/ui/sidebar/SidebarGroupContent.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarGroupLabel.vue.d.ts +22 -0
- package/dist/components/ui/sidebar/SidebarHeader.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarInput.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarInset.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarMenu.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarMenuAction.vue.d.ts +25 -0
- package/dist/components/ui/sidebar/SidebarMenuBadge.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarMenuButton.vue.d.ts +27 -0
- package/dist/components/ui/sidebar/SidebarMenuButtonChild.vue.d.ts +30 -0
- package/dist/components/ui/sidebar/SidebarMenuItem.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarMenuSkeleton.vue.d.ts +7 -0
- package/dist/components/ui/sidebar/SidebarMenuSub.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarMenuSubButton.vue.d.ts +27 -0
- package/dist/components/ui/sidebar/SidebarMenuSubItem.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarProvider.vue.d.ts +30 -0
- package/dist/components/ui/sidebar/SidebarRail.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarSeparator.vue.d.ts +21 -0
- package/dist/components/ui/sidebar/SidebarTrigger.vue.d.ts +6 -0
- package/dist/components/ui/sidebar/index.d.ts +37 -0
- package/dist/components/ui/sidebar/utils.d.ts +56 -0
- package/dist/components/ui/skeleton/Skeleton.vue.d.ts +6 -0
- package/dist/components/ui/skeleton/index.d.ts +1 -0
- package/dist/components/ui/slider/Slider.vue.d.ts +13 -0
- package/dist/components/ui/slider/index.d.ts +1 -0
- package/dist/components/ui/switch/Switch.vue.d.ts +29 -0
- package/dist/components/ui/switch/index.d.ts +1 -0
- package/dist/components/ui/tooltip/Tooltip.vue.d.ts +24 -0
- package/dist/components/ui/tooltip/TooltipContent.vue.d.ts +30 -0
- package/dist/components/ui/tooltip/TooltipProvider.vue.d.ts +20 -0
- package/dist/components/ui/tooltip/TooltipTrigger.vue.d.ts +18 -0
- package/dist/components/ui/tooltip/index.d.ts +4 -0
- package/dist/confirm-dialog.d.ts +2 -0
- package/dist/confirm-dialog.js +9 -0
- package/dist/createLucideIcon-CCMB2vDW.js +130 -0
- package/dist/dashboard-shell.d.ts +6 -0
- package/dist/dashboard-shell.js +5 -0
- package/dist/date-picker.d.ts +6 -0
- package/dist/date-picker.js +5 -0
- package/dist/dialog.d.ts +2 -0
- package/dist/dialog.js +14 -0
- package/dist/field.d.ts +2 -0
- package/dist/field.js +294 -0
- package/dist/index-C1_fxYhb.js +251 -0
- package/dist/index-Dfi5ESP2.js +299 -0
- package/dist/index-FpH8cK6B.js +44 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +171 -0
- package/dist/info-DZrSmi42.js +15 -0
- package/dist/input.d.ts +2 -0
- package/dist/input.js +4 -0
- package/dist/label.d.ts +2 -0
- package/dist/label.js +4 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/message-dialog.d.ts +2 -0
- package/dist/message-dialog.js +8 -0
- package/dist/native-select.d.ts +2 -0
- package/dist/native-select.js +25 -0
- package/dist/popover.d.ts +2 -0
- package/dist/popover.js +8 -0
- package/dist/select.d.ts +2 -0
- package/dist/select.js +14 -0
- package/dist/separator.d.ts +2 -0
- package/dist/separator.js +4 -0
- package/dist/sheet.d.ts +2 -0
- package/dist/sheet.js +12 -0
- package/dist/sidebar.d.ts +2 -0
- package/dist/sidebar.js +813 -0
- package/dist/skeleton.d.ts +2 -0
- package/dist/skeleton.js +4 -0
- package/dist/slider-form-component.d.ts +6 -0
- package/dist/slider-form-component.js +5 -0
- package/dist/slider.d.ts +2 -0
- package/dist/slider.js +4 -0
- package/dist/style.css +4021 -0
- package/dist/switch-form-component.d.ts +6 -0
- package/dist/switch-form-component.js +5 -0
- package/dist/switch.d.ts +2 -0
- package/dist/switch.js +4 -0
- package/dist/tooltip.d.ts +2 -0
- package/dist/tooltip.js +8 -0
- package/dist/useDirection-SIyEYNxv.js +12 -0
- package/dist/useFocusGuards-tgErlvMF.js +29 -0
- package/dist/useFormControl-7ytzz-r7.js +11 -0
- package/dist/useForwardExpose-CNVHwdF2.js +58 -0
- package/dist/useForwardPropsEmits-DmumnZO5.js +63 -0
- package/dist/useKbd-JjFOu4f7.js +41 -0
- package/dist/usePrimitiveElement-CijaRBgF.js +16 -0
- package/dist/useSize-DO9Z3wC4.js +51 -0
- package/dist/useTypeahead-Dqe1QXq1.js +159 -0
- package/dist/utils-Bz4m9VPB.js +3192 -0
- package/dist/utils-RRmyeqLm.js +16 -0
- package/dist/utils.d.ts +2 -0
- package/dist/utils.js +4 -0
- package/dist/x-2_VzbDS9.js +48 -0
- package/package.json +186 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from "vue";
|
|
2
|
+
import { c as cn } from "./utils-Bz4m9VPB.js";
|
|
3
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
|
+
__name: "Card",
|
|
5
|
+
props: {
|
|
6
|
+
class: {}
|
|
7
|
+
},
|
|
8
|
+
setup(__props) {
|
|
9
|
+
const props = __props;
|
|
10
|
+
return (_ctx, _cache) => {
|
|
11
|
+
return openBlock(), createElementBlock("div", {
|
|
12
|
+
"data-slot": "card",
|
|
13
|
+
class: normalizeClass(
|
|
14
|
+
unref(cn)(
|
|
15
|
+
"bg-card text-card-foreground flex flex-col gap-6 rounded border border-border py-6 transition-colors duration-300 ease-in-out",
|
|
16
|
+
props.class
|
|
17
|
+
)
|
|
18
|
+
)
|
|
19
|
+
}, [
|
|
20
|
+
renderSlot(_ctx.$slots, "default")
|
|
21
|
+
], 2);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
export {
|
|
26
|
+
_sfc_main as _
|
|
27
|
+
};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, renderSlot } from "vue";
|
|
2
|
+
import { c as cn } from "./utils-Bz4m9VPB.js";
|
|
3
|
+
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
4
|
+
__name: "CardAction",
|
|
5
|
+
props: {
|
|
6
|
+
class: {}
|
|
7
|
+
},
|
|
8
|
+
setup(__props) {
|
|
9
|
+
const props = __props;
|
|
10
|
+
return (_ctx, _cache) => {
|
|
11
|
+
return openBlock(), createElementBlock("div", {
|
|
12
|
+
"data-slot": "card-action",
|
|
13
|
+
class: normalizeClass(unref(cn)("col-start-2 row-span-2 row-start-1 self-start justify-self-end", props.class))
|
|
14
|
+
}, [
|
|
15
|
+
renderSlot(_ctx.$slots, "default")
|
|
16
|
+
], 2);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
21
|
+
__name: "CardContent",
|
|
22
|
+
props: {
|
|
23
|
+
class: {}
|
|
24
|
+
},
|
|
25
|
+
setup(__props) {
|
|
26
|
+
const props = __props;
|
|
27
|
+
return (_ctx, _cache) => {
|
|
28
|
+
return openBlock(), createElementBlock("div", {
|
|
29
|
+
"data-slot": "card-content",
|
|
30
|
+
class: normalizeClass(unref(cn)("px-6", props.class))
|
|
31
|
+
}, [
|
|
32
|
+
renderSlot(_ctx.$slots, "default")
|
|
33
|
+
], 2);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
38
|
+
__name: "CardDescription",
|
|
39
|
+
props: {
|
|
40
|
+
class: {}
|
|
41
|
+
},
|
|
42
|
+
setup(__props) {
|
|
43
|
+
const props = __props;
|
|
44
|
+
return (_ctx, _cache) => {
|
|
45
|
+
return openBlock(), createElementBlock("p", {
|
|
46
|
+
"data-slot": "card-description",
|
|
47
|
+
class: normalizeClass(unref(cn)("text-muted-foreground text-sm", props.class))
|
|
48
|
+
}, [
|
|
49
|
+
renderSlot(_ctx.$slots, "default")
|
|
50
|
+
], 2);
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
55
|
+
__name: "CardFooter",
|
|
56
|
+
props: {
|
|
57
|
+
class: {}
|
|
58
|
+
},
|
|
59
|
+
setup(__props) {
|
|
60
|
+
const props = __props;
|
|
61
|
+
return (_ctx, _cache) => {
|
|
62
|
+
return openBlock(), createElementBlock("div", {
|
|
63
|
+
"data-slot": "card-footer",
|
|
64
|
+
class: normalizeClass(unref(cn)("flex items-center px-6 [.border-t]:pt-6", props.class))
|
|
65
|
+
}, [
|
|
66
|
+
renderSlot(_ctx.$slots, "default")
|
|
67
|
+
], 2);
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
72
|
+
__name: "CardHeader",
|
|
73
|
+
props: {
|
|
74
|
+
class: {}
|
|
75
|
+
},
|
|
76
|
+
setup(__props) {
|
|
77
|
+
const props = __props;
|
|
78
|
+
return (_ctx, _cache) => {
|
|
79
|
+
return openBlock(), createElementBlock("div", {
|
|
80
|
+
"data-slot": "card-header",
|
|
81
|
+
class: normalizeClass(unref(cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", props.class))
|
|
82
|
+
}, [
|
|
83
|
+
renderSlot(_ctx.$slots, "default")
|
|
84
|
+
], 2);
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
89
|
+
__name: "CardTitle",
|
|
90
|
+
props: {
|
|
91
|
+
class: {}
|
|
92
|
+
},
|
|
93
|
+
setup(__props) {
|
|
94
|
+
const props = __props;
|
|
95
|
+
return (_ctx, _cache) => {
|
|
96
|
+
return openBlock(), createElementBlock("h3", {
|
|
97
|
+
"data-slot": "card-title",
|
|
98
|
+
class: normalizeClass(unref(cn)("leading-none font-semibold", props.class))
|
|
99
|
+
}, [
|
|
100
|
+
renderSlot(_ctx.$slots, "default")
|
|
101
|
+
], 2);
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
export {
|
|
106
|
+
_sfc_main$5 as _,
|
|
107
|
+
_sfc_main$4 as a,
|
|
108
|
+
_sfc_main$3 as b,
|
|
109
|
+
_sfc_main$2 as c,
|
|
110
|
+
_sfc_main$1 as d,
|
|
111
|
+
_sfc_main as e
|
|
112
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { S as Slot } from "./Primitive-D3IcFg81.js";
|
|
2
|
+
import { u as usePrimitiveElement } from "./usePrimitiveElement-CijaRBgF.js";
|
|
3
|
+
import { ref, provide, inject, defineComponent, watch, h, watchEffect, markRaw, computed } from "vue";
|
|
4
|
+
const ITEM_DATA_ATTR = "data-reka-collection-item";
|
|
5
|
+
function useCollection(options = {}) {
|
|
6
|
+
const { key = "", isProvider = false } = options;
|
|
7
|
+
const injectionKey = `${key}CollectionProvider`;
|
|
8
|
+
let context;
|
|
9
|
+
if (isProvider) {
|
|
10
|
+
const itemMap = ref(/* @__PURE__ */ new Map());
|
|
11
|
+
const collectionRef = ref();
|
|
12
|
+
context = {
|
|
13
|
+
collectionRef,
|
|
14
|
+
itemMap
|
|
15
|
+
};
|
|
16
|
+
provide(injectionKey, context);
|
|
17
|
+
} else context = inject(injectionKey);
|
|
18
|
+
const getItems = (includeDisabledItem = false) => {
|
|
19
|
+
const collectionNode = context.collectionRef.value;
|
|
20
|
+
if (!collectionNode) return [];
|
|
21
|
+
const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));
|
|
22
|
+
const items = Array.from(context.itemMap.value.values());
|
|
23
|
+
const orderedItems = items.sort((a, b) => orderedNodes.indexOf(a.ref) - orderedNodes.indexOf(b.ref));
|
|
24
|
+
if (includeDisabledItem) return orderedItems;
|
|
25
|
+
else return orderedItems.filter((i) => i.ref.dataset.disabled !== "");
|
|
26
|
+
};
|
|
27
|
+
const CollectionSlot = defineComponent({
|
|
28
|
+
name: "CollectionSlot",
|
|
29
|
+
inheritAttrs: false,
|
|
30
|
+
setup(_, { slots, attrs }) {
|
|
31
|
+
const { primitiveElement, currentElement } = usePrimitiveElement();
|
|
32
|
+
watch(currentElement, () => {
|
|
33
|
+
context.collectionRef.value = currentElement.value;
|
|
34
|
+
});
|
|
35
|
+
return () => h(Slot, {
|
|
36
|
+
ref: primitiveElement,
|
|
37
|
+
...attrs
|
|
38
|
+
}, slots);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
const CollectionItem = defineComponent({
|
|
42
|
+
name: "CollectionItem",
|
|
43
|
+
inheritAttrs: false,
|
|
44
|
+
props: { value: { validator: () => true } },
|
|
45
|
+
setup(props, { slots, attrs }) {
|
|
46
|
+
const { primitiveElement, currentElement } = usePrimitiveElement();
|
|
47
|
+
watchEffect((cleanupFn) => {
|
|
48
|
+
if (currentElement.value) {
|
|
49
|
+
const key$1 = markRaw(currentElement.value);
|
|
50
|
+
context.itemMap.value.set(key$1, {
|
|
51
|
+
ref: currentElement.value,
|
|
52
|
+
value: props.value
|
|
53
|
+
});
|
|
54
|
+
cleanupFn(() => context.itemMap.value.delete(key$1));
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return () => h(Slot, {
|
|
58
|
+
...attrs,
|
|
59
|
+
[ITEM_DATA_ATTR]: "",
|
|
60
|
+
ref: primitiveElement
|
|
61
|
+
}, slots);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const reactiveItems = computed(() => Array.from(context.itemMap.value.values()));
|
|
65
|
+
const itemMapSize = computed(() => context.itemMap.value.size);
|
|
66
|
+
return {
|
|
67
|
+
getItems,
|
|
68
|
+
reactiveItems,
|
|
69
|
+
itemMapSize,
|
|
70
|
+
CollectionSlot,
|
|
71
|
+
CollectionItem
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export {
|
|
75
|
+
useCollection as u
|
|
76
|
+
};
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { reactive, render, h, markRaw, defineComponent, computed, openBlock, createBlock, unref, withCtx, createElementVNode, resolveDynamicComponent, createVNode, createTextVNode, toDisplayString, createCommentVNode } from "vue";
|
|
2
|
+
import { _ as _sfc_main$1, a as _sfc_main$2, d as _sfc_main$3, e as _sfc_main$4, b as _sfc_main$5, c as _sfc_main$6 } from "./AlertDialogTitle.vue_vue_type_script_setup_true_lang-CWCr2erD.js";
|
|
3
|
+
import { Button as _sfc_main$7 } from "./button.js";
|
|
4
|
+
import { I as Info } from "./info-DZrSmi42.js";
|
|
5
|
+
const confirmDialogQueue = [];
|
|
6
|
+
let nextConfirmDialogId = 0;
|
|
7
|
+
const DIALOG_CLOSE_DURATION_MS = 300;
|
|
8
|
+
let closeTimer = null;
|
|
9
|
+
let confirmDialogMountPromise = null;
|
|
10
|
+
const CONFIRM_DIALOG_ROOT_ID = "ui-vintage-confirm-dialog-root";
|
|
11
|
+
const confirmDialogState = reactive({
|
|
12
|
+
current: null,
|
|
13
|
+
busy: false,
|
|
14
|
+
isOpen: false
|
|
15
|
+
});
|
|
16
|
+
const markIcon = (icon) => icon ? markRaw(icon) : null;
|
|
17
|
+
const ensureConfirmDialogMounted = () => {
|
|
18
|
+
if (typeof document === "undefined") {
|
|
19
|
+
return Promise.resolve();
|
|
20
|
+
}
|
|
21
|
+
const existingRoot = document.getElementById(CONFIRM_DIALOG_ROOT_ID);
|
|
22
|
+
if (existingRoot) {
|
|
23
|
+
return Promise.resolve();
|
|
24
|
+
}
|
|
25
|
+
if (confirmDialogMountPromise) {
|
|
26
|
+
return confirmDialogMountPromise;
|
|
27
|
+
}
|
|
28
|
+
confirmDialogMountPromise = (async () => {
|
|
29
|
+
const { default: ConfirmDialog } = await import("./ConfirmDialog-DEsvF0b_.js");
|
|
30
|
+
if (document.getElementById(CONFIRM_DIALOG_ROOT_ID)) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const container = document.createElement("div");
|
|
34
|
+
container.id = CONFIRM_DIALOG_ROOT_ID;
|
|
35
|
+
document.body.appendChild(container);
|
|
36
|
+
render(h(ConfirmDialog), container);
|
|
37
|
+
})().finally(() => {
|
|
38
|
+
confirmDialogMountPromise = null;
|
|
39
|
+
});
|
|
40
|
+
return confirmDialogMountPromise;
|
|
41
|
+
};
|
|
42
|
+
const openNextConfirmDialog = () => {
|
|
43
|
+
const nextDialog = confirmDialogQueue.shift() ?? null;
|
|
44
|
+
confirmDialogState.current = nextDialog;
|
|
45
|
+
confirmDialogState.isOpen = Boolean(nextDialog);
|
|
46
|
+
};
|
|
47
|
+
const enqueueConfirmDialog = (request) => {
|
|
48
|
+
confirmDialogQueue.push(request);
|
|
49
|
+
if (!confirmDialogState.current) {
|
|
50
|
+
openNextConfirmDialog();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const clearCurrentConfirmDialog = () => {
|
|
54
|
+
confirmDialogState.busy = false;
|
|
55
|
+
confirmDialogState.isOpen = false;
|
|
56
|
+
confirmDialogState.current = null;
|
|
57
|
+
openNextConfirmDialog();
|
|
58
|
+
};
|
|
59
|
+
const scheduleCloseCurrentConfirmDialog = () => {
|
|
60
|
+
if (!confirmDialogState.current || !confirmDialogState.isOpen) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
confirmDialogState.isOpen = false;
|
|
64
|
+
if (closeTimer) {
|
|
65
|
+
clearTimeout(closeTimer);
|
|
66
|
+
}
|
|
67
|
+
closeTimer = setTimeout(() => {
|
|
68
|
+
closeTimer = null;
|
|
69
|
+
clearCurrentConfirmDialog();
|
|
70
|
+
}, DIALOG_CLOSE_DURATION_MS);
|
|
71
|
+
};
|
|
72
|
+
const closeConfirmDialog = () => {
|
|
73
|
+
const current = confirmDialogState.current;
|
|
74
|
+
if (!current || !confirmDialogState.isOpen) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
current.resolve(false);
|
|
78
|
+
scheduleCloseCurrentConfirmDialog();
|
|
79
|
+
};
|
|
80
|
+
const cancelActiveConfirmDialog = async () => {
|
|
81
|
+
var _a, _b;
|
|
82
|
+
const current = confirmDialogState.current;
|
|
83
|
+
if (!current || confirmDialogState.busy) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
confirmDialogState.busy = true;
|
|
87
|
+
try {
|
|
88
|
+
await ((_b = (_a = current.options).onCancel) == null ? void 0 : _b.call(_a));
|
|
89
|
+
current.resolve(false);
|
|
90
|
+
} finally {
|
|
91
|
+
scheduleCloseCurrentConfirmDialog();
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
const confirmActiveDialog = async () => {
|
|
95
|
+
var _a, _b;
|
|
96
|
+
const current = confirmDialogState.current;
|
|
97
|
+
if (!current || confirmDialogState.busy) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
confirmDialogState.busy = true;
|
|
101
|
+
try {
|
|
102
|
+
await ((_b = (_a = current.options).onConfirm) == null ? void 0 : _b.call(_a));
|
|
103
|
+
current.resolve(true);
|
|
104
|
+
} finally {
|
|
105
|
+
scheduleCloseCurrentConfirmDialog();
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
const showConfirmDialog = (options) => {
|
|
109
|
+
void ensureConfirmDialogMounted();
|
|
110
|
+
return new Promise((resolve) => {
|
|
111
|
+
enqueueConfirmDialog({
|
|
112
|
+
id: nextConfirmDialogId += 1,
|
|
113
|
+
options: {
|
|
114
|
+
title: options.title ?? "Confirm",
|
|
115
|
+
message: options.message,
|
|
116
|
+
confirmText: options.confirmText ?? "Confirm",
|
|
117
|
+
cancelText: options.cancelText ?? "Cancel",
|
|
118
|
+
confirmButtonType: options.confirmButtonType ?? "default",
|
|
119
|
+
cancelButtonType: options.cancelButtonType ?? "outline",
|
|
120
|
+
icon: markIcon(options.icon),
|
|
121
|
+
confirmButtonIcon: markIcon(options.confirmButtonIcon),
|
|
122
|
+
cancelButtonIcon: markIcon(options.cancelButtonIcon),
|
|
123
|
+
onConfirm: options.onConfirm ?? null,
|
|
124
|
+
onCancel: options.onCancel ?? null
|
|
125
|
+
},
|
|
126
|
+
resolve
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
const _hoisted_1 = { class: "px-5 pb-5 pt-5 sm:px-6 sm:pb-4 sm:pt-6" };
|
|
131
|
+
const _hoisted_2 = { class: "flex flex-col gap-4 sm:flex-row sm:items-start" };
|
|
132
|
+
const _hoisted_3 = { class: "flex size-12 shrink-0 self-center items-center justify-center rounded border border-[var(--border-light)] bg-[var(--bg-surface-light)] sm:size-10 sm:self-start dark:border-[var(--border-dark)] dark:bg-[var(--bg-surface-dark)]" };
|
|
133
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
134
|
+
__name: "ConfirmDialog",
|
|
135
|
+
setup(__props) {
|
|
136
|
+
const currentDialog = computed(() => confirmDialogState.current);
|
|
137
|
+
const confirmIcon = computed(() => {
|
|
138
|
+
var _a;
|
|
139
|
+
return ((_a = currentDialog.value) == null ? void 0 : _a.options.icon) ?? Info;
|
|
140
|
+
});
|
|
141
|
+
const handleOpenChange = (open) => {
|
|
142
|
+
if (!open) {
|
|
143
|
+
closeConfirmDialog();
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
return (_ctx, _cache) => {
|
|
147
|
+
return openBlock(), createBlock(unref(_sfc_main$1), {
|
|
148
|
+
open: unref(confirmDialogState).isOpen,
|
|
149
|
+
"onUpdate:open": handleOpenChange
|
|
150
|
+
}, {
|
|
151
|
+
default: withCtx(() => [
|
|
152
|
+
currentDialog.value ? (openBlock(), createBlock(unref(_sfc_main$2), { key: 0 }, {
|
|
153
|
+
default: withCtx(() => [
|
|
154
|
+
createElementVNode("div", _hoisted_1, [
|
|
155
|
+
createElementVNode("div", _hoisted_2, [
|
|
156
|
+
createElementVNode("div", _hoisted_3, [
|
|
157
|
+
(openBlock(), createBlock(resolveDynamicComponent(confirmIcon.value), {
|
|
158
|
+
"stroke-width": 1.8,
|
|
159
|
+
class: "size-6 text-[var(--button-primary-light)] dark:text-[var(--button-primary-dark)]"
|
|
160
|
+
}))
|
|
161
|
+
]),
|
|
162
|
+
createVNode(unref(_sfc_main$3), { class: "sm:pt-0" }, {
|
|
163
|
+
default: withCtx(() => [
|
|
164
|
+
createVNode(unref(_sfc_main$4), null, {
|
|
165
|
+
default: withCtx(() => [
|
|
166
|
+
createTextVNode(toDisplayString(currentDialog.value.options.title), 1)
|
|
167
|
+
]),
|
|
168
|
+
_: 1
|
|
169
|
+
}),
|
|
170
|
+
createVNode(unref(_sfc_main$5), null, {
|
|
171
|
+
default: withCtx(() => [
|
|
172
|
+
createTextVNode(toDisplayString(currentDialog.value.options.message), 1)
|
|
173
|
+
]),
|
|
174
|
+
_: 1
|
|
175
|
+
})
|
|
176
|
+
]),
|
|
177
|
+
_: 1
|
|
178
|
+
})
|
|
179
|
+
])
|
|
180
|
+
]),
|
|
181
|
+
createVNode(unref(_sfc_main$6), null, {
|
|
182
|
+
default: withCtx(() => [
|
|
183
|
+
createVNode(unref(_sfc_main$7), {
|
|
184
|
+
variant: currentDialog.value.options.cancelButtonType,
|
|
185
|
+
disabled: unref(confirmDialogState).busy,
|
|
186
|
+
onClick: unref(cancelActiveConfirmDialog)
|
|
187
|
+
}, {
|
|
188
|
+
default: withCtx(() => [
|
|
189
|
+
currentDialog.value.options.cancelButtonIcon ? (openBlock(), createBlock(resolveDynamicComponent(currentDialog.value.options.cancelButtonIcon), {
|
|
190
|
+
key: 0,
|
|
191
|
+
class: "size-4"
|
|
192
|
+
})) : createCommentVNode("", true),
|
|
193
|
+
createTextVNode(" " + toDisplayString(currentDialog.value.options.cancelText), 1)
|
|
194
|
+
]),
|
|
195
|
+
_: 1
|
|
196
|
+
}, 8, ["variant", "disabled", "onClick"]),
|
|
197
|
+
createVNode(unref(_sfc_main$7), {
|
|
198
|
+
variant: currentDialog.value.options.confirmButtonType,
|
|
199
|
+
disabled: unref(confirmDialogState).busy,
|
|
200
|
+
onClick: unref(confirmActiveDialog)
|
|
201
|
+
}, {
|
|
202
|
+
default: withCtx(() => [
|
|
203
|
+
currentDialog.value.options.confirmButtonIcon ? (openBlock(), createBlock(resolveDynamicComponent(currentDialog.value.options.confirmButtonIcon), {
|
|
204
|
+
key: 0,
|
|
205
|
+
class: "size-4"
|
|
206
|
+
})) : createCommentVNode("", true),
|
|
207
|
+
createTextVNode(" " + toDisplayString(currentDialog.value.options.confirmText), 1)
|
|
208
|
+
]),
|
|
209
|
+
_: 1
|
|
210
|
+
}, 8, ["variant", "disabled", "onClick"])
|
|
211
|
+
]),
|
|
212
|
+
_: 1
|
|
213
|
+
})
|
|
214
|
+
]),
|
|
215
|
+
_: 1
|
|
216
|
+
})) : createCommentVNode("", true)
|
|
217
|
+
]),
|
|
218
|
+
_: 1
|
|
219
|
+
}, 8, ["open"]);
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
export {
|
|
224
|
+
_sfc_main as _,
|
|
225
|
+
closeConfirmDialog as a,
|
|
226
|
+
confirmActiveDialog as b,
|
|
227
|
+
cancelActiveConfirmDialog as c,
|
|
228
|
+
confirmDialogState as d,
|
|
229
|
+
showConfirmDialog as s
|
|
230
|
+
};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { defineComponent, openBlock, createBlock, unref, withCtx, createVNode, renderSlot, createCommentVNode, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString, resolveDynamicComponent, mergeProps, createElementVNode, normalizeClass } from "vue";
|
|
2
|
+
import { B as BackgroundGrid } from "./BackgroundGrid-Cxvbtefm.js";
|
|
3
|
+
import { _ as _sfc_main$e } from "./Separator.vue_vue_type_script_setup_true_lang-COrZ60NR.js";
|
|
4
|
+
import { SidebarProvider as _sfc_main$1, Sidebar as _sfc_main$2, SidebarHeader as _sfc_main$3, SidebarContent as _sfc_main$4, SidebarGroup as _sfc_main$5, SidebarGroupLabel as _sfc_main$6, SidebarGroupContent as _sfc_main$7, SidebarMenu as _sfc_main$8, SidebarMenuItem as _sfc_main$9, SidebarMenuButton as _sfc_main$a, SidebarFooter as _sfc_main$b, SidebarInset as _sfc_main$c, SidebarTrigger as _sfc_main$d } from "./sidebar.js";
|
|
5
|
+
import { c as cn } from "./utils-Bz4m9VPB.js";
|
|
6
|
+
const _hoisted_1 = { class: "grid min-w-0 flex-1 text-left leading-tight" };
|
|
7
|
+
const _hoisted_2 = { class: "truncate font-semibold" };
|
|
8
|
+
const _hoisted_3 = {
|
|
9
|
+
key: 0,
|
|
10
|
+
class: "mt-0.5 text-[11px] leading-4 text-sidebar-foreground/65"
|
|
11
|
+
};
|
|
12
|
+
const _hoisted_4 = { class: "min-w-0 flex-1" };
|
|
13
|
+
const _hoisted_5 = { class: "truncate text-sm font-medium" };
|
|
14
|
+
const _hoisted_6 = {
|
|
15
|
+
key: 0,
|
|
16
|
+
class: "truncate text-xs text-muted-foreground"
|
|
17
|
+
};
|
|
18
|
+
const _hoisted_7 = { class: "relative z-10 min-w-0 flex-1" };
|
|
19
|
+
const _hoisted_8 = { class: "pb-4" };
|
|
20
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
21
|
+
__name: "DashboardShell",
|
|
22
|
+
props: {
|
|
23
|
+
title: { default: "" },
|
|
24
|
+
description: { default: "" },
|
|
25
|
+
collapsible: { default: "offcanvas" },
|
|
26
|
+
sidebarSections: { default: () => [] },
|
|
27
|
+
sidebarLinkComponent: { default: "a" },
|
|
28
|
+
showBackground: { type: Boolean, default: true },
|
|
29
|
+
insetClass: {},
|
|
30
|
+
topbarClass: {},
|
|
31
|
+
contentContainerClass: {}
|
|
32
|
+
},
|
|
33
|
+
setup(__props) {
|
|
34
|
+
const props = __props;
|
|
35
|
+
const getSidebarItemLinkProps = (item) => {
|
|
36
|
+
if (props.sidebarLinkComponent === "a") {
|
|
37
|
+
return { href: item.href ?? "#" };
|
|
38
|
+
}
|
|
39
|
+
return { to: item.to ?? item.href ?? "/" };
|
|
40
|
+
};
|
|
41
|
+
return (_ctx, _cache) => {
|
|
42
|
+
return openBlock(), createBlock(unref(_sfc_main$1), null, {
|
|
43
|
+
default: withCtx(() => [
|
|
44
|
+
createVNode(unref(_sfc_main$2), {
|
|
45
|
+
collapsible: props.collapsible
|
|
46
|
+
}, {
|
|
47
|
+
default: withCtx(() => [
|
|
48
|
+
_ctx.$slots["sidebar-header"] ? (openBlock(), createBlock(unref(_sfc_main$3), {
|
|
49
|
+
key: 0,
|
|
50
|
+
class: "h-16 justify-center border-b border-sidebar-border"
|
|
51
|
+
}, {
|
|
52
|
+
default: withCtx(() => [
|
|
53
|
+
renderSlot(_ctx.$slots, "sidebar-header")
|
|
54
|
+
]),
|
|
55
|
+
_: 3
|
|
56
|
+
})) : createCommentVNode("", true),
|
|
57
|
+
props.sidebarSections.length ? (openBlock(), createBlock(unref(_sfc_main$4), { key: 1 }, {
|
|
58
|
+
default: withCtx(() => [
|
|
59
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(props.sidebarSections, (section) => {
|
|
60
|
+
return openBlock(), createBlock(unref(_sfc_main$5), {
|
|
61
|
+
key: section.id
|
|
62
|
+
}, {
|
|
63
|
+
default: withCtx(() => [
|
|
64
|
+
section.label ? (openBlock(), createBlock(unref(_sfc_main$6), { key: 0 }, {
|
|
65
|
+
default: withCtx(() => [
|
|
66
|
+
createTextVNode(toDisplayString(section.label), 1)
|
|
67
|
+
]),
|
|
68
|
+
_: 2
|
|
69
|
+
}, 1024)) : createCommentVNode("", true),
|
|
70
|
+
createVNode(unref(_sfc_main$7), null, {
|
|
71
|
+
default: withCtx(() => [
|
|
72
|
+
createVNode(unref(_sfc_main$8), { class: "gap-3" }, {
|
|
73
|
+
default: withCtx(() => [
|
|
74
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(section.items, (item) => {
|
|
75
|
+
return openBlock(), createBlock(unref(_sfc_main$9), {
|
|
76
|
+
key: item.id
|
|
77
|
+
}, {
|
|
78
|
+
default: withCtx(() => [
|
|
79
|
+
createVNode(unref(_sfc_main$a), {
|
|
80
|
+
"as-child": "",
|
|
81
|
+
"is-active": item.active,
|
|
82
|
+
class: "group h-auto min-h-12 items-start rounded border border-[var(--border-light)] px-3 py-2.5 text-[var(--text-secondary-light)] transition-all duration-200 hover:border-[var(--border-hover-light)] hover:bg-[var(--bg-selected-light)] hover:text-[var(--text-primary-light)] data-[active=true]:border-[var(--border-hover-light)] data-[active=true]:bg-[var(--bg-selected-light)] data-[active=true]:text-[var(--text-primary-light)] dark:border-[var(--border-dark)] dark:text-[var(--text-secondary-dark)] dark:hover:border-[var(--border-hover-dark)] dark:hover:bg-[var(--bg-selected-dark)] dark:hover:text-[var(--text-primary-dark)] dark:data-[active=true]:border-[var(--border-hover-dark)] dark:data-[active=true]:bg-[var(--bg-selected-dark)] dark:data-[active=true]:text-[var(--text-primary-dark)] sm:px-4 sm:py-3"
|
|
83
|
+
}, {
|
|
84
|
+
default: withCtx(() => [
|
|
85
|
+
(openBlock(), createBlock(resolveDynamicComponent(props.sidebarLinkComponent), mergeProps({ ref_for: true }, getSidebarItemLinkProps(item)), {
|
|
86
|
+
default: withCtx(() => [
|
|
87
|
+
item.icon ? (openBlock(), createBlock(resolveDynamicComponent(item.icon), {
|
|
88
|
+
key: 0,
|
|
89
|
+
"stroke-width": 1.8,
|
|
90
|
+
class: "mt-0.5 h-4 w-4 shrink-0 opacity-90 transition-opacity duration-200 group-hover:opacity-100 sm:h-5 sm:w-5"
|
|
91
|
+
})) : createCommentVNode("", true),
|
|
92
|
+
createElementVNode("div", _hoisted_1, [
|
|
93
|
+
createElementVNode("span", _hoisted_2, toDisplayString(item.label), 1),
|
|
94
|
+
item.description ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(item.description), 1)) : createCommentVNode("", true)
|
|
95
|
+
])
|
|
96
|
+
]),
|
|
97
|
+
_: 2
|
|
98
|
+
}, 1040))
|
|
99
|
+
]),
|
|
100
|
+
_: 2
|
|
101
|
+
}, 1032, ["is-active"])
|
|
102
|
+
]),
|
|
103
|
+
_: 2
|
|
104
|
+
}, 1024);
|
|
105
|
+
}), 128))
|
|
106
|
+
]),
|
|
107
|
+
_: 2
|
|
108
|
+
}, 1024)
|
|
109
|
+
]),
|
|
110
|
+
_: 2
|
|
111
|
+
}, 1024)
|
|
112
|
+
]),
|
|
113
|
+
_: 2
|
|
114
|
+
}, 1024);
|
|
115
|
+
}), 128))
|
|
116
|
+
]),
|
|
117
|
+
_: 1
|
|
118
|
+
})) : createCommentVNode("", true),
|
|
119
|
+
_ctx.$slots["sidebar-footer"] ? (openBlock(), createBlock(unref(_sfc_main$b), {
|
|
120
|
+
key: 2,
|
|
121
|
+
class: "border-t border-sidebar-border"
|
|
122
|
+
}, {
|
|
123
|
+
default: withCtx(() => [
|
|
124
|
+
renderSlot(_ctx.$slots, "sidebar-footer")
|
|
125
|
+
]),
|
|
126
|
+
_: 3
|
|
127
|
+
})) : createCommentVNode("", true)
|
|
128
|
+
]),
|
|
129
|
+
_: 3
|
|
130
|
+
}, 8, ["collapsible"]),
|
|
131
|
+
createVNode(unref(_sfc_main$c), {
|
|
132
|
+
class: normalizeClass(unref(cn)("relative min-h-screen min-w-0 bg-background text-foreground", props.insetClass))
|
|
133
|
+
}, {
|
|
134
|
+
default: withCtx(() => [
|
|
135
|
+
props.showBackground ? (openBlock(), createBlock(BackgroundGrid, { key: 0 })) : createCommentVNode("", true),
|
|
136
|
+
createElementVNode("header", {
|
|
137
|
+
class: normalizeClass(unref(cn)("sticky top-0 z-20 flex h-16 shrink-0 items-center gap-2 border-b border-sidebar-border bg-sidebar px-4 backdrop-blur", props.topbarClass))
|
|
138
|
+
}, [
|
|
139
|
+
createVNode(unref(_sfc_main$d), { class: "-ml-1" }),
|
|
140
|
+
createVNode(unref(_sfc_main$e), {
|
|
141
|
+
orientation: "vertical",
|
|
142
|
+
class: "mr-2 data-[orientation=vertical]:h-4"
|
|
143
|
+
}),
|
|
144
|
+
renderSlot(_ctx.$slots, "topbar-leading"),
|
|
145
|
+
createElementVNode("div", _hoisted_4, [
|
|
146
|
+
createElementVNode("div", _hoisted_5, toDisplayString(props.title), 1),
|
|
147
|
+
props.description ? (openBlock(), createElementBlock("div", _hoisted_6, toDisplayString(props.description), 1)) : createCommentVNode("", true)
|
|
148
|
+
]),
|
|
149
|
+
renderSlot(_ctx.$slots, "topbar-trailing")
|
|
150
|
+
], 2),
|
|
151
|
+
createElementVNode("main", _hoisted_7, [
|
|
152
|
+
createElementVNode("div", {
|
|
153
|
+
class: normalizeClass(unref(cn)("mx-auto flex w-full min-w-0 max-w-6xl flex-col gap-6 p-3 sm:p-6 lg:p-8", props.contentContainerClass))
|
|
154
|
+
}, [
|
|
155
|
+
createElementVNode("div", _hoisted_8, [
|
|
156
|
+
renderSlot(_ctx.$slots, "default")
|
|
157
|
+
])
|
|
158
|
+
], 2)
|
|
159
|
+
])
|
|
160
|
+
]),
|
|
161
|
+
_: 3
|
|
162
|
+
}, 8, ["class"])
|
|
163
|
+
]),
|
|
164
|
+
_: 3
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
export {
|
|
170
|
+
_sfc_main as _
|
|
171
|
+
};
|