@godxjp/ui 9.2.0 → 11.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 (137) hide show
  1. package/README.md +58 -29
  2. package/dist/app/index.d.ts +1 -1
  3. package/dist/app/index.js +4 -4
  4. package/dist/{app.prop-UTc4j4nj.d.ts → app.prop-Cy6dJnU8.d.ts} +18 -40
  5. package/dist/{checkbox-ChRsR7Nk.d.ts → checkbox-em-oFM5D.d.ts} +1 -1
  6. package/dist/{chunk-LJLGABFV.js → chunk-2HXZT2WJ.js} +17 -9
  7. package/dist/{chunk-QLMXEJSY.js → chunk-3Q4A4U2P.js} +24 -1
  8. package/dist/{chunk-26CPAKUP.js → chunk-44YRPSZ7.js} +1 -2
  9. package/dist/{chunk-HB2OHB5X.js → chunk-5NCFLCM7.js} +27 -16
  10. package/dist/{chunk-FXFJF4YA.js → chunk-6CSBMMZS.js} +262 -31
  11. package/dist/{chunk-457KVJTX.js → chunk-7Q45MBFW.js} +7 -5
  12. package/dist/{chunk-O24Z3ULJ.js → chunk-BE6GJGKJ.js} +1 -1
  13. package/dist/{chunk-FVPCVZL3.js → chunk-BG5RNXTH.js} +1 -1
  14. package/dist/{chunk-AINW5WYN.js → chunk-COD66MFF.js} +1 -2
  15. package/dist/{chunk-IOGU3ZWF.js → chunk-DNGJHWJZ.js} +3 -3
  16. package/dist/{chunk-3TS3G4U3.js → chunk-EE5DKOHX.js} +3 -1
  17. package/dist/{chunk-BHV2FUOA.js → chunk-EZHHJQWQ.js} +1 -1
  18. package/dist/{chunk-G6Q32VHO.js → chunk-FAB3LMTK.js} +33 -8
  19. package/dist/{chunk-N3JPLJ3B.js → chunk-GDDCSKCB.js} +12 -5
  20. package/dist/{chunk-RLGHEV4A.js → chunk-HTG5VHU7.js} +10 -1
  21. package/dist/{chunk-R2W2FX5Q.js → chunk-I7NQ2LIL.js} +1 -9
  22. package/dist/{chunk-XQMPK4GM.js → chunk-IHRMOJXD.js} +86 -39
  23. package/dist/{chunk-TILFZBTE.js → chunk-INIIF7F7.js} +1 -4
  24. package/dist/{chunk-UIYEAUWA.js → chunk-IY347EQA.js} +2 -2
  25. package/dist/{chunk-HCM4JAC2.js → chunk-JWGLJXQU.js} +39 -11
  26. package/dist/{chunk-TO33OY4L.js → chunk-LMKUKCTN.js} +1 -1
  27. package/dist/chunk-NXVCI6YB.js +453 -0
  28. package/dist/{chunk-O2OUNXV4.js → chunk-P5KPCT6R.js} +3 -3
  29. package/dist/{chunk-6HQMUUQW.js → chunk-PDXFQS7M.js} +14 -30
  30. package/dist/{chunk-26WDEDWL.js → chunk-PUGEOUWZ.js} +32 -23
  31. package/dist/{chunk-F7PG4OEV.js → chunk-QSGW3ZWK.js} +12 -4
  32. package/dist/{chunk-E7HBHUJY.js → chunk-QVLUCB47.js} +8 -6
  33. package/dist/{chunk-25RYBC5T.js → chunk-S2IJKT3D.js} +1 -1
  34. package/dist/{chunk-OJZ6C2HM.js → chunk-SARQRCKO.js} +54 -48
  35. package/dist/chunk-T2QO2S65.js +126 -0
  36. package/dist/{chunk-6J7GRCDA.js → chunk-UNVRNJCB.js} +71 -11
  37. package/dist/{chunk-S6TBIL7J.js → chunk-USNR424B.js} +63 -44
  38. package/dist/{chunk-6YBYAEXD.js → chunk-VSM44AYE.js} +94 -24
  39. package/dist/{chunk-QWLXN6CT.js → chunk-VSUYVT2Q.js} +3 -2
  40. package/dist/{chunk-4R7QL3MW.js → chunk-X2VY4MOW.js} +14 -29
  41. package/dist/{chunk-ETLAI3QU.js → chunk-Z46J47FY.js} +73 -77
  42. package/dist/components/admin/index.d.ts +22 -12
  43. package/dist/components/admin/index.js +29 -30
  44. package/dist/components/data-display/badge.js +3 -3
  45. package/dist/components/data-display/card.d.ts +3 -3
  46. package/dist/components/data-display/card.js +1 -1
  47. package/dist/components/data-display/carousel.js +3 -1
  48. package/dist/components/data-display/index.js +55 -33
  49. package/dist/components/data-entry/calendar.d.ts +1 -1
  50. package/dist/components/data-entry/calendar.js +1 -1
  51. package/dist/components/data-entry/cascader.d.ts +1 -1
  52. package/dist/components/data-entry/cascader.js +5 -5
  53. package/dist/components/data-entry/checkbox.d.ts +2 -2
  54. package/dist/components/data-entry/checkbox.js +2 -2
  55. package/dist/components/data-entry/color-picker.d.ts +1 -1
  56. package/dist/components/data-entry/color-picker.js +3 -3
  57. package/dist/components/data-entry/date-picker.d.ts +2 -2
  58. package/dist/components/data-entry/date-picker.js +4 -4
  59. package/dist/components/data-entry/date-range-picker.d.ts +2 -2
  60. package/dist/components/data-entry/date-range-picker.js +4 -4
  61. package/dist/components/data-entry/index.d.ts +9 -25
  62. package/dist/components/data-entry/index.js +22 -26
  63. package/dist/components/data-entry/radio.d.ts +1 -1
  64. package/dist/components/data-entry/radio.js +2 -2
  65. package/dist/components/data-entry/select.d.ts +2 -2
  66. package/dist/components/data-entry/select.js +3 -4
  67. package/dist/components/data-entry/slider.d.ts +1 -1
  68. package/dist/components/data-entry/switch.d.ts +2 -2
  69. package/dist/components/data-entry/switch.js +1 -1
  70. package/dist/components/data-entry/time-input.js +2 -2
  71. package/dist/components/data-entry/time-picker.d.ts +3 -1
  72. package/dist/components/data-entry/time-picker.js +3 -3
  73. package/dist/components/data-entry/transfer.d.ts +2 -2
  74. package/dist/components/data-entry/transfer.js +5 -5
  75. package/dist/components/data-entry/tree-select.d.ts +1 -1
  76. package/dist/components/data-entry/tree-select.js +5 -5
  77. package/dist/components/data-entry/upload.d.ts +2 -2
  78. package/dist/components/data-entry/upload.js +5 -5
  79. package/dist/components/feedback/alert.js +5 -5
  80. package/dist/components/feedback/dialog.js +3 -3
  81. package/dist/components/feedback/index.d.ts +4 -4
  82. package/dist/components/feedback/index.js +9 -9
  83. package/dist/components/feedback/sheet.js +1 -1
  84. package/dist/components/layout/index.d.ts +6 -9
  85. package/dist/components/layout/index.js +6 -4
  86. package/dist/components/navigation/dropdown-menu.js +1 -1
  87. package/dist/components/navigation/index.d.ts +14 -16
  88. package/dist/components/navigation/index.js +7 -8
  89. package/dist/components/navigation/pagination.d.ts +11 -8
  90. package/dist/components/navigation/pagination.js +4 -5
  91. package/dist/components/navigation/steps.d.ts +3 -3
  92. package/dist/components/navigation/steps.js +3 -1
  93. package/dist/components/query/index.d.ts +1 -5
  94. package/dist/components/query/index.js +6 -8
  95. package/dist/components/ui/index.d.ts +5 -7
  96. package/dist/components/ui/index.js +30 -33
  97. package/dist/{data-entry.prop-CDkOajPj.d.ts → data-entry.prop-BR4vNA1j.d.ts} +7 -35
  98. package/dist/filter-bar-BxjSJJnQ.d.ts +7 -0
  99. package/dist/{inline-CDSVAN54.d.ts → flex-D_EXRFSW.d.ts} +2 -8
  100. package/dist/form/index.js +1 -1
  101. package/dist/i18n/index.d.ts +82 -10
  102. package/dist/i18n/index.js +2 -2
  103. package/dist/index.d.ts +6 -6
  104. package/dist/index.js +41 -44
  105. package/dist/lib/datetime/index.js +1 -1
  106. package/dist/{navigation.prop-8DgElO0c.d.ts → navigation.prop-DMcXkR-J.d.ts} +9 -11
  107. package/dist/{password-strength-kQkloEeo.d.ts → password-strength-DVRvXEOK.d.ts} +2 -2
  108. package/dist/props/components/index.d.ts +3 -3
  109. package/dist/props/index.d.ts +3 -3
  110. package/dist/props/index.js +1 -1
  111. package/dist/props/registry.d.ts +84 -39
  112. package/dist/props/registry.js +1 -1
  113. package/dist/{search-input-cezAxpgb.d.ts → search-input-DpqDMXcn.d.ts} +2 -4
  114. package/dist/{skeleton-uWAjSacg.d.ts → skeleton-cj9kh5wo.d.ts} +1 -3
  115. package/dist/styles/control.css +176 -41
  116. package/dist/styles/data-display-layout.css +41 -15
  117. package/dist/styles/feedback-layout.css +44 -12
  118. package/dist/styles/index.css +45 -1
  119. package/dist/styles/layout.css +18 -17
  120. package/dist/styles/navigation-layout.css +3 -1
  121. package/dist/styles/shell-layout.css +3 -3
  122. package/dist/styles/table-layout.css +13 -0
  123. package/dist/tokens/foundation.css +12 -1
  124. package/dist/tokens/semantic/layout.css +2 -2
  125. package/package.json +6 -7
  126. package/scripts/ui-audit.mjs +35 -2
  127. package/dist/chunk-6MCI7W5G.js +0 -201
  128. package/dist/chunk-CAEL2ZD2.js +0 -222
  129. package/dist/chunk-GKXPALFT.js +0 -32
  130. package/dist/chunk-JKHWLPM5.js +0 -101
  131. package/dist/chunk-KDBGFJJI.js +0 -220
  132. package/dist/components/data-entry/autocomplete.d.ts +0 -24
  133. package/dist/components/data-entry/autocomplete.js +0 -10
  134. package/dist/components/data-entry/combobox.d.ts +0 -22
  135. package/dist/components/data-entry/combobox.js +0 -6
  136. package/dist/filter-bar-B5TPUqEO.d.ts +0 -14
  137. /package/dist/{chunk-LDSLS6HE.js → chunk-7CFO5FFE.js} +0 -0
@@ -63,7 +63,7 @@ var en_default = {
63
63
  clearSearch: "Clear search",
64
64
  clearFilters: "Clear filters",
65
65
  first: "First",
66
- next: "Next \u2192",
66
+ next: "Next",
67
67
  selectedCount: "{count} selected",
68
68
  typeToConfirm: "Type {phrase} to confirm"
69
69
  },
@@ -83,7 +83,10 @@ var en_default = {
83
83
  hour: "Hour",
84
84
  minute: "Minute",
85
85
  typeLabel: "Type time HH:mm",
86
- openPicker: "Open time picker"
86
+ openPicker: "Open time picker",
87
+ meridiem: "AM/PM",
88
+ am: "AM",
89
+ pm: "PM"
87
90
  },
88
91
  searchInput: {
89
92
  placeholder: "Search\u2026"
@@ -93,7 +96,8 @@ var en_default = {
93
96
  empty: "No results found"
94
97
  },
95
98
  colorPicker: {
96
- ariaLabel: "Pick color"
99
+ ariaLabel: "Pick color",
100
+ hexLabel: "Hex color value"
97
101
  },
98
102
  upload: {
99
103
  dropzoneLabel: "Upload files",
@@ -111,19 +115,28 @@ var en_default = {
111
115
  undo: "Undo",
112
116
  cropTitle: "Crop photo",
113
117
  cropZoom: "Zoom",
114
- cropConfirm: "Use photo"
118
+ cropConfirm: "Use photo",
119
+ inputLabel: "Choose files",
120
+ statusUploading: "Uploading {count} file(s)\u2026",
121
+ statusReady: "{count} file(s), {done} uploaded",
122
+ statusFailed: "{count} upload(s) failed",
123
+ removeImage: "Remove image",
124
+ removeFile: "Remove {name}",
125
+ cropDescription: "Drag the zoom slider, then save to crop your photo to a square."
115
126
  },
116
127
  cascader: {
117
128
  placeholder: "Select\u2026",
118
129
  searchPlaceholder: "Search\u2026",
119
- empty: "No results"
130
+ empty: "No results",
131
+ clear: "Clear selection"
120
132
  },
121
133
  treeSelect: {
122
134
  placeholder: "Select\u2026",
123
135
  searchPlaceholder: "Search\u2026",
124
136
  empty: "No data",
125
137
  expand: "Expand",
126
- collapse: "Collapse"
138
+ collapse: "Collapse",
139
+ clear: "Clear selection"
127
140
  },
128
141
  transfer: {
129
142
  source: "Source",
@@ -131,7 +144,9 @@ var en_default = {
131
144
  searchPlaceholder: "Search\u2026",
132
145
  empty: "No data",
133
146
  moveRight: "Move to target",
134
- moveLeft: "Move to source"
147
+ moveLeft: "Move to source",
148
+ selectAllSource: "Select all in source",
149
+ selectAllTarget: "Select all in target"
135
150
  },
136
151
  searchSelect: {
137
152
  placeholder: "Select\u2026",
@@ -145,9 +160,63 @@ var en_default = {
145
160
  errorPanel: {
146
161
  title: "Couldn't load this section"
147
162
  },
148
- genericError: "Something went wrong. Please retry."
163
+ genericError: "Something went wrong. Please retry.",
164
+ alert: {
165
+ dismiss: "Dismiss"
166
+ }
167
+ },
168
+ layout: {
169
+ sidebar: {
170
+ ariaLabel: "Primary"
171
+ },
172
+ appShell: {
173
+ sidebarLabel: "Sidebar",
174
+ headerLabel: "Header",
175
+ mainLabel: "Main content",
176
+ footerLabel: "Footer"
177
+ },
178
+ topbar: {
179
+ toggleSidebar: "Toggle sidebar",
180
+ search: "Search",
181
+ searchPlaceholder: "Search...",
182
+ notifications: "Notifications",
183
+ tweaks: "Open settings"
184
+ }
185
+ },
186
+ dataDisplay: {
187
+ carousel: {
188
+ roleDescription: "carousel",
189
+ ariaLabel: "Carousel",
190
+ slideLabel: "{index} of {total}",
191
+ previous: "Previous",
192
+ next: "Next"
193
+ }
194
+ },
195
+ ui: {
196
+ rating: {
197
+ ariaLabel: "Rating",
198
+ starLabel: "{star} / {max}"
199
+ },
200
+ tagInput: {
201
+ inputLabel: "Add tags",
202
+ removeTag: "Remove {tag}",
203
+ tagCount: "{count} tags"
204
+ },
205
+ passwordInput: {
206
+ show: "Show password",
207
+ hide: "Hide password"
208
+ }
149
209
  },
150
210
  navigation: {
211
+ steps: {
212
+ ariaLabel: "Progress"
213
+ },
214
+ breadcrumb: {
215
+ ariaLabel: "Breadcrumb"
216
+ },
217
+ toolbar: {
218
+ ariaLabel: "Filters"
219
+ },
151
220
  localePicker: {
152
221
  ariaLabel: "Language"
153
222
  },
@@ -167,7 +236,7 @@ var en_default = {
167
236
  page: "Page {page}",
168
237
  pageSize: "Page size",
169
238
  pageSizeOption: "{size} / page",
170
- total: "Total {total} items"
239
+ total: { one: "Total {total} item", other: "Total {total} items" }
171
240
  }
172
241
  },
173
242
  locale: {
@@ -250,7 +319,7 @@ var ja_default = {
250
319
  clearSearch: "\u691C\u7D22\u3092\u30AF\u30EA\u30A2",
251
320
  clearFilters: "\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u30AF\u30EA\u30A2",
252
321
  first: "\u6700\u521D",
253
- next: "\u6B21\u3078 \u2192",
322
+ next: "\u6B21\u3078",
254
323
  selectedCount: "{count} \u4EF6\u9078\u629E",
255
324
  typeToConfirm: "\u78BA\u8A8D\u306E\u305F\u3081 {phrase} \u3068\u5165\u529B"
256
325
  },
@@ -270,7 +339,10 @@ var ja_default = {
270
339
  hour: "\u6642",
271
340
  minute: "\u5206",
272
341
  typeLabel: "HH:mm \u3092\u5165\u529B",
273
- openPicker: "\u6642\u523B\u3092\u9078\u629E"
342
+ openPicker: "\u6642\u523B\u3092\u9078\u629E",
343
+ meridiem: "\u5348\u524D/\u5348\u5F8C",
344
+ am: "\u5348\u524D",
345
+ pm: "\u5348\u5F8C"
274
346
  },
275
347
  searchInput: {
276
348
  placeholder: "\u691C\u7D22\u2026"
@@ -280,7 +352,8 @@ var ja_default = {
280
352
  empty: "\u7D50\u679C\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093"
281
353
  },
282
354
  colorPicker: {
283
- ariaLabel: "\u8272\u3092\u9078\u629E"
355
+ ariaLabel: "\u8272\u3092\u9078\u629E",
356
+ hexLabel: "\u30AB\u30E9\u30FC\u30B3\u30FC\u30C9\uFF08HEX\uFF09"
284
357
  },
285
358
  upload: {
286
359
  dropzoneLabel: "\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9",
@@ -298,19 +371,28 @@ var ja_default = {
298
371
  undo: "\u5143\u306B\u623B\u3059",
299
372
  cropTitle: "\u5199\u771F\u3092\u5207\u308A\u629C\u304D",
300
373
  cropZoom: "\u30BA\u30FC\u30E0",
301
- cropConfirm: "\u3053\u306E\u5199\u771F\u3092\u4F7F\u7528"
374
+ cropConfirm: "\u3053\u306E\u5199\u771F\u3092\u4F7F\u7528",
375
+ inputLabel: "\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E",
376
+ statusUploading: "{count} \u4EF6\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u4E2D\u2026",
377
+ statusReady: "{count} \u4EF6\u4E2D {done} \u4EF6\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u6E08\u307F",
378
+ statusFailed: "{count} \u4EF6\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557",
379
+ removeImage: "\u753B\u50CF\u3092\u524A\u9664",
380
+ removeFile: "{name} \u3092\u524A\u9664",
381
+ cropDescription: "\u30BA\u30FC\u30E0\u30B9\u30E9\u30A4\u30C0\u30FC\u3092\u8ABF\u6574\u3057\u3001\u4FDD\u5B58\u3059\u308B\u3068\u5199\u771F\u3092\u6B63\u65B9\u5F62\u306B\u5207\u308A\u629C\u304D\u307E\u3059\u3002"
302
382
  },
303
383
  cascader: {
304
384
  placeholder: "\u9078\u629E\u2026",
305
385
  searchPlaceholder: "\u691C\u7D22\u2026",
306
- empty: "\u7D50\u679C\u306A\u3057"
386
+ empty: "\u7D50\u679C\u306A\u3057",
387
+ clear: "\u9078\u629E\u3092\u30AF\u30EA\u30A2"
307
388
  },
308
389
  treeSelect: {
309
390
  placeholder: "\u9078\u629E\u2026",
310
391
  searchPlaceholder: "\u691C\u7D22\u2026",
311
392
  empty: "\u30C7\u30FC\u30BF\u306A\u3057",
312
393
  expand: "\u5C55\u958B",
313
- collapse: "\u6298\u308A\u305F\u305F\u3080"
394
+ collapse: "\u6298\u308A\u305F\u305F\u3080",
395
+ clear: "\u9078\u629E\u3092\u30AF\u30EA\u30A2"
314
396
  },
315
397
  transfer: {
316
398
  source: "\u30BD\u30FC\u30B9",
@@ -318,7 +400,9 @@ var ja_default = {
318
400
  searchPlaceholder: "\u691C\u7D22\u2026",
319
401
  empty: "\u30C7\u30FC\u30BF\u306A\u3057",
320
402
  moveRight: "\u30BF\u30FC\u30B2\u30C3\u30C8\u3078\u79FB\u52D5",
321
- moveLeft: "\u30BD\u30FC\u30B9\u3078\u623B\u3059"
403
+ moveLeft: "\u30BD\u30FC\u30B9\u3078\u623B\u3059",
404
+ selectAllSource: "\u30BD\u30FC\u30B9\u3092\u3059\u3079\u3066\u9078\u629E",
405
+ selectAllTarget: "\u30BF\u30FC\u30B2\u30C3\u30C8\u3092\u3059\u3079\u3066\u9078\u629E"
322
406
  },
323
407
  searchSelect: {
324
408
  placeholder: "\u9078\u629E\u2026",
@@ -332,9 +416,63 @@ var ja_default = {
332
416
  errorPanel: {
333
417
  title: "\u3053\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F"
334
418
  },
335
- genericError: "\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002"
419
+ genericError: "\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",
420
+ alert: {
421
+ dismiss: "\u9589\u3058\u308B"
422
+ }
423
+ },
424
+ layout: {
425
+ sidebar: {
426
+ ariaLabel: "\u30E1\u30A4\u30F3\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3"
427
+ },
428
+ appShell: {
429
+ sidebarLabel: "\u30B5\u30A4\u30C9\u30D0\u30FC",
430
+ headerLabel: "\u30D8\u30C3\u30C0\u30FC",
431
+ mainLabel: "\u30E1\u30A4\u30F3\u30B3\u30F3\u30C6\u30F3\u30C4",
432
+ footerLabel: "\u30D5\u30C3\u30BF\u30FC"
433
+ },
434
+ topbar: {
435
+ toggleSidebar: "\u30B5\u30A4\u30C9\u30D0\u30FC\u306E\u5207\u308A\u66FF\u3048",
436
+ search: "\u691C\u7D22",
437
+ searchPlaceholder: "\u691C\u7D22...",
438
+ notifications: "\u901A\u77E5",
439
+ tweaks: "\u8A2D\u5B9A\u3092\u958B\u304F"
440
+ }
441
+ },
442
+ dataDisplay: {
443
+ carousel: {
444
+ roleDescription: "\u30AB\u30EB\u30FC\u30BB\u30EB",
445
+ ariaLabel: "\u30AB\u30EB\u30FC\u30BB\u30EB",
446
+ slideLabel: "{total} \u4EF6\u4E2D {index} \u4EF6\u76EE",
447
+ previous: "\u524D\u3078",
448
+ next: "\u6B21\u3078"
449
+ }
450
+ },
451
+ ui: {
452
+ rating: {
453
+ ariaLabel: "\u8A55\u4FA1",
454
+ starLabel: "{star} / {max}"
455
+ },
456
+ tagInput: {
457
+ inputLabel: "\u30BF\u30B0\u3092\u8FFD\u52A0",
458
+ removeTag: "{tag} \u3092\u524A\u9664",
459
+ tagCount: "{count} \u4EF6\u306E\u30BF\u30B0"
460
+ },
461
+ passwordInput: {
462
+ show: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8868\u793A",
463
+ hide: "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u96A0\u3059"
464
+ }
336
465
  },
337
466
  navigation: {
467
+ steps: {
468
+ ariaLabel: "\u9032\u884C\u72B6\u6CC1"
469
+ },
470
+ breadcrumb: {
471
+ ariaLabel: "\u30D1\u30F3\u304F\u305A\u30EA\u30B9\u30C8"
472
+ },
473
+ toolbar: {
474
+ ariaLabel: "\u30D5\u30A3\u30EB\u30BF\u30FC"
475
+ },
338
476
  localePicker: {
339
477
  ariaLabel: "\u8A00\u8A9E"
340
478
  },
@@ -437,7 +575,7 @@ var vi_default = {
437
575
  clearSearch: "X\xF3a t\xECm ki\u1EBFm",
438
576
  clearFilters: "X\xF3a b\u1ED9 l\u1ECDc",
439
577
  first: "\u0110\u1EA7u",
440
- next: "Ti\u1EBFp \u2192",
578
+ next: "Ti\u1EBFp",
441
579
  selectedCount: "{count} \u0111\xE3 ch\u1ECDn",
442
580
  typeToConfirm: "Nh\u1EADp {phrase} \u0111\u1EC3 x\xE1c nh\u1EADn"
443
581
  },
@@ -457,7 +595,10 @@ var vi_default = {
457
595
  hour: "Gi\u1EDD",
458
596
  minute: "Ph\xFAt",
459
597
  typeLabel: "Nh\u1EADp gi\u1EDD HH:mm",
460
- openPicker: "M\u1EDF ch\u1ECDn gi\u1EDD"
598
+ openPicker: "M\u1EDF ch\u1ECDn gi\u1EDD",
599
+ meridiem: "Bu\u1ED5i",
600
+ am: "SA",
601
+ pm: "CH"
461
602
  },
462
603
  searchInput: {
463
604
  placeholder: "T\xECm ki\u1EBFm\u2026"
@@ -467,7 +608,8 @@ var vi_default = {
467
608
  empty: "Kh\xF4ng t\xECm th\u1EA5y k\u1EBFt qu\u1EA3"
468
609
  },
469
610
  colorPicker: {
470
- ariaLabel: "Ch\u1ECDn m\xE0u"
611
+ ariaLabel: "Ch\u1ECDn m\xE0u",
612
+ hexLabel: "M\xE3 m\xE0u hex"
471
613
  },
472
614
  upload: {
473
615
  dropzoneLabel: "T\u1EA3i file l\xEAn",
@@ -485,19 +627,28 @@ var vi_default = {
485
627
  undo: "Ho\xE0n t\xE1c",
486
628
  cropTitle: "C\u1EAFt \u1EA3nh",
487
629
  cropZoom: "Thu ph\xF3ng",
488
- cropConfirm: "D\xF9ng \u1EA3nh n\xE0y"
630
+ cropConfirm: "D\xF9ng \u1EA3nh n\xE0y",
631
+ inputLabel: "Ch\u1ECDn t\u1EC7p",
632
+ statusUploading: "\u0110ang t\u1EA3i l\xEAn {count} t\u1EC7p\u2026",
633
+ statusReady: "{count} t\u1EC7p, \u0111\xE3 t\u1EA3i l\xEAn {done}",
634
+ statusFailed: "{count} t\u1EC7p t\u1EA3i l\xEAn th\u1EA5t b\u1EA1i",
635
+ removeImage: "X\xF3a \u1EA3nh",
636
+ removeFile: "X\xF3a {name}",
637
+ cropDescription: "K\xE9o thanh thu ph\xF3ng r\u1ED3i l\u01B0u \u0111\u1EC3 c\u1EAFt \u1EA3nh th\xE0nh h\xECnh vu\xF4ng."
489
638
  },
490
639
  cascader: {
491
640
  placeholder: "Ch\u1ECDn\u2026",
492
641
  searchPlaceholder: "T\xECm ki\u1EBFm\u2026",
493
- empty: "Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3"
642
+ empty: "Kh\xF4ng c\xF3 k\u1EBFt qu\u1EA3",
643
+ clear: "X\xF3a l\u1EF1a ch\u1ECDn"
494
644
  },
495
645
  treeSelect: {
496
646
  placeholder: "Ch\u1ECDn\u2026",
497
647
  searchPlaceholder: "T\xECm ki\u1EBFm\u2026",
498
648
  empty: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u",
499
649
  expand: "M\u1EDF r\u1ED9ng",
500
- collapse: "Thu g\u1ECDn"
650
+ collapse: "Thu g\u1ECDn",
651
+ clear: "X\xF3a l\u1EF1a ch\u1ECDn"
501
652
  },
502
653
  transfer: {
503
654
  source: "Ngu\u1ED3n",
@@ -505,7 +656,9 @@ var vi_default = {
505
656
  searchPlaceholder: "T\xECm ki\u1EBFm\u2026",
506
657
  empty: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u",
507
658
  moveRight: "Chuy\u1EC3n sang \u0111\xEDch",
508
- moveLeft: "Chuy\u1EC3n v\u1EC1 ngu\u1ED3n"
659
+ moveLeft: "Chuy\u1EC3n v\u1EC1 ngu\u1ED3n",
660
+ selectAllSource: "Ch\u1ECDn t\u1EA5t c\u1EA3 \u1EDF ngu\u1ED3n",
661
+ selectAllTarget: "Ch\u1ECDn t\u1EA5t c\u1EA3 \u1EDF \u0111\xEDch"
509
662
  },
510
663
  searchSelect: {
511
664
  placeholder: "Ch\u1ECDn\u2026",
@@ -519,9 +672,63 @@ var vi_default = {
519
672
  errorPanel: {
520
673
  title: "Kh\xF4ng t\u1EA3i \u0111\u01B0\u1EE3c n\u1ED9i dung n\xE0y"
521
674
  },
522
- genericError: "\u0110\xE3 x\u1EA3y ra l\u1ED7i. Vui l\xF2ng th\u1EED l\u1EA1i."
675
+ genericError: "\u0110\xE3 x\u1EA3y ra l\u1ED7i. Vui l\xF2ng th\u1EED l\u1EA1i.",
676
+ alert: {
677
+ dismiss: "\u0110\xF3ng"
678
+ }
679
+ },
680
+ layout: {
681
+ sidebar: {
682
+ ariaLabel: "\u0110i\u1EC1u h\u01B0\u1EDBng ch\xEDnh"
683
+ },
684
+ appShell: {
685
+ sidebarLabel: "Thanh b\xEAn",
686
+ headerLabel: "\u0110\u1EA7u trang",
687
+ mainLabel: "N\u1ED9i dung ch\xEDnh",
688
+ footerLabel: "Ch\xE2n trang"
689
+ },
690
+ topbar: {
691
+ toggleSidebar: "B\u1EADt/t\u1EAFt thanh b\xEAn",
692
+ search: "T\xECm ki\u1EBFm",
693
+ searchPlaceholder: "T\xECm ki\u1EBFm...",
694
+ notifications: "Th\xF4ng b\xE1o",
695
+ tweaks: "M\u1EDF t\xF9y ch\u1EC9nh"
696
+ }
697
+ },
698
+ dataDisplay: {
699
+ carousel: {
700
+ roleDescription: "b\u0103ng chuy\u1EC1n",
701
+ ariaLabel: "B\u0103ng chuy\u1EC1n",
702
+ slideLabel: "{index} / {total}",
703
+ previous: "Tr\u01B0\u1EDBc",
704
+ next: "Sau"
705
+ }
706
+ },
707
+ ui: {
708
+ rating: {
709
+ ariaLabel: "\u0110\xE1nh gi\xE1",
710
+ starLabel: "{star} / {max}"
711
+ },
712
+ tagInput: {
713
+ inputLabel: "Th\xEAm th\u1EBB",
714
+ removeTag: "X\xF3a {tag}",
715
+ tagCount: "{count} th\u1EBB"
716
+ },
717
+ passwordInput: {
718
+ show: "Hi\u1EC7n m\u1EADt kh\u1EA9u",
719
+ hide: "\u1EA8n m\u1EADt kh\u1EA9u"
720
+ }
523
721
  },
524
722
  navigation: {
723
+ steps: {
724
+ ariaLabel: "Ti\u1EBFn tr\xECnh"
725
+ },
726
+ breadcrumb: {
727
+ ariaLabel: "\u0110\u01B0\u1EDDng d\u1EABn"
728
+ },
729
+ toolbar: {
730
+ ariaLabel: "B\u1ED9 l\u1ECDc"
731
+ },
525
732
  localePicker: {
526
733
  ariaLabel: "Ng\xF4n ng\u1EEF"
527
734
  },
@@ -624,20 +831,44 @@ function getNested(obj, path) {
624
831
  if (current == null || typeof current !== "object") return void 0;
625
832
  current = current[part];
626
833
  }
627
- return typeof current === "string" ? current : void 0;
834
+ if (typeof current === "string") return current;
835
+ if (current != null && typeof current === "object") {
836
+ return current;
837
+ }
838
+ return void 0;
839
+ }
840
+ function pluralCount(params) {
841
+ if (!params) return void 0;
842
+ if (typeof params.count === "number") return params.count;
843
+ for (const value of Object.values(params)) {
844
+ if (typeof value === "number") return value;
845
+ }
846
+ return void 0;
847
+ }
848
+ function selectPlural(value, locale, params) {
849
+ if (typeof value === "string") return value;
850
+ const count = pluralCount(params);
851
+ if (count === void 0) {
852
+ return value.other ?? Object.values(value)[0] ?? "";
853
+ }
854
+ const category = new Intl.PluralRules(locale).select(count);
855
+ return value[category] ?? value.other ?? Object.values(value)[0] ?? "";
628
856
  }
629
- function interpolate(template, params) {
857
+ function interpolate(template, locale, params) {
630
858
  if (!params) return template;
631
859
  return Object.entries(params).reduce(
632
- (text, [key, value]) => text.replaceAll(`{${key}}`, String(value)),
860
+ (text, [key, value]) => text.replaceAll(
861
+ `{${key}}`,
862
+ typeof value === "number" ? new Intl.NumberFormat(locale).format(value) : String(value)
863
+ ),
633
864
  template
634
865
  );
635
866
  }
636
867
  function translate(locale, fallbackLocale, key, params) {
637
868
  const primary = getNested(MESSAGE_CATALOG[locale], key);
638
869
  const fallback = getNested(MESSAGE_CATALOG[fallbackLocale], key);
639
- const text = primary ?? fallback ?? key;
640
- return interpolate(text, params);
870
+ const value = primary ?? fallback ?? key;
871
+ return interpolate(selectPlural(value, locale, params), locale, params);
641
872
  }
642
873
  function translateCurrent(key, params) {
643
874
  return translate(getSyncedLocale(), getSyncedFallbackLocale(), key, params);
@@ -903,4 +1134,4 @@ function isFormatDateValue(value) {
903
1134
  return parseDateInput(trimmed) != null;
904
1135
  }
905
1136
 
906
- export { APP_DATE_FORMATS, APP_DATE_FORMAT_OPTIONS, APP_LOCALE_CONFIG, APP_REQUEST_HEADER_DATE_FORMAT, APP_REQUEST_HEADER_TIME_FORMAT, APP_TIME_FORMATS, MESSAGE_CATALOG, calendarDateToTZDate, detectFormatDateKind, disableLiveRelativeFormatting, enableLiveRelativeFormatting, formatAppDate, formatAppDateLong, formatAppDateTime, formatAppRelative, formatAppTime, formatCalendarDate, formatDate, formatTimeOfDay, getDateFnsLocale, getDateFormatLabel, getDatePattern, getDateTimePattern, getDatetimeContext, getDayPickerLocale, getTimePattern, hhmmToTZDate, isAppDateFormat, isAppLocale, isAppTimeFormat, isDateOnlyString, isFormatDateValue, isValidHhmm, normalizeHhmm, parseDateInput, resetDatetimeContextForTests, resetI18nLocale, resolveDefaultDateFormat, syncDatetimeContext, syncI18nLocale, toIsoDate, translate, translateCurrent };
1137
+ export { APP_DATE_FORMATS, APP_DATE_FORMAT_OPTIONS, APP_LOCALE_CONFIG, APP_REQUEST_HEADER_DATE_FORMAT, APP_REQUEST_HEADER_TIME_FORMAT, APP_TIME_FORMATS, MESSAGE_CATALOG, calendarDateToTZDate, detectFormatDateKind, disableLiveRelativeFormatting, enableLiveRelativeFormatting, formatAppDate, formatAppDateLong, formatAppDateTime, formatAppRelative, formatAppTime, formatCalendarDate, formatDate, formatTimeOfDay, getDateFnsLocale, getDateFormatLabel, getDatePattern, getDateTimePattern, getDatetimeContext, getDayPickerLocale, getSyncedLocale, getTimePattern, hhmmToTZDate, isAppDateFormat, isAppLocale, isAppTimeFormat, isDateOnlyString, isFormatDateValue, isValidHhmm, normalizeHhmm, parseDateInput, resetDatetimeContextForTests, resetI18nLocale, resolveDefaultDateFormat, syncDatetimeContext, syncI18nLocale, toIsoDate, translate, translateCurrent };
@@ -1,10 +1,10 @@
1
1
  import { reactNodeText } from './chunk-SMLKNECP.js';
2
- import { Checkbox } from './chunk-O24Z3ULJ.js';
3
2
  import { Input } from './chunk-VOHTRR5X.js';
3
+ import { Checkbox } from './chunk-BE6GJGKJ.js';
4
4
  import { Button } from './chunk-M4PZNAMV.js';
5
5
  import { ScrollArea } from './chunk-3KPEZ5CF.js';
6
- import { useTranslation } from './chunk-RLGHEV4A.js';
7
6
  import { Label } from './chunk-7PWBC4BY.js';
7
+ import { useTranslation } from './chunk-HTG5VHU7.js';
8
8
  import { useDebouncedValue } from './chunk-LFW37FGG.js';
9
9
  import { cn } from './chunk-U7N2A7A3.js';
10
10
  import * as React from 'react';
@@ -93,6 +93,8 @@ function TransferPanel({
93
93
  emptyText,
94
94
  direction
95
95
  }) {
96
+ const { t } = useTranslation();
97
+ const titleId = React.useId();
96
98
  const [query, setQuery] = React.useState("");
97
99
  const filtered = React.useMemo(() => {
98
100
  const q = query.trim().toLowerCase();
@@ -118,10 +120,10 @@ function TransferPanel({
118
120
  checked: allChecked ? true : indeterminate ? "indeterminate" : false,
119
121
  disabled: Boolean(disabled) || enabledItems.length === 0,
120
122
  onCheckedChange: (v) => onSelectAll(v === true),
121
- "aria-label": direction === "left" ? "Select all source" : "Select all target"
123
+ "aria-label": direction === "left" ? t("dataEntry.transfer.selectAllSource") : t("dataEntry.transfer.selectAllTarget")
122
124
  }
123
125
  ),
124
- /* @__PURE__ */ jsx("span", { children: title })
126
+ /* @__PURE__ */ jsx("span", { id: titleId, children: title })
125
127
  ] }),
126
128
  /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground text-xs", children: [
127
129
  selectedKeys.length,
@@ -139,7 +141,7 @@ function TransferPanel({
139
141
  className: disabled ? "pointer-events-none opacity-50" : void 0
140
142
  }
141
143
  ) }),
142
- /* @__PURE__ */ jsx(ScrollArea, { className: "flex-1", children: /* @__PURE__ */ jsx("ul", { className: "p-1", children: filtered.length === 0 ? /* @__PURE__ */ jsx("li", { className: "text-muted-foreground py-8 text-center text-sm", children: emptyText }) : filtered.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
144
+ /* @__PURE__ */ jsx(ScrollArea, { className: "flex-1", children: /* @__PURE__ */ jsx("ul", { className: "p-1", role: "group", "aria-labelledby": titleId, children: filtered.length === 0 ? /* @__PURE__ */ jsx("li", { className: "text-muted-foreground py-8 text-center text-sm", children: emptyText }) : filtered.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
143
145
  "label",
144
146
  {
145
147
  className: cn(
@@ -1,4 +1,4 @@
1
- import { Field, choiceGroupClassName } from './chunk-26CPAKUP.js';
1
+ import { Field, choiceGroupClassName } from './chunk-44YRPSZ7.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import * as React from 'react';
4
4
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
@@ -1,7 +1,7 @@
1
1
  import { Input } from './chunk-VOHTRR5X.js';
2
2
  import { buttonVariants, Button } from './chunk-M4PZNAMV.js';
3
- import { useTranslation } from './chunk-RLGHEV4A.js';
4
3
  import { Label } from './chunk-7PWBC4BY.js';
4
+ import { useTranslation } from './chunk-HTG5VHU7.js';
5
5
  import { cn } from './chunk-U7N2A7A3.js';
6
6
  import * as React from 'react';
7
7
  import * as DialogPrimitive from '@radix-ui/react-dialog';
@@ -52,6 +52,5 @@ function SkeletonStat() {
52
52
  /* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-20" })
53
53
  ] });
54
54
  }
55
- var SkeletonCard = SkeletonStat;
56
55
 
57
- export { Skeleton, SkeletonCard, SkeletonDetail, SkeletonRows, SkeletonStat, SkeletonTable };
56
+ export { Skeleton, SkeletonDetail, SkeletonRows, SkeletonStat, SkeletonTable };
@@ -47,7 +47,7 @@ function Calendar({
47
47
  day: cn(
48
48
  "relative p-0 text-center text-sm focus-within:relative focus-within:z-20",
49
49
  "[&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50",
50
- "[&:has([aria-selected].day-range-end)]:rounded-r-md",
50
+ "[&:has([aria-selected].day-range-end)]:rounded-e-md",
51
51
  classNames?.day
52
52
  ),
53
53
  day_button: cn(
@@ -55,8 +55,8 @@ function Calendar({
55
55
  "size-[length:var(--control-height)] p-0 font-normal aria-selected:opacity-100",
56
56
  classNames?.day_button
57
57
  ),
58
- range_start: cn("day-range-start rounded-l-md", classNames?.range_start),
59
- range_end: cn("day-range-end rounded-r-md", classNames?.range_end),
58
+ range_start: cn("day-range-start rounded-s-md", classNames?.range_start),
59
+ range_end: cn("day-range-end rounded-e-md", classNames?.range_end),
60
60
  range_middle: cn(
61
61
  "aria-selected:bg-accent aria-selected:text-accent-foreground",
62
62
  classNames?.range_middle
@@ -1,6 +1,6 @@
1
1
  import { Input } from './chunk-VOHTRR5X.js';
2
2
  import { controlIconClass } from './chunk-IBK5D2Q6.js';
3
- import { useTranslation } from './chunk-RLGHEV4A.js';
3
+ import { useTranslation } from './chunk-HTG5VHU7.js';
4
4
  import { cn } from './chunk-U7N2A7A3.js';
5
5
  import * as React from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -56,8 +56,10 @@ function ColorPicker({
56
56
  showHexInput && /* @__PURE__ */ jsx(
57
57
  Input,
58
58
  {
59
+ id: id ? `${id}-hex` : void 0,
59
60
  value: display,
60
61
  disabled,
62
+ "aria-label": t("dataEntry.colorPicker.hexLabel"),
61
63
  onChange: (event) => setDraft(event.target.value),
62
64
  onBlur: () => commit(display),
63
65
  onKeyDown: (event) => {
@@ -92,7 +92,7 @@ var SheetTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__
92
92
  {
93
93
  ref,
94
94
  "data-slot": "sheet-title",
95
- className: cn("text-foreground text-lg font-semibold", className),
95
+ className: cn("text-foreground text-lg font-medium", className),
96
96
  ...props
97
97
  }
98
98
  ));