@j-solution/components 1.6.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -6
- package/assets/jwms-portal-frontend-BtHTA-UF.css +1 -0
- package/assets/styles/global-utilities.css +34 -0
- package/assets/styles/j-components.css +1 -1
- package/assets/styles/themes.css +128 -21
- package/components/atoms/JAvatar.vue.cjs +1 -1
- package/components/atoms/JAvatar.vue.cjs.map +1 -1
- package/components/atoms/JAvatar.vue.js +10 -7
- package/components/atoms/JAvatar.vue.js.map +1 -1
- package/components/atoms/JBadge.vue.cjs +1 -1
- package/components/atoms/JBadge.vue.cjs.map +1 -1
- package/components/atoms/JBadge.vue.js +7 -6
- package/components/atoms/JBadge.vue.js.map +1 -1
- package/components/atoms/JButton.vue.cjs +6 -1
- package/components/atoms/JButton.vue.cjs.map +1 -1
- package/components/atoms/JButton.vue.js +10 -85
- package/components/atoms/JButton.vue.js.map +1 -1
- package/components/atoms/JButton.vue2.cjs +1 -1
- package/components/atoms/JButton.vue2.cjs.map +1 -1
- package/components/atoms/JButton.vue2.js +85 -2
- package/components/atoms/JButton.vue2.js.map +1 -1
- package/components/atoms/JDatepicker.vue.cjs +1 -1
- package/components/atoms/JDatepicker.vue.cjs.map +1 -1
- package/components/atoms/JDatepicker.vue.js +10 -10
- package/components/atoms/JDatepicker.vue.js.map +1 -1
- package/components/atoms/JEditor.vue.cjs +1 -1
- package/components/atoms/JEditor.vue.js +1 -1
- package/components/atoms/JEditor.vue2.cjs +1 -1
- package/components/atoms/JEditor.vue2.cjs.map +1 -1
- package/components/atoms/JEditor.vue2.js +31 -17
- package/components/atoms/JEditor.vue2.js.map +1 -1
- package/components/atoms/JGrid.vue.cjs +1 -1
- package/components/atoms/JGrid.vue.js +2 -2
- package/components/atoms/JGrid.vue2.cjs +1 -1
- package/components/atoms/JGrid.vue2.cjs.map +1 -1
- package/components/atoms/JGrid.vue2.js +59 -43
- package/components/atoms/JGrid.vue2.js.map +1 -1
- package/components/atoms/JIcon.vue.cjs +1 -1
- package/components/atoms/JIcon.vue.cjs.map +1 -1
- package/components/atoms/JIcon.vue.js +14 -13
- package/components/atoms/JIcon.vue.js.map +1 -1
- package/components/atoms/JKbd.vue.cjs +1 -1
- package/components/atoms/JKbd.vue.cjs.map +1 -1
- package/components/atoms/JKbd.vue.js +13 -10
- package/components/atoms/JKbd.vue.js.map +1 -1
- package/components/atoms/JLabel.vue.cjs +1 -1
- package/components/atoms/JLabel.vue.cjs.map +1 -1
- package/components/atoms/JLabel.vue.js +26 -22
- package/components/atoms/JLabel.vue.js.map +1 -1
- package/components/atoms/JLink.vue.cjs +1 -1
- package/components/atoms/JLink.vue.cjs.map +1 -1
- package/components/atoms/JLink.vue.js +5 -5
- package/components/atoms/JLink.vue.js.map +1 -1
- package/components/atoms/JPreview.vue.cjs +1 -1
- package/components/atoms/JPreview.vue.js +2 -2
- package/components/atoms/JPreview.vue2.cjs +1 -1
- package/components/atoms/JPreview.vue2.cjs.map +1 -1
- package/components/atoms/JPreview.vue2.js +33 -20
- package/components/atoms/JPreview.vue2.js.map +1 -1
- package/components/atoms/JProgress.vue.cjs +1 -1
- package/components/atoms/JProgress.vue.cjs.map +1 -1
- package/components/atoms/JProgress.vue.js +15 -9
- package/components/atoms/JProgress.vue.js.map +1 -1
- package/components/atoms/JRadio.vue.cjs +1 -1
- package/components/atoms/JRadio.vue.cjs.map +1 -1
- package/components/atoms/JRadio.vue.js +1 -1
- package/components/atoms/JRadio.vue.js.map +1 -1
- package/components/atoms/JSearchCombo.vue.cjs +1 -1
- package/components/atoms/JSearchCombo.vue.cjs.map +1 -1
- package/components/atoms/JSearchCombo.vue.js +38 -37
- package/components/atoms/JSearchCombo.vue.js.map +1 -1
- package/components/atoms/JSectionTitle.vue.cjs +7 -0
- package/components/atoms/JSectionTitle.vue.cjs.map +1 -0
- package/components/atoms/JSectionTitle.vue.js +13 -0
- package/components/atoms/JSectionTitle.vue.js.map +1 -0
- package/components/atoms/JSectionTitle.vue2.cjs +2 -0
- package/components/atoms/JSectionTitle.vue2.cjs.map +1 -0
- package/components/atoms/JSectionTitle.vue2.js +67 -0
- package/components/atoms/JSectionTitle.vue2.js.map +1 -0
- package/components/atoms/JSpinner.vue.cjs +1 -1
- package/components/atoms/JSpinner.vue.cjs.map +1 -1
- package/components/atoms/JSpinner.vue.js +8 -7
- package/components/atoms/JSpinner.vue.js.map +1 -1
- package/components/atoms/JSplitter.vue.cjs +6 -1
- package/components/atoms/JSplitter.vue.cjs.map +1 -1
- package/components/atoms/JSplitter.vue.js +10 -54
- package/components/atoms/JSplitter.vue.js.map +1 -1
- package/components/atoms/JSplitter.vue2.cjs +1 -1
- package/components/atoms/JSplitter.vue2.cjs.map +1 -1
- package/components/atoms/JSplitter.vue2.js +59 -2
- package/components/atoms/JSplitter.vue2.js.map +1 -1
- package/components/atoms/JTooltip.vue.cjs +1 -1
- package/components/atoms/JTooltip.vue.cjs.map +1 -1
- package/components/atoms/JTooltip.vue.js +18 -15
- package/components/atoms/JTooltip.vue.js.map +1 -1
- package/components/examples/ExampleCrudPage.vue.cjs +1 -1
- package/components/examples/ExampleCrudPage.vue.cjs.map +1 -1
- package/components/examples/ExampleCrudPage.vue.js +265 -191
- package/components/examples/ExampleCrudPage.vue.js.map +1 -1
- package/components/examples/ExampleTabMappingPage.vue.cjs +1 -1
- package/components/examples/ExampleTabMappingPage.vue.cjs.map +1 -1
- package/components/examples/ExampleTabMappingPage.vue.js +349 -333
- package/components/examples/ExampleTabMappingPage.vue.js.map +1 -1
- package/components/molecules/JAlert.vue.cjs +1 -1
- package/components/molecules/JAlert.vue.cjs.map +1 -1
- package/components/molecules/JAlert.vue.js +18 -16
- package/components/molecules/JAlert.vue.js.map +1 -1
- package/components/molecules/JBreadcrumb.vue.cjs +1 -1
- package/components/molecules/JBreadcrumb.vue.cjs.map +1 -1
- package/components/molecules/JBreadcrumb.vue.js +3 -3
- package/components/molecules/JBreadcrumb.vue.js.map +1 -1
- package/components/molecules/JCard.vue.cjs +1 -1
- package/components/molecules/JCard.vue.cjs.map +1 -1
- package/components/molecules/JCard.vue.js +55 -39
- package/components/molecules/JCard.vue.js.map +1 -1
- package/components/molecules/JEmptyState.vue.cjs +7 -0
- package/components/molecules/JEmptyState.vue.cjs.map +1 -0
- package/components/molecules/JEmptyState.vue.js +13 -0
- package/components/molecules/JEmptyState.vue.js.map +1 -0
- package/components/molecules/JEmptyState.vue2.cjs +2 -0
- package/components/molecules/JEmptyState.vue2.cjs.map +1 -0
- package/components/molecules/JEmptyState.vue2.js +127 -0
- package/components/molecules/JEmptyState.vue2.js.map +1 -0
- package/components/molecules/JFormField.vue.cjs +6 -1
- package/components/molecules/JFormField.vue.cjs.map +1 -1
- package/components/molecules/JFormField.vue.js +10 -262
- package/components/molecules/JFormField.vue.js.map +1 -1
- package/components/molecules/JFormField.vue2.cjs +2 -0
- package/components/molecules/JFormField.vue2.cjs.map +1 -0
- package/components/molecules/JFormField.vue2.js +271 -0
- package/components/molecules/JFormField.vue2.js.map +1 -0
- package/components/molecules/JTabs.vue.cjs +1 -1
- package/components/molecules/JTabs.vue.js +1 -1
- package/components/molecules/JTabs.vue2.cjs +1 -1
- package/components/molecules/JTabs.vue2.cjs.map +1 -1
- package/components/molecules/JTabs.vue2.js +50 -56
- package/components/molecules/JTabs.vue2.js.map +1 -1
- package/components/molecules/JTitlebar.vue.cjs +1 -1
- package/components/molecules/JTitlebar.vue.cjs.map +1 -1
- package/components/molecules/JTitlebar.vue.js +49 -47
- package/components/molecules/JTitlebar.vue.js.map +1 -1
- package/components/organisms/JDynamicForm.vue2.cjs +1 -1
- package/components/organisms/JDynamicForm.vue2.cjs.map +1 -1
- package/components/organisms/JDynamicForm.vue2.js +35 -32
- package/components/organisms/JDynamicForm.vue2.js.map +1 -1
- package/components/organisms/JDynamicTabs.vue.cjs +1 -1
- package/components/organisms/JDynamicTabs.vue.cjs.map +1 -1
- package/components/organisms/JDynamicTabs.vue.js +47 -52
- package/components/organisms/JDynamicTabs.vue.js.map +1 -1
- package/components/organisms/JFilterBar.vue.cjs +6 -1
- package/components/organisms/JFilterBar.vue.cjs.map +1 -1
- package/components/organisms/JFilterBar.vue.js +10 -137
- package/components/organisms/JFilterBar.vue.js.map +1 -1
- package/components/organisms/JFilterBar.vue2.cjs +1 -1
- package/components/organisms/JFilterBar.vue2.cjs.map +1 -1
- package/components/organisms/JFilterBar.vue2.js +141 -2
- package/components/organisms/JFilterBar.vue2.js.map +1 -1
- package/components/organisms/JFormModal.vue.cjs +1 -1
- package/components/organisms/JFormModal.vue.cjs.map +1 -1
- package/components/organisms/JFormModal.vue.js +54 -49
- package/components/organisms/JFormModal.vue.js.map +1 -1
- package/components/organisms/JHeader.vue.cjs +1 -1
- package/components/organisms/JHeader.vue.cjs.map +1 -1
- package/components/organisms/JHeader.vue.js +211 -208
- package/components/organisms/JHeader.vue.js.map +1 -1
- package/components/organisms/JModal.vue.cjs +1 -1
- package/components/organisms/JModal.vue.cjs.map +1 -1
- package/components/organisms/JModal.vue.js +31 -26
- package/components/organisms/JModal.vue.js.map +1 -1
- package/components/organisms/JPageContainer.vue.cjs +1 -1
- package/components/organisms/JPageContainer.vue.cjs.map +1 -1
- package/components/organisms/JPageContainer.vue.js +22 -22
- package/components/organisms/JPageContainer.vue.js.map +1 -1
- package/components/organisms/JSearchPanel.vue2.cjs +1 -1
- package/components/organisms/JSearchPanel.vue2.cjs.map +1 -1
- package/components/organisms/JSearchPanel.vue2.js +34 -32
- package/components/organisms/JSearchPanel.vue2.js.map +1 -1
- package/components/organisms/JShuttle.vue.cjs +7 -0
- package/components/organisms/JShuttle.vue.cjs.map +1 -0
- package/components/organisms/JShuttle.vue.js +13 -0
- package/components/organisms/JShuttle.vue.js.map +1 -0
- package/components/organisms/JShuttle.vue2.cjs +2 -0
- package/components/organisms/JShuttle.vue2.cjs.map +1 -0
- package/components/organisms/JShuttle.vue2.js +216 -0
- package/components/organisms/JShuttle.vue2.js.map +1 -0
- package/components/organisms/JSidebarAdvanced.vue.cjs +1 -1
- package/components/organisms/JSidebarAdvanced.vue.js +7 -7
- package/components/organisms/JSidebarAdvanced.vue2.cjs +1 -1
- package/components/organisms/JSidebarAdvanced.vue2.cjs.map +1 -1
- package/components/organisms/JSidebarAdvanced.vue2.js +40 -40
- package/components/organisms/JSidebarAdvanced.vue2.js.map +1 -1
- package/components/organisms/JSidebarSimple/JDynamicMenuItem.vue.cjs +1 -1
- package/components/organisms/JSidebarSimple/JDynamicMenuItem.vue.cjs.map +1 -1
- package/components/organisms/JSidebarSimple/JDynamicMenuItem.vue.js +83 -63
- package/components/organisms/JSidebarSimple/JDynamicMenuItem.vue.js.map +1 -1
- package/components/organisms/JSidebarSimple.vue.cjs +1 -1
- package/components/organisms/JSidebarSimple.vue.js +2 -2
- package/components/organisms/JSidebarSimple.vue2.cjs +1 -1
- package/components/organisms/JSidebarSimple.vue2.cjs.map +1 -1
- package/components/organisms/JSidebarSimple.vue2.js +2 -2
- package/components/organisms/JSidebarSimple.vue2.js.map +1 -1
- package/components/shadcn/AccordionTrigger.vue.cjs +1 -1
- package/components/shadcn/AccordionTrigger.vue.cjs.map +1 -1
- package/components/shadcn/AccordionTrigger.vue.js +3 -3
- package/components/shadcn/AccordionTrigger.vue.js.map +1 -1
- package/components/shadcn/Card.vue.cjs +1 -1
- package/components/shadcn/Card.vue.cjs.map +1 -1
- package/components/shadcn/Card.vue.js +1 -1
- package/components/shadcn/Card.vue.js.map +1 -1
- package/components/shadcn/CardContent.vue.cjs +1 -1
- package/components/shadcn/CardContent.vue.cjs.map +1 -1
- package/components/shadcn/CardContent.vue.js +4 -4
- package/components/shadcn/CardContent.vue.js.map +1 -1
- package/components/shadcn/CardDescription.vue.cjs +1 -1
- package/components/shadcn/CardDescription.vue.cjs.map +1 -1
- package/components/shadcn/CardDescription.vue.js +1 -1
- package/components/shadcn/CardDescription.vue.js.map +1 -1
- package/components/shadcn/CardFooter.vue.cjs +1 -1
- package/components/shadcn/CardFooter.vue.cjs.map +1 -1
- package/components/shadcn/CardFooter.vue.js +7 -7
- package/components/shadcn/CardFooter.vue.js.map +1 -1
- package/components/shadcn/CardHeader.vue.cjs +1 -1
- package/components/shadcn/CardHeader.vue.cjs.map +1 -1
- package/components/shadcn/CardHeader.vue.js +8 -8
- package/components/shadcn/CardHeader.vue.js.map +1 -1
- package/components/shadcn/CardTitle.vue.cjs +1 -1
- package/components/shadcn/CardTitle.vue.cjs.map +1 -1
- package/components/shadcn/CardTitle.vue.js +5 -5
- package/components/shadcn/CardTitle.vue.js.map +1 -1
- package/components/shadcn/Input.vue.cjs +1 -1
- package/components/shadcn/Input.vue.cjs.map +1 -1
- package/components/shadcn/Input.vue.js +3 -3
- package/components/shadcn/Input.vue.js.map +1 -1
- package/components/shadcn/SelectTrigger.vue.cjs +1 -1
- package/components/shadcn/SelectTrigger.vue.cjs.map +1 -1
- package/components/shadcn/SelectTrigger.vue.js +2 -2
- package/components/shadcn/SelectTrigger.vue.js.map +1 -1
- package/components/shadcn/Switch.vue.cjs +1 -1
- package/components/shadcn/Switch.vue.cjs.map +1 -1
- package/components/shadcn/Switch.vue.js +2 -2
- package/components/shadcn/Switch.vue.js.map +1 -1
- package/components/shadcn/TabsContent.vue.cjs +1 -1
- package/components/shadcn/TabsContent.vue.cjs.map +1 -1
- package/components/shadcn/TabsContent.vue.js +1 -1
- package/components/shadcn/TabsContent.vue.js.map +1 -1
- package/components/shadcn/TabsList.vue.cjs +1 -1
- package/components/shadcn/TabsList.vue.cjs.map +1 -1
- package/components/shadcn/TabsList.vue.js +10 -10
- package/components/shadcn/TabsList.vue.js.map +1 -1
- package/components/shadcn/TabsTrigger.vue.cjs +1 -1
- package/components/shadcn/TabsTrigger.vue.cjs.map +1 -1
- package/components/shadcn/TabsTrigger.vue.js +4 -4
- package/components/shadcn/TabsTrigger.vue.js.map +1 -1
- package/components/shadcn/Textarea.vue.cjs +1 -1
- package/components/shadcn/Textarea.vue.cjs.map +1 -1
- package/components/shadcn/Textarea.vue.js +2 -2
- package/components/shadcn/Textarea.vue.js.map +1 -1
- package/components/shadcn/index.cjs +1 -1
- package/components/shadcn/index.cjs.map +1 -1
- package/components/shadcn/index.js +9 -8
- package/components/shadcn/index.js.map +1 -1
- package/components/templates/JLayout.vue.cjs.map +1 -1
- package/components/templates/JLayout.vue.js.map +1 -1
- package/index.cjs +1 -1
- package/index.js +73 -67
- package/package.json +1 -1
- package/types/index.d.ts +1025 -766
- package/assets/jwms-portal-frontend-DntSIcYt.css +0 -1
- package/components/molecules/JFormField.vue3.cjs +0 -2
- package/components/molecules/JFormField.vue3.cjs.map +0 -1
- package/components/molecules/JFormField.vue3.js +0 -6
- package/components/molecules/JFormField.vue3.js.map +0 -1
package/assets/styles/themes.css
CHANGED
|
@@ -24,27 +24,27 @@
|
|
|
24
24
|
--ring: 222.2 84% 4.9%;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
.theme-default.dark {
|
|
28
|
-
--background: 222
|
|
29
|
-
--foreground: 210 40% 98%;
|
|
30
|
-
--card: 222
|
|
31
|
-
--card-foreground: 210 40% 98%;
|
|
32
|
-
--popover: 222
|
|
33
|
-
--popover-foreground: 210 40% 98%;
|
|
34
|
-
--primary:
|
|
35
|
-
--primary-foreground: 222
|
|
36
|
-
--secondary: 217
|
|
37
|
-
--secondary-foreground: 210 40% 98%;
|
|
38
|
-
--muted: 217
|
|
39
|
-
--muted-foreground: 215 20
|
|
40
|
-
--accent: 217
|
|
41
|
-
--accent-foreground: 210 40% 98%;
|
|
42
|
-
--destructive: 0
|
|
43
|
-
--destructive-foreground: 210 40% 98%;
|
|
44
|
-
--border: 217
|
|
45
|
-
--input: 217
|
|
46
|
-
--ring:
|
|
47
|
-
}
|
|
27
|
+
.theme-default.dark {
|
|
28
|
+
--background: 222 47% 11%;
|
|
29
|
+
--foreground: 210 40% 98%;
|
|
30
|
+
--card: 222 47% 14%;
|
|
31
|
+
--card-foreground: 210 40% 98%;
|
|
32
|
+
--popover: 222 47% 14%;
|
|
33
|
+
--popover-foreground: 210 40% 98%;
|
|
34
|
+
--primary: 217 91% 60%;
|
|
35
|
+
--primary-foreground: 222 47% 11%;
|
|
36
|
+
--secondary: 217 32% 17%;
|
|
37
|
+
--secondary-foreground: 210 40% 98%;
|
|
38
|
+
--muted: 217 32% 17%;
|
|
39
|
+
--muted-foreground: 215 20% 65%;
|
|
40
|
+
--accent: 217 32% 17%;
|
|
41
|
+
--accent-foreground: 210 40% 98%;
|
|
42
|
+
--destructive: 0 63% 31%;
|
|
43
|
+
--destructive-foreground: 210 40% 98%;
|
|
44
|
+
--border: 217 32% 17%;
|
|
45
|
+
--input: 217 32% 17%;
|
|
46
|
+
--ring: 217 91% 60%;
|
|
47
|
+
}
|
|
48
48
|
|
|
49
49
|
/* Slate 테마 */
|
|
50
50
|
.theme-slate {
|
|
@@ -335,3 +335,110 @@
|
|
|
335
335
|
--ring: 20.5 90.2% 48.2%;
|
|
336
336
|
}
|
|
337
337
|
|
|
338
|
+
.theme-vescrow {
|
|
339
|
+
--background: 270 50% 99.2157%;
|
|
340
|
+
--foreground: 277.5000 44.4444% 3.5294%;
|
|
341
|
+
--card: 0 0% 100%;
|
|
342
|
+
--card-foreground: 277.5000 44.4444% 3.5294%;
|
|
343
|
+
--popover: 0 0% 100%;
|
|
344
|
+
--popover-foreground: 277.5000 44.4444% 3.5294%;
|
|
345
|
+
--primary: 240 93.8144% 19.0196%;
|
|
346
|
+
--primary-foreground: 0 0% 100%;
|
|
347
|
+
--secondary: 220.0000 87.0968% 93.9216%;
|
|
348
|
+
--secondary-foreground: 220 98.1308% 41.9608%;
|
|
349
|
+
--muted: 270 13.3333% 94.1176%;
|
|
350
|
+
--muted-foreground: 270.0000 6.0606% 38.8235%;
|
|
351
|
+
--accent: 233.0769 100.0000% 94.9020%;
|
|
352
|
+
--accent-foreground: 220 98.1308% 41.9608%;
|
|
353
|
+
--destructive: 346.8367 77.1654% 49.8039%;
|
|
354
|
+
--destructive-foreground: 0 0% 100%;
|
|
355
|
+
--border: 277.5000 15.3846% 89.8039%;
|
|
356
|
+
--input: 277.5000 15.3846% 89.8039%;
|
|
357
|
+
--ring: 219.8969 100% 61.9608%;
|
|
358
|
+
--chart-1: 220 98.1308% 41.9608%;
|
|
359
|
+
--chart-2: 258.3117 89.5349% 66.2745%;
|
|
360
|
+
--chart-3: 292.1893 84.0796% 60.5882%;
|
|
361
|
+
--chart-4: 349.7238 89.1626% 60.1961%;
|
|
362
|
+
--chart-5: 24.5815 94.9791% 53.1373%;
|
|
363
|
+
--sidebar: 220.0000 87.0968% 93.9216%;
|
|
364
|
+
--sidebar-foreground: 217.8947 93.4426% 11.9608%;
|
|
365
|
+
--sidebar-primary: 270 50% 99.2157%;
|
|
366
|
+
--sidebar-primary-foreground: 226.6667 44.2623% 11.9608%;
|
|
367
|
+
--sidebar-accent: 235.5000 43.4783% 18.0392%;
|
|
368
|
+
--sidebar-accent-foreground: 0 0% 100%;
|
|
369
|
+
--sidebar-border: 241.5000 43.4783% 18.0392%;
|
|
370
|
+
--sidebar-ring: 236.3636 58.5799% 33.1373%;
|
|
371
|
+
--font-sans: Bricolage Grotesque, ui-sans-serif, sans-serif, system-ui;
|
|
372
|
+
--font-serif: Georgia, serif;
|
|
373
|
+
--font-mono: JetBrains Mono, monospace;
|
|
374
|
+
--radius: 1.25rem;
|
|
375
|
+
--shadow-x: 0px;
|
|
376
|
+
--shadow-y: 4px;
|
|
377
|
+
--shadow-blur: 10px;
|
|
378
|
+
--shadow-spread: 0px;
|
|
379
|
+
--shadow-opacity: 0.1;
|
|
380
|
+
--shadow-color: 0, 0, 0;
|
|
381
|
+
--shadow-2xs: 0px 4px 10px 0px hsl(0, 0, 0 / 0.05);
|
|
382
|
+
--shadow-xs: 0px 4px 10px 0px hsl(0, 0, 0 / 0.05);
|
|
383
|
+
--shadow-sm: 0px 4px 10px 0px hsl(0, 0, 0 / 0.10), 0px 1px 2px -1px hsl(0, 0, 0 / 0.10);
|
|
384
|
+
--shadow: 0px 4px 10px 0px hsl(0, 0, 0 / 0.10), 0px 1px 2px -1px hsl(0, 0, 0 / 0.10);
|
|
385
|
+
--shadow-md: 0px 4px 10px 0px hsl(0, 0, 0 / 0.10), 0px 2px 4px -1px hsl(0, 0, 0 / 0.10);
|
|
386
|
+
--shadow-lg: 0px 4px 10px 0px hsl(0, 0, 0 / 0.10), 0px 4px 6px -1px hsl(0, 0, 0 / 0.10);
|
|
387
|
+
--shadow-xl: 0px 4px 10px 0px hsl(0, 0, 0 / 0.10), 0px 8px 10px -1px hsl(0, 0, 0 / 0.10);
|
|
388
|
+
--shadow-2xl: 0px 4px 10px 0px hsl(0, 0, 0 / 0.25);
|
|
389
|
+
--tracking-normal: -0.01em;
|
|
390
|
+
--spacing: 0.25rem;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.theme-vescrow.dark {
|
|
394
|
+
--background: 222.8571 63.6364% 2.1569%;
|
|
395
|
+
--foreground: 270 50% 99.2157%;
|
|
396
|
+
--card: 221.5385 52.0000% 4.9020%;
|
|
397
|
+
--card-foreground: 270 50% 99.2157%;
|
|
398
|
+
--popover: 226.1538 52.0000% 4.9020%;
|
|
399
|
+
--popover-foreground: 270 50% 99.2157%;
|
|
400
|
+
--primary: 227.9221 83.6957% 36.0784%;
|
|
401
|
+
--primary-foreground: 0 0% 100%;
|
|
402
|
+
--secondary: 226.6667 44.2623% 11.9608%;
|
|
403
|
+
--secondary-foreground: 270 50% 99.2157%;
|
|
404
|
+
--muted: 229.0909 47.8261% 9.0196%;
|
|
405
|
+
--muted-foreground: 240 7.9365% 62.9412%;
|
|
406
|
+
--accent: 232.5000 43.4783% 18.0392%;
|
|
407
|
+
--accent-foreground: 270 50% 99.2157%;
|
|
408
|
+
--destructive: 346.8000 63.2911% 30.9804%;
|
|
409
|
+
--destructive-foreground: 0 0% 100%;
|
|
410
|
+
--border: 241.5000 43.4783% 18.0392%;
|
|
411
|
+
--input: 229.5000 43.4783% 18.0392%;
|
|
412
|
+
--ring: 238.1818 58.5799% 33.1373%;
|
|
413
|
+
--chart-1: 230.1316 90.4762% 67.0588%;
|
|
414
|
+
--chart-2: 28.8889 83.5052% 61.9608%;
|
|
415
|
+
--chart-3: 349.7238 89.1626% 60.1961%;
|
|
416
|
+
--chart-4: 24.5815 94.9791% 53.1373%;
|
|
417
|
+
--chart-5: 238.1818 58.5799% 33.1373%;
|
|
418
|
+
--sidebar: 228 50% 7.8431%;
|
|
419
|
+
--sidebar-foreground: 235.5556 12.0000% 55.8824%;
|
|
420
|
+
--sidebar-primary: 270 50% 99.2157%;
|
|
421
|
+
--sidebar-primary-foreground: 231 50% 7.8431%;
|
|
422
|
+
--sidebar-accent: 235.5556 44.2623% 11.9608%;
|
|
423
|
+
--sidebar-accent-foreground: 270 50% 99.2157%;
|
|
424
|
+
--sidebar-border: 237.7778 44.2623% 11.9608%;
|
|
425
|
+
--sidebar-ring: 236.3636 58.5799% 33.1373%;
|
|
426
|
+
--font-sans: Bricolage Grotesque, ui-sans-serif, sans-serif, system-ui;
|
|
427
|
+
--font-serif: Georgia, serif;
|
|
428
|
+
--font-mono: JetBrains Mono, monospace;
|
|
429
|
+
--radius: 1.25rem;
|
|
430
|
+
--shadow-x: 0px;
|
|
431
|
+
--shadow-y: 10px;
|
|
432
|
+
--shadow-blur: 20px;
|
|
433
|
+
--shadow-spread: 0px;
|
|
434
|
+
--shadow-opacity: 0.5;
|
|
435
|
+
--shadow-color: 0, 0, 0;
|
|
436
|
+
--shadow-2xs: 0px 10px 20px 0px hsl(0, 0, 0 / 0.25);
|
|
437
|
+
--shadow-xs: 0px 10px 20px 0px hsl(0, 0, 0 / 0.25);
|
|
438
|
+
--shadow-sm: 0px 10px 20px 0px hsl(0, 0, 0 / 0.50), 0px 1px 2px -1px hsl(0, 0, 0 / 0.50);
|
|
439
|
+
--shadow: 0px 10px 20px 0px hsl(0, 0, 0 / 0.50), 0px 1px 2px -1px hsl(0, 0, 0 / 0.50);
|
|
440
|
+
--shadow-md: 0px 10px 20px 0px hsl(0, 0, 0 / 0.50), 0px 2px 4px -1px hsl(0, 0, 0 / 0.50);
|
|
441
|
+
--shadow-lg: 0px 10px 20px 0px hsl(0, 0, 0 / 0.50), 0px 4px 6px -1px hsl(0, 0, 0 / 0.50);
|
|
442
|
+
--shadow-xl: 0px 10px 20px 0px hsl(0, 0, 0 / 0.50), 0px 8px 10px -1px hsl(0, 0, 0 / 0.50);
|
|
443
|
+
--shadow-2xl: 0px 10px 20px 0px hsl(0, 0, 0 / 1.25);
|
|
444
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("../shadcn/Avatar.vue.cjs"),f=require("../shadcn/AvatarFallback.vue.cjs"),g=require("../shadcn/AvatarImage.vue.cjs"),p=e.defineComponent({__name:"JAvatar",props:{src:{},alt:{default:""},fallback:{default:"?"},class:{},styletype:{default:"default"},size:{default:"
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("../shadcn/Avatar.vue.cjs"),f=require("../shadcn/AvatarFallback.vue.cjs"),g=require("../shadcn/AvatarImage.vue.cjs"),p=e.defineComponent({__name:"JAvatar",props:{src:{},alt:{default:""},fallback:{default:"?"},class:{},styletype:{default:"default"},size:{default:"sm"},shape:{default:"circle"},status:{}},setup(l){const s=l,r={default:{class:""},primary:{class:"bg-blue-500 text-white"},success:{class:"bg-green-500 text-white"},warning:{class:"bg-amber-500 text-white"},danger:{class:"bg-red-500 text-white"}},c={xs:{class:"h-6 w-6 text-[10px]"},sm:{class:"h-8 w-8 text-xs"},md:{class:"h-10 w-10 text-sm"},lg:{class:"h-12 w-12 text-base"},xl:{class:"h-16 w-16 text-lg"}},n={circle:{class:"rounded-full"},square:{class:"rounded-none"},rounded:{class:"rounded-lg"}},u={online:{class:"ring-2 ring-green-500 ring-offset-2"},offline:{class:"ring-2 ring-gray-400 ring-offset-2"},away:{class:"ring-2 ring-yellow-500 ring-offset-2"},busy:{class:"ring-2 ring-red-500 ring-offset-2"}},o=e.computed(()=>{const t=r[s.styletype],a=c[s.size],i=n[s.shape],_=s.status?u[s.status]:{class:""};return{class:[t.class,a.class,i.class,_.class,s.class].filter(Boolean).join(" ")}});return(t,a)=>(e.openBlock(),e.createBlock(d.default,e.normalizeProps(e.guardReactiveProps(o.value)),{default:e.withCtx(()=>[s.src?(e.openBlock(),e.createBlock(g.default,{key:0,src:s.src,alt:s.alt},null,8,["src","alt"])):(e.openBlock(),e.createBlock(f.default,{key:1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.fallback),1)]),_:1}))]),_:1},16))}});exports.default=p;
|
|
2
2
|
//# sourceMappingURL=JAvatar.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JAvatar.vue.cjs","sources":["../../../../src/components/atoms/JAvatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport Avatar from '@/components/shadcn/Avatar.vue'\r\nimport AvatarFallback from '@/components/shadcn/AvatarFallback.vue'\r\nimport AvatarImage from '@/components/shadcn/AvatarImage.vue'\r\n\r\ntype StyleType =\r\n | 'default' // 기본 스타일\r\n | 'primary' // 강조 스타일 (파랑)\r\n | 'success' // 성공 스타일 (초록)\r\n | 'warning' // 경고 스타일 (주황)\r\n | 'danger' // 위험 스타일 (빨강)\r\n\r\ntype Size = 'sm' | 'md' | 'lg' | 'xl'\
|
|
1
|
+
{"version":3,"file":"JAvatar.vue.cjs","sources":["../../../../src/components/atoms/JAvatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport Avatar from '@/components/shadcn/Avatar.vue'\r\nimport AvatarFallback from '@/components/shadcn/AvatarFallback.vue'\r\nimport AvatarImage from '@/components/shadcn/AvatarImage.vue'\r\n\r\ntype StyleType =\r\n | 'default' // 기본 스타일\r\n | 'primary' // 강조 스타일 (파랑)\r\n | 'success' // 성공 스타일 (초록)\r\n | 'warning' // 경고 스타일 (주황)\r\n | 'danger' // 위험 스타일 (빨강)\r\n\r\ntype Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\r\ntype Shape = 'circle' | 'square' | 'rounded'\r\n\r\ntype Status = 'online' | 'offline' | 'away' | 'busy'\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n src?: string\r\n alt?: string\r\n fallback?: string\r\n class?: string\r\n /** 스타일 프리셋 */\r\n styletype?: StyleType\r\n /** 아바타 크기 */\r\n size?: Size\r\n /** 아바타 모양 */\r\n shape?: Shape\r\n /** 상태 표시 */\r\n status?: Status\r\n }>(),\r\n {\n alt: '',\n fallback: '?',\n styletype: 'default',\n size: 'sm',\n shape: 'circle',\n },\n)\r\n\r\n/**\r\n * styletype -> class 매핑\r\n */\r\nconst STYLE_PRESETS: Record<StyleType, { class: string }> = {\r\n default: { class: '' },\r\n primary: { \r\n class: 'bg-blue-500 text-white',\r\n },\r\n success: { \r\n class: 'bg-green-500 text-white',\r\n },\r\n warning: { \r\n class: 'bg-amber-500 text-white',\r\n },\r\n danger: { \r\n class: 'bg-red-500 text-white',\r\n },\r\n}\r\n\r\n/**\r\n * size -> class 매핑\r\n */\r\nconst SIZE_PRESETS: Record<Size, { class: string }> = {\n xs: { \n class: 'h-6 w-6 text-[10px]',\n },\n sm: { \n class: 'h-8 w-8 text-xs',\n },\n md: { \n class: 'h-10 w-10 text-sm',\n },\n lg: { \n class: 'h-12 w-12 text-base',\n },\n xl: { \n class: 'h-16 w-16 text-lg',\n },\n}\n\r\n/**\r\n * shape -> class 매핑\r\n */\r\nconst SHAPE_PRESETS: Record<Shape, { class: string }> = {\r\n circle: { \r\n class: 'rounded-full',\r\n },\r\n square: { \r\n class: 'rounded-none',\r\n },\r\n rounded: { \r\n class: 'rounded-lg',\r\n },\r\n}\r\n\r\n/**\r\n * status -> class 매핑\r\n */\r\nconst STATUS_PRESETS: Record<Status, { class: string }> = {\r\n online: { \r\n class: 'ring-2 ring-green-500 ring-offset-2',\r\n },\r\n offline: { \r\n class: 'ring-2 ring-gray-400 ring-offset-2',\r\n },\r\n away: { \r\n class: 'ring-2 ring-yellow-500 ring-offset-2',\r\n },\r\n busy: { \r\n class: 'ring-2 ring-red-500 ring-offset-2',\r\n },\r\n}\r\n\r\n/** 최종 바인딩: 직접 넘긴 class가 있으면 styletype, size, shape, status 기본값과 병합 */\r\nconst mapped = computed(() => {\r\n const stylePreset = STYLE_PRESETS[props.styletype!]\r\n const sizePreset = SIZE_PRESETS[props.size!]\r\n const shapePreset = SHAPE_PRESETS[props.shape!]\r\n const statusPreset = props.status ? STATUS_PRESETS[props.status] : { class: '' }\r\n const finalClass = [stylePreset.class, sizePreset.class, shapePreset.class, statusPreset.class, props.class].filter(Boolean).join(' ')\r\n \r\n return {\r\n class: finalClass,\r\n }\r\n})\r\n</script>\r\n\r\n<template>\r\n <Avatar v-bind=\"mapped\">\r\n <AvatarImage v-if=\"props.src\" :src=\"props.src\" :alt=\"props.alt\" />\r\n <AvatarFallback v-else>{{ props.fallback }}</AvatarFallback>\r\n </Avatar>\r\n</template>\r\n"],"names":["props","__props","STYLE_PRESETS","SIZE_PRESETS","SHAPE_PRESETS","STATUS_PRESETS","mapped","computed","stylePreset","sizePreset","shapePreset","statusPreset","_openBlock","_createBlock","Avatar","AvatarImage","AvatarFallback","_createTextVNode","_toDisplayString"],"mappings":"scAmBA,MAAMA,EAAQC,EA2BRC,EAAsD,CAC1D,QAAS,CAAE,MAAO,EAAA,EAClB,QAAS,CACP,MAAO,wBAAA,EAET,QAAS,CACP,MAAO,yBAAA,EAET,QAAS,CACP,MAAO,yBAAA,EAET,OAAQ,CACN,MAAO,uBAAA,CACT,EAMIC,EAAgD,CACpD,GAAI,CACF,MAAO,qBAAA,EAET,GAAI,CACF,MAAO,iBAAA,EAET,GAAI,CACF,MAAO,mBAAA,EAET,GAAI,CACF,MAAO,qBAAA,EAET,GAAI,CACF,MAAO,mBAAA,CACT,EAMIC,EAAkD,CACtD,OAAQ,CACN,MAAO,cAAA,EAET,OAAQ,CACN,MAAO,cAAA,EAET,QAAS,CACP,MAAO,YAAA,CACT,EAMIC,EAAoD,CACxD,OAAQ,CACN,MAAO,qCAAA,EAET,QAAS,CACP,MAAO,oCAAA,EAET,KAAM,CACJ,MAAO,sCAAA,EAET,KAAM,CACJ,MAAO,mCAAA,CACT,EAIIC,EAASC,EAAAA,SAAS,IAAM,CAC5B,MAAMC,EAAcN,EAAcF,EAAM,SAAU,EAC5CS,EAAaN,EAAaH,EAAM,IAAK,EACrCU,EAAcN,EAAcJ,EAAM,KAAM,EACxCW,EAAeX,EAAM,OAASK,EAAeL,EAAM,MAAM,EAAI,CAAE,MAAO,EAAA,EAG5E,MAAO,CACL,MAHiB,CAACQ,EAAY,MAAOC,EAAW,MAAOC,EAAY,MAAOC,EAAa,MAAOX,EAAM,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,CAG5H,CAEX,CAAC,gBAICY,EAAAA,UAAA,EAAAC,EAAAA,YAGSC,EAAAA,8CAHOR,EAAA,KAAM,CAAA,EAAA,mBACpB,IAAkE,CAA/CN,EAAM,mBAAzBa,EAAAA,YAAkEE,EAAAA,QAAA,OAAnC,IAAKf,EAAM,IAAM,IAAKA,EAAM,GAAA,wCAC3Da,EAAAA,YAA4DG,EAAAA,QAAA,CAAA,IAAA,GAAA,mBAArC,IAAoB,CAAjBC,EAAAA,gBAAAC,EAAAA,gBAAAlB,EAAM,QAAQ,EAAA,CAAA,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent as p, computed as m, createBlock as e, openBlock as t, normalizeProps as _, guardReactiveProps as x, withCtx as r, createTextVNode as
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { defineComponent as p, computed as m, createBlock as e, openBlock as t, normalizeProps as _, guardReactiveProps as x, withCtx as r, createTextVNode as h, toDisplayString as S } from "vue";
|
|
2
|
+
import w from "../shadcn/Avatar.vue.js";
|
|
3
|
+
import y from "../shadcn/AvatarFallback.vue.js";
|
|
4
4
|
import E from "../shadcn/AvatarImage.vue.js";
|
|
5
5
|
const z = /* @__PURE__ */ p({
|
|
6
6
|
__name: "JAvatar",
|
|
@@ -10,7 +10,7 @@ const z = /* @__PURE__ */ p({
|
|
|
10
10
|
fallback: { default: "?" },
|
|
11
11
|
class: {},
|
|
12
12
|
styletype: { default: "default" },
|
|
13
|
-
size: { default: "
|
|
13
|
+
size: { default: "sm" },
|
|
14
14
|
shape: { default: "circle" },
|
|
15
15
|
status: {}
|
|
16
16
|
},
|
|
@@ -30,6 +30,9 @@ const z = /* @__PURE__ */ p({
|
|
|
30
30
|
class: "bg-red-500 text-white"
|
|
31
31
|
}
|
|
32
32
|
}, o = {
|
|
33
|
+
xs: {
|
|
34
|
+
class: "h-6 w-6 text-[10px]"
|
|
35
|
+
},
|
|
33
36
|
sm: {
|
|
34
37
|
class: "h-8 w-8 text-xs"
|
|
35
38
|
},
|
|
@@ -71,15 +74,15 @@ const z = /* @__PURE__ */ p({
|
|
|
71
74
|
class: [a.class, l.class, d.class, g.class, s.class].filter(Boolean).join(" ")
|
|
72
75
|
};
|
|
73
76
|
});
|
|
74
|
-
return (a, l) => (t(), e(
|
|
77
|
+
return (a, l) => (t(), e(w, _(x(u.value)), {
|
|
75
78
|
default: r(() => [
|
|
76
79
|
s.src ? (t(), e(E, {
|
|
77
80
|
key: 0,
|
|
78
81
|
src: s.src,
|
|
79
82
|
alt: s.alt
|
|
80
|
-
}, null, 8, ["src", "alt"])) : (t(), e(
|
|
83
|
+
}, null, 8, ["src", "alt"])) : (t(), e(y, { key: 1 }, {
|
|
81
84
|
default: r(() => [
|
|
82
|
-
S(
|
|
85
|
+
h(S(s.fallback), 1)
|
|
83
86
|
]),
|
|
84
87
|
_: 1
|
|
85
88
|
}))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JAvatar.vue.js","sources":["../../../../src/components/atoms/JAvatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport Avatar from '@/components/shadcn/Avatar.vue'\r\nimport AvatarFallback from '@/components/shadcn/AvatarFallback.vue'\r\nimport AvatarImage from '@/components/shadcn/AvatarImage.vue'\r\n\r\ntype StyleType =\r\n | 'default' // 기본 스타일\r\n | 'primary' // 강조 스타일 (파랑)\r\n | 'success' // 성공 스타일 (초록)\r\n | 'warning' // 경고 스타일 (주황)\r\n | 'danger' // 위험 스타일 (빨강)\r\n\r\ntype Size = 'sm' | 'md' | 'lg' | 'xl'\
|
|
1
|
+
{"version":3,"file":"JAvatar.vue.js","sources":["../../../../src/components/atoms/JAvatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport Avatar from '@/components/shadcn/Avatar.vue'\r\nimport AvatarFallback from '@/components/shadcn/AvatarFallback.vue'\r\nimport AvatarImage from '@/components/shadcn/AvatarImage.vue'\r\n\r\ntype StyleType =\r\n | 'default' // 기본 스타일\r\n | 'primary' // 강조 스타일 (파랑)\r\n | 'success' // 성공 스타일 (초록)\r\n | 'warning' // 경고 스타일 (주황)\r\n | 'danger' // 위험 스타일 (빨강)\r\n\r\ntype Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\r\ntype Shape = 'circle' | 'square' | 'rounded'\r\n\r\ntype Status = 'online' | 'offline' | 'away' | 'busy'\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n src?: string\r\n alt?: string\r\n fallback?: string\r\n class?: string\r\n /** 스타일 프리셋 */\r\n styletype?: StyleType\r\n /** 아바타 크기 */\r\n size?: Size\r\n /** 아바타 모양 */\r\n shape?: Shape\r\n /** 상태 표시 */\r\n status?: Status\r\n }>(),\r\n {\n alt: '',\n fallback: '?',\n styletype: 'default',\n size: 'sm',\n shape: 'circle',\n },\n)\r\n\r\n/**\r\n * styletype -> class 매핑\r\n */\r\nconst STYLE_PRESETS: Record<StyleType, { class: string }> = {\r\n default: { class: '' },\r\n primary: { \r\n class: 'bg-blue-500 text-white',\r\n },\r\n success: { \r\n class: 'bg-green-500 text-white',\r\n },\r\n warning: { \r\n class: 'bg-amber-500 text-white',\r\n },\r\n danger: { \r\n class: 'bg-red-500 text-white',\r\n },\r\n}\r\n\r\n/**\r\n * size -> class 매핑\r\n */\r\nconst SIZE_PRESETS: Record<Size, { class: string }> = {\n xs: { \n class: 'h-6 w-6 text-[10px]',\n },\n sm: { \n class: 'h-8 w-8 text-xs',\n },\n md: { \n class: 'h-10 w-10 text-sm',\n },\n lg: { \n class: 'h-12 w-12 text-base',\n },\n xl: { \n class: 'h-16 w-16 text-lg',\n },\n}\n\r\n/**\r\n * shape -> class 매핑\r\n */\r\nconst SHAPE_PRESETS: Record<Shape, { class: string }> = {\r\n circle: { \r\n class: 'rounded-full',\r\n },\r\n square: { \r\n class: 'rounded-none',\r\n },\r\n rounded: { \r\n class: 'rounded-lg',\r\n },\r\n}\r\n\r\n/**\r\n * status -> class 매핑\r\n */\r\nconst STATUS_PRESETS: Record<Status, { class: string }> = {\r\n online: { \r\n class: 'ring-2 ring-green-500 ring-offset-2',\r\n },\r\n offline: { \r\n class: 'ring-2 ring-gray-400 ring-offset-2',\r\n },\r\n away: { \r\n class: 'ring-2 ring-yellow-500 ring-offset-2',\r\n },\r\n busy: { \r\n class: 'ring-2 ring-red-500 ring-offset-2',\r\n },\r\n}\r\n\r\n/** 최종 바인딩: 직접 넘긴 class가 있으면 styletype, size, shape, status 기본값과 병합 */\r\nconst mapped = computed(() => {\r\n const stylePreset = STYLE_PRESETS[props.styletype!]\r\n const sizePreset = SIZE_PRESETS[props.size!]\r\n const shapePreset = SHAPE_PRESETS[props.shape!]\r\n const statusPreset = props.status ? STATUS_PRESETS[props.status] : { class: '' }\r\n const finalClass = [stylePreset.class, sizePreset.class, shapePreset.class, statusPreset.class, props.class].filter(Boolean).join(' ')\r\n \r\n return {\r\n class: finalClass,\r\n }\r\n})\r\n</script>\r\n\r\n<template>\r\n <Avatar v-bind=\"mapped\">\r\n <AvatarImage v-if=\"props.src\" :src=\"props.src\" :alt=\"props.alt\" />\r\n <AvatarFallback v-else>{{ props.fallback }}</AvatarFallback>\r\n </Avatar>\r\n</template>\r\n"],"names":["props","__props","STYLE_PRESETS","SIZE_PRESETS","SHAPE_PRESETS","STATUS_PRESETS","mapped","computed","stylePreset","sizePreset","shapePreset","statusPreset","_openBlock","_createBlock","Avatar","AvatarImage","AvatarFallback","_createTextVNode","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,UAAMA,IAAQC,GA2BRC,IAAsD;AAAA,MAC1D,SAAS,EAAE,OAAO,GAAA;AAAA,MAClB,SAAS;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,MAET,SAAS;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,MAET,SAAS;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,MAET,QAAQ;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,IACT,GAMIC,IAAgD;AAAA,MACpD,IAAI;AAAA,QACF,OAAO;AAAA,MAAA;AAAA,MAET,IAAI;AAAA,QACF,OAAO;AAAA,MAAA;AAAA,MAET,IAAI;AAAA,QACF,OAAO;AAAA,MAAA;AAAA,MAET,IAAI;AAAA,QACF,OAAO;AAAA,MAAA;AAAA,MAET,IAAI;AAAA,QACF,OAAO;AAAA,MAAA;AAAA,IACT,GAMIC,IAAkD;AAAA,MACtD,QAAQ;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,QAAQ;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,SAAS;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IACT,GAMIC,IAAoD;AAAA,MACxD,QAAQ;AAAA,QACN,OAAO;AAAA,MAAA;AAAA,MAET,SAAS;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,MAET,MAAM;AAAA,QACJ,OAAO;AAAA,MAAA;AAAA,MAET,MAAM;AAAA,QACJ,OAAO;AAAA,MAAA;AAAA,IACT,GAIIC,IAASC,EAAS,MAAM;AAC5B,YAAMC,IAAcN,EAAcF,EAAM,SAAU,GAC5CS,IAAaN,EAAaH,EAAM,IAAK,GACrCU,IAAcN,EAAcJ,EAAM,KAAM,GACxCW,IAAeX,EAAM,SAASK,EAAeL,EAAM,MAAM,IAAI,EAAE,OAAO,GAAA;AAG5E,aAAO;AAAA,QACL,OAHiB,CAACQ,EAAY,OAAOC,EAAW,OAAOC,EAAY,OAAOC,EAAa,OAAOX,EAAM,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MAG5H;AAAA,IAEX,CAAC;sBAICY,EAAA,GAAAC,EAGSC,OAHOR,EAAA,KAAM,CAAA,GAAA;AAAA,iBACpB,MAAkE;AAAA,QAA/CN,EAAM,YAAzBa,EAAkEE,GAAA;AAAA;UAAnC,KAAKf,EAAM;AAAA,UAAM,KAAKA,EAAM;AAAA,QAAA,qCAC3Da,EAA4DG,GAAA,EAAA,KAAA,KAAA;AAAA,qBAArC,MAAoB;AAAA,YAAjBC,EAAAC,EAAAlB,EAAM,QAAQ,GAAA,CAAA;AAAA,UAAA;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),g=require("../shadcn/Badge.vue.cjs"),
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),g=require("../shadcn/Badge.vue.cjs"),p=e.defineComponent({__name:"JBadge",props:{variant:{default:"default"},class:{},styletype:{default:"default"},size:{default:"sm"}},setup(n){const r=n,o={default:{class:""},primary:{variant:"default",class:"bg-blue-500 text-white hover:bg-blue-600"},success:{variant:"default",class:"bg-green-500 text-white hover:bg-green-600"},warning:{variant:"default",class:"bg-amber-500 text-white hover:bg-amber-600"},danger:{variant:"default",class:"bg-red-500 text-white hover:bg-red-600"}},i={xs:"text-[10px] px-1 py-0.5 leading-tight",sm:"text-xs px-1.5 py-0.5",md:"text-xs px-2 py-1",lg:"text-sm px-2.5 py-1"},u=e.computed(()=>{const t=o[r.styletype],l=i[r.size],s=r.variant||t.variant;let a="";s==="outline"?a=d(r.styletype):s==="secondary"?a="bg-gray-100 text-gray-800 hover:bg-gray-200":s==="destructive"?a="bg-red-500 text-white hover:bg-red-600":a=t.class;const c=[a,l,r.class].filter(Boolean).join(" ");return{variant:s,class:c}}),d=t=>({default:"border-gray-300 text-gray-700",primary:"border-blue-500 text-blue-600",success:"border-green-500 text-green-600",warning:"border-amber-500 text-amber-600",danger:"border-red-500 text-red-600"})[t]||"";return(t,l)=>(e.openBlock(),e.createBlock(g.default,e.normalizeProps(e.guardReactiveProps(u.value)),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16))}});exports.default=p;
|
|
2
2
|
//# sourceMappingURL=JBadge.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JBadge.vue.cjs","sources":["../../../../src/components/atoms/JBadge.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport Badge from '@/components/shadcn/Badge.vue'\r\n\r\ntype StyleType =\r\n | 'default' // 기본 스타일\r\n | 'primary' // 강조 스타일 (파랑)\r\n | 'success' // 성공 스타일 (초록)\r\n | 'warning' // 경고 스타일 (주황)\r\n | 'danger' // 위험 스타일 (빨강)\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n variant?: 'default' | 'secondary' | 'destructive' | 'outline'\r\n class?: string\r\n /** 스타일 프리셋 */\r\n styletype?: StyleType\r\n /** 배지 크기 */\
|
|
1
|
+
{"version":3,"file":"JBadge.vue.cjs","sources":["../../../../src/components/atoms/JBadge.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport Badge from '@/components/shadcn/Badge.vue'\r\n\r\ntype StyleType =\r\n | 'default' // 기본 스타일\r\n | 'primary' // 강조 스타일 (파랑)\r\n | 'success' // 성공 스타일 (초록)\r\n | 'warning' // 경고 스타일 (주황)\r\n | 'danger' // 위험 스타일 (빨강)\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n variant?: 'default' | 'secondary' | 'destructive' | 'outline'\r\n class?: string\r\n /** 스타일 프리셋 */\r\n styletype?: StyleType\r\n /** 배지 크기 */\n size?: 'xs' | 'sm' | 'md' | 'lg'\n }>(),\r\n {\n variant: 'default',\n styletype: 'default',\n size: 'sm',\n },\n)\r\n\r\n/**\r\n * styletype -> variant, class 매핑\r\n */\r\nconst STYLE_PRESETS: Record<StyleType, { variant?: string; class: string }> = {\r\n default: { class: '' },\r\n primary: { \r\n variant: 'default',\r\n class: 'bg-blue-500 text-white hover:bg-blue-600',\r\n },\r\n success: { \r\n variant: 'default',\r\n class: 'bg-green-500 text-white hover:bg-green-600',\r\n },\r\n warning: { \r\n variant: 'default',\r\n class: 'bg-amber-500 text-white hover:bg-amber-600',\r\n },\r\n danger: { \r\n variant: 'default',\r\n class: 'bg-red-500 text-white hover:bg-red-600',\r\n },\r\n}\r\n\r\n/**\r\n * size -> class 매핑\r\n */\r\nconst SIZE_PRESETS: Record<'xs' | 'sm' | 'md' | 'lg', string> = {\n xs: 'text-[10px] px-1 py-0.5 leading-tight',\n sm: 'text-xs px-1.5 py-0.5',\n md: 'text-xs px-2 py-1',\n lg: 'text-sm px-2.5 py-1',\n}\n\r\n/** 최종 바인딩: 직접 넘긴 props가 있으면 styletype 기본값과 병합 */\r\nconst mapped = computed(() => {\r\n const preset = STYLE_PRESETS[props.styletype!]\r\n const sizeClass = SIZE_PRESETS[props.size!]\r\n \r\n const finalVariant = props.variant || preset.variant\r\n let styleClass = ''\r\n \r\n // variant에 따른 스타일 처리\r\n if (finalVariant === 'outline') {\r\n // outline: 테두리 색상만 적용 (styletype 색상 사용)\r\n styleClass = getOutlineStyleClass(props.styletype!)\r\n } else if (finalVariant === 'secondary') {\r\n // secondary: 고정된 회색 계열 스타일 (styletype 무시)\r\n styleClass = 'bg-gray-100 text-gray-800 hover:bg-gray-200'\r\n } else if (finalVariant === 'destructive') {\r\n // destructive: 고정된 빨간색 계열 스타일 (styletype 무시)\r\n styleClass = 'bg-red-500 text-white hover:bg-red-600'\r\n } else {\r\n // default: styletype의 배경색 스타일 적용\r\n styleClass = preset.class\r\n }\r\n \r\n const finalClass = [styleClass, sizeClass, props.class].filter(Boolean).join(' ')\r\n \r\n return {\r\n variant: finalVariant,\r\n class: finalClass,\r\n }\r\n})\r\n\r\n/**\r\n * outline variant용 스타일 클래스\r\n */\r\nconst getOutlineStyleClass = (styletype: StyleType): string => {\r\n const outlineStyles: Record<StyleType, string> = {\r\n default: 'border-gray-300 text-gray-700',\r\n primary: 'border-blue-500 text-blue-600',\r\n success: 'border-green-500 text-green-600',\r\n warning: 'border-amber-500 text-amber-600',\r\n danger: 'border-red-500 text-red-600',\r\n }\r\n return outlineStyles[styletype] || ''\r\n}\r\n</script>\r\n\r\n<template>\r\n <Badge v-bind=\"mapped\">\r\n <slot />\r\n </Badge>\r\n</template>\r\n"],"names":["props","__props","STYLE_PRESETS","SIZE_PRESETS","mapped","computed","preset","sizeClass","finalVariant","styleClass","getOutlineStyleClass","finalClass","styletype","_openBlock","_createBlock","Badge","_renderSlot","_ctx"],"mappings":"qTAWA,MAAMA,EAAQC,EAmBRC,EAAwE,CAC5E,QAAS,CAAE,MAAO,EAAA,EAClB,QAAS,CACP,QAAS,UACT,MAAO,0CAAA,EAET,QAAS,CACP,QAAS,UACT,MAAO,4CAAA,EAET,QAAS,CACP,QAAS,UACT,MAAO,4CAAA,EAET,OAAQ,CACN,QAAS,UACT,MAAO,wCAAA,CACT,EAMIC,EAA0D,CAC9D,GAAI,wCACJ,GAAI,wBACJ,GAAI,oBACJ,GAAI,qBAAA,EAIAC,EAASC,EAAAA,SAAS,IAAM,CAC5B,MAAMC,EAASJ,EAAcF,EAAM,SAAU,EACvCO,EAAYJ,EAAaH,EAAM,IAAK,EAEpCQ,EAAeR,EAAM,SAAWM,EAAO,QAC7C,IAAIG,EAAa,GAGbD,IAAiB,UAEnBC,EAAaC,EAAqBV,EAAM,SAAU,EACzCQ,IAAiB,YAE1BC,EAAa,8CACJD,IAAiB,cAE1BC,EAAa,yCAGbA,EAAaH,EAAO,MAGtB,MAAMK,EAAa,CAACF,EAAYF,EAAWP,EAAM,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAEhF,MAAO,CACL,QAASQ,EACT,MAAOG,CAAA,CAEX,CAAC,EAKKD,EAAwBE,IACqB,CAC/C,QAAS,gCACT,QAAS,gCACT,QAAS,kCACT,QAAS,kCACT,OAAQ,6BAAA,GAEWA,CAAS,GAAK,iBAKnCC,EAAAA,UAAA,EAAAC,EAAAA,YAEQC,EAAAA,8CAFOX,EAAA,KAAM,CAAA,EAAA,mBACnB,IAAQ,CAARY,aAAQC,EAAA,OAAA,SAAA,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as u, computed as g, createBlock as p, openBlock as b, normalizeProps as f, guardReactiveProps as
|
|
1
|
+
import { defineComponent as u, computed as g, createBlock as p, openBlock as b, normalizeProps as f, guardReactiveProps as x, withCtx as y, renderSlot as m } from "vue";
|
|
2
2
|
import v from "../shadcn/Badge.vue.js";
|
|
3
3
|
const _ = /* @__PURE__ */ u({
|
|
4
4
|
__name: "JBadge",
|
|
@@ -6,7 +6,7 @@ const _ = /* @__PURE__ */ u({
|
|
|
6
6
|
variant: { default: "default" },
|
|
7
7
|
class: {},
|
|
8
8
|
styletype: { default: "default" },
|
|
9
|
-
size: { default: "
|
|
9
|
+
size: { default: "sm" }
|
|
10
10
|
},
|
|
11
11
|
setup(l) {
|
|
12
12
|
const t = l, n = {
|
|
@@ -28,9 +28,10 @@ const _ = /* @__PURE__ */ u({
|
|
|
28
28
|
class: "bg-red-500 text-white hover:bg-red-600"
|
|
29
29
|
}
|
|
30
30
|
}, o = {
|
|
31
|
+
xs: "text-[10px] px-1 py-0.5 leading-tight",
|
|
31
32
|
sm: "text-xs px-1.5 py-0.5",
|
|
32
|
-
md: "text-
|
|
33
|
-
lg: "text-
|
|
33
|
+
md: "text-xs px-2 py-1",
|
|
34
|
+
lg: "text-sm px-2.5 py-1"
|
|
34
35
|
}, i = g(() => {
|
|
35
36
|
const e = n[t.styletype], s = o[t.size], a = t.variant || e.variant;
|
|
36
37
|
let r = "";
|
|
@@ -47,9 +48,9 @@ const _ = /* @__PURE__ */ u({
|
|
|
47
48
|
warning: "border-amber-500 text-amber-600",
|
|
48
49
|
danger: "border-red-500 text-red-600"
|
|
49
50
|
})[e] || "";
|
|
50
|
-
return (e, s) => (b(), p(v, f(
|
|
51
|
+
return (e, s) => (b(), p(v, f(x(i.value)), {
|
|
51
52
|
default: y(() => [
|
|
52
|
-
|
|
53
|
+
m(e.$slots, "default")
|
|
53
54
|
]),
|
|
54
55
|
_: 3
|
|
55
56
|
}, 16));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JBadge.vue.js","sources":["../../../../src/components/atoms/JBadge.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport Badge from '@/components/shadcn/Badge.vue'\r\n\r\ntype StyleType =\r\n | 'default' // 기본 스타일\r\n | 'primary' // 강조 스타일 (파랑)\r\n | 'success' // 성공 스타일 (초록)\r\n | 'warning' // 경고 스타일 (주황)\r\n | 'danger' // 위험 스타일 (빨강)\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n variant?: 'default' | 'secondary' | 'destructive' | 'outline'\r\n class?: string\r\n /** 스타일 프리셋 */\r\n styletype?: StyleType\r\n /** 배지 크기 */\
|
|
1
|
+
{"version":3,"file":"JBadge.vue.js","sources":["../../../../src/components/atoms/JBadge.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport Badge from '@/components/shadcn/Badge.vue'\r\n\r\ntype StyleType =\r\n | 'default' // 기본 스타일\r\n | 'primary' // 강조 스타일 (파랑)\r\n | 'success' // 성공 스타일 (초록)\r\n | 'warning' // 경고 스타일 (주황)\r\n | 'danger' // 위험 스타일 (빨강)\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n variant?: 'default' | 'secondary' | 'destructive' | 'outline'\r\n class?: string\r\n /** 스타일 프리셋 */\r\n styletype?: StyleType\r\n /** 배지 크기 */\n size?: 'xs' | 'sm' | 'md' | 'lg'\n }>(),\r\n {\n variant: 'default',\n styletype: 'default',\n size: 'sm',\n },\n)\r\n\r\n/**\r\n * styletype -> variant, class 매핑\r\n */\r\nconst STYLE_PRESETS: Record<StyleType, { variant?: string; class: string }> = {\r\n default: { class: '' },\r\n primary: { \r\n variant: 'default',\r\n class: 'bg-blue-500 text-white hover:bg-blue-600',\r\n },\r\n success: { \r\n variant: 'default',\r\n class: 'bg-green-500 text-white hover:bg-green-600',\r\n },\r\n warning: { \r\n variant: 'default',\r\n class: 'bg-amber-500 text-white hover:bg-amber-600',\r\n },\r\n danger: { \r\n variant: 'default',\r\n class: 'bg-red-500 text-white hover:bg-red-600',\r\n },\r\n}\r\n\r\n/**\r\n * size -> class 매핑\r\n */\r\nconst SIZE_PRESETS: Record<'xs' | 'sm' | 'md' | 'lg', string> = {\n xs: 'text-[10px] px-1 py-0.5 leading-tight',\n sm: 'text-xs px-1.5 py-0.5',\n md: 'text-xs px-2 py-1',\n lg: 'text-sm px-2.5 py-1',\n}\n\r\n/** 최종 바인딩: 직접 넘긴 props가 있으면 styletype 기본값과 병합 */\r\nconst mapped = computed(() => {\r\n const preset = STYLE_PRESETS[props.styletype!]\r\n const sizeClass = SIZE_PRESETS[props.size!]\r\n \r\n const finalVariant = props.variant || preset.variant\r\n let styleClass = ''\r\n \r\n // variant에 따른 스타일 처리\r\n if (finalVariant === 'outline') {\r\n // outline: 테두리 색상만 적용 (styletype 색상 사용)\r\n styleClass = getOutlineStyleClass(props.styletype!)\r\n } else if (finalVariant === 'secondary') {\r\n // secondary: 고정된 회색 계열 스타일 (styletype 무시)\r\n styleClass = 'bg-gray-100 text-gray-800 hover:bg-gray-200'\r\n } else if (finalVariant === 'destructive') {\r\n // destructive: 고정된 빨간색 계열 스타일 (styletype 무시)\r\n styleClass = 'bg-red-500 text-white hover:bg-red-600'\r\n } else {\r\n // default: styletype의 배경색 스타일 적용\r\n styleClass = preset.class\r\n }\r\n \r\n const finalClass = [styleClass, sizeClass, props.class].filter(Boolean).join(' ')\r\n \r\n return {\r\n variant: finalVariant,\r\n class: finalClass,\r\n }\r\n})\r\n\r\n/**\r\n * outline variant용 스타일 클래스\r\n */\r\nconst getOutlineStyleClass = (styletype: StyleType): string => {\r\n const outlineStyles: Record<StyleType, string> = {\r\n default: 'border-gray-300 text-gray-700',\r\n primary: 'border-blue-500 text-blue-600',\r\n success: 'border-green-500 text-green-600',\r\n warning: 'border-amber-500 text-amber-600',\r\n danger: 'border-red-500 text-red-600',\r\n }\r\n return outlineStyles[styletype] || ''\r\n}\r\n</script>\r\n\r\n<template>\r\n <Badge v-bind=\"mapped\">\r\n <slot />\r\n </Badge>\r\n</template>\r\n"],"names":["props","__props","STYLE_PRESETS","SIZE_PRESETS","mapped","computed","preset","sizeClass","finalVariant","styleClass","getOutlineStyleClass","finalClass","styletype","_openBlock","_createBlock","Badge","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;AAWA,UAAMA,IAAQC,GAmBRC,IAAwE;AAAA,MAC5E,SAAS,EAAE,OAAO,GAAA;AAAA,MAClB,SAAS;AAAA,QACP,SAAS;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,MAET,SAAS;AAAA,QACP,SAAS;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,MAET,SAAS;AAAA,QACP,SAAS;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,MAET,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,IACT,GAMIC,IAA0D;AAAA,MAC9D,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAIAC,IAASC,EAAS,MAAM;AAC5B,YAAMC,IAASJ,EAAcF,EAAM,SAAU,GACvCO,IAAYJ,EAAaH,EAAM,IAAK,GAEpCQ,IAAeR,EAAM,WAAWM,EAAO;AAC7C,UAAIG,IAAa;AAGjB,MAAID,MAAiB,YAEnBC,IAAaC,EAAqBV,EAAM,SAAU,IACzCQ,MAAiB,cAE1BC,IAAa,gDACJD,MAAiB,gBAE1BC,IAAa,2CAGbA,IAAaH,EAAO;AAGtB,YAAMK,IAAa,CAACF,GAAYF,GAAWP,EAAM,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAEhF,aAAO;AAAA,QACL,SAASQ;AAAA,QACT,OAAOG;AAAA,MAAA;AAAA,IAEX,CAAC,GAKKD,IAAuB,CAACE,OACqB;AAAA,MAC/C,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,IAAA,GAEWA,CAAS,KAAK;sBAKnCC,EAAA,GAAAC,EAEQC,OAFOX,EAAA,KAAM,CAAA,GAAA;AAAA,iBACnB,MAAQ;AAAA,QAARY,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./JButton.vue2.cjs");;/* empty css */const t = (t_comp, t_opts) => {
|
|
2
|
+
const t_merged = t_comp.__vccOpts || t_comp;
|
|
3
|
+
for (const [t_key, t_val] of t_opts)
|
|
4
|
+
t_merged[t_key] = t_val;
|
|
5
|
+
return t_merged;
|
|
6
|
+
};,u=t(e.default,[["__scopeId","data-v-90794cf0"]]);exports.default=u;
|
|
2
7
|
//# sourceMappingURL=JButton.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JButton.vue.cjs","sources":[
|
|
1
|
+
{"version":3,"file":"JButton.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,88 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
loading: { type: Boolean, default: !1 },
|
|
11
|
-
variant: {},
|
|
12
|
-
size: {},
|
|
13
|
-
class: {},
|
|
14
|
-
styletype: { default: "default" }
|
|
15
|
-
},
|
|
16
|
-
emits: ["click"],
|
|
17
|
-
setup(l, { emit: d }) {
|
|
18
|
-
const a = l, u = d, i = {
|
|
19
|
-
default: {
|
|
20
|
-
variant: "default"
|
|
21
|
-
},
|
|
22
|
-
primary: {
|
|
23
|
-
variant: "default"
|
|
24
|
-
},
|
|
25
|
-
secondary: {
|
|
26
|
-
variant: "secondary"
|
|
27
|
-
},
|
|
28
|
-
success: {
|
|
29
|
-
variant: "default",
|
|
30
|
-
class: "bg-green-600 hover:bg-green-700"
|
|
31
|
-
},
|
|
32
|
-
warning: {
|
|
33
|
-
variant: "default",
|
|
34
|
-
class: "bg-amber-500 hover:bg-amber-600"
|
|
35
|
-
},
|
|
36
|
-
danger: {
|
|
37
|
-
variant: "destructive"
|
|
38
|
-
},
|
|
39
|
-
outline: {
|
|
40
|
-
variant: "outline"
|
|
41
|
-
},
|
|
42
|
-
ghost: {
|
|
43
|
-
variant: "ghost"
|
|
44
|
-
},
|
|
45
|
-
link: {
|
|
46
|
-
variant: "link"
|
|
47
|
-
},
|
|
48
|
-
sm: {
|
|
49
|
-
variant: "default",
|
|
50
|
-
size: "sm"
|
|
51
|
-
},
|
|
52
|
-
lg: {
|
|
53
|
-
variant: "default",
|
|
54
|
-
size: "lg"
|
|
55
|
-
},
|
|
56
|
-
icon: {
|
|
57
|
-
variant: "default",
|
|
58
|
-
size: "icon"
|
|
59
|
-
}
|
|
60
|
-
}, n = t(() => {
|
|
61
|
-
const e = a.styletype || "default";
|
|
62
|
-
return i[e] ?? i.default;
|
|
63
|
-
}), f = t(() => a.variant || n.value?.variant), v = t(() => a.size || n.value?.size || "default"), m = t(() => [n.value?.class, a.class].filter(Boolean).join(" ")), s = t(() => a.disabled || a.loading), p = (e) => {
|
|
64
|
-
s.value || u("click", e);
|
|
65
|
-
};
|
|
66
|
-
return (e, B) => (o(), r(c(C), {
|
|
67
|
-
type: l.type,
|
|
68
|
-
variant: f.value,
|
|
69
|
-
size: v.value,
|
|
70
|
-
class: g(m.value),
|
|
71
|
-
disabled: s.value,
|
|
72
|
-
onClick: p
|
|
73
|
-
}, {
|
|
74
|
-
default: b(() => [
|
|
75
|
-
l.loading ? (o(), r(c(h), {
|
|
76
|
-
key: 0,
|
|
77
|
-
class: "mr-2 h-4 w-4 animate-spin"
|
|
78
|
-
})) : z("", !0),
|
|
79
|
-
k(e.$slots, "default")
|
|
80
|
-
]),
|
|
81
|
-
_: 3
|
|
82
|
-
}, 8, ["type", "variant", "size", "class", "disabled"]));
|
|
83
|
-
}
|
|
84
|
-
});
|
|
1
|
+
import o from "./JButton.vue2.js";
|
|
2
|
+
/* empty css */
|
|
3
|
+
const t = (t_comp, t_opts) => {
|
|
4
|
+
const t_merged = t_comp.__vccOpts || t_comp;
|
|
5
|
+
for (const [t_key, t_val] of t_opts)
|
|
6
|
+
t_merged[t_key] = t_val;
|
|
7
|
+
return t_merged;
|
|
8
|
+
};
|
|
9
|
+
const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-90794cf0"]]);
|
|
85
10
|
export {
|
|
86
|
-
|
|
11
|
+
p as default
|
|
87
12
|
};
|
|
88
13
|
//# sourceMappingURL=JButton.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JButton.vue.js","sources":[
|
|
1
|
+
{"version":3,"file":"JButton.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),f=require("lucide-vue-next");require("../shadcn/index.cjs");const p=require("../shadcn/Button.vue.cjs"),m=e.defineComponent({__name:"JButton",props:{type:{default:"button"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},variant:{},size:{},class:{},styletype:{default:"default"}},emits:["click"],setup(l,{emit:r}){const t=l,u=r,s={default:{variant:"default"},primary:{variant:"default"},secondary:{variant:"secondary"},success:{variant:"default",class:"bg-green-600 hover:bg-green-700"},warning:{variant:"default",class:"bg-amber-500 hover:bg-amber-600"},danger:{variant:"destructive"},outline:{variant:"outline"},ghost:{variant:"ghost"},link:{variant:"link"},sm:{variant:"default",size:"sm"},lg:{variant:"default",size:"lg"},icon:{variant:"default",size:"icon"}},n=e.computed(()=>{const a=t.styletype||"default";return s[a]??s.default}),o=e.computed(()=>t.variant||n.value?.variant),c=e.computed(()=>t.size||n.value?.size||"sm"),d=e.computed(()=>[n.value?.class,t.class].filter(Boolean).join(" ")),i=e.computed(()=>t.disabled||t.loading),v=a=>{i.value||u("click",a)};return(a,g)=>(e.openBlock(),e.createBlock(e.unref(p.default),{type:l.type,variant:o.value,size:c.value,class:e.normalizeClass(d.value),disabled:i.value,onClick:v},{default:e.withCtx(()=>[l.loading?(e.openBlock(),e.createBlock(e.unref(f.Loader2),{key:0,class:"mr-2 h-4 w-4 animate-spin"})):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default",{},void 0,!0)]),_:3},8,["type","variant","size","class","disabled"]))}});exports.default=m;
|
|
2
2
|
//# sourceMappingURL=JButton.vue2.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JButton.vue2.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"JButton.vue2.cjs","sources":["../../../../src/components/atoms/JButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport { Loader2 } from 'lucide-vue-next'\r\nimport { Button, type ButtonVariants } from '@/components/shadcn'\r\n\r\ntype StyleType =\r\n | 'default' // 기본 스타일 (primary)\r\n | 'primary' // 강조 버튼 (파랑)\r\n | 'secondary' // 보조 버튼 (회색)\r\n | 'success' // 성공 버튼 (초록)\r\n | 'warning' // 경고 버튼 (주황)\r\n | 'danger' // 위험 버튼 (빨강)\r\n | 'outline' // 아웃라인 버튼\r\n | 'ghost' // 고스트 버튼\r\n | 'link' // 링크 스타일\r\n | 'sm' // 작은 크기\r\n | 'lg' // 큰 크기\r\n | 'icon' // 아이콘 전용\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /** 버튼 타입 */\r\n type?: 'button' | 'submit' | 'reset'\r\n /** 비활성화 상태 */\r\n disabled?: boolean\r\n /** 로딩 상태 */\r\n loading?: boolean\r\n /** shadcn variant */\r\n variant?: ButtonVariants['variant']\r\n /** shadcn size */\r\n size?: ButtonVariants['size']\r\n /** 추가 CSS 클래스 */\r\n class?: string\r\n /** 스타일 프리셋 (variant + size 조합) */\r\n styletype?: StyleType\r\n }>(),\r\n {\r\n type: 'button',\r\n disabled: false,\r\n loading: false,\r\n styletype: 'default',\r\n },\r\n)\r\n\r\nconst emit = defineEmits<{\r\n click: [event: MouseEvent]\r\n}>()\r\n\r\n/**\r\n * styletype -> variant/size 매핑\r\n */\r\nconst STYLE_PRESETS: Record<StyleType, { variant: ButtonVariants['variant']; size?: ButtonVariants['size']; class?: string }> = {\r\n default: { \r\n variant: 'default',\r\n },\r\n primary: { \r\n variant: 'default',\r\n },\r\n secondary: { \r\n variant: 'secondary',\r\n },\r\n success: { \r\n variant: 'default',\r\n class: 'bg-green-600 hover:bg-green-700',\r\n },\r\n warning: { \r\n variant: 'default',\r\n class: 'bg-amber-500 hover:bg-amber-600',\r\n },\r\n danger: { \r\n variant: 'destructive',\r\n },\r\n outline: { \r\n variant: 'outline',\r\n },\r\n ghost: { \r\n variant: 'ghost',\r\n },\r\n link: { \r\n variant: 'link',\r\n },\r\n sm: { \r\n variant: 'default',\r\n size: 'sm',\r\n },\r\n lg: { \r\n variant: 'default',\r\n size: 'lg',\r\n },\r\n icon: { \r\n variant: 'default',\r\n size: 'icon',\r\n },\r\n}\r\n\r\nconst preset = computed(() => {\r\n const styleKey = props.styletype || 'default'\r\n return STYLE_PRESETS[styleKey] ?? STYLE_PRESETS.default\r\n})\r\n\r\nconst finalVariant = computed(() => props.variant || preset.value?.variant)\nconst finalSize = computed(() => props.size || preset.value?.size || 'sm')\nconst finalClass = computed(() => [preset.value?.class, props.class].filter(Boolean).join(' '))\n\r\nconst isDisabled = computed(() => props.disabled || props.loading)\r\n\r\nconst handleClick = (event: MouseEvent) => {\r\n if (!isDisabled.value) {\r\n emit('click', event)\r\n }\r\n}\r\n</script>\r\n\r\n<template>\r\n <Button\n :type=\"type\"\n :variant=\"finalVariant\"\n :size=\"finalSize\"\n :class=\"finalClass\"\n :disabled=\"isDisabled\"\n @click=\"handleClick\"\n >\n <Loader2 v-if=\"loading\" class=\"mr-2 h-4 w-4 animate-spin\" />\n <slot />\n </Button>\n</template>\n\n<style scoped>\n/* ========================================\n 패턴 10: Button 향상 효과\n ======================================== */\n:deep(button) {\n transition: all 0.2s ease;\n}\n\n:deep(button:not(:disabled):hover) {\n transform: translateY(-1px);\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n}\n\n:deep(button:not(:disabled):active) {\n transform: translateY(0);\n}\n</style>\n"],"names":["props","__props","emit","__emit","STYLE_PRESETS","preset","computed","styleKey","finalVariant","finalSize","finalClass","isDisabled","handleClick","event","_createBlock","_unref","Button","Loader2","_renderSlot","_ctx"],"mappings":"kdAmBA,MAAMA,EAAQC,EAyBRC,EAAOC,EAOPC,EAA0H,CAC9H,QAAS,CACP,QAAS,SAAA,EAEX,QAAS,CACP,QAAS,SAAA,EAEX,UAAW,CACT,QAAS,WAAA,EAEX,QAAS,CACP,QAAS,UACT,MAAO,iCAAA,EAET,QAAS,CACP,QAAS,UACT,MAAO,iCAAA,EAET,OAAQ,CACN,QAAS,aAAA,EAEX,QAAS,CACP,QAAS,SAAA,EAEX,MAAO,CACL,QAAS,OAAA,EAEX,KAAM,CACJ,QAAS,MAAA,EAEX,GAAI,CACF,QAAS,UACT,KAAM,IAAA,EAER,GAAI,CACF,QAAS,UACT,KAAM,IAAA,EAER,KAAM,CACJ,QAAS,UACT,KAAM,MAAA,CACR,EAGIC,EAASC,EAAAA,SAAS,IAAM,CAC5B,MAAMC,EAAWP,EAAM,WAAa,UACpC,OAAOI,EAAcG,CAAQ,GAAKH,EAAc,OAClD,CAAC,EAEKI,EAAeF,EAAAA,SAAS,IAAMN,EAAM,SAAWK,EAAO,OAAO,OAAO,EACpEI,EAAYH,EAAAA,SAAS,IAAMN,EAAM,MAAQK,EAAO,OAAO,MAAQ,IAAI,EACnEK,EAAaJ,EAAAA,SAAS,IAAM,CAACD,EAAO,OAAO,MAAOL,EAAM,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,CAAC,EAExFW,EAAaL,EAAAA,SAAS,IAAMN,EAAM,UAAYA,EAAM,OAAO,EAE3DY,EAAeC,GAAsB,CACpCF,EAAW,OACdT,EAAK,QAASW,CAAK,CAEvB,8BAIEC,EAAAA,YAUSC,EAAAA,MAAAC,EAAAA,OAAA,EAAA,CATN,KAAMf,EAAA,KACN,QAASO,EAAA,MACT,KAAMC,EAAA,MACN,uBAAOC,EAAA,KAAU,EACjB,SAAUC,EAAA,MACV,QAAOC,CAAA,qBAER,IAA4D,CAA7CX,EAAA,uBAAfa,EAAAA,YAA4DC,EAAAA,MAAAE,EAAAA,OAAA,EAAA,OAApC,MAAM,2BAAA,gCAC9BC,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA"}
|