unaltraweb 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +20 -0
- data/Makefile +412 -0
- data/README.md +226 -0
- data/_config.yml +842 -0
- data/_data/i18n/ca.yml +278 -0
- data/_data/i18n/en.yml +278 -0
- data/_data/i18n/es.yml +278 -0
- data/_includes/audio.liquid +30 -0
- data/_includes/bib_search.liquid +5 -0
- data/_includes/blog-list.liquid +66 -0
- data/_includes/book-citation.liquid +33 -0
- data/_includes/citation.liquid +26 -0
- data/_includes/custom_head.liquid +3 -0
- data/_includes/custom_scripts.liquid +5 -0
- data/_includes/cv/list.liquid +5 -0
- data/_includes/cv/list_groups.liquid +51 -0
- data/_includes/cv/map.liquid +29 -0
- data/_includes/cv/nested_list.liquid +16 -0
- data/_includes/cv/time_table.liquid +118 -0
- data/_includes/cv-download-card.liquid +26 -0
- data/_includes/developer-mode-switcher.liquid +24 -0
- data/_includes/disqus.liquid +13 -0
- data/_includes/distill_scripts.liquid +298 -0
- data/_includes/documentation-download-detail.liquid +76 -0
- data/_includes/documentation-downloads.liquid +71 -0
- data/_includes/documentation-profile-attributes.liquid +4 -0
- data/_includes/documentation-section-toc.liquid +9 -0
- data/_includes/documentation-sidebar.liquid +112 -0
- data/_includes/figure.liquid +87 -0
- data/_includes/footer.liquid +66 -0
- data/_includes/giscus.liquid +25 -0
- data/_includes/head.liquid +220 -0
- data/_includes/header.liquid +544 -0
- data/_includes/latest_posts.liquid +61 -0
- data/_includes/localized-date.liquid +5 -0
- data/_includes/manual-bibliography.liquid +2 -0
- data/_includes/manual-featured-readings.liquid +12 -0
- data/_includes/manual-other-readings.liquid +12 -0
- data/_includes/manual-page-toc.liquid +11 -0
- data/_includes/manual-sidebar.liquid +58 -0
- data/_includes/manual-teachers.liquid +74 -0
- data/_includes/metadata.liquid +278 -0
- data/_includes/news.liquid +48 -0
- data/_includes/newsletter.liquid +68 -0
- data/_includes/page-hero.liquid +96 -0
- data/_includes/page-link.liquid +8 -0
- data/_includes/pagination.liquid +22 -0
- data/_includes/post-reading-time.liquid +29 -0
- data/_includes/previous-next.liquid +37 -0
- data/_includes/profile-card.liquid +49 -0
- data/_includes/profile-feature-matrix.liquid +75 -0
- data/_includes/profile-highlights.liquid +122 -0
- data/_includes/project-grid.liquid +26 -0
- data/_includes/project-resource-link.liquid +45 -0
- data/_includes/project-resources.liquid +21 -0
- data/_includes/projects.liquid +38 -0
- data/_includes/projects_horizontal.liquid +37 -0
- data/_includes/publications-metrics-summary.liquid +69 -0
- data/_includes/publications-summary.liquid +127 -0
- data/_includes/reading-biblio-controls.liquid +65 -0
- data/_includes/reading-cover-card.liquid +93 -0
- data/_includes/reading-rating.liquid +11 -0
- data/_includes/recommended-readings.liquid +30 -0
- data/_includes/related_posts.liquid +39 -0
- data/_includes/repository/repo.liquid +48 -0
- data/_includes/repository/repo_trophies.liquid +44 -0
- data/_includes/repository/repo_user.liquid +35 -0
- data/_includes/resume/awards.liquid +19 -0
- data/_includes/resume/basics.liquid +28 -0
- data/_includes/resume/certificates.liquid +35 -0
- data/_includes/resume/education.liquid +54 -0
- data/_includes/resume/interests.liquid +34 -0
- data/_includes/resume/languages.liquid +31 -0
- data/_includes/resume/projects.liquid +32 -0
- data/_includes/resume/publications.liquid +28 -0
- data/_includes/resume/references.liquid +31 -0
- data/_includes/resume/skills.liquid +33 -0
- data/_includes/resume/volunteer.liquid +52 -0
- data/_includes/resume/work.liquid +52 -0
- data/_includes/scripts.liquid +364 -0
- data/_includes/search-data.js.liquid +341 -0
- data/_includes/selected_papers.liquid +3 -0
- data/_includes/t.liquid +31 -0
- data/_includes/team-grid.liquid +172 -0
- data/_includes/video.liquid +97 -0
- data/_layouts/about.liquid +93 -0
- data/_layouts/archive.liquid +45 -0
- data/_layouts/bib.liquid +677 -0
- data/_layouts/book-review.liquid +225 -0
- data/_layouts/book-shelf.liquid +66 -0
- data/_layouts/cv.liquid +127 -0
- data/_layouts/default.liquid +70 -0
- data/_layouts/distill.liquid +132 -0
- data/_layouts/documentation-download-detail.liquid +5 -0
- data/_layouts/documentation-home.liquid +100 -0
- data/_layouts/documentation-page.liquid +45 -0
- data/_layouts/manual-bib.liquid +73 -0
- data/_layouts/manual-chapter.liquid +99 -0
- data/_layouts/manual-featured-bib.liquid +100 -0
- data/_layouts/manual-home.liquid +120 -0
- data/_layouts/none.liquid +1 -0
- data/_layouts/outputs.liquid +29 -0
- data/_layouts/page.liquid +52 -0
- data/_layouts/post.liquid +95 -0
- data/_layouts/profile.liquid +36 -0
- data/_layouts/profiles.liquid +36 -0
- data/_layouts/project.liquid +7 -0
- data/_layouts/repositories.liquid +58 -0
- data/_layouts/theses.liquid +126 -0
- data/_plugins/bibliography_profiles.rb +164 -0
- data/_plugins/callouts.rb +104 -0
- data/_plugins/code_blocks.rb +277 -0
- data/_plugins/computation_figure_images.rb +266 -0
- data/_plugins/computation_sources.rb +42 -0
- data/_plugins/content_search_index.rb +210 -0
- data/_plugins/details.rb +23 -0
- data/_plugins/external-posts.rb +124 -0
- data/_plugins/figure_captions.rb +800 -0
- data/_plugins/file-exists.rb +22 -0
- data/_plugins/google-scholar-citations.rb +86 -0
- data/_plugins/hide-custom-bibtex.rb +18 -0
- data/_plugins/inspirehep-citations.rb +57 -0
- data/_plugins/localized_visual_sources.rb +145 -0
- data/_plugins/manual_release_metadata.rb +47 -0
- data/_plugins/mermaid_mmd_images.rb +233 -0
- data/_plugins/profile-pages.rb +28 -0
- data/_plugins/remove-accents.rb +32 -0
- data/_plugins/reproducible_build_time.rb +55 -0
- data/_plugins/search-data.rb +83 -0
- data/_plugins/theme-cache-bust.rb +56 -0
- data/_plugins/vega_visual_images.rb +290 -0
- data/_plugins/web_capture_images.rb +154 -0
- data/_sass/_base.scss +2133 -0
- data/_sass/_blog.scss +67 -0
- data/_sass/_callouts.scss +100 -0
- data/_sass/_custom.scss +437 -0
- data/_sass/_cv.scss +274 -0
- data/_sass/_developer.scss +97 -0
- data/_sass/_distill.scss +185 -0
- data/_sass/_documentation.scss +2220 -0
- data/_sass/_layout.scss +218 -0
- data/_sass/_manual.scss +2691 -0
- data/_sass/_profile.scss +323 -0
- data/_sass/_projects.scss +163 -0
- data/_sass/_reading.scss +465 -0
- data/_sass/_site-custom.scss +3 -0
- data/_sass/_tabs.scss +48 -0
- data/_sass/_team.scss +230 -0
- data/_sass/_themes.scss +254 -0
- data/_sass/_typograms.scss +132 -0
- data/_sass/_variables.scss +52 -0
- data/_sass/font-awesome/_animated.scss +152 -0
- data/_sass/font-awesome/_bordered-pulled.scss +20 -0
- data/_sass/font-awesome/_core.scss +49 -0
- data/_sass/font-awesome/_fixed-width.scss +7 -0
- data/_sass/font-awesome/_functions.scss +57 -0
- data/_sass/font-awesome/_icons.scss +13 -0
- data/_sass/font-awesome/_list.scss +18 -0
- data/_sass/font-awesome/_mixins.scss +65 -0
- data/_sass/font-awesome/_rotated-flipped.scss +31 -0
- data/_sass/font-awesome/_screen-reader.scss +14 -0
- data/_sass/font-awesome/_shims.scss +1578 -0
- data/_sass/font-awesome/_sizing.scss +16 -0
- data/_sass/font-awesome/_stacked.scss +32 -0
- data/_sass/font-awesome/_variables.scss +5044 -0
- data/_sass/font-awesome/brands.scss +30 -0
- data/_sass/font-awesome/fontawesome.scss +21 -0
- data/_sass/font-awesome/regular.scss +27 -0
- data/_sass/font-awesome/solid.scss +27 -0
- data/_sass/font-awesome/v4-shims.scss +11 -0
- data/_sass/tabler-icons/tabler-icons-filled.scss +1646 -0
- data/_sass/tabler-icons/tabler-icons-outline.scss +9859 -0
- data/_sass/tabler-icons/tabler-icons.scss +11463 -0
- data/_scripts/cronitor-analytics-setup.js +9 -0
- data/_scripts/giscus-setup.js +48 -0
- data/_scripts/google-analytics-setup.js +9 -0
- data/_scripts/open-panel-analytics-setup.js +14 -0
- data/_scripts/photoswipe-setup.js +11 -0
- data/assets/audio/epicaly-short-113909.mp3 +0 -0
- data/assets/bibliography/2018-12-22-distill.bib +7 -0
- data/assets/css/academicons.min.css +1 -0
- data/assets/css/bootstrap-toc.min.css +4 -0
- data/assets/css/bootstrap.min.css +7 -0
- data/assets/css/bootstrap.min.css.map +1 -0
- data/assets/css/jekyll-pygments-themes-github.css +209 -0
- data/assets/css/jekyll-pygments-themes-native.css +232 -0
- data/assets/css/jupyter-grade3.css +3758 -0
- data/assets/css/jupyter-monokai.css +3758 -0
- data/assets/css/jupyter.css +383 -0
- data/assets/css/main.scss +36 -0
- data/assets/css/mdb.min.css +48 -0
- data/assets/css/mdb.min.css.map +1 -0
- data/assets/css/scholar-icons.css +386 -0
- data/assets/fonts/academicons.ttf +0 -0
- data/assets/fonts/academicons.woff +0 -0
- data/assets/fonts/scholar-icons.ttf +0 -0
- data/assets/fonts/scholar-icons.woff +0 -0
- data/assets/fonts/tabler-icons-filled.ttf +0 -0
- data/assets/fonts/tabler-icons-filled.woff +0 -0
- data/assets/fonts/tabler-icons-filled.woff2 +0 -0
- data/assets/fonts/tabler-icons-outline.ttf +0 -0
- data/assets/fonts/tabler-icons-outline.woff +0 -0
- data/assets/fonts/tabler-icons-outline.woff2 +0 -0
- data/assets/fonts/tabler-icons.ttf +0 -0
- data/assets/fonts/tabler-icons.woff +0 -0
- data/assets/fonts/tabler-icons.woff2 +0 -0
- data/assets/html/relativity.html +15 -0
- data/assets/img/1.jpg +0 -0
- data/assets/img/10.jpg +0 -0
- data/assets/img/11.jpg +0 -0
- data/assets/img/12.jpg +0 -0
- data/assets/img/2.jpg +0 -0
- data/assets/img/3.jpg +0 -0
- data/assets/img/4.jpg +0 -0
- data/assets/img/5.jpg +0 -0
- data/assets/img/6.jpg +0 -0
- data/assets/img/7.jpg +0 -0
- data/assets/img/8.jpg +0 -0
- data/assets/img/9.jpg +0 -0
- data/assets/img/book_covers/the_godfather.jpg +0 -0
- data/assets/img/brand/dosquartsdedocs-logo-cafe.svg +31 -0
- data/assets/img/brand/dosquartsdedocs-logo-footer-cafe.svg +31 -0
- data/assets/img/brand/dosquartsdedocs-logo-white.svg +31 -0
- data/assets/img/brand/dosquartsdedocs-logo.svg +31 -0
- data/assets/img/prof_pic.jpg +0 -0
- data/assets/img/prof_pic_color.png +0 -0
- data/assets/img/profile-placeholder.svg +8 -0
- data/assets/img/publication_preview/brownian-motion.gif +0 -0
- data/assets/img/publication_preview/goodchild1992-gis-cover.jpg +0 -0
- data/assets/img/publication_preview/gutierrez2020-jtrg-preview.jpg +0 -0
- data/assets/img/publication_preview/harvey1989-postmodernity-cover.jpg +0 -0
- data/assets/img/publication_preview/tobler1970-economic-geography-cover.jpg +0 -0
- data/assets/img/publication_preview/tuan1977-space-place-cover.jpg +0 -0
- data/assets/img/publication_preview/wave-mechanics.gif +0 -0
- data/assets/img/publication_preview/zaragozi2025-rooftop-pv-preview.jpg +0 -0
- data/assets/img/rhino.png +0 -0
- data/assets/img/team/aaron-gutierrez.png +0 -0
- data/assets/img/team/alba-font.png +0 -0
- data/assets/img/team/alba-viana.png +0 -0
- data/assets/img/team/alejandro-gonzalez.png +0 -0
- data/assets/img/team/ana-pastor.png +0 -0
- data/assets/img/team/antoni-domenech.png +0 -0
- data/assets/img/team/benito-zaragozi.png +0 -0
- data/assets/img/team/cinta-sanz.png +0 -0
- data/assets/img/team/daniel-miravet.png +0 -0
- data/assets/img/team/eugenia-altamirano.png +0 -0
- data/assets/img/team/fiammetta-brandajs.png +0 -0
- data/assets/img/team/francesc-gonzalez.png +0 -0
- data/assets/img/team/isabel-paulino.png +0 -0
- data/assets/img/team/joan-borras.png +0 -0
- data/assets/img/team/julie-wilson.png +0 -0
- data/assets/img/team/liliana-sole.png +0 -0
- data/assets/img/team/maria-casado.png +0 -0
- data/assets/img/team/maria-medina.png +0 -0
- data/assets/img/team/marta-nello.png +0 -0
- data/assets/img/team/mogrify +1 -0
- data/assets/img/team/oscar-saladie.png +0 -0
- data/assets/img/team/paolo-russo.png +0 -0
- data/assets/img/team/raquel-santos.png +0 -0
- data/assets/img/team/salvador-anton.png +0 -0
- data/assets/img/team/sunsi-huertas.png +0 -0
- data/assets/img/team/user-placeholder.png +0 -0
- data/assets/img/team/wilbert-den-hoed.png +0 -0
- data/assets/img/team/xavier-delclos.png +0 -0
- data/assets/img/template_error.png +0 -0
- data/assets/js/bibsearch.js +70 -0
- data/assets/js/bootstrap-toc.min.js +5 -0
- data/assets/js/bootstrap.bundle.min.js +7 -0
- data/assets/js/bootstrap.bundle.min.js.map +1 -0
- data/assets/js/callouts.js +115 -0
- data/assets/js/chartjs-setup.js +14 -0
- data/assets/js/common.js +117 -0
- data/assets/js/content-search-match.js +159 -0
- data/assets/js/content-search.js +441 -0
- data/assets/js/copy_code.js +60 -0
- data/assets/js/custom.js +6 -0
- data/assets/js/developer-mode.js +103 -0
- data/assets/js/diff2html-setup.js +20 -0
- data/assets/js/distillpub/overrides.js +27 -0
- data/assets/js/distillpub/template.v2.js +9616 -0
- data/assets/js/distillpub/template.v2.js.map +1 -0
- data/assets/js/distillpub/transforms.v2.js +14557 -0
- data/assets/js/distillpub/transforms.v2.js.map +1 -0
- data/assets/js/documentation.js +435 -0
- data/assets/js/echarts-setup.js +29 -0
- data/assets/js/highlight-search-term.js +110 -0
- data/assets/js/jupyter_new_tab.js +18 -0
- data/assets/js/leaflet-setup.js +22 -0
- data/assets/js/manual.js +308 -0
- data/assets/js/masonry.js +12 -0
- data/assets/js/mathjax-setup.js +46 -0
- data/assets/js/mermaid-setup.js +37 -0
- data/assets/js/newsletter.js +105 -0
- data/assets/js/no_defer.js +24 -0
- data/assets/js/plotly-setup.js +52 -0
- data/assets/js/profile-nav.js +92 -0
- data/assets/js/progress-bar.js +73 -0
- data/assets/js/pseudocode-setup.js +18 -0
- data/assets/js/search/base-styles.min.js +286 -0
- data/assets/js/search/command-score.min.js +7 -0
- data/assets/js/search/hotkeys-js/hotkeys.esm.min.js +18 -0
- data/assets/js/search/lit/decorators.min.js +7 -0
- data/assets/js/search/lit/directives/class-map.min.js +7 -0
- data/assets/js/search/lit/directives/join.min.js +7 -0
- data/assets/js/search/lit/directives/live.min.js +7 -0
- data/assets/js/search/lit/directives/ref.min.js +7 -0
- data/assets/js/search/lit/directives/repeat.min.js +7 -0
- data/assets/js/search/lit/directives/unsafe-html.min.js +7 -0
- data/assets/js/search/lit/index.min.js +7 -0
- data/assets/js/search/lit-element/lit-element.min.js +12 -0
- data/assets/js/search/lit-html/directives/class-map.min.js +22 -0
- data/assets/js/search/lit-html/directives/join.min.js +12 -0
- data/assets/js/search/lit-html/directives/live.min.js +28 -0
- data/assets/js/search/lit-html/directives/ref.min.js +32 -0
- data/assets/js/search/lit-html/directives/repeat.min.js +27 -0
- data/assets/js/search/lit-html/directives/unsafe-html.min.js +22 -0
- data/assets/js/search/lit-html/is-server.min.js +12 -0
- data/assets/js/search/lit-html/lit-html.min.js +12 -0
- data/assets/js/search/ninja-action.min.js +101 -0
- data/assets/js/search/ninja-footer.min.js +62 -0
- data/assets/js/search/ninja-header.min.js +78 -0
- data/assets/js/search/ninja-keys.min.js +39 -0
- data/assets/js/search/reactive-element/decorators/custom-element.min.js +12 -0
- data/assets/js/search/reactive-element/decorators/event-options.min.js +12 -0
- data/assets/js/search/reactive-element/decorators/property.min.js +22 -0
- data/assets/js/search/reactive-element/decorators/query-all.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/query-assigned-elements.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/query-assigned-nodes.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/query-async.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/query.min.js +17 -0
- data/assets/js/search/reactive-element/decorators/state.min.js +27 -0
- data/assets/js/search/reactive-element/reactive-element.min.js +17 -0
- data/assets/js/search-setup.js +17 -0
- data/assets/js/shortcut-key.js +11 -0
- data/assets/js/tabs.min.js +5 -0
- data/assets/js/theme.js +314 -0
- data/assets/js/tooltips-setup.js +3 -0
- data/assets/js/typograms.js +1341 -0
- data/assets/js/vanilla-back-to-top.min.js +1 -0
- data/assets/js/vega-setup.js +24 -0
- data/assets/js/venobox-setup.js +5 -0
- data/assets/js/wechat.js +14 -0
- data/assets/js/zoom.js +15 -0
- data/assets/json/resume.json +98 -0
- data/assets/json/table_data.json +128 -0
- data/assets/jupyter/blog.ipynb +48 -0
- data/assets/pdf/example_pdf.pdf +0 -0
- data/assets/plotly/demo.html +72 -0
- data/assets/video/pexels-engin-akyurt-6069112-960x540-30fps.mp4 +0 -0
- data/assets/webfonts/fa-brands-400.ttf +0 -0
- data/assets/webfonts/fa-brands-400.woff2 +0 -0
- data/assets/webfonts/fa-regular-400.ttf +0 -0
- data/assets/webfonts/fa-regular-400.woff2 +0 -0
- data/assets/webfonts/fa-solid-900.ttf +0 -0
- data/assets/webfonts/fa-solid-900.woff2 +0 -0
- data/assets/webfonts/fa-v4compatibility.ttf +0 -0
- data/assets/webfonts/fa-v4compatibility.woff2 +0 -0
- data/docs/Gemfile +5 -0
- data/docs/_config.yml +83 -0
- data/docs/_documentation/en/01-quick-start.md +115 -0
- data/docs/_documentation/en/02-tools.md +146 -0
- data/docs/_documentation/en/03-usage.md +107 -0
- data/docs/_documentation/en/04-jekyll-basics.md +51 -0
- data/docs/_documentation/en/05-pages-collections.md +68 -0
- data/docs/_documentation/en/06-github-web-editing.md +92 -0
- data/docs/_documentation/en/10-profiles.md +125 -0
- data/docs/_documentation/en/11-unaltreselfie.md +39 -0
- data/docs/_documentation/en/12-unaltreprojecte.md +38 -0
- data/docs/_documentation/en/13-unaltremanual.md +237 -0
- data/docs/_documentation/en/14-unaltredocs.md +92 -0
- data/docs/_documentation/en/15-profile-checklist.md +39 -0
- data/docs/_documentation/en/20-syntax.md +353 -0
- data/docs/_documentation/en/21-themes.md +103 -0
- data/docs/_documentation/en/22-feature-reference.md +56 -0
- data/docs/_documentation/en/23-front-matter.md +51 -0
- data/docs/_documentation/en/24-data-files.md +28 -0
- data/docs/_documentation/en/30-customization.md +448 -0
- data/docs/_documentation/en/31-template.md +55 -0
- data/docs/_documentation/en/32-development.md +108 -0
- data/docs/_documentation/en/33-reusable-workflows.md +136 -0
- data/docs/_documentation/en/40-distribution.md +164 -0
- data/docs/_documentation/en/41-bibliometrics.md +137 -0
- data/docs/_documentation/en/42-docker-image.md +185 -0
- data/docs/_documentation/en/50-faq.md +33 -0
- data/docs/_pages/ca/index.md +35 -0
- data/docs/_pages/en/index.md +35 -0
- data/docs/_pages/es/index.md +35 -0
- data/docs/agents/action-prompts/00-start-site-session.txt +10 -0
- data/docs/agents/action-prompts/05-create-new-web.txt +5 -0
- data/docs/agents/action-prompts/10-content-update.txt +9 -0
- data/docs/agents/action-prompts/15-edit-default-content.txt +8 -0
- data/docs/agents/action-prompts/20-manual-teaching-materials.txt +18 -0
- data/docs/agents/action-prompts/22-manual-style-audit.txt +14 -0
- data/docs/agents/action-prompts/23-manual-structure-audit.txt +17 -0
- data/docs/agents/action-prompts/25-translation-prepublish.txt +8 -0
- data/docs/agents/action-prompts/30-project-site-update.txt +7 -0
- data/docs/agents/action-prompts/40-documentation-update.txt +7 -0
- data/docs/agents/action-prompts/50-bibliography-entry.txt +7 -0
- data/docs/agents/action-prompts/60-bibliometrics-refresh.txt +7 -0
- data/docs/agents/action-prompts/70-build-and-review.txt +12 -0
- data/docs/agents/manual-authoring-components.md +255 -0
- data/docs/agents/mcp-contract.md +162 -0
- data/docs/agents/quarto-computation-adoption.md +102 -0
- data/docs/assets/img/unaltraweb-docs-hero.svg +36 -0
- data/lib/unaltraweb/version.rb +8 -0
- data/lib/unaltraweb.rb +31 -0
- data/requirements.txt +5 -0
- data/scripts/biblio/fetch_scimago_csv.sh +126 -0
- data/scripts/biblio/metrics_common.py +154 -0
- data/scripts/biblio/metrics_merge_meta.py +73 -0
- data/scripts/biblio/metrics_update.py +826 -0
- data/scripts/computations/python/Dockerfile +37 -0
- data/scripts/computations/r/Dockerfile +31 -0
- data/scripts/computations/render.py +1267 -0
- data/scripts/cv/render_pdf_preview.sh +36 -0
- data/scripts/deploy/publish_branch.sh +80 -0
- data/scripts/generate_logo_variants.py +47 -0
- data/scripts/manual/Dockerfile +31 -0
- data/scripts/manual/build_pdf.py +1780 -0
- data/scripts/manual/filters/bibliography.lua +164 -0
- data/scripts/manual/filters/code-blocks.lua +102 -0
- data/scripts/manual/filters/figure-captions.lua +35 -0
- data/scripts/manual/publish_release.sh +281 -0
- data/scripts/manual/templates/manual.tex +494 -0
- data/scripts/manual/verify_release_assets.py +650 -0
- data/scripts/test_gem_build.py +128 -0
- data/scripts/test_reproducible_jekyll_build.py +191 -0
- data/scripts/test_wheel_install.py +282 -0
- data/scripts/unaltraweb-docker-mount.sh +36 -0
- data/scripts/unaltraweb-mcp-bootstrap.sh +105 -0
- data/scripts/unaltraweb-mcp-cleanup.sh +73 -0
- data/scripts/unaltraweb-mcp-project-id.sh +34 -0
- data/scripts/validate_distribution.py +563 -0
- data/scripts/validate_workflows.py +1285 -0
- data/scripts/web_captures/Dockerfile +31 -0
- data/scripts/web_captures/capture.mjs +157 -0
- data/scripts/web_captures/package-lock.json +56 -0
- data/scripts/web_captures/package.json +9 -0
- data/scripts/web_captures/render.py +867 -0
- data/src/unaltraweb_mcp/component-contract.json +153 -0
- data/src/unaltraweb_mcp/component-contract.schema.json +87 -0
- data/src/unaltraweb_mcp/docker_mount.py +19 -0
- metadata +861 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
(function () {
|
|
2
|
+
function currentProfileUsesDrawer() {
|
|
3
|
+
return document.body.classList.contains("site-profile-unaltreprojecte") || document.body.classList.contains("site-profile-unaltreselfie");
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
function setupProfileNavbar() {
|
|
7
|
+
if (!currentProfileUsesDrawer()) return;
|
|
8
|
+
var navbar = document.getElementById("navbar");
|
|
9
|
+
if (!navbar || navbar.dataset.profileNavbarReady) return;
|
|
10
|
+
var container = navbar.querySelector(".container");
|
|
11
|
+
var collapse = navbar.querySelector("#navbarNav");
|
|
12
|
+
var toggler = navbar.querySelector(".navbar-toggler[data-target='#navbarNav']");
|
|
13
|
+
var utilities = navbar.querySelector(".profile-navbar-utilities");
|
|
14
|
+
var brand = navbar.querySelector(".navbar-brand");
|
|
15
|
+
var navList = collapse ? collapse.querySelector(".navbar-nav") : null;
|
|
16
|
+
if (!container || !collapse || !toggler || !utilities || !brand || !navList) return;
|
|
17
|
+
navbar.dataset.profileNavbarReady = "true";
|
|
18
|
+
|
|
19
|
+
function measureNavWidth() {
|
|
20
|
+
var previousCollapseStyle = collapse.getAttribute("style");
|
|
21
|
+
var previousNavStyle = navList.getAttribute("style");
|
|
22
|
+
collapse.style.display = "block";
|
|
23
|
+
collapse.style.position = "absolute";
|
|
24
|
+
collapse.style.visibility = "hidden";
|
|
25
|
+
collapse.style.width = "max-content";
|
|
26
|
+
collapse.style.height = "auto";
|
|
27
|
+
collapse.style.pointerEvents = "none";
|
|
28
|
+
navList.style.flexDirection = "row";
|
|
29
|
+
navList.style.flexWrap = "nowrap";
|
|
30
|
+
var width = navList.scrollWidth;
|
|
31
|
+
if (previousCollapseStyle === null) collapse.removeAttribute("style");
|
|
32
|
+
else collapse.setAttribute("style", previousCollapseStyle);
|
|
33
|
+
if (previousNavStyle === null) navList.removeAttribute("style");
|
|
34
|
+
else navList.setAttribute("style", previousNavStyle);
|
|
35
|
+
return width;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function updateOpenState() {
|
|
39
|
+
document.body.classList.toggle("profile-navbar-drawer-open", navbar.classList.contains("profile-navbar-drawer") && collapse.classList.contains("show"));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function updateMode() {
|
|
43
|
+
navbar.classList.remove("profile-navbar-drawer");
|
|
44
|
+
var containerWidth = container.getBoundingClientRect().width;
|
|
45
|
+
var totalWidth = brand.getBoundingClientRect().width + utilities.getBoundingClientRect().width + measureNavWidth() + 72;
|
|
46
|
+
navbar.classList.toggle("profile-navbar-drawer", totalWidth > containerWidth || window.innerWidth < 576);
|
|
47
|
+
updateOpenState();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function hideDrawer() {
|
|
51
|
+
if (window.jQuery && window.jQuery.fn && window.jQuery.fn.collapse) {
|
|
52
|
+
window.jQuery(collapse).collapse("hide");
|
|
53
|
+
} else {
|
|
54
|
+
collapse.classList.remove("show");
|
|
55
|
+
toggler.classList.add("collapsed");
|
|
56
|
+
toggler.setAttribute("aria-expanded", "false");
|
|
57
|
+
updateOpenState();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
var resizeTimer = null;
|
|
62
|
+
function scheduleUpdateMode() {
|
|
63
|
+
window.clearTimeout(resizeTimer);
|
|
64
|
+
resizeTimer = window.setTimeout(updateMode, 80);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
document.addEventListener("click", function (event) {
|
|
68
|
+
if (!document.body.classList.contains("profile-navbar-drawer-open")) return;
|
|
69
|
+
if (collapse.contains(event.target) || toggler.contains(event.target) || utilities.contains(event.target)) return;
|
|
70
|
+
hideDrawer();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
collapse.addEventListener("click", function (event) {
|
|
74
|
+
if (!navbar.classList.contains("profile-navbar-drawer")) return;
|
|
75
|
+
var link = event.target.closest("a.nav-link, a.dropdown-item");
|
|
76
|
+
if (!link || link.classList.contains("dropdown-toggle")) return;
|
|
77
|
+
hideDrawer();
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
new MutationObserver(updateOpenState).observe(collapse, { attributes: true, attributeFilter: ["class"] });
|
|
81
|
+
window.addEventListener("resize", scheduleUpdateMode);
|
|
82
|
+
updateMode();
|
|
83
|
+
window.setTimeout(updateMode, 180);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (document.readyState === "loading") {
|
|
87
|
+
document.addEventListener("DOMContentLoaded", setupProfileNavbar);
|
|
88
|
+
} else {
|
|
89
|
+
setupProfileNavbar();
|
|
90
|
+
}
|
|
91
|
+
document.addEventListener("unaltraweb:contentchange", setupProfileNavbar);
|
|
92
|
+
})();
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This JavaScript code has been adapted from the article
|
|
3
|
+
* https://css-tricks.com/reading-position-indicator/ authored by Pankaj Parashar,
|
|
4
|
+
* published on the website https://css-tricks.com on the 7th of May, 2014.
|
|
5
|
+
* Couple of changes were made to the original code to make it compatible
|
|
6
|
+
* with the `al-foio` theme.
|
|
7
|
+
*/
|
|
8
|
+
const progressBar = $("#progress");
|
|
9
|
+
/*
|
|
10
|
+
* We set up the bar after all elements are done loading.
|
|
11
|
+
* In some cases, if the images in the page are larger than the intended
|
|
12
|
+
* size they'll have on the page, they'll be resized via CSS to accomodate
|
|
13
|
+
* the desired size. This mistake, however, breaks the computations as the
|
|
14
|
+
* scroll size is computed as soon as the elements finish loading.
|
|
15
|
+
* To account for this, a minimal delay was introduced before computing the
|
|
16
|
+
* values.
|
|
17
|
+
*/
|
|
18
|
+
window.onload = function () {
|
|
19
|
+
setTimeout(progressBarSetup, 50);
|
|
20
|
+
};
|
|
21
|
+
/*
|
|
22
|
+
* We set up the bar according to the browser.
|
|
23
|
+
* If the browser supports the progress element we use that.
|
|
24
|
+
* Otherwise, we resize the bar thru CSS styling
|
|
25
|
+
*/
|
|
26
|
+
function progressBarSetup() {
|
|
27
|
+
if ("max" in document.createElement("progress")) {
|
|
28
|
+
initializeProgressElement();
|
|
29
|
+
$(document).on("scroll", function () {
|
|
30
|
+
progressBar.attr({ value: getCurrentScrollPosition() });
|
|
31
|
+
});
|
|
32
|
+
$(window).on("resize", initializeProgressElement);
|
|
33
|
+
} else {
|
|
34
|
+
resizeProgressBar();
|
|
35
|
+
$(document).on("scroll", resizeProgressBar);
|
|
36
|
+
$(window).on("resize", resizeProgressBar);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/*
|
|
40
|
+
* The vertical scroll position is the same as the number of pixels that
|
|
41
|
+
* are hidden from view above the scrollable area. Thus, a value > 0 is
|
|
42
|
+
* how much the user has scrolled from the top
|
|
43
|
+
*/
|
|
44
|
+
function getCurrentScrollPosition() {
|
|
45
|
+
return $(window).scrollTop();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function initializeProgressElement() {
|
|
49
|
+
let navbarHeight = $("#navbar").outerHeight(true);
|
|
50
|
+
$("body").css({ "padding-top": navbarHeight });
|
|
51
|
+
$("progress-container").css({ "padding-top": navbarHeight });
|
|
52
|
+
progressBar.css({ top: navbarHeight });
|
|
53
|
+
progressBar.attr({
|
|
54
|
+
max: getDistanceToScroll(),
|
|
55
|
+
value: getCurrentScrollPosition(),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/*
|
|
59
|
+
* The offset between the html document height and the browser viewport
|
|
60
|
+
* height will be greater than zero if vertical scroll is possible.
|
|
61
|
+
* This is the distance the user can scroll
|
|
62
|
+
*/
|
|
63
|
+
function getDistanceToScroll() {
|
|
64
|
+
return $(document).height() - $(window).height();
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function resizeProgressBar() {
|
|
68
|
+
progressBar.css({ width: getWidthPercentage() + "%" });
|
|
69
|
+
}
|
|
70
|
+
// The scroll ratio equals the percentage to resize the bar
|
|
71
|
+
function getWidthPercentage() {
|
|
72
|
+
return (getCurrentScrollPosition() / getDistanceToScroll()) * 100;
|
|
73
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
document.addEventListener("readystatechange", () => {
|
|
2
|
+
if (document.readyState === "complete") {
|
|
3
|
+
document.querySelectorAll("pre>code.language-pseudocode").forEach((elem) => {
|
|
4
|
+
const texData = elem.textContent;
|
|
5
|
+
const parent = elem.parentElement.parentElement;
|
|
6
|
+
/* create pseudocode node */
|
|
7
|
+
let pseudoCodeElement = document.createElement("pre");
|
|
8
|
+
pseudoCodeElement.classList.add("pseudocode");
|
|
9
|
+
const text = document.createTextNode(texData);
|
|
10
|
+
pseudoCodeElement.appendChild(text);
|
|
11
|
+
/* add pseudocode node and remove the original code block */
|
|
12
|
+
parent.appendChild(pseudoCodeElement);
|
|
13
|
+
parent.removeChild(elem.parentElement);
|
|
14
|
+
/* embed the visualization in the container */
|
|
15
|
+
pseudocode.renderElement(pseudoCodeElement);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minified by jsDelivr using Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/@deepdub/ninja-keys@1.2.11/dist/base-styles.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
import{css}from"./lit/index.min.js";export const baseStyles=css`
|
|
8
|
+
:host {
|
|
9
|
+
--ninja-width: 640px;
|
|
10
|
+
--ninja-backdrop-filter: none;
|
|
11
|
+
--ninja-overflow-background: rgba(255, 255, 255, 0.5);
|
|
12
|
+
--ninja-text-color: rgb(60, 65, 73);
|
|
13
|
+
--ninja-font-size: 16px;
|
|
14
|
+
--ninja-top: 20%;
|
|
15
|
+
|
|
16
|
+
--ninja-key-border-radius: 0.25em;
|
|
17
|
+
--ninja-accent-color: rgb(110, 94, 210);
|
|
18
|
+
--ninja-secondary-background-color: rgb(239, 241, 244);
|
|
19
|
+
--ninja-secondary-text-color: rgb(107, 111, 118);
|
|
20
|
+
|
|
21
|
+
--ninja-selected-background: rgb(248, 249, 251);
|
|
22
|
+
|
|
23
|
+
--ninja-icon-color: var(--ninja-secondary-text-color);
|
|
24
|
+
--ninja-icon-size: 1.2em;
|
|
25
|
+
--ninja-separate-border: 1px solid var(--ninja-secondary-background-color);
|
|
26
|
+
|
|
27
|
+
--ninja-modal-background: #fff;
|
|
28
|
+
--ninja-modal-shadow: rgb(0 0 0 / 50%) 0px 16px 70px;
|
|
29
|
+
|
|
30
|
+
--ninja-actions-height: 300px;
|
|
31
|
+
--ninja-group-text-color: rgb(144, 149, 157);
|
|
32
|
+
|
|
33
|
+
--ninja-footer-background: rgba(242, 242, 242, 0.4);
|
|
34
|
+
|
|
35
|
+
--ninja-placeholder-color: #8e8e8e;
|
|
36
|
+
|
|
37
|
+
font-size: var(--ninja-font-size);
|
|
38
|
+
|
|
39
|
+
--ninja-z-index: 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
:host(.dark) {
|
|
43
|
+
--ninja-backdrop-filter: none;
|
|
44
|
+
--ninja-overflow-background: rgba(0, 0, 0, 0.7);
|
|
45
|
+
--ninja-text-color: #7d7d7d;
|
|
46
|
+
|
|
47
|
+
--ninja-modal-background: rgba(17, 17, 17, 0.85);
|
|
48
|
+
--ninja-accent-color: rgb(110, 94, 210);
|
|
49
|
+
--ninja-secondary-background-color: rgba(51, 51, 51, 0.44);
|
|
50
|
+
--ninja-secondary-text-color: #888;
|
|
51
|
+
|
|
52
|
+
--ninja-selected-text-color: #eaeaea;
|
|
53
|
+
--ninja-selected-background: rgba(51, 51, 51, 0.44);
|
|
54
|
+
|
|
55
|
+
--ninja-icon-color: var(--ninja-secondary-text-color);
|
|
56
|
+
--ninja-separate-border: 1px solid var(--ninja-secondary-background-color);
|
|
57
|
+
|
|
58
|
+
--ninja-modal-shadow: 0 16px 70px rgba(0, 0, 0, 0.2);
|
|
59
|
+
|
|
60
|
+
--ninja-group-text-color: rgb(144, 149, 157);
|
|
61
|
+
|
|
62
|
+
--ninja-footer-background: rgba(30, 30, 30, 85%);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.modal {
|
|
66
|
+
display: none;
|
|
67
|
+
position: fixed;
|
|
68
|
+
z-index: var(--ninja-z-index);
|
|
69
|
+
left: 0;
|
|
70
|
+
top: 0;
|
|
71
|
+
width: 100%;
|
|
72
|
+
height: 100%;
|
|
73
|
+
overflow: auto;
|
|
74
|
+
background: var(--ninja-overflow-background);
|
|
75
|
+
-webkit-font-smoothing: antialiased;
|
|
76
|
+
-moz-osx-font-smoothing: grayscale;
|
|
77
|
+
-webkit-backdrop-filter: var(--ninja-backdrop-filter);
|
|
78
|
+
backdrop-filter: var(--ninja-backdrop-filter);
|
|
79
|
+
text-align: left;
|
|
80
|
+
color: var(--ninja-text-color);
|
|
81
|
+
font-family: var(--ninja-font-family);
|
|
82
|
+
}
|
|
83
|
+
.modal.visible {
|
|
84
|
+
display: block;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.modal.isLoadingItems .loading-indicator {
|
|
88
|
+
opacity: 1;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.modal-content {
|
|
92
|
+
position: relative;
|
|
93
|
+
top: var(--ninja-top);
|
|
94
|
+
margin: auto;
|
|
95
|
+
padding: 0;
|
|
96
|
+
display: flex;
|
|
97
|
+
flex-direction: column;
|
|
98
|
+
flex-shrink: 1;
|
|
99
|
+
-webkit-box-flex: 1;
|
|
100
|
+
flex-grow: 1;
|
|
101
|
+
min-width: 0px;
|
|
102
|
+
will-change: transform;
|
|
103
|
+
background: var(--global-bg-color);
|
|
104
|
+
backdrop-filter: blur(20px);
|
|
105
|
+
border-radius: 0.5em;
|
|
106
|
+
box-shadow: var(--ninja-modal-shadow);
|
|
107
|
+
max-width: var(--ninja-width);
|
|
108
|
+
overflow: hidden;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.modal-body {
|
|
112
|
+
background: var(--global-bg-color);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.loading-indicator {
|
|
116
|
+
position: absolute;
|
|
117
|
+
width: 100%;
|
|
118
|
+
overflow: hidden;
|
|
119
|
+
opacity: 0;
|
|
120
|
+
height: 3px;
|
|
121
|
+
z-index: 1;
|
|
122
|
+
bottom: 34px;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.loading-indicator::before {
|
|
126
|
+
content: '';
|
|
127
|
+
position: absolute;
|
|
128
|
+
inset: 0;
|
|
129
|
+
background-color: var(--ninja-accent-color);
|
|
130
|
+
opacity: 0.3;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@keyframes animation-bar1 {
|
|
134
|
+
0% {
|
|
135
|
+
left: -35%;
|
|
136
|
+
right: 100%;
|
|
137
|
+
}
|
|
138
|
+
60% {
|
|
139
|
+
left: 100%;
|
|
140
|
+
right: -90%;
|
|
141
|
+
}
|
|
142
|
+
100% {
|
|
143
|
+
left: 100%;
|
|
144
|
+
right: -90%;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.loading-indicator .bar1 {
|
|
149
|
+
width: 100%;
|
|
150
|
+
position: absolute;
|
|
151
|
+
left: 0;
|
|
152
|
+
bottom: 0;
|
|
153
|
+
top: 0;
|
|
154
|
+
-webkit-transition: -webkit-transform 0.2s linear;
|
|
155
|
+
transition: transform 0.2s linear;
|
|
156
|
+
transform-origin: left;
|
|
157
|
+
background-color: var(--ninja-accent-color);
|
|
158
|
+
width: auto;
|
|
159
|
+
-webkit-animation: animation-bar1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
|
|
160
|
+
animation: animation-bar1 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
@keyframes animation-bar2 {
|
|
164
|
+
0% {
|
|
165
|
+
left: -200%;
|
|
166
|
+
right: 100%;
|
|
167
|
+
}
|
|
168
|
+
60% {
|
|
169
|
+
left: 107%;
|
|
170
|
+
right: -8%;
|
|
171
|
+
}
|
|
172
|
+
100% {
|
|
173
|
+
left: 107%;
|
|
174
|
+
right: -8%;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.loading-indicator .bar2 {
|
|
179
|
+
width: 100%;
|
|
180
|
+
position: absolute;
|
|
181
|
+
left: 0;
|
|
182
|
+
bottom: 0;
|
|
183
|
+
top: 0;
|
|
184
|
+
-webkit-transition: -webkit-transform 0.2s linear;
|
|
185
|
+
transition: transform 0.2s linear;
|
|
186
|
+
transform-origin: left;
|
|
187
|
+
background-color: var(--ninja-accent-color);
|
|
188
|
+
width: auto;
|
|
189
|
+
-webkit-animation: animation-bar2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
|
|
190
|
+
animation: animation-bar2 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) 1.15s infinite;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.bump {
|
|
194
|
+
animation: zoom-in-zoom-out 0.2s ease;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
@keyframes zoom-in-zoom-out {
|
|
198
|
+
0% {
|
|
199
|
+
transform: scale(0.99);
|
|
200
|
+
}
|
|
201
|
+
50% {
|
|
202
|
+
transform: scale(1.01, 1.01);
|
|
203
|
+
}
|
|
204
|
+
100% {
|
|
205
|
+
transform: scale(1, 1);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.title {
|
|
210
|
+
font-size: 0.75rem;
|
|
211
|
+
padding: 0.25rem 0.25rem;
|
|
212
|
+
text-align: right;
|
|
213
|
+
position: absolute;
|
|
214
|
+
right: 0px;
|
|
215
|
+
width: 100%;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.title.separator {
|
|
219
|
+
border-top: 1px solid rgb(51, 51, 51);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.ninja-github {
|
|
223
|
+
color: var(--ninja-keys-text-color);
|
|
224
|
+
font-weight: normal;
|
|
225
|
+
text-decoration: none;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.actions-list {
|
|
229
|
+
max-height: var(--ninja-actions-height);
|
|
230
|
+
overflow: auto;
|
|
231
|
+
position: relative;
|
|
232
|
+
margin: 0;
|
|
233
|
+
padding: 0.5em 0;
|
|
234
|
+
list-style: none;
|
|
235
|
+
scroll-behavior: auto;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.group-header {
|
|
239
|
+
height: 1.375em;
|
|
240
|
+
line-height: 1.375em;
|
|
241
|
+
padding-left: 1.25em;
|
|
242
|
+
padding-top: 0.5em;
|
|
243
|
+
text-overflow: ellipsis;
|
|
244
|
+
white-space: nowrap;
|
|
245
|
+
overflow: hidden;
|
|
246
|
+
font-size: 0.75em;
|
|
247
|
+
line-height: 1em;
|
|
248
|
+
color: var(--ninja-group-text-color);
|
|
249
|
+
margin: 1px 0;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.modal-footer {
|
|
253
|
+
padding: 0.5em 1em;
|
|
254
|
+
display: flex;
|
|
255
|
+
/* font-size: 0.75em; */
|
|
256
|
+
border-top: var(--ninja-separate-border);
|
|
257
|
+
color: var(--ninja-secondary-text-color);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.modal-footer .help {
|
|
261
|
+
display: flex;
|
|
262
|
+
margin-right: 1em;
|
|
263
|
+
align-items: center;
|
|
264
|
+
font-size: 0.75em;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.ninja-examplekey {
|
|
268
|
+
background: var(--ninja-secondary-background-color);
|
|
269
|
+
padding: 0.06em 0.25em;
|
|
270
|
+
border-radius: var(--ninja-key-border-radius);
|
|
271
|
+
color: var(--ninja-secondary-text-color);
|
|
272
|
+
width: 1em;
|
|
273
|
+
height: 1em;
|
|
274
|
+
margin-right: 0.5em;
|
|
275
|
+
font-size: 1.25em;
|
|
276
|
+
fill: currentColor;
|
|
277
|
+
}
|
|
278
|
+
.ninja-examplekey.esc {
|
|
279
|
+
width: auto;
|
|
280
|
+
height: auto;
|
|
281
|
+
font-size: 1.1em;
|
|
282
|
+
}
|
|
283
|
+
.ninja-examplekey.backspace {
|
|
284
|
+
opacity: 0.7;
|
|
285
|
+
}
|
|
286
|
+
`;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minified by jsDelivr using Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/@deepdub/ninja-keys@1.2.11/dist/command-score.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
const SCORE_CONTINUE_MATCH=1,SCORE_SPACE_WORD_JUMP=.9,SCORE_NON_SPACE_WORD_JUMP=.8,SCORE_CHARACTER_JUMP=.3,PENALTY_SKIPPED=.999,PENALTY_CASE_MISMATCH=.9999,PENALTY_NOT_COMPLETE=.99,IS_GAP_REGEXP=/[\\/_+.#"@[({&]/,COUNT_GAPS_REGEXP=/[\\/_+.#"@[({&]/g,IS_SPACE_REGEXP=/[\s-]/,COUNT_SPACE_REGEXP=/[\s-]/g;function commandScoreInner(E,_,P,C,e,n,t){if(n===_.length)return e===E.length?{score:SCORE_CONTINUE_MATCH,indices:[]}:{score:PENALTY_NOT_COMPLETE,indices:[]};const A=`${e},${n}`;if(void 0!==t[A])return t[A];const S=C.charAt(n);let c,r,o,O,T=P.indexOf(S,e),R=0,N=[];for(;T>=0;)O=commandScoreInner(E,_,P,C,T+1,n+1,t),c=O.score,c>R&&(T===e?c*=SCORE_CONTINUE_MATCH:IS_GAP_REGEXP.test(E.charAt(T-1))?(c*=SCORE_NON_SPACE_WORD_JUMP,r=E.slice(e,T-1).match(COUNT_GAPS_REGEXP),r&&e>0&&(c*=Math.pow(PENALTY_SKIPPED,r.length))):IS_SPACE_REGEXP.test(E.charAt(T-1))?(c*=SCORE_SPACE_WORD_JUMP,o=E.slice(e,T-1).match(COUNT_SPACE_REGEXP),o&&e>0&&(c*=Math.pow(PENALTY_SKIPPED,o.length))):(c*=SCORE_CHARACTER_JUMP,e>0&&(c*=Math.pow(PENALTY_SKIPPED,T-e))),E.charAt(T)!==_.charAt(n)&&(c*=PENALTY_CASE_MISMATCH)),c>R&&(N=[T,...O.indices],R=c),T=P.indexOf(S,T+1);return t[A]={score:R,indices:N},{score:R,indices:N}}function formatInput(E){return E.toLowerCase().replace(COUNT_SPACE_REGEXP," ")}function commandScore(E,_){return commandScoreInner(E,_,formatInput(E),formatInput(_),0,0,{})}export{commandScore};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/hotkeys-js@3.13.7/dist/hotkeys.esm.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
/**!
|
|
8
|
+
* hotkeys-js v3.13.7
|
|
9
|
+
* A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.
|
|
10
|
+
*
|
|
11
|
+
* Copyright (c) 2024 kenny wong <wowohoo@qq.com>
|
|
12
|
+
* https://github.com/jaywcjlove/hotkeys-js.git
|
|
13
|
+
*
|
|
14
|
+
* @website: https://jaywcjlove.github.io/hotkeys-js
|
|
15
|
+
|
|
16
|
+
* Licensed under the MIT license
|
|
17
|
+
*/
|
|
18
|
+
const e="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function t(e,t,n,o){e.addEventListener?e.addEventListener(t,n,o):e.attachEvent&&e.attachEvent("on".concat(t),n)}function n(e,t,n,o){e.removeEventListener?e.removeEventListener(t,n,o):e.detachEvent&&e.detachEvent("on".concat(t),n)}function o(e,t){const n=t.slice(0,t.length-1);for(let t=0;t<n.length;t++)n[t]=e[n[t].toLowerCase()];return n}function r(e){"string"!=typeof e&&(e="");const t=(e=e.replace(/\s/g,"")).split(",");let n=t.lastIndexOf("");for(;n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}const i={backspace:8,"⌫":8,tab:9,clear:12,enter:13,"↩":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":e?173:189,"=":e?61:187,";":e?59:186,"'":222,"[":219,"]":221,"\\":220},c={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},s={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},l={16:!1,18:!1,17:!1,91:!1},f={};for(let e=1;e<20;e++)i["f".concat(e)]=111+e;let a=[],u=null,p="all";const d=new Map,y=e=>i[e.toLowerCase()]||c[e.toLowerCase()]||e.toUpperCase().charCodeAt(0);function h(e){p=e||"all"}function m(){return p||"all"}function k(e){if(void 0===e)Object.keys(f).forEach((e=>{Array.isArray(f[e])&&f[e].forEach((e=>g(e))),delete f[e]})),v(null);else if(Array.isArray(e))e.forEach((e=>{e.key&&g(e)}));else if("object"==typeof e)e.key&&g(e);else if("string"==typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];let[r,i]=n;"function"==typeof r&&(i=r,r=""),g({key:e,scope:r,method:i,splitKey:"+"})}}const g=e=>{let{key:t,scope:n,method:i,splitKey:s="+"}=e;r(t).forEach((e=>{const t=e.split(s),r=t.length,l=t[r-1],a="*"===l?"*":y(l);if(!f[a])return;n||(n=m());const u=r>1?o(c,t):[],p=[];f[a]=f[a].filter((e=>{const t=(!i||e.method===i)&&e.scope===n&&function(e,t){const n=e.length>=t.length?e:t,o=e.length>=t.length?t:e;let r=!0;for(let e=0;e<n.length;e++)-1===o.indexOf(n[e])&&(r=!1);return r}(e.mods,u);return t&&p.push(e.element),!t})),p.forEach((e=>v(e)))}))};function w(e,t,n,o){if(t.element!==o)return;let r;if(t.scope===n||"all"===t.scope){r=t.mods.length>0;for(const e in l)Object.prototype.hasOwnProperty.call(l,e)&&(!l[e]&&t.mods.indexOf(+e)>-1||l[e]&&-1===t.mods.indexOf(+e))&&(r=!1);(0!==t.mods.length||l[16]||l[18]||l[17]||l[91])&&!r&&"*"!==t.shortcut||(t.keys=[],t.keys=t.keys.concat(a),!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0)))}}function O(e,t){const n=f["*"];let o=e.keyCode||e.which||e.charCode;if(!b.filter.call(this,e))return;if(93!==o&&224!==o||(o=91),-1===a.indexOf(o)&&229!==o&&a.push(o),["ctrlKey","altKey","shiftKey","metaKey"].forEach((t=>{const n=s[t];e[t]&&-1===a.indexOf(n)?a.push(n):!e[t]&&a.indexOf(n)>-1?a.splice(a.indexOf(n),1):"metaKey"===t&&e[t]&&3===a.length&&(e.ctrlKey||e.shiftKey||e.altKey||(a=a.slice(a.indexOf(n))))})),o in l){l[o]=!0;for(const e in c)c[e]===o&&(b[e]=!0);if(!n)return}for(const t in l)Object.prototype.hasOwnProperty.call(l,t)&&(l[t]=e[s[t]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===a.indexOf(17)&&a.push(17),-1===a.indexOf(18)&&a.push(18),l[17]=!0,l[18]=!0);const r=m();if(n)for(let o=0;o<n.length;o++)n[o].scope===r&&("keydown"===e.type&&n[o].keydown||"keyup"===e.type&&n[o].keyup)&&w(e,n[o],r,t);if(!(o in f))return;const i=f[o],u=i.length;for(let n=0;n<u;n++)if(("keydown"===e.type&&i[n].keydown||"keyup"===e.type&&i[n].keyup)&&i[n].key){const o=i[n],{splitKey:c}=o,s=o.key.split(c),l=[];for(let e=0;e<s.length;e++)l.push(y(s[e]));l.sort().join("")===a.sort().join("")&&w(e,o,r,t)}}function b(e,n,i){a=[];const s=r(e);let p=[],h="all",m=document,g=0,w=!1,v=!0,E="+",K=!1,x=!1;for(void 0===i&&"function"==typeof n&&(i=n),"[object Object]"===Object.prototype.toString.call(n)&&(n.scope&&(h=n.scope),n.element&&(m=n.element),n.keyup&&(w=n.keyup),void 0!==n.keydown&&(v=n.keydown),void 0!==n.capture&&(K=n.capture),"string"==typeof n.splitKey&&(E=n.splitKey),!0===n.single&&(x=!0)),"string"==typeof n&&(h=n),x&&k(e,h);g<s.length;g++)p=[],(e=s[g].split(E)).length>1&&(p=o(c,e)),(e="*"===(e=e[e.length-1])?"*":y(e))in f||(f[e]=[]),f[e].push({keyup:w,keydown:v,scope:h,mods:p,shortcut:s[g],method:i,key:s[g],splitKey:E,element:m});if(void 0!==m&&window){if(!d.has(m)){const e=function(){return O(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event,m)},n=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;O(e,m),function(e){let t=e.keyCode||e.which||e.charCode;const n=a.indexOf(t);if(n>=0&&a.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&a.splice(0,a.length),93!==t&&224!==t||(t=91),t in l){l[t]=!1;for(const e in c)c[e]===t&&(b[e]=!1)}}(e)};d.set(m,{keydownListener:e,keyupListenr:n,capture:K}),t(m,"keydown",e,K),t(m,"keyup",n,K)}if(!u){const e=()=>{a=[]};u={listener:e,capture:K},t(window,"focus",e,K)}}}function v(e){const t=Object.values(f).flat();if(t.findIndex((t=>{let{element:n}=t;return n===e}))<0){const{keydownListener:t,keyupListenr:o,capture:r}=d.get(e)||{};t&&o&&(n(e,"keyup",o,r),n(e,"keydown",t,r),d.delete(e))}if(t.length<=0||d.size<=0){if(Object.keys(d).forEach((e=>{const{keydownListener:t,keyupListenr:o,capture:r}=d.get(e)||{};t&&o&&(n(e,"keyup",o,r),n(e,"keydown",t,r),d.delete(e))})),d.clear(),Object.keys(f).forEach((e=>delete f[e])),u){const{listener:e,capture:t}=u;n(window,"focus",e,t),u=null}}}const E={getPressedKeyString:function(){return a.map((e=>{return t=e,Object.keys(i).find((e=>i[e]===t))||(e=>Object.keys(c).find((t=>c[t]===e)))(e)||String.fromCharCode(e);var t}))},setScope:h,getScope:m,deleteScope:function(e,t){let n,o;e||(e=m());for(const t in f)if(Object.prototype.hasOwnProperty.call(f,t))for(n=f[t],o=0;o<n.length;)if(n[o].scope===e){n.splice(o,1).forEach((e=>{let{element:t}=e;return v(t)}))}else o++;m()===e&&h(t||"all")},getPressedKeyCodes:function(){return a.slice(0)},getAllKeyCodes:function(){const e=[];return Object.keys(f).forEach((t=>{f[t].forEach((t=>{let{key:n,scope:o,mods:r,shortcut:i}=t;e.push({scope:o,shortcut:i,mods:r,keys:n.split("+").map((e=>y(e)))})}))})),e},isPressed:function(e){return"string"==typeof e&&(e=y(e)),-1!==a.indexOf(e)},filter:function(e){const t=e.target||e.srcElement,{tagName:n}=t;let o=!0;const r="INPUT"===n&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(t.type);return(t.isContentEditable||(r||"TEXTAREA"===n||"SELECT"===n)&&!t.readOnly)&&(o=!1),o},trigger:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(f).forEach((n=>{f[n].filter((n=>n.scope===t&&n.shortcut===e)).forEach((e=>{e&&e.method&&e.method()}))}))},unbind:k,keyMap:i,modifier:c,modifierMap:s};for(const e in E)Object.prototype.hasOwnProperty.call(E,e)&&(b[e]=E[e]);if("undefined"!=typeof window){const e=window.hotkeys;b.noConflict=t=>(t&&window.hotkeys===b&&(window.hotkeys=e),b),window.hotkeys=b}export{b as default};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit@3.1.3/decorators.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
export*from"../reactive-element/decorators/custom-element.min.js";export*from"../reactive-element/decorators/property.min.js";export*from"../reactive-element/decorators/state.min.js";export*from"../reactive-element/decorators/event-options.min.js";export*from"../reactive-element/decorators/query.min.js";export*from"../reactive-element/decorators/query-all.min.js";export*from"../reactive-element/decorators/query-async.min.js";export*from"../reactive-element/decorators/query-assigned-elements.min.js";export*from"../reactive-element/decorators/query-assigned-nodes.min.js";export default null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit@3.1.3/directives/class-map.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
export*from"../../lit-html/directives/class-map.min.js";export default null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit@3.1.3/directives/join.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
export*from"../../lit-html/directives/join.min.js";export default null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit@3.1.3/directives/live.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
export*from"../../lit-html/directives/live.min.js";export default null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit@3.1.3/directives/ref.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
export*from"../../lit-html/directives/ref.min.js";export default null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit@3.1.3/directives/repeat.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
export*from"../../lit-html/directives/repeat.min.js";export default null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit@3.1.3/directives/unsafe-html.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
export*from"../../lit-html/directives/unsafe-html.min.js";export default null;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit@3.1.3/index.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
import"../reactive-element/reactive-element.min.js";import"../lit-html/lit-html.min.js";export*from"../lit-element/lit-element.min.js";export*from"../lit-html/is-server.min.js";export default null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit-element@4.0.5/lit-element.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
import{ReactiveElement as e}from"../reactive-element/reactive-element.min.js";export*from"../reactive-element/reactive-element.min.js";import{render as t,noChange as n}from"../lit-html/lit-html.min.js";export*from"../lit-html/lit-html.min.js";
|
|
8
|
+
/**
|
|
9
|
+
* @license
|
|
10
|
+
* Copyright 2017 Google LLC
|
|
11
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
12
|
+
*/class s extends e{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const n=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=t(n,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return n}}s._$litElement$=!0,s.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:s});const r=globalThis.litElementPolyfillSupport;r?.({LitElement:s});const o={_$AK:(e,t,n)=>{e._$AK(t,n)},_$AL:e=>e._$AL};(globalThis.litElementVersions??=[]).push("4.0.5");export{s as LitElement,o as _$LE};export default null;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit-html@3.1.3/directives/class-map.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @license
|
|
9
|
+
* Copyright 2017 Google LLC
|
|
10
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
+
*/
|
|
12
|
+
const t=globalThis,e=t.trustedTypes,s=e?e.createPolicy("lit-html",{createHTML:t=>t}):void 0,i="$lit$",n=`lit$${Math.random().toFixed(9).slice(2)}$`,r="?"+n,o=`<${r}>`,h=document,l=()=>h.createComment(""),$=t=>null===t||"object"!=typeof t&&"function"!=typeof t,a=Array.isArray,A=t=>a(t)||"function"==typeof t?.[Symbol.iterator],c="[ \t\n\f\r]",_=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,d=/-->/g,p=/>/g,u=RegExp(`>|${c}(?:([^\\s"'>=/]+)(${c}*=${c}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),g=/'/g,f=/"/g,v=/^(?:script|style|textarea|title)$/i,m=Symbol.for("lit-noChange"),y=Symbol.for("lit-nothing"),x=new WeakMap,H=h.createTreeWalker(h,129);function T(t,e){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==s?s.createHTML(e):e}const N=(t,e)=>{const s=t.length-1,r=[];let h,l=2===e?"<svg>":"",$=_;for(let e=0;e<s;e++){const s=t[e];let a,A,c=-1,m=0;for(;m<s.length&&($.lastIndex=m,A=$.exec(s),null!==A);)m=$.lastIndex,$===_?"!--"===A[1]?$=d:void 0!==A[1]?$=p:void 0!==A[2]?(v.test(A[2])&&(h=RegExp("</"+A[2],"g")),$=u):void 0!==A[3]&&($=u):$===u?">"===A[0]?($=h??_,c=-1):void 0===A[1]?c=-2:(c=$.lastIndex-A[2].length,a=A[1],$=void 0===A[3]?u:'"'===A[3]?f:g):$===f||$===g?$=u:$===d||$===p?$=_:($=u,h=void 0);const y=$===u&&t[e+1].startsWith("/>")?" ":"";l+=$===_?s+o:c>=0?(r.push(a),s.slice(0,c)+i+s.slice(c)+n+y):s+n+(-2===c?e:y)}return[T(t,l+(t[s]||"<?>")+(2===e?"</svg>":"")),r]};class b{constructor({strings:t,_$litType$:s},o){let h;this.parts=[];let $=0,a=0;const A=t.length-1,c=this.parts,[_,d]=N(t,s);if(this.el=b.createElement(_,o),H.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(h=H.nextNode())&&c.length<A;){if(1===h.nodeType){if(h.hasAttributes())for(const t of h.getAttributeNames())if(t.endsWith(i)){const e=d[a++],s=h.getAttribute(t).split(n),i=/([.?@])?(.*)/.exec(e);c.push({type:1,index:$,name:i[2],strings:s,ctor:"."===i[1]?w:"?"===i[1]?I:"@"===i[1]?U:C}),h.removeAttribute(t)}else t.startsWith(n)&&(c.push({type:6,index:$}),h.removeAttribute(t));if(v.test(h.tagName)){const t=h.textContent.split(n),s=t.length-1;if(s>0){h.textContent=e?e.emptyScript:"";for(let e=0;e<s;e++)h.append(t[e],l()),H.nextNode(),c.push({type:2,index:++$});h.append(t[s],l())}}}else if(8===h.nodeType)if(h.data===r)c.push({type:2,index:$});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)c.push({type:7,index:$}),t+=n.length-1}$++}}static createElement(t,e){const s=h.createElement("template");return s.innerHTML=t,s}}function E(t,e,s=t,i){if(e===m)return e;let n=void 0!==i?s._$Co?.[i]:s._$Cl;const r=$(e)?void 0:e._$litDirective$;return n?.constructor!==r&&(n?._$AO?.(!1),void 0===r?n=void 0:(n=new r(t),n._$AT(t,s,i)),void 0!==i?(s._$Co??=[])[i]=n:s._$Cl=n),void 0!==n&&(e=E(t,n._$AS(t,e.values),n,i)),e}class M{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:s}=this._$AD,i=(t?.creationScope??h).importNode(e,!0);H.currentNode=i;let n=H.nextNode(),r=0,o=0,l=s[0];for(;void 0!==l;){if(r===l.index){let e;2===l.type?e=new S(n,n.nextSibling,this,t):1===l.type?e=new l.ctor(n,l.name,l.strings,this,t):6===l.type&&(e=new R(n,this,t)),this._$AV.push(e),l=s[++o]}r!==l?.index&&(n=H.nextNode(),r++)}return H.currentNode=h,i}p(t){let e=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}}class S{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,i){this.type=2,this._$AH=y,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=i,this._$Cv=i?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=E(this,t,e),$(t)?t===y||null==t||""===t?(this._$AH!==y&&this._$AR(),this._$AH=y):t!==this._$AH&&t!==m&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):A(t)?this.k(t):this._(t)}S(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.S(t))}_(t){this._$AH!==y&&$(this._$AH)?this._$AA.nextSibling.data=t:this.T(h.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:s}=t,i="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=b.createElement(T(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===i)this._$AH.p(e);else{const t=new M(i,this),s=t.u(this.options);t.p(e),this.T(s),this._$AH=t}}_$AC(t){let e=x.get(t.strings);return void 0===e&&x.set(t.strings,e=new b(t)),e}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let s,i=0;for(const n of t)i===e.length?e.push(s=new S(this.S(l()),this.S(l()),this,this.options)):s=e[i],s._$AI(n),i++;i<e.length&&(this._$AR(s&&s._$AB.nextSibling,i),e.length=i)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class C{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,i,n){this.type=1,this._$AH=y,this._$AN=void 0,this.element=t,this.name=e,this._$AM=i,this.options=n,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=y}_$AI(t,e=this,s,i){const n=this.strings;let r=!1;if(void 0===n)t=E(this,t,e,0),r=!$(t)||t!==this._$AH&&t!==m,r&&(this._$AH=t);else{const i=t;let o,h;for(t=n[0],o=0;o<n.length-1;o++)h=E(this,i[s+o],e,o),h===m&&(h=this._$AH[o]),r||=!$(h)||h!==this._$AH[o],h===y?t=y:t!==y&&(t+=(h??"")+n[o+1]),this._$AH[o]=h}r&&!i&&this.j(t)}j(t){t===y?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class w extends C{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===y?void 0:t}}class I extends C{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==y)}}class U extends C{constructor(t,e,s,i,n){super(t,e,s,i,n),this.type=5}_$AI(t,e=this){if((t=E(this,t,e,0)??y)===m)return;const s=this._$AH,i=t===y&&s!==y||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==y&&(s===y||i);i&&this.element.removeEventListener(this.name,this,s),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class R{constructor(t,e,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){E(this,t)}}const B=t.litHtmlPolyfillSupport;B?.(b,S),(t.litHtmlVersions??=[]).push("3.1.3");
|
|
13
|
+
/**
|
|
14
|
+
* @license
|
|
15
|
+
* Copyright 2017 Google LLC
|
|
16
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
17
|
+
*/const L={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},j=t=>(...e)=>({_$litDirective$:t,values:e});class O{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,s){this._$Ct=t,this._$AM=e,this._$Ci=s}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}
|
|
18
|
+
/**
|
|
19
|
+
* @license
|
|
20
|
+
* Copyright 2018 Google LLC
|
|
21
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
22
|
+
*/const P=j(class extends O{constructor(t){if(super(t),t.type!==L.ATTRIBUTE||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter((e=>t[e])).join(" ")+" "}update(t,[e]){if(void 0===this.st){this.st=new Set,void 0!==t.strings&&(this.nt=new Set(t.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in e)e[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(e)}const s=t.element.classList;for(const t of this.st)t in e||(s.remove(t),this.st.delete(t));for(const t in e){const i=!!e[t];i===this.st.has(t)||this.nt?.has(t)||(i?(s.add(t),this.st.add(t)):(s.remove(t),this.st.delete(t)))}return m}});export{P as classMap};export default null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
|
3
|
+
* Original file: /npm/lit-html@3.1.3/directives/join.js
|
|
4
|
+
*
|
|
5
|
+
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @license
|
|
9
|
+
* Copyright 2021 Google LLC
|
|
10
|
+
* SPDX-License-Identifier: BSD-3-Clause
|
|
11
|
+
*/
|
|
12
|
+
function*o(o,t){const n="function"==typeof t;if(void 0!==o){let e=-1;for(const f of o)e>-1&&(yield n?t(e):t),e++,yield f}}export{o as join};export default null;
|