@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
@@ -0,0 +1,276 @@
1
+ {
2
+ "common": {
3
+ "cancel": "Hủy",
4
+ "continue": "Tiếp tục",
5
+ "delete": "Xóa",
6
+ "error": "Đã xảy ra lỗi",
7
+ "working": "Đang xử lý…",
8
+ "retry": "Thử lại",
9
+ "search": "Tìm kiếm",
10
+ "clearSearch": "Xóa tìm kiếm",
11
+ "clearFilters": "Xóa bộ lọc",
12
+ "clear": "Xóa",
13
+ "first": "Đầu",
14
+ "previous": "Trước",
15
+ "next": "Tiếp",
16
+ "selectedCount": "{count} đã chọn",
17
+ "typeToConfirm": "Nhập {phrase} để xác nhận"
18
+ },
19
+ "dataEntry": {
20
+ "datePicker": {
21
+ "placeholder": "Chọn ngày",
22
+ "openCalendar": "Mở lịch"
23
+ },
24
+ "dateRangePicker": {
25
+ "placeholder": "Chọn khoảng ngày",
26
+ "from": "Từ",
27
+ "to": "Đến",
28
+ "openCalendar": "Mở lịch"
29
+ },
30
+ "timePicker": {
31
+ "placeholder": "Chọn giờ",
32
+ "hour": "Giờ",
33
+ "minute": "Phút",
34
+ "typeLabel": "Nhập giờ HH:mm",
35
+ "openPicker": "Mở chọn giờ",
36
+ "meridiem": "Buổi",
37
+ "am": "SA",
38
+ "pm": "CH"
39
+ },
40
+ "searchInput": {
41
+ "placeholder": "Tìm kiếm…"
42
+ },
43
+ "autocomplete": {
44
+ "placeholder": "Tìm hoặc chọn…",
45
+ "empty": "Không tìm thấy kết quả"
46
+ },
47
+ "colorPicker": {
48
+ "ariaLabel": "Chọn màu",
49
+ "hexLabel": "Mã màu hex"
50
+ },
51
+ "upload": {
52
+ "dropzoneLabel": "Tải file lên",
53
+ "dropzoneHint": "Kéo thả file vào đây, hoặc bấm để chọn",
54
+ "dropzoneMeta": "Upload vào temp — promote khi lưu form",
55
+ "buttonLabel": "Chọn file",
56
+ "addImage": "Thêm ảnh",
57
+ "uploading": "Đang tải lên…",
58
+ "pendingReplace": "Ảnh mới",
59
+ "pendingReplaceHint": "Ảnh mới đang chờ — lưu form để áp dụng",
60
+ "avatarLabel": "Ảnh đại diện",
61
+ "change": "Đổi",
62
+ "removeAvatar": "Xóa ảnh",
63
+ "markedForDelete": "Ảnh sẽ bị xóa khi bạn lưu",
64
+ "undo": "Hoàn tác",
65
+ "cropTitle": "Cắt ảnh",
66
+ "cropZoom": "Thu phóng",
67
+ "cropConfirm": "Dùng ảnh này",
68
+ "inputLabel": "Chọn tệp",
69
+ "statusUploading": "Đang tải lên {count} tệp…",
70
+ "statusReady": "{count} tệp, đã tải lên {done}",
71
+ "statusFailed": "{count} tệp tải lên thất bại",
72
+ "removeImage": "Xóa ảnh",
73
+ "removeFile": "Xóa {name}",
74
+ "cropDescription": "Kéo thanh thu phóng rồi lưu để cắt ảnh thành hình vuông."
75
+ },
76
+ "cascader": {
77
+ "placeholder": "Chọn…",
78
+ "searchPlaceholder": "Tìm kiếm…",
79
+ "empty": "Không có kết quả",
80
+ "clear": "Xóa lựa chọn"
81
+ },
82
+ "treeSelect": {
83
+ "placeholder": "Chọn…",
84
+ "searchPlaceholder": "Tìm kiếm…",
85
+ "empty": "Không có dữ liệu",
86
+ "expand": "Mở rộng",
87
+ "collapse": "Thu gọn",
88
+ "clear": "Xóa lựa chọn"
89
+ },
90
+ "transfer": {
91
+ "source": "Nguồn",
92
+ "target": "Đích",
93
+ "searchPlaceholder": "Tìm kiếm…",
94
+ "empty": "Không có dữ liệu",
95
+ "moveRight": "Chuyển sang đích",
96
+ "moveLeft": "Chuyển về nguồn",
97
+ "selectAllSource": "Chọn tất cả ở nguồn",
98
+ "selectAllTarget": "Chọn tất cả ở đích"
99
+ },
100
+ "searchSelect": {
101
+ "placeholder": "Chọn…",
102
+ "search": "Tìm kiếm",
103
+ "clear": "Xóa lựa chọn",
104
+ "loading": "Đang tải…",
105
+ "empty": "Không có kết quả"
106
+ },
107
+ "monthPicker": {
108
+ "openGrid": "Mở chọn tháng",
109
+ "previousYear": "Năm trước",
110
+ "nextYear": "Năm sau",
111
+ "placeholder": "yyyy/mm"
112
+ }
113
+ },
114
+ "feedback": {
115
+ "errorPanel": {
116
+ "title": "Không tải được nội dung này"
117
+ },
118
+ "genericError": "Đã xảy ra lỗi. Vui lòng thử lại.",
119
+ "alert": {
120
+ "dismiss": "Đóng"
121
+ }
122
+ },
123
+ "layout": {
124
+ "sidebar": {
125
+ "ariaLabel": "Điều hướng chính"
126
+ },
127
+ "appShell": {
128
+ "sidebarLabel": "Thanh bên",
129
+ "headerLabel": "Đầu trang",
130
+ "mainLabel": "Nội dung chính",
131
+ "footerLabel": "Chân trang"
132
+ },
133
+ "topbar": {
134
+ "toggleSidebar": "Bật/tắt thanh bên",
135
+ "search": "Tìm kiếm",
136
+ "searchPlaceholder": "Tìm kiếm...",
137
+ "notifications": "Thông báo",
138
+ "tweaks": "Mở tùy chỉnh"
139
+ }
140
+ },
141
+ "dataDisplay": {
142
+ "carousel": {
143
+ "roleDescription": "băng chuyền",
144
+ "ariaLabel": "Băng chuyền",
145
+ "slideLabel": "{index} / {total}",
146
+ "previous": "Trước",
147
+ "next": "Sau",
148
+ "dotsLabel": "Chọn slide",
149
+ "goToSlide": "Đến slide {index}"
150
+ }
151
+ },
152
+ "ui": {
153
+ "rating": {
154
+ "ariaLabel": "Đánh giá",
155
+ "starLabel": "{star} / {max}"
156
+ },
157
+ "tagInput": {
158
+ "inputLabel": "Thêm thẻ",
159
+ "removeTag": "Xóa {tag}",
160
+ "tagCount": "{count} thẻ"
161
+ },
162
+ "passwordInput": {
163
+ "show": "Hiện mật khẩu",
164
+ "hide": "Ẩn mật khẩu"
165
+ },
166
+ "numberInput": {
167
+ "increment": "Tăng",
168
+ "decrement": "Giảm"
169
+ }
170
+ },
171
+ "navigation": {
172
+ "steps": {
173
+ "ariaLabel": "Tiến trình"
174
+ },
175
+ "breadcrumb": {
176
+ "ariaLabel": "Đường dẫn"
177
+ },
178
+ "toolbar": {
179
+ "ariaLabel": "Bộ lọc"
180
+ },
181
+ "localePicker": {
182
+ "ariaLabel": "Ngôn ngữ"
183
+ },
184
+ "timezonePicker": {
185
+ "ariaLabel": "Múi giờ"
186
+ },
187
+ "timeFormatPicker": {
188
+ "ariaLabel": "Định dạng giờ"
189
+ },
190
+ "dateFormatPicker": {
191
+ "ariaLabel": "Định dạng ngày"
192
+ },
193
+ "pagination": {
194
+ "ariaLabel": "Phân trang",
195
+ "prev": "Trang trước",
196
+ "next": "Trang sau",
197
+ "page": "Trang {page}",
198
+ "pageSize": "Số dòng mỗi trang",
199
+ "pageSizeOption": "{size} / trang",
200
+ "total": "Tổng {total} mục"
201
+ }
202
+ },
203
+ "locale": {
204
+ "vi": "Tiếng Việt",
205
+ "en": "English",
206
+ "ja": "日本語"
207
+ },
208
+ "timeFormat": {
209
+ "24h": "24 giờ",
210
+ "12h": "12 giờ (SA/CH)"
211
+ },
212
+ "dateFormat": {
213
+ "iso": "ISO (yyyy-MM-dd)",
214
+ "dmy": "Ngày / Tháng / Năm",
215
+ "mdy": "Tháng / Ngày / Năm"
216
+ },
217
+ "timezone": {
218
+ "Asia/Ho_Chi_Minh": "Việt Nam (HCM)",
219
+ "Asia/Tokyo": "Nhật Bản (Tokyo)",
220
+ "Asia/Bangkok": "Thái Lan (Bangkok)",
221
+ "Asia/Singapore": "Singapore",
222
+ "Asia/Seoul": "Hàn Quốc (Seoul)",
223
+ "Asia/Shanghai": "Trung Quốc (Shanghai)",
224
+ "Asia/Taipei": "Đài Loan (Taipei)",
225
+ "Asia/Hong_Kong": "Hồng Kông",
226
+ "UTC": "UTC",
227
+ "Europe/London": "Anh (London)",
228
+ "America/Los_Angeles": "Mỹ (Los Angeles)",
229
+ "America/New_York": "Mỹ (New York)"
230
+ },
231
+ "dataTable": {
232
+ "selectAll": "Chọn tất cả các dòng",
233
+ "selectRow": "Chọn dòng {id}",
234
+ "bulkActions": "Thao tác hàng loạt",
235
+ "densityCompact": "Gọn",
236
+ "densityComfortable": "Thoải mái",
237
+ "densitySwitch": "Chuyển sang mật độ {density}",
238
+ "rowActions": "Thao tác dòng",
239
+ "empty": "Chưa có dữ liệu",
240
+ "loading": "Đang tải…"
241
+ },
242
+ "dataGrid": {
243
+ "search": "Tìm kiếm",
244
+ "searchPlaceholder": "Tìm kiếm…",
245
+ "view": "Hiển thị",
246
+ "toggleColumns": "Ẩn/hiện cột",
247
+ "rowsPerPage": "Số dòng/trang",
248
+ "pageOf": "Trang {page}/{total}"
249
+ },
250
+ "status": {
251
+ "active": "Đang hoạt động",
252
+ "completed": "Hoàn thành",
253
+ "delivered": "Đã giao",
254
+ "done": "Xong",
255
+ "permanent": "Vĩnh viễn",
256
+ "succeeded": "Thành công",
257
+ "draft": "Nháp",
258
+ "pending": "Chờ xử lý",
259
+ "scheduled": "Đã lên lịch",
260
+ "sending": "Đang gửi",
261
+ "temporary": "Tạm thời",
262
+ "bounced": "Bị trả lại",
263
+ "cancelled": "Đã hủy",
264
+ "deleted": "Đã xóa",
265
+ "failed": "Thất bại",
266
+ "private": "Riêng tư",
267
+ "internal": "Nội bộ",
268
+ "public": "Công khai",
269
+ "ASSIGNMENT_STATUS_ACTIVE": "Đang hoạt động",
270
+ "ASSIGNMENT_STATUS_SUSPENDED": "Tạm ngưng",
271
+ "ASSIGNMENT_STATUS_TERMINATED": "Chấm dứt"
272
+ },
273
+ "query": {
274
+ "loadMore": "Tải thêm"
275
+ }
276
+ }
@@ -0,0 +1,15 @@
1
+ import type { AppLocale } from "../app/types";
2
+ import vi from "./messages/vi.json";
3
+ export type Messages = typeof vi;
4
+ export declare const MESSAGE_CATALOG: Record<AppLocale, Record<string, unknown>>;
5
+ export type MessageKey = string;
6
+ export type TranslateParams = Record<string, string | number>;
7
+ /** Resolve a dot-path message with fallback locale chain, CLDR plurals, and locale number formatting. */
8
+ export declare function translate(locale: AppLocale, fallbackLocale: AppLocale, key: MessageKey, params?: TranslateParams): string;
9
+ /** Non-React translate using module-synced locale (see `syncI18nLocale`). */
10
+ export declare function translateCurrent(key: MessageKey, params?: TranslateParams): string;
11
+ export declare function syncI18nLocale(locale: AppLocale, fallbackLocale: AppLocale): void;
12
+ export declare function getSyncedLocale(): AppLocale;
13
+ export declare function getSyncedFallbackLocale(): AppLocale;
14
+ /** Reset for tests. */
15
+ export declare function resetI18nLocale(): void;
@@ -0,0 +1,82 @@
1
+ import en from "./messages/en.json";
2
+ import ja from "./messages/ja.json";
3
+ import vi from "./messages/vi.json";
4
+ const MESSAGE_CATALOG = {
5
+ vi,
6
+ en,
7
+ ja
8
+ };
9
+ function getNested(obj, path) {
10
+ const parts = path.split(".");
11
+ let current = obj;
12
+ for (const part of parts) {
13
+ if (current == null || typeof current !== "object") return void 0;
14
+ current = current[part];
15
+ }
16
+ if (typeof current === "string") return current;
17
+ if (current != null && typeof current === "object") {
18
+ return current;
19
+ }
20
+ return void 0;
21
+ }
22
+ function pluralCount(params) {
23
+ if (!params) return void 0;
24
+ if (typeof params.count === "number") return params.count;
25
+ for (const value of Object.values(params)) {
26
+ if (typeof value === "number") return value;
27
+ }
28
+ return void 0;
29
+ }
30
+ function selectPlural(value, locale, params) {
31
+ if (typeof value === "string") return value;
32
+ const count = pluralCount(params);
33
+ if (count === void 0) {
34
+ return value.other ?? Object.values(value)[0] ?? "";
35
+ }
36
+ const category = new Intl.PluralRules(locale).select(count);
37
+ return value[category] ?? value.other ?? Object.values(value)[0] ?? "";
38
+ }
39
+ function interpolate(template, locale, params) {
40
+ if (!params) return template;
41
+ return Object.entries(params).reduce(
42
+ (text, [key, value]) => text.replaceAll(
43
+ `{${key}}`,
44
+ typeof value === "number" ? new Intl.NumberFormat(locale).format(value) : String(value)
45
+ ),
46
+ template
47
+ );
48
+ }
49
+ function translate(locale, fallbackLocale, key, params) {
50
+ const primary = getNested(MESSAGE_CATALOG[locale], key);
51
+ const fallback = getNested(MESSAGE_CATALOG[fallbackLocale], key);
52
+ const value = primary ?? fallback ?? key;
53
+ return interpolate(selectPlural(value, locale, params), locale, params);
54
+ }
55
+ function translateCurrent(key, params) {
56
+ return translate(getSyncedLocale(), getSyncedFallbackLocale(), key, params);
57
+ }
58
+ let syncedLocale = "vi";
59
+ let syncedFallbackLocale = "en";
60
+ function syncI18nLocale(locale, fallbackLocale) {
61
+ syncedLocale = locale;
62
+ syncedFallbackLocale = fallbackLocale;
63
+ }
64
+ function getSyncedLocale() {
65
+ return syncedLocale;
66
+ }
67
+ function getSyncedFallbackLocale() {
68
+ return syncedFallbackLocale;
69
+ }
70
+ function resetI18nLocale() {
71
+ syncedLocale = "vi";
72
+ syncedFallbackLocale = "en";
73
+ }
74
+ export {
75
+ MESSAGE_CATALOG,
76
+ getSyncedFallbackLocale,
77
+ getSyncedLocale,
78
+ resetI18nLocale,
79
+ syncI18nLocale,
80
+ translate,
81
+ translateCurrent
82
+ };
@@ -0,0 +1,19 @@
1
+ import type { DayPickerProps } from "react-day-picker";
2
+ import type { AppLocale } from "../app/types";
3
+ import { type MessageKey, type TranslateParams } from "./translate";
4
+ type DayPickerLocale = NonNullable<DayPickerProps["locale"]>;
5
+ export declare function useTranslation(): {
6
+ locale: AppLocale;
7
+ fallbackLocale: AppLocale;
8
+ t: (key: MessageKey, params?: TranslateParams) => string;
9
+ };
10
+ /** date-fns + react-day-picker locales + datetime prefs from AppProvider. */
11
+ export declare function usePickerLocales(dayPickerOverride?: DayPickerLocale): {
12
+ locale: AppLocale;
13
+ timezone: string;
14
+ timeFormat: import("../app").AppTimeFormat;
15
+ dateFormat: import("../app").AppDateFormat;
16
+ dateFnsLocale: import("date-fns").Locale;
17
+ dayPickerLocale: Partial<import("react-day-picker").DayPickerLocale>;
18
+ };
19
+ export {};
@@ -0,0 +1,46 @@
1
+ import { useMemo } from "react";
2
+ import { useOptionalAppContext } from "../app/app-provider";
3
+ import { getDateFnsLocale, getDayPickerLocale } from "../app/locales";
4
+ import { translate } from "./translate";
5
+ const DEFAULT_LOCALE = "vi";
6
+ const DEFAULT_FALLBACK = "en";
7
+ function useTranslation() {
8
+ const ctx = useOptionalAppContext();
9
+ const locale = ctx?.locale ?? DEFAULT_LOCALE;
10
+ const fallbackLocale = ctx?.fallbackLocale ?? DEFAULT_FALLBACK;
11
+ return useMemo(
12
+ () => ({
13
+ locale,
14
+ fallbackLocale,
15
+ t: (key, params) => translate(locale, fallbackLocale, key, params)
16
+ }),
17
+ [locale, fallbackLocale]
18
+ );
19
+ }
20
+ function usePickerLocales(dayPickerOverride) {
21
+ const ctx = useOptionalAppContext();
22
+ const locale = ctx?.locale ?? DEFAULT_LOCALE;
23
+ return useMemo(
24
+ () => ({
25
+ locale,
26
+ timezone: ctx?.timezone ?? "Asia/Ho_Chi_Minh",
27
+ timeFormat: ctx?.timeFormat ?? "24h",
28
+ dateFormat: ctx?.dateFormat ?? "dmy",
29
+ dateFnsLocale: ctx?.dateFnsLocale ?? getDateFnsLocale(locale),
30
+ dayPickerLocale: dayPickerOverride ?? ctx?.dayPickerLocale ?? getDayPickerLocale(locale)
31
+ }),
32
+ [
33
+ ctx?.dateFnsLocale,
34
+ ctx?.dayPickerLocale,
35
+ ctx?.timeFormat,
36
+ ctx?.dateFormat,
37
+ ctx?.timezone,
38
+ dayPickerOverride,
39
+ locale
40
+ ]
41
+ );
42
+ }
43
+ export {
44
+ usePickerLocales,
45
+ useTranslation
46
+ };
package/dist/index.d.ts CHANGED
@@ -1,47 +1,11 @@
1
- export { B as BreadcrumbItem } from './navigation.prop-CXDaVNaR.js';
2
- export { F as FlexAlignProp, a as FlexDirectionProp, b as FlexJustifyProp, c as FlexProp, c as FlexProps, P as PageContainerProp, P as PageContainerProps } from './layout.prop-fCz-Vlie.js';
3
- export { F as Flex, P as PageContainer } from './flex-1Cy46L0M.js';
4
- export { C as ColumnDef, D as DataTable, a as Density, b as Descriptions, E as EmptyState } from './data-table-DRr70ULe.js';
5
- export { Badge } from './components/data-display/badge.js';
6
- export { F as Field, a as FormField, S as SearchInput } from './search-input-D4v1JGOA.js';
7
- export { a as SkeletonDetail, c as SkeletonRows, d as SkeletonStat, e as SkeletonTable } from './skeleton-cj9kh5wo.js';
8
- export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from './components/feedback/alert.js';
9
- export { Upload, useUploadDraft } from './components/data-entry/upload.js';
10
- export { Cascader } from './components/data-entry/cascader.js';
11
- export { TreeSelect } from './components/data-entry/tree-select.js';
12
- export { Transfer } from './components/data-entry/transfer.js';
13
- export { Tabs, TabsContent, TabsList, TabsTrigger } from './components/navigation/tabs.js';
14
- export { Pagination } from './components/navigation/pagination.js';
15
- export { Steps } from './components/navigation/steps.js';
16
- export { T as Toolbar, a as ToolbarGroup } from './filter-bar-DoDtwYrr.js';
17
- export { AlertDialog, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from './components/feedback/dialog.js';
18
- export { Toaster } from './components/feedback/sonner.js';
19
- export { toast } from 'sonner';
20
- export { useDebouncedValue, useTimeoutFlag } from './lib/hooks.js';
21
- export { formatBytes, formatCurrency, humanError, shortId } from './components/admin/index.js';
22
- export { cn } from './lib/utils.js';
23
- export { F as FieldProps, E as collectUploadCommitActions, G as createUploadItem } from './data-entry.prop-BSUaseKh.js';
24
- export { c as AlertDialogProps } from './feedback.prop-CHlHDYZK.js';
25
- export { d as ToolbarGroupProps, e as ToolbarProps } from './navigation.prop-FCsOVGrP.js';
26
- export { j as formatDate } from './format-date-ByyZoqI5.js';
27
- import './shared.prop-BvMSLFJ6.js';
28
- import 'react';
29
- import './content.prop-DrV_zDy-.js';
30
- import './layout.prop-CXvl2rVR.js';
31
- import 'react/jsx-runtime';
32
- import './data-display.prop-CT0nVMdp.js';
33
- import './interaction.prop-DD46aTro.js';
34
- import './data.prop-D0UEEczj.js';
35
- import 'class-variance-authority/types';
36
- import 'class-variance-authority';
37
- import '@radix-ui/react-tabs';
38
- import '@radix-ui/react-dialog';
39
- import '@radix-ui/react-alert-dialog';
40
- import 'clsx';
41
- import '@radix-ui/react-checkbox';
42
- import '@radix-ui/react-radio-group';
43
- import '@radix-ui/react-slider';
44
- import '@radix-ui/react-switch';
45
- import 'react-day-picker';
46
- import 'date-fns';
47
- import './types-mvzYGrma.js';
1
+ export * from "./components/admin";
2
+ export { cn } from "./lib/utils";
3
+ export { Flex } from "./components/layout";
4
+ export type { FlexAlignProp, FlexDirectionProp, FlexJustifyProp, FlexProp, FlexProps, } from "./components/layout";
5
+ export { Field } from "./components/data-entry";
6
+ export type { FieldProps } from "./components/data-entry";
7
+ export { Toolbar, ToolbarGroup } from "./components/navigation";
8
+ export type { ToolbarGroupProps, ToolbarProps } from "./components/navigation";
9
+ export { SkeletonStat } from "./components/feedback";
10
+ export { AlertDialog } from "./components/feedback";
11
+ export type { AlertDialogProps } from "./components/feedback";
package/dist/index.js CHANGED
@@ -1,62 +1,16 @@
1
- import './chunk-57VDEN64.js';
2
- import './chunk-VSUYVT2Q.js';
3
- import './chunk-S2IJKT3D.js';
4
- import './chunk-I7NQ2LIL.js';
5
- import './chunk-Q3KUZG4P.js';
6
- import './chunk-R2TXLS7S.js';
7
- import './chunk-65RWSIZF.js';
8
- import './chunk-ION2KFXK.js';
9
- import './chunk-3VFNWVR7.js';
10
- import './chunk-YXVJFYQE.js';
11
- import './chunk-2H65B4JA.js';
12
- import './chunk-5LTW2LWF.js';
13
- import './chunk-NU2SOVTU.js';
14
- import './chunk-GJXOBDER.js';
15
- export { Toolbar, ToolbarGroup } from './chunk-RHPFCKB2.js';
16
- export { Steps } from './chunk-QROC2RMH.js';
17
- import './chunk-B73NA66T.js';
18
- import './chunk-WGWI7EGL.js';
19
- export { Pagination } from './chunk-3JORZPS7.js';
20
- export { Tabs, TabsContent, TabsList, TabsTrigger } from './chunk-V3N266PT.js';
21
- export { PageContainer } from './chunk-I6G4IO7V.js';
22
- import './chunk-XK3M3VRR.js';
23
- import './chunk-W4REF4TD.js';
24
- import './chunk-HL3G4SVG.js';
25
- export { TreeSelect } from './chunk-EG3RDM6F.js';
26
- export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from './chunk-OO5DZH45.js';
27
- import './chunk-TBJBVEIP.js';
28
- export { Transfer } from './chunk-WY3VYUMX.js';
29
- import './chunk-LMKUKCTN.js';
30
- import './chunk-6S2ZU26B.js';
31
- export { SearchInput } from './chunk-LVLPNKJP.js';
32
- export { sonnerToast as toast } from './chunk-ES4Q3KGL.js';
33
- export { SkeletonDetail, SkeletonRows, SkeletonStat, SkeletonTable } from './chunk-2BR7KFCP.js';
34
- import './chunk-32WO3YLB.js';
35
- export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from './chunk-D4JX6O2W.js';
36
- export { formatBytes, formatCurrency, humanError, shortId } from './chunk-X6AJ5HEI.js';
37
- export { AlertDialog, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from './chunk-RZ32HY5E.js';
38
- import './chunk-K24AQV4R.js';
39
- import './chunk-VU4GFGDG.js';
40
- export { Toaster } from './chunk-TO7URV7U.js';
41
- export { Cascader } from './chunk-FQGGF7GQ.js';
42
- import './chunk-SMLKNECP.js';
43
- import './chunk-2RGPEFAW.js';
44
- export { DataTable, Descriptions } from './chunk-NVTZ2EDW.js';
45
- import './chunk-DV52WNXO.js';
46
- export { EmptyState } from './chunk-YD7V2HGZ.js';
47
- import './chunk-BE6GJGKJ.js';
48
- export { Field } from './chunk-44YRPSZ7.js';
49
- export { Flex } from './chunk-INIIF7F7.js';
50
- import './chunk-XBFUROAY.js';
51
- export { Badge } from './chunk-HIEGUYPP.js';
52
- import './chunk-DY5C44UP.js';
53
- import './chunk-J2DEWIYY.js';
54
- import './chunk-IJ5ALJGA.js';
55
- import './chunk-B4K4BXEF.js';
56
- export { FormField } from './chunk-LBYSX3VM.js';
57
- import './chunk-C3PKEV6S.js';
58
- import './chunk-7PWBC4BY.js';
59
- import './chunk-B6S6LTWT.js';
60
- export { formatDate } from './chunk-5732TWQF.js';
61
- export { useDebouncedValue, useTimeoutFlag } from './chunk-LFW37FGG.js';
62
- export { cn } from './chunk-U7N2A7A3.js';
1
+ export * from "./components/admin";
2
+ import { cn } from "./lib/utils";
3
+ import { Flex } from "./components/layout";
4
+ import { Field } from "./components/data-entry";
5
+ import { Toolbar, ToolbarGroup } from "./components/navigation";
6
+ import { SkeletonStat } from "./components/feedback";
7
+ import { AlertDialog } from "./components/feedback";
8
+ export {
9
+ AlertDialog,
10
+ Field,
11
+ Flex,
12
+ SkeletonStat,
13
+ Toolbar,
14
+ ToolbarGroup,
15
+ cn
16
+ };
@@ -0,0 +1,26 @@
1
+ /** Shared control sizing — reads `--control-height`, `--font-size-*` from density / theme. */
2
+ export declare const controlFieldClass = "ui-control w-full rounded-lg border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
3
+ export declare const controlMultilineClass = "ui-control-multiline w-full rounded-lg border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
4
+ /**
5
+ * Open-state ring for popup-style triggers (Select / Cascader / TreeSelect / SearchSelect).
6
+ * Radix moves focus INTO the popup on open, so the trigger loses `:focus-visible` and — without
7
+ * this — an open popover shows only a border change (no ring), inconsistent with a focused Input.
8
+ * Opacity `/50` matches the real focus ring used by Button / Input / Select. Apply alongside
9
+ * `focus-visible:ring-*` on any trigger that toggles `data-state="open"`.
10
+ */
11
+ export declare const controlOpenRingClass = "data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px]";
12
+ export declare const controlTriggerClass = "ui-control flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-lg border border-input bg-background shadow-sm transition-[color,box-shadow] focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1";
13
+ export declare const controlIconClass = "size-[length:var(--control-height)] shrink-0";
14
+ export declare const controlIconSmClass = "size-[calc(var(--control-height)-0.5rem)] shrink-0";
15
+ /** Leading/affix icon inside an input row (search, command) — sized to `--control-icon-size`. */
16
+ export declare const controlIconLeadingClass = "size-[length:var(--control-icon-size)] shrink-0";
17
+ export declare const tableRowHeightClass = "h-[length:var(--table-row-height)]";
18
+ export declare const tableHeadHeightClass = "h-[length:var(--table-row-height)]";
19
+ export declare const tableCellPaddingClass = "py-[length:var(--table-cell-padding-y)]";
20
+ /** Semantic status / badge tones — always use tokens, never raw Tailwind palette. */
21
+ export declare const toneSuccessClass = "border-success/30 bg-success/10 text-success";
22
+ export declare const toneWarningClass = "border-warning/30 bg-warning/10 text-warning-foreground";
23
+ export declare const toneInfoClass = "border-info/30 bg-info/10 text-info";
24
+ export declare const toneDestructiveClass = "border-destructive/30 bg-destructive/10 text-destructive";
25
+ export declare const toneMutedClass = "border-border bg-muted text-muted-foreground";
26
+ export declare const toneNeutralClass = "border-border bg-muted text-muted-foreground";
@@ -0,0 +1,34 @@
1
+ const controlFieldClass = "ui-control w-full rounded-lg border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
2
+ const controlMultilineClass = "ui-control-multiline w-full rounded-lg border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
3
+ const controlOpenRingClass = "data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px]";
4
+ const controlTriggerClass = "ui-control flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-lg border border-input bg-background shadow-sm transition-[color,box-shadow] focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1";
5
+ const controlIconClass = "size-[length:var(--control-height)] shrink-0";
6
+ const controlIconSmClass = "size-[calc(var(--control-height)-0.5rem)] shrink-0";
7
+ const controlIconLeadingClass = "size-[length:var(--control-icon-size)] shrink-0";
8
+ const tableRowHeightClass = "h-[length:var(--table-row-height)]";
9
+ const tableHeadHeightClass = "h-[length:var(--table-row-height)]";
10
+ const tableCellPaddingClass = "py-[length:var(--table-cell-padding-y)]";
11
+ const toneSuccessClass = "border-success/30 bg-success/10 text-success";
12
+ const toneWarningClass = "border-warning/30 bg-warning/10 text-warning-foreground";
13
+ const toneInfoClass = "border-info/30 bg-info/10 text-info";
14
+ const toneDestructiveClass = "border-destructive/30 bg-destructive/10 text-destructive";
15
+ const toneMutedClass = "border-border bg-muted text-muted-foreground";
16
+ const toneNeutralClass = "border-border bg-muted text-muted-foreground";
17
+ export {
18
+ controlFieldClass,
19
+ controlIconClass,
20
+ controlIconLeadingClass,
21
+ controlIconSmClass,
22
+ controlMultilineClass,
23
+ controlOpenRingClass,
24
+ controlTriggerClass,
25
+ tableCellPaddingClass,
26
+ tableHeadHeightClass,
27
+ tableRowHeightClass,
28
+ toneDestructiveClass,
29
+ toneInfoClass,
30
+ toneMutedClass,
31
+ toneNeutralClass,
32
+ toneSuccessClass,
33
+ toneWarningClass
34
+ };
@@ -0,0 +1,4 @@
1
+ export type FormatDateKind = "auto" | "date" | "datetime" | "time" | "long" | "relative" | "calendar";
2
+ /** Infer display kind from raw value — ISO date, HH:mm, or instant. */
3
+ export declare function detectFormatDateKind(value: string | Date): Exclude<FormatDateKind, "auto">;
4
+ export declare function isDateOnlyString(value: string): boolean;