@slashclick/ui 0.1.14 → 0.1.16
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/README.md +108 -108
- package/dist/components/auth/providers.cjs.map +1 -1
- package/dist/components/auth/providers.js.map +1 -1
- package/dist/components/card/back-button.cjs.map +1 -1
- package/dist/components/card/back-button.js.map +1 -1
- package/dist/components/card/card-wrapper.cjs.map +1 -1
- package/dist/components/card/card-wrapper.js.map +1 -1
- package/dist/components/card/header.cjs.map +1 -1
- package/dist/components/card/header.js.map +1 -1
- package/dist/components/combobox/ComboList.cjs.map +1 -1
- package/dist/components/combobox/ComboList.js.map +1 -1
- package/dist/components/combobox/index.cjs.map +1 -1
- package/dist/components/combobox/index.js.map +1 -1
- package/dist/components/dashboard/account-select.cjs.map +1 -1
- package/dist/components/dashboard/account-select.js.map +1 -1
- package/dist/components/dashboard/account-switcher.cjs.map +1 -1
- package/dist/components/dashboard/account-switcher.js.map +1 -1
- package/dist/components/dashboard/sidebar/CollapsibleSection.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/CollapsibleSection.js.map +1 -1
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.js.map +1 -1
- package/dist/components/dashboard/sidebar/EntityList.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/EntityList.js.map +1 -1
- package/dist/components/dashboard/sidebar/EntityList.styles.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/EntityList.styles.js.map +1 -1
- package/dist/components/dashboard/sidebar/SectionHeader.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/SectionHeader.js.map +1 -1
- package/dist/components/dashboard/sidebar/SectionHeader.styles.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/SectionHeader.styles.js.map +1 -1
- package/dist/components/dashboard/sidebar/index.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/index.js.map +1 -1
- package/dist/components/dashboard/sidebar/sidebar.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/sidebar.js.map +1 -1
- package/dist/components/dashboard/sidebar/tabs.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/tabs.js.map +1 -1
- package/dist/components/dashboard/sidebar/types.cjs.map +1 -1
- package/dist/components/dashboard/sidebar-nav.cjs.map +1 -1
- package/dist/components/dashboard/sidebar-nav.js.map +1 -1
- package/dist/components/dashboard/utils/build-nav.cjs.map +1 -1
- package/dist/components/dashboard/utils/build-nav.js.map +1 -1
- package/dist/components/dashboard/with-dashboard.cjs.map +1 -1
- package/dist/components/dashboard/with-dashboard.js.map +1 -1
- package/dist/components/detail/DetailLayout.styles.cjs.map +1 -1
- package/dist/components/detail/DetailLayout.styles.js.map +1 -1
- package/dist/components/detail/index.cjs.map +1 -1
- package/dist/components/detail/index.js.map +1 -1
- package/dist/components/flowbite/card-images.cjs.map +1 -1
- package/dist/components/flowbite/card-images.js.map +1 -1
- package/dist/components/flowbite/gallery.cjs.map +1 -1
- package/dist/components/flowbite/gallery.js.map +1 -1
- package/dist/components/flowbite/masonry.cjs.map +1 -1
- package/dist/components/flowbite/masonry.js.map +1 -1
- package/dist/components/flowbite/search-hero.cjs.map +1 -1
- package/dist/components/flowbite/search-hero.js.map +1 -1
- package/dist/components/generic/copyright.cjs.map +1 -1
- package/dist/components/generic/copyright.js.map +1 -1
- package/dist/components/generic/icons.cjs.map +1 -1
- package/dist/components/generic/icons.js.map +1 -1
- package/dist/components/generic/link.cjs.map +1 -1
- package/dist/components/generic/link.js.map +1 -1
- package/dist/components/header/header.cjs +16 -5
- package/dist/components/header/header.cjs.map +1 -1
- package/dist/components/header/header.d.ts +1 -1
- package/dist/components/header/header.d.ts.map +1 -1
- package/dist/components/header/header.js +6 -5
- package/dist/components/header/header.js.map +1 -1
- package/dist/components/header/internal/main-nav.cjs.map +1 -1
- package/dist/components/header/internal/main-nav.js.map +1 -1
- package/dist/components/header/internal/mobile-nav.cjs.map +1 -1
- package/dist/components/header/internal/mobile-nav.js.map +1 -1
- package/dist/components/header/internal/mode-toggle.cjs.map +1 -1
- package/dist/components/header/internal/mode-toggle.js.map +1 -1
- package/dist/components/header/internal/site-header.cjs.map +1 -1
- package/dist/components/header/internal/site-header.js.map +1 -1
- package/dist/components/header/langbutton/langbutton.cjs.map +1 -1
- package/dist/components/header/langbutton/langbutton.js.map +1 -1
- package/dist/components/header/userbutton/user-dropdown.cjs.map +1 -1
- package/dist/components/header/userbutton/user-dropdown.js.map +1 -1
- package/dist/components/header/userbutton/userbutton.cjs.map +1 -1
- package/dist/components/header/userbutton/userbutton.js.map +1 -1
- package/dist/components/hooks/use-page-nav.cjs.map +1 -1
- package/dist/components/hooks/use-page-nav.js.map +1 -1
- package/dist/components/hooks/use-user-entities.cjs.map +1 -1
- package/dist/components/hooks/use-user-entities.js.map +1 -1
- package/dist/components/icons/apple.cjs.map +1 -1
- package/dist/components/icons/apple.js.map +1 -1
- package/dist/components/icons/facebook.cjs.map +1 -1
- package/dist/components/icons/facebook.js.map +1 -1
- package/dist/components/icons/github.cjs.map +1 -1
- package/dist/components/icons/github.js.map +1 -1
- package/dist/components/icons/google.cjs.map +1 -1
- package/dist/components/icons/google.js.map +1 -1
- package/dist/components/icons/logo.cjs.map +1 -1
- package/dist/components/icons/logo.js.map +1 -1
- package/dist/components/lightbox/GallerySection.cjs.map +1 -1
- package/dist/components/lightbox/GallerySection.js.map +1 -1
- package/dist/components/lightbox/ImageLightbox.cjs.map +1 -1
- package/dist/components/lightbox/ImageLightbox.js.map +1 -1
- package/dist/components/lightbox/ImageLightbox.types.cjs.map +1 -1
- package/dist/components/lightbox/index.cjs.map +1 -1
- package/dist/components/lightbox/index.js.map +1 -1
- package/dist/components/lightbox/useEntityLightbox.cjs.map +1 -1
- package/dist/components/lightbox/useEntityLightbox.js.map +1 -1
- package/dist/components/lightbox/useLightbox.cjs.map +1 -1
- package/dist/components/lightbox/useLightbox.js.map +1 -1
- package/dist/components/search/search.cjs.map +1 -1
- package/dist/components/search/search.js.map +1 -1
- package/dist/components/tailwind/contact.cjs.map +1 -1
- package/dist/components/tailwind/contact.js.map +1 -1
- package/dist/components/tailwind/content-page.cjs.map +1 -1
- package/dist/components/tailwind/content-page.js.map +1 -1
- package/dist/components/tailwind/feature.cjs.map +1 -1
- package/dist/components/tailwind/feature.js.map +1 -1
- package/dist/components/tailwind/featurelist.cjs.map +1 -1
- package/dist/components/tailwind/featurelist.js.map +1 -1
- package/dist/components/tailwind/footer.cjs.map +1 -1
- package/dist/components/tailwind/footer.js.map +1 -1
- package/dist/components/tailwind/hero.cjs.map +1 -1
- package/dist/components/tailwind/hero.js.map +1 -1
- package/dist/components/tailwind/pricing.cjs +1 -1
- package/dist/components/tailwind/pricing.cjs.map +1 -1
- package/dist/components/tailwind/pricing.js +1 -1
- package/dist/components/tailwind/pricing.js.map +1 -1
- package/dist/components/tailwind/privacy.cjs.map +1 -1
- package/dist/components/tailwind/privacy.js.map +1 -1
- package/dist/components/tailwind/providerIcons.cjs.map +1 -1
- package/dist/components/tailwind/providerIcons.js.map +1 -1
- package/dist/components/ui/avatar.cjs.map +1 -1
- package/dist/components/ui/avatar.js.map +1 -1
- package/dist/components/ui/breadcrumb.cjs.map +1 -1
- package/dist/components/ui/breadcrumb.js.map +1 -1
- package/dist/components/ui/button.cjs.map +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.cjs.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/checkbox.cjs.map +1 -1
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/command.cjs.map +1 -1
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/dialog.cjs.map +1 -1
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/drawer.cjs.map +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.cjs.map +1 -1
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/input.cjs.map +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/label.cjs.map +1 -1
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/menubar.cjs.map +1 -1
- package/dist/components/ui/menubar.js.map +1 -1
- package/dist/components/ui/navigation-menu.cjs.map +1 -1
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/popover.cjs.map +1 -1
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/resizable.cjs.map +1 -1
- package/dist/components/ui/resizable.js.map +1 -1
- package/dist/components/ui/scroll-area.cjs.map +1 -1
- package/dist/components/ui/scroll-area.js.map +1 -1
- package/dist/components/ui/select.cjs.map +1 -1
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/sheet.cjs.map +1 -1
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/skeleton.cjs.map +1 -1
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/spinner.cjs.map +1 -1
- package/dist/components/ui/spinner.js.map +1 -1
- package/dist/components/ui/switch.cjs.map +1 -1
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/tabs.cjs.map +1 -1
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/components/ui/textarea.cjs.map +1 -1
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/toast.cjs.map +1 -1
- package/dist/components/ui/toast.js.map +1 -1
- package/dist/components/ui/toaster.cjs.map +1 -1
- package/dist/components/ui/toaster.js.map +1 -1
- package/dist/components/ui/tooltip.cjs.map +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/use-toast.cjs.map +1 -1
- package/dist/components/ui/use-toast.js.map +1 -1
- package/dist/components/upgrade-prompt/UpgradePrompt.cjs.map +1 -1
- package/dist/components/upgrade-prompt/UpgradePrompt.js.map +1 -1
- package/dist/components/upgrade-prompt/index.cjs.map +1 -1
- package/dist/components/upgrade-prompt/index.js.map +1 -1
- package/dist/hooks/useRecaptcha.cjs.map +1 -1
- package/dist/hooks/useRecaptcha.js.map +1 -1
- package/dist/lib/utils.cjs.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/nav.cjs.map +1 -1
- package/dist/types/sitemap.cjs.map +1 -1
- package/dist/types/unist.cjs.map +1 -1
- package/package.json +14 -7
- package/styles/theme.css +52 -52
- package/dist/lib/utils.d.cjs +0 -17
- package/dist/lib/utils.d.cjs.map +0 -1
- package/dist/lib/utils.d.js +0 -1
- package/dist/lib/utils.d.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
# @slashclick/ui
|
|
2
|
-
|
|
3
|
-
Shared React component library built on Radix UI, shadcn/ui, and Tailwind CSS v4.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @slashclick/ui
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
Peer dependencies (install separately):
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
npm install next react react-dom
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Tailwind CSS Setup
|
|
18
|
-
|
|
19
|
-
The package ships pre-built JS/CSS. Add the design tokens and scan the package's class names in your app's Tailwind config.
|
|
20
|
-
|
|
21
|
-
### 1. Import the base CSS
|
|
22
|
-
|
|
23
|
-
In your root layout or global CSS:
|
|
24
|
-
|
|
25
|
-
```css
|
|
26
|
-
/* app/globals.css */
|
|
27
|
-
@import '@slashclick/ui/styles.css';
|
|
28
|
-
|
|
29
|
-
/* Add your own @source so Tailwind generates classes used by the components */
|
|
30
|
-
@source "../node_modules/@slashclick/ui/dist/**/*.js";
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### 2. Update your CSS entry point
|
|
34
|
-
|
|
35
|
-
If your app uses Tailwind v4 CSS-first config, the `@source` directive above is all you need.
|
|
36
|
-
|
|
37
|
-
For Tailwind v3 (`tailwind.config.js`), add to `content`:
|
|
38
|
-
|
|
39
|
-
```js
|
|
40
|
-
module.exports = {
|
|
41
|
-
content: [
|
|
42
|
-
// your app files...
|
|
43
|
-
'./node_modules/@slashclick/ui/dist/**/*.{js,cjs}',
|
|
44
|
-
],
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
## Usage
|
|
49
|
-
|
|
50
|
-
Import components directly from their subpath:
|
|
51
|
-
|
|
52
|
-
```tsx
|
|
53
|
-
import { Button } from '@slashclick/ui/components/ui/button'
|
|
54
|
-
import { Dialog, DialogContent } from '@slashclick/ui/components/ui/dialog'
|
|
55
|
-
import { cn } from '@slashclick/ui/lib/utils'
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### TypeScript path aliases (optional)
|
|
59
|
-
|
|
60
|
-
Add to your `tsconfig.json` for shorter imports:
|
|
61
|
-
|
|
62
|
-
```json
|
|
63
|
-
{
|
|
64
|
-
"compilerOptions": {
|
|
65
|
-
"paths": {
|
|
66
|
-
"@slashclick/ui/*": ["./node_modules/@slashclick/ui/*"]
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Theme
|
|
73
|
-
|
|
74
|
-
The package uses CSS variables for theming. Dark mode is toggled by setting `data-theme="dark"` on any ancestor element:
|
|
75
|
-
|
|
76
|
-
```tsx
|
|
77
|
-
// Light mode (default)
|
|
78
|
-
<html>...</html>
|
|
79
|
-
|
|
80
|
-
// Dark mode
|
|
81
|
-
<html data-theme="dark">...</html>
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Available Components
|
|
85
|
-
|
|
86
|
-
| Path | Components |
|
|
87
|
-
|------|-----------|
|
|
88
|
-
| `components/ui/button` | `Button`, `buttonVariants` |
|
|
89
|
-
| `components/ui/dialog` | `Dialog`, `DialogContent`, `DialogTrigger`, ... |
|
|
90
|
-
| `components/ui/card` | `Card`, `CardHeader`, `CardContent`, ... |
|
|
91
|
-
| `components/ui/input` | `Input` |
|
|
92
|
-
| `components/ui/select` | `Select`, `SelectContent`, `SelectItem`, ... |
|
|
93
|
-
| `components/ui/tabs` | `Tabs`, `TabsContent`, `TabsList`, `TabsTrigger` |
|
|
94
|
-
| `components/ui/dropdown-menu` | `DropdownMenu`, `DropdownMenuContent`, ... |
|
|
95
|
-
| `components/ui/toast` | `Toast`, `Toaster`, `useToast` |
|
|
96
|
-
| `components/lightbox` | `ImageLightbox`, `GallerySection`, `useEntityLightbox` |
|
|
97
|
-
| `components/dashboard/sidebar` | `Sidebar`, `CollapsibleSection`, `EntityList` |
|
|
98
|
-
| `lib/utils` | `cn`, `formatDate`, `absoluteUrl` |
|
|
99
|
-
|
|
100
|
-
## Publishing
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
# From the monorepo root
|
|
104
|
-
cd packages/ui
|
|
105
|
-
npm publish
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
The `prepublishOnly` script runs `pnpm clean && pnpm build` automatically.
|
|
1
|
+
# @slashclick/ui
|
|
2
|
+
|
|
3
|
+
Shared React component library built on Radix UI, shadcn/ui, and Tailwind CSS v4.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @slashclick/ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Peer dependencies (install separately):
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install next react react-dom
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Tailwind CSS Setup
|
|
18
|
+
|
|
19
|
+
The package ships pre-built JS/CSS. Add the design tokens and scan the package's class names in your app's Tailwind config.
|
|
20
|
+
|
|
21
|
+
### 1. Import the base CSS
|
|
22
|
+
|
|
23
|
+
In your root layout or global CSS:
|
|
24
|
+
|
|
25
|
+
```css
|
|
26
|
+
/* app/globals.css */
|
|
27
|
+
@import '@slashclick/ui/styles.css';
|
|
28
|
+
|
|
29
|
+
/* Add your own @source so Tailwind generates classes used by the components */
|
|
30
|
+
@source "../node_modules/@slashclick/ui/dist/**/*.js";
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Update your CSS entry point
|
|
34
|
+
|
|
35
|
+
If your app uses Tailwind v4 CSS-first config, the `@source` directive above is all you need.
|
|
36
|
+
|
|
37
|
+
For Tailwind v3 (`tailwind.config.js`), add to `content`:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
module.exports = {
|
|
41
|
+
content: [
|
|
42
|
+
// your app files...
|
|
43
|
+
'./node_modules/@slashclick/ui/dist/**/*.{js,cjs}',
|
|
44
|
+
],
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Usage
|
|
49
|
+
|
|
50
|
+
Import components directly from their subpath:
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
import { Button } from '@slashclick/ui/components/ui/button'
|
|
54
|
+
import { Dialog, DialogContent } from '@slashclick/ui/components/ui/dialog'
|
|
55
|
+
import { cn } from '@slashclick/ui/lib/utils'
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### TypeScript path aliases (optional)
|
|
59
|
+
|
|
60
|
+
Add to your `tsconfig.json` for shorter imports:
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"compilerOptions": {
|
|
65
|
+
"paths": {
|
|
66
|
+
"@slashclick/ui/*": ["./node_modules/@slashclick/ui/*"]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Theme
|
|
73
|
+
|
|
74
|
+
The package uses CSS variables for theming. Dark mode is toggled by setting `data-theme="dark"` on any ancestor element:
|
|
75
|
+
|
|
76
|
+
```tsx
|
|
77
|
+
// Light mode (default)
|
|
78
|
+
<html>...</html>
|
|
79
|
+
|
|
80
|
+
// Dark mode
|
|
81
|
+
<html data-theme="dark">...</html>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Available Components
|
|
85
|
+
|
|
86
|
+
| Path | Components |
|
|
87
|
+
|------|-----------|
|
|
88
|
+
| `components/ui/button` | `Button`, `buttonVariants` |
|
|
89
|
+
| `components/ui/dialog` | `Dialog`, `DialogContent`, `DialogTrigger`, ... |
|
|
90
|
+
| `components/ui/card` | `Card`, `CardHeader`, `CardContent`, ... |
|
|
91
|
+
| `components/ui/input` | `Input` |
|
|
92
|
+
| `components/ui/select` | `Select`, `SelectContent`, `SelectItem`, ... |
|
|
93
|
+
| `components/ui/tabs` | `Tabs`, `TabsContent`, `TabsList`, `TabsTrigger` |
|
|
94
|
+
| `components/ui/dropdown-menu` | `DropdownMenu`, `DropdownMenuContent`, ... |
|
|
95
|
+
| `components/ui/toast` | `Toast`, `Toaster`, `useToast` |
|
|
96
|
+
| `components/lightbox` | `ImageLightbox`, `GallerySection`, `useEntityLightbox` |
|
|
97
|
+
| `components/dashboard/sidebar` | `Sidebar`, `CollapsibleSection`, `EntityList` |
|
|
98
|
+
| `lib/utils` | `cn`, `formatDate`, `absoluteUrl` |
|
|
99
|
+
|
|
100
|
+
## Publishing
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# From the monorepo root
|
|
104
|
+
cd packages/ui
|
|
105
|
+
npm publish
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
The `prepublishOnly` script runs `pnpm clean && pnpm build` automatically.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/auth/providers.tsx"],"sourcesContent":["'use client'\nimport { useCallback } from 'react'\nimport { Button } from '../ui/button'\nimport { ProviderIcons } from '../tailwind/providerIcons'\n\nexport type SocialProvider = {\n id: string\n name: string\n type: string\n style: { logo: string; bg: string; text: string }\n}\n\ntype SignInSocialFn = (providerId: string, callbackUrl: string) => unknown\n\ninterface ProviderButtonProps {\n provider: SocialProvider\n callbackUrl: string\n signInSocial: SignInSocialFn\n}\n\ninterface ProviderSigninProps {\n providers: SocialProvider[]\n callbackUrl?: string | null\n signInSocial: SignInSocialFn\n}\n\nfunction ProviderButton({\n provider,\n callbackUrl,\n signInSocial,\n}: ProviderButtonProps) {\n const handleClick = useCallback(() => {\n const result = signInSocial(provider.id, callbackUrl)\n if (result instanceof Promise) {\n result.catch((error: unknown) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n 'Social sign-in failed:',\n error instanceof Error ? error.message : 'Unknown error',\n )\n }\n })\n }\n }, [provider.id, callbackUrl, signInSocial])\n\n return (\n <Button\n key={provider.id}\n variant=\"outline\"\n className=\"flex w-full items-center gap-3\"\n onClick={handleClick}\n >\n <ProviderIcons providerName={provider.name} />\n Continue with {provider.name}\n </Button>\n )\n}\n\nexport function ProviderSignin({\n providers,\n callbackUrl,\n signInSocial,\n}: ProviderSigninProps) {\n if (!providers.length) return null\n\n const resolvedCallbackUrl = callbackUrl ?? '/'\n\n return (\n <>\n {providers.map((provider) => (\n <ProviderButton\n key={provider.id}\n provider={provider}\n callbackUrl={resolvedCallbackUrl}\n signInSocial={signInSocial}\n />\n ))}\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8CI;AA7CJ,mBAA4B;AAC5B,oBAAuB;AACvB,2BAA8B;AAuB9B,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,kBAAc,0BAAY,MAAM;AACpC,UAAM,SAAS,aAAa,SAAS,IAAI,WAAW;AACpD,QAAI,kBAAkB,SAAS;AAC7B,aAAO,MAAM,CAAC,UAAmB;AAC/B,YAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAQ;AAAA,YACN;AAAA,YACA,iBAAiB,QAAQ,MAAM,UAAU;AAAA,UAC3C;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,SAAS,IAAI,aAAa,YAAY,CAAC;AAE3C,SACE;AAAA,IAAC;AAAA;AAAA,MAEC,SAAQ;AAAA,MACR,WAAU;AAAA,MACV,SAAS;AAAA,MAET;AAAA,oDAAC,sCAAc,cAAc,SAAS,MAAM;AAAA,QAAE;AAAA,QAC/B,SAAS;AAAA;AAAA;AAAA,IANnB,SAAS;AAAA,EAOhB;AAEJ;AAEO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,MAAI,CAAC,UAAU,OAAQ,QAAO;AAE9B,QAAM,sBAAsB,oCAAe;AAE3C,SACE,2EACG,oBAAU,IAAI,CAAC,aACd;AAAA,IAAC;AAAA;AAAA,MAEC;AAAA,MACA,aAAa;AAAA,MACb;AAAA;AAAA,IAHK,SAAS;AAAA,EAIhB,CACD,GACH;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/auth/providers.tsx"],"sourcesContent":["'use client'\r\nimport { useCallback } from 'react'\r\nimport { Button } from '../ui/button'\r\nimport { ProviderIcons } from '../tailwind/providerIcons'\r\n\r\nexport type SocialProvider = {\r\n id: string\r\n name: string\r\n type: string\r\n style: { logo: string; bg: string; text: string }\r\n}\r\n\r\ntype SignInSocialFn = (providerId: string, callbackUrl: string) => unknown\r\n\r\ninterface ProviderButtonProps {\r\n provider: SocialProvider\r\n callbackUrl: string\r\n signInSocial: SignInSocialFn\r\n}\r\n\r\ninterface ProviderSigninProps {\r\n providers: SocialProvider[]\r\n callbackUrl?: string | null\r\n signInSocial: SignInSocialFn\r\n}\r\n\r\nfunction ProviderButton({\r\n provider,\r\n callbackUrl,\r\n signInSocial,\r\n}: ProviderButtonProps) {\r\n const handleClick = useCallback(() => {\r\n const result = signInSocial(provider.id, callbackUrl)\r\n if (result instanceof Promise) {\r\n result.catch((error: unknown) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.error(\r\n 'Social sign-in failed:',\r\n error instanceof Error ? error.message : 'Unknown error',\r\n )\r\n }\r\n })\r\n }\r\n }, [provider.id, callbackUrl, signInSocial])\r\n\r\n return (\r\n <Button\r\n key={provider.id}\r\n variant=\"outline\"\r\n className=\"flex w-full items-center gap-3\"\r\n onClick={handleClick}\r\n >\r\n <ProviderIcons providerName={provider.name} />\r\n Continue with {provider.name}\r\n </Button>\r\n )\r\n}\r\n\r\nexport function ProviderSignin({\r\n providers,\r\n callbackUrl,\r\n signInSocial,\r\n}: ProviderSigninProps) {\r\n if (!providers.length) return null\r\n\r\n const resolvedCallbackUrl = callbackUrl ?? '/'\r\n\r\n return (\r\n <>\r\n {providers.map((provider) => (\r\n <ProviderButton\r\n key={provider.id}\r\n provider={provider}\r\n callbackUrl={resolvedCallbackUrl}\r\n signInSocial={signInSocial}\r\n />\r\n ))}\r\n </>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8CI;AA7CJ,mBAA4B;AAC5B,oBAAuB;AACvB,2BAA8B;AAuB9B,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,kBAAc,0BAAY,MAAM;AACpC,UAAM,SAAS,aAAa,SAAS,IAAI,WAAW;AACpD,QAAI,kBAAkB,SAAS;AAC7B,aAAO,MAAM,CAAC,UAAmB;AAC/B,YAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAQ;AAAA,YACN;AAAA,YACA,iBAAiB,QAAQ,MAAM,UAAU;AAAA,UAC3C;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,SAAS,IAAI,aAAa,YAAY,CAAC;AAE3C,SACE;AAAA,IAAC;AAAA;AAAA,MAEC,SAAQ;AAAA,MACR,WAAU;AAAA,MACV,SAAS;AAAA,MAET;AAAA,oDAAC,sCAAc,cAAc,SAAS,MAAM;AAAA,QAAE;AAAA,QAC/B,SAAS;AAAA;AAAA;AAAA,IANnB,SAAS;AAAA,EAOhB;AAEJ;AAEO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,MAAI,CAAC,UAAU,OAAQ,QAAO;AAE9B,QAAM,sBAAsB,oCAAe;AAE3C,SACE,2EACG,oBAAU,IAAI,CAAC,aACd;AAAA,IAAC;AAAA;AAAA,MAEC;AAAA,MACA,aAAa;AAAA,MACb;AAAA;AAAA,IAHK,SAAS;AAAA,EAIhB,CACD,GACH;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/auth/providers.tsx"],"sourcesContent":["'use client'\nimport { useCallback } from 'react'\nimport { Button } from '../ui/button'\nimport { ProviderIcons } from '../tailwind/providerIcons'\n\nexport type SocialProvider = {\n id: string\n name: string\n type: string\n style: { logo: string; bg: string; text: string }\n}\n\ntype SignInSocialFn = (providerId: string, callbackUrl: string) => unknown\n\ninterface ProviderButtonProps {\n provider: SocialProvider\n callbackUrl: string\n signInSocial: SignInSocialFn\n}\n\ninterface ProviderSigninProps {\n providers: SocialProvider[]\n callbackUrl?: string | null\n signInSocial: SignInSocialFn\n}\n\nfunction ProviderButton({\n provider,\n callbackUrl,\n signInSocial,\n}: ProviderButtonProps) {\n const handleClick = useCallback(() => {\n const result = signInSocial(provider.id, callbackUrl)\n if (result instanceof Promise) {\n result.catch((error: unknown) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n 'Social sign-in failed:',\n error instanceof Error ? error.message : 'Unknown error',\n )\n }\n })\n }\n }, [provider.id, callbackUrl, signInSocial])\n\n return (\n <Button\n key={provider.id}\n variant=\"outline\"\n className=\"flex w-full items-center gap-3\"\n onClick={handleClick}\n >\n <ProviderIcons providerName={provider.name} />\n Continue with {provider.name}\n </Button>\n )\n}\n\nexport function ProviderSignin({\n providers,\n callbackUrl,\n signInSocial,\n}: ProviderSigninProps) {\n if (!providers.length) return null\n\n const resolvedCallbackUrl = callbackUrl ?? '/'\n\n return (\n <>\n {providers.map((provider) => (\n <ProviderButton\n key={provider.id}\n provider={provider}\n callbackUrl={resolvedCallbackUrl}\n signInSocial={signInSocial}\n />\n ))}\n </>\n )\n}\n"],"mappings":";AA8CI,SAsBA,UAhBE,KANF;AA7CJ,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAuB9B,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,cAAc,YAAY,MAAM;AACpC,UAAM,SAAS,aAAa,SAAS,IAAI,WAAW;AACpD,QAAI,kBAAkB,SAAS;AAC7B,aAAO,MAAM,CAAC,UAAmB;AAC/B,YAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAQ;AAAA,YACN;AAAA,YACA,iBAAiB,QAAQ,MAAM,UAAU;AAAA,UAC3C;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,SAAS,IAAI,aAAa,YAAY,CAAC;AAE3C,SACE;AAAA,IAAC;AAAA;AAAA,MAEC,SAAQ;AAAA,MACR,WAAU;AAAA,MACV,SAAS;AAAA,MAET;AAAA,4BAAC,iBAAc,cAAc,SAAS,MAAM;AAAA,QAAE;AAAA,QAC/B,SAAS;AAAA;AAAA;AAAA,IANnB,SAAS;AAAA,EAOhB;AAEJ;AAEO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,MAAI,CAAC,UAAU,OAAQ,QAAO;AAE9B,QAAM,sBAAsB,oCAAe;AAE3C,SACE,gCACG,oBAAU,IAAI,CAAC,aACd;AAAA,IAAC;AAAA;AAAA,MAEC;AAAA,MACA,aAAa;AAAA,MACb;AAAA;AAAA,IAHK,SAAS;AAAA,EAIhB,CACD,GACH;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/auth/providers.tsx"],"sourcesContent":["'use client'\r\nimport { useCallback } from 'react'\r\nimport { Button } from '../ui/button'\r\nimport { ProviderIcons } from '../tailwind/providerIcons'\r\n\r\nexport type SocialProvider = {\r\n id: string\r\n name: string\r\n type: string\r\n style: { logo: string; bg: string; text: string }\r\n}\r\n\r\ntype SignInSocialFn = (providerId: string, callbackUrl: string) => unknown\r\n\r\ninterface ProviderButtonProps {\r\n provider: SocialProvider\r\n callbackUrl: string\r\n signInSocial: SignInSocialFn\r\n}\r\n\r\ninterface ProviderSigninProps {\r\n providers: SocialProvider[]\r\n callbackUrl?: string | null\r\n signInSocial: SignInSocialFn\r\n}\r\n\r\nfunction ProviderButton({\r\n provider,\r\n callbackUrl,\r\n signInSocial,\r\n}: ProviderButtonProps) {\r\n const handleClick = useCallback(() => {\r\n const result = signInSocial(provider.id, callbackUrl)\r\n if (result instanceof Promise) {\r\n result.catch((error: unknown) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.error(\r\n 'Social sign-in failed:',\r\n error instanceof Error ? error.message : 'Unknown error',\r\n )\r\n }\r\n })\r\n }\r\n }, [provider.id, callbackUrl, signInSocial])\r\n\r\n return (\r\n <Button\r\n key={provider.id}\r\n variant=\"outline\"\r\n className=\"flex w-full items-center gap-3\"\r\n onClick={handleClick}\r\n >\r\n <ProviderIcons providerName={provider.name} />\r\n Continue with {provider.name}\r\n </Button>\r\n )\r\n}\r\n\r\nexport function ProviderSignin({\r\n providers,\r\n callbackUrl,\r\n signInSocial,\r\n}: ProviderSigninProps) {\r\n if (!providers.length) return null\r\n\r\n const resolvedCallbackUrl = callbackUrl ?? '/'\r\n\r\n return (\r\n <>\r\n {providers.map((provider) => (\r\n <ProviderButton\r\n key={provider.id}\r\n provider={provider}\r\n callbackUrl={resolvedCallbackUrl}\r\n signInSocial={signInSocial}\r\n />\r\n ))}\r\n </>\r\n )\r\n}\r\n"],"mappings":";AA8CI,SAsBA,UAhBE,KANF;AA7CJ,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AACvB,SAAS,qBAAqB;AAuB9B,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,cAAc,YAAY,MAAM;AACpC,UAAM,SAAS,aAAa,SAAS,IAAI,WAAW;AACpD,QAAI,kBAAkB,SAAS;AAC7B,aAAO,MAAM,CAAC,UAAmB;AAC/B,YAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,kBAAQ;AAAA,YACN;AAAA,YACA,iBAAiB,QAAQ,MAAM,UAAU;AAAA,UAC3C;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,SAAS,IAAI,aAAa,YAAY,CAAC;AAE3C,SACE;AAAA,IAAC;AAAA;AAAA,MAEC,SAAQ;AAAA,MACR,WAAU;AAAA,MACV,SAAS;AAAA,MAET;AAAA,4BAAC,iBAAc,cAAc,SAAS,MAAM;AAAA,QAAE;AAAA,QAC/B,SAAS;AAAA;AAAA;AAAA,IANnB,SAAS;AAAA,EAOhB;AAEJ;AAEO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,MAAI,CAAC,UAAU,OAAQ,QAAO;AAE9B,QAAM,sBAAsB,oCAAe;AAE3C,SACE,gCACG,oBAAU,IAAI,CAAC,aACd;AAAA,IAAC;AAAA;AAAA,MAEC;AAAA,MACA,aAAa;AAAA,MACb;AAAA;AAAA,IAHK,SAAS;AAAA,EAIhB,CACD,GACH;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/card/back-button.tsx"],"sourcesContent":["'use client'\n\nimport Link from 'next/link'\n\nimport { Button } from '../ui/button'\n\ninterface BackButtonProps {\n href: string\n label: string\n}\n\nexport const BackButton = ({ href, label }: BackButtonProps) => {\n return (\n <Button variant=\"link\" className=\"w-full font-normal\" size=\"sm\" asChild>\n <Link href={href}>{label}</Link>\n </Button>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcM;AAZN,kBAAiB;AAEjB,oBAAuB;AAOhB,MAAM,aAAa,CAAC,EAAE,MAAM,MAAM,MAAuB;AAC9D,SACE,4CAAC,wBAAO,SAAQ,QAAO,WAAU,sBAAqB,MAAK,MAAK,SAAO,MACrE,sDAAC,YAAAA,SAAA,EAAK,MAAa,iBAAM,GAC3B;AAEJ;","names":["Link"]}
|
|
1
|
+
{"version":3,"sources":["../../../components/card/back-button.tsx"],"sourcesContent":["'use client'\r\n\r\nimport Link from 'next/link'\r\n\r\nimport { Button } from '../ui/button'\r\n\r\ninterface BackButtonProps {\r\n href: string\r\n label: string\r\n}\r\n\r\nexport const BackButton = ({ href, label }: BackButtonProps) => {\r\n return (\r\n <Button variant=\"link\" className=\"w-full font-normal\" size=\"sm\" asChild>\r\n <Link href={href}>{label}</Link>\r\n </Button>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcM;AAZN,kBAAiB;AAEjB,oBAAuB;AAOhB,MAAM,aAAa,CAAC,EAAE,MAAM,MAAM,MAAuB;AAC9D,SACE,4CAAC,wBAAO,SAAQ,QAAO,WAAU,sBAAqB,MAAK,MAAK,SAAO,MACrE,sDAAC,YAAAA,SAAA,EAAK,MAAa,iBAAM,GAC3B;AAEJ;","names":["Link"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/card/back-button.tsx"],"sourcesContent":["'use client'\n\nimport Link from 'next/link'\n\nimport { Button } from '../ui/button'\n\ninterface BackButtonProps {\n href: string\n label: string\n}\n\nexport const BackButton = ({ href, label }: BackButtonProps) => {\n return (\n <Button variant=\"link\" className=\"w-full font-normal\" size=\"sm\" asChild>\n <Link href={href}>{label}</Link>\n </Button>\n )\n}\n"],"mappings":";AAcM;AAZN,OAAO,UAAU;AAEjB,SAAS,cAAc;AAOhB,MAAM,aAAa,CAAC,EAAE,MAAM,MAAM,MAAuB;AAC9D,SACE,oBAAC,UAAO,SAAQ,QAAO,WAAU,sBAAqB,MAAK,MAAK,SAAO,MACrE,8BAAC,QAAK,MAAa,iBAAM,GAC3B;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/card/back-button.tsx"],"sourcesContent":["'use client'\r\n\r\nimport Link from 'next/link'\r\n\r\nimport { Button } from '../ui/button'\r\n\r\ninterface BackButtonProps {\r\n href: string\r\n label: string\r\n}\r\n\r\nexport const BackButton = ({ href, label }: BackButtonProps) => {\r\n return (\r\n <Button variant=\"link\" className=\"w-full font-normal\" size=\"sm\" asChild>\r\n <Link href={href}>{label}</Link>\r\n </Button>\r\n )\r\n}\r\n"],"mappings":";AAcM;AAZN,OAAO,UAAU;AAEjB,SAAS,cAAc;AAOhB,MAAM,aAAa,CAAC,EAAE,MAAM,MAAM,MAAuB;AAC9D,SACE,oBAAC,UAAO,SAAQ,QAAO,WAAU,sBAAqB,MAAK,MAAK,SAAO,MACrE,8BAAC,QAAK,MAAa,iBAAM,GAC3B;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/card/card-wrapper.tsx"],"sourcesContent":["'use client'\n\nimport {\n CardContent,\n CardFooter,\n CardHeader,\n} from '../ui/card'\nimport { Header } from './header'\nimport { BackButton } from './back-button'\n\ninterface CardWrapperProps {\n children: React.ReactNode\n headerLabel: string\n backButtonLabel: string\n backButtonHref: string\n showSocial?: boolean\n slim?: boolean\n logo?: React.ReactNode\n}\n\nexport const CardWrapper = ({\n children,\n headerLabel,\n backButtonLabel,\n backButtonHref,\n slim,\n logo,\n}: CardWrapperProps) => {\n return (\n <>\n <CardHeader>\n <Header\n label={headerLabel}\n backButtonHref={backButtonHref}\n backButtonLabel={backButtonLabel}\n logo={logo}\n />\n </CardHeader>\n <div className=\"mb-10 mt-2 sm:mx-auto sm:w-full sm:max-w-[480px]\">\n {slim && <CardContent>{children}</CardContent>}\n {!slim && (\n <div className=\"shadow-xs border border-gray-200 bg-white px-6 py-12 sm:rounded-lg sm:px-12 dark:border-gray-700 dark:bg-gray-800\">\n <CardContent>{children}</CardContent>\n </div>\n )}\n </div>\n <CardFooter>\n <BackButton label={backButtonLabel} href={backButtonHref} />\n </CardFooter>\n </>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BI;AA3BJ,kBAIO;AACP,oBAAuB;AACvB,yBAA2B;AAYpB,MAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAwB;AACtB,SACE,4EACE;AAAA,gDAAC,0BACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,GACF;AAAA,IACA,6CAAC,SAAI,WAAU,oDACZ;AAAA,cAAQ,4CAAC,2BAAa,UAAS;AAAA,MAC/B,CAAC,QACA,4CAAC,SAAI,WAAU,qHACb,sDAAC,2BAAa,UAAS,GACzB;AAAA,OAEJ;AAAA,IACA,4CAAC,0BACC,sDAAC,iCAAW,OAAO,iBAAiB,MAAM,gBAAgB,GAC5D;AAAA,KACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/card/card-wrapper.tsx"],"sourcesContent":["'use client'\r\n\r\nimport {\r\n CardContent,\r\n CardFooter,\r\n CardHeader,\r\n} from '../ui/card'\r\nimport { Header } from './header'\r\nimport { BackButton } from './back-button'\r\n\r\ninterface CardWrapperProps {\r\n children: React.ReactNode\r\n headerLabel: string\r\n backButtonLabel: string\r\n backButtonHref: string\r\n showSocial?: boolean\r\n slim?: boolean\r\n logo?: React.ReactNode\r\n}\r\n\r\nexport const CardWrapper = ({\r\n children,\r\n headerLabel,\r\n backButtonLabel,\r\n backButtonHref,\r\n slim,\r\n logo,\r\n}: CardWrapperProps) => {\r\n return (\r\n <>\r\n <CardHeader>\r\n <Header\r\n label={headerLabel}\r\n backButtonHref={backButtonHref}\r\n backButtonLabel={backButtonLabel}\r\n logo={logo}\r\n />\r\n </CardHeader>\r\n <div className=\"mb-10 mt-2 sm:mx-auto sm:w-full sm:max-w-[480px]\">\r\n {slim && <CardContent>{children}</CardContent>}\r\n {!slim && (\r\n <div className=\"shadow-xs border border-gray-200 bg-white px-6 py-12 sm:rounded-lg sm:px-12 dark:border-gray-700 dark:bg-gray-800\">\r\n <CardContent>{children}</CardContent>\r\n </div>\r\n )}\r\n </div>\r\n <CardFooter>\r\n <BackButton label={backButtonLabel} href={backButtonHref} />\r\n </CardFooter>\r\n </>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BI;AA3BJ,kBAIO;AACP,oBAAuB;AACvB,yBAA2B;AAYpB,MAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAwB;AACtB,SACE,4EACE;AAAA,gDAAC,0BACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,GACF;AAAA,IACA,6CAAC,SAAI,WAAU,oDACZ;AAAA,cAAQ,4CAAC,2BAAa,UAAS;AAAA,MAC/B,CAAC,QACA,4CAAC,SAAI,WAAU,qHACb,sDAAC,2BAAa,UAAS,GACzB;AAAA,OAEJ;AAAA,IACA,4CAAC,0BACC,sDAAC,iCAAW,OAAO,iBAAiB,MAAM,gBAAgB,GAC5D;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/card/card-wrapper.tsx"],"sourcesContent":["'use client'\n\nimport {\n CardContent,\n CardFooter,\n CardHeader,\n} from '../ui/card'\nimport { Header } from './header'\nimport { BackButton } from './back-button'\n\ninterface CardWrapperProps {\n children: React.ReactNode\n headerLabel: string\n backButtonLabel: string\n backButtonHref: string\n showSocial?: boolean\n slim?: boolean\n logo?: React.ReactNode\n}\n\nexport const CardWrapper = ({\n children,\n headerLabel,\n backButtonLabel,\n backButtonHref,\n slim,\n logo,\n}: CardWrapperProps) => {\n return (\n <>\n <CardHeader>\n <Header\n label={headerLabel}\n backButtonHref={backButtonHref}\n backButtonLabel={backButtonLabel}\n logo={logo}\n />\n </CardHeader>\n <div className=\"mb-10 mt-2 sm:mx-auto sm:w-full sm:max-w-[480px]\">\n {slim && <CardContent>{children}</CardContent>}\n {!slim && (\n <div className=\"shadow-xs border border-gray-200 bg-white px-6 py-12 sm:rounded-lg sm:px-12 dark:border-gray-700 dark:bg-gray-800\">\n <CardContent>{children}</CardContent>\n </div>\n )}\n </div>\n <CardFooter>\n <BackButton label={backButtonLabel} href={backButtonHref} />\n </CardFooter>\n </>\n )\n}\n"],"mappings":";AA6BI,mBAEI,KAOF,YATF;AA3BJ;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAYpB,MAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAwB;AACtB,SACE,iCACE;AAAA,wBAAC,cACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,GACF;AAAA,IACA,qBAAC,SAAI,WAAU,oDACZ;AAAA,cAAQ,oBAAC,eAAa,UAAS;AAAA,MAC/B,CAAC,QACA,oBAAC,SAAI,WAAU,qHACb,8BAAC,eAAa,UAAS,GACzB;AAAA,OAEJ;AAAA,IACA,oBAAC,cACC,8BAAC,cAAW,OAAO,iBAAiB,MAAM,gBAAgB,GAC5D;AAAA,KACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/card/card-wrapper.tsx"],"sourcesContent":["'use client'\r\n\r\nimport {\r\n CardContent,\r\n CardFooter,\r\n CardHeader,\r\n} from '../ui/card'\r\nimport { Header } from './header'\r\nimport { BackButton } from './back-button'\r\n\r\ninterface CardWrapperProps {\r\n children: React.ReactNode\r\n headerLabel: string\r\n backButtonLabel: string\r\n backButtonHref: string\r\n showSocial?: boolean\r\n slim?: boolean\r\n logo?: React.ReactNode\r\n}\r\n\r\nexport const CardWrapper = ({\r\n children,\r\n headerLabel,\r\n backButtonLabel,\r\n backButtonHref,\r\n slim,\r\n logo,\r\n}: CardWrapperProps) => {\r\n return (\r\n <>\r\n <CardHeader>\r\n <Header\r\n label={headerLabel}\r\n backButtonHref={backButtonHref}\r\n backButtonLabel={backButtonLabel}\r\n logo={logo}\r\n />\r\n </CardHeader>\r\n <div className=\"mb-10 mt-2 sm:mx-auto sm:w-full sm:max-w-[480px]\">\r\n {slim && <CardContent>{children}</CardContent>}\r\n {!slim && (\r\n <div className=\"shadow-xs border border-gray-200 bg-white px-6 py-12 sm:rounded-lg sm:px-12 dark:border-gray-700 dark:bg-gray-800\">\r\n <CardContent>{children}</CardContent>\r\n </div>\r\n )}\r\n </div>\r\n <CardFooter>\r\n <BackButton label={backButtonLabel} href={backButtonHref} />\r\n </CardFooter>\r\n </>\r\n )\r\n}\r\n"],"mappings":";AA6BI,mBAEI,KAOF,YATF;AA3BJ;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAYpB,MAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAwB;AACtB,SACE,iCACE;AAAA,wBAAC,cACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACF,GACF;AAAA,IACA,qBAAC,SAAI,WAAU,oDACZ;AAAA,cAAQ,oBAAC,eAAa,UAAS;AAAA,MAC/B,CAAC,QACA,oBAAC,SAAI,WAAU,qHACb,8BAAC,eAAa,UAAS,GACzB;AAAA,OAEJ;AAAA,IACA,oBAAC,cACC,8BAAC,cAAW,OAAO,iBAAiB,MAAM,gBAAgB,GAC5D;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/card/header.tsx"],"sourcesContent":["import Link from 'next/link'\nimport { Logo } from '../icons/logo'\n\ninterface HeaderProps {\n label: string\n backButtonHref: string\n backButtonLabel: string\n logo?: React.ReactNode\n}\n\nexport const Header = ({\n label,\n backButtonLabel,\n backButtonHref,\n logo,\n}: HeaderProps) => {\n return (\n <div className=\"sm:mx-auto sm:w-full sm:max-w-md\">\n <Link href=\"/\">\n {logo ?? <Logo className=\"mx-auto h-10 w-auto\" />}\n </Link>\n <h2 className=\"mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-500 dark:text-white\">\n {label}\n </h2>\n\n {backButtonLabel ? (\n <p className=\"text-center text-sm text-gray-500 dark:text-gray-400\">\n <Link href={backButtonHref}>{backButtonLabel}</Link>\n </p>\n ) : null}\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBI;AAjBJ,kBAAiB;AACjB,kBAAqB;AASd,MAAM,SAAS,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAmB;AACjB,SACE,6CAAC,SAAI,WAAU,oCACb;AAAA,gDAAC,YAAAA,SAAA,EAAK,MAAK,KACR,gCAAQ,4CAAC,oBAAK,WAAU,uBAAsB,GACjD;AAAA,IACA,4CAAC,QAAG,WAAU,8FACX,iBACH;AAAA,IAEC,kBACC,4CAAC,OAAE,WAAU,wDACX,sDAAC,YAAAA,SAAA,EAAK,MAAM,gBAAiB,2BAAgB,GAC/C,IACE;AAAA,KACN;AAEJ;","names":["Link"]}
|
|
1
|
+
{"version":3,"sources":["../../../components/card/header.tsx"],"sourcesContent":["import Link from 'next/link'\r\nimport { Logo } from '../icons/logo'\r\n\r\ninterface HeaderProps {\r\n label: string\r\n backButtonHref: string\r\n backButtonLabel: string\r\n logo?: React.ReactNode\r\n}\r\n\r\nexport const Header = ({\r\n label,\r\n backButtonLabel,\r\n backButtonHref,\r\n logo,\r\n}: HeaderProps) => {\r\n return (\r\n <div className=\"sm:mx-auto sm:w-full sm:max-w-md\">\r\n <Link href=\"/\">\r\n {logo ?? <Logo className=\"mx-auto h-10 w-auto\" />}\r\n </Link>\r\n <h2 className=\"mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-500 dark:text-white\">\r\n {label}\r\n </h2>\r\n\r\n {backButtonLabel ? (\r\n <p className=\"text-center text-sm text-gray-500 dark:text-gray-400\">\r\n <Link href={backButtonHref}>{backButtonLabel}</Link>\r\n </p>\r\n ) : null}\r\n </div>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBI;AAjBJ,kBAAiB;AACjB,kBAAqB;AASd,MAAM,SAAS,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAmB;AACjB,SACE,6CAAC,SAAI,WAAU,oCACb;AAAA,gDAAC,YAAAA,SAAA,EAAK,MAAK,KACR,gCAAQ,4CAAC,oBAAK,WAAU,uBAAsB,GACjD;AAAA,IACA,4CAAC,QAAG,WAAU,8FACX,iBACH;AAAA,IAEC,kBACC,4CAAC,OAAE,WAAU,wDACX,sDAAC,YAAAA,SAAA,EAAK,MAAM,gBAAiB,2BAAgB,GAC/C,IACE;AAAA,KACN;AAEJ;","names":["Link"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/card/header.tsx"],"sourcesContent":["import Link from 'next/link'\nimport { Logo } from '../icons/logo'\n\ninterface HeaderProps {\n label: string\n backButtonHref: string\n backButtonLabel: string\n logo?: React.ReactNode\n}\n\nexport const Header = ({\n label,\n backButtonLabel,\n backButtonHref,\n logo,\n}: HeaderProps) => {\n return (\n <div className=\"sm:mx-auto sm:w-full sm:max-w-md\">\n <Link href=\"/\">\n {logo ?? <Logo className=\"mx-auto h-10 w-auto\" />}\n </Link>\n <h2 className=\"mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-500 dark:text-white\">\n {label}\n </h2>\n\n {backButtonLabel ? (\n <p className=\"text-center text-sm text-gray-500 dark:text-gray-400\">\n <Link href={backButtonHref}>{backButtonLabel}</Link>\n </p>\n ) : null}\n </div>\n )\n}\n"],"mappings":"AAiBI,SAEa,KAFb;AAjBJ,OAAO,UAAU;AACjB,SAAS,YAAY;AASd,MAAM,SAAS,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAmB;AACjB,SACE,qBAAC,SAAI,WAAU,oCACb;AAAA,wBAAC,QAAK,MAAK,KACR,gCAAQ,oBAAC,QAAK,WAAU,uBAAsB,GACjD;AAAA,IACA,oBAAC,QAAG,WAAU,8FACX,iBACH;AAAA,IAEC,kBACC,oBAAC,OAAE,WAAU,wDACX,8BAAC,QAAK,MAAM,gBAAiB,2BAAgB,GAC/C,IACE;AAAA,KACN;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/card/header.tsx"],"sourcesContent":["import Link from 'next/link'\r\nimport { Logo } from '../icons/logo'\r\n\r\ninterface HeaderProps {\r\n label: string\r\n backButtonHref: string\r\n backButtonLabel: string\r\n logo?: React.ReactNode\r\n}\r\n\r\nexport const Header = ({\r\n label,\r\n backButtonLabel,\r\n backButtonHref,\r\n logo,\r\n}: HeaderProps) => {\r\n return (\r\n <div className=\"sm:mx-auto sm:w-full sm:max-w-md\">\r\n <Link href=\"/\">\r\n {logo ?? <Logo className=\"mx-auto h-10 w-auto\" />}\r\n </Link>\r\n <h2 className=\"mt-6 text-center text-2xl font-bold leading-9 tracking-tight text-gray-500 dark:text-white\">\r\n {label}\r\n </h2>\r\n\r\n {backButtonLabel ? (\r\n <p className=\"text-center text-sm text-gray-500 dark:text-gray-400\">\r\n <Link href={backButtonHref}>{backButtonLabel}</Link>\r\n </p>\r\n ) : null}\r\n </div>\r\n )\r\n}\r\n"],"mappings":"AAiBI,SAEa,KAFb;AAjBJ,OAAO,UAAU;AACjB,SAAS,YAAY;AASd,MAAM,SAAS,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAmB;AACjB,SACE,qBAAC,SAAI,WAAU,oCACb;AAAA,wBAAC,QAAK,MAAK,KACR,gCAAQ,oBAAC,QAAK,WAAU,uBAAsB,GACjD;AAAA,IACA,oBAAC,QAAG,WAAU,8FACX,iBACH;AAAA,IAEC,kBACC,oBAAC,OAAE,WAAU,wDACX,8BAAC,QAAK,MAAM,gBAAiB,2BAAgB,GAC/C,IACE;AAAA,KACN;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/combobox/ComboList.tsx"],"sourcesContent":["import {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '../ui/command'\n\nexport const ComboList = ({\n page,\n setOpen,\n setSelectedItem,\n items,\n}: {\n page: any\n setOpen: (_open: boolean) => void\n setSelectedItem: (_status: string | null) => void\n items?: {\n name: string\n label: string\n Icon: React.ElementType\n variant?: string\n href: string\n onSelect: (_name: string) => void\n }[]\n}) => {\n return (\n <Command>\n <CommandInput placeholder={`${page.title}...`} />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup>\n {page?.children?.map((child: any) => (\n <CommandItem\n key={child.name}\n value={child.name}\n onSelect={(value) => {\n setSelectedItem(\n page?.children.find(() => child.name === value) || null,\n )\n setOpen(false)\n }}\n >\n {child.label}\n </CommandItem>\n ))}\n\n {items?.map((item) => {\n const { Icon } = item\n\n return (\n <CommandItem\n key={item.name}\n value={item.name}\n onSelect={(_value) => {\n setOpen(false)\n item.onSelect(item.href)\n }}\n >\n <Icon className=\"mr-2 h-4 w-4\" />\n <span>{item.label}</span>\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BM;AA7BN,qBAOO;AAEA,MAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAYM;AA1BN;AA2BE,SACE,6CAAC,0BACC;AAAA,gDAAC,+BAAa,aAAa,GAAG,KAAK,KAAK,OAAO;AAAA,IAC/C,6CAAC,8BACC;AAAA,kDAAC,+BAAa,+BAAiB;AAAA,MAC/B,6CAAC,+BACE;AAAA,2CAAM,aAAN,mBAAgB,IAAI,CAAC,UACpB;AAAA,UAAC;AAAA;AAAA,YAEC,OAAO,MAAM;AAAA,YACb,UAAU,CAAC,UAAU;AACnB;AAAA,iBACE,6BAAM,SAAS,KAAK,MAAM,MAAM,SAAS,WAAU;AAAA,cACrD;AACA,sBAAQ,KAAK;AAAA,YACf;AAAA,YAEC,gBAAM;AAAA;AAAA,UATF,MAAM;AAAA,QAUb;AAAA,QAGD,+BAAO,IAAI,CAAC,SAAS;AACpB,gBAAM,EAAE,KAAK,IAAI;AAEjB,iBACE;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,KAAK;AAAA,cACZ,UAAU,CAAC,WAAW;AACpB,wBAAQ,KAAK;AACb,qBAAK,SAAS,KAAK,IAAI;AAAA,cACzB;AAAA,cAEA;AAAA,4DAAC,QAAK,WAAU,gBAAe;AAAA,gBAC/B,4CAAC,UAAM,eAAK,OAAM;AAAA;AAAA;AAAA,YARb,KAAK;AAAA,UASZ;AAAA,QAEJ;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/combobox/ComboList.tsx"],"sourcesContent":["import {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from '../ui/command'\r\n\r\nexport const ComboList = ({\r\n page,\r\n setOpen,\r\n setSelectedItem,\r\n items,\r\n}: {\r\n page: any\r\n setOpen: (_open: boolean) => void\r\n setSelectedItem: (_status: string | null) => void\r\n items?: {\r\n name: string\r\n label: string\r\n Icon: React.ElementType\r\n variant?: string\r\n href: string\r\n onSelect: (_name: string) => void\r\n }[]\r\n}) => {\r\n return (\r\n <Command>\r\n <CommandInput placeholder={`${page.title}...`} />\r\n <CommandList>\r\n <CommandEmpty>No results found.</CommandEmpty>\r\n <CommandGroup>\r\n {page?.children?.map((child: any) => (\r\n <CommandItem\r\n key={child.name}\r\n value={child.name}\r\n onSelect={(value) => {\r\n setSelectedItem(\r\n page?.children.find(() => child.name === value) || null,\r\n )\r\n setOpen(false)\r\n }}\r\n >\r\n {child.label}\r\n </CommandItem>\r\n ))}\r\n\r\n {items?.map((item) => {\r\n const { Icon } = item\r\n\r\n return (\r\n <CommandItem\r\n key={item.name}\r\n value={item.name}\r\n onSelect={(_value) => {\r\n setOpen(false)\r\n item.onSelect(item.href)\r\n }}\r\n >\r\n <Icon className=\"mr-2 h-4 w-4\" />\r\n <span>{item.label}</span>\r\n </CommandItem>\r\n )\r\n })}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BM;AA7BN,qBAOO;AAEA,MAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAYM;AA1BN;AA2BE,SACE,6CAAC,0BACC;AAAA,gDAAC,+BAAa,aAAa,GAAG,KAAK,KAAK,OAAO;AAAA,IAC/C,6CAAC,8BACC;AAAA,kDAAC,+BAAa,+BAAiB;AAAA,MAC/B,6CAAC,+BACE;AAAA,2CAAM,aAAN,mBAAgB,IAAI,CAAC,UACpB;AAAA,UAAC;AAAA;AAAA,YAEC,OAAO,MAAM;AAAA,YACb,UAAU,CAAC,UAAU;AACnB;AAAA,iBACE,6BAAM,SAAS,KAAK,MAAM,MAAM,SAAS,WAAU;AAAA,cACrD;AACA,sBAAQ,KAAK;AAAA,YACf;AAAA,YAEC,gBAAM;AAAA;AAAA,UATF,MAAM;AAAA,QAUb;AAAA,QAGD,+BAAO,IAAI,CAAC,SAAS;AACpB,gBAAM,EAAE,KAAK,IAAI;AAEjB,iBACE;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,KAAK;AAAA,cACZ,UAAU,CAAC,WAAW;AACpB,wBAAQ,KAAK;AACb,qBAAK,SAAS,KAAK,IAAI;AAAA,cACzB;AAAA,cAEA;AAAA,4DAAC,QAAK,WAAU,gBAAe;AAAA,gBAC/B,4CAAC,UAAM,eAAK,OAAM;AAAA;AAAA;AAAA,YARb,KAAK;AAAA,UASZ;AAAA,QAEJ;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/combobox/ComboList.tsx"],"sourcesContent":["import {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '../ui/command'\n\nexport const ComboList = ({\n page,\n setOpen,\n setSelectedItem,\n items,\n}: {\n page: any\n setOpen: (_open: boolean) => void\n setSelectedItem: (_status: string | null) => void\n items?: {\n name: string\n label: string\n Icon: React.ElementType\n variant?: string\n href: string\n onSelect: (_name: string) => void\n }[]\n}) => {\n return (\n <Command>\n <CommandInput placeholder={`${page.title}...`} />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup>\n {page?.children?.map((child: any) => (\n <CommandItem\n key={child.name}\n value={child.name}\n onSelect={(value) => {\n setSelectedItem(\n page?.children.find(() => child.name === value) || null,\n )\n setOpen(false)\n }}\n >\n {child.label}\n </CommandItem>\n ))}\n\n {items?.map((item) => {\n const { Icon } = item\n\n return (\n <CommandItem\n key={item.name}\n value={item.name}\n onSelect={(_value) => {\n setOpen(false)\n item.onSelect(item.href)\n }}\n >\n <Icon className=\"mr-2 h-4 w-4\" />\n <span>{item.label}</span>\n </CommandItem>\n )\n })}\n </CommandGroup>\n </CommandList>\n </Command>\n )\n}\n"],"mappings":"AA6BM,cAuBQ,YAvBR;AA7BN;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAYM;AA1BN;AA2BE,SACE,qBAAC,WACC;AAAA,wBAAC,gBAAa,aAAa,GAAG,KAAK,KAAK,OAAO;AAAA,IAC/C,qBAAC,eACC;AAAA,0BAAC,gBAAa,+BAAiB;AAAA,MAC/B,qBAAC,gBACE;AAAA,2CAAM,aAAN,mBAAgB,IAAI,CAAC,UACpB;AAAA,UAAC;AAAA;AAAA,YAEC,OAAO,MAAM;AAAA,YACb,UAAU,CAAC,UAAU;AACnB;AAAA,iBACE,6BAAM,SAAS,KAAK,MAAM,MAAM,SAAS,WAAU;AAAA,cACrD;AACA,sBAAQ,KAAK;AAAA,YACf;AAAA,YAEC,gBAAM;AAAA;AAAA,UATF,MAAM;AAAA,QAUb;AAAA,QAGD,+BAAO,IAAI,CAAC,SAAS;AACpB,gBAAM,EAAE,KAAK,IAAI;AAEjB,iBACE;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,KAAK;AAAA,cACZ,UAAU,CAAC,WAAW;AACpB,wBAAQ,KAAK;AACb,qBAAK,SAAS,KAAK,IAAI;AAAA,cACzB;AAAA,cAEA;AAAA,oCAAC,QAAK,WAAU,gBAAe;AAAA,gBAC/B,oBAAC,UAAM,eAAK,OAAM;AAAA;AAAA;AAAA,YARb,KAAK;AAAA,UASZ;AAAA,QAEJ;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/combobox/ComboList.tsx"],"sourcesContent":["import {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from '../ui/command'\r\n\r\nexport const ComboList = ({\r\n page,\r\n setOpen,\r\n setSelectedItem,\r\n items,\r\n}: {\r\n page: any\r\n setOpen: (_open: boolean) => void\r\n setSelectedItem: (_status: string | null) => void\r\n items?: {\r\n name: string\r\n label: string\r\n Icon: React.ElementType\r\n variant?: string\r\n href: string\r\n onSelect: (_name: string) => void\r\n }[]\r\n}) => {\r\n return (\r\n <Command>\r\n <CommandInput placeholder={`${page.title}...`} />\r\n <CommandList>\r\n <CommandEmpty>No results found.</CommandEmpty>\r\n <CommandGroup>\r\n {page?.children?.map((child: any) => (\r\n <CommandItem\r\n key={child.name}\r\n value={child.name}\r\n onSelect={(value) => {\r\n setSelectedItem(\r\n page?.children.find(() => child.name === value) || null,\r\n )\r\n setOpen(false)\r\n }}\r\n >\r\n {child.label}\r\n </CommandItem>\r\n ))}\r\n\r\n {items?.map((item) => {\r\n const { Icon } = item\r\n\r\n return (\r\n <CommandItem\r\n key={item.name}\r\n value={item.name}\r\n onSelect={(_value) => {\r\n setOpen(false)\r\n item.onSelect(item.href)\r\n }}\r\n >\r\n <Icon className=\"mr-2 h-4 w-4\" />\r\n <span>{item.label}</span>\r\n </CommandItem>\r\n )\r\n })}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n )\r\n}\r\n"],"mappings":"AA6BM,cAuBQ,YAvBR;AA7BN;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAYM;AA1BN;AA2BE,SACE,qBAAC,WACC;AAAA,wBAAC,gBAAa,aAAa,GAAG,KAAK,KAAK,OAAO;AAAA,IAC/C,qBAAC,eACC;AAAA,0BAAC,gBAAa,+BAAiB;AAAA,MAC/B,qBAAC,gBACE;AAAA,2CAAM,aAAN,mBAAgB,IAAI,CAAC,UACpB;AAAA,UAAC;AAAA;AAAA,YAEC,OAAO,MAAM;AAAA,YACb,UAAU,CAAC,UAAU;AACnB;AAAA,iBACE,6BAAM,SAAS,KAAK,MAAM,MAAM,SAAS,WAAU;AAAA,cACrD;AACA,sBAAQ,KAAK;AAAA,YACf;AAAA,YAEC,gBAAM;AAAA;AAAA,UATF,MAAM;AAAA,QAUb;AAAA,QAGD,+BAAO,IAAI,CAAC,SAAS;AACpB,gBAAM,EAAE,KAAK,IAAI;AAEjB,iBACE;AAAA,YAAC;AAAA;AAAA,cAEC,OAAO,KAAK;AAAA,cACZ,UAAU,CAAC,WAAW;AACpB,wBAAQ,KAAK;AACb,qBAAK,SAAS,KAAK,IAAI;AAAA,cACzB;AAAA,cAEA;AAAA,oCAAC,QAAK,WAAU,gBAAe;AAAA,gBAC/B,oBAAC,UAAM,eAAK,OAAM;AAAA;AAAA;AAAA,YARb,KAAK;AAAA,UASZ;AAAA,QAEJ;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/combobox/index.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { Button } from '../ui/button'\nimport { Drawer, DrawerContent, DrawerTrigger } from '../ui/drawer'\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'\nimport { BookPlus, ChevronDown } from 'lucide-react'\nimport { ComboList } from './ComboList'\n\nconst extraItems = [\n {\n name: 'new',\n label: 'Add New',\n Icon: BookPlus,\n href: '#',\n onSelect: () => {},\n },\n]\nfunction ComboBoxResponsive({\n page,\n onAdd,\n}: {\n page: any\n onAdd: (_pageName: string) => void\n}) {\n const [open, setOpen] = useState(false)\n const isDesktop = true\n const [selectedStatus, setSelectedItem] = useState<any | null>(null)\n\n if (isDesktop) {\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"ghost\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-full justify-between capitalize\"\n >\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ {page.title}</>}\n <ChevronDown className=\"opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\" align=\"start\">\n <ComboList\n page={page}\n setOpen={setOpen}\n setSelectedItem={setSelectedItem}\n items={extraItems.map((item) => ({\n ...item,\n onSelect: onAdd,\n href: `/create/${page.href}`,\n name: page.title,\n }))}\n />\n </PopoverContent>\n </Popover>\n )\n }\n\n return (\n <Drawer open={open} onOpenChange={setOpen}>\n <DrawerTrigger asChild>\n <Button variant=\"outline\" className=\"w-full justify-start\">\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ {page.title}</>}\n </Button>\n </DrawerTrigger>\n <DrawerContent>\n <div className=\"mt-4 border-t\">\n <ComboList\n page={page}\n setOpen={setOpen}\n setSelectedItem={setSelectedItem}\n items={extraItems.map((item) => ({\n ...item,\n onSelect: onAdd,\n href: `/create/${page.href}`,\n name: page.title,\n }))}\n />\n </div>\n </DrawerContent>\n </Drawer>\n )\n}\n\nexport default ComboBoxResponsive\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqC8B;AArC9B,mBAAyB;AACzB,oBAAuB;AACvB,oBAAqD;AACrD,qBAAwD;AACxD,0BAAsC;AACtC,uBAA0B;AAE1B,MAAM,aAAa;AAAA,EACjB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU,MAAM;AAAA,IAAC;AAAA,EACnB;AACF;AACA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AACF,GAGG;AACD,QAAM,CAAC,MAAM,OAAO,QAAI,uBAAS,KAAK;AACtC,QAAM,YAAY;AAClB,QAAM,CAAC,gBAAgB,eAAe,QAAI,uBAAqB,IAAI;AAEnE,MAAI,WAAW;AACb,WACE,6CAAC,0BAAQ,MAAY,cAAc,SACjC;AAAA,kDAAC,iCAAe,SAAO,MACrB;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,6BAAiB,2EAAG,yBAAe,OAAM,IAAM,4EAAE;AAAA;AAAA,cAAG,KAAK;AAAA,eAAM;AAAA,YAChE,4CAAC,mCAAY,WAAU,cAAa;AAAA;AAAA;AAAA,MACtC,GACF;AAAA,MACA,4CAAC,iCAAe,WAAU,cAAa,OAAM,SAC3C;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO,WAAW,IAAI,CAAC,SAAU,iCAC5B,OAD4B;AAAA,YAE/B,UAAU;AAAA,YACV,MAAM,WAAW,KAAK,IAAI;AAAA,YAC1B,MAAM,KAAK;AAAA,UACb,EAAE;AAAA;AAAA,MACJ,GACF;AAAA,OACF;AAAA,EAEJ;AAEA,SACE,6CAAC,wBAAO,MAAY,cAAc,SAChC;AAAA,gDAAC,+BAAc,SAAO,MACpB,sDAAC,wBAAO,SAAQ,WAAU,WAAU,wBACjC,2BAAiB,2EAAG,yBAAe,OAAM,IAAM,4EAAE;AAAA;AAAA,MAAG,KAAK;AAAA,OAAM,GAClE,GACF;AAAA,IACA,4CAAC,+BACC,sDAAC,SAAI,WAAU,iBACb;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,WAAW,IAAI,CAAC,SAAU,iCAC5B,OAD4B;AAAA,UAE/B,UAAU;AAAA,UACV,MAAM,WAAW,KAAK,IAAI;AAAA,UAC1B,MAAM,KAAK;AAAA,QACb,EAAE;AAAA;AAAA,IACJ,GACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/combobox/index.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport { Button } from '../ui/button'\r\nimport { Drawer, DrawerContent, DrawerTrigger } from '../ui/drawer'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'\r\nimport { BookPlus, ChevronDown } from 'lucide-react'\r\nimport { ComboList } from './ComboList'\r\n\r\nconst extraItems = [\r\n {\r\n name: 'new',\r\n label: 'Add New',\r\n Icon: BookPlus,\r\n href: '#',\r\n onSelect: () => {},\r\n },\r\n]\r\nfunction ComboBoxResponsive({\r\n page,\r\n onAdd,\r\n}: {\r\n page: any\r\n onAdd: (_pageName: string) => void\r\n}) {\r\n const [open, setOpen] = useState(false)\r\n const isDesktop = true\r\n const [selectedStatus, setSelectedItem] = useState<any | null>(null)\r\n\r\n if (isDesktop) {\r\n return (\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n role=\"combobox\"\r\n aria-expanded={open}\r\n className=\"w-full justify-between capitalize\"\r\n >\r\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ {page.title}</>}\r\n <ChevronDown className=\"opacity-50\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-full p-0\" align=\"start\">\r\n <ComboList\r\n page={page}\r\n setOpen={setOpen}\r\n setSelectedItem={setSelectedItem}\r\n items={extraItems.map((item) => ({\r\n ...item,\r\n onSelect: onAdd,\r\n href: `/create/${page.href}`,\r\n name: page.title,\r\n }))}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n }\r\n\r\n return (\r\n <Drawer open={open} onOpenChange={setOpen}>\r\n <DrawerTrigger asChild>\r\n <Button variant=\"outline\" className=\"w-full justify-start\">\r\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ {page.title}</>}\r\n </Button>\r\n </DrawerTrigger>\r\n <DrawerContent>\r\n <div className=\"mt-4 border-t\">\r\n <ComboList\r\n page={page}\r\n setOpen={setOpen}\r\n setSelectedItem={setSelectedItem}\r\n items={extraItems.map((item) => ({\r\n ...item,\r\n onSelect: onAdd,\r\n href: `/create/${page.href}`,\r\n name: page.title,\r\n }))}\r\n />\r\n </div>\r\n </DrawerContent>\r\n </Drawer>\r\n )\r\n}\r\n\r\nexport default ComboBoxResponsive\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqC8B;AArC9B,mBAAyB;AACzB,oBAAuB;AACvB,oBAAqD;AACrD,qBAAwD;AACxD,0BAAsC;AACtC,uBAA0B;AAE1B,MAAM,aAAa;AAAA,EACjB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU,MAAM;AAAA,IAAC;AAAA,EACnB;AACF;AACA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AACF,GAGG;AACD,QAAM,CAAC,MAAM,OAAO,QAAI,uBAAS,KAAK;AACtC,QAAM,YAAY;AAClB,QAAM,CAAC,gBAAgB,eAAe,QAAI,uBAAqB,IAAI;AAEnE,MAAI,WAAW;AACb,WACE,6CAAC,0BAAQ,MAAY,cAAc,SACjC;AAAA,kDAAC,iCAAe,SAAO,MACrB;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,6BAAiB,2EAAG,yBAAe,OAAM,IAAM,4EAAE;AAAA;AAAA,cAAG,KAAK;AAAA,eAAM;AAAA,YAChE,4CAAC,mCAAY,WAAU,cAAa;AAAA;AAAA;AAAA,MACtC,GACF;AAAA,MACA,4CAAC,iCAAe,WAAU,cAAa,OAAM,SAC3C;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO,WAAW,IAAI,CAAC,SAAU,iCAC5B,OAD4B;AAAA,YAE/B,UAAU;AAAA,YACV,MAAM,WAAW,KAAK,IAAI;AAAA,YAC1B,MAAM,KAAK;AAAA,UACb,EAAE;AAAA;AAAA,MACJ,GACF;AAAA,OACF;AAAA,EAEJ;AAEA,SACE,6CAAC,wBAAO,MAAY,cAAc,SAChC;AAAA,gDAAC,+BAAc,SAAO,MACpB,sDAAC,wBAAO,SAAQ,WAAU,WAAU,wBACjC,2BAAiB,2EAAG,yBAAe,OAAM,IAAM,4EAAE;AAAA;AAAA,MAAG,KAAK;AAAA,OAAM,GAClE,GACF;AAAA,IACA,4CAAC,+BACC,sDAAC,SAAI,WAAU,iBACb;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,WAAW,IAAI,CAAC,SAAU,iCAC5B,OAD4B;AAAA,UAE/B,UAAU;AAAA,UACV,MAAM,WAAW,KAAK,IAAI;AAAA,UAC1B,MAAM,KAAK;AAAA,QACb,EAAE;AAAA;AAAA,IACJ,GACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/combobox/index.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { Button } from '../ui/button'\nimport { Drawer, DrawerContent, DrawerTrigger } from '../ui/drawer'\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'\nimport { BookPlus, ChevronDown } from 'lucide-react'\nimport { ComboList } from './ComboList'\n\nconst extraItems = [\n {\n name: 'new',\n label: 'Add New',\n Icon: BookPlus,\n href: '#',\n onSelect: () => {},\n },\n]\nfunction ComboBoxResponsive({\n page,\n onAdd,\n}: {\n page: any\n onAdd: (_pageName: string) => void\n}) {\n const [open, setOpen] = useState(false)\n const isDesktop = true\n const [selectedStatus, setSelectedItem] = useState<any | null>(null)\n\n if (isDesktop) {\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"ghost\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-full justify-between capitalize\"\n >\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ {page.title}</>}\n <ChevronDown className=\"opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\" align=\"start\">\n <ComboList\n page={page}\n setOpen={setOpen}\n setSelectedItem={setSelectedItem}\n items={extraItems.map((item) => ({\n ...item,\n onSelect: onAdd,\n href: `/create/${page.href}`,\n name: page.title,\n }))}\n />\n </PopoverContent>\n </Popover>\n )\n }\n\n return (\n <Drawer open={open} onOpenChange={setOpen}>\n <DrawerTrigger asChild>\n <Button variant=\"outline\" className=\"w-full justify-start\">\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ {page.title}</>}\n </Button>\n </DrawerTrigger>\n <DrawerContent>\n <div className=\"mt-4 border-t\">\n <ComboList\n page={page}\n setOpen={setOpen}\n setSelectedItem={setSelectedItem}\n items={extraItems.map((item) => ({\n ...item,\n onSelect: onAdd,\n href: `/create/${page.href}`,\n name: page.title,\n }))}\n />\n </div>\n </DrawerContent>\n </Drawer>\n )\n}\n\nexport default ComboBoxResponsive\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqC8B,wBAA8B,YAA9B;AArC9B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,QAAQ,eAAe,qBAAqB;AACrD,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,SAAS,UAAU,mBAAmB;AACtC,SAAS,iBAAiB;AAE1B,MAAM,aAAa;AAAA,EACjB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU,MAAM;AAAA,IAAC;AAAA,EACnB;AACF;AACA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AACF,GAGG;AACD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,YAAY;AAClB,QAAM,CAAC,gBAAgB,eAAe,IAAI,SAAqB,IAAI;AAEnE,MAAI,WAAW;AACb,WACE,qBAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,0BAAC,kBAAe,SAAO,MACrB;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,6BAAiB,gCAAG,yBAAe,OAAM,IAAM,iCAAE;AAAA;AAAA,cAAG,KAAK;AAAA,eAAM;AAAA,YAChE,oBAAC,eAAY,WAAU,cAAa;AAAA;AAAA;AAAA,MACtC,GACF;AAAA,MACA,oBAAC,kBAAe,WAAU,cAAa,OAAM,SAC3C;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO,WAAW,IAAI,CAAC,SAAU,iCAC5B,OAD4B;AAAA,YAE/B,UAAU;AAAA,YACV,MAAM,WAAW,KAAK,IAAI;AAAA,YAC1B,MAAM,KAAK;AAAA,UACb,EAAE;AAAA;AAAA,MACJ,GACF;AAAA,OACF;AAAA,EAEJ;AAEA,SACE,qBAAC,UAAO,MAAY,cAAc,SAChC;AAAA,wBAAC,iBAAc,SAAO,MACpB,8BAAC,UAAO,SAAQ,WAAU,WAAU,wBACjC,2BAAiB,gCAAG,yBAAe,OAAM,IAAM,iCAAE;AAAA;AAAA,MAAG,KAAK;AAAA,OAAM,GAClE,GACF;AAAA,IACA,oBAAC,iBACC,8BAAC,SAAI,WAAU,iBACb;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,WAAW,IAAI,CAAC,SAAU,iCAC5B,OAD4B;AAAA,UAE/B,UAAU;AAAA,UACV,MAAM,WAAW,KAAK,IAAI;AAAA,UAC1B,MAAM,KAAK;AAAA,QACb,EAAE;AAAA;AAAA,IACJ,GACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/combobox/index.tsx"],"sourcesContent":["import { useState } from 'react'\r\nimport { Button } from '../ui/button'\r\nimport { Drawer, DrawerContent, DrawerTrigger } from '../ui/drawer'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover'\r\nimport { BookPlus, ChevronDown } from 'lucide-react'\r\nimport { ComboList } from './ComboList'\r\n\r\nconst extraItems = [\r\n {\r\n name: 'new',\r\n label: 'Add New',\r\n Icon: BookPlus,\r\n href: '#',\r\n onSelect: () => {},\r\n },\r\n]\r\nfunction ComboBoxResponsive({\r\n page,\r\n onAdd,\r\n}: {\r\n page: any\r\n onAdd: (_pageName: string) => void\r\n}) {\r\n const [open, setOpen] = useState(false)\r\n const isDesktop = true\r\n const [selectedStatus, setSelectedItem] = useState<any | null>(null)\r\n\r\n if (isDesktop) {\r\n return (\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n role=\"combobox\"\r\n aria-expanded={open}\r\n className=\"w-full justify-between capitalize\"\r\n >\r\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ {page.title}</>}\r\n <ChevronDown className=\"opacity-50\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-full p-0\" align=\"start\">\r\n <ComboList\r\n page={page}\r\n setOpen={setOpen}\r\n setSelectedItem={setSelectedItem}\r\n items={extraItems.map((item) => ({\r\n ...item,\r\n onSelect: onAdd,\r\n href: `/create/${page.href}`,\r\n name: page.title,\r\n }))}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n }\r\n\r\n return (\r\n <Drawer open={open} onOpenChange={setOpen}>\r\n <DrawerTrigger asChild>\r\n <Button variant=\"outline\" className=\"w-full justify-start\">\r\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ {page.title}</>}\r\n </Button>\r\n </DrawerTrigger>\r\n <DrawerContent>\r\n <div className=\"mt-4 border-t\">\r\n <ComboList\r\n page={page}\r\n setOpen={setOpen}\r\n setSelectedItem={setSelectedItem}\r\n items={extraItems.map((item) => ({\r\n ...item,\r\n onSelect: onAdd,\r\n href: `/create/${page.href}`,\r\n name: page.title,\r\n }))}\r\n />\r\n </div>\r\n </DrawerContent>\r\n </Drawer>\r\n )\r\n}\r\n\r\nexport default ComboBoxResponsive\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqC8B,wBAA8B,YAA9B;AArC9B,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,QAAQ,eAAe,qBAAqB;AACrD,SAAS,SAAS,gBAAgB,sBAAsB;AACxD,SAAS,UAAU,mBAAmB;AACtC,SAAS,iBAAiB;AAE1B,MAAM,aAAa;AAAA,EACjB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU,MAAM;AAAA,IAAC;AAAA,EACnB;AACF;AACA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AACF,GAGG;AACD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,YAAY;AAClB,QAAM,CAAC,gBAAgB,eAAe,IAAI,SAAqB,IAAI;AAEnE,MAAI,WAAW;AACb,WACE,qBAAC,WAAQ,MAAY,cAAc,SACjC;AAAA,0BAAC,kBAAe,SAAO,MACrB;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,iBAAe;AAAA,UACf,WAAU;AAAA,UAET;AAAA,6BAAiB,gCAAG,yBAAe,OAAM,IAAM,iCAAE;AAAA;AAAA,cAAG,KAAK;AAAA,eAAM;AAAA,YAChE,oBAAC,eAAY,WAAU,cAAa;AAAA;AAAA;AAAA,MACtC,GACF;AAAA,MACA,oBAAC,kBAAe,WAAU,cAAa,OAAM,SAC3C;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO,WAAW,IAAI,CAAC,SAAU,iCAC5B,OAD4B;AAAA,YAE/B,UAAU;AAAA,YACV,MAAM,WAAW,KAAK,IAAI;AAAA,YAC1B,MAAM,KAAK;AAAA,UACb,EAAE;AAAA;AAAA,MACJ,GACF;AAAA,OACF;AAAA,EAEJ;AAEA,SACE,qBAAC,UAAO,MAAY,cAAc,SAChC;AAAA,wBAAC,iBAAc,SAAO,MACpB,8BAAC,UAAO,SAAQ,WAAU,WAAU,wBACjC,2BAAiB,gCAAG,yBAAe,OAAM,IAAM,iCAAE;AAAA;AAAA,MAAG,KAAK;AAAA,OAAM,GAClE,GACF;AAAA,IACA,oBAAC,iBACC,8BAAC,SAAI,WAAU,iBACb;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,WAAW,IAAI,CAAC,SAAU,iCAC5B,OAD4B;AAAA,UAE/B,UAAU;AAAA,UACV,MAAM,WAAW,KAAK,IAAI;AAAA,UAC1B,MAAM,KAAK;AAAA,QACb,EAAE;AAAA;AAAA,IACJ,GACF,GACF;AAAA,KACF;AAEJ;AAEA,IAAO,mBAAQ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/dashboard/account-select.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../ui/select'\n\ninterface AccountSelectProps {\n isCollapsed: boolean\n accounts: {\n label: string\n email: string\n icon: React.ReactNode\n }[]\n}\n\nexport function AccountSelect({ isCollapsed, accounts }: AccountSelectProps) {\n const [selectedAccount, setSelectedAccount] = React.useState<string>(\n accounts[0].email,\n )\n\n return (\n <Select defaultValue={selectedAccount} onValueChange={setSelectedAccount}>\n <SelectTrigger\n className={cn(\n 'flex items-center gap-2 [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0',\n isCollapsed &&\n 'flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden',\n )}\n aria-label=\"Select account\"\n >\n <SelectValue placeholder=\"Select an account\">\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\n {\n accounts.find((account) => account.email === selectedAccount)\n ?.icon\n }\n {\n accounts.find((account) => account.email === selectedAccount)\n ?.label\n }\n </div>\n </SelectValue>\n </SelectTrigger>\n <SelectContent>\n {accounts.map((account) => (\n <SelectItem key={account.email} value={account.email}>\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\n {account.icon}\n {account.email}\n </div>\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCQ;AAnCR,YAAuB;AAEvB,mBAAmB;AACnB,oBAMO;AAWA,SAAS,cAAc,EAAE,aAAa,SAAS,GAAuB;AAtB7E;AAuBE,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM;AAAA,IAClD,SAAS,CAAC,EAAE;AAAA,EACd;AAEA,SACE,6CAAC,wBAAO,cAAc,iBAAiB,eAAe,oBACpD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,eAAW;AAAA,UACT;AAAA,UACA,eACE;AAAA,QACJ;AAAA,QACA,cAAW;AAAA,QAEX,sDAAC,6BAAY,aAAY,qBACvB,uDAAC,SAAI,WAAU,4FAEX;AAAA,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI;AAAA,WAGJ,cAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI;AAAA,WAER,GACF;AAAA;AAAA,IACF;AAAA,IACA,4CAAC,+BACE,mBAAS,IAAI,CAAC,YACb,4CAAC,4BAA+B,OAAO,QAAQ,OAC7C,uDAAC,SAAI,WAAU,4FACZ;AAAA,cAAQ;AAAA,MACR,QAAQ;AAAA,OACX,KAJe,QAAQ,KAKzB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/dashboard/account-select.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '../../lib/utils'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '../ui/select'\r\n\r\ninterface AccountSelectProps {\r\n isCollapsed: boolean\r\n accounts: {\r\n label: string\r\n email: string\r\n icon: React.ReactNode\r\n }[]\r\n}\r\n\r\nexport function AccountSelect({ isCollapsed, accounts }: AccountSelectProps) {\r\n const [selectedAccount, setSelectedAccount] = React.useState<string>(\r\n accounts[0].email,\r\n )\r\n\r\n return (\r\n <Select defaultValue={selectedAccount} onValueChange={setSelectedAccount}>\r\n <SelectTrigger\r\n className={cn(\r\n 'flex items-center gap-2 [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0',\r\n isCollapsed &&\r\n 'flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden',\r\n )}\r\n aria-label=\"Select account\"\r\n >\r\n <SelectValue placeholder=\"Select an account\">\r\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\r\n {\r\n accounts.find((account) => account.email === selectedAccount)\r\n ?.icon\r\n }\r\n {\r\n accounts.find((account) => account.email === selectedAccount)\r\n ?.label\r\n }\r\n </div>\r\n </SelectValue>\r\n </SelectTrigger>\r\n <SelectContent>\r\n {accounts.map((account) => (\r\n <SelectItem key={account.email} value={account.email}>\r\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\r\n {account.icon}\r\n {account.email}\r\n </div>\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCQ;AAnCR,YAAuB;AAEvB,mBAAmB;AACnB,oBAMO;AAWA,SAAS,cAAc,EAAE,aAAa,SAAS,GAAuB;AAtB7E;AAuBE,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM;AAAA,IAClD,SAAS,CAAC,EAAE;AAAA,EACd;AAEA,SACE,6CAAC,wBAAO,cAAc,iBAAiB,eAAe,oBACpD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,eAAW;AAAA,UACT;AAAA,UACA,eACE;AAAA,QACJ;AAAA,QACA,cAAW;AAAA,QAEX,sDAAC,6BAAY,aAAY,qBACvB,uDAAC,SAAI,WAAU,4FAEX;AAAA,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI;AAAA,WAGJ,cAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI;AAAA,WAER,GACF;AAAA;AAAA,IACF;AAAA,IACA,4CAAC,+BACE,mBAAS,IAAI,CAAC,YACb,4CAAC,4BAA+B,OAAO,QAAQ,OAC7C,uDAAC,SAAI,WAAU,4FACZ;AAAA,cAAQ;AAAA,MACR,QAAQ;AAAA,OACX,KAJe,QAAQ,KAKzB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/dashboard/account-select.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../ui/select'\n\ninterface AccountSelectProps {\n isCollapsed: boolean\n accounts: {\n label: string\n email: string\n icon: React.ReactNode\n }[]\n}\n\nexport function AccountSelect({ isCollapsed, accounts }: AccountSelectProps) {\n const [selectedAccount, setSelectedAccount] = React.useState<string>(\n accounts[0].email,\n )\n\n return (\n <Select defaultValue={selectedAccount} onValueChange={setSelectedAccount}>\n <SelectTrigger\n className={cn(\n 'flex items-center gap-2 [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0',\n isCollapsed &&\n 'flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden',\n )}\n aria-label=\"Select account\"\n >\n <SelectValue placeholder=\"Select an account\">\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\n {\n accounts.find((account) => account.email === selectedAccount)\n ?.icon\n }\n {\n accounts.find((account) => account.email === selectedAccount)\n ?.label\n }\n </div>\n </SelectValue>\n </SelectTrigger>\n <SelectContent>\n {accounts.map((account) => (\n <SelectItem key={account.email} value={account.email}>\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\n {account.icon}\n {account.email}\n </div>\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )\n}\n"],"mappings":";AAqCQ,cACE,YADF;AAnCR,YAAY,WAAW;AAEvB,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWA,SAAS,cAAc,EAAE,aAAa,SAAS,GAAuB;AAtB7E;AAuBE,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM;AAAA,IAClD,SAAS,CAAC,EAAE;AAAA,EACd;AAEA,SACE,qBAAC,UAAO,cAAc,iBAAiB,eAAe,oBACpD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,eACE;AAAA,QACJ;AAAA,QACA,cAAW;AAAA,QAEX,8BAAC,eAAY,aAAY,qBACvB,+BAAC,SAAI,WAAU,4FAEX;AAAA,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI;AAAA,WAGJ,cAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI;AAAA,WAER,GACF;AAAA;AAAA,IACF;AAAA,IACA,oBAAC,iBACE,mBAAS,IAAI,CAAC,YACb,oBAAC,cAA+B,OAAO,QAAQ,OAC7C,+BAAC,SAAI,WAAU,4FACZ;AAAA,cAAQ;AAAA,MACR,QAAQ;AAAA,OACX,KAJe,QAAQ,KAKzB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/dashboard/account-select.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '../../lib/utils'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '../ui/select'\r\n\r\ninterface AccountSelectProps {\r\n isCollapsed: boolean\r\n accounts: {\r\n label: string\r\n email: string\r\n icon: React.ReactNode\r\n }[]\r\n}\r\n\r\nexport function AccountSelect({ isCollapsed, accounts }: AccountSelectProps) {\r\n const [selectedAccount, setSelectedAccount] = React.useState<string>(\r\n accounts[0].email,\r\n )\r\n\r\n return (\r\n <Select defaultValue={selectedAccount} onValueChange={setSelectedAccount}>\r\n <SelectTrigger\r\n className={cn(\r\n 'flex items-center gap-2 [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0',\r\n isCollapsed &&\r\n 'flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden',\r\n )}\r\n aria-label=\"Select account\"\r\n >\r\n <SelectValue placeholder=\"Select an account\">\r\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\r\n {\r\n accounts.find((account) => account.email === selectedAccount)\r\n ?.icon\r\n }\r\n {\r\n accounts.find((account) => account.email === selectedAccount)\r\n ?.label\r\n }\r\n </div>\r\n </SelectValue>\r\n </SelectTrigger>\r\n <SelectContent>\r\n {accounts.map((account) => (\r\n <SelectItem key={account.email} value={account.email}>\r\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\r\n {account.icon}\r\n {account.email}\r\n </div>\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n )\r\n}\r\n"],"mappings":";AAqCQ,cACE,YADF;AAnCR,YAAY,WAAW;AAEvB,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWA,SAAS,cAAc,EAAE,aAAa,SAAS,GAAuB;AAtB7E;AAuBE,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM;AAAA,IAClD,SAAS,CAAC,EAAE;AAAA,EACd;AAEA,SACE,qBAAC,UAAO,cAAc,iBAAiB,eAAe,oBACpD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,eACE;AAAA,QACJ;AAAA,QACA,cAAW;AAAA,QAEX,8BAAC,eAAY,aAAY,qBACvB,+BAAC,SAAI,WAAU,4FAEX;AAAA,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI;AAAA,WAGJ,cAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI;AAAA,WAER,GACF;AAAA;AAAA,IACF;AAAA,IACA,oBAAC,iBACE,mBAAS,IAAI,CAAC,YACb,oBAAC,cAA+B,OAAO,QAAQ,OAC7C,+BAAC,SAAI,WAAU,4FACZ;AAAA,cAAQ;AAAA,MACR,QAAQ;AAAA,OACX,KAJe,QAAQ,KAKzB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/dashboard/account-switcher.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../ui/select'\n\ninterface AccountSwitcherProps {\n isCollapsed: boolean\n accounts: {\n label: string\n email: string\n icon: React.ReactNode\n }[]\n}\n\nexport function AccountSwitcher({\n isCollapsed,\n accounts,\n}: AccountSwitcherProps) {\n const [selectedAccount, setSelectedAccount] = React.useState<string>(\n accounts[0].email,\n )\n\n return (\n <Select defaultValue={selectedAccount} onValueChange={setSelectedAccount}>\n <SelectTrigger\n className={cn(\n 'flex items-center gap-2 [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0',\n isCollapsed &&\n 'flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden',\n )}\n aria-label=\"Select account\"\n >\n <SelectValue placeholder=\"Select an account\">\n {accounts.find((account) => account.email === selectedAccount)?.icon}\n <span className={cn('ml-2', isCollapsed && 'hidden')}>\n {\n accounts.find((account) => account.email === selectedAccount)\n ?.label\n }\n </span>\n </SelectValue>\n </SelectTrigger>\n <SelectContent>\n {accounts.map((account) => (\n <SelectItem key={account.email} value={account.email}>\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\n {account.icon}\n {account.email}\n </div>\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCQ;AAtCR,YAAuB;AAEvB,mBAAmB;AACnB,oBAMO;AAWA,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AACF,GAAyB;AAzBzB;AA0BE,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM;AAAA,IAClD,SAAS,CAAC,EAAE;AAAA,EACd;AAEA,SACE,6CAAC,wBAAO,cAAc,iBAAiB,eAAe,oBACpD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,eAAW;AAAA,UACT;AAAA,UACA,eACE;AAAA,QACJ;AAAA,QACA,cAAW;AAAA,QAEX,uDAAC,6BAAY,aAAY,qBACtB;AAAA,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBAA+D;AAAA,UAChE,4CAAC,UAAK,eAAW,iBAAG,QAAQ,eAAe,QAAQ,GAE/C,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI,OAER;AAAA,WACF;AAAA;AAAA,IACF;AAAA,IACA,4CAAC,+BACE,mBAAS,IAAI,CAAC,YACb,4CAAC,4BAA+B,OAAO,QAAQ,OAC7C,uDAAC,SAAI,WAAU,4FACZ;AAAA,cAAQ;AAAA,MACR,QAAQ;AAAA,OACX,KAJe,QAAQ,KAKzB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/dashboard/account-switcher.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '../../lib/utils'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '../ui/select'\r\n\r\ninterface AccountSwitcherProps {\r\n isCollapsed: boolean\r\n accounts: {\r\n label: string\r\n email: string\r\n icon: React.ReactNode\r\n }[]\r\n}\r\n\r\nexport function AccountSwitcher({\r\n isCollapsed,\r\n accounts,\r\n}: AccountSwitcherProps) {\r\n const [selectedAccount, setSelectedAccount] = React.useState<string>(\r\n accounts[0].email,\r\n )\r\n\r\n return (\r\n <Select defaultValue={selectedAccount} onValueChange={setSelectedAccount}>\r\n <SelectTrigger\r\n className={cn(\r\n 'flex items-center gap-2 [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0',\r\n isCollapsed &&\r\n 'flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden',\r\n )}\r\n aria-label=\"Select account\"\r\n >\r\n <SelectValue placeholder=\"Select an account\">\r\n {accounts.find((account) => account.email === selectedAccount)?.icon}\r\n <span className={cn('ml-2', isCollapsed && 'hidden')}>\r\n {\r\n accounts.find((account) => account.email === selectedAccount)\r\n ?.label\r\n }\r\n </span>\r\n </SelectValue>\r\n </SelectTrigger>\r\n <SelectContent>\r\n {accounts.map((account) => (\r\n <SelectItem key={account.email} value={account.email}>\r\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\r\n {account.icon}\r\n {account.email}\r\n </div>\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCQ;AAtCR,YAAuB;AAEvB,mBAAmB;AACnB,oBAMO;AAWA,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AACF,GAAyB;AAzBzB;AA0BE,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM;AAAA,IAClD,SAAS,CAAC,EAAE;AAAA,EACd;AAEA,SACE,6CAAC,wBAAO,cAAc,iBAAiB,eAAe,oBACpD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,eAAW;AAAA,UACT;AAAA,UACA,eACE;AAAA,QACJ;AAAA,QACA,cAAW;AAAA,QAEX,uDAAC,6BAAY,aAAY,qBACtB;AAAA,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBAA+D;AAAA,UAChE,4CAAC,UAAK,eAAW,iBAAG,QAAQ,eAAe,QAAQ,GAE/C,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI,OAER;AAAA,WACF;AAAA;AAAA,IACF;AAAA,IACA,4CAAC,+BACE,mBAAS,IAAI,CAAC,YACb,4CAAC,4BAA+B,OAAO,QAAQ,OAC7C,uDAAC,SAAI,WAAU,4FACZ;AAAA,cAAQ;AAAA,MACR,QAAQ;AAAA,OACX,KAJe,QAAQ,KAKzB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/dashboard/account-switcher.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nimport { cn } from '../../lib/utils'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../ui/select'\n\ninterface AccountSwitcherProps {\n isCollapsed: boolean\n accounts: {\n label: string\n email: string\n icon: React.ReactNode\n }[]\n}\n\nexport function AccountSwitcher({\n isCollapsed,\n accounts,\n}: AccountSwitcherProps) {\n const [selectedAccount, setSelectedAccount] = React.useState<string>(\n accounts[0].email,\n )\n\n return (\n <Select defaultValue={selectedAccount} onValueChange={setSelectedAccount}>\n <SelectTrigger\n className={cn(\n 'flex items-center gap-2 [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0',\n isCollapsed &&\n 'flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden',\n )}\n aria-label=\"Select account\"\n >\n <SelectValue placeholder=\"Select an account\">\n {accounts.find((account) => account.email === selectedAccount)?.icon}\n <span className={cn('ml-2', isCollapsed && 'hidden')}>\n {\n accounts.find((account) => account.email === selectedAccount)\n ?.label\n }\n </span>\n </SelectValue>\n </SelectTrigger>\n <SelectContent>\n {accounts.map((account) => (\n <SelectItem key={account.email} value={account.email}>\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\n {account.icon}\n {account.email}\n </div>\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )\n}\n"],"mappings":";AAwCQ,SAEE,KAFF;AAtCR,YAAY,WAAW;AAEvB,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWA,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AACF,GAAyB;AAzBzB;AA0BE,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM;AAAA,IAClD,SAAS,CAAC,EAAE;AAAA,EACd;AAEA,SACE,qBAAC,UAAO,cAAc,iBAAiB,eAAe,oBACpD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,eACE;AAAA,QACJ;AAAA,QACA,cAAW;AAAA,QAEX,+BAAC,eAAY,aAAY,qBACtB;AAAA,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBAA+D;AAAA,UAChE,oBAAC,UAAK,WAAW,GAAG,QAAQ,eAAe,QAAQ,GAE/C,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI,OAER;AAAA,WACF;AAAA;AAAA,IACF;AAAA,IACA,oBAAC,iBACE,mBAAS,IAAI,CAAC,YACb,oBAAC,cAA+B,OAAO,QAAQ,OAC7C,+BAAC,SAAI,WAAU,4FACZ;AAAA,cAAQ;AAAA,MACR,QAAQ;AAAA,OACX,KAJe,QAAQ,KAKzB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/dashboard/account-switcher.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\n\r\nimport { cn } from '../../lib/utils'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '../ui/select'\r\n\r\ninterface AccountSwitcherProps {\r\n isCollapsed: boolean\r\n accounts: {\r\n label: string\r\n email: string\r\n icon: React.ReactNode\r\n }[]\r\n}\r\n\r\nexport function AccountSwitcher({\r\n isCollapsed,\r\n accounts,\r\n}: AccountSwitcherProps) {\r\n const [selectedAccount, setSelectedAccount] = React.useState<string>(\r\n accounts[0].email,\r\n )\r\n\r\n return (\r\n <Select defaultValue={selectedAccount} onValueChange={setSelectedAccount}>\r\n <SelectTrigger\r\n className={cn(\r\n 'flex items-center gap-2 [&>span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0',\r\n isCollapsed &&\r\n 'flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden',\r\n )}\r\n aria-label=\"Select account\"\r\n >\r\n <SelectValue placeholder=\"Select an account\">\r\n {accounts.find((account) => account.email === selectedAccount)?.icon}\r\n <span className={cn('ml-2', isCollapsed && 'hidden')}>\r\n {\r\n accounts.find((account) => account.email === selectedAccount)\r\n ?.label\r\n }\r\n </span>\r\n </SelectValue>\r\n </SelectTrigger>\r\n <SelectContent>\r\n {accounts.map((account) => (\r\n <SelectItem key={account.email} value={account.email}>\r\n <div className=\"[&_svg]:text-foreground flex items-center gap-3 [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0\">\r\n {account.icon}\r\n {account.email}\r\n </div>\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n )\r\n}\r\n"],"mappings":";AAwCQ,SAEE,KAFF;AAtCR,YAAY,WAAW;AAEvB,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWA,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AACF,GAAyB;AAzBzB;AA0BE,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM;AAAA,IAClD,SAAS,CAAC,EAAE;AAAA,EACd;AAEA,SACE,qBAAC,UAAO,cAAc,iBAAiB,eAAe,oBACpD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,eACE;AAAA,QACJ;AAAA,QACA,cAAW;AAAA,QAEX,+BAAC,eAAY,aAAY,qBACtB;AAAA,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBAA+D;AAAA,UAChE,oBAAC,UAAK,WAAW,GAAG,QAAQ,eAAe,QAAQ,GAE/C,yBAAS,KAAK,CAAC,YAAY,QAAQ,UAAU,eAAe,MAA5D,mBACI,OAER;AAAA,WACF;AAAA;AAAA,IACF;AAAA,IACA,oBAAC,iBACE,mBAAS,IAAI,CAAC,YACb,oBAAC,cAA+B,OAAO,QAAQ,OAC7C,+BAAC,SAAI,WAAU,4FACZ;AAAA,cAAQ;AAAA,MACR,QAAQ;AAAA,OACX,KAJe,QAAQ,KAKzB,CACD,GACH;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../components/dashboard/sidebar/CollapsibleSection.tsx"],"sourcesContent":["'use client'\n\nimport { useState, useCallback } from 'react'\nimport { SectionHeader } from './SectionHeader'\nimport { EntityList } from './EntityList'\nimport type { CollapsibleSectionProps } from './types'\nimport {\n SectionWrapper,\n ContentWrapper,\n SearchWrapper,\n SearchInput,\n} from './CollapsibleSection.styles'\n\nexport function CollapsibleSection({\n title,\n items,\n icon,\n createHref,\n moreHref,\n isCollapsed,\n theme,\n onExpand,\n}: CollapsibleSectionProps) {\n const [isExpanded, setIsExpanded] = useState(false)\n const [searchQuery, setSearchQuery] = useState('')\n\n const handleToggle = useCallback(() => {\n if (isCollapsed && onExpand) {\n onExpand()\n setIsExpanded(true)\n } else {\n setIsExpanded((prev) => !prev)\n }\n }, [isCollapsed, onExpand])\n\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(e.target.value)\n },\n [],\n )\n\n return (\n <SectionWrapper data-tour={`sidebar-${title.toLowerCase()}`}>\n <SectionHeader\n title={title}\n icon={icon}\n count={items.length}\n isExpanded={isExpanded}\n isCollapsed={isCollapsed}\n theme={theme}\n moreHref={moreHref}\n onClick={handleToggle}\n />\n\n {!isCollapsed && (\n <ContentWrapper $isExpanded={isExpanded}>\n <SearchWrapper>\n <SearchInput\n type=\"text\"\n placeholder={`Search ${title.toLowerCase()}...`}\n value={searchQuery}\n onChange={handleSearchChange}\n $theme={theme}\n aria-label={`Search ${title}`}\n />\n </SearchWrapper>\n <EntityList\n items={items}\n createHref={createHref}\n moreHref={moreHref}\n searchQuery={searchQuery}\n totalCount={items.length}\n theme={theme}\n />\n </ContentWrapper>\n )}\n </SectionWrapper>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4CM;AA1CN,mBAAsC;AACtC,2BAA8B;AAC9B,wBAA2B;AAE3B,gCAKO;AAEA,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAC1B,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAClD,QAAM,CAAC,aAAa,cAAc,QAAI,uBAAS,EAAE;AAEjD,QAAM,mBAAe,0BAAY,MAAM;AACrC,QAAI,eAAe,UAAU;AAC3B,eAAS;AACT,oBAAc,IAAI;AAAA,IACpB,OAAO;AACL,oBAAc,CAAC,SAAS,CAAC,IAAI;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,aAAa,QAAQ,CAAC;AAE1B,QAAM,yBAAqB;AAAA,IACzB,CAAC,MAA2C;AAC1C,qBAAe,EAAE,OAAO,KAAK;AAAA,IAC/B;AAAA,IACA,CAAC;AAAA,EACH;AAEA,SACE,6CAAC,4CAAe,aAAW,WAAW,MAAM,YAAY,CAAC,IACvD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,OAAO,MAAM;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA;AAAA,IACX;AAAA,IAEC,CAAC,eACA,6CAAC,4CAAe,aAAa,YAC3B;AAAA,kDAAC,2CACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,aAAa,UAAU,MAAM,YAAY,CAAC;AAAA,UAC1C,OAAO;AAAA,UACP,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,cAAY,UAAU,KAAK;AAAA;AAAA,MAC7B,GACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,YAAY,MAAM;AAAA,UAClB;AAAA;AAAA,MACF;AAAA,OACF;AAAA,KAEJ;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../components/dashboard/sidebar/CollapsibleSection.tsx"],"sourcesContent":["'use client'\r\n\r\nimport { useState, useCallback } from 'react'\r\nimport { SectionHeader } from './SectionHeader'\r\nimport { EntityList } from './EntityList'\r\nimport type { CollapsibleSectionProps } from './types'\r\nimport {\r\n SectionWrapper,\r\n ContentWrapper,\r\n SearchWrapper,\r\n SearchInput,\r\n} from './CollapsibleSection.styles'\r\n\r\nexport function CollapsibleSection({\r\n title,\r\n items,\r\n icon,\r\n createHref,\r\n moreHref,\r\n isCollapsed,\r\n theme,\r\n onExpand,\r\n}: CollapsibleSectionProps) {\r\n const [isExpanded, setIsExpanded] = useState(false)\r\n const [searchQuery, setSearchQuery] = useState('')\r\n\r\n const handleToggle = useCallback(() => {\r\n if (isCollapsed && onExpand) {\r\n onExpand()\r\n setIsExpanded(true)\r\n } else {\r\n setIsExpanded((prev) => !prev)\r\n }\r\n }, [isCollapsed, onExpand])\r\n\r\n const handleSearchChange = useCallback(\r\n (e: React.ChangeEvent<HTMLInputElement>) => {\r\n setSearchQuery(e.target.value)\r\n },\r\n [],\r\n )\r\n\r\n return (\r\n <SectionWrapper data-tour={`sidebar-${title.toLowerCase()}`}>\r\n <SectionHeader\r\n title={title}\r\n icon={icon}\r\n count={items.length}\r\n isExpanded={isExpanded}\r\n isCollapsed={isCollapsed}\r\n theme={theme}\r\n moreHref={moreHref}\r\n onClick={handleToggle}\r\n />\r\n\r\n {!isCollapsed && (\r\n <ContentWrapper $isExpanded={isExpanded}>\r\n <SearchWrapper>\r\n <SearchInput\r\n type=\"text\"\r\n placeholder={`Search ${title.toLowerCase()}...`}\r\n value={searchQuery}\r\n onChange={handleSearchChange}\r\n $theme={theme}\r\n aria-label={`Search ${title}`}\r\n />\r\n </SearchWrapper>\r\n <EntityList\r\n items={items}\r\n createHref={createHref}\r\n moreHref={moreHref}\r\n searchQuery={searchQuery}\r\n totalCount={items.length}\r\n theme={theme}\r\n />\r\n </ContentWrapper>\r\n )}\r\n </SectionWrapper>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA4CM;AA1CN,mBAAsC;AACtC,2BAA8B;AAC9B,wBAA2B;AAE3B,gCAKO;AAEA,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAC1B,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAClD,QAAM,CAAC,aAAa,cAAc,QAAI,uBAAS,EAAE;AAEjD,QAAM,mBAAe,0BAAY,MAAM;AACrC,QAAI,eAAe,UAAU;AAC3B,eAAS;AACT,oBAAc,IAAI;AAAA,IACpB,OAAO;AACL,oBAAc,CAAC,SAAS,CAAC,IAAI;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,aAAa,QAAQ,CAAC;AAE1B,QAAM,yBAAqB;AAAA,IACzB,CAAC,MAA2C;AAC1C,qBAAe,EAAE,OAAO,KAAK;AAAA,IAC/B;AAAA,IACA,CAAC;AAAA,EACH;AAEA,SACE,6CAAC,4CAAe,aAAW,WAAW,MAAM,YAAY,CAAC,IACvD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,OAAO,MAAM;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA;AAAA,IACX;AAAA,IAEC,CAAC,eACA,6CAAC,4CAAe,aAAa,YAC3B;AAAA,kDAAC,2CACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,aAAa,UAAU,MAAM,YAAY,CAAC;AAAA,UAC1C,OAAO;AAAA,UACP,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,cAAY,UAAU,KAAK;AAAA;AAAA,MAC7B,GACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,YAAY,MAAM;AAAA,UAClB;AAAA;AAAA,MACF;AAAA,OACF;AAAA,KAEJ;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../components/dashboard/sidebar/CollapsibleSection.tsx"],"sourcesContent":["'use client'\n\nimport { useState, useCallback } from 'react'\nimport { SectionHeader } from './SectionHeader'\nimport { EntityList } from './EntityList'\nimport type { CollapsibleSectionProps } from './types'\nimport {\n SectionWrapper,\n ContentWrapper,\n SearchWrapper,\n SearchInput,\n} from './CollapsibleSection.styles'\n\nexport function CollapsibleSection({\n title,\n items,\n icon,\n createHref,\n moreHref,\n isCollapsed,\n theme,\n onExpand,\n}: CollapsibleSectionProps) {\n const [isExpanded, setIsExpanded] = useState(false)\n const [searchQuery, setSearchQuery] = useState('')\n\n const handleToggle = useCallback(() => {\n if (isCollapsed && onExpand) {\n onExpand()\n setIsExpanded(true)\n } else {\n setIsExpanded((prev) => !prev)\n }\n }, [isCollapsed, onExpand])\n\n const handleSearchChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchQuery(e.target.value)\n },\n [],\n )\n\n return (\n <SectionWrapper data-tour={`sidebar-${title.toLowerCase()}`}>\n <SectionHeader\n title={title}\n icon={icon}\n count={items.length}\n isExpanded={isExpanded}\n isCollapsed={isCollapsed}\n theme={theme}\n moreHref={moreHref}\n onClick={handleToggle}\n />\n\n {!isCollapsed && (\n <ContentWrapper $isExpanded={isExpanded}>\n <SearchWrapper>\n <SearchInput\n type=\"text\"\n placeholder={`Search ${title.toLowerCase()}...`}\n value={searchQuery}\n onChange={handleSearchChange}\n $theme={theme}\n aria-label={`Search ${title}`}\n />\n </SearchWrapper>\n <EntityList\n items={items}\n createHref={createHref}\n moreHref={moreHref}\n searchQuery={searchQuery}\n totalCount={items.length}\n theme={theme}\n />\n </ContentWrapper>\n )}\n </SectionWrapper>\n )\n}\n"],"mappings":";AA4CM,cAYE,YAZF;AA1CN,SAAS,UAAU,mBAAmB;AACtC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAE3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAC1B,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,EAAE;AAEjD,QAAM,eAAe,YAAY,MAAM;AACrC,QAAI,eAAe,UAAU;AAC3B,eAAS;AACT,oBAAc,IAAI;AAAA,IACpB,OAAO;AACL,oBAAc,CAAC,SAAS,CAAC,IAAI;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,aAAa,QAAQ,CAAC;AAE1B,QAAM,qBAAqB;AAAA,IACzB,CAAC,MAA2C;AAC1C,qBAAe,EAAE,OAAO,KAAK;AAAA,IAC/B;AAAA,IACA,CAAC;AAAA,EACH;AAEA,SACE,qBAAC,kBAAe,aAAW,WAAW,MAAM,YAAY,CAAC,IACvD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,OAAO,MAAM;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA;AAAA,IACX;AAAA,IAEC,CAAC,eACA,qBAAC,kBAAe,aAAa,YAC3B;AAAA,0BAAC,iBACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,aAAa,UAAU,MAAM,YAAY,CAAC;AAAA,UAC1C,OAAO;AAAA,UACP,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,cAAY,UAAU,KAAK;AAAA;AAAA,MAC7B,GACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,YAAY,MAAM;AAAA,UAClB;AAAA;AAAA,MACF;AAAA,OACF;AAAA,KAEJ;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../components/dashboard/sidebar/CollapsibleSection.tsx"],"sourcesContent":["'use client'\r\n\r\nimport { useState, useCallback } from 'react'\r\nimport { SectionHeader } from './SectionHeader'\r\nimport { EntityList } from './EntityList'\r\nimport type { CollapsibleSectionProps } from './types'\r\nimport {\r\n SectionWrapper,\r\n ContentWrapper,\r\n SearchWrapper,\r\n SearchInput,\r\n} from './CollapsibleSection.styles'\r\n\r\nexport function CollapsibleSection({\r\n title,\r\n items,\r\n icon,\r\n createHref,\r\n moreHref,\r\n isCollapsed,\r\n theme,\r\n onExpand,\r\n}: CollapsibleSectionProps) {\r\n const [isExpanded, setIsExpanded] = useState(false)\r\n const [searchQuery, setSearchQuery] = useState('')\r\n\r\n const handleToggle = useCallback(() => {\r\n if (isCollapsed && onExpand) {\r\n onExpand()\r\n setIsExpanded(true)\r\n } else {\r\n setIsExpanded((prev) => !prev)\r\n }\r\n }, [isCollapsed, onExpand])\r\n\r\n const handleSearchChange = useCallback(\r\n (e: React.ChangeEvent<HTMLInputElement>) => {\r\n setSearchQuery(e.target.value)\r\n },\r\n [],\r\n )\r\n\r\n return (\r\n <SectionWrapper data-tour={`sidebar-${title.toLowerCase()}`}>\r\n <SectionHeader\r\n title={title}\r\n icon={icon}\r\n count={items.length}\r\n isExpanded={isExpanded}\r\n isCollapsed={isCollapsed}\r\n theme={theme}\r\n moreHref={moreHref}\r\n onClick={handleToggle}\r\n />\r\n\r\n {!isCollapsed && (\r\n <ContentWrapper $isExpanded={isExpanded}>\r\n <SearchWrapper>\r\n <SearchInput\r\n type=\"text\"\r\n placeholder={`Search ${title.toLowerCase()}...`}\r\n value={searchQuery}\r\n onChange={handleSearchChange}\r\n $theme={theme}\r\n aria-label={`Search ${title}`}\r\n />\r\n </SearchWrapper>\r\n <EntityList\r\n items={items}\r\n createHref={createHref}\r\n moreHref={moreHref}\r\n searchQuery={searchQuery}\r\n totalCount={items.length}\r\n theme={theme}\r\n />\r\n </ContentWrapper>\r\n )}\r\n </SectionWrapper>\r\n )\r\n}\r\n"],"mappings":";AA4CM,cAYE,YAZF;AA1CN,SAAS,UAAU,mBAAmB;AACtC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAE3B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4B;AAC1B,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAClD,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,EAAE;AAEjD,QAAM,eAAe,YAAY,MAAM;AACrC,QAAI,eAAe,UAAU;AAC3B,eAAS;AACT,oBAAc,IAAI;AAAA,IACpB,OAAO;AACL,oBAAc,CAAC,SAAS,CAAC,IAAI;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,aAAa,QAAQ,CAAC;AAE1B,QAAM,qBAAqB;AAAA,IACzB,CAAC,MAA2C;AAC1C,qBAAe,EAAE,OAAO,KAAK;AAAA,IAC/B;AAAA,IACA,CAAC;AAAA,EACH;AAEA,SACE,qBAAC,kBAAe,aAAW,WAAW,MAAM,YAAY,CAAC,IACvD;AAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,OAAO,MAAM;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA;AAAA,IACX;AAAA,IAEC,CAAC,eACA,qBAAC,kBAAe,aAAa,YAC3B;AAAA,0BAAC,iBACC;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,aAAa,UAAU,MAAM,YAAY,CAAC;AAAA,UAC1C,OAAO;AAAA,UACP,UAAU;AAAA,UACV,QAAQ;AAAA,UACR,cAAY,UAAU,KAAK;AAAA;AAAA,MAC7B,GACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,YAAY,MAAM;AAAA,UAClB;AAAA;AAAA,MACF;AAAA,OACF;AAAA,KAEJ;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../components/dashboard/sidebar/CollapsibleSection.styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\nexport const SectionWrapper = styled.div`\n display: flex;\n flex-direction: column;\n`\n\nexport const ContentWrapper = styled.div<{ $isExpanded: boolean }>`\n max-height: ${({ $isExpanded }) => ($isExpanded ? '32rem' : '0')};\n overflow: hidden;\n transition: max-height 0.2s ease-in-out;\n`\n\nexport const SearchWrapper = styled.div`\n padding: 0.5rem 0.75rem;\n`\n\nexport const SearchInput = styled.input<{ $theme?: string }>`\n width: 100%;\n padding: 0.5rem 0.75rem;\n border-radius: 0.375rem;\n border: 1px solid\n ${({ $theme }) =>\n $theme === 'dark' ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'};\n background-color: ${({ $theme }) =>\n $theme === 'dark' ? 'rgba(0, 0, 0, 0.3)' : 'rgba(255, 255, 255, 0.9)'};\n color: inherit;\n font-size: 0.875rem;\n outline: none;\n transition: border-color 0.2s ease;\n\n &::placeholder {\n color: ${({ $theme }) => ($theme === 'dark' ? '#9ca3af' : '#6b7280')};\n }\n\n &:focus {\n border-color: ${({ $theme }) =>\n $theme === 'dark' ? '#60a5fa' : '#2563eb'};\n }\n`\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAmB;AAEZ,MAAM,iBAAiB,yBAAAA,QAAO;AAAA;AAAA;AAAA;AAK9B,MAAM,iBAAiB,yBAAAA,QAAO;AAAA,gBACrB,CAAC,EAAE,YAAY,MAAO,cAAc,UAAU,GAAI;AAAA;AAAA;AAAA;AAK3D,MAAM,gBAAgB,yBAAAA,QAAO;AAAA;AAAA;AAI7B,MAAM,cAAc,yBAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAK5B,CAAC,EAAE,OAAO,MACV,WAAW,SAAS,6BAA6B,oBAAoB;AAAA,sBACrD,CAAC,EAAE,OAAO,MAC5B,WAAW,SAAS,uBAAuB,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO5D,CAAC,EAAE,OAAO,MAAO,WAAW,SAAS,YAAY,SAAU;AAAA;AAAA;AAAA;AAAA,oBAIpD,CAAC,EAAE,OAAO,MACxB,WAAW,SAAS,YAAY,SAAS;AAAA;AAAA;","names":["styled"]}
|
|
1
|
+
{"version":3,"sources":["../../../../components/dashboard/sidebar/CollapsibleSection.styles.ts"],"sourcesContent":["import styled from 'styled-components'\r\n\r\nexport const SectionWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`\r\n\r\nexport const ContentWrapper = styled.div<{ $isExpanded: boolean }>`\r\n max-height: ${({ $isExpanded }) => ($isExpanded ? '32rem' : '0')};\r\n overflow: hidden;\r\n transition: max-height 0.2s ease-in-out;\r\n`\r\n\r\nexport const SearchWrapper = styled.div`\r\n padding: 0.5rem 0.75rem;\r\n`\r\n\r\nexport const SearchInput = styled.input<{ $theme?: string }>`\r\n width: 100%;\r\n padding: 0.5rem 0.75rem;\r\n border-radius: 0.375rem;\r\n border: 1px solid\r\n ${({ $theme }) =>\r\n $theme === 'dark' ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'};\r\n background-color: ${({ $theme }) =>\r\n $theme === 'dark' ? 'rgba(0, 0, 0, 0.3)' : 'rgba(255, 255, 255, 0.9)'};\r\n color: inherit;\r\n font-size: 0.875rem;\r\n outline: none;\r\n transition: border-color 0.2s ease;\r\n\r\n &::placeholder {\r\n color: ${({ $theme }) => ($theme === 'dark' ? '#9ca3af' : '#6b7280')};\r\n }\r\n\r\n &:focus {\r\n border-color: ${({ $theme }) =>\r\n $theme === 'dark' ? '#60a5fa' : '#2563eb'};\r\n }\r\n`\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAmB;AAEZ,MAAM,iBAAiB,yBAAAA,QAAO;AAAA;AAAA;AAAA;AAK9B,MAAM,iBAAiB,yBAAAA,QAAO;AAAA,gBACrB,CAAC,EAAE,YAAY,MAAO,cAAc,UAAU,GAAI;AAAA;AAAA;AAAA;AAK3D,MAAM,gBAAgB,yBAAAA,QAAO;AAAA;AAAA;AAI7B,MAAM,cAAc,yBAAAA,QAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAK5B,CAAC,EAAE,OAAO,MACV,WAAW,SAAS,6BAA6B,oBAAoB;AAAA,sBACrD,CAAC,EAAE,OAAO,MAC5B,WAAW,SAAS,uBAAuB,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO5D,CAAC,EAAE,OAAO,MAAO,WAAW,SAAS,YAAY,SAAU;AAAA;AAAA;AAAA;AAAA,oBAIpD,CAAC,EAAE,OAAO,MACxB,WAAW,SAAS,YAAY,SAAS;AAAA;AAAA;","names":["styled"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../components/dashboard/sidebar/CollapsibleSection.styles.ts"],"sourcesContent":["import styled from 'styled-components'\n\nexport const SectionWrapper = styled.div`\n display: flex;\n flex-direction: column;\n`\n\nexport const ContentWrapper = styled.div<{ $isExpanded: boolean }>`\n max-height: ${({ $isExpanded }) => ($isExpanded ? '32rem' : '0')};\n overflow: hidden;\n transition: max-height 0.2s ease-in-out;\n`\n\nexport const SearchWrapper = styled.div`\n padding: 0.5rem 0.75rem;\n`\n\nexport const SearchInput = styled.input<{ $theme?: string }>`\n width: 100%;\n padding: 0.5rem 0.75rem;\n border-radius: 0.375rem;\n border: 1px solid\n ${({ $theme }) =>\n $theme === 'dark' ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'};\n background-color: ${({ $theme }) =>\n $theme === 'dark' ? 'rgba(0, 0, 0, 0.3)' : 'rgba(255, 255, 255, 0.9)'};\n color: inherit;\n font-size: 0.875rem;\n outline: none;\n transition: border-color 0.2s ease;\n\n &::placeholder {\n color: ${({ $theme }) => ($theme === 'dark' ? '#9ca3af' : '#6b7280')};\n }\n\n &:focus {\n border-color: ${({ $theme }) =>\n $theme === 'dark' ? '#60a5fa' : '#2563eb'};\n }\n`\n"],"mappings":"AAAA,OAAO,YAAY;AAEZ,MAAM,iBAAiB,OAAO;AAAA;AAAA;AAAA;AAK9B,MAAM,iBAAiB,OAAO;AAAA,gBACrB,CAAC,EAAE,YAAY,MAAO,cAAc,UAAU,GAAI;AAAA;AAAA;AAAA;AAK3D,MAAM,gBAAgB,OAAO;AAAA;AAAA;AAI7B,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAK5B,CAAC,EAAE,OAAO,MACV,WAAW,SAAS,6BAA6B,oBAAoB;AAAA,sBACrD,CAAC,EAAE,OAAO,MAC5B,WAAW,SAAS,uBAAuB,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO5D,CAAC,EAAE,OAAO,MAAO,WAAW,SAAS,YAAY,SAAU;AAAA;AAAA;AAAA;AAAA,oBAIpD,CAAC,EAAE,OAAO,MACxB,WAAW,SAAS,YAAY,SAAS;AAAA;AAAA;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../components/dashboard/sidebar/CollapsibleSection.styles.ts"],"sourcesContent":["import styled from 'styled-components'\r\n\r\nexport const SectionWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`\r\n\r\nexport const ContentWrapper = styled.div<{ $isExpanded: boolean }>`\r\n max-height: ${({ $isExpanded }) => ($isExpanded ? '32rem' : '0')};\r\n overflow: hidden;\r\n transition: max-height 0.2s ease-in-out;\r\n`\r\n\r\nexport const SearchWrapper = styled.div`\r\n padding: 0.5rem 0.75rem;\r\n`\r\n\r\nexport const SearchInput = styled.input<{ $theme?: string }>`\r\n width: 100%;\r\n padding: 0.5rem 0.75rem;\r\n border-radius: 0.375rem;\r\n border: 1px solid\r\n ${({ $theme }) =>\r\n $theme === 'dark' ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)'};\r\n background-color: ${({ $theme }) =>\r\n $theme === 'dark' ? 'rgba(0, 0, 0, 0.3)' : 'rgba(255, 255, 255, 0.9)'};\r\n color: inherit;\r\n font-size: 0.875rem;\r\n outline: none;\r\n transition: border-color 0.2s ease;\r\n\r\n &::placeholder {\r\n color: ${({ $theme }) => ($theme === 'dark' ? '#9ca3af' : '#6b7280')};\r\n }\r\n\r\n &:focus {\r\n border-color: ${({ $theme }) =>\r\n $theme === 'dark' ? '#60a5fa' : '#2563eb'};\r\n }\r\n`\r\n"],"mappings":"AAAA,OAAO,YAAY;AAEZ,MAAM,iBAAiB,OAAO;AAAA;AAAA;AAAA;AAK9B,MAAM,iBAAiB,OAAO;AAAA,gBACrB,CAAC,EAAE,YAAY,MAAO,cAAc,UAAU,GAAI;AAAA;AAAA;AAAA;AAK3D,MAAM,gBAAgB,OAAO;AAAA;AAAA;AAI7B,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,MAK5B,CAAC,EAAE,OAAO,MACV,WAAW,SAAS,6BAA6B,oBAAoB;AAAA,sBACrD,CAAC,EAAE,OAAO,MAC5B,WAAW,SAAS,uBAAuB,0BAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO5D,CAAC,EAAE,OAAO,MAAO,WAAW,SAAS,YAAY,SAAU;AAAA;AAAA;AAAA;AAAA,oBAIpD,CAAC,EAAE,OAAO,MACxB,WAAW,SAAS,YAAY,SAAS;AAAA;AAAA;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../components/dashboard/sidebar/EntityList.tsx"],"sourcesContent":["'use client'\n\nimport { Plus, ArrowRight } from 'lucide-react'\nimport Link from 'next/link'\nimport type { EntityListProps } from './types'\nimport { cn } from '../../../lib/utils'\n\nexport function EntityList({\n items,\n createHref,\n moreHref,\n searchQuery,\n totalCount,\n theme: _theme,\n}: EntityListProps) {\n const filteredItems = items.filter((item) =>\n item.name.toLowerCase().includes(searchQuery.toLowerCase()),\n )\n\n const displayItems = filteredItems.slice(0, 10)\n const showViewAll = totalCount > 10\n\n return (\n <ul className=\"flex max-h-96 flex-col gap-1 overflow-y-auto\">\n <li>\n <Link\n href={createHref}\n className={cn(\n 'flex cursor-pointer items-center rounded-lg p-2 text-base font-medium',\n 'text-gray-900 hover:bg-gray-100',\n 'dark:text-white dark:hover:bg-gray-700',\n )}\n >\n <Plus className=\"mr-2 h-4 w-4\" />\n Add New\n </Link>\n </li>\n\n {displayItems.length === 0 && searchQuery ? (\n <li\n className={cn(\n 'px-3 py-4 text-center text-sm',\n 'text-gray-500 dark:text-gray-400',\n )}\n >\n No matches found\n </li>\n ) : displayItems.length === 0 ? (\n <li\n className={cn(\n 'px-3 py-4 text-center text-sm',\n 'text-gray-500 dark:text-gray-400',\n )}\n >\n No items yet\n </li>\n ) : (\n displayItems.map((item) => (\n <li key={item.id}>\n <Link\n href={item.href}\n className={cn(\n 'flex cursor-pointer items-center rounded-lg p-2 text-sm font-normal',\n 'text-primary hover:bg-gray-100',\n 'dark:hover:bg-gray-700',\n 'truncate',\n )}\n >\n {item.name}\n </Link>\n </li>\n ))\n )}\n\n {showViewAll && !searchQuery && (\n <li>\n <Link\n href={moreHref}\n className={cn(\n 'flex cursor-pointer items-center rounded-lg p-2 text-base font-normal',\n 'text-gray-500 hover:underline',\n 'dark:text-gray-400',\n )}\n >\n View all {totalCount}\n <ArrowRight className=\"ml-auto h-4 w-4\" />\n </Link>\n </li>\n )}\n </ul>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBQ;AAvBR,0BAAiC;AACjC,kBAAiB;AAEjB,mBAAmB;AAEZ,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AACT,GAAoB;AAClB,QAAM,gBAAgB,MAAM;AAAA,IAAO,CAAC,SAClC,KAAK,KAAK,YAAY,EAAE,SAAS,YAAY,YAAY,CAAC;AAAA,EAC5D;AAEA,QAAM,eAAe,cAAc,MAAM,GAAG,EAAE;AAC9C,QAAM,cAAc,aAAa;AAEjC,SACE,6CAAC,QAAG,WAAU,gDACZ;AAAA,gDAAC,QACC;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,eAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,sDAAC,4BAAK,WAAU,gBAAe;AAAA,UAAE;AAAA;AAAA;AAAA,IAEnC,GACF;AAAA,IAEC,aAAa,WAAW,KAAK,cAC5B;AAAA,MAAC;AAAA;AAAA,QACC,eAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACD;AAAA;AAAA,IAED,IACE,aAAa,WAAW,IAC1B;AAAA,MAAC;AAAA;AAAA,QACC,eAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACD;AAAA;AAAA,IAED,IAEA,aAAa,IAAI,CAAC,SAChB,4CAAC,QACC;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM,KAAK;AAAA,QACX,eAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEC,eAAK;AAAA;AAAA,IACR,KAXO,KAAK,EAYd,CACD;AAAA,IAGF,eAAe,CAAC,eACf,4CAAC,QACC;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,eAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACD;AAAA;AAAA,UACW;AAAA,UACV,4CAAC,kCAAW,WAAU,mBAAkB;AAAA;AAAA;AAAA,IAC1C,GACF;AAAA,KAEJ;AAEJ;","names":["Link"]}
|
|
1
|
+
{"version":3,"sources":["../../../../components/dashboard/sidebar/EntityList.tsx"],"sourcesContent":["'use client'\r\n\r\nimport { Plus, ArrowRight } from 'lucide-react'\r\nimport Link from 'next/link'\r\nimport type { EntityListProps } from './types'\r\nimport { cn } from '../../../lib/utils'\r\n\r\nexport function EntityList({\r\n items,\r\n createHref,\r\n moreHref,\r\n searchQuery,\r\n totalCount,\r\n theme: _theme,\r\n}: EntityListProps) {\r\n const filteredItems = items.filter((item) =>\r\n item.name.toLowerCase().includes(searchQuery.toLowerCase()),\r\n )\r\n\r\n const displayItems = filteredItems.slice(0, 10)\r\n const showViewAll = totalCount > 10\r\n\r\n return (\r\n <ul className=\"flex max-h-96 flex-col gap-1 overflow-y-auto\">\r\n <li>\r\n <Link\r\n href={createHref}\r\n className={cn(\r\n 'flex cursor-pointer items-center rounded-lg p-2 text-base font-medium',\r\n 'text-gray-900 hover:bg-gray-100',\r\n 'dark:text-white dark:hover:bg-gray-700',\r\n )}\r\n >\r\n <Plus className=\"mr-2 h-4 w-4\" />\r\n Add New\r\n </Link>\r\n </li>\r\n\r\n {displayItems.length === 0 && searchQuery ? (\r\n <li\r\n className={cn(\r\n 'px-3 py-4 text-center text-sm',\r\n 'text-gray-500 dark:text-gray-400',\r\n )}\r\n >\r\n No matches found\r\n </li>\r\n ) : displayItems.length === 0 ? (\r\n <li\r\n className={cn(\r\n 'px-3 py-4 text-center text-sm',\r\n 'text-gray-500 dark:text-gray-400',\r\n )}\r\n >\r\n No items yet\r\n </li>\r\n ) : (\r\n displayItems.map((item) => (\r\n <li key={item.id}>\r\n <Link\r\n href={item.href}\r\n className={cn(\r\n 'flex cursor-pointer items-center rounded-lg p-2 text-sm font-normal',\r\n 'text-primary hover:bg-gray-100',\r\n 'dark:hover:bg-gray-700',\r\n 'truncate',\r\n )}\r\n >\r\n {item.name}\r\n </Link>\r\n </li>\r\n ))\r\n )}\r\n\r\n {showViewAll && !searchQuery && (\r\n <li>\r\n <Link\r\n href={moreHref}\r\n className={cn(\r\n 'flex cursor-pointer items-center rounded-lg p-2 text-base font-normal',\r\n 'text-gray-500 hover:underline',\r\n 'dark:text-gray-400',\r\n )}\r\n >\r\n View all {totalCount}\r\n <ArrowRight className=\"ml-auto h-4 w-4\" />\r\n </Link>\r\n </li>\r\n )}\r\n </ul>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBQ;AAvBR,0BAAiC;AACjC,kBAAiB;AAEjB,mBAAmB;AAEZ,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AACT,GAAoB;AAClB,QAAM,gBAAgB,MAAM;AAAA,IAAO,CAAC,SAClC,KAAK,KAAK,YAAY,EAAE,SAAS,YAAY,YAAY,CAAC;AAAA,EAC5D;AAEA,QAAM,eAAe,cAAc,MAAM,GAAG,EAAE;AAC9C,QAAM,cAAc,aAAa;AAEjC,SACE,6CAAC,QAAG,WAAU,gDACZ;AAAA,gDAAC,QACC;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,eAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,sDAAC,4BAAK,WAAU,gBAAe;AAAA,UAAE;AAAA;AAAA;AAAA,IAEnC,GACF;AAAA,IAEC,aAAa,WAAW,KAAK,cAC5B;AAAA,MAAC;AAAA;AAAA,QACC,eAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACD;AAAA;AAAA,IAED,IACE,aAAa,WAAW,IAC1B;AAAA,MAAC;AAAA;AAAA,QACC,eAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACD;AAAA;AAAA,IAED,IAEA,aAAa,IAAI,CAAC,SAChB,4CAAC,QACC;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM,KAAK;AAAA,QACX,eAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEC,eAAK;AAAA;AAAA,IACR,KAXO,KAAK,EAYd,CACD;AAAA,IAGF,eAAe,CAAC,eACf,4CAAC,QACC;AAAA,MAAC,YAAAA;AAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,eAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACD;AAAA;AAAA,UACW;AAAA,UACV,4CAAC,kCAAW,WAAU,mBAAkB;AAAA;AAAA;AAAA,IAC1C,GACF;AAAA,KAEJ;AAEJ;","names":["Link"]}
|