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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (777) hide show
  1. package/DS1/0-face/button-label.ts +28 -0
  2. package/DS1/0-face/calendar.ts +6 -4
  3. package/DS1/0-face/carousel.ts +70 -0
  4. package/DS1/0-face/constraint-panel.ts +422 -0
  5. package/DS1/0-face/constraint-site.ts +200 -0
  6. package/DS1/0-face/constraints.ts +281 -0
  7. package/DS1/0-face/copy-text.ts +1 -1
  8. package/DS1/0-face/cut-fade.ts +312 -0
  9. package/DS1/0-face/define.ts +30 -2
  10. package/DS1/0-face/face-correction.ts +96 -0
  11. package/DS1/0-face/failures.ts +32 -0
  12. package/DS1/0-face/feedback-overlays.ts +5 -3
  13. package/DS1/0-face/feedback.ts +3 -0
  14. package/DS1/0-face/focus-vision.swift +31 -0
  15. package/DS1/0-face/focus.ts +181 -0
  16. package/DS1/0-face/google-face-metrics.json +102 -0
  17. package/DS1/0-face/grid.ts +61 -4
  18. package/DS1/0-face/i18n.ts +36 -18
  19. package/DS1/0-face/layout-inspector.ts +124 -98
  20. package/DS1/0-face/preference-options.ts +4 -0
  21. package/DS1/0-face/scaling.ts +21 -3
  22. package/DS1/0-face/shape.ts +43 -0
  23. package/DS1/0-face/text-contrast.ts +164 -0
  24. package/DS1/0-face/theme-bootstrap.js +43 -0
  25. package/DS1/0-face/toast-queue.ts +7 -1
  26. package/DS1/0-face/translations/da.json +10 -1
  27. package/DS1/0-face/translations/de.json +10 -1
  28. package/DS1/0-face/translations/en.json +10 -1
  29. package/DS1/0-face/translations/es.json +10 -1
  30. package/DS1/0-face/translations/fi.json +10 -1
  31. package/DS1/0-face/translations/fr.json +10 -1
  32. package/DS1/0-face/translations/is.json +10 -1
  33. package/DS1/0-face/translations/it.json +10 -1
  34. package/DS1/0-face/translations/ja.json +10 -1
  35. package/DS1/0-face/translations/ko.json +10 -1
  36. package/DS1/0-face/translations/nb.json +10 -1
  37. package/DS1/0-face/translations/pt-BR.json +10 -1
  38. package/DS1/0-face/translations/pt.json +10 -1
  39. package/DS1/0-face/translations/sv.json +10 -1
  40. package/DS1/0-face/translations/zh.json +10 -1
  41. package/DS1/0-face/word-wrap.ts +113 -0
  42. package/DS1/1-root/card.css +47 -20
  43. package/DS1/1-root/carousel.css +7 -0
  44. package/DS1/1-root/cjk.css +1 -1
  45. package/DS1/1-root/component-tokens.css +3 -2
  46. package/DS1/1-root/context.css +44 -6
  47. package/DS1/1-root/controls.css +99 -8
  48. package/DS1/1-root/document.css +9 -1
  49. package/DS1/1-root/empty.css +46 -5
  50. package/DS1/1-root/figures.css +50 -3
  51. package/DS1/1-root/fonts.css +1 -1
  52. package/DS1/1-root/footer.css +147 -16
  53. package/DS1/1-root/foundation.ts +60 -0
  54. package/DS1/1-root/guide.css +35 -0
  55. package/DS1/1-root/header.css +30 -9
  56. package/DS1/1-root/library-tokens.ts +1 -2
  57. package/DS1/1-root/material.css +67 -0
  58. package/DS1/1-root/notice.css +10 -2
  59. package/DS1/1-root/one.css +14 -7
  60. package/DS1/1-root/palette.ts +3 -3
  61. package/DS1/1-root/progress.css +9 -1
  62. package/DS1/1-root/row.css +68 -2
  63. package/DS1/1-root/table.css +47 -4
  64. package/DS1/1-root/text.css +26 -0
  65. package/DS1/2-core/button-split.ts +10 -5
  66. package/DS1/2-core/chart/chart.css +71 -2
  67. package/DS1/2-core/chart/grid-chart.ts +2 -1
  68. package/DS1/2-core/ds-activity.ts +32 -0
  69. package/DS1/2-core/ds-app-chrome.ts +1 -0
  70. package/DS1/2-core/ds-avatar.ts +35 -6
  71. package/DS1/2-core/ds-badge.ts +8 -1
  72. package/DS1/2-core/ds-button.ts +7 -1
  73. package/DS1/2-core/ds-chart.ts +184 -49
  74. package/DS1/2-core/ds-cycle.ts +27 -186
  75. package/DS1/2-core/ds-device-bezel.ts +1 -0
  76. package/DS1/2-core/ds-empty.ts +6 -4
  77. package/DS1/2-core/ds-input.ts +23 -3
  78. package/DS1/2-core/ds-message.ts +22 -0
  79. package/DS1/2-core/ds-number.ts +349 -0
  80. package/DS1/2-core/ds-progress.ts +3 -0
  81. package/DS1/2-core/ds-radio.ts +3 -0
  82. package/DS1/2-core/ds-stat.ts +3 -0
  83. package/DS1/2-core/ds-switch.ts +5 -1
  84. package/DS1/2-core/ds-tag.ts +9 -2
  85. package/DS1/2-core/ds-text.ts +7 -0
  86. package/DS1/2-core/ds-token.ts +3 -0
  87. package/DS1/2-core/ds-tooltip.ts +17 -2
  88. package/DS1/2-core/ds-window.ts +1 -0
  89. package/DS1/2-core/generated/ds-icon-map.ts +47 -5
  90. package/DS1/2-core/generated/icons-extra.ts +24 -3
  91. package/DS1/2-core/generated/icons-immediate.ts +3 -3
  92. package/DS1/2-core/number-expression.ts +64 -0
  93. package/DS1/2-core/styles/ds-activity.css +16 -0
  94. package/DS1/2-core/styles/ds-badge.css +4 -1
  95. package/DS1/2-core/styles/ds-button-host.css +45 -12
  96. package/DS1/2-core/styles/ds-button-split.css +8 -0
  97. package/DS1/2-core/styles/ds-button.css +92 -19
  98. package/DS1/2-core/styles/ds-card.css +6 -0
  99. package/DS1/2-core/styles/ds-checkbox.css +20 -8
  100. package/DS1/2-core/styles/ds-image.css +2 -1
  101. package/DS1/2-core/styles/ds-input.css +37 -4
  102. package/DS1/2-core/styles/ds-number.css +127 -0
  103. package/DS1/2-core/styles/ds-radio.css +4 -1
  104. package/DS1/2-core/styles/ds-switch.css +34 -4
  105. package/DS1/2-core/styles/ds-tag.css +32 -5
  106. package/DS1/2-core/styles/ds-text.css +13 -4
  107. package/DS1/2-core/styles/ds-token.css +4 -1
  108. package/DS1/2-core/styles/ds-tooltip.css +13 -7
  109. package/DS1/3-unit/calendar-base.ts +5 -2
  110. package/DS1/3-unit/ds-calendar.ts +711 -37
  111. package/DS1/3-unit/ds-carousel.ts +13 -1
  112. package/DS1/3-unit/ds-context.ts +40 -2
  113. package/DS1/3-unit/ds-form.ts +45 -10
  114. package/DS1/3-unit/ds-list.ts +31 -3
  115. package/DS1/3-unit/ds-matrix.ts +3 -0
  116. package/DS1/3-unit/ds-menu.ts +9 -5
  117. package/DS1/3-unit/ds-row.ts +17 -2
  118. package/DS1/3-unit/ds-select.ts +1 -1
  119. package/DS1/3-unit/ds-sidebar.ts +18 -3
  120. package/DS1/3-unit/ds-table-of-contents.ts +166 -0
  121. package/DS1/3-unit/ds-tabs.ts +40 -2
  122. package/DS1/3-unit/styles/ds-calendar.css +356 -42
  123. package/DS1/3-unit/styles/ds-context.css +38 -0
  124. package/DS1/3-unit/styles/ds-list.css +26 -1
  125. package/DS1/3-unit/styles/ds-matrix.css +4 -1
  126. package/DS1/3-unit/styles/ds-row.css +39 -0
  127. package/DS1/3-unit/styles/ds-select.css +22 -12
  128. package/DS1/3-unit/styles/ds-sidebar.css +16 -2
  129. package/DS1/3-unit/styles/ds-table-of-contents.css +40 -0
  130. package/DS1/3-unit/styles/ds-tabs.css +95 -0
  131. package/DS1/4-page/ds-document.ts +3 -0
  132. package/DS1/4-page/ds-footer.ts +93 -18
  133. package/DS1/4-page/ds-header.ts +5 -1
  134. package/DS1/4-page/ds-overlay.ts +8 -3
  135. package/DS1/4-page/ds-page.ts +22 -1
  136. package/DS1/4-page/email.ts +7 -4
  137. package/DS1/4-page/styles/ds-container.css +0 -1
  138. package/DS1/4-page/styles/ds-overlay.css +7 -0
  139. package/DS1/4-page/styles/ds-page.css +10 -0
  140. package/DS1/5-visual-kit/app-chrome.ts +129 -0
  141. package/DS1/5-visual-kit/bezels.ts +394 -0
  142. package/DS1/5-visual-kit/browser-icons.LICENSE +53 -0
  143. package/DS1/5-visual-kit/browser-icons.ts +47 -0
  144. package/DS1/5-visual-kit/browser-styles.ts +53 -0
  145. package/DS1/5-visual-kit/device-bezel.ts +55 -0
  146. package/DS1/5-visual-kit/instagram-frame.ts +15 -0
  147. package/DS1/5-visual-kit/instagram.ts +41 -0
  148. package/DS1/5-visual-kit/mobile-chrome.ts +25 -0
  149. package/DS1/5-visual-kit/native-icon-paths.ts +145 -0
  150. package/DS1/5-visual-kit/window.ts +22 -0
  151. package/DS1/components.ts +1 -0
  152. package/DS1/index.ts +14 -1
  153. package/DS1/react/choice.ts +4 -2
  154. package/DS1/react/context.ts +11 -6
  155. package/DS1/react/empty.ts +2 -2
  156. package/DS1/react/footer.ts +5 -5
  157. package/DS1/react/header.ts +1 -1
  158. package/DS1/react/message.ts +4 -2
  159. package/DS1/react/number.ts +53 -0
  160. package/DS1/react/sidebar.ts +4 -2
  161. package/DS1/react/table-of-contents.ts +28 -0
  162. package/DS1/x-flag/LICENSE.md +26 -0
  163. package/DS1/x-flag/ac.svg +1 -0
  164. package/DS1/x-flag/ad.svg +1 -0
  165. package/DS1/x-flag/ae.svg +1 -0
  166. package/DS1/x-flag/af.svg +1 -0
  167. package/DS1/x-flag/ag.svg +1 -0
  168. package/DS1/x-flag/ai.svg +1 -0
  169. package/DS1/x-flag/al.svg +1 -0
  170. package/DS1/x-flag/am.svg +1 -0
  171. package/DS1/x-flag/ao.svg +1 -0
  172. package/DS1/x-flag/aq.svg +1 -0
  173. package/DS1/x-flag/ar.svg +1 -0
  174. package/DS1/x-flag/as.svg +1 -0
  175. package/DS1/x-flag/at.svg +1 -0
  176. package/DS1/x-flag/au.svg +1 -0
  177. package/DS1/x-flag/aw.svg +1 -0
  178. package/DS1/x-flag/ax.svg +1 -0
  179. package/DS1/x-flag/az.svg +1 -0
  180. package/DS1/x-flag/ba.svg +1 -0
  181. package/DS1/x-flag/bb.svg +1 -0
  182. package/DS1/x-flag/bd.svg +1 -0
  183. package/DS1/x-flag/be.svg +1 -0
  184. package/DS1/x-flag/bf.svg +1 -0
  185. package/DS1/x-flag/bg.svg +1 -0
  186. package/DS1/x-flag/bh.svg +1 -0
  187. package/DS1/x-flag/bi.svg +1 -0
  188. package/DS1/x-flag/bj.svg +1 -0
  189. package/DS1/x-flag/bl.svg +1 -0
  190. package/DS1/x-flag/bm.svg +1 -0
  191. package/DS1/x-flag/bn.svg +1 -0
  192. package/DS1/x-flag/bo.svg +1 -0
  193. package/DS1/x-flag/bq-bo.svg +1 -0
  194. package/DS1/x-flag/bq-sa.svg +1 -0
  195. package/DS1/x-flag/bq-se.svg +1 -0
  196. package/DS1/x-flag/bq.svg +1 -0
  197. package/DS1/x-flag/br.svg +1 -0
  198. package/DS1/x-flag/bs.svg +1 -0
  199. package/DS1/x-flag/bt.svg +1 -0
  200. package/DS1/x-flag/bv.svg +1 -0
  201. package/DS1/x-flag/bw.svg +1 -0
  202. package/DS1/x-flag/by.svg +1 -0
  203. package/DS1/x-flag/bz.svg +1 -0
  204. package/DS1/x-flag/ca.svg +1 -0
  205. package/DS1/x-flag/cc.svg +1 -0
  206. package/DS1/x-flag/cd.svg +1 -0
  207. package/DS1/x-flag/cf.svg +1 -0
  208. package/DS1/x-flag/cg.svg +1 -0
  209. package/DS1/x-flag/ch.svg +1 -0
  210. package/DS1/x-flag/ci.svg +1 -0
  211. package/DS1/x-flag/ck.svg +1 -0
  212. package/DS1/x-flag/cl.svg +1 -0
  213. package/DS1/x-flag/cm.svg +1 -0
  214. package/DS1/x-flag/cn.svg +1 -0
  215. package/DS1/x-flag/co.svg +1 -0
  216. package/DS1/x-flag/cr.svg +1 -0
  217. package/DS1/x-flag/cu.svg +1 -0
  218. package/DS1/x-flag/cv.svg +1 -0
  219. package/DS1/x-flag/cw.svg +1 -0
  220. package/DS1/x-flag/cx.svg +1 -0
  221. package/DS1/x-flag/cy.svg +1 -0
  222. package/DS1/x-flag/cz.svg +1 -0
  223. package/DS1/x-flag/de.svg +1 -0
  224. package/DS1/x-flag/dj.svg +1 -0
  225. package/DS1/x-flag/dk.svg +1 -0
  226. package/DS1/x-flag/dm.svg +1 -0
  227. package/DS1/x-flag/do.svg +1 -0
  228. package/DS1/x-flag/dz.svg +1 -0
  229. package/DS1/x-flag/ec.svg +1 -0
  230. package/DS1/x-flag/ee.svg +1 -0
  231. package/DS1/x-flag/eg.svg +1 -0
  232. package/DS1/x-flag/eh.svg +1 -0
  233. package/DS1/x-flag/er.svg +1 -0
  234. package/DS1/x-flag/es-ct.svg +1 -0
  235. package/DS1/x-flag/es.svg +1 -0
  236. package/DS1/x-flag/et.svg +1 -0
  237. package/DS1/x-flag/eu.svg +1 -0
  238. package/DS1/x-flag/fi.svg +1 -0
  239. package/DS1/x-flag/fj.svg +1 -0
  240. package/DS1/x-flag/fk.svg +1 -0
  241. package/DS1/x-flag/fm.svg +1 -0
  242. package/DS1/x-flag/fo.svg +1 -0
  243. package/DS1/x-flag/fr.svg +1 -0
  244. package/DS1/x-flag/ga.svg +1 -0
  245. package/DS1/x-flag/gb-eng.svg +1 -0
  246. package/DS1/x-flag/gb-nir.svg +1 -0
  247. package/DS1/x-flag/gb-sct.svg +1 -0
  248. package/DS1/x-flag/gb-wls.svg +1 -0
  249. package/DS1/x-flag/gb.svg +1 -0
  250. package/DS1/x-flag/gd.svg +1 -0
  251. package/DS1/x-flag/ge.svg +1 -0
  252. package/DS1/x-flag/gf.svg +1 -0
  253. package/DS1/x-flag/gg.svg +1 -0
  254. package/DS1/x-flag/gh.svg +1 -0
  255. package/DS1/x-flag/gi.svg +1 -0
  256. package/DS1/x-flag/gl.svg +1 -0
  257. package/DS1/x-flag/gm.svg +1 -0
  258. package/DS1/x-flag/gn.svg +1 -0
  259. package/DS1/x-flag/gp.svg +1 -0
  260. package/DS1/x-flag/gq.svg +1 -0
  261. package/DS1/x-flag/gr.svg +1 -0
  262. package/DS1/x-flag/gs.svg +1 -0
  263. package/DS1/x-flag/gt.svg +1 -0
  264. package/DS1/x-flag/gu.svg +1 -0
  265. package/DS1/x-flag/gw.svg +1 -0
  266. package/DS1/x-flag/gy.svg +1 -0
  267. package/DS1/x-flag/hk.svg +1 -0
  268. package/DS1/x-flag/hm.svg +1 -0
  269. package/DS1/x-flag/hn.svg +1 -0
  270. package/DS1/x-flag/hr.svg +1 -0
  271. package/DS1/x-flag/ht.svg +1 -0
  272. package/DS1/x-flag/hu.svg +1 -0
  273. package/DS1/x-flag/ic.svg +1 -0
  274. package/DS1/x-flag/id.svg +1 -0
  275. package/DS1/x-flag/ie.svg +1 -0
  276. package/DS1/x-flag/il.svg +1 -0
  277. package/DS1/x-flag/im.svg +1 -0
  278. package/DS1/x-flag/in.svg +1 -0
  279. package/DS1/x-flag/io.svg +1 -0
  280. package/DS1/x-flag/iq.svg +1 -0
  281. package/DS1/x-flag/ir.svg +1 -0
  282. package/DS1/x-flag/is.svg +1 -0
  283. package/DS1/x-flag/it.svg +1 -0
  284. package/DS1/x-flag/je.svg +1 -0
  285. package/DS1/x-flag/jm.svg +1 -0
  286. package/DS1/x-flag/jo.svg +1 -0
  287. package/DS1/x-flag/jp.svg +1 -0
  288. package/DS1/x-flag/ke.svg +1 -0
  289. package/DS1/x-flag/kg.svg +1 -0
  290. package/DS1/x-flag/kh.svg +1 -0
  291. package/DS1/x-flag/ki.svg +1 -0
  292. package/DS1/x-flag/km.svg +1 -0
  293. package/DS1/x-flag/kn.svg +1 -0
  294. package/DS1/x-flag/kp.svg +1 -0
  295. package/DS1/x-flag/kr.svg +1 -0
  296. package/DS1/x-flag/kw.svg +1 -0
  297. package/DS1/x-flag/ky.svg +1 -0
  298. package/DS1/x-flag/kz.svg +1 -0
  299. package/DS1/x-flag/la.svg +1 -0
  300. package/DS1/x-flag/lb.svg +1 -0
  301. package/DS1/x-flag/lc.svg +1 -0
  302. package/DS1/x-flag/li.svg +1 -0
  303. package/DS1/x-flag/lk.svg +1 -0
  304. package/DS1/x-flag/lr.svg +1 -0
  305. package/DS1/x-flag/ls.svg +1 -0
  306. package/DS1/x-flag/lt.svg +1 -0
  307. package/DS1/x-flag/lu.svg +1 -0
  308. package/DS1/x-flag/lv.svg +1 -0
  309. package/DS1/x-flag/ly.svg +1 -0
  310. package/DS1/x-flag/ma.svg +1 -0
  311. package/DS1/x-flag/mc.svg +1 -0
  312. package/DS1/x-flag/md.svg +1 -0
  313. package/DS1/x-flag/me.svg +1 -0
  314. package/DS1/x-flag/mf.svg +1 -0
  315. package/DS1/x-flag/mg.svg +1 -0
  316. package/DS1/x-flag/mh.svg +1 -0
  317. package/DS1/x-flag/mk.svg +1 -0
  318. package/DS1/x-flag/ml.svg +1 -0
  319. package/DS1/x-flag/mm.svg +1 -0
  320. package/DS1/x-flag/mn.svg +1 -0
  321. package/DS1/x-flag/mo.svg +1 -0
  322. package/DS1/x-flag/mp.svg +1 -0
  323. package/DS1/x-flag/mq.svg +1 -0
  324. package/DS1/x-flag/mr.svg +1 -0
  325. package/DS1/x-flag/ms.svg +1 -0
  326. package/DS1/x-flag/mt.svg +1 -0
  327. package/DS1/x-flag/mu.svg +1 -0
  328. package/DS1/x-flag/mv.svg +1 -0
  329. package/DS1/x-flag/mw.svg +1 -0
  330. package/DS1/x-flag/mx.svg +1 -0
  331. package/DS1/x-flag/my.svg +1 -0
  332. package/DS1/x-flag/mz.svg +1 -0
  333. package/DS1/x-flag/na.svg +1 -0
  334. package/DS1/x-flag/nc.svg +1 -0
  335. package/DS1/x-flag/ne.svg +1 -0
  336. package/DS1/x-flag/nf.svg +1 -0
  337. package/DS1/x-flag/ng.svg +1 -0
  338. package/DS1/x-flag/ni.svg +1 -0
  339. package/DS1/x-flag/nl.svg +1 -0
  340. package/DS1/x-flag/no.svg +1 -0
  341. package/DS1/x-flag/np.svg +1 -0
  342. package/DS1/x-flag/nr.svg +1 -0
  343. package/DS1/x-flag/nu.svg +1 -0
  344. package/DS1/x-flag/nz.svg +1 -0
  345. package/DS1/x-flag/om.svg +1 -0
  346. package/DS1/x-flag/pa.svg +1 -0
  347. package/DS1/x-flag/pe.svg +1 -0
  348. package/DS1/x-flag/pf.svg +1 -0
  349. package/DS1/x-flag/pg.svg +1 -0
  350. package/DS1/x-flag/ph.svg +1 -0
  351. package/DS1/x-flag/pk.svg +1 -0
  352. package/DS1/x-flag/pl.svg +1 -0
  353. package/DS1/x-flag/pm.svg +1 -0
  354. package/DS1/x-flag/pn.svg +1 -0
  355. package/DS1/x-flag/pr.svg +1 -0
  356. package/DS1/x-flag/ps.svg +1 -0
  357. package/DS1/x-flag/pt.svg +1 -0
  358. package/DS1/x-flag/pw.svg +1 -0
  359. package/DS1/x-flag/py.svg +1 -0
  360. package/DS1/x-flag/qa.svg +1 -0
  361. package/DS1/x-flag/re.svg +1 -0
  362. package/DS1/x-flag/ro.svg +1 -0
  363. package/DS1/x-flag/rs.svg +1 -0
  364. package/DS1/x-flag/ru.svg +1 -0
  365. package/DS1/x-flag/rw.svg +1 -0
  366. package/DS1/x-flag/sa.svg +1 -0
  367. package/DS1/x-flag/sb.svg +1 -0
  368. package/DS1/x-flag/sc.svg +1 -0
  369. package/DS1/x-flag/sd.svg +1 -0
  370. package/DS1/x-flag/se.svg +1 -0
  371. package/DS1/x-flag/sg.svg +1 -0
  372. package/DS1/x-flag/sh.svg +1 -0
  373. package/DS1/x-flag/si.svg +1 -0
  374. package/DS1/x-flag/sj.svg +1 -0
  375. package/DS1/x-flag/sk.svg +1 -0
  376. package/DS1/x-flag/sl.svg +1 -0
  377. package/DS1/x-flag/sm.svg +1 -0
  378. package/DS1/x-flag/sn.svg +1 -0
  379. package/DS1/x-flag/so.svg +1 -0
  380. package/DS1/x-flag/sr.svg +1 -0
  381. package/DS1/x-flag/ss.svg +1 -0
  382. package/DS1/x-flag/st.svg +1 -0
  383. package/DS1/x-flag/sv.svg +1 -0
  384. package/DS1/x-flag/sx.svg +1 -0
  385. package/DS1/x-flag/sy.svg +1 -0
  386. package/DS1/x-flag/sz.svg +1 -0
  387. package/DS1/x-flag/ta.svg +1 -0
  388. package/DS1/x-flag/tc.svg +1 -0
  389. package/DS1/x-flag/td.svg +1 -0
  390. package/DS1/x-flag/tf.svg +1 -0
  391. package/DS1/x-flag/tg.svg +1 -0
  392. package/DS1/x-flag/th.svg +1 -0
  393. package/DS1/x-flag/tj.svg +1 -0
  394. package/DS1/x-flag/tk.svg +1 -0
  395. package/DS1/x-flag/tl.svg +1 -0
  396. package/DS1/x-flag/tm.svg +1 -0
  397. package/DS1/x-flag/tn.svg +1 -0
  398. package/DS1/x-flag/to.svg +1 -0
  399. package/DS1/x-flag/tr.svg +1 -0
  400. package/DS1/x-flag/tt.svg +1 -0
  401. package/DS1/x-flag/tv.svg +1 -0
  402. package/DS1/x-flag/tw.svg +1 -0
  403. package/DS1/x-flag/tz.svg +1 -0
  404. package/DS1/x-flag/ua.svg +1 -0
  405. package/DS1/x-flag/ug.svg +1 -0
  406. package/DS1/x-flag/um.svg +1 -0
  407. package/DS1/x-flag/us.svg +1 -0
  408. package/DS1/x-flag/uy.svg +1 -0
  409. package/DS1/x-flag/uz.svg +1 -0
  410. package/DS1/x-flag/va.svg +1 -0
  411. package/DS1/x-flag/vc.svg +1 -0
  412. package/DS1/x-flag/ve.svg +1 -0
  413. package/DS1/x-flag/vg.svg +1 -0
  414. package/DS1/x-flag/vi.svg +1 -0
  415. package/DS1/x-flag/vn.svg +1 -0
  416. package/DS1/x-flag/vu.svg +1 -0
  417. package/DS1/x-flag/wf.svg +1 -0
  418. package/DS1/x-flag/ws.svg +1 -0
  419. package/DS1/x-flag/xk.svg +1 -0
  420. package/DS1/x-flag/ye.svg +1 -0
  421. package/DS1/x-flag/yt.svg +1 -0
  422. package/DS1/x-flag/za.svg +1 -0
  423. package/DS1/x-flag/zm.svg +1 -0
  424. package/DS1/x-flag/zw.svg +1 -0
  425. package/DS1/x-icon/android.svg +9 -0
  426. package/DS1/x-icon/arrange-check.svg +1 -1
  427. package/DS1/x-icon/arrange-page.svg +1 -1
  428. package/DS1/x-icon/chrome.svg +7 -0
  429. package/DS1/x-icon/edge-brand.svg +6 -0
  430. package/DS1/x-icon/firefox.svg +4 -0
  431. package/DS1/x-icon/health.svg +3 -0
  432. package/DS1/x-icon/left.svg +2 -3
  433. package/DS1/x-icon/linux.svg +1 -0
  434. package/DS1/x-icon/material.svg +1 -0
  435. package/DS1/x-icon/milestone-planned.svg +3 -0
  436. package/DS1/x-icon/milestone.svg +3 -0
  437. package/DS1/x-icon/more.svg +1 -5
  438. package/DS1/x-icon/network.svg +3 -0
  439. package/DS1/x-icon/opera.svg +4 -0
  440. package/DS1/x-icon/prediction.svg +3 -0
  441. package/DS1/x-icon/priority-high.svg +3 -0
  442. package/DS1/x-icon/priority-low.svg +3 -0
  443. package/DS1/x-icon/priority-medium.svg +3 -0
  444. package/DS1/x-icon/project.svg +3 -0
  445. package/DS1/x-icon/redo.svg +2 -2
  446. package/DS1/x-icon/repeat-small.svg +3 -0
  447. package/DS1/x-icon/safari.svg +4 -0
  448. package/DS1/x-icon/scaling.svg +3 -0
  449. package/DS1/x-icon/tabs.svg +4 -0
  450. package/DS1/x-icon/windows.svg +5 -0
  451. package/README.md +10 -6
  452. package/dist/0-face/button-label.d.ts +5 -0
  453. package/dist/0-face/button-label.d.ts.map +1 -0
  454. package/dist/0-face/button-label.js +31 -0
  455. package/dist/0-face/calendar.d.ts +1 -1
  456. package/dist/0-face/calendar.d.ts.map +1 -1
  457. package/dist/0-face/calendar.js +6 -3
  458. package/dist/0-face/carousel.d.ts +9 -0
  459. package/dist/0-face/carousel.d.ts.map +1 -1
  460. package/dist/0-face/carousel.js +80 -0
  461. package/dist/0-face/constraint-panel.d.ts +43 -0
  462. package/dist/0-face/constraint-panel.d.ts.map +1 -0
  463. package/dist/0-face/constraint-panel.js +429 -0
  464. package/dist/0-face/constraint-site.d.ts +72 -0
  465. package/dist/0-face/constraint-site.d.ts.map +1 -0
  466. package/dist/0-face/constraint-site.js +185 -0
  467. package/dist/0-face/constraints.d.ts +47 -0
  468. package/dist/0-face/constraints.d.ts.map +1 -0
  469. package/dist/0-face/constraints.js +247 -0
  470. package/dist/0-face/copy-text.js +1 -1
  471. package/dist/0-face/cut-fade.d.ts +112 -0
  472. package/dist/0-face/cut-fade.d.ts.map +1 -0
  473. package/dist/0-face/cut-fade.js +274 -0
  474. package/dist/0-face/define.d.ts.map +1 -1
  475. package/dist/0-face/define.js +24 -3
  476. package/dist/0-face/face-correction.d.ts +51 -0
  477. package/dist/0-face/face-correction.d.ts.map +1 -0
  478. package/dist/0-face/face-correction.js +80 -0
  479. package/dist/0-face/failures.d.ts +16 -0
  480. package/dist/0-face/failures.d.ts.map +1 -0
  481. package/dist/0-face/failures.js +21 -0
  482. package/dist/0-face/feedback-overlays.d.ts.map +1 -1
  483. package/dist/0-face/feedback-overlays.js +5 -3
  484. package/dist/0-face/feedback.d.ts +2 -0
  485. package/dist/0-face/feedback.d.ts.map +1 -1
  486. package/dist/0-face/feedback.js +1 -0
  487. package/dist/0-face/focus.d.ts +71 -0
  488. package/dist/0-face/focus.d.ts.map +1 -0
  489. package/dist/0-face/focus.js +196 -0
  490. package/dist/0-face/grid.d.ts +11 -1
  491. package/dist/0-face/grid.d.ts.map +1 -1
  492. package/dist/0-face/grid.js +90 -4
  493. package/dist/0-face/i18n.d.ts.map +1 -1
  494. package/dist/0-face/i18n.js +38 -16
  495. package/dist/0-face/layout-inspector.d.ts +5 -1
  496. package/dist/0-face/layout-inspector.d.ts.map +1 -1
  497. package/dist/0-face/layout-inspector.js +130 -104
  498. package/dist/0-face/preference-options.d.ts +4 -0
  499. package/dist/0-face/preference-options.d.ts.map +1 -1
  500. package/dist/0-face/scaling.d.ts +8 -1
  501. package/dist/0-face/scaling.d.ts.map +1 -1
  502. package/dist/0-face/scaling.js +19 -2
  503. package/dist/0-face/shape.d.ts +35 -0
  504. package/dist/0-face/shape.d.ts.map +1 -0
  505. package/dist/0-face/shape.js +23 -0
  506. package/dist/0-face/text-contrast.d.ts +22 -0
  507. package/dist/0-face/text-contrast.d.ts.map +1 -0
  508. package/dist/0-face/text-contrast.js +178 -0
  509. package/dist/0-face/theme-bootstrap.js +56 -0
  510. package/dist/0-face/toast-queue.d.ts +4 -0
  511. package/dist/0-face/toast-queue.d.ts.map +1 -1
  512. package/dist/0-face/toast-queue.js +4 -1
  513. package/dist/0-face/translations/da.json +10 -1
  514. package/dist/0-face/translations/de.json +10 -1
  515. package/dist/0-face/translations/en.json +10 -1
  516. package/dist/0-face/translations/es.json +10 -1
  517. package/dist/0-face/translations/fi.json +10 -1
  518. package/dist/0-face/translations/fr.json +10 -1
  519. package/dist/0-face/translations/is.json +10 -1
  520. package/dist/0-face/translations/it.json +10 -1
  521. package/dist/0-face/translations/ja.json +10 -1
  522. package/dist/0-face/translations/ko.json +10 -1
  523. package/dist/0-face/translations/nb.json +10 -1
  524. package/dist/0-face/translations/pt-BR.json +10 -1
  525. package/dist/0-face/translations/pt.json +10 -1
  526. package/dist/0-face/translations/sv.json +10 -1
  527. package/dist/0-face/translations/zh.json +10 -1
  528. package/dist/0-face/word-wrap.d.ts +6 -0
  529. package/dist/0-face/word-wrap.d.ts.map +1 -0
  530. package/dist/0-face/word-wrap.js +119 -0
  531. package/dist/1-root/foundation.d.ts +12 -0
  532. package/dist/1-root/foundation.d.ts.map +1 -0
  533. package/dist/1-root/foundation.js +59 -0
  534. package/dist/1-root/library-tokens.d.ts.map +1 -1
  535. package/dist/1-root/library-tokens.js +1 -2
  536. package/dist/1-root/palette.d.ts +2 -2
  537. package/dist/1-root/palette.d.ts.map +1 -1
  538. package/dist/1-root/palette.js +3 -3
  539. package/dist/2-core/button-split.d.ts +1 -0
  540. package/dist/2-core/button-split.d.ts.map +1 -1
  541. package/dist/2-core/button-split.js +9 -4
  542. package/dist/2-core/chart/grid-chart.d.ts +2 -0
  543. package/dist/2-core/chart/grid-chart.d.ts.map +1 -1
  544. package/dist/2-core/chart/grid-chart.js +2 -1
  545. package/dist/2-core/ds-activity.d.ts +25 -0
  546. package/dist/2-core/ds-activity.d.ts.map +1 -0
  547. package/dist/2-core/ds-activity.js +28 -0
  548. package/dist/2-core/ds-app-chrome.d.ts +2 -0
  549. package/dist/2-core/ds-app-chrome.d.ts.map +1 -0
  550. package/dist/2-core/ds-app-chrome.js +1 -0
  551. package/dist/2-core/ds-avatar.d.ts +7 -0
  552. package/dist/2-core/ds-avatar.d.ts.map +1 -1
  553. package/dist/2-core/ds-avatar.js +41 -6
  554. package/dist/2-core/ds-badge.d.ts +7 -1
  555. package/dist/2-core/ds-badge.d.ts.map +1 -1
  556. package/dist/2-core/ds-badge.js +8 -1
  557. package/dist/2-core/ds-button.d.ts +12 -0
  558. package/dist/2-core/ds-button.d.ts.map +1 -1
  559. package/dist/2-core/ds-button.js +4 -0
  560. package/dist/2-core/ds-chart.d.ts +28 -3
  561. package/dist/2-core/ds-chart.d.ts.map +1 -1
  562. package/dist/2-core/ds-chart.js +110 -130
  563. package/dist/2-core/ds-cycle.d.ts +2 -2
  564. package/dist/2-core/ds-cycle.d.ts.map +1 -1
  565. package/dist/2-core/ds-cycle.js +36 -171
  566. package/dist/2-core/ds-device-bezel.d.ts +2 -0
  567. package/dist/2-core/ds-device-bezel.d.ts.map +1 -0
  568. package/dist/2-core/ds-device-bezel.js +1 -0
  569. package/dist/2-core/ds-empty.d.ts +2 -2
  570. package/dist/2-core/ds-empty.d.ts.map +1 -1
  571. package/dist/2-core/ds-empty.js +6 -4
  572. package/dist/2-core/ds-input.d.ts +7 -0
  573. package/dist/2-core/ds-input.d.ts.map +1 -1
  574. package/dist/2-core/ds-input.js +23 -3
  575. package/dist/2-core/ds-message.d.ts +11 -0
  576. package/dist/2-core/ds-message.d.ts.map +1 -1
  577. package/dist/2-core/ds-message.js +18 -0
  578. package/dist/2-core/ds-number.d.ts +86 -0
  579. package/dist/2-core/ds-number.d.ts.map +1 -0
  580. package/dist/2-core/ds-number.js +326 -0
  581. package/dist/2-core/ds-progress.d.ts +3 -0
  582. package/dist/2-core/ds-progress.d.ts.map +1 -1
  583. package/dist/2-core/ds-progress.js +3 -0
  584. package/dist/2-core/ds-radio.d.ts +3 -0
  585. package/dist/2-core/ds-radio.d.ts.map +1 -1
  586. package/dist/2-core/ds-radio.js +10 -1
  587. package/dist/2-core/ds-stat.d.ts +3 -0
  588. package/dist/2-core/ds-stat.d.ts.map +1 -1
  589. package/dist/2-core/ds-stat.js +3 -0
  590. package/dist/2-core/ds-switch.d.ts +14 -1
  591. package/dist/2-core/ds-switch.d.ts.map +1 -1
  592. package/dist/2-core/ds-switch.js +3 -1
  593. package/dist/2-core/ds-tag.d.ts +8 -1
  594. package/dist/2-core/ds-tag.d.ts.map +1 -1
  595. package/dist/2-core/ds-tag.js +12 -2
  596. package/dist/2-core/ds-text.d.ts +7 -0
  597. package/dist/2-core/ds-text.d.ts.map +1 -1
  598. package/dist/2-core/ds-text.js +7 -0
  599. package/dist/2-core/ds-token.d.ts +3 -0
  600. package/dist/2-core/ds-token.d.ts.map +1 -1
  601. package/dist/2-core/ds-token.js +3 -0
  602. package/dist/2-core/ds-tooltip.d.ts.map +1 -1
  603. package/dist/2-core/ds-tooltip.js +23 -2
  604. package/dist/2-core/ds-window.d.ts +2 -0
  605. package/dist/2-core/ds-window.d.ts.map +1 -0
  606. package/dist/2-core/ds-window.js +1 -0
  607. package/dist/2-core/generated/ds-icon-map.d.ts +27 -6
  608. package/dist/2-core/generated/ds-icon-map.d.ts.map +1 -1
  609. package/dist/2-core/generated/ds-icon-map.js +47 -5
  610. package/dist/2-core/generated/icons-extra.d.ts.map +1 -1
  611. package/dist/2-core/generated/icons-extra.js +24 -3
  612. package/dist/2-core/generated/icons-immediate.d.ts +1 -1
  613. package/dist/2-core/generated/icons-immediate.d.ts.map +1 -1
  614. package/dist/2-core/generated/icons-immediate.js +3 -3
  615. package/dist/2-core/number-expression.d.ts +12 -0
  616. package/dist/2-core/number-expression.d.ts.map +1 -0
  617. package/dist/2-core/number-expression.js +82 -0
  618. package/dist/3-unit/calendar-base.d.ts +5 -0
  619. package/dist/3-unit/calendar-base.d.ts.map +1 -1
  620. package/dist/3-unit/calendar-base.js +3 -2
  621. package/dist/3-unit/ds-calendar.d.ts +197 -4
  622. package/dist/3-unit/ds-calendar.d.ts.map +1 -1
  623. package/dist/3-unit/ds-calendar.js +687 -45
  624. package/dist/3-unit/ds-carousel.d.ts +3 -0
  625. package/dist/3-unit/ds-carousel.d.ts.map +1 -1
  626. package/dist/3-unit/ds-carousel.js +13 -1
  627. package/dist/3-unit/ds-context.d.ts +18 -1
  628. package/dist/3-unit/ds-context.d.ts.map +1 -1
  629. package/dist/3-unit/ds-context.js +37 -1
  630. package/dist/3-unit/ds-form.d.ts +9 -0
  631. package/dist/3-unit/ds-form.d.ts.map +1 -1
  632. package/dist/3-unit/ds-form.js +50 -10
  633. package/dist/3-unit/ds-list.d.ts +20 -1
  634. package/dist/3-unit/ds-list.d.ts.map +1 -1
  635. package/dist/3-unit/ds-list.js +31 -3
  636. package/dist/3-unit/ds-matrix.d.ts +3 -0
  637. package/dist/3-unit/ds-matrix.d.ts.map +1 -1
  638. package/dist/3-unit/ds-matrix.js +3 -0
  639. package/dist/3-unit/ds-menu.d.ts.map +1 -1
  640. package/dist/3-unit/ds-menu.js +17 -1
  641. package/dist/3-unit/ds-row.d.ts +13 -0
  642. package/dist/3-unit/ds-row.d.ts.map +1 -1
  643. package/dist/3-unit/ds-row.js +15 -2
  644. package/dist/3-unit/ds-select.js +1 -1
  645. package/dist/3-unit/ds-sidebar.d.ts +17 -0
  646. package/dist/3-unit/ds-sidebar.d.ts.map +1 -1
  647. package/dist/3-unit/ds-sidebar.js +14 -3
  648. package/dist/3-unit/ds-table-of-contents.d.ts +68 -0
  649. package/dist/3-unit/ds-table-of-contents.d.ts.map +1 -0
  650. package/dist/3-unit/ds-table-of-contents.js +190 -0
  651. package/dist/3-unit/ds-tabs.d.ts +32 -1
  652. package/dist/3-unit/ds-tabs.d.ts.map +1 -1
  653. package/dist/3-unit/ds-tabs.js +39 -1
  654. package/dist/4-page/ds-document.d.ts +3 -0
  655. package/dist/4-page/ds-document.d.ts.map +1 -1
  656. package/dist/4-page/ds-document.js +3 -0
  657. package/dist/4-page/ds-footer.d.ts +47 -7
  658. package/dist/4-page/ds-footer.d.ts.map +1 -1
  659. package/dist/4-page/ds-footer.js +58 -14
  660. package/dist/4-page/ds-header.d.ts +6 -0
  661. package/dist/4-page/ds-header.d.ts.map +1 -1
  662. package/dist/4-page/ds-header.js +4 -1
  663. package/dist/4-page/ds-overlay.d.ts +2 -2
  664. package/dist/4-page/ds-overlay.d.ts.map +1 -1
  665. package/dist/4-page/ds-overlay.js +8 -3
  666. package/dist/4-page/ds-page.d.ts +12 -0
  667. package/dist/4-page/ds-page.d.ts.map +1 -1
  668. package/dist/4-page/ds-page.js +19 -1
  669. package/dist/4-page/email.d.ts +2 -0
  670. package/dist/4-page/email.d.ts.map +1 -1
  671. package/dist/4-page/email.js +5 -4
  672. package/dist/5-visual-kit/app-chrome.d.ts +98 -0
  673. package/dist/5-visual-kit/app-chrome.d.ts.map +1 -0
  674. package/dist/5-visual-kit/app-chrome.js +119 -0
  675. package/dist/5-visual-kit/bezels.d.ts +30 -0
  676. package/dist/5-visual-kit/bezels.d.ts.map +1 -0
  677. package/dist/5-visual-kit/bezels.js +388 -0
  678. package/dist/5-visual-kit/browser-icons.d.ts +5 -0
  679. package/dist/5-visual-kit/browser-icons.d.ts.map +1 -0
  680. package/dist/5-visual-kit/browser-icons.js +51 -0
  681. package/dist/5-visual-kit/browser-styles.d.ts +3 -0
  682. package/dist/5-visual-kit/browser-styles.d.ts.map +1 -0
  683. package/dist/5-visual-kit/browser-styles.js +52 -0
  684. package/dist/5-visual-kit/device-bezel.d.ts +84 -0
  685. package/dist/5-visual-kit/device-bezel.d.ts.map +1 -0
  686. package/dist/5-visual-kit/device-bezel.js +56 -0
  687. package/dist/5-visual-kit/instagram-frame.d.ts +8 -0
  688. package/dist/5-visual-kit/instagram-frame.d.ts.map +1 -0
  689. package/dist/5-visual-kit/instagram-frame.js +13 -0
  690. package/dist/5-visual-kit/instagram.d.ts +18 -0
  691. package/dist/5-visual-kit/instagram.d.ts.map +1 -0
  692. package/dist/5-visual-kit/instagram.js +39 -0
  693. package/dist/5-visual-kit/mobile-chrome.d.ts +4 -0
  694. package/dist/5-visual-kit/mobile-chrome.d.ts.map +1 -0
  695. package/dist/5-visual-kit/mobile-chrome.js +24 -0
  696. package/dist/5-visual-kit/native-icon-paths.d.ts +146 -0
  697. package/dist/5-visual-kit/native-icon-paths.d.ts.map +1 -0
  698. package/dist/5-visual-kit/native-icon-paths.js +145 -0
  699. package/dist/5-visual-kit/window.d.ts +51 -0
  700. package/dist/5-visual-kit/window.d.ts.map +1 -0
  701. package/dist/5-visual-kit/window.js +20 -0
  702. package/dist/browser-icons-BFbS1tIx.js +56 -0
  703. package/dist/browser-icons-BFbS1tIx.js.map +1 -0
  704. package/dist/browser-icons-CT8qU77Z.js +48 -0
  705. package/dist/browser-icons-CT8qU77Z.js.map +1 -0
  706. package/dist/components.d.ts +1 -0
  707. package/dist/components.d.ts.map +1 -1
  708. package/dist/components.js +1 -0
  709. package/dist/design-system-1.bundle.js +5505 -2068
  710. package/dist/design-system-1.bundle.js.map +1 -1
  711. package/dist/design-system-1.bundle.min.js +7026 -4628
  712. package/dist/design-system-1.bundle.min.js.map +1 -1
  713. package/dist/design-system-1.css +1 -1
  714. package/dist/feedback.js +197 -167
  715. package/dist/feedback.js.map +1 -1
  716. package/dist/{icons-extra-CRxxWFjX.js → icons-extra-BMPvmQPI.js} +25 -4
  717. package/dist/icons-extra-BMPvmQPI.js.map +1 -0
  718. package/dist/{icons-extra-H5pqCM_R.js → icons-extra-BfYOw-cR.js} +83 -5
  719. package/dist/icons-extra-BfYOw-cR.js.map +1 -0
  720. package/dist/index.d.ts +12 -1
  721. package/dist/index.d.ts.map +1 -1
  722. package/dist/index.js +11 -1
  723. package/dist/instagram-CKofs55A.js +50 -0
  724. package/dist/instagram-CKofs55A.js.map +1 -0
  725. package/dist/instagram-CcYf5oiM.js +48 -0
  726. package/dist/instagram-CcYf5oiM.js.map +1 -0
  727. package/dist/lit-Ce_uWYM4.js +612 -0
  728. package/dist/lit-Ce_uWYM4.js.map +1 -0
  729. package/dist/lit-DGUVm1Ce.js +557 -0
  730. package/dist/lit-DGUVm1Ce.js.map +1 -0
  731. package/dist/native-icon-paths-CB9evXBM.js +93 -0
  732. package/dist/native-icon-paths-CB9evXBM.js.map +1 -0
  733. package/dist/native-icon-paths-zay-3g_n.js +150 -0
  734. package/dist/native-icon-paths-zay-3g_n.js.map +1 -0
  735. package/dist/react/avatar.d.ts +1 -1
  736. package/dist/react/choice.d.ts +4 -0
  737. package/dist/react/choice.d.ts.map +1 -1
  738. package/dist/react/choice.js +2 -2
  739. package/dist/react/context.d.ts +19 -4
  740. package/dist/react/context.d.ts.map +1 -1
  741. package/dist/react/context.js +4 -4
  742. package/dist/react/empty.d.ts +2 -2
  743. package/dist/react/empty.d.ts.map +1 -1
  744. package/dist/react/empty.js +1 -1
  745. package/dist/react/footer.d.ts +5 -5
  746. package/dist/react/footer.d.ts.map +1 -1
  747. package/dist/react/footer.js +2 -2
  748. package/dist/react/header.d.ts +2 -2
  749. package/dist/react/header.d.ts.map +1 -1
  750. package/dist/react/message.d.ts +4 -0
  751. package/dist/react/message.d.ts.map +1 -1
  752. package/dist/react/message.js +2 -2
  753. package/dist/react/number.d.ts +53 -0
  754. package/dist/react/number.d.ts.map +1 -0
  755. package/dist/react/number.js +25 -0
  756. package/dist/react/page.d.ts +1 -1
  757. package/dist/react/sidebar.d.ts +4 -0
  758. package/dist/react/sidebar.d.ts.map +1 -1
  759. package/dist/react/sidebar.js +2 -2
  760. package/dist/react/table-of-contents.d.ts +19 -0
  761. package/dist/react/table-of-contents.d.ts.map +1 -0
  762. package/dist/react/table-of-contents.js +28 -0
  763. package/dist/{shared-words-CdMDVtXx.js → shared-words-C5cjxMjZ.js} +151 -16
  764. package/dist/shared-words-C5cjxMjZ.js.map +1 -0
  765. package/dist/{shared-words-BtRee8xR.js → shared-words-Cdm7xd-_.js} +163 -28
  766. package/dist/shared-words-Cdm7xd-_.js.map +1 -0
  767. package/package.json +24 -13
  768. package/DS1/1-root/one.semantic.css +0 -735
  769. package/DS1/3-unit/ds-calendar-large.ts +0 -353
  770. package/DS1/3-unit/styles/ds-calendar-large.css +0 -178
  771. package/dist/3-unit/ds-calendar-large.d.ts +0 -142
  772. package/dist/3-unit/ds-calendar-large.d.ts.map +0 -1
  773. package/dist/3-unit/ds-calendar-large.js +0 -308
  774. package/dist/icons-extra-CRxxWFjX.js.map +0 -1
  775. package/dist/icons-extra-H5pqCM_R.js.map +0 -1
  776. package/dist/shared-words-BtRee8xR.js.map +0 -1
  777. package/dist/shared-words-CdMDVtXx.js.map +0 -1
@@ -48,6 +48,9 @@
48
48
  border-end-end-radius: var(--ds-radius);
49
49
  }
50
50
  :host([split]) button[data-icon] { width: var(--ds-control-height); padding: 0; }
51
+ /* An icon with its words hugs them: the icon's own 4px room around its glyph
52
+ replaces the padding on its side and the gap before the words. */
53
+ :host([split]) button[data-icon-words] { gap: 0; padding-inline-start: 0; }
51
54
  :host([split]) ds-icon { --ds-icon-size: 16px; color: inherit; }
52
55
  :host([split]) ds-text { color: inherit; }
53
56
  /* Compact numeric views: a single digit is a square; longer values use the
@@ -64,4 +67,9 @@
64
67
  cursor: default;
65
68
  }
66
69
  :host([split]) button:disabled { cursor: default; opacity: 0.5; }
70
+ /* Plain: the words and icons alone on no ground in any state, in the muted ink, the pointer and
71
+ the chosen segment taking the ink, as text tabs do. */
72
+ :host([split][plain]) button,
73
+ :host([split][plain]) button[aria-pressed="true"] { background: transparent; }
74
+ :host([split][plain]) button[aria-pressed="true"] { color: var(--ds-text-color); }
67
75
  :host([split]) button:focus-visible { outline: 1px solid currentColor; outline-offset: -2px; }
@@ -8,13 +8,32 @@
8
8
  vertical-align: bottom;
9
9
  min-width: 0;
10
10
  flex: 0 0 auto;
11
- width: var(--ds-button-width, max-content);
11
+ width: var(--ds-button-width, var(--_button-inline-size, max-content));
12
12
  max-width: 100%;
13
- /* Clipped along the line only: a word that runs long ends in an ellipsis,
14
- but the descenders of g, y, p and j hang below the 16-unit box as they
15
- would anywhere else, instead of being cut off at its edge. */
16
- overflow-x: clip;
17
- overflow-y: visible;
13
+ overflow: visible;
14
+ /* The button's own tokens, unset by default and in unscaled px as --ds-control-size is,
15
+ resolved here at this button's scale. Each face reads them first and falls back to its
16
+ own measure, so a page that sets none draws exactly as before. --ds-button-inline-size is
17
+ the width: unset hugs, 100% fills, a length is fixed. */
18
+ --_button-size: var(--ds-button-size);
19
+ --_button-height: calc(var(--_button-size) * var(--ds-sf));
20
+ --_button-corner-size: var(--ds-button-corner-size);
21
+ --_button-radius: calc(var(--_button-corner-size) * var(--ds-sf));
22
+ --_button-text-size: var(--ds-button-text-size);
23
+ --_button-font-size: calc(var(--_button-text-size) * var(--ds-sf));
24
+ --_button-padding-size: var(--ds-button-padding-size);
25
+ --_button-padding: calc(var(--_button-padding-size) * var(--ds-sf));
26
+ --_button-inline-size: var(--ds-button-inline-size);
27
+ }
28
+
29
+ /* Other controls drawn on this face keep their own measures: an icon or a count's square, a
30
+ tab, a menu entry, a split run and a paper tab. Their colours still follow the faces. */
31
+ :host(:is([icon], [square], [split], [menu-item], [role="option"], [role^="menuitem"], [role="tab"], [choice], [segment], [paper])) {
32
+ --_button-height: initial;
33
+ --_button-radius: initial;
34
+ --_button-font-size: initial;
35
+ --_button-padding: initial;
36
+ --_button-inline-size: initial;
18
37
  }
19
38
 
20
39
  /* Label width is standard. Fixed grid widths are explicit layout choices. */
@@ -39,9 +58,9 @@
39
58
 
40
59
  :is(button, a) {
41
60
  box-sizing: border-box;
42
- max-height: var(--ds-control-height);
43
- height: var(--ds-control-height);
44
- min-height: var(--ds-control-height);
61
+ max-height: var(--_button-height, var(--ds-control-height));
62
+ height: var(--_button-height, var(--ds-control-height));
63
+ min-height: var(--_button-height, var(--ds-control-height));
45
64
  width: 100%;
46
65
  max-width: 100%;
47
66
  min-width: 0;
@@ -49,20 +68,20 @@
49
68
  align-items: center;
50
69
  justify-content: flex-start;
51
70
  border: none;
52
- border-radius: var(--ds-radius);
71
+ border-radius: var(--_button-radius, var(--ds-radius));
53
72
  corner-shape: var(--ds-corner-shape, round);
54
73
  cursor: pointer;
55
74
  padding: 0;
56
75
  color: var(--button-color, var(--button-text-color));
57
76
  font-family: var(--ds-typeface-regular);
58
- font-size: var(--ds-type-size-default);
77
+ font-size: var(--_button-font-size, var(--ds-type-size-default));
59
78
  line-height: var(--ds-type-lineheight-default);
60
79
  letter-spacing: var(--ds-type-letterspacing-default);
61
80
  -webkit-tap-highlight-color: transparent;
62
81
  white-space: nowrap;
63
82
  overflow-x: clip;
64
83
  overflow-y: visible;
65
- text-overflow: ellipsis;
84
+ text-overflow: clip;
66
85
  /* Default to no-background when no variant is specified */
67
86
  background-color: transparent;
68
87
  text-decoration: none;
@@ -72,7 +91,7 @@
72
91
  :is(button, a) ::slotted(*) {
73
92
  overflow-x: clip;
74
93
  overflow-y: visible;
75
- text-overflow: ellipsis;
94
+ text-overflow: clip;
76
95
  white-space: nowrap;
77
96
  max-width: 100%;
78
97
  text-align: left;
@@ -80,21 +99,27 @@
80
99
  color: inherit;
81
100
  }
82
101
 
102
+ /* Words drawn by a translation key take the button's text size too: unset, the expression
103
+ ds-text resolves for itself (component-metrics.css). */
104
+ :is(button, a) ds-text {
105
+ --ds-type-size-default: var(--_button-font-size, calc(var(--ds-text-size, 14px) * var(--ds-sf, 1)));
106
+ }
107
+
83
108
  :is(button, a)[primary] {
84
- background-color: var(--accent-color);
85
- color: var(--button-text-color-on-light, var(--black));
109
+ background-color: var(--ds-button-primary-fill, var(--accent-color));
110
+ color: var(--ds-button-primary-text, var(--button-text-color-on-light, var(--black)));
86
111
  text-decoration-line: none;
87
112
  font-family: var(--ds-typeface-regular);
88
- padding: 0 calc(var(--ds-button-inset, 4px) * var(--ds-sf));
113
+ padding: 0 var(--_button-padding, calc(var(--ds-button-inset, 4px) * var(--ds-sf)));
89
114
  }
90
115
 
91
116
  /* The secondary face's words are the text's ink, as on `.ds-button--secondary`
92
117
  and the host and slotted faces; the grey is the face, not the words. */
93
118
  :is(button, a)[secondary] {
94
- background-color: var(--button-background-color-secondary);
119
+ background-color: var(--ds-button-secondary-fill, var(--button-background-color-secondary));
95
120
  color: var(--ds-button-color, var(--ds-button-text-color));
96
121
  font-family: var(--ds-typeface-regular);
97
- padding: 0 calc(var(--ds-button-inset, 4px) * var(--ds-sf));
122
+ padding: 0 var(--_button-padding, calc(var(--ds-button-inset, 4px) * var(--ds-sf)));
98
123
  }
99
124
 
100
125
  /* An entry in a menu or a list of options is one row high on this face too,
@@ -159,7 +184,55 @@
159
184
  justify-content: center;
160
185
  }
161
186
 
162
- /* A segment gets its outside corners from the enclosing split control. */
187
+ /* Words and an icon hug them, as on every face (controls.css): this face has
188
+ no gap, and on a filled face the icon takes the padding on its side, its
189
+ own room around the glyph standing in for it. */
190
+ :host(:is([primary], [secondary]):not([icon])) ::slotted(ds-icon:last-child:not(:first-child)) {
191
+ margin-inline-end: calc(-4px * var(--ds-sf));
192
+ }
193
+ :host(:is([primary], [secondary]):not([icon])) ::slotted(ds-icon:first-child:not(:last-child)) {
194
+ margin-inline-start: calc(-4px * var(--ds-sf));
195
+ }
196
+
197
+ /* A paper tab (`ds-tabs paper`) on this face: a row high with its words on
198
+ the sixteen, half a square of room at its sides, in the run's colours,
199
+ rounded at the top only and square at the foot, where it joins the page. */
200
+ :host([paper]) :is(button, a) {
201
+ height: var(--ds-row-height);
202
+ min-height: var(--ds-row-height);
203
+ max-height: var(--ds-row-height);
204
+ align-items: flex-end;
205
+ padding: 0 calc(10px * var(--ds-sf));
206
+ border-radius: var(--ds-radius) var(--ds-radius) 0 0;
207
+ background-color: var(--ds-button-background, transparent);
208
+ color: var(--ds-button-color, var(--button-text-color));
209
+ }
210
+
211
+ /* A segment gets its outside corners from the enclosing split control, or
212
+ from its place in a joined run of tabs (`ds-tabs split`). */
163
213
  :host([segment]) :is(button, a) {
164
214
  border-radius: 0 !important;
165
215
  }
216
+ :host(:is([segment="first"], [segment="only"])) :is(button, a) {
217
+ border-start-start-radius: var(--ds-radius) !important;
218
+ border-end-start-radius: var(--ds-radius) !important;
219
+ }
220
+ :host(:is([segment="last"], [segment="only"])) :is(button, a) {
221
+ border-start-end-radius: var(--ds-radius) !important;
222
+ border-end-end-radius: var(--ds-radius) !important;
223
+ }
224
+
225
+ /* A label is never truncated to meet a chosen width. Round its minimum up,
226
+ so explicit widths and flex layouts retain enough space for all the words. */
227
+ :host(:not([icon]):not([split]):not([menu-item])) {
228
+ min-width: max-content;
229
+ min-width: calc-size(max-content, round(up, size, var(--ds-unit)));
230
+ }
231
+ /* A menu entry keeps a fixed width, so its words may still be cut and fade. */
232
+ :host(:not([menu-item])) :is(button, a),
233
+ :host(:not([menu-item])) :is(button, a) ds-text,
234
+ :host(:not([menu-item])) :is(button, a) ::slotted(*) {
235
+ overflow: visible;
236
+ mask-image: none;
237
+ text-overflow: clip;
238
+ }
@@ -32,3 +32,9 @@
32
32
  ::slotted([slot="media"]) {
33
33
  flex: none;
34
34
  }
35
+
36
+ /* A picture is square where it meets the card, on its foot (1-root/card.css). */
37
+ ::slotted(:is(img, picture, video, canvas, svg)[slot="media"]) {
38
+ border-end-start-radius: 0;
39
+ border-end-end-radius: 0;
40
+ }
@@ -4,6 +4,12 @@
4
4
  stands, so the words begin on the next square (Joachim, 19 October 2026). */
5
5
  :host {
6
6
  --ds-choice-unit: calc(var(--ds-1) * var(--ds-sf));
7
+ /* The box's own tokens, unset by default and in unscaled px: its size (at most the square it
8
+ stands in), its corners and the fill when ticked or mixed. */
9
+ --_checkbox-size: var(--ds-checkbox-size);
10
+ --_checkbox-box: calc(var(--_checkbox-size) * var(--ds-sf));
11
+ --_checkbox-corner-size: var(--ds-checkbox-corner-size);
12
+ --_checkbox-radius: calc(var(--_checkbox-corner-size) * var(--ds-sf));
7
13
  display: inline-grid;
8
14
  align-items: end;
9
15
  justify-items: start;
@@ -16,34 +22,40 @@
16
22
  ::slotted(input[type="checkbox"]) {
17
23
  appearance: none !important;
18
24
  box-sizing: border-box !important;
25
+ position: relative !important;
19
26
  display: grid !important;
20
27
  place-items: center !important;
21
- width: var(--ds-control-height) !important;
28
+ width: var(--_checkbox-box, var(--ds-control-height)) !important;
22
29
  min-width: 0 !important;
23
- height: var(--ds-control-height) !important;
30
+ height: var(--_checkbox-box, var(--ds-control-height)) !important;
24
31
  min-height: 0 !important;
25
32
  margin: 0 !important;
26
33
  padding: 0 !important;
27
34
  border: 1px solid var(--ds-border-color) !important;
28
- border-radius: var(--ds-radius) !important;
35
+ border-radius: var(--_checkbox-radius, var(--ds-radius)) !important;
29
36
  corner-shape: var(--ds-corner-shape, round) !important;
30
37
  background: var(--ds-input-background) !important;
31
38
  color: var(--ds-button-text-color-on-accent) !important;
32
39
  box-shadow: none !important;
33
40
  cursor: pointer !important;
34
41
  }
35
- ::slotted(input:checked), ::slotted(input:indeterminate) { background: var(--ds-accent-color) !important; }
42
+ ::slotted(input:checked), ::slotted(input:indeterminate) { background: var(--ds-checkbox-fill, var(--ds-accent-color)) !important; }
43
+ /* The mark covers the whole box, its line included, so it stands in the middle: an input lays out
44
+ no grid around its ::before, which otherwise starts inside the 1px line. The tick's own drawing
45
+ sits 0.66 of its 16 below the middle, so it is lifted by that share of the box. */
36
46
  ::slotted(input)::before {
37
47
  content: "";
38
- width: var(--ds-control-height);
39
- height: var(--ds-control-height);
48
+ position: absolute;
49
+ inset: -1px;
40
50
  background: currentColor;
41
- mask: var(--ds-checkbox-mark) center / contain no-repeat;
51
+ mask: var(--ds-checkbox-mark) 0 calc(var(--_checkbox-box, var(--ds-control-height)) * -0.041) / 100% 100% no-repeat;
42
52
  opacity: 0;
43
53
  }
44
54
  ::slotted(input:checked)::before { opacity: 1; }
45
55
  ::slotted(input:indeterminate)::before {
46
- width: calc(var(--ds-control-height) / 2);
56
+ inset: 0;
57
+ margin: auto;
58
+ width: calc(var(--_checkbox-box, var(--ds-control-height)) / 2);
47
59
  height: calc(2px * var(--ds-sf));
48
60
  mask: none;
49
61
  opacity: 1;
@@ -2,7 +2,8 @@
2
2
  :host { display: block; width: 100%; max-width: 100%; min-width: 0; }
3
3
  :host([hidden]) { display: none !important; }
4
4
  figure { margin: 0; }
5
- .media { overflow: hidden; border-radius: var(--ds-radius); background: var(--ds-image-background, var(--ds-fill)); }
5
+ /* A picture's corners; a container whose edges cut it (a card's bleed) squares the end and the foot. */
6
+ .media { overflow: hidden; border-radius: var(--ds-radius); border-start-end-radius: var(--ds-image-end-radius, var(--ds-radius)); border-end-end-radius: var(--ds-image-end-radius, var(--ds-radius)); border-end-start-radius: var(--ds-image-foot-radius, var(--ds-radius)); background: var(--ds-image-background, var(--ds-fill)); }
6
7
  img { display: block; width: 100%; max-width: 100%; }
7
8
  figcaption {
8
9
  margin-top: calc(var(--ds-unit) / 2);
@@ -6,6 +6,19 @@
6
6
  :host {
7
7
  display: block;
8
8
  width: 100%;
9
+ /* The field's own tokens (variant="field"), unset by default and in unscaled px, resolved
10
+ here at this field's scale. A context that sets --ds-input-height, --ds-input-padding or
11
+ --ds-input-radius keeps its own; otherwise the field reads these, then its measure. */
12
+ --_input-size: var(--ds-input-size);
13
+ --_input-height: calc(var(--_input-size) * var(--ds-sf));
14
+ --_input-padding-size: var(--ds-input-padding-size);
15
+ --_input-padding: calc(var(--_input-padding-size) * var(--ds-sf));
16
+ --_input-corner-size: var(--ds-input-corner-size);
17
+ --_input-radius: calc(var(--_input-corner-size) * var(--ds-sf));
18
+ }
19
+ /* Its width: unset fills the row as before, a length fixes it. */
20
+ :host([variant="field"]) {
21
+ width: var(--ds-input-inline-size, 100%);
9
22
  }
10
23
 
11
24
  .input-wrapper {
@@ -35,10 +48,10 @@ label {
35
48
  padding: 0 calc(2px * var(--ds-sf, 1));
36
49
  font-size: var(--ds-type-size-default);
37
50
  font-family: var(--ds-typeface-regular);
38
- color: var(--base-darker-grey, #797979);
51
+ /* The field's ink, whole, before focus too: a dimmed grey at half opacity read at 2:1 (color.text-contrast). */
52
+ color: var(--ds-input-color, #2a2a2a);
39
53
  line-height: calc(16px * var(--ds-sf, 1));
40
54
  letter-spacing: calc(-0.4px * var(--ds-sf, 1));
41
- opacity: 0.5;
42
55
  height: var(--ds-input-height, calc(16px * var(--ds-sf, 1)));
43
56
  width: 100%;
44
57
  box-sizing: border-box;
@@ -57,8 +70,9 @@ input {
57
70
  }
58
71
 
59
72
  :is(input, textarea)::placeholder {
60
- color: var(--base-darker-grey, #797979);
61
- opacity: 0.5;
73
+ /* The muted ink, whole: half-transparent grey on the field's fill fell to 1.3:1 (color.text-contrast). */
74
+ color: var(--ds-input-placeholder-color, var(--ds-text-color-muted));
75
+ opacity: 1;
62
76
  }
63
77
 
64
78
  :is(input, textarea):disabled {
@@ -232,6 +246,25 @@ input {
232
246
  line-height: var(--ds-type-lineheight-default);
233
247
  letter-spacing: var(--ds-type-letterspacing-default);
234
248
  }
249
+ /* A field is one control high (16px) on the lower sixteen of its square, as a button and a
250
+ * select are: the square keeps the row it stands in, the face stands at its foot. */
251
+ :host([variant="field"]) {
252
+ --_field-height: var(--ds-input-height, var(--_input-height, var(--ds-control-height)));
253
+ }
254
+ :host([variant="field"]) .input-container {
255
+ min-height: var(--ds-row-height);
256
+ align-items: flex-end;
257
+ }
258
+ :host([variant="field"]) .password-visibility {
259
+ top: auto;
260
+ bottom: 0;
261
+ height: var(--_field-height);
262
+ }
263
+ :host([variant="field"]) input {
264
+ height: var(--_field-height);
265
+ padding: var(--ds-input-padding, 0 var(--_input-padding, calc(4px * var(--ds-sf))));
266
+ border-radius: var(--ds-input-radius, var(--_input-radius, var(--ds-radius)));
267
+ }
235
268
  :host([variant="plain"]) :is(input, textarea) {
236
269
  padding: var(--ds-input-padding, 0);
237
270
  border: 0;
@@ -0,0 +1,127 @@
1
+ @import "../../1-root/component-metrics.css";
2
+
3
+ /* ds-number.css */
4
+ /* A number field: one square high, its face one control high on the lower sixteen, a whole number of squares wide. */
5
+
6
+ :host {
7
+ --ds-number-squares: 4;
8
+ display: inline-flex;
9
+ align-items: flex-end;
10
+ vertical-align: bottom;
11
+ box-sizing: border-box;
12
+ width: calc(var(--ds-number-squares) * var(--ds-unit));
13
+ min-width: 0;
14
+ height: var(--ds-unit);
15
+ }
16
+
17
+ :host([hidden]) {
18
+ display: none;
19
+ }
20
+
21
+ .face {
22
+ display: flex;
23
+ align-items: stretch;
24
+ box-sizing: border-box;
25
+ width: 100%;
26
+ height: var(--ds-control-height);
27
+ border-radius: var(--ds-input-radius, var(--ds-radius));
28
+ corner-shape: var(--ds-corner-shape, round);
29
+ background: var(--ds-number-background, var(--ds-input-background));
30
+ color: var(--ds-number-color, var(--ds-input-color));
31
+ font-family: var(--ds-typeface-regular);
32
+ font-feature-settings: var(--ds-font-features);
33
+ font-size: var(--ds-type-size-default);
34
+ font-weight: var(--ds-type-weight-default);
35
+ letter-spacing: var(--ds-type-letterspacing-default);
36
+ line-height: var(--ds-control-height);
37
+ font-variant-numeric: tabular-nums;
38
+ overflow: hidden;
39
+ }
40
+
41
+ /* Keyboard focus and typing ring the face inside its edge, so nothing around it moves. */
42
+ .face:focus-within {
43
+ outline: 1px solid var(--ds-number-focus, var(--ds-focus-ring));
44
+ outline-offset: -1px;
45
+ }
46
+
47
+ /*
48
+ * The lead: a short label 4px in, or an icon on the face's first sixteen, in the title grey, a control
49
+ * square at least, the handle a drag scrubs. The value starts 4px after it, so after a letter or an
50
+ * icon it stands on the next square, as words do after a picture.
51
+ */
52
+ .lead {
53
+ flex: none;
54
+ display: inline-flex;
55
+ align-items: center;
56
+ justify-content: flex-start;
57
+ box-sizing: border-box;
58
+ min-width: var(--ds-control-height);
59
+ padding: 0 0 0 calc(4px * var(--ds-sf, 1));
60
+ color: var(--ds-number-lead-color, var(--ds-title-color));
61
+ --ds-icon-color: currentColor;
62
+ cursor: ew-resize;
63
+ touch-action: none;
64
+ user-select: none;
65
+ -webkit-user-select: none;
66
+ }
67
+
68
+ .lead:has(ds-icon) {
69
+ justify-content: center;
70
+ padding: 0;
71
+ }
72
+
73
+ .lead__words {
74
+ white-space: nowrap;
75
+ }
76
+
77
+ :host(:hover:not([disabled]):not([readonly])) .lead,
78
+ .face.scrubbing .lead {
79
+ color: var(--ds-number-color, var(--ds-input-color));
80
+ }
81
+
82
+ input {
83
+ flex: 1 1 auto;
84
+ min-width: 0;
85
+ margin: 0;
86
+ border: 0;
87
+ padding: 0 calc(4px * var(--ds-sf, 1));
88
+ background: transparent;
89
+ color: inherit;
90
+ font: inherit;
91
+ letter-spacing: inherit;
92
+ line-height: inherit;
93
+ font-variant-numeric: tabular-nums;
94
+ outline: none;
95
+ text-overflow: clip;
96
+ }
97
+
98
+ input::selection {
99
+ background: color-mix(in srgb, var(--ds-number-focus, var(--ds-focus-ring)) 30%, transparent);
100
+ }
101
+
102
+ .unit {
103
+ flex: none;
104
+ padding-inline-end: calc(4px * var(--ds-sf, 1));
105
+ color: var(--ds-number-lead-color, var(--ds-title-color));
106
+ white-space: nowrap;
107
+ }
108
+
109
+ :host([disabled]) .face {
110
+ opacity: 0.5;
111
+ }
112
+
113
+ :host([disabled]) .lead,
114
+ :host([readonly]) .lead {
115
+ cursor: default;
116
+ }
117
+
118
+ :host([disabled]) input {
119
+ cursor: not-allowed;
120
+ }
121
+
122
+ /* With the value as the handle (`drag="value"`), the field drags up and down until it is typed in. */
123
+ :host([drag="value"]:not([disabled]):not([readonly])) .face:not(:focus-within),
124
+ :host([drag="value"]:not([disabled]):not([readonly])) .face:not(:focus-within) :is(.lead, input) {
125
+ cursor: ns-resize;
126
+ touch-action: none;
127
+ }
@@ -81,6 +81,9 @@
81
81
  letter-spacing: var(--ds-type-letterspacing-default);
82
82
  white-space: nowrap;
83
83
  text-align: center;
84
- text-overflow: ellipsis;
84
+ text-overflow: clip;
85
85
  }
86
+ /* A cut label fades over its last square, never an ellipsis (0-face/cut-fade.ts marks it). */
87
+ .label[data-cut="end"] { mask-image: linear-gradient(to right, #000 calc(100% - var(--ds-unit)), transparent); }
88
+ :host(:dir(rtl)) .label[data-cut="end"] { mask-image: linear-gradient(to left, #000 calc(100% - var(--ds-unit)), transparent); }
86
89
  :host([compact]) .label { padding-inline: 0; }
@@ -1,11 +1,17 @@
1
1
  @import "../../1-root/component-metrics.css";
2
2
 
3
3
  :host {
4
- --ds-choice-unit: var(--ds-control-height);
4
+ /* The switch's own tokens, unset by default: its height in unscaled px (two heights wide less
5
+ 4px, the thumb and its travel following) and the track's colour when off; --ds-switch-track-on is
6
+ the track's colour when on. The compact face keeps its own measures. */
7
+ --_switch-size: var(--ds-switch-size);
8
+ --_switch-unit: calc(var(--_switch-size) * var(--ds-sf));
9
+ --ds-choice-unit: var(--_switch-unit, var(--ds-control-height));
5
10
  display: inline-flex;
6
11
  flex: 0 0 auto;
7
12
  vertical-align: middle;
8
- width: calc(2 * var(--ds-choice-unit));
13
+ /* Two heights wide less 4px: 28 × 16 at base scale, the thumb travelling 12px. */
14
+ width: calc(2 * var(--ds-choice-unit) - 4px * var(--ds-sf));
9
15
  height: var(--ds-choice-unit);
10
16
  }
11
17
  :host([hidden]) { display: none !important; }
@@ -23,7 +29,7 @@
23
29
  border: 0 !important;
24
30
  border-radius: var(--ds-choice-unit) !important;
25
31
  corner-shape: round !important;
26
- background: var(--ds-fill) !important;
32
+ background: var(--ds-switch-track-off, var(--ds-fill)) !important;
27
33
  color: var(--ds-white) !important;
28
34
  box-shadow: none !important;
29
35
  cursor: pointer !important;
@@ -43,7 +49,31 @@
43
49
  ::slotted(button[aria-checked="true"]) {
44
50
  background: var(--ds-switch-track-on) !important;
45
51
  }
46
- ::slotted(button[aria-checked="true"])::after { transform: translateX(var(--ds-choice-unit)); }
52
+ ::slotted(button[aria-checked="true"])::after { transform: translateX(calc(var(--ds-choice-unit) - 4px * var(--ds-sf))); }
47
53
  ::slotted(button:focus-visible) { outline: 2px solid var(--ds-focus-ring) !important; outline-offset: 1px !important; }
48
54
  ::slotted(button:disabled) { cursor: default !important; opacity: .5 !important; }
49
55
  @media (prefers-reduced-motion: reduce) { ::slotted(button)::after { transition: none; } }
56
+
57
+ /* A smaller visible face on a two-square by one-square native hit target. */
58
+ :host([monochrome]) ::slotted(button[aria-checked="true"]) { background: var(--ds-text-color) !important; }
59
+ :host([monochrome]) ::slotted(button[aria-checked="true"])::after { background: var(--ds-paper); }
60
+ :host([compact]) { --ds-choice-unit: var(--ds-control-height); width: calc(40px * var(--ds-sf)); height: calc(20px * var(--ds-sf)); }
61
+ :host([compact]) ::slotted(button),
62
+ :host([compact]) ::slotted(button[aria-checked="true"]) { padding: 0 !important; background: transparent !important; }
63
+ :host([compact]) ::slotted(button)::before {
64
+ content: ""; position: absolute; inset-inline-end: 0; bottom: 0;
65
+ width: calc(24px * var(--ds-sf)); height: calc(12px * var(--ds-sf));
66
+ border-radius: calc(12px * var(--ds-sf)); background: var(--ds-fill);
67
+ box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--ds-text-color) 24%,transparent);
68
+ }
69
+ :host([compact]) ::slotted(button)::after {
70
+ position: absolute; left: calc(18px * var(--ds-sf)); bottom: calc(2px * var(--ds-sf));
71
+ width: calc(8px * var(--ds-sf)); height: calc(8px * var(--ds-sf));
72
+ background: var(--ds-text-color-muted);
73
+ }
74
+ :host([compact]) ::slotted(button[aria-checked="true"])::before { background: var(--ds-switch-track-on); box-shadow: none; }
75
+ :host([compact]) ::slotted(button[aria-checked="true"])::after { transform: translateX(calc(12px * var(--ds-sf))); background: var(--ds-white); }
76
+ :host([compact][monochrome]) ::slotted(button[aria-checked="true"])::before { background: var(--ds-text-color); }
77
+ :host([compact][monochrome]) ::slotted(button[aria-checked="true"])::after { background: var(--ds-paper); }
78
+ :host([compact]:dir(rtl)) ::slotted(button)::after { left: auto; right: calc(18px * var(--ds-sf)); }
79
+ :host([compact]:dir(rtl)) ::slotted(button[aria-checked="true"])::after { transform: translateX(calc(-12px * var(--ds-sf))); }
@@ -7,22 +7,49 @@
7
7
  max-width: 100%;
8
8
  min-width: 0;
9
9
  vertical-align: bottom;
10
+ /* The tag's own tokens, unset by default and in unscaled px: its height, side padding,
11
+ corners and text size; --ds-tag-accent colours it. */
12
+ --_tag-size: var(--ds-tag-size);
13
+ --_tag-height: calc(var(--_tag-size) * var(--ds-sf, 1));
14
+ --_tag-padding-size: var(--ds-tag-padding-size);
15
+ --_tag-padding: calc(var(--_tag-padding-size) * var(--ds-sf, 1));
16
+ --_tag-corner-size: var(--ds-tag-corner-size);
17
+ --_tag-radius: calc(var(--_tag-corner-size) * var(--ds-sf, 1));
18
+ --_tag-text-size: var(--ds-tag-text-size);
19
+ --_tag-font-size: calc(var(--_tag-text-size) * var(--ds-sf, 1));
10
20
  }
11
21
  :host([hidden]) { display: none !important; }
22
+ /* The face stays one control high at the foot of its box, on the lower sixteen,
23
+ even when a row stretches the tag to a square. */
12
24
  .frame {
13
25
  display: block;
26
+ align-self: flex-end;
14
27
  box-sizing: border-box;
15
28
  max-width: 100%;
16
- padding-inline: calc(4px * var(--ds-sf, 1));
17
- border-radius: var(--ds-radius);
29
+ padding-inline: var(--_tag-padding, calc(4px * var(--ds-sf, 1)));
30
+ border-radius: var(--_tag-radius, var(--ds-radius));
18
31
  background: var(--ds-tag-background, light-dark(color-mix(in srgb, var(--ds-tag-accent, var(--ds-grey, #7a7a7a)) 28%, white), color-mix(in srgb, var(--ds-tag-accent, var(--ds-grey, #7a7a7a)) 20%, var(--ds-black, #2a2a2a))));
19
32
  color: var(--ds-tag-color, light-dark(color-mix(in srgb, var(--ds-tag-accent, var(--ds-grey, #7a7a7a)) 45%, black), var(--ds-tag-accent, var(--ds-grey, #7a7a7a))));
20
33
  font-family: var(--ds-typeface-regular);
21
34
  font-feature-settings: var(--ds-font-features);
22
- font-size: var(--ds-type-size-default);
23
- line-height: var(--ds-control-height);
35
+ font-size: var(--_tag-font-size, var(--ds-type-size-default));
36
+ line-height: var(--_tag-height, var(--ds-control-height));
24
37
  letter-spacing: var(--ds-type-letterspacing-default);
25
38
  overflow: hidden;
26
- text-overflow: ellipsis;
39
+ text-overflow: clip;
27
40
  white-space: nowrap;
28
41
  }
42
+ /* The words in a box of their own, so cut words fade over their last square
43
+ while the fill stays whole; never an ellipsis (0-face/cut-fade.ts marks them). */
44
+ .words {
45
+ display: block;
46
+ overflow: hidden;
47
+ text-overflow: clip;
48
+ white-space: nowrap;
49
+ }
50
+ .words[data-cut="end"] {
51
+ mask-image: linear-gradient(to right, #000 calc(100% - var(--ds-unit)), transparent);
52
+ }
53
+ :host(:dir(rtl)) .words[data-cut="end"] {
54
+ mask-image: linear-gradient(to left, #000 calc(100% - var(--ds-unit)), transparent);
55
+ }
@@ -16,10 +16,11 @@
16
16
  line-height: var(--ds-type-lineheight-default);
17
17
  letter-spacing: var(--ds-type-letterspacing-default);
18
18
  text-align: left;
19
- text-transform: var(--text-transform-default);
20
- text-decoration: var(--text-decoration-default);
21
19
  vertical-align: middle;
22
20
  white-space: nowrap;
21
+ word-break: normal;
22
+ overflow-wrap: normal;
23
+ hyphens: manual;
23
24
  color: var(--ds-text-tone, inherit);
24
25
  }
25
26
  :host([hidden]) { display: none !important; }
@@ -43,7 +44,9 @@
43
44
  color: inherit;
44
45
  }
45
46
 
46
- /* Text someone wrote: shown as it stands, cut with an ellipsis at its width. */
47
+ /* Text someone wrote: shown as it stands. Cut at its width, it fades over its
48
+ last square, never an ellipsis: the element marks itself `data-cut="end"`
49
+ while its words do not fit (0-face/cut-fade.ts). */
47
50
  :host([literal]) {
48
51
  height: auto;
49
52
  min-height: var(--ds-control-height);
@@ -57,9 +60,15 @@
57
60
  font-weight: var(--ds-type-weight-default);
58
61
  line-height: var(--ds-type-lineheight-default);
59
62
  letter-spacing: var(--ds-type-letterspacing-default);
60
- text-overflow: ellipsis;
63
+ text-overflow: clip;
61
64
  white-space: nowrap;
62
65
  }
66
+ :host([literal]:not([wrap])[data-cut="end"]) {
67
+ mask-image: linear-gradient(to right, #000 calc(100% - var(--ds-unit)), transparent);
68
+ }
69
+ :host([literal]:not([wrap])[data-cut="end"]:dir(rtl)) {
70
+ mask-image: linear-gradient(to left, #000 calc(100% - var(--ds-unit)), transparent);
71
+ }
63
72
 
64
73
  /*
65
74
  * Tone, size, strength and wrapping work alike for a translation key and for
@@ -3,7 +3,10 @@
3
3
  :host([hidden]) { display: none !important; }
4
4
  .frame { display: flex; align-items: center; box-sizing: border-box; max-width: 100%; min-width: 0; height: var(--ds-row-height); padding-inline-start: calc(4px * var(--ds-sf)); background: var(--ds-fill); color: var(--ds-text-color); border-radius: var(--ds-radius); font-family: var(--ds-typeface-regular); font-size: var(--ds-type-size-default); line-height: var(--ds-type-lineheight-default); letter-spacing: var(--ds-type-letterspacing-default); }
5
5
  .copy { display: flex; align-items: baseline; gap: calc(4px * var(--ds-sf)); min-width: 0; padding-inline: calc(4px * var(--ds-sf)); }
6
- .copy > span, small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
6
+ .copy > span, small { overflow: hidden; text-overflow: clip; white-space: nowrap; min-width: 0; }
7
+ /* Cut words fade over their last square, never an ellipsis (0-face/cut-fade.ts marks them). */
8
+ :is(.copy > span, small)[data-cut="end"] { mask-image: linear-gradient(to right, #000 calc(100% - var(--ds-unit)), transparent); }
9
+ :host(:dir(rtl)) :is(.copy > span, small)[data-cut="end"] { mask-image: linear-gradient(to left, #000 calc(100% - var(--ds-unit)), transparent); }
7
10
  small { font-size: var(--ds-type-size-small); color: var(--ds-text-color-muted); }
8
11
  ds-button { flex: 0 0 auto; --ds-button-height: var(--ds-row-height); --ds-button-width: var(--ds-row-height); }
9
12
  ::slotted([slot="leading"]) { flex: 0 0 auto; }