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,105 @@
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
+ <title>Test</title>
9
+
10
+ <link rel=stylesheet href="../../../css/classless/full.css">
11
+ <link rel=stylesheet href="../../../css/classless/simple.css">
12
+
13
+ <link href="../../../el/code/code.css" rel=stylesheet>
14
+ <script src="../../../el/code/code.js" type=module async></script>
15
+
16
+
17
+
18
+ <!--script src="../../../el/tooltip/tooltip.js" type=module async></script>
19
+ <link href="../../../el/tooltip/tooltip.css" rel=stylesheet>
20
+ <script src="../../../el/ico/ico.js" type=module async></script>
21
+ <link href="../../../el/ico/ico.css" rel=stylesheet> -->
22
+
23
+ <style>
24
+ body {
25
+ place-content: initial;
26
+ }
27
+ </style>
28
+
29
+ <link href="../alert.css" rel=stylesheet>
30
+ <script src="../alert.js" type=module async></script>
31
+
32
+ <body>
33
+
34
+ <section>
35
+
36
+ <h2>[variant]</h2>
37
+ <u2-alert open>This is an alert without a variant</u2-alert>
38
+ <u2-alert open variant="success">This is a "success" alert</u2-alert>
39
+ <u2-alert open variant="warn">This is a "warn" alert</u2-alert>
40
+ <u2-alert open variant="error">This is an "error" alert</u2-alert>
41
+ <u2-alert open variant="info">This is an "info" alert</u2-alert>
42
+
43
+ <h2>[dismissable]</h2>
44
+ <u2-alert open dismissable variant=success>This is a dismissable success alert</u2-alert>
45
+
46
+ <h2>[icon]</h2>
47
+ <u2-alert open icon="home">This is a success alert with an icon (home)</u2-alert>
48
+
49
+ <h2>buttons</h2>
50
+ <u2-alert open dismissable>
51
+ This is a dismissable alert with no icon
52
+ <button slot=action>OK</button>
53
+ <button slot=action>Cancel</button>
54
+ </u2-alert>
55
+
56
+ <h2>Toast</h2>
57
+ Show an existing alert as a toast:
58
+ <button onclick="toastDemo.toast()">Show as Toast</button>
59
+ <u2-alert dismissable variant=error id="toastDemo">
60
+ This is a Toast error alert
61
+ <button slot=action>OK</button>
62
+ </u2-alert>
63
+
64
+ <button onclick="u2Toast.info('This is an info toast')">Show info toast</button>
65
+ <button onclick="u2Toast.success('This is a success toast')">Show success toast</button>
66
+ <script type=module>
67
+ import * as toast from '../alert.js';
68
+ window.u2Toast = toast;
69
+ </script>
70
+
71
+
72
+ <u2-code trim editable>
73
+ <style>
74
+ u2-alert {
75
+ border-width: 0 0 0 3px;
76
+ background: color-mix(in srgb, var(--color), #fff 90%);
77
+ box-shadow: none;
78
+ }
79
+ u2-alert::part(close) {
80
+ opacity:0.3;
81
+ border-left: 1px solid #0002;
82
+ &:hover {
83
+ opacity:1;
84
+ }
85
+ }
86
+ u2-alert::part(icon) {
87
+ font-size:2em;
88
+ opacity:.7;
89
+ }
90
+ </style>
91
+ </u2-code>
92
+
93
+ <h2>Playground (everything)</h2>
94
+
95
+ <div id=play>
96
+ <u2-alert open variant="info" dismissable icon="home">
97
+ This is a dismissable success alert with an icon, and a lot of text to make it wrap. More text to make it wrap and just more and more
98
+ <button slot=action>OK</button>
99
+ <button slot=action>Cancel</button>
100
+ </u2-alert>
101
+ </div>
102
+
103
+ <u2-code trim editable element="play"> </u2-code>
104
+
105
+ </section>
@@ -0,0 +1,36 @@
1
+ # &lt;u2-buttongroup&gt; - element
2
+ buttongroup element
3
+
4
+ ## Usage
5
+
6
+ ```html
7
+ <u2-buttongroup>
8
+ <button type=button>Button</button>
9
+ <button type=button>Group</button>
10
+ <button type=button>Component</button>
11
+ </u2-buttongroup>
12
+ ```
13
+
14
+ ```css
15
+ u2-buttongroup:focus-within {
16
+ border-color: green;
17
+ }
18
+ ```
19
+
20
+ ## Install
21
+
22
+ ```html
23
+ <link href="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/buttongroup/buttongroup.min.css" rel=stylesheet>
24
+ <script src="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/buttongroup/buttongroup.min.js" type=module async></script>
25
+ ```
26
+
27
+ ## Demos
28
+
29
+ [minimal.html](http://gcdn.li/u2ui/u2@main/el/buttongroup/tests/minimal.html)
30
+ [test.html](http://gcdn.li/u2ui/u2@main/el/buttongroup/tests/test.html)
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,30 @@
1
+ u2-buttongroup {
2
+ display:inline-flex;
3
+ white-space: nowrap;
4
+ max-width:100%;
5
+ max-width: -webkit-fill-available;
6
+ max-width: -moz-available;
7
+ max-width: stretch;
8
+
9
+ xdisplay:flex;
10
+
11
+ row-gap: .2em;
12
+ --u2-ico-dir:'https://cdn.jsdelivr.net/npm/@material-icons/svg@1.0.11/svg/{icon}/baseline.svg';
13
+ &:not(:defined) {
14
+ flex-wrap:wrap;
15
+ }
16
+ }
17
+
18
+ u2-buttongroup > :not(:last-child) {
19
+ border-right:0;
20
+ border-end-end-radius: 0;
21
+ border-start-end-radius: 0;
22
+ }
23
+ u2-buttongroup > :not(:first-child) {
24
+ border-start-start-radius: 0;
25
+ border-end-start-radius: 0;
26
+ &:is(u2-splitbutton) > button {
27
+ border-start-start-radius: 0;
28
+ border-end-start-radius: 0;
29
+ }
30
+ }
@@ -0,0 +1,56 @@
1
+ // See https://www.w3.org/TR/wai-aria-practices-1.1/#tabpanel
2
+
3
+
4
+ customElements.define('u2-buttongroup', class extends HTMLElement {
5
+ constructor(...args) {
6
+ super(...args);
7
+
8
+
9
+ this.resizeObserver = new ResizeObserver(() => {
10
+ this._build();
11
+ console.log('resize');
12
+ });
13
+ //import ('../splitbutton/splitbutton.js'); // needs the css too
14
+
15
+ }
16
+
17
+ _build() {
18
+ let hasmMore = false;
19
+ const containerWidth = this.clientWidth;
20
+ const items = [...this.children].map(btn => {return {btn, width: btn.clientWidth}}); // todo: clientWidth when flex:0 0 auto
21
+ let fullWidth = items.reduce((acc, item) => acc + item.width, 0);
22
+ while ( fullWidth > containerWidth) {
23
+ const item = items.pop();
24
+ if (item.btn.tagName === 'U2-SPLITBUTTON') continue;
25
+ const li = document.createElement('li');
26
+ li.appendChild(item.btn);
27
+ this.menuButton.querySelector('menu').prepend(li);
28
+ fullWidth -= item.width;
29
+ hasmMore = true;
30
+ }
31
+ if (hasmMore) {
32
+ this.appendChild(this.menuButton);
33
+ }
34
+ }
35
+
36
+ connectedCallback() {
37
+ requestAnimationFrame(() => {
38
+ this.menuButton = this.querySelector(':scope > u2-splitbutton');
39
+ if (!this.menuButton) {
40
+ this.menuButton = document.createElement('u2-splitbutton');
41
+ this.menuButton.innerHTML = `
42
+ <button style="padding-inline:.3em">
43
+ <u2-ico inline icon=more_vert>⋮</u2-ico>
44
+ </button>
45
+ <menu></menu>
46
+ `;
47
+ }
48
+ this._build()
49
+ });
50
+ this.resizeObserver.observe(this);
51
+ }
52
+ disconnectedCallback() {
53
+ this.resizeObserver.unobserve(this);
54
+ }
55
+
56
+ });
@@ -0,0 +1,31 @@
1
+ <!DOCTYPE html>
2
+ <html lang=en>
3
+ <head>
4
+ <meta charset=utf-8>
5
+ <meta name=viewport content="width=device-width">
6
+ <title>test</title>
7
+ <!-- <script src="../../../u2/tests/test-init.js" type=module async></script> -->
8
+
9
+ <link rel=stylesheet href="../../../css/classless/full.css">
10
+ <link rel=stylesheet href="../../../css/classless/simple.css">
11
+
12
+ <link rel=stylesheet href="../buttongroup.css">
13
+ <xscript src="../buttongroup.js" type=module async></script>
14
+
15
+ <body>
16
+
17
+ <section class="main">
18
+
19
+ <u2-buttongroup>
20
+ <button type=button>Button</button>
21
+ <button type=button>Group</button>
22
+ <button type=button>Demo</button>
23
+ </u2-buttongroup>
24
+
25
+ </section>
26
+
27
+ <style>
28
+ u2-buttongroup:focus-within {
29
+ border-color: green;
30
+ }
31
+ </style>
@@ -0,0 +1,83 @@
1
+ <!DOCTYPE html>
2
+ <html lang=en>
3
+ <head>
4
+ <meta charset=utf-8>
5
+ <meta name=viewport content="width=device-width">
6
+ <title>test</title>
7
+ <!-- <script src="../../../u2/tests/test-init.js" type=module async></script> -->
8
+ <script src="../../../u2/auto.js" type=module async></script>
9
+ <link href="../../../css/classless/full.css" rel=stylesheet>
10
+ <link href="../../../css/classless/simple.css" rel=stylesheet>
11
+
12
+ <style>
13
+ body {
14
+ --u2-ico-dir:'https://cdn.jsdelivr.net/npm/@material-icons/svg@1.0.11/svg/{icon}/baseline.svg';
15
+ }
16
+ label {
17
+ display:block;
18
+ margin-block:1rem;
19
+ }
20
+ </style>
21
+
22
+ <link href="../buttongroup.css" rel=stylesheet>
23
+ <script src="../buttongroup.js" type=module async></script>
24
+
25
+ <body>
26
+
27
+ <section style="background:var(--color-light, #eee)">
28
+
29
+ <u2-buttongroup>
30
+ <button type=button>Button</button>
31
+ <button type=button>Group</button>
32
+ <button type=button>Component</button>
33
+ </u2-buttongroup>
34
+
35
+ <h3>Too mutch</h3>
36
+ <u2-buttongroup style="justify-content: center; display:flex;">
37
+ <button type=button>Button 1</button>
38
+ <button type=button>Button 2</button>
39
+ <button type=button>Button 3</button>
40
+ <button type=button>Button 4</button>
41
+ <button type=button>Button 5</button>
42
+ <button type=button>Button 6</button>
43
+ <button type=button>Button 7</button>
44
+ <button type=button>Button 8</button>
45
+ <button type=button>Button 9</button>
46
+ <button type=button>Button 10</button>
47
+ <button type=button>Button 11</button>
48
+ <button type=button>Button 12</button>
49
+ </u2-buttongroup>
50
+
51
+ <h3>Expamles</h3>
52
+ <label>Stepper
53
+ <u2-buttongroup>
54
+ <button type=button style="padding-inline:.2em">
55
+ <u2-ico inline>add</u2-ico>
56
+ </button>
57
+ <input type=number value=0 style="width:3em; text-align:center; border-left:0; appearance: textfield; border:0;">
58
+ <button type=button style="padding-inline:.2em">
59
+ <u2-ico inline>remove</u2-ico>
60
+ </button>
61
+ </u2-buttongroup>
62
+ </label>
63
+
64
+ <u2-buttongroup>
65
+ <button type=button>update</button>
66
+ <u2-splitbutton>
67
+ <button type=button style="padding-inline:.2em">
68
+ <u2-ico inline>more_vert</u2-ico>
69
+ </button>
70
+ <menu>
71
+ <li><button>update all</button>
72
+ <li><button>update selected</button>
73
+ </menu>
74
+ </u2-splitbutton>
75
+ </u2-buttongroup>
76
+
77
+
78
+
79
+ </section>
80
+
81
+ <style>
82
+
83
+ </style>
@@ -0,0 +1,41 @@
1
+ # &lt;u2-bytes&gt; - element
2
+ Displays formatted bytess
3
+
4
+ ## Usage
5
+
6
+ ```html
7
+ <u2-bytes>89887987</u2-bytes>
8
+ ```
9
+
10
+ ## Install
11
+
12
+ ```html
13
+ <link href="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/bytes/bytes.min.css" rel=stylesheet>
14
+ <script src="https://cdn.jsdelivr.net/gh/u2ui/u2@x.x.x/el/bytes/bytes.min.js" type=module async></script>
15
+ ```
16
+
17
+ ## Demos
18
+
19
+ [minimal.html](http://gcdn.li/u2ui/u2@main/el/bytes/tests/minimal.html)
20
+ [test.html](http://gcdn.li/u2ui/u2@main/el/bytes/tests/test.html)
21
+
22
+ ## Attributes
23
+
24
+ Attribute | Options | Default | Description
25
+ --- | --- | --- | ---
26
+ `lang` | language | parent lang | If not present navigator.language is used
27
+ `value` | bytes | | The bytes to display
28
+ `digits` | bytes | | The bytes of digits after the decimal point
29
+ `currency` | string | | The currency of the bytes
30
+ `unit` | string | | The unit of the bytes
31
+ `percent` | boolean | | The bytes is a percentage
32
+
33
+ `currency`, `unit` and `percent` are mutually exclusive.
34
+
35
+ innerHTML is evaluated as value if value-attribute is not present, else its simply a fallback for when no javascript is available
36
+
37
+ ## About
38
+
39
+ - MIT License, Copyright (c) 2022 <u2> (like all repositories in this organization) <br>
40
+ - Suggestions, ideas, finding bugs and making pull requests make us very happy. ♥
41
+
@@ -0,0 +1,6 @@
1
+ u2-bytes {
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,97 @@
1
+
2
+ class Bytes 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.value;
18
+ if (value === null) return this.outEl.innerHTML = '-';
19
+
20
+ const digits = this.getAttribute('digits') || 3;
21
+ const locales = localesFromElement(this);
22
+ const formatter = new Intl.NumberFormat(locales, {
23
+ minimumFractionDigits: 0,
24
+ maximumFractionDigits: 1,
25
+ maximumSignificantDigits: digits,
26
+ });
27
+
28
+ const {number, compact, unit, space} = convertBytes(value, {useBinaryUnits: false, locale: locales[0]});
29
+ let html = formatter.formatToParts(number).map(part => `<span part="${part.type}">${part.value}</span>`).join('');
30
+ if (space !== '') html += `<span part="literal">${space}</span>`;
31
+ html += `<span part="compact">${compact}</span>`;
32
+ html += `<span part="unit">${unit}</span>`;
33
+
34
+ this.outEl.innerHTML = html;
35
+ }
36
+ static observedAttributes = ['digits','value','lang'];
37
+
38
+ attributeChangedCallback(name, oldVal, newVal) {
39
+ if (oldVal === newVal) return;
40
+ this.render();
41
+ }
42
+ set value(val) {
43
+ this.setAttribute('value', val);
44
+ }
45
+ get value() {
46
+ let value = this.getAttribute('value') ?? this.innerHTML;
47
+ value = value.trim();
48
+ if (value==='') return null;
49
+ return parseFloat(value);
50
+ }
51
+ }
52
+
53
+ customElements.define('u2-bytes', Bytes);
54
+
55
+
56
+ function localesFromElement(el) {
57
+ let langEl = el.closest('[lang]')||document.documentElement;
58
+ const locale = langEl.lang || navigator.language;
59
+ return [locale, ...navigator.languages];
60
+ }
61
+
62
+ function convertBytes(bytes, options) {
63
+ const { binary = false } = options;
64
+
65
+ const locale = options.locale || 'en';
66
+ const lang = locale.substring(0, 2);
67
+
68
+ const base = binary ? 1024 : 1000;
69
+ let compact = binary ? ["", "Ki", "Mi", "Gi", "Ti", "Pi", "Ei", "Zi", "Yi"] : ["", "k", "M", "G", "T", "P", "E", "Z", "Y"];
70
+ // kyrillisch
71
+ if (lang === 'ru' || lang === 'uk' || lang === 'be') {
72
+ compact = binary ? ["", "Ки", "Ми", "Ги", "Ти", "Пи", "Эи", "Зи", "Йи"] : ["", "к", "М", "Г", "Т", "П", "Э", "З", "Й"];
73
+ }
74
+
75
+ const i = Math.floor(Math.log(Math.abs(bytes)) / Math.log(base));
76
+
77
+ let unit = 'B';
78
+ if (i === 0) {
79
+ unit = 'byte';
80
+ if (lang === 'de') unit = 'Byte';
81
+ }
82
+ if (lang === 'fr') unit = 'o';
83
+ if (lang === 'ru') unit = 'б';
84
+
85
+ let space = '\u00A0'; // nbsp
86
+ if (lang === 'fr') space = '\u202f';
87
+ if (lang === 'jp') space = '';
88
+ if (lang === 'cn') space = '';
89
+ if (lang === 'zh') space = '';
90
+
91
+ return {
92
+ number: bytes / Math.pow(base, i),
93
+ space: space,
94
+ compact: compact[i],
95
+ unit: unit,
96
+ };
97
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "README.md",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "bytes.js",
8
+ "declarations": [
9
+ {
10
+ "kind": "class",
11
+ "description": "Displays formatted bytes",
12
+ "name": "u2-bytes",
13
+ "members": [
14
+ {
15
+ "kind": "field",
16
+ "description": "Set or get the value of the bytes",
17
+ "name": "value"
18
+ }
19
+ ],
20
+ "events": [],
21
+ "attributes": [
22
+ {
23
+ "name": "value",
24
+ "description": "The bytes to format"
25
+ },{
26
+ "name": "lang",
27
+ "description": "The language to use for formatting the bytes",
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 bytes of digits to display after the decimal point",
32
+ "u2-type": "bytes"
33
+ }
34
+ ],
35
+ "cssProperties": [],
36
+ "cssParts": [
37
+ {
38
+ "name": "compact",
39
+ "description": "The exponent in 'long' or 'short' form, depending on how compactDisplay (which defaults to short) is specified when notation is set to compact."
40
+ },{
41
+ "name": "decimal",
42
+ "description": "The decimal separator string ('.')."
43
+ },{
44
+ "name": "fraction",
45
+ "description": "The fraction bytes."
46
+ },{
47
+ "// name": "group",
48
+ "description": "The group separator string (',')."
49
+ },{
50
+ "// name": "infinity",
51
+ "description": "The Infinity string ('∞')."
52
+ },{
53
+ "name": "integer",
54
+ "description": "The integer bytes."
55
+ },{
56
+ "name": "literal",
57
+ "description": "Any literal strings or whitespace in the formatted bytes."
58
+ },{
59
+ "name": "minusSign",
60
+ "description": "The minus sign string ('-')."
61
+ },{
62
+ "// name": "nan",
63
+ "description": "The NaN string ('NaN')."
64
+ },{
65
+ "// name": "plusSign",
66
+ "description": "The plus sign string ('+')."
67
+ },{
68
+ "name": "unit",
69
+ "description": "The unit string, such as the 'l' or 'litres', depending on how unitDisplay is specified."
70
+ },{
71
+ "// name": "unknown",
72
+ "description": "The string for unknown type results."
73
+ }
74
+ ],
75
+ "superclass": {
76
+ "name": "HTMLElement"
77
+ },
78
+ "tagName": "u2-bytes",
79
+ "customElement": true
80
+ }
81
+ ],
82
+ "exports": [
83
+ {
84
+ "kind": "custom-element-definition",
85
+ "name": "u2-bytes",
86
+ "declaration": {
87
+ "name": "u2-bytes",
88
+ "module": "bytes.js"
89
+ }
90
+ }
91
+ ]
92
+ }
93
+ ]
94
+ }
95
+
@@ -0,0 +1,19 @@
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="../bytes.js" type=module async></script>
13
+ <link href="../bytes.css" rel=stylesheet>
14
+
15
+ <body>
16
+
17
+ <section class="main">
18
+ <u2-bytes>89887987</u2-bytes>
19
+ </section>