@slashclick/ui 0.1.16 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +108 -108
  2. package/dist/components/auth/providers.cjs.map +1 -1
  3. package/dist/components/auth/providers.js.map +1 -1
  4. package/dist/components/card/back-button.cjs.map +1 -1
  5. package/dist/components/card/back-button.js.map +1 -1
  6. package/dist/components/card/card-wrapper.cjs.map +1 -1
  7. package/dist/components/card/card-wrapper.js.map +1 -1
  8. package/dist/components/card/header.cjs.map +1 -1
  9. package/dist/components/card/header.js.map +1 -1
  10. package/dist/components/combobox/ComboList.cjs.map +1 -1
  11. package/dist/components/combobox/ComboList.js.map +1 -1
  12. package/dist/components/combobox/index.cjs.map +1 -1
  13. package/dist/components/combobox/index.js.map +1 -1
  14. package/dist/components/dashboard/account-select.cjs.map +1 -1
  15. package/dist/components/dashboard/account-select.js.map +1 -1
  16. package/dist/components/dashboard/account-switcher.cjs.map +1 -1
  17. package/dist/components/dashboard/account-switcher.js.map +1 -1
  18. package/dist/components/dashboard/sidebar/CollapsibleSection.cjs.map +1 -1
  19. package/dist/components/dashboard/sidebar/CollapsibleSection.js.map +1 -1
  20. package/dist/components/dashboard/sidebar/CollapsibleSection.styles.cjs.map +1 -1
  21. package/dist/components/dashboard/sidebar/CollapsibleSection.styles.js.map +1 -1
  22. package/dist/components/dashboard/sidebar/EntityList.cjs.map +1 -1
  23. package/dist/components/dashboard/sidebar/EntityList.js.map +1 -1
  24. package/dist/components/dashboard/sidebar/EntityList.styles.cjs.map +1 -1
  25. package/dist/components/dashboard/sidebar/EntityList.styles.js.map +1 -1
  26. package/dist/components/dashboard/sidebar/SectionHeader.cjs.map +1 -1
  27. package/dist/components/dashboard/sidebar/SectionHeader.js.map +1 -1
  28. package/dist/components/dashboard/sidebar/SectionHeader.styles.cjs.map +1 -1
  29. package/dist/components/dashboard/sidebar/SectionHeader.styles.js.map +1 -1
  30. package/dist/components/dashboard/sidebar/index.cjs.map +1 -1
  31. package/dist/components/dashboard/sidebar/index.js.map +1 -1
  32. package/dist/components/dashboard/sidebar/sidebar.cjs.map +1 -1
  33. package/dist/components/dashboard/sidebar/sidebar.js.map +1 -1
  34. package/dist/components/dashboard/sidebar/tabs.cjs.map +1 -1
  35. package/dist/components/dashboard/sidebar/tabs.js.map +1 -1
  36. package/dist/components/dashboard/sidebar/types.cjs.map +1 -1
  37. package/dist/components/dashboard/sidebar-nav.cjs.map +1 -1
  38. package/dist/components/dashboard/sidebar-nav.js.map +1 -1
  39. package/dist/components/dashboard/utils/build-nav.cjs.map +1 -1
  40. package/dist/components/dashboard/utils/build-nav.js.map +1 -1
  41. package/dist/components/dashboard/with-dashboard.cjs.map +1 -1
  42. package/dist/components/dashboard/with-dashboard.js.map +1 -1
  43. package/dist/components/detail/DetailLayout.styles.cjs.map +1 -1
  44. package/dist/components/detail/DetailLayout.styles.js.map +1 -1
  45. package/dist/components/detail/index.cjs.map +1 -1
  46. package/dist/components/detail/index.js.map +1 -1
  47. package/dist/components/flowbite/card-images.cjs.map +1 -1
  48. package/dist/components/flowbite/card-images.js.map +1 -1
  49. package/dist/components/flowbite/gallery.cjs.map +1 -1
  50. package/dist/components/flowbite/gallery.js.map +1 -1
  51. package/dist/components/flowbite/masonry.cjs.map +1 -1
  52. package/dist/components/flowbite/masonry.js.map +1 -1
  53. package/dist/components/flowbite/search-hero.cjs +3 -3
  54. package/dist/components/flowbite/search-hero.cjs.map +1 -1
  55. package/dist/components/flowbite/search-hero.js +3 -3
  56. package/dist/components/flowbite/search-hero.js.map +1 -1
  57. package/dist/components/generic/copyright.cjs.map +1 -1
  58. package/dist/components/generic/copyright.js.map +1 -1
  59. package/dist/components/generic/icons.cjs.map +1 -1
  60. package/dist/components/generic/icons.js.map +1 -1
  61. package/dist/components/generic/link.cjs.map +1 -1
  62. package/dist/components/generic/link.js.map +1 -1
  63. package/dist/components/header/header.cjs +8 -6
  64. package/dist/components/header/header.cjs.map +1 -1
  65. package/dist/components/header/header.d.ts +4 -1
  66. package/dist/components/header/header.d.ts.map +1 -1
  67. package/dist/components/header/header.js +8 -6
  68. package/dist/components/header/header.js.map +1 -1
  69. package/dist/components/header/internal/main-nav.cjs.map +1 -1
  70. package/dist/components/header/internal/main-nav.js.map +1 -1
  71. package/dist/components/header/internal/mobile-nav.cjs.map +1 -1
  72. package/dist/components/header/internal/mobile-nav.js.map +1 -1
  73. package/dist/components/header/internal/mode-toggle.cjs.map +1 -1
  74. package/dist/components/header/internal/mode-toggle.js.map +1 -1
  75. package/dist/components/header/internal/site-header.cjs.map +1 -1
  76. package/dist/components/header/internal/site-header.js.map +1 -1
  77. package/dist/components/header/langbutton/langbutton.cjs +17 -5
  78. package/dist/components/header/langbutton/langbutton.cjs.map +1 -1
  79. package/dist/components/header/langbutton/langbutton.d.ts +3 -1
  80. package/dist/components/header/langbutton/langbutton.d.ts.map +1 -1
  81. package/dist/components/header/langbutton/langbutton.js +17 -5
  82. package/dist/components/header/langbutton/langbutton.js.map +1 -1
  83. package/dist/components/header/userbutton/user-dropdown.cjs.map +1 -1
  84. package/dist/components/header/userbutton/user-dropdown.js.map +1 -1
  85. package/dist/components/header/userbutton/userbutton.cjs +14 -5
  86. package/dist/components/header/userbutton/userbutton.cjs.map +1 -1
  87. package/dist/components/header/userbutton/userbutton.d.ts +3 -1
  88. package/dist/components/header/userbutton/userbutton.d.ts.map +1 -1
  89. package/dist/components/header/userbutton/userbutton.js +14 -5
  90. package/dist/components/header/userbutton/userbutton.js.map +1 -1
  91. package/dist/components/hooks/use-page-nav.cjs.map +1 -1
  92. package/dist/components/hooks/use-page-nav.js.map +1 -1
  93. package/dist/components/hooks/use-user-entities.cjs.map +1 -1
  94. package/dist/components/hooks/use-user-entities.js.map +1 -1
  95. package/dist/components/icons/apple.cjs.map +1 -1
  96. package/dist/components/icons/apple.js.map +1 -1
  97. package/dist/components/icons/facebook.cjs.map +1 -1
  98. package/dist/components/icons/facebook.js.map +1 -1
  99. package/dist/components/icons/github.cjs.map +1 -1
  100. package/dist/components/icons/github.js.map +1 -1
  101. package/dist/components/icons/google.cjs.map +1 -1
  102. package/dist/components/icons/google.js.map +1 -1
  103. package/dist/components/icons/logo.cjs +6 -2
  104. package/dist/components/icons/logo.cjs.map +1 -1
  105. package/dist/components/icons/logo.d.ts +3 -1
  106. package/dist/components/icons/logo.d.ts.map +1 -1
  107. package/dist/components/icons/logo.js +6 -2
  108. package/dist/components/icons/logo.js.map +1 -1
  109. package/dist/components/lightbox/GallerySection.cjs.map +1 -1
  110. package/dist/components/lightbox/GallerySection.js.map +1 -1
  111. package/dist/components/lightbox/ImageLightbox.cjs.map +1 -1
  112. package/dist/components/lightbox/ImageLightbox.js.map +1 -1
  113. package/dist/components/lightbox/ImageLightbox.types.cjs.map +1 -1
  114. package/dist/components/lightbox/index.cjs.map +1 -1
  115. package/dist/components/lightbox/index.js.map +1 -1
  116. package/dist/components/lightbox/useEntityLightbox.cjs.map +1 -1
  117. package/dist/components/lightbox/useEntityLightbox.js.map +1 -1
  118. package/dist/components/lightbox/useLightbox.cjs.map +1 -1
  119. package/dist/components/lightbox/useLightbox.js.map +1 -1
  120. package/dist/components/search/search.cjs.map +1 -1
  121. package/dist/components/search/search.js.map +1 -1
  122. package/dist/components/tailwind/contact.cjs +6 -6
  123. package/dist/components/tailwind/contact.cjs.map +1 -1
  124. package/dist/components/tailwind/contact.js +6 -6
  125. package/dist/components/tailwind/contact.js.map +1 -1
  126. package/dist/components/tailwind/content-page.cjs.map +1 -1
  127. package/dist/components/tailwind/content-page.js.map +1 -1
  128. package/dist/components/tailwind/feature.cjs.map +1 -1
  129. package/dist/components/tailwind/feature.js.map +1 -1
  130. package/dist/components/tailwind/featurelist.cjs.map +1 -1
  131. package/dist/components/tailwind/featurelist.js.map +1 -1
  132. package/dist/components/tailwind/footer.cjs.map +1 -1
  133. package/dist/components/tailwind/footer.js.map +1 -1
  134. package/dist/components/tailwind/hero.cjs.map +1 -1
  135. package/dist/components/tailwind/hero.js.map +1 -1
  136. package/dist/components/tailwind/pricing.cjs +28 -28
  137. package/dist/components/tailwind/pricing.cjs.map +1 -1
  138. package/dist/components/tailwind/pricing.d.ts.map +1 -1
  139. package/dist/components/tailwind/pricing.js +28 -28
  140. package/dist/components/tailwind/pricing.js.map +1 -1
  141. package/dist/components/tailwind/privacy.cjs.map +1 -1
  142. package/dist/components/tailwind/privacy.js.map +1 -1
  143. package/dist/components/tailwind/providerIcons.cjs.map +1 -1
  144. package/dist/components/tailwind/providerIcons.js.map +1 -1
  145. package/dist/components/ui/avatar.cjs.map +1 -1
  146. package/dist/components/ui/avatar.js.map +1 -1
  147. package/dist/components/ui/breadcrumb.cjs.map +1 -1
  148. package/dist/components/ui/breadcrumb.js.map +1 -1
  149. package/dist/components/ui/button.cjs.map +1 -1
  150. package/dist/components/ui/button.js.map +1 -1
  151. package/dist/components/ui/card.cjs.map +1 -1
  152. package/dist/components/ui/card.js.map +1 -1
  153. package/dist/components/ui/checkbox.cjs.map +1 -1
  154. package/dist/components/ui/checkbox.js.map +1 -1
  155. package/dist/components/ui/command.cjs.map +1 -1
  156. package/dist/components/ui/command.d.ts.map +1 -1
  157. package/dist/components/ui/command.js.map +1 -1
  158. package/dist/components/ui/dialog.cjs.map +1 -1
  159. package/dist/components/ui/dialog.js.map +1 -1
  160. package/dist/components/ui/drawer.cjs.map +1 -1
  161. package/dist/components/ui/drawer.js.map +1 -1
  162. package/dist/components/ui/dropdown-menu.cjs.map +1 -1
  163. package/dist/components/ui/dropdown-menu.js.map +1 -1
  164. package/dist/components/ui/input.cjs.map +1 -1
  165. package/dist/components/ui/input.js.map +1 -1
  166. package/dist/components/ui/label.cjs.map +1 -1
  167. package/dist/components/ui/label.js.map +1 -1
  168. package/dist/components/ui/menubar.cjs.map +1 -1
  169. package/dist/components/ui/menubar.js.map +1 -1
  170. package/dist/components/ui/navigation-menu.cjs.map +1 -1
  171. package/dist/components/ui/navigation-menu.js.map +1 -1
  172. package/dist/components/ui/popover.cjs.map +1 -1
  173. package/dist/components/ui/popover.js.map +1 -1
  174. package/dist/components/ui/resizable.cjs.map +1 -1
  175. package/dist/components/ui/resizable.js.map +1 -1
  176. package/dist/components/ui/scroll-area.cjs.map +1 -1
  177. package/dist/components/ui/scroll-area.js.map +1 -1
  178. package/dist/components/ui/select.cjs.map +1 -1
  179. package/dist/components/ui/select.js.map +1 -1
  180. package/dist/components/ui/sheet.cjs.map +1 -1
  181. package/dist/components/ui/sheet.js.map +1 -1
  182. package/dist/components/ui/skeleton.cjs.map +1 -1
  183. package/dist/components/ui/skeleton.js.map +1 -1
  184. package/dist/components/ui/spinner.cjs.map +1 -1
  185. package/dist/components/ui/spinner.js.map +1 -1
  186. package/dist/components/ui/switch.cjs.map +1 -1
  187. package/dist/components/ui/switch.js.map +1 -1
  188. package/dist/components/ui/tabs.cjs.map +1 -1
  189. package/dist/components/ui/tabs.js.map +1 -1
  190. package/dist/components/ui/textarea.cjs.map +1 -1
  191. package/dist/components/ui/textarea.js.map +1 -1
  192. package/dist/components/ui/toast.cjs.map +1 -1
  193. package/dist/components/ui/toast.js.map +1 -1
  194. package/dist/components/ui/toaster.cjs.map +1 -1
  195. package/dist/components/ui/toaster.js.map +1 -1
  196. package/dist/components/ui/tooltip.cjs.map +1 -1
  197. package/dist/components/ui/tooltip.js.map +1 -1
  198. package/dist/components/ui/use-toast.cjs.map +1 -1
  199. package/dist/components/ui/use-toast.js.map +1 -1
  200. package/dist/components/upgrade-prompt/UpgradePrompt.cjs.map +1 -1
  201. package/dist/components/upgrade-prompt/UpgradePrompt.js.map +1 -1
  202. package/dist/components/upgrade-prompt/index.cjs.map +1 -1
  203. package/dist/components/upgrade-prompt/index.js.map +1 -1
  204. package/dist/hooks/useRecaptcha.cjs.map +1 -1
  205. package/dist/hooks/useRecaptcha.js.map +1 -1
  206. package/dist/lib/nav-theme.cjs +33 -0
  207. package/dist/lib/nav-theme.cjs.map +1 -0
  208. package/dist/lib/nav-theme.d.ts +3 -0
  209. package/dist/lib/nav-theme.d.ts.map +1 -0
  210. package/dist/lib/nav-theme.js +9 -0
  211. package/dist/lib/nav-theme.js.map +1 -0
  212. package/dist/lib/utils.cjs.map +1 -1
  213. package/dist/lib/utils.d.cjs +17 -0
  214. package/dist/lib/utils.d.cjs.map +1 -0
  215. package/dist/lib/utils.d.js +1 -0
  216. package/dist/lib/utils.d.js.map +1 -0
  217. package/dist/lib/utils.js.map +1 -1
  218. package/dist/styles.css +2 -2
  219. package/dist/types/nav.cjs.map +1 -1
  220. package/dist/types/sitemap.cjs.map +1 -1
  221. package/dist/types/unist.cjs.map +1 -1
  222. package/package.json +1 -1
  223. package/styles/theme.css +52 -52
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'\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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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
+ {"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 +1 @@
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"]}
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"]}