@godxjp/ui 5.0.2 → 6.0.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 (298) hide show
  1. package/README.md +101 -142
  2. package/package.json +124 -128
  3. package/scripts/ui-audit.mjs +179 -0
  4. package/src/app/__tests__/app-provider.test.tsx +232 -0
  5. package/src/app/__tests__/date-format-labels.test.ts +36 -0
  6. package/src/app/__tests__/date-formats.test.ts +44 -0
  7. package/src/app/__tests__/timezones.test.ts +65 -0
  8. package/src/app/app-provider.tsx +227 -0
  9. package/src/app/date-format-labels.ts +21 -0
  10. package/src/app/date-formats.ts +30 -0
  11. package/src/app/index.ts +40 -0
  12. package/src/app/locales.ts +32 -0
  13. package/src/app/request-headers.ts +31 -0
  14. package/src/app/storage.ts +44 -0
  15. package/src/app/time-format-labels.ts +19 -0
  16. package/src/app/time-formats.ts +15 -0
  17. package/src/app/timezones.ts +208 -0
  18. package/src/app/types.ts +39 -0
  19. package/src/app/use-formatting.ts +47 -0
  20. package/src/components/__tests__/accessibility-primitives.test.tsx +65 -0
  21. package/src/components/__tests__/docs-parity.test.ts +41 -0
  22. package/src/components/__tests__/shadcn-release-guardrails.test.ts +71 -0
  23. package/src/components/__tests__/theme-axes-integration.test.tsx +242 -0
  24. package/src/components/admin/index.ts +76 -0
  25. package/src/components/data-display/__tests__/card-table.test.tsx +328 -0
  26. package/src/components/data-display/__tests__/data-display.test.tsx +73 -0
  27. package/src/components/data-display/__tests__/data-table.test.tsx +84 -0
  28. package/src/components/data-display/__tests__/popover.test.tsx +92 -0
  29. package/src/components/data-display/__tests__/scroll-area-collapsible.test.tsx +66 -0
  30. package/src/components/data-display/badge.tsx +27 -0
  31. package/src/components/data-display/card.tsx +194 -0
  32. package/src/components/data-display/code-badge.tsx +28 -0
  33. package/src/components/data-display/collapsible.tsx +5 -0
  34. package/src/components/data-display/data-table.tsx +476 -0
  35. package/src/components/data-display/empty-state.tsx +22 -0
  36. package/src/components/data-display/index.ts +41 -0
  37. package/src/components/data-display/key-value-grid.tsx +46 -0
  38. package/src/components/data-display/popover.tsx +62 -0
  39. package/src/components/data-display/progress-meter.tsx +20 -0
  40. package/src/components/data-display/scan-panel.tsx +16 -0
  41. package/src/components/data-display/scroll-area.tsx +42 -0
  42. package/src/components/data-display/status-badge.tsx +83 -0
  43. package/src/components/data-display/table.tsx +59 -0
  44. package/src/components/data-display/timeline.tsx +42 -0
  45. package/src/components/data-display/tree-list.tsx +42 -0
  46. package/src/components/data-entry/__fixtures__/tree-options.ts +80 -0
  47. package/src/components/data-entry/__tests__/cascader-tree-transfer.test.tsx +417 -0
  48. package/src/components/data-entry/__tests__/checkbox-group.test.tsx +40 -0
  49. package/src/components/data-entry/__tests__/checkbox.test.tsx +20 -0
  50. package/src/components/data-entry/__tests__/date-autocomplete.test.tsx +94 -0
  51. package/src/components/data-entry/__tests__/form-field.test.tsx +49 -0
  52. package/src/components/data-entry/__tests__/input-textarea.test.tsx +38 -0
  53. package/src/components/data-entry/__tests__/label-select.test.tsx +62 -0
  54. package/src/components/data-entry/__tests__/pickers.test.tsx +74 -0
  55. package/src/components/data-entry/__tests__/radio.test.tsx +46 -0
  56. package/src/components/data-entry/__tests__/search-input.test.tsx +32 -0
  57. package/src/components/data-entry/__tests__/switch-field.test.tsx +52 -0
  58. package/src/components/data-entry/__tests__/upload.test.tsx +125 -0
  59. package/src/components/data-entry/autocomplete.tsx +91 -0
  60. package/src/components/data-entry/calendar.tsx +90 -0
  61. package/src/components/data-entry/cascader.tsx +305 -0
  62. package/src/components/data-entry/checkbox-group.tsx +90 -0
  63. package/src/components/data-entry/checkbox.tsx +30 -0
  64. package/src/components/data-entry/choice-field.tsx +27 -0
  65. package/src/components/data-entry/choice-option.ts +20 -0
  66. package/src/components/data-entry/color-picker.tsx +75 -0
  67. package/src/components/data-entry/command.tsx +56 -0
  68. package/src/components/data-entry/country-select.tsx +88 -0
  69. package/src/components/data-entry/date-picker.tsx +69 -0
  70. package/src/components/data-entry/date-range-picker.tsx +75 -0
  71. package/src/components/data-entry/form-field.tsx +59 -0
  72. package/src/components/data-entry/index.ts +62 -0
  73. package/src/components/data-entry/input.tsx +26 -0
  74. package/src/components/data-entry/label.tsx +25 -0
  75. package/src/components/data-entry/radio.tsx +109 -0
  76. package/src/components/data-entry/search-input.tsx +103 -0
  77. package/src/components/data-entry/select.tsx +149 -0
  78. package/src/components/data-entry/slider.tsx +38 -0
  79. package/src/components/data-entry/switch-field.tsx +91 -0
  80. package/src/components/data-entry/switch.tsx +24 -0
  81. package/src/components/data-entry/textarea.tsx +12 -0
  82. package/src/components/data-entry/time-picker.tsx +214 -0
  83. package/src/components/data-entry/transfer.tsx +231 -0
  84. package/src/components/data-entry/tree-select-strategy.ts +6 -0
  85. package/src/components/data-entry/tree-select.tsx +279 -0
  86. package/src/components/data-entry/tree-utils.ts +221 -0
  87. package/src/components/data-entry/upload-crop-dialog.tsx +109 -0
  88. package/src/components/data-entry/upload-types.ts +86 -0
  89. package/src/components/data-entry/upload.tsx +498 -0
  90. package/src/components/data-entry/use-upload-draft.ts +93 -0
  91. package/src/components/feedback/__tests__/alert.test.tsx +127 -0
  92. package/src/components/feedback/__tests__/dialog.test.tsx +290 -0
  93. package/src/components/feedback/__tests__/sheet.test.tsx +94 -0
  94. package/src/components/feedback/__tests__/skeleton.test.tsx +25 -0
  95. package/src/components/feedback/__tests__/toast.test.tsx +52 -0
  96. package/src/components/feedback/alert.tsx +167 -0
  97. package/src/components/feedback/dialog.tsx +325 -0
  98. package/src/components/feedback/index.ts +53 -0
  99. package/src/components/feedback/sheet.tsx +130 -0
  100. package/src/components/feedback/skeleton.tsx +95 -0
  101. package/src/components/feedback/sonner.tsx +54 -0
  102. package/src/components/feedback/toaster.tsx +1 -0
  103. package/src/components/feedback/use-toast.ts +62 -0
  104. package/src/components/general/__tests__/button.test.tsx +71 -0
  105. package/src/components/general/button.tsx +61 -0
  106. package/src/components/general/index.ts +2 -0
  107. package/src/components/layout/__tests__/page-container.test.tsx +69 -0
  108. package/src/components/layout/__tests__/page-inset.test.tsx +14 -0
  109. package/src/components/layout/__tests__/stack-inline.test.tsx +39 -0
  110. package/src/components/layout/app-shell.tsx +42 -0
  111. package/src/components/layout/breadcrumb.tsx +35 -0
  112. package/src/components/layout/index.ts +31 -0
  113. package/src/components/layout/inline.tsx +13 -0
  114. package/src/components/layout/menu.tsx +34 -0
  115. package/src/components/layout/mobile-frame.tsx +57 -0
  116. package/src/components/layout/page-container.tsx +81 -0
  117. package/src/components/layout/page-inset.tsx +16 -0
  118. package/src/components/layout/responsive-grid.tsx +14 -0
  119. package/src/components/layout/shell-app.tsx +30 -0
  120. package/src/components/layout/sidebar.tsx +98 -0
  121. package/src/components/layout/split-pane.tsx +16 -0
  122. package/src/components/layout/stack.tsx +13 -0
  123. package/src/components/layout/topbar.tsx +108 -0
  124. package/src/components/navigation/__tests__/app-pickers.test.tsx +118 -0
  125. package/src/components/navigation/__tests__/dropdown-menu.test.tsx +104 -0
  126. package/src/components/navigation/__tests__/navigation.test.tsx +61 -0
  127. package/src/components/navigation/__tests__/pagination-steps-tabs.test.tsx +76 -0
  128. package/src/components/navigation/date-format-picker.tsx +55 -0
  129. package/src/components/navigation/dropdown-menu.tsx +190 -0
  130. package/src/components/navigation/filter-bar.tsx +38 -0
  131. package/src/components/navigation/index.ts +28 -0
  132. package/src/components/navigation/locale-picker.tsx +49 -0
  133. package/src/components/navigation/page-header.tsx +50 -0
  134. package/src/components/navigation/pagination-utils.ts +35 -0
  135. package/src/components/navigation/pagination.tsx +168 -0
  136. package/src/components/navigation/steps.tsx +163 -0
  137. package/src/components/navigation/tabs-items.tsx +69 -0
  138. package/src/components/navigation/tabs.tsx +67 -0
  139. package/src/components/navigation/time-format-picker.tsx +55 -0
  140. package/src/components/navigation/timezone-picker.tsx +63 -0
  141. package/src/components/query/__tests__/data-state.test.tsx +214 -0
  142. package/src/components/query/__tests__/infinite-prefetch.test.tsx +105 -0
  143. package/src/components/query/__tests__/query-helpers.test.tsx +61 -0
  144. package/src/components/query/data-state.tsx +58 -0
  145. package/src/components/query/index.ts +10 -0
  146. package/src/components/query/infinite-query-state.tsx +99 -0
  147. package/src/components/query/mutation-feedback.tsx +31 -0
  148. package/src/components/query/prefetch-link.tsx +45 -0
  149. package/src/components/query/query-refetch-button.tsx +41 -0
  150. package/src/components/ui/alert-dialog.tsx +1 -0
  151. package/src/components/ui/alert.tsx +1 -0
  152. package/src/components/ui/autocomplete.tsx +1 -0
  153. package/src/components/ui/badge.tsx +1 -0
  154. package/src/components/ui/button.tsx +1 -0
  155. package/src/components/ui/calendar.tsx +1 -0
  156. package/src/components/ui/card.tsx +1 -0
  157. package/src/components/ui/checkbox.tsx +1 -0
  158. package/src/components/ui/color-picker.tsx +1 -0
  159. package/src/components/ui/command.tsx +1 -0
  160. package/src/components/ui/date-picker.tsx +1 -0
  161. package/src/components/ui/date-range-picker.tsx +1 -0
  162. package/src/components/ui/dialog.tsx +1 -0
  163. package/src/components/ui/dropdown-menu.tsx +1 -0
  164. package/src/components/ui/index.tsx +31 -0
  165. package/src/components/ui/input.tsx +1 -0
  166. package/src/components/ui/label.tsx +1 -0
  167. package/src/components/ui/pagination.tsx +1 -0
  168. package/src/components/ui/popover.tsx +1 -0
  169. package/src/components/ui/radio.tsx +1 -0
  170. package/src/components/ui/scroll-area.tsx +1 -0
  171. package/src/components/ui/select.tsx +1 -0
  172. package/src/components/ui/sheet.tsx +1 -0
  173. package/src/components/ui/slider.tsx +1 -0
  174. package/src/components/ui/sonner.tsx +1 -0
  175. package/src/components/ui/switch.tsx +1 -0
  176. package/src/components/ui/table.tsx +1 -0
  177. package/src/components/ui/tabs-items.tsx +1 -0
  178. package/src/components/ui/tabs.tsx +1 -0
  179. package/src/components/ui/textarea.tsx +1 -0
  180. package/src/components/ui/time-picker.tsx +1 -0
  181. package/src/components/ui/upload.tsx +1 -0
  182. package/src/form/__tests__/use-zod-form.test.tsx +97 -0
  183. package/src/form/form-field-control.tsx +44 -0
  184. package/src/form/form-root.tsx +29 -0
  185. package/src/form/index.ts +7 -0
  186. package/src/form/use-zod-form.ts +29 -0
  187. package/src/i18n/__tests__/translate.test.ts +23 -0
  188. package/src/i18n/index.ts +9 -0
  189. package/src/i18n/messages/en.json +171 -0
  190. package/src/i18n/messages/ja.json +171 -0
  191. package/src/i18n/messages/vi.json +171 -0
  192. package/src/i18n/translate.ts +74 -0
  193. package/src/i18n/use-translation.ts +53 -0
  194. package/src/index.ts +3 -0
  195. package/src/lib/__tests__/control-styles.test.ts +78 -0
  196. package/src/lib/__tests__/datetime.test.ts +77 -0
  197. package/src/lib/__tests__/format-date.test.ts +97 -0
  198. package/src/lib/__tests__/format.test.ts +62 -0
  199. package/src/lib/__tests__/theme-tokens-audit.test.ts +176 -0
  200. package/src/lib/__tests__/theme-tokens-css.test.ts +118 -0
  201. package/src/lib/__tests__/token-governance.test.ts +191 -0
  202. package/src/lib/__tests__/variants.test.ts +18 -0
  203. package/src/lib/control-styles.ts +33 -0
  204. package/src/lib/datetime/detect.ts +25 -0
  205. package/src/lib/datetime/format-date.ts +100 -0
  206. package/src/lib/datetime/format.ts +140 -0
  207. package/src/lib/datetime/index.ts +25 -0
  208. package/src/lib/datetime/parse.ts +51 -0
  209. package/src/lib/datetime/sync.ts +48 -0
  210. package/src/lib/format.ts +114 -0
  211. package/src/lib/hooks.ts +54 -0
  212. package/src/lib/utils.ts +6 -0
  213. package/src/lib/variants.ts +40 -0
  214. package/src/props/components/app.prop.ts +99 -0
  215. package/src/props/components/data-display.prop.ts +73 -0
  216. package/src/props/components/data-entry.prop.ts +334 -0
  217. package/src/props/components/feedback.prop.ts +80 -0
  218. package/src/props/components/form.prop.ts +46 -0
  219. package/src/props/components/general.prop.ts +18 -0
  220. package/src/props/components/index.ts +99 -0
  221. package/src/props/components/layout.prop.ts +130 -0
  222. package/src/props/components/navigation.prop.ts +88 -0
  223. package/src/props/components/query.prop.ts +94 -0
  224. package/src/props/index.ts +17 -0
  225. package/src/props/registry.ts +603 -0
  226. package/src/props/vocabulary/content.prop.ts +35 -0
  227. package/src/props/vocabulary/data.prop.ts +46 -0
  228. package/src/props/vocabulary/index.ts +73 -0
  229. package/src/props/vocabulary/interaction.prop.ts +42 -0
  230. package/src/props/vocabulary/layout.prop.ts +25 -0
  231. package/src/props/vocabulary/navigation.prop.ts +19 -0
  232. package/src/props/vocabulary/shared.prop.ts +59 -0
  233. package/src/styles/alert-layout.css +191 -0
  234. package/src/styles/badge-layout.css +22 -0
  235. package/src/styles/card-layout.css +373 -0
  236. package/src/styles/control.css +504 -0
  237. package/src/styles/data-display-layout.css +246 -0
  238. package/src/styles/density.css +43 -0
  239. package/src/styles/dialog-layout.css +84 -0
  240. package/src/styles/index.css +105 -0
  241. package/src/styles/layout.css +479 -0
  242. package/src/styles/shell-layout.css +604 -0
  243. package/src/styles/table-layout.css +109 -0
  244. package/src/test/__tests__/render-loop-guard.test.tsx +38 -0
  245. package/src/test/jest-dom.d.ts +4 -0
  246. package/src/test/render-loop-guard.tsx +50 -0
  247. package/src/test/render.tsx +29 -0
  248. package/src/test/theme-globals.test.ts +77 -0
  249. package/src/test/theme-globals.ts +134 -0
  250. package/src/test/theme-test-utils.tsx +67 -0
  251. package/src/theme/example.service.css +37 -0
  252. package/src/tokens/base.css +13 -0
  253. package/src/tokens/foundation.css +151 -0
  254. package/src/tokens/primitives/badge.css +13 -0
  255. package/src/tokens/primitives/card.css +29 -0
  256. package/src/tokens/primitives/control.css +55 -0
  257. package/src/tokens/primitives/feedback.css +17 -0
  258. package/src/tokens/primitives/layout.css +20 -0
  259. package/src/tokens/primitives/navigation.css +13 -0
  260. package/src/tokens/primitives/table.css +10 -0
  261. package/BRAND.md +0 -296
  262. package/CHANGELOG.md +0 -668
  263. package/config/eslint.js +0 -54
  264. package/config/prettier.cjs +0 -20
  265. package/config/tsconfig.base.json +0 -22
  266. package/config/vitest.base.ts +0 -26
  267. package/dist/MiniMonth-YAmPGEpC.d.ts +0 -143
  268. package/dist/Table.types-BbsxoIYE.d.ts +0 -352
  269. package/dist/color-DO0qqUAb.d.ts +0 -38
  270. package/dist/components/composites.d.ts +0 -963
  271. package/dist/components/composites.js +0 -7343
  272. package/dist/components/composites.js.map +0 -1
  273. package/dist/components/primitives.d.ts +0 -2744
  274. package/dist/components/primitives.js +0 -7356
  275. package/dist/components/primitives.js.map +0 -1
  276. package/dist/components/shell.d.ts +0 -182
  277. package/dist/components/shell.js +0 -774
  278. package/dist/components/shell.js.map +0 -1
  279. package/dist/hooks.d.ts +0 -100
  280. package/dist/hooks.js +0 -558
  281. package/dist/hooks.js.map +0 -1
  282. package/dist/i18n.d.ts +0 -61
  283. package/dist/i18n.js +0 -860
  284. package/dist/i18n.js.map +0 -1
  285. package/dist/index.d.ts +0 -33
  286. package/dist/index.js +0 -13062
  287. package/dist/index.js.map +0 -1
  288. package/dist/padding-DY0JV5Ja.d.ts +0 -16
  289. package/dist/preferences.d.ts +0 -132
  290. package/dist/preferences.js +0 -262
  291. package/dist/preferences.js.map +0 -1
  292. package/dist/props.d.ts +0 -86
  293. package/dist/props.js +0 -16
  294. package/dist/props.js.map +0 -1
  295. package/dist/size-CQwNvOWd.d.ts +0 -19
  296. package/dist/types-LTj-2bl-.d.ts +0 -30
  297. package/dist/useTableViews-D5NIAJ7h.d.ts +0 -154
  298. package/src/tokens/tailwind.css +0 -158
package/dist/i18n.js DELETED
@@ -1,860 +0,0 @@
1
- import i18next from 'i18next';
2
- import LanguageDetector from 'i18next-browser-languagedetector';
3
- import { initReactI18next } from 'react-i18next';
4
-
5
- // src/i18n/index.ts
6
-
7
- // src/i18n/locales/ja.ts
8
- var ja = {
9
- brand: {
10
- forge: "GoDX Forge",
11
- operator: "\u30AA\u30DA\u30EC\u30FC\u30BF\u30FC",
12
- developer: "\u958B\u767A\u8005"
13
- },
14
- nav: {
15
- products: "\u30D7\u30ED\u30C0\u30AF\u30C8",
16
- projects: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",
17
- devs: "\u958B\u767A\u8005",
18
- dashboard: "\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9",
19
- overview: "\u6982\u8981",
20
- productHome: "\u30D7\u30ED\u30C0\u30AF\u30C8\u30DB\u30FC\u30E0",
21
- projectHome: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30DB\u30FC\u30E0",
22
- workspace: "\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9",
23
- devPanel: "\u958B\u767A\u8005\u30D1\u30CD\u30EB",
24
- agents: "AI\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8",
25
- codeBrowser: "\u30B3\u30FC\u30C9",
26
- domains: "\u30C9\u30E1\u30A4\u30F3",
27
- designSystem: "\u30C7\u30B6\u30A4\u30F3\u30B7\u30B9\u30C6\u30E0",
28
- sandbox: "\u30B5\u30F3\u30C9\u30DC\u30C3\u30AF\u30B9",
29
- deploys: "\u30C7\u30D7\u30ED\u30A4",
30
- branches: "\u30D6\u30E9\u30F3\u30C1",
31
- prs: "\u30D7\u30EB\u30EA\u30AF\u30A8\u30B9\u30C8",
32
- members: "\u30E1\u30F3\u30D0\u30FC",
33
- roadmap: "\u30ED\u30FC\u30C9\u30DE\u30C3\u30D7",
34
- activity: "\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3",
35
- wiki: "Wiki",
36
- issues: "\u8AB2\u984C",
37
- plans: "PDCA\u8A08\u753B",
38
- ideas: "\u30A2\u30A4\u30C7\u30A2 (Shape Up)",
39
- gantt: "\u30AC\u30F3\u30C8",
40
- settings: "\u8A2D\u5B9A",
41
- logout: "\u30ED\u30B0\u30A2\u30A6\u30C8",
42
- login: "\u30ED\u30B0\u30A4\u30F3"
43
- },
44
- shell: {
45
- pickProduct: "\u30D7\u30ED\u30C0\u30AF\u30C8\u3092\u9078\u629E",
46
- pickProject: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u9078\u629E",
47
- searchProducts: "\u30D7\u30ED\u30C0\u30AF\u30C8\u3092\u691C\u7D22\u2026",
48
- searchProjects: "\u5168\u30D7\u30ED\u30C0\u30AF\u30C8\u304B\u3089\u691C\u7D22\u2026",
49
- recent: "\u6700\u8FD1",
50
- activeProduct: "\u30A2\u30AF\u30C6\u30A3\u30D6\u30D7\u30ED\u30C0\u30AF\u30C8",
51
- noProjects: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u672A\u5272\u5F53",
52
- browseAllProducts: "\u5168\u30D7\u30ED\u30C0\u30AF\u30C8\u3092\u8868\u793A",
53
- sidebarCollapse: "\u30B5\u30A4\u30C9\u30D0\u30FC\u6298\u7573\u307F"
54
- },
55
- tweaks: {
56
- title: "Tweaks",
57
- display: "\u8868\u793A",
58
- density: "\u5BC6\u5EA6",
59
- densityCompact: "\u5BC6",
60
- densityDefault: "\u6A19\u6E96",
61
- densityComfortable: "\u5E83",
62
- theme: "\u30C6\u30FC\u30DE",
63
- themeLight: "Light",
64
- themeDark: "Dark",
65
- product: "\u30D7\u30ED\u30C0\u30AF\u30C8",
66
- locale: "\u30ED\u30B1\u30FC\u30EB",
67
- language: "\u8A00\u8A9E"
68
- },
69
- kpi: {
70
- activeDevs: "\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u958B\u767A\u8005",
71
- openIssues: "\u672A\u89E3\u6C7A\u306E\u8AB2\u984C",
72
- deployments: "\u30C7\u30D7\u30ED\u30A4",
73
- uptime: "\u7A3C\u50CD\u7387",
74
- recentActivity: "\u6700\u8FD1\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3",
75
- quickActions: "\u30AF\u30A4\u30C3\u30AF\u64CD\u4F5C"
76
- },
77
- common: {
78
- search: "\u691C\u7D22",
79
- new: "\u65B0\u898F",
80
- save: "\u4FDD\u5B58",
81
- cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
82
- submit: "\u9001\u4FE1",
83
- delete: "\u524A\u9664",
84
- edit: "\u7DE8\u96C6",
85
- loading: "\u8AAD\u307F\u8FBC\u307F\u4E2D\u2026",
86
- empty: "\u30C7\u30FC\u30BF\u306A\u3057",
87
- back: "\u623B\u308B",
88
- backToProduct: "\u30D7\u30ED\u30C0\u30AF\u30C8\u306B\u623B\u308B"
89
- },
90
- table: {
91
- conditions: "\u6761\u4EF6",
92
- emptyDescription: "\u8A72\u5F53\u3059\u308B\u30C7\u30FC\u30BF\u304C\u3042\u308A\u307E\u305B\u3093",
93
- resetFilters: "\u6761\u4EF6\u3092\u30EA\u30BB\u30C3\u30C8",
94
- searchPlaceholder: "\u691C\u7D22\u2026",
95
- detailFilter: "\u8A73\u7D30\u30D5\u30A3\u30EB\u30BF",
96
- columnSettings: "\u5217\u8A2D\u5B9A",
97
- columnSettingsDescription: "\u8868\u793A\u3059\u308B\u5217\u3092\u9078\u629E\u3057\u307E\u3059\u3002\u56FA\u5B9A\u5217\u3068\u64CD\u4F5C\u5217\u306F\u5E38\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002",
98
- showAllColumns: "\u3059\u3079\u3066\u8868\u793A",
99
- closeColumnSettings: "\u9589\u3058\u308B",
100
- newRecord: "\uFF0B \u65B0\u898F",
101
- saveView: "\uFF0B \u30D3\u30E5\u30FC\u3092\u4FDD\u5B58",
102
- deleteView: "\u30D3\u30E5\u30FC\u3092\u524A\u9664",
103
- saveViewTitle: "\u30D3\u30E5\u30FC\u3092\u4FDD\u5B58",
104
- saveViewDescription: "\u73FE\u5728\u306E\u30D5\u30A3\u30EB\u30BF\u3001\u4E26\u3073\u9806\u3001\u5217\u8868\u793A\u3092\u30D3\u30E5\u30FC\u3068\u3057\u3066\u4FDD\u5B58\u3057\u307E\u3059\u3002",
105
- defaultViewName: "\u4FDD\u5B58\u30D3\u30E5\u30FC {{count}}",
106
- viewName: "\u30D3\u30E5\u30FC\u540D",
107
- viewNamePlaceholder: "\u30D3\u30E5\u30FC\u540D\u3092\u5165\u529B",
108
- duplicateViewTitle: "\u65E2\u5B58\u30D3\u30E5\u30FC\u300C{{name}}\u300D\u3068\u540C\u3058\u6761\u4EF6\u30FB\u5217\u8A2D\u5B9A\u3067\u3059\u3002",
109
- duplicateViewDescription: "\u540C\u3058\u5185\u5BB9\u3067\u5225\u540D\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F",
110
- continueSaveView: "\u7D9A\u884C\u3057\u3066\u4FDD\u5B58",
111
- selectedRows: "{{count}} \u4EF6\u9078\u629E\u4E2D",
112
- selectAllVisible: "\u8868\u793A\u4E2D\u306E {{count}} \u4EF6\u3092\u9078\u629E",
113
- clearSelection: "\u9078\u629E\u89E3\u9664",
114
- selectAllRows: "\u3059\u3079\u3066\u9078\u629E",
115
- selectRow: "\u884C {{row}} \u3092\u9078\u629E",
116
- paginationTotal: "{{start}} \u2013 {{end}} \u4EF6 / \u5168 {{total}} \u4EF6",
117
- pageSize: "\u8868\u793A\u4EF6\u6570",
118
- firstPage: "\u6700\u521D\u306E\u30DA\u30FC\u30B8",
119
- previousPage: "\u524D\u306E\u30DA\u30FC\u30B8",
120
- nextPage: "\u6B21\u306E\u30DA\u30FC\u30B8",
121
- lastPage: "\u6700\u5F8C\u306E\u30DA\u30FC\u30B8",
122
- loadMore: "\u3055\u3089\u306B {{count}} \u4EF6\u8AAD\u307F\u8FBC\u3080",
123
- loadMoreProgress: "{{current}} / {{total}} \u4EF6 \u8868\u793A\u4E2D",
124
- jumpToLatest: "<< \u6700\u65B0",
125
- previousPeriod: "\u2190 \u524D\u306E\u6708",
126
- nextPeriod: "\u6B21\u306E\u6708 \u2192",
127
- jumpToPeriod: "\u671F\u9593\u306B\u30B8\u30E3\u30F3\u30D7",
128
- expandRow: "\u8A73\u7D30\u3092\u5C55\u958B",
129
- collapseRow: "\u8A73\u7D30\u3092\u6298\u308A\u7573\u3080",
130
- cellEditor: "\u30BB\u30EB\u7DE8\u96C6",
131
- saveAll: "\u3059\u3079\u3066\u4FDD\u5B58",
132
- cancelAll: "\u3059\u3079\u3066\u53D6\u6D88",
133
- unsavedChanges: "{{count}} \u4EF6 \u672A\u4FDD\u5B58\u306E\u5909\u66F4\u304C\u3042\u308A\u307E\u3059",
134
- unsavedChanges_other: "{{count}} \u4EF6 \u672A\u4FDD\u5B58\u306E\u5909\u66F4\u304C\u3042\u308A\u307E\u3059",
135
- lockColumn: "\u5217\u3092\u56FA\u5B9A",
136
- unlockColumn: "\u56FA\u5B9A\u3092\u89E3\u9664"
137
- },
138
- workspace: {
139
- files: "\u30D5\u30A1\u30A4\u30EB",
140
- commits: "\u30B3\u30DF\u30C3\u30C8",
141
- rules: "\u30EB\u30FC\u30EB",
142
- tokens: "\u30C8\u30FC\u30AF\u30F3",
143
- components: "\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8",
144
- typography: "\u30BF\u30A4\u30DD\u30B0\u30E9\u30D5\u30A3",
145
- color: "\u30AB\u30E9\u30FC"
146
- },
147
- pdca: {
148
- plan: "Plan",
149
- do: "Do",
150
- check: "Check",
151
- act: "Act",
152
- hypothesis: "\u4EEE\u8AAC",
153
- metrics: "\u6210\u529F\u6307\u6A19",
154
- risks: "\u30EA\u30B9\u30AF",
155
- linkedTasks: "\u95A2\u9023\u30BF\u30B9\u30AF",
156
- decisionLog: "\u610F\u601D\u6C7A\u5B9A\u30ED\u30B0",
157
- review: "\u632F\u308A\u8FD4\u308A",
158
- nextCycle: "\u6B21\u30B5\u30A4\u30AF\u30EB"
159
- },
160
- issue: {
161
- conversation: "\u4F1A\u8A71",
162
- checklist: "\u30C1\u30A7\u30C3\u30AF\u30EA\u30B9\u30C8",
163
- codeChanges: "\u30B3\u30FC\u30C9\u5909\u66F4",
164
- history: "\u5C65\u6B74",
165
- assignee: "\u62C5\u5F53\u8005",
166
- reviewers: "\u30EC\u30D3\u30E5\u30FC\u62C5\u5F53",
167
- labels: "\u30E9\u30D9\u30EB",
168
- milestone: "\u30DE\u30A4\u30EB\u30B9\u30C8\u30FC\u30F3",
169
- sprint: "\u30B9\u30D7\u30EA\u30F3\u30C8",
170
- points: "\u30DD\u30A4\u30F3\u30C8",
171
- blockers: "\u30D6\u30ED\u30C3\u30AF\u95A2\u4FC2",
172
- relatedPlan: "\u6240\u5C5E PDCA",
173
- addComment: "\u30B3\u30E1\u30F3\u30C8\u3092\u8FFD\u52A0\u2026",
174
- status: "\u30B9\u30C6\u30FC\u30BF\u30B9",
175
- priority: "\u512A\u5148\u5EA6",
176
- submitWithChanges: "\u9001\u4FE1\u6642\u306B\u5909\u66F4\u3092\u53CD\u6620"
177
- }
178
- };
179
- var ja_default = ja;
180
-
181
- // src/i18n/locales/en.ts
182
- var en = {
183
- brand: {
184
- forge: "GoDX Forge",
185
- operator: "Operator",
186
- developer: "Developer"
187
- },
188
- nav: {
189
- products: "Products",
190
- projects: "Projects",
191
- devs: "Developers",
192
- dashboard: "Dashboard",
193
- overview: "Overview",
194
- productHome: "Product home",
195
- projectHome: "Project home",
196
- workspace: "Workspace",
197
- devPanel: "Dev panel",
198
- agents: "AI agents",
199
- codeBrowser: "Code",
200
- domains: "Domains",
201
- designSystem: "Design system",
202
- sandbox: "Sandbox",
203
- deploys: "Deploys",
204
- branches: "Branches",
205
- prs: "Pull requests",
206
- members: "Members",
207
- roadmap: "Roadmap",
208
- activity: "Activity",
209
- wiki: "Wiki",
210
- issues: "Issues",
211
- plans: "PDCA plans",
212
- ideas: "Ideas (Shape Up)",
213
- gantt: "Gantt",
214
- settings: "Settings",
215
- logout: "Sign out",
216
- login: "Sign in"
217
- },
218
- shell: {
219
- pickProduct: "Pick a product",
220
- pickProject: "Pick a project",
221
- searchProducts: "Search products\u2026",
222
- searchProjects: "Search across products\u2026",
223
- recent: "Recent",
224
- activeProduct: "Active product",
225
- noProjects: "No projects assigned",
226
- browseAllProducts: "Browse all products",
227
- sidebarCollapse: "Collapse sidebar"
228
- },
229
- tweaks: {
230
- title: "Tweaks",
231
- display: "Display",
232
- density: "Density",
233
- densityCompact: "Compact",
234
- densityDefault: "Default",
235
- densityComfortable: "Comfortable",
236
- theme: "Theme",
237
- themeLight: "Light",
238
- themeDark: "Dark",
239
- product: "Product",
240
- locale: "Locale",
241
- language: "Language"
242
- },
243
- kpi: {
244
- activeDevs: "Active developers",
245
- openIssues: "Open issues",
246
- deployments: "Deploys today",
247
- uptime: "Uptime",
248
- recentActivity: "Recent activity",
249
- quickActions: "Quick actions"
250
- },
251
- common: {
252
- search: "Search",
253
- new: "New",
254
- save: "Save",
255
- cancel: "Cancel",
256
- submit: "Submit",
257
- delete: "Delete",
258
- edit: "Edit",
259
- loading: "Loading\u2026",
260
- empty: "No data",
261
- back: "Back",
262
- backToProduct: "Back to product"
263
- },
264
- table: {
265
- conditions: "Conditions",
266
- emptyDescription: "No matching data",
267
- resetFilters: "Reset filters",
268
- searchPlaceholder: "Search\u2026",
269
- detailFilter: "Detailed filters",
270
- columnSettings: "Columns",
271
- columnSettingsDescription: "Choose which columns to show. Fixed and action columns stay visible.",
272
- showAllColumns: "Show all",
273
- closeColumnSettings: "Close",
274
- newRecord: "+ New",
275
- saveView: "+ Save view",
276
- deleteView: "Delete view",
277
- saveViewTitle: "Save view",
278
- saveViewDescription: "Save the current filters, sort, and column visibility as a view.",
279
- defaultViewName: "Saved view {{count}}",
280
- viewName: "View name",
281
- viewNamePlaceholder: "Enter a view name",
282
- duplicateViewTitle: "Same filters and columns as \u201C{{name}}\u201D.",
283
- duplicateViewDescription: "Save the same state under a different name?",
284
- continueSaveView: "Continue and save",
285
- selectedRows: "{{count}} selected",
286
- selectAllVisible: "Select visible {{count}}",
287
- clearSelection: "Clear selection",
288
- selectAllRows: "Select all rows",
289
- selectRow: "Select row {{row}}",
290
- paginationTotal: "{{start}}\u2013{{end}} of {{total}}",
291
- pageSize: "Rows per page",
292
- firstPage: "First page",
293
- previousPage: "Previous page",
294
- nextPage: "Next page",
295
- lastPage: "Last page",
296
- loadMore: "Load {{count}} more",
297
- loadMoreProgress: "{{current}} / {{total}} shown",
298
- jumpToLatest: "<< Latest",
299
- previousPeriod: "\u2190 Previous",
300
- nextPeriod: "Next \u2192",
301
- jumpToPeriod: "Jump to period",
302
- expandRow: "Expand row",
303
- collapseRow: "Collapse row",
304
- cellEditor: "Cell editor",
305
- saveAll: "Save all",
306
- cancelAll: "Cancel all",
307
- unsavedChanges: "{{count}} unsaved change",
308
- unsavedChanges_other: "{{count}} unsaved changes",
309
- lockColumn: "Lock column",
310
- unlockColumn: "Unlock column"
311
- },
312
- workspace: {
313
- files: "Files",
314
- commits: "Commits",
315
- rules: "Rules",
316
- tokens: "Tokens",
317
- components: "Components",
318
- typography: "Typography",
319
- color: "Color"
320
- },
321
- pdca: {
322
- plan: "Plan",
323
- do: "Do",
324
- check: "Check",
325
- act: "Act",
326
- hypothesis: "Hypothesis",
327
- metrics: "Success metrics",
328
- risks: "Risks",
329
- linkedTasks: "Linked tasks",
330
- decisionLog: "Decision log",
331
- review: "Review",
332
- nextCycle: "Next cycle"
333
- },
334
- issue: {
335
- conversation: "Conversation",
336
- checklist: "Checklist",
337
- codeChanges: "Code changes",
338
- history: "History",
339
- assignee: "Assignee",
340
- reviewers: "Reviewers",
341
- labels: "Labels",
342
- milestone: "Milestone",
343
- sprint: "Sprint",
344
- points: "Points",
345
- blockers: "Blockers",
346
- relatedPlan: "Linked PDCA",
347
- addComment: "Add a comment\u2026",
348
- status: "Status",
349
- priority: "Priority",
350
- submitWithChanges: "Apply changes on submit"
351
- }
352
- };
353
- var en_default = en;
354
-
355
- // src/i18n/locales/vi.ts
356
- var vi = {
357
- brand: {
358
- forge: "GoDX Forge",
359
- operator: "Operator",
360
- developer: "L\u1EADp tr\xECnh vi\xEAn"
361
- },
362
- nav: {
363
- products: "S\u1EA3n ph\u1EA9m",
364
- projects: "D\u1EF1 \xE1n",
365
- devs: "L\u1EADp tr\xECnh vi\xEAn",
366
- dashboard: "B\u1EA3ng \u0111i\u1EC1u khi\u1EC3n",
367
- overview: "T\u1ED5ng quan",
368
- productHome: "Trang ch\u1EE7 s\u1EA3n ph\u1EA9m",
369
- projectHome: "Trang ch\u1EE7 d\u1EF1 \xE1n",
370
- workspace: "Workspace",
371
- devPanel: "B\u1EA3ng dev",
372
- agents: "AI agent",
373
- codeBrowser: "Code",
374
- domains: "T\xEAn mi\u1EC1n",
375
- designSystem: "Design system",
376
- sandbox: "Sandbox",
377
- deploys: "Deploy",
378
- branches: "Branch",
379
- prs: "Pull request",
380
- members: "Th\xE0nh vi\xEAn",
381
- roadmap: "L\u1ED9 tr\xECnh",
382
- activity: "Ho\u1EA1t \u0111\u1ED9ng",
383
- wiki: "Wiki",
384
- issues: "Issue",
385
- plans: "K\u1EBF ho\u1EA1ch PDCA",
386
- ideas: "\xDD t\u01B0\u1EDFng (Shape Up)",
387
- gantt: "Gantt",
388
- settings: "C\xE0i \u0111\u1EB7t",
389
- logout: "\u0110\u0103ng xu\u1EA5t",
390
- login: "\u0110\u0103ng nh\u1EADp"
391
- },
392
- shell: {
393
- pickProduct: "Ch\u1ECDn s\u1EA3n ph\u1EA9m",
394
- pickProject: "Ch\u1ECDn d\u1EF1 \xE1n",
395
- searchProducts: "T\xECm s\u1EA3n ph\u1EA9m\u2026",
396
- searchProjects: "T\xECm trong t\u1EA5t c\u1EA3 s\u1EA3n ph\u1EA9m\u2026",
397
- recent: "G\u1EA7n \u0111\xE2y",
398
- activeProduct: "S\u1EA3n ph\u1EA9m hi\u1EC7n t\u1EA1i",
399
- noProjects: "Ch\u01B0a \u0111\u01B0\u1EE3c g\xE1n d\u1EF1 \xE1n",
400
- browseAllProducts: "Xem t\u1EA5t c\u1EA3 s\u1EA3n ph\u1EA9m",
401
- sidebarCollapse: "Thu g\u1ECDn sidebar"
402
- },
403
- tweaks: {
404
- title: "Tweaks",
405
- display: "Hi\u1EC3n th\u1ECB",
406
- density: "M\u1EADt \u0111\u1ED9",
407
- densityCompact: "D\xE0y",
408
- densityDefault: "M\u1EB7c \u0111\u1ECBnh",
409
- densityComfortable: "R\u1ED9ng",
410
- theme: "Theme",
411
- themeLight: "S\xE1ng",
412
- themeDark: "T\u1ED1i",
413
- product: "S\u1EA3n ph\u1EA9m",
414
- locale: "Ng\xF4n ng\u1EEF",
415
- language: "Ng\xF4n ng\u1EEF"
416
- },
417
- kpi: {
418
- activeDevs: "Dev \u0111ang ho\u1EA1t \u0111\u1ED9ng",
419
- openIssues: "Issue m\u1EDF",
420
- deployments: "Deploy h\xF4m nay",
421
- uptime: "Uptime",
422
- recentActivity: "Ho\u1EA1t \u0111\u1ED9ng g\u1EA7n \u0111\xE2y",
423
- quickActions: "Thao t\xE1c nhanh"
424
- },
425
- common: {
426
- search: "T\xECm ki\u1EBFm",
427
- new: "M\u1EDBi",
428
- save: "L\u01B0u",
429
- cancel: "H\u1EE7y",
430
- submit: "G\u1EEDi",
431
- delete: "X\xF3a",
432
- edit: "S\u1EEDa",
433
- loading: "\u0110ang t\u1EA3i\u2026",
434
- empty: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u",
435
- back: "Quay l\u1EA1i",
436
- backToProduct: "Quay v\u1EC1 s\u1EA3n ph\u1EA9m"
437
- },
438
- table: {
439
- conditions: "\u0110i\u1EC1u ki\u1EC7n",
440
- emptyDescription: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u ph\xF9 h\u1EE3p",
441
- resetFilters: "\u0110\u1EB7t l\u1EA1i \u0111i\u1EC1u ki\u1EC7n",
442
- searchPlaceholder: "T\xECm ki\u1EBFm\u2026",
443
- detailFilter: "B\u1ED9 l\u1ECDc chi ti\u1EBFt",
444
- columnSettings: "C\u1ED9t",
445
- columnSettingsDescription: "Ch\u1ECDn c\xE1c c\u1ED9t c\u1EA7n hi\u1EC3n th\u1ECB. C\u1ED9t c\u1ED1 \u0111\u1ECBnh v\xE0 c\u1ED9t thao t\xE1c lu\xF4n hi\u1EC3n th\u1ECB.",
446
- showAllColumns: "Hi\u1EC7n t\u1EA5t c\u1EA3",
447
- closeColumnSettings: "\u0110\xF3ng",
448
- newRecord: "+ T\u1EA1o m\u1EDBi",
449
- saveView: "+ L\u01B0u view",
450
- deleteView: "Xo\xE1 view",
451
- saveViewTitle: "L\u01B0u view",
452
- saveViewDescription: "L\u01B0u b\u1ED9 l\u1ECDc, s\u1EAFp x\u1EBFp v\xE0 tr\u1EA1ng th\xE1i hi\u1EC3n th\u1ECB c\u1ED9t hi\u1EC7n t\u1EA1i th\xE0nh m\u1ED9t view.",
453
- defaultViewName: "View \u0111\xE3 l\u01B0u {{count}}",
454
- viewName: "T\xEAn view",
455
- viewNamePlaceholder: "Nh\u1EADp t\xEAn view",
456
- duplicateViewTitle: "Tr\xF9ng b\u1ED9 l\u1ECDc v\xE0 c\u1ED9t v\u1EDBi \u201C{{name}}\u201D.",
457
- duplicateViewDescription: "L\u01B0u c\xF9ng tr\u1EA1ng th\xE1i n\xE0y d\u01B0\u1EDBi t\xEAn kh\xE1c?",
458
- continueSaveView: "Ti\u1EBFp t\u1EE5c l\u01B0u",
459
- selectedRows: "\u0110\xE3 ch\u1ECDn {{count}} d\xF2ng",
460
- selectAllVisible: "Ch\u1ECDn {{count}} d\xF2ng \u0111ang hi\u1EC3n th\u1ECB",
461
- clearSelection: "B\u1ECF ch\u1ECDn",
462
- selectAllRows: "Ch\u1ECDn t\u1EA5t c\u1EA3 d\xF2ng",
463
- selectRow: "Ch\u1ECDn d\xF2ng {{row}}",
464
- paginationTotal: "{{start}}\u2013{{end}} / t\u1ED5ng {{total}}",
465
- pageSize: "S\u1ED1 d\xF2ng",
466
- firstPage: "Trang \u0111\u1EA7u",
467
- previousPage: "Trang tr\u01B0\u1EDBc",
468
- nextPage: "Trang sau",
469
- lastPage: "Trang cu\u1ED1i",
470
- loadMore: "T\u1EA3i th\xEAm {{count}}",
471
- loadMoreProgress: "{{current}} / {{total}} \u0111ang hi\u1EC3n th\u1ECB",
472
- jumpToLatest: "<< M\u1EDBi nh\u1EA5t",
473
- previousPeriod: "\u2190 K\u1EF3 tr\u01B0\u1EDBc",
474
- nextPeriod: "K\u1EF3 sau \u2192",
475
- jumpToPeriod: "Nh\u1EA3y t\u1EDBi k\u1EF3",
476
- expandRow: "M\u1EDF chi ti\u1EBFt",
477
- collapseRow: "\u0110\xF3ng chi ti\u1EBFt",
478
- cellEditor: "Tr\xECnh so\u1EA1n \xF4",
479
- saveAll: "L\u01B0u t\u1EA5t c\u1EA3",
480
- cancelAll: "H\u1EE7y t\u1EA5t c\u1EA3",
481
- unsavedChanges: "{{count}} thay \u0111\u1ED5i ch\u01B0a l\u01B0u",
482
- unsavedChanges_other: "{{count}} thay \u0111\u1ED5i ch\u01B0a l\u01B0u",
483
- lockColumn: "Kh\xF3a c\u1ED9t",
484
- unlockColumn: "B\u1ECF kh\xF3a c\u1ED9t"
485
- },
486
- workspace: {
487
- files: "File",
488
- commits: "Commit",
489
- rules: "Quy t\u1EAFc",
490
- tokens: "Token",
491
- components: "Component",
492
- typography: "Ki\u1EC3u ch\u1EEF",
493
- color: "M\xE0u s\u1EAFc"
494
- },
495
- pdca: {
496
- plan: "Plan",
497
- do: "Do",
498
- check: "Check",
499
- act: "Act",
500
- hypothesis: "Gi\u1EA3 thuy\u1EBFt",
501
- metrics: "Ch\u1EC9 s\u1ED1 th\xE0nh c\xF4ng",
502
- risks: "R\u1EE7i ro",
503
- linkedTasks: "Task li\xEAn k\u1EBFt",
504
- decisionLog: "Nh\u1EADt k\xFD quy\u1EBFt \u0111\u1ECBnh",
505
- review: "T\u1ED5ng k\u1EBFt",
506
- nextCycle: "Chu k\u1EF3 ti\u1EBFp"
507
- },
508
- issue: {
509
- conversation: "H\u1ED9i tho\u1EA1i",
510
- checklist: "Checklist",
511
- codeChanges: "Thay \u0111\u1ED5i code",
512
- history: "L\u1ECBch s\u1EED",
513
- assignee: "Ng\u01B0\u1EDDi ph\u1EE5 tr\xE1ch",
514
- reviewers: "Reviewer",
515
- labels: "Nh\xE3n",
516
- milestone: "Milestone",
517
- sprint: "Sprint",
518
- points: "\u0110i\u1EC3m",
519
- blockers: "Ph\u1EE5 thu\u1ED9c",
520
- relatedPlan: "PDCA li\xEAn quan",
521
- addComment: "Th\xEAm comment\u2026",
522
- status: "Tr\u1EA1ng th\xE1i",
523
- priority: "\u01AFu ti\xEAn",
524
- submitWithChanges: "\xC1p d\u1EE5ng thay \u0111\u1ED5i khi g\u1EEDi"
525
- }
526
- };
527
- var vi_default = vi;
528
-
529
- // src/i18n/locales/fil.ts
530
- var fil = {
531
- brand: {
532
- forge: "GoDX Forge",
533
- operator: "Operator",
534
- developer: "Developer"
535
- },
536
- nav: {
537
- products: "Mga Produkto",
538
- projects: "Mga Proyekto",
539
- devs: "Mga Developer",
540
- dashboard: "Dashboard",
541
- overview: "Pangkalahatang-tanaw",
542
- productHome: "Tahanan ng produkto",
543
- projectHome: "Tahanan ng proyekto",
544
- workspace: "Workspace",
545
- devPanel: "Panel ng dev",
546
- agents: "Mga AI agent",
547
- codeBrowser: "Code",
548
- domains: "Mga domain",
549
- designSystem: "Design system",
550
- sandbox: "Sandbox",
551
- deploys: "Mga deploy",
552
- branches: "Mga branch",
553
- prs: "Mga pull request",
554
- members: "Mga miyembro",
555
- roadmap: "Roadmap",
556
- activity: "Aktibidad",
557
- wiki: "Wiki",
558
- issues: "Mga isyu",
559
- plans: "Mga plano",
560
- ideas: "Mga ideya (Shape Up)",
561
- gantt: "Gantt",
562
- settings: "Mga setting",
563
- logout: "Mag-sign out",
564
- login: "Mag-sign in"
565
- },
566
- shell: {
567
- pickProduct: "Pumili ng produkto",
568
- pickProject: "Pumili ng proyekto",
569
- searchProducts: "Maghanap ng mga produkto\u2026",
570
- searchProjects: "Maghanap sa lahat ng produkto\u2026",
571
- recent: "Kamakailang",
572
- activeProduct: "Aktibong produkto",
573
- noProjects: "Walang mga proyektong itinalaga",
574
- browseAllProducts: "Tingnan ang lahat ng produkto",
575
- sidebarCollapse: "I-collapse ang sidebar"
576
- },
577
- tweaks: {
578
- title: "Tweaks",
579
- display: "Display",
580
- density: "Density",
581
- densityCompact: "Compact",
582
- densityDefault: "Default",
583
- densityComfortable: "Comfortable",
584
- theme: "Tema",
585
- themeLight: "Light",
586
- themeDark: "Dark",
587
- product: "Produkto",
588
- locale: "Lokasyon",
589
- language: "Wika"
590
- },
591
- kpi: {
592
- activeDevs: "Mga aktibong developer",
593
- openIssues: "Mga bukas na isyu",
594
- deployments: "Mga deploy ngayon",
595
- uptime: "Uptime",
596
- recentActivity: "Kamakailang aktibidad",
597
- quickActions: "Mabilis na aksyon"
598
- },
599
- common: {
600
- search: "Maghanap",
601
- new: "Bago",
602
- save: "I-save",
603
- cancel: "Kanselahin",
604
- submit: "Isumite",
605
- delete: "Tanggalin",
606
- edit: "I-edit",
607
- loading: "Naglo-load\u2026",
608
- empty: "Walang datos",
609
- back: "Bumalik",
610
- backToProduct: "Bumalik sa produkto"
611
- },
612
- table: {
613
- conditions: "Mga kondisyon",
614
- emptyDescription: "Walang tumutugmang datos",
615
- resetFilters: "I-reset ang mga filter",
616
- searchPlaceholder: "Maghanap\u2026",
617
- detailFilter: "Detalyadong filter",
618
- columnSettings: "Mga column",
619
- columnSettingsDescription: "Piliin ang mga column na ipapakita. Palaging nakikita ang fixed at action columns.",
620
- showAllColumns: "Ipakita lahat",
621
- closeColumnSettings: "Isara",
622
- newRecord: "+ Bago",
623
- saveView: "+ I-save ang view",
624
- deleteView: "Tanggalin ang view",
625
- saveViewTitle: "I-save ang view",
626
- saveViewDescription: "I-save ang kasalukuyang filters, sort, at column visibility bilang view.",
627
- defaultViewName: "Naka-save na view {{count}}",
628
- viewName: "Pangalan ng view",
629
- viewNamePlaceholder: "Ilagay ang pangalan ng view",
630
- duplicateViewTitle: "Kapareho ng filters at columns ng \u201C{{name}}\u201D.",
631
- duplicateViewDescription: "I-save ang parehong state gamit ang ibang pangalan?",
632
- continueSaveView: "Magpatuloy at i-save",
633
- selectedRows: "{{count}} ang napili",
634
- selectAllVisible: "Piliin ang nakikitang {{count}}",
635
- clearSelection: "Alisin ang pagpili",
636
- selectAllRows: "Piliin lahat ng row",
637
- selectRow: "Piliin ang row {{row}}",
638
- paginationTotal: "{{start}}\u2013{{end}} sa {{total}}",
639
- pageSize: "Bilang ng row",
640
- firstPage: "Unang pahina",
641
- previousPage: "Nakaraang pahina",
642
- nextPage: "Susunod na pahina",
643
- lastPage: "Huling pahina",
644
- loadMore: "Mag-load pa ng {{count}}",
645
- loadMoreProgress: "{{current}} / {{total}} ang ipinakita",
646
- jumpToLatest: "<< Pinakabago",
647
- previousPeriod: "\u2190 Nakaraan",
648
- nextPeriod: "Susunod \u2192",
649
- jumpToPeriod: "Tumalon sa panahon",
650
- expandRow: "Palawakin ang row",
651
- collapseRow: "Tiklupin ang row",
652
- cellEditor: "Tagaedit ng cell",
653
- saveAll: "I-save lahat",
654
- cancelAll: "Kanselahin lahat",
655
- unsavedChanges: "{{count}} hindi naka-save na pagbabago",
656
- unsavedChanges_other: "{{count}} hindi naka-save na pagbabago",
657
- lockColumn: "I-lock ang column",
658
- unlockColumn: "I-unlock ang column"
659
- },
660
- workspace: {
661
- files: "Mga file",
662
- commits: "Mga commit",
663
- rules: "Mga patakaran",
664
- tokens: "Mga token",
665
- components: "Mga component",
666
- typography: "Typography",
667
- color: "Kulay"
668
- },
669
- pdca: {
670
- plan: "Plan",
671
- do: "Do",
672
- check: "Check",
673
- act: "Act",
674
- hypothesis: "Hypothesis",
675
- metrics: "Sukatan ng tagumpay",
676
- risks: "Mga panganib",
677
- linkedTasks: "Mga naka-link na gawain",
678
- decisionLog: "Log ng desisyon",
679
- review: "Pagsusuri",
680
- nextCycle: "Susunod na cycle"
681
- },
682
- issue: {
683
- conversation: "Pag-uusap",
684
- checklist: "Checklist",
685
- codeChanges: "Mga pagbabago sa code",
686
- history: "Kasaysayan",
687
- assignee: "Itinalaga sa",
688
- reviewers: "Mga reviewer",
689
- labels: "Mga label",
690
- milestone: "Milestone",
691
- sprint: "Sprint",
692
- points: "Mga puntos",
693
- blockers: "Mga blocker",
694
- relatedPlan: "Naka-link na PDCA",
695
- addComment: "Magdagdag ng komento\u2026",
696
- status: "Status",
697
- priority: "Priyoridad",
698
- submitWithChanges: "Ilapat ang mga pagbabago sa pagsumite"
699
- }
700
- };
701
- var fil_default = fil;
702
-
703
- // src/preferences/holder.ts
704
- var DEFAULT = {
705
- locale: "ja",
706
- timezone: "Asia/Tokyo"
707
- };
708
- var CURRENT = { ...DEFAULT };
709
- function getGodxConfig() {
710
- return CURRENT;
711
- }
712
-
713
- // src/i18n/format.ts
714
- function resolveLocale(opts) {
715
- return opts?.locale ?? getGodxConfig().locale;
716
- }
717
- function resolveTimezone(opts) {
718
- return opts?.timezone ?? getGodxConfig().timezone;
719
- }
720
- function toDate(value) {
721
- if (value instanceof Date) return value;
722
- if (typeof value === "number") return new Date(value);
723
- if (typeof value === "string") return new Date(value);
724
- if (typeof value === "object" && value !== null && "toDate" in value) {
725
- const v = value;
726
- return v.toDate(getGodxConfig().timezone);
727
- }
728
- throw new TypeError(`format helpers: unsupported value ${String(value)}`);
729
- }
730
- function extractIntlOpts(opts) {
731
- if (!opts) return {};
732
- const { locale: _l, timezone: _t, ...rest } = opts;
733
- return rest;
734
- }
735
- function formatDate(value, opts) {
736
- const locale = resolveLocale(opts);
737
- const timezone = resolveTimezone(opts);
738
- const intlOpts = {
739
- dateStyle: "medium",
740
- ...extractIntlOpts(opts),
741
- timeZone: timezone
742
- };
743
- return new Intl.DateTimeFormat(locale, intlOpts).format(toDate(value));
744
- }
745
- function formatTime(value, opts) {
746
- const locale = resolveLocale(opts);
747
- const timezone = resolveTimezone(opts);
748
- const intlOpts = {
749
- timeStyle: "short",
750
- ...extractIntlOpts(opts),
751
- timeZone: timezone
752
- };
753
- return new Intl.DateTimeFormat(locale, intlOpts).format(toDate(value));
754
- }
755
- function formatDateTime(value, opts) {
756
- const locale = resolveLocale(opts);
757
- const timezone = resolveTimezone(opts);
758
- const intlOpts = {
759
- dateStyle: "medium",
760
- timeStyle: "short",
761
- ...extractIntlOpts(opts),
762
- timeZone: timezone
763
- };
764
- return new Intl.DateTimeFormat(locale, intlOpts).format(toDate(value));
765
- }
766
- function formatNumber(value, opts) {
767
- const locale = resolveLocale(opts);
768
- return new Intl.NumberFormat(locale, extractIntlOpts(opts)).format(value);
769
- }
770
- function formatCurrency(value, opts) {
771
- const locale = resolveLocale(opts);
772
- const intlOpts = {
773
- style: "currency",
774
- ...extractIntlOpts(opts)
775
- };
776
- return new Intl.NumberFormat(locale, intlOpts).format(value);
777
- }
778
-
779
- // src/i18n/relative.ts
780
- var SECOND = 1e3;
781
- var MINUTE = 60 * SECOND;
782
- var HOUR = 60 * MINUTE;
783
- var DAY = 24 * HOUR;
784
- var WEEK = 7 * DAY;
785
- var MONTH = 30 * DAY;
786
- var YEAR = 365 * DAY;
787
- function toMs(value) {
788
- if (value instanceof Date) return value.getTime();
789
- if (typeof value === "number") return value;
790
- if (typeof value === "string") return new Date(value).getTime();
791
- if (typeof value === "object" && value !== null && "toDate" in value) {
792
- return value.toDate(getGodxConfig().timezone).getTime();
793
- }
794
- throw new TypeError(`formatRelative: unsupported value ${String(value)}`);
795
- }
796
- function formatRelative(value, opts = {}) {
797
- const locale = opts.locale ?? getGodxConfig().locale;
798
- const nowMs = opts.now instanceof Date ? opts.now.getTime() : opts.now ?? Date.now();
799
- const valueMs = toMs(value);
800
- const diffMs = valueMs - nowMs;
801
- const abs = Math.abs(diffMs);
802
- let unit;
803
- let amount;
804
- if (abs < MINUTE) {
805
- unit = "second";
806
- amount = Math.round(diffMs / SECOND);
807
- } else if (abs < HOUR) {
808
- unit = "minute";
809
- amount = Math.round(diffMs / MINUTE);
810
- } else if (abs < DAY) {
811
- unit = "hour";
812
- amount = Math.round(diffMs / HOUR);
813
- } else if (abs < WEEK) {
814
- unit = "day";
815
- amount = Math.round(diffMs / DAY);
816
- } else if (abs < MONTH) {
817
- unit = "week";
818
- amount = Math.round(diffMs / WEEK);
819
- } else if (abs < YEAR) {
820
- unit = "month";
821
- amount = Math.round(diffMs / MONTH);
822
- } else {
823
- unit = "year";
824
- amount = Math.round(diffMs / YEAR);
825
- }
826
- return new Intl.RelativeTimeFormat(locale, {
827
- numeric: opts.numeric ?? "auto",
828
- style: opts.style ?? "long"
829
- }).format(amount, unit);
830
- }
831
-
832
- // src/i18n/index.ts
833
- var SUPPORTED_LOCALES = ["ja", "en", "vi", "fil"];
834
- var GODX_LOCALE_STORAGE_KEY = "godx.locale";
835
- var FORGE_LOCALE_STORAGE_KEY = GODX_LOCALE_STORAGE_KEY;
836
- function initI18n() {
837
- void i18next.use(LanguageDetector).use(initReactI18next).init({
838
- resources: {
839
- ja: { translation: ja_default },
840
- en: { translation: en_default },
841
- vi: { translation: vi_default },
842
- fil: { translation: fil_default }
843
- },
844
- fallbackLng: "ja",
845
- supportedLngs: SUPPORTED_LOCALES,
846
- load: "languageOnly",
847
- interpolation: { escapeValue: false },
848
- detection: {
849
- order: ["localStorage", "navigator"],
850
- lookupLocalStorage: GODX_LOCALE_STORAGE_KEY,
851
- caches: ["localStorage"]
852
- }
853
- });
854
- return i18next;
855
- }
856
- var i18n_default = i18next;
857
-
858
- export { FORGE_LOCALE_STORAGE_KEY, GODX_LOCALE_STORAGE_KEY, SUPPORTED_LOCALES, i18n_default as default, formatCurrency, formatDate, formatDateTime, formatNumber, formatRelative, formatTime, initI18n };
859
- //# sourceMappingURL=i18n.js.map
860
- //# sourceMappingURL=i18n.js.map