@0001-labs/design-system-1 0.3.0-alpha.13 → 0.3.0-alpha.14

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 (771) hide show
  1. package/DS1/0-face/calendar.ts +194 -0
  2. package/DS1/0-face/carousel.ts +623 -0
  3. package/DS1/0-face/component-visibility.ts +13 -0
  4. package/DS1/0-face/copy-text.ts +96 -0
  5. package/DS1/0-face/device.ts +8 -58
  6. package/DS1/0-face/dialog-swipe.ts +249 -0
  7. package/DS1/0-face/dialogs.ts +208 -0
  8. package/DS1/0-face/drawer.ts +258 -0
  9. package/DS1/0-face/feedback-words.ts +36 -0
  10. package/DS1/0-face/feedback.ts +40 -0
  11. package/DS1/0-face/format.ts +700 -0
  12. package/DS1/0-face/generated/toast-assets.ts +18 -0
  13. package/DS1/0-face/grid-fit.ts +1 -1
  14. package/DS1/0-face/grid.ts +3 -2
  15. package/DS1/0-face/header.ts +78 -0
  16. package/DS1/0-face/i18n.ts +93 -18
  17. package/DS1/0-face/keys.ts +276 -0
  18. package/DS1/0-face/languages.ts +4 -4
  19. package/DS1/0-face/layout-inspector.ts +6 -6
  20. package/DS1/0-face/library-styles.ts +33 -0
  21. package/DS1/0-face/load-toaster.ts +7 -0
  22. package/DS1/0-face/preference-options.ts +29 -0
  23. package/DS1/0-face/preferences.ts +3 -11
  24. package/DS1/0-face/pricing.ts +98 -43
  25. package/DS1/0-face/scaling.ts +160 -4
  26. package/DS1/0-face/shared-words.ts +9 -4
  27. package/DS1/0-face/sidebar.ts +201 -0
  28. package/DS1/0-face/theme-bootstrap.js +184 -0
  29. package/DS1/0-face/theme.ts +89 -47
  30. package/DS1/0-face/toast-queue.ts +157 -0
  31. package/DS1/0-face/toaster.ts +384 -0
  32. package/DS1/0-face/tooltips.ts +157 -15
  33. package/DS1/0-face/translations/da.json +60 -1
  34. package/DS1/0-face/translations/de.json +60 -1
  35. package/DS1/0-face/translations/en.json +60 -1
  36. package/DS1/0-face/translations/es.json +60 -1
  37. package/DS1/0-face/translations/fi.json +60 -1
  38. package/DS1/0-face/translations/fr.json +60 -1
  39. package/DS1/0-face/translations/is.json +60 -1
  40. package/DS1/0-face/translations/it.json +60 -1
  41. package/DS1/0-face/translations/ja.json +60 -1
  42. package/DS1/0-face/translations/ko.json +60 -1
  43. package/DS1/0-face/translations/nb.json +60 -1
  44. package/DS1/0-face/translations/pt-BR.json +60 -1
  45. package/DS1/0-face/translations/pt.json +60 -1
  46. package/DS1/0-face/translations/sv.json +60 -1
  47. package/DS1/0-face/translations/zh.json +60 -1
  48. package/DS1/0-face/translations-format.ts +3 -4
  49. package/DS1/1-root/card.css +192 -0
  50. package/DS1/1-root/carousel.css +136 -0
  51. package/DS1/1-root/cjk.css +23 -0
  52. package/DS1/1-root/component-metrics.css +1 -0
  53. package/DS1/1-root/component-tokens.css +51 -8
  54. package/DS1/1-root/controls.css +887 -14
  55. package/DS1/1-root/dialog-placement.css +191 -0
  56. package/DS1/1-root/document.css +183 -0
  57. package/DS1/1-root/drawer.css +83 -0
  58. package/DS1/1-root/empty.css +83 -0
  59. package/DS1/1-root/figures.css +141 -0
  60. package/DS1/1-root/fonts/Iosevka-LICENSE.md +3 -1
  61. package/DS1/1-root/fonts/Iosevka-Regular.woff2 +0 -0
  62. package/DS1/1-root/fonts.css +69 -0
  63. package/DS1/1-root/footer.css +186 -0
  64. package/DS1/1-root/header.css +165 -0
  65. package/DS1/1-root/kbd.css +46 -0
  66. package/DS1/1-root/library-tokens.ts +91 -0
  67. package/DS1/1-root/measures.ts +53 -0
  68. package/DS1/1-root/notice.css +165 -0
  69. package/DS1/1-root/one.css +14 -84
  70. package/DS1/1-root/one.semantic.css +200 -148
  71. package/DS1/1-root/palette.css +58 -0
  72. package/DS1/1-root/palette.ts +19 -0
  73. package/DS1/1-root/progress.css +356 -0
  74. package/DS1/1-root/prose.css +202 -0
  75. package/DS1/1-root/row.css +297 -0
  76. package/DS1/1-root/table.css +111 -0
  77. package/DS1/1-root/text.css +70 -0
  78. package/DS1/2-core/button-split.ts +55 -0
  79. package/DS1/2-core/chart/chart.css +169 -0
  80. package/DS1/2-core/chart/grid-chart.ts +554 -0
  81. package/DS1/2-core/ds-avatar.ts +25 -6
  82. package/DS1/2-core/ds-badge.ts +10 -10
  83. package/DS1/2-core/ds-button.ts +111 -26
  84. package/DS1/2-core/ds-card.ts +135 -105
  85. package/DS1/2-core/ds-chart.ts +327 -0
  86. package/DS1/2-core/ds-composer.ts +8 -2
  87. package/DS1/2-core/ds-cycle.ts +97 -21
  88. package/DS1/2-core/ds-empty.ts +120 -0
  89. package/DS1/2-core/ds-icon.ts +11 -2
  90. package/DS1/2-core/ds-input.ts +165 -6
  91. package/DS1/2-core/ds-kbd.ts +78 -0
  92. package/DS1/2-core/ds-loading.ts +72 -0
  93. package/DS1/2-core/ds-notice.ts +180 -0
  94. package/DS1/2-core/ds-progress.ts +380 -0
  95. package/DS1/2-core/ds-spacing-handle.ts +22 -0
  96. package/DS1/2-core/ds-stat.ts +174 -0
  97. package/DS1/2-core/ds-switch.ts +1 -0
  98. package/DS1/2-core/ds-text.ts +15 -2
  99. package/DS1/2-core/ds-toast.ts +354 -0
  100. package/DS1/2-core/figures.ts +105 -0
  101. package/DS1/2-core/generated/ds-icon-map.ts +234 -128
  102. package/DS1/2-core/generated/icon-avatar.ts +2 -0
  103. package/DS1/2-core/generated/icons-extra.ts +118 -65
  104. package/DS1/2-core/generated/icons-immediate.ts +1 -1
  105. package/DS1/2-core/spacing-handle.ts +95 -0
  106. package/DS1/2-core/styles/ds-avatar.css +9 -8
  107. package/DS1/2-core/styles/ds-button-host.css +26 -3
  108. package/DS1/2-core/styles/ds-button-split.css +67 -0
  109. package/DS1/2-core/styles/ds-button.css +49 -15
  110. package/DS1/2-core/styles/ds-card.css +34 -0
  111. package/DS1/2-core/styles/ds-composer.css +13 -0
  112. package/DS1/2-core/styles/ds-cycle.css +69 -0
  113. package/DS1/2-core/styles/ds-empty.css +18 -0
  114. package/DS1/2-core/styles/ds-gap.css +1 -0
  115. package/DS1/2-core/styles/ds-icon.css +1 -0
  116. package/DS1/2-core/styles/ds-input.css +59 -6
  117. package/DS1/2-core/styles/ds-kbd.css +12 -0
  118. package/DS1/2-core/styles/ds-loading.css +13 -0
  119. package/DS1/2-core/styles/ds-notice.css +30 -0
  120. package/DS1/2-core/styles/ds-progress.css +25 -0
  121. package/DS1/2-core/styles/ds-select.css +2 -2
  122. package/DS1/2-core/styles/ds-spacing-handle.css +8 -0
  123. package/DS1/2-core/styles/ds-split.css +2 -62
  124. package/DS1/2-core/styles/ds-stat.css +34 -0
  125. package/DS1/2-core/styles/ds-switch.css +16 -1
  126. package/DS1/2-core/styles/ds-text.css +43 -12
  127. package/DS1/2-core/styles/ds-toast.css +182 -0
  128. package/DS1/2-core/styles/ds-tooltip.css +1 -0
  129. package/DS1/3-unit/calendar-base.ts +263 -0
  130. package/DS1/3-unit/ds-accordion.ts +9 -1
  131. package/DS1/3-unit/ds-avatar-group.ts +1 -0
  132. package/DS1/3-unit/ds-calendar-large.ts +349 -0
  133. package/DS1/3-unit/ds-calendar.ts +344 -0
  134. package/DS1/3-unit/ds-carousel.ts +368 -0
  135. package/DS1/3-unit/ds-date-picker.ts +540 -0
  136. package/DS1/3-unit/ds-form.ts +45 -37
  137. package/DS1/3-unit/ds-list.ts +48 -1
  138. package/DS1/3-unit/ds-matrix.ts +318 -0
  139. package/DS1/3-unit/ds-menu.ts +8 -4
  140. package/DS1/3-unit/ds-row.ts +84 -1
  141. package/DS1/3-unit/ds-sidebar.ts +280 -0
  142. package/DS1/3-unit/ds-table.ts +75 -34
  143. package/DS1/3-unit/styles/ds-accordion.css +1 -0
  144. package/DS1/3-unit/styles/ds-avatar-group.css +2 -4
  145. package/DS1/3-unit/styles/ds-calendar-large.css +165 -0
  146. package/DS1/3-unit/styles/ds-calendar.css +238 -0
  147. package/DS1/3-unit/styles/ds-carousel.css +30 -0
  148. package/DS1/3-unit/styles/ds-date-picker.css +124 -0
  149. package/DS1/3-unit/styles/ds-list.css +1 -0
  150. package/DS1/3-unit/styles/ds-matrix.css +203 -0
  151. package/DS1/3-unit/styles/ds-menu.css +31 -6
  152. package/DS1/3-unit/styles/ds-row.css +84 -2
  153. package/DS1/3-unit/styles/ds-sidebar.css +117 -0
  154. package/DS1/3-unit/styles/ds-table.css +3 -74
  155. package/DS1/4-page/ds-dialog.ts +40 -4
  156. package/DS1/4-page/ds-document.ts +240 -0
  157. package/DS1/4-page/ds-footer.ts +165 -0
  158. package/DS1/4-page/ds-grid.ts +39 -59
  159. package/DS1/4-page/ds-header.ts +171 -0
  160. package/DS1/4-page/ds-page.ts +184 -0
  161. package/DS1/4-page/email.ts +2 -3
  162. package/DS1/4-page/styles/ds-container.css +1 -0
  163. package/DS1/4-page/styles/ds-document.css +18 -0
  164. package/DS1/4-page/styles/ds-footer.css +29 -0
  165. package/DS1/4-page/styles/ds-grid.css +31 -85
  166. package/DS1/4-page/styles/ds-header.css +57 -0
  167. package/DS1/4-page/styles/ds-page.css +214 -0
  168. package/DS1/components.ts +7 -1
  169. package/DS1/index.ts +26 -6
  170. package/DS1/react/avatar.ts +4 -5
  171. package/DS1/react/button-split.ts +29 -0
  172. package/DS1/react/button.ts +32 -13
  173. package/DS1/react/carousel.ts +76 -0
  174. package/DS1/react/dialog.ts +36 -5
  175. package/DS1/react/document.ts +14 -0
  176. package/DS1/react/empty.ts +32 -0
  177. package/DS1/react/footer.ts +17 -0
  178. package/DS1/react/header.ts +15 -0
  179. package/DS1/react/input.ts +28 -17
  180. package/DS1/react/kbd.ts +21 -0
  181. package/DS1/react/loading.ts +18 -0
  182. package/DS1/react/notice.ts +59 -0
  183. package/DS1/react/page.ts +13 -0
  184. package/DS1/react/progress.ts +99 -0
  185. package/DS1/react/sidebar.ts +60 -0
  186. package/DS1/react/spacing-handle.ts +21 -0
  187. package/DS1/react/stat.ts +73 -0
  188. package/DS1/react/toast.ts +82 -0
  189. package/DS1/x-icon/Tabler-LICENSE.md +27 -0
  190. package/DS1/x-icon/airtable.svg +5 -0
  191. package/DS1/x-icon/attach.svg +3 -0
  192. package/DS1/x-icon/audio.svg +3 -0
  193. package/DS1/x-icon/bag-alt.svg +3 -0
  194. package/DS1/x-icon/bank.svg +3 -0
  195. package/DS1/x-icon/banknote.svg +3 -0
  196. package/DS1/x-icon/bolt.svg +3 -0
  197. package/DS1/x-icon/book-alt.svg +3 -0
  198. package/DS1/x-icon/book.svg +4 -0
  199. package/DS1/x-icon/box.svg +3 -0
  200. package/DS1/x-icon/briefcase.svg +3 -0
  201. package/DS1/x-icon/building.svg +4 -0
  202. package/DS1/x-icon/car.svg +3 -0
  203. package/DS1/x-icon/card.svg +3 -0
  204. package/DS1/x-icon/cart.svg +3 -0
  205. package/DS1/x-icon/{ezo-item-button-start.svg → chevron-left.svg} +1 -1
  206. package/DS1/x-icon/{ezo-android-screen-stats.svg → chevron-right.svg} +1 -1
  207. package/DS1/x-icon/cloud.svg +3 -0
  208. package/DS1/x-icon/coffee.svg +3 -0
  209. package/DS1/x-icon/coins.svg +3 -0
  210. package/DS1/x-icon/cursor.svg +3 -0
  211. package/DS1/x-icon/curve.svg +7 -0
  212. package/DS1/x-icon/dislike.svg +4 -0
  213. package/DS1/x-icon/dot-bank.svg +3 -0
  214. package/DS1/x-icon/dot-banknote.svg +3 -0
  215. package/DS1/x-icon/dot-banknotes.svg +3 -0
  216. package/DS1/x-icon/dot-card.svg +3 -0
  217. package/DS1/x-icon/dot-coin.svg +3 -0
  218. package/DS1/x-icon/dot-coins.svg +3 -0
  219. package/DS1/x-icon/dot-receipt.svg +3 -0
  220. package/DS1/x-icon/dot-safe.svg +3 -0
  221. package/DS1/x-icon/dot-transfer.svg +3 -0
  222. package/DS1/x-icon/dot-wallet.svg +3 -0
  223. package/DS1/x-icon/download.svg +4 -0
  224. package/DS1/x-icon/drive.svg +5 -0
  225. package/DS1/x-icon/drop.svg +3 -0
  226. package/DS1/x-icon/dropbox.svg +3 -0
  227. package/DS1/x-icon/dumbbell.svg +3 -0
  228. package/DS1/x-icon/eye-off.svg +3 -0
  229. package/DS1/x-icon/eye.svg +3 -0
  230. package/DS1/x-icon/facebook.svg +3 -0
  231. package/DS1/x-icon/figma.svg +5 -0
  232. package/DS1/x-icon/flame.svg +3 -0
  233. package/DS1/x-icon/flip.svg +5 -0
  234. package/DS1/x-icon/food.svg +3 -0
  235. package/DS1/x-icon/fuel.svg +3 -0
  236. package/DS1/x-icon/game.svg +3 -0
  237. package/DS1/x-icon/gift.svg +3 -0
  238. package/DS1/x-icon/github.svg +3 -0
  239. package/DS1/x-icon/heart.svg +3 -0
  240. package/DS1/x-icon/history.svg +3 -0
  241. package/DS1/x-icon/home-alt.svg +3 -0
  242. package/DS1/x-icon/income.svg +3 -0
  243. package/DS1/x-icon/info.svg +5 -0
  244. package/DS1/x-icon/instagram.svg +5 -0
  245. package/DS1/x-icon/jpbank.svg +3 -0
  246. package/DS1/x-icon/key.svg +4 -0
  247. package/DS1/x-icon/keyboard.svg +3 -0
  248. package/DS1/x-icon/like.svg +4 -0
  249. package/DS1/x-icon/linkedin.svg +7 -0
  250. package/DS1/x-icon/loom.svg +6 -0
  251. package/DS1/x-icon/map.svg +4 -0
  252. package/DS1/x-icon/medical.svg +3 -0
  253. package/DS1/x-icon/{ezo-android-screen-lists.svg → minus.svg} +1 -1
  254. package/DS1/x-icon/moon.svg +3 -0
  255. package/DS1/x-icon/move.svg +3 -0
  256. package/DS1/x-icon/music-alt.svg +3 -0
  257. package/DS1/x-icon/music.svg +5 -0
  258. package/DS1/x-icon/notion.svg +6 -0
  259. package/DS1/x-icon/offline.svg +3 -0
  260. package/DS1/x-icon/pause.svg +4 -0
  261. package/DS1/x-icon/paw.svg +3 -0
  262. package/DS1/x-icon/pdf.svg +3 -0
  263. package/DS1/x-icon/people.svg +5 -0
  264. package/DS1/x-icon/percent.svg +3 -0
  265. package/DS1/x-icon/phone.svg +3 -0
  266. package/DS1/x-icon/pill.svg +3 -0
  267. package/DS1/x-icon/plane.svg +3 -0
  268. package/DS1/x-icon/postal.svg +3 -0
  269. package/DS1/x-icon/present.svg +4 -0
  270. package/DS1/x-icon/reaction.svg +5 -0
  271. package/DS1/x-icon/receipt.svg +3 -0
  272. package/DS1/x-icon/refresh.svg +3 -0
  273. package/DS1/x-icon/refund.svg +3 -0
  274. package/DS1/x-icon/repeat.svg +3 -0
  275. package/DS1/x-icon/rotate.svg +4 -0
  276. package/DS1/x-icon/safe.svg +3 -0
  277. package/DS1/x-icon/school-alt.svg +3 -0
  278. package/DS1/x-icon/shield-alt.svg +3 -0
  279. package/DS1/x-icon/shield.svg +4 -0
  280. package/DS1/x-icon/shirt.svg +3 -0
  281. package/DS1/x-icon/shop.svg +3 -0
  282. package/DS1/x-icon/sign-in.svg +3 -0
  283. package/DS1/x-icon/sign-out.svg +3 -0
  284. package/DS1/x-icon/slack.svg +6 -0
  285. package/DS1/x-icon/sparkle.svg +3 -0
  286. package/DS1/x-icon/start.svg +4 -0
  287. package/DS1/x-icon/{ezo-item-button-reopen.svg → stop.svg} +1 -1
  288. package/DS1/x-icon/sun.svg +3 -0
  289. package/DS1/x-icon/system.svg +4 -0
  290. package/DS1/x-icon/tag.svg +3 -0
  291. package/DS1/x-icon/ticket.svg +3 -0
  292. package/DS1/x-icon/title-struck.svg +4 -0
  293. package/DS1/x-icon/train.svg +3 -0
  294. package/DS1/x-icon/transfer.svg +3 -0
  295. package/DS1/x-icon/tv.svg +3 -0
  296. package/DS1/x-icon/upload.svg +4 -0
  297. package/DS1/x-icon/video.svg +4 -0
  298. package/DS1/x-icon/vimeo.svg +3 -0
  299. package/DS1/x-icon/wallet.svg +3 -0
  300. package/DS1/x-icon/wifi.svg +3 -0
  301. package/DS1/x-icon/window.svg +4 -0
  302. package/DS1/x-icon/wrench.svg +3 -0
  303. package/DS1/x-icon/x-brand.svg +4 -0
  304. package/DS1/x-icon/youtube.svg +4 -0
  305. package/README.md +3 -3
  306. package/dist/0-face/calendar.d.ts +75 -0
  307. package/dist/0-face/calendar.d.ts.map +1 -0
  308. package/dist/0-face/calendar.js +149 -0
  309. package/dist/0-face/carousel.d.ts +174 -0
  310. package/dist/0-face/carousel.d.ts.map +1 -0
  311. package/dist/0-face/carousel.js +583 -0
  312. package/dist/0-face/component-visibility.d.ts +7 -0
  313. package/dist/0-face/component-visibility.d.ts.map +1 -0
  314. package/dist/0-face/component-visibility.js +10 -0
  315. package/dist/0-face/copy-text.d.ts +11 -0
  316. package/dist/0-face/copy-text.d.ts.map +1 -0
  317. package/dist/0-face/copy-text.js +97 -0
  318. package/dist/0-face/device.d.ts +3 -7
  319. package/dist/0-face/device.d.ts.map +1 -1
  320. package/dist/0-face/device.js +7 -41
  321. package/dist/0-face/dialog-swipe.d.ts +49 -0
  322. package/dist/0-face/dialog-swipe.d.ts.map +1 -0
  323. package/dist/0-face/dialog-swipe.js +239 -0
  324. package/dist/0-face/dialogs.d.ts +33 -0
  325. package/dist/0-face/dialogs.d.ts.map +1 -0
  326. package/dist/0-face/dialogs.js +173 -0
  327. package/dist/0-face/drawer.d.ts +64 -0
  328. package/dist/0-face/drawer.d.ts.map +1 -0
  329. package/dist/0-face/drawer.js +256 -0
  330. package/dist/0-face/feedback-words.d.ts +21 -0
  331. package/dist/0-face/feedback-words.d.ts.map +1 -0
  332. package/dist/0-face/feedback-words.js +30 -0
  333. package/dist/0-face/feedback.d.ts +41 -0
  334. package/dist/0-face/feedback.d.ts.map +1 -0
  335. package/dist/0-face/feedback.js +35 -0
  336. package/dist/0-face/format.d.ts +166 -0
  337. package/dist/0-face/format.d.ts.map +1 -0
  338. package/dist/0-face/format.js +445 -0
  339. package/dist/0-face/generated/toast-assets.d.ts +11 -0
  340. package/dist/0-face/generated/toast-assets.d.ts.map +1 -0
  341. package/dist/0-face/generated/toast-assets.js +14 -0
  342. package/dist/0-face/grid-fit.js +1 -1
  343. package/dist/0-face/grid.d.ts.map +1 -1
  344. package/dist/0-face/grid.js +2 -1
  345. package/dist/0-face/header.d.ts +38 -0
  346. package/dist/0-face/header.d.ts.map +1 -0
  347. package/dist/0-face/header.js +80 -0
  348. package/dist/0-face/i18n.d.ts +32 -2
  349. package/dist/0-face/i18n.d.ts.map +1 -1
  350. package/dist/0-face/i18n.js +65 -19
  351. package/dist/0-face/keys.d.ts +104 -0
  352. package/dist/0-face/keys.d.ts.map +1 -0
  353. package/dist/0-face/keys.js +253 -0
  354. package/dist/0-face/languages.d.ts +2 -2
  355. package/dist/0-face/languages.js +3 -3
  356. package/dist/0-face/layout-inspector.js +6 -6
  357. package/dist/0-face/library-styles.d.ts +7 -0
  358. package/dist/0-face/library-styles.d.ts.map +1 -0
  359. package/dist/0-face/library-styles.js +29 -0
  360. package/dist/0-face/load-toaster.d.ts +8 -0
  361. package/dist/0-face/load-toaster.d.ts.map +1 -0
  362. package/dist/0-face/load-toaster.js +7 -0
  363. package/dist/0-face/preference-options.d.ts +34 -0
  364. package/dist/0-face/preference-options.d.ts.map +1 -0
  365. package/dist/0-face/preference-options.js +1 -0
  366. package/dist/0-face/preferences.d.ts +3 -12
  367. package/dist/0-face/preferences.d.ts.map +1 -1
  368. package/dist/0-face/pricing.d.ts +19 -9
  369. package/dist/0-face/pricing.d.ts.map +1 -1
  370. package/dist/0-face/pricing.js +81 -40
  371. package/dist/0-face/scaling.d.ts +71 -1
  372. package/dist/0-face/scaling.d.ts.map +1 -1
  373. package/dist/0-face/scaling.js +108 -3
  374. package/dist/0-face/shared-words.d.ts +9 -4
  375. package/dist/0-face/shared-words.d.ts.map +1 -1
  376. package/dist/0-face/sidebar.d.ts +69 -0
  377. package/dist/0-face/sidebar.d.ts.map +1 -0
  378. package/dist/0-face/sidebar.js +191 -0
  379. package/dist/0-face/theme-bootstrap.d.ts +1 -0
  380. package/dist/0-face/theme-bootstrap.d.ts.map +1 -0
  381. package/dist/0-face/theme-bootstrap.js +214 -0
  382. package/dist/0-face/theme.d.ts +32 -0
  383. package/dist/0-face/theme.d.ts.map +1 -1
  384. package/dist/0-face/theme.js +69 -43
  385. package/dist/0-face/toast-queue.d.ts +110 -0
  386. package/dist/0-face/toast-queue.d.ts.map +1 -0
  387. package/dist/0-face/toast-queue.js +98 -0
  388. package/dist/0-face/toaster.d.ts +27 -0
  389. package/dist/0-face/toaster.d.ts.map +1 -0
  390. package/dist/0-face/toaster.js +373 -0
  391. package/dist/0-face/tooltips.d.ts +24 -1
  392. package/dist/0-face/tooltips.d.ts.map +1 -1
  393. package/dist/0-face/tooltips.js +155 -16
  394. package/dist/0-face/translations/da.json +60 -1
  395. package/dist/0-face/translations/de.json +60 -1
  396. package/dist/0-face/translations/en.json +60 -1
  397. package/dist/0-face/translations/es.json +60 -1
  398. package/dist/0-face/translations/fi.json +60 -1
  399. package/dist/0-face/translations/fr.json +60 -1
  400. package/dist/0-face/translations/is.json +60 -1
  401. package/dist/0-face/translations/it.json +60 -1
  402. package/dist/0-face/translations/ja.json +60 -1
  403. package/dist/0-face/translations/ko.json +60 -1
  404. package/dist/0-face/translations/nb.json +60 -1
  405. package/dist/0-face/translations/pt-BR.json +60 -1
  406. package/dist/0-face/translations/pt.json +60 -1
  407. package/dist/0-face/translations/sv.json +60 -1
  408. package/dist/0-face/translations/zh.json +60 -1
  409. package/dist/0-face/translations-format.d.ts.map +1 -1
  410. package/dist/0-face/translations-format.js +3 -4
  411. package/dist/0-face/tree.d.ts +69 -0
  412. package/dist/0-face/tree.d.ts.map +1 -0
  413. package/dist/0-face/tree.js +191 -0
  414. package/dist/1-root/library-tokens.d.ts +31 -0
  415. package/dist/1-root/library-tokens.d.ts.map +1 -0
  416. package/dist/1-root/library-tokens.js +84 -0
  417. package/dist/1-root/measures.d.ts +52 -0
  418. package/dist/1-root/measures.d.ts.map +1 -0
  419. package/dist/1-root/measures.js +49 -0
  420. package/dist/1-root/palette.d.ts +5 -0
  421. package/dist/1-root/palette.d.ts.map +1 -1
  422. package/dist/1-root/palette.js +18 -0
  423. package/dist/2-core/button-split.d.ts +21 -0
  424. package/dist/2-core/button-split.d.ts.map +1 -0
  425. package/dist/2-core/button-split.js +48 -0
  426. package/dist/2-core/chart/grid-chart.d.ts +113 -0
  427. package/dist/2-core/chart/grid-chart.d.ts.map +1 -0
  428. package/dist/2-core/chart/grid-chart.js +466 -0
  429. package/dist/2-core/ds-avatar.d.ts +20 -3
  430. package/dist/2-core/ds-avatar.d.ts.map +1 -1
  431. package/dist/2-core/ds-avatar.js +19 -5
  432. package/dist/2-core/ds-badge.js +10 -13
  433. package/dist/2-core/ds-banner.d.ts +23 -7
  434. package/dist/2-core/ds-banner.d.ts.map +1 -1
  435. package/dist/2-core/ds-banner.js +48 -12
  436. package/dist/2-core/ds-button.d.ts +76 -0
  437. package/dist/2-core/ds-button.d.ts.map +1 -1
  438. package/dist/2-core/ds-button.js +101 -26
  439. package/dist/2-core/ds-card.d.ts +76 -11
  440. package/dist/2-core/ds-card.d.ts.map +1 -1
  441. package/dist/2-core/ds-card.js +129 -105
  442. package/dist/2-core/ds-chart.d.ts +105 -0
  443. package/dist/2-core/ds-chart.d.ts.map +1 -0
  444. package/dist/2-core/ds-chart.js +390 -0
  445. package/dist/2-core/ds-composer.d.ts +7 -0
  446. package/dist/2-core/ds-composer.d.ts.map +1 -1
  447. package/dist/2-core/ds-composer.js +1 -1
  448. package/dist/2-core/ds-cycle.d.ts +36 -2
  449. package/dist/2-core/ds-cycle.d.ts.map +1 -1
  450. package/dist/2-core/ds-cycle.js +95 -18
  451. package/dist/2-core/ds-empty.d.ts +74 -0
  452. package/dist/2-core/ds-empty.d.ts.map +1 -0
  453. package/dist/2-core/ds-empty.js +96 -0
  454. package/dist/2-core/ds-icon.d.ts +6 -0
  455. package/dist/2-core/ds-icon.d.ts.map +1 -1
  456. package/dist/2-core/ds-icon.js +12 -2
  457. package/dist/2-core/ds-input.d.ts +39 -1
  458. package/dist/2-core/ds-input.d.ts.map +1 -1
  459. package/dist/2-core/ds-input.js +150 -6
  460. package/dist/2-core/ds-kbd.d.ts +48 -0
  461. package/dist/2-core/ds-kbd.d.ts.map +1 -0
  462. package/dist/2-core/ds-kbd.js +65 -0
  463. package/dist/2-core/ds-language.d.ts +8 -1
  464. package/dist/2-core/ds-language.d.ts.map +1 -1
  465. package/dist/2-core/ds-language.js +2 -2
  466. package/dist/2-core/ds-loading.d.ts +40 -0
  467. package/dist/2-core/ds-loading.d.ts.map +1 -0
  468. package/dist/2-core/ds-loading.js +63 -0
  469. package/dist/2-core/ds-meter.d.ts +103 -0
  470. package/dist/2-core/ds-meter.d.ts.map +1 -0
  471. package/dist/2-core/ds-meter.js +124 -0
  472. package/dist/2-core/ds-notice.d.ts +103 -0
  473. package/dist/2-core/ds-notice.d.ts.map +1 -0
  474. package/dist/2-core/ds-notice.js +152 -0
  475. package/dist/2-core/ds-pagedots.d.ts +64 -7
  476. package/dist/2-core/ds-pagedots.d.ts.map +1 -1
  477. package/dist/2-core/ds-pagedots.js +124 -18
  478. package/dist/2-core/ds-progress.d.ts +200 -0
  479. package/dist/2-core/ds-progress.d.ts.map +1 -0
  480. package/dist/2-core/ds-progress.js +319 -0
  481. package/dist/2-core/ds-spacing-handle.d.ts +25 -0
  482. package/dist/2-core/ds-spacing-handle.d.ts.map +1 -0
  483. package/dist/2-core/ds-spacing-handle.js +25 -0
  484. package/dist/2-core/ds-split.d.ts +4 -67
  485. package/dist/2-core/ds-split.d.ts.map +1 -1
  486. package/dist/2-core/ds-split.js +4 -98
  487. package/dist/2-core/ds-stat.d.ts +126 -0
  488. package/dist/2-core/ds-stat.d.ts.map +1 -0
  489. package/dist/2-core/ds-stat.js +137 -0
  490. package/dist/2-core/ds-steps.d.ts +72 -0
  491. package/dist/2-core/ds-steps.d.ts.map +1 -0
  492. package/dist/2-core/ds-steps.js +114 -0
  493. package/dist/2-core/ds-switch.d.ts +1 -0
  494. package/dist/2-core/ds-switch.d.ts.map +1 -1
  495. package/dist/2-core/ds-switch.js +1 -0
  496. package/dist/2-core/ds-text.d.ts +15 -2
  497. package/dist/2-core/ds-text.d.ts.map +1 -1
  498. package/dist/2-core/ds-text.js +13 -0
  499. package/dist/2-core/ds-textarea.d.ts.map +1 -1
  500. package/dist/2-core/ds-textarea.js +1 -0
  501. package/dist/2-core/ds-toast.d.ts +139 -0
  502. package/dist/2-core/ds-toast.d.ts.map +1 -0
  503. package/dist/2-core/ds-toast.js +329 -0
  504. package/dist/2-core/ds-toggle.d.ts +11 -0
  505. package/dist/2-core/ds-toggle.d.ts.map +1 -0
  506. package/dist/2-core/ds-toggle.js +10 -0
  507. package/dist/2-core/figures.d.ts +56 -0
  508. package/dist/2-core/figures.d.ts.map +1 -0
  509. package/dist/2-core/figures.js +70 -0
  510. package/dist/2-core/generated/ds-icon-map.d.ts +118 -65
  511. package/dist/2-core/generated/ds-icon-map.d.ts.map +1 -1
  512. package/dist/2-core/generated/ds-icon-map.js +234 -128
  513. package/dist/2-core/generated/icon-avatar.d.ts +2 -0
  514. package/dist/2-core/generated/icon-avatar.d.ts.map +1 -0
  515. package/dist/2-core/generated/icon-avatar.js +2 -0
  516. package/dist/2-core/generated/icons-extra.d.ts.map +1 -1
  517. package/dist/2-core/generated/icons-extra.js +118 -65
  518. package/dist/2-core/generated/icons-immediate.d.ts +1 -1
  519. package/dist/2-core/generated/icons-immediate.d.ts.map +1 -1
  520. package/dist/2-core/generated/icons-immediate.js +1 -1
  521. package/dist/2-core/spacing-handle.d.ts +28 -0
  522. package/dist/2-core/spacing-handle.d.ts.map +1 -0
  523. package/dist/2-core/spacing-handle.js +146 -0
  524. package/dist/3-unit/calendar-base.d.ts +149 -0
  525. package/dist/3-unit/calendar-base.d.ts.map +1 -0
  526. package/dist/3-unit/calendar-base.js +172 -0
  527. package/dist/3-unit/ds-accordion.d.ts +9 -0
  528. package/dist/3-unit/ds-accordion.d.ts.map +1 -1
  529. package/dist/3-unit/ds-accordion.js +7 -1
  530. package/dist/3-unit/ds-avatar-group.d.ts +1 -0
  531. package/dist/3-unit/ds-avatar-group.d.ts.map +1 -1
  532. package/dist/3-unit/ds-calendar-large.d.ts +138 -0
  533. package/dist/3-unit/ds-calendar-large.d.ts.map +1 -0
  534. package/dist/3-unit/ds-calendar-large.js +305 -0
  535. package/dist/3-unit/ds-calendar.d.ts +175 -0
  536. package/dist/3-unit/ds-calendar.d.ts.map +1 -0
  537. package/dist/3-unit/ds-calendar.js +303 -0
  538. package/dist/3-unit/ds-carousel.d.ts +182 -0
  539. package/dist/3-unit/ds-carousel.d.ts.map +1 -0
  540. package/dist/3-unit/ds-carousel.js +327 -0
  541. package/dist/3-unit/ds-date-picker.d.ts +203 -0
  542. package/dist/3-unit/ds-date-picker.d.ts.map +1 -0
  543. package/dist/3-unit/ds-date-picker.js +499 -0
  544. package/dist/3-unit/ds-form.d.ts.map +1 -1
  545. package/dist/3-unit/ds-form.js +38 -28
  546. package/dist/3-unit/ds-list.d.ts +12 -0
  547. package/dist/3-unit/ds-list.d.ts.map +1 -1
  548. package/dist/3-unit/ds-list.js +52 -1
  549. package/dist/3-unit/ds-matrix.d.ts +146 -0
  550. package/dist/3-unit/ds-matrix.d.ts.map +1 -0
  551. package/dist/3-unit/ds-matrix.js +248 -0
  552. package/dist/3-unit/ds-menu.d.ts +1 -1
  553. package/dist/3-unit/ds-menu.d.ts.map +1 -1
  554. package/dist/3-unit/ds-menu.js +7 -4
  555. package/dist/3-unit/ds-row.d.ts +66 -0
  556. package/dist/3-unit/ds-row.d.ts.map +1 -1
  557. package/dist/3-unit/ds-row.js +80 -1
  558. package/dist/3-unit/ds-sidebar.d.ts +108 -0
  559. package/dist/3-unit/ds-sidebar.d.ts.map +1 -0
  560. package/dist/3-unit/ds-sidebar.js +268 -0
  561. package/dist/3-unit/ds-table.d.ts +28 -10
  562. package/dist/3-unit/ds-table.d.ts.map +1 -1
  563. package/dist/3-unit/ds-table.js +53 -25
  564. package/dist/3-unit/ds-tree.d.ts +69 -0
  565. package/dist/3-unit/ds-tree.d.ts.map +1 -0
  566. package/dist/3-unit/ds-tree.js +136 -0
  567. package/dist/4-page/ds-dialog.d.ts +16 -1
  568. package/dist/4-page/ds-dialog.d.ts.map +1 -1
  569. package/dist/4-page/ds-dialog.js +39 -3
  570. package/dist/4-page/ds-document.d.ts +98 -0
  571. package/dist/4-page/ds-document.d.ts.map +1 -0
  572. package/dist/4-page/ds-document.js +213 -0
  573. package/dist/4-page/ds-footer.d.ts +100 -0
  574. package/dist/4-page/ds-footer.d.ts.map +1 -0
  575. package/dist/4-page/ds-footer.js +119 -0
  576. package/dist/4-page/ds-grid.d.ts +32 -12
  577. package/dist/4-page/ds-grid.d.ts.map +1 -1
  578. package/dist/4-page/ds-grid.js +30 -39
  579. package/dist/4-page/ds-header.d.ts +84 -0
  580. package/dist/4-page/ds-header.d.ts.map +1 -0
  581. package/dist/4-page/ds-header.js +143 -0
  582. package/dist/4-page/ds-layout.d.ts +1 -0
  583. package/dist/4-page/ds-layout.d.ts.map +1 -1
  584. package/dist/4-page/ds-layout.js +1 -1
  585. package/dist/4-page/ds-page.d.ts +110 -0
  586. package/dist/4-page/ds-page.d.ts.map +1 -0
  587. package/dist/4-page/ds-page.js +155 -0
  588. package/dist/4-page/email.d.ts +2 -3
  589. package/dist/4-page/email.d.ts.map +1 -1
  590. package/dist/4-page/email.js +2 -3
  591. package/dist/components.d.ts +4 -1
  592. package/dist/components.d.ts.map +1 -1
  593. package/dist/components.js +4 -1
  594. package/dist/design-system-1.bundle.js +11304 -4322
  595. package/dist/design-system-1.bundle.js.map +1 -1
  596. package/dist/design-system-1.bundle.min.js +8867 -4132
  597. package/dist/design-system-1.bundle.min.js.map +1 -1
  598. package/dist/design-system-1.css +1 -1
  599. package/dist/feedback.js +541 -0
  600. package/dist/feedback.js.map +1 -0
  601. package/dist/icons-extra-B4Iotc7s.js +298 -0
  602. package/dist/icons-extra-B4Iotc7s.js.map +1 -0
  603. package/dist/icons-extra-C4sCgoUj.js +185 -0
  604. package/dist/icons-extra-C4sCgoUj.js.map +1 -0
  605. package/dist/icons-extra-DSav6uTU.js +300 -0
  606. package/dist/icons-extra-DSav6uTU.js.map +1 -0
  607. package/dist/icons-extra-Dc_yVWIz.js +1024 -0
  608. package/dist/icons-extra-Dc_yVWIz.js.map +1 -0
  609. package/dist/icons-extra-cfzoudMf.js +1030 -0
  610. package/dist/icons-extra-cfzoudMf.js.map +1 -0
  611. package/dist/icons-extra-g_xpwZhZ.js +631 -0
  612. package/dist/icons-extra-g_xpwZhZ.js.map +1 -0
  613. package/dist/index.d.ts +23 -6
  614. package/dist/index.d.ts.map +1 -1
  615. package/dist/index.js +23 -6
  616. package/dist/react/avatar.d.ts +5 -9
  617. package/dist/react/avatar.d.ts.map +1 -1
  618. package/dist/react/avatar.js +2 -2
  619. package/dist/react/button-split.d.ts +19 -0
  620. package/dist/react/button-split.d.ts.map +1 -0
  621. package/dist/react/button-split.js +35 -0
  622. package/dist/react/button.d.ts +18 -7
  623. package/dist/react/button.d.ts.map +1 -1
  624. package/dist/react/button.js +13 -4
  625. package/dist/react/carousel.d.ts +63 -0
  626. package/dist/react/carousel.d.ts.map +1 -0
  627. package/dist/react/carousel.js +47 -0
  628. package/dist/react/choice.d.ts +1 -1
  629. package/dist/react/context-menu.d.ts +337 -337
  630. package/dist/react/dialog.d.ts +684 -678
  631. package/dist/react/dialog.d.ts.map +1 -1
  632. package/dist/react/dialog.js +29 -3
  633. package/dist/react/document.d.ts +11 -0
  634. package/dist/react/document.d.ts.map +1 -0
  635. package/dist/react/document.js +10 -0
  636. package/dist/react/empty.d.ts +34 -0
  637. package/dist/react/empty.d.ts.map +1 -0
  638. package/dist/react/empty.js +8 -0
  639. package/dist/react/file-picker.d.ts +1 -1
  640. package/dist/react/footer.d.ts +13 -0
  641. package/dist/react/footer.d.ts.map +1 -0
  642. package/dist/react/footer.js +12 -0
  643. package/dist/react/header.d.ts +12 -0
  644. package/dist/react/header.d.ts.map +1 -0
  645. package/dist/react/header.js +11 -0
  646. package/dist/react/input.d.ts +31 -9
  647. package/dist/react/input.d.ts.map +1 -1
  648. package/dist/react/input.js +94 -94
  649. package/dist/react/kbd.d.ts +26 -0
  650. package/dist/react/kbd.d.ts.map +1 -0
  651. package/dist/react/kbd.js +8 -0
  652. package/dist/react/loading.d.ts +14 -0
  653. package/dist/react/loading.d.ts.map +1 -0
  654. package/dist/react/loading.js +14 -0
  655. package/dist/react/meter.d.ts +64 -0
  656. package/dist/react/meter.d.ts.map +1 -0
  657. package/dist/react/meter.js +15 -0
  658. package/dist/react/notice.d.ts +45 -0
  659. package/dist/react/notice.d.ts.map +1 -0
  660. package/dist/react/notice.js +34 -0
  661. package/dist/react/page.d.ts +10 -0
  662. package/dist/react/page.d.ts.map +1 -0
  663. package/dist/react/page.js +9 -0
  664. package/dist/react/progress.d.ts +107 -0
  665. package/dist/react/progress.d.ts.map +1 -0
  666. package/dist/react/progress.js +47 -0
  667. package/dist/react/sidebar.d.ts +44 -0
  668. package/dist/react/sidebar.d.ts.map +1 -0
  669. package/dist/react/sidebar.js +41 -0
  670. package/dist/react/spacing-handle.d.ts +13 -0
  671. package/dist/react/spacing-handle.d.ts.map +1 -0
  672. package/dist/react/spacing-handle.js +18 -0
  673. package/dist/react/split.d.ts +6 -14
  674. package/dist/react/split.d.ts.map +1 -1
  675. package/dist/react/split.js +5 -31
  676. package/dist/react/stat.d.ts +78 -0
  677. package/dist/react/stat.d.ts.map +1 -0
  678. package/dist/react/stat.js +25 -0
  679. package/dist/react/steps.d.ts +36 -0
  680. package/dist/react/steps.d.ts.map +1 -0
  681. package/dist/react/steps.js +10 -0
  682. package/dist/react/toast.d.ts +37 -0
  683. package/dist/react/toast.d.ts.map +1 -0
  684. package/dist/react/toast.js +55 -0
  685. package/dist/react/tree.d.ts +31 -0
  686. package/dist/react/tree.d.ts.map +1 -0
  687. package/dist/react/tree.js +37 -0
  688. package/dist/shared-words-BfnT24Fe.js +1635 -0
  689. package/dist/shared-words-BfnT24Fe.js.map +1 -0
  690. package/dist/shared-words-CyZYc_De.js +1818 -0
  691. package/dist/shared-words-CyZYc_De.js.map +1 -0
  692. package/dist/shared-words-DAVSET4Z.js +1800 -0
  693. package/dist/shared-words-DAVSET4Z.js.map +1 -0
  694. package/dist/shared-words-UCvnkctb.js +1653 -0
  695. package/dist/shared-words-UCvnkctb.js.map +1 -0
  696. package/package.json +16 -5
  697. package/DS1/2-core/ds-banner.ts +0 -122
  698. package/DS1/2-core/ds-date.ts +0 -24
  699. package/DS1/2-core/ds-language.ts +0 -94
  700. package/DS1/2-core/ds-pagedots.ts +0 -52
  701. package/DS1/2-core/ds-split.ts +0 -122
  702. package/DS1/2-core/ds-textarea.ts +0 -136
  703. package/DS1/2-core/styles/ds-banner.css +0 -77
  704. package/DS1/2-core/styles/ds-date.css +0 -9
  705. package/DS1/2-core/styles/ds-language.css +0 -78
  706. package/DS1/2-core/styles/ds-pagedots.css +0 -31
  707. package/DS1/2-core/styles/ds-textarea.css +0 -27
  708. package/DS1/4-page/ds-layout.ts +0 -949
  709. package/DS1/4-page/styles/ds-layout.css +0 -246
  710. package/DS1/react/split.ts +0 -42
  711. package/DS1/x-icon/ezo-accordion-chevron.svg +0 -11
  712. package/DS1/x-icon/ezo-account-close.svg +0 -1
  713. package/DS1/x-icon/ezo-android-screen-archive.svg +0 -4
  714. package/DS1/x-icon/ezo-android-screen-calendar.svg +0 -6
  715. package/DS1/x-icon/ezo-android-screen-camera.svg +0 -5
  716. package/DS1/x-icon/ezo-android-screen-check.svg +0 -3
  717. package/DS1/x-icon/ezo-android-screen-compose.svg +0 -4
  718. package/DS1/x-icon/ezo-android-screen-globe.svg +0 -1
  719. package/DS1/x-icon/ezo-android-screen-shared.svg +0 -5
  720. package/DS1/x-icon/ezo-android-screen-store.svg +0 -4
  721. package/DS1/x-icon/ezo-android-screen-views.svg +0 -4
  722. package/DS1/x-icon/ezo-android-screen-work.svg +0 -3
  723. package/DS1/x-icon/ezo-arrow-cursor.svg +0 -8
  724. package/DS1/x-icon/ezo-block-accordion.svg +0 -1
  725. package/DS1/x-icon/ezo-block-divider.svg +0 -1
  726. package/DS1/x-icon/ezo-block-group.svg +0 -1
  727. package/DS1/x-icon/ezo-block-image.svg +0 -1
  728. package/DS1/x-icon/ezo-block-section.svg +0 -1
  729. package/DS1/x-icon/ezo-block-table.svg +0 -1
  730. package/DS1/x-icon/ezo-code.svg +0 -14
  731. package/DS1/x-icon/ezo-down.svg +0 -3
  732. package/DS1/x-icon/ezo-figma-premium-star.svg +0 -5
  733. package/DS1/x-icon/ezo-item-button-complete.svg +0 -4
  734. package/DS1/x-icon/ezo-item-button-header.svg +0 -3
  735. package/DS1/x-icon/ezo-item-button-open.svg +0 -3
  736. package/DS1/x-icon/ezo-item-button-star.svg +0 -3
  737. package/DS1/x-icon/ezo-item-button-unheader.svg +0 -7
  738. package/DS1/x-icon/ezo-item-button-unstar.svg +0 -5
  739. package/DS1/x-icon/ezo-item-star.svg +0 -5
  740. package/DS1/x-icon/ezo-left.svg +0 -3
  741. package/DS1/x-icon/ezo-logo.svg +0 -1
  742. package/DS1/x-icon/ezo-mic.svg +0 -8
  743. package/DS1/x-icon/ezo-move-column.svg +0 -14
  744. package/DS1/x-icon/ezo-move-row.svg +0 -18
  745. package/DS1/x-icon/ezo-navigation-check.svg +0 -1
  746. package/DS1/x-icon/ezo-note-back.svg +0 -5
  747. package/DS1/x-icon/ezo-note-menu-complete.svg +0 -11
  748. package/DS1/x-icon/ezo-note-menu-delete.svg +0 -4
  749. package/DS1/x-icon/ezo-note-menu-duplicate.svg +0 -8
  750. package/DS1/x-icon/ezo-note-menu-note.svg +0 -5
  751. package/DS1/x-icon/ezo-note-menu-page.svg +0 -3
  752. package/DS1/x-icon/ezo-note-menu-star.svg +0 -5
  753. package/DS1/x-icon/ezo-note-menu-start.svg +0 -6
  754. package/DS1/x-icon/ezo-note-menu-stop.svg +0 -6
  755. package/DS1/x-icon/ezo-note-more.svg +0 -7
  756. package/DS1/x-icon/ezo-note-star.svg +0 -5
  757. package/DS1/x-icon/ezo-pattern-call-to-action.svg +0 -1
  758. package/DS1/x-icon/ezo-play.svg +0 -5
  759. package/DS1/x-icon/ezo-premium-star.svg +0 -5
  760. package/DS1/x-icon/ezo-setting-1xdots.svg +0 -13
  761. package/DS1/x-icon/ezo-setting-1xgrid.svg +0 -10
  762. package/DS1/x-icon/ezo-setting-1xlines.svg +0 -7
  763. package/DS1/x-icon/ezo-setting-2xdots.svg +0 -8
  764. package/DS1/x-icon/ezo-setting-2xgrid.svg +0 -8
  765. package/DS1/x-icon/ezo-setting-2xlines.svg +0 -6
  766. package/DS1/x-icon/ezo-setting-blank.svg +0 -5
  767. package/DS1/x-icon/ezo-store-chevron.svg +0 -1
  768. package/DS1/x-icon/ezo-upgrade-close.svg +0 -5
  769. package/DS1/x-icon/product-sources.json +0 -2557
  770. /package/DS1/x-icon/{ezo-password-visibility-see.svg → password-see.svg} +0 -0
  771. /package/DS1/x-icon/{ezo-password-visibility-unsee.svg → password-unsee.svg} +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The languages every 0001 product chooses from: one list, with the name of
2
+ * The languages every product chooses from: one list, with the name of
3
3
  * each in English and in itself, and how to read whatever a browser, a URL or
4
4
  * a saved setting calls a language.
5
5
  *
@@ -105,8 +105,8 @@ export const LANGUAGE_METADATA: Readonly<Record<Language, LanguageMetadata>> = {
105
105
 
106
106
  /**
107
107
  * Languages close enough to stand in for each other, nearest first. A product
108
- * that speaks only one of them gets it for the others (Link speaks `nb`, so
109
- * `no` and `nn` read as `nb`; it speaks `pt-BR`, so `pt` reads as `pt-BR`), and
108
+ * that speaks only one of them gets it for the others (one that speaks `nb`
109
+ * reads `no` and `nn` as `nb`; one that speaks `pt-BR` reads `pt` as it), and
110
110
  * a missing word is looked up in them before English.
111
111
  */
112
112
  const RELATED_LANGUAGES: Readonly<Partial<Record<Language, readonly Language[]>>> = {
@@ -150,7 +150,7 @@ function within(language: Language, allowed: ReadonlySet<Language>): Language |
150
150
  * `pt-br`, or a browser's list (`"nl-NL,da;q=0.8"`, the first language it
151
151
  * knows wins). Pass the product's languages to land on one it speaks: a
152
152
  * relative stands in where the product lacks the language itself, so with
153
- * Link's languages `no` and `nn` read as `nb`, and `pt` as `pt-BR`. Returns
153
+ * `nb` and `pt-BR` among them, `no` and `nn` read as `nb`, and `pt` as `pt-BR`. Returns
154
154
  * `fallback` when nothing matches (`null` to tell).
155
155
  */
156
156
  export function normalizeLanguage(
@@ -66,7 +66,7 @@ export function createLayoutInspector() {
66
66
  }
67
67
  @media print { :host { display: none !important; } }
68
68
  </style><div class="veil"></div><div class="areas"></div>`;
69
- document.body.append(overlay);
69
+ document.body.appendChild(overlay);
70
70
  const layer = shadow.querySelector<HTMLDivElement>('.areas')!;
71
71
  const colors = ['#efc9dc', '#d5c9ef', '#c2d9eb', '#bfe0cd', '#eee3b7', '#efcfb8'];
72
72
  let frame = 0;
@@ -115,7 +115,7 @@ export function createLayoutInspector() {
115
115
  panel.style.top = `${rect.top}px`;
116
116
  panel.style.width = `${rect.width}px`;
117
117
  panel.style.height = `${rect.height}px`;
118
- panel.style.setProperty('--pastel', colors[index % colors.length]);
118
+ panel.style.setProperty('--pastel', colors[index % colors.length] ?? null);
119
119
  const label = document.createElement('span');
120
120
  label.className = 'name';
121
121
  const areaName = element.dataset.dsArea || element.getAttribute('aria-label') ||
@@ -124,7 +124,7 @@ export function createLayoutInspector() {
124
124
  const dimensions = document.createElement('span');
125
125
  dimensions.className = 'dimensions';
126
126
  dimensions.textContent = `${Number(rect.width.toFixed(1))} × ${Number(rect.height.toFixed(1))} px`;
127
- label.append(dimensions);
127
+ label.appendChild(dimensions);
128
128
  const ratio = document.createElement('span');
129
129
  ratio.className = 'dimensions';
130
130
  // Reduce dimensions measured to a tenth of a CSS pixel; use a decimal
@@ -141,9 +141,9 @@ export function createLayoutInspector() {
141
141
  ratio.textContent = horizontal <= 100 && vertical <= 100
142
142
  ? `${horizontal}:${vertical}`
143
143
  : `≈ ${Number((rect.width / rect.height).toFixed(2))}:1`;
144
- label.append(ratio);
145
- panel.append(label);
146
- fragments.append(panel);
144
+ label.appendChild(ratio);
145
+ panel.appendChild(label);
146
+ fragments.appendChild(panel);
147
147
  });
148
148
  layer.replaceChildren(fragments);
149
149
  };
@@ -0,0 +1,33 @@
1
+ /** A published library owns appearance; its last published snapshot covers offline starts. */
2
+ export function connectLibraryStyles(options: {
3
+ url: string;
4
+ fallback: string;
5
+ document?: Document;
6
+ }): () => void {
7
+ const doc = options.document ?? document;
8
+ const fallback = doc.createElement("style");
9
+ fallback.dataset.designLibrary = "fallback";
10
+ fallback.textContent = options.fallback;
11
+ const published = doc.createElement("link");
12
+ published.rel = "stylesheet";
13
+ published.href = options.url;
14
+ published.dataset.designLibrary = "published";
15
+ const loaded = () => {
16
+ // Replace, rather than layer: deleting a library rule must really delete it.
17
+ fallback.disabled = true;
18
+ published.dataset.state = "published";
19
+ };
20
+ const failed = () => {
21
+ fallback.disabled = false;
22
+ published.dataset.state = "fallback";
23
+ };
24
+ published.addEventListener("load", loaded);
25
+ published.addEventListener("error", failed);
26
+ doc.head.append(fallback, published);
27
+ return () => {
28
+ published.removeEventListener("load", loaded);
29
+ published.removeEventListener("error", failed);
30
+ published.remove();
31
+ fallback.remove();
32
+ };
33
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The page toaster as copyText loads it, when it shows a toast and nothing in
3
+ * the page draws toasts yet. Its own module, so a bundler splits the toaster
4
+ * off for a page that imports copyText alone (`./copy-text.ts`), and keeps it
5
+ * where the page imports it anyway (`./feedback.ts`) without a warning.
6
+ */
7
+ export { pageToaster } from "./toaster";
@@ -0,0 +1,29 @@
1
+ /**
2
+ * The options a page sets on `window.DS_ONE_PREFERENCES` before the theme
3
+ * and preference modules load: product storage names and the theme's
4
+ * defaults. Product storage names are configuration; the implementation stays
5
+ * shared. It imports nothing, so the theme module travels with it alone.
6
+ */
7
+ export interface PreferenceOptions {
8
+ storageKey?: string;
9
+ themeStorageKey?: string;
10
+ /** Follow system appearance without reading or writing a saved theme. */
11
+ themeMode?: "system";
12
+ /**
13
+ * The theme a visitor who has chosen nothing sees: `"system"` (the
14
+ * default) follows the system, `"light"` or `"dark"` keeps that theme until
15
+ * they choose. A stored choice always wins; `themeMode: "system"` wins over
16
+ * both.
17
+ */
18
+ themeDefault?: "light" | "dark" | "system";
19
+ /**
20
+ * The canvas behind the page and the browser's theme-color, per theme, set
21
+ * by the theme runtime before the first paint: Design system 1's paper
22
+ * (`--background`) by default. `false` leaves both to the page.
23
+ */
24
+ themePaper?: { light: string; dark: string } | false;
25
+ }
26
+
27
+ declare global {
28
+ interface Window { DS_ONE_PREFERENCES?: PreferenceOptions; }
29
+ }
@@ -1,21 +1,13 @@
1
1
  import type { LanguageCode } from "./i18n";
2
- import type { ThemeType } from "./theme";
2
+ import type { ThemeMode } from "./theme";
3
3
 
4
4
  export type Preferences = {
5
5
  language?: LanguageCode;
6
- theme?: ThemeType;
6
+ theme?: ThemeMode;
7
7
  [key: string]: unknown;
8
8
  };
9
9
 
10
- /** Product storage names are configuration; the implementation stays shared. */
11
- export interface PreferenceOptions {
12
- storageKey?: string;
13
- themeStorageKey?: string;
14
- }
15
-
16
- declare global {
17
- interface Window { DS_ONE_PREFERENCES?: PreferenceOptions; }
18
- }
10
+ export type { PreferenceOptions } from "./preference-options";
19
11
 
20
12
  export function preferenceStorageKey(kind: "preferences" | "theme"): string {
21
13
  const options = typeof window === "undefined" ? undefined : window.DS_ONE_PREFERENCES;
@@ -1,57 +1,112 @@
1
1
  /**
2
- * Currency label utilities for regional price display
3
- *
4
- * Note: This module provides currency symbols/labels based on language and region.
5
- * Consider moving this functionality into i18n.ts as it's region/locale-related.
6
- * Actual price values will be stored in a database or managed via Stripe.
2
+ * The currency a reader is most likely to think in, from their language or
3
+ * country, and prices written in it. The amounts themselves come from the
4
+ * product's billing (a payment service or its database); this only says how
5
+ * they read. Writing them is `formatMoney` in `./format`.
7
6
  */
8
-
7
+ import { currencySymbol, formatMoney } from "./format";
8
+ import type { MoneyOptions } from "./format";
9
+ import { currentLanguage } from "./i18n";
9
10
  import type { LanguageCode } from "./i18n";
10
11
 
11
12
  type PriceLabelOptions = {
12
- language: LanguageCode;
13
+ /** The reader's language. Defaults to the current language. */
14
+ language?: LanguageCode;
15
+ /** The reader's country, when known (`US`, `GB`, `JP`); it wins over the language. */
13
16
  country?: string;
14
17
  };
15
18
 
16
- // Simple price label mapping based on language/country
19
+ /** The currency each language's readers most often pay in. */
20
+ const LANGUAGE_CURRENCIES: Record<string, string> = {
21
+ da: "DKK",
22
+ de: "EUR",
23
+ en: "USD",
24
+ es: "EUR",
25
+ fi: "EUR",
26
+ fr: "EUR",
27
+ is: "ISK",
28
+ it: "EUR",
29
+ ja: "JPY",
30
+ ko: "KRW",
31
+ nb: "NOK",
32
+ nn: "NOK",
33
+ no: "NOK",
34
+ pt: "EUR",
35
+ "pt-br": "BRL",
36
+ sv: "SEK",
37
+ zh: "CNY",
38
+ };
39
+
40
+ const COUNTRY_CURRENCIES: Record<string, string> = {
41
+ US: "USD",
42
+ USA: "USD",
43
+ GB: "GBP",
44
+ UK: "GBP",
45
+ JP: "JPY",
46
+ JPN: "JPY",
47
+ CN: "CNY",
48
+ CHN: "CNY",
49
+ KR: "KRW",
50
+ KOR: "KRW",
51
+ };
52
+
53
+ /**
54
+ * The short labels `getPriceLabel` has always given. Other currencies read
55
+ * the symbol the language writes them with.
56
+ */
17
57
  const PRICE_LABELS: Record<string, string> = {
18
- da: "kr.",
19
- nb: "kr.",
20
- sv: "kr.",
21
- de: "€",
22
- en: "$",
23
- pt: "€",
24
- es: "€",
25
- zh: "¥",
26
- ja: "¥",
27
- ko: "₩",
58
+ DKK: "kr.",
59
+ NOK: "kr.",
60
+ SEK: "kr.",
61
+ ISK: "kr.",
62
+ EUR: "€",
63
+ USD: "$",
64
+ GBP: "£",
65
+ JPY: "¥",
66
+ CNY: "¥",
67
+ KRW: "₩",
68
+ BRL: "R$",
28
69
  };
29
70
 
30
- export function getPriceLabel(options: PriceLabelOptions): string {
31
- const { language, country } = options;
32
-
33
- // If country is provided, try to map it to a currency
34
- if (country) {
35
- const countryUpper = country.toUpperCase();
36
- // Add country-specific mappings if needed
37
- if (countryUpper === "US" || countryUpper === "USA") {
38
- return "$";
39
- }
40
- if (countryUpper === "GB" || countryUpper === "UK") {
41
- return "£";
42
- }
43
- if (countryUpper === "JP" || countryUpper === "JPN") {
44
- return "¥";
45
- }
46
- if (countryUpper === "CN" || countryUpper === "CHN") {
47
- return "¥";
48
- }
49
- if (countryUpper === "KR" || countryUpper === "KOR") {
50
- return "₩";
51
- }
71
+ /**
72
+ * The currency (ISO 4217 code) for a reader: their country's when it is
73
+ * known, else their language's, else USD. `pt-BR` reads BRL.
74
+ */
75
+ export function getPriceCurrency(options: PriceLabelOptions = {}): string {
76
+ const country = options.country?.toUpperCase();
77
+ if (country && COUNTRY_CURRENCIES[country]) {
78
+ return COUNTRY_CURRENCIES[country];
52
79
  }
53
80
 
54
- // Fall back to language-based mapping
55
- const primaryLang = language.toLowerCase().split(/[-_]/)[0];
56
- return PRICE_LABELS[primaryLang] || "$";
81
+ const language = String(options.language || currentLanguage.value || "en")
82
+ .toLowerCase()
83
+ .replace(/_/g, "-");
84
+ const primary = language.split("-")[0] ?? "";
85
+ return LANGUAGE_CURRENCIES[language] ?? LANGUAGE_CURRENCIES[primary] ?? "USD";
86
+ }
87
+
88
+ /** The currency label for a reader: `kr.`, `€`, `$`, `£`, `¥`, `₩`. */
89
+ export function getPriceLabel(options: PriceLabelOptions = {}): string {
90
+ const currency = getPriceCurrency(options);
91
+ return (
92
+ PRICE_LABELS[currency] ??
93
+ currencySymbol(currency, { language: options.language })
94
+ );
95
+ }
96
+
97
+ /**
98
+ * A price for a reader: in `currency`, or the reader's currency
99
+ * (`getPriceCurrency`) when none is given, written in their language.
100
+ * `minor` reads the amount in cents, as payment services send it.
101
+ */
102
+ export function formatPrice(
103
+ amount: number,
104
+ options: PriceLabelOptions & MoneyOptions & { currency?: string } = {}
105
+ ): string {
106
+ const { country, currency, ...money } = options;
107
+ return formatMoney(
108
+ amount,
109
+ currency ?? getPriceCurrency({ language: options.language, country }),
110
+ money
111
+ );
57
112
  }
@@ -1,15 +1,64 @@
1
- /* Design system 1 responsive scale calculation, shared with native HTML sites */
1
+ /**
2
+ * Design system 1's scale, `--sf`: every measure is multiplied by it.
3
+ *
4
+ * A computer stays at 1, however narrow its window. A phone or a tablet (a
5
+ * mobile browser, or a touch screen whose shorter side is at most 820px) is
6
+ * drawn as if the screen were 280 units wide: the scale is the page's width
7
+ * over 280, never under 0.75 or over 2, so a 375px phone draws everything a
8
+ * third larger.
9
+ *
10
+ * `startScaling()` puts the scale on the page and keeps it there through
11
+ * resizes and turns; `applyScaling()` does it once. Both set `--sf` and, on a
12
+ * phone or tablet, `data-mobile` on the root element. The module imports
13
+ * nothing, so a page without the components copies it alone (Sync 1's `root`
14
+ * export with `"modules": ["scaling"]`). Call it before the page renders, and
15
+ * the first paint is already to scale.
16
+ *
17
+ * A surface, such as a phone drawn on a page, scales to its own width
18
+ * instead: `startScaling({ surface: element })`, or `surface: true` for every
19
+ * `[data-ds-surface]` element. The same rule and snapping apply, on any
20
+ * device, and `--sf` and `--ds-sf` go on the surface alone.
21
+ */
2
22
  export type ScalingMode = "auto" | "fixed" | "fluid";
3
23
 
24
+ /**
25
+ * How the scale is rounded. `"layout"`: a square (20 units) is a whole number
26
+ * of the 1/64px steps browsers lay pages out in, so a long run of rows stays on
27
+ * ruled lines drawn exactly. `"pixel"`: a square is a whole number of device
28
+ * pixels, rounded down, so every grid line and hairline stays sharp.
29
+ * Without it the scale keeps three decimals.
30
+ */
31
+ export type ScalingSnap = "layout" | "pixel" | false;
32
+
4
33
  export interface ScalingConfig {
5
34
  mode: ScalingMode;
6
35
  baseWidth: number;
7
36
  minScale: number;
8
37
  maxScale: number;
38
+ snap?: ScalingSnap;
39
+ }
40
+
41
+ export interface ScalingOptions extends Partial<ScalingConfig> {
42
+ /**
43
+ * The element that receives `--sf` and `data-mobile`; the document's root by
44
+ * default. With an element `surface`, the element that receives that
45
+ * surface's `--sf` (the surface itself by default).
46
+ */
47
+ root?: HTMLElement;
48
+ /**
49
+ * Scale to a surface's own width rather than the page's: an element (a
50
+ * phone drawn on a page), or `true` for every element marked
51
+ * `data-ds-surface` in the document when the call is made. A surface is
52
+ * measured by its `clientWidth` and scaled on any device, a computer too,
53
+ * with the same rule and snapping; `--sf` and `--ds-sf` (for the shared
54
+ * components inside) go on the surface, the page and `data-mobile` are left
55
+ * alone. Its width must not depend on its own scale.
56
+ */
57
+ surface?: HTMLElement | boolean;
9
58
  }
10
59
 
11
60
  // ============================================================================
12
- // Configuration & Signals
61
+ // Configuration
13
62
  // ============================================================================
14
63
 
15
64
  export const defaultScalingConfig: ScalingConfig = {
@@ -19,7 +68,114 @@ export const defaultScalingConfig: ScalingConfig = {
19
68
  maxScale: 2.0,
20
69
  };
21
70
 
22
- export function calculateScalingFactor(viewportWidth: number, config: ScalingConfig = defaultScalingConfig): number {
71
+ /** One square in units. */
72
+ const SQUARE = 20;
73
+ /** Browsers lay pages out in 1/64px steps. */
74
+ const LAYOUT_STEPS = 64;
75
+
76
+ /** The factor, rounded so that a square is a whole number of 1/64px layout steps. */
77
+ export function toLayoutStep(factor: number): number {
78
+ return Math.round(factor * SQUARE * LAYOUT_STEPS) / (SQUARE * LAYOUT_STEPS);
79
+ }
80
+
81
+ /** The factor, rounded down so that a square is a whole number of device pixels. */
82
+ export function toDevicePixel(factor: number, pixelRatio = 1): number {
83
+ const ratio = pixelRatio > 0 ? pixelRatio : 1;
84
+ return Math.floor(factor * SQUARE * ratio) / (SQUARE * ratio);
85
+ }
86
+
87
+ export function calculateScalingFactor(viewportWidth: number, config: ScalingConfig = defaultScalingConfig, pixelRatio = 1): number {
23
88
  if (config.mode === "fixed") return 1;
24
- return Number(Math.max(config.minScale, Math.min(config.maxScale, viewportWidth / config.baseWidth)).toFixed(3));
89
+ const factor = Math.max(config.minScale, Math.min(config.maxScale, viewportWidth / config.baseWidth));
90
+ if (config.snap === "layout") return toLayoutStep(factor);
91
+ if (config.snap === "pixel") return toDevicePixel(factor, pixelRatio);
92
+ return Number(factor.toFixed(3));
93
+ }
94
+
95
+ // ============================================================================
96
+ // Device
97
+ // ============================================================================
98
+
99
+ /**
100
+ * Whether the page is on a phone or a tablet, the screens that scale: the
101
+ * browser says it is mobile, or the screen takes touch and its shorter side
102
+ * is at most 820px. A computer is never one, however narrow its window.
103
+ */
104
+ export function detectMobileDevice(): boolean {
105
+ if (typeof navigator === "undefined" || typeof window === "undefined") return false;
106
+ const agent = navigator.userAgent || navigator.vendor || "";
107
+ const byAgent = /Mobile|Android|iP(ad|hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)|Windows Phone|Phone|Tablet/i.test(agent);
108
+ const touch = (navigator.maxTouchPoints || 0) > 1;
109
+ const narrow = Math.min(window.innerWidth || 0, window.innerHeight || 0) <= 820;
110
+ return byAgent || (touch && narrow);
111
+ }
112
+
113
+ // ============================================================================
114
+ // Applying the scale
115
+ // ============================================================================
116
+
117
+ /** The surfaces a call scales: the element given, or every `[data-ds-surface]` for `true`. */
118
+ function surfacesOf(surface: ScalingOptions["surface"]): HTMLElement[] {
119
+ if (!surface) return [];
120
+ if (surface === true) return Array.from(document.querySelectorAll<HTMLElement>("[data-ds-surface]"));
121
+ return [surface];
122
+ }
123
+
124
+ /** Scales one surface to its own width, whatever the device. */
125
+ function applySurface(surface: HTMLElement, target: HTMLElement, config: Partial<ScalingConfig>): number {
126
+ const factor = calculateScalingFactor(surface.clientWidth || 0, { ...defaultScalingConfig, ...config }, window.devicePixelRatio || 1);
127
+ // Shared components inside read --ds-sf, resolved at their own host, so they draw at the surface's scale too.
128
+ target.style.setProperty("--sf", String(factor));
129
+ target.style.setProperty("--ds-sf", String(factor));
130
+ return factor;
131
+ }
132
+
133
+ /**
134
+ * Puts the scale on the page once: `--sf`, and `data-mobile` on a phone or
135
+ * tablet. With `surface`, puts each surface's own scale on it instead. Returns
136
+ * the factor (the first surface's, or 1 when there is none).
137
+ */
138
+ export function applyScaling(options: ScalingOptions = {}): number {
139
+ if (typeof document === "undefined" || typeof window === "undefined") return 1;
140
+ const { root, surface, ...config } = options;
141
+ if (surface) {
142
+ const factors = surfacesOf(surface).map(element => applySurface(element, (surface !== true && root) || element, config));
143
+ return factors[0] ?? 1;
144
+ }
145
+ return applyPage(root ?? document.documentElement, config);
146
+ }
147
+
148
+ function applyPage(root: HTMLElement, config: Partial<ScalingConfig>): number {
149
+ const mobile = detectMobileDevice();
150
+ // The page's width without its scroll bar.
151
+ const width = document.documentElement.clientWidth || window.innerWidth || 0;
152
+ const factor = mobile ? calculateScalingFactor(width, { ...defaultScalingConfig, ...config }, window.devicePixelRatio || 1) : 1;
153
+ root.style.setProperty("--sf", String(factor));
154
+ root.toggleAttribute("data-mobile", mobile);
155
+ return factor;
156
+ }
157
+
158
+ /**
159
+ * Puts the scale on the page now and again on every resize and turn; a
160
+ * surface is followed as its own size changes. Returns a function that stops
161
+ * following.
162
+ */
163
+ export function startScaling(options: ScalingOptions = {}): () => void {
164
+ if (typeof window === "undefined" || typeof document === "undefined") return () => {};
165
+ const { root, surface, ...config } = options;
166
+ // Surfaces are found once, so the same ones are followed until stopped.
167
+ const surfaces = surfacesOf(surface);
168
+ const apply = surface
169
+ ? () => { for (const element of surfaces) applySurface(element, (surface !== true && root) || element, config); }
170
+ : () => { applyPage(root ?? document.documentElement, config); };
171
+ apply();
172
+ const observer = surfaces.length && typeof ResizeObserver === "function" ? new ResizeObserver(apply) : null;
173
+ for (const element of surfaces) observer?.observe(element);
174
+ window.addEventListener("resize", apply);
175
+ window.addEventListener("orientationchange", apply);
176
+ return () => {
177
+ observer?.disconnect();
178
+ window.removeEventListener("resize", apply);
179
+ window.removeEventListener("orientationchange", apply);
180
+ };
25
181
  }
@@ -1,8 +1,13 @@
1
1
  /**
2
- * The interface words every product shares: common buttons, sign-in, empty
3
- * states, dates, the settings ds-cycle shows, ds-banner's words and the
4
- * names of the languages. Keyed by the English sentence, in the translations
5
- * file format, one file per language in `./translations/`.
2
+ * The interface words every product shares: common buttons and actions (Try
3
+ * again, Undo, Redo, Copy, Copy link, Remove, Rename, Duplicate, Download,
4
+ * Refresh, Open, Send, Clear), Saved, Saving…, Untitled, Account, sign-in,
5
+ * empty states, dates, the settings ds-cycle shows, ds-notice's words, the
6
+ * carousel's and slide's (Carousel, Slide, Previous slide, Next slide, Pause, Play…), the feedback module's (OK, Copied, Could not copy, Notifications), a meter's
7
+ * words ("7 of 10") and a step's (Done, Failed), the site chrome's (Menu,
8
+ * Contents), the key names keys.ts writes as words (`key.ctrl`, `key.shift` …)
9
+ * and the names of the languages. Keyed by the English sentence,
10
+ * in the translations file format, one file per language in `./translations/`.
6
11
  *
7
12
  * A product turns them on with `configureI18n({ sharedWords: true })`; they
8
13
  * sit beneath the product's own words, so the product's text wins. `nn` and