@livenetworks/ashlar 2.1.13 → 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.
Files changed (437) hide show
  1. package/assets/brand/android-chrome-192x192.png +0 -0
  2. package/assets/brand/android-chrome-512x512.png +0 -0
  3. package/assets/brand/apple-touch-icon.png +0 -0
  4. package/assets/brand/favicon-16x16.png +0 -0
  5. package/assets/brand/favicon-32x32.png +0 -0
  6. package/assets/brand/favicon-48x48.png +0 -0
  7. package/assets/brand/favicon-dark-128x128.png +0 -0
  8. package/assets/brand/favicon-dark-16x16.png +0 -0
  9. package/assets/brand/favicon-dark-180x180.png +0 -0
  10. package/assets/brand/favicon-dark-192x192.png +0 -0
  11. package/assets/brand/favicon-dark-256x256.png +0 -0
  12. package/assets/brand/favicon-dark-32x32.png +0 -0
  13. package/assets/brand/favicon-dark-48x48.png +0 -0
  14. package/assets/brand/favicon-dark-512x512.png +0 -0
  15. package/assets/brand/favicon-dark-64x64.png +0 -0
  16. package/assets/brand/favicon-dark.ico +0 -0
  17. package/assets/brand/favicon-dark.png +0 -0
  18. package/assets/brand/favicon-light-128x128.png +0 -0
  19. package/assets/brand/favicon-light-16x16.png +0 -0
  20. package/assets/brand/favicon-light-180x180.png +0 -0
  21. package/assets/brand/favicon-light-192x192.png +0 -0
  22. package/assets/brand/favicon-light-256x256.png +0 -0
  23. package/assets/brand/favicon-light-32x32.png +0 -0
  24. package/assets/brand/favicon-light-48x48.png +0 -0
  25. package/assets/brand/favicon-light-512x512.png +0 -0
  26. package/assets/brand/favicon-light-64x64.png +0 -0
  27. package/assets/brand/favicon-light.ico +0 -0
  28. package/assets/brand/favicon-light.png +0 -0
  29. package/assets/brand/favicon.ico +0 -0
  30. package/assets/brand/favicon.png +0 -0
  31. package/assets/brand/favicon.svg +12 -0
  32. package/assets/brand/ln-ashlar-emblem-dark-128.png +0 -0
  33. package/assets/brand/ln-ashlar-emblem-dark-16.png +0 -0
  34. package/assets/brand/ln-ashlar-emblem-dark-256.png +0 -0
  35. package/assets/brand/ln-ashlar-emblem-dark-32.png +0 -0
  36. package/assets/brand/ln-ashlar-emblem-dark-64.png +0 -0
  37. package/assets/brand/ln-ashlar-emblem-dark.png +0 -0
  38. package/assets/brand/ln-ashlar-emblem-light-128.png +0 -0
  39. package/assets/brand/ln-ashlar-emblem-light-16.png +0 -0
  40. package/assets/brand/ln-ashlar-emblem-light-256.png +0 -0
  41. package/assets/brand/ln-ashlar-emblem-light-32.png +0 -0
  42. package/assets/brand/ln-ashlar-emblem-light-64.png +0 -0
  43. package/assets/brand/ln-ashlar-emblem-light.png +0 -0
  44. package/assets/brand/ln-ashlar-logo-dark-128.png +0 -0
  45. package/assets/brand/ln-ashlar-logo-dark-256.png +0 -0
  46. package/assets/brand/ln-ashlar-logo-dark-512.png +0 -0
  47. package/assets/brand/ln-ashlar-logo-dark.png +0 -0
  48. package/assets/brand/ln-ashlar-logo-light-128.png +0 -0
  49. package/assets/brand/ln-ashlar-logo-light-256.png +0 -0
  50. package/assets/brand/ln-ashlar-logo-light-512.png +0 -0
  51. package/assets/brand/ln-ashlar-logo-light.png +0 -0
  52. package/assets/brand/site.webmanifest +41 -0
  53. package/assets/brand/source/ln-ashlar-icon-dark-1024.png +0 -0
  54. package/assets/brand/source/ln-ashlar-icon-dark-uncropped-1024.png +0 -0
  55. package/assets/brand/source/ln-ashlar-icon-light-1024.png +0 -0
  56. package/assets/brand/source/ln-ashlar-icon-light-uncropped-1024.png +0 -0
  57. package/assets/flags/ad.svg +150 -0
  58. package/assets/flags/ae.svg +6 -0
  59. package/assets/flags/af.svg +81 -0
  60. package/assets/flags/ag.svg +14 -0
  61. package/assets/flags/ai.svg +29 -0
  62. package/assets/flags/al.svg +5 -0
  63. package/assets/flags/am.svg +5 -0
  64. package/assets/flags/ao.svg +13 -0
  65. package/assets/flags/aq.svg +5 -0
  66. package/assets/flags/ar.svg +32 -0
  67. package/assets/flags/arab.svg +109 -0
  68. package/assets/flags/as.svg +72 -0
  69. package/assets/flags/asean.svg +13 -0
  70. package/assets/flags/at.svg +4 -0
  71. package/assets/flags/au.svg +8 -0
  72. package/assets/flags/aw.svg +186 -0
  73. package/assets/flags/ax.svg +18 -0
  74. package/assets/flags/az.svg +8 -0
  75. package/assets/flags/ba.svg +12 -0
  76. package/assets/flags/bb.svg +6 -0
  77. package/assets/flags/bd.svg +4 -0
  78. package/assets/flags/be.svg +7 -0
  79. package/assets/flags/bf.svg +7 -0
  80. package/assets/flags/bg.svg +5 -0
  81. package/assets/flags/bh.svg +4 -0
  82. package/assets/flags/bi.svg +15 -0
  83. package/assets/flags/bj.svg +14 -0
  84. package/assets/flags/bl.svg +5 -0
  85. package/assets/flags/bm.svg +97 -0
  86. package/assets/flags/bn.svg +36 -0
  87. package/assets/flags/bo.svg +673 -0
  88. package/assets/flags/bq.svg +5 -0
  89. package/assets/flags/br.svg +45 -0
  90. package/assets/flags/bs.svg +13 -0
  91. package/assets/flags/bt.svg +89 -0
  92. package/assets/flags/bv.svg +13 -0
  93. package/assets/flags/bw.svg +7 -0
  94. package/assets/flags/by.svg +18 -0
  95. package/assets/flags/bz.svg +145 -0
  96. package/assets/flags/ca.svg +4 -0
  97. package/assets/flags/cc.svg +19 -0
  98. package/assets/flags/cd.svg +5 -0
  99. package/assets/flags/cefta.svg +13 -0
  100. package/assets/flags/cf.svg +15 -0
  101. package/assets/flags/cg.svg +12 -0
  102. package/assets/flags/ch.svg +9 -0
  103. package/assets/flags/ci.svg +7 -0
  104. package/assets/flags/ck.svg +9 -0
  105. package/assets/flags/cl.svg +13 -0
  106. package/assets/flags/cm.svg +15 -0
  107. package/assets/flags/cn.svg +11 -0
  108. package/assets/flags/co.svg +7 -0
  109. package/assets/flags/cp.svg +7 -0
  110. package/assets/flags/cr.svg +7 -0
  111. package/assets/flags/cu.svg +13 -0
  112. package/assets/flags/cv.svg +13 -0
  113. package/assets/flags/cw.svg +14 -0
  114. package/assets/flags/cx.svg +15 -0
  115. package/assets/flags/cy.svg +6 -0
  116. package/assets/flags/cz.svg +5 -0
  117. package/assets/flags/de.svg +5 -0
  118. package/assets/flags/dg.svg +130 -0
  119. package/assets/flags/dj.svg +13 -0
  120. package/assets/flags/dk.svg +5 -0
  121. package/assets/flags/dm.svg +152 -0
  122. package/assets/flags/do.svg +121 -0
  123. package/assets/flags/dz.svg +5 -0
  124. package/assets/flags/eac.svg +48 -0
  125. package/assets/flags/ec.svg +138 -0
  126. package/assets/flags/ee.svg +5 -0
  127. package/assets/flags/eg.svg +38 -0
  128. package/assets/flags/eh.svg +16 -0
  129. package/assets/flags/er.svg +8 -0
  130. package/assets/flags/es-ct.svg +4 -0
  131. package/assets/flags/es-ga.svg +187 -0
  132. package/assets/flags/es-pv.svg +5 -0
  133. package/assets/flags/es.svg +544 -0
  134. package/assets/flags/et.svg +14 -0
  135. package/assets/flags/eu.svg +28 -0
  136. package/assets/flags/fi.svg +5 -0
  137. package/assets/flags/fj.svg +120 -0
  138. package/assets/flags/fk.svg +90 -0
  139. package/assets/flags/fm.svg +11 -0
  140. package/assets/flags/fo.svg +12 -0
  141. package/assets/flags/fr.svg +5 -0
  142. package/assets/flags/ga.svg +7 -0
  143. package/assets/flags/gb-eng.svg +5 -0
  144. package/assets/flags/gb-nir.svg +132 -0
  145. package/assets/flags/gb-sct.svg +4 -0
  146. package/assets/flags/gb-wls.svg +9 -0
  147. package/assets/flags/gb.svg +7 -0
  148. package/assets/flags/gd.svg +27 -0
  149. package/assets/flags/ge.svg +6 -0
  150. package/assets/flags/gf.svg +5 -0
  151. package/assets/flags/gg.svg +9 -0
  152. package/assets/flags/gh.svg +6 -0
  153. package/assets/flags/gi.svg +32 -0
  154. package/assets/flags/gl.svg +4 -0
  155. package/assets/flags/gm.svg +14 -0
  156. package/assets/flags/gn.svg +7 -0
  157. package/assets/flags/gp.svg +5 -0
  158. package/assets/flags/gq.svg +23 -0
  159. package/assets/flags/gr.svg +16 -0
  160. package/assets/flags/gs.svg +133 -0
  161. package/assets/flags/gt.svg +204 -0
  162. package/assets/flags/gu.svg +19 -0
  163. package/assets/flags/gw.svg +13 -0
  164. package/assets/flags/gy.svg +9 -0
  165. package/assets/flags/hk.svg +8 -0
  166. package/assets/flags/hm.svg +8 -0
  167. package/assets/flags/hn.svg +18 -0
  168. package/assets/flags/hr.svg +58 -0
  169. package/assets/flags/ht.svg +116 -0
  170. package/assets/flags/hu.svg +7 -0
  171. package/assets/flags/ic.svg +7 -0
  172. package/assets/flags/id.svg +4 -0
  173. package/assets/flags/ie.svg +7 -0
  174. package/assets/flags/il.svg +14 -0
  175. package/assets/flags/im.svg +36 -0
  176. package/assets/flags/in.svg +25 -0
  177. package/assets/flags/io.svg +130 -0
  178. package/assets/flags/iq.svg +10 -0
  179. package/assets/flags/ir.svg +219 -0
  180. package/assets/flags/is.svg +12 -0
  181. package/assets/flags/it.svg +7 -0
  182. package/assets/flags/je.svg +62 -0
  183. package/assets/flags/jm.svg +8 -0
  184. package/assets/flags/jo.svg +16 -0
  185. package/assets/flags/jp.svg +11 -0
  186. package/assets/flags/ke.svg +23 -0
  187. package/assets/flags/kg.svg +4 -0
  188. package/assets/flags/kh.svg +61 -0
  189. package/assets/flags/ki.svg +36 -0
  190. package/assets/flags/km.svg +16 -0
  191. package/assets/flags/kn.svg +14 -0
  192. package/assets/flags/kp.svg +15 -0
  193. package/assets/flags/kr.svg +24 -0
  194. package/assets/flags/kw.svg +13 -0
  195. package/assets/flags/ky.svg +103 -0
  196. package/assets/flags/kz.svg +36 -0
  197. package/assets/flags/la.svg +12 -0
  198. package/assets/flags/lb.svg +15 -0
  199. package/assets/flags/lc.svg +8 -0
  200. package/assets/flags/li.svg +43 -0
  201. package/assets/flags/lk.svg +22 -0
  202. package/assets/flags/lr.svg +14 -0
  203. package/assets/flags/ls.svg +8 -0
  204. package/assets/flags/lt.svg +7 -0
  205. package/assets/flags/lu.svg +5 -0
  206. package/assets/flags/lv.svg +6 -0
  207. package/assets/flags/ly.svg +13 -0
  208. package/assets/flags/ma.svg +4 -0
  209. package/assets/flags/mc.svg +6 -0
  210. package/assets/flags/md.svg +70 -0
  211. package/assets/flags/me.svg +116 -0
  212. package/assets/flags/mf.svg +5 -0
  213. package/assets/flags/mg.svg +7 -0
  214. package/assets/flags/mh.svg +7 -0
  215. package/assets/flags/mk.svg +5 -0
  216. package/assets/flags/ml.svg +7 -0
  217. package/assets/flags/mm.svg +12 -0
  218. package/assets/flags/mn.svg +14 -0
  219. package/assets/flags/mo.svg +9 -0
  220. package/assets/flags/mp.svg +86 -0
  221. package/assets/flags/mq.svg +5 -0
  222. package/assets/flags/mr.svg +6 -0
  223. package/assets/flags/ms.svg +29 -0
  224. package/assets/flags/mt.svg +58 -0
  225. package/assets/flags/mu.svg +8 -0
  226. package/assets/flags/mv.svg +6 -0
  227. package/assets/flags/mw.svg +10 -0
  228. package/assets/flags/mx.svg +382 -0
  229. package/assets/flags/my.svg +26 -0
  230. package/assets/flags/mz.svg +21 -0
  231. package/assets/flags/na.svg +16 -0
  232. package/assets/flags/nc.svg +13 -0
  233. package/assets/flags/ne.svg +6 -0
  234. package/assets/flags/nf.svg +9 -0
  235. package/assets/flags/ng.svg +6 -0
  236. package/assets/flags/ni.svg +129 -0
  237. package/assets/flags/nl.svg +5 -0
  238. package/assets/flags/no.svg +7 -0
  239. package/assets/flags/np.svg +13 -0
  240. package/assets/flags/nr.svg +12 -0
  241. package/assets/flags/nu.svg +10 -0
  242. package/assets/flags/nz.svg +36 -0
  243. package/assets/flags/om.svg +115 -0
  244. package/assets/flags/pa.svg +14 -0
  245. package/assets/flags/pc.svg +33 -0
  246. package/assets/flags/pe.svg +4 -0
  247. package/assets/flags/pf.svg +19 -0
  248. package/assets/flags/pg.svg +9 -0
  249. package/assets/flags/ph.svg +6 -0
  250. package/assets/flags/pk.svg +15 -0
  251. package/assets/flags/pl.svg +6 -0
  252. package/assets/flags/pm.svg +5 -0
  253. package/assets/flags/pn.svg +53 -0
  254. package/assets/flags/pr.svg +13 -0
  255. package/assets/flags/ps.svg +6 -0
  256. package/assets/flags/pt.svg +57 -0
  257. package/assets/flags/pw.svg +11 -0
  258. package/assets/flags/py.svg +157 -0
  259. package/assets/flags/qa.svg +4 -0
  260. package/assets/flags/re.svg +5 -0
  261. package/assets/flags/ro.svg +7 -0
  262. package/assets/flags/rs.svg +292 -0
  263. package/assets/flags/ru.svg +5 -0
  264. package/assets/flags/rw.svg +13 -0
  265. package/assets/flags/sa.svg +25 -0
  266. package/assets/flags/sb.svg +13 -0
  267. package/assets/flags/sc.svg +7 -0
  268. package/assets/flags/sd.svg +13 -0
  269. package/assets/flags/se.svg +4 -0
  270. package/assets/flags/sg.svg +13 -0
  271. package/assets/flags/sh-ac.svg +689 -0
  272. package/assets/flags/sh-hl.svg +164 -0
  273. package/assets/flags/sh-ta.svg +76 -0
  274. package/assets/flags/sh.svg +7 -0
  275. package/assets/flags/si.svg +18 -0
  276. package/assets/flags/sj.svg +7 -0
  277. package/assets/flags/sk.svg +9 -0
  278. package/assets/flags/sl.svg +7 -0
  279. package/assets/flags/sm.svg +75 -0
  280. package/assets/flags/sn.svg +8 -0
  281. package/assets/flags/so.svg +11 -0
  282. package/assets/flags/sr.svg +6 -0
  283. package/assets/flags/ss.svg +8 -0
  284. package/assets/flags/st.svg +16 -0
  285. package/assets/flags/sv.svg +593 -0
  286. package/assets/flags/sx.svg +56 -0
  287. package/assets/flags/sy.svg +6 -0
  288. package/assets/flags/sz.svg +34 -0
  289. package/assets/flags/tc.svg +50 -0
  290. package/assets/flags/td.svg +7 -0
  291. package/assets/flags/tf.svg +15 -0
  292. package/assets/flags/tg.svg +14 -0
  293. package/assets/flags/th.svg +7 -0
  294. package/assets/flags/tj.svg +22 -0
  295. package/assets/flags/tk.svg +5 -0
  296. package/assets/flags/tl.svg +13 -0
  297. package/assets/flags/tm.svg +204 -0
  298. package/assets/flags/tn.svg +4 -0
  299. package/assets/flags/to.svg +10 -0
  300. package/assets/flags/tr.svg +8 -0
  301. package/assets/flags/tt.svg +5 -0
  302. package/assets/flags/tv.svg +9 -0
  303. package/assets/flags/tw.svg +34 -0
  304. package/assets/flags/tz.svg +13 -0
  305. package/assets/flags/ua.svg +6 -0
  306. package/assets/flags/ug.svg +30 -0
  307. package/assets/flags/um.svg +9 -0
  308. package/assets/flags/un.svg +16 -0
  309. package/assets/flags/us.svg +9 -0
  310. package/assets/flags/uy.svg +28 -0
  311. package/assets/flags/uz.svg +30 -0
  312. package/assets/flags/va.svg +190 -0
  313. package/assets/flags/vc.svg +8 -0
  314. package/assets/flags/ve.svg +26 -0
  315. package/assets/flags/vg.svg +59 -0
  316. package/assets/flags/vi.svg +28 -0
  317. package/assets/flags/vn.svg +11 -0
  318. package/assets/flags/vu.svg +21 -0
  319. package/assets/flags/wf.svg +5 -0
  320. package/assets/flags/ws.svg +7 -0
  321. package/assets/flags/xk.svg +5 -0
  322. package/assets/flags/xx.svg +4 -0
  323. package/assets/flags/ye.svg +7 -0
  324. package/assets/flags/yt.svg +5 -0
  325. package/assets/flags/za.svg +17 -0
  326. package/assets/flags/zm.svg +27 -0
  327. package/assets/flags/zw.svg +21 -0
  328. package/components/COMPONENTS.md +80 -80
  329. package/components/ln-api-connector/ln-api-connector.schema.json +105 -105
  330. package/components/ln-chart/ln-chart-dev.scss +0 -4
  331. package/components/ln-core/README.md +21 -21
  332. package/components/ln-core/ln-core.schema.json +120 -120
  333. package/components/ln-core/query.js +113 -113
  334. package/components/ln-data-coordinator/README.md +2 -0
  335. package/components/ln-data-coordinator/ln-data-coordinator.js +1 -1
  336. package/components/ln-data-coordinator/ln-data-coordinator.schema.json +196 -196
  337. package/components/ln-data-coordinator/src/ln-data-coordinator.js +457 -432
  338. package/components/ln-data-store/ln-data-store.schema.json +92 -92
  339. package/components/ln-date/ln-date.js +1 -1
  340. package/components/ln-date/src/ln-date.js +1 -1
  341. package/components/ln-debug/ln-debug.js +1 -1
  342. package/components/ln-debug/ln-debug.schema.json +28 -28
  343. package/components/ln-debug/src/generated-attributes.js +4 -0
  344. package/components/ln-dropdown/ln-dropdown.schema.json +90 -90
  345. package/components/ln-external-links/README.md +19 -19
  346. package/components/ln-external-links/ln-external-links.js +1 -1
  347. package/components/ln-external-links/ln-external-links.schema.json +9 -0
  348. package/components/ln-external-links/ln-external-links.scss +12 -0
  349. package/components/ln-external-links/src/ln-external-links.js +3 -2
  350. package/components/ln-filter/README.md +2 -1
  351. package/components/ln-filter/ln-filter.js +1 -1
  352. package/components/ln-filter/ln-filter.schema.json +157 -169
  353. package/components/ln-filter/src/ln-filter.js +1 -3
  354. package/components/ln-form/ln-form.schema.json +57 -57
  355. package/components/ln-key/ln-key.js +1 -1
  356. package/components/ln-key/ln-key.schema.json +8 -0
  357. package/components/ln-key/src/ln-key.js +8 -5
  358. package/components/ln-obfuscator/ln-obfuscator.js +1 -1
  359. package/components/ln-obfuscator/ln-obfuscator.schema.json +6 -0
  360. package/components/ln-obfuscator/src/ln-obfuscator.js +2 -2
  361. package/components/ln-options/ln-options.schema.json +47 -47
  362. package/components/ln-popover/ln-popover.schema.json +82 -82
  363. package/components/ln-progress/ln-progress.schema.json +0 -13
  364. package/components/ln-search/ln-search.schema.json +111 -111
  365. package/components/ln-sort/README.md +1 -0
  366. package/components/ln-sort/ln-sort.js +1 -1
  367. package/components/ln-sort/ln-sort.schema.json +100 -112
  368. package/components/ln-sort/src/sort-model.js +1 -6
  369. package/components/ln-sortable/ln-sortable.schema.json +38 -38
  370. package/components/ln-sortable/ln-sortable.scss +25 -25
  371. package/components/ln-table/README.md +8 -1
  372. package/components/ln-table/ln-table.js +1 -1
  373. package/components/ln-table/ln-table.schema.json +195 -195
  374. package/components/ln-table/src/ln-table.js +43 -7
  375. package/components/ln-table-coordinator/ln-table-coordinator.js +1 -1
  376. package/components/ln-table-coordinator/ln-table-coordinator.schema.json +18 -0
  377. package/components/ln-table-coordinator/src/ln-table-coordinator.js +104 -2
  378. package/components/ln-toast/README.md +1 -1
  379. package/components/ln-toast/ln-toast.js +1 -1
  380. package/components/ln-toast/ln-toast.schema.json +6 -0
  381. package/components/ln-toast/src/ln-toast.js +1 -1
  382. package/components/ln-translations/README.md +202 -120
  383. package/components/ln-translations/ln-translations.js +1 -1
  384. package/components/ln-translations/ln-translations.schema.json +136 -120
  385. package/components/ln-translations/src/ln-translations.js +354 -295
  386. package/components/ln-translations/src/translations-model.js +221 -0
  387. package/components/ln-validate/README.md +6 -6
  388. package/components/ln-validate/ln-validate-dev.scss +0 -5
  389. package/components/ln-validate/ln-validate.js +1 -1
  390. package/components/ln-validate/ln-validate.schema.json +0 -6
  391. package/components/ln-validate/src/ln-validate.js +48 -29
  392. package/ln-ashlar.html-data.json +26 -8
  393. package/package.json +3 -2
  394. package/theme/README.md +7 -6
  395. package/theme/base/_global.scss +2 -2
  396. package/theme/base/_reset.scss +11 -0
  397. package/theme/components/_app-shell.scss +0 -8
  398. package/theme/components/_form.scss +6 -6
  399. package/theme/components/_ln-table.scss +6 -3
  400. package/theme/components/_scrollbar.scss +5 -4
  401. package/theme/components/_sortable.scss +19 -19
  402. package/theme/components/_stat-card.scss +1 -0
  403. package/theme/components/_table.scss +10 -33
  404. package/theme/components/_translations.scss +118 -111
  405. package/theme/config/_density.scss +236 -104
  406. package/theme/config/_palette.scss +71 -49
  407. package/theme/config/_theme.scss +27 -31
  408. package/theme/config/_tokens.scss +28 -26
  409. package/theme/config/mixins/_app-shell.scss +31 -21
  410. package/theme/config/mixins/_btn.scss +4 -2
  411. package/theme/config/mixins/_card.scss +87 -67
  412. package/theme/config/mixins/_colors.scss +2 -1
  413. package/theme/config/mixins/_count.scss +48 -0
  414. package/theme/config/mixins/_display.scss +12 -0
  415. package/theme/config/mixins/_footer.scss +3 -1
  416. package/theme/config/mixins/_form.scss +48 -16
  417. package/theme/config/mixins/_index.scss +1 -0
  418. package/theme/config/mixins/_layout.scss +9 -0
  419. package/theme/config/mixins/_ln-table.scss +22 -15
  420. package/theme/config/mixins/_modal.scss +3 -0
  421. package/theme/config/mixins/_nav.scss +19 -4
  422. package/theme/config/mixins/_sidebar.scss +2 -1
  423. package/theme/config/mixins/_stat-card.scss +33 -2
  424. package/theme/config/mixins/_status-badge.scss +1 -0
  425. package/theme/config/mixins/_table.scss +81 -39
  426. package/theme/config/mixins/_tabs.scss +31 -0
  427. package/theme/config/mixins/_toast.scss +0 -1
  428. package/theme/config/mixins/_translations.scss +126 -124
  429. package/theme/designs/relaxed/_card.scss +12 -0
  430. package/theme/designs/relaxed/_layout.scss +24 -0
  431. package/theme/ln-ashlar-core.scss +1 -0
  432. package/theme/ln-ashlar-dev.scss +0 -1
  433. package/theme/ln-ashlar-relaxed.scss +67 -0
  434. package/theme/tailwind/components.css +561 -24
  435. package/theme/utilities/_utilities.scss +1 -11
  436. package/web-types.json +38 -10
  437. package/components/ln-progress/ln-progress-dev.scss +0 -8
@@ -1,195 +1,195 @@
1
- {
2
- "$comment": "This file is partly generated. The $comment, component, generator, and each attribute's direction, sources, type, values, fallback, and description keys are owned by the generator and synchronized from JS source code. All other keys are preserved and safe to hand-author. Regenerate with `npm run sync:ln-schemas`.",
3
- "component": "ln-table",
4
- "generator": "scripts/sync-ln-schemas.mjs",
5
- "attributes": {
6
- "data-ln-debug": {
7
- "direction": "author",
8
- "sources": [
9
- "ln-table-dev.scss",
10
- "src/ln-table.js"
11
- ]
12
- },
13
- "data-ln-sort": {
14
- "direction": null,
15
- "sources": [
16
- "ln-table-dev.scss",
17
- "ln-table.scss"
18
- ]
19
- },
20
- "data-ln-sort-icon": {
21
- "direction": null,
22
- "sources": [
23
- "ln-table.scss"
24
- ]
25
- },
26
- "data-ln-table": {
27
- "direction": null,
28
- "sources": [
29
- "ln-table-dev.scss",
30
- "ln-table.scss",
31
- "src/ln-table.js"
32
- ],
33
- "type": "string",
34
- "fallback": "",
35
- "description": "Table instance name or identifier"
36
- },
37
- "data-ln-table-body": {
38
- "direction": "author",
39
- "sources": [
40
- "src/ln-table.js"
41
- ]
42
- },
43
- "data-ln-table-cell-attr": {
44
- "direction": "author",
45
- "sources": [
46
- "src/ln-table.js"
47
- ],
48
- "type": "string",
49
- "description": "Cell attribute template mapping"
50
- },
51
- "data-ln-table-col": {
52
- "direction": "author",
53
- "sources": [
54
- "src/ln-table.js"
55
- ],
56
- "type": "string",
57
- "description": "Column header identifier or field mapping"
58
- },
59
- "data-ln-table-col-select": {
60
- "direction": "author",
61
- "sources": [
62
- "src/ln-table.js"
63
- ],
64
- "type": "trigger",
65
- "description": "Header select-all checkbox trigger"
66
- },
67
- "data-ln-table-col-sort": {
68
- "direction": null,
69
- "sources": [
70
- "ln-table-dev.scss"
71
- ]
72
- },
73
- "data-ln-table-dict": {
74
- "direction": "author",
75
- "sources": [
76
- "src/ln-table.js"
77
- ]
78
- },
79
- "data-ln-table-empty": {
80
- "direction": "author",
81
- "sources": [
82
- "src/ln-table.js"
83
- ],
84
- "type": "marker",
85
- "description": "Container for table empty state"
86
- },
87
- "data-ln-table-empty-when": {
88
- "direction": "author",
89
- "sources": [
90
- "src/ln-table.js"
91
- ]
92
- },
93
- "data-ln-table-filtered": {
94
- "direction": "author",
95
- "sources": [
96
- "src/ln-table.js"
97
- ]
98
- },
99
- "data-ln-table-loading": {
100
- "direction": "author",
101
- "sources": [
102
- "src/ln-table.js"
103
- ],
104
- "type": "marker",
105
- "description": "Loading indicator element in footer or template"
106
- },
107
- "data-ln-table-row": {
108
- "direction": "author",
109
- "sources": [
110
- "src/ln-table.js"
111
- ],
112
- "type": "marker",
113
- "description": "Table row template element"
114
- },
115
- "data-ln-table-row-action": {
116
- "direction": "author",
117
- "sources": [
118
- "src/ln-table.js"
119
- ],
120
- "type": "trigger",
121
- "description": "Action trigger inside a table row"
122
- },
123
- "data-ln-table-row-id": {
124
- "direction": "both",
125
- "sources": [
126
- "src/ln-table.js"
127
- ],
128
- "type": "string",
129
- "description": "Record identifier on row element"
130
- },
131
- "data-ln-table-row-select": {
132
- "direction": "author",
133
- "sources": [
134
- "src/ln-table.js"
135
- ],
136
- "type": "trigger",
137
- "description": "Row selection checkbox trigger"
138
- },
139
- "data-ln-table-select-all-label": {
140
- "direction": "author",
141
- "sources": [
142
- "src/ln-table.js"
143
- ],
144
- "type": "string",
145
- "description": "Accessibility label for select-all header trigger"
146
- },
147
- "data-ln-table-selectable": {
148
- "direction": null,
149
- "sources": [
150
- "src/ln-table.js"
151
- ],
152
- "type": "boolean",
153
- "description": "Enables row selection check controls"
154
- },
155
- "data-ln-table-selected": {
156
- "direction": "author",
157
- "sources": [
158
- "src/ln-table.js"
159
- ]
160
- },
161
- "data-ln-table-sort": {
162
- "direction": null,
163
- "sources": [
164
- "ln-table-dev.scss"
165
- ]
166
- },
167
- "data-ln-table-source": {
168
- "direction": "author",
169
- "sources": [
170
- "src/ln-table.js"
171
- ],
172
- "type": "string",
173
- "fallback": "",
174
- "description": "Source store or coordinator addressing"
175
- },
176
- "data-ln-table-total": {
177
- "direction": "author",
178
- "sources": [
179
- "src/ln-table.js"
180
- ]
181
- },
182
- "data-ln-template": {
183
- "direction": null,
184
- "sources": [
185
- "src/ln-table.js"
186
- ]
187
- },
188
- "data-ln-value": {
189
- "direction": "runtime",
190
- "sources": [
191
- "src/ln-table.js"
192
- ]
193
- }
194
- }
195
- }
1
+ {
2
+ "$comment": "This file is partly generated. The $comment, component, generator, and each attribute's direction, sources, type, values, fallback, and description keys are owned by the generator and synchronized from JS source code. All other keys are preserved and safe to hand-author. Regenerate with `npm run sync:ln-schemas`.",
3
+ "component": "ln-table",
4
+ "generator": "scripts/sync-ln-schemas.mjs",
5
+ "attributes": {
6
+ "data-ln-debug": {
7
+ "direction": "author",
8
+ "sources": [
9
+ "ln-table-dev.scss",
10
+ "src/ln-table.js"
11
+ ]
12
+ },
13
+ "data-ln-sort": {
14
+ "direction": null,
15
+ "sources": [
16
+ "ln-table-dev.scss",
17
+ "ln-table.scss"
18
+ ]
19
+ },
20
+ "data-ln-sort-icon": {
21
+ "direction": null,
22
+ "sources": [
23
+ "ln-table.scss"
24
+ ]
25
+ },
26
+ "data-ln-table": {
27
+ "direction": null,
28
+ "sources": [
29
+ "ln-table-dev.scss",
30
+ "ln-table.scss",
31
+ "src/ln-table.js"
32
+ ],
33
+ "type": "string",
34
+ "fallback": "",
35
+ "description": "Table instance name or identifier"
36
+ },
37
+ "data-ln-table-body": {
38
+ "direction": "author",
39
+ "sources": [
40
+ "src/ln-table.js"
41
+ ]
42
+ },
43
+ "data-ln-table-cell-attr": {
44
+ "direction": "author",
45
+ "sources": [
46
+ "src/ln-table.js"
47
+ ],
48
+ "type": "string",
49
+ "description": "Cell attribute template mapping"
50
+ },
51
+ "data-ln-table-col": {
52
+ "direction": "author",
53
+ "sources": [
54
+ "src/ln-table.js"
55
+ ],
56
+ "type": "string",
57
+ "description": "Column header identifier or field mapping"
58
+ },
59
+ "data-ln-table-col-select": {
60
+ "direction": "author",
61
+ "sources": [
62
+ "src/ln-table.js"
63
+ ],
64
+ "type": "trigger",
65
+ "description": "Header select-all checkbox trigger"
66
+ },
67
+ "data-ln-table-col-sort": {
68
+ "direction": null,
69
+ "sources": [
70
+ "ln-table-dev.scss"
71
+ ]
72
+ },
73
+ "data-ln-table-dict": {
74
+ "direction": "author",
75
+ "sources": [
76
+ "src/ln-table.js"
77
+ ]
78
+ },
79
+ "data-ln-table-empty": {
80
+ "direction": "both",
81
+ "sources": [
82
+ "src/ln-table.js"
83
+ ],
84
+ "type": "marker",
85
+ "description": "Container for table empty state"
86
+ },
87
+ "data-ln-table-empty-when": {
88
+ "direction": "author",
89
+ "sources": [
90
+ "src/ln-table.js"
91
+ ]
92
+ },
93
+ "data-ln-table-filtered": {
94
+ "direction": "author",
95
+ "sources": [
96
+ "src/ln-table.js"
97
+ ]
98
+ },
99
+ "data-ln-table-loading": {
100
+ "direction": "author",
101
+ "sources": [
102
+ "src/ln-table.js"
103
+ ],
104
+ "type": "marker",
105
+ "description": "Loading indicator element in footer or template"
106
+ },
107
+ "data-ln-table-row": {
108
+ "direction": "author",
109
+ "sources": [
110
+ "src/ln-table.js"
111
+ ],
112
+ "type": "marker",
113
+ "description": "Table row template element"
114
+ },
115
+ "data-ln-table-row-action": {
116
+ "direction": "author",
117
+ "sources": [
118
+ "src/ln-table.js"
119
+ ],
120
+ "type": "trigger",
121
+ "description": "Action trigger inside a table row"
122
+ },
123
+ "data-ln-table-row-id": {
124
+ "direction": "both",
125
+ "sources": [
126
+ "src/ln-table.js"
127
+ ],
128
+ "type": "string",
129
+ "description": "Record identifier on row element"
130
+ },
131
+ "data-ln-table-row-select": {
132
+ "direction": "author",
133
+ "sources": [
134
+ "src/ln-table.js"
135
+ ],
136
+ "type": "trigger",
137
+ "description": "Row selection checkbox trigger"
138
+ },
139
+ "data-ln-table-select-all-label": {
140
+ "direction": "author",
141
+ "sources": [
142
+ "src/ln-table.js"
143
+ ],
144
+ "type": "string",
145
+ "description": "Accessibility label for select-all header trigger"
146
+ },
147
+ "data-ln-table-selectable": {
148
+ "direction": null,
149
+ "sources": [
150
+ "src/ln-table.js"
151
+ ],
152
+ "type": "boolean",
153
+ "description": "Enables row selection check controls"
154
+ },
155
+ "data-ln-table-selected": {
156
+ "direction": "author",
157
+ "sources": [
158
+ "src/ln-table.js"
159
+ ]
160
+ },
161
+ "data-ln-table-sort": {
162
+ "direction": null,
163
+ "sources": [
164
+ "ln-table-dev.scss"
165
+ ]
166
+ },
167
+ "data-ln-table-source": {
168
+ "direction": "author",
169
+ "sources": [
170
+ "src/ln-table.js"
171
+ ],
172
+ "type": "string",
173
+ "fallback": "",
174
+ "description": "Source store or coordinator addressing"
175
+ },
176
+ "data-ln-table-total": {
177
+ "direction": "author",
178
+ "sources": [
179
+ "src/ln-table.js"
180
+ ]
181
+ },
182
+ "data-ln-template": {
183
+ "direction": null,
184
+ "sources": [
185
+ "src/ln-table.js"
186
+ ]
187
+ },
188
+ "data-ln-value": {
189
+ "direction": "runtime",
190
+ "sources": [
191
+ "src/ln-table.js"
192
+ ]
193
+ }
194
+ }
195
+ }
@@ -113,6 +113,9 @@ import { calculateSelectionState, calculateVirtualWindow, calculatePoolSize, tog
113
113
  this._vEnd = -1;
114
114
  this._rafId = null;
115
115
  this._scrollHandler = null;
116
+ this._resizeHandler = null;
117
+ this._vResized = false;
118
+ this._vTop = 0;
116
119
  this._scrollContainer = null;
117
120
  this._colgroup = null;
118
121
  this._rowPool = null;
@@ -479,6 +482,8 @@ import { calculateSelectionState, calculateVirtualWindow, calculatePoolSize, tog
479
482
 
480
483
  _component.prototype._lockColumnWidths = function () {
481
484
  if (!this.table || !this.thead || this._colgroup) return;
485
+ // Header row has no box (card mode, hidden ancestor): don't lock 0px columns; retried on resize.
486
+ if (this.ths.length && !this.ths[0].offsetWidth) return;
482
487
 
483
488
  const colgroup = document.createElement('colgroup');
484
489
  this.ths.forEach(function (th) {
@@ -618,8 +623,16 @@ import { calculateSelectionState, calculateVirtualWindow, calculatePoolSize, tog
618
623
  });
619
624
  };
620
625
 
626
+ // Resize shares the scroll rAF; the flag scopes re-measuring to resize frames.
627
+ // A lock deferred while the header row had no box happens here, before the re-measure.
628
+ this._resizeHandler = function () {
629
+ self._lockColumnWidths();
630
+ self._vResized = true;
631
+ self._scrollHandler();
632
+ };
633
+
621
634
  scrollTarget.addEventListener('scroll', this._scrollHandler, { passive: true });
622
- window.addEventListener('resize', this._scrollHandler, { passive: true });
635
+ window.addEventListener('resize', this._resizeHandler, { passive: true });
623
636
  };
624
637
 
625
638
  _component.prototype._disableVirtualScroll = function () {
@@ -629,8 +642,9 @@ import { calculateSelectionState, calculateVirtualWindow, calculatePoolSize, tog
629
642
  if (this._scrollHandler) {
630
643
  const scrollTarget = this._scrollContainer || window;
631
644
  scrollTarget.removeEventListener('scroll', this._scrollHandler);
632
- window.removeEventListener('resize', this._scrollHandler);
645
+ window.removeEventListener('resize', this._resizeHandler);
633
646
  this._scrollHandler = null;
647
+ this._resizeHandler = null;
634
648
  }
635
649
  this._scrollContainer = null;
636
650
  if (this._rafId) {
@@ -835,8 +849,7 @@ import { calculateSelectionState, calculateVirtualWindow, calculatePoolSize, tog
835
849
  _component.prototype._renderVirtual = function () {
836
850
  const data = this._filteredData;
837
851
  const total = data.length;
838
- const rowH = this._rowHeight;
839
- if (!rowH || !total) return;
852
+ if (!this._rowHeight || !total) return;
840
853
 
841
854
  const theadH = this.thead ? this.thead.offsetHeight : 0;
842
855
  const sc = this._scrollContainer;
@@ -857,7 +870,25 @@ import { calculateSelectionState, calculateVirtualWindow, calculatePoolSize, tog
857
870
  viewportH = window.innerHeight;
858
871
  }
859
872
 
860
- const vw = calculateVirtualWindow(scrollIntoData, viewportH, rowH, total, BUFFER_ROWS);
873
+ // After a resize a media query may have restyled rows (e.g. stacked cards):
874
+ // re-measure the rendered block's pitch (read before any write) and keep the
875
+ // record that was at the viewport top in place.
876
+ let target = scrollIntoData;
877
+ if (this._vResized) {
878
+ this._vResized = false;
879
+ const n = this._vEnd - this._vStart;
880
+ const last = this._rowPool && this._rowPool[n - 1];
881
+ const pitch = last ? (last.getBoundingClientRect().bottom - this._rowPool[0].getBoundingClientRect().top) / n : 0;
882
+ if (pitch && pitch !== this._rowHeight) {
883
+ this._rowHeight = pitch;
884
+ this._vStart = -1;
885
+ if (this._vTop > 0) target = this._vTop * pitch;
886
+ }
887
+ }
888
+ const rowH = this._rowHeight;
889
+ this._vTop = target / rowH;
890
+
891
+ const vw = calculateVirtualWindow(target, viewportH, rowH, total, BUFFER_ROWS);
861
892
  const startRow = vw.start;
862
893
  const endRow = vw.end;
863
894
 
@@ -911,6 +942,11 @@ import { calculateSelectionState, calculateVirtualWindow, calculatePoolSize, tog
911
942
  }
912
943
 
913
944
  if (this._selectable) this._updateSelectAll();
945
+
946
+ if (target !== scrollIntoData) {
947
+ if (sc) sc.scrollTop += target - scrollIntoData;
948
+ else window.scrollTo(window.scrollX, window.scrollY + target - scrollIntoData);
949
+ }
914
950
  };
915
951
 
916
952
 
@@ -944,13 +980,13 @@ import { calculateSelectionState, calculateVirtualWindow, calculatePoolSize, tog
944
980
  td.setAttribute('colspan', String(colSpan));
945
981
  td.appendChild(clone);
946
982
  const tr = document.createElement('tr');
947
- tr.className = 'table-empty ln-table__empty';
948
983
  tr.appendChild(td);
949
984
  loadingEl = tr;
950
985
  }
951
986
  }
952
987
 
953
988
  if (loadingEl) {
989
+ loadingEl.setAttribute('data-ln-table-empty', '');
954
990
  this.tbody.replaceChildren(loadingEl);
955
991
  } else {
956
992
  this.tbody.replaceChildren();
@@ -1011,13 +1047,13 @@ import { calculateSelectionState, calculateVirtualWindow, calculatePoolSize, tog
1011
1047
  td.setAttribute('colspan', String(colSpan));
1012
1048
  td.appendChild(clone);
1013
1049
  const tr = document.createElement('tr');
1014
- tr.className = 'ln-table__empty';
1015
1050
  tr.appendChild(td);
1016
1051
  emptyEl = tr;
1017
1052
  }
1018
1053
  }
1019
1054
 
1020
1055
  if (emptyEl) {
1056
+ emptyEl.setAttribute('data-ln-table-empty', '');
1021
1057
  this.tbody.replaceChildren(emptyEl);
1022
1058
  } else {
1023
1059
  this.tbody.replaceChildren();