├── .aiignore ├── .gitattributes ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── deploy-keycdn-dev.yaml │ ├── deploy-keycdn-master.yaml │ ├── draft-release.yml │ └── verify.yml ├── .gitignore ├── .junie └── guidelines.md ├── .npmignore ├── .travis.yml ├── CHANGELOG-HISTORY.md ├── CHANGELOG.md ├── CLA.docx ├── CLA.txt ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CREDITS.md ├── LICENSE ├── README.md ├── __html__ ├── accordion.html ├── action-button.html ├── activity.html ├── adblock.html ├── analog-clock.html ├── animate-border.html ├── any.html ├── app-bar.html ├── audio-button.html ├── audio-player.html ├── bottom-sheet.html ├── breadcrumbs.html ├── bulls.html ├── button-group.html ├── button.html ├── calendar-picker.html ├── calendar-wide.html ├── calendar-with-time.html ├── calendar.html ├── cards.html ├── carousel.html ├── charms.html ├── chat.html ├── checkbox.html ├── chips.html ├── clock.html ├── code.html ├── collapse.html ├── color-palette.html ├── color-picker.html ├── color-selector.html ├── colors.html ├── container.html ├── context-menu.html ├── cookie-disclaimer.html ├── cookie.html ├── countdown.html ├── counter.html ├── cube.html ├── custom-checkbox.html ├── d-menu.html ├── data │ ├── countries.json │ ├── modem.mp3 │ ├── ocean.mp4 │ ├── song-1.mp3 │ └── table.json ├── date-picker.html ├── datetime.html ├── dialog.html ├── directive.html ├── directive2.html ├── directive3.html ├── donut.html ├── double-select-box.html ├── double-slider.html ├── drag-items.html ├── draggable-boundary-restriction.html ├── draggable.html ├── dropdown-button.html ├── dropdown.html ├── eval.html ├── file.html ├── form.html ├── gauge.html ├── gradient-box.html ├── gradients.html ├── gravatar.html ├── grid-new.html ├── grid.html ├── hint.html ├── hotkey.html ├── hover-box.html ├── html-container.html ├── i18n.html ├── icons.html ├── image-box.html ├── image-compare.html ├── image-grid.html ├── image-magnifier.html ├── image-placeholder.html ├── images │ ├── bacon.jpg │ ├── bg-1.jpg │ ├── bg-1.webp │ ├── bg-dark.avif │ ├── bg-light.avif │ ├── doom.png │ ├── doom.webp │ ├── gerb-ukraine.svg │ ├── gogen.jpg │ ├── gradient.jpg │ ├── klimt.jpg │ ├── kuning.jpg │ ├── lion.webp │ ├── munk.jpg │ ├── panther.webp │ ├── picasso.jpg │ ├── puma.webp │ ├── sezan.jpg │ ├── tiger-gray.jpg │ ├── tiger.webp │ ├── windows.png │ └── windows.svg ├── info-box.html ├── input-mask.html ├── input.html ├── keypad.html ├── lightbox.html ├── list.html ├── lists.html ├── listview.html ├── load-metro.html ├── marquee.html ├── master.html ├── material-input.html ├── material-tabs.html ├── model.html ├── navview.html ├── navview2.html ├── notify.html ├── package-manager.html ├── page-control.html ├── pagination.html ├── panel.html ├── popover.html ├── progress.html ├── radio.html ├── rating.html ├── remark.html ├── remote-dataset.html ├── remote-table.html ├── resizable.html ├── resizer.html ├── ribbon-menu.html ├── ripple.html ├── scrollbar.html ├── select-2.html ├── select-options.html ├── select-{data}.html ├── select-{source}.html ├── select.html ├── shadow-text.html ├── shadow.html ├── shortcuts.html ├── sidebar.html ├── sidenav-counter.html ├── sidenav.html ├── slider.html ├── sorter.html ├── spinner.html ├── splashscreen.html ├── splitter.html ├── stepper.html ├── storage.html ├── streamer.html ├── streamer.json ├── stroke-color.html ├── swipe.html ├── switch.html ├── t-menu.html ├── table-static.html ├── table.html ├── table2.html ├── tabs-material.html ├── tabs.html ├── tag-input.html ├── template.html ├── textarea.html ├── theme-switcher.html ├── tile.html ├── time-picker.html ├── timeline.html ├── toast.html ├── tokenizer.html ├── touch.html ├── treeview-menu.html ├── treeview.html ├── treeview2.html ├── typer.html ├── typography.html ├── v-menu.html ├── validator.html ├── vegas.html ├── video-player.html ├── viewport-check.html ├── window.html ├── wizard-classic.html └── wizard.html ├── __tests__ ├── accordion.test.js ├── action-button.test.js ├── activity.test.js ├── adblock.test.js ├── analog-clock.test.js ├── animate-border.test.js ├── any.test.js ├── app-bar.test.js ├── audio-button.test.js ├── bottom-sheet.test.js ├── breadcrumbs.test.js ├── bulls.test.js ├── button-group.test.js ├── button.test.js ├── calendar-picker.test.js ├── calendar-wide.test.js ├── calendar-with-time.test.js ├── calendar.test.js ├── cards.test.js ├── carousel.test.js ├── charms.test.js ├── chat.test.js ├── checkbox.test.js ├── chips.test.js ├── clock.test.js ├── code.test.js ├── collapse.test.js ├── color-palette.test.js ├── color-picker.test.js ├── color-selector.test.js ├── colors.test.js ├── container.test.js ├── context-menu.test.js ├── cookie-disclaimer.test.js ├── cookie.test.js ├── countdown.test.js ├── counter.test.js ├── cube.test.js ├── custom-checkbox.test.js ├── d-menu.test.js ├── date-picker.test.js ├── datetime.test.js ├── dialog.test.js ├── directive.test.js ├── directive2.test.js ├── directive3.test.js ├── donut.test.js ├── double-select-box.test.js ├── double-slider.test.js ├── drag-items.test.js ├── draggable-boundary-restriction.test.js ├── draggable.test.js ├── dropdown-button.test.js ├── dropdown.test.js ├── eval.test.js ├── file.test.js ├── form.test.js ├── gauge.test.js ├── gradient-box.test.js ├── gradients.test.js ├── gravatar.test.js ├── grid-new.test.js ├── grid.test.js ├── hint.test.js ├── hotkey.test.js ├── hover-box.test.js ├── html-container.test.js ├── i18n.test.js ├── icons.test.js ├── image-box.test.js ├── image-compare.test.js ├── image-grid.test.js ├── image-magnifier.test.js ├── image-placeholder.test.js ├── info-box.test.js ├── input-mask.test.js ├── input.test.js ├── keypad.test.js ├── lightbox.test.js ├── list.test.js ├── listview.test.js ├── load-metro.test.js ├── marquee.test.js ├── master.test.js ├── material-input.test.js ├── material-tabs.test.js ├── model.test.js ├── navview.test.js ├── navview2.test.js ├── notify.test.js ├── package-manager.test.js ├── page-control.test.js ├── pagination.test.js ├── panel.test.js ├── popover.test.js ├── progress.test.js ├── radio.test.js ├── rating.test.js ├── remark.test.js ├── remote-dataset.test.js ├── remote-table.test.js ├── resizable.test.js ├── resizer.test.js ├── ribbon-menu.test.js ├── ripple.test.js ├── scrollbar.test.js ├── select-2.test.js ├── select-options.test.js ├── select-{data}.test.js ├── select-{source}.test.js ├── select.test.js ├── shadow-text.test.js ├── shadow.test.js ├── shortcuts.test.js ├── sidebar.test.js ├── sidenav-counter.test.js ├── sidenav.test.js ├── slider.test.js ├── sorter.test.js ├── spinner.test.js ├── splashscreen.test.js ├── splitter.test.js ├── stepper.test.js ├── storage.test.js ├── streamer.test.js ├── stroke-color.test.js ├── swipe.test.js ├── switch.test.js ├── t-menu.test.js ├── table-static.test.js ├── table.test.js ├── table2.test.js ├── tabs-material.test.js ├── tabs.test.js ├── tag-input.test.js ├── template.test.js ├── textarea.test.js ├── theme-switcher.test.js ├── tile.test.js ├── time-picker.test.js ├── timeline.test.js ├── toast.test.js ├── tokenizer.test.js ├── touch.test.js ├── treeview-menu.test.js ├── treeview.test.js ├── treeview2.test.js ├── typer.test.js ├── typography.test.js ├── v-menu.test.js ├── validator.test.js ├── vegas.test.js ├── video-player.test.js ├── viewport-check.test.js ├── window.test.js ├── wizard-classic.test.js └── wizard.test.js ├── biome.json ├── build.js ├── icon.png ├── icon.svg ├── icons ├── core │ ├── fonts │ │ ├── metro-ui-core.svg │ │ ├── metro-ui-core.ttf │ │ └── metro-ui-core.woff │ ├── selection.json │ └── style.css └── index.html ├── lib ├── icons.css ├── metro.all.css ├── metro.all.css.map ├── metro.all.js ├── metro.all.js.map ├── metro.css ├── metro.css.map ├── metro.js └── metro.js.map ├── metroui.nuspec ├── package-lock.json ├── package.json ├── source ├── colors-css │ ├── README.md │ ├── accent.less │ ├── background.less │ ├── border.less │ ├── foreground.less │ ├── gradients.less │ ├── index.js │ ├── opacity.less │ ├── outline.less │ ├── pseudo.less │ ├── ribbed.less │ ├── stroke.less │ ├── svg.less │ └── vars.less ├── common-css │ ├── ani.less │ ├── base-theme.less │ ├── border.less │ ├── cursors.less │ ├── debug.less │ ├── display.less │ ├── embed.less │ ├── flex.less │ ├── float.less │ ├── font.less │ ├── images.less │ ├── index.js │ ├── lists.less │ ├── media.less │ ├── position-ext.less │ ├── position.less │ ├── print.less │ ├── sizing.less │ ├── spacing.less │ ├── typography.less │ ├── utils.less │ └── z-index.less ├── common-js │ ├── README.md │ ├── index.js │ └── utilities.js ├── components │ ├── accordion │ │ ├── README.md │ │ ├── accordion.js │ │ ├── accordion.less │ │ ├── accordion.test.js │ │ └── index.js │ ├── action-button │ │ ├── README.md │ │ ├── action-button.js │ │ ├── action-button.less │ │ └── index.js │ ├── activity │ │ ├── README.md │ │ ├── activity.js │ │ ├── activity.less │ │ └── index.js │ ├── adblock │ │ ├── README.md │ │ ├── adblock.js │ │ └── index.js │ ├── analog-clock │ │ ├── README.md │ │ ├── analog-clock.js │ │ ├── analog-clock.less │ │ └── index.js │ ├── app-bar │ │ ├── README.md │ │ ├── app-bar.js │ │ ├── app-bar.less │ │ └── index.js │ ├── audio-button │ │ ├── README.md │ │ ├── audio-button.js │ │ └── index.js │ ├── audio-player │ │ ├── README.md │ │ ├── audio-player.js │ │ ├── audio-player.less │ │ └── index.js │ ├── badges │ │ ├── README.md │ │ ├── badges.less │ │ └── index.js │ ├── box │ │ ├── README.md │ │ ├── box.less │ │ └── index.js │ ├── breadcrumbs │ │ ├── README.md │ │ ├── breadcrumbs.less │ │ └── index.js │ ├── bulls │ │ ├── README.md │ │ ├── bulls.js │ │ └── index.js │ ├── button-group │ │ ├── README.md │ │ ├── button-group.js │ │ ├── button-group.less │ │ └── index.js │ ├── button │ │ ├── README.md │ │ ├── button.less │ │ └── index.js │ ├── calendar │ │ ├── README.md │ │ ├── calendar.js │ │ ├── calendar.less │ │ └── index.js │ ├── calendarpicker │ │ ├── README.md │ │ ├── calendarpicker.js │ │ ├── calendarpicker.less │ │ └── index.js │ ├── cards │ │ ├── README.md │ │ ├── cards.less │ │ └── index.js │ ├── carousel │ │ ├── README.md │ │ ├── animations.js │ │ ├── carousel.js │ │ ├── carousel.less │ │ └── index.js │ ├── charms │ │ ├── README.md │ │ ├── charms.js │ │ ├── charms.less │ │ └── index.js │ ├── chart-card │ │ ├── README.md │ │ ├── chart-card.less │ │ └── index.js │ ├── chat │ │ ├── README.md │ │ ├── chat.js │ │ ├── chat.less │ │ └── index.js │ ├── checkbox │ │ ├── README.md │ │ ├── checkbox.js │ │ ├── checkbox.less │ │ └── index.js │ ├── chips │ │ ├── README.md │ │ ├── chips.less │ │ └── index.js │ ├── cloak │ │ ├── README.md │ │ ├── cloak.less │ │ └── index.js │ ├── clock │ │ ├── README.md │ │ ├── clock.js │ │ ├── clock.less │ │ └── index.js │ ├── collapse │ │ ├── README.md │ │ ├── collapse.js │ │ └── index.js │ ├── color-picker │ │ ├── README.md │ │ ├── color-picker.js │ │ ├── color-picker.less │ │ └── index.js │ ├── color-selector │ │ ├── README.md │ │ ├── color-selector.js │ │ ├── color-selector.less │ │ └── index.js │ ├── command-button │ │ ├── README.md │ │ ├── command-button.less │ │ └── index.js │ ├── container │ │ ├── README.md │ │ ├── container.less │ │ └── index.js │ ├── context-menu │ │ ├── README.md │ │ ├── context-menu.js │ │ ├── context-menu.less │ │ └── index.js │ ├── cookie-disclaimer │ │ ├── README.md │ │ ├── cookie-disclaimer.js │ │ ├── cookie-disclaimer.less │ │ └── index.js │ ├── cookie │ │ ├── README.md │ │ ├── cookie.js │ │ └── index.js │ ├── countdown │ │ ├── README.md │ │ ├── countdown.js │ │ ├── countdown.less │ │ └── index.js │ ├── counter │ │ ├── README.md │ │ ├── counter.js │ │ └── index.js │ ├── cube │ │ ├── README.md │ │ ├── cube.js │ │ ├── cube.less │ │ └── index.js │ ├── custom-checkbox │ │ ├── README.md │ │ ├── custom-checkbox.js │ │ ├── custom-checkbox.less │ │ └── index.js │ ├── d-menu │ │ ├── README.md │ │ ├── d-menu.less │ │ └── index.js │ ├── datepicker │ │ ├── README.md │ │ ├── datepicker.js │ │ ├── datepicker.less │ │ └── index.js │ ├── dialog │ │ ├── README.md │ │ ├── dialog.js │ │ ├── dialog.less │ │ └── index.js │ ├── directive │ │ ├── README.md │ │ ├── directive.js │ │ ├── directive.less │ │ └── index.js │ ├── donut │ │ ├── README.md │ │ ├── donut.js │ │ ├── donut.less │ │ └── index.js │ ├── double-select-box │ │ ├── README.md │ │ ├── double-select-box.js │ │ ├── double-select-box.less │ │ └── index.js │ ├── double-slider │ │ ├── README.md │ │ ├── double-slider.js │ │ └── index.js │ ├── drag-items │ │ ├── README.md │ │ ├── drag-items.js │ │ ├── drag-items.less │ │ └── index.js │ ├── draggable │ │ ├── README.md │ │ ├── draggable.js │ │ ├── draggable.less │ │ └── index.js │ ├── drop-menu │ │ ├── README.md │ │ ├── drop-menu.js │ │ ├── drop-menu.less │ │ └── index.js │ ├── dropdown-button │ │ ├── README.md │ │ ├── dropdown-button.less │ │ └── index.js │ ├── dropdown │ │ ├── README.md │ │ ├── dropdown.js │ │ ├── dropdown.less │ │ └── index.js │ ├── eval │ │ ├── README.md │ │ ├── eval.js │ │ └── index.js │ ├── export │ │ ├── README.md │ │ ├── export.js │ │ └── index.js │ ├── file-input │ │ ├── README.md │ │ ├── file.js │ │ ├── file.less │ │ └── index.js │ ├── flip-card │ │ ├── README.md │ │ ├── flip-card.less │ │ └── index.js │ ├── form │ │ ├── README.md │ │ ├── form.less │ │ └── index.js │ ├── gauge │ │ ├── README.md │ │ ├── gauge.js │ │ ├── gauge.less │ │ └── index.js │ ├── gradient-box │ │ ├── README.md │ │ ├── gradient-box.js │ │ └── index.js │ ├── gravatar │ │ ├── README.md │ │ ├── gravatar.js │ │ └── index.js │ ├── grid │ │ ├── README.md │ │ ├── grid-old.less │ │ ├── grid.less │ │ └── index.js │ ├── h-menu │ │ ├── README.md │ │ ├── h-menu.less │ │ └── index.js │ ├── hamburger │ │ ├── README.md │ │ ├── hamburger.less │ │ └── index.js │ ├── hero │ │ ├── README.md │ │ ├── hero.less │ │ └── index.js │ ├── hint │ │ ├── README.md │ │ ├── hint.js │ │ ├── hint.less │ │ └── index.js │ ├── hotkey │ │ ├── README.md │ │ ├── hotkey.js │ │ └── index.js │ ├── hover-box │ │ ├── README.md │ │ ├── hover-box.js │ │ ├── hover-box.less │ │ └── index.js │ ├── html-container │ │ ├── README.md │ │ ├── html-container.js │ │ └── index.js │ ├── icon-box │ │ ├── README.md │ │ ├── icon-box.less │ │ └── index.js │ ├── image-box │ │ ├── README.md │ │ ├── image-box.js │ │ └── index.js │ ├── image-button │ │ ├── README.md │ │ ├── image-button.less │ │ └── index.js │ ├── image-compare │ │ ├── README.md │ │ ├── image-compare.js │ │ ├── image-compare.less │ │ └── index.js │ ├── image-grid │ │ ├── README.md │ │ ├── image-grid.less │ │ ├── image-grig.js │ │ └── index.js │ ├── image-magnifier │ │ ├── README.md │ │ ├── image-magnifier.js │ │ ├── image-magnifier.less │ │ └── index.js │ ├── image-placeholder │ │ ├── README.md │ │ ├── image-placeholder.js │ │ └── index.js │ ├── index.js │ ├── info-box │ │ ├── README.md │ │ ├── index.js │ │ ├── info-box.js │ │ └── info-box.less │ ├── info-button │ │ ├── README.md │ │ ├── index.js │ │ └── info-button.less │ ├── info-panel │ │ ├── README.md │ │ ├── index.js │ │ └── info-panel.less │ ├── input-common │ │ ├── README.md │ │ ├── index.js │ │ └── input-common.less │ ├── input-mask │ │ ├── README.md │ │ ├── index.js │ │ └── input-mask.js │ ├── input-material │ │ ├── README.md │ │ ├── index.js │ │ ├── input-material.js │ │ └── input-material.less │ ├── input │ │ ├── README.md │ │ ├── index.js │ │ ├── input.js │ │ └── input.less │ ├── keypad │ │ ├── README.md │ │ ├── index.js │ │ ├── keypad.js │ │ └── keypad.less │ ├── lightbox │ │ ├── README.md │ │ ├── index.js │ │ ├── lightbox.js │ │ └── lightbox.less │ ├── list │ │ ├── README.md │ │ ├── index.js │ │ ├── list.js │ │ └── list.less │ ├── listview │ │ ├── README.md │ │ ├── index.js │ │ ├── listview.js │ │ └── listview.less │ ├── marquee │ │ ├── README.md │ │ ├── index.js │ │ ├── marquee.js │ │ └── marquee.less │ ├── master │ │ ├── README.md │ │ ├── index.js │ │ ├── master.js │ │ └── master.less │ ├── md5 │ │ ├── README.md │ │ ├── index.js │ │ └── md5.js │ ├── media-player │ │ ├── README.md │ │ ├── index.js │ │ └── media-player.less │ ├── navview │ │ ├── README.md │ │ ├── index.js │ │ ├── navview.js │ │ └── navview.less │ ├── notify │ │ ├── README.md │ │ ├── index.js │ │ ├── notify.js │ │ └── notify.less │ ├── overlay │ │ ├── README.md │ │ ├── index.js │ │ └── overlay.less │ ├── package-manager │ │ ├── README.md │ │ ├── index.js │ │ ├── package-manager.js │ │ └── package-manager.less │ ├── page-control │ │ ├── README.md │ │ ├── index.js │ │ ├── pagecontrol.js │ │ └── pagecontrol.less │ ├── pagination │ │ ├── README.md │ │ ├── index.js │ │ ├── pagination.js │ │ └── pagination.less │ ├── panel │ │ ├── README.md │ │ ├── index.js │ │ ├── panel.js │ │ └── panel.less │ ├── popover │ │ ├── README.md │ │ ├── index.js │ │ ├── popover.js │ │ └── popover.less │ ├── progress │ │ ├── README.md │ │ ├── index.js │ │ ├── progress.js │ │ └── progress.less │ ├── radio │ │ ├── README.md │ │ ├── index.js │ │ ├── radio.js │ │ └── radio.less │ ├── rating │ │ ├── README.md │ │ ├── index.js │ │ ├── rating.js │ │ └── rating.less │ ├── remark │ │ ├── README.md │ │ ├── index.js │ │ └── remark.less │ ├── remote-dataset │ │ ├── README.md │ │ ├── index.js │ │ ├── remote-dataset.js │ │ └── remote-dataset.less │ ├── remote-table │ │ ├── README.md │ │ ├── index.js │ │ ├── remote-table.js │ │ └── remote-table.less │ ├── resizable │ │ ├── README.md │ │ ├── index.js │ │ ├── resizable.js │ │ └── resizeable.less │ ├── resizer │ │ ├── README.md │ │ ├── index.js │ │ └── resizer.js │ ├── ribbon-menu │ │ ├── README.md │ │ ├── index.js │ │ ├── ribbon-menu.js │ │ └── ribbon-menu.less │ ├── ribbon │ │ ├── README.md │ │ ├── index.js │ │ └── ribbon.less │ ├── ripple │ │ ├── README.md │ │ ├── index.js │ │ ├── ripple.js │ │ └── ripple.less │ ├── scrollbar │ │ ├── README.md │ │ ├── index.js │ │ └── scrollbar.less │ ├── select │ │ ├── README.md │ │ ├── index.js │ │ ├── select.js │ │ └── select.less │ ├── shadows │ │ ├── README.md │ │ ├── index.js │ │ └── shadows.less │ ├── shortcut │ │ ├── README.md │ │ ├── index.js │ │ └── shortcut.less │ ├── sidebar │ │ ├── README.md │ │ ├── index.js │ │ ├── sidebar.js │ │ └── sidebar.less │ ├── sidenav-counter │ │ ├── README.md │ │ ├── index.js │ │ ├── sidenav.js │ │ └── sidenav.less │ ├── sidenav-m3 │ │ ├── README.md │ │ ├── index.js │ │ └── sidenav-m3.less │ ├── sidenav-simple │ │ ├── README.md │ │ ├── index.js │ │ └── sidenav-simple.less │ ├── skill-box │ │ ├── README.md │ │ ├── index.js │ │ └── skill-box.less │ ├── slider │ │ ├── README.md │ │ ├── index.js │ │ ├── slider.js │ │ └── slider.less │ ├── social-box │ │ ├── README.md │ │ ├── index.js │ │ └── social-box.less │ ├── sorter │ │ ├── README.md │ │ ├── index.js │ │ └── sorter.js │ ├── spinner │ │ ├── README.md │ │ ├── index.js │ │ ├── spinner.js │ │ └── spinner.less │ ├── split-button │ │ ├── README.md │ │ ├── index.js │ │ └── split-button.less │ ├── splitter │ │ ├── README.md │ │ ├── index.js │ │ ├── splitter.js │ │ └── splitter.less │ ├── stepper │ │ ├── README.md │ │ ├── index.js │ │ ├── stepper.js │ │ └── stepper.less │ ├── storage │ │ ├── README.md │ │ ├── index.js │ │ └── storage.js │ ├── streamer │ │ ├── README.md │ │ ├── index.js │ │ ├── streamer.js │ │ └── streamer.less │ ├── swipe │ │ ├── README.md │ │ ├── index.js │ │ └── swipe.js │ ├── switch │ │ ├── README.md │ │ ├── index.js │ │ ├── switch.js │ │ └── switch.less │ ├── t-menu │ │ ├── README.md │ │ ├── index.js │ │ └── t-menu.less │ ├── table │ │ ├── README.md │ │ ├── index.js │ │ ├── table.js │ │ └── table.less │ ├── tabs-material │ │ ├── README.md │ │ ├── index.js │ │ ├── tabs-material.js │ │ └── tabs-material.less │ ├── tabs │ │ ├── README.md │ │ ├── index.js │ │ ├── tabs.js │ │ └── tabs.less │ ├── tag-input │ │ ├── README.md │ │ ├── index.js │ │ ├── tag-input.js │ │ └── tag-input.less │ ├── tag │ │ ├── README.md │ │ ├── index.js │ │ └── tag.less │ ├── task-bar │ │ ├── README.md │ │ ├── index.js │ │ ├── task-bar.js │ │ └── task-bar.less │ ├── template │ │ ├── README.md │ │ ├── index.js │ │ └── template.js │ ├── textarea │ │ ├── README.md │ │ ├── index.js │ │ ├── textarea.js │ │ └── textarea.less │ ├── theme-switcher │ │ ├── README.md │ │ ├── index.js │ │ ├── theme-switcher.js │ │ └── theme-switcher.less │ ├── tile │ │ ├── README.md │ │ ├── index.js │ │ ├── tile.js │ │ └── tile.less │ ├── timeline │ │ ├── README.md │ │ ├── index.js │ │ └── timeline.less │ ├── timepicker │ │ ├── README.md │ │ ├── index.js │ │ ├── timepicker.js │ │ └── timepicker.less │ ├── toast │ │ ├── README.md │ │ ├── index.js │ │ ├── toast.js │ │ └── toast.less │ ├── tokenizer │ │ ├── README.md │ │ ├── index.js │ │ └── tokenizer.js │ ├── toolbar │ │ ├── README.md │ │ ├── index.js │ │ └── toolbar.less │ ├── transform-button │ │ ├── README.md │ │ ├── index.js │ │ └── transform-button.less │ ├── treeview │ │ ├── README.md │ │ ├── index.js │ │ ├── treeview.js │ │ └── treeview.less │ ├── typer │ │ ├── README.md │ │ ├── index.js │ │ ├── typer.js │ │ └── typer.less │ ├── v-menu │ │ ├── README.md │ │ ├── index.js │ │ └── v-menu.less │ ├── validator │ │ ├── README.md │ │ ├── index.js │ │ └── validator.js │ ├── vegas │ │ ├── README.md │ │ ├── index.js │ │ ├── vegas.js │ │ └── vegas.less │ ├── video-player │ │ ├── README.md │ │ ├── index.js │ │ ├── video-player.js │ │ └── video-player.less │ ├── viewport-check │ │ ├── README.md │ │ ├── index.js │ │ └── viewport-check.js │ ├── wheelpicker │ │ ├── README.md │ │ ├── index.js │ │ └── wheelpicker.less │ ├── window │ │ ├── README.md │ │ ├── index.js │ │ ├── window.js │ │ └── window.less │ ├── wizard-classic │ │ ├── README.md │ │ ├── index.js │ │ ├── wizard-classic.js │ │ └── wizard-classic.less │ ├── wizard │ │ ├── README.md │ │ ├── index.js │ │ ├── wizard.js │ │ └── wizard.less │ └── working-tree │ │ ├── README.md │ │ ├── index.js │ │ ├── working-tree.js │ │ └── working-tree.less ├── core │ ├── global.js │ ├── index.js │ ├── metro.js │ └── props.js ├── datetime │ └── index.js ├── default.js ├── dom │ └── index.js ├── extensions │ ├── array.js │ ├── index.js │ ├── number.js │ └── string.js ├── farbe │ └── index.js ├── guardian │ └── index.js ├── hooks │ └── index.js ├── html │ └── index.js ├── i18n.js ├── i18n │ ├── de.js │ ├── en.js │ ├── es-ES.js │ ├── es.js │ ├── fr.js │ ├── hi.js │ ├── index.js │ ├── it.js │ ├── pl.js │ ├── pt-BR.js │ ├── pt.js │ ├── uk.js │ └── zh.js ├── icons.js ├── icons │ ├── base.less │ ├── font.less │ ├── icons.less │ └── index.js ├── include │ ├── default-icons.less │ ├── mixins.less │ └── vars.less ├── index.js ├── model │ └── index.js ├── reset │ ├── index.js │ └── reset.less ├── router │ └── index.js ├── runtime.js ├── string │ └── index.js └── template │ └── plugin.js ├── tea.yaml ├── temp ├── closed-eye.svg ├── opened-eye.svg ├── plus.svg └── tag.css └── utils ├── check_readme.ps1 ├── doc_generator.ps1 └── generate-tests.js /.aiignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/.aiignore -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Enforce Unix newlines 2 | *.css text eol=lf 3 | *.html text eol=lf 4 | *.js text eol=lf 5 | *.json text eol=lf 6 | *.less text eol=lf 7 | *.md text eol=lf 8 | *.svg text eol=lf 9 | *.yml text eol=lf 10 | # Don't diff or textually merge source maps 11 | *.map binary 12 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | patreon: metroui 4 | paypal: serhii@pimenov.com.ua 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Create your code on https://codepen.io 15 | 16 | **Expected behavior** 17 | A clear and concise description of what you expected to happen. 18 | 19 | **Screenshots** 20 | If applicable, add screenshots to help explain your problem. 21 | 22 | **Desktop (please complete the following information):** 23 | - OS: [e.g. iOS] 24 | - Browser [e.g. chrome, safari] 25 | - Metro Version [e.g. 4.3.4] 26 | 27 | **Smartphone (please complete the following information):** 28 | - Device: [e.g. iPhone6] 29 | - OS: [e.g. iOS8.1] 30 | - Browser [e.g. stock browser, safari] 31 | - Metro Version [e.g. 4.3.3] 32 | 33 | **Additional context** 34 | Add any other context about the problem here. 35 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/workflows/deploy-keycdn-dev.yaml: -------------------------------------------------------------------------------- 1 | name: Deploy to KeyCDN (Dev) 2 | on: 3 | push: 4 | branches: 5 | - dev 6 | jobs: 7 | build: 8 | name: Build 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Checkout code 12 | uses: actions/checkout@v3 13 | 14 | - name: Install dependencies 15 | run: npm install 16 | 17 | - name: Build 18 | run: npm run build 19 | 20 | - name: Push files 21 | uses: SamKirkland/FTP-Deploy-Action@v4.3.4 22 | with: 23 | server: ftp.keycdn.com 24 | username: metro4 25 | password: ${{ secrets.FTP_PASSWORD_KEYCDN }} 26 | dangerous-clean-slate: true 27 | local-dir: ./lib/ 28 | server-dir: dev/ 29 | -------------------------------------------------------------------------------- /.github/workflows/verify.yml: -------------------------------------------------------------------------------- 1 | name: Verify lib 2 | on: 3 | push: 4 | branches: 5 | - dev 6 | 7 | jobs: 8 | build: 9 | name: Test library 10 | runs-on: ubuntu-latest 11 | env: 12 | CI: true 13 | FORCE_COLOR: 3 14 | NO_COLOR: false 15 | TERM: xterm-256color 16 | 17 | steps: 18 | - name: Checkout code 19 | uses: actions/checkout@v3 20 | 21 | - uses: actions/setup-node@v4 22 | with: 23 | node-version: 20 24 | 25 | - name: Install dependencies 26 | run: npm install 27 | 28 | - name: Test 29 | run: npm run test:ci 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore docs files 2 | 3 | # Compiled source # 4 | ################### 5 | *.com 6 | *.class 7 | *.dll 8 | *.exe 9 | *.o 10 | *.so 11 | 12 | # Packages # 13 | ############ 14 | # it's better to unpack these files and commit the raw source 15 | # git has its own built in compression methods 16 | *.7z 17 | *.dmg 18 | *.gz 19 | *.iso 20 | *.jar 21 | *.rar 22 | *.tar 23 | *.zip 24 | 25 | # Numerous always-ignore extensions 26 | *.diff 27 | *.err 28 | *.log 29 | *.orig 30 | *.rej 31 | *.swo 32 | *.swp 33 | *.vi 34 | *.bak 35 | *~ 36 | 37 | # OS or Editor folders 38 | ._* 39 | .cache 40 | .DS_Store 41 | .idea 42 | .replace 43 | .compiled_html 44 | .project 45 | .settings 46 | .tmproj 47 | .vscode 48 | *.esproj 49 | *.sublime-project 50 | *.sublime-workspace 51 | nbproject 52 | Thumbs.db 53 | 54 | # Folders to ignore 55 | bower_components 56 | node_modules 57 | 58 | # others 59 | #LICENSE 60 | #LICENSE* 61 | 62 | ftpauth.json 63 | 64 | .easytest/ 65 | coverage/ 66 | 67 | *.nupkg -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .github 2 | cypress 3 | icons-extractor 4 | tests -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 10.8 4 | addons: 5 | apt: 6 | packages: 7 | - libgconf-2-4 8 | cache: 9 | directories: 10 | - ~/.npm 11 | - ~/.cache 12 | before_script: 13 | - npm install grunt-cli -g 14 | - npm install http-server -g 15 | - npm ci 16 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ### 5.1.4 2 | + [x] Updated colors `yellow`, `seashell`, `clown` 3 | + [x] To `navview` added new CSS vars: `--navview-icon-color`, `--navview-icon-color-hover`, `--navview-icon-color-active` 4 | + [x] `navview` now uses two chars for icon replacer if caption has two words: for caption `Serhii Pimenov` will be used `SP` 5 | + [x] Remove default styles for lists: `list-style-type` 6 | + [x] Fixed the dialog close action for default actions 7 | + [x] Fixed knob position in `switch` component -------------------------------------------------------------------------------- /CLA.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/CLA.docx -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Issues Guidelines 2 | 3 | Before create issue: 4 | - check for existing issues. 5 | - create **pen** on [Codepen.io](https://codepen.io) with your problem. 6 | - describe the problem in detail (use issue template). 7 | 8 | ## Pull Request Guidelines 9 | **Before create the pull request, you must sign the [CLA (Contributor License Agreement)](CLA.txt).** 10 | 11 | The `master` branch is basically just a snapshot of the latest stable release. **Do not submit PRs against the `master` branch.** 12 | 13 | To create pull request: 14 | - Each pull request should close `one problem`. 15 | - Check that you are using the latest version of the library. 16 | - Create pull request to the `latest develop branch` (a `dev` branch). 17 | - The patch must contains files in `source` folder only. 18 | - Add patch keyword to your pull request title: `fix bug`, `update feature`, `add feature`. 19 | - If you are resolving a special issue, add `(fix #xxxx[,#xxx])` (#xxxx is the issue id) in your PR title. 20 | -------------------------------------------------------------------------------- /CREDITS.md: -------------------------------------------------------------------------------- 1 | ### Copyright 2 | 3 | 2012-2025 © Copyright. Serhii Pimenov. All Rights Reserved. 4 | Created by Serhii Pimenov. 5 | 6 | ### Credits 7 | - Styles created using the [less](http://lesscss.org) preprocessor by [Alexis Sellier](https://github.com/cloudhead) 8 | - preCode by Leon Sorokin [preCode](https://github.com/leeoniya/preCode.js) 9 | - strftime by Tom Doan [strftime](https://github.com/thdoan/strftime) 10 | - function b64toBlob by [Jeremy Banks](http://stackoverflow.com/users/1114/jeremy-banks) 11 | - Date.getWeek by [Nick Baicoianu](http://www.epoch-calendar.com) 12 | - Data source processor by [jQuery](https://jquery.com) 13 | - All who brought something good 14 | -------------------------------------------------------------------------------- /__html__/adblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Adblock - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 |
12 |

Adblock test page

13 | 14 |
15 | 16 | 17 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /__html__/analog-clock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Analog Clock - Metro UI :: Popular HTML, CSS and JS library 10 | 11 | 12 | 13 | 19 | 20 |
21 |
22 |
Coming
Soon
23 |
24 |
25 | 26 | 27 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /__html__/any.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Any - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 | 21 | 22 | 23 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /__html__/calendar-wide.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Calendar - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Calendar test page

14 | 15 |
16 |
17 |
18 | 19 |
20 | 21 | 22 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /__html__/clock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Clock - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Clock test page

14 | 15 |
16 | 17 |
18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /__html__/collapse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Collapse - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Collapse test page

14 | 15 | 16 | 17 |
18 |
This is a collapsed block
19 |
20 | 21 |
22 | 23 | 24 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /__html__/container.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Container - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 |
12 |

Container test page

13 |
14 | 15 |
16 |
17 |
18 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Distinctio fugiat ipsam itaque sequi. Animi deleniti dicta ea eos error facere iusto molestias praesentium sequi sint. Autem commodi nisi sapiente suscipit. 19 |
20 |
21 |
22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /__html__/cookie.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Cookie - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Cookie test page

14 |
Test processed...
15 |
16 | 17 | 18 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /__html__/cube.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Cube - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Cube test page

14 | 15 |
16 |
17 |
18 | 19 |
20 | 21 | 22 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /__html__/data/modem.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/data/modem.mp3 -------------------------------------------------------------------------------- /__html__/data/ocean.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/data/ocean.mp4 -------------------------------------------------------------------------------- /__html__/data/song-1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/data/song-1.mp3 -------------------------------------------------------------------------------- /__html__/datetime.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Datetime integration - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Datetime test page

14 | 15 |
16 | 17 | 18 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /__html__/double-slider.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Double Slider - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Double Slider test page

14 | 15 |
16 | 17 |
18 | 19 |
20 | 21 |
22 | 30 |
31 | 32 |
33 | 34 | 35 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /__html__/draggable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Draggable - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /__html__/form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Form - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 | 18 | 19 |

Any form page

20 |
21 | 22 | 23 |
24 | 25 | 26 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /__html__/gravatar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Gravatar - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Gravatar test page

14 | 15 |
16 | 17 |
18 |
19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /__html__/hover-box.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Hover Box - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 | 18 | 19 |
20 |
21 |

Box Header

22 |

Some text inside the box

23 |
24 |
25 | 26 | 27 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /__html__/html-container.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Html container - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Html container test page

14 | 15 |
123
16 | 17 |
18 | 19 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /__html__/image-compare.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Image compare - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Image compare test page

14 | 15 |
16 |
17 | 18 | 19 |
20 |
21 | 22 |
23 | 24 | 25 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /__html__/image-grid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test ImageGrid - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 |
12 |

ImageGrid test page

13 | 14 |
15 |
18 | 19 | 20 | 21 | 22 |
23 |
24 |
25 | 26 | 27 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /__html__/image-magnifier.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Image magnifier - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Image magnifier test page

14 | 15 |
16 |
17 | 18 |
19 |
20 | 21 |
22 | 23 | 24 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /__html__/image-placeholder.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test ImagePlaceholder - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 |
12 |

ImagePlaceholder test page

13 |
14 | 15 | 16 | 17 |
18 |
19 | 20 | 21 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /__html__/images/bacon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/bacon.jpg -------------------------------------------------------------------------------- /__html__/images/bg-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/bg-1.jpg -------------------------------------------------------------------------------- /__html__/images/bg-1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/bg-1.webp -------------------------------------------------------------------------------- /__html__/images/bg-dark.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/bg-dark.avif -------------------------------------------------------------------------------- /__html__/images/bg-light.avif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/bg-light.avif -------------------------------------------------------------------------------- /__html__/images/doom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/doom.png -------------------------------------------------------------------------------- /__html__/images/doom.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/doom.webp -------------------------------------------------------------------------------- /__html__/images/gogen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/gogen.jpg -------------------------------------------------------------------------------- /__html__/images/gradient.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/gradient.jpg -------------------------------------------------------------------------------- /__html__/images/klimt.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/klimt.jpg -------------------------------------------------------------------------------- /__html__/images/kuning.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/kuning.jpg -------------------------------------------------------------------------------- /__html__/images/lion.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/lion.webp -------------------------------------------------------------------------------- /__html__/images/munk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/munk.jpg -------------------------------------------------------------------------------- /__html__/images/panther.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/panther.webp -------------------------------------------------------------------------------- /__html__/images/picasso.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/picasso.jpg -------------------------------------------------------------------------------- /__html__/images/puma.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/puma.webp -------------------------------------------------------------------------------- /__html__/images/sezan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/sezan.jpg -------------------------------------------------------------------------------- /__html__/images/tiger-gray.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/tiger-gray.jpg -------------------------------------------------------------------------------- /__html__/images/tiger.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/tiger.webp -------------------------------------------------------------------------------- /__html__/images/windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/__html__/images/windows.png -------------------------------------------------------------------------------- /__html__/images/windows.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /__html__/master.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Master - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Master test page

14 | 15 |
16 |
17 |
Page 1
18 |
Page 2
19 |
Page 3
20 |
Page 4
21 |
22 |
23 | 24 |
25 | 26 | 27 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /__html__/popover.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Popover - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Popover test page

14 | 15 | 19 | 20 |
21 | 22 | 23 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /__html__/rating.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Rating - Metro UI :: Popular HTML, CSS and JS library 9 | 14 | 15 | 16 |
17 |

Rating test page

18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 |
29 | 30 | 31 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /__html__/resizable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Resizable - Metro UI :: Popular HTML, CSS and JS library 9 | 16 | 17 | 18 |

Resizeable test page

19 | 20 |
21 | 22 |
23 | The mystery is a distant ship. 24 |
25 | 26 | 27 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /__html__/resizer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Resizer - Metro UI :: Popular HTML, CSS and JS library 9 | 16 | 17 | 18 |
19 |

Resizer test page

20 |
21 | 22 | 23 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /__html__/slider.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Slider - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Slider test page

14 | 15 |
16 | 17 | 18 |
19 | 20 |
21 | 22 | 23 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /__html__/sorter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Sorter - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Sorter test page

14 | 15 |
16 | 24 |
25 | 26 |
27 | 28 | 29 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /__html__/splashscreen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Splashscreen - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |
14 | 15 | 16 | 17 |
18 |

19 | Loading... 20 |

21 |
22 |
23 |

Splashscreen test page

24 |
25 | 26 | 27 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /__html__/theme-switcher.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Theme Switcher - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Theme Switcher test page

14 | 15 |
16 | 17 | 18 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /__html__/time-picker.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Timepicker - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 |
13 |

Timepicker test page

14 | 15 |
16 | 17 |
18 |
19 | 20 |
21 | 22 |
23 | 24 | 25 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /__html__/typer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Typer - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 12 | 18 | 19 |

20 | Welcome to 21 | Metro UI, Impressive Components Library, First in Metro Style 22 |

23 | 24 | 25 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /__html__/typography.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Typography - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 |
Display4
12 |
Display3
13 |
Display2
14 |
Display1
15 |

Heading 1

16 |

Heading 2

17 |

Heading 3

18 |

Heading 4

19 |
Heading 5
20 |
Heading 6
21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /__html__/vegas.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Test Vegas - Metro UI :: Popular HTML, CSS and JS library 9 | 17 | 18 | 19 |

Vegas test page

20 | 21 | 22 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /__html__/video-player.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Video player - Metro UI :: Popular HTML, CSS and JS library 9 | 10 | 11 | 17 | 18 |
19 |
20 | 24 |
25 |
26 | 27 | 28 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /__tests__/accordion.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B, suite, test, mock, spy} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("accordion.html tests", () => { 13 | it("accordion.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/accordion.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/action-button.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("action-button.html tests", () => { 13 | it("action-button.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/action-button.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/activity.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("activity.html tests", () => { 13 | it("activity.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/activity.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/adblock.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("adblock.html tests", () => { 13 | it("adblock.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/adblock.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/analog-clock.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("analog-clock.html tests", () => { 13 | it("analog-clock.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/analog-clock.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/animate-border.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("animate-border.html tests", () => { 13 | it("animate-border.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/animate-border.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/any.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("any.html tests", () => { 13 | it("any.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/any.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/app-bar.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("app-bar.html tests", () => { 13 | it("app-bar.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/app-bar.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/audio-button.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("audio-button.html tests", () => { 13 | it("audio-button.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/audio-button.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/bottom-sheet.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("bottom-sheet.html tests", () => { 13 | it("bottom-sheet.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/bottom-sheet.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/breadcrumbs.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("breadcrumbs.html tests", () => { 13 | it("breadcrumbs.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/breadcrumbs.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/bulls.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("bulls.html tests", () => { 13 | it("bulls.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/bulls.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/button-group.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("button-group.html tests", () => { 13 | it("button-group.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/button-group.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/button.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("button.html tests", () => { 13 | it("button.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/button.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/calendar-picker.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("calendar-picker.html tests", () => { 13 | it("calendar-picker.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/calendar-picker.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/calendar-wide.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("calendar-wide.html tests", () => { 13 | it("calendar-wide.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/calendar-wide.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/calendar-with-time.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("calendar-with-time.html tests", () => { 13 | it("calendar-with-time.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/calendar-with-time.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/calendar.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("calendar.html tests", () => { 13 | it("calendar.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/calendar.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/cards.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("cards.html tests", () => { 13 | it("cards.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/cards.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/carousel.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("carousel.html tests", () => { 13 | it("carousel.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/carousel.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/charms.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("charms.html tests", () => { 13 | it("charms.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/charms.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/chat.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("chat.html tests", () => { 13 | it("chat.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/chat.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/checkbox.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("checkbox.html tests", () => { 13 | it("checkbox.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/checkbox.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/chips.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("chips.html tests", () => { 13 | it("chips.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/chips.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/clock.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("clock.html tests", () => { 13 | it("clock.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/clock.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/code.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("code.html tests", () => { 13 | it("code.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/code.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/collapse.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("collapse.html tests", () => { 13 | it("collapse.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/collapse.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/color-palette.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("color-palette.html tests", () => { 13 | it("color-palette.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/color-palette.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/color-picker.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("color-picker.html tests", () => { 13 | it("color-picker.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/color-picker.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/color-selector.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("color-selector.html tests", () => { 13 | it("color-selector.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/color-selector.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/colors.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("colors.html tests", () => { 13 | it("colors.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/colors.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/container.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("container.html tests", () => { 13 | it("container.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/container.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/context-menu.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("context-menu.html tests", () => { 13 | it("context-menu.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/context-menu.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/cookie-disclaimer.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("cookie-disclaimer.html tests", () => { 13 | it("cookie-disclaimer.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/cookie-disclaimer.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/cookie.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("cookie.html tests", () => { 13 | it("cookie.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/cookie.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/countdown.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("countdown.html tests", () => { 13 | it("countdown.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/countdown.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/counter.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("counter.html tests", () => { 13 | it("counter.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/counter.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/cube.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("cube.html tests", () => { 13 | it("cube.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/cube.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/custom-checkbox.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("custom-checkbox.html tests", () => { 13 | it("custom-checkbox.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/custom-checkbox.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/d-menu.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("d-menu.html tests", () => { 13 | it("d-menu.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/d-menu.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/date-picker.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("date-picker.html tests", () => { 13 | it("date-picker.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/date-picker.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/datetime.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("datetime.html tests", () => { 13 | it("datetime.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/datetime.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/dialog.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("dialog.html tests", () => { 13 | it("dialog.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/dialog.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/directive.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("directive.html tests", () => { 13 | it("directive.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/directive.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/directive2.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("directive2.html tests", () => { 13 | it("directive2.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/directive2.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/directive3.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("directive3.html tests", () => { 13 | it("directive3.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/directive3.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/donut.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("donut.html tests", () => { 13 | it("donut.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/donut.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/double-select-box.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("double-select-box.html tests", () => { 13 | it("double-select-box.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/double-select-box.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/double-slider.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("double-slider.html tests", () => { 13 | it("double-slider.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/double-slider.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/drag-items.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("drag-items.html tests", () => { 13 | it("drag-items.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/drag-items.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/draggable-boundary-restriction.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("draggable-boundary-restriction.html tests", () => { 13 | it("draggable-boundary-restriction.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/draggable-boundary-restriction.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/draggable.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("draggable.html tests", () => { 13 | it("draggable.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/draggable.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/dropdown-button.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("dropdown-button.html tests", () => { 13 | it("dropdown-button.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/dropdown-button.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/dropdown.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("dropdown.html tests", () => { 13 | it("dropdown.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/dropdown.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/eval.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("eval.html tests", () => { 13 | it("eval.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/eval.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/file.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("file.html tests", () => { 13 | it("file.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/file.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/form.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("form.html tests", () => { 13 | it("form.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/form.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/gauge.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("gauge.html tests", () => { 13 | it("gauge.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/gauge.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/gradient-box.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("gradient-box.html tests", () => { 13 | it("gradient-box.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/gradient-box.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/gradients.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("gradients.html tests", () => { 13 | it("gradients.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/gradients.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/gravatar.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("gravatar.html tests", () => { 13 | it("gravatar.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/gravatar.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/grid-new.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("grid-new.html tests", () => { 13 | it("grid-new.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/grid-new.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/grid.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("grid.html tests", () => { 13 | it("grid.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/grid.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/hint.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("hint.html tests", () => { 13 | it("hint.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/hint.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/hotkey.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("hotkey.html tests", () => { 13 | it("hotkey.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/hotkey.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/hover-box.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("hover-box.html tests", () => { 13 | it("hover-box.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/hover-box.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/html-container.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("html-container.html tests", () => { 13 | it("html-container.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/html-container.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/i18n.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("i18n.html tests", () => { 13 | it("i18n.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/i18n.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/icons.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("icons.html tests", () => { 13 | it("icons.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/icons.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/image-box.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("image-box.html tests", () => { 13 | it("image-box.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/image-box.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/image-compare.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("image-compare.html tests", () => { 13 | it("image-compare.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/image-compare.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/image-grid.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("image-grid.html tests", () => { 13 | it("image-grid.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/image-grid.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/image-magnifier.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("image-magnifier.html tests", () => { 13 | it("image-magnifier.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/image-magnifier.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/image-placeholder.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("image-placeholder.html tests", () => { 13 | it("image-placeholder.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/image-placeholder.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/info-box.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("info-box.html tests", () => { 13 | it("info-box.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/info-box.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/input-mask.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("input-mask.html tests", () => { 13 | it("input-mask.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/input-mask.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/input.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("input.html tests", () => { 13 | it("input.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/input.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/keypad.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("keypad.html tests", () => { 13 | it("keypad.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/keypad.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/lightbox.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("lightbox.html tests", () => { 13 | it("lightbox.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/lightbox.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/list.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("list.html tests", () => { 13 | it("list.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/list.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/listview.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("listview.html tests", () => { 13 | it("listview.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/listview.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/load-metro.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("load-metro.html tests", () => { 13 | it("load-metro.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/load-metro.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/marquee.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("marquee.html tests", () => { 13 | it("marquee.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/marquee.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/master.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("master.html tests", () => { 13 | it("master.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/master.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/material-input.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("material-input.html tests", () => { 13 | it("material-input.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/material-input.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/material-tabs.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("material-tabs.html tests", () => { 13 | it("material-tabs.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/material-tabs.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/model.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("model.html tests", () => { 13 | it("model.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/model.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/navview.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("navview.html tests", () => { 13 | it("navview.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/navview.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/navview2.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("navview2.html tests", () => { 13 | it("navview2.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/navview2.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/notify.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("notify.html tests", () => { 13 | it("notify.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/notify.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/package-manager.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("package-manager.html tests", () => { 13 | it("package-manager.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/package-manager.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/page-control.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("page-control.html tests", () => { 13 | it("page-control.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/page-control.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/pagination.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("pagination.html tests", () => { 13 | it("pagination.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/pagination.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/panel.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("panel.html tests", () => { 13 | it("panel.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/panel.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/popover.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("popover.html tests", () => { 13 | it("popover.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/popover.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/progress.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("progress.html tests", () => { 13 | it("progress.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/progress.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/radio.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("radio.html tests", () => { 13 | it("radio.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/radio.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/rating.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("rating.html tests", () => { 13 | it("rating.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/rating.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/remark.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("remark.html tests", () => { 13 | it("remark.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/remark.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/remote-dataset.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("remote-dataset.html tests", () => { 13 | it("remote-dataset.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/remote-dataset.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/remote-table.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("remote-table.html tests", () => { 13 | it("remote-table.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/remote-table.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/resizable.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("resizable.html tests", () => { 13 | it("resizable.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/resizable.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/resizer.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("resizer.html tests", () => { 13 | it("resizer.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/resizer.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/ribbon-menu.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("ribbon-menu.html tests", () => { 13 | it("ribbon-menu.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/ribbon-menu.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/ripple.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("ripple.html tests", () => { 13 | it("ripple.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/ripple.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/scrollbar.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("scrollbar.html tests", () => { 13 | it("scrollbar.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/scrollbar.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/select-2.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("select-2.html tests", () => { 13 | it("select-2.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/select-2.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/select-options.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("select-options.html tests", () => { 13 | it("select-options.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/select-options.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/select-{data}.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("select-{data}.html tests", () => { 13 | it("select-{data}.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/select-{data}.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/select-{source}.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("select-{source}.html tests", () => { 13 | it("select-{source}.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/select-{source}.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/select.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("select.html tests", () => { 13 | it("select.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/select.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/shadow-text.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("shadow-text.html tests", () => { 13 | it("shadow-text.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/shadow-text.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/shadow.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("shadow.html tests", () => { 13 | it("shadow.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/shadow.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/shortcuts.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("shortcuts.html tests", () => { 13 | it("shortcuts.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/shortcuts.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/sidebar.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("sidebar.html tests", () => { 13 | it("sidebar.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/sidebar.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/sidenav-counter.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("sidenav-counter.html tests", () => { 13 | it("sidenav-counter.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/sidenav-counter.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/sidenav.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("sidenav.html tests", () => { 13 | it("sidenav.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/sidenav.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/slider.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("slider.html tests", () => { 13 | it("slider.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/slider.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/sorter.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("sorter.html tests", () => { 13 | it("sorter.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/sorter.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/spinner.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("spinner.html tests", () => { 13 | it("spinner.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/spinner.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/splashscreen.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("splashscreen.html tests", () => { 13 | it("splashscreen.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/splashscreen.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/splitter.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("splitter.html tests", () => { 13 | it("splitter.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/splitter.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/stepper.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("stepper.html tests", () => { 13 | it("stepper.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/stepper.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/storage.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("storage.html tests", () => { 13 | it("storage.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/storage.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/streamer.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("streamer.json tests", () => { 13 | it("streamer.json", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/streamer.json`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/stroke-color.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("stroke-color.html tests", () => { 13 | it("stroke-color.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/stroke-color.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/swipe.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("swipe.html tests", () => { 13 | it("swipe.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/swipe.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/switch.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("switch.html tests", () => { 13 | it("switch.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/switch.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/t-menu.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("t-menu.html tests", () => { 13 | it("t-menu.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/t-menu.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/table-static.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("table-static.html tests", () => { 13 | it("table-static.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/table-static.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/table.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("table.html tests", () => { 13 | it("table.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/table.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/table2.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("table2.html tests", () => { 13 | it("table2.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/table2.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/tabs-material.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("tabs-material.html tests", () => { 13 | it("tabs-material.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/tabs-material.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/tabs.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("tabs.html tests", () => { 13 | it("tabs.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/tabs.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/tag-input.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("tag-input.html tests", () => { 13 | it("tag-input.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/tag-input.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/template.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("template.html tests", () => { 13 | it("template.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/template.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/textarea.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("textarea.html tests", () => { 13 | it("textarea.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/textarea.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/theme-switcher.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("theme-switcher.html tests", () => { 13 | it("theme-switcher.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/theme-switcher.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/tile.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("tile.html tests", () => { 13 | it("tile.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/tile.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/time-picker.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("time-picker.html tests", () => { 13 | it("time-picker.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/time-picker.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/timeline.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("timeline.html tests", () => { 13 | it("timeline.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/timeline.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/toast.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("toast.html tests", () => { 13 | it("toast.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/toast.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/tokenizer.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("tokenizer.html tests", () => { 13 | it("tokenizer.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/tokenizer.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/touch.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("touch.html tests", () => { 13 | it("touch.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/touch.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/treeview-menu.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("treeview-menu.html tests", () => { 13 | it("treeview-menu.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/treeview-menu.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/treeview.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("treeview.html tests", () => { 13 | it("treeview.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/treeview.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/treeview2.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("treeview2.html tests", () => { 13 | it("treeview2.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/treeview2.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/typer.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("typer.html tests", () => { 13 | it("typer.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/typer.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/typography.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("typography.html tests", () => { 13 | it("typography.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/typography.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/v-menu.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("v-menu.html tests", () => { 13 | it("v-menu.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/v-menu.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/validator.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("validator.html tests", () => { 13 | it("validator.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/validator.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/vegas.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("vegas.html tests", () => { 13 | it("vegas.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/vegas.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/video-player.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("video-player.html tests", () => { 13 | it("video-player.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/video-player.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/viewport-check.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("viewport-check.html tests", () => { 13 | it("viewport-check.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/viewport-check.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/window.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("window.html tests", () => { 13 | it("window.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/window.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/wizard-classic.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("wizard-classic.html tests", () => { 13 | it("wizard-classic.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/wizard-classic.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /__tests__/wizard.test.js: -------------------------------------------------------------------------------- 1 | 2 | import {beforeAll, afterAll, describe, it, expect, delay, getFileUrl, B} from "@olton/latte"; 3 | 4 | beforeAll(async () => { 5 | await B.create() 6 | }) 7 | 8 | afterAll(async () => { 9 | await B.bye() 10 | }) 11 | 12 | describe("wizard.html tests", () => { 13 | it("wizard.html", async () => { 14 | await B.visit(`${getFileUrl(`./__html__/wizard.html`)}`) 15 | expect(B.error).toBeNull(B.error) 16 | }) 17 | }) 18 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", 3 | "vcs": { 4 | "enabled": true, 5 | "clientKind": "git", 6 | "useIgnoreFile": true, 7 | "defaultBranch": "dev" 8 | }, 9 | "files": { 10 | "ignoreUnknown": false, 11 | "ignore": [ 12 | "__html__/**/*", 13 | "__tests__/**/*", 14 | "lib/**/*", 15 | "build.js", 16 | "generate-tests.js", 17 | "biome.json", 18 | "package-lock.json", 19 | "node_modules/**/*" 20 | ] 21 | }, 22 | "formatter": { 23 | "enabled": true, 24 | "indentStyle": "space", 25 | "lineWidth": 120, 26 | "indentWidth": 4, 27 | "lineEnding": "lf" 28 | }, 29 | "organizeImports": { 30 | "enabled": true 31 | }, 32 | "linter": { 33 | "enabled": true, 34 | "rules": { 35 | "recommended": true 36 | } 37 | }, 38 | "javascript": { 39 | "formatter": { 40 | "quoteStyle": "double" 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/icon.png -------------------------------------------------------------------------------- /icons/core/fonts/metro-ui-core.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/icons/core/fonts/metro-ui-core.ttf -------------------------------------------------------------------------------- /icons/core/fonts/metro-ui-core.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/olton/metroui/4d258aac900e77e98d4854cf8cea53d565b19916/icons/core/fonts/metro-ui-core.woff -------------------------------------------------------------------------------- /source/colors-css/border.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | 3 | .bd-default { 4 | border-color: var(--border-color)!important; 5 | } 6 | .bd-transparent { 7 | border-color: transparent!important; 8 | } 9 | 10 | each(@colors, { 11 | .bd-@{value} {border-color: @@value !important;} 12 | .bd-@{value}-active {&:active {border-color: @@value !important;}} 13 | .bd-@{value}-hover {&:hover {border-color: @@value !important;}} 14 | .bd-@{value}-focus {&:focus {border-color: @@value !important;}} 15 | .bd-before-@{value} { 16 | &::before { 17 | border-color: @@value!important; 18 | } 19 | } 20 | .bd-after-@{value} { 21 | &::after { 22 | border-color: @@value!important; 23 | } 24 | } 25 | }) 26 | -------------------------------------------------------------------------------- /source/colors-css/foreground.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | 3 | .fg-default { 4 | color: var(--default-color)!important; 5 | } 6 | 7 | each(@colors, { 8 | .fg-@{value} {color: @@value !important;} 9 | .fg-@{value}-active {&:active {color: @@value !important;}} 10 | .fg-@{value}-hover {&:hover {color: @@value !important;}} 11 | .fg-@{value}-focus {&:focus {color: @@value !important;}} 12 | }) 13 | -------------------------------------------------------------------------------- /source/colors-css/index.js: -------------------------------------------------------------------------------- 1 | /** @format */ 2 | 3 | import "./vars.less"; 4 | import "./background.less"; 5 | import "./border.less"; 6 | import "./svg.less"; 7 | import "./foreground.less"; 8 | import "./opacity.less"; 9 | import "./outline.less"; 10 | import "./pseudo.less"; 11 | import "./ribbed.less"; 12 | import "./accent.less"; 13 | import "./gradients.less"; 14 | import "./stroke.less"; 15 | -------------------------------------------------------------------------------- /source/colors-css/opacity.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | 3 | .op-default { 4 | background-color: rgba(red(@cyan), green(@cyan), blue(@cyan), .5) !important; 5 | } 6 | 7 | each(@colors, { 8 | .op-@{value} {background-color: rgba(red(@@value), green(@@value), blue(@@value), .5) !important;} 9 | .op-@{value}-hi {background-color: rgba(red(@@value), green(@@value), blue(@@value), .2) !important;} 10 | .op-@{value}-low {background-color: rgba(red(@@value), green(@@value), blue(@@value), .8) !important;} 11 | }) 12 | -------------------------------------------------------------------------------- /source/colors-css/outline.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | 3 | each(@colors, { 4 | .ol-@{value} {outline-color: @@value !important;} 5 | .ol-@{value}-active {&:active {outline-color: @@value !important;}} 6 | .ol-@{value}-hover {&:hover {outline-color: @@value !important;}} 7 | .ol-@{value}-focus {&:focus {outline-color: @@value !important;}} 8 | }) 9 | -------------------------------------------------------------------------------- /source/colors-css/pseudo.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | 3 | each(@colors, { 4 | .before-bg-@{value} {&::before {background: @@value !important;}} 5 | .before-fg-@{value} {&::before {color: @@value !important;}} 6 | .before-bd-@{value} {&::before {border-color: @@value !important;}} 7 | 8 | .after-bg-@{value} {&::after {background: @@value !important;}} 9 | .after-fg-@{value} {&::after {color: @@value !important;}} 10 | .after-bd-@{value} {&::after {border-color: @@value !important;}} 11 | }) 12 | -------------------------------------------------------------------------------- /source/colors-css/ribbed.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | 3 | :root { 4 | --ribbed-size: 20px; 5 | --ribbed-alpha: .15; 6 | --ribbed-angle: -45deg; 7 | } 8 | 9 | each(@colors, { 10 | .ribbed-@{value} { 11 | background: @@value 12 | linear-gradient(var(--ribbed-angle), rgba(255,255,255,var(--ribbed-alpha)) 25%, 13 | transparent 25%, 14 | transparent 50%, 15 | rgba(255,255,255,var(--ribbed-alpha)) 50%, 16 | rgba(255,255,255,var(--ribbed-alpha)) 75%, 17 | transparent 75%, transparent) !important; 18 | background-size: var(--ribbed-size) var(--ribbed-size) !important; 19 | } 20 | }) 21 | -------------------------------------------------------------------------------- /source/colors-css/stroke.less: -------------------------------------------------------------------------------- 1 | @import "../include/vars"; 2 | 3 | :root { 4 | --stroke-width: 1px; 5 | } 6 | 7 | each(@normalColors, { 8 | @dark-color: "dark-@{value}"; 9 | @light-color: "light-@{value}"; 10 | @sat-color: "sat-@{value}"; 11 | 12 | 13 | .stroke-light-@{value} { 14 | color: transparent; 15 | -webkit-text-stroke: var(--stroke-width) @@light-color; 16 | text-stroke: var(--stroke-width) @@light-color; 17 | } 18 | .stroke-dark-@{value} { 19 | color: transparent; 20 | -webkit-text-stroke: var(--stroke-width) @@dark-color; 21 | text-stroke: var(--stroke-width) @@dark-color; 22 | } 23 | .stroke-sat-@{value} { 24 | color: transparent; 25 | -webkit-text-stroke: var(--stroke-width) @@sat-color; 26 | text-stroke: var(--stroke-width) @@sat-color; 27 | } 28 | 29 | .stroke-@{value} { 30 | color: transparent; 31 | -webkit-text-stroke: var(--stroke-width) @@value; 32 | text-stroke: var(--stroke-width) @@value; 33 | } 34 | 35 | }) -------------------------------------------------------------------------------- /source/colors-css/svg.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | 3 | each(@colors, { 4 | .fc-@{value} {fill: @@value !important;} 5 | .fc-@{value}-active {&:active {fill: @@value !important;}} 6 | .fc-@{value}-hover {&:hover {fill: @@value !important;}} 7 | .fc-@{value}-focus {&:focus {fill: @@value !important;}} 8 | 9 | .sc-@{value} {stroke: @@value !important;} 10 | .sc-@{value}-active {&:active {stroke: @@value !important;}} 11 | .sc-@{value}-hover {&:hover {stroke: @@value !important;}} 12 | .sc-@{value}-focus {&:focus {stroke: @@value !important;}} 13 | }) 14 | -------------------------------------------------------------------------------- /source/common-css/debug.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | @import (once) "../include/mixins"; 3 | 4 | .debug { 5 | outline: 1px dotted red!important; 6 | min-width: 1px; 7 | min-height: 1px; 8 | } 9 | -------------------------------------------------------------------------------- /source/common-css/float.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | @import (once) "../include/mixins"; 3 | 4 | .clear-float { 5 | .clear(); 6 | } 7 | 8 | .place-right, .float-right {float: right !important;} 9 | .place-left, .float-left {float: left !important;} 10 | .place-none, .float-none, .no-float {float: none !important;} 11 | 12 | each(@media-rules, { 13 | @container (min-width: @value) { 14 | .place-right-@{key}, .float-right-@{key} {float: right !important;} 15 | .place-left-@{key}, .float-left-@{key} {float: left !important;} 16 | .place-none-@{key}, .float-none-@{key}, .no-float-@{key} {float: none !important;} 17 | } 18 | }) 19 | 20 | 21 | -------------------------------------------------------------------------------- /source/common-css/index.js: -------------------------------------------------------------------------------- 1 | import "./media.less"; 2 | import "./base-theme.less"; 3 | import "./ani.less"; 4 | import "./border.less"; 5 | import "./cursors.less"; 6 | import "./debug.less"; 7 | import "./display.less"; 8 | import "./embed.less"; 9 | import "./flex.less"; 10 | import "./float.less"; 11 | import "./font.less"; 12 | import "./images.less"; 13 | import "./lists.less"; 14 | import "./position.less"; 15 | import "./position-ext.less"; 16 | import "./print.less"; 17 | import "./sizing.less"; 18 | import "./spacing.less"; 19 | import "./typography.less"; 20 | import "./utils.less"; 21 | import "./z-index.less"; 22 | -------------------------------------------------------------------------------- /source/common-css/media.less: -------------------------------------------------------------------------------- 1 | @import "../include/vars"; 2 | 3 | :root { 4 | --media-fs: @fs; 5 | --media-xs: @xs; 6 | --media-sm: @sm; 7 | --media-ld: @ld; 8 | --media-md: @md; 9 | --media-lg: @lg; 10 | --media-xl: @xl; 11 | --media-xxl: @xxl; 12 | --media-xxxl: @xxxl; 13 | } -------------------------------------------------------------------------------- /source/common-css/position.less: -------------------------------------------------------------------------------- 1 | @import (once) "../include/vars"; 2 | @import (once) "../include/mixins"; 3 | 4 | .fixed-top, .fixed-bottom { 5 | position: fixed; 6 | left: 0; 7 | right: 0; 8 | width: 100%; 9 | } 10 | 11 | .fixed-top { 12 | top: 0; 13 | bottom: auto; 14 | } 15 | 16 | .fixed-bottom { 17 | top: auto; 18 | bottom: 0; 19 | } 20 | 21 | .pos-relative {position: relative!important;} 22 | .pos-absolute {position: absolute!important;} 23 | .pos-static {position: static!important;} 24 | .pos-fixed {position: fixed!important;} 25 | .pos-sticky {position: sticky!important; top: 0; align-self: flex-start!important;} 26 | 27 | each(@media-rules, { 28 | @container (min-width: @value) { 29 | .pos-relative-@{key} {position: relative!important;} 30 | .pos-absolute-@{key} {position: absolute!important;} 31 | .pos-static-@{key} {position: static!important;} 32 | .pos-fixed-@{key} {position: fixed!important;} 33 | } 34 | }) 35 | -------------------------------------------------------------------------------- /source/common-js/index.js: -------------------------------------------------------------------------------- 1 | import "../common-js/utilities.js"; 2 | import "../components/carousel/animations.js"; 3 | -------------------------------------------------------------------------------- /source/components/accordion/index.js: -------------------------------------------------------------------------------- 1 | import "./accordion.js"; 2 | import "./accordion.less"; 3 | -------------------------------------------------------------------------------- /source/components/action-button/index.js: -------------------------------------------------------------------------------- 1 | import "./action-button.less"; 2 | import "./action-button.js"; 3 | -------------------------------------------------------------------------------- /source/components/activity/index.js: -------------------------------------------------------------------------------- 1 | import "../dialog/index.js"; 2 | import "./activity.js"; 3 | import "./activity.less"; 4 | -------------------------------------------------------------------------------- /source/components/adblock/index.js: -------------------------------------------------------------------------------- 1 | import "./adblock.js"; 2 | -------------------------------------------------------------------------------- /source/components/analog-clock/index.js: -------------------------------------------------------------------------------- 1 | import "./analog-clock.less"; 2 | import "./analog-clock.js"; 3 | -------------------------------------------------------------------------------- /source/components/app-bar/index.js: -------------------------------------------------------------------------------- 1 | import "../hamburger/index.js"; 2 | import "../../farbe/index.js"; 3 | import "./app-bar.js"; 4 | import "./app-bar.less"; 5 | -------------------------------------------------------------------------------- /source/components/audio-button/index.js: -------------------------------------------------------------------------------- 1 | import "./audio-button.js"; 2 | -------------------------------------------------------------------------------- /source/components/audio-player/audio-player.less: -------------------------------------------------------------------------------- 1 | .audio-player { 2 | width: auto; 3 | display: inline-flex; 4 | } -------------------------------------------------------------------------------- /source/components/audio-player/index.js: -------------------------------------------------------------------------------- 1 | import "../slider/index.js"; 2 | import "../media-player/index.js"; 3 | import "./audio-player.less"; 4 | import "./audio-player.js"; 5 | -------------------------------------------------------------------------------- /source/components/badges/index.js: -------------------------------------------------------------------------------- 1 | import "./badges.less"; 2 | -------------------------------------------------------------------------------- /source/components/box/index.js: -------------------------------------------------------------------------------- 1 | import "./box.less"; 2 | -------------------------------------------------------------------------------- /source/components/breadcrumbs/index.js: -------------------------------------------------------------------------------- 1 | import "./breadcrumbs.less"; 2 | -------------------------------------------------------------------------------- /source/components/bulls/index.js: -------------------------------------------------------------------------------- 1 | import "./bulls.js"; 2 | -------------------------------------------------------------------------------- /source/components/button-group/button-group.less: -------------------------------------------------------------------------------- 1 | @import (once) "../../include/vars"; 2 | @import (once) "../../include/mixins"; 3 | 4 | :root { 5 | --button-group-active-background: #989898; 6 | --button-group-active-color: #fff; 7 | } 8 | 9 | .dark-side { 10 | --button-group-active-background: #4b4b4b; 11 | --button-group-active-color: #fff; 12 | } 13 | 14 | .button-group { 15 | display: inline-flex; 16 | position: relative; 17 | 18 | .active { 19 | background-color: var(--button-group-active-background); 20 | color: var(--button-group-active-color); 21 | } 22 | 23 | & > * { 24 | margin-right: 2px; 25 | 26 | &:last-child { 27 | margin-right: 0; 28 | } 29 | } 30 | } 31 | 32 | .button-group + .button-group { 33 | margin-left: .5rem; 34 | } -------------------------------------------------------------------------------- /source/components/button-group/index.js: -------------------------------------------------------------------------------- 1 | import "./button-group.js"; 2 | import "./button-group.less"; 3 | -------------------------------------------------------------------------------- /source/components/button/index.js: -------------------------------------------------------------------------------- 1 | import "./button.less"; 2 | -------------------------------------------------------------------------------- /source/components/calendar/index.js: -------------------------------------------------------------------------------- 1 | import "../button/index.js"; 2 | import "../spinner/index.js"; 3 | import "../../farbe/index.js"; 4 | import "./calendar.js"; 5 | import "./calendar.less"; 6 | -------------------------------------------------------------------------------- /source/components/calendarpicker/index.js: -------------------------------------------------------------------------------- 1 | import "../calendar/index.js"; 2 | import "../../farbe/index.js"; 3 | import "./calendarpicker.js"; 4 | import "./calendarpicker.less"; 5 | -------------------------------------------------------------------------------- /source/components/cards/index.js: -------------------------------------------------------------------------------- 1 | import "./cards.less"; 2 | -------------------------------------------------------------------------------- /source/components/carousel/index.js: -------------------------------------------------------------------------------- 1 | import "../button/index.js"; 2 | import "./carousel.js"; 3 | import "./carousel.less"; 4 | -------------------------------------------------------------------------------- /source/components/charms/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "./charms.js"; 3 | import "./charms.less"; 4 | -------------------------------------------------------------------------------- /source/components/chart-card/index.js: -------------------------------------------------------------------------------- 1 | /** @format */ 2 | 3 | import "./chart-card.less"; 4 | -------------------------------------------------------------------------------- /source/components/chat/index.js: -------------------------------------------------------------------------------- 1 | import "../input/index.js"; 2 | import "../button/index.js"; 3 | import "./chat.js"; 4 | import "./chat.less"; 5 | -------------------------------------------------------------------------------- /source/components/checkbox/index.js: -------------------------------------------------------------------------------- 1 | import "./checkbox.js"; 2 | // import "./checkbox-three-state.js" 3 | import "./checkbox.less"; 4 | -------------------------------------------------------------------------------- /source/components/chips/index.js: -------------------------------------------------------------------------------- 1 | import "./chips.less"; 2 | -------------------------------------------------------------------------------- /source/components/cloak/cloak.less: -------------------------------------------------------------------------------- 1 | .cloak, .m4-cloak { 2 | opacity: 0!important; 3 | } 4 | 5 | .remove-cloak { 6 | animation: kf-fadeIn 1s linear forwards 7 | } 8 | 9 | .add-cloak { 10 | animation: kf-fadeOut 1s linear forwards 11 | } 12 | 13 | @keyframes kf-fadeIn { 14 | 100% { 15 | opacity: 1; 16 | } 17 | } 18 | 19 | @keyframes kf-fadeOut { 20 | 100% { 21 | opacity: 0; 22 | } 23 | } -------------------------------------------------------------------------------- /source/components/cloak/index.js: -------------------------------------------------------------------------------- 1 | import "./cloak.less"; 2 | -------------------------------------------------------------------------------- /source/components/clock/clock.less: -------------------------------------------------------------------------------- 1 | 2 | :root { 3 | --clock-background: transparent; 4 | --clock-color: #191919; 5 | --clock-font-size: 14px; 6 | } 7 | 8 | .dark-side { 9 | --clock-background: transparent; 10 | --clock-color: #dbdfe7; 11 | } 12 | 13 | .clock { 14 | font-size: var(--clock-font-size); 15 | display: flex; 16 | flex-direction: row; 17 | align-items: center; 18 | justify-content: flex-start; 19 | gap: 4px; 20 | background: var(--clock-background); 21 | color: var(--clock-color); 22 | 23 | &.show-column { 24 | align-items: flex-end !important; 25 | flex-direction: column; 26 | gap: 0; 27 | } 28 | 29 | .clock-time, .clock-date { 30 | white-space: nowrap; 31 | } 32 | } -------------------------------------------------------------------------------- /source/components/clock/index.js: -------------------------------------------------------------------------------- 1 | import "../../datetime/index.js"; 2 | import "./clock.less"; 3 | import "./clock.js"; 4 | -------------------------------------------------------------------------------- /source/components/collapse/index.js: -------------------------------------------------------------------------------- 1 | import "./collapse.js"; 2 | -------------------------------------------------------------------------------- /source/components/color-picker/index.js: -------------------------------------------------------------------------------- 1 | import "../input/index.js"; 2 | import "../radio/index.js"; 3 | import "../button/index.js"; 4 | import "../color-selector/index.js"; 5 | import "./color-picker.js"; 6 | import "./color-picker.less"; 7 | -------------------------------------------------------------------------------- /source/components/color-selector/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "../input/index.js"; 3 | import "../radio/index.js"; 4 | import "../button/index.js"; 5 | import "./color-selector.js"; 6 | import "./color-selector.less"; 7 | -------------------------------------------------------------------------------- /source/components/command-button/index.js: -------------------------------------------------------------------------------- 1 | import "./command-button.less"; 2 | -------------------------------------------------------------------------------- /source/components/container/index.js: -------------------------------------------------------------------------------- 1 | import "./container.less"; 2 | -------------------------------------------------------------------------------- /source/components/context-menu/context-menu.less: -------------------------------------------------------------------------------- 1 | @import "../../include/vars"; 2 | 3 | .context-menu { 4 | display: none; 5 | z-index: @zindex-fixed + 1; 6 | } -------------------------------------------------------------------------------- /source/components/context-menu/index.js: -------------------------------------------------------------------------------- 1 | import "./context-menu.less"; 2 | import "./context-menu.js"; 3 | -------------------------------------------------------------------------------- /source/components/cookie-disclaimer/index.js: -------------------------------------------------------------------------------- 1 | import "../cookie/index.js"; 2 | import "./cookie-disclaimer.js"; 3 | import "./cookie-disclaimer.less"; 4 | -------------------------------------------------------------------------------- /source/components/cookie/index.js: -------------------------------------------------------------------------------- 1 | import "./cookie.js"; 2 | -------------------------------------------------------------------------------- /source/components/countdown/index.js: -------------------------------------------------------------------------------- 1 | import "./countdown.js"; 2 | import "./countdown.less"; 3 | -------------------------------------------------------------------------------- /source/components/counter/index.js: -------------------------------------------------------------------------------- 1 | import "./counter.js"; 2 | -------------------------------------------------------------------------------- /source/components/cube/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "./cube.js"; 3 | import "./cube.less"; 4 | -------------------------------------------------------------------------------- /source/components/custom-checkbox/index.js: -------------------------------------------------------------------------------- 1 | import "./custom-checkbox.less"; 2 | import "./custom-checkbox.js"; 3 | -------------------------------------------------------------------------------- /source/components/d-menu/index.js: -------------------------------------------------------------------------------- 1 | import "./d-menu.less"; 2 | -------------------------------------------------------------------------------- /source/components/datepicker/index.js: -------------------------------------------------------------------------------- 1 | import "../wheelpicker/index.js"; 2 | import "./datepicker.js"; 3 | import "./datepicker.less"; 4 | -------------------------------------------------------------------------------- /source/components/dialog/index.js: -------------------------------------------------------------------------------- 1 | import "../button/index.js"; 2 | import "../../colors-css/index.js"; 3 | import "../../farbe/index.js"; 4 | import "./dialog.js"; 5 | import "./dialog.less"; 6 | -------------------------------------------------------------------------------- /source/components/directive/index.js: -------------------------------------------------------------------------------- 1 | import "./directive.less"; 2 | import "./directive.js"; 3 | -------------------------------------------------------------------------------- /source/components/donut/index.js: -------------------------------------------------------------------------------- 1 | import "./donut.js"; 2 | import "./donut.less"; 3 | -------------------------------------------------------------------------------- /source/components/double-select-box/index.js: -------------------------------------------------------------------------------- 1 | import "./double-select-box.js"; 2 | import "./double-select-box.less"; 3 | -------------------------------------------------------------------------------- /source/components/double-slider/index.js: -------------------------------------------------------------------------------- 1 | import "../slider/index.js"; 2 | import "./double-slider.js"; 3 | -------------------------------------------------------------------------------- /source/components/drag-items/index.js: -------------------------------------------------------------------------------- 1 | import "./drag-items.js"; 2 | import "./drag-items.less"; 3 | -------------------------------------------------------------------------------- /source/components/draggable/draggable.less: -------------------------------------------------------------------------------- 1 | .draggable { 2 | box-shadow: rgba(0, 0, 0, 0.35) 0 5px 15px!important; 3 | } 4 | -------------------------------------------------------------------------------- /source/components/draggable/index.js: -------------------------------------------------------------------------------- 1 | import "./draggable.js"; 2 | import "./draggable.less"; 3 | -------------------------------------------------------------------------------- /source/components/drop-menu/drop-menu.less: -------------------------------------------------------------------------------- 1 | :root { 2 | --drop-menu-toggle-color: #191919; 3 | } 4 | 5 | .dark-side { 6 | --drop-menu-toggle-color: #efefef; 7 | } 8 | 9 | .drop-menu { 10 | position: fixed!important; 11 | z-index: var(--zindex-fixed)!important; 12 | } 13 | 14 | .menu-toggle { 15 | padding-right: 4px!important; 16 | 17 | svg { 18 | fill: var(--drop-menu-toggle-color); 19 | transform: rotate(90deg); 20 | margin-left: auto; 21 | transition: transform .3s 22 | } 23 | 24 | &.active-toggle { 25 | svg { 26 | transform: rotate(270deg); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /source/components/drop-menu/index.js: -------------------------------------------------------------------------------- 1 | import "./drop-menu.less"; 2 | import "./drop-menu.js"; 3 | -------------------------------------------------------------------------------- /source/components/dropdown-button/dropdown-button.less: -------------------------------------------------------------------------------- 1 | @import (once) "../../include/vars"; 2 | @import (once) "../../include/mixins"; 3 | 4 | :root { 5 | --dropdown-button-toggle-color: #000; 6 | } 7 | 8 | .dark-side { 9 | --dropdown-button-toggle-color: #fff; 10 | } 11 | 12 | .dropdown-button { 13 | display: inline-block; 14 | position: relative; 15 | width: auto; 16 | height: 36px; 17 | line-height: 1; 18 | 19 | .dropdown-toggle::before { 20 | border-color: var(--dropdown-button-toggle-color); 21 | } 22 | } -------------------------------------------------------------------------------- /source/components/dropdown-button/index.js: -------------------------------------------------------------------------------- 1 | import "../button/index.js"; 2 | import "../dropdown/index.js"; 3 | import "./dropdown-button.less"; 4 | -------------------------------------------------------------------------------- /source/components/dropdown/index.js: -------------------------------------------------------------------------------- 1 | import "./dropdown.less"; 2 | import "./dropdown.js"; 3 | -------------------------------------------------------------------------------- /source/components/eval/index.js: -------------------------------------------------------------------------------- 1 | import "./eval.js"; 2 | -------------------------------------------------------------------------------- /source/components/export/index.js: -------------------------------------------------------------------------------- 1 | import "./export.js"; 2 | -------------------------------------------------------------------------------- /source/components/file-input/index.js: -------------------------------------------------------------------------------- 1 | import "../input-common/index.js"; 2 | import "../button/index.js"; 3 | import "./file.js"; 4 | import "./file.less"; 5 | -------------------------------------------------------------------------------- /source/components/flip-card/index.js: -------------------------------------------------------------------------------- 1 | import "./flip-card.less"; 2 | -------------------------------------------------------------------------------- /source/components/form/index.js: -------------------------------------------------------------------------------- 1 | import "./form.less"; 2 | -------------------------------------------------------------------------------- /source/components/gauge/index.js: -------------------------------------------------------------------------------- 1 | import "./gauge.less"; 2 | import "./gauge.js"; 3 | -------------------------------------------------------------------------------- /source/components/gradient-box/index.js: -------------------------------------------------------------------------------- 1 | import "./gradient-box.js"; 2 | -------------------------------------------------------------------------------- /source/components/gravatar/index.js: -------------------------------------------------------------------------------- 1 | import "../md5/index.js"; 2 | import "./gravatar.js"; 3 | -------------------------------------------------------------------------------- /source/components/grid/index.js: -------------------------------------------------------------------------------- 1 | /** @format */ 2 | 3 | // import "./grid-old.less" 4 | import "./grid.less"; 5 | -------------------------------------------------------------------------------- /source/components/h-menu/index.js: -------------------------------------------------------------------------------- 1 | import "./h-menu.less"; 2 | -------------------------------------------------------------------------------- /source/components/hamburger/index.js: -------------------------------------------------------------------------------- 1 | import "./hamburger.less"; 2 | -------------------------------------------------------------------------------- /source/components/hero/hero.less: -------------------------------------------------------------------------------- 1 | @import (once) "../../include/vars"; 2 | @import (once) "../../include/mixins"; 3 | 4 | :root { 5 | --hero-background: #ffffff; 6 | --hero-color: #191919; 7 | } 8 | 9 | .dark-side { 10 | --hero-background: #1e1f22; 11 | --hero-color: #dbdfe7; 12 | } 13 | 14 | .hero { 15 | padding: 40px 20px; 16 | background-position: center; 17 | background-repeat: no-repeat; 18 | background-size: cover; 19 | position: relative; 20 | background-color: var(--hero-background); 21 | color: var(--hero-color); 22 | } 23 | 24 | @media all and (min-width: @md) { 25 | .hero { 26 | padding: 160px 80px; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /source/components/hero/index.js: -------------------------------------------------------------------------------- 1 | import "./hero.less"; 2 | -------------------------------------------------------------------------------- /source/components/hint/hint.less: -------------------------------------------------------------------------------- 1 | @import (once) "../../include/vars"; 2 | @import (once) "../../include/mixins"; 3 | 4 | :root { 5 | --hint-z-index: @zindex-tooltip; 6 | --hint-border-radius: 6px; 7 | --hint-background: #FFFCC0; 8 | --hint-color: #1d1d1d; 9 | } 10 | 11 | .dark-side { 12 | --hint-background: #26282e; 13 | --hint-color: #ffffff; 14 | } 15 | 16 | .hint { 17 | display: block; 18 | position: fixed; 19 | z-index: var(--hint-z-index); 20 | background-color: var(--hint-background); 21 | color: var(--hint-color); 22 | font-size: 14px; 23 | padding: 10px; 24 | border-radius: var(--hint-border-radius); 25 | box-shadow: 2px 2px 5px 0 var(--shadow-color); 26 | } -------------------------------------------------------------------------------- /source/components/hint/index.js: -------------------------------------------------------------------------------- 1 | import "./hint.js"; 2 | import "./hint.less"; 3 | -------------------------------------------------------------------------------- /source/components/hotkey/index.js: -------------------------------------------------------------------------------- 1 | import "./hotkey.js"; 2 | -------------------------------------------------------------------------------- /source/components/hover-box/hover-box.less: -------------------------------------------------------------------------------- 1 | :root { 2 | --hover-box-effect-color: hsla(0,0%,80%,56%); 3 | } 4 | 5 | .dark-side { 6 | --hover-box-effect-color: hsla(234,78%,62%,26%); 7 | } 8 | 9 | .hover-box { 10 | --x: 0; 11 | --y: 0; 12 | --size: 0; 13 | position: relative; 14 | overflow: hidden; 15 | border-color: var(--hover-box-effect-color); 16 | transition: border-color .5s ease; 17 | 18 | @media (hover: hover) { 19 | &:hover { 20 | border-color: var(--hover-box-effect-color); 21 | &::before { 22 | content: ""; 23 | position: absolute; 24 | left: var(--x); 25 | top: var(--y); 26 | width: calc(4 * var(--size)); 27 | height: calc(4 * var(--size)); 28 | background: radial-gradient(var(--hover-box-effect-color), transparent 40%); 29 | transform: translate(-50%, -50%); 30 | transition: width .2s ease, height .2s ease; 31 | pointer-events: none; 32 | } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /source/components/hover-box/index.js: -------------------------------------------------------------------------------- 1 | import "./hover-box.less"; 2 | import "./hover-box.js"; 3 | -------------------------------------------------------------------------------- /source/components/html-container/index.js: -------------------------------------------------------------------------------- 1 | import "./html-container.js"; 2 | -------------------------------------------------------------------------------- /source/components/icon-box/index.js: -------------------------------------------------------------------------------- 1 | import "./icon-box.less"; 2 | -------------------------------------------------------------------------------- /source/components/image-box/index.js: -------------------------------------------------------------------------------- 1 | import "./image-box.js"; 2 | -------------------------------------------------------------------------------- /source/components/image-button/index.js: -------------------------------------------------------------------------------- 1 | import "./image-button.less"; 2 | -------------------------------------------------------------------------------- /source/components/image-compare/image-compare.less: -------------------------------------------------------------------------------- 1 | @import (once) "../../include/vars"; 2 | @import (once) "../../include/mixins"; 3 | 4 | .image-compare { 5 | position: relative; 6 | display: block; 7 | 8 | img { 9 | display: none; 10 | } 11 | 12 | .image-container, .image-container-overlay { 13 | position: absolute; 14 | top: 0; 15 | left: 0; 16 | width: 100%; 17 | height: 100%; 18 | overflow: hidden; 19 | z-index: 1; 20 | 21 | &.image-container-overlay { 22 | z-index: 2; 23 | } 24 | 25 | .image-wrapper { 26 | background-size: cover; 27 | } 28 | 29 | } 30 | 31 | .image-slider { 32 | z-index: 3; 33 | position: absolute; 34 | cursor: ew-resize; 35 | width: 32px; 36 | height: 32px; 37 | background-color: @orange; 38 | opacity: 0.7; 39 | border-radius: @borderRadius; 40 | .rotate(45deg); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /source/components/image-compare/index.js: -------------------------------------------------------------------------------- 1 | import "./image-compare.js"; 2 | import "./image-compare.less"; 3 | -------------------------------------------------------------------------------- /source/components/image-grid/image-grid.less: -------------------------------------------------------------------------------- 1 | @import (once) "../../include/vars"; 2 | @import (once) "../../include/mixins"; 3 | 4 | .image-grid { 5 | display: flex; 6 | flex-flow: row wrap; 7 | } 8 | 9 | .image-grid__item { 10 | display: block; 11 | overflow: hidden; 12 | 13 | &-landscape { 14 | width: 320px; 15 | height: 180px; 16 | } 17 | 18 | &-portrait { 19 | width: 160px; 20 | height: 180px; 21 | } 22 | } 23 | 24 | .image-grid__item { 25 | img { 26 | display: block; 27 | width: 100%; 28 | height: 100%; 29 | } 30 | } 31 | 32 | .image-grid { 33 | &.half-size { 34 | .image-grid__item { 35 | &-landscape { 36 | width: 160px; 37 | height: 90px; 38 | } 39 | 40 | &-portrait { 41 | width: 80px; 42 | height: 90px; 43 | } 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /source/components/image-grid/index.js: -------------------------------------------------------------------------------- 1 | import "./image-grig.js"; 2 | import "./image-grid.less"; 3 | -------------------------------------------------------------------------------- /source/components/image-magnifier/image-magnifier.less: -------------------------------------------------------------------------------- 1 | @import (once) "../../include/vars"; 2 | @import (once) "../../include/mixins"; 3 | 4 | .image-magnifier { 5 | position: relative; 6 | display: block; 7 | cursor: none; 8 | height: auto; 9 | 10 | img { 11 | vertical-align: middle; 12 | width: 100%; 13 | height: auto; 14 | max-height: 100%; 15 | } 16 | 17 | .image-magnifier-glass { 18 | position: absolute; 19 | border-radius: 0; 20 | cursor: none; 21 | width: 100px; 22 | height: 100px; 23 | border: 4px solid rgba(255,255,255,.7); 24 | overflow: hidden; 25 | z-index: 2; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /source/components/image-magnifier/index.js: -------------------------------------------------------------------------------- 1 | import "./image-magnifier.js"; 2 | import "./image-magnifier.less"; 3 | -------------------------------------------------------------------------------- /source/components/image-placeholder/index.js: -------------------------------------------------------------------------------- 1 | import "./image-placeholder.js"; 2 | -------------------------------------------------------------------------------- /source/components/info-box/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "../../colors-css/index.js"; 3 | import "./info-box.js"; 4 | import "./info-box.less"; 5 | -------------------------------------------------------------------------------- /source/components/info-button/index.js: -------------------------------------------------------------------------------- 1 | import "./info-button.less"; 2 | -------------------------------------------------------------------------------- /source/components/info-panel/index.js: -------------------------------------------------------------------------------- 1 | import "./info-panel.less"; 2 | -------------------------------------------------------------------------------- /source/components/info-panel/info-panel.less: -------------------------------------------------------------------------------- 1 | @import (once) "../../include/vars"; 2 | @import (once) "../../include/mixins"; 3 | 4 | .info-panel { 5 | display: block; 6 | background-color: @white; 7 | color: @dark; 8 | text-align: center; 9 | } 10 | 11 | .info-panel-header { 12 | padding: 30px; 13 | text-transform: uppercase; 14 | font-size: 18px; 15 | font-weight: 500; 16 | letter-spacing: 2px; 17 | line-height: 1.2; 18 | white-space: nowrap; 19 | } 20 | 21 | .info-panel-content { 22 | padding: 20px 40px; 23 | } 24 | 25 | .info-panel-footer { 26 | padding: 40px; 27 | } 28 | -------------------------------------------------------------------------------- /source/components/input-common/index.js: -------------------------------------------------------------------------------- 1 | import "./input-common.less"; 2 | -------------------------------------------------------------------------------- /source/components/input-mask/index.js: -------------------------------------------------------------------------------- 1 | import "./input-mask.js"; 2 | -------------------------------------------------------------------------------- /source/components/input-material/index.js: -------------------------------------------------------------------------------- 1 | import "../input-common/index.js"; 2 | import "./input-material.js"; 3 | import "./input-material.less"; 4 | -------------------------------------------------------------------------------- /source/components/input/index.js: -------------------------------------------------------------------------------- 1 | import "../input-common/index.js"; 2 | import "../button/index.js"; 3 | import "../select/index.js"; 4 | import "./input.js"; 5 | import "./input.less"; 6 | -------------------------------------------------------------------------------- /source/components/keypad/index.js: -------------------------------------------------------------------------------- 1 | import "../input-common/index.js"; 2 | import "./keypad.js"; 3 | import "./keypad.less"; 4 | -------------------------------------------------------------------------------- /source/components/lightbox/index.js: -------------------------------------------------------------------------------- 1 | import "../button/index.js"; 2 | import "./lightbox.js"; 3 | import "./lightbox.less"; 4 | -------------------------------------------------------------------------------- /source/components/list/index.js: -------------------------------------------------------------------------------- 1 | /** @format */ 2 | 3 | import "./list.less"; 4 | import "./list.js"; 5 | -------------------------------------------------------------------------------- /source/components/list/list.less: -------------------------------------------------------------------------------- 1 | :root { 2 | 3 | } 4 | 5 | .dark-side { 6 | 7 | } 8 | 9 | .list-component { 10 | 11 | } 12 | 13 | .list-top { 14 | 15 | } 16 | 17 | .list-search-block { 18 | 19 | } 20 | 21 | .list-rows-block { 22 | 23 | } 24 | 25 | .list-bottom { 26 | 27 | } 28 | 29 | .list-info { 30 | 31 | } 32 | 33 | .list-pagination { 34 | 35 | } -------------------------------------------------------------------------------- /source/components/listview/index.js: -------------------------------------------------------------------------------- 1 | import "../checkbox/index.js"; 2 | import "./listview.js"; 3 | import "./listview.less"; 4 | -------------------------------------------------------------------------------- /source/components/marquee/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "./marquee.js"; 3 | import "./marquee.less"; 4 | -------------------------------------------------------------------------------- /source/components/marquee/marquee.less: -------------------------------------------------------------------------------- 1 | .marquee { 2 | display: block; 3 | position: relative; 4 | overflow: hidden; 5 | } 6 | 7 | .marquee { 8 | .marquee__item { 9 | display: block; 10 | position: absolute; 11 | white-space: nowrap; 12 | color: inherit; 13 | 14 | &.moveLeftRight { 15 | top: 50%; 16 | transform: translateY(-50%); 17 | left: calc(100% + 20px); 18 | } 19 | 20 | &.moveUpDown { 21 | left: 50%; 22 | transform: translateX(-50%); 23 | top: calc(100% + 20px); 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /source/components/master/index.js: -------------------------------------------------------------------------------- 1 | import "./master.js"; 2 | import "./master.less"; 3 | -------------------------------------------------------------------------------- /source/components/md5/index.js: -------------------------------------------------------------------------------- 1 | import "./md5.js"; 2 | -------------------------------------------------------------------------------- /source/components/media-player/index.js: -------------------------------------------------------------------------------- 1 | import "./media-player.less"; 2 | -------------------------------------------------------------------------------- /source/components/navview/index.js: -------------------------------------------------------------------------------- 1 | import "../input/index.js"; 2 | import "../button/index.js"; 3 | import "../hamburger/index.js"; 4 | import "./navview.js"; 5 | import "./navview.less"; 6 | -------------------------------------------------------------------------------- /source/components/notify/index.js: -------------------------------------------------------------------------------- 1 | import "./notify.js"; 2 | import "./notify.less"; 3 | -------------------------------------------------------------------------------- /source/components/overlay/index.js: -------------------------------------------------------------------------------- 1 | import "./overlay.less"; 2 | -------------------------------------------------------------------------------- /source/components/package-manager/index.js: -------------------------------------------------------------------------------- 1 | import "../button/index.js"; 2 | import "../tabs/index.js"; 3 | import "./package-manager.less"; 4 | import "./package-manager.js"; 5 | -------------------------------------------------------------------------------- /source/components/package-manager/package-manager.less: -------------------------------------------------------------------------------- 1 | .package-manager { 2 | .pm-command { 3 | padding: .5rem; 4 | font-size: 14px; 5 | background: var(--code-background); 6 | color: var(--code-color); 7 | position: relative; 8 | 9 | code { 10 | background: transparent; 11 | } 12 | 13 | button { 14 | position: absolute; 15 | right: 8px; 16 | top: 6px; 17 | 18 | } 19 | } 20 | 21 | svg { 22 | fill: var(--code-color); 23 | width: 16px; 24 | height: 16px; 25 | } 26 | 27 | li a { 28 | background: var(--code-background); 29 | } 30 | 31 | li a > svg { 32 | margin-right: 6px; 33 | } 34 | } -------------------------------------------------------------------------------- /source/components/page-control/index.js: -------------------------------------------------------------------------------- 1 | import "./pagecontrol.js"; 2 | import "./pagecontrol.less"; 3 | -------------------------------------------------------------------------------- /source/components/pagination/index.js: -------------------------------------------------------------------------------- 1 | import "./pagination.js"; 2 | import "./pagination.less"; 3 | -------------------------------------------------------------------------------- /source/components/panel/index.js: -------------------------------------------------------------------------------- 1 | import "../button/index.js"; 2 | import "../draggable/index.js"; 3 | import "../collapse/index.js"; 4 | import "./panel.js"; 5 | import "./panel.less"; 6 | -------------------------------------------------------------------------------- /source/components/popover/index.js: -------------------------------------------------------------------------------- 1 | import "./popover.js"; 2 | import "./popover.less"; 3 | -------------------------------------------------------------------------------- /source/components/progress/index.js: -------------------------------------------------------------------------------- 1 | import "./progress.js"; 2 | import "./progress.less"; 3 | -------------------------------------------------------------------------------- /source/components/radio/index.js: -------------------------------------------------------------------------------- 1 | import "./radio.less"; 2 | import "./radio.js"; 3 | -------------------------------------------------------------------------------- /source/components/rating/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "./rating.js"; 3 | import "./rating.less"; 4 | -------------------------------------------------------------------------------- /source/components/remark/index.js: -------------------------------------------------------------------------------- 1 | import "./remark.less"; 2 | -------------------------------------------------------------------------------- /source/components/remote-dataset/index.js: -------------------------------------------------------------------------------- 1 | import "../pagination/index.js"; 2 | import "./remote-dataset.less"; 3 | import "./remote-dataset.js"; 4 | -------------------------------------------------------------------------------- /source/components/remote-table/index.js: -------------------------------------------------------------------------------- 1 | import "../table/table.less"; 2 | import "../pagination/index.js"; 3 | import "./remote-table.less"; 4 | import "./remote-table.js"; 5 | -------------------------------------------------------------------------------- /source/components/remote-table/remote-table.less: -------------------------------------------------------------------------------- 1 | @import "../../include/vars"; 2 | 3 | :root { 4 | 5 | } 6 | 7 | .dark-side { 8 | 9 | } 10 | 11 | .remote-table { 12 | .search-block { 13 | margin-bottom: 10px; 14 | } 15 | } -------------------------------------------------------------------------------- /source/components/resizable/index.js: -------------------------------------------------------------------------------- 1 | import "./resizable.js"; 2 | import "./resizeable.less"; 3 | -------------------------------------------------------------------------------- /source/components/resizable/resizeable.less: -------------------------------------------------------------------------------- 1 | @import (once) "../../include/vars"; 2 | @import (once) "../../include/mixins"; 3 | 4 | .resize-element { 5 | display: block; 6 | position: absolute; 7 | right: -1px; 8 | bottom: -1px; 9 | z-index: 101; 10 | cursor: nwse-resize; 11 | width: 12px; 12 | height: 12px; 13 | 14 | &::after { 15 | position: absolute; 16 | display: block; 17 | border-bottom: 12px solid @green; 18 | border-left: 12px solid transparent; 19 | content:""; 20 | right: -2px; 21 | bottom: -2px; 22 | } 23 | 24 | &.resize-element-disabled { 25 | cursor: default; 26 | &::after { 27 | border-bottom-color: @gray; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /source/components/resizer/index.js: -------------------------------------------------------------------------------- 1 | import "./resizer.js"; 2 | -------------------------------------------------------------------------------- /source/components/ribbon-menu/index.js: -------------------------------------------------------------------------------- 1 | import "./ribbon-menu.js"; 2 | import "./ribbon-menu.less"; 3 | -------------------------------------------------------------------------------- /source/components/ribbon/index.js: -------------------------------------------------------------------------------- 1 | import "./ribbon.less"; 2 | -------------------------------------------------------------------------------- /source/components/ripple/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "./ripple.js"; 3 | import "./ripple.less"; 4 | -------------------------------------------------------------------------------- /source/components/ripple/ripple.less: -------------------------------------------------------------------------------- 1 | .ripple { 2 | display: block; 3 | width: 0; 4 | height: 0; 5 | border-radius: 100%; 6 | background: rgba(255, 255, 255, 0.4); 7 | transform: scale(0); 8 | position: absolute; 9 | opacity: 1; 10 | } 11 | 12 | .rippleEffect { 13 | animation: rippleDrop .5s linear; 14 | } 15 | 16 | @keyframes rippleDrop { 17 | 100% { 18 | transform: scale(2.5); 19 | opacity: 0; 20 | } 21 | } -------------------------------------------------------------------------------- /source/components/scrollbar/index.js: -------------------------------------------------------------------------------- 1 | import "./scrollbar.less"; 2 | -------------------------------------------------------------------------------- /source/components/select/index.js: -------------------------------------------------------------------------------- 1 | import "../input-common/index.js"; 2 | import "../input/index.js"; 3 | import "../dropdown/index.js"; 4 | import "../tag/index.js"; 5 | import "../button-group/index.js"; 6 | import "./select.js"; 7 | import "./select.less"; 8 | -------------------------------------------------------------------------------- /source/components/shadows/index.js: -------------------------------------------------------------------------------- 1 | import "./shadows.less"; 2 | -------------------------------------------------------------------------------- /source/components/shortcut/index.js: -------------------------------------------------------------------------------- 1 | import "./shortcut.less"; 2 | -------------------------------------------------------------------------------- /source/components/sidebar/index.js: -------------------------------------------------------------------------------- 1 | import "../input/index.js"; 2 | import "../hamburger/index.js"; 3 | import "./sidebar.js"; 4 | import "./sidebar.less"; 5 | -------------------------------------------------------------------------------- /source/components/sidenav-counter/index.js: -------------------------------------------------------------------------------- 1 | import "./sidenav.js"; 2 | import "./sidenav.less"; 3 | -------------------------------------------------------------------------------- /source/components/sidenav-m3/index.js: -------------------------------------------------------------------------------- 1 | import "./sidenav-m3.less"; 2 | -------------------------------------------------------------------------------- /source/components/sidenav-simple/index.js: -------------------------------------------------------------------------------- 1 | import "./sidenav-simple.less"; 2 | -------------------------------------------------------------------------------- /source/components/skill-box/index.js: -------------------------------------------------------------------------------- 1 | import "./skill-box.less"; 2 | -------------------------------------------------------------------------------- /source/components/slider/index.js: -------------------------------------------------------------------------------- 1 | import "./slider.js"; 2 | import "./slider.less"; 3 | -------------------------------------------------------------------------------- /source/components/social-box/index.js: -------------------------------------------------------------------------------- 1 | import "./social-box.less"; 2 | -------------------------------------------------------------------------------- /source/components/sorter/index.js: -------------------------------------------------------------------------------- 1 | import "./sorter.js"; 2 | -------------------------------------------------------------------------------- /source/components/spinner/index.js: -------------------------------------------------------------------------------- 1 | import "../input-common/index.js"; 2 | import "../button/index.js"; 3 | import "./spinner.js"; 4 | import "./spinner.less"; 5 | -------------------------------------------------------------------------------- /source/components/split-button/index.js: -------------------------------------------------------------------------------- 1 | import "./split-button.less"; 2 | -------------------------------------------------------------------------------- /source/components/splitter/index.js: -------------------------------------------------------------------------------- 1 | import "./splitter.js"; 2 | import "./splitter.less"; 3 | -------------------------------------------------------------------------------- /source/components/stepper/index.js: -------------------------------------------------------------------------------- 1 | import "./stepper.js"; 2 | import "./stepper.less"; 3 | -------------------------------------------------------------------------------- /source/components/storage/index.js: -------------------------------------------------------------------------------- 1 | import "./storage.js"; 2 | -------------------------------------------------------------------------------- /source/components/streamer/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "./streamer.js"; 3 | import "./streamer.less"; 4 | -------------------------------------------------------------------------------- /source/components/swipe/index.js: -------------------------------------------------------------------------------- 1 | import "./swipe.js"; 2 | -------------------------------------------------------------------------------- /source/components/switch/index.js: -------------------------------------------------------------------------------- 1 | import "../input-common/index.js"; 2 | import "./switch.js"; 3 | import "./switch.less"; 4 | -------------------------------------------------------------------------------- /source/components/t-menu/index.js: -------------------------------------------------------------------------------- 1 | import "./t-menu.less"; 2 | -------------------------------------------------------------------------------- /source/components/table/index.js: -------------------------------------------------------------------------------- 1 | import "../activity/index.js"; 2 | import "../checkbox/index.js"; 3 | import "../radio/index.js"; 4 | import "../select/index.js"; 5 | import "../button/index.js"; 6 | import "../export/index.js"; 7 | import "./table.js"; 8 | import "./table.less"; 9 | -------------------------------------------------------------------------------- /source/components/tabs-material/index.js: -------------------------------------------------------------------------------- 1 | import "./tabs-material.js"; 2 | import "./tabs-material.less"; 3 | -------------------------------------------------------------------------------- /source/components/tabs/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "../hamburger/index.js"; 3 | import "./tabs.js"; 4 | import "./tabs.less"; 5 | -------------------------------------------------------------------------------- /source/components/tag-input/index.js: -------------------------------------------------------------------------------- 1 | import "../input-common/index.js"; 2 | import "../tag/index.js"; 3 | import "../button/index.js"; 4 | import "./tag-input.js"; 5 | import "./tag-input.less"; 6 | -------------------------------------------------------------------------------- /source/components/tag/index.js: -------------------------------------------------------------------------------- 1 | import "./tag.less"; 2 | -------------------------------------------------------------------------------- /source/components/task-bar/index.js: -------------------------------------------------------------------------------- 1 | import "./task-bar.less"; 2 | import "./task-bar.js"; 3 | -------------------------------------------------------------------------------- /source/components/template/index.js: -------------------------------------------------------------------------------- 1 | import "./template.js"; 2 | -------------------------------------------------------------------------------- /source/components/textarea/index.js: -------------------------------------------------------------------------------- 1 | import "../input-common/index.js"; 2 | import "../button/index.js"; 3 | import "./textarea.js"; 4 | import "./textarea.less"; 5 | -------------------------------------------------------------------------------- /source/components/theme-switcher/index.js: -------------------------------------------------------------------------------- 1 | import "../storage/index.js"; 2 | import "./theme-switcher.less"; 3 | import "./theme-switcher.js"; 4 | -------------------------------------------------------------------------------- /source/components/tile/index.js: -------------------------------------------------------------------------------- 1 | import "../carousel/animations.js"; 2 | import "../../colors-css/index.js"; 3 | import "../../farbe/index.js"; 4 | import "./tile.js"; 5 | import "./tile.less"; 6 | -------------------------------------------------------------------------------- /source/components/timeline/index.js: -------------------------------------------------------------------------------- 1 | import "./timeline.less"; 2 | -------------------------------------------------------------------------------- /source/components/timepicker/index.js: -------------------------------------------------------------------------------- 1 | import "../wheelpicker/index.js"; 2 | import "./timepicker.js"; 3 | import "./timepicker.less"; 4 | -------------------------------------------------------------------------------- /source/components/toast/index.js: -------------------------------------------------------------------------------- 1 | import "./toast.js"; 2 | import "./toast.less"; 3 | -------------------------------------------------------------------------------- /source/components/tokenizer/index.js: -------------------------------------------------------------------------------- 1 | import "./tokenizer.js"; 2 | -------------------------------------------------------------------------------- /source/components/toolbar/index.js: -------------------------------------------------------------------------------- 1 | import "./toolbar.less"; 2 | -------------------------------------------------------------------------------- /source/components/transform-button/index.js: -------------------------------------------------------------------------------- 1 | import "./transform-button.less"; 2 | -------------------------------------------------------------------------------- /source/components/treeview/index.js: -------------------------------------------------------------------------------- 1 | import "../button/index.js"; 2 | import "../dropdown/index.js"; 3 | import "../dropdown-button/index.js"; 4 | import "./treeview.js"; 5 | import "./treeview.less"; 6 | -------------------------------------------------------------------------------- /source/components/typer/index.js: -------------------------------------------------------------------------------- 1 | import "./typer.js"; 2 | import "./typer.less"; 3 | -------------------------------------------------------------------------------- /source/components/typer/typer.less: -------------------------------------------------------------------------------- 1 | .typer { 2 | position: relative; 3 | text-align: left; 4 | display: inline-flex; 5 | justify-content: flex-start; 6 | } 7 | 8 | .typer-text { 9 | } 10 | 11 | .typer-cursor { 12 | transition: all .1s; 13 | } -------------------------------------------------------------------------------- /source/components/v-menu/index.js: -------------------------------------------------------------------------------- 1 | import "./v-menu.less"; 2 | -------------------------------------------------------------------------------- /source/components/validator/index.js: -------------------------------------------------------------------------------- 1 | import "../../farbe/index.js"; 2 | import "./validator.js"; 3 | -------------------------------------------------------------------------------- /source/components/vegas/index.js: -------------------------------------------------------------------------------- 1 | import "./vegas.js"; 2 | import "./vegas.less"; 3 | -------------------------------------------------------------------------------- /source/components/video-player/index.js: -------------------------------------------------------------------------------- 1 | import "../media-player/index.js"; 2 | import "../slider/index.js"; 3 | import "../button/index.js"; 4 | import "./video-player.less"; 5 | import "./video-player.js"; 6 | -------------------------------------------------------------------------------- /source/components/video-player/video-player.less: -------------------------------------------------------------------------------- 1 | :root { 2 | --player-wrapper-background: #000; 3 | } 4 | 5 | .dark-side { 6 | 7 | } 8 | 9 | .video-player { 10 | display: flex; 11 | flex-direction: column; 12 | border-radius: 4px; 13 | 14 | .video-wrapper { 15 | position: relative; 16 | width: 100%; 17 | height: auto; 18 | max-height: calc(100% - 48px); 19 | background: var(--player-wrapper-background); 20 | padding: 0; 21 | margin-top: 4px; 22 | } 23 | 24 | .controls { 25 | position: relative; 26 | padding-top: 4px; 27 | margin-top: auto; 28 | } 29 | 30 | &.full-screen { 31 | .video-wrapper { 32 | position: absolute; 33 | top: 50%; 34 | transform: translateY(-50%); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /source/components/viewport-check/index.js: -------------------------------------------------------------------------------- 1 | import "./viewport-check.js"; 2 | -------------------------------------------------------------------------------- /source/components/wheelpicker/index.js: -------------------------------------------------------------------------------- 1 | import "./wheelpicker.less"; 2 | -------------------------------------------------------------------------------- /source/components/window/index.js: -------------------------------------------------------------------------------- 1 | /** @format */ 2 | 3 | import "../draggable/index.js"; 4 | import "../resizable/index.js"; 5 | import "../button/index.js"; 6 | import "../../colors-css/index.js"; 7 | import "./window.js"; 8 | import "./window.less"; 9 | -------------------------------------------------------------------------------- /source/components/wizard-classic/index.js: -------------------------------------------------------------------------------- 1 | import "./wizard-classic.less"; 2 | import "./wizard-classic.js"; 3 | -------------------------------------------------------------------------------- /source/components/wizard/index.js: -------------------------------------------------------------------------------- 1 | import "../button/index.js"; 2 | import "./wizard.js"; 3 | import "./wizard.less"; 4 | -------------------------------------------------------------------------------- /source/components/working-tree/index.js: -------------------------------------------------------------------------------- 1 | import "../bulls/bulls.js"; 2 | import "./working-tree.less"; 3 | import "./working-tree.js"; 4 | -------------------------------------------------------------------------------- /source/core/index.js: -------------------------------------------------------------------------------- 1 | import "../string/index.js"; 2 | import "./global.js"; 3 | import "./metro.js"; 4 | -------------------------------------------------------------------------------- /source/default.js: -------------------------------------------------------------------------------- 1 | import "./reset/index.js"; 2 | import "./runtime.js"; 3 | import "./i18n/index.js"; 4 | import "./common-css/index.js"; 5 | import "./colors-css/index.js"; 6 | import "./components/index.js"; 7 | -------------------------------------------------------------------------------- /source/dom/index.js: -------------------------------------------------------------------------------- 1 | import { $ } from "@olton/dom"; 2 | 3 | globalThis.$ = $; 4 | globalThis.Dom = $; 5 | -------------------------------------------------------------------------------- /source/extensions/index.js: -------------------------------------------------------------------------------- 1 | import * as ArrayExt from "./array.js"; 2 | import * as NumberExt from "./number.js"; 3 | import * as StringExt from "./string.js"; 4 | 5 | export { ArrayExt, NumberExt, StringExt }; 6 | -------------------------------------------------------------------------------- /source/extensions/number.js: -------------------------------------------------------------------------------- 1 | (() => { 2 | // biome-ignore lint/suspicious/noRedundantUseStrict: 3 | "use strict"; 4 | 5 | /** 6 | * Number.prototype.format(n, x, s, c) 7 | * 8 | * @param n: length of decimal 9 | * @param x: length of whole part 10 | * @param s: sections delimiter 11 | * @param c: decimal delimiter 12 | */ 13 | Number.prototype.format = function (n, x, s, c) { 14 | const re = `\\d(?=(\\d{${x || 3}})+${n > 0 ? "\\D" : "$"})`; 15 | const num = this.toFixed(Math.max(0, ~~n)); 16 | 17 | return (c ? num.replace(".", c) : num).replace(new RegExp(re, "g"), `$&${s || ","}`); 18 | }; 19 | })(); 20 | -------------------------------------------------------------------------------- /source/farbe/index.js: -------------------------------------------------------------------------------- 1 | import { Farbe, MetroColorPalette, Palette, Primitives, Routines, StandardColorPalette, info } from "@olton/farbe"; 2 | 3 | globalThis.Farbe = Farbe; 4 | globalThis.farbe = (c) => new Farbe(c); 5 | 6 | globalThis.Farbe.Routines = Routines; 7 | globalThis.Farbe.Palette = Palette; 8 | globalThis.Farbe.StandardColors = StandardColorPalette; 9 | globalThis.Farbe.MetroColors = MetroColorPalette; 10 | globalThis.Farbe.Primitives = Primitives; 11 | globalThis.Farbe.info = info; 12 | -------------------------------------------------------------------------------- /source/guardian/index.js: -------------------------------------------------------------------------------- 1 | import * as G from "@olton/guardian"; 2 | 3 | globalThis.G = G; 4 | -------------------------------------------------------------------------------- /source/hooks/index.js: -------------------------------------------------------------------------------- 1 | import * as Hooks from "@olton/hooks"; 2 | 3 | globalThis.Hooks = Hooks; 4 | -------------------------------------------------------------------------------- /source/html/index.js: -------------------------------------------------------------------------------- 1 | import { HTML, CSS, cssLoader, info, jsLoader, render } from "@olton/html"; 2 | 3 | globalThis.HTML = { 4 | cssLoader, 5 | jsLoader, 6 | render, 7 | ...HTML, 8 | ...CSS, 9 | info, 10 | }; 11 | -------------------------------------------------------------------------------- /source/i18n.js: -------------------------------------------------------------------------------- 1 | import "./i18n/index.js"; 2 | -------------------------------------------------------------------------------- /source/i18n/index.js: -------------------------------------------------------------------------------- 1 | import "./en.js"; 2 | import "./uk.js"; 3 | import "./pt.js"; 4 | import "./pt-BR.js"; 5 | import "./es.js"; 6 | import "./es-ES.js"; 7 | import "./de.js"; 8 | import "./fr.js"; 9 | import "./it.js"; 10 | import "./zh.js"; 11 | import "./hi.js"; 12 | import "./pl.js"; 13 | -------------------------------------------------------------------------------- /source/icons.js: -------------------------------------------------------------------------------- 1 | import "./icons/index.js"; 2 | -------------------------------------------------------------------------------- /source/icons/base.less: -------------------------------------------------------------------------------- 1 | [class^="mif-"], [class*=" mif-"] { 2 | /* use !important to prevent issues with browser extensions that change fonts */ 3 | font-family: 'metro-ui-icons-core-set' !important; 4 | speak: never; 5 | font-style: normal; 6 | font-weight: normal; 7 | font-variant: normal; 8 | text-transform: none; 9 | line-height: 1; 10 | 11 | /* Better Font Rendering =========== */ 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | } 15 | 16 | .mif-lg { 17 | font-size: 1.2em; 18 | } 19 | 20 | .mif-2x { 21 | font-size: 1.5em; 22 | } 23 | .mif-3x { 24 | font-size: 2em; 25 | } 26 | .mif-4x { 27 | font-size: 2.5em; 28 | } 29 | .mif-5x { 30 | font-size: 3em; 31 | } 32 | .mif-6x { 33 | font-size: 3.5em; 34 | } 35 | .mif-7x { 36 | font-size: 4em; 37 | } 38 | .mif-8x { 39 | font-size: 4.5em; 40 | } 41 | .mif-9x { 42 | font-size: 5em; 43 | } 44 | .mif-10x { 45 | font-size: 5.5em; 46 | } 47 | 48 | .mif-panda:before { 49 | content: "🐼"; 50 | } -------------------------------------------------------------------------------- /source/icons/index.js: -------------------------------------------------------------------------------- 1 | import "./font.less"; 2 | import "./base.less"; 3 | import "./icons.less"; 4 | -------------------------------------------------------------------------------- /source/index.js: -------------------------------------------------------------------------------- 1 | import "./default.js"; 2 | import "./icons/index.js"; 3 | -------------------------------------------------------------------------------- /source/model/index.js: -------------------------------------------------------------------------------- 1 | import Model from "@olton/model"; 2 | 3 | globalThis.Model = Model; 4 | -------------------------------------------------------------------------------- /source/reset/index.js: -------------------------------------------------------------------------------- 1 | import "./reset.less"; 2 | -------------------------------------------------------------------------------- /source/router/index.js: -------------------------------------------------------------------------------- 1 | import Router from "@olton/router"; 2 | 3 | globalThis.Router = Router; 4 | -------------------------------------------------------------------------------- /source/runtime.js: -------------------------------------------------------------------------------- 1 | import "./datetime/index.js"; 2 | import "./string/index.js"; 3 | import "./dom/index.js"; 4 | import "./hooks/index.js"; 5 | import "./farbe/index.js"; 6 | import "./html/index.js"; 7 | import "./guardian/index.js"; 8 | import "./router/index.js"; 9 | import "./model/index.js"; 10 | import "./core/index.js"; 11 | import "./i18n/index.js"; 12 | import "./extensions/index.js"; 13 | import "./common-js/index.js"; 14 | -------------------------------------------------------------------------------- /source/string/index.js: -------------------------------------------------------------------------------- 1 | import { Str, str } from "@olton/string"; 2 | 3 | globalThis.Str = Str; 4 | globalThis.str = str; 5 | -------------------------------------------------------------------------------- /tea.yaml: -------------------------------------------------------------------------------- 1 | # https://tea.xyz/what-is-this-file 2 | --- 3 | version: 1.0.0 4 | codeOwners: 5 | - '0x21906DBe1BfFD93E6C551800b7350Eb32966b485' 6 | quorum: 1 7 | -------------------------------------------------------------------------------- /temp/closed-eye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /temp/opened-eye.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /temp/plus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /temp/tag.css: -------------------------------------------------------------------------------- 1 | span { 2 | color: oklch(82.8% .111 230.318); 3 | border: 1px dashed color-mix(in oklab, oklch(82.8% .111 230.318) 30%, transparent); 4 | text-transform: uppercase; 5 | letter-spacing: 0.1em; 6 | font-weight: 500; 7 | font-size: .625rem; 8 | line-height: 1.125rem; 9 | padding-inline: calc(.25rem * 1.5); 10 | } -------------------------------------------------------------------------------- /utils/check_readme.ps1: -------------------------------------------------------------------------------- 1 | $components = Get-ChildItem -Path "source\components" -Directory 2 | $needsReadme = @() 3 | $hasReadme = @() 4 | 5 | foreach ($component in $components) { 6 | $readmePath = Join-Path -Path $component.FullName -ChildPath "README.md" 7 | if (Test-Path $readmePath) { 8 | $hasReadme += $component.Name 9 | } else { 10 | $needsReadme += $component.Name 11 | } 12 | } 13 | 14 | Write-Host "Components with README.md ($($hasReadme.Count)):" 15 | $hasReadme | ForEach-Object { Write-Host "- $_" } 16 | 17 | Write-Host "`nComponents needing README.md ($($needsReadme.Count)):" 18 | $needsReadme | ForEach-Object { Write-Host "- $_" } --------------------------------------------------------------------------------