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

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 (782) 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 +443 -0
  5. package/DS1/0-face/constraint-site.ts +201 -0
  6. package/DS1/0-face/constraints.ts +308 -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/fault-lines.ts +159 -0
  13. package/DS1/0-face/feedback-overlays.ts +5 -3
  14. package/DS1/0-face/feedback.ts +3 -0
  15. package/DS1/0-face/focus-vision.swift +31 -0
  16. package/DS1/0-face/focus.ts +181 -0
  17. package/DS1/0-face/google-face-metrics.json +102 -0
  18. package/DS1/0-face/grid.ts +61 -4
  19. package/DS1/0-face/i18n.ts +36 -18
  20. package/DS1/0-face/layout-inspector.ts +124 -98
  21. package/DS1/0-face/preference-options.ts +4 -0
  22. package/DS1/0-face/scaling.ts +21 -3
  23. package/DS1/0-face/shape.ts +43 -0
  24. package/DS1/0-face/text-contrast.ts +164 -0
  25. package/DS1/0-face/theme-bootstrap.js +43 -0
  26. package/DS1/0-face/toast-queue.ts +7 -1
  27. package/DS1/0-face/translations/da.json +10 -1
  28. package/DS1/0-face/translations/de.json +10 -1
  29. package/DS1/0-face/translations/en.json +10 -1
  30. package/DS1/0-face/translations/es.json +10 -1
  31. package/DS1/0-face/translations/fi.json +10 -1
  32. package/DS1/0-face/translations/fr.json +10 -1
  33. package/DS1/0-face/translations/is.json +10 -1
  34. package/DS1/0-face/translations/it.json +10 -1
  35. package/DS1/0-face/translations/ja.json +10 -1
  36. package/DS1/0-face/translations/ko.json +10 -1
  37. package/DS1/0-face/translations/nb.json +10 -1
  38. package/DS1/0-face/translations/pt-BR.json +10 -1
  39. package/DS1/0-face/translations/pt.json +10 -1
  40. package/DS1/0-face/translations/sv.json +10 -1
  41. package/DS1/0-face/translations/zh.json +10 -1
  42. package/DS1/0-face/word-wrap.ts +113 -0
  43. package/DS1/1-root/card.css +47 -20
  44. package/DS1/1-root/carousel.css +7 -0
  45. package/DS1/1-root/cjk.css +1 -1
  46. package/DS1/1-root/component-tokens.css +3 -2
  47. package/DS1/1-root/context.css +44 -6
  48. package/DS1/1-root/controls.css +99 -8
  49. package/DS1/1-root/document.css +9 -1
  50. package/DS1/1-root/empty.css +46 -5
  51. package/DS1/1-root/figures.css +50 -3
  52. package/DS1/1-root/fonts.css +1 -1
  53. package/DS1/1-root/footer.css +147 -16
  54. package/DS1/1-root/foundation.ts +60 -0
  55. package/DS1/1-root/guide.css +35 -0
  56. package/DS1/1-root/header.css +30 -9
  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 +15 -7
  60. package/DS1/1-root/progress.css +9 -1
  61. package/DS1/1-root/row.css +68 -2
  62. package/DS1/1-root/table.css +47 -4
  63. package/DS1/1-root/text.css +26 -0
  64. package/DS1/2-core/button-split.ts +10 -5
  65. package/DS1/2-core/chart/chart.css +71 -2
  66. package/DS1/2-core/chart/grid-chart.ts +2 -1
  67. package/DS1/2-core/ds-activity.ts +32 -0
  68. package/DS1/2-core/ds-app-chrome.ts +1 -0
  69. package/DS1/2-core/ds-avatar.ts +75 -7
  70. package/DS1/2-core/ds-badge.ts +8 -1
  71. package/DS1/2-core/ds-button.ts +7 -1
  72. package/DS1/2-core/ds-chart.ts +184 -49
  73. package/DS1/2-core/ds-cycle.ts +27 -186
  74. package/DS1/2-core/ds-device-bezel.ts +1 -0
  75. package/DS1/2-core/ds-empty.ts +6 -4
  76. package/DS1/2-core/ds-input.ts +23 -3
  77. package/DS1/2-core/ds-message.ts +22 -0
  78. package/DS1/2-core/ds-number.ts +349 -0
  79. package/DS1/2-core/ds-progress.ts +3 -0
  80. package/DS1/2-core/ds-radio.ts +3 -0
  81. package/DS1/2-core/ds-stat.ts +3 -0
  82. package/DS1/2-core/ds-switch.ts +5 -1
  83. package/DS1/2-core/ds-tag.ts +9 -2
  84. package/DS1/2-core/ds-text.ts +7 -0
  85. package/DS1/2-core/ds-token.ts +3 -0
  86. package/DS1/2-core/ds-tooltip.ts +17 -2
  87. package/DS1/2-core/ds-window.ts +1 -0
  88. package/DS1/2-core/generated/ds-icon-map.ts +47 -5
  89. package/DS1/2-core/generated/icons-extra.ts +24 -3
  90. package/DS1/2-core/generated/icons-immediate.ts +3 -3
  91. package/DS1/2-core/number-expression.ts +64 -0
  92. package/DS1/2-core/styles/ds-activity.css +16 -0
  93. package/DS1/2-core/styles/ds-badge.css +4 -1
  94. package/DS1/2-core/styles/ds-button-host.css +47 -13
  95. package/DS1/2-core/styles/ds-button-split.css +8 -0
  96. package/DS1/2-core/styles/ds-button.css +94 -20
  97. package/DS1/2-core/styles/ds-card.css +6 -0
  98. package/DS1/2-core/styles/ds-checkbox.css +20 -8
  99. package/DS1/2-core/styles/ds-image.css +2 -1
  100. package/DS1/2-core/styles/ds-input.css +37 -4
  101. package/DS1/2-core/styles/ds-number.css +127 -0
  102. package/DS1/2-core/styles/ds-radio.css +4 -1
  103. package/DS1/2-core/styles/ds-switch.css +34 -4
  104. package/DS1/2-core/styles/ds-tag.css +34 -6
  105. package/DS1/2-core/styles/ds-text.css +13 -4
  106. package/DS1/2-core/styles/ds-token.css +4 -1
  107. package/DS1/2-core/styles/ds-tooltip.css +13 -7
  108. package/DS1/3-unit/calendar-base.ts +5 -2
  109. package/DS1/3-unit/context-trigger.ts +29 -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 +47 -11
  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-table.ts +2 -1
  122. package/DS1/3-unit/ds-tabs.ts +40 -2
  123. package/DS1/3-unit/styles/ds-calendar.css +356 -42
  124. package/DS1/3-unit/styles/ds-context.css +38 -0
  125. package/DS1/3-unit/styles/ds-list.css +26 -1
  126. package/DS1/3-unit/styles/ds-matrix.css +4 -1
  127. package/DS1/3-unit/styles/ds-row.css +39 -0
  128. package/DS1/3-unit/styles/ds-select.css +22 -12
  129. package/DS1/3-unit/styles/ds-sidebar.css +16 -2
  130. package/DS1/3-unit/styles/ds-table-of-contents.css +40 -0
  131. package/DS1/3-unit/styles/ds-tabs.css +95 -0
  132. package/DS1/4-page/ds-container.ts +2 -1
  133. package/DS1/4-page/ds-document.ts +3 -0
  134. package/DS1/4-page/ds-footer.ts +93 -18
  135. package/DS1/4-page/ds-header.ts +5 -1
  136. package/DS1/4-page/ds-overlay.ts +8 -3
  137. package/DS1/4-page/ds-page.ts +22 -1
  138. package/DS1/4-page/email.ts +7 -4
  139. package/DS1/4-page/styles/ds-container.css +0 -1
  140. package/DS1/4-page/styles/ds-overlay.css +7 -0
  141. package/DS1/4-page/styles/ds-page.css +10 -0
  142. package/DS1/5-visual-kit/app-chrome.ts +129 -0
  143. package/DS1/5-visual-kit/bezels.ts +394 -0
  144. package/DS1/5-visual-kit/browser-icons.LICENSE +53 -0
  145. package/DS1/5-visual-kit/browser-icons.ts +47 -0
  146. package/DS1/5-visual-kit/browser-styles.ts +53 -0
  147. package/DS1/5-visual-kit/device-bezel.ts +55 -0
  148. package/DS1/5-visual-kit/instagram-frame.ts +15 -0
  149. package/DS1/5-visual-kit/instagram.ts +41 -0
  150. package/DS1/5-visual-kit/mobile-chrome.ts +25 -0
  151. package/DS1/5-visual-kit/native-icon-paths.ts +145 -0
  152. package/DS1/5-visual-kit/window.ts +22 -0
  153. package/DS1/components.ts +1 -0
  154. package/DS1/index.ts +14 -1
  155. package/DS1/react/choice.ts +4 -2
  156. package/DS1/react/context.ts +11 -6
  157. package/DS1/react/empty.ts +2 -2
  158. package/DS1/react/footer.ts +5 -5
  159. package/DS1/react/header.ts +1 -1
  160. package/DS1/react/message.ts +4 -2
  161. package/DS1/react/number.ts +53 -0
  162. package/DS1/react/sidebar.ts +4 -2
  163. package/DS1/react/table-of-contents.ts +28 -0
  164. package/DS1/x-flag/LICENSE.md +26 -0
  165. package/DS1/x-flag/ac.svg +1 -0
  166. package/DS1/x-flag/ad.svg +1 -0
  167. package/DS1/x-flag/ae.svg +1 -0
  168. package/DS1/x-flag/af.svg +1 -0
  169. package/DS1/x-flag/ag.svg +1 -0
  170. package/DS1/x-flag/ai.svg +1 -0
  171. package/DS1/x-flag/al.svg +1 -0
  172. package/DS1/x-flag/am.svg +1 -0
  173. package/DS1/x-flag/ao.svg +1 -0
  174. package/DS1/x-flag/aq.svg +1 -0
  175. package/DS1/x-flag/ar.svg +1 -0
  176. package/DS1/x-flag/as.svg +1 -0
  177. package/DS1/x-flag/at.svg +1 -0
  178. package/DS1/x-flag/au.svg +1 -0
  179. package/DS1/x-flag/aw.svg +1 -0
  180. package/DS1/x-flag/ax.svg +1 -0
  181. package/DS1/x-flag/az.svg +1 -0
  182. package/DS1/x-flag/ba.svg +1 -0
  183. package/DS1/x-flag/bb.svg +1 -0
  184. package/DS1/x-flag/bd.svg +1 -0
  185. package/DS1/x-flag/be.svg +1 -0
  186. package/DS1/x-flag/bf.svg +1 -0
  187. package/DS1/x-flag/bg.svg +1 -0
  188. package/DS1/x-flag/bh.svg +1 -0
  189. package/DS1/x-flag/bi.svg +1 -0
  190. package/DS1/x-flag/bj.svg +1 -0
  191. package/DS1/x-flag/bl.svg +1 -0
  192. package/DS1/x-flag/bm.svg +1 -0
  193. package/DS1/x-flag/bn.svg +1 -0
  194. package/DS1/x-flag/bo.svg +1 -0
  195. package/DS1/x-flag/bq-bo.svg +1 -0
  196. package/DS1/x-flag/bq-sa.svg +1 -0
  197. package/DS1/x-flag/bq-se.svg +1 -0
  198. package/DS1/x-flag/bq.svg +1 -0
  199. package/DS1/x-flag/br.svg +1 -0
  200. package/DS1/x-flag/bs.svg +1 -0
  201. package/DS1/x-flag/bt.svg +1 -0
  202. package/DS1/x-flag/bv.svg +1 -0
  203. package/DS1/x-flag/bw.svg +1 -0
  204. package/DS1/x-flag/by.svg +1 -0
  205. package/DS1/x-flag/bz.svg +1 -0
  206. package/DS1/x-flag/ca.svg +1 -0
  207. package/DS1/x-flag/cc.svg +1 -0
  208. package/DS1/x-flag/cd.svg +1 -0
  209. package/DS1/x-flag/cf.svg +1 -0
  210. package/DS1/x-flag/cg.svg +1 -0
  211. package/DS1/x-flag/ch.svg +1 -0
  212. package/DS1/x-flag/ci.svg +1 -0
  213. package/DS1/x-flag/ck.svg +1 -0
  214. package/DS1/x-flag/cl.svg +1 -0
  215. package/DS1/x-flag/cm.svg +1 -0
  216. package/DS1/x-flag/cn.svg +1 -0
  217. package/DS1/x-flag/co.svg +1 -0
  218. package/DS1/x-flag/cr.svg +1 -0
  219. package/DS1/x-flag/cu.svg +1 -0
  220. package/DS1/x-flag/cv.svg +1 -0
  221. package/DS1/x-flag/cw.svg +1 -0
  222. package/DS1/x-flag/cx.svg +1 -0
  223. package/DS1/x-flag/cy.svg +1 -0
  224. package/DS1/x-flag/cz.svg +1 -0
  225. package/DS1/x-flag/de.svg +1 -0
  226. package/DS1/x-flag/dj.svg +1 -0
  227. package/DS1/x-flag/dk.svg +1 -0
  228. package/DS1/x-flag/dm.svg +1 -0
  229. package/DS1/x-flag/do.svg +1 -0
  230. package/DS1/x-flag/dz.svg +1 -0
  231. package/DS1/x-flag/ec.svg +1 -0
  232. package/DS1/x-flag/ee.svg +1 -0
  233. package/DS1/x-flag/eg.svg +1 -0
  234. package/DS1/x-flag/eh.svg +1 -0
  235. package/DS1/x-flag/er.svg +1 -0
  236. package/DS1/x-flag/es-ct.svg +1 -0
  237. package/DS1/x-flag/es.svg +1 -0
  238. package/DS1/x-flag/et.svg +1 -0
  239. package/DS1/x-flag/eu.svg +1 -0
  240. package/DS1/x-flag/fi.svg +1 -0
  241. package/DS1/x-flag/fj.svg +1 -0
  242. package/DS1/x-flag/fk.svg +1 -0
  243. package/DS1/x-flag/fm.svg +1 -0
  244. package/DS1/x-flag/fo.svg +1 -0
  245. package/DS1/x-flag/fr.svg +1 -0
  246. package/DS1/x-flag/ga.svg +1 -0
  247. package/DS1/x-flag/gb-eng.svg +1 -0
  248. package/DS1/x-flag/gb-nir.svg +1 -0
  249. package/DS1/x-flag/gb-sct.svg +1 -0
  250. package/DS1/x-flag/gb-wls.svg +1 -0
  251. package/DS1/x-flag/gb.svg +1 -0
  252. package/DS1/x-flag/gd.svg +1 -0
  253. package/DS1/x-flag/ge.svg +1 -0
  254. package/DS1/x-flag/gf.svg +1 -0
  255. package/DS1/x-flag/gg.svg +1 -0
  256. package/DS1/x-flag/gh.svg +1 -0
  257. package/DS1/x-flag/gi.svg +1 -0
  258. package/DS1/x-flag/gl.svg +1 -0
  259. package/DS1/x-flag/gm.svg +1 -0
  260. package/DS1/x-flag/gn.svg +1 -0
  261. package/DS1/x-flag/gp.svg +1 -0
  262. package/DS1/x-flag/gq.svg +1 -0
  263. package/DS1/x-flag/gr.svg +1 -0
  264. package/DS1/x-flag/gs.svg +1 -0
  265. package/DS1/x-flag/gt.svg +1 -0
  266. package/DS1/x-flag/gu.svg +1 -0
  267. package/DS1/x-flag/gw.svg +1 -0
  268. package/DS1/x-flag/gy.svg +1 -0
  269. package/DS1/x-flag/hk.svg +1 -0
  270. package/DS1/x-flag/hm.svg +1 -0
  271. package/DS1/x-flag/hn.svg +1 -0
  272. package/DS1/x-flag/hr.svg +1 -0
  273. package/DS1/x-flag/ht.svg +1 -0
  274. package/DS1/x-flag/hu.svg +1 -0
  275. package/DS1/x-flag/ic.svg +1 -0
  276. package/DS1/x-flag/id.svg +1 -0
  277. package/DS1/x-flag/ie.svg +1 -0
  278. package/DS1/x-flag/il.svg +1 -0
  279. package/DS1/x-flag/im.svg +1 -0
  280. package/DS1/x-flag/in.svg +1 -0
  281. package/DS1/x-flag/io.svg +1 -0
  282. package/DS1/x-flag/iq.svg +1 -0
  283. package/DS1/x-flag/ir.svg +1 -0
  284. package/DS1/x-flag/is.svg +1 -0
  285. package/DS1/x-flag/it.svg +1 -0
  286. package/DS1/x-flag/je.svg +1 -0
  287. package/DS1/x-flag/jm.svg +1 -0
  288. package/DS1/x-flag/jo.svg +1 -0
  289. package/DS1/x-flag/jp.svg +1 -0
  290. package/DS1/x-flag/ke.svg +1 -0
  291. package/DS1/x-flag/kg.svg +1 -0
  292. package/DS1/x-flag/kh.svg +1 -0
  293. package/DS1/x-flag/ki.svg +1 -0
  294. package/DS1/x-flag/km.svg +1 -0
  295. package/DS1/x-flag/kn.svg +1 -0
  296. package/DS1/x-flag/kp.svg +1 -0
  297. package/DS1/x-flag/kr.svg +1 -0
  298. package/DS1/x-flag/kw.svg +1 -0
  299. package/DS1/x-flag/ky.svg +1 -0
  300. package/DS1/x-flag/kz.svg +1 -0
  301. package/DS1/x-flag/la.svg +1 -0
  302. package/DS1/x-flag/lb.svg +1 -0
  303. package/DS1/x-flag/lc.svg +1 -0
  304. package/DS1/x-flag/li.svg +1 -0
  305. package/DS1/x-flag/lk.svg +1 -0
  306. package/DS1/x-flag/lr.svg +1 -0
  307. package/DS1/x-flag/ls.svg +1 -0
  308. package/DS1/x-flag/lt.svg +1 -0
  309. package/DS1/x-flag/lu.svg +1 -0
  310. package/DS1/x-flag/lv.svg +1 -0
  311. package/DS1/x-flag/ly.svg +1 -0
  312. package/DS1/x-flag/ma.svg +1 -0
  313. package/DS1/x-flag/mc.svg +1 -0
  314. package/DS1/x-flag/md.svg +1 -0
  315. package/DS1/x-flag/me.svg +1 -0
  316. package/DS1/x-flag/mf.svg +1 -0
  317. package/DS1/x-flag/mg.svg +1 -0
  318. package/DS1/x-flag/mh.svg +1 -0
  319. package/DS1/x-flag/mk.svg +1 -0
  320. package/DS1/x-flag/ml.svg +1 -0
  321. package/DS1/x-flag/mm.svg +1 -0
  322. package/DS1/x-flag/mn.svg +1 -0
  323. package/DS1/x-flag/mo.svg +1 -0
  324. package/DS1/x-flag/mp.svg +1 -0
  325. package/DS1/x-flag/mq.svg +1 -0
  326. package/DS1/x-flag/mr.svg +1 -0
  327. package/DS1/x-flag/ms.svg +1 -0
  328. package/DS1/x-flag/mt.svg +1 -0
  329. package/DS1/x-flag/mu.svg +1 -0
  330. package/DS1/x-flag/mv.svg +1 -0
  331. package/DS1/x-flag/mw.svg +1 -0
  332. package/DS1/x-flag/mx.svg +1 -0
  333. package/DS1/x-flag/my.svg +1 -0
  334. package/DS1/x-flag/mz.svg +1 -0
  335. package/DS1/x-flag/na.svg +1 -0
  336. package/DS1/x-flag/nc.svg +1 -0
  337. package/DS1/x-flag/ne.svg +1 -0
  338. package/DS1/x-flag/nf.svg +1 -0
  339. package/DS1/x-flag/ng.svg +1 -0
  340. package/DS1/x-flag/ni.svg +1 -0
  341. package/DS1/x-flag/nl.svg +1 -0
  342. package/DS1/x-flag/no.svg +1 -0
  343. package/DS1/x-flag/np.svg +1 -0
  344. package/DS1/x-flag/nr.svg +1 -0
  345. package/DS1/x-flag/nu.svg +1 -0
  346. package/DS1/x-flag/nz.svg +1 -0
  347. package/DS1/x-flag/om.svg +1 -0
  348. package/DS1/x-flag/pa.svg +1 -0
  349. package/DS1/x-flag/pe.svg +1 -0
  350. package/DS1/x-flag/pf.svg +1 -0
  351. package/DS1/x-flag/pg.svg +1 -0
  352. package/DS1/x-flag/ph.svg +1 -0
  353. package/DS1/x-flag/pk.svg +1 -0
  354. package/DS1/x-flag/pl.svg +1 -0
  355. package/DS1/x-flag/pm.svg +1 -0
  356. package/DS1/x-flag/pn.svg +1 -0
  357. package/DS1/x-flag/pr.svg +1 -0
  358. package/DS1/x-flag/ps.svg +1 -0
  359. package/DS1/x-flag/pt.svg +1 -0
  360. package/DS1/x-flag/pw.svg +1 -0
  361. package/DS1/x-flag/py.svg +1 -0
  362. package/DS1/x-flag/qa.svg +1 -0
  363. package/DS1/x-flag/re.svg +1 -0
  364. package/DS1/x-flag/ro.svg +1 -0
  365. package/DS1/x-flag/rs.svg +1 -0
  366. package/DS1/x-flag/ru.svg +1 -0
  367. package/DS1/x-flag/rw.svg +1 -0
  368. package/DS1/x-flag/sa.svg +1 -0
  369. package/DS1/x-flag/sb.svg +1 -0
  370. package/DS1/x-flag/sc.svg +1 -0
  371. package/DS1/x-flag/sd.svg +1 -0
  372. package/DS1/x-flag/se.svg +1 -0
  373. package/DS1/x-flag/sg.svg +1 -0
  374. package/DS1/x-flag/sh.svg +1 -0
  375. package/DS1/x-flag/si.svg +1 -0
  376. package/DS1/x-flag/sj.svg +1 -0
  377. package/DS1/x-flag/sk.svg +1 -0
  378. package/DS1/x-flag/sl.svg +1 -0
  379. package/DS1/x-flag/sm.svg +1 -0
  380. package/DS1/x-flag/sn.svg +1 -0
  381. package/DS1/x-flag/so.svg +1 -0
  382. package/DS1/x-flag/sr.svg +1 -0
  383. package/DS1/x-flag/ss.svg +1 -0
  384. package/DS1/x-flag/st.svg +1 -0
  385. package/DS1/x-flag/sv.svg +1 -0
  386. package/DS1/x-flag/sx.svg +1 -0
  387. package/DS1/x-flag/sy.svg +1 -0
  388. package/DS1/x-flag/sz.svg +1 -0
  389. package/DS1/x-flag/ta.svg +1 -0
  390. package/DS1/x-flag/tc.svg +1 -0
  391. package/DS1/x-flag/td.svg +1 -0
  392. package/DS1/x-flag/tf.svg +1 -0
  393. package/DS1/x-flag/tg.svg +1 -0
  394. package/DS1/x-flag/th.svg +1 -0
  395. package/DS1/x-flag/tj.svg +1 -0
  396. package/DS1/x-flag/tk.svg +1 -0
  397. package/DS1/x-flag/tl.svg +1 -0
  398. package/DS1/x-flag/tm.svg +1 -0
  399. package/DS1/x-flag/tn.svg +1 -0
  400. package/DS1/x-flag/to.svg +1 -0
  401. package/DS1/x-flag/tr.svg +1 -0
  402. package/DS1/x-flag/tt.svg +1 -0
  403. package/DS1/x-flag/tv.svg +1 -0
  404. package/DS1/x-flag/tw.svg +1 -0
  405. package/DS1/x-flag/tz.svg +1 -0
  406. package/DS1/x-flag/ua.svg +1 -0
  407. package/DS1/x-flag/ug.svg +1 -0
  408. package/DS1/x-flag/um.svg +1 -0
  409. package/DS1/x-flag/us.svg +1 -0
  410. package/DS1/x-flag/uy.svg +1 -0
  411. package/DS1/x-flag/uz.svg +1 -0
  412. package/DS1/x-flag/va.svg +1 -0
  413. package/DS1/x-flag/vc.svg +1 -0
  414. package/DS1/x-flag/ve.svg +1 -0
  415. package/DS1/x-flag/vg.svg +1 -0
  416. package/DS1/x-flag/vi.svg +1 -0
  417. package/DS1/x-flag/vn.svg +1 -0
  418. package/DS1/x-flag/vu.svg +1 -0
  419. package/DS1/x-flag/wf.svg +1 -0
  420. package/DS1/x-flag/ws.svg +1 -0
  421. package/DS1/x-flag/xk.svg +1 -0
  422. package/DS1/x-flag/ye.svg +1 -0
  423. package/DS1/x-flag/yt.svg +1 -0
  424. package/DS1/x-flag/za.svg +1 -0
  425. package/DS1/x-flag/zm.svg +1 -0
  426. package/DS1/x-flag/zw.svg +1 -0
  427. package/DS1/x-icon/android.svg +9 -0
  428. package/DS1/x-icon/arrange-check.svg +1 -1
  429. package/DS1/x-icon/arrange-page.svg +1 -1
  430. package/DS1/x-icon/chrome.svg +7 -0
  431. package/DS1/x-icon/edge-brand.svg +6 -0
  432. package/DS1/x-icon/firefox.svg +4 -0
  433. package/DS1/x-icon/health.svg +3 -0
  434. package/DS1/x-icon/left.svg +2 -3
  435. package/DS1/x-icon/linux.svg +1 -0
  436. package/DS1/x-icon/material.svg +1 -0
  437. package/DS1/x-icon/milestone-planned.svg +3 -0
  438. package/DS1/x-icon/milestone.svg +3 -0
  439. package/DS1/x-icon/more.svg +1 -5
  440. package/DS1/x-icon/network.svg +3 -0
  441. package/DS1/x-icon/opera.svg +4 -0
  442. package/DS1/x-icon/prediction.svg +3 -0
  443. package/DS1/x-icon/priority-high.svg +3 -0
  444. package/DS1/x-icon/priority-low.svg +3 -0
  445. package/DS1/x-icon/priority-medium.svg +3 -0
  446. package/DS1/x-icon/project.svg +3 -0
  447. package/DS1/x-icon/redo.svg +2 -2
  448. package/DS1/x-icon/repeat-small.svg +3 -0
  449. package/DS1/x-icon/safari.svg +4 -0
  450. package/DS1/x-icon/scaling.svg +3 -0
  451. package/DS1/x-icon/tabs.svg +4 -0
  452. package/DS1/x-icon/windows.svg +5 -0
  453. package/README.md +3 -3
  454. package/dist/0-face/button-label.d.ts +5 -0
  455. package/dist/0-face/button-label.d.ts.map +1 -0
  456. package/dist/0-face/button-label.js +31 -0
  457. package/dist/0-face/calendar.d.ts +1 -1
  458. package/dist/0-face/calendar.d.ts.map +1 -1
  459. package/dist/0-face/calendar.js +6 -3
  460. package/dist/0-face/carousel.d.ts +9 -0
  461. package/dist/0-face/carousel.d.ts.map +1 -1
  462. package/dist/0-face/carousel.js +80 -0
  463. package/dist/0-face/constraint-panel.d.ts +43 -0
  464. package/dist/0-face/constraint-panel.d.ts.map +1 -0
  465. package/dist/0-face/constraint-panel.js +451 -0
  466. package/dist/0-face/constraint-site.d.ts +73 -0
  467. package/dist/0-face/constraint-site.d.ts.map +1 -0
  468. package/dist/0-face/constraint-site.js +186 -0
  469. package/dist/0-face/constraints.d.ts +47 -0
  470. package/dist/0-face/constraints.d.ts.map +1 -0
  471. package/dist/0-face/constraints.js +274 -0
  472. package/dist/0-face/copy-text.js +1 -1
  473. package/dist/0-face/cut-fade.d.ts +112 -0
  474. package/dist/0-face/cut-fade.d.ts.map +1 -0
  475. package/dist/0-face/cut-fade.js +274 -0
  476. package/dist/0-face/define.d.ts.map +1 -1
  477. package/dist/0-face/define.js +24 -3
  478. package/dist/0-face/face-correction.d.ts +51 -0
  479. package/dist/0-face/face-correction.d.ts.map +1 -0
  480. package/dist/0-face/face-correction.js +80 -0
  481. package/dist/0-face/failures.d.ts +16 -0
  482. package/dist/0-face/failures.d.ts.map +1 -0
  483. package/dist/0-face/failures.js +21 -0
  484. package/dist/0-face/fault-lines.d.ts +20 -0
  485. package/dist/0-face/fault-lines.d.ts.map +1 -0
  486. package/dist/0-face/fault-lines.js +172 -0
  487. package/dist/0-face/feedback-overlays.d.ts.map +1 -1
  488. package/dist/0-face/feedback-overlays.js +5 -3
  489. package/dist/0-face/feedback.d.ts +2 -0
  490. package/dist/0-face/feedback.d.ts.map +1 -1
  491. package/dist/0-face/feedback.js +1 -0
  492. package/dist/0-face/focus.d.ts +71 -0
  493. package/dist/0-face/focus.d.ts.map +1 -0
  494. package/dist/0-face/focus.js +196 -0
  495. package/dist/0-face/grid.d.ts +11 -1
  496. package/dist/0-face/grid.d.ts.map +1 -1
  497. package/dist/0-face/grid.js +90 -4
  498. package/dist/0-face/i18n.d.ts.map +1 -1
  499. package/dist/0-face/i18n.js +38 -16
  500. package/dist/0-face/layout-inspector.d.ts +5 -1
  501. package/dist/0-face/layout-inspector.d.ts.map +1 -1
  502. package/dist/0-face/layout-inspector.js +130 -104
  503. package/dist/0-face/preference-options.d.ts +4 -0
  504. package/dist/0-face/preference-options.d.ts.map +1 -1
  505. package/dist/0-face/scaling.d.ts +8 -1
  506. package/dist/0-face/scaling.d.ts.map +1 -1
  507. package/dist/0-face/scaling.js +19 -2
  508. package/dist/0-face/shape.d.ts +35 -0
  509. package/dist/0-face/shape.d.ts.map +1 -0
  510. package/dist/0-face/shape.js +23 -0
  511. package/dist/0-face/text-contrast.d.ts +22 -0
  512. package/dist/0-face/text-contrast.d.ts.map +1 -0
  513. package/dist/0-face/text-contrast.js +178 -0
  514. package/dist/0-face/theme-bootstrap.js +56 -0
  515. package/dist/0-face/toast-queue.d.ts +4 -0
  516. package/dist/0-face/toast-queue.d.ts.map +1 -1
  517. package/dist/0-face/toast-queue.js +4 -1
  518. package/dist/0-face/translations/da.json +10 -1
  519. package/dist/0-face/translations/de.json +10 -1
  520. package/dist/0-face/translations/en.json +10 -1
  521. package/dist/0-face/translations/es.json +10 -1
  522. package/dist/0-face/translations/fi.json +10 -1
  523. package/dist/0-face/translations/fr.json +10 -1
  524. package/dist/0-face/translations/is.json +10 -1
  525. package/dist/0-face/translations/it.json +10 -1
  526. package/dist/0-face/translations/ja.json +10 -1
  527. package/dist/0-face/translations/ko.json +10 -1
  528. package/dist/0-face/translations/nb.json +10 -1
  529. package/dist/0-face/translations/pt-BR.json +10 -1
  530. package/dist/0-face/translations/pt.json +10 -1
  531. package/dist/0-face/translations/sv.json +10 -1
  532. package/dist/0-face/translations/zh.json +10 -1
  533. package/dist/0-face/word-wrap.d.ts +6 -0
  534. package/dist/0-face/word-wrap.d.ts.map +1 -0
  535. package/dist/0-face/word-wrap.js +119 -0
  536. package/dist/1-root/foundation.d.ts +12 -0
  537. package/dist/1-root/foundation.d.ts.map +1 -0
  538. package/dist/1-root/foundation.js +59 -0
  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 +12 -0
  552. package/dist/2-core/ds-avatar.d.ts.map +1 -1
  553. package/dist/2-core/ds-avatar.js +86 -7
  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/context-trigger.d.ts.map +1 -1
  622. package/dist/3-unit/context-trigger.js +32 -2
  623. package/dist/3-unit/ds-calendar.d.ts +197 -4
  624. package/dist/3-unit/ds-calendar.d.ts.map +1 -1
  625. package/dist/3-unit/ds-calendar.js +687 -45
  626. package/dist/3-unit/ds-carousel.d.ts +3 -0
  627. package/dist/3-unit/ds-carousel.d.ts.map +1 -1
  628. package/dist/3-unit/ds-carousel.js +13 -1
  629. package/dist/3-unit/ds-context.d.ts +18 -1
  630. package/dist/3-unit/ds-context.d.ts.map +1 -1
  631. package/dist/3-unit/ds-context.js +37 -1
  632. package/dist/3-unit/ds-form.d.ts +9 -0
  633. package/dist/3-unit/ds-form.d.ts.map +1 -1
  634. package/dist/3-unit/ds-form.js +52 -11
  635. package/dist/3-unit/ds-list.d.ts +20 -1
  636. package/dist/3-unit/ds-list.d.ts.map +1 -1
  637. package/dist/3-unit/ds-list.js +31 -3
  638. package/dist/3-unit/ds-matrix.d.ts +3 -0
  639. package/dist/3-unit/ds-matrix.d.ts.map +1 -1
  640. package/dist/3-unit/ds-matrix.js +3 -0
  641. package/dist/3-unit/ds-menu.d.ts.map +1 -1
  642. package/dist/3-unit/ds-menu.js +17 -1
  643. package/dist/3-unit/ds-row.d.ts +13 -0
  644. package/dist/3-unit/ds-row.d.ts.map +1 -1
  645. package/dist/3-unit/ds-row.js +15 -2
  646. package/dist/3-unit/ds-select.js +1 -1
  647. package/dist/3-unit/ds-sidebar.d.ts +17 -0
  648. package/dist/3-unit/ds-sidebar.d.ts.map +1 -1
  649. package/dist/3-unit/ds-sidebar.js +14 -3
  650. package/dist/3-unit/ds-table-of-contents.d.ts +68 -0
  651. package/dist/3-unit/ds-table-of-contents.d.ts.map +1 -0
  652. package/dist/3-unit/ds-table-of-contents.js +190 -0
  653. package/dist/3-unit/ds-table.d.ts.map +1 -1
  654. package/dist/3-unit/ds-table.js +2 -1
  655. package/dist/3-unit/ds-tabs.d.ts +32 -1
  656. package/dist/3-unit/ds-tabs.d.ts.map +1 -1
  657. package/dist/3-unit/ds-tabs.js +39 -1
  658. package/dist/4-page/ds-container.d.ts.map +1 -1
  659. package/dist/4-page/ds-container.js +2 -1
  660. package/dist/4-page/ds-document.d.ts +3 -0
  661. package/dist/4-page/ds-document.d.ts.map +1 -1
  662. package/dist/4-page/ds-document.js +3 -0
  663. package/dist/4-page/ds-footer.d.ts +47 -7
  664. package/dist/4-page/ds-footer.d.ts.map +1 -1
  665. package/dist/4-page/ds-footer.js +58 -14
  666. package/dist/4-page/ds-header.d.ts +6 -0
  667. package/dist/4-page/ds-header.d.ts.map +1 -1
  668. package/dist/4-page/ds-header.js +4 -1
  669. package/dist/4-page/ds-overlay.d.ts +2 -2
  670. package/dist/4-page/ds-overlay.d.ts.map +1 -1
  671. package/dist/4-page/ds-overlay.js +8 -3
  672. package/dist/4-page/ds-page.d.ts +12 -0
  673. package/dist/4-page/ds-page.d.ts.map +1 -1
  674. package/dist/4-page/ds-page.js +19 -1
  675. package/dist/4-page/email.d.ts +2 -0
  676. package/dist/4-page/email.d.ts.map +1 -1
  677. package/dist/4-page/email.js +5 -4
  678. package/dist/5-visual-kit/app-chrome.d.ts +98 -0
  679. package/dist/5-visual-kit/app-chrome.d.ts.map +1 -0
  680. package/dist/5-visual-kit/app-chrome.js +119 -0
  681. package/dist/5-visual-kit/bezels.d.ts +30 -0
  682. package/dist/5-visual-kit/bezels.d.ts.map +1 -0
  683. package/dist/5-visual-kit/bezels.js +388 -0
  684. package/dist/5-visual-kit/browser-icons.d.ts +5 -0
  685. package/dist/5-visual-kit/browser-icons.d.ts.map +1 -0
  686. package/dist/5-visual-kit/browser-icons.js +51 -0
  687. package/dist/5-visual-kit/browser-styles.d.ts +3 -0
  688. package/dist/5-visual-kit/browser-styles.d.ts.map +1 -0
  689. package/dist/5-visual-kit/browser-styles.js +52 -0
  690. package/dist/5-visual-kit/device-bezel.d.ts +84 -0
  691. package/dist/5-visual-kit/device-bezel.d.ts.map +1 -0
  692. package/dist/5-visual-kit/device-bezel.js +56 -0
  693. package/dist/5-visual-kit/instagram-frame.d.ts +8 -0
  694. package/dist/5-visual-kit/instagram-frame.d.ts.map +1 -0
  695. package/dist/5-visual-kit/instagram-frame.js +13 -0
  696. package/dist/5-visual-kit/instagram.d.ts +18 -0
  697. package/dist/5-visual-kit/instagram.d.ts.map +1 -0
  698. package/dist/5-visual-kit/instagram.js +39 -0
  699. package/dist/5-visual-kit/mobile-chrome.d.ts +4 -0
  700. package/dist/5-visual-kit/mobile-chrome.d.ts.map +1 -0
  701. package/dist/5-visual-kit/mobile-chrome.js +24 -0
  702. package/dist/5-visual-kit/native-icon-paths.d.ts +146 -0
  703. package/dist/5-visual-kit/native-icon-paths.d.ts.map +1 -0
  704. package/dist/5-visual-kit/native-icon-paths.js +145 -0
  705. package/dist/5-visual-kit/window.d.ts +51 -0
  706. package/dist/5-visual-kit/window.d.ts.map +1 -0
  707. package/dist/5-visual-kit/window.js +20 -0
  708. package/dist/browser-icons-BFbS1tIx.js +56 -0
  709. package/dist/browser-icons-BFbS1tIx.js.map +1 -0
  710. package/dist/browser-icons-CT8qU77Z.js +48 -0
  711. package/dist/browser-icons-CT8qU77Z.js.map +1 -0
  712. package/dist/components.d.ts +1 -0
  713. package/dist/components.d.ts.map +1 -1
  714. package/dist/components.js +1 -0
  715. package/dist/design-system-1.bundle.js +5874 -2097
  716. package/dist/design-system-1.bundle.js.map +1 -1
  717. package/dist/design-system-1.bundle.min.js +7332 -4682
  718. package/dist/design-system-1.bundle.min.js.map +1 -1
  719. package/dist/design-system-1.css +1 -1
  720. package/dist/feedback.js +197 -167
  721. package/dist/feedback.js.map +1 -1
  722. package/dist/{icons-extra-CRxxWFjX.js → icons-extra-BMPvmQPI.js} +25 -4
  723. package/dist/icons-extra-BMPvmQPI.js.map +1 -0
  724. package/dist/{icons-extra-H5pqCM_R.js → icons-extra-BfYOw-cR.js} +83 -5
  725. package/dist/icons-extra-BfYOw-cR.js.map +1 -0
  726. package/dist/index.d.ts +12 -1
  727. package/dist/index.d.ts.map +1 -1
  728. package/dist/index.js +11 -1
  729. package/dist/instagram-CKofs55A.js +50 -0
  730. package/dist/instagram-CKofs55A.js.map +1 -0
  731. package/dist/instagram-CcYf5oiM.js +48 -0
  732. package/dist/instagram-CcYf5oiM.js.map +1 -0
  733. package/dist/lit-Ce_uWYM4.js +612 -0
  734. package/dist/lit-Ce_uWYM4.js.map +1 -0
  735. package/dist/lit-DGUVm1Ce.js +557 -0
  736. package/dist/lit-DGUVm1Ce.js.map +1 -0
  737. package/dist/native-icon-paths-CB9evXBM.js +93 -0
  738. package/dist/native-icon-paths-CB9evXBM.js.map +1 -0
  739. package/dist/native-icon-paths-zay-3g_n.js +150 -0
  740. package/dist/native-icon-paths-zay-3g_n.js.map +1 -0
  741. package/dist/react/avatar.d.ts +1 -1
  742. package/dist/react/choice.d.ts +4 -0
  743. package/dist/react/choice.d.ts.map +1 -1
  744. package/dist/react/choice.js +2 -2
  745. package/dist/react/context.d.ts +19 -4
  746. package/dist/react/context.d.ts.map +1 -1
  747. package/dist/react/context.js +4 -4
  748. package/dist/react/empty.d.ts +2 -2
  749. package/dist/react/empty.d.ts.map +1 -1
  750. package/dist/react/empty.js +1 -1
  751. package/dist/react/footer.d.ts +5 -5
  752. package/dist/react/footer.d.ts.map +1 -1
  753. package/dist/react/footer.js +2 -2
  754. package/dist/react/header.d.ts +2 -2
  755. package/dist/react/header.d.ts.map +1 -1
  756. package/dist/react/message.d.ts +4 -0
  757. package/dist/react/message.d.ts.map +1 -1
  758. package/dist/react/message.js +2 -2
  759. package/dist/react/number.d.ts +53 -0
  760. package/dist/react/number.d.ts.map +1 -0
  761. package/dist/react/number.js +25 -0
  762. package/dist/react/page.d.ts +1 -1
  763. package/dist/react/sidebar.d.ts +4 -0
  764. package/dist/react/sidebar.d.ts.map +1 -1
  765. package/dist/react/sidebar.js +2 -2
  766. package/dist/react/table-of-contents.d.ts +19 -0
  767. package/dist/react/table-of-contents.d.ts.map +1 -0
  768. package/dist/react/table-of-contents.js +28 -0
  769. package/dist/{shared-words-CdMDVtXx.js → shared-words-C5cjxMjZ.js} +151 -16
  770. package/dist/shared-words-C5cjxMjZ.js.map +1 -0
  771. package/dist/{shared-words-BtRee8xR.js → shared-words-Cdm7xd-_.js} +163 -28
  772. package/dist/shared-words-Cdm7xd-_.js.map +1 -0
  773. package/package.json +25 -12
  774. package/DS1/3-unit/ds-calendar-large.ts +0 -353
  775. package/DS1/3-unit/styles/ds-calendar-large.css +0 -178
  776. package/dist/3-unit/ds-calendar-large.d.ts +0 -142
  777. package/dist/3-unit/ds-calendar-large.d.ts.map +0 -1
  778. package/dist/3-unit/ds-calendar-large.js +0 -308
  779. package/dist/icons-extra-CRxxWFjX.js.map +0 -1
  780. package/dist/icons-extra-H5pqCM_R.js.map +0 -1
  781. package/dist/shared-words-BtRee8xR.js.map +0 -1
  782. package/dist/shared-words-CdMDVtXx.js.map +0 -1
@@ -130,6 +130,8 @@ export declare class Carousel extends LitElement {
130
130
  paused: boolean;
131
131
  /** The strip's drive: the bleed's measures, the loop's copies and autoplay. */
132
132
  private drive;
133
+ /** Stops the strip's drag (dragTrack); started with the track, again when the element comes back to a page. */
134
+ private undrag;
133
135
  /** Attributes this element wrote, so what the page wrote is left alone. */
134
136
  private readonly own;
135
137
  /** A slide asked for by `current`, a dot or a button, kept until its scroll stops. */
@@ -149,6 +151,7 @@ export declare class Carousel extends LitElement {
149
151
  private get track();
150
152
  /** The slide in view, inside the count. */
151
153
  private get index();
154
+ private startDrag;
152
155
  connectedCallback(): void;
153
156
  disconnectedCallback(): void;
154
157
  private words;
@@ -1 +1 @@
1
- {"version":3,"file":"ds-carousel.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-carousel.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAA4B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhF,OAAO,mBAAmB,CAAC;AAC3B,OAAO,uBAAuB,CAAC;AAO/B,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCASU,MAAM,GAAG,IAAI;qCACf,MAAM,GAAG,MAAM,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAUlD;IAEF,MAAM,CAAC,MAAM,4BAAqF;IAE1F,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,OAAO,CAAC,KAAK,CAA8B;IAE3C,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmC;IACvD,sFAAsF;IACtF,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,KAAK,CAAK;IAClB,+EAA+E;IAC/E,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuD;;IAkB/E,+EAA+E;IAC/E,IAAI,MAAM,IAAI,WAAW,EAAE,CAE1B;IAED,uDAAuD;IACvD,OAAO,KAAK,KAAK,GAEhB;IAED,0CAA0C;IAC1C,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,2CAA2C;IAC3C,OAAO,KAAK,KAAK,GAGhB;IAED,iBAAiB;IAMjB,oBAAoB;IAUpB,OAAO,CAAC,KAAK;IAKb,wFAAwF;IACxF,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,WAAW;IAWnB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAgBlD,SAAS,CAAC,YAAY;IAStB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAa/C,+FAA+F;IAC/F,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzB,uDAAuD;IACvD,IAAI,IAAI,IAAI;IAKZ,+DAA+D;IAC/D,QAAQ,IAAI,IAAI;IAKhB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,MAAM;IASd,qEAAqE;IACrE,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAcvB;IAEF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAE7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAKrB;IAEF,MAAM;CAwCP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,QAAQ,CAAC;KACzB;CACF"}
1
+ {"version":3,"file":"ds-carousel.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-carousel.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  import { LitElement, html, nothing, unsafeCSS } from "lit";
9
9
  import { getText } from "../0-face/i18n";
10
10
  import { define } from "../0-face/define";
11
- import { COPY, autoplayInterval, bleedOf, driveCarousel, nearestSlide, prefersReducedMotion, scrollToSlide } from "../0-face/carousel";
11
+ import { COPY, autoplayInterval, bleedOf, dragTrack, driveCarousel, nearestSlide, prefersReducedMotion, scrollToSlide } from "../0-face/carousel";
12
12
  import "../2-core/ds-icon";
13
13
  import "../2-core/ds-progress";
14
14
  import metrics from "../1-root/component-metrics.css?inline";
@@ -128,8 +128,16 @@ export class Carousel extends LitElement {
128
128
  const current = Number.isFinite(this.current) ? Math.floor(this.current) : 0;
129
129
  return Math.max(0, Math.min(this.count - 1, current));
130
130
  }
131
+ startDrag() {
132
+ const track = this.track;
133
+ if (track && !this.undrag)
134
+ this.undrag = dragTrack(track, () => { if (!this.loop)
135
+ this.move(nearestSlide(track, this.slides, this.index)); });
136
+ }
131
137
  connectedCallback() {
132
138
  super.connectedCallback();
139
+ if (this.hasUpdated)
140
+ this.startDrag();
133
141
  window.addEventListener("language-changed", this.relabel);
134
142
  window.addEventListener("translations-loaded", this.relabel);
135
143
  }
@@ -140,6 +148,8 @@ export class Carousel extends LitElement {
140
148
  clearTimeout(this.settle);
141
149
  this.drive?.stop();
142
150
  this.drive = null;
151
+ this.undrag?.();
152
+ this.undrag = undefined;
143
153
  super.disconnectedCallback();
144
154
  }
145
155
  words(value, fallback, params) {
@@ -192,6 +202,8 @@ export class Carousel extends LitElement {
192
202
  firstUpdated() {
193
203
  // The strip's drive starts once, from the options the element was given.
194
204
  const track = this.track;
205
+ // A mouse drags the strip, and a press that ends a drag or a swipe chooses nothing (dragTrack).
206
+ this.startDrag();
195
207
  const bleed = bleedOf(this.bleed);
196
208
  if (track && (bleed !== "none" || this.loop || this.every > 0)) {
197
209
  this.drive = driveCarousel(this, track, this, { bleed, loop: this.loop, autoplay: this.every });
@@ -1,5 +1,5 @@
1
1
  import { type PropertyValues } from "lit";
2
- import { Menu, type MenuCloseReason } from "./ds-menu";
2
+ import { Menu, type MenuAnchor, type MenuCloseReason } from "./ds-menu";
3
3
  /**
4
4
  * Context: the menu that opens where the pointer is. A right click, the
5
5
  * ContextMenu key or Shift+F10, or a touch held half a second on the element
@@ -17,6 +17,13 @@ import { Menu, type MenuCloseReason } from "./ds-menu";
17
17
  * says `data-keep-open` or its click was prevented. `pending` holds every row
18
18
  * and the menu open while an answer is awaited; `refuse(row)` shows a refused
19
19
  * change on its row.
20
+ *
21
+ * `bar` lays the same rows side by side, the context bar over what is
22
+ * selected: one row high, the cells a pixel apart and groups two, a cell
23
+ * holding only an icon one square, a cell with words 4px in. It stands half a
24
+ * square above its anchor (below when there is no room), its start at the
25
+ * anchor's, and opens without taking the focus, so the writing keeps the
26
+ * caret: `openOver(rect)`. ← and → move along it.
20
27
  */
21
28
  export declare class Context extends Menu {
22
29
  static properties: {
@@ -24,6 +31,10 @@ export declare class Context extends Menu {
24
31
  type: BooleanConstructor;
25
32
  reflect: boolean;
26
33
  };
34
+ bar: {
35
+ type: BooleanConstructor;
36
+ reflect: boolean;
37
+ };
27
38
  compact: {
28
39
  type: BooleanConstructor;
29
40
  reflect: boolean;
@@ -80,6 +91,8 @@ export declare class Context extends Menu {
80
91
  static styles: import("lit").CSSResult[];
81
92
  /** Hold every row and keep the menu open while a chosen change is awaited. */
82
93
  pending: boolean;
94
+ /** The context bar: the rows side by side, over what is selected. */
95
+ bar: boolean;
83
96
  private quietObserver;
84
97
  constructor();
85
98
  connectedCallback(): void;
@@ -92,6 +105,10 @@ export declare class Context extends Menu {
92
105
  select(): void;
93
106
  /** Show that a chosen change was refused: its row turns red a moment. */
94
107
  refuse(row: HTMLElement): void;
108
+ /** Open the bar over what is selected (a rectangle, or an element), keeping the focus where it is. */
109
+ openOver(anchor: MenuAnchor): void;
110
+ /** In a bar, a cell holding only an icon is one square. */
111
+ private markIcons;
95
112
  /** Groups without rows leave no gap: a separator first, last or after another is quiet. */
96
113
  private quietSeparators;
97
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ds-context.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIrD,OAAO,EAAE,IAAI,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAMvD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,OAAQ,SAAQ,IAAI;IAC/B,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGf;IACF,MAAM,CAAC,MAAM,4BAA8C;IAC3D,8EAA8E;IACtE,OAAO,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,aAAa,CAAsD;;IAS3E,iBAAiB;IAMjB,oBAAoB;IAIpB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc;IAO5C,OAAO;IAUP,iEAAiE;IACjE,YAAY,CAAC,MAAM,EAAE,eAAe;IAIpC,4DAA4D;IAC5D,MAAM;IAEN,yEAAyE;IACzE,MAAM,CAAC,GAAG,EAAE,WAAW;IAKvB,2FAA2F;IAC3F,OAAO,CAAC,eAAe;CAWxB;AAGD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,YAAY,EAAE,OAAO,CAAA;KAAE;CAAE"}
1
+ {"version":3,"file":"ds-context.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIrD,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAMxE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,OAAQ,SAAQ,IAAI;IAC/B,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAIf;IACF,MAAM,CAAC,MAAM,4BAA8C;IAC3D,8EAA8E;IACtE,OAAO,EAAE,OAAO,CAAC;IACzB,qEAAqE;IAC7D,GAAG,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,aAAa,CAAsD;;IAU3E,iBAAiB;IAMjB,oBAAoB;IAIpB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc;IAkB5C,OAAO;IAWP,iEAAiE;IACjE,YAAY,CAAC,MAAM,EAAE,eAAe;IAIpC,4DAA4D;IAC5D,MAAM;IAEN,yEAAyE;IACzE,MAAM,CAAC,GAAG,EAAE,WAAW;IAKvB,sGAAsG;IACtG,QAAQ,CAAC,MAAM,EAAE,UAAU;IAK3B,2DAA2D;IAC3D,OAAO,CAAC,SAAS;IAOjB,2FAA2F;IAC3F,OAAO,CAAC,eAAe;CAYxB;AAGD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,YAAY,EAAE,OAAO,CAAA;KAAE;CAAE"}
@@ -23,12 +23,20 @@ const REFUSED = 1400;
23
23
  * says `data-keep-open` or its click was prevented. `pending` holds every row
24
24
  * and the menu open while an answer is awaited; `refuse(row)` shows a refused
25
25
  * change on its row.
26
+ *
27
+ * `bar` lays the same rows side by side, the context bar over what is
28
+ * selected: one row high, the cells a pixel apart and groups two, a cell
29
+ * holding only an icon one square, a cell with words 4px in. It stands half a
30
+ * square above its anchor (below when there is no room), its start at the
31
+ * anchor's, and opens without taking the focus, so the writing keeps the
32
+ * caret: `openOver(rect)`. ← and → move along it.
26
33
  */
27
34
  export class Context extends Menu {
28
35
  constructor() {
29
36
  super();
30
37
  this.quietObserver = new MutationObserver(() => this.quietSeparators());
31
38
  this.pending = false;
39
+ this.bar = false;
32
40
  this.triggerMode = "context";
33
41
  this.floating = true;
34
42
  this.closesOnChoice = true;
@@ -48,11 +56,24 @@ export class Context extends Menu {
48
56
  // Always a context menu, always floating.
49
57
  this.triggerMode = "context";
50
58
  this.floating = true;
51
- this.toggleAttribute("data-ds-hug", true);
59
+ // A menu hugs its words in whole squares; a bar is as long as its cells.
60
+ this.toggleAttribute("data-ds-hug", !this.bar);
61
+ if (this.bar) {
62
+ this.setAttribute("aria-orientation", "horizontal");
63
+ this.placement = "top";
64
+ // The writing under a bar keeps the caret; the page moves the focus in with a key of its own.
65
+ this.focusOnOpen = false;
66
+ }
67
+ else if (changed.has("bar")) {
68
+ this.removeAttribute("aria-orientation");
69
+ this.placement = "bottom";
70
+ this.focusOnOpen = true;
71
+ }
52
72
  super.willUpdate(changed);
53
73
  }
54
74
  updated() {
55
75
  super.updated();
76
+ this.markIcons();
56
77
  // Pending holds the rows that were free, and frees only those again.
57
78
  for (const row of this.querySelectorAll(ROW)) {
58
79
  if (this.pending && row.getAttribute("aria-disabled") !== "true") {
@@ -80,8 +101,22 @@ export class Context extends Menu {
80
101
  row.setAttribute("data-ds-refused", "");
81
102
  setTimeout(() => row.removeAttribute("data-ds-refused"), REFUSED);
82
103
  }
104
+ /** Open the bar over what is selected (a rectangle, or an element), keeping the focus where it is. */
105
+ openOver(anchor) {
106
+ this.anchor = anchor;
107
+ this.open = true;
108
+ }
109
+ /** In a bar, a cell holding only an icon is one square. */
110
+ markIcons() {
111
+ for (const row of this.querySelectorAll(ROW)) {
112
+ if (row.closest("ds-context") !== this)
113
+ continue;
114
+ row.toggleAttribute("data-ds-context-icon", this.bar && !(row.textContent ?? "").trim() && !!row.querySelector("ds-icon, svg, img"));
115
+ }
116
+ }
83
117
  /** Groups without rows leave no gap: a separator first, last or after another is quiet. */
84
118
  quietSeparators() {
119
+ this.markIcons();
85
120
  let previousWasGap = true;
86
121
  const children = [...this.children];
87
122
  const visible = children.filter(child => !child.hidden);
@@ -99,6 +134,7 @@ export class Context extends Menu {
99
134
  Context.properties = {
100
135
  ...Menu.properties,
101
136
  pending: { type: Boolean, reflect: true },
137
+ bar: { type: Boolean, reflect: true },
102
138
  };
103
139
  Context.styles = [unsafeCSS(menuStyles), unsafeCSS(styles)];
104
140
  define("ds-context", Context);
@@ -59,6 +59,15 @@ export declare class Form extends LitElement {
59
59
  */
60
60
  submit(): Promise<void>;
61
61
  private _handleSubmit;
62
+ connectedCallback(): void;
63
+ disconnectedCallback(): void;
64
+ /**
65
+ * The form is drawn in this element's shadow, so a submit or reset button
66
+ * put inside it belongs to no form of its own. Its click does what it would
67
+ * in a form: a native button (bare or in `ds-button control="slotted"`), or
68
+ * `<ds-button type="submit">`. A button in a real <form> is left to that form.
69
+ */
70
+ private _handleButtonClick;
62
71
  private _handleKeydown;
63
72
  render(): import("lit").TemplateResult<1>;
64
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ds-form.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-form.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,qBAAa,IAAK,SAAQ,UAAU;IAClC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;MAOf;IAEM,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,IAAI,GAAG,KAAK,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;;IAY/B,MAAM,CAAC,MAAM,0BAyBX;IAEF;;OAEG;IACH,WAAW,IAAI,QAAQ;IAYvB,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,QAAQ,IAAI,oBAAoB;IAoBhC,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAyD7B,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,cAAc;IAWtB,MAAM;CAeP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC;KACjB;CACF"}
1
+ {"version":3,"file":"ds-form.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-form.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,MAAM,WAAW,QAAQ;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACnC;AAKD,qBAAa,IAAK,SAAQ,UAAU;IAClC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;MAOf;IAEM,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,IAAI,GAAG,KAAK,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;;IAY/B,MAAM,CAAC,MAAM,0BAyBX;IAEF;;OAEG;IACH,WAAW,IAAI,QAAQ;IAYvB,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,QAAQ,IAAI,oBAAoB;IAoBhC,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAyD7B,OAAO,CAAC,aAAa;IAMrB,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAM5B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAcxB;IAEF,OAAO,CAAC,cAAc,CAQpB;IAEF,MAAM;CAcP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC;KACjB;CACF"}
@@ -1,9 +1,51 @@
1
+ import { define } from "../0-face/define";
1
2
  // ds-form.ts
2
3
  // Form component for handling form submissions and validation
3
4
  import { LitElement, html, css } from "lit";
5
+ /** Inputs Enter does not submit from: it presses or toggles them instead. */
6
+ const IMPLICIT_SUBMIT_SKIPS = new Set(["button", "submit", "reset", "image", "checkbox", "radio", "file", "color", "range"]);
4
7
  export class Form extends LitElement {
5
8
  constructor() {
6
9
  super();
10
+ /**
11
+ * The form is drawn in this element's shadow, so a submit or reset button
12
+ * put inside it belongs to no form of its own. Its click does what it would
13
+ * in a form: a native button (bare or in `ds-button control="slotted"`), or
14
+ * `<ds-button type="submit">`. A button in a real <form> is left to that form.
15
+ */
16
+ this._handleButtonClick = (e) => {
17
+ if (e.defaultPrevented)
18
+ return;
19
+ const control = e.target?.closest?.("button, input, ds-button[type]");
20
+ if (!control || !this.contains(control))
21
+ return;
22
+ let type;
23
+ if (control instanceof HTMLButtonElement || control instanceof HTMLInputElement) {
24
+ if (control.form || control.disabled)
25
+ return;
26
+ type = control.type;
27
+ }
28
+ else {
29
+ if (control.hasAttribute("disabled") || control.hasAttribute("href"))
30
+ return;
31
+ type = control.getAttribute("type");
32
+ }
33
+ if (type === "submit")
34
+ void this.submit();
35
+ else if (type === "reset")
36
+ this.reset();
37
+ };
38
+ this._handleKeydown = (e) => {
39
+ if (e.key !== "Enter" || e.shiftKey || e.defaultPrevented)
40
+ return;
41
+ // Enter submits from a field, as in a form: on a button it presses that
42
+ // button, and in a textarea (a multiline ds-input's too) it starts a line.
43
+ const origin = e.composedPath()[0];
44
+ if (!(origin instanceof HTMLInputElement) || origin.form || IMPLICIT_SUBMIT_SKIPS.has(origin.type))
45
+ return;
46
+ e.preventDefault();
47
+ void this.submit();
48
+ };
7
49
  this.action = "";
8
50
  this.method = "post";
9
51
  this.name = "";
@@ -179,15 +221,15 @@ export class Form extends LitElement {
179
221
  // submit() reports a failed request itself, as form-error.
180
222
  void this.submit();
181
223
  }
182
- _handleKeydown(e) {
183
- if (e.key === "Enter" && !e.shiftKey) {
184
- const target = e.target;
185
- // Don't submit if in a textarea
186
- if (target.tagName.toLowerCase() !== "textarea") {
187
- e.preventDefault();
188
- void this.submit();
189
- }
190
- }
224
+ connectedCallback() {
225
+ super.connectedCallback();
226
+ this.addEventListener("click", this._handleButtonClick);
227
+ this.addEventListener("keydown", this._handleKeydown);
228
+ }
229
+ disconnectedCallback() {
230
+ this.removeEventListener("click", this._handleButtonClick);
231
+ this.removeEventListener("keydown", this._handleKeydown);
232
+ super.disconnectedCallback();
191
233
  }
192
234
  render() {
193
235
  return html `
@@ -198,7 +240,6 @@ export class Form extends LitElement {
198
240
  ?novalidate=${this.novalidate}
199
241
  autocomplete=${this.autocomplete}
200
242
  @submit=${this._handleSubmit}
201
- @keydown=${this._handleKeydown}
202
243
  >
203
244
  <slot></slot>
204
245
  </form>
@@ -239,4 +280,4 @@ Form.styles = css `
239
280
  pointer-events: none;
240
281
  }
241
282
  `;
242
- customElements.define("ds-form", Form);
283
+ define("ds-form", Form);
@@ -1,4 +1,5 @@
1
1
  import { LitElement } from "lit";
2
+ import { CutFades } from "../0-face/cut-fade";
2
3
  /**
3
4
  * A vertical stack of rows.
4
5
  *
@@ -7,8 +8,15 @@ import { LitElement } from "lit";
7
8
  * A link, button or other control directly inside keeps its own role: wrap it
8
9
  * in a row (or another element) to make it an item.
9
10
  *
11
+ * `heading` names the group on the square above its rows (a day, a month),
12
+ * the words in the muted ink: the list takes it as its accessible name, so
13
+ * the drawn words are hidden from assistive technology and a page that
14
+ * writes its own `aria-label` keeps it.
15
+ *
10
16
  * @element ds-list
11
17
  * @attr columns - Lay the items out in this many equal columns.
18
+ * @attr heading - The group's name, drawn on the square above the rows and given to the list as its name.
19
+ * @csspart heading - The heading's line.
12
20
  */
13
21
  export declare class List extends LitElement {
14
22
  static properties: {
@@ -16,17 +24,28 @@ export declare class List extends LitElement {
16
24
  type: NumberConstructor;
17
25
  reflect: boolean;
18
26
  };
27
+ heading: {
28
+ type: StringConstructor;
29
+ reflect: boolean;
30
+ };
19
31
  };
20
32
  columns: number | undefined;
33
+ heading: string | undefined;
21
34
  static styles: import("lit").CSSResult;
35
+ /** Words cut short fade over their last square, never an ellipsis: marks them `data-cut="end"` while they do not fit. */
36
+ protected readonly cuts: CutFades;
22
37
  /** The items this element gave a role, so roles the page wrote are left alone. */
23
38
  private ownItems;
24
39
  private ownRole;
40
+ /** Whether the list's `aria-label` is its heading, so the page's own name is never replaced. */
41
+ private ownLabel;
25
42
  connectedCallback(): void;
26
43
  disconnectedCallback(): void;
27
44
  private syncItems;
28
45
  firstUpdated(): void;
29
- updated(): void;
46
+ updated(changed: Map<string, unknown>): void;
47
+ /** The heading names the list, unless the page wrote a name of its own. */
48
+ private nameByHeading;
30
49
  render(): import("lit").TemplateResult<1>;
31
50
  }
32
51
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"ds-list.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AASlD;;;;;;;;;;GAUG;AACH,qBAAa,IAAK,SAAQ,UAAU;IAClC,MAAM,CAAC,UAAU;;;;;MAEf;IAEM,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,MAAM,CAAC,MAAM,0BAAqB;IAElC,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,OAAO,CAAS;IAExB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAM5B,OAAO,CAAC,SAAS,CAgBf;IAEF,YAAY,IAAI,IAAI;IAIpB,OAAO,IAAI,IAAI;IAKf,MAAM;CAGP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC;KACjB;CACF"}
1
+ {"version":3,"file":"ds-list.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,MAAM,KAAK,CAAC;AAG3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAO9C;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,IAAK,SAAQ,UAAU;IAClC,MAAM,CAAC,UAAU;;;;;;;;;MAGf;IAEM,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,MAAM,CAAC,MAAM,0BAAqB;IAClC,yHAAyH;IACzH,SAAS,CAAC,QAAQ,CAAC,IAAI,WAAgD;IAEvE,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,gGAAgG;IAChG,OAAO,CAAC,QAAQ,CAAS;IAEzB,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAM5B,OAAO,CAAC,SAAS,CAgBf;IAEF,YAAY,IAAI,IAAI;IAIpB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM5C,2EAA2E;IAC3E,OAAO,CAAC,aAAa;IAWrB,MAAM;CAIP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC;KACjB;CACF"}
@@ -1,6 +1,7 @@
1
- import { LitElement, html, unsafeCSS } from "lit";
1
+ import { LitElement, html, nothing, unsafeCSS } from "lit";
2
2
  import styles from "./styles/ds-list.css?inline";
3
3
  import { define } from "../0-face/define";
4
+ import { CutFades } from "../0-face/cut-fade";
4
5
  /** Children that are never items of the list. */
5
6
  const NOT_ITEMS = new Set(["template", "script", "style", "slot"]);
6
7
  /** Controls keep their own role: a link or a button that became a list item would no longer be announced as one. */
@@ -13,15 +14,26 @@ const CONTROLS = new Set(["a", "button", "input", "select", "textarea", "summary
13
14
  * A link, button or other control directly inside keeps its own role: wrap it
14
15
  * in a row (or another element) to make it an item.
15
16
  *
17
+ * `heading` names the group on the square above its rows (a day, a month),
18
+ * the words in the muted ink: the list takes it as its accessible name, so
19
+ * the drawn words are hidden from assistive technology and a page that
20
+ * writes its own `aria-label` keeps it.
21
+ *
16
22
  * @element ds-list
17
23
  * @attr columns - Lay the items out in this many equal columns.
24
+ * @attr heading - The group's name, drawn on the square above the rows and given to the list as its name.
25
+ * @csspart heading - The heading's line.
18
26
  */
19
27
  export class List extends LitElement {
20
28
  constructor() {
21
29
  super(...arguments);
30
+ /** Words cut short fade over their last square, never an ellipsis: marks them `data-cut="end"` while they do not fit. */
31
+ this.cuts = new CutFades(this, { selector: ".heading" });
22
32
  /** The items this element gave a role, so roles the page wrote are left alone. */
23
33
  this.ownItems = new Set();
24
34
  this.ownRole = false;
35
+ /** Whether the list's `aria-label` is its heading, so the page's own name is never replaced. */
36
+ this.ownLabel = false;
25
37
  this.syncItems = () => {
26
38
  const slot = this.shadowRoot?.querySelector("slot");
27
39
  // Items only where the element is a list: a listbox or a page's own role
@@ -59,18 +71,34 @@ export class List extends LitElement {
59
71
  firstUpdated() {
60
72
  this.syncItems();
61
73
  }
62
- updated() {
74
+ updated(changed) {
63
75
  if (typeof this.columns === "number" && Number.isInteger(this.columns) && this.columns > 0)
64
76
  this.style.setProperty("--ds-list-columns", String(this.columns));
65
77
  else
66
78
  this.style.removeProperty("--ds-list-columns");
79
+ if (changed.has("heading"))
80
+ this.nameByHeading();
81
+ }
82
+ /** The heading names the list, unless the page wrote a name of its own. */
83
+ nameByHeading() {
84
+ const heading = this.heading?.trim();
85
+ if (heading && (this.ownLabel || !this.hasAttribute("aria-label"))) {
86
+ this.setAttribute("aria-label", heading);
87
+ this.ownLabel = true;
88
+ }
89
+ else if (!heading && this.ownLabel) {
90
+ this.removeAttribute("aria-label");
91
+ this.ownLabel = false;
92
+ }
67
93
  }
68
94
  render() {
69
- return html `<slot @slotchange=${this.syncItems}></slot>`;
95
+ const heading = this.heading?.trim();
96
+ return html `${heading ? html `<span class="heading" part="heading" aria-hidden="true">${heading}</span>` : nothing}<slot @slotchange=${this.syncItems}></slot>`;
70
97
  }
71
98
  }
72
99
  List.properties = {
73
100
  columns: { type: Number, reflect: true },
101
+ heading: { type: String, reflect: true },
74
102
  };
75
103
  List.styles = unsafeCSS(styles);
76
104
  define("ds-list", List);
@@ -1,4 +1,5 @@
1
1
  import { LitElement, type PropertyValues } from "lit";
2
+ import { CutFades } from "../0-face/cut-fade";
2
3
  /** How a square is drawn. */
3
4
  export type MatrixMarkKind = "fill" | "outline" | "stripes" | "dot" | "triangle" | "dash";
4
5
  /** A row or a column. A column may stand in a group. */
@@ -102,6 +103,8 @@ export declare class Matrix extends LitElement {
102
103
  };
103
104
  };
104
105
  static styles: import("lit").CSSResult[];
106
+ /** Words cut short fade over their last square, never an ellipsis: marks them `data-cut="end"` while they do not fit. */
107
+ protected readonly cuts: CutFades;
105
108
  rows: MatrixAxis[];
106
109
  columns: MatrixAxis[];
107
110
  groups: MatrixGroup[];
@@ -1 +1 @@
1
- {"version":3,"file":"ds-matrix.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-matrix.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAA4B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAMhF,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,CAAC;AAE1F,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,2FAA2F;AAC3F,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,UAAU,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAOD,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,MAAM,EAAE,SAAS,WAAW,EAAE;YAGhE,UAAU;YAAU,WAAW;IAOzD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAaf;IAEF,MAAM,CAAC,MAAM,4BAA2C;IAEhD,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACzB,yFAAyF;IACjF,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACzD,2CAA2C;IACnC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAEjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;;IActD,iBAAiB;IAMjB,oBAAoB;IAMpB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAKlD,OAAO,CAAC,KAAK;IAKb,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,SAAS;YAIH,IAAI;IASlB,OAAO,CAAC,SAAS,CAqBf;IAEF,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,OAAO,CAOb;IAEF,OAAO,CAAC,aAAa,CAInB;IAEF,OAAO,CAAC,IAAI;IAIZ,MAAM;CAgFP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB;CACF"}
1
+ {"version":3,"file":"ds-matrix.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-matrix.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  // and column meet, and the legend below names the marks.
7
7
  import { LitElement, html, nothing, unsafeCSS } from "lit";
8
8
  import { define } from "../0-face/define";
9
+ import { CutFades } from "../0-face/cut-fade";
9
10
  import { getText } from "../0-face/i18n";
10
11
  import metrics from "../1-root/component-metrics.css?inline";
11
12
  import styles from "./styles/ds-matrix.css?inline";
@@ -49,6 +50,8 @@ export function orderColumns(columns, groups) {
49
50
  export class Matrix extends LitElement {
50
51
  constructor() {
51
52
  super();
53
+ /** Words cut short fade over their last square, never an ellipsis: marks them `data-cut="end"` while they do not fit. */
54
+ this.cuts = new CutFades(this, { selector: ".name" });
52
55
  this.relabel = () => this.requestUpdate();
53
56
  this.onKeyDown = (event) => {
54
57
  const cell = event.composedPath()[0].closest?.(".cell[data-row]");
@@ -1 +1 @@
1
- {"version":3,"file":"ds-menu.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ds-menu.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-menu.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,8 @@ export class Menu extends LitElement {
57
57
  this.onTriggerClick = (event) => {
58
58
  if (this.triggerMode === "context" || this.triggerMode === "manual" || event.defaultPrevented)
59
59
  return;
60
- if (this.hover && this.trigger?.matches("a[href]"))
60
+ // A hover menu's trigger that is a link (`a href`, `ds-button href`) follows its link when pressed.
61
+ if (this.hover && this.trigger?.matches("a[href], ds-button[href]"))
61
62
  return;
62
63
  this.focusOnOpen = true;
63
64
  this.openingEdge = "first";
@@ -529,20 +530,35 @@ export class Menu extends LitElement {
529
530
  return;
530
531
  const current = external ? items.findIndex(item => item.id === this.activeId) : items.findIndex(item => event.composedPath().includes(item));
531
532
  const columns = Math.max(1, Math.floor(this.columns || 1));
533
+ // A menu laid out in one line (Context's bar) steps sideways, in the reading direction.
534
+ const across = this.getAttribute("aria-orientation") === "horizontal";
535
+ const forward = this.ownerDocument.defaultView?.getComputedStyle(this).direction === "rtl" ? -1 : 1;
532
536
  let next;
533
537
  switch (event.key) {
534
538
  case "ArrowDown":
539
+ if (across)
540
+ return;
535
541
  next = columns > 1 ? this.gridStep(items, current, columns, 1) : this.step(items, current, 1, 1);
536
542
  break;
537
543
  case "ArrowUp":
544
+ if (across)
545
+ return;
538
546
  next = columns > 1 ? this.gridStep(items, current, columns, -1) : this.step(items, current, 1, -1);
539
547
  break;
540
548
  case "ArrowRight":
549
+ if (across) {
550
+ next = this.step(items, current, 1, forward);
551
+ break;
552
+ }
541
553
  if (columns === 1 || external)
542
554
  return;
543
555
  next = this.step(items, current, 1, 1);
544
556
  break;
545
557
  case "ArrowLeft":
558
+ if (across) {
559
+ next = this.step(items, current, 1, -forward);
560
+ break;
561
+ }
546
562
  if (columns === 1 || external)
547
563
  return;
548
564
  next = this.step(items, current, 1, -1);
@@ -1,4 +1,5 @@
1
1
  import { LitElement } from "lit";
2
+ import { CutFades } from "../0-face/cut-fade";
2
3
  /**
3
4
  * A horizontal run of elements one row (`--ds-row-height`) tall.
4
5
  *
@@ -23,6 +24,14 @@ import { LitElement } from "lit";
23
24
  * @attr label - The accessible name, when the row's words do not say it.
24
25
  * @attr target - Where a link opens (`_blank`, …).
25
26
  * @attr rel - The link's relationship (`noopener`, …).
27
+ * A record's row puts its parts in classes: `ds-row__name` for the words,
28
+ * which hug and give way first, and `ds-row__value` for the figure or date at
29
+ * the row's end; a 16px picture (an avatar tile, a large icon) before the
30
+ * name stands on its square with the row's gap putting the words on the next.
31
+ * The element measures each name and marks it `data-cut="end"` while its
32
+ * words do not fit, so the stylesheet fades them over the last square, never
33
+ * an ellipsis; a `ds-text literal` name fades the same way.
34
+ *
26
35
  * @slot - The row's content, inside its press target.
27
36
  * @slot end - Controls of their own after the content, outside the press target.
28
37
  * @fires ds-row-press - `{ href }`: the row was pressed. Cancel it to route a link yourself; a modified click on a link is left to the browser.
@@ -100,6 +109,10 @@ export declare class Row extends LitElement {
100
109
  rel: string | undefined;
101
110
  constructor();
102
111
  static styles: import("lit").CSSResult;
112
+ /** Marks each `.ds-row__name` `data-cut="end"` while its words are wider than its box, measured again as they resize or change. */
113
+ protected readonly cuts: CutFades;
114
+ /** Measures the names again, as when the slotted content changes. */
115
+ private measureNames;
103
116
  /** The `aria-current` value, or none. */
104
117
  private get currentValue();
105
118
  /** Focuses the press target, so `row.focus()` lands on the link or button. */
@@ -1 +1 @@
1
- {"version":3,"file":"ds-row.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAQlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,GAAI,SAAQ,UAAU;IACjC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAef;IAEM,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;;IAoBhC,MAAM,CAAC,MAAM,0BAAqB;IAElC,yCAAyC;IACzC,OAAO,KAAK,YAAY,GAIvB;IAED,8EAA8E;IAC9E,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAM5B,OAAO,CAAC,KAAK;IAQb,MAAM;CAcP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,GAAG,CAAC;KACf;CACF"}
1
+ {"version":3,"file":"ds-row.d.ts","sourceRoot":"","sources":["../../DS1/3-unit/ds-row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,KAAK,CAAC;AAIlD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,GAAI,SAAQ,UAAU;IACjC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAef;IAEM,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACnC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;;IAoBhC,MAAM,CAAC,MAAM,0BAAqB;IAElC,mIAAmI;IACnI,SAAS,CAAC,QAAQ,CAAC,IAAI,WAAsG;IAE7H,qEAAqE;IACrE,OAAO,CAAC,YAAY,CAA6B;IAEjD,yCAAyC;IACzC,OAAO,KAAK,YAAY,GAIvB;IAED,8EAA8E;IAC9E,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAM5B,OAAO,CAAC,KAAK;IAQb,MAAM;CAcP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,QAAQ,EAAE,GAAG,CAAC;KACf;CACF"}