pukaad-ui-lib 1.379.0 → 1.381.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/dist/module.json +1 -1
- package/dist/runtime/assets/css/core.css +1 -1
- package/dist/runtime/components/button.d.vue.ts +1 -1
- package/dist/runtime/components/button.vue.d.ts +1 -1
- package/dist/runtime/components/card/card-content/card-content-image.d.vue.ts +7 -0
- package/dist/runtime/components/card/card-content/card-content-image.vue +29 -0
- package/dist/runtime/components/card/card-content/card-content-image.vue.d.ts +7 -0
- package/dist/runtime/components/card/card-content/card-content-menu.d.vue.ts +18 -0
- package/dist/runtime/components/card/card-content/card-content-menu.vue +50 -0
- package/dist/runtime/components/card/card-content/card-content-menu.vue.d.ts +18 -0
- package/dist/runtime/components/card/card-content/card-content-post-it.d.vue.ts +7 -0
- package/dist/runtime/components/card/card-content/card-content-post-it.vue +29 -0
- package/dist/runtime/components/card/card-content/card-content-post-it.vue.d.ts +7 -0
- package/dist/runtime/components/card/card-content/card-content-select.d.vue.ts +10 -0
- package/dist/runtime/components/card/card-content/card-content-select.vue +15 -0
- package/dist/runtime/components/card/card-content/card-content-select.vue.d.ts +10 -0
- package/dist/runtime/components/card/card-content/card-content-time.d.vue.ts +7 -0
- package/dist/runtime/components/card/card-content/card-content-time.vue +48 -0
- package/dist/runtime/components/card/card-content/card-content-time.vue.d.ts +7 -0
- package/dist/runtime/components/card/card-content/card-content-video.d.vue.ts +7 -0
- package/dist/runtime/components/card/card-content/card-content-video.vue +33 -0
- package/dist/runtime/components/card/card-content/card-content-video.vue.d.ts +7 -0
- package/dist/runtime/components/card/card-content/card-content.d.vue.ts +21 -0
- package/dist/runtime/components/card/card-content/card-content.vue +75 -0
- package/dist/runtime/components/card/card-content/card-content.vue.d.ts +21 -0
- package/dist/runtime/components/card/{card-place-item.vue → card-place/card-place-item.vue} +1 -1
- package/dist/runtime/components/card/{card-place.vue → card-place/card-place.vue} +1 -1
- package/dist/runtime/components/card/card-reaction.d.vue.ts +2 -2
- package/dist/runtime/components/card/card-reaction.vue.d.ts +2 -2
- package/dist/runtime/components/card/{card-user-blog.vue → card-user/card-user-blog.vue} +1 -1
- package/dist/runtime/components/card/{card-user-item.vue → card-user/card-user-item.vue} +1 -1
- package/dist/runtime/components/drawer/drawer-post-blog.vue +27 -26
- package/dist/runtime/components/drawer/drawer-post-content.d.vue.ts +46 -0
- package/dist/runtime/components/drawer/drawer-post-content.vue +449 -0
- package/dist/runtime/components/drawer/drawer-post-content.vue.d.ts +46 -0
- package/dist/runtime/components/input/input-address.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-address.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-checkbox.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-checkbox.vue +21 -16
- package/dist/runtime/components/input/input-checkbox.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-combobox.d.vue.ts +6 -1
- package/dist/runtime/components/input/input-combobox.vue +15 -7
- package/dist/runtime/components/input/input-combobox.vue.d.ts +6 -1
- package/dist/runtime/components/input/input-file.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-file.vue +12 -2
- package/dist/runtime/components/input/input-file.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-link.vue +4 -5
- package/dist/runtime/components/input/input-localized-name.d.vue.ts +1 -0
- package/dist/runtime/components/input/input-localized-name.vue +6 -5
- package/dist/runtime/components/input/input-localized-name.vue.d.ts +1 -0
- package/dist/runtime/components/input/input-mention.d.vue.ts +28 -0
- package/dist/runtime/components/input/input-mention.vue +383 -0
- package/dist/runtime/components/input/input-mention.vue.d.ts +28 -0
- package/dist/runtime/components/input/input-password.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-password.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-search.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-search.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-select-place.d.vue.ts +25 -0
- package/dist/runtime/components/input/input-select-place.vue +193 -0
- package/dist/runtime/components/input/input-select-place.vue.d.ts +25 -0
- package/dist/runtime/components/input/input-text-field.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-text-field.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-textarea.d.vue.ts +1 -1
- package/dist/runtime/components/input/input-textarea.vue +4 -2
- package/dist/runtime/components/input/input-textarea.vue.d.ts +1 -1
- package/dist/runtime/components/input/input-typed-field.d.vue.ts +3 -0
- package/dist/runtime/components/input/input-typed-field.vue +47 -34
- package/dist/runtime/components/input/input-typed-field.vue.d.ts +3 -0
- package/dist/runtime/components/modal/modal-password-confirmed.d.vue.ts +1 -1
- package/dist/runtime/components/modal/modal-password-confirmed.vue.d.ts +1 -1
- package/dist/runtime/components/modal/modal-password-verify.d.vue.ts +1 -1
- package/dist/runtime/components/modal/modal-password-verify.vue.d.ts +1 -1
- package/dist/runtime/components/picker/picker-option-menu/picker-option-menu.d.vue.ts +1 -1
- package/dist/runtime/components/picker/picker-option-menu/picker-option-menu.vue.d.ts +1 -1
- package/dist/runtime/components/ui/button/index.d.ts +1 -1
- package/dist/runtime/components/ui/button/index.js +8 -1
- package/dist/runtime/components/ui/carousel/CarouselNext.d.vue.ts +1 -1
- package/dist/runtime/components/ui/carousel/CarouselNext.vue.d.ts +1 -1
- package/dist/runtime/components/ui/carousel/CarouselPrevious.d.vue.ts +1 -1
- package/dist/runtime/components/ui/carousel/CarouselPrevious.vue.d.ts +1 -1
- package/dist/runtime/components/ui/input-group/InputGroupButton.d.vue.ts +1 -1
- package/dist/runtime/components/ui/input-group/InputGroupButton.vue.d.ts +1 -1
- package/dist/runtime/components/ui/native-select/NativeSelectOptGroup.d.vue.ts +2 -2
- package/dist/runtime/components/ui/native-select/NativeSelectOptGroup.vue.d.ts +2 -2
- package/dist/runtime/components/ui/native-select/NativeSelectOption.d.vue.ts +2 -2
- package/dist/runtime/components/ui/native-select/NativeSelectOption.vue.d.ts +2 -2
- package/package.json +1 -1
- package/dist/runtime/components/card/card-announce2.d.vue.ts +0 -32
- package/dist/runtime/components/card/card-announce2.vue +0 -135
- package/dist/runtime/components/card/card-announce2.vue.d.ts +0 -32
- package/dist/runtime/components/label/label-announce-time.d.vue.ts +0 -3
- package/dist/runtime/components/label/label-announce-time.vue +0 -15
- package/dist/runtime/components/label/label-announce-time.vue.d.ts +0 -3
- package/dist/runtime/components/card/{card-place-detail.d.vue.ts → card-place/card-place-detail.d.vue.ts} +0 -0
- package/dist/runtime/components/card/{card-place-detail.vue → card-place/card-place-detail.vue} +0 -0
- package/dist/runtime/components/card/{card-place-detail.vue.d.ts → card-place/card-place-detail.vue.d.ts} +0 -0
- package/dist/runtime/components/card/{card-place-item.d.vue.ts → card-place/card-place-item.d.vue.ts} +0 -0
- package/dist/runtime/components/card/{card-place-item.vue.d.ts → card-place/card-place-item.vue.d.ts} +0 -0
- package/dist/runtime/components/card/{card-place-search-row.d.vue.ts → card-place/card-place-search-row.d.vue.ts} +0 -0
- package/dist/runtime/components/card/{card-place-search-row.vue → card-place/card-place-search-row.vue} +0 -0
- package/dist/runtime/components/card/{card-place-search-row.vue.d.ts → card-place/card-place-search-row.vue.d.ts} +0 -0
- package/dist/runtime/components/card/{card-place.d.vue.ts → card-place/card-place.d.vue.ts} +0 -0
- package/dist/runtime/components/card/{card-place.vue.d.ts → card-place/card-place.vue.d.ts} +0 -0
- package/dist/runtime/components/card/{card-profile-about.d.vue.ts → card-profile/card-profile-about.d.vue.ts} +0 -0
- package/dist/runtime/components/card/{card-profile-about.vue → card-profile/card-profile-about.vue} +0 -0
- package/dist/runtime/components/card/{card-profile-about.vue.d.ts → card-profile/card-profile-about.vue.d.ts} +0 -0
- package/dist/runtime/components/card/{card-profile-header.d.vue.ts → card-profile/card-profile-header.d.vue.ts} +2 -2
- package/dist/runtime/components/card/{card-profile-header.vue → card-profile/card-profile-header.vue} +0 -0
- package/dist/runtime/components/card/{card-profile-header.vue.d.ts → card-profile/card-profile-header.vue.d.ts} +2 -2
- /package/dist/runtime/components/card/{card-recommend-blog.d.vue.ts → card-recommend/card-recommend-blog.d.vue.ts} +0 -0
- /package/dist/runtime/components/card/{card-recommend-blog.vue → card-recommend/card-recommend-blog.vue} +0 -0
- /package/dist/runtime/components/card/{card-recommend-blog.vue.d.ts → card-recommend/card-recommend-blog.vue.d.ts} +0 -0
- /package/dist/runtime/components/card/{card-recommend-place.d.vue.ts → card-recommend/card-recommend-place.d.vue.ts} +0 -0
- /package/dist/runtime/components/card/{card-recommend-place.vue → card-recommend/card-recommend-place.vue} +0 -0
- /package/dist/runtime/components/card/{card-recommend-place.vue.d.ts → card-recommend/card-recommend-place.vue.d.ts} +0 -0
- /package/dist/runtime/components/card/{card-recommend-profile.d.vue.ts → card-recommend/card-recommend-profile.d.vue.ts} +0 -0
- /package/dist/runtime/components/card/{card-recommend-profile.vue → card-recommend/card-recommend-profile.vue} +0 -0
- /package/dist/runtime/components/card/{card-recommend-profile.vue.d.ts → card-recommend/card-recommend-profile.vue.d.ts} +0 -0
- /package/dist/runtime/components/card/{card-user-blog.d.vue.ts → card-user/card-user-blog.d.vue.ts} +0 -0
- /package/dist/runtime/components/card/{card-user-blog.vue.d.ts → card-user/card-user-blog.vue.d.ts} +0 -0
- /package/dist/runtime/components/card/{card-user-item.d.vue.ts → card-user/card-user-item.d.vue.ts} +0 -0
- /package/dist/runtime/components/card/{card-user-item.vue.d.ts → card-user/card-user-item.vue.d.ts} +0 -0
package/dist/module.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@import "tailwindcss";@import "tw-animate-css";@import "./system.css";@import "./scroll-bar.css";@custom-variant dark (&:is(.dark *));@theme inline{--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 4px);--color-background:var(--background);--color-foreground:var(--foreground);--color-card:var(--card);--color-card-foreground:var(--card-foreground);--color-popover:var(--popover);--color-popover-foreground:var(--popover-foreground);--color-primary-foreground:var(--primary-foreground);--color-secondary-foreground:var(--secondary-foreground);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-accent:var(--accent);--color-accent-foreground:var(--accent-foreground);--color-destructive:var(--destructive);--color-destructive-foreground:var(--destructive-foreground);--color-border:var(--border);--color-input:var(--input);--color-ring:var(--ring);--color-chart-1:var(--chart-1);--color-chart-2:var(--chart-2);--color-chart-3:var(--chart-3);--color-chart-4:var(--chart-4);--color-chart-5:var(--chart-5);--color-sidebar:var(--sidebar);--color-sidebar-foreground:var(--sidebar-foreground);--color-sidebar-primary:var(--sidebar-primary);--color-sidebar-primary-foreground:var(--sidebar-primary-foreground);--color-sidebar-accent:var(--sidebar-accent);--color-sidebar-accent-foreground:var(--sidebar-accent-foreground);--color-sidebar-border:var(--sidebar-border);--color-sidebar-ring:var(--sidebar-ring);--color-red:var(--red);--color-error:var(--error);--color-success:var(--success);--color-green:var(--green);--color-warning:var(--warning);--color-yellow:var(--yellow);--color-pink:var(--pink);--color-primary:var(--primary);--color-secondary:var(--secondary);--color-info:var(--info);--color-info-foreground:var(--info-foreground);--color-black:var(--black);--color-dark:var(--dark);--color-gray:var(--gray);--color-cloud:var(--cloud);--color-mercury:var(--mercury);--color-green-light:var(--green-light);--color-red-light:var(--red-light);--color-yellow-light:var(--yellow-light);--color-bright:var(--bright);--color-silver:var(--silver);--color-smoke:var(--smoke);--z-index-
|
|
1
|
+
@import "tailwindcss";@import "tw-animate-css";@import "./system.css";@import "./scroll-bar.css";@custom-variant dark (&:is(.dark *));@theme inline{--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 4px);--color-background:var(--background);--color-foreground:var(--foreground);--color-card:var(--card);--color-card-foreground:var(--card-foreground);--color-popover:var(--popover);--color-popover-foreground:var(--popover-foreground);--color-primary-foreground:var(--primary-foreground);--color-secondary-foreground:var(--secondary-foreground);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-accent:var(--accent);--color-accent-foreground:var(--accent-foreground);--color-destructive:var(--destructive);--color-destructive-foreground:var(--destructive-foreground);--color-border:var(--border);--color-input:var(--input);--color-ring:var(--ring);--color-chart-1:var(--chart-1);--color-chart-2:var(--chart-2);--color-chart-3:var(--chart-3);--color-chart-4:var(--chart-4);--color-chart-5:var(--chart-5);--color-sidebar:var(--sidebar);--color-sidebar-foreground:var(--sidebar-foreground);--color-sidebar-primary:var(--sidebar-primary);--color-sidebar-primary-foreground:var(--sidebar-primary-foreground);--color-sidebar-accent:var(--sidebar-accent);--color-sidebar-accent-foreground:var(--sidebar-accent-foreground);--color-sidebar-border:var(--sidebar-border);--color-sidebar-ring:var(--sidebar-ring);--color-red:var(--red);--color-error:var(--error);--color-success:var(--success);--color-green:var(--green);--color-warning:var(--warning);--color-yellow:var(--yellow);--color-pink:var(--pink);--color-primary:var(--primary);--color-secondary:var(--secondary);--color-info:var(--info);--color-info-foreground:var(--info-foreground);--color-black:var(--black);--color-dark:var(--dark);--color-gray:var(--gray);--color-cloud:var(--cloud);--color-mercury:var(--mercury);--color-green-light:var(--green-light);--color-red-light:var(--red-light);--color-yellow-light:var(--yellow-light);--color-bright:var(--bright);--color-silver:var(--silver);--color-smoke:var(--smoke);--z-index-content:10;--z-index-navbar:11;--z-index-dropdown:12;--z-index-overlay:13;--z-index-loading:14;--z-index-drawer:15;--z-index-modal:16;--z-index-toast:100;--z-index-loading-page:101}:root{--radius:0.625rem;--red:#b71c1c;--success:#43a047;--green:#1b5e20;--warning:#f9a825;--yellow:#fbc02d;--info:#e3f2fd;--info-foreground:var(--primary);--black:#212121;--dark:#424242;--gray:#616161;--cloud:#c4c4c4;--mercury:#e0e0e0;--green-light:#e3f5e3;--red-light:#fde3e3;--yellow-light:#fef3c7;--bright:#f5f5f5;--silver:#f7f7f7;--smoke:#fafafa;--white:#fff;--pink:#ffe6f4;--background:var(--white);--foreground:var(--black);--card:var(--background);--card-foreground:var(--foreground);--popover:var(--background);--popover-foreground:var(--foreground);--primary:#1976b8;--primary-foreground:var(--white);--secondary:#22a7ef;--secondary-foreground:var(--white);--muted:oklch(0.97 0 0);--muted-foreground:var(--cloud);--accent:oklch(0.97 0 0);--accent-foreground:oklch(0.205 0 0);--destructive:#d32f2f;--destructive-foreground:var(--white);--border:var(--color-mercury);--input:var(--color-mercury);--ring:var(--mercury);--chart-1:oklch(0.646 0.222 41.116);--chart-2:oklch(0.6 0.118 184.704);--chart-3:oklch(0.398 0.07 227.392);--chart-4:oklch(0.828 0.189 84.429);--chart-5:oklch(0.769 0.188 70.08);--sidebar:oklch(0.985 0 0);--sidebar-foreground:var(--foreground);--sidebar-primary:oklch(0.205 0 0);--sidebar-primary-foreground:oklch(0.985 0 0);--sidebar-accent:oklch(0.97 0 0);--sidebar-accent-foreground:oklch(0.205 0 0);--sidebar-border:var(--color-mercury);--sidebar-ring:var(--color-mercury)}.dark{--background:oklch(0.145 0 0);--foreground:oklch(0.985 0 0);--card:oklch(0.145 0 0);--card-foreground:oklch(0.985 0 0);--popover:oklch(0.145 0 0);--popover-foreground:oklch(0.985 0 0);--primary:oklch(0.985 0 0);--primary-foreground:oklch(0.205 0 0);--secondary:oklch(0.269 0 0);--secondary-foreground:oklch(0.985 0 0);--muted:oklch(0.269 0 0);--muted-foreground:oklch(0.708 0 0);--accent:oklch(0.269 0 0);--accent-foreground:oklch(0.985 0 0);--destructive:oklch(0.396 0.141 25.723);--destructive-foreground:oklch(0.637 0.237 25.331);--border:oklch(0.269 0 0);--input:oklch(0.269 0 0);--ring:oklch(0.439 0 0);--chart-1:oklch(0.488 0.243 264.376);--chart-2:oklch(0.696 0.17 162.48);--chart-3:oklch(0.769 0.188 70.08);--chart-4:oklch(0.627 0.265 303.9);--chart-5:oklch(0.645 0.246 16.439);--sidebar:oklch(0.205 0 0);--sidebar-foreground:oklch(0.985 0 0);--sidebar-primary:oklch(0.488 0.243 264.376);--sidebar-primary-foreground:oklch(0.985 0 0);--sidebar-accent:oklch(0.269 0 0);--sidebar-accent-foreground:oklch(0.985 0 0);--sidebar-border:oklch(0.269 0 0);--sidebar-ring:oklch(0.439 0 0)}@layer base{*{@apply border-border outline-ring/50}body{@apply bg-background text-foreground}}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { HTMLAttributes } from "vue";
|
|
2
2
|
import type { ButtonVariants } from "./ui/button/index.js";
|
|
3
3
|
export type ButtonType = "button" | "submit" | "reset";
|
|
4
|
-
export type ButtonVariant = "default" | "outline" | "ghost" | "link" | "text" | "icon";
|
|
4
|
+
export type ButtonVariant = "default" | "outline" | "ghost" | "link" | "text" | "icon" | "glass";
|
|
5
5
|
export type ButtonColor = "default" | "primary" | "secondary" | "destructive" | "info" | "warning" | "success";
|
|
6
6
|
export type ButtonSize = ButtonVariants["size"];
|
|
7
7
|
export interface ButtonProps {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { HTMLAttributes } from "vue";
|
|
2
2
|
import type { ButtonVariants } from "./ui/button/index.js";
|
|
3
3
|
export type ButtonType = "button" | "submit" | "reset";
|
|
4
|
-
export type ButtonVariant = "default" | "outline" | "ghost" | "link" | "text" | "icon";
|
|
4
|
+
export type ButtonVariant = "default" | "outline" | "ghost" | "link" | "text" | "icon" | "glass";
|
|
5
5
|
export type ButtonColor = "default" | "primary" | "secondary" | "destructive" | "info" | "warning" | "success";
|
|
6
6
|
export type ButtonSize = ButtonVariants["size"];
|
|
7
7
|
export interface ButtonProps {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CardContentItem } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
item: CardContentItem;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="absolute inset-0 overflow-hidden rounded-[4px] bg-white">
|
|
3
|
+
<Image
|
|
4
|
+
:src="props.item.image"
|
|
5
|
+
:width="194"
|
|
6
|
+
:height="132"
|
|
7
|
+
fit="cover"
|
|
8
|
+
class="rounded-t-[4px]"
|
|
9
|
+
/>
|
|
10
|
+
|
|
11
|
+
<p
|
|
12
|
+
class="absolute left-[8px] top-[140px] line-clamp-7 h-[168px] w-[178px] overflow-hidden break-words font-title-small-prominent text-black"
|
|
13
|
+
>
|
|
14
|
+
{{ props.item.content }}
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<div
|
|
18
|
+
class="absolute left-[8px] top-[321px] w-[178px] truncate font-body-small text-gray"
|
|
19
|
+
>
|
|
20
|
+
{{ props.item.location }}
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</template>
|
|
24
|
+
|
|
25
|
+
<script setup>
|
|
26
|
+
const props = defineProps({
|
|
27
|
+
item: { type: Object, required: true }
|
|
28
|
+
});
|
|
29
|
+
</script>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CardContentItem } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
item: CardContentItem;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CardContentMenuState } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
state?: CardContentMenuState;
|
|
4
|
+
isPinned?: boolean;
|
|
5
|
+
isBookmarked?: boolean;
|
|
6
|
+
isShow?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
9
|
+
action: (name: string) => any;
|
|
10
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
onAction?: ((name: string) => any) | undefined;
|
|
12
|
+
}>, {
|
|
13
|
+
isPinned: boolean;
|
|
14
|
+
isBookmarked: boolean;
|
|
15
|
+
isShow: boolean;
|
|
16
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
declare const _default: typeof __VLS_export;
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex flex-col items-start gap-[8px]">
|
|
3
|
+
<Button
|
|
4
|
+
v-for="action in visibleActions"
|
|
5
|
+
:key="action.name"
|
|
6
|
+
:variant="action.variant ?? (action.isActive ? 'default' : 'glass')"
|
|
7
|
+
size="icon"
|
|
8
|
+
:color="action.color ?? 'primary'"
|
|
9
|
+
class="h-[40px] w-[40px] rounded-full"
|
|
10
|
+
@click.stop="emit('action', action.name)"
|
|
11
|
+
>
|
|
12
|
+
<Icon :name="action.icon" :size="20" />
|
|
13
|
+
</Button>
|
|
14
|
+
</div>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<script setup>
|
|
18
|
+
import { computed } from "vue";
|
|
19
|
+
const props = defineProps({
|
|
20
|
+
state: { type: String, required: false },
|
|
21
|
+
isPinned: { type: Boolean, required: false, default: false },
|
|
22
|
+
isBookmarked: { type: Boolean, required: false, default: false },
|
|
23
|
+
isShow: { type: Boolean, required: false, default: false }
|
|
24
|
+
});
|
|
25
|
+
const emit = defineEmits(["action"]);
|
|
26
|
+
const actions = computed(() => {
|
|
27
|
+
if (props.state === "my-content") {
|
|
28
|
+
return [
|
|
29
|
+
{ name: "pin", icon: "lucide:pin", isActive: props.isPinned },
|
|
30
|
+
{ name: "preview", icon: "lucide:tv-minimal-play" },
|
|
31
|
+
{
|
|
32
|
+
name: "delete",
|
|
33
|
+
icon: "lucide:trash-2",
|
|
34
|
+
variant: "default",
|
|
35
|
+
color: "destructive"
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
if (props.state === "content") {
|
|
40
|
+
return [
|
|
41
|
+
{ name: "bookmark", icon: "lucide:bookmark", isActive: props.isBookmarked },
|
|
42
|
+
{ name: "preview", icon: "lucide:tv-minimal-play" }
|
|
43
|
+
];
|
|
44
|
+
}
|
|
45
|
+
return [];
|
|
46
|
+
});
|
|
47
|
+
const visibleActions = computed(
|
|
48
|
+
() => actions.value.filter((action) => action.isActive || props.isShow)
|
|
49
|
+
);
|
|
50
|
+
</script>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CardContentMenuState } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
state?: CardContentMenuState;
|
|
4
|
+
isPinned?: boolean;
|
|
5
|
+
isBookmarked?: boolean;
|
|
6
|
+
isShow?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
9
|
+
action: (name: string) => any;
|
|
10
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
11
|
+
onAction?: ((name: string) => any) | undefined;
|
|
12
|
+
}>, {
|
|
13
|
+
isPinned: boolean;
|
|
14
|
+
isBookmarked: boolean;
|
|
15
|
+
isShow: boolean;
|
|
16
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
|
+
declare const _default: typeof __VLS_export;
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CardContentItem } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
item: CardContentItem;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
class="absolute inset-0 rounded-[4px]"
|
|
4
|
+
:style="{ backgroundColor: props.item.backgroundColor }"
|
|
5
|
+
>
|
|
6
|
+
<!-- กล่องข้อความกลางการ์ด (จัดกลางแนวตั้ง) -->
|
|
7
|
+
<div
|
|
8
|
+
class="absolute left-[8px] top-[64.5px] flex h-[216px] w-[178px] items-center overflow-hidden"
|
|
9
|
+
>
|
|
10
|
+
<p
|
|
11
|
+
class="line-clamp-9 w-full break-words text-center font-title-small-prominent text-black"
|
|
12
|
+
>
|
|
13
|
+
{{ props.item.content }}
|
|
14
|
+
</p>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
<div
|
|
18
|
+
class="absolute left-[8px] top-[321px] w-[178px] truncate font-body-small text-gray"
|
|
19
|
+
>
|
|
20
|
+
{{ props.item.location }}
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</template>
|
|
24
|
+
|
|
25
|
+
<script setup>
|
|
26
|
+
const props = defineProps({
|
|
27
|
+
item: { type: Object, required: true }
|
|
28
|
+
});
|
|
29
|
+
</script>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CardContentItem } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
item: CardContentItem;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type __VLS_ModelProps = {
|
|
2
|
+
modelValue?: boolean;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
+
"update:modelValue": (value: boolean) => any;
|
|
6
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
7
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
8
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const _default: typeof __VLS_export;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<!-- ติ๊กแล้ว = พื้น dark ไม่มีขอบ / ยังไม่ติ๊ก = พื้นขาว + ขอบเทา 2px (ตาม Figma) -->
|
|
3
|
+
<ShadCheckbox
|
|
4
|
+
v-model="modelValue"
|
|
5
|
+
aria-label="เลือกการ์ดนี้"
|
|
6
|
+
class="size-[32px] cursor-pointer rounded-full border-2 border-gray bg-white shadow-none transition-colors hover:bg-bright data-[state=checked]:border-dark data-[state=checked]:bg-dark data-[state=checked]:text-white data-[state=checked]:hover:bg-dark"
|
|
7
|
+
@click.stop
|
|
8
|
+
>
|
|
9
|
+
<Icon name="lucide:check" :size="20" />
|
|
10
|
+
</ShadCheckbox>
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script setup>
|
|
14
|
+
const modelValue = defineModel({ type: Boolean, ...{ default: false } });
|
|
15
|
+
</script>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type __VLS_ModelProps = {
|
|
2
|
+
modelValue?: boolean;
|
|
3
|
+
};
|
|
4
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_ModelProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
5
|
+
"update:modelValue": (value: boolean) => any;
|
|
6
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_ModelProps> & Readonly<{
|
|
7
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
8
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const _default: typeof __VLS_export;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CardContentItem } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
item: CardContentItem;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-if="timeState.text"
|
|
4
|
+
class="inline-flex items-center rounded-[4px] p-[4px] font-body-small text-white backdrop-blur-[4px]"
|
|
5
|
+
:class="timeState.color"
|
|
6
|
+
>
|
|
7
|
+
{{ timeState.text }}
|
|
8
|
+
</div>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script setup>
|
|
12
|
+
import { computed } from "vue";
|
|
13
|
+
import { useNow } from "@vueuse/core";
|
|
14
|
+
import dayjs from "#pukaad-ui/runtime/utils/dayjs";
|
|
15
|
+
import { useConvert } from "#pukaad-ui/runtime/composables/useConvert";
|
|
16
|
+
const props = defineProps({
|
|
17
|
+
item: { type: Object, required: true }
|
|
18
|
+
});
|
|
19
|
+
const now = useNow({ interval: 1e3 });
|
|
20
|
+
const { convertDate } = useConvert();
|
|
21
|
+
const pad = (n) => String(n).padStart(2, "0");
|
|
22
|
+
const timeState = computed(() => {
|
|
23
|
+
const { expireAt } = props.item;
|
|
24
|
+
if (!expireAt) return { text: "", color: "" };
|
|
25
|
+
const target = dayjs(expireAt);
|
|
26
|
+
if (!target.isValid()) return { text: "", color: "" };
|
|
27
|
+
const diffMs = target.diff(now.value);
|
|
28
|
+
if (diffMs <= 0) {
|
|
29
|
+
return {
|
|
30
|
+
text: `\u0E2B\u0E21\u0E14\u0E2D\u0E32\u0E22\u0E38 ${convertDate(expireAt, "D/M/BBBB")}`,
|
|
31
|
+
color: "bg-black/50"
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (target.diff(now.value, "hour", true) <= 24) {
|
|
35
|
+
const dur = dayjs.duration(diffMs);
|
|
36
|
+
const hh = pad(Math.floor(dur.asHours()));
|
|
37
|
+
return {
|
|
38
|
+
text: `${hh} : ${pad(dur.minutes())} : ${pad(dur.seconds())}`,
|
|
39
|
+
color: "bg-destructive"
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const diffDays = Math.ceil(target.diff(now.value, "day", true));
|
|
43
|
+
return {
|
|
44
|
+
text: `\u0E40\u0E2B\u0E25\u0E37\u0E2D ${diffDays} \u0E27\u0E31\u0E19`,
|
|
45
|
+
color: diffDays < 7 ? "bg-warning" : "bg-success"
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
</script>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CardContentItem } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
item: CardContentItem;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CardContentItem } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
item: CardContentItem;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="absolute inset-0 overflow-hidden rounded-[4px] bg-black">
|
|
3
|
+
<Video
|
|
4
|
+
:src="props.item.video?.src ?? ''"
|
|
5
|
+
:poster="props.item.video?.poster"
|
|
6
|
+
:width="194"
|
|
7
|
+
:height="345"
|
|
8
|
+
fit="cover"
|
|
9
|
+
:controls="false"
|
|
10
|
+
hover-play
|
|
11
|
+
muted
|
|
12
|
+
loop
|
|
13
|
+
preload="none"
|
|
14
|
+
/>
|
|
15
|
+
|
|
16
|
+
<div
|
|
17
|
+
class="absolute inset-x-0 bottom-0 flex h-[84px] flex-col justify-between bg-gradient-to-t from-black/70 to-transparent p-[8px]"
|
|
18
|
+
>
|
|
19
|
+
<p class="line-clamp-2 break-words font-title-small-prominent text-white">
|
|
20
|
+
{{ props.item.title }}
|
|
21
|
+
</p>
|
|
22
|
+
<div class="truncate font-body-small text-white">
|
|
23
|
+
{{ props.item.location }}
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
</template>
|
|
28
|
+
|
|
29
|
+
<script setup>
|
|
30
|
+
const props = defineProps({
|
|
31
|
+
item: { type: Object, required: true }
|
|
32
|
+
});
|
|
33
|
+
</script>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CardContentItem } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
item: CardContentItem;
|
|
4
|
+
};
|
|
5
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
6
|
+
declare const _default: typeof __VLS_export;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CardContentItem, CardContentProps } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
export type { CardContentItem, CardContentMenuState, CardContentType, } from "#pukaad-ui/types/components/card/card-content";
|
|
3
|
+
type __VLS_Props = CardContentProps;
|
|
4
|
+
type __VLS_ModelProps = {
|
|
5
|
+
"selected"?: boolean;
|
|
6
|
+
};
|
|
7
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
8
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
+
"update:selected": (value: boolean) => any;
|
|
10
|
+
} & {
|
|
11
|
+
click: (item: CardContentItem) => any;
|
|
12
|
+
action: (name: string, item: CardContentItem) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
14
|
+
onClick?: ((item: CardContentItem) => any) | undefined;
|
|
15
|
+
"onUpdate:selected"?: ((value: boolean) => any) | undefined;
|
|
16
|
+
onAction?: ((name: string, item: CardContentItem) => any) | undefined;
|
|
17
|
+
}>, {
|
|
18
|
+
selectable: boolean;
|
|
19
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<!--
|
|
3
|
+
ขอบใช้ outline ไม่ใช่ border
|
|
4
|
+
เพราะการ์ด fix 194x345 + overflow-hidden ถ้าใช้ border ตอน selectable ขอบ 1px→2px
|
|
5
|
+
จะกินเข้าใน คอนเทนต์ขยับ 1px — outline วาดนอกกล่อง ขนาดในคงที่ทุกสถานะ
|
|
6
|
+
selectable/selected = ขอบเทา 2px / ปกติ = silver 1px
|
|
7
|
+
-->
|
|
8
|
+
<div
|
|
9
|
+
:class="[
|
|
10
|
+
'relative h-[345px] w-[194px] cursor-pointer overflow-hidden rounded-[4px] bg-white outline outline-offset-0',
|
|
11
|
+
props.selectable || selected ? 'outline-2 outline-gray' : 'outline-1 outline-silver'
|
|
12
|
+
]"
|
|
13
|
+
@mouseenter="hovering = true"
|
|
14
|
+
@mouseleave="hovering = false"
|
|
15
|
+
@click="handleClick"
|
|
16
|
+
>
|
|
17
|
+
<component :is="bodyComponent" v-if="bodyComponent" :item="props.item" />
|
|
18
|
+
|
|
19
|
+
<div v-if="showTime" class="absolute left-[8px] top-[8px] z-content">
|
|
20
|
+
<CardContentTime :item="props.item" />
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<div v-if="hasMenu" class="absolute left-[146px] top-[8px] z-content">
|
|
24
|
+
<CardContentMenu
|
|
25
|
+
:state="props.state"
|
|
26
|
+
:is-pinned="!!props.item.pinned"
|
|
27
|
+
:is-bookmarked="!!props.item.bookmarked"
|
|
28
|
+
:is-show="hovering"
|
|
29
|
+
@action="onMenuAction"
|
|
30
|
+
/>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div
|
|
34
|
+
v-if="props.selectable"
|
|
35
|
+
class="absolute bottom-[8px] right-[8px] z-content"
|
|
36
|
+
>
|
|
37
|
+
<CardContentSelect v-model="selected" />
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
</template>
|
|
41
|
+
|
|
42
|
+
<script setup>
|
|
43
|
+
import { computed, ref } from "vue";
|
|
44
|
+
import CardContentPostIt from "./card-content-post-it.vue";
|
|
45
|
+
import CardContentImage from "./card-content-image.vue";
|
|
46
|
+
import CardContentVideo from "./card-content-video.vue";
|
|
47
|
+
import CardContentTime from "./card-content-time.vue";
|
|
48
|
+
import CardContentMenu from "./card-content-menu.vue";
|
|
49
|
+
import CardContentSelect from "./card-content-select.vue";
|
|
50
|
+
const props = defineProps({
|
|
51
|
+
item: { type: Object, required: true },
|
|
52
|
+
state: { type: String, required: false },
|
|
53
|
+
selectable: { type: Boolean, required: false, default: false }
|
|
54
|
+
});
|
|
55
|
+
const emit = defineEmits(["click", "action"]);
|
|
56
|
+
const selected = defineModel("selected", { type: Boolean, ...{ default: false } });
|
|
57
|
+
const handleClick = () => {
|
|
58
|
+
if (props.selectable) {
|
|
59
|
+
selected.value = !selected.value;
|
|
60
|
+
}
|
|
61
|
+
emit("click", props.item);
|
|
62
|
+
};
|
|
63
|
+
const hovering = ref(false);
|
|
64
|
+
const BODY = {
|
|
65
|
+
postIt: CardContentPostIt,
|
|
66
|
+
image: CardContentImage,
|
|
67
|
+
video: CardContentVideo
|
|
68
|
+
};
|
|
69
|
+
const bodyComponent = computed(() => BODY[props.item.type]);
|
|
70
|
+
const showTime = computed(() => !!props.item.expireAt);
|
|
71
|
+
const hasMenu = computed(() => !props.selectable && !!props.state);
|
|
72
|
+
const onMenuAction = (name) => {
|
|
73
|
+
emit("action", name, props.item);
|
|
74
|
+
};
|
|
75
|
+
</script>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CardContentItem, CardContentProps } from "#pukaad-ui/types/components/card/card-content";
|
|
2
|
+
export type { CardContentItem, CardContentMenuState, CardContentType, } from "#pukaad-ui/types/components/card/card-content";
|
|
3
|
+
type __VLS_Props = CardContentProps;
|
|
4
|
+
type __VLS_ModelProps = {
|
|
5
|
+
"selected"?: boolean;
|
|
6
|
+
};
|
|
7
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
8
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
9
|
+
"update:selected": (value: boolean) => any;
|
|
10
|
+
} & {
|
|
11
|
+
click: (item: CardContentItem) => any;
|
|
12
|
+
action: (name: string, item: CardContentItem) => any;
|
|
13
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
14
|
+
onClick?: ((item: CardContentItem) => any) | undefined;
|
|
15
|
+
"onUpdate:selected"?: ((value: boolean) => any) | undefined;
|
|
16
|
+
onAction?: ((name: string, item: CardContentItem) => any) | undefined;
|
|
17
|
+
}>, {
|
|
18
|
+
selectable: boolean;
|
|
19
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
<script setup>
|
|
58
58
|
import { ref } from "vue";
|
|
59
59
|
import { useRouter } from "vue-router";
|
|
60
|
-
import { useApi } from "
|
|
60
|
+
import { useApi } from "../../../composables/useApi";
|
|
61
61
|
const modelValue = defineModel({ type: Object, ...{ default: () => ({}) } });
|
|
62
62
|
const router = useRouter();
|
|
63
63
|
const api = useApi();
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
<script setup>
|
|
47
47
|
import { computed } from "vue";
|
|
48
|
-
import { useConvert } from "
|
|
48
|
+
import { useConvert } from "../../../composables/useConvert";
|
|
49
49
|
const { convertNumber } = useConvert();
|
|
50
50
|
const props = defineProps({
|
|
51
51
|
item: { type: Object, required: false, default: () => ({}) }
|
|
@@ -24,14 +24,14 @@ type __VLS_Props = {
|
|
|
24
24
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
25
25
|
disabled: boolean;
|
|
26
26
|
id: string;
|
|
27
|
-
disabledPadding: boolean;
|
|
28
|
-
state: string;
|
|
29
27
|
itemCount: Count;
|
|
30
28
|
itemActive: Reacted;
|
|
31
29
|
padding: string | number;
|
|
30
|
+
disabledPadding: boolean;
|
|
32
31
|
disabledDividerTop: boolean;
|
|
33
32
|
disabledDividerBottom: boolean;
|
|
34
33
|
iconSize: number | string;
|
|
34
|
+
state: string;
|
|
35
35
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
36
36
|
declare const _default: typeof __VLS_export;
|
|
37
37
|
export default _default;
|
|
@@ -24,14 +24,14 @@ type __VLS_Props = {
|
|
|
24
24
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
25
25
|
disabled: boolean;
|
|
26
26
|
id: string;
|
|
27
|
-
disabledPadding: boolean;
|
|
28
|
-
state: string;
|
|
29
27
|
itemCount: Count;
|
|
30
28
|
itemActive: Reacted;
|
|
31
29
|
padding: string | number;
|
|
30
|
+
disabledPadding: boolean;
|
|
32
31
|
disabledDividerTop: boolean;
|
|
33
32
|
disabledDividerBottom: boolean;
|
|
34
33
|
iconSize: number | string;
|
|
34
|
+
state: string;
|
|
35
35
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
36
36
|
declare const _default: typeof __VLS_export;
|
|
37
37
|
export default _default;
|
|
@@ -90,7 +90,7 @@ import { useRouter } from "vue-router";
|
|
|
90
90
|
import { ref, watch } from "vue";
|
|
91
91
|
import { useNuxtApp } from "nuxt/app";
|
|
92
92
|
import { useConvert } from "#pukaad-ui/runtime/composables/useConvert";
|
|
93
|
-
import { useApi } from "
|
|
93
|
+
import { useApi } from "../../../composables/useApi";
|
|
94
94
|
const { convertNumber, convertDateTorelativeText } = useConvert();
|
|
95
95
|
const { $toast, $alert } = useNuxtApp();
|
|
96
96
|
const api = useApi();
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
<script setup>
|
|
29
29
|
import { ref } from "vue";
|
|
30
30
|
import { useRouter } from "vue-router";
|
|
31
|
-
import { useApi } from "
|
|
31
|
+
import { useApi } from "../../../composables/useApi";
|
|
32
32
|
const modelValue = defineModel({ type: Object, ...{
|
|
33
33
|
default: () => ({})
|
|
34
34
|
} });
|