@eifi1/ui-kit 0.24.1 → 0.25.1
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.
- package/README.md +6 -6
- package/dist/chart.d.ts +2 -2
- package/dist/components/account-chips.d.ts +1 -1
- package/dist/components/amount-input.d.ts +2 -2
- package/dist/components/button-group.d.ts +2 -2
- package/dist/components/calculator.d.ts +2 -2
- package/dist/components/column-mapper.d.ts +28 -9
- package/dist/components/column-mapper.js +63 -77
- package/dist/components/column-mapper.js.map +1 -1
- package/dist/components/confirm-dialog.d.ts +2 -2
- package/dist/components/copy-button.d.ts +2 -2
- package/dist/components/danger-confirm.d.ts +2 -2
- package/dist/components/data-table-cells.d.ts +1 -1
- package/dist/components/data-table-filter-popover.d.ts +1 -1
- package/dist/components/data-table-filters.d.ts +1 -1
- package/dist/components/data-table-labels.d.ts +1 -1
- package/dist/components/data-table-pagination.d.ts +1 -1
- package/dist/components/data-table-pagination.js +6 -1
- package/dist/components/data-table-pagination.js.map +1 -1
- package/dist/components/data-table.d.ts +1 -1
- package/dist/components/data-table.js +7 -1
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/facing-pair.d.ts +2 -2
- package/dist/components/file-button.d.ts +2 -2
- package/dist/components/file-dropzone.d.ts +2 -2
- package/dist/components/form-actions.d.ts +2 -2
- package/dist/components/iban-input.d.ts +2 -2
- package/dist/components/language-select.d.ts +2 -2
- package/dist/components/money-field.d.ts +2 -2
- package/dist/components/number-field.d.ts +2 -2
- package/dist/components/number-input.d.ts +2 -2
- package/dist/components/numpad-sheet.d.ts +2 -2
- package/dist/components/phone-input.d.ts +2 -2
- package/dist/components/series-chart.d.ts +2 -2
- package/dist/components/settings-fields.d.ts +2 -2
- package/dist/components/share-card.d.ts +2 -2
- package/dist/components/swipeable-row.js +1 -1
- package/dist/components/swipeable-row.js.map +1 -1
- package/dist/components/table.d.ts +35 -1
- package/dist/components/table.js +4 -0
- package/dist/components/table.js.map +1 -1
- package/dist/components/text-link.d.ts +2 -2
- package/dist/components/time-input.d.ts +2 -2
- package/dist/components/tooltip.d.ts +103 -14
- package/dist/components/tooltip.js +194 -57
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/translation-review-editor.d.ts +9 -1
- package/dist/components/translation-review-editor.js +11 -1
- package/dist/components/translation-review-editor.js.map +1 -1
- package/dist/components/translation-review-labels.d.ts +10 -0
- package/dist/components/translation-review-labels.js +5 -1
- package/dist/components/translation-review-labels.js.map +1 -1
- package/dist/components/translation-review.d.ts +145 -8
- package/dist/components/translation-review.js +372 -91
- package/dist/components/translation-review.js.map +1 -1
- package/dist/components/ui.d.ts +2 -2
- package/dist/components/ui.js +55 -18
- package/dist/components/ui.js.map +1 -1
- package/dist/components/use-table-state.d.ts +1 -1
- package/dist/{data-table-labels-B7OdnM0S.d.ts → data-table-labels-Cdn1QS2k.d.ts} +21 -1
- package/dist/data-table.d.ts +1 -1
- package/dist/feedback/feedback-attachment.d.ts +2 -2
- package/dist/feedback/feedback-dialog.d.ts +2 -2
- package/dist/feedback/feedback-dialog.js +6 -1
- package/dist/feedback/feedback-dialog.js.map +1 -1
- package/dist/feedback/feedback-inbox.d.ts +2 -2
- package/dist/feedback/feedback-inbox.js +2 -0
- package/dist/feedback/feedback-inbox.js.map +1 -1
- package/dist/feedback/feedback-thread.d.ts +2 -2
- package/dist/{feedback-DOwPu-Il.d.ts → feedback-BXKH-ToU.d.ts} +32 -3
- package/dist/feedback.d.ts +2 -2
- package/dist/hooks/use-body-scroll-lock.js +16 -0
- package/dist/hooks/use-body-scroll-lock.js.map +1 -1
- package/dist/hooks/use-file-drop.d.ts +2 -2
- package/dist/hooks/use-search-param-state.d.ts +58 -3
- package/dist/hooks/use-search-param-state.js +107 -35
- package/dist/hooks/use-search-param-state.js.map +1 -1
- package/dist/i18n/defaults.d.ts +2 -2
- package/dist/i18n/german.d.ts +2 -2
- package/dist/i18n/german.js +8 -1
- package/dist/i18n/german.js.map +1 -1
- package/dist/i18n/kit-labels.d.ts +2 -2
- package/dist/i18n/languages.d.ts +2 -2
- package/dist/i18n/locales/de-CH.d.ts +2 -2
- package/dist/i18n/locales/en.d.ts +2 -2
- package/dist/i18n/locales/en.js +5 -1
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts +2 -2
- package/dist/i18n/locales/es.js +7 -1
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts +2 -2
- package/dist/i18n/locales/fr.js +6 -1
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hu.d.ts +2 -2
- package/dist/i18n/locales/hu.js +9 -1
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/it.d.ts +2 -2
- package/dist/i18n/locales/it.js +6 -1
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/zh.d.ts +2 -2
- package/dist/i18n/locales/zh.js +6 -1
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/review.d.ts +2 -2
- package/dist/i18n/review.js +11 -0
- package/dist/i18n/review.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/strip-fade.d.ts +84 -5
- package/dist/lib/strip-fade.js +109 -11
- package/dist/lib/strip-fade.js.map +1 -1
- package/dist/lib/translation-review.d.ts +45 -1
- package/dist/lib/translation-review.js +38 -1
- package/dist/lib/translation-review.js.map +1 -1
- package/dist/rhf/fields.d.ts +2 -2
- package/dist/rhf/form.d.ts +2 -2
- package/dist/rhf.d.ts +2 -2
- package/dist/shell/app-shell.d.ts +2 -2
- package/dist/shell/top-bar-brand.d.ts +2 -2
- package/dist/shell.d.ts +2 -2
- package/dist/wizard/stepper-nav.d.ts +2 -2
- package/dist/wizard.d.ts +2 -2
- package/package.json +1 -1
- package/src/components/column-mapper.tsx +120 -113
- package/src/components/data-table-pagination.tsx +10 -1
- package/src/components/data-table.tsx +34 -1
- package/src/components/swipeable-row.tsx +1 -1
- package/src/components/table.tsx +39 -0
- package/src/components/tooltip.tsx +487 -104
- package/src/components/translation-review-editor.tsx +21 -1
- package/src/components/translation-review-labels.ts +17 -0
- package/src/components/translation-review.tsx +657 -109
- package/src/components/ui.tsx +104 -4
- package/src/feedback/feedback-dialog.tsx +21 -0
- package/src/feedback/feedback-inbox.tsx +19 -2
- package/src/hooks/use-body-scroll-lock.ts +25 -0
- package/src/hooks/use-search-param-state.ts +283 -41
- package/src/i18n/german.ts +10 -0
- package/src/i18n/locales/en.ts +7 -0
- package/src/i18n/locales/es.ts +9 -0
- package/src/i18n/locales/fr.ts +9 -0
- package/src/i18n/locales/hu.ts +11 -0
- package/src/i18n/locales/it.ts +9 -0
- package/src/i18n/locales/zh.ts +8 -0
- package/src/i18n/review.ts +11 -0
- package/src/index.ts +12 -0
- package/src/lib/strip-fade.ts +220 -15
- package/src/lib/translation-review.ts +85 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/i18n/locales/zh.ts"],"sourcesContent":["import { formatFileSize } from \"../kit-labels\";\nimport type { UiKitLabels } from \"../kit-labels\";\n\n/**\n * The kit's words in Chinese (Simplified): every namespace of {@link UiKitLabels}, for\n * `<UiKitProvider labels={UI_KIT_LABELS_ZH}>`.\n *\n * Self-contained on purpose — nothing but the kit's own `formatFileSize` — so it works\n * as a starting point to copy and adjust. Counts and sizes are formatted with\n * `zh-CN` digits; {@link uiKitLabelsZh} takes another number locale\n * (e.g. `\"de-CH\"` for 1’234) without touching the words.\n */\nexport function uiKitLabelsZh(numberLocale = \"zh-CN\"): UiKitLabels {\n const num = new Intl.NumberFormat(numberLocale);\n const n = (value: number) => num.format(value);\n\n return {\n feedbackAttachment: {\n attachmentAdd: \"附加图片\",\n attachmentCapture: \"截取屏幕\",\n attachmentPaste: \"……或从剪贴板粘贴截图。\",\n attachmentRemove: \"移除附件\",\n attachmentList: \"附件\",\n attachmentScreenshot: \"截图\",\n attachmentRemoveFile: (name) => `移除 ${name}`,\n attachmentLimit: (max) => `最多 ${n(max)} 个附件,请先移除一个再添加。`,\n attachmentUploading: \"正在上传…\",\n attachmentUploadFailed: (name) => `无法上传“${name}”`,\n },\n feedbackDialog: {\n title: \"发送反馈\",\n category: \"类别\",\n subject: \"主题\",\n body: \"发生了什么?\",\n bodyOptional: \"发生了什么?(可选)\",\n attachment: \"截图\",\n submitHint: \"Ctrl/⌘ + Enter 发送\",\n cancel: \"取消\",\n save: \"发送\",\n },\n feedbackThread: {\n thread: \"评论\",\n empty: \"暂无评论\",\n loading: \"正在加载评论…\",\n you: \"我\",\n staff: \"工作人员\",\n attachments: \"附件\",\n },\n feedbackComposer: {\n field: \"撰写评论\",\n placeholder: \"撰写评论…\",\n send: \"发送\",\n sendHint: (modifier) => `${modifier} + Enter 发送`,\n sendHintEnter: \"Enter 发送,Shift + Enter 换行\",\n },\n accountSettings: {\n profile: {\n title: \"个人资料\",\n email: \"电子邮箱\",\n role: \"角色\",\n memberSince: \"注册时间\",\n displayName: \"显示名称\",\n save: \"保存\",\n },\n password: {\n title: \"修改密码\",\n current: \"当前密码\",\n next: \"新密码\",\n confirm: \"确认新密码\",\n submit: \"修改密码\",\n tooShort: \"新密码太短。\",\n mismatch: \"两次输入的密码不一致。\",\n },\n twoFactor: {\n status: \"双重验证\",\n enabledText: \"已开启\",\n disabledText: \"未开启\",\n enable: \"设置双重验证\",\n scanHint: \"请用身份验证器应用扫描此二维码,然后输入应用显示的验证码。\",\n codeLabel: \"验证码\",\n verify: \"验证并开启\",\n disableSection: \"关闭双重验证\",\n password: \"当前密码\",\n disable: \"关闭\",\n qrAlt: \"身份验证器应用的二维码\",\n secretHint: \"无法扫描?请改为在应用中输入此密钥:\",\n copySecret: \"复制密钥\",\n },\n passkeys: {\n title: \"通行密钥\",\n description: \"使用指纹、面容或设备 PIN 登录,无需密码。\",\n descriptionAlongside: \"使用指纹、面容或设备 PIN 登录,密码仍可照常使用。\",\n empty: \"暂无通行密钥\",\n loading: \"正在加载通行密钥…\",\n list: \"已注册的通行密钥\",\n nameLabel: \"名称(可选)\",\n namePlaceholder: \"例如:笔记本电脑、手机\",\n add: \"添加通行密钥\",\n adding: \"正在等待设备…\",\n rename: \"重命名\",\n renameItem: (name) => `重命名 ${name}`,\n renameField: (name) => `${name} 的新名称`,\n save: \"保存\",\n cancel: \"取消\",\n delete: \"删除\",\n deleteItem: (name) => `删除 ${name}`,\n deleteConfirm: (name) => `删除“${name}”?删除后将无法再用它登录。`,\n confirmDelete: \"删除通行密钥\",\n created: (date) => `添加于 ${date}`,\n lastUsed: (date) => `上次使用:${date}`,\n neverUsed: \"从未使用\",\n },\n },\n measuredGrid: {\n view: \"表格视图\",\n cellsView: \"单元格\",\n textView: \"文本\",\n addRow: \"添加行\",\n removeRow: (row) => `删除第 ${row} 行`,\n clear: \"清空表格\",\n pasteHint: \"可将电子表格中的一块数据粘贴到任意单元格\",\n cell: (column, row) => `${column},第 ${row} 行`,\n rowNumber: \"行\",\n rowActions: \"行操作\",\n keyboardHint:\n \"方向键在单元格之间移动。直接输入替换单元格内容,F2 编辑,Esc 撤销编辑。回车向下移动,并在末尾添加一行。\",\n lineError: (line) => `无法读取第 ${line} 行`,\n points: (count) => `${count} 个点`,\n problems: (count) => `${count} 个单元格不是数字`,\n },\n pageContents: { title: \"本页目录\" },\n common: {\n dismiss: \"关闭\",\n close: \"关闭\",\n clear: \"清除\",\n search: \"搜索\",\n done: \"完成\",\n cancel: \"取消\",\n save: \"保存\",\n back: \"上一步\",\n next: \"下一步\",\n remove: \"移除\",\n loading: \"加载中…\",\n noResults: \"无结果\",\n // Full-width colon, no space after it.\n fieldValue: (field, value) => `${field}:${value}`,\n opensInNewTab: \"在新标签页中打开\",\n },\n dataTable: {\n columns: \"列\",\n selectAllRows: \"全选所有行\",\n sortHint: \"点击排序 · 按住 Shift 点击可添加排序\",\n filter: \"筛选\",\n close: \"关闭\",\n selectRow: \"选择行\",\n autoSize: \"自动调整列宽\",\n loading: \"加载中…\",\n filters: \"筛选条件\",\n clearAll: \"全部清除\",\n done: \"完成\",\n pageSize: \"每页行数\",\n pageSizeAll: \"全部\",\n prevPage: \"上一页\",\n nextPage: \"下一页\",\n clearFilter: \"清除筛选\",\n filterPlaceholder: \"筛选…\",\n selectFilter: \"选择\",\n selectAll: \"全部\",\n selectNone: \"无\",\n dateFrom: \"从\",\n dateTo: \"至\",\n numberMin: \"最小值\",\n numberMax: \"最大值\",\n numberAbs: \"绝对值\",\n presets: {\n today: \"今天\",\n yesterday: \"昨天\",\n this_week: \"本周\",\n last_week: \"上周\",\n last_7_days: \"最近 7 天\",\n last_30_days: \"最近 30 天\",\n this_month: \"本月\",\n last_month: \"上月\",\n last_3_months: \"最近 3 个月\",\n ytd: \"今年至今\",\n last_year: \"去年\",\n },\n table: \"数据表格\",\n filterResults: (shown, total) => `显示 ${n(shown)} 行,共 ${n(total)} 行`,\n sortedAscending: (column) => `已按“${column}”升序排序`,\n sortedDescending: (column) => `已按“${column}”降序排序`,\n sortCleared: (column) => `已取消“${column}”的排序`,\n pageChanged: (page, totalPages) => `第 ${n(page)} 页,共 ${n(totalPages)} 页`,\n pageRange: (from, to, total) => `${n(from)}–${n(to)} / ${n(total)}`,\n rowCount: (total) => n(total),\n columnsCount: (visible, total) => `列(${n(visible)}/${n(total)})`,\n empty: \"暂无条目\",\n actions: \"操作\",\n edit: \"编辑\",\n delete: \"删除\",\n booleanTrue: \"是\",\n booleanFalse: \"否\",\n booleanUnset: \"未设置\",\n sortBy: \"排序依据\",\n sortDefault: \"默认顺序\",\n sortAscending: \"升序\",\n sortDescending: \"降序\",\n },\n miniCalendar: {\n previousMonth: \"上个月\",\n nextMonth: \"下个月\",\n // Already formatted in the provider's locale (\"2026年9月14日星期一\").\n day: (date) => date,\n chooseStart: \"请选择开始日期\",\n chooseEnd: \"请选择结束日期\",\n startSelected: (date) => `已选择 ${date} 为开始日期。请选择结束日期。`,\n rangeSelected: (from, to) => `已选择 ${from} 至 ${to}。如需重新选择,请先选择开始日期。`,\n },\n monthPicker: {\n previousYear: \"上一年\",\n nextYear: \"下一年\",\n panel: \"选择月份\",\n month: (monthYear) => monthYear,\n previousMonth: \"上个月\",\n nextMonth: \"下个月\",\n today: \"今天\",\n yearPanel: \"选择年份\",\n earlierYears: \"更早的年份\",\n laterYears: \"更晚的年份\",\n thisYear: \"今年\",\n },\n calendarHeatmap: {\n grid: \"每日数值\",\n day: (date, value) => `${date}:${value}`,\n less: \"较少\",\n more: \"较多\",\n truncated: (count) =>\n `仅显示最近的日期;另有 ${n(count)} 天未显示。`,\n },\n datePicker: {\n apply: \"应用\",\n cancel: \"取消\",\n presets: \"快捷范围\",\n panel: \"选择日期\",\n rangePanel: \"选择日期范围\",\n clear: \"清除\",\n previousDay: \"前一天\",\n nextDay: \"后一天\",\n today: \"今天\",\n },\n popover: {\n panel: \"弹出框\",\n },\n combobox: {\n search: \"搜索\",\n noResults: \"无结果\",\n clear: \"清除\",\n loading: \"加载中…\",\n create: (query) => `创建“${query}”`,\n selectedCount: (count) => `已选 ${n(count)} 项`,\n loadError: \"无法加载结果\",\n resultCount: (count) => `${n(count)} 个结果`,\n minChars: (count) => `请至少输入 ${n(count)} 个字符`,\n },\n multiSelect: {\n search: \"搜索\",\n selectAll: \"全选\",\n clear: \"清除\",\n all: \"全部\",\n // The bare count, as in English: the trigger has always shown just the number.\n selectedCount: (count) => n(count),\n },\n calculator: {\n open: \"打开计算器\",\n panel: \"计算器\",\n calculation: \"算式\",\n backspace: \"退格\",\n clear: \"清除\",\n equals: \"等于\",\n done: \"完成\",\n plus: \"加\",\n minus: \"减\",\n times: \"乘\",\n divide: \"除以\",\n decimal: \"小数点\",\n },\n currency: {\n currency: \"货币\",\n search: \"搜索货币\",\n },\n chipInput: {\n added: (value) => `已添加“${value}”`,\n removed: (value) => `已移除“${value}”`,\n remove: \"移除\",\n atLimit: (max) => `已达上限(${n(max)} 项)`,\n duplicate: (value) => `“${value}”已在列表中`,\n },\n swatchPicker: {\n none: \"无颜色\",\n mixed: \"混合:所选项目的颜色各不相同\",\n },\n iconPicker: {\n none: \"无图标\",\n mixed: \"混合:所选项目的图标各不相同\",\n search: \"搜索图标\",\n noResults: \"没有匹配的图标\",\n resultCount: (count) => `${n(count)} 个图标`,\n },\n fieldSync: {\n synced: \"已保存\",\n edited: \"有未保存的更改\",\n pending: \"正在保存…\",\n error: \"保存失败\",\n retry: \"重试\",\n },\n passwordReveal: {\n show: \"显示密码\",\n hide: \"隐藏密码\",\n },\n dangerConfirm: {\n arm: \"删除…\",\n confirm: \"删除\",\n cancel: \"取消\",\n prompt: \"此操作无法撤销。\",\n password: \"密码\",\n phrase: (phrase) => `输入“${phrase}”以确认`,\n acknowledge: \"我已了解此操作的作用,并希望继续。\",\n needsPhrase: (phrase) => `输入“${phrase}”以确认`,\n needsAcknowledge: \"勾选复选框以确认\",\n needsPassword: \"输入密码以确认\",\n },\n tabs: {\n add: \"添加标签页\",\n // Quoted, so the spacing rule holds whether the tab's name is Han or Latin.\n remove: (tab) => `移除“${tab}”`,\n },\n appShell: {\n collapse: \"收起侧边栏\",\n expand: \"展开侧边栏\",\n toggleGroup: (groupLabel) => `${groupLabel}:页面`,\n },\n topBar: {\n theme: \"切换主题\",\n palette: \"外观预设\",\n language: \"语言\",\n switchRole: \"切换角色\",\n role: (value) => `角色:${value}`,\n },\n pickerSheet: {\n close: \"关闭\",\n },\n dialogFrame: {\n close: \"关闭\",\n },\n bulkActionBar: {\n selected: (count) => `已选择 ${n(count)} 项`,\n clear: \"清除选择\",\n cleared: \"已清除选择\",\n },\n swipeableRow: {\n actions: \"行操作\",\n },\n file: {\n // The kit's own `Intl` unit formatting, pinned to this locale.\n size: (bytes) => formatFileSize(bytes, numberLocale),\n },\n filePicker: {\n dropzone: \"文件上传\",\n browse: \"浏览\",\n empty: \"将文件拖放到此处\",\n emptyMultiple: \"将文件拖放到此处\",\n hint: (accept) => (accept ? `支持:${accept}` : \"任意文件类型\"),\n busy: \"正在上传…\",\n rejectedPick: (count) => (count === 1 ? \"未添加该文件\" : `${count} 个文件均未添加`),\n rejectedType: (name) => `“${name}”的文件类型不受支持`,\n rejectedTypeOnly: (accept) => `仅限 ${accept} 文件`,\n rejectedSize: (name, maxSize) => `“${name}”超过 ${maxSize}`,\n rejectedCount: (name, maxFiles) => `未添加“${name}”:最多 ${n(maxFiles)} 个文件`,\n rejectedInvalid: (name) => `“${name}”无法在此使用`,\n rejectedMany: (count) => `${n(count)} 个文件未添加`,\n selected: (count, firstName) =>\n count === 1 ? `已选择“${firstName}”` : `已选择 ${n(count)} 个文件`,\n remove: (name) => `移除“${name}”`,\n clearAll: \"移除所有文件\",\n removed: (name) => `已移除“${name}”`,\n cleared: \"已移除所有文件\",\n },\n wizard: {\n done: \"完成\",\n cancel: \"取消\",\n back: \"上一步\",\n next: \"下一步\",\n skip: \"跳过\",\n finish: \"完成\",\n submitting: \"正在创建…\",\n steps: \"步骤\",\n step: (current, total) => `第 ${n(current)} 步,共 ${n(total)} 步`,\n cancelTitle: \"放弃此表单?\",\n confirmCancel: \"已填写的内容将会丢失。\",\n cancelConfirmLabel: \"放弃\",\n cancelDismissLabel: \"继续编辑\",\n reviewTitle: \"确认信息\",\n edit: \"编辑\",\n missingRequired: \"请填写所有必填字段。\",\n genericError: \"发生错误\",\n },\n tour: {\n next: \"下一步\",\n back: \"上一步\",\n skip: \"跳过\",\n done: \"完成\",\n awaitClickHint: \"点击高亮的元素以继续\",\n step: (current, total) => `${n(current)} / ${n(total)}`,\n },\n commandPalette: {\n clear: \"清除搜索\",\n submit: \"搜索\",\n close: \"关闭\",\n placeholder: \"搜索…\",\n empty: \"无结果\",\n loading: \"搜索中…\",\n dialog: \"搜索\",\n error: \"搜索失败,请重试。\",\n },\n globalSearch: {\n trigger: \"搜索\",\n placeholder: \"搜索或跳转到…\",\n shortcut: (keys) => `搜索(${keys})`,\n suggestions: \"试试\",\n results: \"结果\",\n },\n sparkline: {\n rising: (first, last) => `从 ${first} 上升到 ${last}`,\n falling: (first, last) => `从 ${first} 下降到 ${last}`,\n flat: (value) => `保持在 ${value} 不变`,\n single: (value) => `仅一个值:${value}`,\n noData: \"无数据\",\n named: (name, summary) => `${name}:${summary}`,\n },\n statTile: {\n increase: (amount) => `上升 ${amount}`,\n decrease: (amount) => `下降 ${amount}`,\n unchanged: \"无变化\",\n better: (change) => `${change}(向好)`,\n worse: (change) => `${change}(变差)`,\n noValue: \"无数据\",\n loading: \"加载中…\",\n },\n signaturePad: {\n label: \"签名\",\n instructions: \"请使用鼠标、手指或触控笔在框内签名。\",\n typedFallbackHint: \"如果无法手写,可以改为输入姓名。\",\n empty: \"尚未签名\",\n signed: \"已签名\",\n undo: \"撤销上一笔\",\n clear: \"清除\",\n save: \"保存签名\",\n useTyped: \"改为输入姓名\",\n useDrawn: \"改为手写\",\n typedName: \"姓名\",\n cleared: \"签名已清除\",\n undone: \"已撤销上一笔\",\n viewEmpty: \"未签名\",\n viewDrawn: \"手写签名\",\n // Quoted, so the spacing rule holds whether the name is Han or Latin.\n viewTyped: (name) => `以输入的姓名“${name}”签名`,\n },\n passwordStrength: {\n tooShort: \"太短\",\n weak: \"弱\",\n fair: \"一般\",\n good: \"良好\",\n strong: \"强\",\n announcement: (level) => `密码强度:${level}`,\n // Unformatted, as in the English default.\n ruleLength: (minLength) => `至少 ${minLength} 个字符`,\n ruleCase: \"包含大写和小写字母\",\n ruleDigit: \"包含数字\",\n ruleSymbol: \"包含符号\",\n optional: (rule) => `${rule}(可选)`,\n met: \"已满足:\",\n notMet: \"未满足:\",\n tooLong: (maxBytes) => `最多 ${maxBytes} 个字符(带重音的字母和表情符号按多个字符计算)。`,\n },\n seriesChart: {\n resetZoom: \"重置缩放\",\n zoomHint:\n \"拖动以缩放:近似正方形的选区同时缩放两条坐标轴,细长的选区只缩放其所沿的那条轴。双击可重置。\",\n empty: \"无数据\",\n legend: \"数据系列\",\n points: \"图表数值\",\n },\n pieChart: {\n slices: \"图表扇区\",\n slice: (label, value, percent) => `${label}:${value}(${percent})`,\n total: \"合计\",\n empty: \"无数据\",\n legend: \"类别\",\n },\n confirmDialog: {\n confirm: \"确认\",\n cancel: \"取消\",\n typed: (text) => `输入“${text}”以确认`,\n },\n floatingPanel: {\n close: \"关闭\",\n badge: (count) => `${n(count)} 条新内容`,\n },\n copyButton: {\n copy: \"复制\",\n copied: \"已复制\",\n failed: \"复制失败\",\n copiedAnnouncement: \"已复制到剪贴板\",\n failedAnnouncement: \"无法复制到剪贴板\",\n },\n list: {\n unread: \"未读\",\n opensInNewTab: \"在新标签页中打开\",\n },\n breadcrumbs: {\n label: \"面包屑导航\",\n showAll: \"显示完整路径\",\n },\n toast: {\n close: \"关闭通知\",\n notifications: \"通知\",\n undo: \"撤销\",\n redo: \"重做\",\n },\n form: {\n save: \"保存\",\n cancel: \"取消\",\n submitShortcut: (apple) => (apple ? \"⌘ Enter\" : \"Ctrl+Enter\"),\n },\n descriptionList: {\n empty: \"—\",\n },\n lineItems: {\n add: \"添加行\",\n remove: (row) => `删除第 ${row} 行`,\n confirmRemove: (row) => `删除第 ${row} 行?再次按下以确认`,\n row: (row) => `第 ${row} 行`,\n cell: (column, row) => `${column},第 ${row} 行`,\n totals: \"合计\",\n },\n progressBar: {\n unlimited: \"无限制\",\n overLimit: (amount) => `超出限额 ${amount}`,\n },\n signedAmount: {\n positive: (amount) => `正 ${amount}`,\n negative: (amount) => `负 ${amount}`,\n },\n errorBoundary: {\n title: \"出错了\",\n message: \"无法显示页面的这一部分。请重试或重新加载页面。\",\n retry: \"重试\",\n details: \"错误详情\",\n reload: \"重新加载\",\n updateTitle: \"有新版本可用\",\n updateMessage: \"自此页面加载以来,应用的部分内容已更新。请重新加载以获取新版本。\",\n offlineTitle: \"当前处于离线状态\",\n offlineMessage: \"没有网络连接,无法加载此页面。请恢复连接后重新加载页面。\",\n copyReport: \"复制错误报告\",\n reported: \"此错误已自动报告。\",\n reportedAs: (reference) => `报告编号:${reference}`,\n },\n authedImage: {\n loading: \"正在加载图片…\",\n loadError: \"无法加载图片\",\n failedImage: (alt) => `${alt}:无法加载图片`,\n },\n imageGrid: {\n list: \"图片\",\n item: (index, count) => `第 ${n(index)} 张,共 ${n(count)} 张`,\n actions: (name) => `${name}的操作`,\n },\n lightbox: {\n dialog: \"图片查看器\",\n close: \"关闭\",\n previous: \"上一张\",\n next: \"下一张\",\n counter: (index, count) => `${n(index)} / ${n(count)}`,\n position: (index, count) => `第 ${n(index)} 张,共 ${n(count)} 张`,\n download: \"下载\",\n zoom: \"缩放\",\n noPreview: \"此文件无法预览\",\n openInNewTab: \"在新标签页中打开\",\n },\n writeLock: {\n reason: \"仅可查看,无法修改。\",\n },\n accountState: {\n active: \"已启用\",\n inactive: \"已停用\",\n invited: \"已邀请\",\n registered: \"已注册\",\n unverified: \"未验证\",\n passwordChange: \"需修改密码\",\n },\n shareCard: {\n dialogTitle: \"共享\",\n close: \"关闭\",\n email: \"电子邮箱地址\",\n emailOptional: \"电子邮箱地址(可选)\",\n emailPlaceholder: \"name@example.com\",\n invalidEmail: \"请输入完整的电子邮箱地址。\",\n role: \"角色\",\n roleOf: (name) => `${name} 的角色`,\n add: \"共享\",\n whoHasAccess: \"有权访问的人\",\n nobodyYet: \"目前还没有其他人有权访问。\",\n pending: \"待接受\",\n openInvite: \"公开邀请链接\",\n copyLink: \"复制链接\",\n team: \"团队\",\n teamHint: (name) => `${name} 的所有成员都将获得访问权限。`,\n remove: \"移除访问权限\",\n removeConfirm: (name) => `移除 ${name} 的访问权限?`,\n revokePending: \"撤回邀请\",\n revokePendingConfirm: (name) => `撤回对 ${name} 的邀请?`,\n failed: \"操作未成功,请重试。\",\n loading: \"加载中…\",\n },\n reauthDialog: {\n title: \"验证身份\",\n description: \"请输入当前密码以继续。\",\n password: \"当前密码\",\n submit: \"继续\",\n cancel: \"取消\",\n },\n serverWake: {\n slow: \"仍在加载,比平时耗时更长。\",\n // A Latin product name gets a space either side, as everywhere in this catalogue.\n waking: (appName) =>\n `无人使用${appName ? ` ${appName} ` : \"本应用\"}时,服务器会进入休眠,因此暂停后的第一个请求需要重新启动它。这可能需要一点时间——不会丢失任何内容,页面会自动加载完成。`,\n },\n legal: {\n navLabel: \"法律信息\",\n },\n characterCount: {\n count: (used, max) => `已输入 ${n(used)}/${n(max)} 个字符`,\n remaining: (left) => `还可输入 ${n(left)} 个字符`,\n limitReached: \"已达到字符数上限\",\n },\n countrySelect: {\n country: \"国家/地区\",\n search: \"搜索国家/地区\",\n others: \"其他国家/地区\",\n },\n inlineEdit: {\n edit: (label) => `编辑“${label}”`,\n failed: \"无法保存更改。\",\n empty: \"空\",\n },\n ibanInput: {\n format: \"IBAN 以两个字母的国家代码和两位校验码开头。\",\n country: (code) => `“${code}”不是 IBAN 的国家代码。`,\n length: (actual, expected) =>\n `该国家的 IBAN 应为 ${n(expected)} 个字符,当前为 ${n(actual)} 个。`,\n checksum: \"校验码不匹配,可能有字符输入错误。\",\n qrRequired: \"这是普通 IBAN。QR 账单需要该账户的 QR-IBAN。\",\n qrNotAllowed: \"这是 QR-IBAN,只能接收 QR 账单付款。请输入该账户的普通 IBAN。\",\n },\n phoneInput: {\n countryCode: \"国家/地区代码\",\n other: \"其他\",\n },\n signChip: {\n outflow: \"支出\",\n inflow: \"收入\",\n direction: (current, next) => `方向:${current},切换为${next}`,\n },\n columnMapper: {\n paste: \"粘贴表格\",\n pasteHint: \"从电子表格中复制行并粘贴到此处,或拖放 CSV 或文本文件。\",\n chooseFile: \"选择文件\",\n readError: (name) => `无法读取“${name}”`,\n headerRow: \"第一行为列名\",\n summary: (columns, rows) => `${n(columns)} 列,${n(rows)} 行`,\n separatorSemicolon: \"以分号分隔\",\n separatorComma: \"以逗号分隔\",\n separatorTab: \"以制表符分隔\",\n separatorSpace: \"以空格分隔\",\n // The examples stay as written: they show the convention, not the reader's locale.\n decimalComma: \"小数点为逗号(1,5)\",\n decimalPoint: \"小数点为句点(1.5)\",\n unreadCount: (count) => `${n(count)} 行无法读取`,\n unreadLine: (line) => `无法读取第 ${line} 行`,\n unreadMore: (count) => `……另有 ${n(count)} 行`,\n noRows: \"此文本中没有任何一行能读作表格的一行。\",\n table: \"列及其用途\",\n columnN: (column) => `第 ${column} 列`,\n roleOf: (column) => `“${column}”列的内容是什么?`,\n ignore: \"忽略\",\n requiredRole: (role) => `${role}(必填)`,\n previewOf: (shown, total) => `显示前 ${n(shown)} 行,共 ${n(total)} 行`,\n // `roles` arrives joined with \"或\" (\"借方或贷方\").\n oneOf: (roles) => `${roles}(任选其一)`,\n missing: (roles) => `仍需指定:${roles}。`,\n },\n translationReview: {\n statusMissing: \"缺失\",\n statusUnreviewed: \"未审校\",\n statusChanged: \"审校后已更改\",\n statusNeedsChange: \"需要修改\",\n statusApproved: \"已通过\",\n statusFilter: \"状态\",\n all: \"全部\",\n filterCount: (label, count) => `${label} · ${n(count)}`,\n source: \"文本\",\n allSources: \"全部文本\",\n namespace: \"区域\",\n allNamespaces: \"全部区域\",\n search: \"搜索键名和文本\",\n placeholdersOnly: (count) => `仅显示占位符问题(${n(count)})`,\n placeholderChip: \"占位符\",\n key: \"键名\",\n statusColumn: \"状态\",\n empty: \"没有符合这些筛选条件的文本。\",\n missingText: \"此语言中缺失\",\n progress: (approved, total) => `已通过 ${n(approved)} / ${n(total)}`,\n localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,\n locales: \"语言\",\n approve: \"通过\",\n flag: \"需要修改\",\n suggest: \"建议译文\",\n reset: \"标记为未审校\",\n cancel: \"取消\",\n approveSelected: \"通过所选项\",\n resetSelected: \"将所选项标记为未审校\",\n selectShown: \"选择所有显示项\",\n changedSince: \"此文本在审校后已更改,请重新阅读。\",\n reviewedWording: \"审校时的措辞\",\n reviewedReference: \"审校时的参考文本\",\n placeholderMismatch: (reference, text) =>\n `占位符与参考文本不一致——参考文本:${reference};此文本:${text}。应用会在这些位置填入内容,因此必须保持原样。`,\n // A Latin name gets a space either side, as everywhere in this catalogue.\n lastApproved: (name, date) => `${name} 于 ${date} 通过`,\n lastFlagged: (name, date) => `${name} 于 ${date} 标记为需要修改`,\n erasedReviewer: \"已删除的账户\",\n suggestion: \"更好的措辞\",\n translation: \"译文\",\n note: \"备注(可选)\",\n notePlaceholder: \"哪里有问题,或需要注意什么\",\n readOnly: \"此语言仅可查看,无法审校。\",\n scope: (areas) => `审校范围仅限于:${areas}。`,\n exportCorrections: (count) => `导出更正(${n(count)})`,\n failed: \"操作未成功,请重试。\",\n },\n };\n}\n\nexport const UI_KIT_LABELS_ZH: UiKitLabels = uiKitLabelsZh();\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/i18n/locales/zh.ts"],"sourcesContent":["import { formatFileSize } from \"../kit-labels\";\nimport type { UiKitLabels } from \"../kit-labels\";\n\n/**\n * The kit's words in Chinese (Simplified): every namespace of {@link UiKitLabels}, for\n * `<UiKitProvider labels={UI_KIT_LABELS_ZH}>`.\n *\n * Self-contained on purpose — nothing but the kit's own `formatFileSize` — so it works\n * as a starting point to copy and adjust. Counts and sizes are formatted with\n * `zh-CN` digits; {@link uiKitLabelsZh} takes another number locale\n * (e.g. `\"de-CH\"` for 1’234) without touching the words.\n */\nexport function uiKitLabelsZh(numberLocale = \"zh-CN\"): UiKitLabels {\n const num = new Intl.NumberFormat(numberLocale);\n const n = (value: number) => num.format(value);\n\n return {\n feedbackAttachment: {\n attachmentAdd: \"附加图片\",\n attachmentCapture: \"截取屏幕\",\n attachmentPaste: \"……或从剪贴板粘贴截图。\",\n attachmentRemove: \"移除附件\",\n attachmentList: \"附件\",\n attachmentScreenshot: \"截图\",\n attachmentRemoveFile: (name) => `移除 ${name}`,\n attachmentLimit: (max) => `最多 ${n(max)} 个附件,请先移除一个再添加。`,\n attachmentUploading: \"正在上传…\",\n attachmentUploadFailed: (name) => `无法上传“${name}”`,\n },\n feedbackDialog: {\n title: \"发送反馈\",\n category: \"类别\",\n subject: \"主题\",\n body: \"发生了什么?\",\n bodyOptional: \"发生了什么?(可选)\",\n attachment: \"截图\",\n submitHint: \"Ctrl/⌘ + Enter 发送\",\n cancel: \"取消\",\n save: \"发送\",\n },\n feedbackThread: {\n thread: \"评论\",\n empty: \"暂无评论\",\n loading: \"正在加载评论…\",\n you: \"我\",\n staff: \"工作人员\",\n attachments: \"附件\",\n },\n feedbackComposer: {\n field: \"撰写评论\",\n placeholder: \"撰写评论…\",\n send: \"发送\",\n sendHint: (modifier) => `${modifier} + Enter 发送`,\n sendHintEnter: \"Enter 发送,Shift + Enter 换行\",\n },\n accountSettings: {\n profile: {\n title: \"个人资料\",\n email: \"电子邮箱\",\n role: \"角色\",\n memberSince: \"注册时间\",\n displayName: \"显示名称\",\n save: \"保存\",\n },\n password: {\n title: \"修改密码\",\n current: \"当前密码\",\n next: \"新密码\",\n confirm: \"确认新密码\",\n submit: \"修改密码\",\n tooShort: \"新密码太短。\",\n mismatch: \"两次输入的密码不一致。\",\n },\n twoFactor: {\n status: \"双重验证\",\n enabledText: \"已开启\",\n disabledText: \"未开启\",\n enable: \"设置双重验证\",\n scanHint: \"请用身份验证器应用扫描此二维码,然后输入应用显示的验证码。\",\n codeLabel: \"验证码\",\n verify: \"验证并开启\",\n disableSection: \"关闭双重验证\",\n password: \"当前密码\",\n disable: \"关闭\",\n qrAlt: \"身份验证器应用的二维码\",\n secretHint: \"无法扫描?请改为在应用中输入此密钥:\",\n copySecret: \"复制密钥\",\n },\n passkeys: {\n title: \"通行密钥\",\n description: \"使用指纹、面容或设备 PIN 登录,无需密码。\",\n descriptionAlongside: \"使用指纹、面容或设备 PIN 登录,密码仍可照常使用。\",\n empty: \"暂无通行密钥\",\n loading: \"正在加载通行密钥…\",\n list: \"已注册的通行密钥\",\n nameLabel: \"名称(可选)\",\n namePlaceholder: \"例如:笔记本电脑、手机\",\n add: \"添加通行密钥\",\n adding: \"正在等待设备…\",\n rename: \"重命名\",\n renameItem: (name) => `重命名 ${name}`,\n renameField: (name) => `${name} 的新名称`,\n save: \"保存\",\n cancel: \"取消\",\n delete: \"删除\",\n deleteItem: (name) => `删除 ${name}`,\n deleteConfirm: (name) => `删除“${name}”?删除后将无法再用它登录。`,\n confirmDelete: \"删除通行密钥\",\n created: (date) => `添加于 ${date}`,\n lastUsed: (date) => `上次使用:${date}`,\n neverUsed: \"从未使用\",\n },\n },\n measuredGrid: {\n view: \"表格视图\",\n cellsView: \"单元格\",\n textView: \"文本\",\n addRow: \"添加行\",\n removeRow: (row) => `删除第 ${row} 行`,\n clear: \"清空表格\",\n pasteHint: \"可将电子表格中的一块数据粘贴到任意单元格\",\n cell: (column, row) => `${column},第 ${row} 行`,\n rowNumber: \"行\",\n rowActions: \"行操作\",\n keyboardHint:\n \"方向键在单元格之间移动。直接输入替换单元格内容,F2 编辑,Esc 撤销编辑。回车向下移动,并在末尾添加一行。\",\n lineError: (line) => `无法读取第 ${line} 行`,\n points: (count) => `${count} 个点`,\n problems: (count) => `${count} 个单元格不是数字`,\n },\n pageContents: { title: \"本页目录\" },\n common: {\n dismiss: \"关闭\",\n close: \"关闭\",\n clear: \"清除\",\n search: \"搜索\",\n done: \"完成\",\n cancel: \"取消\",\n save: \"保存\",\n back: \"上一步\",\n next: \"下一步\",\n remove: \"移除\",\n loading: \"加载中…\",\n noResults: \"无结果\",\n // Full-width colon, no space after it.\n fieldValue: (field, value) => `${field}:${value}`,\n opensInNewTab: \"在新标签页中打开\",\n },\n dataTable: {\n columns: \"列\",\n selectAllRows: \"全选所有行\",\n sortHint: \"点击排序 · 按住 Shift 点击可添加排序\",\n filter: \"筛选\",\n close: \"关闭\",\n selectRow: \"选择行\",\n autoSize: \"自动调整列宽\",\n loading: \"加载中…\",\n filters: \"筛选条件\",\n clearAll: \"全部清除\",\n done: \"完成\",\n pageSize: \"每页行数\",\n pageSizeAll: \"全部\",\n prevPage: \"上一页\",\n nextPage: \"下一页\",\n clearFilter: \"清除筛选\",\n filterPlaceholder: \"筛选…\",\n selectFilter: \"选择\",\n selectAll: \"全部\",\n selectNone: \"无\",\n dateFrom: \"从\",\n dateTo: \"至\",\n numberMin: \"最小值\",\n numberMax: \"最大值\",\n numberAbs: \"绝对值\",\n presets: {\n today: \"今天\",\n yesterday: \"昨天\",\n this_week: \"本周\",\n last_week: \"上周\",\n last_7_days: \"最近 7 天\",\n last_30_days: \"最近 30 天\",\n this_month: \"本月\",\n last_month: \"上月\",\n last_3_months: \"最近 3 个月\",\n ytd: \"今年至今\",\n last_year: \"去年\",\n },\n table: \"数据表格\",\n filterResults: (shown, total) => `显示 ${n(shown)} 行,共 ${n(total)} 行`,\n sortedAscending: (column) => `已按“${column}”升序排序`,\n sortedDescending: (column) => `已按“${column}”降序排序`,\n sortCleared: (column) => `已取消“${column}”的排序`,\n pageChanged: (page, totalPages) => `第 ${n(page)} 页,共 ${n(totalPages)} 页`,\n pageRange: (from, to, total) => `${n(from)}–${n(to)} / ${n(total)}`,\n rowCount: (total) => n(total),\n columnsCount: (visible, total) => `列(${n(visible)}/${n(total)})`,\n empty: \"暂无条目\",\n actions: \"操作\",\n edit: \"编辑\",\n delete: \"删除\",\n booleanTrue: \"是\",\n booleanFalse: \"否\",\n booleanUnset: \"未设置\",\n sortBy: \"排序依据\",\n sortDefault: \"默认顺序\",\n sortAscending: \"升序\",\n sortDescending: \"降序\",\n },\n miniCalendar: {\n previousMonth: \"上个月\",\n nextMonth: \"下个月\",\n // Already formatted in the provider's locale (\"2026年9月14日星期一\").\n day: (date) => date,\n chooseStart: \"请选择开始日期\",\n chooseEnd: \"请选择结束日期\",\n startSelected: (date) => `已选择 ${date} 为开始日期。请选择结束日期。`,\n rangeSelected: (from, to) => `已选择 ${from} 至 ${to}。如需重新选择,请先选择开始日期。`,\n },\n monthPicker: {\n previousYear: \"上一年\",\n nextYear: \"下一年\",\n panel: \"选择月份\",\n month: (monthYear) => monthYear,\n previousMonth: \"上个月\",\n nextMonth: \"下个月\",\n today: \"今天\",\n yearPanel: \"选择年份\",\n earlierYears: \"更早的年份\",\n laterYears: \"更晚的年份\",\n thisYear: \"今年\",\n },\n calendarHeatmap: {\n grid: \"每日数值\",\n day: (date, value) => `${date}:${value}`,\n less: \"较少\",\n more: \"较多\",\n truncated: (count) =>\n `仅显示最近的日期;另有 ${n(count)} 天未显示。`,\n },\n datePicker: {\n apply: \"应用\",\n cancel: \"取消\",\n presets: \"快捷范围\",\n panel: \"选择日期\",\n rangePanel: \"选择日期范围\",\n clear: \"清除\",\n previousDay: \"前一天\",\n nextDay: \"后一天\",\n today: \"今天\",\n },\n popover: {\n panel: \"弹出框\",\n },\n combobox: {\n search: \"搜索\",\n noResults: \"无结果\",\n clear: \"清除\",\n loading: \"加载中…\",\n create: (query) => `创建“${query}”`,\n selectedCount: (count) => `已选 ${n(count)} 项`,\n loadError: \"无法加载结果\",\n resultCount: (count) => `${n(count)} 个结果`,\n minChars: (count) => `请至少输入 ${n(count)} 个字符`,\n },\n multiSelect: {\n search: \"搜索\",\n selectAll: \"全选\",\n clear: \"清除\",\n all: \"全部\",\n // The bare count, as in English: the trigger has always shown just the number.\n selectedCount: (count) => n(count),\n },\n calculator: {\n open: \"打开计算器\",\n panel: \"计算器\",\n calculation: \"算式\",\n backspace: \"退格\",\n clear: \"清除\",\n equals: \"等于\",\n done: \"完成\",\n plus: \"加\",\n minus: \"减\",\n times: \"乘\",\n divide: \"除以\",\n decimal: \"小数点\",\n },\n currency: {\n currency: \"货币\",\n search: \"搜索货币\",\n },\n chipInput: {\n added: (value) => `已添加“${value}”`,\n removed: (value) => `已移除“${value}”`,\n remove: \"移除\",\n atLimit: (max) => `已达上限(${n(max)} 项)`,\n duplicate: (value) => `“${value}”已在列表中`,\n },\n swatchPicker: {\n none: \"无颜色\",\n mixed: \"混合:所选项目的颜色各不相同\",\n },\n iconPicker: {\n none: \"无图标\",\n mixed: \"混合:所选项目的图标各不相同\",\n search: \"搜索图标\",\n noResults: \"没有匹配的图标\",\n resultCount: (count) => `${n(count)} 个图标`,\n },\n fieldSync: {\n synced: \"已保存\",\n edited: \"有未保存的更改\",\n pending: \"正在保存…\",\n error: \"保存失败\",\n retry: \"重试\",\n },\n passwordReveal: {\n show: \"显示密码\",\n hide: \"隐藏密码\",\n },\n dangerConfirm: {\n arm: \"删除…\",\n confirm: \"删除\",\n cancel: \"取消\",\n prompt: \"此操作无法撤销。\",\n password: \"密码\",\n phrase: (phrase) => `输入“${phrase}”以确认`,\n acknowledge: \"我已了解此操作的作用,并希望继续。\",\n needsPhrase: (phrase) => `输入“${phrase}”以确认`,\n needsAcknowledge: \"勾选复选框以确认\",\n needsPassword: \"输入密码以确认\",\n },\n tabs: {\n add: \"添加标签页\",\n // Quoted, so the spacing rule holds whether the tab's name is Han or Latin.\n remove: (tab) => `移除“${tab}”`,\n },\n appShell: {\n collapse: \"收起侧边栏\",\n expand: \"展开侧边栏\",\n toggleGroup: (groupLabel) => `${groupLabel}:页面`,\n },\n topBar: {\n theme: \"切换主题\",\n palette: \"外观预设\",\n language: \"语言\",\n switchRole: \"切换角色\",\n role: (value) => `角色:${value}`,\n },\n pickerSheet: {\n close: \"关闭\",\n },\n dialogFrame: {\n close: \"关闭\",\n },\n bulkActionBar: {\n selected: (count) => `已选择 ${n(count)} 项`,\n clear: \"清除选择\",\n cleared: \"已清除选择\",\n },\n swipeableRow: {\n actions: \"行操作\",\n },\n file: {\n // The kit's own `Intl` unit formatting, pinned to this locale.\n size: (bytes) => formatFileSize(bytes, numberLocale),\n },\n filePicker: {\n dropzone: \"文件上传\",\n browse: \"浏览\",\n empty: \"将文件拖放到此处\",\n emptyMultiple: \"将文件拖放到此处\",\n hint: (accept) => (accept ? `支持:${accept}` : \"任意文件类型\"),\n busy: \"正在上传…\",\n rejectedPick: (count) => (count === 1 ? \"未添加该文件\" : `${count} 个文件均未添加`),\n rejectedType: (name) => `“${name}”的文件类型不受支持`,\n rejectedTypeOnly: (accept) => `仅限 ${accept} 文件`,\n rejectedSize: (name, maxSize) => `“${name}”超过 ${maxSize}`,\n rejectedCount: (name, maxFiles) => `未添加“${name}”:最多 ${n(maxFiles)} 个文件`,\n rejectedInvalid: (name) => `“${name}”无法在此使用`,\n rejectedMany: (count) => `${n(count)} 个文件未添加`,\n selected: (count, firstName) =>\n count === 1 ? `已选择“${firstName}”` : `已选择 ${n(count)} 个文件`,\n remove: (name) => `移除“${name}”`,\n clearAll: \"移除所有文件\",\n removed: (name) => `已移除“${name}”`,\n cleared: \"已移除所有文件\",\n },\n wizard: {\n done: \"完成\",\n cancel: \"取消\",\n back: \"上一步\",\n next: \"下一步\",\n skip: \"跳过\",\n finish: \"完成\",\n submitting: \"正在创建…\",\n steps: \"步骤\",\n step: (current, total) => `第 ${n(current)} 步,共 ${n(total)} 步`,\n cancelTitle: \"放弃此表单?\",\n confirmCancel: \"已填写的内容将会丢失。\",\n cancelConfirmLabel: \"放弃\",\n cancelDismissLabel: \"继续编辑\",\n reviewTitle: \"确认信息\",\n edit: \"编辑\",\n missingRequired: \"请填写所有必填字段。\",\n genericError: \"发生错误\",\n },\n tour: {\n next: \"下一步\",\n back: \"上一步\",\n skip: \"跳过\",\n done: \"完成\",\n awaitClickHint: \"点击高亮的元素以继续\",\n step: (current, total) => `${n(current)} / ${n(total)}`,\n },\n commandPalette: {\n clear: \"清除搜索\",\n submit: \"搜索\",\n close: \"关闭\",\n placeholder: \"搜索…\",\n empty: \"无结果\",\n loading: \"搜索中…\",\n dialog: \"搜索\",\n error: \"搜索失败,请重试。\",\n },\n globalSearch: {\n trigger: \"搜索\",\n placeholder: \"搜索或跳转到…\",\n shortcut: (keys) => `搜索(${keys})`,\n suggestions: \"试试\",\n results: \"结果\",\n },\n sparkline: {\n rising: (first, last) => `从 ${first} 上升到 ${last}`,\n falling: (first, last) => `从 ${first} 下降到 ${last}`,\n flat: (value) => `保持在 ${value} 不变`,\n single: (value) => `仅一个值:${value}`,\n noData: \"无数据\",\n named: (name, summary) => `${name}:${summary}`,\n },\n statTile: {\n increase: (amount) => `上升 ${amount}`,\n decrease: (amount) => `下降 ${amount}`,\n unchanged: \"无变化\",\n better: (change) => `${change}(向好)`,\n worse: (change) => `${change}(变差)`,\n noValue: \"无数据\",\n loading: \"加载中…\",\n },\n signaturePad: {\n label: \"签名\",\n instructions: \"请使用鼠标、手指或触控笔在框内签名。\",\n typedFallbackHint: \"如果无法手写,可以改为输入姓名。\",\n empty: \"尚未签名\",\n signed: \"已签名\",\n undo: \"撤销上一笔\",\n clear: \"清除\",\n save: \"保存签名\",\n useTyped: \"改为输入姓名\",\n useDrawn: \"改为手写\",\n typedName: \"姓名\",\n cleared: \"签名已清除\",\n undone: \"已撤销上一笔\",\n viewEmpty: \"未签名\",\n viewDrawn: \"手写签名\",\n // Quoted, so the spacing rule holds whether the name is Han or Latin.\n viewTyped: (name) => `以输入的姓名“${name}”签名`,\n },\n passwordStrength: {\n tooShort: \"太短\",\n weak: \"弱\",\n fair: \"一般\",\n good: \"良好\",\n strong: \"强\",\n announcement: (level) => `密码强度:${level}`,\n // Unformatted, as in the English default.\n ruleLength: (minLength) => `至少 ${minLength} 个字符`,\n ruleCase: \"包含大写和小写字母\",\n ruleDigit: \"包含数字\",\n ruleSymbol: \"包含符号\",\n optional: (rule) => `${rule}(可选)`,\n met: \"已满足:\",\n notMet: \"未满足:\",\n tooLong: (maxBytes) => `最多 ${maxBytes} 个字符(带重音的字母和表情符号按多个字符计算)。`,\n },\n seriesChart: {\n resetZoom: \"重置缩放\",\n zoomHint:\n \"拖动以缩放:近似正方形的选区同时缩放两条坐标轴,细长的选区只缩放其所沿的那条轴。双击可重置。\",\n empty: \"无数据\",\n legend: \"数据系列\",\n points: \"图表数值\",\n },\n pieChart: {\n slices: \"图表扇区\",\n slice: (label, value, percent) => `${label}:${value}(${percent})`,\n total: \"合计\",\n empty: \"无数据\",\n legend: \"类别\",\n },\n confirmDialog: {\n confirm: \"确认\",\n cancel: \"取消\",\n typed: (text) => `输入“${text}”以确认`,\n },\n floatingPanel: {\n close: \"关闭\",\n badge: (count) => `${n(count)} 条新内容`,\n },\n copyButton: {\n copy: \"复制\",\n copied: \"已复制\",\n failed: \"复制失败\",\n copiedAnnouncement: \"已复制到剪贴板\",\n failedAnnouncement: \"无法复制到剪贴板\",\n },\n list: {\n unread: \"未读\",\n opensInNewTab: \"在新标签页中打开\",\n },\n breadcrumbs: {\n label: \"面包屑导航\",\n showAll: \"显示完整路径\",\n },\n toast: {\n close: \"关闭通知\",\n notifications: \"通知\",\n undo: \"撤销\",\n redo: \"重做\",\n },\n form: {\n save: \"保存\",\n cancel: \"取消\",\n submitShortcut: (apple) => (apple ? \"⌘ Enter\" : \"Ctrl+Enter\"),\n },\n descriptionList: {\n empty: \"—\",\n },\n lineItems: {\n add: \"添加行\",\n remove: (row) => `删除第 ${row} 行`,\n confirmRemove: (row) => `删除第 ${row} 行?再次按下以确认`,\n row: (row) => `第 ${row} 行`,\n cell: (column, row) => `${column},第 ${row} 行`,\n totals: \"合计\",\n },\n progressBar: {\n unlimited: \"无限制\",\n overLimit: (amount) => `超出限额 ${amount}`,\n },\n signedAmount: {\n positive: (amount) => `正 ${amount}`,\n negative: (amount) => `负 ${amount}`,\n },\n errorBoundary: {\n title: \"出错了\",\n message: \"无法显示页面的这一部分。请重试或重新加载页面。\",\n retry: \"重试\",\n details: \"错误详情\",\n reload: \"重新加载\",\n updateTitle: \"有新版本可用\",\n updateMessage: \"自此页面加载以来,应用的部分内容已更新。请重新加载以获取新版本。\",\n offlineTitle: \"当前处于离线状态\",\n offlineMessage: \"没有网络连接,无法加载此页面。请恢复连接后重新加载页面。\",\n copyReport: \"复制错误报告\",\n reported: \"此错误已自动报告。\",\n reportedAs: (reference) => `报告编号:${reference}`,\n },\n authedImage: {\n loading: \"正在加载图片…\",\n loadError: \"无法加载图片\",\n failedImage: (alt) => `${alt}:无法加载图片`,\n },\n imageGrid: {\n list: \"图片\",\n item: (index, count) => `第 ${n(index)} 张,共 ${n(count)} 张`,\n actions: (name) => `${name}的操作`,\n },\n lightbox: {\n dialog: \"图片查看器\",\n close: \"关闭\",\n previous: \"上一张\",\n next: \"下一张\",\n counter: (index, count) => `${n(index)} / ${n(count)}`,\n position: (index, count) => `第 ${n(index)} 张,共 ${n(count)} 张`,\n download: \"下载\",\n zoom: \"缩放\",\n noPreview: \"此文件无法预览\",\n openInNewTab: \"在新标签页中打开\",\n },\n writeLock: {\n reason: \"仅可查看,无法修改。\",\n },\n accountState: {\n active: \"已启用\",\n inactive: \"已停用\",\n invited: \"已邀请\",\n registered: \"已注册\",\n unverified: \"未验证\",\n passwordChange: \"需修改密码\",\n },\n shareCard: {\n dialogTitle: \"共享\",\n close: \"关闭\",\n email: \"电子邮箱地址\",\n emailOptional: \"电子邮箱地址(可选)\",\n emailPlaceholder: \"name@example.com\",\n invalidEmail: \"请输入完整的电子邮箱地址。\",\n role: \"角色\",\n roleOf: (name) => `${name} 的角色`,\n add: \"共享\",\n whoHasAccess: \"有权访问的人\",\n nobodyYet: \"目前还没有其他人有权访问。\",\n pending: \"待接受\",\n openInvite: \"公开邀请链接\",\n copyLink: \"复制链接\",\n team: \"团队\",\n teamHint: (name) => `${name} 的所有成员都将获得访问权限。`,\n remove: \"移除访问权限\",\n removeConfirm: (name) => `移除 ${name} 的访问权限?`,\n revokePending: \"撤回邀请\",\n revokePendingConfirm: (name) => `撤回对 ${name} 的邀请?`,\n failed: \"操作未成功,请重试。\",\n loading: \"加载中…\",\n },\n reauthDialog: {\n title: \"验证身份\",\n description: \"请输入当前密码以继续。\",\n password: \"当前密码\",\n submit: \"继续\",\n cancel: \"取消\",\n },\n serverWake: {\n slow: \"仍在加载,比平时耗时更长。\",\n // A Latin product name gets a space either side, as everywhere in this catalogue.\n waking: (appName) =>\n `无人使用${appName ? ` ${appName} ` : \"本应用\"}时,服务器会进入休眠,因此暂停后的第一个请求需要重新启动它。这可能需要一点时间——不会丢失任何内容,页面会自动加载完成。`,\n },\n legal: {\n navLabel: \"法律信息\",\n },\n characterCount: {\n count: (used, max) => `已输入 ${n(used)}/${n(max)} 个字符`,\n remaining: (left) => `还可输入 ${n(left)} 个字符`,\n limitReached: \"已达到字符数上限\",\n },\n countrySelect: {\n country: \"国家/地区\",\n search: \"搜索国家/地区\",\n others: \"其他国家/地区\",\n },\n inlineEdit: {\n edit: (label) => `编辑“${label}”`,\n failed: \"无法保存更改。\",\n empty: \"空\",\n },\n ibanInput: {\n format: \"IBAN 以两个字母的国家代码和两位校验码开头。\",\n country: (code) => `“${code}”不是 IBAN 的国家代码。`,\n length: (actual, expected) =>\n `该国家的 IBAN 应为 ${n(expected)} 个字符,当前为 ${n(actual)} 个。`,\n checksum: \"校验码不匹配,可能有字符输入错误。\",\n qrRequired: \"这是普通 IBAN。QR 账单需要该账户的 QR-IBAN。\",\n qrNotAllowed: \"这是 QR-IBAN,只能接收 QR 账单付款。请输入该账户的普通 IBAN。\",\n },\n phoneInput: {\n countryCode: \"国家/地区代码\",\n other: \"其他\",\n },\n signChip: {\n outflow: \"支出\",\n inflow: \"收入\",\n direction: (current, next) => `方向:${current},切换为${next}`,\n },\n columnMapper: {\n paste: \"粘贴表格\",\n pasteHint: \"从电子表格中复制行并粘贴到此处,或拖放 CSV 或文本文件。\",\n chooseFile: \"选择文件\",\n readError: (name) => `无法读取“${name}”`,\n headerRow: \"第一行为列名\",\n summary: (columns, rows) => `${n(columns)} 列,${n(rows)} 行`,\n separatorSemicolon: \"以分号分隔\",\n separatorComma: \"以逗号分隔\",\n separatorTab: \"以制表符分隔\",\n separatorSpace: \"以空格分隔\",\n // The examples stay as written: they show the convention, not the reader's locale.\n decimalComma: \"小数点为逗号(1,5)\",\n decimalPoint: \"小数点为句点(1.5)\",\n unreadCount: (count) => `${n(count)} 行无法读取`,\n unreadLine: (line) => `无法读取第 ${line} 行`,\n unreadMore: (count) => `……另有 ${n(count)} 行`,\n noRows: \"此文本中没有任何一行能读作表格的一行。\",\n table: \"列及其用途\",\n columnN: (column) => `第 ${column} 列`,\n roleOf: (column) => `“${column}”列的内容是什么?`,\n ignore: \"忽略\",\n requiredRole: (role) => `${role}(必填)`,\n requiredRoleShort: (role) => `${role} *`,\n previewOf: (shown, total) => `显示前 ${n(shown)} 行,共 ${n(total)} 行`,\n // `roles` arrives joined with \"或\" (\"借方或贷方\").\n oneOf: (roles) => `${roles}(任选其一)`,\n missing: (roles) => `仍需指定:${roles}。`,\n },\n translationReview: {\n statusMissing: \"缺失\",\n statusUnreviewed: \"未审校\",\n statusChanged: \"审校后已更改\",\n statusNeedsChange: \"需要修改\",\n statusApproved: \"已通过\",\n statusFilter: \"状态\",\n all: \"全部\",\n filterCount: (label, count) => `${label} · ${n(count)}`,\n source: \"文本\",\n allSources: \"全部文本\",\n namespace: \"区域\",\n allNamespaces: \"全部区域\",\n search: \"搜索键名和文本\",\n placeholdersOnly: (count) => `仅显示占位符问题(${n(count)})`,\n placeholderChip: \"占位符\",\n key: \"键名\",\n statusColumn: \"状态\",\n empty: \"没有符合这些筛选条件的文本。\",\n missingText: \"此语言中缺失\",\n progress: (approved, total) => `已通过 ${n(approved)} / ${n(total)}`,\n localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,\n locales: \"语言\",\n approve: \"通过\",\n flag: \"需要修改\",\n suggest: \"建议译文\",\n reset: \"标记为未审校\",\n cancel: \"取消\",\n approveSelected: \"通过所选项\",\n resetSelected: \"将所选项标记为未审校\",\n selectShown: \"选择所有显示项\",\n changedSince: \"此文本在审校后已更改,请重新阅读。\",\n reviewedWording: \"审校时的措辞\",\n reviewedReference: \"审校时的参考文本\",\n placeholderMismatch: (reference, text) =>\n `占位符与参考文本不一致——参考文本:${reference};此文本:${text}。应用会在这些位置填入内容,因此必须保持原样。`,\n // A Latin name gets a space either side, as everywhere in this catalogue.\n lastApproved: (name, date) => `${name} 于 ${date} 通过`,\n lastFlagged: (name, date) => `${name} 于 ${date} 标记为需要修改`,\n erasedReviewer: \"已删除的账户\",\n suggestion: \"更好的措辞\",\n translation: \"译文\",\n note: \"备注(可选)\",\n notePlaceholder: \"哪里有问题,或需要注意什么\",\n readOnly: \"此语言仅可查看,无法审校。\",\n scope: (areas) => `审校范围仅限于:${areas}。`,\n exportCorrections: (count) => `导出更正(${n(count)})`,\n failed: \"操作未成功,请重试。\",\n approvedToast: (count) => (count === 1 ? \"文本已通过\" : `已通过 ${n(count)} 条文本`),\n groupCount: (unreviewed, total) => `未审校 ${n(unreviewed)} / ${n(total)}`,\n approveGroup: (count) => `通过未审校项(${n(count)})`,\n confirmGroup: (count, group) =>\n count === 1\n ? `通过“${group}”中的未审校文本?`\n : `通过“${group}”中全部 ${n(count)} 条未审校文本(包括未显示在屏幕上的)?`,\n },\n };\n}\n\nexport const UI_KIT_LABELS_ZH: UiKitLabels = uiKitLabelsZh();\n"],"mappings":"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","names":[]}
|
package/dist/i18n/review.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { cB as UiKitLabels } from '../feedback-
|
|
1
|
+
import { cB as UiKitLabels } from '../feedback-BXKH-ToU.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import '../components/tooltip.js';
|
|
4
4
|
import '../hooks/use-anchored-rect.js';
|
|
5
5
|
import '../lib/clipping.js';
|
|
6
|
-
import '../data-table-labels-
|
|
6
|
+
import '../data-table-labels-Cdn1QS2k.js';
|
|
7
7
|
import '../components/data-table-sort.js';
|
|
8
8
|
import '../components/swipeable-row.js';
|
|
9
9
|
import '../components/mini-calendar.js';
|
package/dist/i18n/review.js
CHANGED
|
@@ -153,6 +153,16 @@ const KIT_LABEL_SAMPLES = {
|
|
|
153
153
|
"translationReview.lastFlagged": [["{{name}}", "{{date}}"]],
|
|
154
154
|
"translationReview.scope": [["{{areas}}"]],
|
|
155
155
|
"translationReview.exportCorrections": [[0], [1], [3]],
|
|
156
|
+
"translationReview.approvedToast": one,
|
|
157
|
+
"translationReview.groupCount": [
|
|
158
|
+
[1, 12],
|
|
159
|
+
[3, 12]
|
|
160
|
+
],
|
|
161
|
+
"translationReview.approveGroup": one,
|
|
162
|
+
"translationReview.confirmGroup": [
|
|
163
|
+
[1, "{{group}}"],
|
|
164
|
+
[3, "{{group}}"]
|
|
165
|
+
],
|
|
156
166
|
"characterCount.count": [[12, 80]],
|
|
157
167
|
"characterCount.remaining": one,
|
|
158
168
|
"inlineEdit.edit": [["{{label}}"]],
|
|
@@ -170,6 +180,7 @@ const KIT_LABEL_SAMPLES = {
|
|
|
170
180
|
"columnMapper.columnN": [[3]],
|
|
171
181
|
"columnMapper.roleOf": [["{{column}}"]],
|
|
172
182
|
"columnMapper.requiredRole": [["{{role}}"]],
|
|
183
|
+
"columnMapper.requiredRoleShort": [["{{role}}"]],
|
|
173
184
|
"columnMapper.previewOf": [
|
|
174
185
|
[1, 12],
|
|
175
186
|
[10, 250]
|
package/dist/i18n/review.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/i18n/review.ts"],"sourcesContent":["import type { UiKitLabels } from \"./kit-labels\";\n\n/**\n * The kit's words as a flat `key → text` list, for an app's translation review.\n *\n * keksdose reviews its own locale bundles on its /translations page — one verdict per\n * locale and key, stored with the text the reviewer saw, so a later change re-opens it.\n * The kit's words appear on the same screens but live in TypeScript, not in the app's\n * bundles, and 94 of them are functions (`(count) => \"3 results\"`), which a bundle\n * flattener skips. This turns a label tree into rows that page can join on.\n *\n * - A string label is one row under its dot path: `common.close`. An array of words\n * (weekday names) is one row per entry: `miniCalendar.weekdays.0`.\n * - A function label is called with fixed samples. Text arguments are i18next-style\n * placeholders (`{{name}}`), so a translation that drops one is caught by the same\n * placeholder check the app runs on its own strings. Counts are real numbers, twice\n * where the wording may depend on them — 1 and 3 — so a reviewer sees singular and\n * plural. The key names the sample: `combobox.resultCount(1)`,\n * `shareCard.removeConfirm(name)`, `serverWake.waking()`.\n *\n * Keys depend only on the samples, never on the locale, so the rows of `de-CH` and of the\n * English reference line up key by key. Pass exactly the tree the app hands\n * `UiKitProvider` — its overrides included — and review what users see:\n *\n * kitLabelStrings(UI_KIT_LABELS_DE_CH) // the rows for de-CH\n * kitLabelStrings(DEFAULT_UI_KIT_LABELS) // the English reference\n *\n * A label that throws on its sample becomes a row starting with \"⚠\", so one broken\n * override shows up on the page instead of taking the page down.\n */\nexport function kitLabelStrings(labels: UiKitLabels): Record<string, string> {\n const out: Record<string, string> = {};\n const walk = (node: unknown, path: string) => {\n if (typeof node === \"string\") {\n out[path] = node;\n } else if (typeof node === \"function\") {\n for (const args of KIT_LABEL_SAMPLES[path] ?? [[]]) {\n out[`${path}(${args.map(sampleName).filter((a) => a !== \"\").join(\", \")})`] = render(\n node as (...args: unknown[]) => unknown,\n args,\n );\n }\n } else if (node !== null && typeof node === \"object\") {\n for (const [key, value] of Object.entries(node)) walk(value, path ? `${path}.${key}` : key);\n }\n };\n walk(labels, \"\");\n return out;\n}\n\nfunction render(label: (...args: unknown[]) => unknown, args: readonly unknown[]): string {\n try {\n return String(label(...args));\n } catch (error) {\n return `⚠ ${error instanceof Error ? error.message : String(error)}`;\n }\n}\n\n/** How a sample argument is written in the key: a placeholder by its name, a number as\n * itself, an empty string as `\"\"`, a missing optional argument not at all. */\nfunction sampleName(arg: unknown): string {\n if (arg === undefined) return \"\";\n if (typeof arg === \"string\") return /^\\{\\{(\\w+)\\}\\}$/.exec(arg)?.[1] ?? JSON.stringify(arg);\n return String(arg);\n}\n\nconst one = [[1], [3]] as const;\n\n/**\n * The sample arguments of every function label in {@link UiKitLabels}, by dot path.\n * `src/i18n/__tests__/review.test.ts` fails when a function label has no entry here, so\n * a new one cannot ship un-reviewable.\n */\nexport const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unknown[])[]>> = {\n \"common.fieldValue\": [[\"{{field}}\", \"{{value}}\"]],\n \"dataTable.filterResults\": [\n [1, 1],\n [3, 12],\n ],\n \"dataTable.sortedAscending\": [[\"{{column}}\"]],\n \"dataTable.sortedDescending\": [[\"{{column}}\"]],\n \"dataTable.sortCleared\": [[\"{{column}}\"]],\n \"dataTable.pageChanged\": [[2, 5]],\n \"dataTable.pageRange\": [[1, 25, 1240]],\n \"dataTable.rowCount\": [[1], [1240]],\n \"dataTable.columnsCount\": [[3, 8]],\n \"miniCalendar.day\": [[\"{{date}}\"]],\n \"miniCalendar.startSelected\": [[\"{{date}}\"]],\n \"miniCalendar.rangeSelected\": [[\"{{from}}\", \"{{to}}\"]],\n \"calendarHeatmap.day\": [[\"{{date}}\", \"{{value}}\"]],\n \"calendarHeatmap.truncated\": one,\n \"monthPicker.month\": [[\"{{monthYear}}\"]],\n \"combobox.create\": [[\"{{query}}\"]],\n \"combobox.selectedCount\": one,\n \"combobox.resultCount\": one,\n \"combobox.minChars\": one,\n \"multiSelect.selectedCount\": one,\n \"chipInput.added\": [[\"{{value}}\"]],\n \"chipInput.removed\": [[\"{{value}}\"]],\n \"chipInput.atLimit\": one,\n \"chipInput.duplicate\": [[\"{{value}}\"]],\n \"tabs.remove\": [[\"{{tab}}\"]],\n \"appShell.toggleGroup\": [[\"{{group}}\"]],\n \"topBar.role\": [[\"{{role}}\"]],\n \"file.size\": [[2_500_000]],\n \"wizard.step\": [[2, 4]],\n \"tour.step\": [[2, 4]],\n \"globalSearch.shortcut\": [[\"{{keys}}\"]],\n \"pieChart.slice\": [[\"{{label}}\", \"{{value}}\", \"{{percent}}\"]],\n \"sparkline.rising\": [[\"{{first}}\", \"{{last}}\"]],\n \"sparkline.falling\": [[\"{{first}}\", \"{{last}}\"]],\n \"sparkline.flat\": [[\"{{value}}\"]],\n \"sparkline.single\": [[\"{{value}}\"]],\n \"sparkline.named\": [[\"{{name}}\", \"{{summary}}\"]],\n \"statTile.increase\": [[\"{{amount}}\"]],\n \"statTile.decrease\": [[\"{{amount}}\"]],\n \"statTile.better\": [[\"{{change}}\"]],\n \"statTile.worse\": [[\"{{change}}\"]],\n \"signaturePad.viewTyped\": [[\"{{name}}\"]],\n \"passwordStrength.announcement\": [[\"{{level}}\"]],\n \"passwordStrength.ruleLength\": [[12]],\n \"passwordStrength.optional\": [[\"{{rule}}\"]],\n \"passwordStrength.tooLong\": [[72]],\n \"dangerConfirm.phrase\": [[\"{{phrase}}\"]],\n \"dangerConfirm.needsPhrase\": [[\"{{phrase}}\"]],\n \"iconPicker.resultCount\": one,\n \"filePicker.rejectedType\": [[\"{{name}}\"]],\n \"filePicker.rejectedTypeOnly\": [[\"{{accept}}\", \"{{name}}\"]],\n \"filePicker.rejectedSize\": [[\"{{name}}\", \"{{maxSize}}\"]],\n \"filePicker.rejectedCount\": [\n [\"{{name}}\", 1],\n [\"{{name}}\", 3],\n ],\n \"filePicker.rejectedInvalid\": [[\"{{name}}\"]],\n \"filePicker.rejectedMany\": one,\n \"filePicker.rejectedPick\": one,\n \"filePicker.selected\": [\n [1, \"{{firstName}}\"],\n [3, \"{{firstName}}\"],\n ],\n \"filePicker.remove\": [[\"{{name}}\"]],\n \"filePicker.removed\": [[\"{{name}}\"]],\n \"filePicker.hint\": [[\"{{accept}}\"], [\"\"]],\n \"measuredGrid.removeRow\": [[3]],\n \"measuredGrid.cell\": [[\"{{column}}\", 3]],\n \"measuredGrid.lineError\": [[3]],\n \"measuredGrid.points\": one,\n \"measuredGrid.problems\": one,\n \"feedbackAttachment.attachmentRemoveFile\": [[\"{{name}}\"]],\n \"feedbackAttachment.attachmentLimit\": one,\n \"feedbackAttachment.attachmentUploadFailed\": [[\"{{name}}\"]],\n \"feedbackComposer.sendHint\": [[\"{{modifier}}\"]],\n \"accountSettings.passkeys.renameItem\": [[\"{{name}}\"]],\n \"accountSettings.passkeys.renameField\": [[\"{{name}}\"]],\n \"accountSettings.passkeys.deleteItem\": [[\"{{name}}\"]],\n \"accountSettings.passkeys.deleteConfirm\": [[\"{{name}}\"]],\n \"accountSettings.passkeys.created\": [[\"{{date}}\"]],\n \"accountSettings.passkeys.lastUsed\": [[\"{{date}}\"]],\n \"confirmDialog.typed\": [[\"{{text}}\"]],\n \"floatingPanel.badge\": one,\n \"bulkActionBar.selected\": one,\n \"form.submitShortcut\": [[true], [false]],\n \"lineItems.remove\": [[3]],\n \"lineItems.confirmRemove\": [[3]],\n \"lineItems.row\": [[3]],\n \"lineItems.cell\": [[\"{{column}}\", 3]],\n \"progressBar.overLimit\": [[\"{{amount}}\"]],\n \"signedAmount.positive\": [[\"{{amount}}\"]],\n \"signedAmount.negative\": [[\"{{amount}}\"]],\n \"errorBoundary.reportedAs\": [[\"{{reference}}\"]],\n \"authedImage.failedImage\": [[\"{{alt}}\"]],\n \"imageGrid.item\": [[2, 5]],\n \"imageGrid.actions\": [[\"{{name}}\"]],\n \"lightbox.counter\": [[2, 5]],\n \"lightbox.position\": [[2, 5]],\n \"shareCard.roleOf\": [[\"{{name}}\"]],\n \"shareCard.teamHint\": [[\"{{name}}\"]],\n \"shareCard.removeConfirm\": [[\"{{name}}\"]],\n \"shareCard.revokePendingConfirm\": [[\"{{name}}\"]],\n \"serverWake.waking\": [[\"{{appName}}\"], [undefined]],\n \"translationReview.filterCount\": [\n [\"{{status}}\", 1],\n [\"{{status}}\", 3],\n ],\n \"translationReview.placeholdersOnly\": one,\n \"translationReview.progress\": [\n [1, 1],\n [3, 12],\n ],\n \"translationReview.localeProgress\": [[3, 12]],\n \"translationReview.placeholderMismatch\": [[\"{{reference}}\", \"{{text}}\"]],\n \"translationReview.lastApproved\": [[\"{{name}}\", \"{{date}}\"]],\n \"translationReview.lastFlagged\": [[\"{{name}}\", \"{{date}}\"]],\n \"translationReview.scope\": [[\"{{areas}}\"]],\n \"translationReview.exportCorrections\": [[0], [1], [3]],\n \"characterCount.count\": [[12, 80]],\n \"characterCount.remaining\": one,\n \"inlineEdit.edit\": [[\"{{label}}\"]],\n \"ibanInput.country\": [[\"{{code}}\"]],\n \"ibanInput.length\": [[20, 21]],\n \"signChip.direction\": [[\"{{current}}\", \"{{next}}\"]],\n \"columnMapper.readError\": [[\"{{name}}\"]],\n \"columnMapper.summary\": [\n [1, 1],\n [3, 12],\n ],\n \"columnMapper.unreadCount\": one,\n \"columnMapper.unreadLine\": [[3]],\n \"columnMapper.unreadMore\": one,\n \"columnMapper.columnN\": [[3]],\n \"columnMapper.roleOf\": [[\"{{column}}\"]],\n \"columnMapper.requiredRole\": [[\"{{role}}\"]],\n \"columnMapper.previewOf\": [\n [1, 12],\n [10, 250],\n ],\n \"columnMapper.oneOf\": [[\"{{roles}}\"]],\n \"columnMapper.missing\": [[\"{{roles}}\"]],\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/i18n/review.ts"],"sourcesContent":["import type { UiKitLabels } from \"./kit-labels\";\n\n/**\n * The kit's words as a flat `key → text` list, for an app's translation review.\n *\n * keksdose reviews its own locale bundles on its /translations page — one verdict per\n * locale and key, stored with the text the reviewer saw, so a later change re-opens it.\n * The kit's words appear on the same screens but live in TypeScript, not in the app's\n * bundles, and 94 of them are functions (`(count) => \"3 results\"`), which a bundle\n * flattener skips. This turns a label tree into rows that page can join on.\n *\n * - A string label is one row under its dot path: `common.close`. An array of words\n * (weekday names) is one row per entry: `miniCalendar.weekdays.0`.\n * - A function label is called with fixed samples. Text arguments are i18next-style\n * placeholders (`{{name}}`), so a translation that drops one is caught by the same\n * placeholder check the app runs on its own strings. Counts are real numbers, twice\n * where the wording may depend on them — 1 and 3 — so a reviewer sees singular and\n * plural. The key names the sample: `combobox.resultCount(1)`,\n * `shareCard.removeConfirm(name)`, `serverWake.waking()`.\n *\n * Keys depend only on the samples, never on the locale, so the rows of `de-CH` and of the\n * English reference line up key by key. Pass exactly the tree the app hands\n * `UiKitProvider` — its overrides included — and review what users see:\n *\n * kitLabelStrings(UI_KIT_LABELS_DE_CH) // the rows for de-CH\n * kitLabelStrings(DEFAULT_UI_KIT_LABELS) // the English reference\n *\n * A label that throws on its sample becomes a row starting with \"⚠\", so one broken\n * override shows up on the page instead of taking the page down.\n */\nexport function kitLabelStrings(labels: UiKitLabels): Record<string, string> {\n const out: Record<string, string> = {};\n const walk = (node: unknown, path: string) => {\n if (typeof node === \"string\") {\n out[path] = node;\n } else if (typeof node === \"function\") {\n for (const args of KIT_LABEL_SAMPLES[path] ?? [[]]) {\n out[`${path}(${args.map(sampleName).filter((a) => a !== \"\").join(\", \")})`] = render(\n node as (...args: unknown[]) => unknown,\n args,\n );\n }\n } else if (node !== null && typeof node === \"object\") {\n for (const [key, value] of Object.entries(node)) walk(value, path ? `${path}.${key}` : key);\n }\n };\n walk(labels, \"\");\n return out;\n}\n\nfunction render(label: (...args: unknown[]) => unknown, args: readonly unknown[]): string {\n try {\n return String(label(...args));\n } catch (error) {\n return `⚠ ${error instanceof Error ? error.message : String(error)}`;\n }\n}\n\n/** How a sample argument is written in the key: a placeholder by its name, a number as\n * itself, an empty string as `\"\"`, a missing optional argument not at all. */\nfunction sampleName(arg: unknown): string {\n if (arg === undefined) return \"\";\n if (typeof arg === \"string\") return /^\\{\\{(\\w+)\\}\\}$/.exec(arg)?.[1] ?? JSON.stringify(arg);\n return String(arg);\n}\n\nconst one = [[1], [3]] as const;\n\n/**\n * The sample arguments of every function label in {@link UiKitLabels}, by dot path.\n * `src/i18n/__tests__/review.test.ts` fails when a function label has no entry here, so\n * a new one cannot ship un-reviewable.\n */\nexport const KIT_LABEL_SAMPLES: Readonly<Record<string, readonly (readonly unknown[])[]>> = {\n \"common.fieldValue\": [[\"{{field}}\", \"{{value}}\"]],\n \"dataTable.filterResults\": [\n [1, 1],\n [3, 12],\n ],\n \"dataTable.sortedAscending\": [[\"{{column}}\"]],\n \"dataTable.sortedDescending\": [[\"{{column}}\"]],\n \"dataTable.sortCleared\": [[\"{{column}}\"]],\n \"dataTable.pageChanged\": [[2, 5]],\n \"dataTable.pageRange\": [[1, 25, 1240]],\n \"dataTable.rowCount\": [[1], [1240]],\n \"dataTable.columnsCount\": [[3, 8]],\n \"miniCalendar.day\": [[\"{{date}}\"]],\n \"miniCalendar.startSelected\": [[\"{{date}}\"]],\n \"miniCalendar.rangeSelected\": [[\"{{from}}\", \"{{to}}\"]],\n \"calendarHeatmap.day\": [[\"{{date}}\", \"{{value}}\"]],\n \"calendarHeatmap.truncated\": one,\n \"monthPicker.month\": [[\"{{monthYear}}\"]],\n \"combobox.create\": [[\"{{query}}\"]],\n \"combobox.selectedCount\": one,\n \"combobox.resultCount\": one,\n \"combobox.minChars\": one,\n \"multiSelect.selectedCount\": one,\n \"chipInput.added\": [[\"{{value}}\"]],\n \"chipInput.removed\": [[\"{{value}}\"]],\n \"chipInput.atLimit\": one,\n \"chipInput.duplicate\": [[\"{{value}}\"]],\n \"tabs.remove\": [[\"{{tab}}\"]],\n \"appShell.toggleGroup\": [[\"{{group}}\"]],\n \"topBar.role\": [[\"{{role}}\"]],\n \"file.size\": [[2_500_000]],\n \"wizard.step\": [[2, 4]],\n \"tour.step\": [[2, 4]],\n \"globalSearch.shortcut\": [[\"{{keys}}\"]],\n \"pieChart.slice\": [[\"{{label}}\", \"{{value}}\", \"{{percent}}\"]],\n \"sparkline.rising\": [[\"{{first}}\", \"{{last}}\"]],\n \"sparkline.falling\": [[\"{{first}}\", \"{{last}}\"]],\n \"sparkline.flat\": [[\"{{value}}\"]],\n \"sparkline.single\": [[\"{{value}}\"]],\n \"sparkline.named\": [[\"{{name}}\", \"{{summary}}\"]],\n \"statTile.increase\": [[\"{{amount}}\"]],\n \"statTile.decrease\": [[\"{{amount}}\"]],\n \"statTile.better\": [[\"{{change}}\"]],\n \"statTile.worse\": [[\"{{change}}\"]],\n \"signaturePad.viewTyped\": [[\"{{name}}\"]],\n \"passwordStrength.announcement\": [[\"{{level}}\"]],\n \"passwordStrength.ruleLength\": [[12]],\n \"passwordStrength.optional\": [[\"{{rule}}\"]],\n \"passwordStrength.tooLong\": [[72]],\n \"dangerConfirm.phrase\": [[\"{{phrase}}\"]],\n \"dangerConfirm.needsPhrase\": [[\"{{phrase}}\"]],\n \"iconPicker.resultCount\": one,\n \"filePicker.rejectedType\": [[\"{{name}}\"]],\n \"filePicker.rejectedTypeOnly\": [[\"{{accept}}\", \"{{name}}\"]],\n \"filePicker.rejectedSize\": [[\"{{name}}\", \"{{maxSize}}\"]],\n \"filePicker.rejectedCount\": [\n [\"{{name}}\", 1],\n [\"{{name}}\", 3],\n ],\n \"filePicker.rejectedInvalid\": [[\"{{name}}\"]],\n \"filePicker.rejectedMany\": one,\n \"filePicker.rejectedPick\": one,\n \"filePicker.selected\": [\n [1, \"{{firstName}}\"],\n [3, \"{{firstName}}\"],\n ],\n \"filePicker.remove\": [[\"{{name}}\"]],\n \"filePicker.removed\": [[\"{{name}}\"]],\n \"filePicker.hint\": [[\"{{accept}}\"], [\"\"]],\n \"measuredGrid.removeRow\": [[3]],\n \"measuredGrid.cell\": [[\"{{column}}\", 3]],\n \"measuredGrid.lineError\": [[3]],\n \"measuredGrid.points\": one,\n \"measuredGrid.problems\": one,\n \"feedbackAttachment.attachmentRemoveFile\": [[\"{{name}}\"]],\n \"feedbackAttachment.attachmentLimit\": one,\n \"feedbackAttachment.attachmentUploadFailed\": [[\"{{name}}\"]],\n \"feedbackComposer.sendHint\": [[\"{{modifier}}\"]],\n \"accountSettings.passkeys.renameItem\": [[\"{{name}}\"]],\n \"accountSettings.passkeys.renameField\": [[\"{{name}}\"]],\n \"accountSettings.passkeys.deleteItem\": [[\"{{name}}\"]],\n \"accountSettings.passkeys.deleteConfirm\": [[\"{{name}}\"]],\n \"accountSettings.passkeys.created\": [[\"{{date}}\"]],\n \"accountSettings.passkeys.lastUsed\": [[\"{{date}}\"]],\n \"confirmDialog.typed\": [[\"{{text}}\"]],\n \"floatingPanel.badge\": one,\n \"bulkActionBar.selected\": one,\n \"form.submitShortcut\": [[true], [false]],\n \"lineItems.remove\": [[3]],\n \"lineItems.confirmRemove\": [[3]],\n \"lineItems.row\": [[3]],\n \"lineItems.cell\": [[\"{{column}}\", 3]],\n \"progressBar.overLimit\": [[\"{{amount}}\"]],\n \"signedAmount.positive\": [[\"{{amount}}\"]],\n \"signedAmount.negative\": [[\"{{amount}}\"]],\n \"errorBoundary.reportedAs\": [[\"{{reference}}\"]],\n \"authedImage.failedImage\": [[\"{{alt}}\"]],\n \"imageGrid.item\": [[2, 5]],\n \"imageGrid.actions\": [[\"{{name}}\"]],\n \"lightbox.counter\": [[2, 5]],\n \"lightbox.position\": [[2, 5]],\n \"shareCard.roleOf\": [[\"{{name}}\"]],\n \"shareCard.teamHint\": [[\"{{name}}\"]],\n \"shareCard.removeConfirm\": [[\"{{name}}\"]],\n \"shareCard.revokePendingConfirm\": [[\"{{name}}\"]],\n \"serverWake.waking\": [[\"{{appName}}\"], [undefined]],\n \"translationReview.filterCount\": [\n [\"{{status}}\", 1],\n [\"{{status}}\", 3],\n ],\n \"translationReview.placeholdersOnly\": one,\n \"translationReview.progress\": [\n [1, 1],\n [3, 12],\n ],\n \"translationReview.localeProgress\": [[3, 12]],\n \"translationReview.placeholderMismatch\": [[\"{{reference}}\", \"{{text}}\"]],\n \"translationReview.lastApproved\": [[\"{{name}}\", \"{{date}}\"]],\n \"translationReview.lastFlagged\": [[\"{{name}}\", \"{{date}}\"]],\n \"translationReview.scope\": [[\"{{areas}}\"]],\n \"translationReview.exportCorrections\": [[0], [1], [3]],\n \"translationReview.approvedToast\": one,\n \"translationReview.groupCount\": [\n [1, 12],\n [3, 12],\n ],\n \"translationReview.approveGroup\": one,\n \"translationReview.confirmGroup\": [\n [1, \"{{group}}\"],\n [3, \"{{group}}\"],\n ],\n \"characterCount.count\": [[12, 80]],\n \"characterCount.remaining\": one,\n \"inlineEdit.edit\": [[\"{{label}}\"]],\n \"ibanInput.country\": [[\"{{code}}\"]],\n \"ibanInput.length\": [[20, 21]],\n \"signChip.direction\": [[\"{{current}}\", \"{{next}}\"]],\n \"columnMapper.readError\": [[\"{{name}}\"]],\n \"columnMapper.summary\": [\n [1, 1],\n [3, 12],\n ],\n \"columnMapper.unreadCount\": one,\n \"columnMapper.unreadLine\": [[3]],\n \"columnMapper.unreadMore\": one,\n \"columnMapper.columnN\": [[3]],\n \"columnMapper.roleOf\": [[\"{{column}}\"]],\n \"columnMapper.requiredRole\": [[\"{{role}}\"]],\n \"columnMapper.requiredRoleShort\": [[\"{{role}}\"]],\n \"columnMapper.previewOf\": [\n [1, 12],\n [10, 250],\n ],\n \"columnMapper.oneOf\": [[\"{{roles}}\"]],\n \"columnMapper.missing\": [[\"{{roles}}\"]],\n};\n"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export { OVERLAY_EXIT_MS, useCloseTransition } from './hooks/use-close-transitio
|
|
|
15
15
|
export { RowSwipeOptions, RowSwipeReturn, SwipeStage, useRowSwipe } from './hooks/use-row-swipe.js';
|
|
16
16
|
export { FileDropProps, UseFileDropOptions, UseFileDropReturn, dragHasFiles, useFileDrop } from './hooks/use-file-drop.js';
|
|
17
17
|
export { DebouncedCallbackOptions, DebouncedFunction, useDebounce, useDebouncedCallback } from './hooks/use-debounce.js';
|
|
18
|
-
export { DialogParam, SearchParamStateOptions, useDialogParam, useSearchParamState, useTabParam } from './hooks/use-search-param-state.js';
|
|
18
|
+
export { DialogParam, SearchParamField, SearchParamFields, SearchParamStateOptions, SearchParamsUpdate, useDialogParam, useSearchParamState, useSearchParamsState, useTabParam } from './hooks/use-search-param-state.js';
|
|
19
19
|
export { CopyState, UseCopyToClipboardOptions, UseCopyToClipboardReturn, copyToClipboard, useCopyToClipboard } from './hooks/use-copy-to-clipboard.js';
|
|
20
20
|
export { Hotkey, ParsedHotkey, UseHotkeyOptions, matchesHotkey, parseHotkey, useHotkey } from './hooks/use-hotkey.js';
|
|
21
21
|
export { AuthedFetcher, AuthedSrcStatus, UseAuthedSrcOptions, UseAuthedSrcResult, useAuthedSrc } from './hooks/use-authed-src.js';
|
|
@@ -25,7 +25,7 @@ export { AnchorRole, ChartRampReport, ContrastCheck, ContrastReport, DeriveOptio
|
|
|
25
25
|
export { ALTERNATIVE_PRESETS, DEFAULT_PRESET, DERIVED_PRESETS, IMPRINT_PRESET, PALETTES, PalettePreset, TokenSet, applyTokenSet, presetById } from './theme/palette-presets.js';
|
|
26
26
|
export { ThemeMode, ThemePreference, ThemeState, ThemeStore, applyPersistedTheme, createThemeStore } from './theme/theme-store.js';
|
|
27
27
|
export { PaletteStore, applyPersistedPalette, createPaletteStore } from './theme/palette-store.js';
|
|
28
|
-
export { A as AppShellLabels, B as Button, a as ButtonClassesOptions, b as ButtonLinkProps, c as ButtonProps, d as ButtonSize, e as ButtonTone, f as ButtonVariant, C as CalculatorLabels, g as Card, h as CardAction, i as CardActionProps, j as CardContent, k as CardContentProps, l as CardDensity, m as CardDescription, n as CardDescriptionProps, o as CardFooter, p as CardFooterProps, q as CardHeader, r as CardHeaderProps, s as CardProps, t as CardTitle, u as CardTitleLevel, v as CardTitleProps, w as CardTone, x as CharacterCountLabels, y as ChartTooltipPlacement, z as ChatComposer, D as ChatComposerHandle, E as ChatComposerLabels, F as ChatComposerProps, G as ChatComposerSlotContext, H as ComboboxLabels, I as CommonLabels, J as ConfirmDialogLabels, K as ConfirmFn, L as ConfirmOptions, M as ConfirmProvider, N as ConfirmProviderProps, O as ConfirmTone, P as CopyButton, Q as CopyButtonLabels, R as CopyButtonProps, S as CurrencyLabels, T as CurrentPasswordInput, U as CurrentPasswordInputLabels, V as CurrentPasswordInputProps, W as DEFAULT_APP_SHELL_LABELS, X as DEFAULT_ATTACHMENT_ACCEPT, Y as DEFAULT_CALCULATOR_LABELS, Z as DEFAULT_CHARACTER_COUNT_LABELS, _ as DEFAULT_COMBOBOX_LABELS, $ as DEFAULT_COMMON_LABELS, a0 as DEFAULT_CONFIRM_DIALOG_LABELS, a1 as DEFAULT_COPY_BUTTON_LABELS, a2 as DEFAULT_CURRENCY_LABELS, a3 as DEFAULT_DANGER_CONFIRM_LABELS, a4 as DEFAULT_DATE_PICKER_LABELS, a5 as DEFAULT_FEEDBACK_ATTACHMENT_LABELS, a6 as DEFAULT_FEEDBACK_COMPOSER_LABELS, a7 as DEFAULT_FEEDBACK_DIALOG_LABELS, a8 as DEFAULT_FEEDBACK_THREAD_LABELS, a9 as DEFAULT_FILE_LABELS, aa as DEFAULT_FILE_PICKER_LABELS, ab as DEFAULT_FORM_ACTIONS_LABELS, ac as DEFAULT_IBAN_INPUT_LABELS, ad as DEFAULT_MAX_ATTACHMENTS, ae as DEFAULT_MAX_ATTACHMENT_BYTES, af as DEFAULT_MULTI_SELECT_LABELS, ag as DEFAULT_PASSWORD_REVEAL_LABELS, ah as DEFAULT_PHONE_INPUT_LABELS, ai as DEFAULT_PICKER_SHEET_LABELS, aj as DEFAULT_SHARE_CARD_LABELS, ak as DEFAULT_SWIPEABLE_ROW_LABELS, al as DEFAULT_TABS_LABELS, am as DEFAULT_TOP_BAR_LABELS, an as DangerConfirm, ao as DangerConfirmLabels, ap as DangerConfirmProps, aq as DangerConfirmValues, ar as DangerConsequence, as as DatePickerLabels, at as EmptyState, au as EmptyStateProps, av as FEEDBACK_CATEGORY_META, aw as FEEDBACK_CATEGORY_ORDER, ax as FEEDBACK_STATUS_META, ay as FEEDBACK_STATUS_ORDER, az as FIELD_BASE, aA as FIELD_DISPLAY, aB as FIELD_FLOATING_PAD, aC as FIELD_INVALID, aD as FIELD_TRIGGER, aE as FIELD_WRITABLE_LOOK, aF as FLOATING_INPUT_CLASS, aG as FLOATING_LABEL_CLASS, aH as FeedbackAttachmentError, aI as FeedbackAttachmentErrorInfo, aJ as FeedbackAttachmentField, aK as FeedbackAttachmentFieldLabels, aL as FeedbackAttachmentFieldMultipleProps, aM as FeedbackAttachmentFieldProps, aN as FeedbackAttachmentFieldRefsProps, aO as FeedbackAttachmentFieldSingleProps, aP as FeedbackAttachmentLabels, aQ as FeedbackAttachmentRef, aR as FeedbackAttachmentRefsError, aS as FeedbackCategory, aT as FeedbackCategoryBadge, aU as FeedbackCategoryOption, aV as FeedbackComposer, aW as FeedbackComposerAttachment, aX as FeedbackComposerHandle, aY as FeedbackComposerLabels, aZ as FeedbackComposerProps, a_ as FeedbackComposerSlotContext, a$ as FeedbackDetail, b0 as FeedbackDetailSection, b1 as FeedbackDialog, b2 as FeedbackDialogLabels, b3 as FeedbackDialogMultipleProps, b4 as FeedbackDialogProps, b5 as FeedbackDialogSingleProps, b6 as FeedbackDialogTextLabels, b7 as FeedbackMultipleSubmission, b8 as FeedbackNoteAttachment, b9 as FeedbackNoteEditor, ba as FeedbackProse, bb as FeedbackStatus, bc as FeedbackStatusBadge, bd as FeedbackStatusTransitions, be as FeedbackSubmission, bf as FeedbackThread, bg as FeedbackThreadAttachment, bh as FeedbackThreadEvent, bi as FeedbackThreadItem, bj as FeedbackThreadLabels, bk as FeedbackThreadMessage, bl as FeedbackThreadProps, bm as FieldChevron, bn as FieldChevronProps, bo as FieldHint, bp as FieldHintProps, bq as FileButton, br as FileButtonProps, bs as FileLabels, bt as FilePickerLabels, bu as FileRejection, bv as FileRejectionReason, bw as FileScreenOptions, bx as FloatingField, by as FloatingFieldProps, bz as FormActions, bA as FormActionsAlign, bB as FormActionsDestructive, bC as FormActionsLabels, bD as FormActionsPlacement, bE as FormActionsProps, bF as FormActionsStickyWithin, bG as FormActionsSubmitProps, bH as FormActionsSubmitShortcut, bI as IbanInput, bJ as IbanInputLabels, bK as IbanInputProps, bL as IconButton, bM as IconButtonGlyphSize, bN as IconButtonLinkProps, bO as IconButtonProps, bP as IconButtonSize, bQ as IconButtonTone, bR as IconButtonToneColor, bS as IconButtonVariant, bT as Input, bU as InputProps, bV as KitDateFormatContext, bW as KitDateFormatter, bX as KitLinkComponent, bY as KitLinkProps, bZ as Label, b_ as LabelOverride, b$ as LabelProps, c0 as MultiSelectLabels, c1 as PHONE_QUERY, c2 as PasswordRevealLabels, c3 as PhoneInput, c4 as PhoneInputLabels, c5 as PhoneInputProps, c6 as PickerSheetLabels, c7 as ResponsiveFormActionsPlacement, c8 as Select, c9 as SelectProps, ca as ShareAddRequest, cb as ShareCandidate, cc as ShareCard, cd as ShareCardLabels, ce as ShareCardProps, cf as ShareDialog, cg as ShareDialogProps, ch as ShareGrantee, ci as SharePanel, cj as SharePanelProps, ck as SharePendingGrant, cl as ShareRole, cm as Spinner, cn as SpinnerProps, co as SwipeableRowLabels, cp as TabItem, cq as Tabs, cr as TabsLabels, cs as TabsProps, ct as Textarea, cu as TextareaProps, cv as TopBarLabels, cw as TypedConfirmField, cx as TypedConfirmFieldLabels, cy as TypedConfirmFieldProps, cz as TypedMatch, cA as UiKitLabelOverrides, cB as UiKitLabels, cC as UiKitProvider, cD as UiKitProviderProps, cE as UseFilePickerOptions, cF as UseFilePickerReturn, cG as buttonClasses, cH as feedbackCategoryRank, cI as formatFileSize, cJ as matchesAccept, cK as missingKitLabels, cL as nextFeedbackStatus, cM as pastedName, cN as resolvePasswordRevealLabels, cO as selectableFeedbackStatuses, cP as typedMatches, cQ as useConfirm, cR as useFilePicker, cS as useKitChartTooltipPlacement, cT as useKitDateFormatter, cU as useKitFileLabels, cV as useKitLabelOverrides, cW as useKitLabels, cX as useKitLink, cY as useKitLocale, cZ as useKitWeekStart, c_ as visibleFeedbackStatuses } from './feedback-
|
|
28
|
+
export { A as AppShellLabels, B as Button, a as ButtonClassesOptions, b as ButtonLinkProps, c as ButtonProps, d as ButtonSize, e as ButtonTone, f as ButtonVariant, C as CalculatorLabels, g as Card, h as CardAction, i as CardActionProps, j as CardContent, k as CardContentProps, l as CardDensity, m as CardDescription, n as CardDescriptionProps, o as CardFooter, p as CardFooterProps, q as CardHeader, r as CardHeaderProps, s as CardProps, t as CardTitle, u as CardTitleLevel, v as CardTitleProps, w as CardTone, x as CharacterCountLabels, y as ChartTooltipPlacement, z as ChatComposer, D as ChatComposerHandle, E as ChatComposerLabels, F as ChatComposerProps, G as ChatComposerSlotContext, H as ComboboxLabels, I as CommonLabels, J as ConfirmDialogLabels, K as ConfirmFn, L as ConfirmOptions, M as ConfirmProvider, N as ConfirmProviderProps, O as ConfirmTone, P as CopyButton, Q as CopyButtonLabels, R as CopyButtonProps, S as CurrencyLabels, T as CurrentPasswordInput, U as CurrentPasswordInputLabels, V as CurrentPasswordInputProps, W as DEFAULT_APP_SHELL_LABELS, X as DEFAULT_ATTACHMENT_ACCEPT, Y as DEFAULT_CALCULATOR_LABELS, Z as DEFAULT_CHARACTER_COUNT_LABELS, _ as DEFAULT_COMBOBOX_LABELS, $ as DEFAULT_COMMON_LABELS, a0 as DEFAULT_CONFIRM_DIALOG_LABELS, a1 as DEFAULT_COPY_BUTTON_LABELS, a2 as DEFAULT_CURRENCY_LABELS, a3 as DEFAULT_DANGER_CONFIRM_LABELS, a4 as DEFAULT_DATE_PICKER_LABELS, a5 as DEFAULT_FEEDBACK_ATTACHMENT_LABELS, a6 as DEFAULT_FEEDBACK_COMPOSER_LABELS, a7 as DEFAULT_FEEDBACK_DIALOG_LABELS, a8 as DEFAULT_FEEDBACK_THREAD_LABELS, a9 as DEFAULT_FILE_LABELS, aa as DEFAULT_FILE_PICKER_LABELS, ab as DEFAULT_FORM_ACTIONS_LABELS, ac as DEFAULT_IBAN_INPUT_LABELS, ad as DEFAULT_MAX_ATTACHMENTS, ae as DEFAULT_MAX_ATTACHMENT_BYTES, af as DEFAULT_MULTI_SELECT_LABELS, ag as DEFAULT_PASSWORD_REVEAL_LABELS, ah as DEFAULT_PHONE_INPUT_LABELS, ai as DEFAULT_PICKER_SHEET_LABELS, aj as DEFAULT_SHARE_CARD_LABELS, ak as DEFAULT_SWIPEABLE_ROW_LABELS, al as DEFAULT_TABS_LABELS, am as DEFAULT_TOP_BAR_LABELS, an as DangerConfirm, ao as DangerConfirmLabels, ap as DangerConfirmProps, aq as DangerConfirmValues, ar as DangerConsequence, as as DatePickerLabels, at as EmptyState, au as EmptyStateProps, av as FEEDBACK_CATEGORY_META, aw as FEEDBACK_CATEGORY_ORDER, ax as FEEDBACK_STATUS_META, ay as FEEDBACK_STATUS_ORDER, az as FIELD_BASE, aA as FIELD_DISPLAY, aB as FIELD_FLOATING_PAD, aC as FIELD_INVALID, aD as FIELD_TRIGGER, aE as FIELD_WRITABLE_LOOK, aF as FLOATING_INPUT_CLASS, aG as FLOATING_LABEL_CLASS, aH as FeedbackAttachmentError, aI as FeedbackAttachmentErrorInfo, aJ as FeedbackAttachmentField, aK as FeedbackAttachmentFieldLabels, aL as FeedbackAttachmentFieldMultipleProps, aM as FeedbackAttachmentFieldProps, aN as FeedbackAttachmentFieldRefsProps, aO as FeedbackAttachmentFieldSingleProps, aP as FeedbackAttachmentLabels, aQ as FeedbackAttachmentRef, aR as FeedbackAttachmentRefsError, aS as FeedbackCategory, aT as FeedbackCategoryBadge, aU as FeedbackCategoryOption, aV as FeedbackComposer, aW as FeedbackComposerAttachment, aX as FeedbackComposerHandle, aY as FeedbackComposerLabels, aZ as FeedbackComposerProps, a_ as FeedbackComposerSlotContext, a$ as FeedbackDetail, b0 as FeedbackDetailSection, b1 as FeedbackDialog, b2 as FeedbackDialogLabels, b3 as FeedbackDialogMultipleProps, b4 as FeedbackDialogProps, b5 as FeedbackDialogSingleProps, b6 as FeedbackDialogTextLabels, b7 as FeedbackMultipleSubmission, b8 as FeedbackNoteAttachment, b9 as FeedbackNoteEditor, ba as FeedbackProse, bb as FeedbackStatus, bc as FeedbackStatusBadge, bd as FeedbackStatusTransitions, be as FeedbackSubmission, bf as FeedbackThread, bg as FeedbackThreadAttachment, bh as FeedbackThreadEvent, bi as FeedbackThreadItem, bj as FeedbackThreadLabels, bk as FeedbackThreadMessage, bl as FeedbackThreadProps, bm as FieldChevron, bn as FieldChevronProps, bo as FieldHint, bp as FieldHintProps, bq as FileButton, br as FileButtonProps, bs as FileLabels, bt as FilePickerLabels, bu as FileRejection, bv as FileRejectionReason, bw as FileScreenOptions, bx as FloatingField, by as FloatingFieldProps, bz as FormActions, bA as FormActionsAlign, bB as FormActionsDestructive, bC as FormActionsLabels, bD as FormActionsPlacement, bE as FormActionsProps, bF as FormActionsStickyWithin, bG as FormActionsSubmitProps, bH as FormActionsSubmitShortcut, bI as IbanInput, bJ as IbanInputLabels, bK as IbanInputProps, bL as IconButton, bM as IconButtonGlyphSize, bN as IconButtonLinkProps, bO as IconButtonProps, bP as IconButtonSize, bQ as IconButtonTone, bR as IconButtonToneColor, bS as IconButtonVariant, bT as Input, bU as InputProps, bV as KitDateFormatContext, bW as KitDateFormatter, bX as KitLinkComponent, bY as KitLinkProps, bZ as Label, b_ as LabelOverride, b$ as LabelProps, c0 as MultiSelectLabels, c1 as PHONE_QUERY, c2 as PasswordRevealLabels, c3 as PhoneInput, c4 as PhoneInputLabels, c5 as PhoneInputProps, c6 as PickerSheetLabels, c7 as ResponsiveFormActionsPlacement, c8 as Select, c9 as SelectProps, ca as ShareAddRequest, cb as ShareCandidate, cc as ShareCard, cd as ShareCardLabels, ce as ShareCardProps, cf as ShareDialog, cg as ShareDialogProps, ch as ShareGrantee, ci as SharePanel, cj as SharePanelProps, ck as SharePendingGrant, cl as ShareRole, cm as Spinner, cn as SpinnerProps, co as SwipeableRowLabels, cp as TabItem, cq as Tabs, cr as TabsLabels, cs as TabsProps, ct as Textarea, cu as TextareaProps, cv as TopBarLabels, cw as TypedConfirmField, cx as TypedConfirmFieldLabels, cy as TypedConfirmFieldProps, cz as TypedMatch, cA as UiKitLabelOverrides, cB as UiKitLabels, cC as UiKitProvider, cD as UiKitProviderProps, cE as UseFilePickerOptions, cF as UseFilePickerReturn, cG as buttonClasses, cH as feedbackCategoryRank, cI as formatFileSize, cJ as matchesAccept, cK as missingKitLabels, cL as nextFeedbackStatus, cM as pastedName, cN as resolvePasswordRevealLabels, cO as selectableFeedbackStatuses, cP as typedMatches, cQ as useConfirm, cR as useFilePicker, cS as useKitChartTooltipPlacement, cT as useKitDateFormatter, cU as useKitFileLabels, cV as useKitLabelOverrides, cW as useKitLabels, cX as useKitLink, cY as useKitLocale, cZ as useKitWeekStart, c_ as visibleFeedbackStatuses } from './feedback-BXKH-ToU.js';
|
|
29
29
|
export { Field, FieldControlProps, FieldLabelVisibility, FieldProps, FieldRenderMeta } from './components/field.js';
|
|
30
30
|
export { SearchField, SearchFieldProps } from './components/search-field.js';
|
|
31
31
|
export { DropdownPanel, DropdownPanelProps, DropdownSearchHeader, DropdownSearchHeaderProps, useDropdown, useDropdownSearch } from './components/dropdown.js';
|
|
@@ -42,7 +42,7 @@ export { PickerSheet, PickerSheetProps, SHEET_ROW_CLASS } from './components/pic
|
|
|
42
42
|
export { EntityCombobox, EntityComboboxProps } from './components/entity-combobox.js';
|
|
43
43
|
export { MultiEntityCombobox, MultiEntityComboboxProps } from './components/multi-entity-combobox.js';
|
|
44
44
|
export { MultiSelect, MultiSelectOption, MultiSelectProps } from './components/multi-select.js';
|
|
45
|
-
export { Tooltip, TooltipPlacement, TooltipProps, TooltipSide, TooltipSize, TooltipViewport, placeTooltip } from './components/tooltip.js';
|
|
45
|
+
export { Tooltip, TooltipPlacement, TooltipProps, TooltipSide, TooltipSize, TooltipTap, TooltipViewport, placeTooltip } from './components/tooltip.js';
|
|
46
46
|
export { UserAvatar, UserAvatarBadge, UserAvatarProps, avatarInitials } from './components/user-avatar.js';
|
|
47
47
|
export { LanguageSetting, LanguageSettingProps, ThemeSetting, ThemeSettingProps } from './components/settings-fields.js';
|
|
48
48
|
export { DEFAULT_FIELD_SYNC_LABELS, FIELD_SYNC_FRAME, FIELD_SYNC_SAVED_MS, FieldSyncIndicator, FieldSyncIndicatorProps, FieldSyncLabels, FieldSyncRow, FieldSyncRowProps, FieldSyncState, UseFieldSyncOptions, UseFieldSyncReturn, resolveFieldSyncLabels, useFieldSync } from './components/field-sync.js';
|
|
@@ -121,7 +121,7 @@ export { PageHeader, PageHeaderActionsAlign, PageHeaderMobileLayout, PageHeaderP
|
|
|
121
121
|
export { BreadcrumbItem, BreadcrumbLinkProps, Breadcrumbs, BreadcrumbsLabels, BreadcrumbsProps, DEFAULT_BREADCRUMBS_LABELS } from './components/breadcrumbs.js';
|
|
122
122
|
export { TextLink, TextLinkCurrent, TextLinkProps, TextLinkRenderProps, TextLinkTone, TextLinkUnderline } from './components/text-link.js';
|
|
123
123
|
export { DEFAULT_TOAST_LABELS, TOAST_ACTION_DURATION, ToastAction, ToastId, ToastLabels, ToastOptions, ToastPosition, ToastPromiseOptions, ToastRedoOptions, ToastSwipeDirection, ToastUndoOptions, Toaster, ToasterOffset, ToasterProps, toast } from './components/toast.js';
|
|
124
|
-
export { C as ColumnFilter, D as DEFAULT_DATA_TABLE_LABELS, a as DEFAULT_DATA_TABLE_SORT_LABELS, b as DataTable, G as DataTableCellProps, c as DataTableChrome, d as DataTableColumn, e as DataTableDensity, H as DataTableHeadProps, f as DataTableLabels, g as DataTableProps, h as DataTableRowAction, i as DataTableSortLabels, F as FilterState, j as FilterValue, M as MobileSwipeActions, S as ServerPagination, T as TableUrlState, k as TableUrlStateProps, l as TableUrlSync, U as UseTableUrlStateOptions, m as UseTableUrlStateReturn, n as dateFilter, o as decodeFilterValue, p as decodeFilterValueOfType, q as defaultFilterState, r as encodeFilterValue, s as filterHref, t as isFilterActive, u as missingDataTableLabels, v as numberFilter, w as readTableUrlState, x as resolveDataTableLabels, y as resolveFilter, z as rowMatches, A as selectFilter, B as textFilter, E as useTableUrlState } from './data-table-labels-
|
|
124
|
+
export { C as ColumnFilter, D as DEFAULT_DATA_TABLE_LABELS, a as DEFAULT_DATA_TABLE_SORT_LABELS, b as DataTable, G as DataTableCellProps, c as DataTableChrome, d as DataTableColumn, e as DataTableDensity, H as DataTableHeadProps, f as DataTableLabels, g as DataTableProps, h as DataTableRowAction, i as DataTableSortLabels, F as FilterState, j as FilterValue, M as MobileSwipeActions, S as ServerPagination, T as TableUrlState, k as TableUrlStateProps, l as TableUrlSync, U as UseTableUrlStateOptions, m as UseTableUrlStateReturn, n as dateFilter, o as decodeFilterValue, p as decodeFilterValueOfType, q as defaultFilterState, r as encodeFilterValue, s as filterHref, t as isFilterActive, u as missingDataTableLabels, v as numberFilter, w as readTableUrlState, x as resolveDataTableLabels, y as resolveFilter, z as rowMatches, A as selectFilter, B as textFilter, E as useTableUrlState } from './data-table-labels-Cdn1QS2k.js';
|
|
125
125
|
export { SortCycle, SortDir, SortState, SortStepOptions, decodeSorts, encodeSorts, nextSorts, normalizeSorts } from './components/data-table-sort.js';
|
|
126
126
|
export { PAGE_SIZE_OPTIONS, Pagination } from './components/data-table-pagination.js';
|
|
127
127
|
export { FilterPopover } from './components/data-table-filter-popover.js';
|
|
@@ -149,8 +149,8 @@ export { DEFAULT_UI_KIT_LABELS } from './i18n/defaults.js';
|
|
|
149
149
|
export { kitLabelStrings } from './i18n/review.js';
|
|
150
150
|
export { KIT_LANGUAGES, KitLanguage, KitLanguageCode, formatLocaleOf, languageOptions, loadUiKitLabels, peekUiKitLabels, resolveLanguage, useUiKitLabels } from './i18n/languages.js';
|
|
151
151
|
export { withAllPlurals } from './i18n/plurals.js';
|
|
152
|
-
export { ApiTranslationReview, ApiTranslationReviewWrite, DEFAULT_TRANSLATION_REVIEW_FILTER, REVIEW_STATUSES, ReviewStatus, TranslationCorrection, TranslationReview, TranslationReviewFilter, TranslationReviewKey, TranslationReviewWrite, TranslationRow, TranslationRowsInput, TranslationSummary, TranslationVerdict, dropReviews, filterTranslationRows, flattenStrings, fromApiReview, keyInArea, keyInAreas, keyNamespace, mergeReviews, placeholderMismatch, placeholderTokens, reviewStatus, reviewWrite, summariseRows, toApiWrite, translationCorrections, translationRows } from './lib/translation-review.js';
|
|
153
|
-
export { TranslationReviewPanel, TranslationReviewPanelProps } from './components/translation-review.js';
|
|
152
|
+
export { ApiTranslationReview, ApiTranslationReviewWrite, DEFAULT_TRANSLATION_REVIEW_FILTER, REVIEW_STATUSES, ReviewStatus, TranslationCorrection, TranslationReview, TranslationReviewFilter, TranslationReviewKey, TranslationReviewUndo, TranslationReviewWrite, TranslationRow, TranslationRowGroup, TranslationRowsInput, TranslationSummary, TranslationVerdict, dropReviews, filterTranslationRows, flattenStrings, fromApiReview, groupTranslationRows, keyInArea, keyInAreas, keyNamespace, mergeReviews, placeholderMismatch, placeholderTokens, reviewStatus, reviewUndo, reviewWrite, summariseRows, toApiWrite, translationCorrections, translationRows, unreviewedRows } from './lib/translation-review.js';
|
|
153
|
+
export { TranslationReviewGroupBy, TranslationReviewOrigin, TranslationReviewPanel, TranslationReviewPanelProps, TranslationReviewSaveInfo } from './components/translation-review.js';
|
|
154
154
|
export { DEFAULT_LEGAL_LABELS, LegalLabels, LegalLayout, LegalLayoutProps, LegalLink, LegalLinks, LegalLinksProps, LegalSection, LegalSectionProps } from './components/legal.js';
|
|
155
155
|
export { CheckboxGroup, CheckboxGroupLegendVisibility, CheckboxGroupOption, CheckboxGroupProps } from './components/checkbox-group.js';
|
|
156
156
|
export { OneTimeCodeInput, OneTimeCodeInputProps } from './components/one-time-code-input.js';
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { useRowSwipe } from "./hooks/use-row-swipe.js";
|
|
|
17
17
|
import { useFileDrop, dragHasFiles } from "./hooks/use-file-drop.js";
|
|
18
18
|
import { useDebounce, useDebouncedCallback } from "./hooks/use-debounce.js";
|
|
19
19
|
import { useSearchParamState, useTabParam, useDialogParam } from "./hooks/use-search-param-state.js";
|
|
20
|
+
import { useSearchParamsState } from "./hooks/use-search-param-state.js";
|
|
20
21
|
import { useCopyToClipboard, copyToClipboard } from "./hooks/use-copy-to-clipboard.js";
|
|
21
22
|
import { useHotkey, parseHotkey, matchesHotkey } from "./hooks/use-hotkey.js";
|
|
22
23
|
import { useAuthedSrc } from "./hooks/use-authed-src.js";
|
|
@@ -188,7 +189,10 @@ import {
|
|
|
188
189
|
reviewWrite,
|
|
189
190
|
mergeReviews,
|
|
190
191
|
dropReviews,
|
|
191
|
-
translationCorrections
|
|
192
|
+
translationCorrections,
|
|
193
|
+
groupTranslationRows,
|
|
194
|
+
unreviewedRows,
|
|
195
|
+
reviewUndo
|
|
192
196
|
} from "./lib/translation-review.js";
|
|
193
197
|
import {
|
|
194
198
|
TranslationReviewPanel,
|
|
@@ -311,6 +315,7 @@ export {
|
|
|
311
315
|
formatNationalPhone,
|
|
312
316
|
formatPhone,
|
|
313
317
|
fromApiReview,
|
|
318
|
+
groupTranslationRows,
|
|
314
319
|
guessMapping,
|
|
315
320
|
ibanCheckDigits,
|
|
316
321
|
ibanProblem,
|
|
@@ -337,6 +342,7 @@ export {
|
|
|
337
342
|
readTableUrlState,
|
|
338
343
|
readTextFile,
|
|
339
344
|
reviewStatus,
|
|
345
|
+
reviewUndo,
|
|
340
346
|
reviewWrite,
|
|
341
347
|
roleOfColumn,
|
|
342
348
|
serverWake,
|
|
@@ -347,6 +353,7 @@ export {
|
|
|
347
353
|
translationCorrections,
|
|
348
354
|
translationRows,
|
|
349
355
|
typedMatches,
|
|
356
|
+
unreviewedRows,
|
|
350
357
|
useAnchoredPanel,
|
|
351
358
|
useAnchoredRect,
|
|
352
359
|
useAnnounce,
|
|
@@ -367,6 +374,7 @@ export {
|
|
|
367
374
|
useOverlayHistory,
|
|
368
375
|
useRowSwipe,
|
|
369
376
|
useSearchParamState,
|
|
377
|
+
useSearchParamsState,
|
|
370
378
|
useServerWakeStage,
|
|
371
379
|
useTabParam,
|
|
372
380
|
useTableUrlState,
|