@livenetworks/ashlar 2.2.0 → 2.2.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/assets/brand/android-chrome-192x192.png +0 -0
- package/assets/brand/android-chrome-512x512.png +0 -0
- package/assets/brand/apple-touch-icon.png +0 -0
- package/assets/brand/favicon-16x16.png +0 -0
- package/assets/brand/favicon-32x32.png +0 -0
- package/assets/brand/favicon-48x48.png +0 -0
- package/assets/brand/favicon-dark-128x128.png +0 -0
- package/assets/brand/favicon-dark-16x16.png +0 -0
- package/assets/brand/favicon-dark-180x180.png +0 -0
- package/assets/brand/favicon-dark-192x192.png +0 -0
- package/assets/brand/favicon-dark-256x256.png +0 -0
- package/assets/brand/favicon-dark-32x32.png +0 -0
- package/assets/brand/favicon-dark-48x48.png +0 -0
- package/assets/brand/favicon-dark-512x512.png +0 -0
- package/assets/brand/favicon-dark-64x64.png +0 -0
- package/assets/brand/favicon-dark.ico +0 -0
- package/assets/brand/favicon-dark.png +0 -0
- package/assets/brand/favicon-light-128x128.png +0 -0
- package/assets/brand/favicon-light-16x16.png +0 -0
- package/assets/brand/favicon-light-180x180.png +0 -0
- package/assets/brand/favicon-light-192x192.png +0 -0
- package/assets/brand/favicon-light-256x256.png +0 -0
- package/assets/brand/favicon-light-32x32.png +0 -0
- package/assets/brand/favicon-light-48x48.png +0 -0
- package/assets/brand/favicon-light-512x512.png +0 -0
- package/assets/brand/favicon-light-64x64.png +0 -0
- package/assets/brand/favicon-light.ico +0 -0
- package/assets/brand/favicon-light.png +0 -0
- package/assets/brand/favicon.ico +0 -0
- package/assets/brand/favicon.png +0 -0
- package/assets/brand/favicon.svg +12 -0
- package/assets/brand/ln-ashlar-emblem-dark-128.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark-16.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark-256.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark-32.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark-64.png +0 -0
- package/assets/brand/ln-ashlar-emblem-dark.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-128.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-16.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-256.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-32.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light-64.png +0 -0
- package/assets/brand/ln-ashlar-emblem-light.png +0 -0
- package/assets/brand/ln-ashlar-logo-dark-128.png +0 -0
- package/assets/brand/ln-ashlar-logo-dark-256.png +0 -0
- package/assets/brand/ln-ashlar-logo-dark-512.png +0 -0
- package/assets/brand/ln-ashlar-logo-dark.png +0 -0
- package/assets/brand/ln-ashlar-logo-light-128.png +0 -0
- package/assets/brand/ln-ashlar-logo-light-256.png +0 -0
- package/assets/brand/ln-ashlar-logo-light-512.png +0 -0
- package/assets/brand/ln-ashlar-logo-light.png +0 -0
- package/assets/brand/site.webmanifest +41 -0
- package/assets/brand/source/ln-ashlar-icon-dark-1024.png +0 -0
- package/assets/brand/source/ln-ashlar-icon-dark-uncropped-1024.png +0 -0
- package/assets/brand/source/ln-ashlar-icon-light-1024.png +0 -0
- package/assets/brand/source/ln-ashlar-icon-light-uncropped-1024.png +0 -0
- package/assets/flags/ad.svg +150 -0
- package/assets/flags/ae.svg +6 -0
- package/assets/flags/af.svg +81 -0
- package/assets/flags/ag.svg +14 -0
- package/assets/flags/ai.svg +29 -0
- package/assets/flags/al.svg +5 -0
- package/assets/flags/am.svg +5 -0
- package/assets/flags/ao.svg +13 -0
- package/assets/flags/aq.svg +5 -0
- package/assets/flags/ar.svg +32 -0
- package/assets/flags/arab.svg +109 -0
- package/assets/flags/as.svg +72 -0
- package/assets/flags/asean.svg +13 -0
- package/assets/flags/at.svg +4 -0
- package/assets/flags/au.svg +8 -0
- package/assets/flags/aw.svg +186 -0
- package/assets/flags/ax.svg +18 -0
- package/assets/flags/az.svg +8 -0
- package/assets/flags/ba.svg +12 -0
- package/assets/flags/bb.svg +6 -0
- package/assets/flags/bd.svg +4 -0
- package/assets/flags/be.svg +7 -0
- package/assets/flags/bf.svg +7 -0
- package/assets/flags/bg.svg +5 -0
- package/assets/flags/bh.svg +4 -0
- package/assets/flags/bi.svg +15 -0
- package/assets/flags/bj.svg +14 -0
- package/assets/flags/bl.svg +5 -0
- package/assets/flags/bm.svg +97 -0
- package/assets/flags/bn.svg +36 -0
- package/assets/flags/bo.svg +673 -0
- package/assets/flags/bq.svg +5 -0
- package/assets/flags/br.svg +45 -0
- package/assets/flags/bs.svg +13 -0
- package/assets/flags/bt.svg +89 -0
- package/assets/flags/bv.svg +13 -0
- package/assets/flags/bw.svg +7 -0
- package/assets/flags/by.svg +18 -0
- package/assets/flags/bz.svg +145 -0
- package/assets/flags/ca.svg +4 -0
- package/assets/flags/cc.svg +19 -0
- package/assets/flags/cd.svg +5 -0
- package/assets/flags/cefta.svg +13 -0
- package/assets/flags/cf.svg +15 -0
- package/assets/flags/cg.svg +12 -0
- package/assets/flags/ch.svg +9 -0
- package/assets/flags/ci.svg +7 -0
- package/assets/flags/ck.svg +9 -0
- package/assets/flags/cl.svg +13 -0
- package/assets/flags/cm.svg +15 -0
- package/assets/flags/cn.svg +11 -0
- package/assets/flags/co.svg +7 -0
- package/assets/flags/cp.svg +7 -0
- package/assets/flags/cr.svg +7 -0
- package/assets/flags/cu.svg +13 -0
- package/assets/flags/cv.svg +13 -0
- package/assets/flags/cw.svg +14 -0
- package/assets/flags/cx.svg +15 -0
- package/assets/flags/cy.svg +6 -0
- package/assets/flags/cz.svg +5 -0
- package/assets/flags/de.svg +5 -0
- package/assets/flags/dg.svg +130 -0
- package/assets/flags/dj.svg +13 -0
- package/assets/flags/dk.svg +5 -0
- package/assets/flags/dm.svg +152 -0
- package/assets/flags/do.svg +121 -0
- package/assets/flags/dz.svg +5 -0
- package/assets/flags/eac.svg +48 -0
- package/assets/flags/ec.svg +138 -0
- package/assets/flags/ee.svg +5 -0
- package/assets/flags/eg.svg +38 -0
- package/assets/flags/eh.svg +16 -0
- package/assets/flags/er.svg +8 -0
- package/assets/flags/es-ct.svg +4 -0
- package/assets/flags/es-ga.svg +187 -0
- package/assets/flags/es-pv.svg +5 -0
- package/assets/flags/es.svg +544 -0
- package/assets/flags/et.svg +14 -0
- package/assets/flags/eu.svg +28 -0
- package/assets/flags/fi.svg +5 -0
- package/assets/flags/fj.svg +120 -0
- package/assets/flags/fk.svg +90 -0
- package/assets/flags/fm.svg +11 -0
- package/assets/flags/fo.svg +12 -0
- package/assets/flags/fr.svg +5 -0
- package/assets/flags/ga.svg +7 -0
- package/assets/flags/gb-eng.svg +5 -0
- package/assets/flags/gb-nir.svg +132 -0
- package/assets/flags/gb-sct.svg +4 -0
- package/assets/flags/gb-wls.svg +9 -0
- package/assets/flags/gb.svg +7 -0
- package/assets/flags/gd.svg +27 -0
- package/assets/flags/ge.svg +6 -0
- package/assets/flags/gf.svg +5 -0
- package/assets/flags/gg.svg +9 -0
- package/assets/flags/gh.svg +6 -0
- package/assets/flags/gi.svg +32 -0
- package/assets/flags/gl.svg +4 -0
- package/assets/flags/gm.svg +14 -0
- package/assets/flags/gn.svg +7 -0
- package/assets/flags/gp.svg +5 -0
- package/assets/flags/gq.svg +23 -0
- package/assets/flags/gr.svg +16 -0
- package/assets/flags/gs.svg +133 -0
- package/assets/flags/gt.svg +204 -0
- package/assets/flags/gu.svg +19 -0
- package/assets/flags/gw.svg +13 -0
- package/assets/flags/gy.svg +9 -0
- package/assets/flags/hk.svg +8 -0
- package/assets/flags/hm.svg +8 -0
- package/assets/flags/hn.svg +18 -0
- package/assets/flags/hr.svg +58 -0
- package/assets/flags/ht.svg +116 -0
- package/assets/flags/hu.svg +7 -0
- package/assets/flags/ic.svg +7 -0
- package/assets/flags/id.svg +4 -0
- package/assets/flags/ie.svg +7 -0
- package/assets/flags/il.svg +14 -0
- package/assets/flags/im.svg +36 -0
- package/assets/flags/in.svg +25 -0
- package/assets/flags/io.svg +130 -0
- package/assets/flags/iq.svg +10 -0
- package/assets/flags/ir.svg +219 -0
- package/assets/flags/is.svg +12 -0
- package/assets/flags/it.svg +7 -0
- package/assets/flags/je.svg +62 -0
- package/assets/flags/jm.svg +8 -0
- package/assets/flags/jo.svg +16 -0
- package/assets/flags/jp.svg +11 -0
- package/assets/flags/ke.svg +23 -0
- package/assets/flags/kg.svg +4 -0
- package/assets/flags/kh.svg +61 -0
- package/assets/flags/ki.svg +36 -0
- package/assets/flags/km.svg +16 -0
- package/assets/flags/kn.svg +14 -0
- package/assets/flags/kp.svg +15 -0
- package/assets/flags/kr.svg +24 -0
- package/assets/flags/kw.svg +13 -0
- package/assets/flags/ky.svg +103 -0
- package/assets/flags/kz.svg +36 -0
- package/assets/flags/la.svg +12 -0
- package/assets/flags/lb.svg +15 -0
- package/assets/flags/lc.svg +8 -0
- package/assets/flags/li.svg +43 -0
- package/assets/flags/lk.svg +22 -0
- package/assets/flags/lr.svg +14 -0
- package/assets/flags/ls.svg +8 -0
- package/assets/flags/lt.svg +7 -0
- package/assets/flags/lu.svg +5 -0
- package/assets/flags/lv.svg +6 -0
- package/assets/flags/ly.svg +13 -0
- package/assets/flags/ma.svg +4 -0
- package/assets/flags/mc.svg +6 -0
- package/assets/flags/md.svg +70 -0
- package/assets/flags/me.svg +116 -0
- package/assets/flags/mf.svg +5 -0
- package/assets/flags/mg.svg +7 -0
- package/assets/flags/mh.svg +7 -0
- package/assets/flags/mk.svg +5 -0
- package/assets/flags/ml.svg +7 -0
- package/assets/flags/mm.svg +12 -0
- package/assets/flags/mn.svg +14 -0
- package/assets/flags/mo.svg +9 -0
- package/assets/flags/mp.svg +86 -0
- package/assets/flags/mq.svg +5 -0
- package/assets/flags/mr.svg +6 -0
- package/assets/flags/ms.svg +29 -0
- package/assets/flags/mt.svg +58 -0
- package/assets/flags/mu.svg +8 -0
- package/assets/flags/mv.svg +6 -0
- package/assets/flags/mw.svg +10 -0
- package/assets/flags/mx.svg +382 -0
- package/assets/flags/my.svg +26 -0
- package/assets/flags/mz.svg +21 -0
- package/assets/flags/na.svg +16 -0
- package/assets/flags/nc.svg +13 -0
- package/assets/flags/ne.svg +6 -0
- package/assets/flags/nf.svg +9 -0
- package/assets/flags/ng.svg +6 -0
- package/assets/flags/ni.svg +129 -0
- package/assets/flags/nl.svg +5 -0
- package/assets/flags/no.svg +7 -0
- package/assets/flags/np.svg +13 -0
- package/assets/flags/nr.svg +12 -0
- package/assets/flags/nu.svg +10 -0
- package/assets/flags/nz.svg +36 -0
- package/assets/flags/om.svg +115 -0
- package/assets/flags/pa.svg +14 -0
- package/assets/flags/pc.svg +33 -0
- package/assets/flags/pe.svg +4 -0
- package/assets/flags/pf.svg +19 -0
- package/assets/flags/pg.svg +9 -0
- package/assets/flags/ph.svg +6 -0
- package/assets/flags/pk.svg +15 -0
- package/assets/flags/pl.svg +6 -0
- package/assets/flags/pm.svg +5 -0
- package/assets/flags/pn.svg +53 -0
- package/assets/flags/pr.svg +13 -0
- package/assets/flags/ps.svg +6 -0
- package/assets/flags/pt.svg +57 -0
- package/assets/flags/pw.svg +11 -0
- package/assets/flags/py.svg +157 -0
- package/assets/flags/qa.svg +4 -0
- package/assets/flags/re.svg +5 -0
- package/assets/flags/ro.svg +7 -0
- package/assets/flags/rs.svg +292 -0
- package/assets/flags/ru.svg +5 -0
- package/assets/flags/rw.svg +13 -0
- package/assets/flags/sa.svg +25 -0
- package/assets/flags/sb.svg +13 -0
- package/assets/flags/sc.svg +7 -0
- package/assets/flags/sd.svg +13 -0
- package/assets/flags/se.svg +4 -0
- package/assets/flags/sg.svg +13 -0
- package/assets/flags/sh-ac.svg +689 -0
- package/assets/flags/sh-hl.svg +164 -0
- package/assets/flags/sh-ta.svg +76 -0
- package/assets/flags/sh.svg +7 -0
- package/assets/flags/si.svg +18 -0
- package/assets/flags/sj.svg +7 -0
- package/assets/flags/sk.svg +9 -0
- package/assets/flags/sl.svg +7 -0
- package/assets/flags/sm.svg +75 -0
- package/assets/flags/sn.svg +8 -0
- package/assets/flags/so.svg +11 -0
- package/assets/flags/sr.svg +6 -0
- package/assets/flags/ss.svg +8 -0
- package/assets/flags/st.svg +16 -0
- package/assets/flags/sv.svg +593 -0
- package/assets/flags/sx.svg +56 -0
- package/assets/flags/sy.svg +6 -0
- package/assets/flags/sz.svg +34 -0
- package/assets/flags/tc.svg +50 -0
- package/assets/flags/td.svg +7 -0
- package/assets/flags/tf.svg +15 -0
- package/assets/flags/tg.svg +14 -0
- package/assets/flags/th.svg +7 -0
- package/assets/flags/tj.svg +22 -0
- package/assets/flags/tk.svg +5 -0
- package/assets/flags/tl.svg +13 -0
- package/assets/flags/tm.svg +204 -0
- package/assets/flags/tn.svg +4 -0
- package/assets/flags/to.svg +10 -0
- package/assets/flags/tr.svg +8 -0
- package/assets/flags/tt.svg +5 -0
- package/assets/flags/tv.svg +9 -0
- package/assets/flags/tw.svg +34 -0
- package/assets/flags/tz.svg +13 -0
- package/assets/flags/ua.svg +6 -0
- package/assets/flags/ug.svg +30 -0
- package/assets/flags/um.svg +9 -0
- package/assets/flags/un.svg +16 -0
- package/assets/flags/us.svg +9 -0
- package/assets/flags/uy.svg +28 -0
- package/assets/flags/uz.svg +30 -0
- package/assets/flags/va.svg +190 -0
- package/assets/flags/vc.svg +8 -0
- package/assets/flags/ve.svg +26 -0
- package/assets/flags/vg.svg +59 -0
- package/assets/flags/vi.svg +28 -0
- package/assets/flags/vn.svg +11 -0
- package/assets/flags/vu.svg +21 -0
- package/assets/flags/wf.svg +5 -0
- package/assets/flags/ws.svg +7 -0
- package/assets/flags/xk.svg +5 -0
- package/assets/flags/xx.svg +4 -0
- package/assets/flags/ye.svg +7 -0
- package/assets/flags/yt.svg +5 -0
- package/assets/flags/za.svg +17 -0
- package/assets/flags/zm.svg +27 -0
- package/assets/flags/zw.svg +21 -0
- package/components/ln-data-coordinator/ln-data-coordinator.js +1 -1
- package/components/ln-date/ln-date.js +1 -1
- package/components/ln-debug/ln-debug.js +1 -1
- package/components/ln-debug/src/generated-attributes.js +306 -304
- package/components/ln-external-links/ln-external-links.js +1 -1
- package/components/ln-filter/ln-filter.js +1 -1
- package/components/ln-obfuscator/ln-obfuscator.js +1 -1
- package/components/ln-sort/ln-sort.js +1 -1
- package/components/ln-table/ln-table.js +1 -1
- package/components/ln-table-coordinator/ln-table-coordinator.js +1 -1
- package/components/ln-toast/ln-toast.js +1 -1
- package/components/ln-translations/README.md +202 -120
- package/components/ln-translations/ln-translations.js +1 -1
- package/components/ln-translations/ln-translations.schema.json +136 -120
- package/components/ln-translations/src/ln-translations.js +354 -295
- package/components/ln-translations/src/translations-model.js +221 -0
- package/components/ln-validate/ln-validate.js +1 -1
- package/ln-ashlar.html-data.json +1832 -1824
- package/package.json +96 -95
- package/theme/components/_translations.scss +118 -111
- package/theme/config/mixins/_app-shell.scss +14 -0
- package/theme/config/mixins/_count.scss +48 -0
- package/theme/config/mixins/_index.scss +1 -0
- package/theme/config/mixins/_nav.scss +3 -11
- package/theme/config/mixins/_translations.scss +126 -124
- package/web-types.json +2365 -2351
package/package.json
CHANGED
|
@@ -1,95 +1,96 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@livenetworks/ashlar",
|
|
3
|
-
"version": "2.2.
|
|
4
|
-
"description": "LiveNetworks unified frontend library - CSS framework and vanilla JS components",
|
|
5
|
-
"license": "GPL-3.0-or-later",
|
|
6
|
-
"author": "Live Networks",
|
|
7
|
-
"type": "module",
|
|
8
|
-
"publishConfig": {
|
|
9
|
-
"access": "public"
|
|
10
|
-
},
|
|
11
|
-
"repository": {
|
|
12
|
-
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/livenetworks/ln-ashlar.git"
|
|
14
|
-
},
|
|
15
|
-
"homepage": "https://github.com/livenetworks/ln-ashlar#readme",
|
|
16
|
-
"bugs": "https://github.com/livenetworks/ln-ashlar/issues",
|
|
17
|
-
"keywords": [
|
|
18
|
-
"css",
|
|
19
|
-
"scss",
|
|
20
|
-
"design-system",
|
|
21
|
-
"frontend",
|
|
22
|
-
"components",
|
|
23
|
-
"vanilla-js"
|
|
24
|
-
],
|
|
25
|
-
"main": "./dist/ln-ashlar.js",
|
|
26
|
-
"style": "./dist/ln-ashlar.css",
|
|
27
|
-
"web-types": "./web-types.json",
|
|
28
|
-
"files": [
|
|
29
|
-
"dist/",
|
|
30
|
-
"theme/",
|
|
31
|
-
"components/",
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"./
|
|
42
|
-
"./
|
|
43
|
-
"./
|
|
44
|
-
"./
|
|
45
|
-
"./
|
|
46
|
-
"./dev.
|
|
47
|
-
"./
|
|
48
|
-
"./
|
|
49
|
-
"./
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"test:
|
|
54
|
-
"test:
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"build:
|
|
58
|
-
"build:
|
|
59
|
-
"build:
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"build:demo-
|
|
63
|
-
"build:demo-
|
|
64
|
-
"build:demo-
|
|
65
|
-
"build:demo-
|
|
66
|
-
"build:demo-
|
|
67
|
-
"
|
|
68
|
-
"sync:ln-schemas
|
|
69
|
-
"sync:ln-
|
|
70
|
-
"sync:ln-events
|
|
71
|
-
"sync:ln-events:
|
|
72
|
-
"sync:
|
|
73
|
-
"sync:css-tokens
|
|
74
|
-
"
|
|
75
|
-
"manifest
|
|
76
|
-
"
|
|
77
|
-
"generate:llms
|
|
78
|
-
"
|
|
79
|
-
"test:
|
|
80
|
-
"test:perf
|
|
81
|
-
"test:perf:
|
|
82
|
-
"test:perf:
|
|
83
|
-
"test:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"@
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@livenetworks/ashlar",
|
|
3
|
+
"version": "2.2.1",
|
|
4
|
+
"description": "LiveNetworks unified frontend library - CSS framework and vanilla JS components",
|
|
5
|
+
"license": "GPL-3.0-or-later",
|
|
6
|
+
"author": "Live Networks",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"publishConfig": {
|
|
9
|
+
"access": "public"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/livenetworks/ln-ashlar.git"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://github.com/livenetworks/ln-ashlar#readme",
|
|
16
|
+
"bugs": "https://github.com/livenetworks/ln-ashlar/issues",
|
|
17
|
+
"keywords": [
|
|
18
|
+
"css",
|
|
19
|
+
"scss",
|
|
20
|
+
"design-system",
|
|
21
|
+
"frontend",
|
|
22
|
+
"components",
|
|
23
|
+
"vanilla-js"
|
|
24
|
+
],
|
|
25
|
+
"main": "./dist/ln-ashlar.js",
|
|
26
|
+
"style": "./dist/ln-ashlar.css",
|
|
27
|
+
"web-types": "./web-types.json",
|
|
28
|
+
"files": [
|
|
29
|
+
"dist/",
|
|
30
|
+
"theme/",
|
|
31
|
+
"components/",
|
|
32
|
+
"assets/",
|
|
33
|
+
"ln-ashlar.html-data.json",
|
|
34
|
+
"web-types.json"
|
|
35
|
+
],
|
|
36
|
+
"exports": {
|
|
37
|
+
".": {
|
|
38
|
+
"import": "./dist/ln-ashlar.js",
|
|
39
|
+
"default": "./dist/ln-ashlar.js"
|
|
40
|
+
},
|
|
41
|
+
"./core.css": "./dist/ln-ashlar-core.css",
|
|
42
|
+
"./theme.css": "./dist/ln-ashlar-theme.css",
|
|
43
|
+
"./full.css": "./dist/ln-ashlar.css",
|
|
44
|
+
"./landing.css": "./dist/ln-ashlar-landing.css",
|
|
45
|
+
"./presentation.css": "./dist/ln-ashlar-landing.css",
|
|
46
|
+
"./dev.css": "./dist/ln-ashlar-dev.css",
|
|
47
|
+
"./dev.js": "./dist/ln-ashlar-dev.js",
|
|
48
|
+
"./theme/*": "./theme/*",
|
|
49
|
+
"./components/*": "./components/*",
|
|
50
|
+
"./tailwind.css": "./dist/ln-ashlar-tailwind.css"
|
|
51
|
+
},
|
|
52
|
+
"scripts": {
|
|
53
|
+
"test": "npm run sync:ln-schemas:check && npm run sync:ln-events:check && npm run sync:css-tokens:check && node --test \"tests/*.test.js\"",
|
|
54
|
+
"test:p0": "node --test tests/p0-data-integrity.test.js",
|
|
55
|
+
"test:headless": "node tests/headless/run-all.mjs",
|
|
56
|
+
"dev": "node scripts/build.mjs --watch",
|
|
57
|
+
"build": "npm run sync:ln-schemas && npm run sync:ln-events && npm run sync:css-tokens && node scripts/build.mjs && npm run build:tailwind && npm run build:dev-css && npm run build:demos",
|
|
58
|
+
"build:tailwind": "node scripts/build-tailwind.mjs",
|
|
59
|
+
"build:demos": "npm run build:demo-index && npm run build:demo-admin && npm run build:demo-docuflow && npm run build:demo-spa && npm run build:demo-landing && npm run build:demo-corporate",
|
|
60
|
+
"build:dev-css": "sass theme/ln-ashlar-dev.scss demo/dist/ln-ashlar-dev.css --no-source-map --style=compressed",
|
|
61
|
+
"generate:brand-assets": "powershell -ExecutionPolicy Bypass -File scripts/generate-brand-assets.ps1 && node scripts/generate-svg-favicon.mjs",
|
|
62
|
+
"build:demo-index": "sass demo/index.scss demo/index.css --no-source-map --style=compressed",
|
|
63
|
+
"build:demo-admin": "sass demo/admin/src/admin.scss demo/admin/dist/admin.css --no-source-map --style=compressed && sass demo/admin/src/admin-relaxed.scss demo/admin/dist/admin-relaxed.css --no-source-map --style=compressed && node -e \"const fs = require('fs'); fs.copyFileSync('demo/admin/src/demo.js', 'demo/admin/dist/demo.js')\" && node demo/admin/src/build-pages.mjs",
|
|
64
|
+
"build:demo-docuflow": "sass demo/docuflow/docuflow.scss demo/docuflow/dist/docuflow.css --no-source-map --style=compressed",
|
|
65
|
+
"build:demo-spa": "node demo/spa/build.mjs",
|
|
66
|
+
"build:demo-landing": "sass demo/landing/landing.scss demo/landing/landing.css --no-source-map --style=compressed",
|
|
67
|
+
"build:demo-corporate": "sass demo/corporate/corporate.scss demo/corporate/corporate.css --no-source-map --style=compressed",
|
|
68
|
+
"sync:ln-schemas": "node scripts/sync-ln-schemas.mjs",
|
|
69
|
+
"sync:ln-schemas:check": "node scripts/sync-ln-schemas.mjs --check",
|
|
70
|
+
"sync:ln-events": "node scripts/sync-ln-events.mjs",
|
|
71
|
+
"sync:ln-events:check": "node scripts/sync-ln-events.mjs --check",
|
|
72
|
+
"sync:ln-events:strict": "node scripts/sync-ln-events.mjs --strict",
|
|
73
|
+
"sync:css-tokens": "node scripts/sync-css-tokens.mjs",
|
|
74
|
+
"sync:css-tokens:check": "node scripts/sync-css-tokens.mjs --check",
|
|
75
|
+
"manifest": "node scripts/extract-manifest.mjs",
|
|
76
|
+
"manifest:file": "node scripts/extract-manifest.mjs --output=docs/manifest.txt",
|
|
77
|
+
"generate:llms": "node scripts/generate-llms.mjs",
|
|
78
|
+
"generate:llms:check": "node scripts/generate-llms.mjs --check",
|
|
79
|
+
"test:visual": "node tests/headless/visual-run.mjs",
|
|
80
|
+
"test:perf": "node tests/headless/perf-run.mjs",
|
|
81
|
+
"test:perf:history": "node tests/headless/perf-run.mjs --history",
|
|
82
|
+
"test:perf:compare": "node tests/headless/perf-run.mjs --compare",
|
|
83
|
+
"test:perf:density": "node tests/headless/perf-density.mjs",
|
|
84
|
+
"test:dual": "node tests/headless/dual-run.mjs"
|
|
85
|
+
},
|
|
86
|
+
"devDependencies": {
|
|
87
|
+
"@tabler/icons": "^3.41.1",
|
|
88
|
+
"@tailwindcss/cli": "^4.3.3",
|
|
89
|
+
"fake-indexeddb": "^6.2.4",
|
|
90
|
+
"flag-icons": "^7.5.0",
|
|
91
|
+
"puppeteer-core": "^25.1.0",
|
|
92
|
+
"sass-embedded": "^1.83.0",
|
|
93
|
+
"tailwindcss": "^4.3.3",
|
|
94
|
+
"vite": "^6.0.0"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -1,111 +1,118 @@
|
|
|
1
|
-
@use '../config/mixins' as *;
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
[data-ln-
|
|
76
|
-
[data-ln-translations-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
1
|
+
@use '../config/mixins' as *;
|
|
2
|
+
|
|
3
|
+
// Configurable base path for flags (resolves relative to compiled CSS)
|
|
4
|
+
$flag-base-path: '../../assets/flags' !default;
|
|
5
|
+
|
|
6
|
+
[data-ln-translatable-lang] {
|
|
7
|
+
@include translations-flag-input;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
textarea[data-ln-translatable-lang] {
|
|
11
|
+
background-position: var(--size-sm-up) calc(var(--size-sm) + (var(--size-lg) - var(--size-md-up) * 3 / 4) / 2);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
button[data-ln-translations-lang] {
|
|
15
|
+
@include translations-dropdown-flag;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// ─── Flag icons per language ─────────────────────────────────────
|
|
19
|
+
// Lang code (ISO 639-1) -> country flag (ISO 3166-1 alpha-2).
|
|
20
|
+
|
|
21
|
+
$lang-flag-overrides: (
|
|
22
|
+
en: 'gb',
|
|
23
|
+
sq: 'al',
|
|
24
|
+
sr: 'rs',
|
|
25
|
+
ja: 'jp',
|
|
26
|
+
ko: 'kr',
|
|
27
|
+
zh: 'cn',
|
|
28
|
+
cs: 'cz',
|
|
29
|
+
da: 'dk',
|
|
30
|
+
el: 'gr',
|
|
31
|
+
he: 'il',
|
|
32
|
+
hi: 'in',
|
|
33
|
+
uk: 'ua',
|
|
34
|
+
vi: 'vn',
|
|
35
|
+
sv: 'se',
|
|
36
|
+
nb: 'no',
|
|
37
|
+
nn: 'no',
|
|
38
|
+
ca: 'es',
|
|
39
|
+
eu: 'es',
|
|
40
|
+
gl: 'es',
|
|
41
|
+
fa: 'ir',
|
|
42
|
+
ar: 'sa',
|
|
43
|
+
ms: 'my',
|
|
44
|
+
sl: 'si',
|
|
45
|
+
et: 'ee',
|
|
46
|
+
ka: 'ge',
|
|
47
|
+
hy: 'am',
|
|
48
|
+
be: 'by',
|
|
49
|
+
bs: 'ba',
|
|
50
|
+
hr: 'hr',
|
|
51
|
+
ga: 'ie',
|
|
52
|
+
cy: 'gb',
|
|
53
|
+
sw: 'ke',
|
|
54
|
+
bn: 'bd',
|
|
55
|
+
ur: 'pk',
|
|
56
|
+
ta: 'lk',
|
|
57
|
+
te: 'in',
|
|
58
|
+
ml: 'in',
|
|
59
|
+
kn: 'in',
|
|
60
|
+
mr: 'in',
|
|
61
|
+
gu: 'in',
|
|
62
|
+
pa: 'in',
|
|
63
|
+
ne: 'np',
|
|
64
|
+
km: 'kh',
|
|
65
|
+
lo: 'la',
|
|
66
|
+
my: 'mm',
|
|
67
|
+
af: 'za',
|
|
68
|
+
zu: 'za',
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
$lang-auto: mk, de, fr, it, bg, pt, ro, nl, pl, fi, hu, lt, lv, tr, az, is, mt, lb, no, ru, th, id;
|
|
72
|
+
|
|
73
|
+
@each $lang, $country in $lang-flag-overrides {
|
|
74
|
+
[data-ln-translatable-lang="#{$lang}"],
|
|
75
|
+
[data-ln-translations-active] [data-ln-translations-lang="#{$lang}"],
|
|
76
|
+
button[data-ln-translations-lang="#{$lang}"]::before {
|
|
77
|
+
background-image: var(--ln-flag-#{$lang}, url('#{$flag-base-path}/#{$country}.svg'));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@each $lang in $lang-auto {
|
|
82
|
+
[data-ln-translatable-lang="#{$lang}"],
|
|
83
|
+
[data-ln-translations-active] [data-ln-translations-lang="#{$lang}"],
|
|
84
|
+
button[data-ln-translations-lang="#{$lang}"]::before {
|
|
85
|
+
background-image: var(--ln-flag-#{$lang}, url('#{$flag-base-path}/#{$lang}.svg'));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// ─── Header actions ──────────────────────────────────────────────
|
|
90
|
+
|
|
91
|
+
.ln-translations__actions {
|
|
92
|
+
@include translations-actions;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
[data-ln-translations-active] {
|
|
96
|
+
@include translations-active-list;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
[data-ln-translations-active] p {
|
|
100
|
+
@include translations-badge;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
[data-ln-translations-active] button {
|
|
104
|
+
@include translations-badge-remove;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
[data-ln-translations-add] {
|
|
108
|
+
@include translations-add-button;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// ─── Reduced motion ─────────────────────────────────────────────
|
|
112
|
+
|
|
113
|
+
@media (prefers-reduced-motion: reduce) {
|
|
114
|
+
[data-ln-translations-add],
|
|
115
|
+
[data-ln-translations-active] button {
|
|
116
|
+
transition: none;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
@use 'interaction' as *;
|
|
13
13
|
@use 'sidebar' as *;
|
|
14
14
|
@use 'card' as *;
|
|
15
|
+
@use 'count' as *;
|
|
15
16
|
|
|
16
17
|
// ─── App Shell ──────────────────────────────────────────────────────────────
|
|
17
18
|
// Mobile-ready application shell: fixed header, sidebar drawer, scrim overlay.
|
|
@@ -159,6 +160,19 @@
|
|
|
159
160
|
border: 0;
|
|
160
161
|
}
|
|
161
162
|
}
|
|
163
|
+
|
|
164
|
+
// Unread counter — <data value="3">3</data> as a direct child,
|
|
165
|
+
// pinned over the corner. Solid accent; tone via status class
|
|
166
|
+
// (<data value="3" class="error">3</data>).
|
|
167
|
+
&:has(> data) {
|
|
168
|
+
@include relative;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
> data {
|
|
172
|
+
@include count;
|
|
173
|
+
@include count-solid;
|
|
174
|
+
@include count-overlay;
|
|
175
|
+
}
|
|
162
176
|
}
|
|
163
177
|
}
|
|
164
178
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
@use 'display' as *;
|
|
2
|
+
@use 'typography' as *;
|
|
3
|
+
@use 'position' as *;
|
|
4
|
+
|
|
5
|
+
// ─── Count ──────────────────────────────────────────────────────────────────
|
|
6
|
+
// Numeric counter pill — unread items, queue sizes, list totals. The
|
|
7
|
+
// element is <data value="24">24</data>: the value attribute carries the
|
|
8
|
+
// machine-readable number, the text the formatted one.
|
|
9
|
+
//
|
|
10
|
+
// @include count; ← neutral pill, tinted from --color-fg
|
|
11
|
+
// @include count-solid; ← delta: solid accent fill. Tone follows the
|
|
12
|
+
// semantic-color cascade — <data class="error">
|
|
13
|
+
// @include count-overlay; ← delta: pinned over the top-end corner of the
|
|
14
|
+
// nearest positioned ancestor (icon buttons).
|
|
15
|
+
// The host must be positioned.
|
|
16
|
+
//
|
|
17
|
+
// Bound structurally by @mixin nav (a > data) and @mixin app-header-actions
|
|
18
|
+
// (button > data).
|
|
19
|
+
// ────────────────────────────────────────────────────────────────────────────
|
|
20
|
+
|
|
21
|
+
@mixin count {
|
|
22
|
+
@include flex-shrink-0;
|
|
23
|
+
padding: 0 var(--size-xs-up);
|
|
24
|
+
min-width: 1.5rem;
|
|
25
|
+
text-align: center;
|
|
26
|
+
border-radius: var(--radius-full);
|
|
27
|
+
@include text-xs;
|
|
28
|
+
@include font-semibold;
|
|
29
|
+
font-variant-numeric: tabular-nums;
|
|
30
|
+
background: color-mix(in srgb, var(--color-fg) 12%, transparent);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@mixin count-solid {
|
|
34
|
+
background: var(--color-accent);
|
|
35
|
+
color: var(--color-accent-fg);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@mixin count-overlay {
|
|
39
|
+
@include absolute;
|
|
40
|
+
// em, not rem — the offsets and the circle track the counter's own
|
|
41
|
+
// font-size, so a rebound size keeps the same geometry.
|
|
42
|
+
inset-block-start: -0.5em;
|
|
43
|
+
inset-inline-end: -0.5em;
|
|
44
|
+
min-width: 1.5em;
|
|
45
|
+
padding-inline: var(--size-2xs);
|
|
46
|
+
line-height: 1.5em;
|
|
47
|
+
pointer-events: none;
|
|
48
|
+
}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
@use 'motion' as *;
|
|
9
9
|
@use 'interaction' as *;
|
|
10
10
|
@use 'position' as *;
|
|
11
|
+
@use 'count' as *;
|
|
11
12
|
|
|
12
13
|
// ─── Nav ────────────────────────────────────────────────────────────────────
|
|
13
14
|
// Navigation structure reset. Layout (flex-col, h-full) and background come
|
|
@@ -64,21 +65,12 @@
|
|
|
64
65
|
|
|
65
66
|
// Trailing counter — <data value="24">24</data> as the last child of a.
|
|
66
67
|
a > data {
|
|
67
|
-
@include
|
|
68
|
+
@include count;
|
|
68
69
|
margin-inline-start: auto;
|
|
69
|
-
padding: 0 var(--size-xs-up);
|
|
70
|
-
min-width: 1.5rem;
|
|
71
|
-
text-align: center;
|
|
72
|
-
border-radius: var(--radius-full);
|
|
73
|
-
@include text-xs;
|
|
74
|
-
@include font-semibold;
|
|
75
|
-
font-variant-numeric: tabular-nums;
|
|
76
|
-
background: color-mix(in srgb, var(--color-fg) 12%, transparent);
|
|
77
70
|
}
|
|
78
71
|
|
|
79
72
|
a[aria-current="page"] > data {
|
|
80
|
-
|
|
81
|
-
color: var(--color-accent-fg);
|
|
73
|
+
@include count-solid;
|
|
82
74
|
}
|
|
83
75
|
|
|
84
76
|
// Section heading — small uppercase eyebrow, clearly not a link.
|