@adminiumjs/i18n 0.3.5 → 0.3.7

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 (203) hide show
  1. package/dist/a11y-keys.d.ts +1 -1
  2. package/dist/a11y-keys.d.ts.map +1 -1
  3. package/dist/a11y-keys.js +16 -1
  4. package/dist/a11y-keys.js.map +1 -1
  5. package/dist/create-i18n.d.ts.map +1 -1
  6. package/dist/create-i18n.js +5 -0
  7. package/dist/create-i18n.js.map +1 -1
  8. package/dist/index.d.ts +2 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/react.d.ts +8 -0
  13. package/dist/react.d.ts.map +1 -1
  14. package/dist/react.js +15 -1
  15. package/dist/react.js.map +1 -1
  16. package/dist/resources/ar-eg/common.d.ts +2 -0
  17. package/dist/resources/ar-eg/common.d.ts.map +1 -1
  18. package/dist/resources/ar-eg/common.js +4 -2
  19. package/dist/resources/ar-eg/common.js.map +1 -1
  20. package/dist/resources/ar-eg/email.d.ts +14 -0
  21. package/dist/resources/ar-eg/email.d.ts.map +1 -1
  22. package/dist/resources/ar-eg/email.js +15 -1
  23. package/dist/resources/ar-eg/email.js.map +1 -1
  24. package/dist/resources/ar-eg/studio.d.ts +26 -0
  25. package/dist/resources/ar-eg/studio.d.ts.map +1 -1
  26. package/dist/resources/ar-eg/studio.js +30 -4
  27. package/dist/resources/ar-eg/studio.js.map +1 -1
  28. package/dist/resources/ar-eg/ui.d.ts +49 -0
  29. package/dist/resources/ar-eg/ui.d.ts.map +1 -1
  30. package/dist/resources/ar-eg/ui.js +52 -3
  31. package/dist/resources/ar-eg/ui.js.map +1 -1
  32. package/dist/resources/cs-cz/common.d.ts +2 -0
  33. package/dist/resources/cs-cz/common.d.ts.map +1 -1
  34. package/dist/resources/cs-cz/common.js +4 -2
  35. package/dist/resources/cs-cz/common.js.map +1 -1
  36. package/dist/resources/cs-cz/email.d.ts +14 -0
  37. package/dist/resources/cs-cz/email.d.ts.map +1 -1
  38. package/dist/resources/cs-cz/email.js +15 -1
  39. package/dist/resources/cs-cz/email.js.map +1 -1
  40. package/dist/resources/cs-cz/studio.d.ts +26 -0
  41. package/dist/resources/cs-cz/studio.d.ts.map +1 -1
  42. package/dist/resources/cs-cz/studio.js +30 -4
  43. package/dist/resources/cs-cz/studio.js.map +1 -1
  44. package/dist/resources/cs-cz/ui.d.ts +49 -0
  45. package/dist/resources/cs-cz/ui.d.ts.map +1 -1
  46. package/dist/resources/cs-cz/ui.js +52 -3
  47. package/dist/resources/cs-cz/ui.js.map +1 -1
  48. package/dist/resources/da-dk/common.d.ts +2 -0
  49. package/dist/resources/da-dk/common.d.ts.map +1 -1
  50. package/dist/resources/da-dk/common.js +4 -2
  51. package/dist/resources/da-dk/common.js.map +1 -1
  52. package/dist/resources/da-dk/email.d.ts +14 -0
  53. package/dist/resources/da-dk/email.d.ts.map +1 -1
  54. package/dist/resources/da-dk/email.js +15 -1
  55. package/dist/resources/da-dk/email.js.map +1 -1
  56. package/dist/resources/da-dk/studio.d.ts +26 -0
  57. package/dist/resources/da-dk/studio.d.ts.map +1 -1
  58. package/dist/resources/da-dk/studio.js +30 -4
  59. package/dist/resources/da-dk/studio.js.map +1 -1
  60. package/dist/resources/da-dk/ui.d.ts +49 -0
  61. package/dist/resources/da-dk/ui.d.ts.map +1 -1
  62. package/dist/resources/da-dk/ui.js +52 -3
  63. package/dist/resources/da-dk/ui.js.map +1 -1
  64. package/dist/resources/de-de/common.d.ts +2 -0
  65. package/dist/resources/de-de/common.d.ts.map +1 -1
  66. package/dist/resources/de-de/common.js +4 -2
  67. package/dist/resources/de-de/common.js.map +1 -1
  68. package/dist/resources/de-de/email.d.ts +14 -0
  69. package/dist/resources/de-de/email.d.ts.map +1 -1
  70. package/dist/resources/de-de/email.js +15 -1
  71. package/dist/resources/de-de/email.js.map +1 -1
  72. package/dist/resources/de-de/studio.d.ts +26 -0
  73. package/dist/resources/de-de/studio.d.ts.map +1 -1
  74. package/dist/resources/de-de/studio.js +30 -4
  75. package/dist/resources/de-de/studio.js.map +1 -1
  76. package/dist/resources/de-de/ui.d.ts +49 -0
  77. package/dist/resources/de-de/ui.d.ts.map +1 -1
  78. package/dist/resources/de-de/ui.js +52 -3
  79. package/dist/resources/de-de/ui.js.map +1 -1
  80. package/dist/resources/en-us/common.d.ts +2 -0
  81. package/dist/resources/en-us/common.d.ts.map +1 -1
  82. package/dist/resources/en-us/common.js +4 -2
  83. package/dist/resources/en-us/common.js.map +1 -1
  84. package/dist/resources/en-us/email.d.ts +14 -0
  85. package/dist/resources/en-us/email.d.ts.map +1 -1
  86. package/dist/resources/en-us/email.js +15 -1
  87. package/dist/resources/en-us/email.js.map +1 -1
  88. package/dist/resources/en-us/studio.d.ts +26 -0
  89. package/dist/resources/en-us/studio.d.ts.map +1 -1
  90. package/dist/resources/en-us/studio.js +30 -4
  91. package/dist/resources/en-us/studio.js.map +1 -1
  92. package/dist/resources/en-us/ui-deferred.d.ts +1827 -0
  93. package/dist/resources/en-us/ui-deferred.d.ts.map +1 -0
  94. package/dist/resources/en-us/ui-deferred.js +1827 -0
  95. package/dist/resources/en-us/ui-deferred.js.map +1 -0
  96. package/dist/resources/en-us/ui.d.ts +25 -1790
  97. package/dist/resources/en-us/ui.d.ts.map +1 -1
  98. package/dist/resources/en-us/ui.js +27 -1792
  99. package/dist/resources/en-us/ui.js.map +1 -1
  100. package/dist/resources/fr-fr/common.d.ts +2 -0
  101. package/dist/resources/fr-fr/common.d.ts.map +1 -1
  102. package/dist/resources/fr-fr/common.js +4 -2
  103. package/dist/resources/fr-fr/common.js.map +1 -1
  104. package/dist/resources/fr-fr/email.d.ts +14 -0
  105. package/dist/resources/fr-fr/email.d.ts.map +1 -1
  106. package/dist/resources/fr-fr/email.js +15 -1
  107. package/dist/resources/fr-fr/email.js.map +1 -1
  108. package/dist/resources/fr-fr/studio.d.ts +26 -0
  109. package/dist/resources/fr-fr/studio.d.ts.map +1 -1
  110. package/dist/resources/fr-fr/studio.js +30 -4
  111. package/dist/resources/fr-fr/studio.js.map +1 -1
  112. package/dist/resources/fr-fr/ui.d.ts +49 -0
  113. package/dist/resources/fr-fr/ui.d.ts.map +1 -1
  114. package/dist/resources/fr-fr/ui.js +52 -3
  115. package/dist/resources/fr-fr/ui.js.map +1 -1
  116. package/dist/resources/index.d.ts +1 -1
  117. package/dist/resources/index.d.ts.map +1 -1
  118. package/dist/resources/index.js +4 -1
  119. package/dist/resources/index.js.map +1 -1
  120. package/dist/resources/namespaces.d.ts +18 -0
  121. package/dist/resources/namespaces.d.ts.map +1 -1
  122. package/dist/resources/namespaces.js +18 -0
  123. package/dist/resources/namespaces.js.map +1 -1
  124. package/dist/resources/zh-cn/common.d.ts +2 -0
  125. package/dist/resources/zh-cn/common.d.ts.map +1 -1
  126. package/dist/resources/zh-cn/common.js +4 -2
  127. package/dist/resources/zh-cn/common.js.map +1 -1
  128. package/dist/resources/zh-cn/email.d.ts +14 -0
  129. package/dist/resources/zh-cn/email.d.ts.map +1 -1
  130. package/dist/resources/zh-cn/email.js +15 -1
  131. package/dist/resources/zh-cn/email.js.map +1 -1
  132. package/dist/resources/zh-cn/studio.d.ts +26 -0
  133. package/dist/resources/zh-cn/studio.d.ts.map +1 -1
  134. package/dist/resources/zh-cn/studio.js +30 -4
  135. package/dist/resources/zh-cn/studio.js.map +1 -1
  136. package/dist/resources/zh-cn/ui.d.ts +49 -0
  137. package/dist/resources/zh-cn/ui.d.ts.map +1 -1
  138. package/dist/resources/zh-cn/ui.js +52 -3
  139. package/dist/resources/zh-cn/ui.js.map +1 -1
  140. package/dist/resources/zh-tw/common.d.ts +2 -0
  141. package/dist/resources/zh-tw/common.d.ts.map +1 -1
  142. package/dist/resources/zh-tw/common.js +4 -2
  143. package/dist/resources/zh-tw/common.js.map +1 -1
  144. package/dist/resources/zh-tw/email.d.ts +14 -0
  145. package/dist/resources/zh-tw/email.d.ts.map +1 -1
  146. package/dist/resources/zh-tw/email.js +15 -1
  147. package/dist/resources/zh-tw/email.js.map +1 -1
  148. package/dist/resources/zh-tw/studio.d.ts +26 -0
  149. package/dist/resources/zh-tw/studio.d.ts.map +1 -1
  150. package/dist/resources/zh-tw/studio.js +30 -4
  151. package/dist/resources/zh-tw/studio.js.map +1 -1
  152. package/dist/resources/zh-tw/ui.d.ts +49 -0
  153. package/dist/resources/zh-tw/ui.d.ts.map +1 -1
  154. package/dist/resources/zh-tw/ui.js +52 -3
  155. package/dist/resources/zh-tw/ui.js.map +1 -1
  156. package/dist/review-status.js +7 -7
  157. package/dist/server.d.ts.map +1 -1
  158. package/dist/server.js +3 -0
  159. package/dist/server.js.map +1 -1
  160. package/dist/ui-words.d.ts +28 -0
  161. package/dist/ui-words.d.ts.map +1 -0
  162. package/dist/ui-words.js +41 -0
  163. package/dist/ui-words.js.map +1 -0
  164. package/locales/ar-EG/.meta.json +308 -0
  165. package/locales/ar-EG/common.json +4 -2
  166. package/locales/ar-EG/email.json +15 -1
  167. package/locales/ar-EG/studio.json +30 -4
  168. package/locales/ar-EG/ui.json +52 -3
  169. package/locales/cs-CZ/.meta.json +308 -0
  170. package/locales/cs-CZ/common.json +4 -2
  171. package/locales/cs-CZ/email.json +15 -1
  172. package/locales/cs-CZ/studio.json +30 -4
  173. package/locales/cs-CZ/ui.json +52 -3
  174. package/locales/da-DK/.meta.json +308 -0
  175. package/locales/da-DK/common.json +4 -2
  176. package/locales/da-DK/email.json +15 -1
  177. package/locales/da-DK/studio.json +30 -4
  178. package/locales/da-DK/ui.json +52 -3
  179. package/locales/de-DE/.meta.json +308 -0
  180. package/locales/de-DE/common.json +4 -2
  181. package/locales/de-DE/email.json +15 -1
  182. package/locales/de-DE/studio.json +30 -4
  183. package/locales/de-DE/ui.json +52 -3
  184. package/locales/en-US/common.json +4 -2
  185. package/locales/en-US/email.json +15 -1
  186. package/locales/en-US/studio.json +30 -4
  187. package/locales/en-US/ui.json +52 -3
  188. package/locales/fr-FR/.meta.json +308 -0
  189. package/locales/fr-FR/common.json +4 -2
  190. package/locales/fr-FR/email.json +15 -1
  191. package/locales/fr-FR/studio.json +30 -4
  192. package/locales/fr-FR/ui.json +52 -3
  193. package/locales/zh-CN/.meta.json +308 -0
  194. package/locales/zh-CN/common.json +4 -2
  195. package/locales/zh-CN/email.json +15 -1
  196. package/locales/zh-CN/studio.json +30 -4
  197. package/locales/zh-CN/ui.json +52 -3
  198. package/locales/zh-TW/.meta.json +308 -0
  199. package/locales/zh-TW/common.json +4 -2
  200. package/locales/zh-TW/email.json +15 -1
  201. package/locales/zh-TW/studio.json +30 -4
  202. package/locales/zh-TW/ui.json +52 -3
  203. package/package.json +1 -1
@@ -85,6 +85,8 @@ export default {
85
85
  "notAllowed": "Choose one of the listed values.",
86
86
  "invalid": "This value is not valid here.",
87
87
  "invalidCharacter": "This text contains a hidden character that cannot be saved. Type it again.",
88
+ "unknownCode": "No code like this is on offer here.",
89
+ "usedUp": "This code has been used as many times as it can be.",
88
90
  "email": "Enter a valid email address.",
89
91
  "url": "Enter a valid web address.",
90
92
  "phone": "Enter a valid phone number.",
@@ -136,1376 +138,6 @@ export default {
136
138
  "toast": {
137
139
  "dismiss": "Dismiss notification"
138
140
  },
139
- "widgets": {
140
- "kpi": {
141
- "statCard": {
142
- "description": "The workhorse metric card: a headline aggregate with an optional trend pill and mini sparkline."
143
- },
144
- "usageMeter": {
145
- "description": "Quota consumption against a limit; the bar turns amber, then red, past your thresholds.",
146
- "usageLabel": "Usage",
147
- "ofLabel": "of"
148
- },
149
- "statTileCompact": {
150
- "description": "A slim metric tile with a micro-label, trend chip, and 6-bar spark — for dense rows of 4 to 6."
151
- },
152
- "metricHero": {
153
- "description": "One oversized metric that counts up on load, with a trend pill, spark, and goal progress.",
154
- "goalLabel": "Goal"
155
- },
156
- "statPairCard": {
157
- "description": "Two metrics side by side; the second can be derived from the first."
158
- },
159
- "gaugeRing": {
160
- "description": "A ring gauge for a score or percentage, tinted by the band the value falls in."
161
- },
162
- "gaugeArc": {
163
- "description": "A speedometer arc with qualitative bands and a needle; also renders a grid of gauges.",
164
- "emptyTitle": "No gauges to show",
165
- "emptyBody": "Services appear here as gauges once there is a reading for them."
166
- },
167
- "periodComparison": {
168
- "description": "This period against last as two bars, with the difference computed underneath.",
169
- "higherLabel": "higher",
170
- "lowerLabel": "lower",
171
- "flatLabel": "flat",
172
- "periodALabel": "This period",
173
- "periodBLabel": "Last period"
174
- },
175
- "microKpiSubtitle": {
176
- "description": "A one-line header stat built from a template, recomputed from live state."
177
- },
178
- "autoInsights": {
179
- "description": "Ranked insight bullets — a headline stat, a sentence, and a spark — with a refresh rotation.",
180
- "emptyTitle": "No insights yet",
181
- "emptyBody": "Insights appear once there is enough data to spot a pattern.",
182
- "refreshLabel": "Refresh"
183
- }
184
- },
185
- "charts": {
186
- "boxplot": {
187
- "description": "Whisker-and-box summary of a numeric column's spread per category — min, quartiles, median and max.",
188
- "emptyTitle": "No distribution to plot",
189
- "emptyBody": "No rows matched the filters to summarise as box plots.",
190
- "chartLabel": "Box plot"
191
- },
192
- "violin": {
193
- "description": "Mirrored density curves comparing how a numeric column is distributed across groups.",
194
- "emptyTitle": "No distribution to plot",
195
- "emptyBody": "No rows matched the filters to build density profiles.",
196
- "chartLabel": "Violin plot"
197
- },
198
- "ridgeline": {
199
- "description": "Overlapping density ridges comparing a numeric column across ordered groups.",
200
- "emptyTitle": "No ridges to plot",
201
- "emptyBody": "No rows matched the filters to build density profiles.",
202
- "chartLabel": "Ridgeline"
203
- },
204
- "scatterBubble": {
205
- "description": "Two numeric columns as points, with an optional bubble size and a trend line.",
206
- "emptyTitle": "No points to plot",
207
- "emptyBody": "No rows matched the filters for the selected columns.",
208
- "chartLabel": "Scatter plot"
209
- },
210
- "hexbin": {
211
- "description": "Hex-binned density of two numeric columns, shaded by how many rows fall in each tile.",
212
- "emptyTitle": "No density to plot",
213
- "emptyBody": "No rows matched the filters to bin.",
214
- "chartLabel": "Density hexbin"
215
- },
216
- "correlationMatrix": {
217
- "description": "Pearson correlation between selected numeric columns, from strong positive to strong negative.",
218
- "emptyTitle": "Nothing to correlate",
219
- "emptyBody": "Select at least two numeric columns with matching rows.",
220
- "chartLabel": "Correlation matrix"
221
- },
222
- "parallelCoordinates": {
223
- "description": "Each record as a line across several normalised numeric axes, coloured by a category.",
224
- "emptyTitle": "No records to plot",
225
- "emptyBody": "No rows matched the filters across the selected axes.",
226
- "chartLabel": "Parallel coordinates"
227
- },
228
- "unexpectedShape": "Unexpected data shape.",
229
- "lineArea": {
230
- "chartLabel": "Line chart",
231
- "description": "A metric over time as a line with a soft area fill, with an optional dashed prior-period comparison."
232
- },
233
- "bar": {
234
- "chartLabel": "Bar chart",
235
- "description": "Categorical or time-bucketed values as vertical bars, with an optional highlight on the largest or current bar."
236
- },
237
- "donut": {
238
- "chartLabel": "Donut chart",
239
- "otherLabel": "Other",
240
- "description": "Category shares as donut slices with a legend and centre total, folding small slices into an Other bucket."
241
- },
242
- "bullet": {
243
- "chartLabel": "Bullet chart",
244
- "description": "Progress toward a goal as a measure bar over qualitative bands, with a target tick per row.",
245
- "emptyTitle": "No goals to track",
246
- "emptyBody": "Add measures with targets to compare against."
247
- },
248
- "rankingBars": {
249
- "chartLabel": "Ranking",
250
- "description": "A top-N ranking as horizontal bars — the leader at full strength, the rest dimmed — with values alongside.",
251
- "emptyTitle": "Nothing to rank",
252
- "emptyBody": "No records matched this breakdown yet."
253
- },
254
- "pareto": {
255
- "chartLabel": "Pareto chart",
256
- "description": "Sorted category bars under a cumulative-percent line, with an optional 80% cutline.",
257
- "emptyTitle": "No categories to chart",
258
- "emptyBody": "No grouped counts were returned for this range."
259
- },
260
- "waterfall": {
261
- "chartLabel": "Waterfall chart",
262
- "description": "A floating-bar bridge from a start total through positive and negative steps to a net total.",
263
- "emptyTitle": "No movement to bridge",
264
- "emptyBody": "No start, change, or total steps were found."
265
- },
266
- "marimekko": {
267
- "chartLabel": "Marimekko chart",
268
- "description": "A two-level mix as variable-width stacked columns — width for the outer share, segments for the inner split.",
269
- "emptyTitle": "No mix to break down",
270
- "emptyBody": "No two-level breakdown was returned for this range."
271
- },
272
- "stackedBar100": {
273
- "chartLabel": "100% stacked bar",
274
- "description": "One 100% bar split into proportional segments with a legend, comparing shares of a whole.",
275
- "emptyTitle": "No shares to split",
276
- "emptyBody": "No parts were returned for this breakdown."
277
- },
278
- "slope": {
279
- "chartLabel": "Slope chart",
280
- "description": "Two periods joined by one line per record, coloured by whether the value rose or fell.",
281
- "emptyTitle": "No period shift to show",
282
- "emptyBody": "No before/after values were returned to compare."
283
- },
284
- "multiline": {
285
- "chartLabel": "Multi-line chart",
286
- "description": "Several series as overlaid lines with end labels, comparing trends over the same time span.",
287
- "emptyTitle": "No series to plot",
288
- "emptyBody": "No time series matched the filters for this range."
289
- },
290
- "stream": {
291
- "chartLabel": "Stream chart",
292
- "description": "Stacked bands flowing around a centre line, showing how a total's composition shifts over time.",
293
- "emptyTitle": "No flow to chart",
294
- "emptyBody": "No stacked series were returned for this range."
295
- },
296
- "forecast": {
297
- "chartLabel": "Forecast chart",
298
- "nowLabel": "Now",
299
- "forecastLabel": "Forecast",
300
- "actualLabel": "Actual",
301
- "description": "A history line extended by a dashed projection inside a widening confidence band, split at a now divider.",
302
- "emptyTitle": "No history to project",
303
- "emptyBody": "No past points were returned to forecast from."
304
- },
305
- "anomaly": {
306
- "chartLabel": "Anomaly chart",
307
- "description": "A value line over its expected range, flagging points that fall outside it with halo dots.",
308
- "emptyTitle": "No signal to scan",
309
- "emptyBody": "No points were returned to check for anomalies."
310
- },
311
- "candlestick": {
312
- "chartLabel": "Candlestick chart",
313
- "livePillLabel": "Live",
314
- "description": "Open-high-low-close candles coloured by direction, with a dashed last-price line and an optional live pill.",
315
- "emptyTitle": "No candles to chart",
316
- "emptyBody": "No open-high-low-close rows matched this range."
317
- },
318
- "bump": {
319
- "chartLabel": "Bump chart",
320
- "description": "Rank-over-time lines showing how competitors trade places between periods.",
321
- "emptyTitle": "No ranks to trace",
322
- "emptyBody": "No period-over-period rankings were returned."
323
- },
324
- "timelineLanes": {
325
- "chartLabel": "Timeline lanes",
326
- "laneLabel": "Events",
327
- "description": "Dated events as pills on horizontal swimlanes sharing one time axis.",
328
- "emptyTitle": "No events to place",
329
- "emptyBody": "No events matched the filters for this range."
330
- },
331
- "treemap": {
332
- "chartLabel": "Treemap",
333
- "otherLabel": "Other",
334
- "description": "A part-to-whole breakdown as squarified tiles sized by value, folding small slices into an Other tile.",
335
- "emptyTitle": "No slices to tile",
336
- "emptyBody": "No categories were returned for this breakdown."
337
- },
338
- "sunburst": {
339
- "chartLabel": "Sunburst",
340
- "description": "A two-level hierarchy as nested rings — parents inside, their children outside — with a parent legend.",
341
- "emptyTitle": "No rings to draw",
342
- "emptyBody": "No grouped categories were returned to nest."
343
- },
344
- "funnel": {
345
- "chartLabel": "Funnel",
346
- "description": "Ordered shrinking stages with per-step continuation rates and an overall-conversion footer.",
347
- "emptyTitle": "No stages to funnel",
348
- "emptyBody": "No step counts were returned for this range."
349
- },
350
- "radialBar": {
351
- "chartLabel": "Radial bar",
352
- "description": "Up to four percentages as concentric progress rings with a dot legend.",
353
- "emptyTitle": "No rings to fill",
354
- "emptyBody": "No categories matched this breakdown yet."
355
- },
356
- "radar": {
357
- "chartLabel": "Radar",
358
- "description": "Several named axes on a polygon with one filled shape per series, against an optional target overlay.",
359
- "emptyTitle": "No axes to compare",
360
- "emptyBody": "No matrix of series and axes was returned."
361
- },
362
- "chord": {
363
- "chartLabel": "Chord",
364
- "description": "Pairwise flows as ribbons between nodes on a ring, with ribbon opacity weighted by volume.",
365
- "emptyTitle": "No flows to link",
366
- "emptyBody": "No connections between groups were returned."
367
- },
368
- "wordcloud": {
369
- "chartLabel": "Word cloud",
370
- "description": "Terms sized by frequency and flowed into rows, for a glanceable view of what dominates.",
371
- "emptyTitle": "No terms to cloud",
372
- "emptyBody": "No weighted terms matched the filters."
373
- },
374
- "cohortMatrix": {
375
- "chartLabel": "Cohort retention",
376
- "description": "Cohort rows against period columns, each cell shaded by retention or revenue.",
377
- "regionLabel": "Cohort matrix"
378
- },
379
- "heatmapCalendar": {
380
- "chartLabel": "Activity calendar",
381
- "legendLessLabel": "Less",
382
- "legendMoreLabel": "More",
383
- "description": "A year of daily activity as a week-by-day grid shaded by intensity.",
384
- "regionLabel": "Activity calendar"
385
- },
386
- "heatMonth": {
387
- "chartLabel": "Monthly activity",
388
- "description": "One calendar month as a day grid shaded by each day's value.",
389
- "regionLabel": "Monthly heat map"
390
- },
391
- "choroplethGrid": {
392
- "chartLabel": "Regional breakdown",
393
- "legendLowLabel": "Low",
394
- "legendHighLabel": "High",
395
- "description": "Regional values as a tinted US tilegram or compact grid, with an optional top-N ranking list."
396
- },
397
- "sankey": {
398
- "chartLabel": "Flow",
399
- "description": "Layered source-to-target flows as ribbons whose thickness encodes volume."
400
- },
401
- "sparkline": {
402
- "description": "An inline micro-trend of recent values — no axes or labels — for KPI cards, table cells and list rows."
403
- }
404
- },
405
- "feeds": {
406
- "activityFeed": {
407
- "description": "A running feed of who did what across your workspace, newest first.",
408
- "emptyTitle": "No recent activity",
409
- "emptyBody": "Actions across your workspace will show up here.",
410
- "viewAllLabel": "View all"
411
- },
412
- "notificationFeed": {
413
- "description": "Grouped notifications with unread state, filters, and inline actions.",
414
- "emptyTitle": "No notifications",
415
- "emptyBody": "New notifications will appear here.",
416
- "allLabel": "All",
417
- "unreadLabel": "Unread",
418
- "mentionsLabel": "Mentions",
419
- "filterLabel": "Notification filter",
420
- "markAllReadLabel": "Mark all read",
421
- "todayLabel": "Today",
422
- "yesterdayLabel": "Yesterday",
423
- "earlierLabel": "Earlier",
424
- "dismissLabel": "Dismiss",
425
- "emptyUnreadTitle": "You're all caught up",
426
- "emptyMentionsTitle": "No mentions"
427
- },
428
- "realtimeFeed": {
429
- "description": "A live event stream that prepends new items as they arrive.",
430
- "emptyTitle": "Waiting for events",
431
- "emptyBody": "Live events will stream in as they happen.",
432
- "liveLabel": "Live",
433
- "pausedLabel": "Paused",
434
- "pauseLabel": "Pause",
435
- "resumeLabel": "Resume"
436
- },
437
- "timelineVertical": {
438
- "description": "A vertical timeline of events, releases, incidents, or run steps.",
439
- "emptyTitle": "Nothing here yet",
440
- "emptyBody": "Events will appear on this timeline as they happen."
441
- },
442
- "unreadBadge": {
443
- "description": "A count pill showing unread items, synced with feed state.",
444
- "unitLabel": "unread"
445
- },
446
- "loadOlderPaginator": {
447
- "description": "A footer button that loads older records in batches until the feed is exhausted.",
448
- "label": "Load older",
449
- "loadingLabel": "Loading…",
450
- "exhaustedLabel": "Nothing older",
451
- "ofLabel": "of"
452
- },
453
- "toastStack": {
454
- "description": "The overlay toast host: brief confirmations with an optional Undo.",
455
- "undoLabel": "Undo",
456
- "dismissLabel": "Dismiss",
457
- "regionLabel": "Notifications"
458
- }
459
- },
460
- "calendar": {
461
- "calendarMonth": {
462
- "description": "A month grid of scheduled events with per-day chips and month navigation.",
463
- "emptyTitle": "Nothing scheduled",
464
- "emptyBody": "Scheduled events will appear on this calendar.",
465
- "previousLabel": "Previous month",
466
- "nextLabel": "Next month",
467
- "overflowLabel": "+{count} more"
468
- },
469
- "dayAgenda": {
470
- "description": "The selected day's events as a time-ordered agenda.",
471
- "emptyTitle": "Nothing scheduled",
472
- "emptyBody": "Events for the selected day will appear here.",
473
- "countLabel": "{count, plural, one {{n} event} other {{n} events}}"
474
- },
475
- "scheduleMatrix": {
476
- "description": "A resource-by-day shift grid with per-day coverage and a shift legend.",
477
- "emptyTitle": "No shifts scheduled",
478
- "emptyBody": "Assigned shifts will appear on this schedule.",
479
- "resourceLabel": "Resource",
480
- "coverageLabel": "Coverage",
481
- "hoursLabel": "{hours}h"
482
- },
483
- "capacityBoard": {
484
- "description": "Per-member utilization bars with a project breakdown and load status.",
485
- "emptyTitle": "No workload data",
486
- "emptyBody": "Member utilization will appear here once assignments exist.",
487
- "status": {
488
- "overloaded": "Overloaded",
489
- "balanced": "Balanced",
490
- "available": "Available"
491
- },
492
- "utilizationLabel": "{name}: {util}%",
493
- "assignmentLabel": "{project} · {hours}h",
494
- "periodLabel": "h · {period}",
495
- "period": {
496
- "week": "week",
497
- "month": "month"
498
- }
499
- },
500
- "calendarLegendFilter": {
501
- "description": "Event categories with counts; toggling one filters the calendar beside it.",
502
- "emptyTitle": "No categories yet",
503
- "emptyBody": "Event categories will appear here once events exist.",
504
- "uncategorizedLabel": "Uncategorized",
505
- "listLabel": "Categories"
506
- },
507
- "upcomingEventsList": {
508
- "description": "The next scheduled events, date-ascending, with owner and status.",
509
- "emptyTitle": "Nothing upcoming",
510
- "emptyBody": "Scheduled events will appear here as they are planned.",
511
- "listLabel": "Upcoming events"
512
- },
513
- "dateRangePicker": {
514
- "description": "A start/end date range with quick presets that filters the rest of the page.",
515
- "previousLabel": "Previous month",
516
- "nextLabel": "Next month",
517
- "summaryLabel": "{n} days selected",
518
- "presets": {
519
- "7d": "Last 7 days",
520
- "30d": "Last 30 days",
521
- "90d": "Last 90 days",
522
- "mtd": "Month to date",
523
- "qtd": "Quarter to date",
524
- "ytd": "Year to date"
525
- }
526
- },
527
- "scheduledJobsList": {
528
- "description": "Recurring reports and exports with their cadence, next run, and an on/off switch.",
529
- "emptyTitle": "No scheduled jobs",
530
- "emptyBody": "Recurring reports and exports will appear here once scheduled.",
531
- "nextRunLabel": "Next run",
532
- "toggleLabel": "Enable schedule",
533
- "recipientsLabel": "Recipients",
534
- "listLabel": "Scheduled jobs"
535
- }
536
- },
537
- "tables": {
538
- "masterList": {
539
- "description": "A selectable list of records that drives a detail pane.",
540
- "emptyTitle": "No items match this filter",
541
- "emptyBody": "Items will appear here once they exist.",
542
- "allLabel": "All",
543
- "toggleLabel": "Toggle {title}",
544
- "progressLabel": "{title} progress"
545
- },
546
- "logTable": {
547
- "description": "An append-only event log with search, an errors filter, and row actions.",
548
- "emptyTitle": "No log entries",
549
- "emptyBody": "Events will be recorded here as they happen.",
550
- "liveLabel": "Live",
551
- "placeholder": "Search logs…",
552
- "filterLabel": "Log filter",
553
- "allLabel": "All",
554
- "errorsLabel": "Errors",
555
- "noMatchesLabel": "No matching entries",
556
- "todayLabel": "Today",
557
- "yesterdayLabel": "Yesterday",
558
- "action": {
559
- "retry": "retry",
560
- "download": "download",
561
- "inspect": "inspect"
562
- }
563
- },
564
- "cardGallery": {
565
- "description": "A responsive gallery of entity cards with status and quick actions.",
566
- "emptyTitle": "Nothing to show",
567
- "emptyBody": "Items will appear here as cards."
568
- },
569
- "groupedSummaryTable": {
570
- "description": "Grouped rows with aggregate columns, expandable details, and totals.",
571
- "emptyTitle": "No summary data",
572
- "emptyBody": "Grouped totals will appear here once there is data.",
573
- "groupLabel": "Group",
574
- "totalsLabel": "Total"
575
- },
576
- "schemaTree": {
577
- "description": "An explorer for schemas, tables, and columns with type and key badges.",
578
- "emptyTitle": "No schema introspected",
579
- "emptyBody": "Connect a database to explore its schema here.",
580
- "treeLabel": "Schema",
581
- "viewLabel": "view"
582
- },
583
- "toggleMatrix": {
584
- "description": "An interactive grid of boolean toggles for roles, policies, or channels.",
585
- "emptyTitle": "No matrix configured",
586
- "emptyBody": "Rows and columns will appear here once configured.",
587
- "matrixLabel": "Permissions matrix",
588
- "rowHeaderLabel": "Permission"
589
- },
590
- "sparklineTable": {
591
- "description": "Metric rows with a micro sparkline, the current value, and a good/bad-aware change pill.",
592
- "emptyTitle": "No metrics to show",
593
- "emptyBody": "Metrics will appear here once there is data to summarize."
594
- },
595
- "topMoversList": {
596
- "description": "The metrics that changed the most, with the direction judged good or bad per metric.",
597
- "emptyTitle": "No movers",
598
- "emptyBody": "Metrics that changed the most will appear here."
599
- },
600
- "rankedEntityList": {
601
- "description": "Top entities by a metric, each with its rank and a proportional bar.",
602
- "emptyTitle": "Nothing ranked yet",
603
- "emptyBody": "Top entities will appear here once there is data to rank."
604
- },
605
- "accordionList": {
606
- "description": "Expandable rows with a badge and a detail panel, single- or multi-open.",
607
- "emptyTitle": "Nothing to expand",
608
- "emptyBody": "Entries will appear here once there are any."
609
- },
610
- "comparisonMatrix": {
611
- "description": "A feature grid comparing plans or tiers, with one column promoted.",
612
- "includedLabel": "Included",
613
- "notIncludedLabel": "Not included",
614
- "promotedLabel": "Recommended"
615
- },
616
- "chipCloud": {
617
- "description": "Wrapped chips for discovered tables, merge variables, or suggestions.",
618
- "emptyTitle": "Nothing discovered yet",
619
- "emptyBody": "Tables and variables will appear here as chips once they are found.",
620
- "moreLabel": "+{n} more"
621
- },
622
- "dataGrid": {
623
- "selectAllLabel": "Select all rows",
624
- "selectRowLabel": "Select row",
625
- "sortByLabel": "Sort by {column}",
626
- "description": "The canonical CRUD grid with sortable columns, row selection, and type-aware cells.",
627
- "rowActionsLabel": "Row actions"
628
- },
629
- "paginationFooter": {
630
- "emptyLabel": "0 rows",
631
- "ofLabel": "of",
632
- "pageSizeLabel": "Rows",
633
- "a11y": {
634
- "pageSize": "Rows per page"
635
- },
636
- "prevLabel": "Previous page",
637
- "nextLabel": "Next page",
638
- "description": "A footer with the visible row range, prev/next paging, and a page-size select."
639
- },
640
- "bulkActionToolbar": {
641
- "selectedLabel": "selected",
642
- "clearLabel": "Clear selection",
643
- "toolbarLabel": "Bulk actions",
644
- "description": "A selection-aware toolbar showing the selected count and bulk actions."
645
- },
646
- "miniTable": {
647
- "viewAllLabel": "View all",
648
- "description": "A compact dashboard row list with mapped columns and a view-all link."
649
- },
650
- "revealLabel": "Reveal value",
651
- "hideLabel": "Hide value",
652
- "trueLabel": "true",
653
- "falseLabel": "false",
654
- "detailKeyValue": {
655
- "description": "A record's fields as label/value rows with type-aware values."
656
- },
657
- "fileDownload": "Download"
658
- },
659
- "boards": {
660
- "kanbanBoard": {
661
- "description": "Fixed status columns of draggable cards; drag a card to another column to update its status.",
662
- "emptyTitle": "No board columns",
663
- "emptyBody": "Add a status field to group cards into columns."
664
- },
665
- "kanbanSwimlaneGrid": {
666
- "description": "A lane × column grid where dragging a card reassigns both its lane and its status.",
667
- "emptyTitle": "No swimlanes to show",
668
- "emptyBody": "Group records by a lane field and a status field to build the grid."
669
- },
670
- "addCard": "Add card",
671
- "grip": "Drag to move card",
672
- "pointsUnit": "pts",
673
- "laneSummary": "Σ{points} pts · {count}",
674
- "a11y": {
675
- "grabbed": "Grabbed {title}. Use the arrow keys to move, Enter to drop, Escape to cancel.",
676
- "over": "{title} is over {cell}.",
677
- "moved": "Moved {title} to {cell}.",
678
- "returned": "{title} returned to its original position.",
679
- "failed": "Could not move {title}; it was returned to its original position."
680
- },
681
- "boardCard": {
682
- "description": "A single board card: tag, title, progress, owner, and due date.",
683
- "emptyTitle": "No card",
684
- "emptyBody": "This card has no record bound to it yet."
685
- },
686
- "inlineComposeCard": {
687
- "description": "A quick-add card that inserts a new record with the column's defaults.",
688
- "placeholder": "Card title…",
689
- "addLabel": "Add",
690
- "cancelLabel": "Cancel",
691
- "openLabel": "Add card"
692
- }
693
- },
694
- "communication": {
695
- "conversationInbox": {
696
- "description": "A selectable list of conversations with unread counts, presence, and last-message previews.",
697
- "emptyTitle": "No conversations",
698
- "emptyBody": "Conversations will appear here as messages arrive.",
699
- "noMatchesTitle": "No conversations match",
700
- "searchLabel": "Search conversations",
701
- "searchPlaceholder": "Search conversations…"
702
- },
703
- "chatThread": {
704
- "description": "Message bubbles grouped by author and day, with attachments and a composer.",
705
- "emptyTitle": "No messages yet",
706
- "emptyBody": "Messages in this conversation will appear here.",
707
- "composerPlaceholder": "Write a message…",
708
- "sendLabel": "Send",
709
- "attachLabel": "Add attachment",
710
- "typingLabel": "typing…",
711
- "composerLabel": "Message",
712
- "transcriptLabel": "Conversation"
713
- },
714
- "aiChatPanel": {
715
- "description": "An assistant panel for asking questions about your schema and data.",
716
- "emptyTitle": "Ask about your data",
717
- "emptyBody": "Ask a question about your schema, tables, or metrics to get started.",
718
- "composerPlaceholder": "Ask a question…",
719
- "sendLabel": "Send",
720
- "pendingLabel": "Thinking…",
721
- "configureTitle": "No AI provider configured",
722
- "configureBody": "Add an Anthropic or OpenAI key — or point Adminium at your own endpoint — to ask questions about your schema.",
723
- "configureCtaLabel": "Configure a provider",
724
- "assistantLabel": "Assistant",
725
- "composerLabel": "Ask a question",
726
- "transcriptLabel": "Assistant transcript"
727
- },
728
- "typingIndicator": {
729
- "description": "An avatar and an italic “typing…” row, bound to a live per-conversation boolean.",
730
- "label": "typing…",
731
- "emptyTitle": "No typing activity",
732
- "emptyBody": "Typing state appears here once the conversation is live."
733
- },
734
- "callWidget": {
735
- "description": "An incoming voice or video call: the caller’s avatar, the call state, and accept or decline actions.",
736
- "voiceLabel": "Voice call",
737
- "videoLabel": "Video call",
738
- "ringingLabel": "Ringing…",
739
- "connectingLabel": "Connecting…",
740
- "activeLabel": "In call",
741
- "endedLabel": "Call ended",
742
- "acceptLabel": "Accept",
743
- "declineLabel": "Decline",
744
- "endLabel": "End call",
745
- "emptyTitle": "No active call",
746
- "emptyBody": "An incoming call will appear here."
747
- }
748
- },
749
- "geo": {
750
- "mapBubble": {
751
- "description": "A map whose circle markers are sized by the metric you choose, alongside a ranked list of the top places.",
752
- "emptyTitle": "No locations",
753
- "emptyBody": "Rows with latitude and longitude values appear here as map markers.",
754
- "mapUnavailableLabel": "The map could not be loaded. The ranked list below shows the same data.",
755
- "regionsLabel": "Top regions",
756
- "metricLabel": "Metric"
757
- },
758
- "mapChoroplethGrid": {
759
- "description": "Region tiles tinted by value — for tables that carry region codes but no coordinates.",
760
- "emptyTitle": "No regions",
761
- "emptyBody": "Rows with a region code and a numeric value appear here as tinted tiles.",
762
- "legendLowLabel": "Low",
763
- "legendHighLabel": "High",
764
- "chartLabel": "Regional breakdown"
765
- }
766
- },
767
- "domain": {
768
- "orgChart": {
769
- "description": "The reporting tree built from a people table's manager reference, with collapsible branches.",
770
- "emptyTitle": "No reporting structure",
771
- "emptyBody": "The org chart appears once people rows reference a manager.",
772
- "reportsLabel": "Reports · {count}",
773
- "a11yLabel": "Organization chart"
774
- },
775
- "ganttChart": {
776
- "description": "Task bars over a time axis, grouped by phase, with progress, milestones, and a today marker.",
777
- "emptyTitle": "Nothing scheduled",
778
- "emptyBody": "Tasks appear here once they have start and end dates.",
779
- "ungroupedLabel": "Tasks"
780
- },
781
- "documentCanvas": {
782
- "description": "A paper-styled document canvas — invoice, report or email — whose blocks can be selected, reordered and removed.",
783
- "emptyTitle": "No blocks yet",
784
- "emptyBody": "Add a block from the palette to build this document.",
785
- "addBlockLabel": "Add block",
786
- "removeBlockLabel": "Remove block",
787
- "moveUpLabel": "Move block up",
788
- "moveDownLabel": "Move block down",
789
- "blockListLabel": "Document blocks",
790
- "billedToLabel": "Billed to",
791
- "issuedLabel": "Issued",
792
- "dueLabel": "Due",
793
- "noDocumentTitle": "No document yet",
794
- "noDocumentBody": "Pick a starter template or add a block to begin."
795
- },
796
- "blockTotalsSummary": {
797
- "description": "The document totals — subtotal, discount, tax and the total due, recomputed from the line items.",
798
- "emptyTitle": "No totals",
799
- "emptyBody": "Totals appear once the document has line items.",
800
- "subtotalLabel": "Subtotal",
801
- "discountLabel": "Discount",
802
- "taxLabel": "Tax",
803
- "totalLabel": "Total due"
804
- },
805
- "blockLineItems": {
806
- "description": "Editable description, quantity and rate rows that feed the document totals.",
807
- "emptyTitle": "No line items",
808
- "emptyBody": "Add a line item to build this document.",
809
- "descHeader": "Description",
810
- "qtyHeader": "Qty",
811
- "rateHeader": "Rate",
812
- "amountHeader": "Amount"
813
- },
814
- "blockKpiRow": {
815
- "description": "A row of stat tiles with sign-aware delta coloring.",
816
- "emptyTitle": "No metrics",
817
- "emptyBody": "Report metrics will appear here once the document is bound."
818
- },
819
- "blockBarChart": {
820
- "description": "A mini bar chart in the document accent, sized for a document block.",
821
- "emptyTitle": "No chart data",
822
- "emptyBody": "A mini bar chart appears once this block is bound to a series.",
823
- "a11yLabel": "Bar chart"
824
- },
825
- "blockLineChart": {
826
- "description": "A mini line chart with an optional filled area, sized for a document block.",
827
- "emptyTitle": "No chart data",
828
- "emptyBody": "A mini line chart appears once this block is bound to a series.",
829
- "a11yLabel": "Line chart"
830
- },
831
- "blockTwoColTable": {
832
- "description": "A two-column table with a styled header row and a mono value column.",
833
- "emptyTitle": "No rows",
834
- "emptyBody": "Two-column rows will appear here."
835
- },
836
- "blockTaxBreakdown": {
837
- "description": "Tax lines with label, rate and amount, applied to the document subtotal.",
838
- "emptyTitle": "No tax lines",
839
- "emptyBody": "Tax lines appear once a rate applies to this document."
840
- },
841
- "blockMultiCurrency": {
842
- "description": "The document total converted per currency at the given rates.",
843
- "emptyTitle": "No conversions",
844
- "emptyBody": "Currency conversions appear once exchange rates are available.",
845
- "footnote": "Rates are indicative and may differ at settlement."
846
- },
847
- "blockPaymentHistory": {
848
- "description": "Past payments with date, masked method, amount and a status pill.",
849
- "emptyTitle": "No payments yet",
850
- "emptyBody": "Payments against this document will appear here."
851
- },
852
- "blockDiscountCodes": {
853
- "description": "Applied discount codes with their label and credited amount.",
854
- "emptyTitle": "No discount codes",
855
- "emptyBody": "Applied discount codes will appear here."
856
- },
857
- "blockLoyaltyBanner": {
858
- "description": "A loyalty banner with the points balance, tier and points earned on this order.",
859
- "emptyTitle": "No loyalty balance",
860
- "emptyBody": "Loyalty points appear once this customer is enrolled.",
861
- "balanceLabel": "{balance} pts · {tier}",
862
- "earnedLabel": "+{earned} earned"
863
- },
864
- "blockRecurringBanner": {
865
- "description": "A banner announcing the billing frequency, the next charge date and the cycles remaining.",
866
- "emptyTitle": "Not recurring",
867
- "emptyBody": "Recurrence details appear once a schedule is set.",
868
- "template": "Recurring — {freq} · Next on {next} · {count} cycles"
869
- },
870
- "blockQrPay": {
871
- "description": "A scan-to-pay tile with a caption and the amount due.",
872
- "emptyTitle": "No payment link",
873
- "emptyBody": "A scannable payment code appears once an amount is due.",
874
- "amountLabel": "Amount due"
875
- },
876
- "blockDeliveryStepper": {
877
- "description": "Horizontal delivery steps marked done, current or upcoming.",
878
- "emptyTitle": "No delivery steps",
879
- "emptyBody": "Fulfilment progress will appear here."
880
- },
881
- "blockSignature": {
882
- "description": "Signature lines for a name and title, with the date signed.",
883
- "emptyTitle": "No signature",
884
- "emptyBody": "A signature line appears once this document requires one.",
885
- "namePlaceholder": "Name",
886
- "titlePlaceholder": "Title",
887
- "dateLabel": "Date",
888
- "nameInputLabel": "Signature name"
889
- },
890
- "blockTermsCheckbox": {
891
- "description": "A terms toggle with an editable label.",
892
- "defaultLabel": "I accept the terms"
893
- },
894
- "blockApproval": {
895
- "description": "An approver card with a status-tinted pill and optional approve or reject actions.",
896
- "emptyTitle": "No approver",
897
- "emptyBody": "The approval chain appears once a reviewer is assigned.",
898
- "approveLabel": "Approve",
899
- "rejectLabel": "Reject",
900
- "pendingLabel": "Pending",
901
- "approvedLabel": "Approved",
902
- "rejectedLabel": "Rejected"
903
- },
904
- "blockAttachments": {
905
- "description": "Attached files with their names and sizes.",
906
- "emptyTitle": "No attachments",
907
- "emptyBody": "Files attached to this document will appear here."
908
- },
909
- "blockLateFees": {
910
- "description": "A warning callout stating the late fee and the grace period.",
911
- "emptyTitle": "No late fee",
912
- "emptyBody": "Late-fee terms appear once they are set on this document.",
913
- "template": "A {rate} late fee applies after {days} days."
914
- },
915
- "blockImagePlaceholder": {
916
- "description": "A dashed placeholder box standing in for an image, with a caption.",
917
- "emptyTitle": "No image slot",
918
- "emptyBody": "An image placeholder appears once this block is bound."
919
- },
920
- "blockContact": {
921
- "description": "Contact rows for a name, email address and phone number.",
922
- "emptyTitle": "No contact",
923
- "emptyBody": "Contact details appear once this document names a recipient."
924
- },
925
- "blockHighlightBox": {
926
- "description": "A callout box pairing a label with a large mono value.",
927
- "emptyTitle": "Nothing highlighted",
928
- "emptyBody": "A highlighted figure appears once this block is bound."
929
- },
930
- "starterTemplatePicker": {
931
- "description": "A grid of predefined starters with generated thumbnails; picking one seeds a full document.",
932
- "emptyTitle": "No starters",
933
- "emptyBody": "Add starter definitions in config or bind a starters table.",
934
- "blankLabel": "Blank",
935
- "kicker": {
936
- "invoice": "Invoice",
937
- "report": "Report",
938
- "email": "Email"
939
- }
940
- },
941
- "sloMonitorCard": {
942
- "description": "Per-service SLA card with status, availability against target, a daily uptime strip, error budget, and p95 latency.",
943
- "emptyTitle": "No monitor",
944
- "emptyBody": "Bind a monitors table with a status and an availability column.",
945
- "targetLabel": "Target",
946
- "budgetLabel": "Error budget",
947
- "latencyLabel": "p95 latency",
948
- "status": {
949
- "operational": "Operational",
950
- "degraded": "Degraded",
951
- "down": "Down",
952
- "unknown": "Unknown"
953
- }
954
- },
955
- "uptimeSegmentBar": {
956
- "description": "Statuspage-style day strips coloured by daily status, with a 30/90-day toggle.",
957
- "emptyTitle": "No uptime history",
958
- "emptyBody": "Daily status rows appear here as an uptime strip.",
959
- "daysAgoLabel": "{days} days ago",
960
- "todayLabel": "Today",
961
- "uptimeLabel": "uptime",
962
- "period30Label": "30d",
963
- "period90Label": "90d",
964
- "status": {
965
- "operational": "Operational",
966
- "degraded": "Degraded",
967
- "down": "Down",
968
- "unknown": "No data"
969
- }
970
- },
971
- "experimentVariantCompare": {
972
- "description": "Per-variant conversion bars with lift against the control and a significance meter.",
973
- "emptyTitle": "No variants",
974
- "emptyBody": "Bind an experiment variants table with conversion numbers.",
975
- "controlLabel": "CONTROL",
976
- "winnerLabel": "WINNER",
977
- "significanceLabel": "Confidence",
978
- "verdictSignificantLabel": "Statistically significant — safe to call.",
979
- "verdictInconclusiveLabel": "Not yet significant — keep the test running.",
980
- "countsLabel": "{users} participants · {conversions} conversions"
981
- },
982
- "creditCardTile": {
983
- "description": "A stored payment method as a branded card with a masked number, holder, and expiry.",
984
- "emptyTitle": "No payment method",
985
- "emptyBody": "Add a card to see it here.",
986
- "defaultLabel": "Default",
987
- "setDefaultLabel": "Set default",
988
- "manageLabel": "Manage",
989
- "addLabel": "Add payment method",
990
- "expiresLabel": "Expires"
991
- },
992
- "planPricingCards": {
993
- "description": "Pricing tiers with a monthly/annual switch, feature lists, and a promoted plan.",
994
- "emptyTitle": "No plans",
995
- "emptyBody": "Bind a plans table with a name and a monthly price.",
996
- "monthlyLabel": "Monthly",
997
- "annualLabel": "Annual",
998
- "popularLabel": "POPULAR",
999
- "perMonthLabel": "/ month",
1000
- "billedAnnuallyLabel": "Billed {total} yearly",
1001
- "currentLabel": "Current plan",
1002
- "ctaLabel": "Choose plan"
1003
- },
1004
- "apiKeysPanel": {
1005
- "description": "API keys with environment badges, masked values, scopes, last use, and copy, roll, and revoke actions.",
1006
- "emptyTitle": "No API keys",
1007
- "emptyBody": "Create a key to start calling the API.",
1008
- "revealedTitle": "Key created",
1009
- "revealedBody": "Copy it now — it is never shown again.",
1010
- "copyLabel": "Copy",
1011
- "copiedLabel": "Copied",
1012
- "revealLabel": "Reveal key",
1013
- "hideLabel": "Hide key",
1014
- "rollLabel": "Roll key",
1015
- "revokeLabel": "Revoke key",
1016
- "neverUsedLabel": "Never used",
1017
- "lastUsedLabel": "Last used {since}"
1018
- },
1019
- "apiPlayground": {
1020
- "description": "A request composer with parameters and a response pane. It composes only and never sends a real request.",
1021
- "emptyTitle": "No endpoint selected",
1022
- "emptyBody": "Pick an endpoint to compose a request against it.",
1023
- "sendLabel": "Send",
1024
- "requestLabel": "Request",
1025
- "responseLabel": "Response",
1026
- "paramsLabel": "Parameters",
1027
- "responsePlaceholder": "Send the request to see the response."
1028
- },
1029
- "codeSnippetBlock": {
1030
- "description": "A copyable code snippet with a language chip and optional per-language tabs.",
1031
- "emptyTitle": "No snippet",
1032
- "emptyBody": "Bind a code column or set a static snippet in config.",
1033
- "copyLabel": "Copy",
1034
- "copiedLabel": "Copied"
1035
- },
1036
- "webhookEndpointsList": {
1037
- "description": "Webhook endpoints with their event, target URL, last fired time, and an enable toggle.",
1038
- "emptyTitle": "No endpoints",
1039
- "emptyBody": "Add a webhook endpoint to receive table events.",
1040
- "neverFiredLabel": "Never fired",
1041
- "lastFiredLabel": "Last fired {since}"
1042
- },
1043
- "resourceApiCard": {
1044
- "description": "A table's generated API surface: row count, security badge, method chips, and request volume.",
1045
- "emptyTitle": "No resource",
1046
- "emptyBody": "Bind a table to show its generated API surface.",
1047
- "rlsLabel": "RLS",
1048
- "publicLabel": "Public",
1049
- "rowsLabel": "rows",
1050
- "perDayLabel": "{count}/day"
1051
- },
1052
- "liveTimer": {
1053
- "description": "A start/stop stopwatch for a task; stopping it records a time entry.",
1054
- "emptyTitle": "No timer",
1055
- "emptyBody": "Bind a time-entry row with a task and a duration column.",
1056
- "startLabel": "Start",
1057
- "stopLabel": "Stop",
1058
- "taskPlaceholder": "Untitled task"
1059
- },
1060
- "syncStatusCard": {
1061
- "description": "Connection identity, latency, rows synced, and the sync schedule, with a sync-now action.",
1062
- "emptyTitle": "No connection",
1063
- "emptyBody": "Bind a connection row to show its sync status.",
1064
- "connectedLabel": "Connected",
1065
- "disconnectedLabel": "Disconnected",
1066
- "rowsSyncedLabel": "Rows synced",
1067
- "tablesLabel": "Tables",
1068
- "lastSyncLabel": "Last sync",
1069
- "nextSyncLabel": "Next sync",
1070
- "syncingLabel": "Syncing…",
1071
- "syncActionLabel": "Sync now"
1072
- },
1073
- "ipAllowlistCard": {
1074
- "description": "Static egress IP addresses to allow through a firewall, each with a copy button.",
1075
- "emptyTitle": "No egress IPs",
1076
- "emptyBody": "Egress addresses appear here once the connection is provisioned.",
1077
- "copyLabel": "Copy",
1078
- "copiedLabel": "Copied"
1079
- },
1080
- "onboardingChecklist": {
1081
- "description": "Setup steps with time estimates and actions, over a live progress ring and bar.",
1082
- "emptyTitle": "Nothing to set up",
1083
- "emptyBody": "Add onboarding steps in config or bind a steps table.",
1084
- "progressLabel": "{done} of {total} done",
1085
- "celebrateTitle": "All done"
1086
- },
1087
- "testimonialCard": {
1088
- "description": "A customer quote with an avatar and attribution.",
1089
- "emptyTitle": "No testimonial",
1090
- "emptyBody": "Bind a quote row to show a customer testimonial."
1091
- },
1092
- "trustBadges": {
1093
- "description": "A dot-separated row of compliance and trust claims.",
1094
- "emptyTitle": "No badges",
1095
- "emptyBody": "Add compliance claims in config or bind a badges table."
1096
- },
1097
- "policyList": {
1098
- "description": "Row-level security policies per table with their command, role, and an enable toggle.",
1099
- "emptyTitle": "No policies",
1100
- "emptyBody": "This table has no row-level security policies yet."
1101
- },
1102
- "blockEmailHeading": {
1103
- "emptyTitle": "No heading",
1104
- "emptyBody": "Add heading text for this email."
1105
- },
1106
- "blockEmailText": {
1107
- "emptyTitle": "No text",
1108
- "emptyBody": "Add a paragraph for this email."
1109
- },
1110
- "blockEmailButton": {
1111
- "emptyTitle": "Incomplete button",
1112
- "emptyBody": "A button needs both text and a link to be sent."
1113
- },
1114
- "blockEmailSpacer": {
1115
- "label": "{size}px space"
1116
- },
1117
- "blockEmailFooter": {
1118
- "emptyTitle": "No footer",
1119
- "emptyBody": "Legal text, address and unsubscribe copy go here."
1120
- }
1121
- },
1122
- "media": {
1123
- "fileBrowser": {
1124
- "description": "Browse files and folders as a tile grid or a list, with a breadcrumb trail, type icons, and starring.",
1125
- "emptyTitle": "This folder is empty",
1126
- "emptyBody": "Upload files or create a folder to get started."
1127
- },
1128
- "uploadDropzone": {
1129
- "description": "A drag-and-drop target for uploading files, with format and size constraints.",
1130
- "dropTitle": "Drop files to upload",
1131
- "browsePrefix": "or",
1132
- "browseLabel": "browse"
1133
- },
1134
- "uploadProgressList": {
1135
- "description": "Per-file upload rows with a progress bar and status; also drives export-queue jobs.",
1136
- "emptyTitle": "No uploads in progress",
1137
- "emptyBody": "Files you upload will show their progress here."
1138
- },
1139
- "attachmentList": {
1140
- "description": "Files attached to a record, with type icons, sizes, and download or delete actions.",
1141
- "emptyTitle": "No attachments",
1142
- "emptyBody": "Files attached to this record will appear here."
1143
- },
1144
- "imageBoard": {
1145
- "description": "A moodboard grid of image slots with captions, for tables with image URLs.",
1146
- "emptyTitle": "No images yet",
1147
- "emptyBody": "Reference images will appear on this board.",
1148
- "placeholder": "Drop reference"
1149
- },
1150
- "linkList": {
1151
- "description": "Reference links with titles and URLs, opening in a new tab.",
1152
- "emptyTitle": "No links yet",
1153
- "emptyBody": "Reference links will appear here."
1154
- },
1155
- "root": "Files",
1156
- "breadcrumb": "Breadcrumb",
1157
- "gridView": "Grid view",
1158
- "listView": "List view",
1159
- "nameHeader": "Name",
1160
- "sizeHeader": "Size",
1161
- "modifiedHeader": "Modified",
1162
- "star": "Star",
1163
- "items": "items",
1164
- "done": "Done",
1165
- "failed": "Failed",
1166
- "queued": "Queued",
1167
- "retry": "Retry",
1168
- "download": "Download",
1169
- "cancel": "Cancel",
1170
- "delete": "Delete",
1171
- "remove": "Remove",
1172
- "addImage": "Add image",
1173
- "caption": "Caption",
1174
- "addLink": "Add link",
1175
- "linkTitlePlaceholder": "Title",
1176
- "linkUrlPlaceholder": "https://…",
1177
- "add": "Add"
1178
- },
1179
- "forms": {
1180
- "modalWizard": {
1181
- "description": "A modal create form with a success confirmation — the standard “new record” flow.",
1182
- "trigger": "Create",
1183
- "submit": "Create",
1184
- "cancel": "Cancel",
1185
- "done": "Done",
1186
- "successTitle": "Created",
1187
- "successBody": "The record was saved.",
1188
- "required": "This field is required.",
1189
- "titleLabel": "Create record",
1190
- "closeLabel": "Close"
1191
- },
1192
- "drawerForm": {
1193
- "description": "A side-drawer create or edit form for records with more fields than a modal fits.",
1194
- "trigger": "New",
1195
- "submit": "Save",
1196
- "cancel": "Cancel",
1197
- "titleLabel": "New record",
1198
- "closeLabel": "Close"
1199
- },
1200
- "stepper": {
1201
- "description": "A progress stepper showing where a multi-step flow has got to.",
1202
- "a11yLabel": "Progress"
1203
- },
1204
- "progressBar": {
1205
- "description": "A determinate progress track with a percent caption.",
1206
- "label": "Progress"
1207
- },
1208
- "otpInput": {
1209
- "description": "A one-time-code entry field.",
1210
- "label": "One-time code"
1211
- },
1212
- "chipInput": {
1213
- "description": "A tag input: removable chips plus free text that commits on Enter.",
1214
- "remove": "Remove",
1215
- "placeholder": "Type and press Enter…"
1216
- },
1217
- "segmentedControl": {
1218
- "description": "A single-select pill control for periods, environments and filters.",
1219
- "a11yLabel": "Select an option"
1220
- },
1221
- "filterChipBar": {
1222
- "description": "Filter chips with live counts computed from the list they filter.",
1223
- "all": "All",
1224
- "a11yLabel": "Filter",
1225
- "meta": "{shown} of {total}"
1226
- },
1227
- "toggleSwitchList": {
1228
- "description": "A list of settings rows, each with a switch.",
1229
- "save": "Save",
1230
- "dirty": "You have unsaved changes",
1231
- "emptyTitle": "No settings",
1232
- "emptyBody": "Settings appear here once they are configured."
1233
- },
1234
- "optionCards": {
1235
- "description": "A single-select card grid for sources, templates and plans.",
1236
- "a11yLabel": "Choose an option"
1237
- },
1238
- "ruleBuilder": {
1239
- "description": "A condition builder whose rules compile to a filter — the segment/audience editor.",
1240
- "add": "Add condition",
1241
- "remove": "Remove condition",
1242
- "all": "ALL",
1243
- "any": "ANY",
1244
- "field": "Field",
1245
- "operator": "Operator",
1246
- "value": "Value",
1247
- "valuePlaceholder": "Value…",
1248
- "emptyBody": "No conditions yet — add one to define this segment.",
1249
- "op": {
1250
- "eq": "is",
1251
- "neq": "is not",
1252
- "gt": "is greater than",
1253
- "gte": "is at least",
1254
- "lt": "is less than",
1255
- "lte": "is at most",
1256
- "contains": "contains",
1257
- "not-contains": "does not contain",
1258
- "starts-with": "starts with",
1259
- "in": "is one of",
1260
- "before": "is before",
1261
- "after": "is after",
1262
- "is-null": "is empty",
1263
- "is-not-null": "is not empty"
1264
- }
1265
- },
1266
- "flowBuilder": {
1267
- "description": "A vertical workflow canvas of trigger, condition and action steps.",
1268
- "add": "Add step",
1269
- "remove": "Remove step",
1270
- "paletteTitle": "Add a step",
1271
- "stats": "{runs} runs · {rate}% success",
1272
- "emptyBody": "No steps yet — add a trigger to start this workflow."
1273
- },
1274
- "connectionStringField": {
1275
- "description": "A connection-string field that detects the database engine as you type.",
1276
- "label": "Connection string",
1277
- "helper": "postgres://user:password@host:5432/database — mysql:// and sqlite: work too.",
1278
- "quickFill": "Quick fill:",
1279
- "host": "Host: {host}",
1280
- "invalidScheme": "Unrecognized connection-string scheme.",
1281
- "incomplete": "Add a host and database to the connection string."
1282
- },
1283
- "tableInclusionChecklist": {
1284
- "description": "The tables to include, with row counts and PII warnings.",
1285
- "pii": "PII",
1286
- "highVolume": "high volume",
1287
- "a11yLabel": "Tables to include",
1288
- "emptyTitle": "No tables found",
1289
- "emptyBody": "Connect a database and its tables will appear here."
1290
- },
1291
- "columnMappingTable": {
1292
- "description": "Maps the columns of an uploaded file onto the fields of a table.",
1293
- "skip": "Don't import",
1294
- "sourceHeader": "Source column",
1295
- "sampleHeader": "Sample",
1296
- "targetHeader": "Target field",
1297
- "emptyTitle": "No columns to map",
1298
- "emptyBody": "Upload a file and its columns will appear here."
1299
- },
1300
- "validationIssuesList": {
1301
- "description": "Import and validation issues, most severe first, with affected row counts.",
1302
- "emptyTitle": "No issues found",
1303
- "emptyBody": "Everything checks out — you are good to import."
1304
- },
1305
- "exportBuilder": {
1306
- "description": "Builds a data export: format, date range and what to include.",
1307
- "format": "Format",
1308
- "from": "From",
1309
- "to": "To",
1310
- "groupBy": "Group by",
1311
- "includeCharts": "Include charts",
1312
- "email": "Email me the export",
1313
- "submit": "Export",
1314
- "running": "Preparing your export…",
1315
- "done": "Export ready",
1316
- "failed": "The export failed. Try again.",
1317
- "download": "Download"
1318
- },
1319
- "questionBuilder": {
1320
- "description": "A survey editor: add question types and reorder the questions.",
1321
- "paletteTitle": "Add a question",
1322
- "add": "Add question",
1323
- "remove": "Remove question",
1324
- "moveUp": "Move up",
1325
- "moveDown": "Move down",
1326
- "required": "Required",
1327
- "questionPlaceholder": "Ask a question…",
1328
- "emptyTitle": "No questions yet",
1329
- "emptyBody": "Pick a question type to start building your survey.",
1330
- "questionLabel": "Question",
1331
- "dropdownPlaceholder": "Choose…",
1332
- "kind": {
1333
- "single-choice": "Single choice",
1334
- "multi-choice": "Multiple choice",
1335
- "dropdown": "Dropdown",
1336
- "short-text": "Short text",
1337
- "long-text": "Long text",
1338
- "rating": "Star rating",
1339
- "nps": "NPS 0–10",
1340
- "date": "Date"
1341
- }
1342
- },
1343
- "inlineEditableField": {
1344
- "description": "A click-to-edit value inside a document or canvas.",
1345
- "edit": "Edit",
1346
- "save": "Save",
1347
- "cancel": "Cancel",
1348
- "empty": "Empty",
1349
- "valueLabel": "Value"
1350
- },
1351
- "passwordStrengthMeter": {
1352
- "description": "A four-segment meter showing how strong a password is.",
1353
- "label": "Password strength",
1354
- "weak": "Weak",
1355
- "fair": "Fair",
1356
- "good": "Good",
1357
- "strong": "Strong"
1358
- }
1359
- },
1360
- "chrome": {
1361
- "sidebarNav": {
1362
- "description": "The grouped app navigation rail, with live count badges.",
1363
- "a11yLabel": "Main",
1364
- "emptyTitle": "No navigation yet",
1365
- "emptyBody": "Included tables appear here once a connection is generated."
1366
- },
1367
- "commandPalette": {
1368
- "description": "The ⌘K palette: search actions, pages and records from anywhere.",
1369
- "title": "Command palette",
1370
- "placeholder": "Search actions, pages and records…",
1371
- "navigate": "Navigate",
1372
- "select": "Open",
1373
- "close": "Close",
1374
- "emptyTitle": "No results for \"{query}\"",
1375
- "emptyBody": "Start typing to search.",
1376
- "groupActions": "Actions",
1377
- "groupNavigate": "Navigate",
1378
- "groupRecent": "Recent",
1379
- "groupPages": "Pages",
1380
- "groupMetrics": "Metrics",
1381
- "groupPeople": "People",
1382
- "groupRecords": "Records"
1383
- },
1384
- "globalSearch": {
1385
- "description": "Search across every entity, with type facets and result snippets.",
1386
- "placeholder": "Search everything…",
1387
- "all": "All",
1388
- "summary": "{count} results for \"{query}\"",
1389
- "emptyTitle": "No results",
1390
- "emptyBody": "Try a different search term.",
1391
- "searchLabel": "Search",
1392
- "facetRailLabel": "Filter by type"
1393
- },
1394
- "breadcrumb": {
1395
- "description": "The ancestor trail of the current record or folder.",
1396
- "a11yLabel": "Breadcrumb"
1397
- },
1398
- "tabBar": {
1399
- "description": "Tabs that switch panels or navigate, with optional counts.",
1400
- "a11yLabel": "Tabs"
1401
- },
1402
- "navCard": {
1403
- "description": "A grid of link cards for hub and landing pages.",
1404
- "emptyTitle": "Nothing to show",
1405
- "emptyBody": "Hub links appear here once pages are generated."
1406
- },
1407
- "shortcutsPanel": {
1408
- "description": "The keyboard shortcuts cheat sheet.",
1409
- "footerHint": "Press ? anytime",
1410
- "then": "then",
1411
- "emptyTitle": "No shortcuts registered.",
1412
- "generalGroupLabel": "General",
1413
- "navigationGroupLabel": "Navigation",
1414
- "recordsGroupLabel": "Records",
1415
- "openCommandPaletteLabel": "Open command palette",
1416
- "searchLabel": "Search",
1417
- "showShortcutsLabel": "Show shortcuts",
1418
- "goToDashboardLabel": "Go to dashboard",
1419
- "goToOrdersLabel": "Go to orders",
1420
- "newRecordLabel": "New record",
1421
- "saveLabel": "Save",
1422
- "undoLabel": "Undo"
1423
- },
1424
- "avatarStack": {
1425
- "description": "Overlapping avatars with a “+N” overflow and optional presence.",
1426
- "online": "{count} online",
1427
- "a11yLabel": "People"
1428
- }
1429
- },
1430
- "system": {
1431
- "stateHero": {
1432
- "description": "A full-page status screen for 404, 500, offline, forbidden and maintenance states.",
1433
- "notFoundTitle": "This page took a wrong turn",
1434
- "notFoundBody": "The page you are looking for was moved, renamed, or never existed.",
1435
- "serverErrorTitle": "Something broke on our side",
1436
- "serverErrorBody": "The error was logged and the team notified. Trying again often works.",
1437
- "offlineTitle": "You are offline",
1438
- "offlineBody": "Check your connection — the dashboard reconnects automatically.",
1439
- "forbiddenTitle": "You do not have access",
1440
- "forbiddenBody": "Ask a workspace admin to grant you permission for this page.",
1441
- "maintenanceTitle": "Down for maintenance",
1442
- "maintenanceBody": "We are making things better. This usually takes a few minutes.",
1443
- "connErrorTitle": "Cannot reach the database",
1444
- "connErrorBody": "The connection was refused or timed out. Check the connection settings.",
1445
- "backToDashboard": "Back to dashboard",
1446
- "tryAgain": "Try again",
1447
- "retry": "Retry",
1448
- "testConnection": "Test connection"
1449
- },
1450
- "emptyState": {
1451
- "description": "A centred “nothing here yet” panel with optional actions."
1452
- },
1453
- "statusPill": {
1454
- "description": "A tone-coded badge for an enum column — the universal status renderer."
1455
- },
1456
- "alertBanner": {
1457
- "description": "An inline callout for quota, freeze and schedule notices.",
1458
- "dismiss": "Dismiss"
1459
- },
1460
- "statusBannerHero": {
1461
- "description": "A service-health hero whose state derives from the worst service in the list.",
1462
- "upTitle": "All systems operational",
1463
- "upBody": "Every monitored service is responding normally.",
1464
- "degradedTitle": "Degraded performance",
1465
- "degradedBody": "Some services are slower than usual. We are investigating.",
1466
- "downTitle": "Major outage",
1467
- "downBody": "One or more services are unavailable. We are on it."
1468
- },
1469
- "connectionStatus": {
1470
- "description": "The connect/test result for a database connection.",
1471
- "idle": "Not connected",
1472
- "connecting": "Connecting…",
1473
- "connected": "Connected",
1474
- "failed": "Couldn't connect",
1475
- "test": "Test"
1476
- },
1477
- "autosaveIndicator": {
1478
- "description": "The unsaved → saving → saved pill for autosaving documents.",
1479
- "dirty": "Unsaved changes",
1480
- "saving": "Saving…",
1481
- "saved": "All changes saved",
1482
- "error": "Couldn't save"
1483
- },
1484
- "progressLogConsole": {
1485
- "description": "A streaming log console with a progress bar, for long-running tasks.",
1486
- "a11yLabel": "Progress log",
1487
- "progressLabel": "Progress",
1488
- "emptyTitle": "Nothing to report yet",
1489
- "emptyBody": "Log lines appear here once the task starts."
1490
- },
1491
- "diagnosticsReadout": {
1492
- "description": "Connection-check results as toned key/value rows with a freshness stamp.",
1493
- "checkedAt": "Last checked",
1494
- "host": "Host",
1495
- "dns": "DNS",
1496
- "tcp": "TCP",
1497
- "tls": "TLS",
1498
- "auth": "Auth",
1499
- "latency": "Latency"
1500
- },
1501
- "widgetMissing": {
1502
- "description": "The fallback card shown when a stored page references a widget that is not installed.",
1503
- "title": "Widget unavailable",
1504
- "bodyLead": "No widget is registered as",
1505
- "bodyTail": "It may belong to a newer version or an uninstalled extension."
1506
- }
1507
- }
1508
- },
1509
141
  "grid": {
1510
142
  "dragHandle": "Drag to move {title}",
1511
143
  "resizeHandle": "Resize {title}",
@@ -1518,426 +150,6 @@ export default {
1518
150
  },
1519
151
  "draggableRole": "draggable widget"
1520
152
  },
1521
- "templates": {
1522
- "crud": {
1523
- "bulkDeleteBody": "Referential consequences apply to every selected row.",
1524
- "bulkDeleteConfirm": "Delete rows",
1525
- "bulkDeleteTitle": "{count, plural, one {Delete {n} row} other {Delete {n} rows}}",
1526
- "confirmPrompt": "Type {value} to confirm",
1527
- "createSubtitle": "Creates one row in {table}.",
1528
- "deleteConsequencesIntro": "Deleting this row also affects:",
1529
- "deleteNoReferences": "This row has no inbound references.",
1530
- "deletePreflight": "Checking references…",
1531
- "deleteTitle": "Delete {entity}",
1532
- "detail": {
1533
- "fields": "Fields",
1534
- "inboundReferences": "inbound references",
1535
- "relatedCount": "{count, plural, one {{n} related record in {table}} other {{n} related records in {table}}}",
1536
- "loadError": "Failed to load the record."
1537
- },
1538
- "emptyTitle": "{count, plural, one {No {entity} yet} other {No {entity}s yet}}",
1539
- "emptyTitleNamed": "No {things} yet",
1540
- "exportAction": "Export",
1541
- "file": {
1542
- "tooLarge": "That file is larger than the {limit} limit.",
1543
- "uploading": "Uploading",
1544
- "cancel": "Cancel upload",
1545
- "replace": "Replace",
1546
- "remove": "Remove file",
1547
- "choose": "Choose a file",
1548
- "add": "Add files",
1549
- "removeNamed": "Remove {name}",
1550
- "capReached": "This record accepts at most {count, plural, one {# file} other {# files}}."
1551
- },
1552
- "filters": {
1553
- "chip": "{name}: {values}",
1554
- "custom": "Custom",
1555
- "days": "{days}d",
1556
- "from": "from {value}",
1557
- "no": "No",
1558
- "rangeFrom": "From",
1559
- "rangeTo": "To",
1560
- "to": "to {value}",
1561
- "yes": "Yes"
1562
- },
1563
- "loadingRows": "Loading rows",
1564
- "newRow": "New row",
1565
- "noMatchesTitle": "No matching rows",
1566
- "openPage": "Open page",
1567
- "peekAction": "Peek",
1568
- "queryFailed": "Query failed",
1569
- "referenceRows": "{count, plural, one {{n} row} other {{n} rows}}",
1570
- "removeFilter": "Remove {column} filter",
1571
- "saveSubmit": "Save changes",
1572
- "searchPlaceholder": "Search {table}…",
1573
- "toast": {
1574
- "bulkDeleteFailed": "Bulk delete failed.",
1575
- "bulkDeleted": "{count, plural, one {{n} row deleted.} other {{n} rows deleted.}}",
1576
- "createFailed": "Create failed.",
1577
- "created": "{entity} created.",
1578
- "createdMany": "{count, plural, one {# record created.} other {# records created.}}",
1579
- "deleteFailed": "Delete failed.",
1580
- "deleted": "{name} deleted.",
1581
- "exportIncomplete": "Exported {written, number} of {selected, number} selected rows — reload and try again.",
1582
- "saved": "Changes saved.",
1583
- "undoFailed": "Undo failed.",
1584
- "undone": "Change undone.",
1585
- "updateFailed": "Update failed."
1586
- },
1587
- "uniqueHelper": "Must be unique in {table}.",
1588
- "uniqueHelperCounted": "{count, plural, one {Checked against {n} row.} other {Checked against {n} rows.}}",
1589
- "linkFilter": {
1590
- "remove": "Remove {column} filter",
1591
- "today": "today",
1592
- "eq": "{name} is {value}",
1593
- "neq": "{name} is not {value}",
1594
- "in": "{name} is one of {values}",
1595
- "gt": "{name} more than {value}",
1596
- "gte": "{name} {value} or more",
1597
- "lt": "{name} less than {value}",
1598
- "lte": "{name} {value} or less",
1599
- "after": "{name} after {value}",
1600
- "before": "{name} before {value}",
1601
- "onOrAfter": "{name} on or after {value}",
1602
- "onOrBefore": "{name} on or before {value}",
1603
- "thisMonth": "{name} this month",
1604
- "lastMonth": "{name} last month",
1605
- "set": "{name} is filled in",
1606
- "unset": "{name} is empty",
1607
- "ignoredColumn": "Not filtered by {name}: this list has no such column",
1608
- "ignoredMasked": "Not filtered by {name}: that column is hidden from you",
1609
- "ignoredTooMany": "Not filtered by {name}: a link can carry 8 filters",
1610
- "ignoredValue": "Not filtered by {name}: “{filter}” is not a filter this column takes",
1611
- "now": "now",
1612
- "daysAgo": "{count, plural, one {# day ago} other {# days ago}}",
1613
- "daysAhead": "{count, plural, one {# day from today} other {# days from today}}"
1614
- }
1615
- },
1616
- "queue": {
1617
- "allSegment": "All",
1618
- "daysUnit": "{count, plural, one {{count} day} other {{count} days}}",
1619
- "approvedToast": "{count} approved.",
1620
- "rejectedToast": "{count} rejected.",
1621
- "undoneToast": "Decision undone.",
1622
- "undoFailedToast": "Could not undo this decision.",
1623
- "failedToast": "Decision failed.",
1624
- "invalidConfig": "This queue’s stored configuration is invalid. Regenerate the page to restore it.",
1625
- "queueLabel": "Queue",
1626
- "statusFilterLabel": "Status filter",
1627
- "errorTitle": "This queue failed to load",
1628
- "loading": "Loading queue",
1629
- "emptyTitle": "Nothing in the queue",
1630
- "emptyBody": "New requests appear here as they arrive.",
1631
- "caughtUpTitle": "You're all caught up",
1632
- "caughtUpBody": "No requests in this tab right now.",
1633
- "selectItem": "Select {title}",
1634
- "selectPrompt": "Select a request",
1635
- "selectBody": "Choose an item to review its details.",
1636
- "rejectTitle": "Reject requests",
1637
- "rejectCount": "Selected · {count}",
1638
- "rejectPlaceholder": "Add a note for the requester…",
1639
- "rejectReasonLabel": "Rejection reason",
1640
- "rejectNote": "The requester will be notified with your note."
1641
- },
1642
- "dashboard": {
1643
- "invalidLayout": "This dashboard’s stored layout is invalid. Regenerate the page or reset its layout.",
1644
- "day": {
1645
- "label": "Day",
1646
- "today": "Today",
1647
- "yesterday": "Yesterday",
1648
- "week": "This week",
1649
- "pick": "Pick a day",
1650
- "pickHelp": "One day at a time, on the venue’s clock.",
1651
- "cancel": "Cancel",
1652
- "show": "Show day"
1653
- }
1654
- },
1655
- "builder": {
1656
- "publish": "Publish",
1657
- "paletteTitle": "Blocks",
1658
- "inspectorTitle": "Inspector",
1659
- "startFromTemplate": "Start from a template",
1660
- "untitledDoc": "Untitled document",
1661
- "invalidConfig": "This builder page’s stored config is invalid. Regenerate the page or reset it.",
1662
- "starterPicker": {
1663
- "subtitle": "Selection replaces the current draft."
1664
- },
1665
- "inspector": {
1666
- "titleLabel": "Title",
1667
- "numberLabel": "Number",
1668
- "currencyLabel": "Currency",
1669
- "taxRateLabel": "Tax rate %",
1670
- "modulesLabel": "Modules"
1671
- },
1672
- "summary": {
1673
- "questions": "Questions",
1674
- "estLength": "Est. length",
1675
- "estMinutes": "~{minutes} min",
1676
- "steps": "Steps",
1677
- "triggers": "Triggers",
1678
- "conditions": "Conditions",
1679
- "actions": "Actions",
1680
- "triggerLocked": "The trigger step can’t be removed."
1681
- },
1682
- "publishModal": {
1683
- "confirmTitle": "Publish survey?",
1684
- "confirmSubtitle": "Review before it goes live.",
1685
- "confirmCta": "Publish survey",
1686
- "publishedTitle": "Survey published",
1687
- "publishedSubtitle": "Your survey is live and collecting responses right now."
1688
- },
1689
- "blocks": {
1690
- "block-totals-summary": "Totals summary",
1691
- "block-line-items": "Line items",
1692
- "block-kpi-row": "KPI row",
1693
- "block-bar-chart": "Bar chart",
1694
- "block-line-chart": "Line chart",
1695
- "block-two-col-table": "Two-column table",
1696
- "block-tax-breakdown": "Tax breakdown",
1697
- "block-multi-currency": "Multi-currency",
1698
- "block-payment-history": "Payment history",
1699
- "block-discount-codes": "Discount codes",
1700
- "block-loyalty-banner": "Loyalty points",
1701
- "block-recurring-banner": "Recurring",
1702
- "block-qr-pay": "Payment QR",
1703
- "block-delivery-stepper": "Delivery timeline",
1704
- "block-signature": "Signature",
1705
- "block-terms-checkbox": "Terms",
1706
- "block-approval": "Approval",
1707
- "block-attachments": "Attachments",
1708
- "block-late-fees": "Late fees",
1709
- "block-image-placeholder": "Image",
1710
- "block-contact": "Contact",
1711
- "block-highlight-box": "Highlight box",
1712
- "email-heading": "Heading",
1713
- "email-text": "Paragraph",
1714
- "email-button": "Call-to-action",
1715
- "email-divider": "Divider",
1716
- "email-spacer": "Spacer",
1717
- "email-footer": "Footer"
1718
- },
1719
- "starters": {
1720
- "titles": {
1721
- "st-standard": "Standard invoice",
1722
- "st-recurring": "Recurring subscription",
1723
- "st-deposit": "Deposit request",
1724
- "st-credit-note": "Credit note",
1725
- "st-late-reminder": "Late-payment reminder",
1726
- "st-quote": "Quote / estimate",
1727
- "st-proforma": "Pro forma",
1728
- "st-receipt": "Payment receipt",
1729
- "st-retainer": "Retainer",
1730
- "st-usage": "Usage-based invoice",
1731
- "st-milestone": "Project milestone",
1732
- "st-donation": "Donation receipt (Tax ID)",
1733
- "st-monthly": "Monthly summary",
1734
- "st-quarterly": "Quarterly review",
1735
- "st-usage-report": "Usage breakdown",
1736
- "st-exec": "Executive one-pager",
1737
- "st-welcome": "Welcome email",
1738
- "st-receipt-email": "Invoice receipt",
1739
- "st-digest": "Weekly digest",
1740
- "st-dunning": "Payment reminder"
1741
- },
1742
- "categories": {
1743
- "invoicing": "Invoicing",
1744
- "sales": "Sales",
1745
- "nonProfit": "Non-profit",
1746
- "reports": "Reports",
1747
- "lifecycle": "Lifecycle",
1748
- "transactional": "Transactional",
1749
- "marketing": "Marketing"
1750
- }
1751
- }
1752
- },
1753
- "common": {
1754
- "clearFilters": "Clear filters",
1755
- "noMatchesBody": "Try a different search or remove a filter.",
1756
- "detailLabel": "Detail",
1757
- "loadingRecord": "Loading record",
1758
- "connectionPaused": "This connection is paused"
1759
- },
1760
- "directory": {
1761
- "invalidConfig": "This directory’s stored configuration is invalid. Regenerate the page to restore it.",
1762
- "searchPlaceholder": "Search people…",
1763
- "memberCount": "{count, plural, one {{n} person} other {{n} people}}",
1764
- "errorTitle": "This directory failed to load",
1765
- "loading": "Loading people",
1766
- "emptyTitle": "No people yet",
1767
- "emptyBody": "People appear here as rows land in the table.",
1768
- "noMatchesTitle": "No matching people",
1769
- "detailTitle": "Person"
1770
- },
1771
- "masterDetail": {
1772
- "invalidConfig": "This page’s stored configuration is invalid. Regenerate the page to restore it.",
1773
- "railTitle": "Records",
1774
- "errorTitle": "This list failed to load",
1775
- "loading": "Loading records",
1776
- "emptyBody": "Records appear here as rows land in the table.",
1777
- "noMatchesTitle": "No matching records",
1778
- "noMatchesBody": "Try removing a filter.",
1779
- "selectPrompt": "Select a record",
1780
- "selectBody": "Choose an item from the list to see its details."
1781
- },
1782
- "chat": {
1783
- "invalidLayout": "This chat page’s stored layout is invalid. Regenerate the page or reset its layout.",
1784
- "noInboxTitle": "No inbox on this page",
1785
- "noInboxBody": "Regenerate the page.",
1786
- "conversationsFailed": "The conversation query failed",
1787
- "messagesFailed": "The messages query failed",
1788
- "loadingConversations": "Loading conversations",
1789
- "loadingMessages": "Loading messages",
1790
- "selectTitle": "Select a conversation",
1791
- "selectBody": "Pick a conversation from the inbox to read its messages."
1792
- },
1793
- "files": {
1794
- "allFiles": "All files",
1795
- "recent": "Recent",
1796
- "starred": "Starred",
1797
- "invalidLayout": "This files page’s stored layout is invalid. Regenerate the page or reset its layout.",
1798
- "missingSlotTitle": "No file browser on this page",
1799
- "missingSlotBody": "The stored layout has no browser slot. Regenerate the page.",
1800
- "loadFailed": "The file query failed",
1801
- "loading": "Loading files",
1802
- "uploadsUnavailable": "Uploads are not available on this page yet.",
1803
- "previewTitle": "File",
1804
- "kindLabel": "Kind",
1805
- "linkLabel": "Link"
1806
- },
1807
- "logViewer": {
1808
- "invalidLayout": "This log page’s stored layout is invalid. Regenerate the page or reset its layout.",
1809
- "levelFilterLabel": "Log level filter",
1810
- "timeFilterLabel": "Time window filter",
1811
- "window": {
1812
- "1h": "1h",
1813
- "24h": "24h",
1814
- "7d": "7d"
1815
- },
1816
- "heldCount": "+{count}",
1817
- "missingSlotTitle": "No log widget on this page",
1818
- "missingSlotBody": "The stored layout has no log slot. Regenerate the page.",
1819
- "loadFailed": "The log query failed",
1820
- "loading": "Loading log entries",
1821
- "traceTitle": "Trace",
1822
- "latestTitle": "Latest activity",
1823
- "backToLatest": "Back to latest",
1824
- "eventFallback": "Event"
1825
- },
1826
- "board": {
1827
- "invalidLayout": "This board’s stored layout is invalid. Regenerate the page or reset its layout.",
1828
- "noRowsTitle": "No cards yet",
1829
- "noRowsBody": "Cards appear here as soon as the table has rows."
1830
- },
1831
- "calendar": {
1832
- "eventCount": "{count, plural, one {{n} event} other {{n} events}}",
1833
- "composePlaceholder": "Event title…",
1834
- "addEvent": "Add event",
1835
- "dateRange": "Date range",
1836
- "agendaTitle": "Agenda",
1837
- "categoriesTitle": "Categories",
1838
- "upcomingTitle": "Upcoming",
1839
- "invalidLayout": "This calendar’s stored layout is invalid. Regenerate the page or reset its layout.",
1840
- "composeChoose": "What this event is for",
1841
- "composeChoosePlaceholder": "Choose…"
1842
- },
1843
- "scheduler": {
1844
- "previousWeek": "Previous week",
1845
- "nextWeek": "Next week",
1846
- "week": "Week",
1847
- "month": "Month",
1848
- "invalidLayout": "This schedule’s stored layout is invalid. Regenerate the page or reset its layout.",
1849
- "shiftCount": "{count, plural, one {{n} shift} other {{n} shifts}}",
1850
- "addShift": "Add shift"
1851
- },
1852
- "settings": {
1853
- "title": "Notification settings",
1854
- "subtitle": "Choose what you're notified about and how",
1855
- "matrixLabel": "Notify me about",
1856
- "rowHeader": "Event",
1857
- "saved": "Saved",
1858
- "unavailableTag": "Not available yet",
1859
- "loading": "Loading preferences",
1860
- "errorTitle": "These settings failed to load",
1861
- "emptyTitle": "Nothing to configure yet",
1862
- "emptyBody": "Notification events appear here as producers ship."
1863
- },
1864
- "pageCrud": {
1865
- "description": "The canonical table page: searchable data grid, create/edit forms, safe deletes with reference checks, and undoable changes."
1866
- },
1867
- "pageDashboard": {
1868
- "description": "A widget dashboard over your data: KPI cards, charts, and lists on an editable grid."
1869
- },
1870
- "pageBoard": {
1871
- "description": "A kanban board grouped by a status field — drag cards between columns to update records."
1872
- },
1873
- "pageCalendar": {
1874
- "description": "A month calendar with agenda, category filters, and quick event capture from a date field."
1875
- },
1876
- "pageScheduler": {
1877
- "description": "A week-by-resource shift matrix with capacity tracking and coverage totals."
1878
- },
1879
- "pageDirectory": {
1880
- "description": "A people directory with search, group filters, and a profile drawer."
1881
- },
1882
- "pageMasterDetail": {
1883
- "description": "A list-beside-detail layout: pick a record on the left, work with it on the right."
1884
- },
1885
- "pageQueueInbox": {
1886
- "description": "A review queue with approve/reject decisions, bulk actions, and undo."
1887
- },
1888
- "pageLogViewer": {
1889
- "description": "A live-tailing log table with level and time filters and a trace side panel."
1890
- },
1891
- "pageFiles": {
1892
- "description": "A file browser with smart folders, uploads, and a preview drawer."
1893
- },
1894
- "pageChat": {
1895
- "description": "A conversation inbox beside a message thread, bound to your messages tables."
1896
- },
1897
- "pageBuilder": {
1898
- "description": "A drag-and-drop document builder with block palette, inspector, and publish flow."
1899
- },
1900
- "pageWizard": {
1901
- "description": "A multi-step guided flow that walks users through a structured process."
1902
- },
1903
- "pageSettings": {
1904
- "description": "A notification-preferences matrix with per-channel toggles and autosave."
1905
- },
1906
- "record": {
1907
- "relatedEmptyTitle": "No related records",
1908
- "loadError": "Failed to load the record.",
1909
- "loadingActivity": "Loading activity",
1910
- "activityTab": "Activity",
1911
- "activityEmptyTitle": "No activity recorded",
1912
- "activityEmptyBody": "Changes made through Adminium will appear here.",
1913
- "activityLoadOlder": "Load older activity",
1914
- "activity": {
1915
- "created": "{actor} created this record",
1916
- "updated": "{actor} updated this record",
1917
- "deleted": "{actor} deleted this record",
1918
- "undone": "{actor} undid a change",
1919
- "changedFields": "{count, plural, one {{n} field changed} other {{n} fields changed}}"
1920
- },
1921
- "attachmentsTab": "Files",
1922
- "attachments": {
1923
- "emptyTitle": "No files yet",
1924
- "emptyBody": "Files attached to this record appear here.",
1925
- "loading": "Loading attachments",
1926
- "removed": "{name} was moved to the trash.",
1927
- "tooLarge": "That file is larger than this workspace allows."
1928
- }
1929
- },
1930
- "pageRecord": {
1931
- "description": "One record as a full page: its fields, related records with live counts, and its change activity."
1932
- },
1933
- "planning": {
1934
- "unplaced": {
1935
- "calendar": "None of this table’s rows has a date yet, so the calendar is empty. A row appears here as soon as it has one.",
1936
- "board": "None of this table’s rows has a status yet, so the board is empty. A row appears here as soon as it has one.",
1937
- "scheduler": "None of this table’s rows has a person, a date and a shift type yet, so the schedule is empty. A row appears here as soon as it has all three."
1938
- }
1939
- }
1940
- },
1941
153
  "frame": {
1942
154
  "noResult": "No result for widget",
1943
155
  "emptyTitle": "No data for range",
@@ -1945,7 +157,28 @@ export default {
1945
157
  "renderError": "This widget failed to render.",
1946
158
  "refreshing": "Refreshing",
1947
159
  "infoLabel": "Widget info",
1948
- "menuLabel": "Widget menu"
160
+ "menuLabel": "Widget menu",
161
+ "showData": "Show data",
162
+ "data": {
163
+ "period": "Period",
164
+ "value": "Value",
165
+ "prior": "Period before",
166
+ "category": "Category",
167
+ "share": "Share",
168
+ "row": "Row",
169
+ "from": "From",
170
+ "to": "To",
171
+ "min": "Lowest",
172
+ "q1": "Lower quarter",
173
+ "median": "Middle",
174
+ "q3": "Upper quarter",
175
+ "max": "Highest",
176
+ "open": "Open",
177
+ "high": "High",
178
+ "low": "Low",
179
+ "close": "Close",
180
+ "place": "Place"
181
+ }
1949
182
  },
1950
183
  "charts": {
1951
184
  "livePillLabel": "Live",
@@ -1998,7 +231,9 @@ export default {
1998
231
  },
1999
232
  "record": {
2000
233
  "lockedHint": "Locked once {state}",
2001
- "deleteRefused": "This record cannot be deleted. Void it instead."
234
+ "deleteRefused": "This record cannot be deleted. Void it instead.",
235
+ "timedMoveAt": "Moves to {to} on its own at {time}.",
236
+ "timedMoveSoon": "Moves to {to} on its own."
2002
237
  }
2003
238
  };
2004
239
  //# sourceMappingURL=ui.js.map