@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
@@ -0,0 +1,394 @@
1
+ /** Measured screen slots from the supplied community file. Artwork is separately licensed. */
2
+ export interface Bezel {
3
+ id: string; label: string; width: number; height: number;
4
+ screen: { x: number; y: number; width: number; height: number; radius: number };
5
+ kind: 'phone' | 'tablet'; asset: string; source: { file: string; node: string };
6
+ }
7
+ export const BEZELS: readonly Bezel[] = [
8
+ {
9
+ "id": "iphone-17-pro-max-deep-blue",
10
+ "label": "iPhone 17 Pro Max \u00b7 Deep Blue",
11
+ "width": 490,
12
+ "height": 1000,
13
+ "screen": {
14
+ "x": 25,
15
+ "y": 22,
16
+ "width": 440,
17
+ "height": 956,
18
+ "radius": 58
19
+ },
20
+ "kind": "phone",
21
+ "asset": "assets/iphone-17-pro-max-deep-blue.png",
22
+ "source": {
23
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
24
+ "node": "6316:14156"
25
+ }
26
+ },
27
+ {
28
+ "id": "iphone-17-pro-max-cosmic-orange",
29
+ "label": "iPhone 17 Pro Max \u00b7 Cosmic Orange",
30
+ "width": 490,
31
+ "height": 1000,
32
+ "screen": {
33
+ "x": 25,
34
+ "y": 22,
35
+ "width": 440,
36
+ "height": 956,
37
+ "radius": 58
38
+ },
39
+ "kind": "phone",
40
+ "asset": "assets/iphone-17-pro-max-cosmic-orange.png",
41
+ "source": {
42
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
43
+ "node": "6316:14158"
44
+ }
45
+ },
46
+ {
47
+ "id": "iphone-17-pro-max-silver",
48
+ "label": "iPhone 17 Pro Max \u00b7 Silver",
49
+ "width": 490,
50
+ "height": 1000,
51
+ "screen": {
52
+ "x": 25,
53
+ "y": 22,
54
+ "width": 440,
55
+ "height": 956,
56
+ "radius": 58
57
+ },
58
+ "kind": "phone",
59
+ "asset": "assets/iphone-17-pro-max-silver.png",
60
+ "source": {
61
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
62
+ "node": "6316:14160"
63
+ }
64
+ },
65
+ {
66
+ "id": "iphone-17-pro-deep-blue",
67
+ "label": "iPhone 17 Pro \u00b7 Deep Blue",
68
+ "width": 450,
69
+ "height": 920,
70
+ "screen": {
71
+ "x": 24,
72
+ "y": 23,
73
+ "width": 402,
74
+ "height": 874,
75
+ "radius": 58
76
+ },
77
+ "kind": "phone",
78
+ "asset": "assets/iphone-17-pro-deep-blue.png",
79
+ "source": {
80
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
81
+ "node": "6316:14139"
82
+ }
83
+ },
84
+ {
85
+ "id": "iphone-17-pro-cosmic-orange",
86
+ "label": "iPhone 17 Pro \u00b7 Cosmic Orange",
87
+ "width": 450,
88
+ "height": 920,
89
+ "screen": {
90
+ "x": 24,
91
+ "y": 23,
92
+ "width": 402,
93
+ "height": 874,
94
+ "radius": 58
95
+ },
96
+ "kind": "phone",
97
+ "asset": "assets/iphone-17-pro-cosmic-orange.png",
98
+ "source": {
99
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
100
+ "node": "6316:14141"
101
+ }
102
+ },
103
+ {
104
+ "id": "iphone-17-pro-silver",
105
+ "label": "iPhone 17 Pro \u00b7 Silver",
106
+ "width": 450,
107
+ "height": 920,
108
+ "screen": {
109
+ "x": 24,
110
+ "y": 23,
111
+ "width": 402,
112
+ "height": 874,
113
+ "radius": 58
114
+ },
115
+ "kind": "phone",
116
+ "asset": "assets/iphone-17-pro-silver.png",
117
+ "source": {
118
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
119
+ "node": "6316:14148"
120
+ }
121
+ },
122
+ {
123
+ "id": "iphone-17-black",
124
+ "label": "iPhone 17 \u00b7 Black",
125
+ "width": 450,
126
+ "height": 920,
127
+ "screen": {
128
+ "x": 24,
129
+ "y": 23,
130
+ "width": 402,
131
+ "height": 874,
132
+ "radius": 58
133
+ },
134
+ "kind": "phone",
135
+ "asset": "assets/iphone-17-black.png",
136
+ "source": {
137
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
138
+ "node": "6316:14214"
139
+ }
140
+ },
141
+ {
142
+ "id": "iphone-17-lavender",
143
+ "label": "iPhone 17 \u00b7 Lavender",
144
+ "width": 450,
145
+ "height": 920,
146
+ "screen": {
147
+ "x": 24,
148
+ "y": 23,
149
+ "width": 402,
150
+ "height": 874,
151
+ "radius": 58
152
+ },
153
+ "kind": "phone",
154
+ "asset": "assets/iphone-17-lavender.png",
155
+ "source": {
156
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
157
+ "node": "6316:14201"
158
+ }
159
+ },
160
+ {
161
+ "id": "iphone-17-mist-blue",
162
+ "label": "iPhone 17 \u00b7 Mist Blue",
163
+ "width": 450,
164
+ "height": 920,
165
+ "screen": {
166
+ "x": 24,
167
+ "y": 23,
168
+ "width": 402,
169
+ "height": 874,
170
+ "radius": 58
171
+ },
172
+ "kind": "phone",
173
+ "asset": "assets/iphone-17-mist-blue.png",
174
+ "source": {
175
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
176
+ "node": "6316:14203"
177
+ }
178
+ },
179
+ {
180
+ "id": "iphone-17-sage",
181
+ "label": "iPhone 17 \u00b7 Sage",
182
+ "width": 450,
183
+ "height": 920,
184
+ "screen": {
185
+ "x": 24,
186
+ "y": 23,
187
+ "width": 402,
188
+ "height": 874,
189
+ "radius": 58
190
+ },
191
+ "kind": "phone",
192
+ "asset": "assets/iphone-17-sage.png",
193
+ "source": {
194
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
195
+ "node": "6316:14210"
196
+ }
197
+ },
198
+ {
199
+ "id": "iphone-17-white",
200
+ "label": "iPhone 17 \u00b7 White",
201
+ "width": 450,
202
+ "height": 920,
203
+ "screen": {
204
+ "x": 24,
205
+ "y": 23,
206
+ "width": 402,
207
+ "height": 874,
208
+ "radius": 58
209
+ },
210
+ "kind": "phone",
211
+ "asset": "assets/iphone-17-white.png",
212
+ "source": {
213
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
214
+ "node": "6316:14212"
215
+ }
216
+ },
217
+ {
218
+ "id": "iphone-air-space-black",
219
+ "label": "iPhone Air \u00b7 Space Black",
220
+ "width": 460,
221
+ "height": 960,
222
+ "screen": {
223
+ "x": 20,
224
+ "y": 24,
225
+ "width": 420,
226
+ "height": 912,
227
+ "radius": 58
228
+ },
229
+ "kind": "phone",
230
+ "asset": "assets/iphone-air-space-black.png",
231
+ "source": {
232
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
233
+ "node": "6316:14177"
234
+ }
235
+ },
236
+ {
237
+ "id": "iphone-air-cloud-white",
238
+ "label": "iPhone Air \u00b7 Cloud White",
239
+ "width": 460,
240
+ "height": 960,
241
+ "screen": {
242
+ "x": 20,
243
+ "y": 24,
244
+ "width": 420,
245
+ "height": 912,
246
+ "radius": 58
247
+ },
248
+ "kind": "phone",
249
+ "asset": "assets/iphone-air-cloud-white.png",
250
+ "source": {
251
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
252
+ "node": "6316:14173"
253
+ }
254
+ },
255
+ {
256
+ "id": "iphone-air-light-gold",
257
+ "label": "iPhone Air \u00b7 Light Gold",
258
+ "width": 460,
259
+ "height": 960,
260
+ "screen": {
261
+ "x": 20,
262
+ "y": 24,
263
+ "width": 420,
264
+ "height": 912,
265
+ "radius": 58
266
+ },
267
+ "kind": "phone",
268
+ "asset": "assets/iphone-air-light-gold.png",
269
+ "source": {
270
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
271
+ "node": "6316:14179"
272
+ }
273
+ },
274
+ {
275
+ "id": "iphone-air-sky-blue",
276
+ "label": "iPhone Air \u00b7 Sky Blue",
277
+ "width": 460,
278
+ "height": 960,
279
+ "screen": {
280
+ "x": 20,
281
+ "y": 24,
282
+ "width": 420,
283
+ "height": 912,
284
+ "radius": 58
285
+ },
286
+ "kind": "phone",
287
+ "asset": "assets/iphone-air-sky-blue.png",
288
+ "source": {
289
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
290
+ "node": "6316:14175"
291
+ }
292
+ },
293
+ {
294
+ "id": "ipad-pro-13-silver",
295
+ "label": "iPad Pro 13 M4 \u00b7 Silver",
296
+ "width": 1500,
297
+ "height": 1150,
298
+ "screen": {
299
+ "x": 62,
300
+ "y": 58,
301
+ "width": 1376,
302
+ "height": 1034,
303
+ "radius": 28
304
+ },
305
+ "kind": "tablet",
306
+ "asset": "assets/ipad-pro-13-silver.png",
307
+ "source": {
308
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
309
+ "node": "5456:18569"
310
+ }
311
+ },
312
+ {
313
+ "id": "ipad-pro-13-space-gray",
314
+ "label": "iPad Pro 13 M4 \u00b7 Space Gray",
315
+ "width": 1500,
316
+ "height": 1150,
317
+ "screen": {
318
+ "x": 62,
319
+ "y": 58,
320
+ "width": 1376,
321
+ "height": 1034,
322
+ "radius": 28
323
+ },
324
+ "kind": "tablet",
325
+ "asset": "assets/ipad-pro-13-space-gray.png",
326
+ "source": {
327
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
328
+ "node": "6316:14233"
329
+ }
330
+ },
331
+ {
332
+ "id": "ipad-pro-11-silver",
333
+ "label": "iPad Pro 11 M4 \u00b7 Silver",
334
+ "width": 1320,
335
+ "height": 940,
336
+ "screen": {
337
+ "x": 55,
338
+ "y": 53,
339
+ "width": 1210,
340
+ "height": 834,
341
+ "radius": 28
342
+ },
343
+ "kind": "tablet",
344
+ "asset": "assets/ipad-pro-11-silver.png",
345
+ "source": {
346
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
347
+ "node": "6318:14240"
348
+ }
349
+ },
350
+ {
351
+ "id": "ipad-pro-11-space-gray",
352
+ "label": "iPad Pro 11 M4 \u00b7 Space Gray",
353
+ "width": 1320,
354
+ "height": 940,
355
+ "screen": {
356
+ "x": 55,
357
+ "y": 53,
358
+ "width": 1210,
359
+ "height": 834,
360
+ "radius": 28
361
+ },
362
+ "kind": "tablet",
363
+ "asset": "assets/ipad-pro-11-space-gray.png",
364
+ "source": {
365
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
366
+ "node": "6316:14230"
367
+ }
368
+ },
369
+ {
370
+ "id": "ipad-mini-starlight",
371
+ "label": "iPad mini \u00b7 Starlight",
372
+ "width": 1275,
373
+ "height": 890,
374
+ "screen": {
375
+ "x": 71,
376
+ "y": 73,
377
+ "width": 1133,
378
+ "height": 744,
379
+ "radius": 28
380
+ },
381
+ "kind": "tablet",
382
+ "asset": "assets/ipad-mini-starlight.png",
383
+ "source": {
384
+ "file": "8azymSnKt4pnYTZqdzQ7tF",
385
+ "node": "5456:18828"
386
+ }
387
+ }
388
+ ];
389
+ export function bezelById(id: string): Bezel | undefined { return BEZELS.find(bezel => bezel.id === id); }
390
+ export function screenGeometry(bezel: Bezel, width: number) {
391
+ const scale = width / bezel.width;
392
+ return { scale, width: bezel.screen.width, height: bezel.screen.height,
393
+ left: bezel.screen.x * scale, top: bezel.screen.y * scale };
394
+ }
@@ -0,0 +1,53 @@
1
+ Chromium source: https://chromium.googlesource.com/chromium/src/+/refs/tags/155.0.8059.86/components/vector_icons/
2
+
3
+ // Copyright 2015 The Chromium Authors
4
+ //
5
+ // Redistribution and use in source and binary forms, with or without
6
+ // modification, are permitted provided that the following conditions are
7
+ // met:
8
+ //
9
+ // * Redistributions of source code must retain the above copyright
10
+ // notice, this list of conditions and the following disclaimer.
11
+ // * Redistributions in binary form must reproduce the above
12
+ // copyright notice, this list of conditions and the following disclaimer
13
+ // in the documentation and/or other materials provided with the
14
+ // distribution.
15
+ // * Neither the name of Google LLC nor the names of its
16
+ // contributors may be used to endorse or promote products derived from
17
+ // this software without specific prior written permission.
18
+ //
19
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+
31
+ Microsoft Fluent system icons: https://github.com/microsoft/fluentui-system-icons
32
+
33
+ MIT License
34
+
35
+ Copyright (c) 2020 Microsoft Corporation
36
+
37
+ Permission is hereby granted, free of charge, to any person obtaining a copy
38
+ of this software and associated documentation files (the "Software"), to deal
39
+ in the Software without restriction, including without limitation the rights
40
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
41
+ copies of the Software, and to permit persons to whom the Software is
42
+ furnished to do so, subject to the following conditions:
43
+
44
+ The above copyright notice and this permission notice shall be included in all
45
+ copies or substantial portions of the Software.
46
+
47
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
48
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
49
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
50
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
51
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
52
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
53
+ SOFTWARE.
@@ -0,0 +1,47 @@
1
+ import { svg } from 'lit';
2
+ type NativeGlyphs = Record<string, { size: number; path: string }>;
3
+ let chromiumIcons: NativeGlyphs = {};
4
+ let edgeIcons: NativeGlyphs = {};
5
+ let loading: Promise<void> | undefined;
6
+
7
+ /** Native browser glyphs are unnecessary for Apple windows and device status bars. */
8
+ export function loadBrowserIcons(kind: string): Promise<void> {
9
+ if (kind !== 'chrome' && kind !== 'edge') return Promise.resolve();
10
+ return loading ??= import('./native-icon-paths').then((icons) => {
11
+ chromiumIcons = icons.chromiumIcons;
12
+ edgeIcons = icons.edgeIcons;
13
+ }).catch((error) => { loading = undefined; throw error; });
14
+ }
15
+
16
+ /** Presentation glyphs drawn in each browser's native icon vocabulary, not DS1 UI icons. */
17
+ export function browserIcon(name: string, kind: string) {
18
+ if (kind === 'safari-ios' && name === 'tabs') return svg`<svg viewBox="0 0 20 20" aria-hidden="true"><rect x="2" y="2" width="12" height="12" rx="2"/><rect x="6" y="6" width="12" height="12" rx="2"/></svg>`;
19
+ if (kind === 'safari-ios' && name === 'back') return svg`<svg viewBox="0 0 20 20" aria-hidden="true"><path d="m13 3-7 7 7 7"/></svg>`;
20
+ const native = (kind === 'chrome' ? chromiumIcons : kind === 'edge' ? edgeIcons : {}) as Record<string, {size:number;path:string}>;
21
+ if (native[name]) { const glyph=native[name]; return svg`<svg viewBox=${`0 0 ${glyph.size} ${glyph.size}`} aria-hidden="true" style="fill:currentColor;stroke:none"><path d=${glyph.path}/></svg>`; }
22
+ const apple = kind === 'safari' || kind === 'safari-ios' || kind === 'macos';
23
+ const paths: Record<string, string> = {
24
+ back: apple ? 'M12 4 6 10l6 6' : 'M16 10H4m6-6-6 6 6 6',
25
+ forward: apple ? 'm8 4 6 6-6 6' : 'M4 10h12m-6-6 6 6-6 6',
26
+ reload: 'M16 7a6.5 6.5 0 1 0 .4 5M16 3v4h-4',
27
+ share: 'M7 6H4v11h12V6h-3M10 12V1m-3 3 3-3 3 3',
28
+ tabs: 'M6 6H2v12h12v-4M6 2h12v12H6Z',
29
+ sidebar: 'M3 3h14v14H3ZM8 3v14M5 6h1m-1 3h1m-1 3h1',
30
+ plus: 'M10 4v12M4 10h12',
31
+ close: 'm5 5 10 10M15 5 5 15',
32
+ 'close-tab': 'm6 6 8 8m0-8-8 8',
33
+ minimize: 'M4 10h12', zoom: 'M4 8V4h4m4 12h4v-4M4 4l12 12',
34
+ 'chevron-down': 'm6 8 4 4 4-4',
35
+ 'page-menu': 'M3 5h14M3 10h10M3 15h6',
36
+ lock: 'M6 9V6a4 4 0 0 1 8 0v3M5 9h10v8H5Z',
37
+ tune: 'M3 6h7m4 0h3M3 14h3m4 0h7M10 4h4v4h-4ZM6 12h4v4H6Z',
38
+ star: 'm10 2 2.4 5 5.6.8-4 3.9.9 5.6-4.9-2.6-4.9 2.6.9-5.6-4-3.9L7.6 7Z',
39
+ extensions: 'M4 4h4V2a2 2 0 0 1 4 0v2h4v5h2a2 2 0 0 1 0 4h-2v5h-5v-2a2 2 0 0 0-4 0v2H2V4Z',
40
+ reading: 'M10 5Q6 2 2 4v12q4-2 8 1 4-3 8-1V4q-4-2-8 1v12',
41
+ favorites: 'm7 2 1.6 3.3 3.7.5-2.7 2.6.6 3.6L7 10.3 3.8 12l.6-3.6L1.7 5.8l3.7-.5ZM14 5h4m-4 5h4M3 16h15',
42
+ globe: 'M18 10a8 8 0 1 1-16 0 8 8 0 0 1 16 0ZM2 10h16M10 2c-5 4-5 12 0 16 5-4 5-12 0-16Z',
43
+ profile: 'M18 10a8 8 0 1 1-16 0 8 8 0 0 1 16 0ZM6 16v-1a4 4 0 0 1 8 0v1M12.5 7a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z',
44
+ };
45
+ if(name==='more'||name==='more-horizontal') return svg`<svg viewBox="0 0 20 20" aria-hidden="true" style="fill:currentColor;stroke:none">${name==='more'?svg`<circle cx="10" cy="4" r="1.5"/><circle cx="10" cy="10" r="1.5"/><circle cx="10" cy="16" r="1.5"/>`:svg`<circle cx="4" cy="10" r="1.2"/><circle cx="10" cy="10" r="1.2"/><circle cx="16" cy="10" r="1.2"/>`}</svg>`;
46
+ return svg`<svg viewBox="0 0 20 20" aria-hidden="true"><path d=${paths[name] || paths['globe']}/></svg>`;
47
+ }
@@ -0,0 +1,53 @@
1
+ import { css } from 'lit';
2
+
3
+ /** macOS reference layouts: Safari 27 compact, Chrome 155, Edge 156. CSS pixels at 1×. */
4
+ export const browserStyles = css`
5
+ :host { --browser-strip:#dee1e6; --browser-toolbar:#fff; --browser-address:#f1f3f4; --browser-ink:#3c4043; }
6
+ :host([appearance=dark]) { --browser-strip:#202124; --browser-toolbar:#35363a; --browser-address:#202124; --browser-ink:#e8eaed; }
7
+ :host([kind=edge]) { --browser-strip:#f3f3f3; --browser-toolbar:#fff; --browser-address:#fff; --browser-ink:#242424; }
8
+ :host([kind=edge][appearance=dark]) { --browser-strip:#202020; --browser-toolbar:#2b2b2b; --browser-address:#2b2b2b; --browser-ink:#f5f5f5; }
9
+ .unavailable { opacity:.35 !important; }
10
+ .favicon { width:16px; height:16px; object-fit:contain; flex:none; }
11
+ .lights { width:80px; padding-left:12px; gap:8px; height:100%; }
12
+ .lights svg { width:8px; height:8px; }
13
+ .tabs { height:40px; gap:8px; padding:0 8px 0 0; background:var(--browser-strip); color:var(--browser-ink); }
14
+ .tabs > button { width:28px; height:28px; flex:none; border-radius:8px; }
15
+ .tab { position:relative; isolation:isolate; height:34px; width:232px; min-width:80px; border-radius:12px 12px 0 0; padding:0 10px; gap:8px; background:var(--browser-toolbar); font-size:13px; font-weight:400; }
16
+ .tab::before,.tab::after { content:''; position:absolute; bottom:0; width:12px; height:12px; background:transparent; z-index:-1; }
17
+ .tab::before { left:-12px; border-radius:0 0 12px 0; box-shadow:4px 4px 0 4px var(--browser-toolbar); }
18
+ .tab::after { right:-12px; border-radius:0 0 0 12px; box-shadow:-4px 4px 0 4px var(--browser-toolbar); }
19
+ .tab > svg { flex:none; width:16px; height:16px; color:#5f6368; }
20
+ :host([appearance=dark]) .tab > svg { color:#bdc1c6; }
21
+ .tab button { flex:none; width:20px; height:20px; border-radius:50%; }
22
+ .tab button svg { width:16px; height:16px; }
23
+ .browser-toolbar { height:46px; min-height:46px; padding:6px; gap:2px; background:var(--browser-toolbar); color:var(--browser-ink); border-bottom:1px solid #00000015; }
24
+ .browser-toolbar > button { width:34px; height:34px; flex:none; border-radius:50%; }
25
+ .browser-toolbar svg { width:20px; height:20px; stroke-width:1.65; }
26
+ .browser-toolbar .address { height:34px; padding:0 6px; gap:4px; margin:0 4px; border:0; border-radius:17px; background:var(--browser-address); justify-content:start; }
27
+ .address > span { flex:1; min-width:0; font-size:14px; }
28
+ .browser-toolbar .address button { flex:none; width:28px; height:28px; border-radius:50%; }
29
+ .browser-toolbar .address button svg { width:18px; height:18px; }
30
+ :host([kind=edge]) .tabs { background:var(--browser-strip); gap:6px; }
31
+ :host([kind=edge]) .tab { height:36px; width:240px; border-radius:10px 10px 0 0; }
32
+ :host([kind=edge]) .browser-toolbar { height:40px; min-height:40px; padding:4px; gap:0; }
33
+ :host([kind=edge]) .browser-toolbar > button { width:36px; height:32px; border-radius:6px; }
34
+ :host([kind=edge]) .browser-toolbar svg { stroke-width:1.3; }
35
+ :host([kind=edge]) .address { height:32px; border:1px solid #c7c7c7; margin:0 4px 0 0; padding:0 5px; }
36
+ :host([kind=edge][appearance=dark]) .address { border-color:#555; }
37
+ :host([kind=safari]) { background:#f8f8f8; color:#424242; }
38
+ :host([kind=safari][appearance=dark]) { background:#444448; color:#f4f4f4; }
39
+ :host([kind=safari]) .toolbar { height:52px; min-height:52px; padding:8px 12px 8px 0; gap:8px; border-bottom:1px solid #00000018; }
40
+ .safari-group { display:flex; align-items:center; height:36px; border-radius:18px; background:#eaeaea; flex:none; padding:0 4px; }
41
+ .safari-group button { width:32px; height:32px; border-radius:50%; }
42
+ .safari-group svg { width:18px; height:18px; stroke-width:1.5; }
43
+ .sidebar-group { gap:0; padding:0 8px; }
44
+ .sidebar-group button:last-child { width:16px; }
45
+ .sidebar-group button:last-child svg { width:12px; }
46
+ :host([kind=safari]) .safari-address { height:36px; max-width:none; margin:0; padding:0 10px 0 16px; border-radius:18px; background:#eaeaea; border:1px solid #00000008; box-shadow:0 1px 2px #00000008; gap:8px; }
47
+ .safari-address span { text-align:center; font-size:13px; }
48
+ .safari-address button { width:24px; height:28px; flex:none; }
49
+ .safari-actions { padding:0 8px; }
50
+ :host([kind=safari][appearance=dark]) .safari-group { background:#5b5b5f; }
51
+ :host([kind=safari][appearance=dark]) .safari-address { background:#505054; border-color:#ffffff10; }
52
+ @media(max-width:480px) { .tab { width:180px; } }
53
+ `;
@@ -0,0 +1,55 @@
1
+ import { LitElement, css, html, nothing } from 'lit';
2
+ import { styleMap } from 'lit/directives/style-map.js';
3
+ import { define } from '../0-face/define';
4
+ import { bezelById, screenGeometry } from './bezels';
5
+ import './app-chrome';
6
+ /** Artwork and a measured, native-size screen. The entire screen scales uniformly into the bezel. */
7
+ export class DsDeviceBezel extends LitElement {
8
+ static properties={ edgeToEdge:{type:Boolean,attribute:"edge-to-edge",reflect:true}, staticFrame:{type:Boolean,attribute:"static",reflect:true}, frameless:{type:Boolean,reflect:true}, responsive:{type:Boolean,reflect:true}, device:{}, assetBase:{attribute:'asset-base'}, chromeAssets:{attribute:'chrome-assets'}, network:{}, battery:{type:Number}, dualSim:{type:Boolean,attribute:'dual-sim'}, time:{}, address:{}, browser:{}, appearance:{reflect:true}, interactive:{type:Boolean}, status:{type:Boolean}, measuredWidth:{state:true} };
9
+ declare edgeToEdge:boolean; declare frameless: boolean; declare responsive: boolean;
10
+ declare staticFrame: boolean; declare device: string; declare assetBase: string; declare chromeAssets: string; declare network: string; declare battery: number; declare dualSim: boolean; declare time: string; declare address: string; declare browser: string; declare appearance: string; declare interactive: boolean; declare status: boolean;
11
+ declare private measuredWidth: number;
12
+ private observer?:ResizeObserver;
13
+ constructor(){super();this.edgeToEdge=false;this.staticFrame=false;this.frameless=false;this.responsive=false;this.device='iphone-17-pro-max-deep-blue';this.assetBase='';this.chromeAssets='';this.network='4G';this.battery=80;this.dualSim=false;this.time='00:01';this.address='';this.browser='';this.appearance='light';this.interactive=false;this.status=true;this.measuredWidth=0;}
14
+ static styles=css`
15
+ :host { display:block; width:var(--ds-device-width,280px); max-width:100%; }
16
+ :host([frameless]) { display:contents; }
17
+ .status-wrap { flex:none; }
18
+ :host([edge-to-edge]) .status-wrap { position:absolute; top:0; left:0; right:0; z-index:2; pointer-events:none; }
19
+ :host([edge-to-edge]) .home { display:none; }
20
+ /* Over the page, the status bar's ink follows appearance: black over a light page, white over a dark one. */
21
+ :host([edge-to-edge]) ds-app-chrome { --chrome-screen:transparent; background:transparent; }
22
+ .scaled-chrome { transform-origin:top left; }
23
+ .device.compact { box-shadow:inset 0 0 0 3px #202124; border-radius:32px; background:#202124; }
24
+ .compact .art { display:none; }
25
+ .device { position:relative; width:100%; }
26
+ .screen { position:absolute; transform-origin:top left; overflow:hidden; background:var(--ds-device-paper,#fff); display:flex; flex-direction:column; }
27
+ :host([appearance=dark]) .screen { --ds-device-paper:#111; }
28
+ .content { position:relative; flex:1; min-height:0; overflow:hidden; }
29
+ .art { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
30
+ .browser { position:absolute; left:0; right:0; bottom:34px; z-index:1; }
31
+ .screen.with-browser .home { position:absolute; bottom:0; left:0; right:0; background:transparent; pointer-events:none; }
32
+ .screen.with-browser .home::after { display:none; }
33
+ .home { height:34px; flex:none; display:flex; align-items:center; justify-content:center; background:var(--ds-device-paper,#fff); }
34
+ .home::after { content:''; width:134px; height:5px; border-radius:9px; background:#000; }
35
+ :host([appearance=dark]) .home::after { background:#fff; }
36
+ ds-app-chrome { flex:none; } ::slotted(iframe) { display:block; width:100%; height:100%; border:0; }
37
+ .missing { padding:20px; border:1px solid currentColor; font:14px/20px sans-serif; }
38
+ `;
39
+ connectedCallback(){super.connectedCallback();this.observer=new ResizeObserver(entries=>{this.measuredWidth=entries[0].contentRect.width;});this.observer.observe(this);}
40
+ disconnectedCallback(){this.observer?.disconnect();super.disconnectedCallback();}
41
+ render(){
42
+ if(this.frameless)return html`<slot></slot>`;
43
+ const b=bezelById(this.device);
44
+ if(!b||!this.assetBase)return html`<div class="missing" role="status">${b?'Set asset-base to your licensed bezel artwork.':'Unknown device bezel.'}</div>`;
45
+ const g=screenGeometry(b,this.measuredWidth||b.width);
46
+ const compact=this.responsive && this.measuredWidth>0 && this.measuredWidth<320;
47
+ if(compact){g.left=3;g.top=3;g.scale=(this.measuredWidth-6)/g.width;}
48
+ const screenStyle={left:g.left+'px',top:g.top+'px',width:g.width*(this.responsive?g.scale:1)+'px',height:g.height*(this.responsive?g.scale:1)+'px',borderRadius:(compact?29:b.screen.radius*(this.responsive?g.scale:1))+'px',transform:this.responsive?'none':`scale(${g.scale})`};
49
+ const chromeStyle=this.responsive?`width:${g.width}px;transform:scale(${g.scale});`:'';
50
+ const path=this.assetBase.replace(/\/?$/,'/')+b.asset.split('/').pop();
51
+ return html`<div class=${compact?'device compact':'device'} style=${styleMap({aspectRatio:`${b.width} / ${b.height}`})}><div class=${this.browser==='safari'?'screen with-browser':'screen'} part="screen" style=${styleMap(screenStyle)}>${this.status?html`<div class="status-wrap" style=${this.responsive?`height:${(b.kind==='phone'?59:32)*g.scale}px`:""}><ds-app-chrome class="scaled-chrome" style=${chromeStyle} .kind=${b.kind==='phone'?'ios':'ipados'} .time=${this.time} .network=${this.network} .battery=${this.battery} .dualSim=${this.dualSim} .appearance=${this.appearance} .assetBase=${this.chromeAssets}></ds-app-chrome></div>`:nothing}<div class="content" part="viewport" ?inert=${this.staticFrame}><slot></slot></div>${this.browser==='safari'?html`<div class="browser" style=${this.responsive?`height:${49*g.scale}px;bottom:${34*g.scale}px`:""}><ds-app-chrome class="scaled-chrome" style=${chromeStyle} kind="safari-ios" .address=${this.address} .appearance=${this.appearance} .interactive=${this.interactive&&!this.staticFrame}></ds-app-chrome></div>`:nothing}<div class="home" aria-hidden="true"></div></div><img class="art" src=${path} alt="" width=${b.width} height=${b.height} @error=${()=>this.dispatchEvent(new CustomEvent('bezel-error',{detail:{device:b.id},bubbles:true,composed:true}))}></div>`;
52
+ }
53
+ }
54
+ define('ds-device-bezel',DsDeviceBezel);
55
+ declare global { interface HTMLElementTagNameMap { 'ds-device-bezel': DsDeviceBezel; } }
@@ -0,0 +1,15 @@
1
+ import { css, html } from 'lit';
2
+
3
+ /**
4
+ * The Reels frame: its size, its transparent face and the slotted media. App chrome draws it from
5
+ * the start, so the picture shows and nothing moves while the overlay (`instagram.ts`) loads on demand.
6
+ */
7
+ export const instagramFrameStyles = css`
8
+ :host([kind=instagram]) { height:100%; background:transparent; color:white; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
9
+ .reels { position:relative; height:100%; overflow:hidden; isolation:isolate; }
10
+ .reels-media { position:absolute; inset:0; z-index:-2; }
11
+ .reels ::slotted(*) { width:100%; height:100%; display:block; object-fit:cover; }
12
+ `;
13
+
14
+ /** The frame alone, until the overlay has loaded. */
15
+ export const instagramFrame = () => html`<div class="reels"><div class="reels-media"><slot></slot></div></div>`;