pukaad-ui-lib 1.3.3 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/dist/module.json +2 -2
  2. package/dist/module.mjs +1 -1
  3. package/dist/runtime/assets/json/social-icon.json +77 -77
  4. package/dist/runtime/assets/svg/bell-outline.svg +3 -3
  5. package/dist/runtime/assets/svg/bookmark-solid.svg +2 -2
  6. package/dist/runtime/assets/svg/box.svg +22 -22
  7. package/dist/runtime/assets/svg/camera-plus.svg +9 -9
  8. package/dist/runtime/assets/svg/clock-fading.svg +46 -46
  9. package/dist/runtime/assets/svg/coin.svg +20 -20
  10. package/dist/runtime/assets/svg/empty-document.svg +15 -15
  11. package/dist/runtime/assets/svg/memsg-circle.svg +7 -7
  12. package/dist/runtime/assets/svg/memsg-fade.svg +5 -5
  13. package/dist/runtime/assets/svg/memsg-logo-outline.svg +3 -3
  14. package/dist/runtime/assets/svg/memsg-square.svg +9 -9
  15. package/dist/runtime/assets/svg/message.svg +3 -3
  16. package/dist/runtime/assets/svg/page-not-found.svg +9 -9
  17. package/dist/runtime/assets/svg/share-from-square.svg +3 -3
  18. package/dist/runtime/assets/svg/share.svg +2 -2
  19. package/dist/runtime/assets/svg/shopping-cart.svg +16 -16
  20. package/dist/runtime/assets/svg/socials/Email.svg +12 -12
  21. package/dist/runtime/assets/svg/socials/Line.svg +11 -11
  22. package/dist/runtime/assets/svg/socials/LinkedIn.svg +5 -5
  23. package/dist/runtime/assets/svg/socials/Pinterest.svg +4 -4
  24. package/dist/runtime/assets/svg/socials/SnapChat.svg +5 -5
  25. package/dist/runtime/assets/svg/socials/Threads.svg +12 -12
  26. package/dist/runtime/assets/svg/socials/Tiktok.svg +6 -6
  27. package/dist/runtime/assets/svg/socials/Tumblr.svg +4 -4
  28. package/dist/runtime/assets/svg/socials/Website.svg +11 -11
  29. package/dist/runtime/assets/svg/socials/Whatsapp.svg +5 -5
  30. package/dist/runtime/assets/svg/socials/X.svg +4 -4
  31. package/dist/runtime/assets/svg/socials/Youtube.svg +5 -5
  32. package/dist/runtime/assets/svg/socials/{Facebook.svg → facebook.svg} +4 -4
  33. package/dist/runtime/assets/svg/socials/instagram.svg +14 -14
  34. package/dist/runtime/assets/svg/thumbs-up-regular.svg +9 -9
  35. package/dist/runtime/assets/svg/thumbs-up-solid.svg +2 -2
  36. package/dist/runtime/assets/svg/vector.svg +2 -2
  37. package/dist/runtime/assets/svg/verify.svg +10 -10
  38. package/dist/runtime/assets/svg/write-review.svg +15 -15
  39. package/dist/runtime/components/button.vue +8 -8
  40. package/dist/runtime/components/card/card-announce2.vue +104 -102
  41. package/dist/runtime/components/card/card-place-detail.vue +90 -90
  42. package/dist/runtime/components/card/card-profile-about.vue +50 -50
  43. package/dist/runtime/components/card/card-profile-header.vue +94 -94
  44. package/dist/runtime/components/card/card-reaction.vue +29 -29
  45. package/dist/runtime/components/card/card-recommend-blog.vue +49 -49
  46. package/dist/runtime/components/card/card-recommend-place.vue +50 -50
  47. package/dist/runtime/components/card/card-recommend-publisher.vue +51 -51
  48. package/dist/runtime/components/card/card-review.vue +74 -74
  49. package/dist/runtime/components/card/card-user-blog.vue +66 -66
  50. package/dist/runtime/components/card/card-user-item.vue +54 -54
  51. package/dist/runtime/components/card/card.vue +25 -25
  52. package/dist/runtime/components/carousel.vue +29 -29
  53. package/dist/runtime/components/chip.vue +12 -12
  54. package/dist/runtime/components/collapse/collapse-multiple.vue +38 -38
  55. package/dist/runtime/components/collapse/collapse.vue +23 -23
  56. package/dist/runtime/components/comment.vue +216 -216
  57. package/dist/runtime/components/dialog/dialog-2FA-generate.vue +58 -58
  58. package/dist/runtime/components/dialog/dialog-2FA.vue +20 -20
  59. package/dist/runtime/components/dialog/dialog-email-OTP.vue +26 -26
  60. package/dist/runtime/components/dialog/dialog-phone-OTP.vue +25 -25
  61. package/dist/runtime/components/display/display-image-place.vue +4 -4
  62. package/dist/runtime/components/display/display-image-review.vue +16 -16
  63. package/dist/runtime/components/display/display-image.vue +49 -49
  64. package/dist/runtime/components/divider.vue +8 -8
  65. package/dist/runtime/components/draggable.vue +13 -13
  66. package/dist/runtime/components/drawer/drawer-notification.vue +286 -286
  67. package/dist/runtime/components/drawer/drawer-post-blog.vue +80 -80
  68. package/dist/runtime/components/drawer/drawer-profile-about.vue +38 -38
  69. package/dist/runtime/components/drawer/drawer.vue +16 -16
  70. package/dist/runtime/components/dropdown.vue +8 -8
  71. package/dist/runtime/components/filter/filter-list-chip.vue +15 -15
  72. package/dist/runtime/components/filter/filter-list.vue +17 -17
  73. package/dist/runtime/components/icons.vue +1 -1
  74. package/dist/runtime/components/image/image-cropper.d.vue.ts +1 -1
  75. package/dist/runtime/components/image/image-cropper.vue +9 -9
  76. package/dist/runtime/components/image/image-cropper.vue.d.ts +1 -1
  77. package/dist/runtime/components/image/image.vue +29 -29
  78. package/dist/runtime/components/input/input-OTP.vue +16 -16
  79. package/dist/runtime/components/input/input-address.vue +81 -81
  80. package/dist/runtime/components/input/input-autocomplete.d.vue.ts +8 -11
  81. package/dist/runtime/components/input/input-autocomplete.vue +89 -122
  82. package/dist/runtime/components/input/input-autocomplete.vue.d.ts +8 -11
  83. package/dist/runtime/components/input/input-checkbox.vue +103 -103
  84. package/dist/runtime/components/input/input-combobox.vue +82 -82
  85. package/dist/runtime/components/input/input-comment.vue +6 -6
  86. package/dist/runtime/components/input/input-content.vue +5 -5
  87. package/dist/runtime/components/input/input-date-opening.vue +176 -175
  88. package/dist/runtime/components/input/input-email.vue +8 -8
  89. package/dist/runtime/components/input/input-file.d.vue.ts +1 -1
  90. package/dist/runtime/components/input/input-file.vue +76 -76
  91. package/dist/runtime/components/input/input-file.vue.d.ts +1 -1
  92. package/dist/runtime/components/input/input-link.vue +39 -39
  93. package/dist/runtime/components/input/input-media.vue +36 -36
  94. package/dist/runtime/components/input/input-password.d.vue.ts +1 -1
  95. package/dist/runtime/components/input/input-password.vue +40 -40
  96. package/dist/runtime/components/input/input-password.vue.d.ts +1 -1
  97. package/dist/runtime/components/input/input-phone.vue +6 -6
  98. package/dist/runtime/components/input/input-radio.vue +87 -87
  99. package/dist/runtime/components/input/input-rating.vue +13 -13
  100. package/dist/runtime/components/input/input-recaptcha.vue +19 -19
  101. package/dist/runtime/components/input/input-search.vue +69 -69
  102. package/dist/runtime/components/input/input-select-province.d.vue.ts +3 -0
  103. package/dist/runtime/components/input/input-select-province.vue +4 -0
  104. package/dist/runtime/components/input/input-select-province.vue.d.ts +3 -0
  105. package/dist/runtime/components/input/input-select-tag.vue +51 -51
  106. package/dist/runtime/components/input/input-select.vue +42 -42
  107. package/dist/runtime/components/input/input-slider.d.vue.ts +1 -1
  108. package/dist/runtime/components/input/input-slider.vue +19 -19
  109. package/dist/runtime/components/input/input-slider.vue.d.ts +1 -1
  110. package/dist/runtime/components/input/input-switch.vue +25 -25
  111. package/dist/runtime/components/input/input-tag.vue +37 -37
  112. package/dist/runtime/components/input/input-text-field.vue +83 -83
  113. package/dist/runtime/components/input/input-textarea.d.vue.ts +1 -1
  114. package/dist/runtime/components/input/input-textarea.vue +54 -54
  115. package/dist/runtime/components/input/input-textarea.vue.d.ts +1 -1
  116. package/dist/runtime/components/label/label-announce-time.vue +9 -9
  117. package/dist/runtime/components/label/label-card-atom.vue +8 -8
  118. package/dist/runtime/components/list/list-menu.vue +13 -13
  119. package/dist/runtime/components/modal/modal-2FA-generate.vue +62 -62
  120. package/dist/runtime/components/modal/modal-2FA.vue +21 -21
  121. package/dist/runtime/components/modal/modal-account-disabled-alert.vue +33 -33
  122. package/dist/runtime/components/modal/modal-account-disabled-confirmed.vue +32 -32
  123. package/dist/runtime/components/modal/modal-account-disabled-reason.vue +45 -45
  124. package/dist/runtime/components/modal/modal-account-disabled.vue +9 -9
  125. package/dist/runtime/components/modal/modal-email-OTP.vue +31 -31
  126. package/dist/runtime/components/modal/modal-password-new.vue +27 -27
  127. package/dist/runtime/components/modal/modal-password.vue +27 -27
  128. package/dist/runtime/components/modal/modal-personal-card-ID.vue +194 -194
  129. package/dist/runtime/components/modal/modal-phone-OTP.vue +38 -38
  130. package/dist/runtime/components/modal/modal-profile-edit.vue +165 -165
  131. package/dist/runtime/components/modal/modal-province-domain.vue +23 -23
  132. package/dist/runtime/components/modal/modal-report.vue +49 -49
  133. package/dist/runtime/components/modal/modal-review-detail.vue +118 -118
  134. package/dist/runtime/components/modal/modal-secure.vue +10 -10
  135. package/dist/runtime/components/modal/modal-share.vue +24 -24
  136. package/dist/runtime/components/modal/modal-user-account-list.vue +29 -29
  137. package/dist/runtime/components/modal/modal-user-account-search.vue +24 -24
  138. package/dist/runtime/components/modal/modal.vue +27 -27
  139. package/dist/runtime/components/pagination.vue +43 -43
  140. package/dist/runtime/components/picker/picker-image-cover-profile.vue +91 -91
  141. package/dist/runtime/components/picker/picker-image-profile.vue +82 -82
  142. package/dist/runtime/components/picker/picker-option-menu/picker-option-menu-user.vue +14 -14
  143. package/dist/runtime/components/picker/picker-option-menu/picker-option-menu.vue +27 -27
  144. package/dist/runtime/components/profile-cover.vue +80 -80
  145. package/dist/runtime/components/progress-bar.vue +9 -9
  146. package/dist/runtime/components/read-more-text.vue +1 -1
  147. package/dist/runtime/components/tab.vue +78 -78
  148. package/dist/runtime/components/table.vue +82 -82
  149. package/dist/runtime/components/tooltip.vue +19 -19
  150. package/dist/runtime/components/ui/alert/Alert.vue +7 -7
  151. package/dist/runtime/components/ui/alert/AlertDescription.vue +6 -6
  152. package/dist/runtime/components/ui/alert/AlertTitle.vue +6 -6
  153. package/dist/runtime/components/ui/alert-dialog/AlertDialog.vue +3 -3
  154. package/dist/runtime/components/ui/alert-dialog/AlertDialogAction.vue +3 -3
  155. package/dist/runtime/components/ui/alert-dialog/AlertDialogCancel.vue +6 -6
  156. package/dist/runtime/components/ui/alert-dialog/AlertDialogContent.vue +13 -13
  157. package/dist/runtime/components/ui/alert-dialog/AlertDialogDescription.vue +7 -7
  158. package/dist/runtime/components/ui/alert-dialog/AlertDialogFooter.vue +6 -6
  159. package/dist/runtime/components/ui/alert-dialog/AlertDialogHeader.vue +6 -6
  160. package/dist/runtime/components/ui/alert-dialog/AlertDialogTitle.vue +7 -7
  161. package/dist/runtime/components/ui/alert-dialog/AlertDialogTrigger.vue +3 -3
  162. package/dist/runtime/components/ui/avatar/Avatar.vue +6 -6
  163. package/dist/runtime/components/ui/avatar/AvatarFallback.vue +7 -7
  164. package/dist/runtime/components/ui/avatar/AvatarImage.vue +7 -7
  165. package/dist/runtime/components/ui/button/Button.vue +8 -8
  166. package/dist/runtime/components/ui/card/Card.vue +8 -8
  167. package/dist/runtime/components/ui/card/CardAction.vue +6 -6
  168. package/dist/runtime/components/ui/card/CardContent.vue +6 -6
  169. package/dist/runtime/components/ui/card/CardDescription.vue +6 -6
  170. package/dist/runtime/components/ui/card/CardFooter.vue +6 -6
  171. package/dist/runtime/components/ui/card/CardHeader.vue +6 -6
  172. package/dist/runtime/components/ui/card/CardTitle.vue +6 -6
  173. package/dist/runtime/components/ui/checkbox/Checkbox.vue +14 -14
  174. package/dist/runtime/components/ui/command/Command.vue +7 -7
  175. package/dist/runtime/components/ui/command/CommandDialog.vue +11 -11
  176. package/dist/runtime/components/ui/command/CommandEmpty.vue +10 -10
  177. package/dist/runtime/components/ui/command/CommandGroup.vue +12 -12
  178. package/dist/runtime/components/ui/command/CommandInput.vue +13 -13
  179. package/dist/runtime/components/ui/command/CommandItem.vue +11 -11
  180. package/dist/runtime/components/ui/command/CommandList.vue +9 -9
  181. package/dist/runtime/components/ui/command/CommandSeparator.vue +7 -7
  182. package/dist/runtime/components/ui/command/CommandShortcut.vue +6 -6
  183. package/dist/runtime/components/ui/dialog/Dialog.vue +3 -3
  184. package/dist/runtime/components/ui/dialog/DialogClose.vue +3 -3
  185. package/dist/runtime/components/ui/dialog/DialogContent.vue +21 -21
  186. package/dist/runtime/components/ui/dialog/DialogDescription.vue +7 -7
  187. package/dist/runtime/components/ui/dialog/DialogFooter.vue +3 -3
  188. package/dist/runtime/components/ui/dialog/DialogHeader.vue +6 -6
  189. package/dist/runtime/components/ui/dialog/DialogOverlay.vue +7 -7
  190. package/dist/runtime/components/ui/dialog/DialogScrollContent.vue +20 -20
  191. package/dist/runtime/components/ui/dialog/DialogTitle.vue +7 -7
  192. package/dist/runtime/components/ui/dialog/DialogTrigger.vue +3 -3
  193. package/dist/runtime/components/ui/dropdown-menu/DropdownMenu.vue +6 -6
  194. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +12 -12
  195. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuContent.vue +9 -9
  196. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuGroup.vue +6 -6
  197. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.vue +9 -9
  198. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuLabel.vue +8 -8
  199. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +6 -6
  200. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +16 -16
  201. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSeparator.vue +5 -5
  202. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuShortcut.vue +6 -6
  203. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSub.vue +3 -3
  204. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.vue +7 -7
  205. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +8 -8
  206. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuTrigger.vue +6 -6
  207. package/dist/runtime/components/ui/form/FormControl.vue +8 -8
  208. package/dist/runtime/components/ui/form/FormDescription.vue +7 -7
  209. package/dist/runtime/components/ui/form/FormItem.vue +3 -3
  210. package/dist/runtime/components/ui/form/FormLabel.vue +8 -8
  211. package/dist/runtime/components/ui/form/FormMessage.vue +7 -7
  212. package/dist/runtime/components/ui/input/Input.vue +5 -5
  213. package/dist/runtime/components/ui/input-group/InputGroup.vue +7 -7
  214. package/dist/runtime/components/ui/input-group/InputGroupAddon.vue +9 -9
  215. package/dist/runtime/components/ui/input-group/InputGroupButton.vue +7 -7
  216. package/dist/runtime/components/ui/input-group/InputGroupInput.vue +4 -4
  217. package/dist/runtime/components/ui/input-group/InputGroupText.vue +5 -5
  218. package/dist/runtime/components/ui/input-group/InputGroupTextarea.vue +4 -4
  219. package/dist/runtime/components/ui/label/Label.vue +7 -7
  220. package/dist/runtime/components/ui/pagination/Pagination.vue +8 -8
  221. package/dist/runtime/components/ui/pagination/PaginationContent.vue +8 -8
  222. package/dist/runtime/components/ui/pagination/PaginationEllipsis.vue +10 -10
  223. package/dist/runtime/components/ui/pagination/PaginationFirst.vue +10 -10
  224. package/dist/runtime/components/ui/pagination/PaginationItem.vue +7 -7
  225. package/dist/runtime/components/ui/pagination/PaginationLast.vue +10 -10
  226. package/dist/runtime/components/ui/pagination/PaginationNext.vue +10 -10
  227. package/dist/runtime/components/ui/pagination/PaginationPrevious.vue +10 -10
  228. package/dist/runtime/components/ui/pin-input/PinInput.vue +8 -8
  229. package/dist/runtime/components/ui/pin-input/PinInputGroup.vue +7 -7
  230. package/dist/runtime/components/ui/pin-input/PinInputSeparator.vue +3 -3
  231. package/dist/runtime/components/ui/pin-input/PinInputSlot.vue +5 -5
  232. package/dist/runtime/components/ui/popover/Popover.vue +7 -7
  233. package/dist/runtime/components/ui/popover/PopoverAnchor.vue +6 -6
  234. package/dist/runtime/components/ui/popover/PopoverContent.vue +5 -5
  235. package/dist/runtime/components/ui/popover/PopoverTrigger.vue +6 -6
  236. package/dist/runtime/components/ui/select/Select.vue +7 -7
  237. package/dist/runtime/components/ui/select/SelectContent.vue +10 -10
  238. package/dist/runtime/components/ui/select/SelectGroup.vue +6 -6
  239. package/dist/runtime/components/ui/select/SelectItem.vue +17 -17
  240. package/dist/runtime/components/ui/select/SelectItemText.vue +6 -6
  241. package/dist/runtime/components/ui/select/SelectLabel.vue +6 -6
  242. package/dist/runtime/components/ui/select/SelectScrollDownButton.vue +6 -6
  243. package/dist/runtime/components/ui/select/SelectScrollUpButton.vue +6 -6
  244. package/dist/runtime/components/ui/select/SelectSeparator.vue +5 -5
  245. package/dist/runtime/components/ui/select/SelectTrigger.vue +11 -11
  246. package/dist/runtime/components/ui/select/SelectValue.vue +6 -6
  247. package/dist/runtime/components/ui/separator/Separator.d.vue.ts +11 -0
  248. package/dist/runtime/components/ui/separator/Separator.vue +26 -0
  249. package/dist/runtime/components/ui/separator/Separator.vue.d.ts +11 -0
  250. package/dist/runtime/components/ui/separator/index.d.ts +1 -0
  251. package/dist/runtime/components/ui/separator/index.js +1 -0
  252. package/dist/runtime/components/ui/sheet/Sheet.vue +3 -3
  253. package/dist/runtime/components/ui/sheet/SheetClose.vue +3 -3
  254. package/dist/runtime/components/ui/sheet/SheetContent.vue +20 -20
  255. package/dist/runtime/components/ui/sheet/SheetDescription.vue +7 -7
  256. package/dist/runtime/components/ui/sheet/SheetFooter.vue +6 -6
  257. package/dist/runtime/components/ui/sheet/SheetHeader.vue +6 -6
  258. package/dist/runtime/components/ui/sheet/SheetOverlay.vue +7 -7
  259. package/dist/runtime/components/ui/sheet/SheetTitle.vue +7 -7
  260. package/dist/runtime/components/ui/sheet/SheetTrigger.vue +3 -3
  261. package/dist/runtime/components/ui/spinner/Spinner.vue +5 -5
  262. package/dist/runtime/components/ui/table/Table.vue +5 -5
  263. package/dist/runtime/components/ui/table/TableBody.vue +6 -6
  264. package/dist/runtime/components/ui/table/TableCaption.vue +6 -6
  265. package/dist/runtime/components/ui/table/TableCell.vue +6 -6
  266. package/dist/runtime/components/ui/table/TableEmpty.vue +10 -10
  267. package/dist/runtime/components/ui/table/TableFooter.vue +6 -6
  268. package/dist/runtime/components/ui/table/TableHead.vue +6 -6
  269. package/dist/runtime/components/ui/table/TableHeader.vue +6 -6
  270. package/dist/runtime/components/ui/table/TableRow.vue +6 -6
  271. package/dist/runtime/components/ui/tabs/Tabs.vue +8 -8
  272. package/dist/runtime/components/ui/tabs/TabsContent.vue +7 -7
  273. package/dist/runtime/components/ui/tabs/TabsList.vue +7 -7
  274. package/dist/runtime/components/ui/tabs/TabsTrigger.vue +7 -7
  275. package/dist/runtime/components/ui/textarea/Textarea.vue +5 -5
  276. package/dist/runtime/components/video.vue +2 -2
  277. package/package.json +2 -2
@@ -1,55 +1,55 @@
1
1
  <template>
2
- <Card gap="8" variant="outline">
3
- <template #header>
4
- <div class="flex justify-between items-center">
5
- <div class="font-title-medium-prominent">ติดตามใครดี</div>
6
- <Button
7
- color="primary"
8
- variant="text"
9
- disabled-padding
10
- size="tiny"
11
- append-icon="lucide:chevron-right"
12
- :icon-size="16"
13
- @click="emit('view-all')"
14
- >
15
- ดูทั้งหมด
16
- </Button>
17
- </div>
18
- </template>
19
- <div v-if="!items || items.length === 0">
20
- <div
21
- class="flex flex-col items-center justify-center h-[392px] gap-[10px]"
22
- >
23
- <Icon name="pukaad:page-not-found" size="60" />
24
- <div class="font-body-large text-gray">ไม่พบข้อมูล</div>
25
- </div>
26
- </div>
27
- <div
28
- v-else
29
- v-for="item in props.items"
30
- :key="item.id"
31
- class="flex py-[8px] gap-[16px] items-center cursor-pointer"
32
- @click="handleClickCard(item)"
33
- >
34
- <!-- <Avatar :src="item.profile_image.image_url" alt="image" size="40" /> -->
35
- <div class="flex flex-col gap-[4px]">
36
- <div class="flex items-center gap-[4px]">
37
- <div class="font-body-large max-w-[268px] truncate">
38
- {{ item.profile_name }}
39
- </div>
40
- <Icon
41
- v-if="item.profile_verified === true"
42
- name="pukaad-verify"
43
- size="20"
44
- />
45
- </div>
46
- <div class="text-gray font-body-medium">
47
- กำลังเผยแพร่ {{ item.profile_posts }} • ผู้ติดตาม
48
- {{ item.profile_followers }}
49
- </div>
50
- </div>
51
- </div>
52
- </Card>
2
+ <Card gap="8" variant="outline">
3
+ <template #header>
4
+ <div class="flex justify-between items-center">
5
+ <div class="font-title-medium-prominent">ติดตามใครดี</div>
6
+ <Button
7
+ color="primary"
8
+ variant="text"
9
+ disabled-padding
10
+ size="tiny"
11
+ append-icon="lucide:chevron-right"
12
+ :icon-size="16"
13
+ @click="emit('view-all')"
14
+ >
15
+ ดูทั้งหมด
16
+ </Button>
17
+ </div>
18
+ </template>
19
+ <div v-if="!items || items.length === 0">
20
+ <div
21
+ class="flex flex-col items-center justify-center h-[392px] gap-[10px]"
22
+ >
23
+ <Icon name="pukaad:page-not-found" size="60" />
24
+ <div class="font-body-large text-gray">ไม่พบข้อมูล</div>
25
+ </div>
26
+ </div>
27
+ <div
28
+ v-else
29
+ v-for="item in props.items"
30
+ :key="item.id"
31
+ class="flex py-[8px] gap-[16px] items-center cursor-pointer"
32
+ @click="handleClickCard(item)"
33
+ >
34
+ <!-- <Avatar :src="item.profile_image.image_url" alt="image" size="40" /> -->
35
+ <div class="flex flex-col gap-[4px]">
36
+ <div class="flex items-center gap-[4px]">
37
+ <div class="font-body-large max-w-[268px] truncate">
38
+ {{ item.profile_name }}
39
+ </div>
40
+ <Icon
41
+ v-if="item.profile_verified === true"
42
+ name="pukaad-verify"
43
+ size="20"
44
+ />
45
+ </div>
46
+ <div class="text-gray font-body-medium">
47
+ กำลังเผยแพร่ {{ item.profile_posts }} • ผู้ติดตาม
48
+ {{ item.profile_followers }}
49
+ </div>
50
+ </div>
51
+ </div>
52
+ </Card>
53
53
  </template>
54
54
 
55
55
  <script setup>
@@ -1,80 +1,80 @@
1
1
  <template>
2
- <div class="py-[16px] border-b-[1px] border-mercury flex gap-[16px] w-full">
3
- <div v-if="props.item.user.avatar">
4
- <!-- <Avatar :src="props.item.user.avatar" alt="profile_myProfile" size="30" class="cursor-pointer"
5
- @click="NavigateToProfile(props.item.user.path_name)" /> -->
6
- </div>
7
- <div class="flex flex-col gap-[24px] w-full">
8
- <div class="flex flex-col gap-[8px]">
9
- <div class="flex flex-col gap-[6px]">
10
- <div class="flex flex-col gap-[4px]">
11
- <div class="flex justify-between items-center">
12
- <div
13
- @click="NavigateToProfile(props.item.user.path_name)"
14
- class="font-body-large cursor-pointer"
15
- >
16
- {{ props.item.user?.name }}
17
- </div>
18
- <div class="flex gap-[8px] items-center">
19
- <Button
20
- type="text"
21
- :variant="liked ? 'primary' : 'black'"
22
- :icon-size="20"
23
- size="tiny"
2
+ <div class="py-[16px] border-b-[1px] border-mercury flex gap-[16px] w-full">
3
+ <div v-if="props.item.user.avatar">
4
+ <!-- <Avatar :src="props.item.user.avatar" alt="profile_myProfile" size="30" class="cursor-pointer"
5
+ @click="NavigateToProfile(props.item.user.path_name)" /> -->
6
+ </div>
7
+ <div class="flex flex-col gap-[24px] w-full">
8
+ <div class="flex flex-col gap-[8px]">
9
+ <div class="flex flex-col gap-[6px]">
10
+ <div class="flex flex-col gap-[4px]">
11
+ <div class="flex justify-between items-center">
12
+ <div
13
+ @click="NavigateToProfile(props.item.user.path_name)"
14
+ class="font-body-large cursor-pointer"
15
+ >
16
+ {{ props.item.user?.name }}
17
+ </div>
18
+ <div class="flex gap-[8px] items-center">
19
+ <Button
20
+ type="text"
21
+ :variant="liked ? 'primary' : 'black'"
22
+ :icon-size="20"
23
+ size="tiny"
24
24
  :prepend-icon="
25
25
  liked ? 'pukaad:thumbs-up-solid' : 'pukaad:thumbs-up-regular'
26
- "
27
- :aria-pressed="liked"
28
- @click="toggleLike"
29
- disabled-padding
30
- >
31
- <div>
32
- {{ likeCount }}
33
- </div>
34
- </Button>
35
- <PickerOptionMenuUser :state="menuType" disabled-padding />
36
- </div>
37
- </div>
38
- <div class="text-gray font-body-small">
39
- {{ props.item.user?.review_count }} รีวิว •
40
- {{ props.item.user?.like_count }} ชื่นชอบรีวิว
41
- </div>
42
- </div>
43
- <div class="flex gap-[8px] items-center">
44
- <InputRating
45
- :size="16"
46
- readonly
47
- :model-value="props.item.review?.rating"
48
- />
49
- <div class="text-gray font-body-small">
50
- {{ props.item.review?.created_at }}
51
- </div>
52
- </div>
53
- </div>
54
-
55
- <div v-if="props.item.review?.description" class="font-body-large">
56
- {{ props.item.review?.description }}
57
- </div>
58
-
59
- <div v-if="props.item.review?.images?.length" class="flex gap-[8px]">
60
- <DisplayImageReview
61
- :items="props.item.review?.images"
62
- @select="selectImage"
63
- />
64
- </div>
65
- </div>
66
- <div v-if="props.item.replies">
67
- <div class="p-[16px] rounded-sm bg-bright">
68
- <div class="text-gray font-body-large">
69
- การตอบกลับจาก {{ props.item.replies?.author }}
70
- </div>
71
- <div class="font-body-large">
72
- {{ props.item.replies?.description }}
73
- </div>
74
- </div>
75
- </div>
76
- </div>
77
- </div>
26
+ "
27
+ :aria-pressed="liked"
28
+ @click="toggleLike"
29
+ disabled-padding
30
+ >
31
+ <div>
32
+ {{ likeCount }}
33
+ </div>
34
+ </Button>
35
+ <PickerOptionMenuUser :state="menuType" disabled-padding />
36
+ </div>
37
+ </div>
38
+ <div class="text-gray font-body-small">
39
+ {{ props.item.user?.review_count }} รีวิว •
40
+ {{ props.item.user?.like_count }} ชื่นชอบรีวิว
41
+ </div>
42
+ </div>
43
+ <div class="flex gap-[8px] items-center">
44
+ <InputRating
45
+ :size="16"
46
+ readonly
47
+ :model-value="props.item.review?.rating"
48
+ />
49
+ <div class="text-gray font-body-small">
50
+ {{ props.item.review?.created_at }}
51
+ </div>
52
+ </div>
53
+ </div>
54
+
55
+ <div v-if="props.item.review?.description" class="font-body-large">
56
+ {{ props.item.review?.description }}
57
+ </div>
58
+
59
+ <div v-if="props.item.review?.images?.length" class="flex gap-[8px]">
60
+ <DisplayImageReview
61
+ :items="props.item.review?.images"
62
+ @select="selectImage"
63
+ />
64
+ </div>
65
+ </div>
66
+ <div v-if="props.item.replies">
67
+ <div class="p-[16px] rounded-sm bg-bright">
68
+ <div class="text-gray font-body-large">
69
+ การตอบกลับจาก {{ props.item.replies?.author }}
70
+ </div>
71
+ <div class="font-body-large">
72
+ {{ props.item.replies?.description }}
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
78
  </template>
79
79
 
80
80
  <script setup>
@@ -1,78 +1,78 @@
1
1
  <template>
2
- <div>
3
- <div
4
- class="py-[16px] flex flex-col gap-[16px] w-[668px] border-mercury border-b-[1px]"
5
- >
6
- <div class="flex gap-[16px] items-center w-full">
7
- <div class="flex gap-[8px] items-center w-full">
8
- <!-- <Avatar :src="props.item.user.avatar" :size="40" class="cursor-pointer" @click="onProfileClick" /> -->
9
- <div class="flex flex-col gap-[4px]">
10
- <div class="flex gap-[4px] items-center">
11
- <div
12
- class="font-body-large cursor-pointer"
13
- @click="onProfileClick"
14
- >
15
- {{ props.item.user.name }}
16
- </div>
17
- <Icon
18
- v-if="props.item.user.verified"
19
- name="pukaad:verify"
20
- :size="16"
21
- />
22
- </div>
23
- <div class="text-gray font-body-small flex gap-[4px] items-center">
24
- <div>{{ props.item.content.create_at }}</div>
25
- <div>•</div>
26
- <div>{{ props.item.content.view_count }}</div>
27
- </div>
28
- </div>
29
- </div>
30
- <Button
31
- v-if="isPinned"
32
- prepend-icon="lucide:pin"
33
- variant="text"
34
- :icon-size="20"
35
- disabled-padding
36
- color="black"
37
- />
38
- <PickerOptionMenuUser
2
+ <div>
3
+ <div
4
+ class="py-[16px] flex flex-col gap-[16px] w-[668px] border-mercury border-b-[1px]"
5
+ >
6
+ <div class="flex gap-[16px] items-center w-full">
7
+ <div class="flex gap-[8px] items-center w-full">
8
+ <!-- <Avatar :src="props.item.user.avatar" :size="40" class="cursor-pointer" @click="onProfileClick" /> -->
9
+ <div class="flex flex-col gap-[4px]">
10
+ <div class="flex gap-[4px] items-center">
11
+ <div
12
+ class="font-body-large cursor-pointer"
13
+ @click="onProfileClick"
14
+ >
15
+ {{ props.item.user.name }}
16
+ </div>
17
+ <Icon
18
+ v-if="props.item.user.verified"
19
+ name="pukaad:verify"
20
+ :size="16"
21
+ />
22
+ </div>
23
+ <div class="text-gray font-body-small flex gap-[4px] items-center">
24
+ <div>{{ props.item.content.create_at }}</div>
25
+ <div>•</div>
26
+ <div>{{ props.item.content.view_count }}</div>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ <Button
31
+ v-if="isPinned"
32
+ prepend-icon="lucide:pin"
33
+ variant="text"
34
+ :icon-size="20"
35
+ disabled-padding
36
+ color="black"
37
+ />
38
+ <PickerOptionMenuUser
39
39
  :state="
40
40
  props.isProfile ? isPinned ? 'my-blog-pined' : 'my-blog' : 'report-announce'
41
- "
42
- disabled-padding
43
- @blog-unpin="onBlogUnpin"
44
- @blog-pin="onBlogPin"
45
- @blog-edit="onBlogEdit"
46
- />
47
- </div>
48
- <Image
49
- v-if="props.item.content.image"
50
- :src="props.item.content.image"
51
- :width="668"
52
- :height="376"
53
- fit="fill"
54
- />
55
- <div class="font-title-medium-prominent">
56
- {{ props.item.content.title }}
57
- </div>
58
- <div class="text-gray font-body-large">
59
- {{ props.item.content.description }}
60
- </div>
61
- <CardReaction
62
- padding="0"
63
- disabled-divider-top
64
- disabled-divider-bottom
41
+ "
42
+ disabled-padding
43
+ @blog-unpin="onBlogUnpin"
44
+ @blog-pin="onBlogPin"
45
+ @blog-edit="onBlogEdit"
46
+ />
47
+ </div>
48
+ <Image
49
+ v-if="props.item.content.image"
50
+ :src="props.item.content.image"
51
+ :width="668"
52
+ :height="376"
53
+ fit="fill"
54
+ />
55
+ <div class="font-title-medium-prominent">
56
+ {{ props.item.content.title }}
57
+ </div>
58
+ <div class="text-gray font-body-large">
59
+ {{ props.item.content.description }}
60
+ </div>
61
+ <CardReaction
62
+ padding="0"
63
+ disabled-divider-top
64
+ disabled-divider-bottom
65
65
  :item-count="{
66
66
  liked: props.item.content.likes_count,
67
67
  commented: props.item.content.comments_count,
68
68
  shared: props.item.content.shares_count
69
- }"
69
+ }"
70
70
  :itemReacted="{
71
71
  liked: props.item.content.liked
72
- }"
73
- />
74
- </div>
75
- </div>
72
+ }"
73
+ />
74
+ </div>
75
+ </div>
76
76
  </template>
77
77
 
78
78
  <script setup>
@@ -1,69 +1,69 @@
1
1
  <template>
2
- <div
2
+ <div
3
3
  :class="[
4
4
  'flex gap-[16px] items-center border-b border-mercury w-full',
5
5
  props.disabledPaddingHorizontal ? 'py-[16px]' : 'p-[16px]'
6
- ]"
7
- >
8
- <div class="flex w-full gap-[16px]">
9
- <!-- <Avatar
10
- :src="user.profile_image.image_url"
11
- size="48"
12
- class="cursor-pointer"
13
- /> -->
14
- <div class="flex flex-col gap-[4px]">
15
- <div class="flex gap-[4px] items-center">
16
- <div
6
+ ]"
7
+ >
8
+ <div class="flex w-full gap-[16px]">
9
+ <!-- <Avatar
10
+ :src="user.profile_image.image_url"
11
+ size="48"
12
+ class="cursor-pointer"
13
+ /> -->
14
+ <div class="flex flex-col gap-[4px]">
15
+ <div class="flex gap-[4px] items-center">
16
+ <div
17
17
  :class="[
18
18
  props.hiddenInfo ? 'font-body-large-prominent' : 'font-body-small-prominent'
19
- ]"
20
- >
21
- {{ user.profile_name }}
22
- </div>
23
- <Icon
24
- v-if="user.profile_verified === true"
25
- name="pukaad-verify"
26
- :size="props.hiddenInfo ? 20 : 16"
27
- />
28
- </div>
29
- <div
30
- v-if="!props.hiddenInfo"
19
+ ]"
20
+ >
21
+ {{ user.profile_name }}
22
+ </div>
23
+ <Icon
24
+ v-if="user.profile_verified === true"
25
+ name="pukaad-verify"
26
+ :size="props.hiddenInfo ? 20 : 16"
27
+ />
28
+ </div>
29
+ <div
30
+ v-if="!props.hiddenInfo"
31
31
  :class="[
32
32
  'flex gap-[4px] text-gray items-center',
33
33
  props.variant === 'search' ? 'font-body-large' : 'font-body-small'
34
- ]"
35
- >
36
- <div>ผู้ติดตาม {{ user.profile_followers }}</div>
37
- <div>•</div>
38
- <div>กำลังเผยแพร่ {{ user.profile_posts }}</div>
39
- </div>
40
- <div
41
- v-if="!props.hiddenInfo"
34
+ ]"
35
+ >
36
+ <div>ผู้ติดตาม {{ user.profile_followers }}</div>
37
+ <div>•</div>
38
+ <div>กำลังเผยแพร่ {{ user.profile_posts }}</div>
39
+ </div>
40
+ <div
41
+ v-if="!props.hiddenInfo"
42
42
  :class="[
43
43
  'text-gray',
44
44
  props.variant === 'search' ? 'font-body-large' : 'font-body-small'
45
- ]"
46
- >
47
- {{ user.profile_bio }}
48
- </div>
49
- </div>
50
- </div>
51
-
52
- <Button
53
- :color="buttonState.variant"
54
- :variant="buttonState.type"
55
- @click="buttonState.action"
56
- >
57
- {{ buttonState.text }}
58
- </Button>
59
-
60
- <PickerOptionMenuUser
61
- v-if="ellipsis"
62
- state="follower"
63
- circle
64
- variant="text"
65
- />
66
- </div>
45
+ ]"
46
+ >
47
+ {{ user.profile_bio }}
48
+ </div>
49
+ </div>
50
+ </div>
51
+
52
+ <Button
53
+ :color="buttonState.variant"
54
+ :variant="buttonState.type"
55
+ @click="buttonState.action"
56
+ >
57
+ {{ buttonState.text }}
58
+ </Button>
59
+
60
+ <PickerOptionMenuUser
61
+ v-if="ellipsis"
62
+ state="follower"
63
+ circle
64
+ variant="text"
65
+ />
66
+ </div>
67
67
  </template>
68
68
 
69
69
  <script setup>
@@ -1,29 +1,29 @@
1
1
  <template>
2
- <ShadCard v-slot="slotScope">
3
- <ShadCardHeader
4
- v-if="$slots.header || props.title || props.description"
5
- v-bind="slotScope"
6
- >
7
- <slot name="header">
8
- <ShadCardTitle v-if="props.title">
9
- <slot name="title">
10
- {{ props.title }}
11
- </slot>
12
- </ShadCardTitle>
13
- <ShadCardDescription>
14
- <slot name="description">
15
- {{ props.description }}
16
- </slot>
17
- </ShadCardDescription>
18
- </slot>
19
- </ShadCardHeader>
20
- <ShadCardContent>
21
- <slot v-bind="slotScope" />
22
- </ShadCardContent>
23
- <ShadCardFooter v-if="$slots.footer">
24
- <slot name="footer" v-bind="slotScope" />
25
- </ShadCardFooter>
26
- </ShadCard>
2
+ <ShadCard v-slot="slotScope">
3
+ <ShadCardHeader
4
+ v-if="$slots.header || props.title || props.description"
5
+ v-bind="slotScope"
6
+ >
7
+ <slot name="header">
8
+ <ShadCardTitle v-if="props.title">
9
+ <slot name="title">
10
+ {{ props.title }}
11
+ </slot>
12
+ </ShadCardTitle>
13
+ <ShadCardDescription>
14
+ <slot name="description">
15
+ {{ props.description }}
16
+ </slot>
17
+ </ShadCardDescription>
18
+ </slot>
19
+ </ShadCardHeader>
20
+ <ShadCardContent>
21
+ <slot v-bind="slotScope" />
22
+ </ShadCardContent>
23
+ <ShadCardFooter v-if="$slots.footer">
24
+ <slot name="footer" v-bind="slotScope" />
25
+ </ShadCardFooter>
26
+ </ShadCard>
27
27
  </template>
28
28
 
29
29
  <script setup>
@@ -2,35 +2,35 @@
2
2
  <div class="relative bg-black" @mouseenter="isHovered = true" @mouseleave="isHovered = false" :style="{
3
3
  width: props.fullWidth ? '100%' : `${props.width}px`,
4
4
  height: props.fullHeight ? '100%' : `${props.height}px`
5
- }">
6
- <div v-if="props.items?.length && props.items[currentIndex]" class="flex items-center justify-center w-full h-full"
7
- @click="onClickedImage">
8
- <Image v-if="!props.items[currentIndex]?.includes('.mp4')" :src="props.items[currentIndex]"
9
- :width="props.fullWidth ? 'auto' : props.width" :height="props.fullHeight ? 'auto' : props.height"
10
- fit="contain" />
11
- <Video v-else :src="props.items[currentIndex]" fit="contain" controls full-width full-height />
12
- </div>
13
- <div v-if="props.items.length > 1 && isHovered" class="absolute top-[16px] left-1/2 transform -translate-x-1/2">
14
- <div class="rounded-full py-[4px] px-[8px] bg-black/50 w-[100px] items-center">
15
- <div class="font-body-medium w-full text-center text-white">
16
- {{ currentIndex + 1 }}/{{ props.items.length }}
17
- </div>
18
- </div>
19
- </div>
20
- <div v-if="props.items.length > 1 && currentIndex > 0 && isHovered"
21
- class="absolute left-[16px] top-1/2 transform -translate-y-1/2">
22
- <Button prependIcon="lucide:chevron-left" circle variant="solid" color="black" @click="back" :icon-size="24"
23
- :padding="0" />
24
- </div>
25
- <div v-if="props.items.length > 1 && currentIndex < props.items.length - 1 && isHovered"
26
- class="absolute right-[16px] top-1/2 transform -translate-y-1/2">
27
- <Button prependIcon="lucide:chevron-right" circle variant="solid" color="black" @click="next" :icon-size="24"
28
- :padding="0" />
29
- </div>
30
- <div class="absolute bottom-[0] w-full">
31
- <slot name="default" />
32
- </div>
33
- </div>
5
+ }">
6
+ <div v-if="props.items?.length && props.items[currentIndex]" class="flex items-center justify-center w-full h-full"
7
+ @click="onClickedImage">
8
+ <Image v-if="!props.items[currentIndex]?.includes('.mp4')" :src="props.items[currentIndex]"
9
+ :width="props.fullWidth ? 'auto' : props.width" :height="props.fullHeight ? 'auto' : props.height"
10
+ fit="contain" />
11
+ <Video v-else :src="props.items[currentIndex]" fit="contain" controls full-width full-height />
12
+ </div>
13
+ <div v-if="props.items.length > 1 && isHovered" class="absolute top-[16px] left-1/2 transform -translate-x-1/2">
14
+ <div class="rounded-full py-[4px] px-[8px] bg-black/50 w-[100px] items-center">
15
+ <div class="font-body-medium w-full text-center text-white">
16
+ {{ currentIndex + 1 }}/{{ props.items.length }}
17
+ </div>
18
+ </div>
19
+ </div>
20
+ <div v-if="props.items.length > 1 && currentIndex > 0 && isHovered"
21
+ class="absolute left-[16px] top-1/2 transform -translate-y-1/2">
22
+ <Button prependIcon="lucide:chevron-left" circle variant="solid" color="black" @click="back" :icon-size="24"
23
+ :padding="0" />
24
+ </div>
25
+ <div v-if="props.items.length > 1 && currentIndex < props.items.length - 1 && isHovered"
26
+ class="absolute right-[16px] top-1/2 transform -translate-y-1/2">
27
+ <Button prependIcon="lucide:chevron-right" circle variant="solid" color="black" @click="next" :icon-size="24"
28
+ :padding="0" />
29
+ </div>
30
+ <div class="absolute bottom-[0] w-full">
31
+ <slot name="default" />
32
+ </div>
33
+ </div>
34
34
  </template>
35
35
 
36
36
  <script setup>