@eifi1/ui-kit 0.46.1 → 0.47.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 (98) hide show
  1. package/README.md +5 -5
  2. package/dist/components/data-table.js +18 -1
  3. package/dist/components/data-table.js.map +1 -1
  4. package/dist/components/row-actions.d.ts +25 -0
  5. package/dist/components/row-actions.js +13 -3
  6. package/dist/components/row-actions.js.map +1 -1
  7. package/dist/components/tabs.d.ts +24 -16
  8. package/dist/components/tabs.js +37 -31
  9. package/dist/components/tabs.js.map +1 -1
  10. package/dist/components/ui-labels.js +1 -1
  11. package/dist/components/ui-labels.js.map +1 -1
  12. package/dist/eslint/index.js +1 -1
  13. package/dist/feedback/feedback-attachment-download.d.ts +19 -0
  14. package/dist/feedback/feedback-attachment-download.js +59 -0
  15. package/dist/feedback/feedback-attachment-download.js.map +1 -0
  16. package/dist/feedback/feedback-comment-thread.d.ts +17 -6
  17. package/dist/feedback/feedback-comment-thread.js +21 -2
  18. package/dist/feedback/feedback-comment-thread.js.map +1 -1
  19. package/dist/feedback/feedback-entry-file.d.ts +61 -0
  20. package/dist/feedback/feedback-entry-file.js +76 -0
  21. package/dist/feedback/feedback-entry-file.js.map +1 -0
  22. package/dist/feedback/feedback-public-list.d.ts +18 -5
  23. package/dist/feedback/feedback-public-list.js +8 -0
  24. package/dist/feedback/feedback-public-list.js.map +1 -1
  25. package/dist/feedback/feedback-public-types.d.ts +7 -2
  26. package/dist/feedback/feedback-replies.d.ts +26 -9
  27. package/dist/feedback/feedback-replies.js +20 -10
  28. package/dist/feedback/feedback-replies.js.map +1 -1
  29. package/dist/feedback/feedback-row-detail-labels.js +0 -1
  30. package/dist/feedback/feedback-row-detail-labels.js.map +1 -1
  31. package/dist/feedback/feedback-row-detail.d.ts +23 -10
  32. package/dist/feedback/feedback-row-detail.js +10 -54
  33. package/dist/feedback/feedback-row-detail.js.map +1 -1
  34. package/dist/feedback.d.ts +1 -0
  35. package/dist/feedback.js +1 -0
  36. package/dist/feedback.js.map +1 -1
  37. package/dist/i18n/german.js +1 -6
  38. package/dist/i18n/german.js.map +1 -1
  39. package/dist/i18n/locales/en.js +1 -6
  40. package/dist/i18n/locales/en.js.map +2 -2
  41. package/dist/i18n/locales/es.js +1 -6
  42. package/dist/i18n/locales/es.js.map +1 -1
  43. package/dist/i18n/locales/fr.js +1 -6
  44. package/dist/i18n/locales/fr.js.map +1 -1
  45. package/dist/i18n/locales/hu.js +1 -6
  46. package/dist/i18n/locales/hu.js.map +1 -1
  47. package/dist/i18n/locales/it.js +1 -6
  48. package/dist/i18n/locales/it.js.map +1 -1
  49. package/dist/i18n/locales/zh.js +1 -6
  50. package/dist/i18n/locales/zh.js.map +1 -1
  51. package/dist/i18n/review.js +0 -1
  52. package/dist/i18n/review.js.map +1 -1
  53. package/dist/index.d.ts +2 -4
  54. package/dist/index.js +11 -4
  55. package/dist/index.js.map +1 -1
  56. package/dist/notifications/device-zone-report.d.ts +1 -1
  57. package/dist/notifications/device-zone-report.js.map +1 -1
  58. package/dist/notifications/notification-types.d.ts +0 -3
  59. package/dist/notifications/notifications-labels.d.ts +2 -15
  60. package/dist/notifications/notifications-labels.js +0 -4
  61. package/dist/notifications/notifications-labels.js.map +1 -1
  62. package/dist/notifications/quiet-hours-setting.d.ts +3 -8
  63. package/dist/notifications/quiet-hours-setting.js +8 -3
  64. package/dist/notifications/quiet-hours-setting.js.map +1 -1
  65. package/dist/theme/theme-store.d.ts +4 -4
  66. package/dist/theme/theme-store.js +1 -0
  67. package/dist/theme/theme-store.js.map +1 -1
  68. package/package.json +2 -2
  69. package/src/components/data-table.tsx +29 -3
  70. package/src/components/row-actions.tsx +42 -3
  71. package/src/components/tabs.tsx +66 -44
  72. package/src/components/ui-labels.ts +1 -1
  73. package/src/feedback/feedback-attachment-download.tsx +77 -0
  74. package/src/feedback/feedback-comment-thread.tsx +42 -7
  75. package/src/feedback/feedback-entry-file.tsx +150 -0
  76. package/src/feedback/feedback-public-list.tsx +25 -4
  77. package/src/feedback/feedback-public-types.ts +7 -2
  78. package/src/feedback/feedback-replies.tsx +46 -19
  79. package/src/feedback/feedback-row-detail-labels.ts +0 -1
  80. package/src/feedback/feedback-row-detail.tsx +35 -86
  81. package/src/feedback.ts +1 -0
  82. package/src/i18n/german.ts +1 -6
  83. package/src/i18n/locales/es.ts +1 -6
  84. package/src/i18n/locales/fr.ts +1 -6
  85. package/src/i18n/locales/hu.ts +1 -6
  86. package/src/i18n/locales/it.ts +1 -6
  87. package/src/i18n/locales/zh.ts +1 -6
  88. package/src/i18n/review.ts +0 -1
  89. package/src/index.ts +10 -3
  90. package/src/notifications/device-zone-report.ts +1 -1
  91. package/src/notifications/notification-types.ts +0 -3
  92. package/src/notifications/notifications-labels.ts +2 -19
  93. package/src/notifications/quiet-hours-setting.tsx +16 -11
  94. package/src/theme/theme-store.ts +13 -5
  95. package/dist/notifications/time-zone-select.d.ts +0 -54
  96. package/dist/notifications/time-zone-select.js +0 -71
  97. package/dist/notifications/time-zone-select.js.map +0 -1
  98. package/src/notifications/time-zone-select.tsx +0 -125
@@ -261,7 +261,6 @@ const KIT_LABEL_SAMPLES = {
261
261
  "notifications.quietDescription": [[false], [true], [false, true], [true, true]],
262
262
  "notifications.quietZone": [["{{zone}}"]],
263
263
  "notifications.bellUnread": one,
264
- "notifications.deviceZone": [["{{zone}}"]],
265
264
  "notifications.iosInstall": [["{{app}}"]],
266
265
  "notifications.testSent": one,
267
266
  "notifications.explainerBody": [["{{app}}"]],
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/i18n/review.ts"],"sourcesContent":["import { legalOperatorText } from \"../components/legal\";\nimport type { LegalOperator, LegalOperatorText } from \"../components/legal\";\nimport 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 143 of them are functions (`(count) => \"3 results\"`; 0.28.0, every one\n * listed in {@link KIT_LABEL_SAMPLES}), which a bundle flattener skips. This turns a\n * 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 * - The legal sections that name the operator (0.28) take one object; its sample is a\n * placeholder per field and the key calls it `operator`:\n * `legal.sections.privacy.controller.body(operator)`. Pass the app's operator in\n * `options` and those rows read the real sentence — same keys — so the lawyer\n * reviewing the `legal` area reads what the page says:\n *\n * kitLabelStrings(UI_KIT_LABELS_DE_CH, { operator: OPERATOR, locale: \"de-CH\" })\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, options: KitLabelStringsOptions = {}): Record<string, string> {\n const out: Record<string, string> = {};\n const operator = options.operator && legalOperatorText(options.operator, options.locale);\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 // The key is the SAMPLE's (`…body(operator)`), whatever the label is called with,\n // so rows with and without the app's operator join on the same keys.\n const called = operator ? args.map((arg) => (arg === LEGAL_OPERATOR_SAMPLE ? operator : arg)) : args;\n out[`${path}(${args.map(sampleName).filter((a) => a !== \"\").join(\", \")})`] = render(\n node as (...args: unknown[]) => unknown,\n called,\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\nexport interface KitLabelStringsOptions {\n /**\n * The app's operator (0.28): the legal sections that name it — the imprint's operator\n * and contact, the controller, the privacy contact, the governing law — are rendered\n * with the real values instead of `{{name}}`-style placeholders, so a reviewer (the\n * lawyer, under the `legal` area) reads the sentence the page shows. The keys do not\n * change: `legal.sections.impressum.operator.body(operator)` either way.\n */\n operator?: LegalOperator;\n /** The language the operator's country is named in — the locale these rows are\n * for (\"de-CH\" → \"Schweiz\"). Default English. */\n locale?: string;\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 (arg === LEGAL_OPERATOR_SAMPLE) return \"operator\";\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 legal sections' operator (0.28) as placeholders, one per field — so a translation\n * that drops the city or the email is caught by the same check as a dropped `{{name}}`\n * anywhere else. Named `operator` in the key; {@link kitLabelStrings}' `operator` option\n * swaps the app's real values in for it.\n */\nconst LEGAL_OPERATOR_SAMPLE: LegalOperatorText = Object.freeze({\n name: \"{{name}}\",\n postalCode: \"{{postalCode}}\",\n city: \"{{city}}\",\n region: \"{{region}}\",\n country: \"{{country}}\",\n email: \"{{email}}\",\n bindingLanguage: \"{{bindingLanguage}}\",\n});\nconst operatorSample = [[LEGAL_OPERATOR_SAMPLE]] 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 \"common.aboutField\": [[\"{{field}}\"]],\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 \"dataTable.filterColumn\": [\n [\"{{column}}\", false],\n [\"{{column}}\", true],\n ],\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 \"feedbackDialog.submitHint\": [[true], [false]],\n \"feedbackToast.attachmentTooMany\": one,\n \"feedbackToast.statusChanged\": [[\"{{status}}\", \"{{title}}\"]],\n \"feedbackToast.statusRestored\": [[\"{{status}}\", \"{{title}}\"]],\n \"feedbackPage.userFallback\": [[42]],\n // A real value, not a placeholder: the chip upper-cases what it is given, and\n // \"{{ENVIRONMENT}}\" would read as a placeholder of that name.\n \"feedbackPage.environment\": [[\"dev\"]],\n \"feedbackPage.reworkChip\": one,\n \"feedbackDetail.download\": [[\"{{name}}\"]],\n \"feedbackDetail.resolvedAt\": [[\"{{date}}\"]],\n \"feedbackPublic.total\": one,\n \"feedbackPublic.comments\": one,\n \"feedbackPublic.votes\": one,\n \"feedbackPublic.filedBy\": [[\"{{name}}\"]],\n \"feedbackPublic.page\": [[3]],\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.clearedToast\": 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 \"signChip.switchTo\": [[\"{{next}}\"]],\n \"rowActions.actionsFor\": [[\"{{name}}\"]],\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 \"legal.sections.impressum.operator.body\": operatorSample,\n \"legal.sections.impressum.contact.body\": operatorSample,\n \"legal.sections.privacy.controller.body\": operatorSample,\n \"legal.sections.privacy.contact.body\": operatorSample,\n \"legal.sections.terms.law.body\": operatorSample,\n // 0.28.1: the binding language, named in the reader's language.\n \"legal.sections.terms.language.body\": operatorSample,\n \"legal.translation.note\": operatorSample,\n \"legal.translation.show\": operatorSample,\n // 0.29.0: the sign-in and sign-up parts (docs/auth-harmonization.md).\n \"signIn.tagHint\": [[\"{{taggedAddress}}\"]],\n \"register.emailTagUse\": [[\"{{address}}\"]],\n \"forgotPassword.sent\": [[\"{{email}}\"]],\n \"resetPassword.intro\": [[\"{{email}}\"]],\n \"verifyEmail.resendIn\": [[30]],\n \"acceptInvitation.joined\": [[\"{{name}}\"]],\n \"companySwitcher.current\": [[\"{{name}}\"]],\n // 0.30.0: the user administration and the account's own settings\n // (docs/user-admin-harmonization.md). `rateLimited` with and without a wait.\n \"signIn.recoveryCodeHint\": [[16]],\n \"signIn.rateLimited\": [[], [30], [300]],\n \"register.rateLimited\": [[], [30], [300]],\n \"forgotPassword.rateLimited\": [[], [30], [300]],\n \"resetPassword.rateLimited\": [[], [30], [300]],\n \"verifyEmail.rateLimited\": [[], [30], [300]],\n \"emailChange.emailTagUse\": [[\"{{address}}\"]],\n \"emailChange.pending\": [[\"{{newEmail}}\"]],\n \"emailChange.pendingHint\": [[\"{{currentEmail}}\"]],\n \"emailChange.confirmed\": [[\"{{email}}\"]],\n \"emailChange.rateLimited\": [[], [30], [300]],\n \"sessions.lastActive\": [[\"{{when}}\"]],\n \"sessions.ip\": [[\"{{address}}\"]],\n \"sessions.revokeItem\": [[\"{{device}}\"]],\n \"notifications.quietDescription\": [[false], [true], [false, true], [true, true]],\n \"notifications.quietZone\": [[\"{{zone}}\"]],\n \"notifications.bellUnread\": one,\n \"notifications.deviceZone\": [[\"{{zone}}\"]],\n \"notifications.iosInstall\": [[\"{{app}}\"]],\n \"notifications.testSent\": one,\n \"notifications.explainerBody\": [[\"{{app}}\"]],\n \"notifications.added\": [[\"{{date}}\"]],\n \"notifications.lastDelivery\": [[\"{{date}}\"]],\n \"notifications.failures\": one,\n \"notifications.removeItem\": [[\"{{device}}\"]],\n \"notifications.unsubscribeAbout\": [[\"{{type}}\"]],\n \"notifications.stopAll\": [[\"{{app}}\"]],\n \"notifications.stoppedAll\": [[\"{{app}}\"]],\n \"deleteAccount.afterDays\": [[1], [30]],\n \"deleteAccount.handOver\": [[1], [3]],\n \"deleteAccount.lastAdminOf\": [[\"{{companies}}\"]],\n \"deleteAccount.rateLimited\": [[], [30], [300]],\n \"dataExport.rateLimited\": [[], [30], [300]],\n \"userRoster.actionsFor\": [[\"{{name}}\"]],\n \"roleSelect.roleOf\": [[\"{{name}}\"]],\n \"roleSelect.unavailable\": [[\"{{role}}\", \"{{reason}}\"]],\n \"adminActionLog.by\": [[\"{{actor}}\"]],\n \"adminActionLog.filteredTo\": [[\"{{target}}\"]],\n \"adminActionLog.filterBy\": [[\"{{target}}\"]],\n // 0.45.0 (admin §9.4): a company rename that logged both names.\n \"adminActionLog.renamedFromTo\": [[\"{{from}}\", \"{{to}}\"]],\n \"transferOwnership.title\": [[\"{{name}}\"]],\n \"transferOwnership.unavailable\": [[\"{{account}}\", \"{{reason}}\"]],\n \"invitations.sent\": [[\"{{date}}\"]],\n \"invitations.expires\": [[\"{{date}}\"]],\n \"invitations.invitedBy\": [[\"{{name}}\"]],\n \"invitations.resend\": [[\"{{email}}\"]],\n \"invitations.revoke\": [[\"{{email}}\"]],\n \"invitations.linkReady\": [[\"{{email}}\"]],\n \"invitations.notSent\": [[\"{{email}}\"]],\n \"accountState.deletionOn\": [[\"{{date}}\"]],\n // 0.31.0: the settings shell, the landing page and the demo\n // (docs/settings-harmonization.md, docs/landing-demo-harmonization.md). An optional\n // argument both given and left out: the subject without an app name, the refusal\n // without a `Retry-After`.\n \"settings.noMatches\": [[\"{{query}}\"]],\n \"settings.matchCount\": one,\n \"landing.accessSubject\": [[\"{{app}}\"], [undefined]],\n \"demo.rateLimited\": [[], [1], [3]],\n \"demo.hoursLeft\": [\n [1, 1],\n [3, 12],\n ],\n \"demo.minutesLeft\": one,\n // 0.32.0: the subscription parts (docs/billing-harmonization.md §7). A trial or a grant\n // ending today, tomorrow and in five days; the guest's notice with and without the\n // item's name.\n \"billing.choose\": [[\"{{plan}}\"]],\n \"billing.upgrade\": [[\"{{plan}}\"]],\n \"billing.downgrade\": [[\"{{plan}}\"]],\n \"billing.trialEnding\": [[0], [1], [5]],\n \"billing.grantEnding\": [[0], [1], [5]],\n \"billing.guestReadOnly\": [[\"{{item}}\"], [undefined]],\n \"billing.usage\": [[\"{{used}}\", \"{{limit}}\"]],\n \"billing.contactSubject\": [[\"{{dimension}}\"]],\n \"billing.waitingChanges\": one,\n // 0.33.0: the limit's figure line (§14.11) and the operator's plan parts (§14.12).\n \"billing.limitUsageLine\": [[\"{{dimension}}\", \"{{used}}\", \"{{limit}}\"]],\n // 0.39: PlanSwitchConfirm's two lines with figures (§15.2.10).\n \"billing.switchFromTo\": [[\"{{from}}\", \"{{to}}\"]],\n \"billing.switchNextCharge\": [[\"{{date}}\"]],\n // 0.42 (§16): the buyer's name, or none once they are gone; the cancel's period end.\n \"billing.buyerHolds\": [[\"{{buyer}}\"], [undefined]],\n \"billing.paymentFailedAskBuyer\": [[\"{{buyer}}\"], [undefined]],\n \"billing.cancelConfirmBody\": [[\"{{date}}\"]],\n \"billing.portalOpensNewTab\": [[\"{{provider}}\", \"{{app}}\"], [\"{{provider}}\", undefined]],\n \"planChange.current\": [[\"{{plan}}\"]],\n \"planChange.changed\": [[\"{{from}}\", \"{{to}}\"]],\n \"planChange.set\": [[\"{{to}}\"]],\n \"planChange.untilDone\": [[\"{{date}}\"]],\n \"planChange.usageOf\": [[\"{{used}}\", \"{{limit}}\", \"{{dimension}}\"]],\n // 0.42.0 (docs/admin-harmonization.md §3.1): the menu row's count, the 403 page's app,\n // the users tile's new accounts.\n \"adminArea.waiting\": one,\n // 0.45.0 (admin §9.3.4): an IconButton's name with its waiting count.\n \"adminArea.waitingLabel\": [[\"{{label}}\", 1], [\"{{label}}\", 3]],\n // 0.45.0 (admin §9.2.4): the test mail's transport, masked address and limiter.\n \"mailTestCard.transport\": [[\"{{backend}}\"]],\n \"mailTestCard.sent\": [[\"{{address}}\"]],\n \"mailTestCard.rateLimited\": [[], [30], [300]],\n \"adminArea.forbiddenBody\": [[\"{{app}}\"]],\n \"adminArea.tiles.usersNew\": one,\n // 0.42.0 (docs/top-bar-harmonization.md §3.1): the sync indicator's counts, its time, the\n // state joined to its hint or to the app's scope; the dev plan and the role to go back to.\n \"topBarParts.sync.blocked\": one,\n \"topBarParts.sync.pending\": one,\n \"topBarParts.sync.syncedAt\": [[\"{{time}}\"]],\n \"topBarParts.sync.withHint\": [[\"{{state}}\", \"{{hint}}\"]],\n \"topBarParts.sync.scoped\": [[\"{{scope}}\", \"{{state}}\"]],\n \"topBarParts.sync.waitingShort\": one,\n \"topBarParts.dev.plan\": [[\"{{plan}}\"]],\n \"topBarParts.dev.backTo\": [[\"{{role}}\"]],\n // 0.43.0 (docs/tours-harmonization.md §3, §8): the tours page's counts, its group\n // option, the completion day and a reset's day and reason.\n \"tourCatalogue.groupAll\": one,\n \"tourCatalogue.groupOption\": [[\"{{group}}\", 1], [\"{{group}}\", 3]],\n \"tourCatalogue.stateAll\": one,\n \"tourCatalogue.stateTodo\": one,\n \"tourCatalogue.stateDone\": one,\n \"tourCatalogue.showing\": [[3, 16]],\n \"tourCatalogue.resetOn\": [[\"{{date}}\", \"{{reason}}\"]],\n \"tourCatalogue.points\": one,\n \"tourCatalogue.steps\": one,\n \"tourCatalogue.duration\": one,\n \"tourCatalogue.completedOn\": [[\"{{date}}\"]],\n // 0.45.0 (docs/local-first-harmonization.md §1.6): the sign-out question's count, in\n // both word sets.\n \"signOutPending.lost\": one,\n \"signOutPending.kept\": one,\n};\n"],"mappings":";AAAA,SAAS,yBAAyB;AAwC3B,SAAS,gBAAgB,QAAqB,UAAkC,CAAC,GAA2B;AACjH,QAAM,MAA8B,CAAC;AACrC,QAAM,WAAW,QAAQ,YAAY,kBAAkB,QAAQ,UAAU,QAAQ,MAAM;AACvF,QAAM,OAAO,CAAC,MAAe,SAAiB;AAC5C,QAAI,OAAO,SAAS,UAAU;AAC5B,UAAI,IAAI,IAAI;AAAA,IACd,WAAW,OAAO,SAAS,YAAY;AACrC,iBAAW,QAAQ,kBAAkB,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG;AAGlD,cAAM,SAAS,WAAW,KAAK,IAAI,CAAC,QAAS,QAAQ,wBAAwB,WAAW,GAAI,IAAI;AAChG,YAAI,GAAG,IAAI,IAAI,KAAK,IAAI,UAAU,EAAE,OAAO,CAAC,MAAM,MAAM,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,IAAI;AAAA,UAC3E;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF,WAAW,SAAS,QAAQ,OAAO,SAAS,UAAU;AACpD,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,IAAI,EAAG,MAAK,OAAO,OAAO,GAAG,IAAI,IAAI,GAAG,KAAK,GAAG;AAAA,IAC5F;AAAA,EACF;AACA,OAAK,QAAQ,EAAE;AACf,SAAO;AACT;AAgBA,SAAS,OAAO,OAAwC,MAAkC;AACxF,MAAI;AACF,WAAO,OAAO,MAAM,GAAG,IAAI,CAAC;AAAA,EAC9B,SAAS,OAAO;AACd,WAAO,UAAK,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,EACpE;AACF;AAIA,SAAS,WAAW,KAAsB;AACxC,MAAI,QAAQ,OAAW,QAAO;AAC9B,MAAI,QAAQ,sBAAuB,QAAO;AAC1C,MAAI,OAAO,QAAQ,SAAU,QAAO,kBAAkB,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,UAAU,GAAG;AAC1F,SAAO,OAAO,GAAG;AACnB;AAEA,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAQrB,MAAM,wBAA2C,OAAO,OAAO;AAAA,EAC7D,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,iBAAiB;AACnB,CAAC;AACD,MAAM,iBAAiB,CAAC,CAAC,qBAAqB,CAAC;AAOxC,MAAM,oBAA+E;AAAA,EAC1F,qBAAqB,CAAC,CAAC,aAAa,WAAW,CAAC;AAAA,EAChD,qBAAqB,CAAC,CAAC,WAAW,CAAC;AAAA,EACnC,2BAA2B;AAAA,IACzB,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,EAAE;AAAA,EACR;AAAA,EACA,6BAA6B,CAAC,CAAC,YAAY,CAAC;AAAA,EAC5C,8BAA8B,CAAC,CAAC,YAAY,CAAC;AAAA,EAC7C,yBAAyB,CAAC,CAAC,YAAY,CAAC;AAAA,EACxC,yBAAyB,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,EAChC,uBAAuB,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;AAAA,EACrC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AAAA,EAClC,0BAA0B,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,EACjC,0BAA0B;AAAA,IACxB,CAAC,cAAc,KAAK;AAAA,IACpB,CAAC,cAAc,IAAI;AAAA,EACrB;AAAA,EACA,oBAAoB,CAAC,CAAC,UAAU,CAAC;AAAA,EACjC,8BAA8B,CAAC,CAAC,UAAU,CAAC;AAAA,EAC3C,8BAA8B,CAAC,CAAC,YAAY,QAAQ,CAAC;AAAA,EACrD,uBAAuB,CAAC,CAAC,YAAY,WAAW,CAAC;AAAA,EACjD,6BAA6B;AAAA,EAC7B,qBAAqB,CAAC,CAAC,eAAe,CAAC;AAAA,EACvC,mBAAmB,CAAC,CAAC,WAAW,CAAC;AAAA,EACjC,0BAA0B;AAAA,EAC1B,wBAAwB;AAAA,EACxB,qBAAqB;AAAA,EACrB,6BAA6B;AAAA,EAC7B,mBAAmB,CAAC,CAAC,WAAW,CAAC;AAAA,EACjC,qBAAqB,CAAC,CAAC,WAAW,CAAC;AAAA,EACnC,qBAAqB;AAAA,EACrB,uBAAuB,CAAC,CAAC,WAAW,CAAC;AAAA,EACrC,eAAe,CAAC,CAAC,SAAS,CAAC;AAAA,EAC3B,wBAAwB,CAAC,CAAC,WAAW,CAAC;AAAA,EACtC,eAAe,CAAC,CAAC,UAAU,CAAC;AAAA,EAC5B,aAAa,CAAC,CAAC,IAAS,CAAC;AAAA,EACzB,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,EACtB,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,EACpB,yBAAyB,CAAC,CAAC,UAAU,CAAC;AAAA,EACtC,kBAAkB,CAAC,CAAC,aAAa,aAAa,aAAa,CAAC;AAAA,EAC5D,oBAAoB,CAAC,CAAC,aAAa,UAAU,CAAC;AAAA,EAC9C,qBAAqB,CAAC,CAAC,aAAa,UAAU,CAAC;AAAA,EAC/C,kBAAkB,CAAC,CAAC,WAAW,CAAC;AAAA,EAChC,oBAAoB,CAAC,CAAC,WAAW,CAAC;AAAA,EAClC,mBAAmB,CAAC,CAAC,YAAY,aAAa,CAAC;AAAA,EAC/C,qBAAqB,CAAC,CAAC,YAAY,CAAC;AAAA,EACpC,qBAAqB,CAAC,CAAC,YAAY,CAAC;AAAA,EACpC,mBAAmB,CAAC,CAAC,YAAY,CAAC;AAAA,EAClC,kBAAkB,CAAC,CAAC,YAAY,CAAC;AAAA,EACjC,0BAA0B,CAAC,CAAC,UAAU,CAAC;AAAA,EACvC,iCAAiC,CAAC,CAAC,WAAW,CAAC;AAAA,EAC/C,+BAA+B,CAAC,CAAC,EAAE,CAAC;AAAA,EACpC,6BAA6B,CAAC,CAAC,UAAU,CAAC;AAAA,EAC1C,4BAA4B,CAAC,CAAC,EAAE,CAAC;AAAA,EACjC,wBAAwB,CAAC,CAAC,YAAY,CAAC;AAAA,EACvC,6BAA6B,CAAC,CAAC,YAAY,CAAC;AAAA,EAC5C,0BAA0B;AAAA,EAC1B,2BAA2B,CAAC,CAAC,UAAU,CAAC;AAAA,EACxC,+BAA+B,CAAC,CAAC,cAAc,UAAU,CAAC;AAAA,EAC1D,2BAA2B,CAAC,CAAC,YAAY,aAAa,CAAC;AAAA,EACvD,4BAA4B;AAAA,IAC1B,CAAC,YAAY,CAAC;AAAA,IACd,CAAC,YAAY,CAAC;AAAA,EAChB;AAAA,EACA,8BAA8B,CAAC,CAAC,UAAU,CAAC;AAAA,EAC3C,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAC3B,uBAAuB;AAAA,IACrB,CAAC,GAAG,eAAe;AAAA,IACnB,CAAC,GAAG,eAAe;AAAA,EACrB;AAAA,EACA,qBAAqB,CAAC,CAAC,UAAU,CAAC;AAAA,EAClC,sBAAsB,CAAC,CAAC,UAAU,CAAC;AAAA,EACnC,mBAAmB,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;AAAA,EACxC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAAA,EAC9B,qBAAqB,CAAC,CAAC,cAAc,CAAC,CAAC;AAAA,EACvC,0BAA0B,CAAC,CAAC,CAAC,CAAC;AAAA,EAC9B,uBAAuB;AAAA,EACvB,yBAAyB;AAAA,EACzB,2CAA2C,CAAC,CAAC,UAAU,CAAC;AAAA,EACxD,sCAAsC;AAAA,EACtC,6CAA6C,CAAC,CAAC,UAAU,CAAC;AAAA,EAC1D,6BAA6B,CAAC,CAAC,cAAc,CAAC;AAAA,EAC9C,6BAA6B,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC;AAAA,EAC7C,mCAAmC;AAAA,EACnC,+BAA+B,CAAC,CAAC,cAAc,WAAW,CAAC;AAAA,EAC3D,gCAAgC,CAAC,CAAC,cAAc,WAAW,CAAC;AAAA,EAC5D,6BAA6B,CAAC,CAAC,EAAE,CAAC;AAAA;AAAA;AAAA,EAGlC,4BAA4B,CAAC,CAAC,KAAK,CAAC;AAAA,EACpC,2BAA2B;AAAA,EAC3B,2BAA2B,CAAC,CAAC,UAAU,CAAC;AAAA,EACxC,6BAA6B,CAAC,CAAC,UAAU,CAAC;AAAA,EAC1C,wBAAwB;AAAA,EACxB,2BAA2B;AAAA,EAC3B,wBAAwB;AAAA,EACxB,0BAA0B,CAAC,CAAC,UAAU,CAAC;AAAA,EACvC,uBAAuB,CAAC,CAAC,CAAC,CAAC;AAAA,EAC3B,uCAAuC,CAAC,CAAC,UAAU,CAAC;AAAA,EACpD,wCAAwC,CAAC,CAAC,UAAU,CAAC;AAAA,EACrD,uCAAuC,CAAC,CAAC,UAAU,CAAC;AAAA,EACpD,0CAA0C,CAAC,CAAC,UAAU,CAAC;AAAA,EACvD,oCAAoC,CAAC,CAAC,UAAU,CAAC;AAAA,EACjD,qCAAqC,CAAC,CAAC,UAAU,CAAC;AAAA,EAClD,uBAAuB,CAAC,CAAC,UAAU,CAAC;AAAA,EACpC,uBAAuB;AAAA,EACvB,0BAA0B;AAAA,EAC1B,uBAAuB,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC;AAAA,EACvC,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAAA,EACxB,2BAA2B,CAAC,CAAC,CAAC,CAAC;AAAA,EAC/B,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAAA,EACrB,kBAAkB,CAAC,CAAC,cAAc,CAAC,CAAC;AAAA,EACpC,yBAAyB,CAAC,CAAC,YAAY,CAAC;AAAA,EACxC,yBAAyB,CAAC,CAAC,YAAY,CAAC;AAAA,EACxC,yBAAyB,CAAC,CAAC,YAAY,CAAC;AAAA,EACxC,4BAA4B,CAAC,CAAC,eAAe,CAAC;AAAA,EAC9C,2BAA2B,CAAC,CAAC,SAAS,CAAC;AAAA,EACvC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,EACzB,qBAAqB,CAAC,CAAC,UAAU,CAAC;AAAA,EAClC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,EAC3B,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,EAC5B,oBAAoB,CAAC,CAAC,UAAU,CAAC;AAAA,EACjC,sBAAsB,CAAC,CAAC,UAAU,CAAC;AAAA,EACnC,2BAA2B,CAAC,CAAC,UAAU,CAAC;AAAA,EACxC,kCAAkC,CAAC,CAAC,UAAU,CAAC;AAAA,EAC/C,qBAAqB,CAAC,CAAC,aAAa,GAAG,CAAC,MAAS,CAAC;AAAA,EAClD,iCAAiC;AAAA,IAC/B,CAAC,cAAc,CAAC;AAAA,IAChB,CAAC,cAAc,CAAC;AAAA,EAClB;AAAA,EACA,sCAAsC;AAAA,EACtC,8BAA8B;AAAA,IAC5B,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,EAAE;AAAA,EACR;AAAA,EACA,oCAAoC,CAAC,CAAC,GAAG,EAAE,CAAC;AAAA,EAC5C,yCAAyC,CAAC,CAAC,iBAAiB,UAAU,CAAC;AAAA,EACvE,kCAAkC,CAAC,CAAC,YAAY,UAAU,CAAC;AAAA,EAC3D,iCAAiC,CAAC,CAAC,YAAY,UAAU,CAAC;AAAA,EAC1D,2BAA2B,CAAC,CAAC,WAAW,CAAC;AAAA,EACzC,uCAAuC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAAA,EACrD,mCAAmC;AAAA,EACnC,kCAAkC;AAAA,EAClC,gCAAgC;AAAA,IAC9B,CAAC,GAAG,EAAE;AAAA,IACN,CAAC,GAAG,EAAE;AAAA,EACR;AAAA,EACA,kCAAkC;AAAA,EAClC,kCAAkC;AAAA,IAChC,CAAC,GAAG,WAAW;AAAA,IACf,CAAC,GAAG,WAAW;AAAA,EACjB;AAAA,EACA,wBAAwB,CAAC,CAAC,IAAI,EAAE,CAAC;AAAA,EACjC,4BAA4B;AAAA,EAC5B,mBAAmB,CAAC,CAAC,WAAW,CAAC;AAAA,EACjC,qBAAqB,CAAC,CAAC,UAAU,CAAC;AAAA,EAClC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC;AAAA,EAC7B,sBAAsB,CAAC,CAAC,eAAe,UAAU,CAAC;AAAA,EAClD,qBAAqB,CAAC,CAAC,UAAU,CAAC;AAAA,EAClC,yBAAyB,CAAC,CAAC,UAAU,CAAC;AAAA,EACtC,0BAA0B,CAAC,CAAC,UAAU,CAAC;AAAA,EACvC,wBAAwB;AAAA,IACtB,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,EAAE;AAAA,EACR;AAAA,EACA,4BAA4B;AAAA,EAC5B,2BAA2B,CAAC,CAAC,CAAC,CAAC;AAAA,EAC/B,2BAA2B;AAAA,EAC3B,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAAA,EAC5B,uBAAuB,CAAC,CAAC,YAAY,CAAC;AAAA,EACtC,6BAA6B,CAAC,CAAC,UAAU,CAAC;AAAA,EAC1C,kCAAkC,CAAC,CAAC,UAAU,CAAC;AAAA,EAC/C,0BAA0B;AAAA,IACxB,CAAC,GAAG,EAAE;AAAA,IACN,CAAC,IAAI,GAAG;AAAA,EACV;AAAA,EACA,sBAAsB,CAAC,CAAC,WAAW,CAAC;AAAA,EACpC,wBAAwB,CAAC,CAAC,WAAW,CAAC;AAAA,EACtC,0CAA0C;AAAA,EAC1C,yCAAyC;AAAA,EACzC,0CAA0C;AAAA,EAC1C,uCAAuC;AAAA,EACvC,iCAAiC;AAAA;AAAA,EAEjC,sCAAsC;AAAA,EACtC,0BAA0B;AAAA,EAC1B,0BAA0B;AAAA;AAAA,EAE1B,kBAAkB,CAAC,CAAC,mBAAmB,CAAC;AAAA,EACxC,wBAAwB,CAAC,CAAC,aAAa,CAAC;AAAA,EACxC,uBAAuB,CAAC,CAAC,WAAW,CAAC;AAAA,EACrC,uBAAuB,CAAC,CAAC,WAAW,CAAC;AAAA,EACrC,wBAAwB,CAAC,CAAC,EAAE,CAAC;AAAA,EAC7B,2BAA2B,CAAC,CAAC,UAAU,CAAC;AAAA,EACxC,2BAA2B,CAAC,CAAC,UAAU,CAAC;AAAA;AAAA;AAAA,EAGxC,2BAA2B,CAAC,CAAC,EAAE,CAAC;AAAA,EAChC,sBAAsB,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAAA,EACtC,wBAAwB,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAAA,EACxC,8BAA8B,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAAA,EAC9C,6BAA6B,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAAA,EAC7C,2BAA2B,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAAA,EAC3C,2BAA2B,CAAC,CAAC,aAAa,CAAC;AAAA,EAC3C,uBAAuB,CAAC,CAAC,cAAc,CAAC;AAAA,EACxC,2BAA2B,CAAC,CAAC,kBAAkB,CAAC;AAAA,EAChD,yBAAyB,CAAC,CAAC,WAAW,CAAC;AAAA,EACvC,2BAA2B,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAAA,EAC3C,uBAAuB,CAAC,CAAC,UAAU,CAAC;AAAA,EACpC,eAAe,CAAC,CAAC,aAAa,CAAC;AAAA,EAC/B,uBAAuB,CAAC,CAAC,YAAY,CAAC;AAAA,EACtC,kCAAkC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;AAAA,EAC/E,2BAA2B,CAAC,CAAC,UAAU,CAAC;AAAA,EACxC,4BAA4B;AAAA,EAC5B,4BAA4B,CAAC,CAAC,UAAU,CAAC;AAAA,EACzC,4BAA4B,CAAC,CAAC,SAAS,CAAC;AAAA,EACxC,0BAA0B;AAAA,EAC1B,+BAA+B,CAAC,CAAC,SAAS,CAAC;AAAA,EAC3C,uBAAuB,CAAC,CAAC,UAAU,CAAC;AAAA,EACpC,8BAA8B,CAAC,CAAC,UAAU,CAAC;AAAA,EAC3C,0BAA0B;AAAA,EAC1B,4BAA4B,CAAC,CAAC,YAAY,CAAC;AAAA,EAC3C,kCAAkC,CAAC,CAAC,UAAU,CAAC;AAAA,EAC/C,yBAAyB,CAAC,CAAC,SAAS,CAAC;AAAA,EACrC,4BAA4B,CAAC,CAAC,SAAS,CAAC;AAAA,EACxC,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AAAA,EACrC,0BAA0B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAAA,EACnC,6BAA6B,CAAC,CAAC,eAAe,CAAC;AAAA,EAC/C,6BAA6B,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAAA,EAC7C,0BAA0B,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAAA,EAC1C,yBAAyB,CAAC,CAAC,UAAU,CAAC;AAAA,EACtC,qBAAqB,CAAC,CAAC,UAAU,CAAC;AAAA,EAClC,0BAA0B,CAAC,CAAC,YAAY,YAAY,CAAC;AAAA,EACrD,qBAAqB,CAAC,CAAC,WAAW,CAAC;AAAA,EACnC,6BAA6B,CAAC,CAAC,YAAY,CAAC;AAAA,EAC5C,2BAA2B,CAAC,CAAC,YAAY,CAAC;AAAA;AAAA,EAE1C,gCAAgC,CAAC,CAAC,YAAY,QAAQ,CAAC;AAAA,EACvD,2BAA2B,CAAC,CAAC,UAAU,CAAC;AAAA,EACxC,iCAAiC,CAAC,CAAC,eAAe,YAAY,CAAC;AAAA,EAC/D,oBAAoB,CAAC,CAAC,UAAU,CAAC;AAAA,EACjC,uBAAuB,CAAC,CAAC,UAAU,CAAC;AAAA,EACpC,yBAAyB,CAAC,CAAC,UAAU,CAAC;AAAA,EACtC,sBAAsB,CAAC,CAAC,WAAW,CAAC;AAAA,EACpC,sBAAsB,CAAC,CAAC,WAAW,CAAC;AAAA,EACpC,yBAAyB,CAAC,CAAC,WAAW,CAAC;AAAA,EACvC,uBAAuB,CAAC,CAAC,WAAW,CAAC;AAAA,EACrC,2BAA2B,CAAC,CAAC,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxC,sBAAsB,CAAC,CAAC,WAAW,CAAC;AAAA,EACpC,uBAAuB;AAAA,EACvB,yBAAyB,CAAC,CAAC,SAAS,GAAG,CAAC,MAAS,CAAC;AAAA,EAClD,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAAA,EACjC,kBAAkB;AAAA,IAChB,CAAC,GAAG,CAAC;AAAA,IACL,CAAC,GAAG,EAAE;AAAA,EACR;AAAA,EACA,oBAAoB;AAAA;AAAA;AAAA;AAAA,EAIpB,kBAAkB,CAAC,CAAC,UAAU,CAAC;AAAA,EAC/B,mBAAmB,CAAC,CAAC,UAAU,CAAC;AAAA,EAChC,qBAAqB,CAAC,CAAC,UAAU,CAAC;AAAA,EAClC,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAAA,EACrC,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAAA,EACrC,yBAAyB,CAAC,CAAC,UAAU,GAAG,CAAC,MAAS,CAAC;AAAA,EACnD,iBAAiB,CAAC,CAAC,YAAY,WAAW,CAAC;AAAA,EAC3C,0BAA0B,CAAC,CAAC,eAAe,CAAC;AAAA,EAC5C,0BAA0B;AAAA;AAAA,EAE1B,0BAA0B,CAAC,CAAC,iBAAiB,YAAY,WAAW,CAAC;AAAA;AAAA,EAErE,wBAAwB,CAAC,CAAC,YAAY,QAAQ,CAAC;AAAA,EAC/C,4BAA4B,CAAC,CAAC,UAAU,CAAC;AAAA;AAAA,EAEzC,sBAAsB,CAAC,CAAC,WAAW,GAAG,CAAC,MAAS,CAAC;AAAA,EACjD,iCAAiC,CAAC,CAAC,WAAW,GAAG,CAAC,MAAS,CAAC;AAAA,EAC5D,6BAA6B,CAAC,CAAC,UAAU,CAAC;AAAA,EAC1C,6BAA6B,CAAC,CAAC,gBAAgB,SAAS,GAAG,CAAC,gBAAgB,MAAS,CAAC;AAAA,EACtF,sBAAsB,CAAC,CAAC,UAAU,CAAC;AAAA,EACnC,sBAAsB,CAAC,CAAC,YAAY,QAAQ,CAAC;AAAA,EAC7C,kBAAkB,CAAC,CAAC,QAAQ,CAAC;AAAA,EAC7B,wBAAwB,CAAC,CAAC,UAAU,CAAC;AAAA,EACrC,sBAAsB,CAAC,CAAC,YAAY,aAAa,eAAe,CAAC;AAAA;AAAA;AAAA,EAGjE,qBAAqB;AAAA;AAAA,EAErB,0BAA0B,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAAA;AAAA,EAE7D,0BAA0B,CAAC,CAAC,aAAa,CAAC;AAAA,EAC1C,qBAAqB,CAAC,CAAC,aAAa,CAAC;AAAA,EACrC,4BAA4B,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAAA,EAC5C,2BAA2B,CAAC,CAAC,SAAS,CAAC;AAAA,EACvC,4BAA4B;AAAA;AAAA;AAAA,EAG5B,4BAA4B;AAAA,EAC5B,4BAA4B;AAAA,EAC5B,6BAA6B,CAAC,CAAC,UAAU,CAAC;AAAA,EAC1C,6BAA6B,CAAC,CAAC,aAAa,UAAU,CAAC;AAAA,EACvD,2BAA2B,CAAC,CAAC,aAAa,WAAW,CAAC;AAAA,EACtD,iCAAiC;AAAA,EACjC,wBAAwB,CAAC,CAAC,UAAU,CAAC;AAAA,EACrC,0BAA0B,CAAC,CAAC,UAAU,CAAC;AAAA;AAAA;AAAA,EAGvC,0BAA0B;AAAA,EAC1B,6BAA6B,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAAA,EAChE,0BAA0B;AAAA,EAC1B,2BAA2B;AAAA,EAC3B,2BAA2B;AAAA,EAC3B,yBAAyB,CAAC,CAAC,GAAG,EAAE,CAAC;AAAA,EACjC,yBAAyB,CAAC,CAAC,YAAY,YAAY,CAAC;AAAA,EACpD,wBAAwB;AAAA,EACxB,uBAAuB;AAAA,EACvB,0BAA0B;AAAA,EAC1B,6BAA6B,CAAC,CAAC,UAAU,CAAC;AAAA;AAAA;AAAA,EAG1C,uBAAuB;AAAA,EACvB,uBAAuB;AACzB;","names":[]}
1
+ {"version":3,"sources":["../../src/i18n/review.ts"],"sourcesContent":["import { legalOperatorText } from \"../components/legal\";\nimport type { LegalOperator, LegalOperatorText } from \"../components/legal\";\nimport 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 143 of them are functions (`(count) => \"3 results\"`; 0.28.0, every one\n * listed in {@link KIT_LABEL_SAMPLES}), which a bundle flattener skips. This turns a\n * 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 * - The legal sections that name the operator (0.28) take one object; its sample is a\n * placeholder per field and the key calls it `operator`:\n * `legal.sections.privacy.controller.body(operator)`. Pass the app's operator in\n * `options` and those rows read the real sentence — same keys — so the lawyer\n * reviewing the `legal` area reads what the page says:\n *\n * kitLabelStrings(UI_KIT_LABELS_DE_CH, { operator: OPERATOR, locale: \"de-CH\" })\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, options: KitLabelStringsOptions = {}): Record<string, string> {\n const out: Record<string, string> = {};\n const operator = options.operator && legalOperatorText(options.operator, options.locale);\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 // The key is the SAMPLE's (`…body(operator)`), whatever the label is called with,\n // so rows with and without the app's operator join on the same keys.\n const called = operator ? args.map((arg) => (arg === LEGAL_OPERATOR_SAMPLE ? operator : arg)) : args;\n out[`${path}(${args.map(sampleName).filter((a) => a !== \"\").join(\", \")})`] = render(\n node as (...args: unknown[]) => unknown,\n called,\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\nexport interface KitLabelStringsOptions {\n /**\n * The app's operator (0.28): the legal sections that name it — the imprint's operator\n * and contact, the controller, the privacy contact, the governing law — are rendered\n * with the real values instead of `{{name}}`-style placeholders, so a reviewer (the\n * lawyer, under the `legal` area) reads the sentence the page shows. The keys do not\n * change: `legal.sections.impressum.operator.body(operator)` either way.\n */\n operator?: LegalOperator;\n /** The language the operator's country is named in — the locale these rows are\n * for (\"de-CH\" → \"Schweiz\"). Default English. */\n locale?: string;\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 (arg === LEGAL_OPERATOR_SAMPLE) return \"operator\";\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 legal sections' operator (0.28) as placeholders, one per field — so a translation\n * that drops the city or the email is caught by the same check as a dropped `{{name}}`\n * anywhere else. Named `operator` in the key; {@link kitLabelStrings}' `operator` option\n * swaps the app's real values in for it.\n */\nconst LEGAL_OPERATOR_SAMPLE: LegalOperatorText = Object.freeze({\n name: \"{{name}}\",\n postalCode: \"{{postalCode}}\",\n city: \"{{city}}\",\n region: \"{{region}}\",\n country: \"{{country}}\",\n email: \"{{email}}\",\n bindingLanguage: \"{{bindingLanguage}}\",\n});\nconst operatorSample = [[LEGAL_OPERATOR_SAMPLE]] 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 \"common.aboutField\": [[\"{{field}}\"]],\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 \"dataTable.filterColumn\": [\n [\"{{column}}\", false],\n [\"{{column}}\", true],\n ],\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 \"feedbackDialog.submitHint\": [[true], [false]],\n \"feedbackToast.attachmentTooMany\": one,\n \"feedbackToast.statusChanged\": [[\"{{status}}\", \"{{title}}\"]],\n \"feedbackToast.statusRestored\": [[\"{{status}}\", \"{{title}}\"]],\n \"feedbackPage.userFallback\": [[42]],\n // A real value, not a placeholder: the chip upper-cases what it is given, and\n // \"{{ENVIRONMENT}}\" would read as a placeholder of that name.\n \"feedbackPage.environment\": [[\"dev\"]],\n \"feedbackPage.reworkChip\": one,\n \"feedbackDetail.download\": [[\"{{name}}\"]],\n \"feedbackDetail.resolvedAt\": [[\"{{date}}\"]],\n \"feedbackPublic.total\": one,\n \"feedbackPublic.comments\": one,\n \"feedbackPublic.votes\": one,\n \"feedbackPublic.filedBy\": [[\"{{name}}\"]],\n \"feedbackPublic.page\": [[3]],\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.clearedToast\": 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 \"signChip.switchTo\": [[\"{{next}}\"]],\n \"rowActions.actionsFor\": [[\"{{name}}\"]],\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 \"legal.sections.impressum.operator.body\": operatorSample,\n \"legal.sections.impressum.contact.body\": operatorSample,\n \"legal.sections.privacy.controller.body\": operatorSample,\n \"legal.sections.privacy.contact.body\": operatorSample,\n \"legal.sections.terms.law.body\": operatorSample,\n // 0.28.1: the binding language, named in the reader's language.\n \"legal.sections.terms.language.body\": operatorSample,\n \"legal.translation.note\": operatorSample,\n \"legal.translation.show\": operatorSample,\n // 0.29.0: the sign-in and sign-up parts (docs/auth-harmonization.md).\n \"signIn.tagHint\": [[\"{{taggedAddress}}\"]],\n \"register.emailTagUse\": [[\"{{address}}\"]],\n \"forgotPassword.sent\": [[\"{{email}}\"]],\n \"resetPassword.intro\": [[\"{{email}}\"]],\n \"verifyEmail.resendIn\": [[30]],\n \"acceptInvitation.joined\": [[\"{{name}}\"]],\n \"companySwitcher.current\": [[\"{{name}}\"]],\n // 0.30.0: the user administration and the account's own settings\n // (docs/user-admin-harmonization.md). `rateLimited` with and without a wait.\n \"signIn.recoveryCodeHint\": [[16]],\n \"signIn.rateLimited\": [[], [30], [300]],\n \"register.rateLimited\": [[], [30], [300]],\n \"forgotPassword.rateLimited\": [[], [30], [300]],\n \"resetPassword.rateLimited\": [[], [30], [300]],\n \"verifyEmail.rateLimited\": [[], [30], [300]],\n \"emailChange.emailTagUse\": [[\"{{address}}\"]],\n \"emailChange.pending\": [[\"{{newEmail}}\"]],\n \"emailChange.pendingHint\": [[\"{{currentEmail}}\"]],\n \"emailChange.confirmed\": [[\"{{email}}\"]],\n \"emailChange.rateLimited\": [[], [30], [300]],\n \"sessions.lastActive\": [[\"{{when}}\"]],\n \"sessions.ip\": [[\"{{address}}\"]],\n \"sessions.revokeItem\": [[\"{{device}}\"]],\n \"notifications.quietDescription\": [[false], [true], [false, true], [true, true]],\n \"notifications.quietZone\": [[\"{{zone}}\"]],\n \"notifications.bellUnread\": one,\n \"notifications.iosInstall\": [[\"{{app}}\"]],\n \"notifications.testSent\": one,\n \"notifications.explainerBody\": [[\"{{app}}\"]],\n \"notifications.added\": [[\"{{date}}\"]],\n \"notifications.lastDelivery\": [[\"{{date}}\"]],\n \"notifications.failures\": one,\n \"notifications.removeItem\": [[\"{{device}}\"]],\n \"notifications.unsubscribeAbout\": [[\"{{type}}\"]],\n \"notifications.stopAll\": [[\"{{app}}\"]],\n \"notifications.stoppedAll\": [[\"{{app}}\"]],\n \"deleteAccount.afterDays\": [[1], [30]],\n \"deleteAccount.handOver\": [[1], [3]],\n \"deleteAccount.lastAdminOf\": [[\"{{companies}}\"]],\n \"deleteAccount.rateLimited\": [[], [30], [300]],\n \"dataExport.rateLimited\": [[], [30], [300]],\n \"userRoster.actionsFor\": [[\"{{name}}\"]],\n \"roleSelect.roleOf\": [[\"{{name}}\"]],\n \"roleSelect.unavailable\": [[\"{{role}}\", \"{{reason}}\"]],\n \"adminActionLog.by\": [[\"{{actor}}\"]],\n \"adminActionLog.filteredTo\": [[\"{{target}}\"]],\n \"adminActionLog.filterBy\": [[\"{{target}}\"]],\n // 0.45.0 (admin §9.4): a company rename that logged both names.\n \"adminActionLog.renamedFromTo\": [[\"{{from}}\", \"{{to}}\"]],\n \"transferOwnership.title\": [[\"{{name}}\"]],\n \"transferOwnership.unavailable\": [[\"{{account}}\", \"{{reason}}\"]],\n \"invitations.sent\": [[\"{{date}}\"]],\n \"invitations.expires\": [[\"{{date}}\"]],\n \"invitations.invitedBy\": [[\"{{name}}\"]],\n \"invitations.resend\": [[\"{{email}}\"]],\n \"invitations.revoke\": [[\"{{email}}\"]],\n \"invitations.linkReady\": [[\"{{email}}\"]],\n \"invitations.notSent\": [[\"{{email}}\"]],\n \"accountState.deletionOn\": [[\"{{date}}\"]],\n // 0.31.0: the settings shell, the landing page and the demo\n // (docs/settings-harmonization.md, docs/landing-demo-harmonization.md). An optional\n // argument both given and left out: the subject without an app name, the refusal\n // without a `Retry-After`.\n \"settings.noMatches\": [[\"{{query}}\"]],\n \"settings.matchCount\": one,\n \"landing.accessSubject\": [[\"{{app}}\"], [undefined]],\n \"demo.rateLimited\": [[], [1], [3]],\n \"demo.hoursLeft\": [\n [1, 1],\n [3, 12],\n ],\n \"demo.minutesLeft\": one,\n // 0.32.0: the subscription parts (docs/billing-harmonization.md §7). A trial or a grant\n // ending today, tomorrow and in five days; the guest's notice with and without the\n // item's name.\n \"billing.choose\": [[\"{{plan}}\"]],\n \"billing.upgrade\": [[\"{{plan}}\"]],\n \"billing.downgrade\": [[\"{{plan}}\"]],\n \"billing.trialEnding\": [[0], [1], [5]],\n \"billing.grantEnding\": [[0], [1], [5]],\n \"billing.guestReadOnly\": [[\"{{item}}\"], [undefined]],\n \"billing.usage\": [[\"{{used}}\", \"{{limit}}\"]],\n \"billing.contactSubject\": [[\"{{dimension}}\"]],\n \"billing.waitingChanges\": one,\n // 0.33.0: the limit's figure line (§14.11) and the operator's plan parts (§14.12).\n \"billing.limitUsageLine\": [[\"{{dimension}}\", \"{{used}}\", \"{{limit}}\"]],\n // 0.39: PlanSwitchConfirm's two lines with figures (§15.2.10).\n \"billing.switchFromTo\": [[\"{{from}}\", \"{{to}}\"]],\n \"billing.switchNextCharge\": [[\"{{date}}\"]],\n // 0.42 (§16): the buyer's name, or none once they are gone; the cancel's period end.\n \"billing.buyerHolds\": [[\"{{buyer}}\"], [undefined]],\n \"billing.paymentFailedAskBuyer\": [[\"{{buyer}}\"], [undefined]],\n \"billing.cancelConfirmBody\": [[\"{{date}}\"]],\n \"billing.portalOpensNewTab\": [[\"{{provider}}\", \"{{app}}\"], [\"{{provider}}\", undefined]],\n \"planChange.current\": [[\"{{plan}}\"]],\n \"planChange.changed\": [[\"{{from}}\", \"{{to}}\"]],\n \"planChange.set\": [[\"{{to}}\"]],\n \"planChange.untilDone\": [[\"{{date}}\"]],\n \"planChange.usageOf\": [[\"{{used}}\", \"{{limit}}\", \"{{dimension}}\"]],\n // 0.42.0 (docs/admin-harmonization.md §3.1): the menu row's count, the 403 page's app,\n // the users tile's new accounts.\n \"adminArea.waiting\": one,\n // 0.45.0 (admin §9.3.4): an IconButton's name with its waiting count.\n \"adminArea.waitingLabel\": [[\"{{label}}\", 1], [\"{{label}}\", 3]],\n // 0.45.0 (admin §9.2.4): the test mail's transport, masked address and limiter.\n \"mailTestCard.transport\": [[\"{{backend}}\"]],\n \"mailTestCard.sent\": [[\"{{address}}\"]],\n \"mailTestCard.rateLimited\": [[], [30], [300]],\n \"adminArea.forbiddenBody\": [[\"{{app}}\"]],\n \"adminArea.tiles.usersNew\": one,\n // 0.42.0 (docs/top-bar-harmonization.md §3.1): the sync indicator's counts, its time, the\n // state joined to its hint or to the app's scope; the dev plan and the role to go back to.\n \"topBarParts.sync.blocked\": one,\n \"topBarParts.sync.pending\": one,\n \"topBarParts.sync.syncedAt\": [[\"{{time}}\"]],\n \"topBarParts.sync.withHint\": [[\"{{state}}\", \"{{hint}}\"]],\n \"topBarParts.sync.scoped\": [[\"{{scope}}\", \"{{state}}\"]],\n \"topBarParts.sync.waitingShort\": one,\n \"topBarParts.dev.plan\": [[\"{{plan}}\"]],\n \"topBarParts.dev.backTo\": [[\"{{role}}\"]],\n // 0.43.0 (docs/tours-harmonization.md §3, §8): the tours page's counts, its group\n // option, the completion day and a reset's day and reason.\n \"tourCatalogue.groupAll\": one,\n \"tourCatalogue.groupOption\": [[\"{{group}}\", 1], [\"{{group}}\", 3]],\n \"tourCatalogue.stateAll\": one,\n \"tourCatalogue.stateTodo\": one,\n \"tourCatalogue.stateDone\": one,\n \"tourCatalogue.showing\": [[3, 16]],\n \"tourCatalogue.resetOn\": [[\"{{date}}\", \"{{reason}}\"]],\n \"tourCatalogue.points\": one,\n \"tourCatalogue.steps\": one,\n \"tourCatalogue.duration\": one,\n \"tourCatalogue.completedOn\": [[\"{{date}}\"]],\n // 0.45.0 (docs/local-first-harmonization.md §1.6): the sign-out question's count, in\n // both word sets.\n \"signOutPending.lost\": one,\n \"signOutPending.kept\": one,\n};\n"],"mappings":"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","names":[]}
package/dist/index.d.ts CHANGED
@@ -209,8 +209,8 @@ export { DATE_FORMAT_PREFERENCES, isDateFormatPreference, resolveDateFormat, for
209
209
  export type { DateFormatPreference, DateFormatOptions, ResolvedDateFormat } from "./lib/date-format.js";
210
210
  export { DateFormatSetting } from "./components/date-format-setting.js";
211
211
  export type { DateFormatSettingProps } from "./components/date-format-setting.js";
212
- export { RowActions, rowActionsColumn, DEFAULT_ROW_ACTIONS_LABELS } from "./components/row-actions.js";
213
- export type { RowAction, RowActionList, RowActionsLabels, RowActionsProps, RowActionsCollapse, RowActionsSize, RowActionsColumnOptions, RowActionTone, } from "./components/row-actions.js";
212
+ export { RowActions, rowActionsColumn, DEFAULT_ROW_ACTIONS_LABELS, RowActionsHead, ROW_ACTIONS_CELL_CLASS, ROW_ACTIONS_HEAD_CLASS, } from "./components/row-actions.js";
213
+ export type { RowAction, RowActionList, RowActionsLabels, RowActionsProps, RowActionsCollapse, RowActionsSize, RowActionsColumnOptions, RowActionsHeadProps, RowActionTone, } from "./components/row-actions.js";
214
214
  export * from "./components/checkbox-group.js";
215
215
  export * from "./components/one-time-code-input.js";
216
216
  export * from "./components/language-select.js";
@@ -351,8 +351,6 @@ export { NotificationTypesSetting } from "./notifications/notification-types-set
351
351
  export type { NotificationTypesSettingProps } from "./notifications/notification-types-setting.js";
352
352
  export { QuietHoursSetting } from "./notifications/quiet-hours-setting.js";
353
353
  export type { QuietHoursSettingProps } from "./notifications/quiet-hours-setting.js";
354
- export { TimeZoneSelect, timeZoneOptions } from "./notifications/time-zone-select.js";
355
- export type { TimeZoneSelectProps } from "./notifications/time-zone-select.js";
356
354
  export { NotificationInbox, INBOX_BADGE_INTERVAL } from "./notifications/notification-inbox.js";
357
355
  export type { NotificationInboxAction, NotificationInboxItem, NotificationInboxProps, } from "./notifications/notification-inbox.js";
358
356
  export { NotificationBell } from "./notifications/notification-bell.js";
package/dist/index.js CHANGED
@@ -276,7 +276,14 @@ import {
276
276
  dateFormatterFor
277
277
  } from "./lib/date-format.js";
278
278
  import { DateFormatSetting } from "./components/date-format-setting.js";
279
- import { RowActions, rowActionsColumn, DEFAULT_ROW_ACTIONS_LABELS } from "./components/row-actions.js";
279
+ import {
280
+ RowActions,
281
+ rowActionsColumn,
282
+ DEFAULT_ROW_ACTIONS_LABELS,
283
+ RowActionsHead,
284
+ ROW_ACTIONS_CELL_CLASS,
285
+ ROW_ACTIONS_HEAD_CLASS
286
+ } from "./components/row-actions.js";
280
287
  export * from "./components/checkbox-group.js";
281
288
  export * from "./components/one-time-code-input.js";
282
289
  export * from "./components/language-select.js";
@@ -376,7 +383,6 @@ import { useAccountAppearance, resolveAccountAppearance } from "./settings/use-a
376
383
  import { DEFAULT_NOTIFICATIONS_LABELS } from "./notifications/notifications-labels.js";
377
384
  import { NotificationTypesSetting } from "./notifications/notification-types-setting.js";
378
385
  import { QuietHoursSetting } from "./notifications/quiet-hours-setting.js";
379
- import { TimeZoneSelect, timeZoneOptions } from "./notifications/time-zone-select.js";
380
386
  import { NotificationInbox, INBOX_BADGE_INTERVAL } from "./notifications/notification-inbox.js";
381
387
  import { NotificationBell } from "./notifications/notification-bell.js";
382
388
  import { useDeviceZoneReport, deviceTimeZone } from "./notifications/device-zone-report.js";
@@ -567,6 +573,8 @@ export {
567
573
  QuietHoursSetting,
568
574
  REVIEW_STATUSES,
569
575
  REVIEW_STATUS_TONES,
576
+ ROW_ACTIONS_CELL_CLASS,
577
+ ROW_ACTIONS_HEAD_CLASS,
570
578
  ReauthDialog,
571
579
  RegisterForm,
572
580
  ResetPasswordForm,
@@ -576,6 +584,7 @@ export {
576
584
  RoleSelect,
577
585
  RolesEditor,
578
586
  RowActions,
587
+ RowActionsHead,
579
588
  SUBSCRIPTION_STATUSES,
580
589
  SUBSCRIPTION_STATUS_TONES,
581
590
  ScrollArea,
@@ -595,7 +604,6 @@ export {
595
604
  TOUCH_TARGET_LARGE,
596
605
  TRANSLATION_REVIEW_SWIPE_ACTIONS,
597
606
  TextLink,
598
- TimeZoneSelect,
599
607
  Toaster,
600
608
  TransferOwnershipDialog,
601
609
  TranslationExportButton,
@@ -735,7 +743,6 @@ export {
735
743
  setStoreLog,
736
744
  summariseRows,
737
745
  taggedEmail,
738
- timeZoneOptions,
739
746
  toApiWrite,
740
747
  toast,
741
748
  translationCorrections,