@godxjp/ui 13.9.3 → 13.10.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 (474) hide show
  1. package/dist/app/app-provider.d.ts +30 -0
  2. package/dist/app/app-provider.js +244 -0
  3. package/dist/app/date-format-labels.d.ts +8 -0
  4. package/dist/app/date-format-labels.js +16 -0
  5. package/dist/app/date-formats.d.ts +10 -0
  6. package/dist/app/date-formats.js +27 -0
  7. package/dist/app/index.d.ts +13 -136
  8. package/dist/app/index.js +65 -38
  9. package/dist/app/locales.d.ts +12 -0
  10. package/dist/app/locales.js +26 -0
  11. package/dist/app/request-headers.d.ts +7 -0
  12. package/dist/app/request-headers.js +27 -0
  13. package/dist/app/storage.d.ts +11 -0
  14. package/dist/app/storage.js +32 -0
  15. package/dist/app/time-format-labels.d.ts +8 -0
  16. package/dist/app/time-format-labels.js +14 -0
  17. package/dist/app/time-formats.d.ts +7 -0
  18. package/dist/app/time-formats.js +14 -0
  19. package/dist/app/timezones.d.ts +31 -0
  20. package/dist/app/timezones.js +161 -0
  21. package/dist/app/types.d.ts +21 -0
  22. package/dist/app/types.js +30 -0
  23. package/dist/app/use-formatting.d.ts +19 -0
  24. package/dist/app/use-formatting.js +37 -0
  25. package/dist/components/admin/index.d.ts +26 -66
  26. package/dist/components/admin/index.js +96 -49
  27. package/dist/components/data-display/accordion.d.ts +1 -0
  28. package/dist/components/data-display/accordion.js +7 -0
  29. package/dist/components/data-display/avatar.d.ts +1 -0
  30. package/dist/components/data-display/avatar.js +6 -0
  31. package/dist/components/data-display/badge.d.ts +9 -13
  32. package/dist/components/data-display/badge.js +111 -5
  33. package/dist/components/data-display/card.d.ts +22 -26
  34. package/dist/components/data-display/card.js +153 -2
  35. package/dist/components/data-display/carousel.d.ts +11 -13
  36. package/dist/components/data-display/carousel.js +220 -4
  37. package/dist/components/data-display/collapsible.d.ts +4 -0
  38. package/dist/components/data-display/collapsible.js +9 -0
  39. package/dist/components/data-display/data-table.d.ts +53 -0
  40. package/dist/{chunk-NVTZ2EDW.js → components/data-display/data-table.js} +28 -36
  41. package/dist/components/data-display/descriptions.d.ts +19 -0
  42. package/dist/components/data-display/descriptions.js +25 -0
  43. package/dist/components/data-display/empty-state.d.ts +3 -0
  44. package/dist/{chunk-YD7V2HGZ.js → components/data-display/empty-state.js} +5 -5
  45. package/dist/components/data-display/hover-card.d.ts +1 -0
  46. package/dist/components/data-display/hover-card.js +6 -0
  47. package/dist/components/data-display/index.d.ts +24 -79
  48. package/dist/components/data-display/index.js +95 -176
  49. package/dist/components/data-display/popover.d.ts +9 -13
  50. package/dist/components/data-display/popover.js +61 -2
  51. package/dist/components/data-display/progress.d.ts +7 -0
  52. package/dist/components/data-display/progress.js +27 -0
  53. package/dist/components/data-display/scroll-area.d.ts +4 -7
  54. package/dist/components/data-display/scroll-area.js +38 -2
  55. package/dist/components/data-display/table.d.ts +7 -10
  56. package/dist/components/data-display/table.js +36 -3
  57. package/dist/components/data-display/timeline.d.ts +12 -0
  58. package/dist/components/data-display/timeline.js +35 -0
  59. package/dist/components/data-display/tree-list.d.ts +13 -0
  60. package/dist/components/data-display/tree-list.js +30 -0
  61. package/dist/components/data-entry/calendar.d.ts +3 -19
  62. package/dist/components/data-entry/calendar.js +96 -6
  63. package/dist/components/data-entry/cascader.d.ts +4 -35
  64. package/dist/components/data-entry/cascader.js +327 -10
  65. package/dist/components/data-entry/checkbox-group.d.ts +3 -0
  66. package/dist/{chunk-BE6GJGKJ.js → components/data-entry/checkbox-group.js} +9 -26
  67. package/dist/components/data-entry/checkbox.d.ts +7 -16
  68. package/dist/components/data-entry/checkbox.js +26 -4
  69. package/dist/components/data-entry/choice-option.d.ts +10 -0
  70. package/dist/components/data-entry/choice-option.js +7 -0
  71. package/dist/components/data-entry/color-picker.d.ts +3 -19
  72. package/dist/components/data-entry/color-picker.js +75 -6
  73. package/dist/components/data-entry/command.d.ts +7 -10
  74. package/dist/components/data-entry/command.js +51 -3
  75. package/dist/components/data-entry/date-picker.d.ts +3 -19
  76. package/dist/components/data-entry/date-picker.js +153 -9
  77. package/dist/components/data-entry/date-range-picker.d.ts +3 -19
  78. package/dist/components/data-entry/date-range-picker.js +191 -8
  79. package/dist/components/data-entry/field.d.ts +4 -0
  80. package/dist/{chunk-44YRPSZ7.js → components/data-entry/field.js} +6 -11
  81. package/dist/components/data-entry/form-field.d.ts +3 -0
  82. package/dist/{chunk-LBYSX3VM.js → components/data-entry/form-field.js} +14 -47
  83. package/dist/components/data-entry/form.d.ts +29 -0
  84. package/dist/components/data-entry/form.js +41 -0
  85. package/dist/components/data-entry/index.d.ts +61 -164
  86. package/dist/components/data-entry/index.js +117 -37
  87. package/dist/components/data-entry/input-otp.d.ts +1 -0
  88. package/dist/components/data-entry/input-otp.js +7 -0
  89. package/dist/components/data-entry/input.d.ts +3 -6
  90. package/dist/components/data-entry/input.js +98 -4
  91. package/dist/components/data-entry/label.d.ts +4 -8
  92. package/dist/components/data-entry/label.js +25 -2
  93. package/dist/components/data-entry/month-picker.d.ts +9 -0
  94. package/dist/components/data-entry/month-picker.js +188 -0
  95. package/dist/components/data-entry/month-range-picker.d.ts +11 -0
  96. package/dist/components/data-entry/month-range-picker.js +245 -0
  97. package/dist/components/data-entry/number-input.d.ts +12 -0
  98. package/dist/components/data-entry/number-input.js +219 -0
  99. package/dist/components/data-entry/password-input.d.ts +2 -0
  100. package/dist/components/data-entry/password-input.js +4 -0
  101. package/dist/components/data-entry/password-strength.d.ts +20 -0
  102. package/dist/{chunk-VSUYVT2Q.js → components/data-entry/password-strength.js} +8 -62
  103. package/dist/components/data-entry/radio.d.ts +7 -20
  104. package/dist/components/data-entry/radio.js +93 -4
  105. package/dist/components/data-entry/rating.d.ts +2 -0
  106. package/dist/components/data-entry/rating.js +4 -0
  107. package/dist/components/data-entry/search-input.d.ts +18 -0
  108. package/dist/{chunk-LVLPNKJP.js → components/data-entry/search-input.js} +11 -11
  109. package/dist/components/data-entry/search-select.d.ts +11 -0
  110. package/dist/{chunk-6S2ZU26B.js → components/data-entry/search-select.js} +14 -239
  111. package/dist/components/data-entry/select.d.ts +14 -30
  112. package/dist/components/data-entry/select.js +243 -9
  113. package/dist/components/data-entry/slider.d.ts +4 -18
  114. package/dist/components/data-entry/slider.js +52 -2
  115. package/dist/components/data-entry/switch.d.ts +4 -18
  116. package/dist/components/data-entry/switch.js +40 -2
  117. package/dist/components/data-entry/tag-input.d.ts +2 -0
  118. package/dist/components/data-entry/tag-input.js +4 -0
  119. package/dist/components/data-entry/textarea.d.ts +3 -6
  120. package/dist/components/data-entry/textarea.js +86 -5
  121. package/dist/components/data-entry/time-input.d.ts +3 -6
  122. package/dist/components/data-entry/time-input.js +137 -3
  123. package/dist/components/data-entry/time-picker.d.ts +3 -19
  124. package/dist/components/data-entry/time-picker.js +329 -7
  125. package/dist/components/data-entry/toggle-group.d.ts +1 -0
  126. package/dist/components/data-entry/toggle-group.js +5 -0
  127. package/dist/components/data-entry/toggle.d.ts +2 -0
  128. package/dist/components/data-entry/toggle.js +4 -0
  129. package/dist/components/data-entry/transfer.d.ts +3 -20
  130. package/dist/components/data-entry/transfer.js +193 -13
  131. package/dist/components/data-entry/tree-select-strategy.d.ts +5 -0
  132. package/dist/components/data-entry/tree-select-strategy.js +8 -0
  133. package/dist/components/data-entry/tree-select.d.ts +5 -25
  134. package/dist/components/data-entry/tree-select.js +299 -13
  135. package/dist/components/data-entry/tree-utils.d.ts +48 -0
  136. package/dist/{chunk-SMLKNECP.js → components/data-entry/tree-utils.js} +33 -5
  137. package/dist/components/data-entry/upload-crop-dialog.d.ts +9 -0
  138. package/dist/components/data-entry/upload-crop-dialog.js +102 -0
  139. package/dist/components/data-entry/upload-types.d.ts +39 -0
  140. package/dist/components/data-entry/upload-types.js +41 -0
  141. package/dist/components/data-entry/upload.d.ts +6 -45
  142. package/dist/components/data-entry/upload.js +417 -12
  143. package/dist/components/data-entry/use-upload-draft.d.ts +25 -0
  144. package/dist/components/data-entry/use-upload-draft.js +64 -0
  145. package/dist/components/data-grid/data-grid.d.ts +67 -0
  146. package/dist/components/data-grid/data-grid.js +402 -0
  147. package/dist/components/data-grid/index.d.ts +2 -71
  148. package/dist/components/data-grid/index.js +3 -371
  149. package/dist/components/feedback/alert.d.ts +37 -42
  150. package/dist/components/feedback/alert.js +127 -7
  151. package/dist/components/feedback/dialog.d.ts +21 -25
  152. package/dist/components/feedback/dialog.js +356 -8
  153. package/dist/components/feedback/index.d.ts +10 -28
  154. package/dist/components/feedback/index.js +105 -18
  155. package/dist/components/feedback/overlay-header-tone.d.ts +7 -0
  156. package/dist/{chunk-VU4GFGDG.js → components/feedback/overlay-header-tone.js} +4 -4
  157. package/dist/components/feedback/sheet.d.ts +18 -23
  158. package/dist/components/feedback/sheet.js +192 -3
  159. package/dist/components/feedback/skeleton.d.ts +17 -0
  160. package/dist/{chunk-2BR7KFCP.js → components/feedback/skeleton.js} +10 -6
  161. package/dist/components/feedback/sonner.d.ts +2 -5
  162. package/dist/components/feedback/sonner.js +50 -1
  163. package/dist/components/feedback/tooltip.d.ts +10 -0
  164. package/dist/{chunk-32WO3YLB.js → components/feedback/tooltip.js} +12 -9
  165. package/dist/components/feedback/use-toast.d.ts +3 -0
  166. package/dist/components/feedback/use-toast.js +5 -0
  167. package/dist/components/general/button.d.ts +12 -18
  168. package/dist/components/general/button.js +118 -4
  169. package/dist/components/general/index.d.ts +4 -37
  170. package/dist/components/general/index.js +8 -48
  171. package/dist/components/general/typography.d.ts +30 -0
  172. package/dist/components/general/typography.js +46 -0
  173. package/dist/components/layout/app-shell.d.ts +3 -0
  174. package/dist/components/layout/app-shell.js +33 -0
  175. package/dist/components/layout/aspect-ratio.d.ts +1 -0
  176. package/dist/components/layout/aspect-ratio.js +4 -0
  177. package/dist/components/layout/breadcrumb.d.ts +7 -0
  178. package/dist/components/layout/breadcrumb.js +16 -0
  179. package/dist/components/layout/flex.d.ts +3 -0
  180. package/dist/components/layout/flex.js +29 -0
  181. package/dist/components/layout/index.d.ts +19 -60
  182. package/dist/components/layout/index.js +29 -12
  183. package/dist/components/layout/page-container.d.ts +8 -0
  184. package/dist/components/layout/page-container.js +77 -0
  185. package/dist/components/layout/resizable.d.ts +8 -12
  186. package/dist/components/layout/resizable.js +44 -2
  187. package/dist/components/layout/responsive-grid.d.ts +7 -0
  188. package/dist/{chunk-C3PKEV6S.js → components/layout/responsive-grid.js} +4 -5
  189. package/dist/components/layout/separator.d.ts +1 -0
  190. package/dist/components/layout/separator.js +4 -0
  191. package/dist/components/layout/sidebar.d.ts +21 -0
  192. package/dist/components/layout/sidebar.js +254 -0
  193. package/dist/components/layout/split-pane.d.ts +7 -0
  194. package/dist/components/layout/split-pane.js +10 -0
  195. package/dist/components/layout/topbar.d.ts +3 -0
  196. package/dist/components/layout/topbar.js +133 -0
  197. package/dist/components/navigation/app-setting-picker.d.ts +9 -0
  198. package/dist/{chunk-RHPFCKB2.js → components/navigation/app-setting-picker.js} +24 -49
  199. package/dist/components/navigation/context-menu.d.ts +16 -20
  200. package/dist/components/navigation/context-menu.js +144 -2
  201. package/dist/components/navigation/dropdown-menu.d.ts +17 -21
  202. package/dist/components/navigation/dropdown-menu.js +164 -2
  203. package/dist/components/navigation/filter-bar.d.ts +4 -0
  204. package/dist/components/navigation/filter-bar.js +43 -0
  205. package/dist/components/navigation/index.d.ts +12 -36
  206. package/dist/components/navigation/index.js +140 -17
  207. package/dist/components/navigation/menubar.d.ts +18 -23
  208. package/dist/components/navigation/menubar.js +135 -2
  209. package/dist/components/navigation/navigation-menu.d.ts +10 -13
  210. package/dist/components/navigation/navigation-menu.js +90 -2
  211. package/dist/components/navigation/pagination-utils.d.ts +2 -0
  212. package/dist/components/navigation/pagination-utils.js +25 -0
  213. package/dist/components/navigation/pagination.d.ts +6 -12
  214. package/dist/components/navigation/pagination.js +222 -10
  215. package/dist/components/navigation/steps.d.ts +3 -12
  216. package/dist/components/navigation/steps.js +150 -5
  217. package/dist/components/navigation/tabs.d.ts +8 -12
  218. package/dist/components/navigation/tabs.js +109 -2
  219. package/dist/components/query/data-state.d.ts +7 -0
  220. package/dist/components/query/data-state.js +44 -0
  221. package/dist/components/query/index.d.ts +10 -43
  222. package/dist/components/query/index.js +13 -195
  223. package/dist/components/query/infinite-query-state.d.ts +13 -0
  224. package/dist/components/query/infinite-query-state.js +70 -0
  225. package/dist/components/query/mutation-feedback.d.ts +7 -0
  226. package/dist/components/query/mutation-feedback.js +23 -0
  227. package/dist/components/query/prefetch-link.d.ts +7 -0
  228. package/dist/components/query/prefetch-link.js +36 -0
  229. package/dist/components/query/query-refetch-button.d.ts +4 -0
  230. package/dist/components/query/query-refetch-button.js +40 -0
  231. package/dist/components/ui/accordion.d.ts +6 -0
  232. package/dist/components/ui/accordion.js +47 -0
  233. package/dist/components/ui/alert-dialog.d.ts +1 -0
  234. package/dist/components/ui/alert-dialog.js +1 -0
  235. package/dist/components/ui/alert.d.ts +1 -0
  236. package/dist/components/ui/alert.js +1 -0
  237. package/dist/components/ui/aspect-ratio.d.ts +3 -0
  238. package/dist/components/ui/aspect-ratio.js +18 -0
  239. package/dist/components/ui/avatar.d.ts +5 -0
  240. package/dist/{chunk-QTUJSRDH.js → components/ui/avatar.js} +12 -10
  241. package/dist/components/ui/badge.d.ts +1 -0
  242. package/dist/components/ui/badge.js +1 -0
  243. package/dist/components/ui/button.d.ts +1 -0
  244. package/dist/components/ui/button.js +1 -0
  245. package/dist/components/ui/calendar.d.ts +1 -0
  246. package/dist/components/ui/calendar.js +1 -0
  247. package/dist/components/ui/card.d.ts +1 -0
  248. package/dist/components/ui/card.js +1 -0
  249. package/dist/components/ui/carousel.d.ts +1 -0
  250. package/dist/components/ui/carousel.js +1 -0
  251. package/dist/components/ui/checkbox.d.ts +1 -0
  252. package/dist/components/ui/checkbox.js +1 -0
  253. package/dist/components/ui/color-picker.d.ts +1 -0
  254. package/dist/components/ui/color-picker.js +1 -0
  255. package/dist/components/ui/command.d.ts +1 -0
  256. package/dist/components/ui/command.js +1 -0
  257. package/dist/components/ui/context-menu.d.ts +1 -0
  258. package/dist/components/ui/context-menu.js +1 -0
  259. package/dist/components/ui/date-picker.d.ts +1 -0
  260. package/dist/components/ui/date-picker.js +1 -0
  261. package/dist/components/ui/date-range-picker.d.ts +1 -0
  262. package/dist/components/ui/date-range-picker.js +1 -0
  263. package/dist/components/ui/dialog.d.ts +1 -0
  264. package/dist/components/ui/dialog.js +1 -0
  265. package/dist/components/ui/dropdown-menu.d.ts +1 -0
  266. package/dist/components/ui/dropdown-menu.js +1 -0
  267. package/dist/components/ui/hover-card.d.ts +10 -0
  268. package/dist/components/ui/hover-card.js +45 -0
  269. package/dist/components/ui/index.d.ts +43 -80
  270. package/dist/components/ui/index.js +50 -47
  271. package/dist/components/ui/input-otp.d.ts +33 -0
  272. package/dist/components/ui/input-otp.js +55 -0
  273. package/dist/components/ui/input.d.ts +1 -0
  274. package/dist/components/ui/input.js +1 -0
  275. package/dist/components/ui/label.d.ts +1 -0
  276. package/dist/components/ui/label.js +1 -0
  277. package/dist/components/ui/menubar.d.ts +1 -0
  278. package/dist/components/ui/menubar.js +1 -0
  279. package/dist/components/ui/navigation-menu.d.ts +1 -0
  280. package/dist/components/ui/navigation-menu.js +1 -0
  281. package/dist/components/ui/pagination.d.ts +1 -0
  282. package/dist/components/ui/pagination.js +1 -0
  283. package/dist/components/ui/password-input.d.ts +4 -0
  284. package/dist/components/ui/password-input.js +38 -0
  285. package/dist/components/ui/password-strength.d.ts +1 -0
  286. package/dist/components/ui/password-strength.js +1 -0
  287. package/dist/components/ui/popover.d.ts +1 -0
  288. package/dist/components/ui/popover.js +1 -0
  289. package/dist/components/ui/radio.d.ts +1 -0
  290. package/dist/components/ui/radio.js +1 -0
  291. package/dist/components/ui/rating.d.ts +13 -0
  292. package/dist/components/ui/rating.js +90 -0
  293. package/dist/components/ui/resizable.d.ts +1 -0
  294. package/dist/components/ui/resizable.js +1 -0
  295. package/dist/components/ui/scroll-area.d.ts +1 -0
  296. package/dist/components/ui/scroll-area.js +1 -0
  297. package/dist/components/ui/select.d.ts +1 -0
  298. package/dist/components/ui/select.js +1 -0
  299. package/dist/components/ui/separator.d.ts +3 -0
  300. package/dist/components/ui/separator.js +20 -0
  301. package/dist/components/ui/sheet.d.ts +1 -0
  302. package/dist/components/ui/sheet.js +1 -0
  303. package/dist/components/ui/skeleton.d.ts +1 -0
  304. package/dist/components/ui/skeleton.js +4 -0
  305. package/dist/components/ui/slider.d.ts +1 -0
  306. package/dist/components/ui/slider.js +1 -0
  307. package/dist/components/ui/sonner.d.ts +1 -0
  308. package/dist/components/ui/sonner.js +1 -0
  309. package/dist/components/ui/switch.d.ts +1 -0
  310. package/dist/components/ui/switch.js +1 -0
  311. package/dist/components/ui/table.d.ts +1 -0
  312. package/dist/components/ui/table.js +1 -0
  313. package/dist/components/ui/tabs.d.ts +1 -0
  314. package/dist/components/ui/tabs.js +1 -0
  315. package/dist/components/ui/tag-input.d.ts +13 -0
  316. package/dist/components/ui/tag-input.js +100 -0
  317. package/dist/components/ui/textarea.d.ts +1 -0
  318. package/dist/components/ui/textarea.js +1 -0
  319. package/dist/components/ui/time-input.d.ts +1 -0
  320. package/dist/components/ui/time-input.js +1 -0
  321. package/dist/components/ui/time-picker.d.ts +1 -0
  322. package/dist/components/ui/time-picker.js +1 -0
  323. package/dist/components/ui/toggle-group.d.ts +11 -0
  324. package/dist/components/ui/toggle-group.js +32 -0
  325. package/dist/components/ui/toggle.d.ts +13 -0
  326. package/dist/components/ui/toggle.js +36 -0
  327. package/dist/components/ui/upload.d.ts +1 -0
  328. package/dist/components/ui/upload.js +1 -0
  329. package/dist/form/form-field-control.d.ts +4 -0
  330. package/dist/form/form-field-control.js +42 -0
  331. package/dist/form/form-root.d.ts +4 -0
  332. package/dist/form/form-root.js +26 -0
  333. package/dist/form/index.d.ts +7 -21
  334. package/dist/form/index.js +8 -73
  335. package/dist/form/use-zod-form.d.ts +10 -0
  336. package/dist/form/use-zod-form.js +14 -0
  337. package/dist/i18n/index.d.ts +3 -326
  338. package/dist/i18n/index.js +17 -2
  339. package/dist/i18n/messages/en.json +279 -0
  340. package/dist/i18n/messages/ja.json +276 -0
  341. package/dist/i18n/messages/vi.json +276 -0
  342. package/dist/i18n/translate.d.ts +15 -0
  343. package/dist/i18n/translate.js +82 -0
  344. package/dist/i18n/use-translation.d.ts +19 -0
  345. package/dist/i18n/use-translation.js +46 -0
  346. package/dist/index.d.ts +11 -47
  347. package/dist/index.js +16 -62
  348. package/dist/lib/control-styles.d.ts +26 -0
  349. package/dist/lib/control-styles.js +34 -0
  350. package/dist/lib/datetime/detect.d.ts +4 -0
  351. package/dist/lib/datetime/detect.js +16 -0
  352. package/dist/lib/datetime/format-date.d.ts +22 -0
  353. package/dist/lib/datetime/format-date.js +73 -0
  354. package/dist/lib/datetime/format.d.ts +23 -0
  355. package/dist/lib/datetime/format.js +94 -0
  356. package/dist/lib/datetime/index.d.ts +5 -35
  357. package/dist/lib/datetime/index.js +50 -1
  358. package/dist/lib/datetime/parse.d.ts +12 -0
  359. package/dist/lib/datetime/parse.js +56 -0
  360. package/dist/lib/datetime/sync.d.ts +19 -0
  361. package/dist/lib/datetime/sync.js +45 -0
  362. package/dist/lib/format.d.ts +21 -0
  363. package/dist/{chunk-X6AJ5HEI.js → lib/format.js} +35 -5
  364. package/dist/lib/hooks.d.ts +4 -6
  365. package/dist/lib/hooks.js +70 -1
  366. package/dist/lib/utils.d.ts +2 -5
  367. package/dist/lib/utils.js +8 -1
  368. package/dist/lib/variants.d.ts +12 -0
  369. package/dist/lib/variants.js +38 -0
  370. package/dist/{app.prop-CVY8V4ss.d.ts → props/components/app.prop.d.ts} +8 -12
  371. package/dist/props/components/app.prop.js +0 -0
  372. package/dist/{data-display.prop-CT0nVMdp.d.ts → props/components/data-display.prop.d.ts} +7 -15
  373. package/dist/props/components/data-display.prop.js +0 -0
  374. package/dist/{data-entry.prop-BSUaseKh.d.ts → props/components/data-entry.prop.d.ts} +46 -91
  375. package/dist/props/components/data-entry.prop.js +0 -0
  376. package/dist/{feedback.prop-CHlHDYZK.d.ts → props/components/feedback.prop.d.ts} +10 -16
  377. package/dist/props/components/feedback.prop.js +0 -0
  378. package/dist/{form.prop-5cyL3bvT.d.ts → props/components/form.prop.d.ts} +10 -14
  379. package/dist/props/components/form.prop.js +0 -0
  380. package/dist/{general.prop-CzlQin6v.d.ts → props/components/general.prop.d.ts} +5 -10
  381. package/dist/props/components/general.prop.js +0 -0
  382. package/dist/props/components/index.d.ts +9 -27
  383. package/dist/props/components/index.js +0 -1
  384. package/dist/{layout.prop-fCz-Vlie.d.ts → props/components/layout.prop.d.ts} +19 -26
  385. package/dist/props/components/layout.prop.js +0 -0
  386. package/dist/{navigation.prop-FCsOVGrP.d.ts → props/components/navigation.prop.d.ts} +10 -15
  387. package/dist/props/components/navigation.prop.js +0 -0
  388. package/dist/{query.prop-CT2gFtr4.d.ts → props/components/query.prop.d.ts} +12 -15
  389. package/dist/props/components/query.prop.js +0 -0
  390. package/dist/props/index.d.ts +7 -28
  391. package/dist/props/index.js +12 -3
  392. package/dist/props/registry.d.ts +5 -7
  393. package/dist/props/registry.js +998 -1
  394. package/dist/{content.prop-DrV_zDy-.d.ts → props/vocabulary/content.prop.d.ts} +12 -16
  395. package/dist/props/vocabulary/content.prop.js +0 -0
  396. package/dist/props/vocabulary/data.prop.d.ts +38 -0
  397. package/dist/props/vocabulary/data.prop.js +0 -0
  398. package/dist/props/vocabulary/index.d.ts +7 -7
  399. package/dist/props/vocabulary/index.js +0 -1
  400. package/dist/props/vocabulary/interaction.prop.d.ts +45 -0
  401. package/dist/props/vocabulary/interaction.prop.js +0 -0
  402. package/dist/props/vocabulary/layout.prop.d.ts +14 -0
  403. package/dist/props/vocabulary/layout.prop.js +0 -0
  404. package/dist/{navigation.prop-CXDaVNaR.d.ts → props/vocabulary/navigation.prop.d.ts} +3 -7
  405. package/dist/props/vocabulary/navigation.prop.js +0 -0
  406. package/dist/{shared.prop-BvMSLFJ6.d.ts → props/vocabulary/shared.prop.d.ts} +23 -27
  407. package/dist/props/vocabulary/shared.prop.js +0 -0
  408. package/package.json +2 -2
  409. package/dist/aspect-ratio-CZZJd9Km.d.ts +0 -9
  410. package/dist/avatar-D9MdXzfF.d.ts +0 -8
  411. package/dist/checkbox-bBfLARyF.d.ts +0 -13
  412. package/dist/chunk-2H65B4JA.js +0 -1
  413. package/dist/chunk-2RGPEFAW.js +0 -46
  414. package/dist/chunk-3JORZPS7.js +0 -232
  415. package/dist/chunk-3VFNWVR7.js +0 -153
  416. package/dist/chunk-4FGE5XVC.js +0 -996
  417. package/dist/chunk-5732TWQF.js +0 -1206
  418. package/dist/chunk-57VDEN64.js +0 -881
  419. package/dist/chunk-5LTW2LWF.js +0 -182
  420. package/dist/chunk-65RWSIZF.js +0 -327
  421. package/dist/chunk-7PWBC4BY.js +0 -25
  422. package/dist/chunk-B4K4BXEF.js +0 -18
  423. package/dist/chunk-B6S6LTWT.js +0 -464
  424. package/dist/chunk-B73NA66T.js +0 -122
  425. package/dist/chunk-B775Y6BE.js +0 -1
  426. package/dist/chunk-D4JX6O2W.js +0 -114
  427. package/dist/chunk-DV52WNXO.js +0 -8
  428. package/dist/chunk-DY5C44UP.js +0 -55
  429. package/dist/chunk-EG3RDM6F.js +0 -288
  430. package/dist/chunk-ES4Q3KGL.js +0 -1
  431. package/dist/chunk-FQGGF7GQ.js +0 -320
  432. package/dist/chunk-GJXOBDER.js +0 -1
  433. package/dist/chunk-HIEGUYPP.js +0 -95
  434. package/dist/chunk-HL3G4SVG.js +0 -131
  435. package/dist/chunk-I6G4IO7V.js +0 -485
  436. package/dist/chunk-I7NQ2LIL.js +0 -40
  437. package/dist/chunk-IJ5ALJGA.js +0 -31
  438. package/dist/chunk-INIIF7F7.js +0 -47
  439. package/dist/chunk-ION2KFXK.js +0 -75
  440. package/dist/chunk-J2DEWIYY.js +0 -37
  441. package/dist/chunk-K24AQV4R.js +0 -98
  442. package/dist/chunk-LFW37FGG.js +0 -68
  443. package/dist/chunk-LMKUKCTN.js +0 -150
  444. package/dist/chunk-NU2SOVTU.js +0 -96
  445. package/dist/chunk-NZBAFFWP.js +0 -214
  446. package/dist/chunk-OO5DZH45.js +0 -587
  447. package/dist/chunk-Q3KUZG4P.js +0 -86
  448. package/dist/chunk-QROC2RMH.js +0 -150
  449. package/dist/chunk-QVBOICFU.js +0 -145
  450. package/dist/chunk-R2TXLS7S.js +0 -137
  451. package/dist/chunk-RZ32HY5E.js +0 -331
  452. package/dist/chunk-S2IJKT3D.js +0 -89
  453. package/dist/chunk-TBJBVEIP.js +0 -52
  454. package/dist/chunk-TO7URV7U.js +0 -51
  455. package/dist/chunk-U7N2A7A3.js +0 -9
  456. package/dist/chunk-V3N266PT.js +0 -106
  457. package/dist/chunk-W4REF4TD.js +0 -42
  458. package/dist/chunk-WGWI7EGL.js +0 -83
  459. package/dist/chunk-WY3VYUMX.js +0 -193
  460. package/dist/chunk-XBFUROAY.js +0 -117
  461. package/dist/chunk-XK3M3VRR.js +0 -32
  462. package/dist/chunk-YXVJFYQE.js +0 -191
  463. package/dist/chunk-ZT5UEUBO.js +0 -1
  464. package/dist/data-table-DRr70ULe.d.ts +0 -80
  465. package/dist/data.prop-D0UEEczj.d.ts +0 -42
  466. package/dist/filter-bar-DoDtwYrr.d.ts +0 -7
  467. package/dist/flex-1Cy46L0M.d.ts +0 -12
  468. package/dist/format-date-ByyZoqI5.d.ts +0 -51
  469. package/dist/interaction.prop-DD46aTro.d.ts +0 -47
  470. package/dist/layout.prop-CXvl2rVR.d.ts +0 -16
  471. package/dist/password-strength-DVRvXEOK.d.ts +0 -47
  472. package/dist/search-input-D4v1JGOA.d.ts +0 -27
  473. package/dist/skeleton-cj9kh5wo.d.ts +0 -20
  474. package/dist/types-mvzYGrma.d.ts +0 -37
@@ -1,1206 +0,0 @@
1
- import { ja as ja$1, enUS as enUS$1, vi as vi$1 } from 'date-fns/locale';
2
- import { ja, enUS, vi } from 'react-day-picker/locale';
3
- import { TZDate } from '@date-fns/tz';
4
- import { parseISO, formatDistanceToNow, format } from 'date-fns';
5
-
6
- // src/app/locales.ts
7
- var APP_LOCALE_CONFIG = {
8
- vi: { code: "vi", dateFns: vi$1, dayPicker: vi },
9
- en: { code: "en", dateFns: enUS$1, dayPicker: enUS },
10
- ja: { code: "ja", dateFns: ja$1, dayPicker: ja }
11
- };
12
- function isAppLocale(value) {
13
- return value === "vi" || value === "en" || value === "ja";
14
- }
15
- function getDateFnsLocale(locale) {
16
- return APP_LOCALE_CONFIG[locale].dateFns;
17
- }
18
- function getDayPickerLocale(locale) {
19
- return APP_LOCALE_CONFIG[locale].dayPicker;
20
- }
21
-
22
- // src/app/time-formats.ts
23
- var APP_TIME_FORMATS = ["24h", "12h"];
24
- var APP_REQUEST_HEADER_TIME_FORMAT = "x-time-format";
25
- function getTimePattern(timeFormat) {
26
- return timeFormat === "24h" ? "HH:mm" : "h:mm a";
27
- }
28
- function isAppTimeFormat(value) {
29
- return value === "24h" || value === "12h";
30
- }
31
-
32
- // src/app/date-formats.ts
33
- var APP_DATE_FORMATS = ["iso", "dmy", "mdy"];
34
- var APP_REQUEST_HEADER_DATE_FORMAT = "x-date-format";
35
- function getDatePattern(dateFormat) {
36
- switch (dateFormat) {
37
- case "dmy":
38
- return "dd/MM/yyyy";
39
- case "mdy":
40
- return "MM/dd/yyyy";
41
- case "iso":
42
- default:
43
- return "yyyy-MM-dd";
44
- }
45
- }
46
- function getDateTimePattern(timeFormat, dateFormat) {
47
- return `${getDatePattern(dateFormat)} ${getTimePattern(timeFormat)}`;
48
- }
49
- function isAppDateFormat(value) {
50
- return value === "iso" || value === "dmy" || value === "mdy";
51
- }
52
-
53
- // src/i18n/messages/en.json
54
- var en_default = {
55
- common: {
56
- cancel: "Cancel",
57
- continue: "Continue",
58
- delete: "Delete",
59
- error: "Something went wrong",
60
- working: "Working\u2026",
61
- retry: "Retry",
62
- search: "Search",
63
- clearSearch: "Clear search",
64
- clearFilters: "Clear filters",
65
- clear: "Clear",
66
- first: "First",
67
- previous: "Previous",
68
- next: "Next",
69
- selectedCount: "{count} selected",
70
- typeToConfirm: "Type {phrase} to confirm"
71
- },
72
- dataEntry: {
73
- datePicker: {
74
- placeholder: "Select date",
75
- openCalendar: "Open calendar"
76
- },
77
- dateRangePicker: {
78
- placeholder: "Select date range",
79
- from: "From",
80
- to: "To",
81
- openCalendar: "Open calendar"
82
- },
83
- timePicker: {
84
- placeholder: "Select time",
85
- hour: "Hour",
86
- minute: "Minute",
87
- typeLabel: "Type time HH:mm",
88
- openPicker: "Open time picker",
89
- meridiem: "AM/PM",
90
- am: "AM",
91
- pm: "PM"
92
- },
93
- searchInput: {
94
- placeholder: "Search\u2026"
95
- },
96
- autocomplete: {
97
- placeholder: "Search or select\u2026",
98
- empty: "No results found"
99
- },
100
- colorPicker: {
101
- ariaLabel: "Pick color",
102
- hexLabel: "Hex color value"
103
- },
104
- upload: {
105
- dropzoneLabel: "Upload files",
106
- dropzoneHint: "Drag and drop files here, or click to browse",
107
- dropzoneMeta: "Uploads go to temp storage \u2014 promote on form save",
108
- buttonLabel: "Choose file",
109
- addImage: "Add image",
110
- uploading: "Uploading\u2026",
111
- pendingReplace: "New image",
112
- pendingReplaceHint: "New image staged \u2014 save form to apply",
113
- avatarLabel: "Profile photo",
114
- change: "Change",
115
- removeAvatar: "Remove photo",
116
- markedForDelete: "Photo will be removed when you save",
117
- undo: "Undo",
118
- cropTitle: "Crop photo",
119
- cropZoom: "Zoom",
120
- cropConfirm: "Use photo",
121
- inputLabel: "Choose files",
122
- statusUploading: "Uploading {count} file(s)\u2026",
123
- statusReady: "{count} file(s), {done} uploaded",
124
- statusFailed: "{count} upload(s) failed",
125
- removeImage: "Remove image",
126
- removeFile: "Remove {name}",
127
- cropDescription: "Drag the zoom slider, then save to crop your photo to a square."
128
- },
129
- cascader: {
130
- placeholder: "Select\u2026",
131
- searchPlaceholder: "Search\u2026",
132
- empty: "No results",
133
- clear: "Clear selection"
134
- },
135
- treeSelect: {
136
- placeholder: "Select\u2026",
137
- searchPlaceholder: "Search\u2026",
138
- empty: "No data",
139
- expand: "Expand",
140
- collapse: "Collapse",
141
- clear: "Clear selection"
142
- },
143
- transfer: {
144
- source: "Source",
145
- target: "Target",
146
- searchPlaceholder: "Search\u2026",
147
- empty: "No data",
148
- moveRight: "Move to target",
149
- moveLeft: "Move to source",
150
- selectAllSource: "Select all in source",
151
- selectAllTarget: "Select all in target"
152
- },
153
- searchSelect: {
154
- placeholder: "Select\u2026",
155
- search: "Search",
156
- clear: "Clear selection",
157
- loading: "Loading\u2026",
158
- empty: "No results"
159
- },
160
- monthPicker: {
161
- openGrid: "Open month grid",
162
- previousYear: "Previous year",
163
- nextYear: "Next year",
164
- placeholder: "yyyy/mm"
165
- }
166
- },
167
- feedback: {
168
- errorPanel: {
169
- title: "Couldn't load this section"
170
- },
171
- genericError: "Something went wrong. Please retry.",
172
- alert: {
173
- dismiss: "Dismiss"
174
- }
175
- },
176
- layout: {
177
- sidebar: {
178
- ariaLabel: "Primary"
179
- },
180
- appShell: {
181
- sidebarLabel: "Sidebar",
182
- headerLabel: "Header",
183
- mainLabel: "Main content",
184
- footerLabel: "Footer"
185
- },
186
- topbar: {
187
- toggleSidebar: "Toggle sidebar",
188
- search: "Search",
189
- searchPlaceholder: "Search...",
190
- notifications: "Notifications",
191
- tweaks: "Open settings"
192
- }
193
- },
194
- dataDisplay: {
195
- carousel: {
196
- roleDescription: "carousel",
197
- ariaLabel: "Carousel",
198
- slideLabel: "{index} of {total}",
199
- previous: "Previous",
200
- next: "Next",
201
- dotsLabel: "Choose slide",
202
- goToSlide: "Go to slide {index}"
203
- }
204
- },
205
- ui: {
206
- rating: {
207
- ariaLabel: "Rating",
208
- starLabel: "{star} / {max}"
209
- },
210
- tagInput: {
211
- inputLabel: "Add tags",
212
- removeTag: "Remove {tag}",
213
- tagCount: "{count} tags"
214
- },
215
- passwordInput: {
216
- show: "Show password",
217
- hide: "Hide password"
218
- },
219
- numberInput: {
220
- increment: "Increase",
221
- decrement: "Decrease"
222
- }
223
- },
224
- navigation: {
225
- steps: {
226
- ariaLabel: "Progress"
227
- },
228
- breadcrumb: {
229
- ariaLabel: "Breadcrumb"
230
- },
231
- toolbar: {
232
- ariaLabel: "Filters"
233
- },
234
- localePicker: {
235
- ariaLabel: "Language"
236
- },
237
- timezonePicker: {
238
- ariaLabel: "Timezone"
239
- },
240
- timeFormatPicker: {
241
- ariaLabel: "Time format"
242
- },
243
- dateFormatPicker: {
244
- ariaLabel: "Date format"
245
- },
246
- pagination: {
247
- ariaLabel: "Pagination",
248
- prev: "Previous page",
249
- next: "Next page",
250
- page: "Page {page}",
251
- pageSize: "Page size",
252
- pageSizeOption: "{size} / page",
253
- total: {
254
- one: "Total {total} item",
255
- other: "Total {total} items"
256
- }
257
- }
258
- },
259
- locale: {
260
- vi: "Ti\u1EBFng Vi\u1EC7t",
261
- en: "English",
262
- ja: "\u65E5\u672C\u8A9E"
263
- },
264
- timeFormat: {
265
- "24h": "24-hour",
266
- "12h": "12-hour (AM/PM)"
267
- },
268
- dateFormat: {
269
- iso: "ISO (yyyy-MM-dd)",
270
- dmy: "Day / Month / Year",
271
- mdy: "Month / Day / Year"
272
- },
273
- timezone: {
274
- "Asia/Ho_Chi_Minh": "Vietnam (Ho Chi Minh)",
275
- "Asia/Tokyo": "Japan (Tokyo)",
276
- "Asia/Bangkok": "Thailand (Bangkok)",
277
- "Asia/Singapore": "Singapore",
278
- "Asia/Seoul": "Korea (Seoul)",
279
- "Asia/Shanghai": "China (Shanghai)",
280
- "Asia/Taipei": "Taiwan (Taipei)",
281
- "Asia/Hong_Kong": "Hong Kong",
282
- UTC: "UTC",
283
- "Europe/London": "UK (London)",
284
- "America/Los_Angeles": "US (Los Angeles)",
285
- "America/New_York": "US (New York)"
286
- },
287
- dataTable: {
288
- selectAll: "Select all rows",
289
- selectRow: "Select row {id}",
290
- bulkActions: "Bulk actions",
291
- densityCompact: "Compact",
292
- densityComfortable: "Comfortable",
293
- densitySwitch: "Switch to {density} density",
294
- rowActions: "Row actions",
295
- empty: "No data",
296
- loading: "Loading\u2026"
297
- },
298
- dataGrid: {
299
- search: "Search",
300
- searchPlaceholder: "Search\u2026",
301
- view: "View",
302
- toggleColumns: "Toggle columns",
303
- rowsPerPage: "Rows per page",
304
- pageOf: "Page {page} of {total}"
305
- },
306
- status: {
307
- active: "Active",
308
- completed: "Completed",
309
- delivered: "Delivered",
310
- done: "Done",
311
- permanent: "Permanent",
312
- succeeded: "Succeeded",
313
- draft: "Draft",
314
- pending: "Pending",
315
- scheduled: "Scheduled",
316
- sending: "Sending",
317
- temporary: "Temporary",
318
- bounced: "Bounced",
319
- cancelled: "Cancelled",
320
- deleted: "Deleted",
321
- failed: "Failed",
322
- private: "Private",
323
- internal: "Internal",
324
- public: "Public",
325
- ASSIGNMENT_STATUS_ACTIVE: "Active",
326
- ASSIGNMENT_STATUS_SUSPENDED: "Suspended",
327
- ASSIGNMENT_STATUS_TERMINATED: "Terminated"
328
- },
329
- query: {
330
- loadMore: "Load more"
331
- }
332
- };
333
-
334
- // src/i18n/messages/ja.json
335
- var ja_default = {
336
- common: {
337
- cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
338
- continue: "\u7D9A\u884C",
339
- delete: "\u524A\u9664",
340
- error: "\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F",
341
- working: "\u51E6\u7406\u4E2D\u2026",
342
- retry: "\u518D\u8A66\u884C",
343
- search: "\u691C\u7D22",
344
- clearSearch: "\u691C\u7D22\u3092\u30AF\u30EA\u30A2",
345
- clearFilters: "\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u30AF\u30EA\u30A2",
346
- clear: "\u30AF\u30EA\u30A2",
347
- first: "\u6700\u521D",
348
- previous: "\u524D\u3078",
349
- next: "\u6B21\u3078",
350
- selectedCount: "{count} \u4EF6\u9078\u629E",
351
- typeToConfirm: "\u78BA\u8A8D\u306E\u305F\u3081 {phrase} \u3068\u5165\u529B"
352
- },
353
- dataEntry: {
354
- datePicker: {
355
- placeholder: "\u65E5\u4ED8\u3092\u9078\u629E",
356
- openCalendar: "\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u958B\u304F"
357
- },
358
- dateRangePicker: {
359
- placeholder: "\u671F\u9593\u3092\u9078\u629E",
360
- from: "\u958B\u59CB",
361
- to: "\u7D42\u4E86",
362
- openCalendar: "\u30AB\u30EC\u30F3\u30C0\u30FC\u3092\u958B\u304F"
363
- },
364
- timePicker: {
365
- placeholder: "\u6642\u523B\u3092\u9078\u629E",
366
- hour: "\u6642",
367
- minute: "\u5206",
368
- typeLabel: "HH:mm \u3092\u5165\u529B",
369
- openPicker: "\u6642\u523B\u3092\u9078\u629E",
370
- meridiem: "\u5348\u524D/\u5348\u5F8C",
371
- am: "\u5348\u524D",
372
- pm: "\u5348\u5F8C"
373
- },
374
- searchInput: {
375
- placeholder: "\u691C\u7D22\u2026"
376
- },
377
- autocomplete: {
378
- placeholder: "\u691C\u7D22\u307E\u305F\u306F\u9078\u629E\u2026",
379
- empty: "\u7D50\u679C\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"
380
- },
381
- colorPicker: {
382
- ariaLabel: "\u8272\u3092\u9078\u629E",
383
- hexLabel: "\u30AB\u30E9\u30FC\u30B3\u30FC\u30C9\uFF08HEX\uFF09"
384
- },
385
- upload: {
386
- dropzoneLabel: "\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9",
387
- dropzoneHint: "\u3053\u3053\u306B\u30C9\u30E9\u30C3\u30B0\uFF06\u30C9\u30ED\u30C3\u30D7\u3001\u307E\u305F\u306F\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u9078\u629E",
388
- dropzoneMeta: "\u4E00\u6642\u30B9\u30C8\u30EC\u30FC\u30B8\u306B\u4FDD\u5B58 \u2014 \u30D5\u30A9\u30FC\u30E0\u4FDD\u5B58\u6642\u306B promote",
389
- buttonLabel: "\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E",
390
- addImage: "\u753B\u50CF\u3092\u8FFD\u52A0",
391
- uploading: "\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u2026",
392
- pendingReplace: "\u65B0\u3057\u3044\u753B\u50CF",
393
- pendingReplaceHint: "\u65B0\u3057\u3044\u753B\u50CF\u3092\u4FDD\u7559\u4E2D \u2014 \u4FDD\u5B58\u3067\u53CD\u6620",
394
- avatarLabel: "\u30D7\u30ED\u30D5\u30A3\u30FC\u30EB\u5199\u771F",
395
- change: "\u5909\u66F4",
396
- removeAvatar: "\u5199\u771F\u3092\u524A\u9664",
397
- markedForDelete: "\u4FDD\u5B58\u6642\u306B\u5199\u771F\u304C\u524A\u9664\u3055\u308C\u307E\u3059",
398
- undo: "\u5143\u306B\u623B\u3059",
399
- cropTitle: "\u5199\u771F\u3092\u5207\u308A\u629C\u304D",
400
- cropZoom: "\u30BA\u30FC\u30E0",
401
- cropConfirm: "\u3053\u306E\u5199\u771F\u3092\u4F7F\u7528",
402
- inputLabel: "\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E",
403
- statusUploading: "{count} \u4EF6\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u2026",
404
- statusReady: "{count} \u4EF6\u4E2D {done} \u4EF6\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u6E08\u307F",
405
- statusFailed: "{count} \u4EF6\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557",
406
- removeImage: "\u753B\u50CF\u3092\u524A\u9664",
407
- removeFile: "{name} \u3092\u524A\u9664",
408
- cropDescription: "\u30BA\u30FC\u30E0\u30B9\u30E9\u30A4\u30C0\u30FC\u3092\u8ABF\u6574\u3057\u3001\u4FDD\u5B58\u3059\u308B\u3068\u5199\u771F\u3092\u6B63\u65B9\u5F62\u306B\u5207\u308A\u629C\u304D\u307E\u3059\u3002"
409
- },
410
- cascader: {
411
- placeholder: "\u9078\u629E\u2026",
412
- searchPlaceholder: "\u691C\u7D22\u2026",
413
- empty: "\u7D50\u679C\u306A\u3057",
414
- clear: "\u9078\u629E\u3092\u30AF\u30EA\u30A2"
415
- },
416
- treeSelect: {
417
- placeholder: "\u9078\u629E\u2026",
418
- searchPlaceholder: "\u691C\u7D22\u2026",
419
- empty: "\u30C7\u30FC\u30BF\u306A\u3057",
420
- expand: "\u5C55\u958B",
421
- collapse: "\u6298\u308A\u305F\u305F\u3080",
422
- clear: "\u9078\u629E\u3092\u30AF\u30EA\u30A2"
423
- },
424
- transfer: {
425
- source: "\u30BD\u30FC\u30B9",
426
- target: "\u30BF\u30FC\u30B2\u30C3\u30C8",
427
- searchPlaceholder: "\u691C\u7D22\u2026",
428
- empty: "\u30C7\u30FC\u30BF\u306A\u3057",
429
- moveRight: "\u30BF\u30FC\u30B2\u30C3\u30C8\u3078\u79FB\u52D5",
430
- moveLeft: "\u30BD\u30FC\u30B9\u3078\u623B\u3059",
431
- selectAllSource: "\u30BD\u30FC\u30B9\u3092\u3059\u3079\u3066\u9078\u629E",
432
- selectAllTarget: "\u30BF\u30FC\u30B2\u30C3\u30C8\u3092\u3059\u3079\u3066\u9078\u629E"
433
- },
434
- searchSelect: {
435
- placeholder: "\u9078\u629E\u2026",
436
- search: "\u691C\u7D22",
437
- clear: "\u9078\u629E\u3092\u30AF\u30EA\u30A2",
438
- loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",
439
- empty: "\u8A72\u5F53\u306A\u3057"
440
- },
441
- monthPicker: {
442
- openGrid: "\u6708\u9078\u629E\u3092\u958B\u304F",
443
- previousYear: "\u524D\u5E74\u3078",
444
- nextYear: "\u7FCC\u5E74\u3078",
445
- placeholder: "yyyy/mm"
446
- }
447
- },
448
- feedback: {
449
- errorPanel: {
450
- title: "\u3053\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F"
451
- },
452
- genericError: "\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
453
- alert: {
454
- dismiss: "\u9589\u3058\u308B"
455
- }
456
- },
457
- layout: {
458
- sidebar: {
459
- ariaLabel: "\u30E1\u30A4\u30F3\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3"
460
- },
461
- appShell: {
462
- sidebarLabel: "\u30B5\u30A4\u30C9\u30D0\u30FC",
463
- headerLabel: "\u30D8\u30C3\u30C0\u30FC",
464
- mainLabel: "\u30E1\u30A4\u30F3\u30B3\u30F3\u30C6\u30F3\u30C4",
465
- footerLabel: "\u30D5\u30C3\u30BF\u30FC"
466
- },
467
- topbar: {
468
- toggleSidebar: "\u30B5\u30A4\u30C9\u30D0\u30FC\u306E\u5207\u308A\u66FF\u3048",
469
- search: "\u691C\u7D22",
470
- searchPlaceholder: "\u691C\u7D22...",
471
- notifications: "\u901A\u77E5",
472
- tweaks: "\u8A2D\u5B9A\u3092\u958B\u304F"
473
- }
474
- },
475
- dataDisplay: {
476
- carousel: {
477
- roleDescription: "\u30AB\u30EB\u30FC\u30BB\u30EB",
478
- ariaLabel: "\u30AB\u30EB\u30FC\u30BB\u30EB",
479
- slideLabel: "{total} \u4EF6\u4E2D {index} \u4EF6\u76EE",
480
- previous: "\u524D\u3078",
481
- next: "\u6B21\u3078",
482
- dotsLabel: "\u30B9\u30E9\u30A4\u30C9\u3092\u9078\u629E",
483
- goToSlide: "{index} \u756A\u76EE\u306E\u30B9\u30E9\u30A4\u30C9\u3078"
484
- }
485
- },
486
- ui: {
487
- rating: {
488
- ariaLabel: "\u8A55\u4FA1",
489
- starLabel: "{star} / {max}"
490
- },
491
- tagInput: {
492
- inputLabel: "\u30BF\u30B0\u3092\u8FFD\u52A0",
493
- removeTag: "{tag} \u3092\u524A\u9664",
494
- tagCount: "{count} \u4EF6\u306E\u30BF\u30B0"
495
- },
496
- passwordInput: {
497
- show: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8868\u793A",
498
- hide: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u96A0\u3059"
499
- },
500
- numberInput: {
501
- increment: "\u5897\u3084\u3059",
502
- decrement: "\u6E1B\u3089\u3059"
503
- }
504
- },
505
- navigation: {
506
- steps: {
507
- ariaLabel: "\u9032\u884C\u72B6\u6CC1"
508
- },
509
- breadcrumb: {
510
- ariaLabel: "\u30D1\u30F3\u304F\u305A\u30EA\u30B9\u30C8"
511
- },
512
- toolbar: {
513
- ariaLabel: "\u30D5\u30A3\u30EB\u30BF\u30FC"
514
- },
515
- localePicker: {
516
- ariaLabel: "\u8A00\u8A9E"
517
- },
518
- timezonePicker: {
519
- ariaLabel: "\u30BF\u30A4\u30E0\u30BE\u30FC\u30F3"
520
- },
521
- timeFormatPicker: {
522
- ariaLabel: "\u6642\u523B\u5F62\u5F0F"
523
- },
524
- dateFormatPicker: {
525
- ariaLabel: "\u65E5\u4ED8\u5F62\u5F0F"
526
- },
527
- pagination: {
528
- ariaLabel: "\u30DA\u30FC\u30B8\u30CD\u30FC\u30B7\u30E7\u30F3",
529
- prev: "\u524D\u306E\u30DA\u30FC\u30B8",
530
- next: "\u6B21\u306E\u30DA\u30FC\u30B8",
531
- page: "\u30DA\u30FC\u30B8 {page}",
532
- pageSize: "\u30DA\u30FC\u30B8\u30B5\u30A4\u30BA",
533
- pageSizeOption: "{size} / \u30DA\u30FC\u30B8",
534
- total: "\u5168 {total} \u4EF6"
535
- }
536
- },
537
- locale: {
538
- vi: "Ti\u1EBFng Vi\u1EC7t",
539
- en: "English",
540
- ja: "\u65E5\u672C\u8A9E"
541
- },
542
- timeFormat: {
543
- "24h": "24\u6642\u9593",
544
- "12h": "12\u6642\u9593 (\u5348\u524D/\u5348\u5F8C)"
545
- },
546
- dateFormat: {
547
- iso: "YYYY-MM-DD\uFF08\u5E74-\u6708-\u65E5\uFF09",
548
- dmy: "\u65E5/\u6708/\u5E74",
549
- mdy: "\u6708/\u65E5/\u5E74"
550
- },
551
- timezone: {
552
- "Asia/Ho_Chi_Minh": "\u30D9\u30C8\u30CA\u30E0\uFF08\u30DB\u30FC\u30C1\u30DF\u30F3\uFF09",
553
- "Asia/Tokyo": "\u65E5\u672C\uFF08\u6771\u4EAC\uFF09",
554
- "Asia/Bangkok": "\u30BF\u30A4\uFF08\u30D0\u30F3\u30B3\u30AF\uFF09",
555
- "Asia/Singapore": "\u30B7\u30F3\u30AC\u30DD\u30FC\u30EB",
556
- "Asia/Seoul": "\u97D3\u56FD\uFF08\u30BD\u30A6\u30EB\uFF09",
557
- "Asia/Shanghai": "\u4E2D\u56FD\uFF08\u4E0A\u6D77\uFF09",
558
- "Asia/Taipei": "\u53F0\u6E7E\uFF08\u53F0\u5317\uFF09",
559
- "Asia/Hong_Kong": "\u9999\u6E2F",
560
- UTC: "UTC",
561
- "Europe/London": "\u82F1\u56FD\uFF08\u30ED\u30F3\u30C9\u30F3\uFF09",
562
- "America/Los_Angeles": "\u7C73\u56FD\uFF08\u30ED\u30B5\u30F3\u30BC\u30EB\u30B9\uFF09",
563
- "America/New_York": "\u7C73\u56FD\uFF08\u30CB\u30E5\u30FC\u30E8\u30FC\u30AF\uFF09"
564
- },
565
- dataTable: {
566
- selectAll: "\u3059\u3079\u3066\u306E\u884C\u3092\u9078\u629E",
567
- selectRow: "\u884C {id} \u3092\u9078\u629E",
568
- bulkActions: "\u4E00\u62EC\u64CD\u4F5C",
569
- densityCompact: "\u30B3\u30F3\u30D1\u30AF\u30C8",
570
- densityComfortable: "\u5FEB\u9069",
571
- densitySwitch: "{density} \u8868\u793A\u306B\u5207\u308A\u66FF\u3048",
572
- rowActions: "\u884C\u306E\u64CD\u4F5C",
573
- empty: "\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",
574
- loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026"
575
- },
576
- dataGrid: {
577
- search: "\u691C\u7D22",
578
- searchPlaceholder: "\u691C\u7D22\u2026",
579
- view: "\u8868\u793A",
580
- toggleColumns: "\u5217\u306E\u8868\u793A\u5207\u66FF",
581
- rowsPerPage: "\u8868\u793A\u4EF6\u6570",
582
- pageOf: "{page} / {total} \u30DA\u30FC\u30B8"
583
- },
584
- status: {
585
- active: "\u6709\u52B9",
586
- completed: "\u5B8C\u4E86",
587
- delivered: "\u914D\u9054\u6E08\u307F",
588
- done: "\u5B8C\u4E86",
589
- permanent: "\u6C38\u4E45",
590
- succeeded: "\u6210\u529F",
591
- draft: "\u4E0B\u66F8\u304D",
592
- pending: "\u4FDD\u7559",
593
- scheduled: "\u4E88\u5B9A",
594
- sending: "\u9001\u4FE1\u4E2D",
595
- temporary: "\u4E00\u6642",
596
- bounced: "\u30D0\u30A6\u30F3\u30B9",
597
- cancelled: "\u30AD\u30E3\u30F3\u30BB\u30EB",
598
- deleted: "\u524A\u9664\u6E08\u307F",
599
- failed: "\u5931\u6557",
600
- private: "\u975E\u516C\u958B",
601
- internal: "\u5185\u90E8",
602
- public: "\u516C\u958B",
603
- ASSIGNMENT_STATUS_ACTIVE: "\u6709\u52B9",
604
- ASSIGNMENT_STATUS_SUSPENDED: "\u505C\u6B62",
605
- ASSIGNMENT_STATUS_TERMINATED: "\u7D42\u4E86"
606
- },
607
- query: {
608
- loadMore: "\u3055\u3089\u306B\u8AAD\u307F\u8FBC\u3080"
609
- }
610
- };
611
-
612
- // src/i18n/messages/vi.json
613
- var vi_default = {
614
- common: {
615
- cancel: "H\u1EE7y",
616
- continue: "Ti\u1EBFp t\u1EE5c",
617
- delete: "X\xF3a",
618
- error: "\u0110\xE3 x\u1EA3y ra l\u1ED7i",
619
- working: "\u0110ang x\u1EED l\xFD\u2026",
620
- retry: "Th\u1EED l\u1EA1i",
621
- search: "T\xECm ki\u1EBFm",
622
- clearSearch: "X\xF3a t\xECm ki\u1EBFm",
623
- clearFilters: "X\xF3a b\u1ED9 l\u1ECDc",
624
- clear: "X\xF3a",
625
- first: "\u0110\u1EA7u",
626
- previous: "Tr\u01B0\u1EDBc",
627
- next: "Ti\u1EBFp",
628
- selectedCount: "{count} \u0111\xE3 ch\u1ECDn",
629
- typeToConfirm: "Nh\u1EADp {phrase} \u0111\u1EC3 x\xE1c nh\u1EADn"
630
- },
631
- dataEntry: {
632
- datePicker: {
633
- placeholder: "Ch\u1ECDn ng\xE0y",
634
- openCalendar: "M\u1EDF l\u1ECBch"
635
- },
636
- dateRangePicker: {
637
- placeholder: "Ch\u1ECDn kho\u1EA3ng ng\xE0y",
638
- from: "T\u1EEB",
639
- to: "\u0110\u1EBFn",
640
- openCalendar: "M\u1EDF l\u1ECBch"
641
- },
642
- timePicker: {
643
- placeholder: "Ch\u1ECDn gi\u1EDD",
644
- hour: "Gi\u1EDD",
645
- minute: "Ph\xFAt",
646
- typeLabel: "Nh\u1EADp gi\u1EDD HH:mm",
647
- openPicker: "M\u1EDF ch\u1ECDn gi\u1EDD",
648
- meridiem: "Bu\u1ED5i",
649
- am: "SA",
650
- pm: "CH"
651
- },
652
- searchInput: {
653
- placeholder: "T\xECm ki\u1EBFm\u2026"
654
- },
655
- autocomplete: {
656
- placeholder: "T\xECm ho\u1EB7c ch\u1ECDn\u2026",
657
- empty: "Kh\xF4ng t\xECm th\u1EA5y k\u1EBFt qu\u1EA3"
658
- },
659
- colorPicker: {
660
- ariaLabel: "Ch\u1ECDn m\xE0u",
661
- hexLabel: "M\xE3 m\xE0u hex"
662
- },
663
- upload: {
664
- dropzoneLabel: "T\u1EA3i file l\xEAn",
665
- dropzoneHint: "K\xE9o th\u1EA3 file v\xE0o \u0111\xE2y, ho\u1EB7c b\u1EA5m \u0111\u1EC3 ch\u1ECDn",
666
- dropzoneMeta: "Upload v\xE0o temp \u2014 promote khi l\u01B0u form",
667
- buttonLabel: "Ch\u1ECDn file",
668
- addImage: "Th\xEAm \u1EA3nh",
669
- uploading: "\u0110ang t\u1EA3i l\xEAn\u2026",
670
- pendingReplace: "\u1EA2nh m\u1EDBi",
671
- pendingReplaceHint: "\u1EA2nh m\u1EDBi \u0111ang ch\u1EDD \u2014 l\u01B0u form \u0111\u1EC3 \xE1p d\u1EE5ng",
672
- avatarLabel: "\u1EA2nh \u0111\u1EA1i di\u1EC7n",
673
- change: "\u0110\u1ED5i",
674
- removeAvatar: "X\xF3a \u1EA3nh",
675
- markedForDelete: "\u1EA2nh s\u1EBD b\u1ECB x\xF3a khi b\u1EA1n l\u01B0u",
676
- undo: "Ho\xE0n t\xE1c",
677
- cropTitle: "C\u1EAFt \u1EA3nh",
678
- cropZoom: "Thu ph\xF3ng",
679
- cropConfirm: "D\xF9ng \u1EA3nh n\xE0y",
680
- inputLabel: "Ch\u1ECDn t\u1EC7p",
681
- statusUploading: "\u0110ang t\u1EA3i l\xEAn {count} t\u1EC7p\u2026",
682
- statusReady: "{count} t\u1EC7p, \u0111\xE3 t\u1EA3i l\xEAn {done}",
683
- statusFailed: "{count} t\u1EC7p t\u1EA3i l\xEAn th\u1EA5t b\u1EA1i",
684
- removeImage: "X\xF3a \u1EA3nh",
685
- removeFile: "X\xF3a {name}",
686
- cropDescription: "K\xE9o thanh thu ph\xF3ng r\u1ED3i l\u01B0u \u0111\u1EC3 c\u1EAFt \u1EA3nh th\xE0nh h\xECnh vu\xF4ng."
687
- },
688
- cascader: {
689
- placeholder: "Ch\u1ECDn\u2026",
690
- searchPlaceholder: "T\xECm ki\u1EBFm\u2026",
691
- empty: "Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3",
692
- clear: "X\xF3a l\u1EF1a ch\u1ECDn"
693
- },
694
- treeSelect: {
695
- placeholder: "Ch\u1ECDn\u2026",
696
- searchPlaceholder: "T\xECm ki\u1EBFm\u2026",
697
- empty: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u",
698
- expand: "M\u1EDF r\u1ED9ng",
699
- collapse: "Thu g\u1ECDn",
700
- clear: "X\xF3a l\u1EF1a ch\u1ECDn"
701
- },
702
- transfer: {
703
- source: "Ngu\u1ED3n",
704
- target: "\u0110\xEDch",
705
- searchPlaceholder: "T\xECm ki\u1EBFm\u2026",
706
- empty: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u",
707
- moveRight: "Chuy\u1EC3n sang \u0111\xEDch",
708
- moveLeft: "Chuy\u1EC3n v\u1EC1 ngu\u1ED3n",
709
- selectAllSource: "Ch\u1ECDn t\u1EA5t c\u1EA3 \u1EDF ngu\u1ED3n",
710
- selectAllTarget: "Ch\u1ECDn t\u1EA5t c\u1EA3 \u1EDF \u0111\xEDch"
711
- },
712
- searchSelect: {
713
- placeholder: "Ch\u1ECDn\u2026",
714
- search: "T\xECm ki\u1EBFm",
715
- clear: "X\xF3a l\u1EF1a ch\u1ECDn",
716
- loading: "\u0110ang t\u1EA3i\u2026",
717
- empty: "Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3"
718
- },
719
- monthPicker: {
720
- openGrid: "M\u1EDF ch\u1ECDn th\xE1ng",
721
- previousYear: "N\u0103m tr\u01B0\u1EDBc",
722
- nextYear: "N\u0103m sau",
723
- placeholder: "yyyy/mm"
724
- }
725
- },
726
- feedback: {
727
- errorPanel: {
728
- title: "Kh\xF4ng t\u1EA3i \u0111\u01B0\u1EE3c n\u1ED9i dung n\xE0y"
729
- },
730
- genericError: "\u0110\xE3 x\u1EA3y ra l\u1ED7i. Vui l\xF2ng th\u1EED l\u1EA1i.",
731
- alert: {
732
- dismiss: "\u0110\xF3ng"
733
- }
734
- },
735
- layout: {
736
- sidebar: {
737
- ariaLabel: "\u0110i\u1EC1u h\u01B0\u1EDBng ch\xEDnh"
738
- },
739
- appShell: {
740
- sidebarLabel: "Thanh b\xEAn",
741
- headerLabel: "\u0110\u1EA7u trang",
742
- mainLabel: "N\u1ED9i dung ch\xEDnh",
743
- footerLabel: "Ch\xE2n trang"
744
- },
745
- topbar: {
746
- toggleSidebar: "B\u1EADt/t\u1EAFt thanh b\xEAn",
747
- search: "T\xECm ki\u1EBFm",
748
- searchPlaceholder: "T\xECm ki\u1EBFm...",
749
- notifications: "Th\xF4ng b\xE1o",
750
- tweaks: "M\u1EDF t\xF9y ch\u1EC9nh"
751
- }
752
- },
753
- dataDisplay: {
754
- carousel: {
755
- roleDescription: "b\u0103ng chuy\u1EC1n",
756
- ariaLabel: "B\u0103ng chuy\u1EC1n",
757
- slideLabel: "{index} / {total}",
758
- previous: "Tr\u01B0\u1EDBc",
759
- next: "Sau",
760
- dotsLabel: "Ch\u1ECDn slide",
761
- goToSlide: "\u0110\u1EBFn slide {index}"
762
- }
763
- },
764
- ui: {
765
- rating: {
766
- ariaLabel: "\u0110\xE1nh gi\xE1",
767
- starLabel: "{star} / {max}"
768
- },
769
- tagInput: {
770
- inputLabel: "Th\xEAm th\u1EBB",
771
- removeTag: "X\xF3a {tag}",
772
- tagCount: "{count} th\u1EBB"
773
- },
774
- passwordInput: {
775
- show: "Hi\u1EC7n m\u1EADt kh\u1EA9u",
776
- hide: "\u1EA8n m\u1EADt kh\u1EA9u"
777
- },
778
- numberInput: {
779
- increment: "T\u0103ng",
780
- decrement: "Gi\u1EA3m"
781
- }
782
- },
783
- navigation: {
784
- steps: {
785
- ariaLabel: "Ti\u1EBFn tr\xECnh"
786
- },
787
- breadcrumb: {
788
- ariaLabel: "\u0110\u01B0\u1EDDng d\u1EABn"
789
- },
790
- toolbar: {
791
- ariaLabel: "B\u1ED9 l\u1ECDc"
792
- },
793
- localePicker: {
794
- ariaLabel: "Ng\xF4n ng\u1EEF"
795
- },
796
- timezonePicker: {
797
- ariaLabel: "M\xFAi gi\u1EDD"
798
- },
799
- timeFormatPicker: {
800
- ariaLabel: "\u0110\u1ECBnh d\u1EA1ng gi\u1EDD"
801
- },
802
- dateFormatPicker: {
803
- ariaLabel: "\u0110\u1ECBnh d\u1EA1ng ng\xE0y"
804
- },
805
- pagination: {
806
- ariaLabel: "Ph\xE2n trang",
807
- prev: "Trang tr\u01B0\u1EDBc",
808
- next: "Trang sau",
809
- page: "Trang {page}",
810
- pageSize: "S\u1ED1 d\xF2ng m\u1ED7i trang",
811
- pageSizeOption: "{size} / trang",
812
- total: "T\u1ED5ng {total} m\u1EE5c"
813
- }
814
- },
815
- locale: {
816
- vi: "Ti\u1EBFng Vi\u1EC7t",
817
- en: "English",
818
- ja: "\u65E5\u672C\u8A9E"
819
- },
820
- timeFormat: {
821
- "24h": "24 gi\u1EDD",
822
- "12h": "12 gi\u1EDD (SA/CH)"
823
- },
824
- dateFormat: {
825
- iso: "ISO (yyyy-MM-dd)",
826
- dmy: "Ng\xE0y / Th\xE1ng / N\u0103m",
827
- mdy: "Th\xE1ng / Ng\xE0y / N\u0103m"
828
- },
829
- timezone: {
830
- "Asia/Ho_Chi_Minh": "Vi\u1EC7t Nam (HCM)",
831
- "Asia/Tokyo": "Nh\u1EADt B\u1EA3n (Tokyo)",
832
- "Asia/Bangkok": "Th\xE1i Lan (Bangkok)",
833
- "Asia/Singapore": "Singapore",
834
- "Asia/Seoul": "H\xE0n Qu\u1ED1c (Seoul)",
835
- "Asia/Shanghai": "Trung Qu\u1ED1c (Shanghai)",
836
- "Asia/Taipei": "\u0110\xE0i Loan (Taipei)",
837
- "Asia/Hong_Kong": "H\u1ED3ng K\xF4ng",
838
- UTC: "UTC",
839
- "Europe/London": "Anh (London)",
840
- "America/Los_Angeles": "M\u1EF9 (Los Angeles)",
841
- "America/New_York": "M\u1EF9 (New York)"
842
- },
843
- dataTable: {
844
- selectAll: "Ch\u1ECDn t\u1EA5t c\u1EA3 c\xE1c d\xF2ng",
845
- selectRow: "Ch\u1ECDn d\xF2ng {id}",
846
- bulkActions: "Thao t\xE1c h\xE0ng lo\u1EA1t",
847
- densityCompact: "G\u1ECDn",
848
- densityComfortable: "Tho\u1EA3i m\xE1i",
849
- densitySwitch: "Chuy\u1EC3n sang m\u1EADt \u0111\u1ED9 {density}",
850
- rowActions: "Thao t\xE1c d\xF2ng",
851
- empty: "Ch\u01B0a c\xF3 d\u1EEF li\u1EC7u",
852
- loading: "\u0110ang t\u1EA3i\u2026"
853
- },
854
- dataGrid: {
855
- search: "T\xECm ki\u1EBFm",
856
- searchPlaceholder: "T\xECm ki\u1EBFm\u2026",
857
- view: "Hi\u1EC3n th\u1ECB",
858
- toggleColumns: "\u1EA8n/hi\u1EC7n c\u1ED9t",
859
- rowsPerPage: "S\u1ED1 d\xF2ng/trang",
860
- pageOf: "Trang {page}/{total}"
861
- },
862
- status: {
863
- active: "\u0110ang ho\u1EA1t \u0111\u1ED9ng",
864
- completed: "Ho\xE0n th\xE0nh",
865
- delivered: "\u0110\xE3 giao",
866
- done: "Xong",
867
- permanent: "V\u0129nh vi\u1EC5n",
868
- succeeded: "Th\xE0nh c\xF4ng",
869
- draft: "Nh\xE1p",
870
- pending: "Ch\u1EDD x\u1EED l\xFD",
871
- scheduled: "\u0110\xE3 l\xEAn l\u1ECBch",
872
- sending: "\u0110ang g\u1EEDi",
873
- temporary: "T\u1EA1m th\u1EDDi",
874
- bounced: "B\u1ECB tr\u1EA3 l\u1EA1i",
875
- cancelled: "\u0110\xE3 h\u1EE7y",
876
- deleted: "\u0110\xE3 x\xF3a",
877
- failed: "Th\u1EA5t b\u1EA1i",
878
- private: "Ri\xEAng t\u01B0",
879
- internal: "N\u1ED9i b\u1ED9",
880
- public: "C\xF4ng khai",
881
- ASSIGNMENT_STATUS_ACTIVE: "\u0110ang ho\u1EA1t \u0111\u1ED9ng",
882
- ASSIGNMENT_STATUS_SUSPENDED: "T\u1EA1m ng\u01B0ng",
883
- ASSIGNMENT_STATUS_TERMINATED: "Ch\u1EA5m d\u1EE9t"
884
- },
885
- query: {
886
- loadMore: "T\u1EA3i th\xEAm"
887
- }
888
- };
889
-
890
- // src/i18n/translate.ts
891
- var MESSAGE_CATALOG = {
892
- vi: vi_default,
893
- en: en_default,
894
- ja: ja_default
895
- };
896
- function getNested(obj, path) {
897
- const parts = path.split(".");
898
- let current = obj;
899
- for (const part of parts) {
900
- if (current == null || typeof current !== "object") return void 0;
901
- current = current[part];
902
- }
903
- if (typeof current === "string") return current;
904
- if (current != null && typeof current === "object") {
905
- return current;
906
- }
907
- return void 0;
908
- }
909
- function pluralCount(params) {
910
- if (!params) return void 0;
911
- if (typeof params.count === "number") return params.count;
912
- for (const value of Object.values(params)) {
913
- if (typeof value === "number") return value;
914
- }
915
- return void 0;
916
- }
917
- function selectPlural(value, locale, params) {
918
- if (typeof value === "string") return value;
919
- const count = pluralCount(params);
920
- if (count === void 0) {
921
- return value.other ?? Object.values(value)[0] ?? "";
922
- }
923
- const category = new Intl.PluralRules(locale).select(count);
924
- return value[category] ?? value.other ?? Object.values(value)[0] ?? "";
925
- }
926
- function interpolate(template, locale, params) {
927
- if (!params) return template;
928
- return Object.entries(params).reduce(
929
- (text, [key, value]) => text.replaceAll(
930
- `{${key}}`,
931
- typeof value === "number" ? new Intl.NumberFormat(locale).format(value) : String(value)
932
- ),
933
- template
934
- );
935
- }
936
- function translate(locale, fallbackLocale, key, params) {
937
- const primary = getNested(MESSAGE_CATALOG[locale], key);
938
- const fallback = getNested(MESSAGE_CATALOG[fallbackLocale], key);
939
- const value = primary ?? fallback ?? key;
940
- return interpolate(selectPlural(value, locale, params), locale, params);
941
- }
942
- function translateCurrent(key, params) {
943
- return translate(getSyncedLocale(), getSyncedFallbackLocale(), key, params);
944
- }
945
- var syncedLocale = "vi";
946
- var syncedFallbackLocale = "en";
947
- function syncI18nLocale(locale, fallbackLocale) {
948
- syncedLocale = locale;
949
- syncedFallbackLocale = fallbackLocale;
950
- }
951
- function getSyncedLocale() {
952
- return syncedLocale;
953
- }
954
- function getSyncedFallbackLocale() {
955
- return syncedFallbackLocale;
956
- }
957
- function resetI18nLocale() {
958
- syncedLocale = "vi";
959
- syncedFallbackLocale = "en";
960
- }
961
-
962
- // src/app/date-format-labels.ts
963
- var APP_DATE_FORMAT_OPTIONS = APP_DATE_FORMATS.map((value) => ({ value }));
964
- function getDateFormatLabel(dateFormat, locale, fallbackLocale = "en") {
965
- return translate(locale, fallbackLocale, `dateFormat.${dateFormat}`);
966
- }
967
- function resolveDefaultDateFormat(locale) {
968
- if (locale === "en") return "mdy";
969
- if (locale === "ja") return "iso";
970
- return "dmy";
971
- }
972
-
973
- // src/lib/datetime/sync.ts
974
- var DEFAULT_LOCALE = "vi";
975
- var defaultContext = () => ({
976
- locale: DEFAULT_LOCALE,
977
- dateFnsLocale: getDateFnsLocale(DEFAULT_LOCALE),
978
- timezone: "Asia/Ho_Chi_Minh",
979
- timeFormat: "24h",
980
- dateFormat: resolveDefaultDateFormat(DEFAULT_LOCALE)
981
- });
982
- var syncedContext = defaultContext();
983
- var liveRelativeFormattingEnabled = true;
984
- function syncDatetimeContext(partial) {
985
- syncedContext = {
986
- locale: partial.locale,
987
- timezone: partial.timezone,
988
- timeFormat: partial.timeFormat,
989
- dateFormat: partial.dateFormat,
990
- dateFnsLocale: partial.dateFnsLocale ?? getDateFnsLocale(partial.locale)
991
- };
992
- }
993
- function getDatetimeContext() {
994
- return syncedContext;
995
- }
996
- function enableLiveRelativeFormatting() {
997
- liveRelativeFormattingEnabled = true;
998
- }
999
- function disableLiveRelativeFormatting() {
1000
- liveRelativeFormattingEnabled = false;
1001
- }
1002
- function canUseLiveRelativeFormatting() {
1003
- return liveRelativeFormattingEnabled;
1004
- }
1005
- function resetDatetimeContextForTests() {
1006
- syncedContext = defaultContext();
1007
- liveRelativeFormattingEnabled = true;
1008
- }
1009
-
1010
- // src/lib/datetime/detect.ts
1011
- var DATE_ONLY_RE = /^\d{4}-\d{2}-\d{2}$/;
1012
- function detectFormatDateKind(value) {
1013
- if (value instanceof Date) return "datetime";
1014
- const trimmed = value.trim();
1015
- if (isValidHhmm(trimmed)) return "time";
1016
- if (DATE_ONLY_RE.test(trimmed)) return "date";
1017
- return "datetime";
1018
- }
1019
- function isDateOnlyString(value) {
1020
- return DATE_ONLY_RE.test(value.trim());
1021
- }
1022
-
1023
- // src/lib/datetime/parse.ts
1024
- function toIsoDate(value) {
1025
- if (value == null || Number.isNaN(value.getTime())) return "";
1026
- const year = String(value.getFullYear()).padStart(4, "0");
1027
- const month = String(value.getMonth() + 1).padStart(2, "0");
1028
- const day = String(value.getDate()).padStart(2, "0");
1029
- return `${year}-${month}-${day}`;
1030
- }
1031
- function parseDateInput(value) {
1032
- if (value == null) return null;
1033
- if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value;
1034
- const trimmed = value.trim();
1035
- if (isDateOnlyString(trimmed)) {
1036
- const [year, month, day] = trimmed.split("-").map(Number);
1037
- return new Date(year, month - 1, day);
1038
- }
1039
- const parsed = parseISO(trimmed);
1040
- return Number.isNaN(parsed.getTime()) ? null : parsed;
1041
- }
1042
- function calendarDateToTZDate(date, timezone) {
1043
- return new TZDate(date.getFullYear(), date.getMonth(), date.getDate(), timezone);
1044
- }
1045
- var HHMM_RE = /^([01]?\d|2[0-3]):([0-5]\d)$/;
1046
- function isValidHhmm(value) {
1047
- return HHMM_RE.test(value.trim());
1048
- }
1049
- function normalizeHhmm(value) {
1050
- const trimmed = value.trim();
1051
- if (isValidHhmm(trimmed)) {
1052
- const [h, m] = trimmed.split(":");
1053
- return `${h.padStart(2, "0")}:${m}`;
1054
- }
1055
- const loose = /^(\d{1,2}):(\d{2})$/.exec(trimmed);
1056
- if (!loose) return null;
1057
- const hours = Number(loose[1]);
1058
- const minutes = Number(loose[2]);
1059
- if (hours > 23 || minutes > 59) return null;
1060
- return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}`;
1061
- }
1062
- function hhmmToTZDate(hhmm, timezone) {
1063
- const normalized = normalizeHhmm(hhmm);
1064
- if (!normalized) return null;
1065
- const [h, m] = normalized.split(":").map(Number);
1066
- const today = TZDate.tz(timezone);
1067
- return new TZDate(today.getFullYear(), today.getMonth(), today.getDate(), h, m, 0, 0, timezone);
1068
- }
1069
- function resolveLocale(locale) {
1070
- if (!locale) return getDatetimeContext().dateFnsLocale;
1071
- if (typeof locale === "string") return getDateFnsLocale(locale);
1072
- return locale;
1073
- }
1074
- function resolveOptions(options) {
1075
- const ctx = getDatetimeContext();
1076
- return {
1077
- locale: resolveLocale(options?.locale),
1078
- timezone: options?.timezone ?? ctx.timezone,
1079
- timeFormat: options?.timeFormat ?? ctx.timeFormat,
1080
- dateFormat: options?.dateFormat ?? ctx.dateFormat
1081
- };
1082
- }
1083
- function formatTZDate(zoned, pattern, options) {
1084
- return format(zoned, pattern, { locale: options.locale });
1085
- }
1086
- function instantToTZDate(value, timezone) {
1087
- return new TZDate(value, timezone);
1088
- }
1089
- var EMPTY = "\u2014";
1090
- function formatCalendarDate(value, options) {
1091
- if (!value) return EMPTY;
1092
- const resolved = resolveOptions(options);
1093
- const zoned = calendarDateToTZDate(value, resolved.timezone);
1094
- return formatTZDate(zoned, getDatePattern(resolved.dateFormat), resolved);
1095
- }
1096
- function formatAppDate(value, options) {
1097
- const resolved = resolveOptions(options);
1098
- if (typeof value === "string" && isDateOnlyString(value)) {
1099
- const [year, month, day] = value.split("-").map(Number);
1100
- const zoned2 = new TZDate(year, month - 1, day, resolved.timezone);
1101
- return formatTZDate(zoned2, getDatePattern(resolved.dateFormat), resolved);
1102
- }
1103
- const parsed = parseDateInput(value);
1104
- if (!parsed) return EMPTY;
1105
- const zoned = instantToTZDate(parsed, resolved.timezone);
1106
- return formatTZDate(zoned, getDatePattern(resolved.dateFormat), resolved);
1107
- }
1108
- function formatAppDateTime(value, options) {
1109
- const parsed = parseDateInput(value);
1110
- if (!parsed) return EMPTY;
1111
- const resolved = resolveOptions(options);
1112
- const zoned = instantToTZDate(parsed, resolved.timezone);
1113
- return formatTZDate(
1114
- zoned,
1115
- getDateTimePattern(resolved.timeFormat, resolved.dateFormat),
1116
- resolved
1117
- );
1118
- }
1119
- function formatAppTime(value, options) {
1120
- const parsed = parseDateInput(value);
1121
- if (!parsed) return EMPTY;
1122
- const resolved = resolveOptions(options);
1123
- const zoned = instantToTZDate(parsed, resolved.timezone);
1124
- return formatTZDate(zoned, getTimePattern(resolved.timeFormat), resolved);
1125
- }
1126
- function formatAppDateLong(value, options) {
1127
- const parsed = parseDateInput(value);
1128
- if (!parsed) return EMPTY;
1129
- const resolved = resolveOptions(options);
1130
- const zoned = instantToTZDate(parsed, resolved.timezone);
1131
- return formatTZDate(zoned, "PPP", resolved);
1132
- }
1133
- function formatAppRelative(value, options) {
1134
- const parsed = parseDateInput(value);
1135
- if (!parsed) return EMPTY;
1136
- const locale = resolveLocale(options?.locale);
1137
- return formatDistanceToNow(parsed, { addSuffix: true, locale });
1138
- }
1139
- function formatTimeOfDay(hhmm, options) {
1140
- if (!hhmm) return EMPTY;
1141
- const resolved = resolveOptions(options);
1142
- const zoned = hhmmToTZDate(hhmm, resolved.timezone);
1143
- if (!zoned) return hhmm;
1144
- return formatTZDate(zoned, getTimePattern(resolved.timeFormat), resolved);
1145
- }
1146
-
1147
- // src/lib/datetime/format-date.ts
1148
- var EMPTY2 = "\u2014";
1149
- function resolveKind(value, options) {
1150
- if (options?.kind && options.kind !== "auto") return options.kind;
1151
- if (options?.calendar && value instanceof Date) return "calendar";
1152
- return detectFormatDateKind(value);
1153
- }
1154
- function formatInitialRelative(value, options) {
1155
- if (canUseLiveRelativeFormatting()) return formatAppRelative(value, options);
1156
- return formatAppDateTime(value, options);
1157
- }
1158
- function formatDate(value, options) {
1159
- if (value == null || value === "") return EMPTY2;
1160
- if (typeof value === "string") {
1161
- const trimmed = value.trim();
1162
- if (!trimmed) return EMPTY2;
1163
- const kind2 = resolveKind(trimmed, options);
1164
- switch (kind2) {
1165
- case "time":
1166
- return isValidHhmm(trimmed) ? formatTimeOfDay(trimmed, options) : formatAppTime(trimmed, options);
1167
- case "date":
1168
- return formatAppDate(trimmed, options);
1169
- case "long":
1170
- return formatAppDateLong(trimmed, options);
1171
- case "relative":
1172
- return formatInitialRelative(trimmed, options);
1173
- case "calendar":
1174
- case "datetime":
1175
- default:
1176
- return formatAppDateTime(trimmed, options);
1177
- }
1178
- }
1179
- if (!(value instanceof Date) || Number.isNaN(value.getTime())) return EMPTY2;
1180
- const kind = resolveKind(value, options);
1181
- switch (kind) {
1182
- case "calendar":
1183
- return formatCalendarDate(value, options);
1184
- case "date":
1185
- return formatCalendarDate(value, options);
1186
- case "time":
1187
- return formatAppTime(value, options);
1188
- case "long":
1189
- return formatAppDateLong(value, options);
1190
- case "relative":
1191
- return formatInitialRelative(value, options);
1192
- case "datetime":
1193
- default:
1194
- return formatAppDateTime(value, options);
1195
- }
1196
- }
1197
- function isFormatDateValue(value) {
1198
- if (value instanceof Date) return !Number.isNaN(value.getTime());
1199
- if (typeof value !== "string") return false;
1200
- const trimmed = value.trim();
1201
- if (!trimmed) return false;
1202
- if (isValidHhmm(trimmed)) return true;
1203
- return parseDateInput(trimmed) != null;
1204
- }
1205
-
1206
- export { APP_DATE_FORMATS, APP_DATE_FORMAT_OPTIONS, APP_LOCALE_CONFIG, APP_REQUEST_HEADER_DATE_FORMAT, APP_REQUEST_HEADER_TIME_FORMAT, APP_TIME_FORMATS, MESSAGE_CATALOG, calendarDateToTZDate, detectFormatDateKind, disableLiveRelativeFormatting, enableLiveRelativeFormatting, formatAppDate, formatAppDateLong, formatAppDateTime, formatAppRelative, formatAppTime, formatCalendarDate, formatDate, formatTimeOfDay, getDateFnsLocale, getDateFormatLabel, getDatePattern, getDateTimePattern, getDatetimeContext, getDayPickerLocale, getSyncedLocale, getTimePattern, hhmmToTZDate, isAppDateFormat, isAppLocale, isAppTimeFormat, isDateOnlyString, isFormatDateValue, isValidHhmm, normalizeHhmm, parseDateInput, resetDatetimeContextForTests, resetI18nLocale, resolveDefaultDateFormat, syncDatetimeContext, syncI18nLocale, toIsoDate, translate, translateCurrent };