@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
@@ -2,10 +2,11 @@
2
2
  // Input component for text and other input types
3
3
  import { LitElement, html, unsafeCSS } from "lit";
4
4
  import { live } from "lit/directives/live.js";
5
+ import { styleMap } from "lit/directives/style-map.js";
5
6
  import { ifDefined } from "lit/directives/if-defined.js";
6
7
  import { define } from "../0-face/define";
7
- import seeIcon from "../x-icon/ezo-password-visibility-see.svg?url";
8
- import unseeIcon from "../x-icon/ezo-password-visibility-unsee.svg?url";
8
+ import seeIcon from "../x-icon/password-see.svg?url";
9
+ import unseeIcon from "../x-icon/password-unsee.svg?url";
9
10
  import { getText, currentLanguage } from "../0-face/i18n";
10
11
  import "./ds-text";
11
12
  import styles from "./styles/ds-input.css?inline";
@@ -17,8 +18,19 @@ export class Input extends LitElement {
17
18
  this.focus();
18
19
  };
19
20
  this.internals = typeof this.attachInternals === "function" ? this.attachInternals() : null;
21
+ this.resizeFrame = 0;
22
+ this.measuredWidth = 0;
23
+ this.fontsChanged = () => this.resizeToContent();
20
24
  this.type = "text";
25
+ this.multiline = false;
26
+ this.rows = 3;
27
+ this.maxRows = 10;
28
+ this.autoGrow = false;
29
+ this.wrap = "soft";
21
30
  this.inputMode = "";
31
+ this.enterKeyHint = "";
32
+ this.list = "";
33
+ this.suggestions = [];
22
34
  this.ariaLabel = "";
23
35
  this.ariaLabelledBy = "";
24
36
  this.ariaDescribedBy = "";
@@ -69,16 +81,44 @@ export class Input extends LitElement {
69
81
  window.addEventListener("language-changed", this.boundHandlers.languageChanged);
70
82
  // Also listen for translations loaded event
71
83
  window.addEventListener("translations-loaded", this.boundHandlers.languageChanged);
84
+ if (typeof ResizeObserver !== "undefined") {
85
+ this.resizeObserver = new ResizeObserver((entries) => {
86
+ if (this.clientWidth !== this.measuredWidth || entries.some(entry => entry.target !== this)) {
87
+ this.measuredWidth = this.clientWidth;
88
+ this.resizeToContent();
89
+ }
90
+ });
91
+ this.resizeObserver.observe(this);
92
+ const metric = this.shadowRoot?.querySelector(".row-metric");
93
+ if (metric)
94
+ this.resizeObserver.observe(metric);
95
+ }
96
+ document.fonts?.addEventListener("loadingdone", this.fontsChanged);
72
97
  }
73
98
  disconnectedCallback() {
74
99
  super.disconnectedCallback();
75
100
  this.removeEventListener("click", this.focusFromLabel);
76
101
  window.removeEventListener("language-changed", this.boundHandlers.languageChanged);
77
102
  window.removeEventListener("translations-loaded", this.boundHandlers.languageChanged);
103
+ this.listObserver?.disconnect();
104
+ this.listObserver = undefined;
105
+ this.resizeObserver?.disconnect();
106
+ document.fonts?.removeEventListener("loadingdone", this.fontsChanged);
107
+ cancelAnimationFrame(this.resizeFrame);
78
108
  }
79
109
  firstUpdated() {
80
110
  if (this.autofocus)
81
111
  this.focus();
112
+ // A fixed-width field can change scale without changing its width. Measure
113
+ // one shared row separately from the content height that we set ourselves.
114
+ const metric = this.shadowRoot?.querySelector(".row-metric");
115
+ if (metric)
116
+ this.resizeObserver?.observe(metric);
117
+ }
118
+ willUpdate(changed) {
119
+ // A multiline field stands on its own by default, in the field treatment.
120
+ if (changed.has("multiline") && this.multiline && this.variant === "default" && !this.hasAttribute("variant"))
121
+ this.variant = "field";
82
122
  }
83
123
  updated(changedProperties) {
84
124
  super.updated(changedProperties);
@@ -89,13 +129,45 @@ export class Input extends LitElement {
89
129
  this.initialValue = this.value;
90
130
  if (changedProperties.has("type") && this.type !== "password")
91
131
  this._passwordVisible = false;
132
+ if (this.multiline)
133
+ this.resizeToContent();
134
+ if (changedProperties.has("list"))
135
+ this.observeList();
92
136
  this.syncForm();
93
137
  }
138
+ listSource() {
139
+ if (!this.list)
140
+ return null;
141
+ const root = this.getRootNode();
142
+ const source = root.getElementById?.(this.list);
143
+ return source instanceof HTMLDataListElement ? source : null;
144
+ }
145
+ observeList() {
146
+ this.listObserver?.disconnect();
147
+ this.listObserver = undefined;
148
+ const source = this.listSource();
149
+ if (!source || typeof MutationObserver === "undefined")
150
+ return;
151
+ this.listObserver = new MutationObserver(() => this.requestUpdate());
152
+ this.listObserver.observe(source, { childList: true, subtree: true, attributes: true, characterData: true });
153
+ }
154
+ /** The options the field offers, from `suggestions` or the named datalist. */
155
+ suggestionOptions() {
156
+ if (this.suggestions?.length)
157
+ return this.suggestions.map((option) => (typeof option === "string" ? { value: option } : option));
158
+ const source = this.listSource();
159
+ return source ? [...source.options].map((option) => ({ value: option.value, label: option.label !== option.value ? option.label : undefined })) : [];
160
+ }
161
+ renderSuggestions(options) {
162
+ return options.length
163
+ ? html `<datalist id="suggestions">${options.map((option) => html `<option value=${option.value} label=${ifDefined(option.label)}></option>`)}</datalist>`
164
+ : null;
165
+ }
94
166
  get input() {
95
167
  return this.shadowRoot?.querySelector("input, textarea") ?? null;
96
168
  }
97
169
  get isMultiline() {
98
- return false;
170
+ return this.multiline;
99
171
  }
100
172
  get selectionStart() {
101
173
  return this.input?.selectionStart ?? null;
@@ -298,7 +370,68 @@ export class Input extends LitElement {
298
370
  select() {
299
371
  this.input?.select();
300
372
  }
373
+ /** Grow on the row grid, bounded by maxRows; the remainder scrolls. */
374
+ resizeToContent() {
375
+ cancelAnimationFrame(this.resizeFrame);
376
+ const control = this.input;
377
+ if (!control || !this.multiline)
378
+ return;
379
+ if (!this.autoGrow) {
380
+ control.style.height = "";
381
+ control.style.overflowY = "";
382
+ return;
383
+ }
384
+ this.resizeFrame = requestAnimationFrame(() => {
385
+ if (!this.isConnected)
386
+ return;
387
+ const computed = getComputedStyle(control);
388
+ const row = parseFloat(computed.getPropertyValue("--ds-row-height")) ||
389
+ 20 * (parseFloat(computed.getPropertyValue("--ds-sf")) || 1);
390
+ const minimum = Math.max(1, Math.floor(this.rows || 1)) * row;
391
+ const maximum = Math.max(minimum, Math.floor(this.maxRows || this.rows || 1) * row);
392
+ control.style.height = "0px";
393
+ const border = parseFloat(computed.borderTopWidth) + parseFloat(computed.borderBottomWidth);
394
+ const needed = Math.ceil((control.scrollHeight + border) / row) * row;
395
+ control.style.height = `${Math.max(minimum, Math.min(maximum, needed))}px`;
396
+ control.style.overflowY = needed > maximum ? "auto" : "hidden";
397
+ });
398
+ }
399
+ /** The multiline field: a native textarea across whole rows. */
400
+ renderMultiline(hasError, description) {
401
+ const rows = Math.max(1, Math.floor(this.rows || 1));
402
+ return html `<span class="row-metric" aria-hidden="true"></span><textarea
403
+ id="input"
404
+ part="input"
405
+ aria-label=${ifDefined(this.accessibleLabel())}
406
+ aria-invalid=${ifDefined(this.ariaInvalid || (hasError ? "true" : undefined))}
407
+ aria-describedby=${ifDefined([description ? "description" : "", hasError ? "error" : ""].filter(Boolean).join(" ") || undefined)}
408
+ inputmode=${ifDefined(this.inputMode || undefined)}
409
+ enterkeyhint=${ifDefined(this.enterKeyHint || undefined)}
410
+ spellcheck=${ifDefined(this.spellcheckHint || undefined)}
411
+ .name=${this.name}
412
+ .value=${live(this.value)}
413
+ .placeholder=${this._placeholder || this.placeholder}
414
+ ?disabled=${this.disabled || this._formDisabled}
415
+ ?readonly=${this.readonly}
416
+ ?required=${this.required}
417
+ ?autofocus=${this.autofocus}
418
+ autocomplete=${this.autocomplete}
419
+ minlength=${ifDefined(this.minlength || undefined)}
420
+ maxlength=${ifDefined(this.maxlength >= 0 ? this.maxlength : undefined)}
421
+ rows=${rows}
422
+ wrap=${this.wrap || "soft"}
423
+ style=${styleMap({ "--ds-textarea-rows": String(rows) })}
424
+ class=${hasError ? "has-error" : ""}
425
+ @input=${this._handleInput}
426
+ @change=${this.handleChange}
427
+ @focus=${this._handleFocus}
428
+ @blur=${this._handleBlur}
429
+ ></textarea>`;
430
+ }
301
431
  renderControl(hasError, description) {
432
+ if (this.multiline)
433
+ return this.renderMultiline(hasError, description);
434
+ const suggestions = this.suggestionOptions();
302
435
  return html `<input
303
436
  id="input"
304
437
  part="input"
@@ -307,6 +440,8 @@ export class Input extends LitElement {
307
440
  aria-invalid=${ifDefined(this.ariaInvalid || (hasError ? "true" : undefined))}
308
441
  aria-describedby=${ifDefined([description ? "description" : "", hasError ? "error" : ""].filter(Boolean).join(" ") || undefined)}
309
442
  inputmode=${ifDefined(this.inputMode || undefined)}
443
+ enterkeyhint=${ifDefined(this.enterKeyHint || undefined)}
444
+ list=${ifDefined(suggestions.length ? "suggestions" : undefined)}
310
445
  spellcheck=${ifDefined(this.spellcheckHint || undefined)}
311
446
  .name=${this.name}
312
447
  .value=${live(this.value)}
@@ -328,7 +463,7 @@ export class Input extends LitElement {
328
463
  @keydown=${this.handleKeyDown}
329
464
  @focus=${this._handleFocus}
330
465
  @blur=${this._handleBlur}
331
- />`;
466
+ />${this.renderSuggestions(suggestions)}`;
332
467
  }
333
468
  render() {
334
469
  const hasError = Boolean(this.error || this.errorText);
@@ -340,7 +475,7 @@ export class Input extends LitElement {
340
475
  .filter(Boolean)
341
476
  .join(" ");
342
477
  return html `
343
- <div class="input-wrapper">
478
+ <div class=${hasError ? "input-wrapper has-error" : "input-wrapper"}>
344
479
  ${this.label || this.labelText
345
480
  ? html `
346
481
  <label for="input">
@@ -380,7 +515,7 @@ export class Input extends LitElement {
380
515
  ${hasError
381
516
  ? html `
382
517
  <div id="error" class="error-message" role="status">
383
- ${this.errorText ? html `<ds-text .text=${this.errorText}></ds-text>` : this.error}
518
+ ${this.errorText ? html `<ds-text wrap .text=${this.errorText}></ds-text>` : this.error}
384
519
  </div>
385
520
  `
386
521
  : null}
@@ -391,7 +526,16 @@ export class Input extends LitElement {
391
526
  Input.formAssociated = true;
392
527
  Input.properties = {
393
528
  type: { type: String, reflect: true },
529
+ // A text area: the same field across whole rows.
530
+ multiline: { type: Boolean, reflect: true },
531
+ rows: { type: Number },
532
+ maxRows: { type: Number, attribute: "max-rows" },
533
+ autoGrow: { type: Boolean, attribute: "auto-grow", reflect: true },
534
+ wrap: { type: String },
394
535
  inputMode: { type: String, attribute: "inputmode" },
536
+ enterKeyHint: { type: String, attribute: "enterkeyhint" },
537
+ list: { type: String },
538
+ suggestions: { attribute: false },
395
539
  ariaLabel: { type: String, attribute: "aria-label" },
396
540
  ariaLabelledBy: { type: String, attribute: "aria-labelledby" },
397
541
  ariaDescribedBy: { type: String, attribute: "aria-describedby" },
@@ -0,0 +1,48 @@
1
+ import { LitElement } from "lit";
2
+ import { type KeyPlatform } from "../0-face/keys";
3
+ /**
4
+ * @element ds-kbd
5
+ * @prop {string} shortcut - The shortcut, written once for every platform:
6
+ * `mod+shift+d`, `mod+enter`, `escape`, `?`. Unset, the slotted words show
7
+ * as written.
8
+ * @prop {boolean} plain - The words alone in the title grey, with no fill, as
9
+ * a menu entry writes its shortcut.
10
+ * @prop {"apple" | "other"} platform - Write it for this platform rather than
11
+ * the device's own (a help page showing both).
12
+ *
13
+ * @slot - Words of the page's own, when there is no `shortcut`.
14
+ *
15
+ * @example
16
+ * <ds-kbd shortcut="mod+k"></ds-kbd>
17
+ */
18
+ export declare class Kbd extends LitElement {
19
+ static properties: {
20
+ shortcut: {
21
+ type: StringConstructor;
22
+ };
23
+ plain: {
24
+ type: BooleanConstructor;
25
+ reflect: boolean;
26
+ };
27
+ platform: {
28
+ type: StringConstructor;
29
+ };
30
+ };
31
+ static styles: import("lit").CSSResult[];
32
+ shortcut: string | undefined;
33
+ plain: boolean;
34
+ platform: KeyPlatform | undefined;
35
+ private readonly relabel;
36
+ constructor();
37
+ connectedCallback(): void;
38
+ disconnectedCallback(): void;
39
+ /** The words the hint shows: the shortcut's label, or empty when it shows its slot. */
40
+ get label(): string;
41
+ render(): import("lit").TemplateResult<1>;
42
+ }
43
+ declare global {
44
+ interface HTMLElementTagNameMap {
45
+ "ds-kbd": Kbd;
46
+ }
47
+ }
48
+ //# sourceMappingURL=ds-kbd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-kbd.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-kbd.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAElD,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKjE;;;;;;;;;;;;;;GAcG;AACH,qBAAa,GAAI,SAAQ,UAAU;IACjC,MAAM,CAAC,UAAU;;;;;;;;;;;MAIf;IAEF,MAAM,CAAC,MAAM,4BAA2D;IAEhE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,WAAW,GAAG,SAAS,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;;IAOtD,iBAAiB;IAOjB,oBAAoB;IAMpB,uFAAuF;IACvF,IAAI,KAAK,IAAI,MAAM,CAOlB;IAED,MAAM;CAIP;AAGD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,QAAQ,EAAE,GAAG,CAAA;KAAE;CAAE"}
@@ -0,0 +1,65 @@
1
+ // ds-kbd.ts
2
+ // A keyboard shortcut's hint: the shortcut written as the platform writes it
3
+ // (⇧⌘D on Apple platforms, Ctrl+Shift+D elsewhere), drawn by 1-root/kbd.css,
4
+ // the same class a page without scripts puts on a native <kbd>.
5
+ import { LitElement, html, unsafeCSS } from "lit";
6
+ import { define } from "../0-face/define";
7
+ import { shortcutLabel } from "../0-face/keys";
8
+ import metrics from "../1-root/component-metrics.css?inline";
9
+ import kbd from "../1-root/kbd.css?inline";
10
+ import styles from "./styles/ds-kbd.css?inline";
11
+ /**
12
+ * @element ds-kbd
13
+ * @prop {string} shortcut - The shortcut, written once for every platform:
14
+ * `mod+shift+d`, `mod+enter`, `escape`, `?`. Unset, the slotted words show
15
+ * as written.
16
+ * @prop {boolean} plain - The words alone in the title grey, with no fill, as
17
+ * a menu entry writes its shortcut.
18
+ * @prop {"apple" | "other"} platform - Write it for this platform rather than
19
+ * the device's own (a help page showing both).
20
+ *
21
+ * @slot - Words of the page's own, when there is no `shortcut`.
22
+ *
23
+ * @example
24
+ * <ds-kbd shortcut="mod+k"></ds-kbd>
25
+ */
26
+ export class Kbd extends LitElement {
27
+ constructor() {
28
+ super();
29
+ this.relabel = () => this.requestUpdate();
30
+ this.plain = false;
31
+ }
32
+ connectedCallback() {
33
+ super.connectedCallback();
34
+ // Ctrl, Shift and the other words follow the page's language.
35
+ window.addEventListener("language-changed", this.relabel);
36
+ window.addEventListener("translations-loaded", this.relabel);
37
+ }
38
+ disconnectedCallback() {
39
+ window.removeEventListener("language-changed", this.relabel);
40
+ window.removeEventListener("translations-loaded", this.relabel);
41
+ super.disconnectedCallback();
42
+ }
43
+ /** The words the hint shows: the shortcut's label, or empty when it shows its slot. */
44
+ get label() {
45
+ if (!this.shortcut)
46
+ return "";
47
+ try {
48
+ return shortcutLabel(this.shortcut, this.platform ? { platform: this.platform } : undefined);
49
+ }
50
+ catch {
51
+ return this.shortcut;
52
+ }
53
+ }
54
+ render() {
55
+ const label = this.label;
56
+ return html `<kbd part="kbd" class=${this.plain ? "ds-kbd ds-kbd--plain" : "ds-kbd"}>${label || html `<slot></slot>`}</kbd>`;
57
+ }
58
+ }
59
+ Kbd.properties = {
60
+ shortcut: { type: String },
61
+ plain: { type: Boolean, reflect: true },
62
+ platform: { type: String },
63
+ };
64
+ Kbd.styles = [unsafeCSS(metrics), unsafeCSS(kbd), unsafeCSS(styles)];
65
+ define("ds-kbd", Kbd);
@@ -32,6 +32,13 @@ export declare class LanguagePicker extends Cycle {
32
32
  values: {
33
33
  type: ArrayConstructor;
34
34
  };
35
+ value: {
36
+ type: StringConstructor;
37
+ };
38
+ label: {
39
+ type: StringConstructor;
40
+ reflect: boolean;
41
+ };
35
42
  currentValue: {
36
43
  type: StringConstructor;
37
44
  state: boolean;
@@ -62,7 +69,7 @@ export declare class LanguagePicker extends Cycle {
62
69
  chip: boolean;
63
70
  static styles: import("lit").CSSResult;
64
71
  constructor();
65
- setupInitialValue(): Promise<void>;
72
+ setupInitialValue(): void;
66
73
  getValueDisplay(value: string): string;
67
74
  focus(options?: FocusOptions): void;
68
75
  render(): import("lit").TemplateResult<1>;
@@ -1 +1 @@
1
- {"version":3,"file":"ds-language.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-language.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAInC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,KAAK,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA8E;IAC3F,IAAI,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,MAAM,0BAAqB;;IAS5B,iBAAiB;IAKvB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAItC,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAE5B,MAAM;CAgBP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,cAAc,CAAC;KAC/B;CACF"}
1
+ {"version":3,"file":"ds-language.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-language.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAInC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,KAAK,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA8E;IAC3F,IAAI,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,MAAM,0BAAqB;;IASlC,iBAAiB,IAAI,IAAI;IAKzB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAItC,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAE5B,MAAM;CAgBP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,cAAc,CAAC;KAC/B;CACF"}
@@ -45,9 +45,9 @@ export class LanguagePicker extends Cycle {
45
45
  this.chip = false;
46
46
  }
47
47
  // The product's languages can change after the picker is drawn
48
- async setupInitialValue() {
48
+ setupInitialValue() {
49
49
  this.values = getAvailableLanguagesSync();
50
- await super.setupInitialValue();
50
+ super.setupInitialValue();
51
51
  }
52
52
  getValueDisplay(value) {
53
53
  return nativeLanguageName(value);
@@ -0,0 +1,40 @@
1
+ import { LitElement } from "lit";
2
+ /** The shared word a busy indicator reads without a label of its own. */
3
+ export declare const LOADING_LABEL = "Loading";
4
+ /**
5
+ * The controls a spinner can stand in: buttons and fields. Inside one, the
6
+ * spinner is one control high, the size of the icon it stands in for.
7
+ * `ds-loading.css` names the same controls for the light-DOM markup.
8
+ */
9
+ export declare const LOADING_CONTROLS = "button, [role='button'], ds-button, .ds-button, ds-input, ds-select, .ds-field, .ds-input, .ds-select";
10
+ /** Whether an element stands in a control, across shadow roots. */
11
+ export declare function inLoadingControl(element: Element): boolean;
12
+ /** @internal Automatic pending-state feedback, not user-insertable content.
13
+ * Label must describe the current operation; unset, it is the shared word
14
+ * "Loading" in the page's language. The containing app controls mounting.
15
+ * A spinner in a button or field is one control high (16px), elsewhere one
16
+ * square; `--ds-loading-size` sets it outright.
17
+ * --ds-loading-width/fill/duration preserve the surrounding brand. */
18
+ export declare class LoadingIndicator extends LitElement {
19
+ static properties: {
20
+ label: {
21
+ type: StringConstructor;
22
+ };
23
+ variant: {
24
+ type: StringConstructor;
25
+ };
26
+ inControl: {
27
+ state: boolean;
28
+ };
29
+ };
30
+ static styles: import("lit").CSSResult;
31
+ label: string;
32
+ variant: string;
33
+ inControl: boolean;
34
+ constructor();
35
+ private readonly relabel;
36
+ connectedCallback(): void;
37
+ disconnectedCallback(): void;
38
+ render(): import("lit").TemplateResult<1>;
39
+ }
40
+ //# sourceMappingURL=ds-loading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-loading.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAKlD,yEAAyE;AACzE,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,0GAC4E,CAAC;AAE1G,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAO1D;AAOD;;;;;sEAKsE;AACtE,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,CAAC,UAAU;;;;;;;;;;MAIf;IACF,MAAM,CAAC,MAAM,0BAAqB;IAE1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;;IAO3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,iBAAiB;IAMjB,oBAAoB;IAKpB,MAAM;CAIP"}
@@ -0,0 +1,63 @@
1
+ import { LitElement, html, unsafeCSS } from "lit";
2
+ import { define } from "../0-face/define";
3
+ import { getText } from "../0-face/i18n";
4
+ import styles from "./styles/ds-loading.css?inline";
5
+ /** The shared word a busy indicator reads without a label of its own. */
6
+ export const LOADING_LABEL = "Loading";
7
+ /**
8
+ * The controls a spinner can stand in: buttons and fields. Inside one, the
9
+ * spinner is one control high, the size of the icon it stands in for.
10
+ * `ds-loading.css` names the same controls for the light-DOM markup.
11
+ */
12
+ export const LOADING_CONTROLS = "button, [role='button'], ds-button, .ds-button, ds-input, ds-select, .ds-field, .ds-input, .ds-select";
13
+ /** Whether an element stands in a control, across shadow roots. */
14
+ export function inLoadingControl(element) {
15
+ let node = element.parentElement ?? hostOf(element);
16
+ while (node) {
17
+ if (node.closest(LOADING_CONTROLS))
18
+ return true;
19
+ node = hostOf(node);
20
+ }
21
+ return false;
22
+ }
23
+ function hostOf(element) {
24
+ const root = element.getRootNode();
25
+ return root instanceof ShadowRoot ? root.host : null;
26
+ }
27
+ /** @internal Automatic pending-state feedback, not user-insertable content.
28
+ * Label must describe the current operation; unset, it is the shared word
29
+ * "Loading" in the page's language. The containing app controls mounting.
30
+ * A spinner in a button or field is one control high (16px), elsewhere one
31
+ * square; `--ds-loading-size` sets it outright.
32
+ * --ds-loading-width/fill/duration preserve the surrounding brand. */
33
+ export class LoadingIndicator extends LitElement {
34
+ constructor() {
35
+ super();
36
+ this.relabel = () => this.requestUpdate();
37
+ this.label = "";
38
+ this.variant = "bar";
39
+ this.inControl = false;
40
+ }
41
+ connectedCallback() {
42
+ super.connectedCallback();
43
+ this.inControl = inLoadingControl(this);
44
+ window.addEventListener("language-changed", this.relabel);
45
+ window.addEventListener("translations-loaded", this.relabel);
46
+ }
47
+ disconnectedCallback() {
48
+ window.removeEventListener("language-changed", this.relabel);
49
+ window.removeEventListener("translations-loaded", this.relabel);
50
+ super.disconnectedCallback();
51
+ }
52
+ render() {
53
+ const label = this.label || getText(LOADING_LABEL) || LOADING_LABEL;
54
+ return html `<span class="ds-loading" data-variant=${this.variant} data-context=${this.inControl ? "control" : "page"} role="status" aria-label=${label} aria-busy="true"><span class="ds-loading__fill" aria-hidden="true"></span></span>`;
55
+ }
56
+ }
57
+ LoadingIndicator.properties = {
58
+ label: { type: String },
59
+ variant: { type: String },
60
+ inControl: { state: true },
61
+ };
62
+ LoadingIndicator.styles = unsafeCSS(styles);
63
+ define("ds-loading", LoadingIndicator);
@@ -0,0 +1,103 @@
1
+ import { LitElement, type PropertyValues } from "lit";
2
+ import { type FigureFormat, type MeterAria } from "./figures";
3
+ /**
4
+ * @element ds-meter
5
+ * @prop {number} value - The value. Past `max`, the meter is over.
6
+ * @prop {number} min - The start of the range, 0 by default.
7
+ * @prop {number} max - The end of the range, 1 by default.
8
+ * @prop {number} squares - Draw the range in this many squares, one square each, instead of a bar.
9
+ * @prop {boolean} over - Show the meter as over whatever its value, where the page decides it.
10
+ * @prop {string} label - The meter's name for assistive technology: a translation key, or literal words.
11
+ * @prop {string} valuetext - What the value says (`aria-valuetext`), in place of "7 of 10".
12
+ * @prop {"number" | "compact" | "percent" | "money"} format - How the value and the range are written in the words.
13
+ * @prop {string} currency - The ISO 4217 code for money.
14
+ * @prop {boolean} minor - The money is counted in the currency's minor unit.
15
+ * @prop {boolean} whole - Money in whole units only.
16
+ * @prop {number} digits - Decimals in the words.
17
+ * @prop {boolean} literal - Show `label` and `valuetext` as written, never looked up.
18
+ *
19
+ * The element is `role="meter"` with `aria-valuenow`, `aria-valuemin`,
20
+ * `aria-valuemax` and `aria-valuetext`. `aria-valuenow` stays inside the
21
+ * range, as ARIA requires; the words say when the value is past its end
22
+ * ("12 of 10, over by 2").
23
+ *
24
+ * @example
25
+ * <ds-meter label="Spent" value="7400" max="10000" format="money" currency="DKK"></ds-meter>
26
+ * <ds-meter label="Seats" value="7" max="10" squares="10"></ds-meter>
27
+ */
28
+ export declare class Meter extends LitElement {
29
+ static properties: {
30
+ value: {
31
+ type: NumberConstructor;
32
+ };
33
+ min: {
34
+ type: NumberConstructor;
35
+ };
36
+ max: {
37
+ type: NumberConstructor;
38
+ };
39
+ squares: {
40
+ type: NumberConstructor;
41
+ };
42
+ over: {
43
+ type: BooleanConstructor;
44
+ reflect: boolean;
45
+ };
46
+ label: {
47
+ type: StringConstructor;
48
+ };
49
+ valuetext: {
50
+ type: StringConstructor;
51
+ };
52
+ format: {
53
+ type: StringConstructor;
54
+ };
55
+ currency: {
56
+ type: StringConstructor;
57
+ };
58
+ minor: {
59
+ type: BooleanConstructor;
60
+ };
61
+ whole: {
62
+ type: BooleanConstructor;
63
+ };
64
+ digits: {
65
+ type: NumberConstructor;
66
+ };
67
+ literal: {
68
+ type: BooleanConstructor;
69
+ reflect: boolean;
70
+ };
71
+ };
72
+ static styles: import("lit").CSSResult[];
73
+ value: number;
74
+ min: number;
75
+ max: number;
76
+ squares: number | undefined;
77
+ over: boolean;
78
+ label: string | undefined;
79
+ valuetext: string | undefined;
80
+ format: FigureFormat;
81
+ currency: string | undefined;
82
+ minor: boolean;
83
+ whole: boolean;
84
+ digits: number | undefined;
85
+ literal: boolean;
86
+ private readonly relabel;
87
+ constructor();
88
+ connectedCallback(): void;
89
+ disconnectedCallback(): void;
90
+ private words;
91
+ /** The values the meter says and draws, in the current language. */
92
+ get aria(): MeterAria;
93
+ /** How many squares the range is drawn in, or 0 for a bar. */
94
+ get squareCount(): number;
95
+ protected willUpdate(changed: PropertyValues<this>): void;
96
+ render(): import("lit").TemplateResult<1>;
97
+ }
98
+ declare global {
99
+ interface HTMLElementTagNameMap {
100
+ "ds-meter": Meter;
101
+ }
102
+ }
103
+ //# sourceMappingURL=ds-meter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-meter.d.ts","sourceRoot":"","sources":["../../DS1/2-core/ds-meter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAmB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGvE,OAAO,EAA2B,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAQvF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,KAAM,SAAQ,UAAU;IACnC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAcf;IAEF,MAAM,CAAC,MAAM,4BAA+D;IAEpE,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;;IActD,iBAAiB;IAOjB,oBAAoB;IAOpB,OAAO,CAAC,KAAK;IAKb,oEAAoE;IACpE,IAAI,IAAI,IAAI,SAAS,CAKpB;IAED,8DAA8D;IAC9D,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAclD,MAAM;CAWP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,KAAK,CAAC;KACnB;CACF"}