pukaad-ui-lib 1.450.2 → 1.451.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/runtime/assets/json/social-icon.json +76 -76
  3. package/dist/runtime/assets/svg/bell-outline.svg +3 -3
  4. package/dist/runtime/assets/svg/bookmark-solid.svg +2 -2
  5. package/dist/runtime/assets/svg/box.svg +22 -22
  6. package/dist/runtime/assets/svg/camera-plus.svg +9 -9
  7. package/dist/runtime/assets/svg/clock-fading.svg +46 -46
  8. package/dist/runtime/assets/svg/coin.svg +20 -20
  9. package/dist/runtime/assets/svg/empty-document.svg +15 -15
  10. package/dist/runtime/assets/svg/file-jpg.svg +14 -14
  11. package/dist/runtime/assets/svg/file-pdf.svg +13 -13
  12. package/dist/runtime/assets/svg/flags/cn.svg +15 -15
  13. package/dist/runtime/assets/svg/flags/th.svg +12 -12
  14. package/dist/runtime/assets/svg/flags/uk.svg +14 -14
  15. package/dist/runtime/assets/svg/heart-fill.svg +2 -2
  16. package/dist/runtime/assets/svg/id-card-example-1.svg +18 -18
  17. package/dist/runtime/assets/svg/id-card-example.svg +9 -9
  18. package/dist/runtime/assets/svg/id-card-guideline.svg +7 -7
  19. package/dist/runtime/assets/svg/id-card-selfie-guideline.svg +15 -15
  20. package/dist/runtime/assets/svg/map-location-dot.svg +9 -9
  21. package/dist/runtime/assets/svg/map-pin.svg +6 -6
  22. package/dist/runtime/assets/svg/memsg-circle.svg +7 -7
  23. package/dist/runtime/assets/svg/memsg-fade.svg +5 -5
  24. package/dist/runtime/assets/svg/memsg-logo-outline.svg +3 -3
  25. package/dist/runtime/assets/svg/memsg-square.svg +9 -9
  26. package/dist/runtime/assets/svg/message.svg +3 -3
  27. package/dist/runtime/assets/svg/page-not-found.svg +9 -9
  28. package/dist/runtime/assets/svg/passport-example.svg +26 -26
  29. package/dist/runtime/assets/svg/passport-guideline.svg +6 -6
  30. package/dist/runtime/assets/svg/share-from-square.svg +3 -3
  31. package/dist/runtime/assets/svg/share.svg +2 -2
  32. package/dist/runtime/assets/svg/shopping-cart.svg +16 -16
  33. package/dist/runtime/assets/svg/socials/Email.svg +12 -12
  34. package/dist/runtime/assets/svg/socials/Facebook.svg +4 -4
  35. package/dist/runtime/assets/svg/socials/Instagram.svg +14 -14
  36. package/dist/runtime/assets/svg/socials/Line.svg +11 -11
  37. package/dist/runtime/assets/svg/socials/LinkedIn.svg +5 -5
  38. package/dist/runtime/assets/svg/socials/Pinterest.svg +4 -4
  39. package/dist/runtime/assets/svg/socials/SnapChat.svg +5 -5
  40. package/dist/runtime/assets/svg/socials/Threads.svg +12 -12
  41. package/dist/runtime/assets/svg/socials/TikTok.svg +6 -6
  42. package/dist/runtime/assets/svg/socials/Tumblr.svg +4 -4
  43. package/dist/runtime/assets/svg/socials/Website.svg +11 -11
  44. package/dist/runtime/assets/svg/socials/WhatsApp.svg +5 -5
  45. package/dist/runtime/assets/svg/socials/X.svg +4 -4
  46. package/dist/runtime/assets/svg/socials/YouTube.svg +5 -5
  47. package/dist/runtime/assets/svg/tag-empty.svg +25 -25
  48. package/dist/runtime/assets/svg/thumbs-up-regular.svg +9 -9
  49. package/dist/runtime/assets/svg/thumbs-up-solid.svg +2 -2
  50. package/dist/runtime/assets/svg/vector.svg +2 -2
  51. package/dist/runtime/assets/svg/verify.svg +10 -10
  52. package/dist/runtime/assets/svg/write-review.svg +15 -15
  53. package/dist/runtime/components/avatar-profile.vue +29 -29
  54. package/dist/runtime/components/avatar.vue +20 -20
  55. package/dist/runtime/components/badge/badge-count.vue +17 -17
  56. package/dist/runtime/components/button.vue +18 -18
  57. package/dist/runtime/components/card/card-blog.vue +47 -47
  58. package/dist/runtime/components/card/card-content/card-content-close.vue +9 -9
  59. package/dist/runtime/components/card/card-content/card-content-disable.vue +3 -3
  60. package/dist/runtime/components/card/card-content/card-content-image.vue +21 -21
  61. package/dist/runtime/components/card/card-content/card-content-menu.vue +14 -14
  62. package/dist/runtime/components/card/card-content/card-content-post-it.vue +21 -21
  63. package/dist/runtime/components/card/card-content/card-content-recommend.vue +32 -32
  64. package/dist/runtime/components/card/card-content/card-content-select.vue +9 -9
  65. package/dist/runtime/components/card/card-content/card-content-time.vue +7 -7
  66. package/dist/runtime/components/card/card-content/card-content-video.vue +25 -25
  67. package/dist/runtime/components/card/card-content/card-content.vue +46 -46
  68. package/dist/runtime/components/card/card-file.vue +35 -35
  69. package/dist/runtime/components/card/card-mention/card-mention-skeleton.vue +14 -14
  70. package/dist/runtime/components/card/card-mention/card-mention.vue +80 -80
  71. package/dist/runtime/components/card/card-opening-hours.vue +50 -50
  72. package/dist/runtime/components/card/card-place/card-place-detail.vue +95 -95
  73. package/dist/runtime/components/card/card-place/card-place-item.vue +53 -53
  74. package/dist/runtime/components/card/card-place/card-place-search-row.vue +38 -38
  75. package/dist/runtime/components/card/card-place/card-place.vue +42 -42
  76. package/dist/runtime/components/card/card-profile/card-profile-about.vue +81 -81
  77. package/dist/runtime/components/card/card-profile/card-profile-header.vue +94 -94
  78. package/dist/runtime/components/card/card-reaction.vue +23 -23
  79. package/dist/runtime/components/card/card-recommend/card-recommend-blog.vue +42 -42
  80. package/dist/runtime/components/card/card-recommend/card-recommend-place.vue +56 -56
  81. package/dist/runtime/components/card/card-recommend/card-recommend-profile.vue +47 -47
  82. package/dist/runtime/components/card/card-refer.vue +86 -86
  83. package/dist/runtime/components/card/card-review.vue +136 -136
  84. package/dist/runtime/components/card/card-spotlight.vue +18 -18
  85. package/dist/runtime/components/card/card-user/card-user-blog.vue +76 -76
  86. package/dist/runtime/components/card/card-user/card-user-item.vue +24 -24
  87. package/dist/runtime/components/card/card.vue +29 -29
  88. package/dist/runtime/components/carousel.vue +31 -31
  89. package/dist/runtime/components/chart/chart-approval-activity.vue +68 -68
  90. package/dist/runtime/components/chat/chat-conversation-item-skeleton.vue +7 -7
  91. package/dist/runtime/components/chat/chat-conversation-item.vue +46 -46
  92. package/dist/runtime/components/chat/chat-conversation-list.vue +26 -26
  93. package/dist/runtime/components/chat/chat-media-grid.vue +50 -50
  94. package/dist/runtime/components/chat/chat-media-viewer.vue +25 -25
  95. package/dist/runtime/components/chat/chat-message-bubble.vue +98 -98
  96. package/dist/runtime/components/chat/chat-room.vue +128 -128
  97. package/dist/runtime/components/chat/chat-welcome.vue +6 -6
  98. package/dist/runtime/components/chip.vue +10 -10
  99. package/dist/runtime/components/collapse/collapse-multiple.vue +42 -42
  100. package/dist/runtime/components/collapse/collapse.vue +23 -23
  101. package/dist/runtime/components/comment.vue +134 -134
  102. package/dist/runtime/components/data-table.vue +140 -140
  103. package/dist/runtime/components/display/display-image-place.vue +231 -231
  104. package/dist/runtime/components/display/display-image-review.vue +10 -10
  105. package/dist/runtime/components/display/display-image.vue +49 -49
  106. package/dist/runtime/components/display/display-rating-summary.vue +53 -53
  107. package/dist/runtime/components/display/display-video.vue +146 -146
  108. package/dist/runtime/components/divider.vue +8 -8
  109. package/dist/runtime/components/draggable.vue +15 -15
  110. package/dist/runtime/components/drawer/drawer-notification.vue +105 -105
  111. package/dist/runtime/components/drawer/drawer-post-blog.vue +70 -70
  112. package/dist/runtime/components/drawer/drawer-post-content.vue +153 -153
  113. package/dist/runtime/components/drawer/drawer-post-review.vue +77 -77
  114. package/dist/runtime/components/drawer/drawer-profile-about.vue +52 -52
  115. package/dist/runtime/components/drawer/drawer-profile-network.vue +241 -241
  116. package/dist/runtime/components/drawer/drawer-suggest-place/drawer-suggest-place.vue +112 -112
  117. package/dist/runtime/components/drawer/drawer-suggest-place/suggest-place-form.vue +150 -150
  118. package/dist/runtime/components/drawer/drawer-suggest-place/suggest-place-map.vue +3 -3
  119. package/dist/runtime/components/drawer/drawer.vue +24 -24
  120. package/dist/runtime/components/dropdown.vue +8 -8
  121. package/dist/runtime/components/filter/filter-list-chip.vue +10 -10
  122. package/dist/runtime/components/filter/filter-list.vue +17 -17
  123. package/dist/runtime/components/google-translate.client.vue +1 -1
  124. package/dist/runtime/components/icons.vue +1 -1
  125. package/dist/runtime/components/image/image-cropper.vue +9 -9
  126. package/dist/runtime/components/image/image.vue +27 -27
  127. package/dist/runtime/components/input/input-OTP.vue +27 -27
  128. package/dist/runtime/components/input/input-address.vue +154 -154
  129. package/dist/runtime/components/input/input-autocomplete.vue +101 -101
  130. package/dist/runtime/components/input/input-birth-date.vue +20 -20
  131. package/dist/runtime/components/input/input-chat.vue +91 -91
  132. package/dist/runtime/components/input/input-checkbox.vue +24 -24
  133. package/dist/runtime/components/input/input-combobox.vue +112 -112
  134. package/dist/runtime/components/input/input-comment.vue +45 -45
  135. package/dist/runtime/components/input/input-content.vue +32 -32
  136. package/dist/runtime/components/input/input-date-opening-special.vue +126 -126
  137. package/dist/runtime/components/input/input-date-opening.vue +96 -96
  138. package/dist/runtime/components/input/input-date-picker.vue +113 -113
  139. package/dist/runtime/components/input/input-email.vue +9 -9
  140. package/dist/runtime/components/input/input-file.vue +149 -149
  141. package/dist/runtime/components/input/input-id-card.vue +54 -54
  142. package/dist/runtime/components/input/input-link.vue +25 -25
  143. package/dist/runtime/components/input/input-localized-name.vue +26 -26
  144. package/dist/runtime/components/input/input-mention.vue +106 -106
  145. package/dist/runtime/components/input/input-passport.vue +44 -44
  146. package/dist/runtime/components/input/input-password.vue +43 -43
  147. package/dist/runtime/components/input/input-personal-card-id-selfie.vue +44 -44
  148. package/dist/runtime/components/input/input-personal-card-id.vue +44 -44
  149. package/dist/runtime/components/input/input-phone.vue +11 -11
  150. package/dist/runtime/components/input/input-profile-name.vue +10 -10
  151. package/dist/runtime/components/input/input-radio.vue +55 -55
  152. package/dist/runtime/components/input/input-rating.vue +6 -6
  153. package/dist/runtime/components/input/input-recaptcha.vue +19 -19
  154. package/dist/runtime/components/input/input-search.vue +71 -71
  155. package/dist/runtime/components/input/input-select-place.vue +149 -149
  156. package/dist/runtime/components/input/input-select-province.vue +94 -94
  157. package/dist/runtime/components/input/input-select.vue +57 -57
  158. package/dist/runtime/components/input/input-slider.vue +19 -19
  159. package/dist/runtime/components/input/input-suggest.vue +47 -47
  160. package/dist/runtime/components/input/input-switch.vue +25 -25
  161. package/dist/runtime/components/input/input-tag-modal.vue +85 -85
  162. package/dist/runtime/components/input/input-tag.vue +154 -154
  163. package/dist/runtime/components/input/input-text-field.vue +90 -90
  164. package/dist/runtime/components/input/input-textarea.vue +58 -58
  165. package/dist/runtime/components/input/input-typed-field.vue +51 -51
  166. package/dist/runtime/components/label/label-card-content.vue +49 -49
  167. package/dist/runtime/components/label/label.vue +45 -45
  168. package/dist/runtime/components/loading.vue +8 -8
  169. package/dist/runtime/components/modal/modal-2FA-generate.vue +48 -48
  170. package/dist/runtime/components/modal/modal-2FA.vue +28 -28
  171. package/dist/runtime/components/modal/modal-account-disabled-alert.vue +33 -33
  172. package/dist/runtime/components/modal/modal-account-disabled-confirmed.vue +32 -32
  173. package/dist/runtime/components/modal/modal-account-disabled-reason.vue +45 -45
  174. package/dist/runtime/components/modal/modal-account-disabled.vue +9 -9
  175. package/dist/runtime/components/modal/modal-display-image.vue +69 -54
  176. package/dist/runtime/components/modal/modal-email-OTP.vue +32 -32
  177. package/dist/runtime/components/modal/modal-forgot-password.vue +9 -9
  178. package/dist/runtime/components/modal/modal-media-view.vue +171 -171
  179. package/dist/runtime/components/modal/modal-passport.vue +151 -151
  180. package/dist/runtime/components/modal/modal-password-confirmed.vue +30 -30
  181. package/dist/runtime/components/modal/modal-password-new.vue +34 -34
  182. package/dist/runtime/components/modal/modal-password-verify.vue +13 -13
  183. package/dist/runtime/components/modal/modal-personal-card-ID-selfie.vue +116 -116
  184. package/dist/runtime/components/modal/modal-personal-card-ID.vue +162 -162
  185. package/dist/runtime/components/modal/modal-phone-OTP.vue +49 -49
  186. package/dist/runtime/components/modal/modal-profile-edit.vue +71 -69
  187. package/dist/runtime/components/modal/modal-province-domain.vue +25 -25
  188. package/dist/runtime/components/modal/modal-report.vue +48 -48
  189. package/dist/runtime/components/modal/modal-secure.vue +7 -7
  190. package/dist/runtime/components/modal/modal-share.vue +20 -20
  191. package/dist/runtime/components/modal/modal-user-account-search.vue +69 -69
  192. package/dist/runtime/components/modal/modal.vue +42 -42
  193. package/dist/runtime/components/modal/suggest-edit-place/modal-suggest-edit-place.vue +251 -251
  194. package/dist/runtime/components/modal/suggest-edit-place/place-Adddateopening.vue +12 -12
  195. package/dist/runtime/components/modal/suggest-edit-place/place-Adddescription.vue +18 -18
  196. package/dist/runtime/components/modal/suggest-edit-place/place-Addlink.vue +12 -12
  197. package/dist/runtime/components/modal/suggest-edit-place/place-Addphone.vue +12 -12
  198. package/dist/runtime/components/modal/suggest-edit-place/place-address.vue +43 -43
  199. package/dist/runtime/components/modal/suggest-edit-place/place-category.vue +32 -32
  200. package/dist/runtime/components/modal/suggest-edit-place/place-dateopening.vue +32 -32
  201. package/dist/runtime/components/modal/suggest-edit-place/place-description.vue +32 -32
  202. package/dist/runtime/components/modal/suggest-edit-place/place-link.vue +41 -41
  203. package/dist/runtime/components/modal/suggest-edit-place/place-name.vue +70 -70
  204. package/dist/runtime/components/modal/suggest-edit-place/place-phone.vue +26 -26
  205. package/dist/runtime/components/pagination.vue +47 -47
  206. package/dist/runtime/components/picker/picker-image-cover-profile.vue +80 -80
  207. package/dist/runtime/components/picker/picker-image-profile.vue +102 -102
  208. package/dist/runtime/components/picker/picker-option-menu/picker-option-menu-user.vue +22 -22
  209. package/dist/runtime/components/picker/picker-option-menu/picker-option-menu.vue +28 -28
  210. package/dist/runtime/components/progress-bar.vue +9 -9
  211. package/dist/runtime/components/read-more-text.vue +4 -4
  212. package/dist/runtime/components/table.vue +79 -79
  213. package/dist/runtime/components/timeline.vue +59 -59
  214. package/dist/runtime/components/tooltip.vue +12 -12
  215. package/dist/runtime/components/ui/accordion/Accordion.vue +3 -3
  216. package/dist/runtime/components/ui/accordion/AccordionContent.vue +9 -9
  217. package/dist/runtime/components/ui/accordion/AccordionItem.vue +8 -8
  218. package/dist/runtime/components/ui/accordion/AccordionTrigger.vue +16 -16
  219. package/dist/runtime/components/ui/alert/Alert.vue +7 -7
  220. package/dist/runtime/components/ui/alert/AlertDescription.vue +6 -6
  221. package/dist/runtime/components/ui/alert/AlertTitle.vue +6 -6
  222. package/dist/runtime/components/ui/alert-dialog/AlertDialog.vue +3 -3
  223. package/dist/runtime/components/ui/alert-dialog/AlertDialogAction.vue +3 -3
  224. package/dist/runtime/components/ui/alert-dialog/AlertDialogCancel.vue +6 -6
  225. package/dist/runtime/components/ui/alert-dialog/AlertDialogContent.vue +13 -13
  226. package/dist/runtime/components/ui/alert-dialog/AlertDialogDescription.vue +7 -7
  227. package/dist/runtime/components/ui/alert-dialog/AlertDialogFooter.vue +6 -6
  228. package/dist/runtime/components/ui/alert-dialog/AlertDialogHeader.vue +6 -6
  229. package/dist/runtime/components/ui/alert-dialog/AlertDialogTitle.vue +7 -7
  230. package/dist/runtime/components/ui/alert-dialog/AlertDialogTrigger.vue +3 -3
  231. package/dist/runtime/components/ui/avatar/Avatar.vue +6 -6
  232. package/dist/runtime/components/ui/avatar/AvatarFallback.vue +7 -7
  233. package/dist/runtime/components/ui/avatar/AvatarImage.vue +7 -7
  234. package/dist/runtime/components/ui/badge/Badge.vue +7 -7
  235. package/dist/runtime/components/ui/breadcrumb/Breadcrumb.vue +7 -7
  236. package/dist/runtime/components/ui/breadcrumb/BreadcrumbEllipsis.vue +11 -11
  237. package/dist/runtime/components/ui/breadcrumb/BreadcrumbItem.vue +6 -6
  238. package/dist/runtime/components/ui/breadcrumb/BreadcrumbLink.vue +8 -8
  239. package/dist/runtime/components/ui/breadcrumb/BreadcrumbList.vue +6 -6
  240. package/dist/runtime/components/ui/breadcrumb/BreadcrumbPage.vue +9 -9
  241. package/dist/runtime/components/ui/breadcrumb/BreadcrumbSeparator.vue +10 -10
  242. package/dist/runtime/components/ui/button/Button.vue +8 -8
  243. package/dist/runtime/components/ui/calendar/Calendar.vue +128 -128
  244. package/dist/runtime/components/ui/calendar/CalendarCell.vue +7 -7
  245. package/dist/runtime/components/ui/calendar/CalendarCellTrigger.vue +7 -7
  246. package/dist/runtime/components/ui/calendar/CalendarGrid.vue +7 -7
  247. package/dist/runtime/components/ui/calendar/CalendarGridBody.vue +6 -6
  248. package/dist/runtime/components/ui/calendar/CalendarGridHead.vue +6 -6
  249. package/dist/runtime/components/ui/calendar/CalendarGridRow.vue +6 -6
  250. package/dist/runtime/components/ui/calendar/CalendarHeadCell.vue +7 -7
  251. package/dist/runtime/components/ui/calendar/CalendarHeader.vue +7 -7
  252. package/dist/runtime/components/ui/calendar/CalendarHeading.vue +10 -10
  253. package/dist/runtime/components/ui/calendar/CalendarNextButton.vue +9 -9
  254. package/dist/runtime/components/ui/calendar/CalendarPrevButton.vue +9 -9
  255. package/dist/runtime/components/ui/card/Card.vue +8 -8
  256. package/dist/runtime/components/ui/card/CardAction.vue +6 -6
  257. package/dist/runtime/components/ui/card/CardContent.vue +6 -6
  258. package/dist/runtime/components/ui/card/CardDescription.vue +6 -6
  259. package/dist/runtime/components/ui/card/CardFooter.vue +6 -6
  260. package/dist/runtime/components/ui/card/CardHeader.vue +6 -6
  261. package/dist/runtime/components/ui/card/CardTitle.vue +6 -6
  262. package/dist/runtime/components/ui/carousel/Carousel.vue +10 -10
  263. package/dist/runtime/components/ui/carousel/CarouselContent.vue +12 -12
  264. package/dist/runtime/components/ui/carousel/CarouselItem.vue +8 -8
  265. package/dist/runtime/components/ui/carousel/CarouselNext.vue +13 -13
  266. package/dist/runtime/components/ui/carousel/CarouselPrevious.vue +13 -13
  267. package/dist/runtime/components/ui/chart/ChartContainer.vue +9 -9
  268. package/dist/runtime/components/ui/chart/ChartLegendContent.vue +19 -19
  269. package/dist/runtime/components/ui/chart/ChartStyle.vue +6 -6
  270. package/dist/runtime/components/ui/chart/ChartTooltipContent.vue +38 -38
  271. package/dist/runtime/components/ui/checkbox/Checkbox.vue +8 -8
  272. package/dist/runtime/components/ui/command/Command.vue +7 -7
  273. package/dist/runtime/components/ui/command/CommandDialog.vue +11 -11
  274. package/dist/runtime/components/ui/command/CommandEmpty.vue +16 -16
  275. package/dist/runtime/components/ui/command/CommandGroup.vue +16 -16
  276. package/dist/runtime/components/ui/command/CommandInput.vue +13 -13
  277. package/dist/runtime/components/ui/command/CommandItem.vue +11 -11
  278. package/dist/runtime/components/ui/command/CommandList.vue +9 -9
  279. package/dist/runtime/components/ui/command/CommandSeparator.vue +7 -7
  280. package/dist/runtime/components/ui/command/CommandShortcut.vue +6 -6
  281. package/dist/runtime/components/ui/dialog/Dialog.vue +3 -3
  282. package/dist/runtime/components/ui/dialog/DialogClose.vue +3 -3
  283. package/dist/runtime/components/ui/dialog/DialogContent.vue +26 -26
  284. package/dist/runtime/components/ui/dialog/DialogDescription.vue +7 -7
  285. package/dist/runtime/components/ui/dialog/DialogFooter.vue +6 -6
  286. package/dist/runtime/components/ui/dialog/DialogHeader.vue +6 -6
  287. package/dist/runtime/components/ui/dialog/DialogOverlay.vue +7 -7
  288. package/dist/runtime/components/ui/dialog/DialogScrollContent.vue +20 -20
  289. package/dist/runtime/components/ui/dialog/DialogTitle.vue +7 -7
  290. package/dist/runtime/components/ui/dialog/DialogTrigger.vue +3 -3
  291. package/dist/runtime/components/ui/dropdown-menu/DropdownMenu.vue +6 -6
  292. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +12 -12
  293. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuContent.vue +10 -10
  294. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuGroup.vue +6 -6
  295. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuItem.vue +9 -9
  296. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuLabel.vue +8 -8
  297. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +6 -6
  298. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +16 -16
  299. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSeparator.vue +5 -5
  300. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuShortcut.vue +6 -6
  301. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSub.vue +3 -3
  302. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.vue +7 -7
  303. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +8 -8
  304. package/dist/runtime/components/ui/dropdown-menu/DropdownMenuTrigger.vue +6 -6
  305. package/dist/runtime/components/ui/form/FormControl.vue +8 -8
  306. package/dist/runtime/components/ui/form/FormDescription.vue +7 -7
  307. package/dist/runtime/components/ui/form/FormItem.vue +3 -3
  308. package/dist/runtime/components/ui/form/FormLabel.vue +8 -8
  309. package/dist/runtime/components/ui/form/FormMessage.vue +7 -7
  310. package/dist/runtime/components/ui/input/Input.vue +7 -7
  311. package/dist/runtime/components/ui/input-group/InputGroup.vue +7 -7
  312. package/dist/runtime/components/ui/input-group/InputGroupAddon.vue +9 -9
  313. package/dist/runtime/components/ui/input-group/InputGroupButton.vue +8 -8
  314. package/dist/runtime/components/ui/input-group/InputGroupInput.vue +5 -5
  315. package/dist/runtime/components/ui/input-group/InputGroupText.vue +5 -5
  316. package/dist/runtime/components/ui/input-group/InputGroupTextarea.vue +4 -4
  317. package/dist/runtime/components/ui/label/Label.vue +7 -7
  318. package/dist/runtime/components/ui/native-select/NativeSelect.vue +19 -19
  319. package/dist/runtime/components/ui/native-select/NativeSelectOptGroup.vue +3 -3
  320. package/dist/runtime/components/ui/native-select/NativeSelectOption.vue +3 -3
  321. package/dist/runtime/components/ui/pagination/Pagination.vue +8 -8
  322. package/dist/runtime/components/ui/pagination/PaginationContent.vue +8 -8
  323. package/dist/runtime/components/ui/pagination/PaginationEllipsis.vue +10 -10
  324. package/dist/runtime/components/ui/pagination/PaginationFirst.vue +10 -10
  325. package/dist/runtime/components/ui/pagination/PaginationItem.vue +7 -7
  326. package/dist/runtime/components/ui/pagination/PaginationLast.vue +10 -10
  327. package/dist/runtime/components/ui/pagination/PaginationNext.vue +10 -10
  328. package/dist/runtime/components/ui/pagination/PaginationPrevious.vue +10 -10
  329. package/dist/runtime/components/ui/pin-input/PinInput.vue +7 -7
  330. package/dist/runtime/components/ui/pin-input/PinInputGroup.vue +7 -7
  331. package/dist/runtime/components/ui/pin-input/PinInputSeparator.vue +3 -3
  332. package/dist/runtime/components/ui/pin-input/PinInputSlot.vue +5 -5
  333. package/dist/runtime/components/ui/popover/Popover.vue +7 -7
  334. package/dist/runtime/components/ui/popover/PopoverAnchor.vue +6 -6
  335. package/dist/runtime/components/ui/popover/PopoverContent.vue +9 -9
  336. package/dist/runtime/components/ui/popover/PopoverTrigger.vue +6 -6
  337. package/dist/runtime/components/ui/scroll-area/ScrollArea.vue +14 -14
  338. package/dist/runtime/components/ui/scroll-area/ScrollBar.vue +10 -10
  339. package/dist/runtime/components/ui/select/Select.vue +7 -7
  340. package/dist/runtime/components/ui/select/SelectContent.vue +10 -10
  341. package/dist/runtime/components/ui/select/SelectGroup.vue +6 -6
  342. package/dist/runtime/components/ui/select/SelectItem.vue +17 -17
  343. package/dist/runtime/components/ui/select/SelectItemText.vue +6 -6
  344. package/dist/runtime/components/ui/select/SelectLabel.vue +6 -6
  345. package/dist/runtime/components/ui/select/SelectScrollDownButton.vue +9 -9
  346. package/dist/runtime/components/ui/select/SelectScrollUpButton.vue +9 -9
  347. package/dist/runtime/components/ui/select/SelectSeparator.vue +5 -5
  348. package/dist/runtime/components/ui/select/SelectTrigger.vue +11 -11
  349. package/dist/runtime/components/ui/select/SelectValue.vue +6 -6
  350. package/dist/runtime/components/ui/separator/Separator.vue +5 -5
  351. package/dist/runtime/components/ui/sheet/Sheet.vue +3 -3
  352. package/dist/runtime/components/ui/sheet/SheetClose.vue +3 -3
  353. package/dist/runtime/components/ui/sheet/SheetContent.vue +26 -26
  354. package/dist/runtime/components/ui/sheet/SheetDescription.vue +7 -7
  355. package/dist/runtime/components/ui/sheet/SheetFooter.vue +6 -6
  356. package/dist/runtime/components/ui/sheet/SheetHeader.vue +6 -6
  357. package/dist/runtime/components/ui/sheet/SheetOverlay.vue +7 -7
  358. package/dist/runtime/components/ui/sheet/SheetTitle.vue +7 -7
  359. package/dist/runtime/components/ui/sheet/SheetTrigger.vue +3 -3
  360. package/dist/runtime/components/ui/skeleton/Skeleton.vue +4 -4
  361. package/dist/runtime/components/ui/spinner/Spinner.vue +6 -6
  362. package/dist/runtime/components/ui/table/Table.vue +5 -5
  363. package/dist/runtime/components/ui/table/TableBody.vue +6 -6
  364. package/dist/runtime/components/ui/table/TableCaption.vue +6 -6
  365. package/dist/runtime/components/ui/table/TableCell.vue +6 -6
  366. package/dist/runtime/components/ui/table/TableEmpty.vue +15 -15
  367. package/dist/runtime/components/ui/table/TableFooter.vue +6 -6
  368. package/dist/runtime/components/ui/table/TableHead.vue +6 -6
  369. package/dist/runtime/components/ui/table/TableHeader.vue +6 -6
  370. package/dist/runtime/components/ui/table/TableRow.vue +6 -6
  371. package/dist/runtime/components/ui/tabs/Tabs.vue +8 -8
  372. package/dist/runtime/components/ui/tabs/TabsContent.vue +7 -7
  373. package/dist/runtime/components/ui/tabs/TabsList.vue +7 -7
  374. package/dist/runtime/components/ui/tabs/TabsTrigger.vue +7 -7
  375. package/dist/runtime/components/ui/textarea/Textarea.vue +5 -5
  376. package/dist/runtime/components/ui/tooltip/Tooltip.vue +7 -7
  377. package/dist/runtime/components/ui/tooltip/TooltipContent.vue +13 -13
  378. package/dist/runtime/components/ui/tooltip/TooltipProvider.vue +3 -3
  379. package/dist/runtime/components/ui/tooltip/TooltipTrigger.vue +6 -6
  380. package/dist/runtime/components/video.vue +2 -2
  381. package/dist/runtime/geo/README.md +87 -87
  382. package/dist/runtime/geo/postal_codes.json +5569 -5569
  383. package/package.json +2 -2
@@ -1,52 +1,52 @@
1
1
  <template>
2
- <Modal class="w-[512px]" title="คำแนะนำการตั้งค่า" :loading="isLoading" v-model="isOpen">
3
- <div class="flex flex-col gap-[16px]">
4
- <div class="flex flex-col gap-[8px] text-gray font-body-large">
5
- <div class="font-body-large-prominent text-black">1.ดาวน์โหลดแอพยืนยันตัวตน</div>
6
- <div>
7
- เราแนะนำให้ดาวน์โหลด Google Authenticator หากคุณยังไม่ได้ติดตั้ง
8
- </div>
9
- </div>
10
- <div class="flex flex-col gap-[8px] text-gray font-body-large">
11
- <div class="font-body-large-prominent text-black">
12
- 2.สแกนบาร์โค้ด/คิวอาร์โค้ดนี้หรือคัดลอกคีย์
13
- </div>
14
- <div>
15
- สแกนบาร์โค้ด/คิวอาร์โค้ดนี้ในแอพยืนยันตัวตนหรือคัดลอกคีย์แล้ววางลงในแอพ
16
- ยืนยันตัวตน
17
- </div>
18
- </div>
19
- <div class="flex justify-center items-center">
20
- <div class="flex items-center gap-[32px]">
21
- <Image width="146" height="145" :src="barcode2FA" />
22
- <div class="w-[168px] gap-[8px] flex flex-col justify-between">
23
- <div class="font-body-large-prominent">
24
- {{ key }}
25
- </div>
26
- <div class="cursor-pointer text-primary font-body-large" @click="copyToClipboard(key)">
27
- คัดลอกคีย์
28
- </div>
29
- </div>
30
- </div>
31
- </div>
32
- <div class="flex flex-col gap-[8px] text-gray font-body-large">
33
- <div class="font-body-large-prominent text-black">
34
- 3.คัดลอกแล้วป้อนรหัสตัวเลข 6 หลัก
35
- </div>
36
- <div>
37
- หลังจากสแกนบาร์โค้ด/คิวอาร์โค้ด หรือคัดลอกคีย์แล้ว
38
- แอพยืนยันตัวตนจะสร้าง รหัสตัวเลข 6 หลัก
39
- ให้คัดลอกรหัสนั้นแล้วกลับมาป้อนบน Pukaad
40
- </div>
41
- </div>
42
- </div>
43
-
44
- <template #footer>
45
- <Button color="primary" class="w-full" :disabled="isDisabled" @click="onComplete">
46
- {{ props.confirmedText }}
47
- </Button>
48
- </template>
49
- </Modal>
2
+ <Modal class="w-[512px]" title="คำแนะนำการตั้งค่า" :loading="isLoading" v-model="isOpen">
3
+ <div class="flex flex-col gap-[16px]">
4
+ <div class="flex flex-col gap-[8px] text-gray font-body-large">
5
+ <div class="font-body-large-prominent text-black">1.ดาวน์โหลดแอพยืนยันตัวตน</div>
6
+ <div>
7
+ เราแนะนำให้ดาวน์โหลด Google Authenticator หากคุณยังไม่ได้ติดตั้ง
8
+ </div>
9
+ </div>
10
+ <div class="flex flex-col gap-[8px] text-gray font-body-large">
11
+ <div class="font-body-large-prominent text-black">
12
+ 2.สแกนบาร์โค้ด/คิวอาร์โค้ดนี้หรือคัดลอกคีย์
13
+ </div>
14
+ <div>
15
+ สแกนบาร์โค้ด/คิวอาร์โค้ดนี้ในแอพยืนยันตัวตนหรือคัดลอกคีย์แล้ววางลงในแอพ
16
+ ยืนยันตัวตน
17
+ </div>
18
+ </div>
19
+ <div class="flex justify-center items-center">
20
+ <div class="flex items-center gap-[32px]">
21
+ <Image width="146" height="145" :src="barcode2FA" />
22
+ <div class="w-[168px] gap-[8px] flex flex-col justify-between">
23
+ <div class="font-body-large-prominent">
24
+ {{ key }}
25
+ </div>
26
+ <div class="cursor-pointer text-primary font-body-large" @click="copyToClipboard(key)">
27
+ คัดลอกคีย์
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ <div class="flex flex-col gap-[8px] text-gray font-body-large">
33
+ <div class="font-body-large-prominent text-black">
34
+ 3.คัดลอกแล้วป้อนรหัสตัวเลข 6 หลัก
35
+ </div>
36
+ <div>
37
+ หลังจากสแกนบาร์โค้ด/คิวอาร์โค้ด หรือคัดลอกคีย์แล้ว
38
+ แอพยืนยันตัวตนจะสร้าง รหัสตัวเลข 6 หลัก
39
+ ให้คัดลอกรหัสนั้นแล้วกลับมาป้อนบน Pukaad
40
+ </div>
41
+ </div>
42
+ </div>
43
+
44
+ <template #footer>
45
+ <Button color="primary" class="w-full" :disabled="isDisabled" @click="onComplete">
46
+ {{ props.confirmedText }}
47
+ </Button>
48
+ </template>
49
+ </Modal>
50
50
  </template>
51
51
 
52
52
  <script setup>
@@ -1,32 +1,32 @@
1
1
  <template>
2
- <Modal
3
- title="การยืนยันตัวตนแบบสองชั้น"
4
- :loading="isLoading"
5
- @submit="onVerify2FA"
6
- v-model="isOpen"
7
- description="ป้อนรหัสยืนยัน 6 หลักจากแอปยืนยันตัวตน"
8
- >
9
- <div class="space-y-[24px]">
10
- <div class="flex justify-center items-center">
11
- <InputOTP
12
- ref="twoFaRef"
13
- name="otp"
14
- v-model="valueOTP"
15
- :rules="() => true"
16
- />
17
- </div>
18
- </div>
19
- <template #footer="{ meta }">
20
- <Button
21
- class="w-full"
22
- type="submit"
23
- color="primary"
24
- :disabled="!meta.valid"
25
- >
26
- {{ props.confirmedText }}
27
- </Button>
28
- </template>
29
- </Modal>
2
+ <Modal
3
+ title="การยืนยันตัวตนแบบสองชั้น"
4
+ :loading="isLoading"
5
+ @submit="onVerify2FA"
6
+ v-model="isOpen"
7
+ description="ป้อนรหัสยืนยัน 6 หลักจากแอปยืนยันตัวตน"
8
+ >
9
+ <div class="space-y-[24px]">
10
+ <div class="flex justify-center items-center">
11
+ <InputOTP
12
+ ref="twoFaRef"
13
+ name="otp"
14
+ v-model="valueOTP"
15
+ :rules="() => true"
16
+ />
17
+ </div>
18
+ </div>
19
+ <template #footer="{ meta }">
20
+ <Button
21
+ class="w-full"
22
+ type="submit"
23
+ color="primary"
24
+ :disabled="!meta.valid"
25
+ >
26
+ {{ props.confirmedText }}
27
+ </Button>
28
+ </template>
29
+ </Modal>
30
30
  </template>
31
31
 
32
32
  <script setup>
@@ -1,37 +1,37 @@
1
1
  <template>
2
- <Modal
3
- title="ลบบัญชีโดยถาวร"
4
- title-position="left"
5
- width="500"
6
- :loading="isLoading"
7
- @close="onClose"
8
- v-model="modelValue"
9
- >
10
- <div class="flex flex-col gap-[16px]">
11
- <div class="font-body-large">
12
- เมื่อคุณลบบัญชี Pukaad คุณจะไม่สามารถกู้คืนบัญชีข้อมูลหรือเนื้อหา
13
- ทั้งหมดของคุณได้อีกรวมถึง โปรไฟล์หลัก ข้อความส่วนตัวและสิ่งที่คุณเคย
14
- แชร์ในชุมชน
15
- </div>
16
- <div class="flex flex-col gap-[8px] text-error">
17
- <div class="font-body-large-prominent">การลบบัญชี</div>
18
- <div class="font-body-large">
19
- เพื่อป้องกันการลบบัญชีโดยไม่ได้ตั้งใจบัญชีของคุณจะถูกปิดแบบชั่วคราว
20
- ก่อน และจะถูกลบถาวรใน 30 วัน หากคุณไม่เข้าสู่ระบบอีก
21
- </div>
22
- </div>
23
- </div>
24
- <template #footer>
25
- <div class="flex gap-[16px] w-full">
26
- <Button class="w-full" variant="outline" color="black" @click="onClose">
27
- ยกเลิก
28
- </Button>
29
- <Button class="w-full" color="primary" @click="onNext">
30
- {{ props.confirmedText }}
31
- </Button>
32
- </div>
33
- </template>
34
- </Modal>
2
+ <Modal
3
+ title="ลบบัญชีโดยถาวร"
4
+ title-position="left"
5
+ width="500"
6
+ :loading="isLoading"
7
+ @close="onClose"
8
+ v-model="modelValue"
9
+ >
10
+ <div class="flex flex-col gap-[16px]">
11
+ <div class="font-body-large">
12
+ เมื่อคุณลบบัญชี Pukaad คุณจะไม่สามารถกู้คืนบัญชีข้อมูลหรือเนื้อหา
13
+ ทั้งหมดของคุณได้อีกรวมถึง โปรไฟล์หลัก ข้อความส่วนตัวและสิ่งที่คุณเคย
14
+ แชร์ในชุมชน
15
+ </div>
16
+ <div class="flex flex-col gap-[8px] text-error">
17
+ <div class="font-body-large-prominent">การลบบัญชี</div>
18
+ <div class="font-body-large">
19
+ เพื่อป้องกันการลบบัญชีโดยไม่ได้ตั้งใจบัญชีของคุณจะถูกปิดแบบชั่วคราว
20
+ ก่อน และจะถูกลบถาวรใน 30 วัน หากคุณไม่เข้าสู่ระบบอีก
21
+ </div>
22
+ </div>
23
+ </div>
24
+ <template #footer>
25
+ <div class="flex gap-[16px] w-full">
26
+ <Button class="w-full" variant="outline" color="black" @click="onClose">
27
+ ยกเลิก
28
+ </Button>
29
+ <Button class="w-full" color="primary" @click="onNext">
30
+ {{ props.confirmedText }}
31
+ </Button>
32
+ </div>
33
+ </template>
34
+ </Modal>
35
35
  </template>
36
36
 
37
37
  <script setup>
@@ -1,36 +1,36 @@
1
1
  <template>
2
- <Modal
3
- title="ยืนยันการลบบัญชีโดยถาวร"
4
- title-position="left"
5
- width="500"
6
- :loading="loadingModal"
7
- @close="onClose"
8
- v-model="modelValue"
9
- >
10
- <div class="flex flex-col gap-[16px]">
11
- <div class="font-body-large">
12
- เมื่อคุณกด “ลบบัญชี” บัญชีของคุณจะถูกลบโดยถาวรทันที
13
- คุณจะไม่สามารถกู้คืนบัญชี ข้อมูล เนื้อหา หรือการเข้าถึงใด ๆ ได้อีก
14
- การดำเนินการนี้ถาวรและไม่สามารถย้อนกลับได้
15
- </div>
16
- <div class="flex items-center gap-[4px] text-error">
17
- <Icon name="lucide:triangle-alert" size="20" />
18
- <div class="font-body-large">
19
- โปรดตรวจสอบให้แน่ใจว่าคุณต้องการลบบัญชีนี้อย่างถาวรจริง
20
- </div>
21
- </div>
22
- </div>
23
- <template #footer>
24
- <div class="flex gap-[16px]">
25
- <Button full-width type="outline" variant="black" @click="onClose">
26
- ยกเลิก
27
- </Button>
28
- <Button full-width variant="error" @click="onDeleteAccount">
29
- {{ props.confirmedText }}
30
- </Button>
31
- </div>
32
- </template>
33
- </Modal>
2
+ <Modal
3
+ title="ยืนยันการลบบัญชีโดยถาวร"
4
+ title-position="left"
5
+ width="500"
6
+ :loading="loadingModal"
7
+ @close="onClose"
8
+ v-model="modelValue"
9
+ >
10
+ <div class="flex flex-col gap-[16px]">
11
+ <div class="font-body-large">
12
+ เมื่อคุณกด “ลบบัญชี” บัญชีของคุณจะถูกลบโดยถาวรทันที
13
+ คุณจะไม่สามารถกู้คืนบัญชี ข้อมูล เนื้อหา หรือการเข้าถึงใด ๆ ได้อีก
14
+ การดำเนินการนี้ถาวรและไม่สามารถย้อนกลับได้
15
+ </div>
16
+ <div class="flex items-center gap-[4px] text-error">
17
+ <Icon name="lucide:triangle-alert" size="20" />
18
+ <div class="font-body-large">
19
+ โปรดตรวจสอบให้แน่ใจว่าคุณต้องการลบบัญชีนี้อย่างถาวรจริง
20
+ </div>
21
+ </div>
22
+ </div>
23
+ <template #footer>
24
+ <div class="flex gap-[16px]">
25
+ <Button full-width type="outline" variant="black" @click="onClose">
26
+ ยกเลิก
27
+ </Button>
28
+ <Button full-width variant="error" @click="onDeleteAccount">
29
+ {{ props.confirmedText }}
30
+ </Button>
31
+ </div>
32
+ </template>
33
+ </Modal>
34
34
  </template>
35
35
 
36
36
  <script setup>
@@ -1,52 +1,52 @@
1
1
  <template>
2
- <Modal
3
- title="ลบบัญชี"
4
- width="500"
5
- :loading="loadingModal"
6
- @close="onCancel"
7
- @submit="onSubmit"
8
- v-model="modelValue"
9
- >
10
- <div class="flex flex-col gap-[8px]">
11
- <div class="text-body-large-prominent">ก่อนที่คุณจะลบ เราช่วยคุณได้</div>
12
- <div class="text-gray">
13
- เราเสียใจที่จะต้องบอกลาคุณ เราอยากทราบเหตุผลที่คุณจะลบบัญชีของ คุณ
14
- เนื่องจากเราอาจช่วยปัญหาที่พบทั่วไปได้ คุณอาจดำเนินการต่อโดยไม่
15
- แจ้งเหตุผลได้เช่นกัน
16
- </div>
17
-
18
- <div
19
- v-for="(item, i) in items"
20
- :key="i"
2
+ <Modal
3
+ title="ลบบัญชี"
4
+ width="500"
5
+ :loading="loadingModal"
6
+ @close="onCancel"
7
+ @submit="onSubmit"
8
+ v-model="modelValue"
9
+ >
10
+ <div class="flex flex-col gap-[8px]">
11
+ <div class="text-body-large-prominent">ก่อนที่คุณจะลบ เราช่วยคุณได้</div>
12
+ <div class="text-gray">
13
+ เราเสียใจที่จะต้องบอกลาคุณ เราอยากทราบเหตุผลที่คุณจะลบบัญชีของ คุณ
14
+ เนื่องจากเราอาจช่วยปัญหาที่พบทั่วไปได้ คุณอาจดำเนินการต่อโดยไม่
15
+ แจ้งเหตุผลได้เช่นกัน
16
+ </div>
17
+
18
+ <div
19
+ v-for="(item, i) in items"
20
+ :key="i"
21
21
  :class="[
22
22
  'flex flex-col p-[16px]',
23
23
  i < items.length - 1 && 'border-b-[1px] border-mercury'
24
- ]"
25
- >
26
- <InputRadio
27
- name="reason"
28
- column-gap="auto"
29
- :label="item.label"
30
- label-position="left"
31
- :item="item.value"
32
- v-model="formState.reason"
33
- />
34
- </div>
35
- </div>
36
- <template #footer="{ meta }">
37
- <Button full-width variant="outline" color="black" @click="onCancel">
38
- ยกเลิก
39
- </Button>
40
- <Button
41
- type="submit"
42
- color="primary"
43
- full-width
44
- :disabled="!formState.reason"
45
- >
46
- {{ props.confirmedText }}
47
- </Button>
48
- </template>
49
- </Modal>
24
+ ]"
25
+ >
26
+ <InputRadio
27
+ name="reason"
28
+ column-gap="auto"
29
+ :label="item.label"
30
+ label-position="left"
31
+ :item="item.value"
32
+ v-model="formState.reason"
33
+ />
34
+ </div>
35
+ </div>
36
+ <template #footer="{ meta }">
37
+ <Button full-width variant="outline" color="black" @click="onCancel">
38
+ ยกเลิก
39
+ </Button>
40
+ <Button
41
+ type="submit"
42
+ color="primary"
43
+ full-width
44
+ :disabled="!formState.reason"
45
+ >
46
+ {{ props.confirmedText }}
47
+ </Button>
48
+ </template>
49
+ </Modal>
50
50
  </template>
51
51
 
52
52
  <script setup>
@@ -1,13 +1,13 @@
1
1
  <template>
2
- <component
3
- v-for="modal in modals"
4
- :key="modal.key"
5
- :is="modal.component"
6
- :confimed-text="isLastStep ? '\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19' : '\u0E16\u0E31\u0E14\u0E44\u0E1B'"
7
- @close="modelValue = false"
8
- @complete="onComplete(modal.key)"
9
- v-model="modalStates[modal.key]"
10
- />
2
+ <component
3
+ v-for="modal in modals"
4
+ :key="modal.key"
5
+ :is="modal.component"
6
+ :confimed-text="isLastStep ? '\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19' : '\u0E16\u0E31\u0E14\u0E44\u0E1B'"
7
+ @close="modelValue = false"
8
+ @complete="onComplete(modal.key)"
9
+ v-model="modalStates[modal.key]"
10
+ />
11
11
  </template>
12
12
 
13
13
  <script setup>
@@ -1,68 +1,83 @@
1
1
  <template>
2
- <Teleport to="body">
3
- <Transition
4
- enter-active-class="transition-all duration-250 ease-[cubic-bezier(0.16,1,0.3,1)]"
5
- leave-active-class="transition-all duration-200 ease-[cubic-bezier(0.16,1,0.3,1)]"
6
- enter-from-class="opacity-0"
7
- leave-to-class="opacity-0"
8
- >
9
- <div
10
- v-if="isOpen"
11
- class="fixed inset-0 z-[9999] flex items-center justify-center bg-black/95 backdrop-blur-sm outline-none"
12
- @click.self="close"
13
- @keydown.escape="close"
14
- tabindex="0"
15
- ref="overlayRef"
16
- >
17
- <!-- Close button -->
18
- <button
19
- class="absolute top-4 left-4 z-10 flex items-center justify-center size-11 border-none rounded-full bg-white/10 text-white/85 cursor-pointer transition-all duration-200 ease-in-out hover:bg-white/20 hover:text-white hover:scale-105"
20
- @click="close"
21
- aria-label="ปิด"
22
- >
23
- <Icon name="lucide:x" size="28" />
24
- </button>
25
-
26
- <!-- Image container -->
27
- <div
28
- class="flex items-center justify-center w-full h-full overflow-hidden"
29
- >
30
- <img
31
- :src="props.src"
32
- :alt="props.alt || '\u0E23\u0E39\u0E1B\u0E20\u0E32\u0E1E'"
33
- class="max-w-[90vw] max-h-[90vh] object-contain select-none rounded-sm"
34
- draggable="false"
35
- />
36
- </div>
37
- </div>
38
- </Transition>
39
- </Teleport>
2
+ <DialogRoot :open="isOpen" @update:open="onOpenChange">
3
+ <DialogPortal>
4
+ <Transition
5
+ enter-active-class="transition-all duration-250 ease-[cubic-bezier(0.16,1,0.3,1)]"
6
+ leave-active-class="transition-all duration-200 ease-[cubic-bezier(0.16,1,0.3,1)]"
7
+ enter-from-class="opacity-0"
8
+ leave-to-class="opacity-0"
9
+ >
10
+ <DialogOverlay
11
+ class="fixed inset-0 z-[9999] bg-black/95 backdrop-blur-sm"
12
+ />
13
+ </Transition>
14
+ <Transition
15
+ enter-active-class="transition-all duration-250 ease-[cubic-bezier(0.16,1,0.3,1)]"
16
+ leave-active-class="transition-all duration-200 ease-[cubic-bezier(0.16,1,0.3,1)]"
17
+ enter-from-class="opacity-0"
18
+ leave-to-class="opacity-0"
19
+ >
20
+ <DialogContent
21
+ class="fixed inset-0 z-[9999] flex items-center justify-center outline-none"
22
+ :aria-describedby="undefined"
23
+ @open-auto-focus="onOpenAutoFocus"
24
+ @close-auto-focus="onCloseAutoFocus"
25
+ @click.self="close"
26
+ >
27
+ <DialogTitle class="sr-only">
28
+ {{ props.alt || "\u0E23\u0E39\u0E1B\u0E20\u0E32\u0E1E" }}
29
+ </DialogTitle>
30
+ <DialogClose
31
+ type="button"
32
+ class="absolute top-4 left-4 z-10 flex items-center justify-center size-11 border-none rounded-full bg-white/10 text-white/85 cursor-pointer transition-all duration-200 ease-in-out hover:bg-white/20 hover:text-white hover:scale-105"
33
+ aria-label="ปิด"
34
+ >
35
+ <Icon name="lucide:x" size="28" />
36
+ </DialogClose>
37
+ <img
38
+ :src="props.src"
39
+ :alt="props.alt || '\u0E23\u0E39\u0E1B\u0E20\u0E32\u0E1E'"
40
+ class="max-w-[90vw] max-h-[90vh] object-contain select-none rounded-sm"
41
+ draggable="false"
42
+ />
43
+ </DialogContent>
44
+ </Transition>
45
+ </DialogPortal>
46
+ </DialogRoot>
40
47
  </template>
41
48
 
42
49
  <script setup>
43
- import { ref, watch, nextTick, onBeforeUnmount } from "vue";
50
+ import {
51
+ DialogClose,
52
+ DialogContent,
53
+ DialogOverlay,
54
+ DialogPortal,
55
+ DialogRoot,
56
+ DialogTitle
57
+ } from "reka-ui";
44
58
  const props = defineProps({
45
59
  src: { type: String, required: false, default: "" },
46
60
  alt: { type: String, required: false, default: "" }
47
61
  });
48
62
  const emits = defineEmits(["close"]);
49
63
  const isOpen = defineModel({ type: Boolean, ...{ default: false } });
50
- const overlayRef = ref(null);
64
+ let returnFocusElement = null;
65
+ function onOpenChange(open) {
66
+ if (isOpen.value === open) return;
67
+ isOpen.value = open;
68
+ if (!open) emits("close");
69
+ }
51
70
  function close() {
52
- isOpen.value = false;
53
- emits("close");
71
+ onOpenChange(false);
72
+ }
73
+ function onOpenAutoFocus() {
74
+ returnFocusElement = document.activeElement instanceof HTMLElement ? document.activeElement : null;
54
75
  }
55
- watch(isOpen, (val) => {
56
- if (val) {
57
- document.body.style.overflow = "hidden";
58
- nextTick(() => {
59
- overlayRef.value?.focus();
60
- });
61
- } else {
62
- document.body.style.overflow = "";
76
+ function onCloseAutoFocus(event) {
77
+ event.preventDefault();
78
+ if (returnFocusElement?.isConnected) {
79
+ returnFocusElement.focus({ preventScroll: true });
63
80
  }
64
- });
65
- onBeforeUnmount(() => {
66
- document.body.style.overflow = "";
67
- });
81
+ returnFocusElement = null;
82
+ }
68
83
  </script>
@@ -1,36 +1,36 @@
1
1
  <template>
2
- <Modal
3
- title="รหัสยืนยันตัวตน"
4
- :description="`\u0E1B\u0E49\u0E2D\u0E19\u0E23\u0E2B\u0E31\u0E2A 6 \u0E2B\u0E25\u0E31\u0E01\u0E17\u0E35\u0E48\u0E2A\u0E48\u0E07\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E2D\u0E35\u0E40\u0E21\u0E25 ${maskedEmail}`"
5
- @submit="onVerifyOTP"
6
- v-model="isOpen"
7
- >
8
- <div class="flex flex-col gap-2 items-center">
9
- <InputOTP :disabled="isTimeExp" v-model="valueOTP" />
10
- <div v-if="isLoading" class="text-center">กำลังส่งรหัสยืนยัน...</div>
11
- <div v-else-if="isTimeExp" class="text-center">
12
- รหัสหมดอายุ
13
- <span class="text-primary cursor-pointer" @click="handleSendEmail">
14
- ขอรหัสผ่านใหม่
15
- </span>
16
- </div>
17
- <div v-else class="text-center">
18
- กรุณารอ
19
- <span class="text-primary">{{ displayTimeExp }}</span> นาที
20
- จะส่งรหัสยืนยันอีกครั้ง
21
- </div>
22
- </div>
23
- <template #footer>
24
- <Button
25
- class="w-full"
26
- color="primary"
27
- type="submit"
28
- :disabled="valueOTP.length !== 6"
29
- >
30
- {{ props.confirmedText }}
31
- </Button>
32
- </template>
33
- </Modal>
2
+ <Modal
3
+ title="รหัสยืนยันตัวตน"
4
+ :description="`\u0E1B\u0E49\u0E2D\u0E19\u0E23\u0E2B\u0E31\u0E2A 6 \u0E2B\u0E25\u0E31\u0E01\u0E17\u0E35\u0E48\u0E2A\u0E48\u0E07\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E2D\u0E35\u0E40\u0E21\u0E25 ${maskedEmail}`"
5
+ @submit="onVerifyOTP"
6
+ v-model="isOpen"
7
+ >
8
+ <div class="flex flex-col gap-2 items-center">
9
+ <InputOTP :disabled="isTimeExp" v-model="valueOTP" />
10
+ <div v-if="isLoading" class="text-center">กำลังส่งรหัสยืนยัน...</div>
11
+ <div v-else-if="isTimeExp" class="text-center">
12
+ รหัสหมดอายุ
13
+ <span class="text-primary cursor-pointer" @click="handleSendEmail">
14
+ ขอรหัสผ่านใหม่
15
+ </span>
16
+ </div>
17
+ <div v-else class="text-center">
18
+ กรุณารอ
19
+ <span class="text-primary">{{ displayTimeExp }}</span> นาที
20
+ จะส่งรหัสยืนยันอีกครั้ง
21
+ </div>
22
+ </div>
23
+ <template #footer>
24
+ <Button
25
+ class="w-full"
26
+ color="primary"
27
+ type="submit"
28
+ :disabled="valueOTP.length !== 6"
29
+ >
30
+ {{ props.confirmedText }}
31
+ </Button>
32
+ </template>
33
+ </Modal>
34
34
  </template>
35
35
 
36
36
  <script setup>