@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.
- package/DS1/0-face/button-label.ts +28 -0
- package/DS1/0-face/calendar.ts +6 -4
- package/DS1/0-face/carousel.ts +70 -0
- package/DS1/0-face/constraint-panel.ts +443 -0
- package/DS1/0-face/constraint-site.ts +201 -0
- package/DS1/0-face/constraints.ts +308 -0
- package/DS1/0-face/copy-text.ts +1 -1
- package/DS1/0-face/cut-fade.ts +312 -0
- package/DS1/0-face/define.ts +30 -2
- package/DS1/0-face/face-correction.ts +96 -0
- package/DS1/0-face/failures.ts +32 -0
- package/DS1/0-face/fault-lines.ts +159 -0
- package/DS1/0-face/feedback-overlays.ts +5 -3
- package/DS1/0-face/feedback.ts +3 -0
- package/DS1/0-face/focus-vision.swift +31 -0
- package/DS1/0-face/focus.ts +181 -0
- package/DS1/0-face/google-face-metrics.json +102 -0
- package/DS1/0-face/grid.ts +61 -4
- package/DS1/0-face/i18n.ts +36 -18
- package/DS1/0-face/layout-inspector.ts +124 -98
- package/DS1/0-face/preference-options.ts +4 -0
- package/DS1/0-face/scaling.ts +21 -3
- package/DS1/0-face/shape.ts +43 -0
- package/DS1/0-face/text-contrast.ts +164 -0
- package/DS1/0-face/theme-bootstrap.js +43 -0
- package/DS1/0-face/toast-queue.ts +7 -1
- package/DS1/0-face/translations/da.json +10 -1
- package/DS1/0-face/translations/de.json +10 -1
- package/DS1/0-face/translations/en.json +10 -1
- package/DS1/0-face/translations/es.json +10 -1
- package/DS1/0-face/translations/fi.json +10 -1
- package/DS1/0-face/translations/fr.json +10 -1
- package/DS1/0-face/translations/is.json +10 -1
- package/DS1/0-face/translations/it.json +10 -1
- package/DS1/0-face/translations/ja.json +10 -1
- package/DS1/0-face/translations/ko.json +10 -1
- package/DS1/0-face/translations/nb.json +10 -1
- package/DS1/0-face/translations/pt-BR.json +10 -1
- package/DS1/0-face/translations/pt.json +10 -1
- package/DS1/0-face/translations/sv.json +10 -1
- package/DS1/0-face/translations/zh.json +10 -1
- package/DS1/0-face/word-wrap.ts +113 -0
- package/DS1/1-root/card.css +47 -20
- package/DS1/1-root/carousel.css +7 -0
- package/DS1/1-root/cjk.css +1 -1
- package/DS1/1-root/component-tokens.css +3 -2
- package/DS1/1-root/context.css +44 -6
- package/DS1/1-root/controls.css +99 -8
- package/DS1/1-root/document.css +9 -1
- package/DS1/1-root/empty.css +46 -5
- package/DS1/1-root/figures.css +50 -3
- package/DS1/1-root/fonts.css +1 -1
- package/DS1/1-root/footer.css +147 -16
- package/DS1/1-root/foundation.ts +60 -0
- package/DS1/1-root/guide.css +35 -0
- package/DS1/1-root/header.css +30 -9
- package/DS1/1-root/material.css +67 -0
- package/DS1/1-root/notice.css +10 -2
- package/DS1/1-root/one.css +15 -7
- package/DS1/1-root/progress.css +9 -1
- package/DS1/1-root/row.css +68 -2
- package/DS1/1-root/table.css +47 -4
- package/DS1/1-root/text.css +26 -0
- package/DS1/2-core/button-split.ts +10 -5
- package/DS1/2-core/chart/chart.css +71 -2
- package/DS1/2-core/chart/grid-chart.ts +2 -1
- package/DS1/2-core/ds-activity.ts +32 -0
- package/DS1/2-core/ds-app-chrome.ts +1 -0
- package/DS1/2-core/ds-avatar.ts +75 -7
- package/DS1/2-core/ds-badge.ts +8 -1
- package/DS1/2-core/ds-button.ts +7 -1
- package/DS1/2-core/ds-chart.ts +184 -49
- package/DS1/2-core/ds-cycle.ts +27 -186
- package/DS1/2-core/ds-device-bezel.ts +1 -0
- package/DS1/2-core/ds-empty.ts +6 -4
- package/DS1/2-core/ds-input.ts +23 -3
- package/DS1/2-core/ds-message.ts +22 -0
- package/DS1/2-core/ds-number.ts +349 -0
- package/DS1/2-core/ds-progress.ts +3 -0
- package/DS1/2-core/ds-radio.ts +3 -0
- package/DS1/2-core/ds-stat.ts +3 -0
- package/DS1/2-core/ds-switch.ts +5 -1
- package/DS1/2-core/ds-tag.ts +9 -2
- package/DS1/2-core/ds-text.ts +7 -0
- package/DS1/2-core/ds-token.ts +3 -0
- package/DS1/2-core/ds-tooltip.ts +17 -2
- package/DS1/2-core/ds-window.ts +1 -0
- package/DS1/2-core/generated/ds-icon-map.ts +47 -5
- package/DS1/2-core/generated/icons-extra.ts +24 -3
- package/DS1/2-core/generated/icons-immediate.ts +3 -3
- package/DS1/2-core/number-expression.ts +64 -0
- package/DS1/2-core/styles/ds-activity.css +16 -0
- package/DS1/2-core/styles/ds-badge.css +4 -1
- package/DS1/2-core/styles/ds-button-host.css +47 -13
- package/DS1/2-core/styles/ds-button-split.css +8 -0
- package/DS1/2-core/styles/ds-button.css +94 -20
- package/DS1/2-core/styles/ds-card.css +6 -0
- package/DS1/2-core/styles/ds-checkbox.css +20 -8
- package/DS1/2-core/styles/ds-image.css +2 -1
- package/DS1/2-core/styles/ds-input.css +37 -4
- package/DS1/2-core/styles/ds-number.css +127 -0
- package/DS1/2-core/styles/ds-radio.css +4 -1
- package/DS1/2-core/styles/ds-switch.css +34 -4
- package/DS1/2-core/styles/ds-tag.css +34 -6
- package/DS1/2-core/styles/ds-text.css +13 -4
- package/DS1/2-core/styles/ds-token.css +4 -1
- package/DS1/2-core/styles/ds-tooltip.css +13 -7
- package/DS1/3-unit/calendar-base.ts +5 -2
- package/DS1/3-unit/context-trigger.ts +29 -2
- package/DS1/3-unit/ds-calendar.ts +711 -37
- package/DS1/3-unit/ds-carousel.ts +13 -1
- package/DS1/3-unit/ds-context.ts +40 -2
- package/DS1/3-unit/ds-form.ts +47 -11
- package/DS1/3-unit/ds-list.ts +31 -3
- package/DS1/3-unit/ds-matrix.ts +3 -0
- package/DS1/3-unit/ds-menu.ts +9 -5
- package/DS1/3-unit/ds-row.ts +17 -2
- package/DS1/3-unit/ds-select.ts +1 -1
- package/DS1/3-unit/ds-sidebar.ts +18 -3
- package/DS1/3-unit/ds-table-of-contents.ts +166 -0
- package/DS1/3-unit/ds-table.ts +2 -1
- package/DS1/3-unit/ds-tabs.ts +40 -2
- package/DS1/3-unit/styles/ds-calendar.css +356 -42
- package/DS1/3-unit/styles/ds-context.css +38 -0
- package/DS1/3-unit/styles/ds-list.css +26 -1
- package/DS1/3-unit/styles/ds-matrix.css +4 -1
- package/DS1/3-unit/styles/ds-row.css +39 -0
- package/DS1/3-unit/styles/ds-select.css +22 -12
- package/DS1/3-unit/styles/ds-sidebar.css +16 -2
- package/DS1/3-unit/styles/ds-table-of-contents.css +40 -0
- package/DS1/3-unit/styles/ds-tabs.css +95 -0
- package/DS1/4-page/ds-container.ts +2 -1
- package/DS1/4-page/ds-document.ts +3 -0
- package/DS1/4-page/ds-footer.ts +93 -18
- package/DS1/4-page/ds-header.ts +5 -1
- package/DS1/4-page/ds-overlay.ts +8 -3
- package/DS1/4-page/ds-page.ts +22 -1
- package/DS1/4-page/email.ts +7 -4
- package/DS1/4-page/styles/ds-container.css +0 -1
- package/DS1/4-page/styles/ds-overlay.css +7 -0
- package/DS1/4-page/styles/ds-page.css +10 -0
- package/DS1/5-visual-kit/app-chrome.ts +129 -0
- package/DS1/5-visual-kit/bezels.ts +394 -0
- package/DS1/5-visual-kit/browser-icons.LICENSE +53 -0
- package/DS1/5-visual-kit/browser-icons.ts +47 -0
- package/DS1/5-visual-kit/browser-styles.ts +53 -0
- package/DS1/5-visual-kit/device-bezel.ts +55 -0
- package/DS1/5-visual-kit/instagram-frame.ts +15 -0
- package/DS1/5-visual-kit/instagram.ts +41 -0
- package/DS1/5-visual-kit/mobile-chrome.ts +25 -0
- package/DS1/5-visual-kit/native-icon-paths.ts +145 -0
- package/DS1/5-visual-kit/window.ts +22 -0
- package/DS1/components.ts +1 -0
- package/DS1/index.ts +14 -1
- package/DS1/react/choice.ts +4 -2
- package/DS1/react/context.ts +11 -6
- package/DS1/react/empty.ts +2 -2
- package/DS1/react/footer.ts +5 -5
- package/DS1/react/header.ts +1 -1
- package/DS1/react/message.ts +4 -2
- package/DS1/react/number.ts +53 -0
- package/DS1/react/sidebar.ts +4 -2
- package/DS1/react/table-of-contents.ts +28 -0
- package/DS1/x-flag/LICENSE.md +26 -0
- package/DS1/x-flag/ac.svg +1 -0
- package/DS1/x-flag/ad.svg +1 -0
- package/DS1/x-flag/ae.svg +1 -0
- package/DS1/x-flag/af.svg +1 -0
- package/DS1/x-flag/ag.svg +1 -0
- package/DS1/x-flag/ai.svg +1 -0
- package/DS1/x-flag/al.svg +1 -0
- package/DS1/x-flag/am.svg +1 -0
- package/DS1/x-flag/ao.svg +1 -0
- package/DS1/x-flag/aq.svg +1 -0
- package/DS1/x-flag/ar.svg +1 -0
- package/DS1/x-flag/as.svg +1 -0
- package/DS1/x-flag/at.svg +1 -0
- package/DS1/x-flag/au.svg +1 -0
- package/DS1/x-flag/aw.svg +1 -0
- package/DS1/x-flag/ax.svg +1 -0
- package/DS1/x-flag/az.svg +1 -0
- package/DS1/x-flag/ba.svg +1 -0
- package/DS1/x-flag/bb.svg +1 -0
- package/DS1/x-flag/bd.svg +1 -0
- package/DS1/x-flag/be.svg +1 -0
- package/DS1/x-flag/bf.svg +1 -0
- package/DS1/x-flag/bg.svg +1 -0
- package/DS1/x-flag/bh.svg +1 -0
- package/DS1/x-flag/bi.svg +1 -0
- package/DS1/x-flag/bj.svg +1 -0
- package/DS1/x-flag/bl.svg +1 -0
- package/DS1/x-flag/bm.svg +1 -0
- package/DS1/x-flag/bn.svg +1 -0
- package/DS1/x-flag/bo.svg +1 -0
- package/DS1/x-flag/bq-bo.svg +1 -0
- package/DS1/x-flag/bq-sa.svg +1 -0
- package/DS1/x-flag/bq-se.svg +1 -0
- package/DS1/x-flag/bq.svg +1 -0
- package/DS1/x-flag/br.svg +1 -0
- package/DS1/x-flag/bs.svg +1 -0
- package/DS1/x-flag/bt.svg +1 -0
- package/DS1/x-flag/bv.svg +1 -0
- package/DS1/x-flag/bw.svg +1 -0
- package/DS1/x-flag/by.svg +1 -0
- package/DS1/x-flag/bz.svg +1 -0
- package/DS1/x-flag/ca.svg +1 -0
- package/DS1/x-flag/cc.svg +1 -0
- package/DS1/x-flag/cd.svg +1 -0
- package/DS1/x-flag/cf.svg +1 -0
- package/DS1/x-flag/cg.svg +1 -0
- package/DS1/x-flag/ch.svg +1 -0
- package/DS1/x-flag/ci.svg +1 -0
- package/DS1/x-flag/ck.svg +1 -0
- package/DS1/x-flag/cl.svg +1 -0
- package/DS1/x-flag/cm.svg +1 -0
- package/DS1/x-flag/cn.svg +1 -0
- package/DS1/x-flag/co.svg +1 -0
- package/DS1/x-flag/cr.svg +1 -0
- package/DS1/x-flag/cu.svg +1 -0
- package/DS1/x-flag/cv.svg +1 -0
- package/DS1/x-flag/cw.svg +1 -0
- package/DS1/x-flag/cx.svg +1 -0
- package/DS1/x-flag/cy.svg +1 -0
- package/DS1/x-flag/cz.svg +1 -0
- package/DS1/x-flag/de.svg +1 -0
- package/DS1/x-flag/dj.svg +1 -0
- package/DS1/x-flag/dk.svg +1 -0
- package/DS1/x-flag/dm.svg +1 -0
- package/DS1/x-flag/do.svg +1 -0
- package/DS1/x-flag/dz.svg +1 -0
- package/DS1/x-flag/ec.svg +1 -0
- package/DS1/x-flag/ee.svg +1 -0
- package/DS1/x-flag/eg.svg +1 -0
- package/DS1/x-flag/eh.svg +1 -0
- package/DS1/x-flag/er.svg +1 -0
- package/DS1/x-flag/es-ct.svg +1 -0
- package/DS1/x-flag/es.svg +1 -0
- package/DS1/x-flag/et.svg +1 -0
- package/DS1/x-flag/eu.svg +1 -0
- package/DS1/x-flag/fi.svg +1 -0
- package/DS1/x-flag/fj.svg +1 -0
- package/DS1/x-flag/fk.svg +1 -0
- package/DS1/x-flag/fm.svg +1 -0
- package/DS1/x-flag/fo.svg +1 -0
- package/DS1/x-flag/fr.svg +1 -0
- package/DS1/x-flag/ga.svg +1 -0
- package/DS1/x-flag/gb-eng.svg +1 -0
- package/DS1/x-flag/gb-nir.svg +1 -0
- package/DS1/x-flag/gb-sct.svg +1 -0
- package/DS1/x-flag/gb-wls.svg +1 -0
- package/DS1/x-flag/gb.svg +1 -0
- package/DS1/x-flag/gd.svg +1 -0
- package/DS1/x-flag/ge.svg +1 -0
- package/DS1/x-flag/gf.svg +1 -0
- package/DS1/x-flag/gg.svg +1 -0
- package/DS1/x-flag/gh.svg +1 -0
- package/DS1/x-flag/gi.svg +1 -0
- package/DS1/x-flag/gl.svg +1 -0
- package/DS1/x-flag/gm.svg +1 -0
- package/DS1/x-flag/gn.svg +1 -0
- package/DS1/x-flag/gp.svg +1 -0
- package/DS1/x-flag/gq.svg +1 -0
- package/DS1/x-flag/gr.svg +1 -0
- package/DS1/x-flag/gs.svg +1 -0
- package/DS1/x-flag/gt.svg +1 -0
- package/DS1/x-flag/gu.svg +1 -0
- package/DS1/x-flag/gw.svg +1 -0
- package/DS1/x-flag/gy.svg +1 -0
- package/DS1/x-flag/hk.svg +1 -0
- package/DS1/x-flag/hm.svg +1 -0
- package/DS1/x-flag/hn.svg +1 -0
- package/DS1/x-flag/hr.svg +1 -0
- package/DS1/x-flag/ht.svg +1 -0
- package/DS1/x-flag/hu.svg +1 -0
- package/DS1/x-flag/ic.svg +1 -0
- package/DS1/x-flag/id.svg +1 -0
- package/DS1/x-flag/ie.svg +1 -0
- package/DS1/x-flag/il.svg +1 -0
- package/DS1/x-flag/im.svg +1 -0
- package/DS1/x-flag/in.svg +1 -0
- package/DS1/x-flag/io.svg +1 -0
- package/DS1/x-flag/iq.svg +1 -0
- package/DS1/x-flag/ir.svg +1 -0
- package/DS1/x-flag/is.svg +1 -0
- package/DS1/x-flag/it.svg +1 -0
- package/DS1/x-flag/je.svg +1 -0
- package/DS1/x-flag/jm.svg +1 -0
- package/DS1/x-flag/jo.svg +1 -0
- package/DS1/x-flag/jp.svg +1 -0
- package/DS1/x-flag/ke.svg +1 -0
- package/DS1/x-flag/kg.svg +1 -0
- package/DS1/x-flag/kh.svg +1 -0
- package/DS1/x-flag/ki.svg +1 -0
- package/DS1/x-flag/km.svg +1 -0
- package/DS1/x-flag/kn.svg +1 -0
- package/DS1/x-flag/kp.svg +1 -0
- package/DS1/x-flag/kr.svg +1 -0
- package/DS1/x-flag/kw.svg +1 -0
- package/DS1/x-flag/ky.svg +1 -0
- package/DS1/x-flag/kz.svg +1 -0
- package/DS1/x-flag/la.svg +1 -0
- package/DS1/x-flag/lb.svg +1 -0
- package/DS1/x-flag/lc.svg +1 -0
- package/DS1/x-flag/li.svg +1 -0
- package/DS1/x-flag/lk.svg +1 -0
- package/DS1/x-flag/lr.svg +1 -0
- package/DS1/x-flag/ls.svg +1 -0
- package/DS1/x-flag/lt.svg +1 -0
- package/DS1/x-flag/lu.svg +1 -0
- package/DS1/x-flag/lv.svg +1 -0
- package/DS1/x-flag/ly.svg +1 -0
- package/DS1/x-flag/ma.svg +1 -0
- package/DS1/x-flag/mc.svg +1 -0
- package/DS1/x-flag/md.svg +1 -0
- package/DS1/x-flag/me.svg +1 -0
- package/DS1/x-flag/mf.svg +1 -0
- package/DS1/x-flag/mg.svg +1 -0
- package/DS1/x-flag/mh.svg +1 -0
- package/DS1/x-flag/mk.svg +1 -0
- package/DS1/x-flag/ml.svg +1 -0
- package/DS1/x-flag/mm.svg +1 -0
- package/DS1/x-flag/mn.svg +1 -0
- package/DS1/x-flag/mo.svg +1 -0
- package/DS1/x-flag/mp.svg +1 -0
- package/DS1/x-flag/mq.svg +1 -0
- package/DS1/x-flag/mr.svg +1 -0
- package/DS1/x-flag/ms.svg +1 -0
- package/DS1/x-flag/mt.svg +1 -0
- package/DS1/x-flag/mu.svg +1 -0
- package/DS1/x-flag/mv.svg +1 -0
- package/DS1/x-flag/mw.svg +1 -0
- package/DS1/x-flag/mx.svg +1 -0
- package/DS1/x-flag/my.svg +1 -0
- package/DS1/x-flag/mz.svg +1 -0
- package/DS1/x-flag/na.svg +1 -0
- package/DS1/x-flag/nc.svg +1 -0
- package/DS1/x-flag/ne.svg +1 -0
- package/DS1/x-flag/nf.svg +1 -0
- package/DS1/x-flag/ng.svg +1 -0
- package/DS1/x-flag/ni.svg +1 -0
- package/DS1/x-flag/nl.svg +1 -0
- package/DS1/x-flag/no.svg +1 -0
- package/DS1/x-flag/np.svg +1 -0
- package/DS1/x-flag/nr.svg +1 -0
- package/DS1/x-flag/nu.svg +1 -0
- package/DS1/x-flag/nz.svg +1 -0
- package/DS1/x-flag/om.svg +1 -0
- package/DS1/x-flag/pa.svg +1 -0
- package/DS1/x-flag/pe.svg +1 -0
- package/DS1/x-flag/pf.svg +1 -0
- package/DS1/x-flag/pg.svg +1 -0
- package/DS1/x-flag/ph.svg +1 -0
- package/DS1/x-flag/pk.svg +1 -0
- package/DS1/x-flag/pl.svg +1 -0
- package/DS1/x-flag/pm.svg +1 -0
- package/DS1/x-flag/pn.svg +1 -0
- package/DS1/x-flag/pr.svg +1 -0
- package/DS1/x-flag/ps.svg +1 -0
- package/DS1/x-flag/pt.svg +1 -0
- package/DS1/x-flag/pw.svg +1 -0
- package/DS1/x-flag/py.svg +1 -0
- package/DS1/x-flag/qa.svg +1 -0
- package/DS1/x-flag/re.svg +1 -0
- package/DS1/x-flag/ro.svg +1 -0
- package/DS1/x-flag/rs.svg +1 -0
- package/DS1/x-flag/ru.svg +1 -0
- package/DS1/x-flag/rw.svg +1 -0
- package/DS1/x-flag/sa.svg +1 -0
- package/DS1/x-flag/sb.svg +1 -0
- package/DS1/x-flag/sc.svg +1 -0
- package/DS1/x-flag/sd.svg +1 -0
- package/DS1/x-flag/se.svg +1 -0
- package/DS1/x-flag/sg.svg +1 -0
- package/DS1/x-flag/sh.svg +1 -0
- package/DS1/x-flag/si.svg +1 -0
- package/DS1/x-flag/sj.svg +1 -0
- package/DS1/x-flag/sk.svg +1 -0
- package/DS1/x-flag/sl.svg +1 -0
- package/DS1/x-flag/sm.svg +1 -0
- package/DS1/x-flag/sn.svg +1 -0
- package/DS1/x-flag/so.svg +1 -0
- package/DS1/x-flag/sr.svg +1 -0
- package/DS1/x-flag/ss.svg +1 -0
- package/DS1/x-flag/st.svg +1 -0
- package/DS1/x-flag/sv.svg +1 -0
- package/DS1/x-flag/sx.svg +1 -0
- package/DS1/x-flag/sy.svg +1 -0
- package/DS1/x-flag/sz.svg +1 -0
- package/DS1/x-flag/ta.svg +1 -0
- package/DS1/x-flag/tc.svg +1 -0
- package/DS1/x-flag/td.svg +1 -0
- package/DS1/x-flag/tf.svg +1 -0
- package/DS1/x-flag/tg.svg +1 -0
- package/DS1/x-flag/th.svg +1 -0
- package/DS1/x-flag/tj.svg +1 -0
- package/DS1/x-flag/tk.svg +1 -0
- package/DS1/x-flag/tl.svg +1 -0
- package/DS1/x-flag/tm.svg +1 -0
- package/DS1/x-flag/tn.svg +1 -0
- package/DS1/x-flag/to.svg +1 -0
- package/DS1/x-flag/tr.svg +1 -0
- package/DS1/x-flag/tt.svg +1 -0
- package/DS1/x-flag/tv.svg +1 -0
- package/DS1/x-flag/tw.svg +1 -0
- package/DS1/x-flag/tz.svg +1 -0
- package/DS1/x-flag/ua.svg +1 -0
- package/DS1/x-flag/ug.svg +1 -0
- package/DS1/x-flag/um.svg +1 -0
- package/DS1/x-flag/us.svg +1 -0
- package/DS1/x-flag/uy.svg +1 -0
- package/DS1/x-flag/uz.svg +1 -0
- package/DS1/x-flag/va.svg +1 -0
- package/DS1/x-flag/vc.svg +1 -0
- package/DS1/x-flag/ve.svg +1 -0
- package/DS1/x-flag/vg.svg +1 -0
- package/DS1/x-flag/vi.svg +1 -0
- package/DS1/x-flag/vn.svg +1 -0
- package/DS1/x-flag/vu.svg +1 -0
- package/DS1/x-flag/wf.svg +1 -0
- package/DS1/x-flag/ws.svg +1 -0
- package/DS1/x-flag/xk.svg +1 -0
- package/DS1/x-flag/ye.svg +1 -0
- package/DS1/x-flag/yt.svg +1 -0
- package/DS1/x-flag/za.svg +1 -0
- package/DS1/x-flag/zm.svg +1 -0
- package/DS1/x-flag/zw.svg +1 -0
- package/DS1/x-icon/android.svg +9 -0
- package/DS1/x-icon/arrange-check.svg +1 -1
- package/DS1/x-icon/arrange-page.svg +1 -1
- package/DS1/x-icon/chrome.svg +7 -0
- package/DS1/x-icon/edge-brand.svg +6 -0
- package/DS1/x-icon/firefox.svg +4 -0
- package/DS1/x-icon/health.svg +3 -0
- package/DS1/x-icon/left.svg +2 -3
- package/DS1/x-icon/linux.svg +1 -0
- package/DS1/x-icon/material.svg +1 -0
- package/DS1/x-icon/milestone-planned.svg +3 -0
- package/DS1/x-icon/milestone.svg +3 -0
- package/DS1/x-icon/more.svg +1 -5
- package/DS1/x-icon/network.svg +3 -0
- package/DS1/x-icon/opera.svg +4 -0
- package/DS1/x-icon/prediction.svg +3 -0
- package/DS1/x-icon/priority-high.svg +3 -0
- package/DS1/x-icon/priority-low.svg +3 -0
- package/DS1/x-icon/priority-medium.svg +3 -0
- package/DS1/x-icon/project.svg +3 -0
- package/DS1/x-icon/redo.svg +2 -2
- package/DS1/x-icon/repeat-small.svg +3 -0
- package/DS1/x-icon/safari.svg +4 -0
- package/DS1/x-icon/scaling.svg +3 -0
- package/DS1/x-icon/tabs.svg +4 -0
- package/DS1/x-icon/windows.svg +5 -0
- package/README.md +3 -3
- package/dist/0-face/button-label.d.ts +5 -0
- package/dist/0-face/button-label.d.ts.map +1 -0
- package/dist/0-face/button-label.js +31 -0
- package/dist/0-face/calendar.d.ts +1 -1
- package/dist/0-face/calendar.d.ts.map +1 -1
- package/dist/0-face/calendar.js +6 -3
- package/dist/0-face/carousel.d.ts +9 -0
- package/dist/0-face/carousel.d.ts.map +1 -1
- package/dist/0-face/carousel.js +80 -0
- package/dist/0-face/constraint-panel.d.ts +43 -0
- package/dist/0-face/constraint-panel.d.ts.map +1 -0
- package/dist/0-face/constraint-panel.js +451 -0
- package/dist/0-face/constraint-site.d.ts +73 -0
- package/dist/0-face/constraint-site.d.ts.map +1 -0
- package/dist/0-face/constraint-site.js +186 -0
- package/dist/0-face/constraints.d.ts +47 -0
- package/dist/0-face/constraints.d.ts.map +1 -0
- package/dist/0-face/constraints.js +274 -0
- package/dist/0-face/copy-text.js +1 -1
- package/dist/0-face/cut-fade.d.ts +112 -0
- package/dist/0-face/cut-fade.d.ts.map +1 -0
- package/dist/0-face/cut-fade.js +274 -0
- package/dist/0-face/define.d.ts.map +1 -1
- package/dist/0-face/define.js +24 -3
- package/dist/0-face/face-correction.d.ts +51 -0
- package/dist/0-face/face-correction.d.ts.map +1 -0
- package/dist/0-face/face-correction.js +80 -0
- package/dist/0-face/failures.d.ts +16 -0
- package/dist/0-face/failures.d.ts.map +1 -0
- package/dist/0-face/failures.js +21 -0
- package/dist/0-face/fault-lines.d.ts +20 -0
- package/dist/0-face/fault-lines.d.ts.map +1 -0
- package/dist/0-face/fault-lines.js +172 -0
- package/dist/0-face/feedback-overlays.d.ts.map +1 -1
- package/dist/0-face/feedback-overlays.js +5 -3
- package/dist/0-face/feedback.d.ts +2 -0
- package/dist/0-face/feedback.d.ts.map +1 -1
- package/dist/0-face/feedback.js +1 -0
- package/dist/0-face/focus.d.ts +71 -0
- package/dist/0-face/focus.d.ts.map +1 -0
- package/dist/0-face/focus.js +196 -0
- package/dist/0-face/grid.d.ts +11 -1
- package/dist/0-face/grid.d.ts.map +1 -1
- package/dist/0-face/grid.js +90 -4
- package/dist/0-face/i18n.d.ts.map +1 -1
- package/dist/0-face/i18n.js +38 -16
- package/dist/0-face/layout-inspector.d.ts +5 -1
- package/dist/0-face/layout-inspector.d.ts.map +1 -1
- package/dist/0-face/layout-inspector.js +130 -104
- package/dist/0-face/preference-options.d.ts +4 -0
- package/dist/0-face/preference-options.d.ts.map +1 -1
- package/dist/0-face/scaling.d.ts +8 -1
- package/dist/0-face/scaling.d.ts.map +1 -1
- package/dist/0-face/scaling.js +19 -2
- package/dist/0-face/shape.d.ts +35 -0
- package/dist/0-face/shape.d.ts.map +1 -0
- package/dist/0-face/shape.js +23 -0
- package/dist/0-face/text-contrast.d.ts +22 -0
- package/dist/0-face/text-contrast.d.ts.map +1 -0
- package/dist/0-face/text-contrast.js +178 -0
- package/dist/0-face/theme-bootstrap.js +56 -0
- package/dist/0-face/toast-queue.d.ts +4 -0
- package/dist/0-face/toast-queue.d.ts.map +1 -1
- package/dist/0-face/toast-queue.js +4 -1
- package/dist/0-face/translations/da.json +10 -1
- package/dist/0-face/translations/de.json +10 -1
- package/dist/0-face/translations/en.json +10 -1
- package/dist/0-face/translations/es.json +10 -1
- package/dist/0-face/translations/fi.json +10 -1
- package/dist/0-face/translations/fr.json +10 -1
- package/dist/0-face/translations/is.json +10 -1
- package/dist/0-face/translations/it.json +10 -1
- package/dist/0-face/translations/ja.json +10 -1
- package/dist/0-face/translations/ko.json +10 -1
- package/dist/0-face/translations/nb.json +10 -1
- package/dist/0-face/translations/pt-BR.json +10 -1
- package/dist/0-face/translations/pt.json +10 -1
- package/dist/0-face/translations/sv.json +10 -1
- package/dist/0-face/translations/zh.json +10 -1
- package/dist/0-face/word-wrap.d.ts +6 -0
- package/dist/0-face/word-wrap.d.ts.map +1 -0
- package/dist/0-face/word-wrap.js +119 -0
- package/dist/1-root/foundation.d.ts +12 -0
- package/dist/1-root/foundation.d.ts.map +1 -0
- package/dist/1-root/foundation.js +59 -0
- package/dist/2-core/button-split.d.ts +1 -0
- package/dist/2-core/button-split.d.ts.map +1 -1
- package/dist/2-core/button-split.js +9 -4
- package/dist/2-core/chart/grid-chart.d.ts +2 -0
- package/dist/2-core/chart/grid-chart.d.ts.map +1 -1
- package/dist/2-core/chart/grid-chart.js +2 -1
- package/dist/2-core/ds-activity.d.ts +25 -0
- package/dist/2-core/ds-activity.d.ts.map +1 -0
- package/dist/2-core/ds-activity.js +28 -0
- package/dist/2-core/ds-app-chrome.d.ts +2 -0
- package/dist/2-core/ds-app-chrome.d.ts.map +1 -0
- package/dist/2-core/ds-app-chrome.js +1 -0
- package/dist/2-core/ds-avatar.d.ts +12 -0
- package/dist/2-core/ds-avatar.d.ts.map +1 -1
- package/dist/2-core/ds-avatar.js +86 -7
- package/dist/2-core/ds-badge.d.ts +7 -1
- package/dist/2-core/ds-badge.d.ts.map +1 -1
- package/dist/2-core/ds-badge.js +8 -1
- package/dist/2-core/ds-button.d.ts +12 -0
- package/dist/2-core/ds-button.d.ts.map +1 -1
- package/dist/2-core/ds-button.js +4 -0
- package/dist/2-core/ds-chart.d.ts +28 -3
- package/dist/2-core/ds-chart.d.ts.map +1 -1
- package/dist/2-core/ds-chart.js +110 -130
- package/dist/2-core/ds-cycle.d.ts +2 -2
- package/dist/2-core/ds-cycle.d.ts.map +1 -1
- package/dist/2-core/ds-cycle.js +36 -171
- package/dist/2-core/ds-device-bezel.d.ts +2 -0
- package/dist/2-core/ds-device-bezel.d.ts.map +1 -0
- package/dist/2-core/ds-device-bezel.js +1 -0
- package/dist/2-core/ds-empty.d.ts +2 -2
- package/dist/2-core/ds-empty.d.ts.map +1 -1
- package/dist/2-core/ds-empty.js +6 -4
- package/dist/2-core/ds-input.d.ts +7 -0
- package/dist/2-core/ds-input.d.ts.map +1 -1
- package/dist/2-core/ds-input.js +23 -3
- package/dist/2-core/ds-message.d.ts +11 -0
- package/dist/2-core/ds-message.d.ts.map +1 -1
- package/dist/2-core/ds-message.js +18 -0
- package/dist/2-core/ds-number.d.ts +86 -0
- package/dist/2-core/ds-number.d.ts.map +1 -0
- package/dist/2-core/ds-number.js +326 -0
- package/dist/2-core/ds-progress.d.ts +3 -0
- package/dist/2-core/ds-progress.d.ts.map +1 -1
- package/dist/2-core/ds-progress.js +3 -0
- package/dist/2-core/ds-radio.d.ts +3 -0
- package/dist/2-core/ds-radio.d.ts.map +1 -1
- package/dist/2-core/ds-radio.js +10 -1
- package/dist/2-core/ds-stat.d.ts +3 -0
- package/dist/2-core/ds-stat.d.ts.map +1 -1
- package/dist/2-core/ds-stat.js +3 -0
- package/dist/2-core/ds-switch.d.ts +14 -1
- package/dist/2-core/ds-switch.d.ts.map +1 -1
- package/dist/2-core/ds-switch.js +3 -1
- package/dist/2-core/ds-tag.d.ts +8 -1
- package/dist/2-core/ds-tag.d.ts.map +1 -1
- package/dist/2-core/ds-tag.js +12 -2
- package/dist/2-core/ds-text.d.ts +7 -0
- package/dist/2-core/ds-text.d.ts.map +1 -1
- package/dist/2-core/ds-text.js +7 -0
- package/dist/2-core/ds-token.d.ts +3 -0
- package/dist/2-core/ds-token.d.ts.map +1 -1
- package/dist/2-core/ds-token.js +3 -0
- package/dist/2-core/ds-tooltip.d.ts.map +1 -1
- package/dist/2-core/ds-tooltip.js +23 -2
- package/dist/2-core/ds-window.d.ts +2 -0
- package/dist/2-core/ds-window.d.ts.map +1 -0
- package/dist/2-core/ds-window.js +1 -0
- package/dist/2-core/generated/ds-icon-map.d.ts +27 -6
- package/dist/2-core/generated/ds-icon-map.d.ts.map +1 -1
- package/dist/2-core/generated/ds-icon-map.js +47 -5
- package/dist/2-core/generated/icons-extra.d.ts.map +1 -1
- package/dist/2-core/generated/icons-extra.js +24 -3
- package/dist/2-core/generated/icons-immediate.d.ts +1 -1
- package/dist/2-core/generated/icons-immediate.d.ts.map +1 -1
- package/dist/2-core/generated/icons-immediate.js +3 -3
- package/dist/2-core/number-expression.d.ts +12 -0
- package/dist/2-core/number-expression.d.ts.map +1 -0
- package/dist/2-core/number-expression.js +82 -0
- package/dist/3-unit/calendar-base.d.ts +5 -0
- package/dist/3-unit/calendar-base.d.ts.map +1 -1
- package/dist/3-unit/calendar-base.js +3 -2
- package/dist/3-unit/context-trigger.d.ts.map +1 -1
- package/dist/3-unit/context-trigger.js +32 -2
- package/dist/3-unit/ds-calendar.d.ts +197 -4
- package/dist/3-unit/ds-calendar.d.ts.map +1 -1
- package/dist/3-unit/ds-calendar.js +687 -45
- package/dist/3-unit/ds-carousel.d.ts +3 -0
- package/dist/3-unit/ds-carousel.d.ts.map +1 -1
- package/dist/3-unit/ds-carousel.js +13 -1
- package/dist/3-unit/ds-context.d.ts +18 -1
- package/dist/3-unit/ds-context.d.ts.map +1 -1
- package/dist/3-unit/ds-context.js +37 -1
- package/dist/3-unit/ds-form.d.ts +9 -0
- package/dist/3-unit/ds-form.d.ts.map +1 -1
- package/dist/3-unit/ds-form.js +52 -11
- package/dist/3-unit/ds-list.d.ts +20 -1
- package/dist/3-unit/ds-list.d.ts.map +1 -1
- package/dist/3-unit/ds-list.js +31 -3
- package/dist/3-unit/ds-matrix.d.ts +3 -0
- package/dist/3-unit/ds-matrix.d.ts.map +1 -1
- package/dist/3-unit/ds-matrix.js +3 -0
- package/dist/3-unit/ds-menu.d.ts.map +1 -1
- package/dist/3-unit/ds-menu.js +17 -1
- package/dist/3-unit/ds-row.d.ts +13 -0
- package/dist/3-unit/ds-row.d.ts.map +1 -1
- package/dist/3-unit/ds-row.js +15 -2
- package/dist/3-unit/ds-select.js +1 -1
- package/dist/3-unit/ds-sidebar.d.ts +17 -0
- package/dist/3-unit/ds-sidebar.d.ts.map +1 -1
- package/dist/3-unit/ds-sidebar.js +14 -3
- package/dist/3-unit/ds-table-of-contents.d.ts +68 -0
- package/dist/3-unit/ds-table-of-contents.d.ts.map +1 -0
- package/dist/3-unit/ds-table-of-contents.js +190 -0
- package/dist/3-unit/ds-table.d.ts.map +1 -1
- package/dist/3-unit/ds-table.js +2 -1
- package/dist/3-unit/ds-tabs.d.ts +32 -1
- package/dist/3-unit/ds-tabs.d.ts.map +1 -1
- package/dist/3-unit/ds-tabs.js +39 -1
- package/dist/4-page/ds-container.d.ts.map +1 -1
- package/dist/4-page/ds-container.js +2 -1
- package/dist/4-page/ds-document.d.ts +3 -0
- package/dist/4-page/ds-document.d.ts.map +1 -1
- package/dist/4-page/ds-document.js +3 -0
- package/dist/4-page/ds-footer.d.ts +47 -7
- package/dist/4-page/ds-footer.d.ts.map +1 -1
- package/dist/4-page/ds-footer.js +58 -14
- package/dist/4-page/ds-header.d.ts +6 -0
- package/dist/4-page/ds-header.d.ts.map +1 -1
- package/dist/4-page/ds-header.js +4 -1
- package/dist/4-page/ds-overlay.d.ts +2 -2
- package/dist/4-page/ds-overlay.d.ts.map +1 -1
- package/dist/4-page/ds-overlay.js +8 -3
- package/dist/4-page/ds-page.d.ts +12 -0
- package/dist/4-page/ds-page.d.ts.map +1 -1
- package/dist/4-page/ds-page.js +19 -1
- package/dist/4-page/email.d.ts +2 -0
- package/dist/4-page/email.d.ts.map +1 -1
- package/dist/4-page/email.js +5 -4
- package/dist/5-visual-kit/app-chrome.d.ts +98 -0
- package/dist/5-visual-kit/app-chrome.d.ts.map +1 -0
- package/dist/5-visual-kit/app-chrome.js +119 -0
- package/dist/5-visual-kit/bezels.d.ts +30 -0
- package/dist/5-visual-kit/bezels.d.ts.map +1 -0
- package/dist/5-visual-kit/bezels.js +388 -0
- package/dist/5-visual-kit/browser-icons.d.ts +5 -0
- package/dist/5-visual-kit/browser-icons.d.ts.map +1 -0
- package/dist/5-visual-kit/browser-icons.js +51 -0
- package/dist/5-visual-kit/browser-styles.d.ts +3 -0
- package/dist/5-visual-kit/browser-styles.d.ts.map +1 -0
- package/dist/5-visual-kit/browser-styles.js +52 -0
- package/dist/5-visual-kit/device-bezel.d.ts +84 -0
- package/dist/5-visual-kit/device-bezel.d.ts.map +1 -0
- package/dist/5-visual-kit/device-bezel.js +56 -0
- package/dist/5-visual-kit/instagram-frame.d.ts +8 -0
- package/dist/5-visual-kit/instagram-frame.d.ts.map +1 -0
- package/dist/5-visual-kit/instagram-frame.js +13 -0
- package/dist/5-visual-kit/instagram.d.ts +18 -0
- package/dist/5-visual-kit/instagram.d.ts.map +1 -0
- package/dist/5-visual-kit/instagram.js +39 -0
- package/dist/5-visual-kit/mobile-chrome.d.ts +4 -0
- package/dist/5-visual-kit/mobile-chrome.d.ts.map +1 -0
- package/dist/5-visual-kit/mobile-chrome.js +24 -0
- package/dist/5-visual-kit/native-icon-paths.d.ts +146 -0
- package/dist/5-visual-kit/native-icon-paths.d.ts.map +1 -0
- package/dist/5-visual-kit/native-icon-paths.js +145 -0
- package/dist/5-visual-kit/window.d.ts +51 -0
- package/dist/5-visual-kit/window.d.ts.map +1 -0
- package/dist/5-visual-kit/window.js +20 -0
- package/dist/browser-icons-BFbS1tIx.js +56 -0
- package/dist/browser-icons-BFbS1tIx.js.map +1 -0
- package/dist/browser-icons-CT8qU77Z.js +48 -0
- package/dist/browser-icons-CT8qU77Z.js.map +1 -0
- package/dist/components.d.ts +1 -0
- package/dist/components.d.ts.map +1 -1
- package/dist/components.js +1 -0
- package/dist/design-system-1.bundle.js +5874 -2097
- package/dist/design-system-1.bundle.js.map +1 -1
- package/dist/design-system-1.bundle.min.js +7332 -4682
- package/dist/design-system-1.bundle.min.js.map +1 -1
- package/dist/design-system-1.css +1 -1
- package/dist/feedback.js +197 -167
- package/dist/feedback.js.map +1 -1
- package/dist/{icons-extra-CRxxWFjX.js → icons-extra-BMPvmQPI.js} +25 -4
- package/dist/icons-extra-BMPvmQPI.js.map +1 -0
- package/dist/{icons-extra-H5pqCM_R.js → icons-extra-BfYOw-cR.js} +83 -5
- package/dist/icons-extra-BfYOw-cR.js.map +1 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/instagram-CKofs55A.js +50 -0
- package/dist/instagram-CKofs55A.js.map +1 -0
- package/dist/instagram-CcYf5oiM.js +48 -0
- package/dist/instagram-CcYf5oiM.js.map +1 -0
- package/dist/lit-Ce_uWYM4.js +612 -0
- package/dist/lit-Ce_uWYM4.js.map +1 -0
- package/dist/lit-DGUVm1Ce.js +557 -0
- package/dist/lit-DGUVm1Ce.js.map +1 -0
- package/dist/native-icon-paths-CB9evXBM.js +93 -0
- package/dist/native-icon-paths-CB9evXBM.js.map +1 -0
- package/dist/native-icon-paths-zay-3g_n.js +150 -0
- package/dist/native-icon-paths-zay-3g_n.js.map +1 -0
- package/dist/react/avatar.d.ts +1 -1
- package/dist/react/choice.d.ts +4 -0
- package/dist/react/choice.d.ts.map +1 -1
- package/dist/react/choice.js +2 -2
- package/dist/react/context.d.ts +19 -4
- package/dist/react/context.d.ts.map +1 -1
- package/dist/react/context.js +4 -4
- package/dist/react/empty.d.ts +2 -2
- package/dist/react/empty.d.ts.map +1 -1
- package/dist/react/empty.js +1 -1
- package/dist/react/footer.d.ts +5 -5
- package/dist/react/footer.d.ts.map +1 -1
- package/dist/react/footer.js +2 -2
- package/dist/react/header.d.ts +2 -2
- package/dist/react/header.d.ts.map +1 -1
- package/dist/react/message.d.ts +4 -0
- package/dist/react/message.d.ts.map +1 -1
- package/dist/react/message.js +2 -2
- package/dist/react/number.d.ts +53 -0
- package/dist/react/number.d.ts.map +1 -0
- package/dist/react/number.js +25 -0
- package/dist/react/page.d.ts +1 -1
- package/dist/react/sidebar.d.ts +4 -0
- package/dist/react/sidebar.d.ts.map +1 -1
- package/dist/react/sidebar.js +2 -2
- package/dist/react/table-of-contents.d.ts +19 -0
- package/dist/react/table-of-contents.d.ts.map +1 -0
- package/dist/react/table-of-contents.js +28 -0
- package/dist/{shared-words-CdMDVtXx.js → shared-words-C5cjxMjZ.js} +151 -16
- package/dist/shared-words-C5cjxMjZ.js.map +1 -0
- package/dist/{shared-words-BtRee8xR.js → shared-words-Cdm7xd-_.js} +163 -28
- package/dist/shared-words-Cdm7xd-_.js.map +1 -0
- package/package.json +25 -12
- package/DS1/3-unit/ds-calendar-large.ts +0 -353
- package/DS1/3-unit/styles/ds-calendar-large.css +0 -178
- package/dist/3-unit/ds-calendar-large.d.ts +0 -142
- package/dist/3-unit/ds-calendar-large.d.ts.map +0 -1
- package/dist/3-unit/ds-calendar-large.js +0 -308
- package/dist/icons-extra-CRxxWFjX.js.map +0 -1
- package/dist/icons-extra-H5pqCM_R.js.map +0 -1
- package/dist/shared-words-BtRee8xR.js.map +0 -1
- package/dist/shared-words-CdMDVtXx.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
|
+
import { CutFades } from "../0-face/cut-fade";
|
|
2
3
|
/** The shared word over the contents. */
|
|
3
4
|
export declare const CONTENTS_LABEL = "Contents";
|
|
4
5
|
/** One entry in the contents: a heading in the writing. */
|
|
@@ -64,6 +65,8 @@ export declare class DocumentPage extends LitElement {
|
|
|
64
65
|
};
|
|
65
66
|
};
|
|
66
67
|
static styles: import("lit").CSSResult[];
|
|
68
|
+
/** Words cut short fade over their last square, never an ellipsis: marks them `data-cut="end"` while they do not fit. */
|
|
69
|
+
protected readonly cuts: CutFades;
|
|
67
70
|
levels: string;
|
|
68
71
|
label: string | undefined;
|
|
69
72
|
literal: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-document.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-document.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAA4B,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ds-document.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-document.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAA4B,MAAM,KAAK,CAAC;AAG3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAO9C,yCAAyC;AACzC,eAAO,MAAM,cAAc,aAAa,CAAC;AAEzC,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMjF;AAED,oGAAoG;AACpG,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAGzE;AAsBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;MAOf;IAEF,MAAM,CAAC,MAAM,4BAAqE;IAClF,yHAAyH;IACzH,SAAS,CAAC,QAAQ,CAAC,IAAI,WAAgE;IAE/E,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,KAAK,CAAK;;IAWlB,iBAAiB;IAajB,oBAAoB;IAWpB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAIvD,+DAA+D;IAC/D,IAAI,QAAQ,IAAI,WAAW,EAAE,CAI5B;IAED,6DAA6D;IAC7D,OAAO,IAAI,IAAI;IAef;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAgBd;IAEF,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,MAAM;IAad,MAAM;CAqBP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,YAAY,CAAC;KAC7B;CACF"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
7
7
|
import { getText } from "../0-face/i18n";
|
|
8
8
|
import { define } from "../0-face/define";
|
|
9
|
+
import { CutFades } from "../0-face/cut-fade";
|
|
9
10
|
import metrics from "../1-root/component-metrics.css?inline";
|
|
10
11
|
import documentSheet from "../1-root/document.css?inline";
|
|
11
12
|
import documentRules from "../1-root/document.css?raw";
|
|
@@ -79,6 +80,8 @@ function styleRoot(root) {
|
|
|
79
80
|
export class DocumentPage extends LitElement {
|
|
80
81
|
constructor() {
|
|
81
82
|
super();
|
|
83
|
+
/** Words cut short fade over their last square, never an ellipsis: marks them `data-cut="end"` while they do not fit. */
|
|
84
|
+
this.cuts = new CutFades(this, { selector: ".ds-document__toc-list a" });
|
|
82
85
|
this.relabel = () => this.requestUpdate();
|
|
83
86
|
this.observer = null;
|
|
84
87
|
this.frame = 0;
|
|
@@ -1,23 +1,51 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
|
+
import { CutFades } from "../0-face/cut-fade";
|
|
2
3
|
import "../2-core/ds-cycle";
|
|
3
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* A line in a footer column: a link, or, without `href`, words alone (an
|
|
6
|
+
* address, a registration number). In a column with words alone its links
|
|
7
|
+
* are underlined, so they can be told from the words around them.
|
|
8
|
+
*/
|
|
4
9
|
export interface FooterLink {
|
|
5
10
|
/** The words: a translation key, or as written with the footer's `literal`. */
|
|
6
11
|
label: string;
|
|
7
|
-
|
|
12
|
+
/** Where it leads. Without it the line is words alone. */
|
|
13
|
+
href?: string;
|
|
8
14
|
/** Opens elsewhere: in a new tab, with no referrer. */
|
|
9
15
|
external?: boolean;
|
|
10
16
|
/** The page being read: `aria-current="page"`. */
|
|
11
17
|
current?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* The link drawn as a mark, its label its accessible name: the icon file's
|
|
20
|
+
* address (`icons/instagram.svg`, as Sync 1's `icons` export copies it). A
|
|
21
|
+
* column's icon links stand first, in a row of their own, or stacked as
|
|
22
|
+
* round marks with the column's `icons: "stack"`.
|
|
23
|
+
*/
|
|
24
|
+
icon?: string;
|
|
12
25
|
}
|
|
13
|
-
/**
|
|
26
|
+
/** How a column's icon links stand: in a row first (`row`), or stacked as round marks (`stack`). */
|
|
27
|
+
export type FooterIcons = "row" | "stack";
|
|
28
|
+
/** A footer column: a heading and its lines. */
|
|
14
29
|
export interface FooterColumn {
|
|
15
30
|
heading?: string;
|
|
31
|
+
/** The heading as a link: where it leads. */
|
|
32
|
+
href?: string;
|
|
16
33
|
links: FooterLink[];
|
|
34
|
+
/** The column's width in whole squares: eight by default. */
|
|
35
|
+
width?: number;
|
|
36
|
+
/**
|
|
37
|
+
* `stack` draws its icon links as round marks one control high, one a line,
|
|
38
|
+
* the column one square wide at the end of the row; the heading then names
|
|
39
|
+
* the marks for assistive technology. `row` (the default) stands them first,
|
|
40
|
+
* in a row of their own.
|
|
41
|
+
*/
|
|
42
|
+
icons?: FooterIcons;
|
|
17
43
|
}
|
|
18
44
|
/** The settings a footer offers, each a `ds-cycle` of that type. */
|
|
19
|
-
export type FooterPreference = "language" | "theme";
|
|
20
|
-
/**
|
|
45
|
+
export type FooterPreference = "language" | "theme" | "shape";
|
|
46
|
+
/** A column's width in whole squares, from its `width`: eight when it is missing or not a positive number. */
|
|
47
|
+
export declare function footerColumnWidth(width: unknown): number;
|
|
48
|
+
/** The preferences named by an attribute: language and theme when it is present but empty. */
|
|
21
49
|
export declare function footerPreferences(value: string | null | undefined): FooterPreference[];
|
|
22
50
|
/**
|
|
23
51
|
* @element ds-footer
|
|
@@ -25,11 +53,14 @@ export declare function footerPreferences(value: string | null | undefined): Foo
|
|
|
25
53
|
* the words as they stand with `literal`. The `brand` slot takes its place.
|
|
26
54
|
* @prop {string} href - Where the brand links. `/` by default.
|
|
27
55
|
* @prop {string} tagline - A line about the site under the brand.
|
|
28
|
-
* @prop {FooterColumn[]} columns - The columns of links, eight squares each
|
|
56
|
+
* @prop {FooterColumn[]} columns - The columns of links or lines, eight squares each
|
|
57
|
+
* unless a column names its `width`.
|
|
29
58
|
* @prop {string} label - The columns' accessible name, as a navigation; without it they are plain lists.
|
|
30
59
|
* @prop {string} owner - Who holds the copyright: the brand by default.
|
|
31
60
|
* @prop {number} year - The copyright's year: this year by default.
|
|
32
|
-
* @prop {
|
|
61
|
+
* @prop {FooterLink[]} policies - Links under the copyright (privacy, terms), each
|
|
62
|
+
* drawn as a secondary button.
|
|
63
|
+
* @prop {string} preferences - `language`, `theme`, `shape` or several, as `ds-cycle`
|
|
33
64
|
* buttons at the end of the last row; present but empty, both.
|
|
34
65
|
* @prop {boolean} literal - Show the words as written, never looked up.
|
|
35
66
|
*
|
|
@@ -65,6 +96,9 @@ export declare class Footer extends LitElement {
|
|
|
65
96
|
year: {
|
|
66
97
|
type: NumberConstructor;
|
|
67
98
|
};
|
|
99
|
+
policies: {
|
|
100
|
+
type: ArrayConstructor;
|
|
101
|
+
};
|
|
68
102
|
preferences: {
|
|
69
103
|
type: StringConstructor;
|
|
70
104
|
};
|
|
@@ -74,6 +108,8 @@ export declare class Footer extends LitElement {
|
|
|
74
108
|
};
|
|
75
109
|
};
|
|
76
110
|
static styles: import("lit").CSSResult[];
|
|
111
|
+
/** Words cut short fade over their last square, never an ellipsis: marks them `data-cut="end"` while they do not fit. */
|
|
112
|
+
protected readonly cuts: CutFades;
|
|
77
113
|
brand: string | undefined;
|
|
78
114
|
href: string;
|
|
79
115
|
tagline: string | undefined;
|
|
@@ -81,6 +117,7 @@ export declare class Footer extends LitElement {
|
|
|
81
117
|
label: string | undefined;
|
|
82
118
|
owner: string | undefined;
|
|
83
119
|
year: number | undefined;
|
|
120
|
+
policies: FooterLink[];
|
|
84
121
|
preferences: string | null | undefined;
|
|
85
122
|
literal: boolean;
|
|
86
123
|
private readonly relabel;
|
|
@@ -89,7 +126,10 @@ export declare class Footer extends LitElement {
|
|
|
89
126
|
disconnectedCallback(): void;
|
|
90
127
|
private words;
|
|
91
128
|
private slotted;
|
|
129
|
+
private iconLink;
|
|
130
|
+
private anchor;
|
|
92
131
|
private link;
|
|
132
|
+
private column;
|
|
93
133
|
render(): import("lit").TemplateResult<1>;
|
|
94
134
|
}
|
|
95
135
|
declare global {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-footer.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-footer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ds-footer.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-footer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAA4B,MAAM,KAAK,CAAC;AAG3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,oBAAoB,CAAC;AAK5B;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,oGAAoG;AACpG,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAE1C,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,oEAAoE;AACpE,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAK9D,8GAA8G;AAC9G,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGxD;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,gBAAgB,EAAE,CAKtF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWf;IAEF,MAAM,CAAC,MAAM,4BAAgE;IAC7E,yHAAyH;IACzH,SAAS,CAAC,QAAQ,CAAC,IAAI,WAA2F;IAE1G,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;;IAUtD,iBAAiB;IAMjB,oBAAoB;IAMpB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,MAAM;IAqBd,MAAM;CAgCP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB;CACF"}
|
package/dist/4-page/ds-footer.js
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
// ds-footer.ts
|
|
2
|
-
// A site footer: the brand, columns of links
|
|
3
|
-
//
|
|
2
|
+
// A site footer: the brand, columns of links or contact lines, round marks
|
|
3
|
+
// stacked at the row's end, the language and theme, the copyright and the
|
|
4
|
+
// policies under it. Drawn by 1-root/footer.css, the same classes a page without
|
|
4
5
|
// scripts writes.
|
|
5
6
|
import { LitElement, html, nothing, unsafeCSS } from "lit";
|
|
6
7
|
import { getText } from "../0-face/i18n";
|
|
7
8
|
import { define } from "../0-face/define";
|
|
9
|
+
import { CutFades } from "../0-face/cut-fade";
|
|
8
10
|
import "../2-core/ds-cycle";
|
|
9
11
|
import metrics from "../1-root/component-metrics.css?inline";
|
|
10
12
|
import controls from "../1-root/controls.css?inline";
|
|
11
13
|
import styles from "./styles/ds-footer.css?inline";
|
|
12
|
-
const PREFERENCES = ["language", "theme"];
|
|
13
|
-
/**
|
|
14
|
+
const PREFERENCES = ["language", "theme", "shape"];
|
|
15
|
+
/** What an empty `preferences` offers: the shape only when it is named. */
|
|
16
|
+
const DEFAULT_PREFERENCES = ["language", "theme"];
|
|
17
|
+
/** A column's width in whole squares, from its `width`: eight when it is missing or not a positive number. */
|
|
18
|
+
export function footerColumnWidth(width) {
|
|
19
|
+
const squares = Math.round(Number(width));
|
|
20
|
+
return Number.isFinite(squares) && squares >= 1 ? squares : 8;
|
|
21
|
+
}
|
|
22
|
+
/** The preferences named by an attribute: language and theme when it is present but empty. */
|
|
14
23
|
export function footerPreferences(value) {
|
|
15
24
|
if (value == null || value === "false")
|
|
16
25
|
return [];
|
|
17
26
|
const named = value.split(/[\s,]+/).filter(Boolean);
|
|
18
27
|
if (!named.length || named.includes("true"))
|
|
19
|
-
return [...
|
|
28
|
+
return [...DEFAULT_PREFERENCES];
|
|
20
29
|
return PREFERENCES.filter(name => named.includes(name));
|
|
21
30
|
}
|
|
22
31
|
/**
|
|
@@ -25,11 +34,14 @@ export function footerPreferences(value) {
|
|
|
25
34
|
* the words as they stand with `literal`. The `brand` slot takes its place.
|
|
26
35
|
* @prop {string} href - Where the brand links. `/` by default.
|
|
27
36
|
* @prop {string} tagline - A line about the site under the brand.
|
|
28
|
-
* @prop {FooterColumn[]} columns - The columns of links, eight squares each
|
|
37
|
+
* @prop {FooterColumn[]} columns - The columns of links or lines, eight squares each
|
|
38
|
+
* unless a column names its `width`.
|
|
29
39
|
* @prop {string} label - The columns' accessible name, as a navigation; without it they are plain lists.
|
|
30
40
|
* @prop {string} owner - Who holds the copyright: the brand by default.
|
|
31
41
|
* @prop {number} year - The copyright's year: this year by default.
|
|
32
|
-
* @prop {
|
|
42
|
+
* @prop {FooterLink[]} policies - Links under the copyright (privacy, terms), each
|
|
43
|
+
* drawn as a secondary button.
|
|
44
|
+
* @prop {string} preferences - `language`, `theme`, `shape` or several, as `ds-cycle`
|
|
33
45
|
* buttons at the end of the last row; present but empty, both.
|
|
34
46
|
* @prop {boolean} literal - Show the words as written, never looked up.
|
|
35
47
|
*
|
|
@@ -45,9 +57,12 @@ export function footerPreferences(value) {
|
|
|
45
57
|
export class Footer extends LitElement {
|
|
46
58
|
constructor() {
|
|
47
59
|
super();
|
|
60
|
+
/** Words cut short fade over their last square, never an ellipsis: marks them `data-cut="end"` while they do not fit. */
|
|
61
|
+
this.cuts = new CutFades(this, { selector: ".ds-footer__links > li > *, .ds-footer__heading > a" });
|
|
48
62
|
this.relabel = () => this.requestUpdate();
|
|
49
63
|
this.href = "/";
|
|
50
64
|
this.columns = [];
|
|
65
|
+
this.policies = [];
|
|
51
66
|
this.literal = false;
|
|
52
67
|
}
|
|
53
68
|
connectedCallback() {
|
|
@@ -68,9 +83,36 @@ export class Footer extends LitElement {
|
|
|
68
83
|
slotted(name) {
|
|
69
84
|
return [...this.children].some(node => node.getAttribute("slot") === name);
|
|
70
85
|
}
|
|
86
|
+
iconLink(link) {
|
|
87
|
+
return html `<li><a href=${link.href} aria-label=${this.words(link.label)} aria-current=${link.current ? "page" : nothing}
|
|
88
|
+
target=${link.external ? "_blank" : nothing} rel=${link.external ? "noopener noreferrer" : nothing}><span class="ds-icon" aria-hidden="true" style=${`--ds-icon: url("${link.icon}")`}></span></a></li>`;
|
|
89
|
+
}
|
|
90
|
+
anchor(link, className) {
|
|
91
|
+
return html `<a class=${className ?? nothing} href=${link.href} aria-current=${link.current ? "page" : nothing}
|
|
92
|
+
target=${link.external ? "_blank" : nothing} rel=${link.external ? "noopener noreferrer" : nothing}>${this.words(link.label)}</a>`;
|
|
93
|
+
}
|
|
71
94
|
link(link) {
|
|
72
|
-
return html `<li
|
|
73
|
-
|
|
95
|
+
return html `<li>${link.href ? this.anchor(link) : html `<span>${this.words(link.label)}</span>`}</li>`;
|
|
96
|
+
}
|
|
97
|
+
column(column) {
|
|
98
|
+
const stack = column.icons === "stack";
|
|
99
|
+
const icons = column.links.filter(link => link.icon && link.href);
|
|
100
|
+
const lines = column.links.filter(link => !(link.icon && link.href));
|
|
101
|
+
const width = footerColumnWidth(column.width);
|
|
102
|
+
const heading = column.heading ? this.words(column.heading) : "";
|
|
103
|
+
if (stack) {
|
|
104
|
+
return html `<div class="ds-footer__column ds-footer__column--stack" part="column">
|
|
105
|
+
<ul class="ds-footer__icons" part="icons" aria-label=${heading || nothing}>${icons.map(link => this.iconLink(link))}</ul>
|
|
106
|
+
${lines.length ? html `<ul class="ds-footer__links">${lines.map(link => this.link(link))}</ul>` : nothing}
|
|
107
|
+
</div>`;
|
|
108
|
+
}
|
|
109
|
+
return html `<div class="ds-footer__column" part="column" style=${width === 8 ? nothing : `--ds-footer-column-width: ${width}`}>
|
|
110
|
+
${heading
|
|
111
|
+
? html `<h2 class="ds-footer__heading" part="heading">${column.href ? html `<a href=${column.href}>${heading}</a>` : heading}</h2>`
|
|
112
|
+
: nothing}
|
|
113
|
+
${icons.length ? html `<ul class="ds-footer__icons" part="icons">${icons.map(link => this.iconLink(link))}</ul>` : nothing}
|
|
114
|
+
<ul class="ds-footer__links">${lines.map(link => this.link(link))}</ul>
|
|
115
|
+
</div>`;
|
|
74
116
|
}
|
|
75
117
|
render() {
|
|
76
118
|
const columns = (Array.isArray(this.columns) ? this.columns : []).filter(column => column && Array.isArray(column.links));
|
|
@@ -80,10 +122,8 @@ export class Footer extends LitElement {
|
|
|
80
122
|
const year = Number.isFinite(this.year) ? this.year : new Date().getFullYear();
|
|
81
123
|
const brandSlotted = this.slotted("brand");
|
|
82
124
|
const hasBrand = brandSlotted || Boolean(this.brand) || Boolean(this.tagline);
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
<ul class="ds-footer__links">${column.links.map(link => this.link(link))}</ul>
|
|
86
|
-
</div>`);
|
|
125
|
+
const policies = (Array.isArray(this.policies) ? this.policies : []).filter(link => link && link.href);
|
|
126
|
+
const list = columns.map(column => this.column(column));
|
|
87
127
|
return html `<footer class="ds-footer" part="footer">
|
|
88
128
|
<div class="ds-footer__brand" part="brand" ?hidden=${!hasBrand}>
|
|
89
129
|
<slot name="brand" @slotchange=${this.relabel}>${this.brand ? html `<a class="ds-footer__mark" href=${this.href || "/"}>${this.words(this.brand)}</a>` : nothing}</slot>
|
|
@@ -96,8 +136,11 @@ export class Footer extends LitElement {
|
|
|
96
136
|
: nothing}
|
|
97
137
|
<div class="ds-footer__base" part="base">
|
|
98
138
|
<p class="ds-footer__legal" part="legal"><slot name="legal" @slotchange=${this.relabel}>${owner ? `© ${year} ${owner}` : `© ${year}`}</slot></p>
|
|
139
|
+
${policies.length
|
|
140
|
+
? html `<ul class="ds-footer__policies" part="policies">${policies.map(link => html `<li>${this.anchor(link, "ds-button ds-button--secondary")}</li>`)}</ul>`
|
|
141
|
+
: nothing}
|
|
99
142
|
<div class="ds-footer__preferences" part="preferences" ?hidden=${!hasPreferences}>
|
|
100
|
-
${preferences.map(type => html `<ds-cycle type=${type}></ds-cycle>`)}
|
|
143
|
+
${preferences.map(type => html `<ds-cycle type=${type} label=${type === "shape" ? "Shape" : nothing}></ds-cycle>`)}
|
|
101
144
|
<slot name="preferences" @slotchange=${this.relabel}></slot>
|
|
102
145
|
</div>
|
|
103
146
|
</div>
|
|
@@ -112,6 +155,7 @@ Footer.properties = {
|
|
|
112
155
|
label: { type: String },
|
|
113
156
|
owner: { type: String },
|
|
114
157
|
year: { type: Number },
|
|
158
|
+
policies: { type: Array },
|
|
115
159
|
preferences: { type: String },
|
|
116
160
|
literal: { type: Boolean, reflect: true },
|
|
117
161
|
};
|
|
@@ -9,6 +9,7 @@ export declare const MENU_LABEL = "Menu";
|
|
|
9
9
|
* @prop {string} href - Where the brand links. `/` by default.
|
|
10
10
|
* @prop {string} label - The navigation's accessible name, when a page has more than one.
|
|
11
11
|
* @prop {boolean} literal - Show `brand` as written, never looked up.
|
|
12
|
+
* @prop {"site" | "app"} variant - Site navigation or a compact app title bar.
|
|
12
13
|
* @prop {boolean} sticky - Stay at the top of the page as it scrolls, on the paper.
|
|
13
14
|
*
|
|
14
15
|
* @slot - The navigation: `<a href>` links, one square high. The link to the
|
|
@@ -32,6 +33,10 @@ export declare const MENU_LABEL = "Menu";
|
|
|
32
33
|
*/
|
|
33
34
|
export declare class Header extends LitElement {
|
|
34
35
|
static properties: {
|
|
36
|
+
variant: {
|
|
37
|
+
type: StringConstructor;
|
|
38
|
+
reflect: boolean;
|
|
39
|
+
};
|
|
35
40
|
brand: {
|
|
36
41
|
type: StringConstructor;
|
|
37
42
|
};
|
|
@@ -51,6 +56,7 @@ export declare class Header extends LitElement {
|
|
|
51
56
|
};
|
|
52
57
|
};
|
|
53
58
|
static styles: import("lit").CSSResult[];
|
|
59
|
+
variant: "site" | "app";
|
|
54
60
|
brand: string | undefined;
|
|
55
61
|
href: string;
|
|
56
62
|
label: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-header.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-header.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAA4B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKhF,OAAO,mBAAmB,CAAC;AAK3B,iEAAiE;AACjE,eAAO,MAAM,UAAU,SAAS,CAAC;AAEjC
|
|
1
|
+
{"version":3,"file":"ds-header.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-header.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAA4B,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKhF,OAAO,mBAAmB,CAAC;AAK3B,iEAAiE;AACjE,eAAO,MAAM,UAAU,SAAS,CAAC;AAEjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;MAOf;IAEF,MAAM,CAAC,MAAM,4BAAgE;IAErE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAExB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;;IAUtD,kCAAkC;IAClC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,yEAAyE;IACzE,QAAQ,IAAI,IAAI;IAEhB,wBAAwB;IACxB,SAAS,IAAI,IAAI;IAEjB,iBAAiB;IAMjB,oBAAoB;IAQpB,SAAS,CAAC,YAAY;IAItB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAe/C,OAAO,CAAC,KAAK;IAKb,gFAAgF;IAChF,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,WAAW,CAGjB;IAEF,MAAM;CAwBP;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB;CACF"}
|
package/dist/4-page/ds-header.js
CHANGED
|
@@ -20,6 +20,7 @@ export const MENU_LABEL = "Menu";
|
|
|
20
20
|
* @prop {string} href - Where the brand links. `/` by default.
|
|
21
21
|
* @prop {string} label - The navigation's accessible name, when a page has more than one.
|
|
22
22
|
* @prop {boolean} literal - Show `brand` as written, never looked up.
|
|
23
|
+
* @prop {"site" | "app"} variant - Site navigation or a compact app title bar.
|
|
23
24
|
* @prop {boolean} sticky - Stay at the top of the page as it scrolls, on the paper.
|
|
24
25
|
*
|
|
25
26
|
* @slot - The navigation: `<a href>` links, one square high. The link to the
|
|
@@ -50,6 +51,7 @@ export class Header extends LitElement {
|
|
|
50
51
|
markCurrentLink(this.links());
|
|
51
52
|
this.requestUpdate();
|
|
52
53
|
};
|
|
54
|
+
this.variant = "site";
|
|
53
55
|
this.href = "/";
|
|
54
56
|
this.literal = false;
|
|
55
57
|
this.sticky = false;
|
|
@@ -117,7 +119,7 @@ export class Header extends LitElement {
|
|
|
117
119
|
: this.brand
|
|
118
120
|
? html `<a class="ds-header__brand" part="brand" href=${this.href || "/"}>${this.words(this.brand)}</a>`
|
|
119
121
|
: html `<slot name="brand" @slotchange=${this.relabel}></slot>`;
|
|
120
|
-
return html `<header class="ds-header${this.sticky ? " ds-header--sticky" : ""}" part="header">
|
|
122
|
+
return html `<header class="ds-header${this.variant === "app" ? " ds-header--app" : ""}${this.sticky ? " ds-header--sticky" : ""}" part="header">
|
|
121
123
|
${brand}
|
|
122
124
|
<nav class="ds-header__nav" part="nav" id="nav" aria-label=${this.label ? this.words(this.label) : nothing} ?hidden=${!hasNav}><slot @slotchange=${this.onNavChange}></slot></nav>
|
|
123
125
|
<div class="ds-header__actions" part="actions" ?hidden=${!hasActions}><slot name="actions" @slotchange=${this.relabel}></slot></div>
|
|
@@ -133,6 +135,7 @@ export class Header extends LitElement {
|
|
|
133
135
|
}
|
|
134
136
|
}
|
|
135
137
|
Header.properties = {
|
|
138
|
+
variant: { type: String, reflect: true },
|
|
136
139
|
brand: { type: String },
|
|
137
140
|
href: { type: String },
|
|
138
141
|
label: { type: String },
|
|
@@ -17,7 +17,7 @@ export type OverlayCloseReason = "escape" | "backdrop" | "outside" | "button" |
|
|
|
17
17
|
* `<dialog>` that keeps forms and accessible ID references together. The
|
|
18
18
|
* browser owns the top layer, inert background and modal focus navigation.
|
|
19
19
|
* Listen to ds-close-request and preventDefault to control whether it closes.
|
|
20
|
-
* `type` says what it is: a `modal` in the centre (the default), a `sheet`
|
|
20
|
+
* `type` says what it is: a `modal` in the centre (the default; a sheet on a phone), a `sheet`
|
|
21
21
|
* from the foot of the screen, a `drawer` at the `side` `"end"` (the default)
|
|
22
22
|
* or `"start"`, a `popover` at the `anchor` point, or the whole `screen`. A
|
|
23
23
|
* sheet and a drawer slide in and out and a finger swipes them away (reason
|
|
@@ -100,7 +100,7 @@ export declare class Overlay extends LitElement {
|
|
|
100
100
|
connectedCallback(): void;
|
|
101
101
|
disconnectedCallback(): void;
|
|
102
102
|
protected updated(): void;
|
|
103
|
-
/** Its type as it is drawn: an unknown one is a modal. */
|
|
103
|
+
/** Its type as it is drawn: an unknown one is a modal, and a modal on a phone is a sheet (Joachim, 20 October 2026: no modals on a phone at all). */
|
|
104
104
|
get kind(): OverlayType;
|
|
105
105
|
/** A modeless overlay leaves the page live: a popover always, any other with `non-modal`. */
|
|
106
106
|
get modeless(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-overlay.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,KAAK,CAAC;AAEvD,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,yBAAyB,CAAC;AACjC,OAAO,uBAAuB,CAAC;AAK/B,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC9E,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAC1C,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ds-overlay.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAwB,MAAM,KAAK,CAAC;AAEvD,OAAO,qBAAqB,CAAC;AAC7B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,yBAAyB,CAAC;AACjC,OAAO,uBAAuB,CAAC;AAK/B,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC9E,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC;AAC1C,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAuDnG;;;;;;;;;GASG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAYf;IACF,MAAM,CAAC,MAAM,4BAAyG;IAC9G,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACjC,+EAA+E;IACvE,IAAI,EAAE,WAAW,CAAC;IAC1B,2DAA2D;IACnD,IAAI,EAAE,WAAW,CAAC;IAC1B,kCAAkC;IAC1B,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,oFAAoF;IAC5E,WAAW,EAAE,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,WAAW,CAA6B;;IAiBhD,iBAAiB;IAOjB,oBAAoB;IAMpB,SAAS,CAAC,OAAO;IAEjB,qJAAqJ;IACrJ,IAAI,IAAI,IAAI,WAAW,CAGtB;IACD,6FAA6F;IAC7F,IAAI,QAAQ,YAAuD;IACnE,6DAA6D;IAC7D,IAAI,IAAI,IAAI,WAAW,CAItB;IAED,oIAAoI;IACpI,OAAO,CAAC,QAAQ;IAkBhB,qFAAqF;IACrF,KAAK,aAaH;IAEF,OAAO,CAAC,UAAU,CAWhB;IAEF,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,QAAQ;IAmBhB;6EACyE;IACnE,IAAI,CAAC,EAAE,SAAiB,EAAE,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO;IAiB9D,KAAK;IAEL,OAAO,CAAC,UAAU;IA2BlB,OAAO,CAAC,OAAO;IAoCf,YAAY,CAAC,MAAM,GAAE,kBAA6B;IAMlD,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa,CAKnB;IACF,OAAO,CAAC,eAAe,CAErB;IACF,OAAO,CAAC,cAAc,CAIpB;IACF,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,QAAQ,CAGd;IAEF,OAAO,CAAC,aAAa,CAInB;IAEF,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,aAAa,CAEnB;IACF,OAAO,CAAC,OAAO,CAMb;IAEF,MAAM;CACP;AAGD,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,YAAY,EAAE,OAAO,CAAA;KAAE;CAAE"}
|
|
@@ -10,6 +10,8 @@ import placementStyles from "../1-root/overlay.css?inline";
|
|
|
10
10
|
import metrics from "../1-root/component-metrics.css?inline";
|
|
11
11
|
const dialogStyles = `${frameStyles}\n${placementStyles}`;
|
|
12
12
|
const TYPES = new Set(["modal", "sheet", "drawer", "popover", "screen"]);
|
|
13
|
+
/** A phone's width, as `0-face/grid.ts` reads it. */
|
|
14
|
+
const onPhone = () => typeof matchMedia === "function" && matchMedia("(max-width: 768px)").matches;
|
|
13
15
|
const openDialogs = new WeakMap();
|
|
14
16
|
const scrollStyles = new WeakMap();
|
|
15
17
|
/** One owner per declaration, including mixed modal and stationary panels. */
|
|
@@ -68,7 +70,7 @@ function styleRoot(root) {
|
|
|
68
70
|
* `<dialog>` that keeps forms and accessible ID references together. The
|
|
69
71
|
* browser owns the top layer, inert background and modal focus navigation.
|
|
70
72
|
* Listen to ds-close-request and preventDefault to control whether it closes.
|
|
71
|
-
* `type` says what it is: a `modal` in the centre (the default), a `sheet`
|
|
73
|
+
* `type` says what it is: a `modal` in the centre (the default; a sheet on a phone), a `sheet`
|
|
72
74
|
* from the foot of the screen, a `drawer` at the `side` `"end"` (the default)
|
|
73
75
|
* or `"start"`, a `popover` at the `anchor` point, or the whole `screen`. A
|
|
74
76
|
* sheet and a drawer slide in and out and a finger swipes them away (reason
|
|
@@ -202,8 +204,11 @@ export class Overlay extends LitElement {
|
|
|
202
204
|
super.disconnectedCallback();
|
|
203
205
|
}
|
|
204
206
|
updated() { this.syncType(); this.syncOpen(); this.place(); }
|
|
205
|
-
/** Its type as it is drawn: an unknown one is a modal. */
|
|
206
|
-
get kind() {
|
|
207
|
+
/** Its type as it is drawn: an unknown one is a modal, and a modal on a phone is a sheet (Joachim, 20 October 2026: no modals on a phone at all). */
|
|
208
|
+
get kind() {
|
|
209
|
+
const type = TYPES.has(this.type) ? this.type : "modal";
|
|
210
|
+
return type === "modal" && onPhone() ? "sheet" : type;
|
|
211
|
+
}
|
|
207
212
|
/** A modeless overlay leaves the page live: a popover always, any other with `non-modal`. */
|
|
208
213
|
get modeless() { return this.nonModal || this.kind === "popover"; }
|
|
209
214
|
/** The edge it comes from and a finger swipes it back to. */
|
package/dist/4-page/ds-page.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export declare const PAGE_LAYOUTS: readonly PageLayout[];
|
|
|
12
12
|
* - `slot="aside"` is the trailing column, shown by `inspector`
|
|
13
13
|
* - `slot="footer"` runs along the bottom of the main area
|
|
14
14
|
*
|
|
15
|
+
* The main area is the document's main landmark (`role="main"`), unless the
|
|
16
|
+
* page stands inside a `<main>` or another page, or is given a `<main>` itself.
|
|
17
|
+
*
|
|
15
18
|
* Columns are whole squares: `sidebar` and `inspector` lead with 12, `split`
|
|
16
19
|
* with 16; `column` is 32 wide and `centered` 16, and `measure` sets either in
|
|
17
20
|
* whole squares. A centred column stands on a whole square: the room beside it
|
|
@@ -72,6 +75,9 @@ export declare class Page extends LitElement {
|
|
|
72
75
|
type: StringConstructor;
|
|
73
76
|
attribute: string;
|
|
74
77
|
};
|
|
78
|
+
landmark: {
|
|
79
|
+
state: boolean;
|
|
80
|
+
};
|
|
75
81
|
};
|
|
76
82
|
layout: PageLayout;
|
|
77
83
|
divided: boolean;
|
|
@@ -80,10 +86,16 @@ export declare class Page extends LitElement {
|
|
|
80
86
|
view: boolean;
|
|
81
87
|
drawer: boolean;
|
|
82
88
|
drawerLabel: string | undefined;
|
|
89
|
+
private landmark;
|
|
83
90
|
static styles: import("lit").CSSResult[];
|
|
84
91
|
private navigationDrawer;
|
|
85
92
|
private readonly relabel;
|
|
86
93
|
constructor();
|
|
94
|
+
/**
|
|
95
|
+
* The main area is the page's main landmark, unless the page stands inside
|
|
96
|
+
* one (or inside another page) or is given its own `<main>`.
|
|
97
|
+
*/
|
|
98
|
+
private readonly syncLandmark;
|
|
87
99
|
connectedCallback(): void;
|
|
88
100
|
disconnectedCallback(): void;
|
|
89
101
|
/** Whether the navigation drawer is open. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ds-page.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKvE,OAAO,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ds-page.d.ts","sourceRoot":"","sources":["../../DS1/4-page/ds-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKvE,OAAO,mBAAmB,CAAC;AAM3B,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAC7F,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAAqE,CAAC;AAEpH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,IAAK,SAAQ,UAAU;IAClC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MASf;IAEM,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAgB,QAAQ,CAAU;IAElC,MAAM,CAAC,MAAM,4BAA4C;IAEzD,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;;IAYtD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAK3B;IAEF,iBAAiB;IAOjB,oBAAoB;IAQpB,6CAA6C;IAC7C,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,mEAAmE;IACnE,UAAU,IAAI,IAAI;IAElB,mCAAmC;IACnC,WAAW,IAAI,IAAI;IAEnB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;IAmB/C,MAAM;IAwBN,YAAY;CASb;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGnF;AAQD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,IAAI,CAAC;KACjB;CACF"}
|
package/dist/4-page/ds-page.js
CHANGED
|
@@ -6,6 +6,7 @@ import { getText } from "../0-face/i18n";
|
|
|
6
6
|
import "../2-core/ds-icon";
|
|
7
7
|
import controls from "../1-root/controls.css?inline";
|
|
8
8
|
import styles from "./styles/ds-page.css?inline";
|
|
9
|
+
const MAIN = "main, [role='main']";
|
|
9
10
|
export const PAGE_LAYOUTS = ["sidebar", "split", "inspector", "column", "centered", "tiles"];
|
|
10
11
|
/**
|
|
11
12
|
* A standard page: where units stand on the grid. Every layout uses the same
|
|
@@ -17,6 +18,9 @@ export const PAGE_LAYOUTS = ["sidebar", "split", "inspector", "column", "centere
|
|
|
17
18
|
* - `slot="aside"` is the trailing column, shown by `inspector`
|
|
18
19
|
* - `slot="footer"` runs along the bottom of the main area
|
|
19
20
|
*
|
|
21
|
+
* The main area is the document's main landmark (`role="main"`), unless the
|
|
22
|
+
* page stands inside a `<main>` or another page, or is given a `<main>` itself.
|
|
23
|
+
*
|
|
20
24
|
* Columns are whole squares: `sidebar` and `inspector` lead with 12, `split`
|
|
21
25
|
* with 16; `column` is 32 wide and `centered` 16, and `measure` sets either in
|
|
22
26
|
* whole squares. A centred column stands on a whole square: the room beside it
|
|
@@ -52,14 +56,26 @@ export class Page extends LitElement {
|
|
|
52
56
|
super();
|
|
53
57
|
this.navigationDrawer = null;
|
|
54
58
|
this.relabel = () => this.requestUpdate();
|
|
59
|
+
/**
|
|
60
|
+
* The main area is the page's main landmark, unless the page stands inside
|
|
61
|
+
* one (or inside another page) or is given its own `<main>`.
|
|
62
|
+
*/
|
|
63
|
+
this.syncLandmark = () => {
|
|
64
|
+
const slot = this.renderRoot?.querySelector?.("slot:not([name])");
|
|
65
|
+
const given = slot?.assignedElements({ flatten: true }).some(element => element.matches(MAIN) || !!element.querySelector(MAIN));
|
|
66
|
+
const inside = !!this.parentElement?.closest(`${MAIN}, ds-page`);
|
|
67
|
+
this.landmark = !given && !inside;
|
|
68
|
+
};
|
|
55
69
|
this.layout = "sidebar";
|
|
56
70
|
this.divided = false;
|
|
57
71
|
this.fill = false;
|
|
58
72
|
this.view = false;
|
|
59
73
|
this.drawer = false;
|
|
74
|
+
this.landmark = true;
|
|
60
75
|
}
|
|
61
76
|
connectedCallback() {
|
|
62
77
|
super.connectedCallback();
|
|
78
|
+
this.syncLandmark();
|
|
63
79
|
window.addEventListener("language-changed", this.relabel);
|
|
64
80
|
window.addEventListener("translations-loaded", this.relabel);
|
|
65
81
|
}
|
|
@@ -115,7 +131,7 @@ export class Page extends LitElement {
|
|
|
115
131
|
</dialog>
|
|
116
132
|
<div class="area nav" part="nav" data-area="nav"><slot name="nav"></slot></div>
|
|
117
133
|
<div class="area header" part="header" data-area="header"><slot name="header"></slot></div>
|
|
118
|
-
<div class="area main" part="main" data-area="main"><slot></slot></div>
|
|
134
|
+
<div class="area main" part="main" data-area="main" role=${ifDefined(this.landmark ? "main" : undefined)}><slot @slotchange=${this.syncLandmark}></slot></div>
|
|
119
135
|
<div class="area aside" part="aside" data-area="aside"><slot name="aside"></slot></div>
|
|
120
136
|
<div class="area footer" part="footer" data-area="footer"><slot name="footer"></slot></div>
|
|
121
137
|
</div>
|
|
@@ -128,6 +144,7 @@ export class Page extends LitElement {
|
|
|
128
144
|
slot.addEventListener("slotchange", sync);
|
|
129
145
|
sync();
|
|
130
146
|
});
|
|
147
|
+
this.syncLandmark();
|
|
131
148
|
}
|
|
132
149
|
}
|
|
133
150
|
Page.properties = {
|
|
@@ -138,6 +155,7 @@ Page.properties = {
|
|
|
138
155
|
view: { type: Boolean, reflect: true },
|
|
139
156
|
drawer: { type: Boolean, reflect: true },
|
|
140
157
|
drawerLabel: { type: String, attribute: "drawer-label" },
|
|
158
|
+
landmark: { state: true },
|
|
141
159
|
};
|
|
142
160
|
Page.styles = [unsafeCSS(controls), unsafeCSS(styles)];
|
|
143
161
|
/**
|
package/dist/4-page/email.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export interface EmailFrameOptions {
|
|
|
22
22
|
language?: string;
|
|
23
23
|
fontUrl?: string;
|
|
24
24
|
wideLabel?: boolean;
|
|
25
|
+
/** Plain paper with a wider reading column, without visible grid ruling. */
|
|
26
|
+
plain?: boolean;
|
|
25
27
|
/** Trusted HTML from a template renderer, never raw user input. */
|
|
26
28
|
headerHtml?: string;
|
|
27
29
|
beforeHeaderHtml?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../DS1/4-page/email.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,GAAG,YAAY,CAAA;AAE5B,eAAO,MAAM,IAAI,6DAA6D,CAAA;AAC9E,eAAO,MAAM,SAAS,0LAAwI,CAAA;AAe9J,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYhD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,MAAM,CAER;AA2DD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../DS1/4-page/email.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,GAAG,YAAY,CAAA;AAE5B,eAAO,MAAM,IAAI,6DAA6D,CAAA;AAC9E,eAAO,MAAM,SAAS,0LAAwI,CAAA;AAe9J,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYhD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,MAAM,CAER;AA2DD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAsB3E;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,CAAC,GAAG,EAAE,GAAG,EAAO,GAAG,MAAM,CAGpE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;EAS5I"}
|
package/dist/4-page/email.js
CHANGED
|
@@ -94,11 +94,12 @@ const darkStyles = `
|
|
|
94
94
|
/** Rows are trusted template HTML. Escape every interpolated user value. */
|
|
95
95
|
export function emailFrame(options, body) {
|
|
96
96
|
const { product, homeUrl, title, preheader = '', language = 'en', fontUrl, wideLabel = false, headerHtml, beforeHeaderHtml = '', brandStyles = '' } = options;
|
|
97
|
+
const plain = options.plain === true;
|
|
97
98
|
return `<!doctype html>
|
|
98
99
|
<html lang="${escapeHtml(language)}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="color-scheme" content="light dark"><meta name="supported-color-schemes" content="light dark"><title>${escapeHtml(title)}</title>
|
|
99
100
|
<style>
|
|
100
|
-
${responsiveStyles}
|
|
101
|
-
${darkStyles}
|
|
101
|
+
${plain ? `@media screen and (max-width:700px) {.ds-email-page {width:100% !important;max-width:480px !important;}.ds-email-outer {padding:40px 20px !important;}}` : responsiveStyles}
|
|
102
|
+
${plain ? `@media (prefers-color-scheme:dark) {.ds-email-paper {background-color:#171717 !important;}.ds-email-type {color:#eeeeee !important;}}` : darkStyles}
|
|
102
103
|
${fontUrl ? `@font-face { font-family:'GT-America-Standard-Regular'; src:url('${escapeHtml(fontUrl)}') format('woff2'); font-weight:400; font-style:normal; mso-font-alt:Arial; }` : ''}
|
|
103
104
|
${brandStyles}
|
|
104
105
|
</style>
|
|
@@ -106,8 +107,8 @@ ${brandStyles}
|
|
|
106
107
|
</head>
|
|
107
108
|
<body class="ds-email-type" style="margin:0;padding:0;background-color:#ffffff;${emailType};-webkit-text-size-adjust:100%">
|
|
108
109
|
${preheader ? `<div style="display:none;max-height:0;overflow:hidden;opacity:0;mso-hide:all">${escapeHtml(preheader)}</div>` : ''}
|
|
109
|
-
<table class="ds-email-paper ds-email-type" role="presentation" width="100%" cellpadding="0" cellspacing="0" style="min-height:640px;background-color:#ffffff;background-image:${grid};background-size:20px 100%,100% calc(100% - 28px);background-position:${gridPosition};background-repeat:repeat-x,no-repeat
|
|
110
|
-
<table class="ds-email-page ds-email-type" role="presentation" width="240" cellpadding="0" cellspacing="0" style="width:
|
|
110
|
+
<table class="ds-email-paper ds-email-type" role="presentation" width="100%" cellpadding="0" cellspacing="0" style="${plain ? 'background-color:#ffffff;' : `min-height:640px;background-color:#ffffff;background-image:${grid};background-size:20px 100%,100% calc(100% - 28px);background-position:${gridPosition};background-repeat:repeat-x,no-repeat;`}${emailType}"><tr><td class="ds-email-outer" align="center" valign="top" style="padding:${plain ? '40px 20px' : '28px 20px 20px'}">
|
|
111
|
+
<table class="ds-email-page ds-email-type" role="presentation" width="${plain ? 480 : 240}" cellpadding="0" cellspacing="0" style="width:${plain ? 480 : 240}px;max-width:100%;table-layout:fixed;border-collapse:collapse;${emailType}">
|
|
111
112
|
${beforeHeaderHtml}
|
|
112
113
|
${headerHtml ?? `<tr><td class="ds-email-cell-row" align="right" height="20" style="height:20px;padding:0;font-size:0;line-height:0"><a href="${escapeHtml(homeUrl)}" class="ds-email-cell ds-email-cell-label${wideLabel ? ' ds-email-cell-wide' : ''}" style="text-decoration:none;position:relative;display:block;margin-left:auto;box-sizing:border-box;width:${wideLabel ? 160 : 80}px;height:20px;border:0;background:#e6e6e6;font-family:${font};font-size:14px;line-height:20px;mso-line-height-rule:exactly;font-weight:400;letter-spacing:normal;color:#797979;text-align:left"><span class="ds-email-cell-ink" style="display:block;box-sizing:border-box;padding:0 4px;white-space:nowrap;overflow:hidden">${escapeHtml(product)}</span></a></td></tr>`}
|
|
113
114
|
${body}
|