u2ui 1.0.0 → 1.4.5

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 (591) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +36 -36
  3. package/attr/behavior/README.md +6 -4
  4. package/attr/behavior/behavior.js +265 -261
  5. package/attr/behavior/manifest.json +42 -42
  6. package/attr/confirm/README.md +8 -8
  7. package/attr/confirm/confirm.js +86 -90
  8. package/attr/confirm/manifest.json +42 -42
  9. package/attr/disableif/README.md +37 -0
  10. package/attr/disableif/disableif.js +59 -0
  11. package/attr/disableif/manifest.json +38 -0
  12. package/attr/draghandle/README.md +15 -15
  13. package/attr/draghandle/draghandle.js +24 -42
  14. package/attr/draghandle/manifest.json +30 -0
  15. package/attr/dropzone/README.md +32 -0
  16. package/attr/dropzone/dropzone.js +485 -0
  17. package/attr/dropzone/manifest.json +36 -0
  18. package/attr/focusgroup/README.md +9 -9
  19. package/attr/focusgroup/focusgroup.js +97 -100
  20. package/attr/focusgroup/manifest.json +30 -38
  21. package/attr/href/README.md +5 -5
  22. package/attr/href/href.js +50 -42
  23. package/attr/href/manifest.json +42 -42
  24. package/attr/intersect/README.md +15 -15
  25. package/attr/intersect/intersect.js +98 -98
  26. package/attr/intersect/manifest.json +44 -57
  27. package/attr/lightbox/README.md +27 -0
  28. package/attr/lightbox/lightbox.js +120 -0
  29. package/attr/lightbox/manifest.json +29 -0
  30. package/attr/movable/README.md +27 -0
  31. package/attr/movable/manifest.json +47 -0
  32. package/attr/movable/movable.js +111 -0
  33. package/attr/navigable/README.md +9 -9
  34. package/attr/navigable/TargetObserver.js +90 -91
  35. package/attr/navigable/U2TargetObserver.js +75 -75
  36. package/attr/navigable/manifest.json +34 -42
  37. package/attr/navigable/navigable.js +85 -87
  38. package/attr/parallax/README.md +10 -10
  39. package/attr/parallax/manifest.json +36 -0
  40. package/attr/parallax/parallax.js +119 -119
  41. package/attr/scrollspy/README.md +43 -0
  42. package/attr/scrollspy/manifest.json +28 -0
  43. package/attr/scrollspy/scrollspy.js +85 -0
  44. package/attr/selectable/README.md +42 -0
  45. package/attr/selectable/SelectionManager.js +171 -0
  46. package/attr/selectable/manifest.json +33 -0
  47. package/attr/selectable/selectable.js +28 -0
  48. package/attr/skin/README.md +15 -16
  49. package/attr/skin/manifest.json +40 -0
  50. package/attr/skin/skin.css +49 -50
  51. package/attr/store/README.md +41 -0
  52. package/attr/store/manifest.json +28 -0
  53. package/attr/store/store.js +62 -0
  54. package/class/badge/README.md +2 -2
  55. package/class/badge/badge.css +34 -34
  56. package/class/card/README.md +51 -0
  57. package/class/card/card.css +31 -0
  58. package/class/flex/README.md +16 -16
  59. package/class/flex/flex.css +15 -25
  60. package/class/grid/README.md +18 -18
  61. package/class/grid/grid.css +38 -40
  62. package/class/reset/README.md +6 -6
  63. package/class/reset/reset.css +8 -8
  64. package/class/table/README.md +22 -21
  65. package/class/table/table.css +125 -125
  66. package/class/unstyle/README.md +7 -5
  67. package/class/unstyle/unstyle.css +14 -12
  68. package/class/width/README.md +18 -18
  69. package/class/width/width.css +21 -22
  70. package/css/README.md +11 -0
  71. package/css/base/README.md +8 -2
  72. package/css/base/base.css +153 -127
  73. package/css/base/beta.css +34 -50
  74. package/css/base/full.css +5 -5
  75. package/css/base/nomotion.css +8 -8
  76. package/css/base/print.css +36 -36
  77. package/css/classless/README.md +10 -4
  78. package/css/classless/aria.css +51 -64
  79. package/css/classless/classless.css +118 -124
  80. package/css/classless/full.css +11 -11
  81. package/css/classless/more.css +314 -340
  82. package/css/classless/simple.css +314 -103
  83. package/css/classless/snippeds/a/icons.css +66 -12
  84. package/css/classless/snippeds/a/tests.html +118 -0
  85. package/css/classless/snippeds/blockquote/big-quotes.css +36 -0
  86. package/css/classless/snippeds/blockquote/tests.html +62 -0
  87. package/css/classless/snippeds/button/square.css +22 -0
  88. package/css/classless/snippeds/button/tests.html +53 -0
  89. package/css/classless/snippeds/experiments/aria-header-nav-dropdown.css +46 -0
  90. package/css/classless/snippeds/hr/gradient.css +2 -2
  91. package/css/classless/snippeds/hr/section_sign.css +16 -16
  92. package/css/classless/snippeds/hr/tests.html +49 -49
  93. package/css/classless/snippeds/p/indent.css +9 -0
  94. package/css/classless/snippeds/p/initial.css +9 -0
  95. package/css/classless/snippeds/p/tests.html +60 -0
  96. package/css/classless/variables.css +132 -99
  97. package/css/norm/README.md +7 -1
  98. package/css/norm/beta.css +41 -39
  99. package/css/norm/norm.css +89 -98
  100. package/css/norm/oldies.css +71 -60
  101. package/css/{classes → utils}/README.md +10 -4
  102. package/css/{classes/classes.css → utils/utils.css} +78 -78
  103. package/el/accordion/README.md +60 -59
  104. package/el/accordion/accordion.css +11 -7
  105. package/el/accordion/accordion.js +211 -258
  106. package/el/accordion/manifest.json +44 -57
  107. package/el/alert/README.md +86 -67
  108. package/el/alert/alert.css +72 -73
  109. package/el/alert/alert.js +206 -187
  110. package/el/alert/manifest.json +59 -77
  111. package/el/breadcrumb/README.md +41 -0
  112. package/el/breadcrumb/breadcrumb.css +22 -0
  113. package/el/breadcrumb/breadcrumb.js +119 -0
  114. package/el/breadcrumb/manifest.json +42 -0
  115. package/el/buttongroup/README.md +36 -36
  116. package/el/buttongroup/buttongroup.css +38 -30
  117. package/el/buttongroup/buttongroup.js +68 -56
  118. package/el/buttongroup/manifest.json +28 -0
  119. package/el/bytes/README.md +4 -4
  120. package/el/bytes/bytes.css +6 -6
  121. package/el/bytes/bytes.js +98 -97
  122. package/el/bytes/manifest.json +90 -95
  123. package/el/calendar/README.md +64 -0
  124. package/el/calendar/calendar.css +36 -0
  125. package/el/calendar/calendar.js +391 -0
  126. package/el/calendar/ext/drag.js +69 -0
  127. package/el/calendar/ext/keyNavigation.js +101 -0
  128. package/el/calendar/manifest.json +69 -0
  129. package/el/carousel/README.md +14 -14
  130. package/el/carousel/carousel.css +45 -46
  131. package/el/carousel/carousel.js +398 -371
  132. package/el/carousel/manifest.json +44 -58
  133. package/el/carousel-nav/README.md +13 -14
  134. package/el/carousel-nav/carousel-nav.js +74 -74
  135. package/el/carousel-nav/manifest.json +31 -0
  136. package/el/chart/README.md +46 -0
  137. package/el/chart/chart.css +7 -0
  138. package/el/chart/chart.js +188 -0
  139. package/el/chart/engines/apexcharts.js +103 -0
  140. package/el/chart/engines/billboard.js +79 -0
  141. package/el/chart/engines/chart.js.js +32 -0
  142. package/el/chart/engines/chartist.js +74 -0
  143. package/el/chart/engines/echarts.js +65 -0
  144. package/el/chart/engines/frappe.js +49 -0
  145. package/el/chart/engines/nvd3.js +139 -0
  146. package/el/chart/engines/plotly.js +73 -0
  147. package/el/chart/manifest.json +54 -0
  148. package/el/code/README.md +21 -21
  149. package/el/code/code.css +46 -46
  150. package/el/code/code.js +291 -289
  151. package/el/code/manifest.json +59 -66
  152. package/el/cookiebanner/README.md +70 -0
  153. package/el/cookiebanner/cookiebanner.css +42 -0
  154. package/el/cookiebanner/cookiebanner.js +161 -0
  155. package/el/cookiebanner/extensions/googleConsentMode.js +36 -0
  156. package/el/cookiebanner/knownItems.js +291 -0
  157. package/el/cookiebanner/manifest.json +85 -0
  158. package/el/cookiebanner/ui.js +426 -0
  159. package/el/copy/README.md +9 -7
  160. package/el/copy/copy.css +3 -3
  161. package/el/copy/copy.js +89 -117
  162. package/el/copy/manifest.json +37 -49
  163. package/el/counter/README.md +12 -9
  164. package/el/counter/counter.css +8 -8
  165. package/el/counter/counter.js +96 -95
  166. package/el/counter/manifest.json +50 -59
  167. package/el/drawer/README.md +35 -0
  168. package/el/drawer/drawer.css +77 -0
  169. package/el/drawer/drawer.js +166 -0
  170. package/el/drawer/manifest.json +27 -0
  171. package/el/fields/README.md +34 -0
  172. package/el/fields/fields.css +5 -0
  173. package/el/fields/fields.js +133 -0
  174. package/el/fields/manifest.json +32 -0
  175. package/el/ico/README.md +119 -118
  176. package/el/ico/debug.js +86 -0
  177. package/el/ico/font/Font Awesome.css +22 -22
  178. package/el/ico/font/LigatureSymbols.css +7 -7
  179. package/el/ico/font/Material Icons.css +6 -6
  180. package/el/ico/font/RemixFilled.css +8 -8
  181. package/el/ico/font/RemixOutlined.css +8 -8
  182. package/el/ico/font/old/anicons.css +31 -31
  183. package/el/ico/font/old/devicons.css +210 -210
  184. package/el/ico/font/old/material.all.css +36 -36
  185. package/el/ico/font/old/remix.css +15 -15
  186. package/el/ico/font/old/utf8.css +54 -54
  187. package/el/ico/ico.css +122 -110
  188. package/el/ico/ico.js +163 -189
  189. package/el/ico/manifest.json +68 -86
  190. package/el/input/README.md +41 -39
  191. package/el/input/input.css +95 -35
  192. package/el/input/input.js +682 -331
  193. package/el/input/manifest.json +54 -0
  194. package/el/maintitlebar/README.md +39 -0
  195. package/el/maintitlebar/maintitlebar.css +40 -0
  196. package/el/maintitlebar/maintitlebar.js +17 -0
  197. package/el/maintitlebar/manifest.json +32 -0
  198. package/el/masonry/README.md +19 -19
  199. package/el/masonry/manifest.json +49 -60
  200. package/el/masonry/masonry.css +27 -27
  201. package/el/masonry/masonry.js +93 -92
  202. package/el/menubutton/README.md +39 -0
  203. package/el/menubutton/manifest.json +44 -0
  204. package/el/{splitbutton/splitbutton.css → menubutton/menubutton.css} +51 -47
  205. package/el/menubutton/menubutton.js +90 -0
  206. package/el/number/README.md +9 -6
  207. package/el/number/manifest.json +162 -121
  208. package/el/number/number.css +6 -6
  209. package/el/number/number.js +67 -67
  210. package/el/out/README.md +5 -5
  211. package/el/out/manifest.json +26 -38
  212. package/el/out/out.css +2 -2
  213. package/el/out/out.js +42 -59
  214. package/el/pagination/README.md +32 -0
  215. package/el/pagination/manifest.json +47 -0
  216. package/el/pagination/pagination.css +27 -0
  217. package/el/pagination/pagination.js +147 -0
  218. package/el/parallax-bg/README.md +26 -6
  219. package/el/parallax-bg/manifest.json +32 -0
  220. package/el/parallax-bg/parallax-bg.css +13 -13
  221. package/el/parallax-bg/parallax-bg.js +197 -186
  222. package/el/qrcode/README.md +7 -7
  223. package/el/qrcode/manifest.json +32 -43
  224. package/el/qrcode/package.json +22 -22
  225. package/el/qrcode/qrcode.css +13 -13
  226. package/el/qrcode/qrcode.js +53 -45
  227. package/el/rating/README.md +9 -20
  228. package/el/rating/manifest.json +52 -65
  229. package/el/rating/rating.css +10 -10
  230. package/el/rating/rating.js +148 -139
  231. package/el/responsive/README.md +43 -0
  232. package/el/responsive/manifest.json +41 -0
  233. package/el/responsive/responsive.css +4 -0
  234. package/el/responsive/responsive.js +143 -0
  235. package/el/rte/README.md +10 -10
  236. package/el/rte/manifest.json +33 -0
  237. package/el/rte/rte.css +9 -9
  238. package/el/rte/rte.js +56 -56
  239. package/el/skeleton/README.md +3 -3
  240. package/el/skeleton/manifest.json +37 -51
  241. package/el/skeleton/skeleton.css +67 -60
  242. package/el/skeleton/skeleton.js +71 -72
  243. package/el/splitpanel/README.md +33 -13
  244. package/el/splitpanel/manifest.json +36 -49
  245. package/el/splitpanel/splitpanel.css +20 -17
  246. package/el/splitpanel/splitpanel.js +117 -116
  247. package/el/spot/README.md +36 -0
  248. package/el/spot/manifest.json +55 -0
  249. package/el/spot/spot.css +23 -0
  250. package/el/spot/spot.js +106 -0
  251. package/el/system/README.md +29 -0
  252. package/el/system/demoHtml.html +660 -0
  253. package/el/system/manifest.json +32 -0
  254. package/el/system/styler.js +661 -0
  255. package/el/system/system.js +84 -0
  256. package/el/table/README.md +80 -68
  257. package/el/table/ext/autoFormatTable.js +228 -0
  258. package/el/table/manifest.json +32 -43
  259. package/el/table/table.css +4 -59
  260. package/el/table/table.js +468 -194
  261. package/el/tabs/README.md +17 -17
  262. package/el/tabs/manifest.json +44 -59
  263. package/el/tabs/tabs.css +22 -22
  264. package/el/tabs/tabs.js +192 -210
  265. package/el/textfit/README.md +7 -7
  266. package/el/textfit/manifest.json +33 -45
  267. package/el/textfit/textfit.css +5 -5
  268. package/el/textfit/textfit.js +80 -80
  269. package/el/time/README.md +6 -5
  270. package/el/time/manifest.json +79 -118
  271. package/el/time/time.js +179 -168
  272. package/el/toc/README.md +27 -0
  273. package/el/toc/manifest.json +36 -0
  274. package/el/toc/toc.css +3 -0
  275. package/el/toc/toc.js +85 -0
  276. package/el/tooltip/README.md +13 -10
  277. package/el/tooltip/manifest.json +56 -69
  278. package/el/tooltip/tooltip.css +100 -97
  279. package/el/tooltip/tooltip.js +146 -82
  280. package/el/tree/README.md +133 -0
  281. package/el/tree/ext/dnd.js +53 -0
  282. package/el/tree/ext/item.js +35 -0
  283. package/el/tree/manifest.json +61 -0
  284. package/el/tree/tree.css +18 -0
  285. package/el/tree/tree.js +236 -0
  286. package/el/typewriter/README.md +11 -11
  287. package/el/typewriter/manifest.json +45 -66
  288. package/el/typewriter/typewriter.css +6 -6
  289. package/el/typewriter/typewriter.js +161 -166
  290. package/el/video/README.md +37 -0
  291. package/el/video/manifest.json +96 -0
  292. package/el/video/video.js +550 -0
  293. package/js/Placer/Placer.js +156 -156
  294. package/js/Placer/README.md +14 -16
  295. package/js/PointerObserver/PointerObserver-no-scroll.js +146 -0
  296. package/js/PointerObserver/PointerObserver.js +161 -130
  297. package/js/PointerObserver/README.md +6 -7
  298. package/js/SelectorObserver/README.md +9 -9
  299. package/js/SelectorObserver/SelectorObserver.js +199 -200
  300. package/js/Tour/README.md +56 -0
  301. package/js/Tour/Tour.js +156 -0
  302. package/js/contextmenu/README.md +6 -31
  303. package/js/contextmenu/contextmenu.js +338 -336
  304. package/js/dialog/README.md +8 -7
  305. package/js/dialog/dialog.js +228 -261
  306. package/js/drag/README.md +28 -0
  307. package/js/drag/drag.js +38 -0
  308. package/js/drag/indicateDrop.js +80 -0
  309. package/js/loading/README.md +24 -0
  310. package/js/loading/loading.js +139 -0
  311. package/js/navigator/README.md +26 -0
  312. package/js/navigator/navigator.js +430 -0
  313. package/js/navigator/url-change-event.js +29 -0
  314. package/js/rte/README.md +13 -14
  315. package/js/rte/old/NodeCleaner.js +315 -315
  316. package/js/rte/old/Rte/Rte.ui.mjs +154 -154
  317. package/js/rte/old/Rte/index.mjs +5 -5
  318. package/js/rte/old/Rte/main.css +189 -189
  319. package/js/rte/old/old.rte.js +131 -131
  320. package/js/rte/old/range-selection.old.js +394 -394
  321. package/js/rte/rte.js +7 -7
  322. package/js/rte/src/behavior.js +228 -228
  323. package/js/rte/src/events.js +73 -73
  324. package/js/rte/src/fixes.js +250 -250
  325. package/js/rte/src/range.js +469 -472
  326. package/js/rte/src/rte.js +71 -71
  327. package/js/rte/src/ui/items/ai.js +166 -167
  328. package/js/rte/src/ui/items/code.js +93 -93
  329. package/js/rte/src/ui/items/undo.js +183 -183
  330. package/js/rte/src/ui.items.js +6 -7
  331. package/js/rte/src/ui.js +268 -268
  332. package/js/rte/src/util/indentHtml.js +21 -15
  333. package/js/serviceWorker/README.md +17 -0
  334. package/js/serviceWorker/serviceWorker.js +84 -0
  335. package/js/serviceWorker/sw.js +221 -0
  336. package/js/shortcut/README.md +6 -6
  337. package/js/shortcut/shortcut.js +53 -89
  338. package/package.json +9 -8
  339. package/theme/brutalist/README.md +10 -0
  340. package/theme/brutalist/theme.css +98 -0
  341. package/theme/elegance/README.md +10 -0
  342. package/theme/elegance/theme.css +120 -0
  343. package/theme/luxury/README.md +10 -0
  344. package/theme/luxury/theme.css +107 -0
  345. package/theme/minimalism/README.md +10 -0
  346. package/theme/minimalism/theme.css +103 -0
  347. package/theme/natur/README.md +10 -0
  348. package/theme/natur/theme.css +101 -0
  349. package/theme/pastell/README.md +10 -0
  350. package/theme/pastell/theme.css +99 -0
  351. package/theme/pop/README.md +10 -0
  352. package/theme/pop/theme.css +101 -0
  353. package/theme/prompt.css +175 -0
  354. package/theme/retro/README.md +10 -0
  355. package/theme/retro/theme.css +99 -0
  356. package/theme/soft/README.md +10 -0
  357. package/theme/soft/theme.css +84 -0
  358. package/theme/tech/README.md +10 -0
  359. package/theme/tech/theme.css +98 -0
  360. package/theme/test/README.md +10 -0
  361. package/theme/test/theme.css +109 -0
  362. package/theme/test.html +284 -0
  363. package/theme/tmp/README.md +10 -0
  364. package/theme/tmp/theme.css +323 -0
  365. package/u2/auto.js +156 -161
  366. package/u2/auto.ui.js +82 -85
  367. package/u2/plan-scoped-refactoring.md +236 -0
  368. package/u2/projects.json +757 -467
  369. package/u2/tools/baseElement.js +217 -95
  370. package/u2/tools/baseElement.test.html +139 -119
  371. package/u2/tools/ce-inspector.js +307 -307
  372. package/u2/tools/ce-inspector.test.html +67 -65
  373. package/u2/tools/ce-manfest-from-element.js +207 -207
  374. package/u2/tools/dev-iframe.js +212 -213
  375. package/u2/tools/dev-iframe.test.html +72 -74
  376. package/u2/tools/eventsExplorer.js +102 -101
  377. package/u2/tools/logo/u1.svg +9 -9
  378. package/u2/tools/promiseElementById.js +14 -0
  379. package/u2/tools/update.repos.json.js +259 -234
  380. package/u2/tools/update.skill.js +176 -0
  381. package/u2/tools/variable-styler.js +317 -0
  382. package/u2/u2.js +30 -14
  383. package/u2/utils.js +61 -59
  384. package/.htaccess +0 -7
  385. package/attr/behavior/tests/minimal.html +0 -19
  386. package/attr/behavior/tests/test.html +0 -98
  387. package/attr/confirm/tests/minimal.html +0 -23
  388. package/attr/confirm/tests/test.html +0 -79
  389. package/attr/draghandle/tests/minimal.html +0 -44
  390. package/attr/focusgroup/tests/minimal.html +0 -27
  391. package/attr/focusgroup/tests/test.html +0 -154
  392. package/attr/href/tests/minimal.html +0 -17
  393. package/attr/href/tests/test.html +0 -70
  394. package/attr/intersect/tests/minimal.html +0 -30
  395. package/attr/intersect/tests/test.html +0 -64
  396. package/attr/navigable/tests/U1TargetObserver.html +0 -56
  397. package/attr/navigable/tests/minimal.html +0 -17
  398. package/attr/navigable/tests/targetObserver.html +0 -106
  399. package/attr/navigable/tests/test.html +0 -84
  400. package/attr/parallax/tests/minimal.html +0 -25
  401. package/attr/parallax/tests/performance.html +0 -102
  402. package/attr/parallax/tests/test.html +0 -108
  403. package/attr/skin/tests/minimal.html +0 -34
  404. package/attr/skin/tests/test.html +0 -96
  405. package/class/badge/tests/minimal.html +0 -17
  406. package/class/badge/tests/test.html +0 -112
  407. package/class/card1/README.md +0 -45
  408. package/class/card1/card1.css +0 -30
  409. package/class/card1/tests/minimal.html +0 -33
  410. package/class/card1/tests/test.html +0 -78
  411. package/class/flex/tests/minimal.html +0 -31
  412. package/class/flex/tests/test.html +0 -58
  413. package/class/grid/tests/minimal.html +0 -34
  414. package/class/grid/tests/test.html +0 -78
  415. package/class/input/README.md +0 -49
  416. package/class/input/input.css +0 -33
  417. package/class/input/tests/minimal.html +0 -39
  418. package/class/input/tests/test.html +0 -29
  419. package/class/reset/tests/minimal.html +0 -23
  420. package/class/table/tests/minimal.html +0 -40
  421. package/class/table/tests/test.html +0 -226
  422. package/class/unstyle/tests/minimal.html +0 -22
  423. package/class/unstyle/tests/test.html +0 -32
  424. package/class/width/tests/minimal.html +0 -27
  425. package/class/width/tests/test.html +0 -101
  426. package/css/base/tests/nomotion.html +0 -89
  427. package/css/base/tests/test.html +0 -539
  428. package/css/classes/tests/test.html +0 -63
  429. package/css/classless/snippeds/experiments/conventions.css +0 -41
  430. package/css/classless/tests/aria.html +0 -101
  431. package/css/classless/tests/foreign/classless-almond.css.html +0 -445
  432. package/css/classless/tests/foreign/classless-classless.css.html +0 -831
  433. package/css/classless/tests/foreign/classless-mvp.html +0 -415
  434. package/css/classless/tests/foreign/classless.sakura.html +0 -224
  435. package/css/classless/tests/foreign/stylestage.dev.html +0 -304
  436. package/css/classless/tests/foreign/test-homogenizer.html +0 -433
  437. package/css/classless/tests/foreign/test-html5-elements-tester.html +0 -956
  438. package/css/classless/tests/foreign/test-opinionated_css.html +0 -148
  439. package/css/classless/tests/list-bullet.html +0 -110
  440. package/css/classless/tests/more.html +0 -246
  441. package/css/classless/tests/oklch.experiments.html +0 -280
  442. package/css/classless/tests/test.html +0 -106
  443. package/css/classless/tests/variables.html +0 -109
  444. package/css/norm/tests/test.html +0 -434
  445. package/css/norm/tests/test.js +0 -103
  446. package/el/accordion/tests/minimal.html +0 -44
  447. package/el/accordion/tests/test.html +0 -168
  448. package/el/alert/alert copy.js +0 -224
  449. package/el/alert/tests/minimal.html +0 -36
  450. package/el/alert/tests/test.html +0 -105
  451. package/el/buttongroup/tests/minimal.html +0 -31
  452. package/el/buttongroup/tests/test.html +0 -83
  453. package/el/bytes/tests/minimal.html +0 -19
  454. package/el/bytes/tests/test.html +0 -117
  455. package/el/carousel/tests/experiments.html +0 -77
  456. package/el/carousel/tests/minimal.html +0 -31
  457. package/el/carousel/tests/nested.html +0 -54
  458. package/el/carousel/tests/test.html +0 -136
  459. package/el/carousel-nav/tests/minimal.html +0 -32
  460. package/el/carousel-nav/tests/test.html +0 -59
  461. package/el/code/tests/minimal.html +0 -35
  462. package/el/code/tests/test.html +0 -162
  463. package/el/copy/tests/minimal.html +0 -21
  464. package/el/copy/tests/test.html +0 -75
  465. package/el/counter/tests/minimal.html +0 -27
  466. package/el/counter/tests/test.html +0 -106
  467. package/el/ico/tests/combinations.html +0 -86
  468. package/el/ico/tests/emojis.html +0 -213
  469. package/el/ico/tests/fonts.html +0 -110
  470. package/el/ico/tests/ico-directory.html +0 -254
  471. package/el/ico/tests/minimal.html +0 -46
  472. package/el/ico/tests/test.html +0 -210
  473. package/el/ico/tests/util-multi.svg +0 -6
  474. package/el/ico/tests/util.css +0 -2
  475. package/el/ico/tests/util.js +0 -110
  476. package/el/input/tests/formParticipation.html +0 -113
  477. package/el/input/tests/minimal.html +0 -33
  478. package/el/input/tests/test.html +0 -258
  479. package/el/masonry/tests/minimal.html +0 -39
  480. package/el/masonry/tests/test.html +0 -42
  481. package/el/number/tests/minimal.html +0 -25
  482. package/el/number/tests/test.html +0 -138
  483. package/el/out/tests/minimal.html +0 -25
  484. package/el/out/tests/test.html +0 -37
  485. package/el/parallax-bg/tests/bg.jpg +0 -0
  486. package/el/parallax-bg/tests/bg1.jpg +0 -0
  487. package/el/parallax-bg/tests/bg2.jpg +0 -0
  488. package/el/parallax-bg/tests/demo.html +0 -88
  489. package/el/parallax-bg/tests/minimal.html +0 -30
  490. package/el/parallax-bg/tests/test.html +0 -64
  491. package/el/parallax-bg/tests/visible.html +0 -90
  492. package/el/qrcode/tests/minimal.html +0 -26
  493. package/el/qrcode/tests/test.html +0 -31
  494. package/el/rating/tests/minimal.html +0 -26
  495. package/el/rating/tests/tests.html +0 -77
  496. package/el/rte/tests/minimal.html +0 -25
  497. package/el/rte/tests/test.html +0 -37
  498. package/el/skeleton/tests/minimal.html +0 -22
  499. package/el/skeleton/tests/test.html +0 -22
  500. package/el/splitbutton/README.md +0 -39
  501. package/el/splitbutton/splitbutton.js +0 -26
  502. package/el/splitbutton/tests/minimal.html +0 -30
  503. package/el/splitbutton/tests/test.html +0 -68
  504. package/el/splitpanel/tests/minimal.html +0 -31
  505. package/el/splitpanel/tests/tests.html +0 -121
  506. package/el/table/tests/minimal.html +0 -38
  507. package/el/table/tests/test.html +0 -108
  508. package/el/tabs/tests/minimal.html +0 -35
  509. package/el/tabs/tests/test.html +0 -180
  510. package/el/textfit/tests/minimal.html +0 -25
  511. package/el/textfit/tests/test.html +0 -26
  512. package/el/time/tests/minimal.html +0 -19
  513. package/el/time/tests/test.html +0 -160
  514. package/el/time/time copy.js +0 -141
  515. package/el/time/time.old.uhtml.js +0 -129
  516. package/el/tooltip/tests/minimal.html +0 -25
  517. package/el/tooltip/tests/test.html +0 -178
  518. package/el/tree1/README.md +0 -111
  519. package/el/tree1/manifest.json +0 -78
  520. package/el/tree1/tests/animated.html +0 -134
  521. package/el/tree1/tests/custom.html +0 -51
  522. package/el/tree1/tests/minimal.html +0 -44
  523. package/el/tree1/tests/test.html +0 -260
  524. package/el/tree1/tree1.css +0 -26
  525. package/el/tree1/tree1.js +0 -265
  526. package/el/typewriter/tests/minimal.html +0 -25
  527. package/el/typewriter/tests/test.html +0 -78
  528. package/js/Placer/tests/minimal.html +0 -34
  529. package/js/Placer/tests/test.html +0 -49
  530. package/js/PointerObserver/tests/minimal.html +0 -29
  531. package/js/PointerObserver/tests/test.html +0 -35
  532. package/js/SelectorObserver/tests/minimal.html +0 -21
  533. package/js/SelectorObserver/tests/test.html +0 -57
  534. package/js/SelectorObserver/tests/tests.html +0 -161
  535. package/js/contextmenu/tests/minimal.html +0 -44
  536. package/js/contextmenu/tests/test.html +0 -131
  537. package/js/dialog/tests/minimal.html +0 -29
  538. package/js/dialog/tests/notification.mp3 +0 -0
  539. package/js/dialog/tests/test.html +0 -135
  540. package/js/rte/tests/ai.html +0 -81
  541. package/js/rte/tests/behavior.html +0 -88
  542. package/js/rte/tests/events.html +0 -69
  543. package/js/rte/tests/fixes.html +0 -95
  544. package/js/rte/tests/minimal.html +0 -34
  545. package/js/rte/tests/notes.md +0 -6
  546. package/js/rte/tests/range.html +0 -167
  547. package/js/rte/tests/selection-explorer.html +0 -222
  548. package/js/rte/tests/test.html +0 -92
  549. package/js/shortcut/tests/minimal.html +0 -23
  550. package/js/shortcut/tests/test.html +0 -68
  551. package/u2/experiments/Waiter/test.html +0 -132
  552. package/u2/experiments/getElementByIdPromise/test.html +0 -76
  553. package/u2/experiments/patchInputValue.html +0 -124
  554. package/u2/experiments/radiobutton/test.html +0 -75
  555. package/u2/experiments/tests/test.html +0 -223
  556. package/u2/experiments/u1-responsive/responsive.js +0 -62
  557. package/u2/experiments/u1-responsive/test.html +0 -65
  558. package/u2/experiments/u2Element.js +0 -139
  559. package/u2/experiments/u2Element.test.html +0 -47
  560. package/u2/old-stuff/IterableWeakMap/mod.js +0 -70
  561. package/u2/old-stuff/css/onStyleSheet/mod.js +0 -114
  562. package/u2/old-stuff/css/onStyleSheet/monkeypatches.js +0 -28
  563. package/u2/old-stuff/css/onStyleSheet/test/include.css +0 -19
  564. package/u2/old-stuff/css/onStyleSheet/test/style-has-include.css +0 -6
  565. package/u2/old-stuff/css/onStyleSheet/test/style-no-include.css +0 -3
  566. package/u2/old-stuff/css/onStyleSheet/test/test.html +0 -48
  567. package/u2/old-stuff/css/parser/mod.js +0 -182
  568. package/u2/old-stuff/css/parser/parser_old/mod.js +0 -128
  569. package/u2/old-stuff/css/parser/parser_old/test.html +0 -43
  570. package/u2/old-stuff/css/parser/parser_old/util.js +0 -22
  571. package/u2/old-stuff/css/parser/style.html +0 -52
  572. package/u2/old-stuff/css/parser/test.html +0 -38
  573. package/u2/old-stuff/el/ai-texter/README.md +0 -23
  574. package/u2/old-stuff/el/ai-texter/ai-texter.css +0 -12
  575. package/u2/old-stuff/el/ai-texter/ai-texter.js +0 -153
  576. package/u2/old-stuff/el/ai-texter/tests/minimal.html +0 -47
  577. package/u2/old-stuff/el/ai-texter/tests/test.html +0 -71
  578. package/u2/old-stuff/init.js +0 -38
  579. package/u2/old-stuff/markHashLinks.js +0 -51
  580. package/u2/old-stuff/onElement/mod.js +0 -73
  581. package/u2/old-stuff/test-helpers/mod.js +0 -36
  582. package/u2/old-stuff/test-helpers/test.html +0 -4
  583. package/u2/old-stuff/tests/init.js.html +0 -51
  584. package/u2/old-stuff/viewport.js +0 -64
  585. package/u2/tests/boilerplate.html +0 -46
  586. package/u2/tests/kacheln.html +0 -245
  587. package/u2/tests/showcase.html +0 -270
  588. package/u2/tests/showcase2.html +0 -157
  589. package/u2/tests/test-init.js +0 -35
  590. package/u2/tests/test.html +0 -355
  591. package/u2/tools/logo/u1ui.svg +0 -6
@@ -0,0 +1,84 @@
1
+
2
+ const baseUrl = import.meta.url.replace('system.js', '');
3
+
4
+ export default class U2System extends HTMLElement {
5
+ constructor() {
6
+ super();
7
+
8
+ import('./styler.js');
9
+ //import('https://cdn.jsdelivr.net/gh/nuxodin/cleanup.js/mod.min.js')
10
+
11
+ this.popover = 'auto';
12
+ this.style.cssText = '';
13
+ this.attachShadow({ mode: 'open' });
14
+ this.shadowRoot.innerHTML = `
15
+ <style>
16
+ :host {
17
+ position:fixed;
18
+ inset:1rem 1rem auto auto;
19
+ border:2px solid red;
20
+ box-shadow: 0 0 1rem #0006;
21
+ &::backdrop {
22
+ xbackground: #0003;
23
+ }
24
+ }
25
+ </style>
26
+ <button id="demoHtml">Show Demo</button>
27
+ <u2-system-styler id="styler"></u2-system-styler>
28
+ `;
29
+ this.shadowRoot.getElementById('demoHtml').addEventListener('click', () => this.demo());
30
+ }
31
+ connectedCallback() {
32
+
33
+ }
34
+
35
+ async demo() {
36
+ let demoEl = document.getElementById('u2SystemHtmlDemo');
37
+ if (!demoEl) {
38
+ demoEl = document.createElement('div');
39
+ demoEl.popover = 'manual';
40
+ demoEl.id = 'u2SystemHtmlDemo';
41
+ document.body.append(demoEl);
42
+ demoEl.style = 'inset:1rem; height:fit-content; max-height:calc(100vh - 2rem); width:calc(100vw - 2rem); max-width:60rem';
43
+ const html = await fetch(baseUrl + 'demoHtml.html').then(res => res.text());
44
+
45
+ demoEl.innerHTML = `
46
+ <style>
47
+ #u2SystemHtmlDemo {
48
+ box-shadow: 0 0 1rem #0006;
49
+ padding:1rem;
50
+ border:0;
51
+ u2-toc ul {
52
+ display:flex;
53
+ justify-content: center;
54
+ a {
55
+ padding:1rem;
56
+ }
57
+ }
58
+ }
59
+ </style>
60
+ <u2-toc for="u2SystemHtmlDemo" to="1" style="position:absolute; inset:.3rem .3rem auto .3rem;"></u2-toc>
61
+ <button u2-behavior="close" style="position:absolute; inset:.3rem .3rem auto auto; margin:0">Close</button>
62
+ ${html}`;
63
+ }
64
+ demoEl.showPopover();
65
+ this.showPopover();
66
+ this.shadowRoot.getElementById('styler').showPopover();
67
+ }
68
+
69
+ }
70
+
71
+ customElements.define('u2-system', U2System);
72
+
73
+ addEventListener('keydown', (e) => {
74
+ if (e.target.form !== undefined) return;
75
+ if (e.target.isContentEditable) return;
76
+ if (e.ctrlKey || e.altKey || e.metaKey) return;
77
+ if (e.key !== 's') return;
78
+
79
+ if (!document.querySelector('u2-system').matches(':popover-open')) {
80
+ document.querySelector('u2-system').showPopover();
81
+ } else {
82
+ document.querySelector('u2-system').hidePopover();
83
+ }
84
+ });
@@ -1,68 +1,80 @@
1
- # &lt;u2-table&gt; - element
2
- Enhanced tables (sortable, responsive...)
3
-
4
- ## Features
5
-
6
- - Behavior that you can't cover without css.
7
- - Responsive (breaks of overflows)
8
- - Sets the header-cell text as aria-label on each cell
9
- - Use attribute `data-sortby` to customize the sort order
10
-
11
- ## Usage
12
-
13
- ```html
14
- <u2-table break sortable>
15
- <table>
16
- <thead>
17
- <tr><th> Firstname <th> Lastname <th> Age
18
- <tbody>
19
- <tr><td> Wolfgang Amadeus <td> Mozart <td> 46
20
- <tr><td> Hans <td> Muster <td> 1
21
- <tr><td> Fridrich <td> Langenegger <td> 5
22
- </table>
23
- </u2-table>
24
- ```
25
-
26
- ```css
27
- u2-table {
28
- white-space:nowrap;
29
- }
30
- u2-table[\:overflows][break] td::before {
31
- margin-right:auto;
32
- }
33
- ```
34
-
35
- ## Install
36
-
37
- ```html
38
- <link href="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/table/table.min.css" rel=stylesheet>
39
- <script src="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/table/table.min.js" type=module async></script>
40
- ```
41
-
42
- ## Demos
43
-
44
- [minimal.html](http://gcdn.li/u2ui/u2@main/el/table/tests/minimal.html)
45
- [test.html](http://gcdn.li/u2ui/u2@main/el/table/tests/test.html)
46
-
47
- ## Todo
48
-
49
- Make strategies for responsive tables like the following:
50
- ```html
51
- <u2-table overflow-strategy="break hide-optional vertical-headers">
52
- ```
53
- If it overflows, the script walks through the strategies in the defined order.
54
- And sets the state attribute `<u2-table :overflows="strategy1 strategy2 ...">`
55
-
56
- In the css there are some predefined or custom rules for the overflow-strategy.
57
- ```css
58
- u2-table[\:overflows~=hide-optional] :is(td,th).optional {
59
- display:none;
60
- }
61
- ```
62
- If the table still overflows, the next strategy comes into play.
63
-
64
- ## About
65
-
66
- - MIT License, Copyright (c) 2022 <u2> (like all repositories in this organization) <br>
67
- - Suggestions, ideas, finding bugs and making pull requests make us very happy. ♥
68
-
1
+ # &lt;u2-table&gt; - element
2
+ Wrap Tables to make them enhanced tables (sortable, responsive...)
3
+
4
+ ## Features
5
+
6
+ - Behavior that you can't cover without css.
7
+ - Responsive (breaks of overflows)
8
+ - Sets the header-cell text as aria-label on each cell
9
+ - Use attribute `data-sortby` to customize the sort order
10
+
11
+ ## Usage
12
+
13
+ ```html
14
+ <u2-table>
15
+ <table>
16
+ <colgroup>
17
+ <col>
18
+ <col>
19
+ <col class="age-col"/>
20
+ <thead>
21
+ <tr>
22
+ <th data-sort-handler> Firstname
23
+ <th data-sort-handler> Lastname
24
+ <th data-sort-handler> Age
25
+ <tbody>
26
+ <tr><td> Wolfgang Amadeus <td> Mozart <td> 46
27
+ <tr><td> Hans <td> Muster <td> 1
28
+ <tr><td> Fridrich <td> Langenegger <td> 5
29
+ </table>
30
+ </u2-table>
31
+ ```
32
+
33
+ ```css
34
+ u2-table {
35
+ white-space:nowrap;
36
+ }
37
+ .age-col {
38
+ text-align:right;
39
+ }
40
+ ```
41
+
42
+ ## Install
43
+
44
+ ```html
45
+ <link href="https://cdn.jsdelivr.net/gh/u2ui/u2@main/el/table/table.css" rel=stylesheet>
46
+ <script src="https://cdn.jsdelivr.net/gh/u2ui/u2@main/el/table/table.js" type=module async></script>
47
+ ```
48
+
49
+ ## Demos
50
+
51
+ [test.html](http://gcdn.li/u2ui/u2@main/el/table/tests/test.html)
52
+ [minimal.html](http://gcdn.li/u2ui/u2@main/el/table/tests/minimal.html)
53
+ [multiselect.html](http://gcdn.li/u2ui/u2@main/el/table/tests/multiselect.html)
54
+ [drag.html](http://gcdn.li/u2ui/u2@main/el/table/tests/drag.html)
55
+ [autoformat.html](http://gcdn.li/u2ui/u2@main/el/table/tests/autoformat.html)
56
+ [observer.html](http://gcdn.li/u2ui/u2@main/el/table/tests/observer.html)
57
+ [columns.api.html](http://gcdn.li/u2ui/u2@main/el/table/tests/columns.api.html)
58
+
59
+ ## Todo
60
+
61
+ Make strategies for responsive tables like the following:
62
+ ```html
63
+ <u2-table overflow-strategy="break hide-optional vertical-headers">
64
+ ```
65
+ If it overflows, the script walks through the strategies in the defined order.
66
+ And sets the state attribute `<u2-table :overflows="strategy1 strategy2 ...">`
67
+
68
+ In the css there are some predefined or custom rules for the overflow-strategy.
69
+ ```css
70
+ u2-table[\:overflows~=hide-optional] :is(td,th).optional {
71
+ display:none;
72
+ }
73
+ ```
74
+ If the table still overflows, the next strategy comes into play.
75
+
76
+ ## About
77
+
78
+ - MIT License, Copyright (c) 2022 <u2> (like all repositories in this organization) <br>
79
+ - Suggestions, ideas, finding bugs and making pull requests make us very happy. ♥
80
+
@@ -0,0 +1,228 @@
1
+ import { getTableColumns } from "../table.js";
2
+
3
+ export function autoFormatTable(table) {
4
+
5
+ const root = table.shadowRoot || document.documentElement;
6
+ let style = root.querySelector('style[data-autoformat]');
7
+ if (!style) {
8
+ style = document.createElement('style'); // ok, reicht fast immer
9
+ style.dataset.autoformat = '';
10
+ root.prepend(style);
11
+ }
12
+
13
+ style.textContent = `
14
+ /* AUTO-FORMAT STYLES (BETA) */
15
+ :is(td, th).auto-numeric,
16
+ :is(td, th).auto-currency {
17
+ text-align: right;
18
+ font-variant-numeric: tabular-nums;
19
+ }
20
+
21
+ th.auto-vertical {
22
+ writing-mode: vertical-rl;
23
+ writing-mode: sideways-lr;
24
+ white-space: nowrap;
25
+ }
26
+
27
+ td.auto-date {
28
+ text-align: center;
29
+ white-space: nowrap;
30
+ }
31
+
32
+ :is(td, th).auto-boolean {
33
+ text-align: center;
34
+ font-size: 1.2em;
35
+ }
36
+
37
+ td.auto-percentage {
38
+ text-align: right;
39
+ font-variant-numeric: tabular-nums;
40
+ }
41
+
42
+ td.auto-email {
43
+ word-break: break-all;
44
+ font-size: 0.9em;
45
+ }
46
+
47
+ td.auto-url {
48
+ word-break: break-all;
49
+ xcolor: #0066cc;
50
+ }
51
+
52
+ td.auto-long-text {
53
+ font-size:max(.8em, 12px);
54
+ }
55
+ `;
56
+
57
+ const firstHeadTr = table.querySelector(':scope > thead > tr');
58
+ if (firstHeadTr) {
59
+ for (const th of firstHeadTr.children) {
60
+ th.setAttribute('data-sort-handler', '');
61
+ th.tabIndex = '0';
62
+ }
63
+ }
64
+
65
+ const columns = getTableColumns(table);
66
+
67
+ // Analyze and format each column
68
+ for (const col of columns) {
69
+ const allCells = col.cells;
70
+ const bodyCells = allCells.filter(c => c.tagName === 'TD');
71
+ const headerCell = allCells.find(c => c.tagName === 'TH');
72
+
73
+ if (bodyCells.length === 0) continue;
74
+
75
+ const values = bodyCells.map(c => c.textContent.trim());
76
+ const nonEmptyValues = values.filter(v => v !== '');
77
+
78
+ if (nonEmptyValues.length === 0) continue;
79
+
80
+ // 1. NUMERIC CHECK
81
+ const allNumeric = nonEmptyValues.every(v => !isNaN(v) && v !== '');
82
+ if (allNumeric) {
83
+ allCells.forEach(cell => cell.classList.add('auto-numeric'));
84
+
85
+ // Normalize decimal places
86
+ const decimals = nonEmptyValues.map(v => (v.split('.')[1] || '').length);
87
+ const maxDecimals = Math.max(...decimals, 0);
88
+
89
+ if (maxDecimals > 0) {
90
+ bodyCells.forEach(cell => {
91
+ const num = parseFloat(cell.textContent);
92
+ if (!isNaN(num)) {
93
+ cell.textContent = num.toFixed(maxDecimals);
94
+ }
95
+ });
96
+ }
97
+ continue; // Skip other checks if numeric
98
+ }
99
+
100
+ // 2. CURRENCY CHECK (€, $, £, CHF, etc.)
101
+ const allCurrency = nonEmptyValues.every(v =>
102
+ /^[€$£¥CHF]*\s*\d+([.,]\d{1,2})?$/.test(v)
103
+ );
104
+ if (allCurrency) {
105
+ bodyCells.forEach(cell => {
106
+ const text = cell.textContent.trim();
107
+ const numericValue = text.replace(/[€$£¥CHF\s]/g, '').replace(',', '.');
108
+ cell.setAttribute('data-sort', parseFloat(numericValue));
109
+ cell.classList.add('auto-currency')
110
+ });
111
+ continue;
112
+ }
113
+
114
+ // 3. PERCENTAGE CHECK
115
+ const allPercentage = nonEmptyValues.every(v =>
116
+ /^\d+([.,]\d+)?%$/.test(v)
117
+ );
118
+ if (allPercentage) {
119
+ bodyCells.forEach(cell => {
120
+ cell.setAttribute('data-sort', parseFloat(cell.textContent.trim()));
121
+ });
122
+ allCells.forEach(cell => {
123
+ cell.classList.add('auto-percentage');
124
+ });
125
+ continue;
126
+ }
127
+
128
+ // 4. DATE CHECK
129
+ const allDates = nonEmptyValues.every(v => {
130
+ const parsed = Date.parse(v);
131
+ return !isNaN(parsed) && v.length > 5; // Avoid false positives
132
+ });
133
+ if (allDates) {
134
+ bodyCells.forEach(cell => {
135
+ cell.classList.add('auto-date');
136
+ const date = new Date(cell.textContent);
137
+ if (!isNaN(date)) {
138
+ cell.setAttribute('data-sort', date.getTime());
139
+ cell.textContent = date.toLocaleDateString('de-CH');
140
+ }
141
+ });
142
+ continue;
143
+ }
144
+
145
+ // 5. BOOLEAN CHECK
146
+ const booleanValues = ['true', 'false', 'yes', 'no', 'ja', 'nein', '✓', '✗', 'x'];
147
+ const allBoolean = nonEmptyValues.every(v =>
148
+ booleanValues.includes(v.trim().toLowerCase())
149
+ );
150
+ if (allBoolean) {
151
+ bodyCells.forEach(cell => {
152
+ cell.classList.add('auto-boolean');
153
+ const val = cell.textContent.trim().toLowerCase();
154
+ if (['true', 'yes', 'ja', '✓'].includes(val)) {
155
+ cell.textContent = '🟢'; // ✓ ●
156
+ } else if (['false', 'no', 'nein', '✗', 'x'].includes(val)) {
157
+ cell.textContent = '⚪'; // ✗ ○
158
+ }
159
+ });
160
+ continue;
161
+ }
162
+
163
+ // 6. EMAIL CHECK
164
+ const allEmail = nonEmptyValues.every(v =>
165
+ /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v)
166
+ );
167
+ if (allEmail) {
168
+ bodyCells.forEach(cell => cell.classList.add('auto-email'));
169
+ continue;
170
+ }
171
+
172
+ // 7. URL CHECK
173
+ const allUrl = nonEmptyValues.every(v =>
174
+ /^https?:\/\/.+/.test(v)
175
+ );
176
+ if (allUrl) {
177
+ bodyCells.forEach(cell => {
178
+ cell.classList.add('auto-url');
179
+ const url = cell.textContent;
180
+ cell.innerHTML = `<a href="${url}" target="_blank">${url}</a>`;
181
+ });
182
+ continue;
183
+ }
184
+
185
+ // 8. LONG TEXT CHECK
186
+ const avgLength = nonEmptyValues.join('').length / nonEmptyValues.length;
187
+ if (avgLength > 50) {
188
+ bodyCells.forEach(cell => cell.classList.add('auto-long-text'));
189
+ }
190
+
191
+ // 9. LONG HEADER CHECK (vertical writing)
192
+ if (headerCell) {
193
+ const headerLength = headerCell.textContent.trim().length;
194
+ const maxContentLength = Math.max(...nonEmptyValues.map(v => v.length));
195
+ if (headerLength > maxContentLength * 1.5 && headerLength > 15) {
196
+ headerCell.classList.add('auto-vertical');
197
+ }
198
+ }
199
+ }
200
+
201
+ for (const col of columns) {
202
+ const allCells = col.cells;
203
+ const bodyCells = allCells.filter(c => c.tagName === 'TD');
204
+ const headerCell = allCells.find(c => c.tagName === 'TH');
205
+
206
+ if (bodyCells.length === 0) continue;
207
+
208
+ const values = bodyCells.map(c => c.textContent.trim());
209
+ const nonEmptyValues = values.filter(v => v !== '');
210
+
211
+ // 8. LONG TEXT CHECK
212
+ // todo: muss nur schauen ob irgend ein text länger als 50 ist.
213
+ //const avgLength = nonEmptyValues.join('').length / nonEmptyValues.length;
214
+ const maxContentLength = Math.max(...nonEmptyValues.map(v => v.length));
215
+ if (maxContentLength > 50) {
216
+ bodyCells.forEach(cell => cell.classList.add('auto-long-text'));
217
+ }
218
+
219
+ // 9. LONG HEADER CHECK (vertical writing)
220
+ if (headerCell) {
221
+ const headerLength = headerCell.textContent.trim().length;
222
+ const maxContentLength = Math.max(...nonEmptyValues.map(v => v.length));
223
+ if (headerLength > maxContentLength * 1.5 && headerLength > 15) {
224
+ headerCell.classList.add('auto-vertical');
225
+ }
226
+ }
227
+ }
228
+ }
@@ -1,43 +1,32 @@
1
- {
2
- "schemaVersion": "1.0.0",
3
- "readme": "README.md",
4
- "modules": [
5
- {
6
- "kind": "javascript-module",
7
- "path": "table.js",
8
- "declarations": [
9
- {
10
- "kind": "class",
11
- "description": "",
12
- "name": "table",
13
- "members": [
14
- ],
15
- "events": [
16
- ],
17
- "attributes": [
18
- {
19
- "name": "sortable",
20
- "description": "If set, the table is sortable, value can be a selector for an element that triggers the sort",
21
- "type": "string"
22
- }
23
- ],
24
- "cssParts": [
25
- ],
26
- "superclass": { "name": "HTMLElement" },
27
- "tagName": "u2-table",
28
- "customElement": true
29
- }
30
- ],
31
- "exports": [
32
- {
33
- "kind": "custom-element-definition",
34
- "name": "u2-table",
35
- "declaration": {
36
- "name": "table",
37
- "module": "table.js"
38
- }
39
- }
40
- ]
41
- }
42
- ]
43
- }
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "README.md",
4
+ "modules": [{
5
+ "kind": "javascript-module",
6
+ "path": "table.js",
7
+ "declarations": [{
8
+ "kind": "class",
9
+ "description": "",
10
+ "name": "U2Table",
11
+ "members": [],
12
+ "events": [],
13
+ "attributes": [{
14
+ "name": "sortable",
15
+ "description": "If set, the table is sortable, value can be a selector for an element that triggers the sort",
16
+ "type": "string"
17
+ }],
18
+ "cssParts": [],
19
+ "superclass": { "name": "HTMLElement" },
20
+ "tagName": "u2-table",
21
+ "customElement": true
22
+ }],
23
+ "exports": [{
24
+ "kind": "custom-element-definition",
25
+ "name": "u2-table",
26
+ "declaration": {
27
+ "name": "U2Table",
28
+ "module": "table.js"
29
+ }
30
+ }]
31
+ }]
32
+ }
@@ -1,59 +1,4 @@
1
- u2-table {
2
- display:block;
3
- overflow: auto;
4
- }
5
- u2-table[\:overflows][break] > table {
6
- display: block;
7
- }
8
- u2-table[\:overflows][break] > table > thead {
9
- display:none;
10
- }
11
- u2-table[\:overflows][break] > table > * { /* group */
12
- display: block;
13
- }
14
- u2-table[\:overflows][break] > table > * > * { /* row */
15
- display: block;
16
- }
17
- u2-table[\:overflows][break] > table > * > * > * { /* cell */
18
- display: flex;
19
- /* justify-content: space-between;*/
20
- gap: 0 1rem;
21
- padding: .2rem 0;
22
- padding-right:0;
23
- }
24
- u2-table[\:overflows][break] > table > * > * > *::before { /* cell */
25
- content: attr(aria-label);
26
- display: block;
27
- font-weight: bold;
28
- }
29
-
30
-
31
-
32
- /* trs in a grid *
33
- u2-table[\:overflows][break] tbody {
34
- display: grid;
35
- grid-template-columns: repeat(auto-fit, minmax(min-content, 15rem));
36
- grid-gap: 1rem;
37
- }
38
- /* */
39
-
40
-
41
- /*
42
- left right using table
43
-
44
- u2-table[broken] > table {
45
- display:table;
46
- }
47
- u2-table[broken] > table > * { /* group * /
48
- display:contents;
49
- }
50
- u2-table[broken] > table > * > tr {
51
- display:table-row-group;
52
- }
53
- u2-table[broken] > table > * > tr > * { /* cell * /
54
- display: table-row;
55
- }
56
- u2-table[broken] > table > * > * > ::before {
57
- display:table-cell;
58
- }
59
- */
1
+ u2-table {
2
+ display:block;
3
+ /* overflow: auto; sticky will not work on body-scroll */
4
+ }