u2ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/.htaccess +7 -0
  2. package/LICENSE +21 -0
  3. package/README.md +36 -0
  4. package/attr/behavior/README.md +25 -0
  5. package/attr/behavior/behavior.js +261 -0
  6. package/attr/behavior/manifest.json +43 -0
  7. package/attr/behavior/tests/minimal.html +19 -0
  8. package/attr/behavior/tests/test.html +98 -0
  9. package/attr/confirm/README.md +36 -0
  10. package/attr/confirm/confirm.js +90 -0
  11. package/attr/confirm/manifest.json +43 -0
  12. package/attr/confirm/tests/minimal.html +23 -0
  13. package/attr/confirm/tests/test.html +79 -0
  14. package/attr/draghandle/README.md +41 -0
  15. package/attr/draghandle/draghandle.js +42 -0
  16. package/attr/draghandle/tests/minimal.html +44 -0
  17. package/attr/focusgroup/README.md +49 -0
  18. package/attr/focusgroup/focusgroup.js +100 -0
  19. package/attr/focusgroup/manifest.json +38 -0
  20. package/attr/focusgroup/tests/minimal.html +27 -0
  21. package/attr/focusgroup/tests/test.html +154 -0
  22. package/attr/href/README.md +38 -0
  23. package/attr/href/href.js +42 -0
  24. package/attr/href/manifest.json +43 -0
  25. package/attr/href/tests/minimal.html +17 -0
  26. package/attr/href/tests/test.html +70 -0
  27. package/attr/intersect/README.md +42 -0
  28. package/attr/intersect/intersect.js +99 -0
  29. package/attr/intersect/manifest.json +57 -0
  30. package/attr/intersect/tests/minimal.html +30 -0
  31. package/attr/intersect/tests/test.html +64 -0
  32. package/attr/navigable/README.md +31 -0
  33. package/attr/navigable/TargetObserver.js +91 -0
  34. package/attr/navigable/U2TargetObserver.js +75 -0
  35. package/attr/navigable/manifest.json +42 -0
  36. package/attr/navigable/navigable.js +87 -0
  37. package/attr/navigable/tests/U1TargetObserver.html +56 -0
  38. package/attr/navigable/tests/minimal.html +17 -0
  39. package/attr/navigable/tests/targetObserver.html +106 -0
  40. package/attr/navigable/tests/test.html +84 -0
  41. package/attr/parallax/README.md +48 -0
  42. package/attr/parallax/parallax.js +119 -0
  43. package/attr/parallax/tests/minimal.html +25 -0
  44. package/attr/parallax/tests/performance.html +102 -0
  45. package/attr/parallax/tests/test.html +108 -0
  46. package/attr/skin/README.md +59 -0
  47. package/attr/skin/skin.css +51 -0
  48. package/attr/skin/tests/minimal.html +34 -0
  49. package/attr/skin/tests/test.html +96 -0
  50. package/class/badge/README.md +25 -0
  51. package/class/badge/badge.css +35 -0
  52. package/class/badge/tests/minimal.html +17 -0
  53. package/class/badge/tests/test.html +112 -0
  54. package/class/card1/README.md +45 -0
  55. package/class/card1/card1.css +30 -0
  56. package/class/card1/tests/minimal.html +33 -0
  57. package/class/card1/tests/test.html +78 -0
  58. package/class/flex/README.md +62 -0
  59. package/class/flex/flex.css +25 -0
  60. package/class/flex/tests/minimal.html +31 -0
  61. package/class/flex/tests/test.html +58 -0
  62. package/class/grid/README.md +52 -0
  63. package/class/grid/grid.css +40 -0
  64. package/class/grid/tests/minimal.html +34 -0
  65. package/class/grid/tests/test.html +78 -0
  66. package/class/input/README.md +49 -0
  67. package/class/input/input.css +33 -0
  68. package/class/input/tests/minimal.html +39 -0
  69. package/class/input/tests/test.html +29 -0
  70. package/class/reset/README.md +47 -0
  71. package/class/reset/reset.css +8 -0
  72. package/class/reset/tests/minimal.html +23 -0
  73. package/class/table/README.md +57 -0
  74. package/class/table/table.css +126 -0
  75. package/class/table/tests/minimal.html +40 -0
  76. package/class/table/tests/test.html +226 -0
  77. package/class/unstyle/README.md +32 -0
  78. package/class/unstyle/tests/minimal.html +22 -0
  79. package/class/unstyle/tests/test.html +32 -0
  80. package/class/unstyle/unstyle.css +12 -0
  81. package/class/width/README.md +48 -0
  82. package/class/width/tests/minimal.html +27 -0
  83. package/class/width/tests/test.html +101 -0
  84. package/class/width/width.css +22 -0
  85. package/css/base/README.md +25 -0
  86. package/css/base/base.css +127 -0
  87. package/css/base/beta.css +50 -0
  88. package/css/base/full.css +5 -0
  89. package/css/base/nomotion.css +9 -0
  90. package/css/base/print.css +36 -0
  91. package/css/base/tests/nomotion.html +89 -0
  92. package/css/base/tests/test.html +539 -0
  93. package/css/classes/README.md +17 -0
  94. package/css/classes/classes.css +78 -0
  95. package/css/classes/tests/test.html +63 -0
  96. package/css/classless/README.md +26 -0
  97. package/css/classless/aria.css +64 -0
  98. package/css/classless/classless.css +124 -0
  99. package/css/classless/full.css +11 -0
  100. package/css/classless/more.css +340 -0
  101. package/css/classless/simple.css +103 -0
  102. package/css/classless/snippeds/a/icons.css +12 -0
  103. package/css/classless/snippeds/experiments/conventions.css +41 -0
  104. package/css/classless/snippeds/hr/gradient.css +3 -0
  105. package/css/classless/snippeds/hr/section_sign.css +16 -0
  106. package/css/classless/snippeds/hr/tests.html +50 -0
  107. package/css/classless/tests/aria.html +101 -0
  108. package/css/classless/tests/foreign/classless-almond.css.html +445 -0
  109. package/css/classless/tests/foreign/classless-classless.css.html +831 -0
  110. package/css/classless/tests/foreign/classless-mvp.html +415 -0
  111. package/css/classless/tests/foreign/classless.sakura.html +224 -0
  112. package/css/classless/tests/foreign/stylestage.dev.html +304 -0
  113. package/css/classless/tests/foreign/test-homogenizer.html +433 -0
  114. package/css/classless/tests/foreign/test-html5-elements-tester.html +956 -0
  115. package/css/classless/tests/foreign/test-opinionated_css.html +148 -0
  116. package/css/classless/tests/list-bullet.html +110 -0
  117. package/css/classless/tests/more.html +246 -0
  118. package/css/classless/tests/oklch.experiments.html +280 -0
  119. package/css/classless/tests/test.html +106 -0
  120. package/css/classless/tests/variables.html +109 -0
  121. package/css/classless/variables.css +99 -0
  122. package/css/norm/README.md +37 -0
  123. package/css/norm/beta.css +40 -0
  124. package/css/norm/norm.css +98 -0
  125. package/css/norm/oldies.css +60 -0
  126. package/css/norm/tests/test.html +434 -0
  127. package/css/norm/tests/test.js +103 -0
  128. package/el/accordion/README.md +59 -0
  129. package/el/accordion/accordion.css +7 -0
  130. package/el/accordion/accordion.js +258 -0
  131. package/el/accordion/manifest.json +57 -0
  132. package/el/accordion/tests/minimal.html +44 -0
  133. package/el/accordion/tests/test.html +168 -0
  134. package/el/alert/README.md +67 -0
  135. package/el/alert/alert copy.js +224 -0
  136. package/el/alert/alert.css +73 -0
  137. package/el/alert/alert.js +187 -0
  138. package/el/alert/manifest.json +77 -0
  139. package/el/alert/tests/minimal.html +36 -0
  140. package/el/alert/tests/test.html +105 -0
  141. package/el/buttongroup/README.md +36 -0
  142. package/el/buttongroup/buttongroup.css +30 -0
  143. package/el/buttongroup/buttongroup.js +56 -0
  144. package/el/buttongroup/tests/minimal.html +31 -0
  145. package/el/buttongroup/tests/test.html +83 -0
  146. package/el/bytes/README.md +41 -0
  147. package/el/bytes/bytes.css +6 -0
  148. package/el/bytes/bytes.js +97 -0
  149. package/el/bytes/manifest.json +95 -0
  150. package/el/bytes/tests/minimal.html +19 -0
  151. package/el/bytes/tests/test.html +117 -0
  152. package/el/carousel/README.md +52 -0
  153. package/el/carousel/carousel.css +46 -0
  154. package/el/carousel/carousel.js +371 -0
  155. package/el/carousel/manifest.json +58 -0
  156. package/el/carousel/tests/experiments.html +77 -0
  157. package/el/carousel/tests/minimal.html +31 -0
  158. package/el/carousel/tests/nested.html +54 -0
  159. package/el/carousel/tests/test.html +136 -0
  160. package/el/carousel-nav/README.md +40 -0
  161. package/el/carousel-nav/carousel-nav.js +74 -0
  162. package/el/carousel-nav/tests/minimal.html +32 -0
  163. package/el/carousel-nav/tests/test.html +59 -0
  164. package/el/code/README.md +68 -0
  165. package/el/code/code.css +46 -0
  166. package/el/code/code.js +289 -0
  167. package/el/code/manifest.json +66 -0
  168. package/el/code/tests/minimal.html +35 -0
  169. package/el/code/tests/test.html +162 -0
  170. package/el/copy/README.md +35 -0
  171. package/el/copy/copy.css +3 -0
  172. package/el/copy/copy.js +118 -0
  173. package/el/copy/manifest.json +49 -0
  174. package/el/copy/tests/minimal.html +21 -0
  175. package/el/copy/tests/test.html +75 -0
  176. package/el/counter/README.md +47 -0
  177. package/el/counter/counter.css +8 -0
  178. package/el/counter/counter.js +95 -0
  179. package/el/counter/manifest.json +59 -0
  180. package/el/counter/tests/minimal.html +27 -0
  181. package/el/counter/tests/test.html +106 -0
  182. package/el/ico/README.md +162 -0
  183. package/el/ico/font/Font Awesome.css +22 -0
  184. package/el/ico/font/LigatureSymbols.css +7 -0
  185. package/el/ico/font/Material Icons.css +6 -0
  186. package/el/ico/font/RemixFilled.css +8 -0
  187. package/el/ico/font/RemixOutlined.css +8 -0
  188. package/el/ico/font/old/anicons.css +31 -0
  189. package/el/ico/font/old/devicons.css +210 -0
  190. package/el/ico/font/old/material.all.css +36 -0
  191. package/el/ico/font/old/remix.css +15 -0
  192. package/el/ico/font/old/utf8.css +54 -0
  193. package/el/ico/ico.css +111 -0
  194. package/el/ico/ico.js +189 -0
  195. package/el/ico/manifest.json +86 -0
  196. package/el/ico/tests/combinations.html +86 -0
  197. package/el/ico/tests/emojis.html +213 -0
  198. package/el/ico/tests/fonts.html +110 -0
  199. package/el/ico/tests/ico-directory.html +254 -0
  200. package/el/ico/tests/minimal.html +46 -0
  201. package/el/ico/tests/test.html +210 -0
  202. package/el/ico/tests/util-multi.svg +6 -0
  203. package/el/ico/tests/util.css +2 -0
  204. package/el/ico/tests/util.js +110 -0
  205. package/el/input/README.md +39 -0
  206. package/el/input/input.css +35 -0
  207. package/el/input/input.js +331 -0
  208. package/el/input/tests/formParticipation.html +113 -0
  209. package/el/input/tests/minimal.html +33 -0
  210. package/el/input/tests/test.html +258 -0
  211. package/el/masonry/README.md +51 -0
  212. package/el/masonry/manifest.json +60 -0
  213. package/el/masonry/masonry.css +27 -0
  214. package/el/masonry/masonry.js +92 -0
  215. package/el/masonry/tests/minimal.html +39 -0
  216. package/el/masonry/tests/test.html +42 -0
  217. package/el/number/README.md +47 -0
  218. package/el/number/manifest.json +121 -0
  219. package/el/number/number.css +6 -0
  220. package/el/number/number.js +67 -0
  221. package/el/number/tests/minimal.html +25 -0
  222. package/el/number/tests/test.html +138 -0
  223. package/el/out/README.md +32 -0
  224. package/el/out/manifest.json +38 -0
  225. package/el/out/out.css +2 -0
  226. package/el/out/out.js +59 -0
  227. package/el/out/tests/minimal.html +25 -0
  228. package/el/out/tests/test.html +37 -0
  229. package/el/parallax-bg/README.md +36 -0
  230. package/el/parallax-bg/parallax-bg.css +13 -0
  231. package/el/parallax-bg/parallax-bg.js +186 -0
  232. package/el/parallax-bg/tests/bg.jpg +0 -0
  233. package/el/parallax-bg/tests/bg1.jpg +0 -0
  234. package/el/parallax-bg/tests/bg2.jpg +0 -0
  235. package/el/parallax-bg/tests/demo.html +88 -0
  236. package/el/parallax-bg/tests/minimal.html +30 -0
  237. package/el/parallax-bg/tests/test.html +64 -0
  238. package/el/parallax-bg/tests/visible.html +90 -0
  239. package/el/qrcode/README.md +38 -0
  240. package/el/qrcode/manifest.json +43 -0
  241. package/el/qrcode/package.json +22 -0
  242. package/el/qrcode/qrcode.css +13 -0
  243. package/el/qrcode/qrcode.js +46 -0
  244. package/el/qrcode/tests/minimal.html +26 -0
  245. package/el/qrcode/tests/test.html +31 -0
  246. package/el/rating/README.md +45 -0
  247. package/el/rating/manifest.json +65 -0
  248. package/el/rating/rating.css +11 -0
  249. package/el/rating/rating.js +139 -0
  250. package/el/rating/tests/minimal.html +26 -0
  251. package/el/rating/tests/tests.html +77 -0
  252. package/el/rte/README.md +37 -0
  253. package/el/rte/rte.css +9 -0
  254. package/el/rte/rte.js +56 -0
  255. package/el/rte/tests/minimal.html +25 -0
  256. package/el/rte/tests/test.html +37 -0
  257. package/el/skeleton/README.md +30 -0
  258. package/el/skeleton/manifest.json +51 -0
  259. package/el/skeleton/skeleton.css +61 -0
  260. package/el/skeleton/skeleton.js +72 -0
  261. package/el/skeleton/tests/minimal.html +22 -0
  262. package/el/skeleton/tests/test.html +22 -0
  263. package/el/splitbutton/README.md +39 -0
  264. package/el/splitbutton/splitbutton.css +48 -0
  265. package/el/splitbutton/splitbutton.js +26 -0
  266. package/el/splitbutton/tests/minimal.html +30 -0
  267. package/el/splitbutton/tests/test.html +68 -0
  268. package/el/splitpanel/README.md +39 -0
  269. package/el/splitpanel/manifest.json +49 -0
  270. package/el/splitpanel/splitpanel.css +17 -0
  271. package/el/splitpanel/splitpanel.js +116 -0
  272. package/el/splitpanel/tests/minimal.html +31 -0
  273. package/el/splitpanel/tests/tests.html +121 -0
  274. package/el/table/README.md +68 -0
  275. package/el/table/manifest.json +43 -0
  276. package/el/table/table.css +59 -0
  277. package/el/table/table.js +194 -0
  278. package/el/table/tests/minimal.html +38 -0
  279. package/el/table/tests/test.html +108 -0
  280. package/el/tabs/README.md +50 -0
  281. package/el/tabs/manifest.json +59 -0
  282. package/el/tabs/tabs.css +23 -0
  283. package/el/tabs/tabs.js +210 -0
  284. package/el/tabs/tests/minimal.html +35 -0
  285. package/el/tabs/tests/test.html +180 -0
  286. package/el/textfit/README.md +34 -0
  287. package/el/textfit/manifest.json +45 -0
  288. package/el/textfit/tests/minimal.html +25 -0
  289. package/el/textfit/tests/test.html +26 -0
  290. package/el/textfit/textfit.css +6 -0
  291. package/el/textfit/textfit.js +80 -0
  292. package/el/time/README.md +72 -0
  293. package/el/time/manifest.json +118 -0
  294. package/el/time/tests/minimal.html +19 -0
  295. package/el/time/tests/test.html +160 -0
  296. package/el/time/time copy.js +141 -0
  297. package/el/time/time.js +168 -0
  298. package/el/time/time.old.uhtml.js +129 -0
  299. package/el/tooltip/README.md +48 -0
  300. package/el/tooltip/manifest.json +69 -0
  301. package/el/tooltip/tests/minimal.html +25 -0
  302. package/el/tooltip/tests/test.html +178 -0
  303. package/el/tooltip/tooltip.css +97 -0
  304. package/el/tooltip/tooltip.js +82 -0
  305. package/el/tree1/README.md +111 -0
  306. package/el/tree1/manifest.json +78 -0
  307. package/el/tree1/tests/animated.html +134 -0
  308. package/el/tree1/tests/custom.html +51 -0
  309. package/el/tree1/tests/minimal.html +44 -0
  310. package/el/tree1/tests/test.html +260 -0
  311. package/el/tree1/tree1.css +26 -0
  312. package/el/tree1/tree1.js +265 -0
  313. package/el/typewriter/README.md +62 -0
  314. package/el/typewriter/manifest.json +66 -0
  315. package/el/typewriter/tests/minimal.html +25 -0
  316. package/el/typewriter/tests/test.html +78 -0
  317. package/el/typewriter/typewriter.css +6 -0
  318. package/el/typewriter/typewriter.js +166 -0
  319. package/el/typewriter/typewriter.mp3 +0 -0
  320. package/js/Placer/Placer.js +156 -0
  321. package/js/Placer/README.md +62 -0
  322. package/js/Placer/tests/minimal.html +34 -0
  323. package/js/Placer/tests/test.html +49 -0
  324. package/js/PointerObserver/PointerObserver.js +130 -0
  325. package/js/PointerObserver/README.md +34 -0
  326. package/js/PointerObserver/tests/minimal.html +29 -0
  327. package/js/PointerObserver/tests/test.html +35 -0
  328. package/js/SelectorObserver/README.md +47 -0
  329. package/js/SelectorObserver/SelectorObserver.js +201 -0
  330. package/js/SelectorObserver/tests/minimal.html +21 -0
  331. package/js/SelectorObserver/tests/test.html +57 -0
  332. package/js/SelectorObserver/tests/tests.html +161 -0
  333. package/js/contextmenu/README.md +93 -0
  334. package/js/contextmenu/contextmenu.js +336 -0
  335. package/js/contextmenu/tests/minimal.html +44 -0
  336. package/js/contextmenu/tests/test.html +131 -0
  337. package/js/dialog/README.md +49 -0
  338. package/js/dialog/dialog.js +261 -0
  339. package/js/dialog/notification.mp3 +0 -0
  340. package/js/dialog/tests/minimal.html +29 -0
  341. package/js/dialog/tests/notification.mp3 +0 -0
  342. package/js/dialog/tests/test.html +135 -0
  343. package/js/rte/README.md +44 -0
  344. package/js/rte/old/NodeCleaner.js +315 -0
  345. package/js/rte/old/Rte/Rte.mjs +316 -0
  346. package/js/rte/old/Rte/Rte.ui.items.mjs +543 -0
  347. package/js/rte/old/Rte/Rte.ui.mjs +154 -0
  348. package/js/rte/old/Rte/crossbrowser.mjs +323 -0
  349. package/js/rte/old/Rte/font/tinymce.svg +98 -0
  350. package/js/rte/old/Rte/font/tinymce.woff +0 -0
  351. package/js/rte/old/Rte/helpers.mjs +159 -0
  352. package/js/rte/old/Rte/htmlparser.mjs +178 -0
  353. package/js/rte/old/Rte/index.mjs +5 -0
  354. package/js/rte/old/Rte/main.css +189 -0
  355. package/js/rte/old/old.rte.js +132 -0
  356. package/js/rte/old/range-selection.old.js +394 -0
  357. package/js/rte/rte.js +7 -0
  358. package/js/rte/src/behavior.js +228 -0
  359. package/js/rte/src/events.js +73 -0
  360. package/js/rte/src/fixes.js +251 -0
  361. package/js/rte/src/range.js +472 -0
  362. package/js/rte/src/rte.js +72 -0
  363. package/js/rte/src/ui/items/ai.js +167 -0
  364. package/js/rte/src/ui/items/code.js +93 -0
  365. package/js/rte/src/ui/items/undo.js +183 -0
  366. package/js/rte/src/ui.items.js +571 -0
  367. package/js/rte/src/ui.js +269 -0
  368. package/js/rte/src/util/htmlparser.js +178 -0
  369. package/js/rte/src/util/indentHtml.js +48 -0
  370. package/js/rte/tests/ai.html +81 -0
  371. package/js/rte/tests/behavior.html +88 -0
  372. package/js/rte/tests/events.html +69 -0
  373. package/js/rte/tests/fixes.html +95 -0
  374. package/js/rte/tests/minimal.html +34 -0
  375. package/js/rte/tests/notes.md +6 -0
  376. package/js/rte/tests/range.html +167 -0
  377. package/js/rte/tests/selection-explorer.html +222 -0
  378. package/js/rte/tests/test.html +92 -0
  379. package/js/shortcut/README.md +33 -0
  380. package/js/shortcut/shortcut.js +89 -0
  381. package/js/shortcut/tests/minimal.html +23 -0
  382. package/js/shortcut/tests/test.html +68 -0
  383. package/package.json +12 -0
  384. package/u2/README.md +4 -0
  385. package/u2/auto.js +161 -0
  386. package/u2/auto.ui.js +85 -0
  387. package/u2/experiments/Waiter/test.html +132 -0
  388. package/u2/experiments/getElementByIdPromise/test.html +76 -0
  389. package/u2/experiments/patchInputValue.html +124 -0
  390. package/u2/experiments/radiobutton/test.html +75 -0
  391. package/u2/experiments/tests/test.html +223 -0
  392. package/u2/experiments/u1-responsive/responsive.js +62 -0
  393. package/u2/experiments/u1-responsive/test.html +65 -0
  394. package/u2/experiments/u2Element.js +139 -0
  395. package/u2/experiments/u2Element.test.html +47 -0
  396. package/u2/old-stuff/IterableWeakMap/mod.js +70 -0
  397. package/u2/old-stuff/css/onStyleSheet/mod.js +114 -0
  398. package/u2/old-stuff/css/onStyleSheet/monkeypatches.js +28 -0
  399. package/u2/old-stuff/css/onStyleSheet/test/include.css +19 -0
  400. package/u2/old-stuff/css/onStyleSheet/test/style-has-include.css +6 -0
  401. package/u2/old-stuff/css/onStyleSheet/test/style-no-include.css +3 -0
  402. package/u2/old-stuff/css/onStyleSheet/test/test.html +48 -0
  403. package/u2/old-stuff/css/parser/mod.js +182 -0
  404. package/u2/old-stuff/css/parser/parser_old/mod.js +128 -0
  405. package/u2/old-stuff/css/parser/parser_old/test.html +43 -0
  406. package/u2/old-stuff/css/parser/parser_old/util.js +22 -0
  407. package/u2/old-stuff/css/parser/style.html +52 -0
  408. package/u2/old-stuff/css/parser/test.html +38 -0
  409. package/u2/old-stuff/el/ai-texter/README.md +23 -0
  410. package/u2/old-stuff/el/ai-texter/ai-texter.css +12 -0
  411. package/u2/old-stuff/el/ai-texter/ai-texter.js +153 -0
  412. package/u2/old-stuff/el/ai-texter/tests/minimal.html +47 -0
  413. package/u2/old-stuff/el/ai-texter/tests/test.html +71 -0
  414. package/u2/old-stuff/init.js +38 -0
  415. package/u2/old-stuff/markHashLinks.js +51 -0
  416. package/u2/old-stuff/onElement/mod.js +73 -0
  417. package/u2/old-stuff/test-helpers/mod.js +36 -0
  418. package/u2/old-stuff/test-helpers/test.html +4 -0
  419. package/u2/old-stuff/tests/init.js.html +51 -0
  420. package/u2/old-stuff/viewport.js +64 -0
  421. package/u2/projects.json +468 -0
  422. package/u2/tests/boilerplate.html +46 -0
  423. package/u2/tests/kacheln.html +245 -0
  424. package/u2/tests/showcase.html +270 -0
  425. package/u2/tests/showcase2.html +157 -0
  426. package/u2/tests/test-init.js +35 -0
  427. package/u2/tests/test.html +355 -0
  428. package/u2/tools/baseElement.js +95 -0
  429. package/u2/tools/baseElement.test.html +119 -0
  430. package/u2/tools/ce-inspector.js +308 -0
  431. package/u2/tools/ce-inspector.test.html +66 -0
  432. package/u2/tools/ce-manfest-from-element.js +207 -0
  433. package/u2/tools/dev-iframe.js +213 -0
  434. package/u2/tools/dev-iframe.test.html +75 -0
  435. package/u2/tools/eventsExplorer.js +101 -0
  436. package/u2/tools/logo/u1.svg +9 -0
  437. package/u2/tools/logo/u1ui.svg +6 -0
  438. package/u2/tools/update.repos.json.js +234 -0
  439. package/u2/u2.js +14 -0
  440. package/u2/utils.js +59 -0
@@ -0,0 +1,121 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "README.md",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "number.js",
8
+ "declarations": [
9
+ {
10
+ "kind": "class",
11
+ "description": "Displays formatted numbers",
12
+ "name": "u2-number",
13
+ "members": [
14
+ {
15
+ "kind": "field",
16
+ "description": "Set or get the value of the number",
17
+ "name": "value"
18
+ }
19
+ ],
20
+ "events": [],
21
+ "attributes": [
22
+ {
23
+ "name": "value",
24
+ "description": "The number to format"
25
+ },{
26
+ "name": "lang",
27
+ "description": "The language to use for formatting the number",
28
+ "u2Examples": ["en-US","fr-FR","de-DE","es-ES","it-IT","ja-JP","ko-KR","zh-CN","zh-TW"]
29
+ },{
30
+ "name": "digits",
31
+ "description": "The number of digits to display after the decimal point",
32
+ "u2-type": "number"
33
+ },{
34
+ "name": "unit",
35
+ "description": "The unit of measure to use when displaying the number",
36
+ "u2-type": ["acre","bit","byte","celsius","centimeter","day","degree","fahrenheit","fluid-ounce","foot","gallon","gigabit","gigabyte","gram","hectare","hour","inch","kilobit","kilobyte","kilogram","kilometer","liter","megabit","megabyte","meter","microsecond","mile","mile-scandinavian","milliliter","millimeter","millisecond","minute","month","nanosecond","ounce","percent","petabyte","pound","second","stone","terabit","terabyte","week","yard","year"]
37
+ },{
38
+ "name": "currency",
39
+ "description": "Display the number as a currency. Formated based on the currency locale."
40
+ },{
41
+ "name": "percent",
42
+ "description": "Display the number as a percentage.",
43
+ "u2-type": "boolean"
44
+ }
45
+ ],
46
+ "cssProperties": [],
47
+ "cssParts": [
48
+ {
49
+ "// name": "compact",
50
+ "description": "The exponent in 'long' or 'short' form, depending on how compactDisplay (which defaults to short) is specified when notation is set to compact."
51
+ },{
52
+ "name": "currency",
53
+ "description": "The currency string, such as the symbols '$' and '€' or the name 'Dollar', 'Euro', depending on how currencyDisplay is specified."
54
+ },{
55
+ "name": "decimal",
56
+ "description": "The decimal separator string ('.')."
57
+ },{
58
+ "// name": "exponentInteger",
59
+ "description": "The exponent integer value, when notation is set to scientific or engineering."
60
+ },{
61
+ "// name": "exponentMinusSign",
62
+ "description": "The exponent minus sign string ('-')."
63
+ },{
64
+ "// name": "exponentSeparator",
65
+ "description": "The exponent separator, when notation is set to scientific or engineering."
66
+ },{
67
+ "name": "fraction",
68
+ "description": "The fraction number."
69
+ },{
70
+ "name": "group",
71
+ "description": "The group separator string (',')."
72
+ },{
73
+ "// name": "infinity",
74
+ "description": "The Infinity string ('∞')."
75
+ },{
76
+ "name": "integer",
77
+ "description": "The integer number."
78
+ },{
79
+ "name": "literal",
80
+ "description": "Any literal strings or whitespace in the formatted number."
81
+ },{
82
+ "name": "minusSign",
83
+ "description": "The minus sign string ('-')."
84
+ },{
85
+ "name": "nan",
86
+ "description": "The NaN string ('NaN')."
87
+ },{
88
+ "name": "plusSign",
89
+ "description": "The plus sign string ('+')."
90
+ },{
91
+ "name": "percentSign",
92
+ "description": "The percent sign string ('%')."
93
+ },{
94
+ "name": "unit",
95
+ "description": "The unit string, such as the 'l' or 'litres', depending on how unitDisplay is specified."
96
+ },{
97
+ "// name": "unknown",
98
+ "description": "The string for unknown type results."
99
+ }
100
+ ],
101
+ "superclass": {
102
+ "name": "HTMLElement"
103
+ },
104
+ "tagName": "u2-number",
105
+ "customElement": true
106
+ }
107
+ ],
108
+ "exports": [
109
+ {
110
+ "kind": "custom-element-definition",
111
+ "name": "u2-number",
112
+ "declaration": {
113
+ "name": "u2-number",
114
+ "module": "number.js"
115
+ }
116
+ }
117
+ ]
118
+ }
119
+ ]
120
+ }
121
+
@@ -0,0 +1,6 @@
1
+ u2-number {
2
+ text-align:right; /* if block */
3
+ /* only as child of a table-cell? (would probably be confusing) */
4
+ font-variant: tabular-nums;
5
+ font-feature-settings: "tnum";
6
+ }
@@ -0,0 +1,67 @@
1
+
2
+ class U2Number extends HTMLElement {
3
+ constructor() {
4
+ super();
5
+ this.attachShadow({mode: 'open'});
6
+ this.outEl = this.shadowRoot;
7
+ this.observer = new MutationObserver(mutations => this.render());
8
+ }
9
+ connectedCallback() {
10
+ this.render();
11
+ this.observer.observe(this, {childList: true, characterData: true});
12
+ }
13
+ disconnectedCallback() {
14
+ this.observer.disconnect();
15
+ }
16
+ render() {
17
+ let value = this.hasAttribute('value') ? this.getAttribute('value') : this.innerHTML;
18
+ value = value.trim();
19
+ if (value==='') return this.outEl.innerHTML = '-';
20
+ value = parseFloat(value);
21
+
22
+ const digits = this.getAttribute('digits') ?? undefined;
23
+ const unit = this.getAttribute('unit') ?? undefined;
24
+ const currency = this.getAttribute('currency') ?? undefined;
25
+ const percent = this.hasAttribute('percent');
26
+
27
+ const options = {
28
+ minimumFractionDigits: digits,
29
+ maximumFractionDigits: digits,
30
+ unit,
31
+ currency,
32
+ };
33
+ if (unit) options.style = 'unit';
34
+ if (currency) options.style = 'currency';
35
+ if (percent) options.style = 'percent';
36
+
37
+ const locales = localesFromElement(this);
38
+ const formatter = new Intl.NumberFormat(locales, options);
39
+
40
+ let html = '';
41
+ for (const part of formatter.formatToParts(value)) {
42
+ html += `<span part="${part.type}">${part.value}</span>`;
43
+ }
44
+
45
+ this.outEl.innerHTML = html;
46
+ }
47
+ static observedAttributes = ['value', 'lang', 'digits', 'unit', 'currency', 'percent'];
48
+
49
+ attributeChangedCallback(name, oldVal, newVal) {
50
+ if (oldVal === newVal) return;
51
+ this.render();
52
+ }
53
+ set value(val) {
54
+ this.setAttribute('value', val);
55
+ }
56
+ get value() {
57
+ return this.getAttribute('value');
58
+ }
59
+ }
60
+
61
+ customElements.define('u2-number', U2Number);
62
+
63
+ function localesFromElement(el) {
64
+ let langEl = el.closest('[lang]')||document.documentElement;
65
+ const locale = langEl.lang || navigator.language;
66
+ return [locale, ...navigator.languages];
67
+ }
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html lang=en>
3
+ <head>
4
+ <meta charset=utf-8>
5
+ <meta name=viewport content="width=device-width">
6
+ <script src="../../../u2/tests/test-init.js" type=module async></script>
7
+
8
+ <link rel=stylesheet href="../../../css/classless/full.css">
9
+ <link rel=stylesheet href="../../../css/classless/aria.css">
10
+ <link rel=stylesheet href="../../../css/classless/simple.css">
11
+
12
+ <script src="../number.js" type=module async></script>
13
+ <link href="../number.css" rel=stylesheet>
14
+
15
+ <body>
16
+
17
+ <section class="main">
18
+ Number: <u2-number value="8987.2345" digits="2">8'987.23</u2-number>
19
+ </section>
20
+
21
+ <style class="main">
22
+ u2-number {
23
+ font-size: 2em;
24
+ }
25
+ </style>
@@ -0,0 +1,138 @@
1
+ <!DOCTYPE HTML>
2
+ <html lang=en>
3
+ <head>
4
+ <meta charset=utf-8>
5
+ <meta name=viewport content="width=device-width">
6
+ <script src="../../../u2/tests/test-init.js" type=module async></script>
7
+ <script src="../../../u2/auto.js" type=module async></script>
8
+
9
+
10
+ <link rel=stylesheet href="../../../css/classless/full.css">
11
+ <link rel=stylesheet href="../../../css/classless/simple.css">
12
+
13
+
14
+ <script src="../number.js" type=module async></script>
15
+ <link href="../number.css" rel=stylesheet>
16
+
17
+ <body>
18
+
19
+ <section>
20
+
21
+ <figure style="padding:1rem; background:var(--color-light); font-size:1.5rem">
22
+ Number: &nbsp; <u2-number id=testSet currency="EUR">4000.500 Euro</u2-number>
23
+ </figure>
24
+
25
+ <script type=module>
26
+ attrForm.oninput = function({target}) {
27
+ // these attributes are mutually exclusive
28
+ const styles = ['unit', 'currency', 'percent'];
29
+ if (styles.includes(target.name)) {
30
+ for (let style of styles) {
31
+ if (target.name === style) continue;
32
+ attrForm.elements[style].value = '';
33
+ }
34
+ }
35
+
36
+ for (let [key, value] of new FormData(attrForm)) {
37
+ if (key === 'inner') {
38
+ testSet.innerHTML = value;
39
+ continue;
40
+ }
41
+ if (value.trim() === '') {
42
+ testSet.removeAttribute(key);
43
+ } else {
44
+ testSet.setAttribute(key, value.trim());
45
+ }
46
+ }
47
+ }
48
+ </script>
49
+
50
+ <div class="u2-table -Fields -Flex">
51
+ <strong>
52
+ <span>
53
+ <span>Attribute</span>
54
+ <span>Value</span>
55
+ </span>
56
+ </strong>
57
+ <form id=attrForm>
58
+ <label>
59
+ <span>value</span>
60
+ <input name=value>
61
+ </label>
62
+ <label>
63
+ <div>
64
+ innerHTML* <br>
65
+ </div>
66
+ <input name=inner value="4000.500 Euro">
67
+ </label>
68
+ <label>
69
+ <span>lang</span>
70
+ <select name=lang>
71
+ <option value="">
72
+ <option>de
73
+ <option>en
74
+ <option>es
75
+ <option>it
76
+ <option>fr
77
+ </select>
78
+ </label>
79
+ <label>
80
+ <span>digits</span>
81
+ <select name=digits>
82
+ <option>
83
+ <option>0
84
+ <option>1
85
+ <option>2
86
+ <option>3
87
+ <option>4
88
+ <option>5
89
+ <option>6
90
+ </select>
91
+ </label>
92
+ <label>
93
+ <span>currency</span>
94
+ <select name=currency>
95
+ <option>
96
+ <option>CHF
97
+ <option selected>EUR
98
+ <option>USD
99
+ <option>GBP
100
+ <option>JPY
101
+ </select>
102
+ </label>
103
+ <label>
104
+ <span>unit</span>
105
+ <select name=unit>
106
+ <option>
107
+ <option>kilometer-per-hour
108
+ <option>meter-per-second
109
+ <option>mile-per-hour
110
+ <option>foot-per-second
111
+ </select>
112
+ </label>
113
+ <label>
114
+ <span>percent</span>
115
+ <select name=percent>
116
+ <option>
117
+ <option>percent
118
+ </select>
119
+ </label>
120
+ </form>
121
+ </div>
122
+
123
+ <br><br>
124
+
125
+ <small>* innerHTML is evaluated as value if value-attribute is not present, else its simply a fallback for when no javascript is available</small>
126
+
127
+
128
+ <style>
129
+ label {
130
+ display:block;
131
+ gap:1rem;
132
+ }
133
+ u2-number {
134
+ font-size:2em;
135
+ }
136
+ </style>
137
+ </section>
138
+
@@ -0,0 +1,32 @@
1
+ # &lt;u2-out&gt; - element
2
+ Output variables (beta)
3
+
4
+ ## Usage
5
+
6
+ ```html
7
+ out: <u2-out value="8987.2345" digits="2">8'987.23</u2-out>
8
+ ```
9
+
10
+ ```css
11
+ u2-out {
12
+ font-size: 2em;
13
+ }
14
+ ```
15
+
16
+ ## Install
17
+
18
+ ```html
19
+ <link href="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/out/out.min.css" rel=stylesheet>
20
+ <script src="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/out/out.min.js" type=module async></script>
21
+ ```
22
+
23
+ ## Demos
24
+
25
+ [minimal.html](http://gcdn.li/u2ui/u2@main/el/out/tests/minimal.html)
26
+ [test.html](http://gcdn.li/u2ui/u2@main/el/out/tests/test.html)
27
+
28
+ ## About
29
+
30
+ - MIT License, Copyright (c) 2022 <u2> (like all repositories in this organization) <br>
31
+ - Suggestions, ideas, finding bugs and making pull requests make us very happy. ♥
32
+
@@ -0,0 +1,38 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "README.md",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "out.js",
8
+ "declarations": [
9
+ {
10
+ "kind": "class",
11
+ "description": "Displays formatted outs",
12
+ "name": "u2-out",
13
+ "members": [],
14
+ "events": [],
15
+ "attributes": [],
16
+ "cssProperties": [],
17
+ "cssParts": [],
18
+ "superclass": {
19
+ "name": "HTMLElement"
20
+ },
21
+ "tagName": "u2-out",
22
+ "customElement": true
23
+ }
24
+ ],
25
+ "exports": [
26
+ {
27
+ "kind": "custom-element-definition",
28
+ "name": "u2-out",
29
+ "declaration": {
30
+ "name": "u2-out",
31
+ "module": "out.js"
32
+ }
33
+ }
34
+ ]
35
+ }
36
+ ]
37
+ }
38
+
package/el/out/out.css ADDED
@@ -0,0 +1,2 @@
1
+ u2-out {
2
+ }
package/el/out/out.js ADDED
@@ -0,0 +1,59 @@
1
+ const itemJsRoot = '../../../../nuxodin/item.js/';
2
+ import { AsyncItem } from '../../../../nuxodin/item.js/tools/AsyncItem.js';
3
+ import { effect } from '../../../../nuxodin/item.js/item.js';
4
+
5
+
6
+ class Out extends HTMLElement {
7
+ constructor() {
8
+ super();
9
+ this.attachShadow({mode: 'open'});
10
+ this.outEl = this.shadowRoot;
11
+ }
12
+ connectedCallback() {}
13
+ async render() {
14
+ const value = await this._item.get();
15
+ effect(async ()=>{
16
+ this._item.get(); // just to register the signal
17
+ this.outEl.innerHTML = value;
18
+ });
19
+ }
20
+ static observedAttributes = ['item'];
21
+ attributeChangedCallback(name, oldValue, newValue) {
22
+ if (oldValue === newValue) return;
23
+ if (name === 'item') {
24
+ this._setPath(newValue);
25
+ }
26
+ }
27
+ async _setPath(string) {
28
+ let item = null;
29
+
30
+ const path = string.trim().split('.');
31
+ const first = path.shift();
32
+ switch (first) {
33
+ case 'localStorage':
34
+ item = (await import(itemJsRoot+'drivers/LocalStorage.js')).getStore();
35
+ break;
36
+ case 'cookie':
37
+ item = (await import(itemJsRoot+'drivers/Cookie.js')).cookies();
38
+ break;
39
+ case 'navigator':
40
+ item = (await import(itemJsRoot+'drivers/navigator.js')).store();
41
+ break;
42
+ default:
43
+ throw new Error('Unknown item: '+first);
44
+ }
45
+
46
+ path.forEach( key => {
47
+ item = item.item(key);
48
+ });
49
+ this._item = item;
50
+ this.render();
51
+ }
52
+
53
+ }
54
+
55
+ const localStorage = (await import(itemJsRoot+'drivers/LocalStorage.js')).getStore();
56
+
57
+
58
+
59
+ customElements.define('u2-out', Out);
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html lang=en>
3
+ <head>
4
+ <meta charset=utf-8>
5
+ <meta name=viewport content="width=device-width">
6
+ <script src="../../../u2/tests/test-init.js" type=module async></script>
7
+
8
+ <link rel=stylesheet href="../../../css/classless/full.css">
9
+ <link rel=stylesheet href="../../../css/classless/aria.css">
10
+ <link rel=stylesheet href="../../../css/classless/simple.css">
11
+
12
+ <script src="../out.js" type=module async></script>
13
+ <link href="../out.css" rel=stylesheet>
14
+
15
+ <body>
16
+
17
+ <section class="main">
18
+ out: <u2-out value="8987.2345" digits="2">8'987.23</u2-out>
19
+ </section>
20
+
21
+ <style class="main">
22
+ u2-out {
23
+ font-size: 2em;
24
+ }
25
+ </style>
@@ -0,0 +1,37 @@
1
+ <!DOCTYPE HTML>
2
+ <html lang=en>
3
+ <head>
4
+ <meta charset=utf-8>
5
+ <meta name=viewport content="width=device-width">
6
+ <title>tests</title>
7
+
8
+ <script src="../../../u2/tests/test-init.js" type=module async></script>
9
+ <script src="../../../u2/auto.js" type=module async></script>
10
+
11
+
12
+ <link rel=stylesheet href="../../../css/classless/full.css">
13
+ <link rel=stylesheet href="../../../css/classless/simple.css">
14
+
15
+
16
+ <script src="../out.js" type=module async></script>
17
+ <link href="../out.css" rel=stylesheet>
18
+
19
+ <body>
20
+
21
+ <section>
22
+
23
+ <figure style="padding:1rem; background:out(--color-light); font-size:1.5rem">
24
+ <h2>localStorage.random</h2>
25
+ <u2-out item="localStorage.random"></u2-out>
26
+ </figure>
27
+
28
+ <figure style="padding:1rem; background:out(--color-light); font-size:1.5rem">
29
+ <h2>navigator.online</h2>
30
+ <u2-out item="navigator.online"></u2-out>
31
+ </figure>
32
+
33
+ <figure style="padding:1rem; background:out(--color-light); font-size:1.5rem">
34
+ <h2>navigator.geolocation.latitude</h2>
35
+ <u2-out item="navigator.geolocation.latitude"></u2-out>
36
+ </figure>
37
+
@@ -0,0 +1,36 @@
1
+ # &lt;u2-parallax-bg&gt; - element
2
+ Parallax backgrounds
3
+
4
+ ## Features
5
+
6
+ - fast!
7
+ - easy, declarative API
8
+ - works for dynamic added elements
9
+ - reduced background-container to the reachable area!
10
+ - css only fallback
11
+ - light weight
12
+
13
+ ## Install
14
+
15
+ ```html
16
+ <link href="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/parallax-bg/parallax-bg.min.css" rel=stylesheet>
17
+ <script src="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/parallax-bg/parallax-bg.min.js" type=module async></script>
18
+ ```
19
+
20
+ ## Demos
21
+
22
+ [demo.html](http://gcdn.li/u2ui/u2@main/el/parallax-bg/tests/demo.html)
23
+ [minimal.html](http://gcdn.li/u2ui/u2@main/el/parallax-bg/tests/minimal.html)
24
+ [test.html](http://gcdn.li/u2ui/u2@main/el/parallax-bg/tests/test.html)
25
+ [visible.html](http://gcdn.li/u2ui/u2@main/el/parallax-bg/tests/visible.html)
26
+
27
+ ## Also interesting
28
+
29
+ Parallax scrolling Elements (not Backgrounds)
30
+ https://github.com/u2ui/parallax.attr
31
+
32
+ ## About
33
+
34
+ - MIT License, Copyright (c) 2022 <u2> (like all repositories in this organization) <br>
35
+ - Suggestions, ideas, finding bugs and making pull requests make us very happy. ♥
36
+
@@ -0,0 +1,13 @@
1
+ .u2-parallax-bg-stage {
2
+ position:relative;
3
+ display: flow-root; /* prevent margin collapse on inner element */
4
+ z-index:0; /* needed? else the parallax-element will go behinde everithing with a stackingcontext? */
5
+ }
6
+
7
+ u2-parallax-bg {
8
+ position:absolute;
9
+ inset: -.4px; /* ugly strange 1px space see demo */
10
+ z-index:-1;
11
+ will-change:transform;
12
+ background-size:cover;
13
+ }