create-nala 3.0.0 → 3.0.4
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/package.json +6 -6
- package/template/.agents/skills/nala-project/SKILL.md +493 -0
- package/template/AGENTS.md +49 -0
- package/{LICENSE → template/LICENSE} +1 -1
- package/template/README.md +130 -0
- package/template/package.json +1 -1
- package/template/src/components/ui/alert/Alert.vue +8 -8
- package/template/src/components/ui/alert/AlertDescription.vue +5 -5
- package/template/src/components/ui/alert/AlertTitle.vue +5 -5
- package/template/src/components/ui/alert-dialog/AlertDialog.vue +6 -6
- package/template/src/components/ui/alert-dialog/AlertDialogAction.vue +9 -9
- package/template/src/components/ui/alert-dialog/AlertDialogCancel.vue +9 -9
- package/template/src/components/ui/alert-dialog/AlertDialogContent.vue +20 -20
- package/template/src/components/ui/alert-dialog/AlertDialogDescription.vue +10 -10
- package/template/src/components/ui/alert-dialog/AlertDialogFooter.vue +5 -5
- package/template/src/components/ui/alert-dialog/AlertDialogHeader.vue +5 -5
- package/template/src/components/ui/alert-dialog/AlertDialogTitle.vue +8 -8
- package/template/src/components/ui/alert-dialog/AlertDialogTrigger.vue +3 -3
- package/template/src/components/ui/alert-dialog/index.ts +8 -8
- package/template/src/components/ui/avatar/AvatarFallback.vue +8 -8
- package/template/src/components/ui/avatar/AvatarImage.vue +3 -3
- package/template/src/components/ui/breadcrumb/Breadcrumb.vue +4 -4
- package/template/src/components/ui/breadcrumb/BreadcrumbEllipsis.vue +6 -6
- package/template/src/components/ui/breadcrumb/BreadcrumbItem.vue +5 -5
- package/template/src/components/ui/breadcrumb/BreadcrumbLink.vue +7 -7
- package/template/src/components/ui/breadcrumb/BreadcrumbList.vue +5 -5
- package/template/src/components/ui/breadcrumb/BreadcrumbPage.vue +5 -5
- package/template/src/components/ui/breadcrumb/BreadcrumbSeparator.vue +6 -6
- package/template/src/components/ui/breadcrumb/index.ts +6 -6
- package/template/src/components/ui/button/Button.vue +15 -15
- package/template/src/components/ui/card/CardAction.vue +5 -5
- package/template/src/components/ui/card/CardContent.vue +5 -5
- package/template/src/components/ui/card/CardDescription.vue +5 -5
- package/template/src/components/ui/card/CardFooter.vue +5 -5
- package/template/src/components/ui/card/CardTitle.vue +5 -5
- package/template/src/components/ui/card/index.ts +6 -6
- package/template/src/components/ui/command/Command.vue +75 -75
- package/template/src/components/ui/command/CommandDialog.vue +14 -14
- package/template/src/components/ui/command/CommandEmpty.vue +14 -14
- package/template/src/components/ui/command/CommandGroup.vue +27 -27
- package/template/src/components/ui/command/CommandInput.vue +20 -20
- package/template/src/components/ui/command/CommandItem.vue +57 -57
- package/template/src/components/ui/command/CommandList.vue +10 -10
- package/template/src/components/ui/command/CommandSeparator.vue +8 -8
- package/template/src/components/ui/command/CommandShortcut.vue +5 -5
- package/template/src/components/ui/command/index.ts +24 -24
- package/template/src/components/ui/dialog/Dialog.vue +6 -6
- package/template/src/components/ui/dialog/DialogClose.vue +3 -3
- package/template/src/components/ui/dialog/DialogContent.vue +24 -24
- package/template/src/components/ui/dialog/DialogDescription.vue +10 -10
- package/template/src/components/ui/dialog/DialogFooter.vue +10 -10
- package/template/src/components/ui/dialog/DialogHeader.vue +5 -5
- package/template/src/components/ui/dialog/DialogOverlay.vue +8 -8
- package/template/src/components/ui/dialog/DialogScrollContent.vue +22 -22
- package/template/src/components/ui/dialog/DialogTitle.vue +10 -10
- package/template/src/components/ui/dialog/DialogTrigger.vue +3 -3
- package/template/src/components/ui/dialog/index.ts +9 -9
- package/template/src/components/ui/dropdown-menu/DropdownMenu.vue +6 -6
- package/template/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +16 -16
- package/template/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +3 -3
- package/template/src/components/ui/dropdown-menu/DropdownMenuItem.vue +16 -16
- package/template/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +9 -9
- package/template/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +9 -9
- package/template/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +17 -17
- package/template/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +12 -12
- package/template/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +5 -5
- package/template/src/components/ui/dropdown-menu/DropdownMenuSub.vue +9 -9
- package/template/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +14 -14
- package/template/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +13 -13
- package/template/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +5 -5
- package/template/src/components/ui/dropdown-menu/index.ts +15 -15
- package/template/src/components/ui/form/FormControl.vue +3 -3
- package/template/src/components/ui/form/FormDescription.vue +8 -8
- package/template/src/components/ui/form/FormItem.vue +11 -11
- package/template/src/components/ui/form/FormLabel.vue +8 -8
- package/template/src/components/ui/form/FormMessage.vue +10 -10
- package/template/src/components/ui/form/index.ts +6 -6
- package/template/src/components/ui/form/injectionKeys.ts +3 -3
- package/template/src/components/ui/form/useFormField.ts +29 -29
- package/template/src/components/ui/input/Input.vue +17 -17
- package/template/src/components/ui/label/Label.vue +8 -8
- package/template/src/components/ui/pagination/Pagination.vue +12 -12
- package/template/src/components/ui/pagination/PaginationContent.vue +8 -8
- package/template/src/components/ui/pagination/PaginationEllipsis.vue +9 -9
- package/template/src/components/ui/pagination/PaginationFirst.vue +17 -17
- package/template/src/components/ui/pagination/PaginationItem.vue +16 -16
- package/template/src/components/ui/pagination/PaginationLast.vue +17 -17
- package/template/src/components/ui/pagination/PaginationNext.vue +17 -17
- package/template/src/components/ui/pagination/PaginationPrevious.vue +17 -17
- package/template/src/components/ui/pagination/index.ts +7 -7
- package/template/src/components/ui/popover/Popover.vue +6 -6
- package/template/src/components/ui/popover/PopoverAnchor.vue +3 -3
- package/template/src/components/ui/popover/PopoverContent.vue +25 -25
- package/template/src/components/ui/popover/PopoverTrigger.vue +3 -3
- package/template/src/components/ui/popover/index.ts +3 -3
- package/template/src/components/ui/select/Select.vue +6 -6
- package/template/src/components/ui/select/SelectContent.vue +26 -26
- package/template/src/components/ui/select/SelectGroup.vue +3 -3
- package/template/src/components/ui/select/SelectItem.vue +16 -16
- package/template/src/components/ui/select/SelectItemText.vue +3 -3
- package/template/src/components/ui/select/SelectLabel.vue +5 -5
- package/template/src/components/ui/select/SelectScrollDownButton.vue +11 -11
- package/template/src/components/ui/select/SelectScrollUpButton.vue +11 -11
- package/template/src/components/ui/select/SelectSeparator.vue +8 -8
- package/template/src/components/ui/select/SelectTrigger.vue +13 -13
- package/template/src/components/ui/select/SelectValue.vue +3 -3
- package/template/src/components/ui/select/index.ts +10 -10
- package/template/src/components/ui/separator/Separator.vue +13 -13
- package/template/src/components/ui/sheet/Sheet.vue +6 -6
- package/template/src/components/ui/sheet/SheetClose.vue +3 -3
- package/template/src/components/ui/sheet/SheetContent.vue +29 -29
- package/template/src/components/ui/sheet/SheetDescription.vue +8 -8
- package/template/src/components/ui/sheet/SheetFooter.vue +3 -3
- package/template/src/components/ui/sheet/SheetHeader.vue +3 -3
- package/template/src/components/ui/sheet/SheetOverlay.vue +8 -8
- package/template/src/components/ui/sheet/SheetTitle.vue +8 -8
- package/template/src/components/ui/sheet/SheetTrigger.vue +3 -3
- package/template/src/components/ui/sheet/index.ts +7 -7
- package/template/src/components/ui/sidebar/Sidebar.vue +18 -18
- package/template/src/components/ui/sidebar/SidebarContent.vue +6 -6
- package/template/src/components/ui/sidebar/SidebarControl.vue +0 -3
- package/template/src/components/ui/sidebar/SidebarFooter.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarGroup.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarGroupAction.vue +7 -7
- package/template/src/components/ui/sidebar/SidebarGroupContent.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarGroupLabel.vue +7 -7
- package/template/src/components/ui/sidebar/SidebarHeader.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarInput.vue +6 -6
- package/template/src/components/ui/sidebar/SidebarInset.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarMenu.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarMenuAction.vue +10 -10
- package/template/src/components/ui/sidebar/SidebarMenuBadge.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarMenuButton.vue +21 -21
- package/template/src/components/ui/sidebar/SidebarMenuButtonChild.vue +18 -18
- package/template/src/components/ui/sidebar/SidebarMenuItem.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarMenuSkeleton.vue +12 -12
- package/template/src/components/ui/sidebar/SidebarMenuSub.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarMenuSubButton.vue +12 -12
- package/template/src/components/ui/sidebar/SidebarMenuSubItem.vue +5 -5
- package/template/src/components/ui/sidebar/SidebarProvider.vue +4 -8
- package/template/src/components/ui/sidebar/SidebarRail.vue +8 -8
- package/template/src/components/ui/sidebar/SidebarSeparator.vue +6 -6
- package/template/src/components/ui/sidebar/SidebarTrigger.vue +10 -10
- package/template/src/components/ui/sidebar/utils.ts +1 -1
- package/template/src/components/ui/skeleton/Skeleton.vue +7 -7
- package/template/src/components/ui/sonner/Sonner.vue +5 -5
- package/template/src/components/ui/switch/Switch.vue +16 -16
- package/template/src/components/ui/table/Table.vue +5 -5
- package/template/src/components/ui/table/TableBody.vue +5 -5
- package/template/src/components/ui/table/TableCaption.vue +5 -5
- package/template/src/components/ui/table/TableCell.vue +5 -5
- package/template/src/components/ui/table/TableEmpty.vue +13 -13
- package/template/src/components/ui/table/TableFooter.vue +5 -5
- package/template/src/components/ui/table/TableHead.vue +5 -5
- package/template/src/components/ui/table/TableHeader.vue +5 -5
- package/template/src/components/ui/table/TableRow.vue +5 -5
- package/template/src/components/ui/table/index.ts +8 -8
- package/template/src/components/ui/table/utils.ts +9 -9
- package/template/src/components/ui/tabs/Tabs.vue +10 -10
- package/template/src/components/ui/tabs/TabsContent.vue +8 -8
- package/template/src/components/ui/tabs/TabsList.vue +8 -8
- package/template/src/components/ui/tabs/TabsTrigger.vue +10 -10
- package/template/src/components/ui/tabs/index.ts +3 -3
- package/template/src/components/ui/textarea/Textarea.vue +17 -17
- package/template/src/components/ui/tooltip/Tooltip.vue +6 -6
- package/template/src/components/ui/tooltip/TooltipContent.vue +17 -17
- package/template/src/components/ui/tooltip/TooltipProvider.vue +5 -5
- package/template/src/components/ui/tooltip/TooltipTrigger.vue +3 -3
- package/template/src/components/ui/tooltip/index.ts +3 -3
- package/template/src/lib/utils.ts +6 -6
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# NALA_APP_NAME
|
|
2
|
+
|
|
3
|
+
> Built with **Nala** — Enterprise Admin Dashboard Starter Template powered by Vue 3, Vite, TypeScript, and Tailwind CSS v4.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🚀 Quick Start
|
|
8
|
+
|
|
9
|
+
### 1. Install Dependencies
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# with pnpm (Recommended)
|
|
13
|
+
pnpm install
|
|
14
|
+
|
|
15
|
+
# with npm
|
|
16
|
+
npm install
|
|
17
|
+
|
|
18
|
+
# with yarn
|
|
19
|
+
yarn install
|
|
20
|
+
|
|
21
|
+
# with bun
|
|
22
|
+
bun install
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### 2. Environment Configuration
|
|
26
|
+
|
|
27
|
+
Copy the example environment file and customize as needed:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
cp .env.example .env
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 3. Start Development Server
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pnpm dev
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Open **http://localhost:5173** in your browser.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 🛠️ Available Scripts
|
|
44
|
+
|
|
45
|
+
| Script | Command | Description |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| `pnpm dev` | `vite` | Starts local dev server with blazing fast HMR |
|
|
48
|
+
| `pnpm build` | `vue-tsc -b && vite build` | Type-checks & compiles production bundle to `dist/` |
|
|
49
|
+
| `pnpm preview` | `vite preview` | Previews production build locally |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 📁 Project Structure
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
src/
|
|
57
|
+
├── assets/fonts/ # High-performance local Inter fonts (woff2)
|
|
58
|
+
├── components/
|
|
59
|
+
│ ├── layout/ # Admin shell (AppNavbar, AppSidebar, CommandPalette)
|
|
60
|
+
│ ├── ui/ # 34+ accessible UI primitives (Reka UI / shadcn-vue)
|
|
61
|
+
│ └── PageHeader.vue # Standardized page header component
|
|
62
|
+
├── composables/
|
|
63
|
+
│ ├── useFormatter.ts # Native Intl data formatting helpers (auto-imported)
|
|
64
|
+
│ └── useThemeConfig.ts # Runtime theme & layout state (auto-imported)
|
|
65
|
+
├── layouts/
|
|
66
|
+
│ ├── AdminLayout.vue # Main authenticated dashboard layout
|
|
67
|
+
│ └── AuthLayout.vue # Centered layout for login/register/auth flows
|
|
68
|
+
├── lib/
|
|
69
|
+
│ ├── axios.ts # Central Axios client with silent refresh & error toasts
|
|
70
|
+
│ ├── formatters.ts # Currency, Date, Number & Relative Time helpers
|
|
71
|
+
│ └── utils.ts # cn() class merger (clsx + tailwind-merge)
|
|
72
|
+
├── router/
|
|
73
|
+
│ └── index.ts # Route definitions & auth navigation guards
|
|
74
|
+
├── services/
|
|
75
|
+
│ ├── auth.service.ts # Authentication API service (with safe DEV mock fallback)
|
|
76
|
+
│ ├── user.service.ts # User profile API service
|
|
77
|
+
│ └── types.ts # Shared API response contracts
|
|
78
|
+
├── stores/
|
|
79
|
+
│ └── auth.ts # Pinia authentication & user session store
|
|
80
|
+
├── views/
|
|
81
|
+
│ ├── _starter/
|
|
82
|
+
│ │ └── BlankView.vue # Clean blank template for creating new pages
|
|
83
|
+
│ ├── auth/ # Login, Register, Forgot/Reset Password, OTP, Lock Screen
|
|
84
|
+
│ ├── dashboard/ # Clean starter dashboard with KPI cards & recent table
|
|
85
|
+
│ └── errors/ # 404, 500, and 403 error pages
|
|
86
|
+
├── App.vue # Root application component with Toaster
|
|
87
|
+
├── main.ts # App initialization & Pinia/Router registration
|
|
88
|
+
└── style.css # Tailwind CSS v4 & OKLCH color design tokens
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 📡 Connecting Your Backend API
|
|
94
|
+
|
|
95
|
+
This starter includes a production-grade Axios service layer in `src/lib/axios.ts` and `src/services/`.
|
|
96
|
+
|
|
97
|
+
1. Open `.env` and set your API endpoint:
|
|
98
|
+
```env
|
|
99
|
+
VITE_API_BASE_URL=https://api.yourcompany.com/v1
|
|
100
|
+
```
|
|
101
|
+
2. **Safe DEV Mock Fallback:**
|
|
102
|
+
While developing (`import.meta.env.DEV`), if your backend is offline, services will automatically fall back to safe in-memory mock data so you can build UI uninterrupted. In production (`pnpm build`), real API errors will be thrown normally.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 🎨 Customizing Theme & Branding
|
|
107
|
+
|
|
108
|
+
- **Brand Colors:** Update `--primary` and `--ring` in `src/style.css` using standard `oklch` color format.
|
|
109
|
+
- **Default Theme Config:** Modify `DEFAULT_CONFIG` in `src/composables/useThemeConfig.ts`:
|
|
110
|
+
```ts
|
|
111
|
+
const DEFAULT_CONFIG: ThemeConfig = {
|
|
112
|
+
primaryColor: 'emerald', // emerald | indigo | violet | rose | amber | cyan | zinc
|
|
113
|
+
radius: '0.375', // 0 | 0.25 | 0.375 | 0.5 | 0.75 | 1.0
|
|
114
|
+
contentWidth: 'fluid', // fluid | boxed
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 🤖 AI-Assisted Development
|
|
121
|
+
|
|
122
|
+
This project is configured out-of-the-box for AI coding assistants:
|
|
123
|
+
- **`AGENTS.md`** — Universal rules for Antigravity, Cursor, Claude Code, GitHub Copilot, Roo Code, and Windsurf.
|
|
124
|
+
- **`.agents/skills/nala-project/SKILL.md`** — Deep technical blueprints for building components, Pinia stores, and API services without hallucinations.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 📄 License
|
|
129
|
+
|
|
130
|
+
This project is open-sourced software licensed under the [MIT License](./LICENSE).
|
package/template/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import type { AlertVariants } from "."
|
|
4
|
-
import { cn } from "@/lib/utils"
|
|
5
|
-
import { alertVariants } from "."
|
|
6
|
-
|
|
7
|
-
const props = defineProps<{
|
|
8
|
-
class?: HTMLAttributes["class"]
|
|
9
|
-
variant?: AlertVariants["variant"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import type { AlertVariants } from "."
|
|
4
|
+
import { cn } from "@/lib/utils"
|
|
5
|
+
import { alertVariants } from "."
|
|
6
|
+
|
|
7
|
+
const props = defineProps<{
|
|
8
|
+
class?: HTMLAttributes["class"]
|
|
9
|
+
variant?: AlertVariants["variant"]
|
|
10
10
|
}>()
|
|
11
11
|
</script>
|
|
12
12
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { AlertDialogEmits, AlertDialogProps } from "reka-ui"
|
|
3
|
-
import { AlertDialogRoot, useForwardPropsEmits } from "reka-ui"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<AlertDialogProps>()
|
|
6
|
-
const emits = defineEmits<AlertDialogEmits>()
|
|
7
|
-
|
|
2
|
+
import type { AlertDialogEmits, AlertDialogProps } from "reka-ui"
|
|
3
|
+
import { AlertDialogRoot, useForwardPropsEmits } from "reka-ui"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<AlertDialogProps>()
|
|
6
|
+
const emits = defineEmits<AlertDialogEmits>()
|
|
7
|
+
|
|
8
8
|
const forwarded = useForwardPropsEmits(props, emits)
|
|
9
9
|
</script>
|
|
10
10
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { AlertDialogActionProps } from "reka-ui"
|
|
3
|
-
import type { HTMLAttributes } from "vue"
|
|
4
|
-
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
-
import { AlertDialogAction } from "reka-ui"
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
import { buttonVariants } from '@/components/ui/button'
|
|
8
|
-
|
|
9
|
-
const props = defineProps<AlertDialogActionProps & { class?: HTMLAttributes["class"] }>()
|
|
10
|
-
|
|
2
|
+
import type { AlertDialogActionProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { AlertDialogAction } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
import { buttonVariants } from '@/components/ui/button'
|
|
8
|
+
|
|
9
|
+
const props = defineProps<AlertDialogActionProps & { class?: HTMLAttributes["class"] }>()
|
|
10
|
+
|
|
11
11
|
const delegatedProps = reactiveOmit(props, "class")
|
|
12
12
|
</script>
|
|
13
13
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { AlertDialogCancelProps } from "reka-ui"
|
|
3
|
-
import type { HTMLAttributes } from "vue"
|
|
4
|
-
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
-
import { AlertDialogCancel } from "reka-ui"
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
import { buttonVariants } from '@/components/ui/button'
|
|
8
|
-
|
|
9
|
-
const props = defineProps<AlertDialogCancelProps & { class?: HTMLAttributes["class"] }>()
|
|
10
|
-
|
|
2
|
+
import type { AlertDialogCancelProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { AlertDialogCancel } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
import { buttonVariants } from '@/components/ui/button'
|
|
8
|
+
|
|
9
|
+
const props = defineProps<AlertDialogCancelProps & { class?: HTMLAttributes["class"] }>()
|
|
10
|
+
|
|
11
11
|
const delegatedProps = reactiveOmit(props, "class")
|
|
12
12
|
</script>
|
|
13
13
|
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { AlertDialogContentEmits, AlertDialogContentProps } from "reka-ui"
|
|
3
|
-
import type { HTMLAttributes } from "vue"
|
|
4
|
-
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
-
import {
|
|
6
|
-
AlertDialogContent,
|
|
7
|
-
AlertDialogOverlay,
|
|
8
|
-
AlertDialogPortal,
|
|
9
|
-
useForwardPropsEmits,
|
|
10
|
-
} from "reka-ui"
|
|
11
|
-
import { cn } from "@/lib/utils"
|
|
12
|
-
|
|
13
|
-
defineOptions({
|
|
14
|
-
inheritAttrs: false,
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
const props = defineProps<AlertDialogContentProps & { class?: HTMLAttributes["class"] }>()
|
|
18
|
-
const emits = defineEmits<AlertDialogContentEmits>()
|
|
19
|
-
|
|
20
|
-
const delegatedProps = reactiveOmit(props, "class")
|
|
21
|
-
|
|
2
|
+
import type { AlertDialogContentEmits, AlertDialogContentProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import {
|
|
6
|
+
AlertDialogContent,
|
|
7
|
+
AlertDialogOverlay,
|
|
8
|
+
AlertDialogPortal,
|
|
9
|
+
useForwardPropsEmits,
|
|
10
|
+
} from "reka-ui"
|
|
11
|
+
import { cn } from "@/lib/utils"
|
|
12
|
+
|
|
13
|
+
defineOptions({
|
|
14
|
+
inheritAttrs: false,
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
const props = defineProps<AlertDialogContentProps & { class?: HTMLAttributes["class"] }>()
|
|
18
|
+
const emits = defineEmits<AlertDialogContentEmits>()
|
|
19
|
+
|
|
20
|
+
const delegatedProps = reactiveOmit(props, "class")
|
|
21
|
+
|
|
22
22
|
const forwarded = useForwardPropsEmits(delegatedProps, emits)
|
|
23
23
|
</script>
|
|
24
24
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { AlertDialogDescriptionProps } from "reka-ui"
|
|
3
|
-
import type { HTMLAttributes } from "vue"
|
|
4
|
-
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
-
import {
|
|
6
|
-
AlertDialogDescription,
|
|
7
|
-
} from "reka-ui"
|
|
8
|
-
import { cn } from "@/lib/utils"
|
|
9
|
-
|
|
10
|
-
const props = defineProps<AlertDialogDescriptionProps & { class?: HTMLAttributes["class"] }>()
|
|
11
|
-
|
|
2
|
+
import type { AlertDialogDescriptionProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import {
|
|
6
|
+
AlertDialogDescription,
|
|
7
|
+
} from "reka-ui"
|
|
8
|
+
import { cn } from "@/lib/utils"
|
|
9
|
+
|
|
10
|
+
const props = defineProps<AlertDialogDescriptionProps & { class?: HTMLAttributes["class"] }>()
|
|
11
|
+
|
|
12
12
|
const delegatedProps = reactiveOmit(props, "class")
|
|
13
13
|
</script>
|
|
14
14
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { AlertDialogTitleProps } from "reka-ui"
|
|
3
|
-
import type { HTMLAttributes } from "vue"
|
|
4
|
-
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
-
import { AlertDialogTitle } from "reka-ui"
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
|
|
8
|
-
const props = defineProps<AlertDialogTitleProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
-
|
|
2
|
+
import type { AlertDialogTitleProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { AlertDialogTitle } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<AlertDialogTitleProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
10
|
const delegatedProps = reactiveOmit(props, "class")
|
|
11
11
|
</script>
|
|
12
12
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { AlertDialogTriggerProps } from "reka-ui"
|
|
3
|
-
import { AlertDialogTrigger } from "reka-ui"
|
|
4
|
-
|
|
2
|
+
import type { AlertDialogTriggerProps } from "reka-ui"
|
|
3
|
+
import { AlertDialogTrigger } from "reka-ui"
|
|
4
|
+
|
|
5
5
|
const props = defineProps<AlertDialogTriggerProps>()
|
|
6
6
|
</script>
|
|
7
7
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { default as AlertDialog } from "./AlertDialog.vue"
|
|
2
|
-
export { default as AlertDialogAction } from "./AlertDialogAction.vue"
|
|
3
|
-
export { default as AlertDialogCancel } from "./AlertDialogCancel.vue"
|
|
4
|
-
export { default as AlertDialogContent } from "./AlertDialogContent.vue"
|
|
5
|
-
export { default as AlertDialogDescription } from "./AlertDialogDescription.vue"
|
|
6
|
-
export { default as AlertDialogFooter } from "./AlertDialogFooter.vue"
|
|
7
|
-
export { default as AlertDialogHeader } from "./AlertDialogHeader.vue"
|
|
8
|
-
export { default as AlertDialogTitle } from "./AlertDialogTitle.vue"
|
|
1
|
+
export { default as AlertDialog } from "./AlertDialog.vue"
|
|
2
|
+
export { default as AlertDialogAction } from "./AlertDialogAction.vue"
|
|
3
|
+
export { default as AlertDialogCancel } from "./AlertDialogCancel.vue"
|
|
4
|
+
export { default as AlertDialogContent } from "./AlertDialogContent.vue"
|
|
5
|
+
export { default as AlertDialogDescription } from "./AlertDialogDescription.vue"
|
|
6
|
+
export { default as AlertDialogFooter } from "./AlertDialogFooter.vue"
|
|
7
|
+
export { default as AlertDialogHeader } from "./AlertDialogHeader.vue"
|
|
8
|
+
export { default as AlertDialogTitle } from "./AlertDialogTitle.vue"
|
|
9
9
|
export { default as AlertDialogTrigger } from "./AlertDialogTrigger.vue"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { AvatarFallbackProps } from "reka-ui"
|
|
3
|
-
import type { HTMLAttributes } from "vue"
|
|
4
|
-
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
-
import { AvatarFallback } from "reka-ui"
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
|
|
8
|
-
const props = defineProps<AvatarFallbackProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
-
|
|
2
|
+
import type { AvatarFallbackProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { reactiveOmit } from "@vueuse/core"
|
|
5
|
+
import { AvatarFallback } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
|
|
8
|
+
const props = defineProps<AvatarFallbackProps & { class?: HTMLAttributes["class"] }>()
|
|
9
|
+
|
|
10
10
|
const delegatedProps = reactiveOmit(props, "class")
|
|
11
11
|
</script>
|
|
12
12
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { AvatarImageProps } from "reka-ui"
|
|
3
|
-
import { AvatarImage } from "reka-ui"
|
|
4
|
-
|
|
2
|
+
import type { AvatarImageProps } from "reka-ui"
|
|
3
|
+
import { AvatarImage } from "reka-ui"
|
|
4
|
+
|
|
5
5
|
const props = defineProps<AvatarImageProps>()
|
|
6
6
|
</script>
|
|
7
7
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
|
|
4
|
-
const props = defineProps<{
|
|
5
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
|
|
4
|
+
const props = defineProps<{
|
|
5
|
+
class?: HTMLAttributes["class"]
|
|
6
6
|
}>()
|
|
7
7
|
</script>
|
|
8
8
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { MoreHorizontal } from "@lucide/vue"
|
|
4
|
-
import { cn } from "@/lib/utils"
|
|
5
|
-
|
|
6
|
-
const props = defineProps<{
|
|
7
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { MoreHorizontal } from "@lucide/vue"
|
|
4
|
+
import { cn } from "@/lib/utils"
|
|
5
|
+
|
|
6
|
+
const props = defineProps<{
|
|
7
|
+
class?: HTMLAttributes["class"]
|
|
8
8
|
}>()
|
|
9
9
|
</script>
|
|
10
10
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import type { PrimitiveProps } from "reka-ui"
|
|
3
|
-
import type { HTMLAttributes } from "vue"
|
|
4
|
-
import { Primitive } from "reka-ui"
|
|
5
|
-
import { cn } from "@/lib/utils"
|
|
6
|
-
|
|
7
|
-
const props = withDefaults(defineProps<PrimitiveProps & { class?: HTMLAttributes["class"] }>(), {
|
|
8
|
-
as: "a",
|
|
2
|
+
import type { PrimitiveProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import { Primitive } from "reka-ui"
|
|
5
|
+
import { cn } from "@/lib/utils"
|
|
6
|
+
|
|
7
|
+
const props = withDefaults(defineProps<PrimitiveProps & { class?: HTMLAttributes["class"] }>(), {
|
|
8
|
+
as: "a",
|
|
9
9
|
})
|
|
10
10
|
</script>
|
|
11
11
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { ChevronRight } from "@lucide/vue"
|
|
4
|
-
import { cn } from "@/lib/utils"
|
|
5
|
-
|
|
6
|
-
const props = defineProps<{
|
|
7
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { ChevronRight } from "@lucide/vue"
|
|
4
|
+
import { cn } from "@/lib/utils"
|
|
5
|
+
|
|
6
|
+
const props = defineProps<{
|
|
7
|
+
class?: HTMLAttributes["class"]
|
|
8
8
|
}>()
|
|
9
9
|
</script>
|
|
10
10
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { default as Breadcrumb } from "./Breadcrumb.vue"
|
|
2
|
-
export { default as BreadcrumbEllipsis } from "./BreadcrumbEllipsis.vue"
|
|
3
|
-
export { default as BreadcrumbItem } from "./BreadcrumbItem.vue"
|
|
4
|
-
export { default as BreadcrumbLink } from "./BreadcrumbLink.vue"
|
|
5
|
-
export { default as BreadcrumbList } from "./BreadcrumbList.vue"
|
|
6
|
-
export { default as BreadcrumbPage } from "./BreadcrumbPage.vue"
|
|
1
|
+
export { default as Breadcrumb } from "./Breadcrumb.vue"
|
|
2
|
+
export { default as BreadcrumbEllipsis } from "./BreadcrumbEllipsis.vue"
|
|
3
|
+
export { default as BreadcrumbItem } from "./BreadcrumbItem.vue"
|
|
4
|
+
export { default as BreadcrumbLink } from "./BreadcrumbLink.vue"
|
|
5
|
+
export { default as BreadcrumbList } from "./BreadcrumbList.vue"
|
|
6
|
+
export { default as BreadcrumbPage } from "./BreadcrumbPage.vue"
|
|
7
7
|
export { default as BreadcrumbSeparator } from "./BreadcrumbSeparator.vue"
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { PrimitiveProps } from "reka-ui"
|
|
3
|
-
import type { HTMLAttributes } from "vue"
|
|
4
|
-
import type { ButtonVariants } from "."
|
|
5
|
-
import { Primitive } from "reka-ui"
|
|
6
|
-
import { cn } from "@/lib/utils"
|
|
7
|
-
import { buttonVariants } from "."
|
|
8
|
-
|
|
9
|
-
interface Props extends PrimitiveProps {
|
|
10
|
-
variant?: ButtonVariants["variant"]
|
|
11
|
-
size?: ButtonVariants["size"]
|
|
12
|
-
class?: HTMLAttributes["class"]
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const props = withDefaults(defineProps<Props>(), {
|
|
16
|
-
as: "button",
|
|
2
|
+
import type { PrimitiveProps } from "reka-ui"
|
|
3
|
+
import type { HTMLAttributes } from "vue"
|
|
4
|
+
import type { ButtonVariants } from "."
|
|
5
|
+
import { Primitive } from "reka-ui"
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
import { buttonVariants } from "."
|
|
8
|
+
|
|
9
|
+
interface Props extends PrimitiveProps {
|
|
10
|
+
variant?: ButtonVariants["variant"]
|
|
11
|
+
size?: ButtonVariants["size"]
|
|
12
|
+
class?: HTMLAttributes["class"]
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
16
|
+
as: "button",
|
|
17
17
|
})
|
|
18
18
|
</script>
|
|
19
19
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { HTMLAttributes } from "vue"
|
|
3
|
-
import { cn } from "@/lib/utils"
|
|
4
|
-
|
|
5
|
-
const props = defineProps<{
|
|
6
|
-
class?: HTMLAttributes["class"]
|
|
2
|
+
import type { HTMLAttributes } from "vue"
|
|
3
|
+
import { cn } from "@/lib/utils"
|
|
4
|
+
|
|
5
|
+
const props = defineProps<{
|
|
6
|
+
class?: HTMLAttributes["class"]
|
|
7
7
|
}>()
|
|
8
8
|
</script>
|
|
9
9
|
|