@eifi1/ui-kit 0.25.1 → 0.27.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 (174) hide show
  1. package/README.md +16 -5
  2. package/dist/chart.d.ts +13 -9
  3. package/dist/components/account-chips.d.ts +1 -1
  4. package/dist/components/amount-input.d.ts +13 -9
  5. package/dist/components/button-group.d.ts +13 -9
  6. package/dist/components/calculator.d.ts +13 -9
  7. package/dist/components/confirm-dialog.d.ts +13 -9
  8. package/dist/components/copy-button.d.ts +10 -6
  9. package/dist/components/danger-confirm.d.ts +13 -9
  10. package/dist/components/data-table-cells.d.ts +1 -1
  11. package/dist/components/data-table-filter-popover.d.ts +1 -1
  12. package/dist/components/data-table-filters.d.ts +1 -1
  13. package/dist/components/data-table-labels.d.ts +1 -1
  14. package/dist/components/data-table-pagination.d.ts +1 -1
  15. package/dist/components/data-table.d.ts +1 -1
  16. package/dist/components/data-table.js +3 -2
  17. package/dist/components/data-table.js.map +1 -1
  18. package/dist/components/facing-pair.d.ts +13 -9
  19. package/dist/components/file-button.d.ts +13 -9
  20. package/dist/components/file-dropzone.d.ts +13 -9
  21. package/dist/components/form-actions.d.ts +13 -9
  22. package/dist/components/iban-input.d.ts +13 -9
  23. package/dist/components/language-select.d.ts +13 -9
  24. package/dist/components/money-field.d.ts +13 -9
  25. package/dist/components/number-field.d.ts +13 -9
  26. package/dist/components/number-input.d.ts +13 -9
  27. package/dist/components/numpad-sheet.d.ts +13 -9
  28. package/dist/components/phone-input.d.ts +13 -9
  29. package/dist/components/series-chart.d.ts +13 -9
  30. package/dist/components/settings-fields.d.ts +13 -9
  31. package/dist/components/share-card.d.ts +13 -9
  32. package/dist/components/swipeable-row.d.ts +5 -1
  33. package/dist/components/swipeable-row.js.map +1 -1
  34. package/dist/components/text-link.d.ts +13 -9
  35. package/dist/components/time-input.d.ts +13 -9
  36. package/dist/components/translation-review-labels.d.ts +4 -0
  37. package/dist/components/translation-review-labels.js +2 -1
  38. package/dist/components/translation-review-labels.js.map +1 -1
  39. package/dist/components/translation-review.d.ts +27 -3
  40. package/dist/components/translation-review.js +50 -21
  41. package/dist/components/translation-review.js.map +1 -1
  42. package/dist/components/ui.d.ts +10 -6
  43. package/dist/components/use-table-state.d.ts +1 -1
  44. package/dist/{data-table-labels-Cdn1QS2k.d.ts → data-table-labels-DUELeXpa.d.ts} +5 -0
  45. package/dist/data-table.d.ts +1 -1
  46. package/dist/feedback/feedback-attachment.d.ts +13 -9
  47. package/dist/feedback/feedback-attachment.js +3 -3
  48. package/dist/feedback/feedback-attachment.js.map +1 -1
  49. package/dist/feedback/feedback-capture.d.ts +71 -0
  50. package/dist/feedback/feedback-capture.js +194 -0
  51. package/dist/feedback/feedback-capture.js.map +1 -0
  52. package/dist/feedback/feedback-context.d.ts +71 -0
  53. package/dist/feedback/feedback-context.js +96 -0
  54. package/dist/feedback/feedback-context.js.map +1 -0
  55. package/dist/feedback/feedback-crash.d.ts +276 -0
  56. package/dist/feedback/feedback-crash.js +225 -0
  57. package/dist/feedback/feedback-crash.js.map +1 -0
  58. package/dist/feedback/feedback-dialog.d.ts +13 -9
  59. package/dist/feedback/feedback-dialog.js +5 -3
  60. package/dist/feedback/feedback-dialog.js.map +1 -1
  61. package/dist/feedback/feedback-inbox.d.ts +13 -9
  62. package/dist/feedback/feedback-inbox.js +89 -49
  63. package/dist/feedback/feedback-inbox.js.map +1 -1
  64. package/dist/feedback/feedback-labels.d.ts +71 -0
  65. package/dist/feedback/feedback-labels.js +48 -0
  66. package/dist/feedback/feedback-labels.js.map +1 -0
  67. package/dist/feedback/feedback-menu.d.ts +71 -0
  68. package/dist/feedback/feedback-menu.js +61 -0
  69. package/dist/feedback/feedback-menu.js.map +1 -0
  70. package/dist/feedback/feedback-record.d.ts +71 -0
  71. package/dist/feedback/feedback-record.js +104 -0
  72. package/dist/feedback/feedback-record.js.map +1 -0
  73. package/dist/feedback/feedback-row-detail.d.ts +71 -0
  74. package/dist/feedback/feedback-row-detail.js +437 -0
  75. package/dist/feedback/feedback-row-detail.js.map +1 -0
  76. package/dist/feedback/feedback-status-undo.d.ts +71 -0
  77. package/dist/feedback/feedback-status-undo.js +40 -0
  78. package/dist/feedback/feedback-status-undo.js.map +1 -0
  79. package/dist/feedback/feedback-submit.d.ts +182 -0
  80. package/dist/feedback/feedback-submit.js +101 -0
  81. package/dist/feedback/feedback-submit.js.map +1 -0
  82. package/dist/feedback/feedback-swipe.d.ts +152 -0
  83. package/dist/feedback/feedback-swipe.js +73 -0
  84. package/dist/feedback/feedback-swipe.js.map +1 -0
  85. package/dist/feedback/feedback-table.d.ts +71 -0
  86. package/dist/feedback/feedback-table.js +357 -0
  87. package/dist/feedback/feedback-table.js.map +1 -0
  88. package/dist/feedback/feedback-thread.d.ts +13 -9
  89. package/dist/feedback.d.ts +17 -9
  90. package/dist/feedback.js +11 -0
  91. package/dist/feedback.js.map +1 -1
  92. package/dist/hooks/use-file-drop.d.ts +13 -9
  93. package/dist/i18n/defaults.d.ts +13 -9
  94. package/dist/i18n/defaults.js +16 -0
  95. package/dist/i18n/defaults.js.map +1 -1
  96. package/dist/i18n/german.d.ts +13 -9
  97. package/dist/i18n/german.js +92 -5
  98. package/dist/i18n/german.js.map +1 -1
  99. package/dist/i18n/kit-labels.d.ts +7 -3
  100. package/dist/i18n/kit-labels.js.map +1 -1
  101. package/dist/i18n/languages.d.ts +13 -9
  102. package/dist/i18n/locales/de-CH.d.ts +13 -9
  103. package/dist/i18n/locales/en.d.ts +13 -9
  104. package/dist/i18n/locales/en.js +11 -1
  105. package/dist/i18n/locales/en.js.map +1 -1
  106. package/dist/i18n/locales/es.d.ts +13 -9
  107. package/dist/i18n/locales/es.js +90 -5
  108. package/dist/i18n/locales/es.js.map +1 -1
  109. package/dist/i18n/locales/fr.d.ts +13 -9
  110. package/dist/i18n/locales/fr.js +90 -5
  111. package/dist/i18n/locales/fr.js.map +1 -1
  112. package/dist/i18n/locales/hu.d.ts +13 -9
  113. package/dist/i18n/locales/hu.js +91 -5
  114. package/dist/i18n/locales/hu.js.map +1 -1
  115. package/dist/i18n/locales/it.d.ts +13 -9
  116. package/dist/i18n/locales/it.js +90 -5
  117. package/dist/i18n/locales/it.js.map +1 -1
  118. package/dist/i18n/locales/zh.d.ts +13 -9
  119. package/dist/i18n/locales/zh.js +90 -5
  120. package/dist/i18n/locales/zh.js.map +1 -1
  121. package/dist/i18n/review.d.ts +16 -11
  122. package/dist/i18n/review.js +12 -0
  123. package/dist/i18n/review.js.map +1 -1
  124. package/dist/i18n/swiss.js +3 -1
  125. package/dist/i18n/swiss.js.map +1 -1
  126. package/dist/index.d.ts +7 -3
  127. package/dist/index.js +18 -1
  128. package/dist/index.js.map +1 -1
  129. package/dist/{feedback-BXKH-ToU.d.ts → kit-labels-DQg82eHB.d.ts} +1275 -25
  130. package/dist/lib/translation-review.d.ts +76 -1
  131. package/dist/lib/translation-review.js +30 -0
  132. package/dist/lib/translation-review.js.map +1 -1
  133. package/dist/rhf/fields.d.ts +13 -9
  134. package/dist/rhf/form.d.ts +13 -9
  135. package/dist/rhf.d.ts +13 -9
  136. package/dist/shell/app-shell.d.ts +13 -9
  137. package/dist/shell/top-bar-brand.d.ts +13 -9
  138. package/dist/shell.d.ts +11 -11
  139. package/dist/wizard/stepper-nav.d.ts +13 -9
  140. package/dist/wizard.d.ts +13 -9
  141. package/package.json +6 -1
  142. package/src/components/data-table.tsx +14 -2
  143. package/src/components/swipeable-row.tsx +5 -1
  144. package/src/components/translation-review-labels.ts +5 -0
  145. package/src/components/translation-review.tsx +102 -35
  146. package/src/feedback/feedback-attachment.tsx +19 -3
  147. package/src/feedback/feedback-capture.ts +285 -0
  148. package/src/feedback/feedback-context.tsx +217 -0
  149. package/src/feedback/feedback-crash.ts +547 -0
  150. package/src/feedback/feedback-dialog.tsx +29 -6
  151. package/src/feedback/feedback-inbox.tsx +131 -27
  152. package/src/feedback/feedback-labels.ts +127 -0
  153. package/src/feedback/feedback-menu.tsx +132 -0
  154. package/src/feedback/feedback-record.ts +345 -0
  155. package/src/feedback/feedback-row-detail.tsx +825 -0
  156. package/src/feedback/feedback-status-undo.ts +111 -0
  157. package/src/feedback/feedback-submit.tsx +224 -0
  158. package/src/feedback/feedback-swipe.tsx +170 -0
  159. package/src/feedback/feedback-table.tsx +757 -0
  160. package/src/feedback.ts +13 -0
  161. package/src/i18n/defaults.ts +16 -0
  162. package/src/i18n/german.ts +99 -5
  163. package/src/i18n/kit-labels.tsx +20 -0
  164. package/src/i18n/locales/en.ts +16 -1
  165. package/src/i18n/locales/es.ts +97 -5
  166. package/src/i18n/locales/fr.ts +96 -5
  167. package/src/i18n/locales/hu.ts +95 -5
  168. package/src/i18n/locales/it.ts +98 -5
  169. package/src/i18n/locales/zh.ts +91 -5
  170. package/src/i18n/review.ts +15 -2
  171. package/src/i18n/swiss.ts +5 -1
  172. package/src/index.ts +19 -0
  173. package/src/lib/translation-review.ts +109 -0
  174. package/tokens.css +8 -0
@@ -1,9 +1,6 @@
1
- import { cB as UiKitLabels } from '../../feedback-BXKH-ToU.js';
1
+ import { d_ as UiKitLabels } from '../../kit-labels-DQg82eHB.js';
2
2
  import 'react';
3
- import '../../components/tooltip.js';
4
- import '../../hooks/use-anchored-rect.js';
5
- import '../../lib/clipping.js';
6
- import '../../data-table-labels-Cdn1QS2k.js';
3
+ import '../../data-table-labels-DUELeXpa.js';
7
4
  import '../../components/data-table-sort.js';
8
5
  import '../../components/swipeable-row.js';
9
6
  import '../../components/mini-calendar.js';
@@ -12,6 +9,9 @@ import '../../components/popover.js';
12
9
  import '../../components/chip.js';
13
10
  import 'lucide-react';
14
11
  import '../../components/field-sync.js';
12
+ import '../../components/tooltip.js';
13
+ import '../../hooks/use-anchored-rect.js';
14
+ import '../../lib/clipping.js';
15
15
  import '../../wizard/types.js';
16
16
  import '../../tour/tour.js';
17
17
  import '../../search/command-palette.js';
@@ -32,19 +32,23 @@ import '../../components/dialog-frame.js';
32
32
  import '../../components/modal.js';
33
33
  import '../../hooks/use-search-param-state.js';
34
34
  import '../../components/measured-grid.js';
35
- import '../../components/account-settings-labels.js';
35
+ import '../../components/user-avatar.js';
36
+ import '../../components/status-dot.js';
37
+ import '../../components/progress-bar.js';
38
+ import '../../components/signed-amount.js';
39
+ import '../../shell/topbar-action-menu.js';
40
+ import '../../components/menu-item.js';
36
41
  import '../../components/floating-panel.js';
42
+ import '../../hooks/use-authed-src.js';
43
+ import '../../components/account-settings-labels.js';
37
44
  import '../../components/bulk-action-bar.js';
38
45
  import '../../components/list.js';
39
- import '../../components/signed-amount.js';
40
46
  import '../../components/breadcrumbs.js';
41
47
  import '../../components/toast.js';
42
48
  import '../../components/description-list.js';
43
49
  import '../../components/line-items.js';
44
- import '../../components/progress-bar.js';
45
50
  import '../../components/error-boundary.js';
46
51
  import '../../components/authed-image.js';
47
- import '../../hooks/use-authed-src.js';
48
52
  import '../../components/image-grid.js';
49
53
  import '../../components/lightbox.js';
50
54
  import '../../components/write-lock.js';
@@ -1,9 +1,6 @@
1
- import { cB as UiKitLabels } from '../../feedback-BXKH-ToU.js';
1
+ import { d_ as UiKitLabels } from '../../kit-labels-DQg82eHB.js';
2
2
  import 'react';
3
- import '../../components/tooltip.js';
4
- import '../../hooks/use-anchored-rect.js';
5
- import '../../lib/clipping.js';
6
- import '../../data-table-labels-Cdn1QS2k.js';
3
+ import '../../data-table-labels-DUELeXpa.js';
7
4
  import '../../components/data-table-sort.js';
8
5
  import '../../components/swipeable-row.js';
9
6
  import '../../components/mini-calendar.js';
@@ -12,6 +9,9 @@ import '../../components/popover.js';
12
9
  import '../../components/chip.js';
13
10
  import 'lucide-react';
14
11
  import '../../components/field-sync.js';
12
+ import '../../components/tooltip.js';
13
+ import '../../hooks/use-anchored-rect.js';
14
+ import '../../lib/clipping.js';
15
15
  import '../../wizard/types.js';
16
16
  import '../../tour/tour.js';
17
17
  import '../../search/command-palette.js';
@@ -32,19 +32,23 @@ import '../../components/dialog-frame.js';
32
32
  import '../../components/modal.js';
33
33
  import '../../hooks/use-search-param-state.js';
34
34
  import '../../components/measured-grid.js';
35
- import '../../components/account-settings-labels.js';
35
+ import '../../components/user-avatar.js';
36
+ import '../../components/status-dot.js';
37
+ import '../../components/progress-bar.js';
38
+ import '../../components/signed-amount.js';
39
+ import '../../shell/topbar-action-menu.js';
40
+ import '../../components/menu-item.js';
36
41
  import '../../components/floating-panel.js';
42
+ import '../../hooks/use-authed-src.js';
43
+ import '../../components/account-settings-labels.js';
37
44
  import '../../components/bulk-action-bar.js';
38
45
  import '../../components/list.js';
39
- import '../../components/signed-amount.js';
40
46
  import '../../components/breadcrumbs.js';
41
47
  import '../../components/toast.js';
42
48
  import '../../components/description-list.js';
43
49
  import '../../components/line-items.js';
44
- import '../../components/progress-bar.js';
45
50
  import '../../components/error-boundary.js';
46
51
  import '../../components/authed-image.js';
47
- import '../../hooks/use-authed-src.js';
48
52
  import '../../components/image-grid.js';
49
53
  import '../../components/lightbox.js';
50
54
  import '../../components/write-lock.js';
@@ -9,7 +9,16 @@ function uiKitLabelsEn(numberLocale = "en-US") {
9
9
  ...d,
10
10
  feedbackAttachment: {
11
11
  ...d.feedbackAttachment,
12
- attachmentLimit: (max) => `Up to ${n(max)} ${max === 1 ? "attachment" : "attachments"} \u2014 remove one to add another.`
12
+ attachmentLimit: (max) => max === 1 ? "Up to 1 attachment \u2014 remove it to add another." : `Up to ${n(max)} attachments \u2014 remove one to add another.`
13
+ },
14
+ feedbackToast: {
15
+ ...d.feedbackToast,
16
+ attachmentTooMany: (count) => count === 1 ? "Only 1 attachment fits \u2014 the rest were left out." : `Only ${n(count)} attachments fit \u2014 the rest were left out.`
17
+ },
18
+ feedbackPage: {
19
+ ...d.feedbackPage,
20
+ // `userFallback`'s number is an id, not a count: it stays as the default prints it.
21
+ reworkChip: (count) => count === 1 ? "Rework" : `Rework \xD7${n(count)}`
13
22
  },
14
23
  measuredGrid: {
15
24
  ...d.measuredGrid,
@@ -95,6 +104,7 @@ function uiKitLabelsEn(numberLocale = "en-US") {
95
104
  localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,
96
105
  exportCorrections: (count) => `Export corrections (${n(count)})`,
97
106
  approvedToast: (count) => count === 1 ? "String approved" : `${n(count)} strings approved`,
107
+ clearedToast: (count) => count === 1 ? "String marked unreviewed" : `${n(count)} strings marked unreviewed`,
98
108
  groupCount: (unreviewed, total) => `${n(unreviewed)} unreviewed / ${n(total)}`,
99
109
  approveGroup: (count) => `Approve unreviewed (${n(count)})`,
100
110
  confirmGroup: (count, group) => count === 1 ? `Approve the unreviewed string in ${group}?` : `Approve all ${n(count)} unreviewed strings in ${group}, including those not on screen?`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/i18n/locales/en.ts"],"sourcesContent":["import { DEFAULT_UI_KIT_LABELS } from \"../defaults\";\nimport { formatFileSize } from \"../kit-labels\";\nimport type { UiKitLabels } from \"../kit-labels\";\n\n/**\n * The kit's English words with every count and file size formatted for\n * `numberLocale` — `uiKitLabelsEn(\"en-CH\")` reads \"12’345 rows\", where the defaults\n * print \"12345\". For `<UiKitProvider labels={uiKitLabelsEn(\"en-CH\")}>`.\n *\n * A factory and not a constant on purpose: {@link DEFAULT_UI_KIT_LABELS} prints counts\n * raw and has since 0.1, so an app that passes nothing must keep seeing exactly that.\n * Formatting is something an app asks for, by calling this.\n *\n * Derived rather than copied: every word is the default's own, spread in, and only the\n * labels that print a number are restated — with the same wording and the same\n * singular/plural split — so a key added to the defaults is here the moment it lands.\n * Row and line numbers (`lineItems.row`, `measuredGrid.cell`) are positions, not\n * counts, and stay as the defaults print them, as in the other catalogues.\n */\nexport function uiKitLabelsEn(numberLocale = \"en-US\"): UiKitLabels {\n const num = new Intl.NumberFormat(numberLocale);\n const n = (value: number) => num.format(value);\n const d = DEFAULT_UI_KIT_LABELS;\n\n return {\n ...d,\n feedbackAttachment: {\n ...d.feedbackAttachment,\n attachmentLimit: (max) =>\n `Up to ${n(max)} ${max === 1 ? \"attachment\" : \"attachments\"} — remove one to add another.`,\n },\n measuredGrid: {\n ...d.measuredGrid,\n points: (count) => (count === 1 ? \"1 point\" : `${n(count)} points`),\n problems: (count) =>\n count === 1\n ? \"1 cell is not a number\"\n : `${n(count)} cells are not numbers`,\n },\n dataTable: {\n ...d.dataTable,\n filterResults: (shown, total) => `${n(shown)} of ${n(total)} rows`,\n pageChanged: (page, totalPages) => `Page ${n(page)} of ${n(totalPages)}`,\n pageRange: (from, to, total) => `${n(from)}–${n(to)} / ${n(total)}`,\n rowCount: (total) => n(total),\n columnsCount: (visible, total) => `Columns (${n(visible)}/${n(total)})`,\n },\n calendarHeatmap: {\n ...d.calendarHeatmap,\n truncated: (count) =>\n `Showing the most recent days; ${n(count)} earlier ${count === 1 ? \"day is\" : \"days are\"} not shown.`,\n },\n combobox: {\n ...d.combobox,\n selectedCount: (count) => `${n(count)} selected`,\n resultCount: (count) =>\n count === 1 ? \"1 result\" : `${n(count)} results`,\n minChars: (count) =>\n count === 1\n ? \"Type at least 1 character\"\n : `Type at least ${n(count)} characters`,\n },\n multiSelect: {\n ...d.multiSelect,\n selectedCount: (count) => n(count),\n },\n chipInput: {\n ...d.chipInput,\n atLimit: (max) => `Limit of ${n(max)} reached`,\n },\n iconPicker: {\n ...d.iconPicker,\n resultCount: (count) => (count === 1 ? \"1 icon\" : `${n(count)} icons`),\n },\n bulkActionBar: {\n ...d.bulkActionBar,\n selected: (count) => `${n(count)} selected`,\n },\n file: {\n // The kit's own `Intl` unit formatting, pinned to this locale (\"3.4 MB\").\n size: (bytes) => formatFileSize(bytes, numberLocale),\n },\n filePicker: {\n ...d.filePicker,\n rejectedCount: (name, maxFiles) =>\n `“${name}” was not added: at most ${n(maxFiles)} ${maxFiles === 1 ? \"file\" : \"files\"}`,\n rejectedMany: (count) => `${n(count)} files were not added`,\n rejectedPick: (count) =>\n count === 1\n ? \"The file was not added\"\n : `None of the ${n(count)} files were added`,\n selected: (count, firstName) =>\n count === 1 ? `“${firstName}” selected` : `${n(count)} files selected`,\n },\n wizard: {\n ...d.wizard,\n step: (current, total) => `Step ${n(current)} of ${n(total)}`,\n },\n tour: {\n ...d.tour,\n step: (current, total) => `${n(current)} / ${n(total)}`,\n },\n passwordStrength: {\n ...d.passwordStrength,\n ruleLength: (minLength) => `At least ${n(minLength)} characters`,\n tooLong: (maxBytes) =>\n `At most ${n(maxBytes)} characters (accents and emoji count for more than one).`,\n },\n floatingPanel: {\n ...d.floatingPanel,\n badge: (count) => `${n(count)} new`,\n },\n imageGrid: {\n ...d.imageGrid,\n item: (index, count) => `Image ${n(index)} of ${n(count)}`,\n },\n lightbox: {\n ...d.lightbox,\n counter: (index, count) => `${n(index)} / ${n(count)}`,\n position: (index, count) => `Image ${n(index)} of ${n(count)}`,\n },\n translationReview: {\n ...d.translationReview,\n filterCount: (label, count) => `${label} · ${n(count)}`,\n placeholdersOnly: (count) => `Only placeholder problems (${n(count)})`,\n progress: (approved, total) => `${n(approved)} of ${n(total)} approved`,\n localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,\n exportCorrections: (count) => `Export corrections (${n(count)})`,\n approvedToast: (count) => (count === 1 ? \"String approved\" : `${n(count)} strings approved`),\n groupCount: (unreviewed, total) => `${n(unreviewed)} unreviewed / ${n(total)}`,\n approveGroup: (count) => `Approve unreviewed (${n(count)})`,\n confirmGroup: (count, group) =>\n count === 1\n ? `Approve the unreviewed string in ${group}?`\n : `Approve all ${n(count)} unreviewed strings in ${group}, including those not on screen?`,\n },\n characterCount: {\n ...d.characterCount,\n count: (used, max) => `${n(used)} of ${n(max)} characters`,\n remaining: (left) =>\n left === 1 ? \"1 character left\" : `${n(left)} characters left`,\n },\n ibanInput: {\n ...d.ibanInput,\n length: (actual, expected) =>\n `An IBAN from this country has ${n(expected)} characters — this one has ${n(actual)}.`,\n },\n columnMapper: {\n ...d.columnMapper,\n summary: (columns, rows) =>\n `${n(columns)} ${columns === 1 ? \"column\" : \"columns\"}, ${n(rows)} ${rows === 1 ? \"row\" : \"rows\"}`,\n unreadCount: (count) =>\n count === 1\n ? \"1 line could not be read\"\n : `${n(count)} lines could not be read`,\n unreadMore: (count) => `…and ${n(count)} more`,\n previewOf: (shown, total) =>\n shown === 1\n ? `The first of ${n(total)} rows`\n : `The first ${n(shown)} of ${n(total)} rows`,\n },\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/i18n/locales/en.ts"],"sourcesContent":["import { DEFAULT_UI_KIT_LABELS } from \"../defaults\";\nimport { formatFileSize } from \"../kit-labels\";\nimport type { UiKitLabels } from \"../kit-labels\";\n\n/**\n * The kit's English words with every count and file size formatted for\n * `numberLocale` — `uiKitLabelsEn(\"en-CH\")` reads \"12’345 rows\", where the defaults\n * print \"12345\". For `<UiKitProvider labels={uiKitLabelsEn(\"en-CH\")}>`.\n *\n * A factory and not a constant on purpose: {@link DEFAULT_UI_KIT_LABELS} prints counts\n * raw and has since 0.1, so an app that passes nothing must keep seeing exactly that.\n * Formatting is something an app asks for, by calling this.\n *\n * Derived rather than copied: every word is the default's own, spread in, and only the\n * labels that print a number are restated — with the same wording and the same\n * singular/plural split — so a key added to the defaults is here the moment it lands.\n * Row and line numbers (`lineItems.row`, `measuredGrid.cell`) are positions, not\n * counts, and stay as the defaults print them, as in the other catalogues.\n */\nexport function uiKitLabelsEn(numberLocale = \"en-US\"): UiKitLabels {\n const num = new Intl.NumberFormat(numberLocale);\n const n = (value: number) => num.format(value);\n const d = DEFAULT_UI_KIT_LABELS;\n\n return {\n ...d,\n feedbackAttachment: {\n ...d.feedbackAttachment,\n attachmentLimit: (max) =>\n max === 1\n ? \"Up to 1 attachment — remove it to add another.\"\n : `Up to ${n(max)} attachments — remove one to add another.`,\n },\n feedbackToast: {\n ...d.feedbackToast,\n attachmentTooMany: (count) =>\n count === 1\n ? \"Only 1 attachment fits — the rest were left out.\"\n : `Only ${n(count)} attachments fit — the rest were left out.`,\n },\n feedbackPage: {\n ...d.feedbackPage,\n // `userFallback`'s number is an id, not a count: it stays as the default prints it.\n reworkChip: (count) => (count === 1 ? \"Rework\" : `Rework ×${n(count)}`),\n },\n measuredGrid: {\n ...d.measuredGrid,\n points: (count) => (count === 1 ? \"1 point\" : `${n(count)} points`),\n problems: (count) =>\n count === 1\n ? \"1 cell is not a number\"\n : `${n(count)} cells are not numbers`,\n },\n dataTable: {\n ...d.dataTable,\n filterResults: (shown, total) => `${n(shown)} of ${n(total)} rows`,\n pageChanged: (page, totalPages) => `Page ${n(page)} of ${n(totalPages)}`,\n pageRange: (from, to, total) => `${n(from)}–${n(to)} / ${n(total)}`,\n rowCount: (total) => n(total),\n columnsCount: (visible, total) => `Columns (${n(visible)}/${n(total)})`,\n },\n calendarHeatmap: {\n ...d.calendarHeatmap,\n truncated: (count) =>\n `Showing the most recent days; ${n(count)} earlier ${count === 1 ? \"day is\" : \"days are\"} not shown.`,\n },\n combobox: {\n ...d.combobox,\n selectedCount: (count) => `${n(count)} selected`,\n resultCount: (count) =>\n count === 1 ? \"1 result\" : `${n(count)} results`,\n minChars: (count) =>\n count === 1\n ? \"Type at least 1 character\"\n : `Type at least ${n(count)} characters`,\n },\n multiSelect: {\n ...d.multiSelect,\n selectedCount: (count) => n(count),\n },\n chipInput: {\n ...d.chipInput,\n atLimit: (max) => `Limit of ${n(max)} reached`,\n },\n iconPicker: {\n ...d.iconPicker,\n resultCount: (count) => (count === 1 ? \"1 icon\" : `${n(count)} icons`),\n },\n bulkActionBar: {\n ...d.bulkActionBar,\n selected: (count) => `${n(count)} selected`,\n },\n file: {\n // The kit's own `Intl` unit formatting, pinned to this locale (\"3.4 MB\").\n size: (bytes) => formatFileSize(bytes, numberLocale),\n },\n filePicker: {\n ...d.filePicker,\n rejectedCount: (name, maxFiles) =>\n `“${name}” was not added: at most ${n(maxFiles)} ${maxFiles === 1 ? \"file\" : \"files\"}`,\n rejectedMany: (count) => `${n(count)} files were not added`,\n rejectedPick: (count) =>\n count === 1\n ? \"The file was not added\"\n : `None of the ${n(count)} files were added`,\n selected: (count, firstName) =>\n count === 1 ? `“${firstName}” selected` : `${n(count)} files selected`,\n },\n wizard: {\n ...d.wizard,\n step: (current, total) => `Step ${n(current)} of ${n(total)}`,\n },\n tour: {\n ...d.tour,\n step: (current, total) => `${n(current)} / ${n(total)}`,\n },\n passwordStrength: {\n ...d.passwordStrength,\n ruleLength: (minLength) => `At least ${n(minLength)} characters`,\n tooLong: (maxBytes) =>\n `At most ${n(maxBytes)} characters (accents and emoji count for more than one).`,\n },\n floatingPanel: {\n ...d.floatingPanel,\n badge: (count) => `${n(count)} new`,\n },\n imageGrid: {\n ...d.imageGrid,\n item: (index, count) => `Image ${n(index)} of ${n(count)}`,\n },\n lightbox: {\n ...d.lightbox,\n counter: (index, count) => `${n(index)} / ${n(count)}`,\n position: (index, count) => `Image ${n(index)} of ${n(count)}`,\n },\n translationReview: {\n ...d.translationReview,\n filterCount: (label, count) => `${label} · ${n(count)}`,\n placeholdersOnly: (count) => `Only placeholder problems (${n(count)})`,\n progress: (approved, total) => `${n(approved)} of ${n(total)} approved`,\n localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,\n exportCorrections: (count) => `Export corrections (${n(count)})`,\n approvedToast: (count) => (count === 1 ? \"String approved\" : `${n(count)} strings approved`),\n clearedToast: (count) => (count === 1 ? \"String marked unreviewed\" : `${n(count)} strings marked unreviewed`),\n groupCount: (unreviewed, total) => `${n(unreviewed)} unreviewed / ${n(total)}`,\n approveGroup: (count) => `Approve unreviewed (${n(count)})`,\n confirmGroup: (count, group) =>\n count === 1\n ? `Approve the unreviewed string in ${group}?`\n : `Approve all ${n(count)} unreviewed strings in ${group}, including those not on screen?`,\n },\n characterCount: {\n ...d.characterCount,\n count: (used, max) => `${n(used)} of ${n(max)} characters`,\n remaining: (left) =>\n left === 1 ? \"1 character left\" : `${n(left)} characters left`,\n },\n ibanInput: {\n ...d.ibanInput,\n length: (actual, expected) =>\n `An IBAN from this country has ${n(expected)} characters — this one has ${n(actual)}.`,\n },\n columnMapper: {\n ...d.columnMapper,\n summary: (columns, rows) =>\n `${n(columns)} ${columns === 1 ? \"column\" : \"columns\"}, ${n(rows)} ${rows === 1 ? \"row\" : \"rows\"}`,\n unreadCount: (count) =>\n count === 1\n ? \"1 line could not be read\"\n : `${n(count)} lines could not be read`,\n unreadMore: (count) => `…and ${n(count)} more`,\n previewOf: (shown, total) =>\n shown === 1\n ? `The first of ${n(total)} rows`\n : `The first ${n(shown)} of ${n(total)} rows`,\n },\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,9 +1,6 @@
1
- import { cB as UiKitLabels } from '../../feedback-BXKH-ToU.js';
1
+ import { d_ as UiKitLabels } from '../../kit-labels-DQg82eHB.js';
2
2
  import 'react';
3
- import '../../components/tooltip.js';
4
- import '../../hooks/use-anchored-rect.js';
5
- import '../../lib/clipping.js';
6
- import '../../data-table-labels-Cdn1QS2k.js';
3
+ import '../../data-table-labels-DUELeXpa.js';
7
4
  import '../../components/data-table-sort.js';
8
5
  import '../../components/swipeable-row.js';
9
6
  import '../../components/mini-calendar.js';
@@ -12,6 +9,9 @@ import '../../components/popover.js';
12
9
  import '../../components/chip.js';
13
10
  import 'lucide-react';
14
11
  import '../../components/field-sync.js';
12
+ import '../../components/tooltip.js';
13
+ import '../../hooks/use-anchored-rect.js';
14
+ import '../../lib/clipping.js';
15
15
  import '../../wizard/types.js';
16
16
  import '../../tour/tour.js';
17
17
  import '../../search/command-palette.js';
@@ -32,19 +32,23 @@ import '../../components/dialog-frame.js';
32
32
  import '../../components/modal.js';
33
33
  import '../../hooks/use-search-param-state.js';
34
34
  import '../../components/measured-grid.js';
35
- import '../../components/account-settings-labels.js';
35
+ import '../../components/user-avatar.js';
36
+ import '../../components/status-dot.js';
37
+ import '../../components/progress-bar.js';
38
+ import '../../components/signed-amount.js';
39
+ import '../../shell/topbar-action-menu.js';
40
+ import '../../components/menu-item.js';
36
41
  import '../../components/floating-panel.js';
42
+ import '../../hooks/use-authed-src.js';
43
+ import '../../components/account-settings-labels.js';
37
44
  import '../../components/bulk-action-bar.js';
38
45
  import '../../components/list.js';
39
- import '../../components/signed-amount.js';
40
46
  import '../../components/breadcrumbs.js';
41
47
  import '../../components/toast.js';
42
48
  import '../../components/description-list.js';
43
49
  import '../../components/line-items.js';
44
- import '../../components/progress-bar.js';
45
50
  import '../../components/error-boundary.js';
46
51
  import '../../components/authed-image.js';
47
- import '../../hooks/use-authed-src.js';
48
52
  import '../../components/image-grid.js';
49
53
  import '../../components/lightbox.js';
50
54
  import '../../components/write-lock.js';
@@ -6,14 +6,14 @@ function uiKitLabelsEs(numberLocale = "es-ES") {
6
6
  const plural = (count, one, many) => count === 1 ? one : many;
7
7
  return {
8
8
  feedbackAttachment: {
9
- attachmentAdd: "Adjuntar imagen",
9
+ attachmentAdd: "A\xF1adir adjunto",
10
10
  attachmentCapture: "Capturar pantalla",
11
- attachmentPaste: "\u2026o pegue una captura de pantalla desde el portapapeles.",
11
+ attachmentPaste: "\u2026o pegue una captura de pantalla directamente desde el portapapeles, para mostrar solo un detalle en lugar de toda la p\xE1gina.",
12
12
  attachmentRemove: "Quitar adjunto",
13
13
  attachmentList: "Adjuntos",
14
14
  attachmentScreenshot: "Captura de pantalla",
15
15
  attachmentRemoveFile: (name) => `Quitar ${name}`,
16
- attachmentLimit: (max) => `M\xE1ximo ${n(max)} ${max === 1 ? "adjunto" : "adjuntos"}: quite uno para a\xF1adir otro.`,
16
+ attachmentLimit: (max) => max === 1 ? `M\xE1ximo ${n(max)} adjunto: qu\xEDtelo para a\xF1adir otro.` : `M\xE1ximo ${n(max)} adjuntos: quite uno para a\xF1adir otro.`,
17
17
  attachmentUploading: "Subiendo\u2026",
18
18
  attachmentUploadFailed: (name) => `No se ha podido subir \xAB${name}\xBB`
19
19
  },
@@ -23,8 +23,8 @@ function uiKitLabelsEs(numberLocale = "es-ES") {
23
23
  subject: "Asunto",
24
24
  body: "\xBFQu\xE9 ha pasado?",
25
25
  bodyOptional: "\xBFQu\xE9 ha pasado? (opcional)",
26
- attachment: "Captura de pantalla",
27
- submitHint: "Ctrl/\u2318 + Intro para enviar",
26
+ attachment: "Adjunto",
27
+ submitHint: (apple) => apple ? "\u2318 Intro para enviar" : "Ctrl+Intro para enviar",
28
28
  cancel: "Cancelar",
29
29
  save: "Enviar"
30
30
  },
@@ -43,6 +43,90 @@ function uiKitLabelsEs(numberLocale = "es-ES") {
43
43
  sendHint: (modifier) => `${modifier} + Intro para enviar`,
44
44
  sendHintEnter: "Intro para enviar, May\xFAs + Intro para una nueva l\xEDnea"
45
45
  },
46
+ // 0.27.0. "Comentarios" for feedback, as `feedbackDialog`; "corrección" for rework.
47
+ feedbackStatus: {
48
+ OPEN: "Abierto",
49
+ IN_PROGRESS: "En curso",
50
+ IN_EVALUATION: "En evaluaci\xF3n",
51
+ NEEDS_LIVE_TEST: "Probar en producci\xF3n",
52
+ POSTPONED: "Pospuesto",
53
+ DONE: "Hecho",
54
+ WONT_DO: "No se har\xE1"
55
+ },
56
+ feedbackCategory: {
57
+ CRASH: "Bloqueo",
58
+ BUG: "Error",
59
+ IDEA: "Idea",
60
+ QUESTION: "Pregunta",
61
+ OTHER: "Otro"
62
+ },
63
+ feedbackToast: {
64
+ submitted: "\xA1Gracias por sus comentarios!",
65
+ submitFailed: "No se han podido enviar los comentarios",
66
+ attachmentUnsupported: "Solo se admiten im\xE1genes, PDF o archivos de texto",
67
+ attachmentTooLarge: "El archivo supera los 10 MB",
68
+ attachmentTooMany: (count) => count === 1 ? "Solo cabe 1 adjunto: el resto se ha omitido." : `Solo caben ${n(count)} adjuntos: el resto se ha omitido.`,
69
+ captureFailed: "No se ha podido capturar la pantalla",
70
+ updateFailed: "No se ha podido guardar el cambio.",
71
+ statusChanged: (status, title) => `Cambiado a \xAB${status}\xBB: ${title}`,
72
+ statusUndo: "Deshacer",
73
+ statusRestored: (status, title) => `De vuelta a \xAB${status}\xBB: ${title}`
74
+ },
75
+ feedbackMenu: {
76
+ trigger: "Enviar comentarios",
77
+ myFeedback: "Mis comentarios",
78
+ viewFeedback: "Ver comentarios"
79
+ },
80
+ feedbackContext: {
81
+ user: "Usuario",
82
+ attachUrl: "Adjuntar la URL de la p\xE1gina actual"
83
+ },
84
+ feedbackPage: {
85
+ title: "Comentarios",
86
+ myTitle: "Mis comentarios",
87
+ columnId: "#",
88
+ columnDate: "Fecha",
89
+ columnCategory: "Categor\xEDa",
90
+ columnSubject: "Asunto",
91
+ columnUser: "Usuario",
92
+ columnEmail: "Correo electr\xF3nico",
93
+ columnUrl: "URL",
94
+ columnStatus: "Estado",
95
+ columnResolved: "Resuelto el",
96
+ openPage: "Abrir p\xE1gina",
97
+ empty: "Ninguno",
98
+ deletedUser: "<usuario eliminado>",
99
+ // An id, not a count: printed as it is, like the "#" column.
100
+ userFallback: (id) => `usuario #${id}`,
101
+ environment: (environment) => String(environment ?? "").toUpperCase(),
102
+ reworkChip: (count) => count === 1 ? "Correcci\xF3n" : `Correcci\xF3n \xD7${n(count)}`,
103
+ awaitingFilter: "Solo lo que est\xE1 pendiente de usted",
104
+ phoneActions: "Acciones de comentarios"
105
+ },
106
+ feedbackDetail: {
107
+ body: "Descripci\xF3n",
108
+ edit: "Editar",
109
+ editDescription: "Editar descripci\xF3n",
110
+ save: "Guardar",
111
+ cancel: "Cancelar",
112
+ url: "URL",
113
+ copyUrl: "Copiar URL",
114
+ attachment: "Adjunto",
115
+ download: (name) => `Descargar ${name}`,
116
+ downloadFailed: "No se ha podido descargar el adjunto.",
117
+ outcome: "Resultado",
118
+ resolvedAt: (date) => `Resuelto el ${date}`,
119
+ outcomeAdd: "A\xF1adir resultado",
120
+ outcomeUpdate: "Actualizar",
121
+ outcomePlaceholder: "Qu\xE9 se ha hecho o decidido, o por qu\xE9 no se abordar\xE1.",
122
+ rework: "Correcci\xF3n",
123
+ openPage: "Abrir p\xE1gina",
124
+ reworkTitle: "Devolver para correcci\xF3n",
125
+ reworkSend: "Solicitar correcci\xF3n",
126
+ reworkPlaceholder: "\xBFQu\xE9 falta por pulir? Nuevos requisitos o cambios de rumbo.",
127
+ reworkUploadFailed: "No se ha podido subir el archivo. La solicitud de correcci\xF3n no se ha enviado.",
128
+ status: "Estado"
129
+ },
46
130
  accountSettings: {
47
131
  profile: {
48
132
  title: "Perfil",
@@ -735,6 +819,7 @@ function uiKitLabelsEs(numberLocale = "es-ES") {
735
819
  exportCorrections: (count) => `Exportar correcciones (${n(count)})`,
736
820
  failed: "No ha funcionado. Int\xE9ntelo de nuevo.",
737
821
  approvedToast: (count) => count === 1 ? "Texto aprobado" : `${n(count)} textos aprobados`,
822
+ clearedToast: (count) => count === 1 ? "Texto marcado como sin revisar" : `${n(count)} textos marcados como sin revisar`,
738
823
  // "sin revisar" does not agree with the count, so one form serves both.
739
824
  groupCount: (unreviewed, total) => `${n(unreviewed)} sin revisar / ${n(total)}`,
740
825
  approveGroup: (count) => `Aprobar los sin revisar (${n(count)})`,