hyperdivlite 0.1.9__py3-none-any.whl
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.
- frontend/public/build/bundle.css +1616 -0
- frontend/public/build/bundle.js +6738 -0
- frontend/public/build/shoelace/assets/icons/0-circle-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/0-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/0-square-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/0-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/1-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/1-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/1-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/1-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/123.svg +3 -0
- frontend/public/build/shoelace/assets/icons/2-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/2-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/2-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/2-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/3-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/3-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/3-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/3-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/4-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/4-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/4-square-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/4-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/5-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/5-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/5-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/5-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/6-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/6-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/6-square-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/6-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/7-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/7-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/7-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/7-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/8-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/8-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/8-square-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/8-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/9-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/9-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/9-square-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/9-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/LICENSE +21 -0
- frontend/public/build/shoelace/assets/icons/activity.svg +3 -0
- frontend/public/build/shoelace/assets/icons/airplane-engines-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/airplane-engines.svg +3 -0
- frontend/public/build/shoelace/assets/icons/airplane-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/airplane.svg +3 -0
- frontend/public/build/shoelace/assets/icons/alarm-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/alarm.svg +4 -0
- frontend/public/build/shoelace/assets/icons/alexa.svg +3 -0
- frontend/public/build/shoelace/assets/icons/align-bottom.svg +4 -0
- frontend/public/build/shoelace/assets/icons/align-center.svg +3 -0
- frontend/public/build/shoelace/assets/icons/align-end.svg +4 -0
- frontend/public/build/shoelace/assets/icons/align-middle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/align-start.svg +4 -0
- frontend/public/build/shoelace/assets/icons/align-top.svg +4 -0
- frontend/public/build/shoelace/assets/icons/alipay.svg +4 -0
- frontend/public/build/shoelace/assets/icons/alphabet-uppercase.svg +3 -0
- frontend/public/build/shoelace/assets/icons/alphabet.svg +3 -0
- frontend/public/build/shoelace/assets/icons/alt.svg +3 -0
- frontend/public/build/shoelace/assets/icons/amazon.svg +4 -0
- frontend/public/build/shoelace/assets/icons/amd.svg +3 -0
- frontend/public/build/shoelace/assets/icons/android.svg +3 -0
- frontend/public/build/shoelace/assets/icons/android2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/app-indicator.svg +4 -0
- frontend/public/build/shoelace/assets/icons/app.svg +3 -0
- frontend/public/build/shoelace/assets/icons/apple.svg +4 -0
- frontend/public/build/shoelace/assets/icons/archive-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/archive.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-90deg-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-90deg-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-90deg-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-90deg-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-bar-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-bar-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-bar-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-bar-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-clockwise.svg +4 -0
- frontend/public/build/shoelace/assets/icons/arrow-counterclockwise.svg +4 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-left-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-left-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-left-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-left-square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-right-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-right-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-right-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-right-square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-short.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-left-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-left-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-left-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-left-short.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-left-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-left-square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-repeat.svg +4 -0
- frontend/public/build/shoelace/assets/icons/arrow-return-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-return-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-right-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-right-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-right-short.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-right-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-right-square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-through-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-through-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-left-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-left-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-left-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-left-square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-right-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-right-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-right-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-right-square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-short.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up-square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrow-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows-angle-contract.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows-angle-expand.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows-collapse-vertical.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows-collapse.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows-expand-vertical.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows-expand.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows-fullscreen.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows-move.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows-vertical.svg +3 -0
- frontend/public/build/shoelace/assets/icons/arrows.svg +3 -0
- frontend/public/build/shoelace/assets/icons/aspect-ratio-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/aspect-ratio.svg +4 -0
- frontend/public/build/shoelace/assets/icons/asterisk.svg +3 -0
- frontend/public/build/shoelace/assets/icons/at.svg +3 -0
- frontend/public/build/shoelace/assets/icons/award-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/award.svg +4 -0
- frontend/public/build/shoelace/assets/icons/back.svg +3 -0
- frontend/public/build/shoelace/assets/icons/backpack-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/backpack.svg +4 -0
- frontend/public/build/shoelace/assets/icons/backpack2-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/backpack2.svg +5 -0
- frontend/public/build/shoelace/assets/icons/backpack3-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/backpack3.svg +4 -0
- frontend/public/build/shoelace/assets/icons/backpack4-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/backpack4.svg +4 -0
- frontend/public/build/shoelace/assets/icons/backspace-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/backspace-reverse-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/backspace-reverse.svg +4 -0
- frontend/public/build/shoelace/assets/icons/backspace.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-3d-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-3d.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-4k-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-4k.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-8k-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-8k.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-ad-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-ad.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-ar-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-ar.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-cc-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/badge-cc.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-hd-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-hd.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-sd-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-sd.svg +3 -0
- frontend/public/build/shoelace/assets/icons/badge-tm-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/badge-tm.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-vo-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-vo.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-vr-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-vr.svg +4 -0
- frontend/public/build/shoelace/assets/icons/badge-wc-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/badge-wc.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bag-check-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bag-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bag-dash-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bag-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bag-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bag-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bag-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bag-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bag-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bag-x-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bag-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bag.svg +3 -0
- frontend/public/build/shoelace/assets/icons/balloon-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/balloon-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/balloon-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/balloon.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ban-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ban.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bandaid-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bandaid.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bank.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bank2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bar-chart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bar-chart-line-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bar-chart-line.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bar-chart-steps.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bar-chart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/basket-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/basket.svg +3 -0
- frontend/public/build/shoelace/assets/icons/basket2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/basket2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/basket3-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/basket3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/battery-charging.svg +6 -0
- frontend/public/build/shoelace/assets/icons/battery-full.svg +4 -0
- frontend/public/build/shoelace/assets/icons/battery-half.svg +4 -0
- frontend/public/build/shoelace/assets/icons/battery.svg +3 -0
- frontend/public/build/shoelace/assets/icons/behance.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bell-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bell-slash-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bell-slash.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bell.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bezier.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bezier2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bicycle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bing.svg +5 -0
- frontend/public/build/shoelace/assets/icons/binoculars-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/binoculars.svg +3 -0
- frontend/public/build/shoelace/assets/icons/blockquote-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/blockquote-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bluetooth.svg +3 -0
- frontend/public/build/shoelace/assets/icons/body-text.svg +3 -0
- frontend/public/build/shoelace/assets/icons/book-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/book-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/book.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bookmark-check-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bookmark-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bookmark-dash-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bookmark-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bookmark-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bookmark-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bookmark-heart.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bookmark-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bookmark-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bookmark-star-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bookmark-star.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bookmark-x-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bookmark-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bookmark.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bookmarks-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bookmarks.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bookshelf.svg +3 -0
- frontend/public/build/shoelace/assets/icons/boombox-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/boombox.svg +6 -0
- frontend/public/build/shoelace/assets/icons/bootstrap-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bootstrap-reboot.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bootstrap.svg +4 -0
- frontend/public/build/shoelace/assets/icons/border-all.svg +3 -0
- frontend/public/build/shoelace/assets/icons/border-bottom.svg +3 -0
- frontend/public/build/shoelace/assets/icons/border-center.svg +3 -0
- frontend/public/build/shoelace/assets/icons/border-inner.svg +5 -0
- frontend/public/build/shoelace/assets/icons/border-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/border-middle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/border-outer.svg +4 -0
- frontend/public/build/shoelace/assets/icons/border-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/border-style.svg +3 -0
- frontend/public/build/shoelace/assets/icons/border-top.svg +3 -0
- frontend/public/build/shoelace/assets/icons/border-width.svg +3 -0
- frontend/public/build/shoelace/assets/icons/border.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bounding-box-circles.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bounding-box.svg +3 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-down-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-down-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-in-down-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-in-down-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-in-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-in-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-in-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-in-up-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-in-up-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-in-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-up-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-up-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-arrow-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/box-seam-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/box-seam.svg +3 -0
- frontend/public/build/shoelace/assets/icons/box.svg +3 -0
- frontend/public/build/shoelace/assets/icons/box2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/box2-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/box2-heart.svg +4 -0
- frontend/public/build/shoelace/assets/icons/box2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/boxes.svg +3 -0
- frontend/public/build/shoelace/assets/icons/braces-asterisk.svg +3 -0
- frontend/public/build/shoelace/assets/icons/braces.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bricks.svg +3 -0
- frontend/public/build/shoelace/assets/icons/briefcase-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/briefcase.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brightness-alt-high-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brightness-alt-high.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brightness-alt-low-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brightness-alt-low.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brightness-high-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brightness-high.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brightness-low-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brightness-low.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brilliance.svg +3 -0
- frontend/public/build/shoelace/assets/icons/broadcast-pin.svg +3 -0
- frontend/public/build/shoelace/assets/icons/broadcast.svg +3 -0
- frontend/public/build/shoelace/assets/icons/browser-chrome.svg +3 -0
- frontend/public/build/shoelace/assets/icons/browser-edge.svg +5 -0
- frontend/public/build/shoelace/assets/icons/browser-firefox.svg +3 -0
- frontend/public/build/shoelace/assets/icons/browser-safari.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brush-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/brush.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bucket-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bucket.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bug-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bug.svg +3 -0
- frontend/public/build/shoelace/assets/icons/building-add.svg +5 -0
- frontend/public/build/shoelace/assets/icons/building-check.svg +5 -0
- frontend/public/build/shoelace/assets/icons/building-dash.svg +5 -0
- frontend/public/build/shoelace/assets/icons/building-down.svg +5 -0
- frontend/public/build/shoelace/assets/icons/building-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-add.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-gear.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-lock.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-slash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/building-gear.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-lock.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building-slash.svg +5 -0
- frontend/public/build/shoelace/assets/icons/building-up.svg +5 -0
- frontend/public/build/shoelace/assets/icons/building-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/building.svg +4 -0
- frontend/public/build/shoelace/assets/icons/buildings-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/buildings.svg +4 -0
- frontend/public/build/shoelace/assets/icons/bullseye.svg +6 -0
- frontend/public/build/shoelace/assets/icons/bus-front-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/bus-front.svg +4 -0
- frontend/public/build/shoelace/assets/icons/c-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/c-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/c-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/c-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cake-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cake.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cake2-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cake2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calculator-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calculator.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-check-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-date-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-date.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-day-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-day.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-event-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-event.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-minus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-minus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-month-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-month.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-range-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-range.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-week-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-week.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar-x-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-check-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-check.svg +5 -0
- frontend/public/build/shoelace/assets/icons/calendar2-date-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar2-date.svg +5 -0
- frontend/public/build/shoelace/assets/icons/calendar2-day-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-day.svg +5 -0
- frontend/public/build/shoelace/assets/icons/calendar2-event-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-event.svg +5 -0
- frontend/public/build/shoelace/assets/icons/calendar2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-minus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-minus.svg +5 -0
- frontend/public/build/shoelace/assets/icons/calendar2-month-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar2-month.svg +5 -0
- frontend/public/build/shoelace/assets/icons/calendar2-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar2-range-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-range.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar2-week-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-week.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar2-x-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar2-x.svg +5 -0
- frontend/public/build/shoelace/assets/icons/calendar2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar3-event-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar3-event.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar3-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar3-range-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar3-range.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar3-week-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/calendar3-week.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar3.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar4-event.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar4-range.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar4-week.svg +4 -0
- frontend/public/build/shoelace/assets/icons/calendar4.svg +3 -0
- frontend/public/build/shoelace/assets/icons/camera-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/camera-reels-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/camera-reels.svg +5 -0
- frontend/public/build/shoelace/assets/icons/camera-video-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/camera-video-off-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/camera-video-off.svg +3 -0
- frontend/public/build/shoelace/assets/icons/camera-video.svg +3 -0
- frontend/public/build/shoelace/assets/icons/camera.svg +4 -0
- frontend/public/build/shoelace/assets/icons/camera2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/capslock-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/capslock.svg +3 -0
- frontend/public/build/shoelace/assets/icons/capsule-pill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/capsule.svg +3 -0
- frontend/public/build/shoelace/assets/icons/car-front-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/car-front.svg +4 -0
- frontend/public/build/shoelace/assets/icons/card-checklist.svg +4 -0
- frontend/public/build/shoelace/assets/icons/card-heading.svg +4 -0
- frontend/public/build/shoelace/assets/icons/card-image.svg +4 -0
- frontend/public/build/shoelace/assets/icons/card-list.svg +4 -0
- frontend/public/build/shoelace/assets/icons/card-text.svg +4 -0
- frontend/public/build/shoelace/assets/icons/caret-down-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-down-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-down-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/caret-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-left-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-left-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-left-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/caret-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-right-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-right-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-right-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/caret-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-up-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-up-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/caret-up-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/caret-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cart-check-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cart-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cart-dash-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cart-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cart-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cart-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cart-x-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cart-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cart2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cart3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cart4.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cash-coin.svg +6 -0
- frontend/public/build/shoelace/assets/icons/cash-stack.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cassette-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cassette.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cast.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cc-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cc-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cc-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cc-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-dots-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-dots.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-left-dots-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-left-dots.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-left-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-left-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-left-heart.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-left-quote-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-left-quote.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-left-text-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-left-text.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-quote-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-quote.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-right-dots-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-right-dots.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-right-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-right-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-right-heart.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-right-quote-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-right-quote.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-right-text-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-right-text.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-square-dots-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-square-dots.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-square-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-square-heart.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-square-quote-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-square-quote.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-square-text-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-square-text.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat-square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-text-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chat-text.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chat.svg +3 -0
- frontend/public/build/shoelace/assets/icons/check-all.svg +3 -0
- frontend/public/build/shoelace/assets/icons/check-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/check-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/check-lg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/check-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/check-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/check.svg +3 -0
- frontend/public/build/shoelace/assets/icons/check2-all.svg +4 -0
- frontend/public/build/shoelace/assets/icons/check2-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/check2-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/check2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-bar-contract.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-bar-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-bar-expand.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-bar-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-bar-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-bar-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-compact-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-compact-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-compact-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-compact-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-contract.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-double-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chevron-double-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chevron-double-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chevron-double-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/chevron-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-expand.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/chevron-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/circle-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/circle-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/clipboard-check-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard-check.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard-data-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard-data.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/clipboard-heart-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard-heart.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard-minus-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard-minus.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard-plus-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard-plus.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard-pulse.svg +3 -0
- frontend/public/build/shoelace/assets/icons/clipboard-x-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard-x.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-check-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-check.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-data-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-data.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-heart-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-heart.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-minus-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-minus.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-plus-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-plus.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-pulse-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-pulse.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-x-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clipboard2-x.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clipboard2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clock-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/clock-history.svg +5 -0
- frontend/public/build/shoelace/assets/icons/clock.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-arrow-down-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-arrow-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-arrow-up-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-arrow-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-check-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-download-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-download.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-drizzle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-drizzle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-fog-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-fog.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-fog2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-fog2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-hail-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-hail.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-haze-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-haze.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-haze2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-haze2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-lightning-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-lightning-rain-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-lightning-rain.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-lightning.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-minus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-minus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-moon-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-moon.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-rain-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-rain-heavy-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-rain-heavy.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-rain.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-slash-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-slash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-sleet-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-sleet.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-snow-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-snow.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-sun-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-sun.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud-upload-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloud-upload.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloud.svg +3 -0
- frontend/public/build/shoelace/assets/icons/clouds-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/clouds.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cloudy-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cloudy.svg +3 -0
- frontend/public/build/shoelace/assets/icons/code-slash.svg +3 -0
- frontend/public/build/shoelace/assets/icons/code-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/code.svg +3 -0
- frontend/public/build/shoelace/assets/icons/coin.svg +5 -0
- frontend/public/build/shoelace/assets/icons/collection-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/collection-play-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/collection-play.svg +4 -0
- frontend/public/build/shoelace/assets/icons/collection.svg +3 -0
- frontend/public/build/shoelace/assets/icons/columns-gap.svg +3 -0
- frontend/public/build/shoelace/assets/icons/columns.svg +3 -0
- frontend/public/build/shoelace/assets/icons/command.svg +3 -0
- frontend/public/build/shoelace/assets/icons/compass-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/compass.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cone-striped.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cone.svg +3 -0
- frontend/public/build/shoelace/assets/icons/controller.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cookie.svg +4 -0
- frontend/public/build/shoelace/assets/icons/copy.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cpu-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cpu.svg +3 -0
- frontend/public/build/shoelace/assets/icons/credit-card-2-back-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/credit-card-2-back.svg +4 -0
- frontend/public/build/shoelace/assets/icons/credit-card-2-front-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/credit-card-2-front.svg +4 -0
- frontend/public/build/shoelace/assets/icons/credit-card-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/credit-card.svg +4 -0
- frontend/public/build/shoelace/assets/icons/crop.svg +3 -0
- frontend/public/build/shoelace/assets/icons/crosshair.svg +3 -0
- frontend/public/build/shoelace/assets/icons/crosshair2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cup-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cup-hot-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cup-hot.svg +4 -0
- frontend/public/build/shoelace/assets/icons/cup-straw.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cup.svg +3 -0
- frontend/public/build/shoelace/assets/icons/currency-bitcoin.svg +3 -0
- frontend/public/build/shoelace/assets/icons/currency-dollar.svg +3 -0
- frontend/public/build/shoelace/assets/icons/currency-euro.svg +3 -0
- frontend/public/build/shoelace/assets/icons/currency-exchange.svg +3 -0
- frontend/public/build/shoelace/assets/icons/currency-pound.svg +3 -0
- frontend/public/build/shoelace/assets/icons/currency-rupee.svg +3 -0
- frontend/public/build/shoelace/assets/icons/currency-yen.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cursor-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cursor-text.svg +3 -0
- frontend/public/build/shoelace/assets/icons/cursor.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dash-circle-dotted.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dash-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dash-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dash-lg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dash-square-dotted.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dash-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dash-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dash.svg +3 -0
- frontend/public/build/shoelace/assets/icons/database-add.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-fill-add.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-fill-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-fill-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-fill-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-fill-exclamation.svg +5 -0
- frontend/public/build/shoelace/assets/icons/database-fill-gear.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-fill-lock.svg +5 -0
- frontend/public/build/shoelace/assets/icons/database-fill-slash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-fill-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-fill-x.svg +5 -0
- frontend/public/build/shoelace/assets/icons/database-fill.svg +6 -0
- frontend/public/build/shoelace/assets/icons/database-gear.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-lock.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-slash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/database.svg +3 -0
- frontend/public/build/shoelace/assets/icons/device-hdd-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/device-hdd.svg +5 -0
- frontend/public/build/shoelace/assets/icons/device-ssd-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/device-ssd.svg +4 -0
- frontend/public/build/shoelace/assets/icons/diagram-2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/diagram-2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/diagram-3-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/diagram-3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/diamond-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/diamond-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/diamond.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dice-1-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dice-1.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dice-2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dice-2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dice-3-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dice-3.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dice-4-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dice-4.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dice-5-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dice-5.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dice-6-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dice-6.svg +4 -0
- frontend/public/build/shoelace/assets/icons/disc-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/disc.svg +4 -0
- frontend/public/build/shoelace/assets/icons/discord.svg +3 -0
- frontend/public/build/shoelace/assets/icons/display-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/display.svg +3 -0
- frontend/public/build/shoelace/assets/icons/displayport-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/displayport.svg +4 -0
- frontend/public/build/shoelace/assets/icons/distribute-horizontal.svg +4 -0
- frontend/public/build/shoelace/assets/icons/distribute-vertical.svg +4 -0
- frontend/public/build/shoelace/assets/icons/door-closed-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/door-closed.svg +4 -0
- frontend/public/build/shoelace/assets/icons/door-open-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/door-open.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dot.svg +3 -0
- frontend/public/build/shoelace/assets/icons/download.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dpad-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dpad.svg +4 -0
- frontend/public/build/shoelace/assets/icons/dribbble.svg +3 -0
- frontend/public/build/shoelace/assets/icons/dropbox.svg +3 -0
- frontend/public/build/shoelace/assets/icons/droplet-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/droplet-half.svg +4 -0
- frontend/public/build/shoelace/assets/icons/droplet.svg +4 -0
- frontend/public/build/shoelace/assets/icons/duffle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/duffle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/ear-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ear.svg +3 -0
- frontend/public/build/shoelace/assets/icons/earbuds.svg +3 -0
- frontend/public/build/shoelace/assets/icons/easel-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/easel.svg +3 -0
- frontend/public/build/shoelace/assets/icons/easel2-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/easel2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/easel3-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/easel3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/egg-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/egg-fried.svg +4 -0
- frontend/public/build/shoelace/assets/icons/egg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/eject-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/eject.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-angry-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-angry.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-astonished-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-astonished.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-dizzy-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-dizzy.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-expressionless-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-expressionless.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-frown-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-frown.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-grimace-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-grimace.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-grin-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-grin.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-heart-eyes-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-heart-eyes.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-kiss-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-kiss.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-laughing-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-laughing.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-neutral-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-neutral.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-smile-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-smile-upside-down-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-smile-upside-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-smile.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-sunglasses-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-sunglasses.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-surprise-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-surprise.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-tear-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-tear.svg +4 -0
- frontend/public/build/shoelace/assets/icons/emoji-wink-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/emoji-wink.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-arrow-down-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-arrow-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-arrow-up-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-arrow-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-at-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-at.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-check-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-dash-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-exclamation-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/envelope-heart-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/envelope-open-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/envelope-open-heart-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-open-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/envelope-open.svg +3 -0
- frontend/public/build/shoelace/assets/icons/envelope-paper-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/envelope-paper-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/envelope-paper-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/envelope-paper.svg +3 -0
- frontend/public/build/shoelace/assets/icons/envelope-plus-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-slash-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-slash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-x-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/envelope.svg +3 -0
- frontend/public/build/shoelace/assets/icons/eraser-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/eraser.svg +3 -0
- frontend/public/build/shoelace/assets/icons/escape.svg +4 -0
- frontend/public/build/shoelace/assets/icons/ethernet.svg +4 -0
- frontend/public/build/shoelace/assets/icons/ev-front-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ev-front.svg +4 -0
- frontend/public/build/shoelace/assets/icons/ev-station-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ev-station.svg +4 -0
- frontend/public/build/shoelace/assets/icons/exclamation-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/exclamation-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/exclamation-diamond-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/exclamation-diamond.svg +4 -0
- frontend/public/build/shoelace/assets/icons/exclamation-lg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/exclamation-octagon-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/exclamation-octagon.svg +4 -0
- frontend/public/build/shoelace/assets/icons/exclamation-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/exclamation-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/exclamation-triangle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/exclamation-triangle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/exclamation.svg +3 -0
- frontend/public/build/shoelace/assets/icons/exclude.svg +3 -0
- frontend/public/build/shoelace/assets/icons/explicit-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/explicit.svg +4 -0
- frontend/public/build/shoelace/assets/icons/exposure.svg +4 -0
- frontend/public/build/shoelace/assets/icons/eye-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/eye-slash-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/eye-slash.svg +5 -0
- frontend/public/build/shoelace/assets/icons/eye.svg +4 -0
- frontend/public/build/shoelace/assets/icons/eyedropper.svg +3 -0
- frontend/public/build/shoelace/assets/icons/eyeglasses.svg +3 -0
- frontend/public/build/shoelace/assets/icons/facebook.svg +3 -0
- frontend/public/build/shoelace/assets/icons/fan.svg +4 -0
- frontend/public/build/shoelace/assets/icons/fast-forward-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/fast-forward-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/fast-forward-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/fast-forward-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/fast-forward-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/fast-forward.svg +4 -0
- frontend/public/build/shoelace/assets/icons/feather.svg +3 -0
- frontend/public/build/shoelace/assets/icons/feather2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-arrow-down-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-arrow-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-arrow-up-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-arrow-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-bar-graph-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-bar-graph.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-binary-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-binary.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-break-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-break.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-check-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-code-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-code.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-diff-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-diff.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-arrow-down-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-arrow-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-arrow-up-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-arrow-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-bar-graph-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-bar-graph.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-binary-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-binary.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-break-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-break.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-check-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-code-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-code.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-diff-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-diff.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-easel-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-easel.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-excel-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-excel.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-font-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-font.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-image-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-image.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-lock-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-lock.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-lock2-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-lock2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-medical-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-medical.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-minus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-minus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-music-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-music.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-pdf-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-pdf.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-person-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-person.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-play-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-play.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-post-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-post.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-ppt-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-ppt.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-richtext-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-richtext.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-ruled-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-ruled.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-slides-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-slides.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-spreadsheet-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-spreadsheet.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-text-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-text.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-word-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-word.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-x-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-zip-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark-zip.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-earmark.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-easel-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-easel.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-excel-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-excel.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-font-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-font.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-image-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-image.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-lock-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-lock.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-lock2-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-lock2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-medical-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-medical.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-minus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-minus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-music-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-music.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-pdf-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-pdf.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-person-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-person.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-play-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-play.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-post-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-post.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-ppt-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-ppt.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-richtext-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-richtext.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-ruled-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-ruled.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-slides-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-slides.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-spreadsheet-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-spreadsheet.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-text-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-text.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-word-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-word.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-x-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/file-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-zip-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file-zip.svg +4 -0
- frontend/public/build/shoelace/assets/icons/file.svg +3 -0
- frontend/public/build/shoelace/assets/icons/files-alt.svg +3 -0
- frontend/public/build/shoelace/assets/icons/files.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-aac.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-ai.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-bmp.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-cs.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-css.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-csv.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-doc.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-docx.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-exe.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-gif.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-heic.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-html.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-java.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-jpg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-js.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-json.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-jsx.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-key.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-m4p.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-md.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-mdx.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-mov.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-mp3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-mp4.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-otf.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-pdf.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-php.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-png.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-ppt.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-pptx.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-psd.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-py.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-raw.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-rb.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-sass.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-scss.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-sh.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-sql.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-svg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-tiff.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-tsx.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-ttf.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-txt.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-wav.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-woff.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-xls.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-xlsx.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-xml.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filetype-yml.svg +3 -0
- frontend/public/build/shoelace/assets/icons/film.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filter-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filter-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/filter-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filter-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filter-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/filter-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/filter.svg +3 -0
- frontend/public/build/shoelace/assets/icons/fingerprint.svg +7 -0
- frontend/public/build/shoelace/assets/icons/fire.svg +3 -0
- frontend/public/build/shoelace/assets/icons/flag-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/flag.svg +3 -0
- frontend/public/build/shoelace/assets/icons/floppy-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/floppy.svg +4 -0
- frontend/public/build/shoelace/assets/icons/floppy2-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/floppy2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/flower1.svg +3 -0
- frontend/public/build/shoelace/assets/icons/flower2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/flower3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/folder-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/folder-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/folder-minus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/folder-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/folder-symlink-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/folder-symlink.svg +4 -0
- frontend/public/build/shoelace/assets/icons/folder-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/folder.svg +3 -0
- frontend/public/build/shoelace/assets/icons/folder2-open.svg +3 -0
- frontend/public/build/shoelace/assets/icons/folder2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/fonts.svg +3 -0
- frontend/public/build/shoelace/assets/icons/forward-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/forward.svg +3 -0
- frontend/public/build/shoelace/assets/icons/front.svg +3 -0
- frontend/public/build/shoelace/assets/icons/fuel-pump-diesel-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/fuel-pump-diesel.svg +4 -0
- frontend/public/build/shoelace/assets/icons/fuel-pump-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/fuel-pump.svg +4 -0
- frontend/public/build/shoelace/assets/icons/fullscreen-exit.svg +3 -0
- frontend/public/build/shoelace/assets/icons/fullscreen.svg +3 -0
- frontend/public/build/shoelace/assets/icons/funnel-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/funnel.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gear-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gear-wide-connected.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gear-wide.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gear.svg +4 -0
- frontend/public/build/shoelace/assets/icons/gem.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gender-ambiguous.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gender-female.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gender-male.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gender-neuter.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gender-trans.svg +3 -0
- frontend/public/build/shoelace/assets/icons/geo-alt-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/geo-alt.svg +4 -0
- frontend/public/build/shoelace/assets/icons/geo-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/geo.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gift-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gift.svg +3 -0
- frontend/public/build/shoelace/assets/icons/git.svg +3 -0
- frontend/public/build/shoelace/assets/icons/github.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gitlab.svg +3 -0
- frontend/public/build/shoelace/assets/icons/globe-americas.svg +3 -0
- frontend/public/build/shoelace/assets/icons/globe-asia-australia.svg +4 -0
- frontend/public/build/shoelace/assets/icons/globe-central-south-asia.svg +3 -0
- frontend/public/build/shoelace/assets/icons/globe-europe-africa.svg +3 -0
- frontend/public/build/shoelace/assets/icons/globe.svg +3 -0
- frontend/public/build/shoelace/assets/icons/globe2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/google-play.svg +3 -0
- frontend/public/build/shoelace/assets/icons/google.svg +3 -0
- frontend/public/build/shoelace/assets/icons/gpu-card.svg +5 -0
- frontend/public/build/shoelace/assets/icons/graph-down-arrow.svg +3 -0
- frontend/public/build/shoelace/assets/icons/graph-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/graph-up-arrow.svg +3 -0
- frontend/public/build/shoelace/assets/icons/graph-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid-1x2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid-1x2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid-3x2-gap-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid-3x2-gap.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid-3x2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid-3x3-gap-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid-3x3-gap.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid-3x3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grid.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grip-horizontal.svg +3 -0
- frontend/public/build/shoelace/assets/icons/grip-vertical.svg +3 -0
- frontend/public/build/shoelace/assets/icons/h-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/h-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/h-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/h-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/hammer.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hand-index-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hand-index-thumb-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hand-index-thumb.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hand-index.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hand-thumbs-down-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hand-thumbs-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hand-thumbs-up-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hand-thumbs-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/handbag-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/handbag.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hash.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hdd-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hdd-network-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hdd-network.svg +4 -0
- frontend/public/build/shoelace/assets/icons/hdd-rack-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hdd-rack.svg +4 -0
- frontend/public/build/shoelace/assets/icons/hdd-stack-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hdd-stack.svg +5 -0
- frontend/public/build/shoelace/assets/icons/hdd.svg +4 -0
- frontend/public/build/shoelace/assets/icons/hdmi-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hdmi.svg +4 -0
- frontend/public/build/shoelace/assets/icons/headphones.svg +3 -0
- frontend/public/build/shoelace/assets/icons/headset-vr.svg +4 -0
- frontend/public/build/shoelace/assets/icons/headset.svg +3 -0
- frontend/public/build/shoelace/assets/icons/heart-arrow.svg +3 -0
- frontend/public/build/shoelace/assets/icons/heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/heart-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/heart-pulse-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/heart-pulse.svg +4 -0
- frontend/public/build/shoelace/assets/icons/heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/heartbreak-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/heartbreak.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hearts.svg +3 -0
- frontend/public/build/shoelace/assets/icons/heptagon-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/heptagon-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/heptagon.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hexagon-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hexagon-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hexagon.svg +3 -0
- frontend/public/build/shoelace/assets/icons/highlighter.svg +3 -0
- frontend/public/build/shoelace/assets/icons/highlights.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hospital-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hospital.svg +4 -0
- frontend/public/build/shoelace/assets/icons/hourglass-bottom.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hourglass-split.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hourglass-top.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hourglass.svg +3 -0
- frontend/public/build/shoelace/assets/icons/house-add-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-add.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-check-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-dash-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-door-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/house-door.svg +3 -0
- frontend/public/build/shoelace/assets/icons/house-down-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-exclamation-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-gear-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-gear.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-heart-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-heart.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-lock-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-lock.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-slash-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-slash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-up-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house-x-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/house-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/house.svg +3 -0
- frontend/public/build/shoelace/assets/icons/houses-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/houses.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hr.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hurricane.svg +3 -0
- frontend/public/build/shoelace/assets/icons/hypnotize.svg +4 -0
- frontend/public/build/shoelace/assets/icons/icons.json +24701 -0
- frontend/public/build/shoelace/assets/icons/image-alt.svg +3 -0
- frontend/public/build/shoelace/assets/icons/image-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/image.svg +4 -0
- frontend/public/build/shoelace/assets/icons/images.svg +4 -0
- frontend/public/build/shoelace/assets/icons/inbox-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/inbox.svg +3 -0
- frontend/public/build/shoelace/assets/icons/inboxes-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/inboxes.svg +3 -0
- frontend/public/build/shoelace/assets/icons/incognito.svg +3 -0
- frontend/public/build/shoelace/assets/icons/indent.svg +4 -0
- frontend/public/build/shoelace/assets/icons/infinity.svg +3 -0
- frontend/public/build/shoelace/assets/icons/info-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/info-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/info-lg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/info-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/info-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/info.svg +3 -0
- frontend/public/build/shoelace/assets/icons/input-cursor-text.svg +4 -0
- frontend/public/build/shoelace/assets/icons/input-cursor.svg +4 -0
- frontend/public/build/shoelace/assets/icons/instagram.svg +3 -0
- frontend/public/build/shoelace/assets/icons/intersect.svg +3 -0
- frontend/public/build/shoelace/assets/icons/journal-album.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-arrow-down.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-arrow-up.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-bookmark-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-bookmark.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-check.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-code.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-medical.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-minus.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-plus.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-richtext.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-text.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal-x.svg +5 -0
- frontend/public/build/shoelace/assets/icons/journal.svg +4 -0
- frontend/public/build/shoelace/assets/icons/journals.svg +4 -0
- frontend/public/build/shoelace/assets/icons/joystick.svg +4 -0
- frontend/public/build/shoelace/assets/icons/justify-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/justify-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/justify.svg +3 -0
- frontend/public/build/shoelace/assets/icons/kanban-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/kanban.svg +4 -0
- frontend/public/build/shoelace/assets/icons/key-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/key.svg +4 -0
- frontend/public/build/shoelace/assets/icons/keyboard-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/keyboard.svg +4 -0
- frontend/public/build/shoelace/assets/icons/ladder.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lamp-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/lamp.svg +4 -0
- frontend/public/build/shoelace/assets/icons/laptop-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/laptop.svg +3 -0
- frontend/public/build/shoelace/assets/icons/layer-backward.svg +4 -0
- frontend/public/build/shoelace/assets/icons/layer-forward.svg +4 -0
- frontend/public/build/shoelace/assets/icons/layers-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/layers-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/layers.svg +3 -0
- frontend/public/build/shoelace/assets/icons/layout-sidebar-inset-reverse.svg +4 -0
- frontend/public/build/shoelace/assets/icons/layout-sidebar-inset.svg +4 -0
- frontend/public/build/shoelace/assets/icons/layout-sidebar-reverse.svg +3 -0
- frontend/public/build/shoelace/assets/icons/layout-sidebar.svg +3 -0
- frontend/public/build/shoelace/assets/icons/layout-split.svg +3 -0
- frontend/public/build/shoelace/assets/icons/layout-text-sidebar-reverse.svg +4 -0
- frontend/public/build/shoelace/assets/icons/layout-text-sidebar.svg +4 -0
- frontend/public/build/shoelace/assets/icons/layout-text-window-reverse.svg +4 -0
- frontend/public/build/shoelace/assets/icons/layout-text-window.svg +4 -0
- frontend/public/build/shoelace/assets/icons/layout-three-columns.svg +3 -0
- frontend/public/build/shoelace/assets/icons/layout-wtf.svg +3 -0
- frontend/public/build/shoelace/assets/icons/life-preserver.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lightbulb-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lightbulb-off-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lightbulb-off.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lightbulb.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lightning-charge-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lightning-charge.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lightning-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lightning.svg +3 -0
- frontend/public/build/shoelace/assets/icons/line.svg +3 -0
- frontend/public/build/shoelace/assets/icons/link-45deg.svg +4 -0
- frontend/public/build/shoelace/assets/icons/link.svg +4 -0
- frontend/public/build/shoelace/assets/icons/linkedin.svg +3 -0
- frontend/public/build/shoelace/assets/icons/list-check.svg +3 -0
- frontend/public/build/shoelace/assets/icons/list-columns-reverse.svg +3 -0
- frontend/public/build/shoelace/assets/icons/list-columns.svg +3 -0
- frontend/public/build/shoelace/assets/icons/list-nested.svg +3 -0
- frontend/public/build/shoelace/assets/icons/list-ol.svg +4 -0
- frontend/public/build/shoelace/assets/icons/list-stars.svg +4 -0
- frontend/public/build/shoelace/assets/icons/list-task.svg +5 -0
- frontend/public/build/shoelace/assets/icons/list-ul.svg +3 -0
- frontend/public/build/shoelace/assets/icons/list.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lock-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lock.svg +3 -0
- frontend/public/build/shoelace/assets/icons/luggage-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/luggage.svg +4 -0
- frontend/public/build/shoelace/assets/icons/lungs-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/lungs.svg +3 -0
- frontend/public/build/shoelace/assets/icons/magic.svg +3 -0
- frontend/public/build/shoelace/assets/icons/magnet-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/magnet.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mailbox-flag.svg +4 -0
- frontend/public/build/shoelace/assets/icons/mailbox.svg +4 -0
- frontend/public/build/shoelace/assets/icons/mailbox2-flag.svg +4 -0
- frontend/public/build/shoelace/assets/icons/mailbox2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/map-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/map.svg +3 -0
- frontend/public/build/shoelace/assets/icons/markdown-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/markdown.svg +6 -0
- frontend/public/build/shoelace/assets/icons/marker-tip.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mask.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mastodon.svg +3 -0
- frontend/public/build/shoelace/assets/icons/medium.svg +3 -0
- frontend/public/build/shoelace/assets/icons/megaphone-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/megaphone.svg +3 -0
- frontend/public/build/shoelace/assets/icons/memory.svg +3 -0
- frontend/public/build/shoelace/assets/icons/menu-app-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/menu-app.svg +3 -0
- frontend/public/build/shoelace/assets/icons/menu-button-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/menu-button-wide-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/menu-button-wide.svg +4 -0
- frontend/public/build/shoelace/assets/icons/menu-button.svg +4 -0
- frontend/public/build/shoelace/assets/icons/menu-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/menu-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/messenger.svg +3 -0
- frontend/public/build/shoelace/assets/icons/meta.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mic-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/mic-mute-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/mic-mute.svg +4 -0
- frontend/public/build/shoelace/assets/icons/mic.svg +4 -0
- frontend/public/build/shoelace/assets/icons/microsoft-teams.svg +4 -0
- frontend/public/build/shoelace/assets/icons/microsoft.svg +3 -0
- frontend/public/build/shoelace/assets/icons/minecart-loaded.svg +4 -0
- frontend/public/build/shoelace/assets/icons/minecart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/modem-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/modem.svg +4 -0
- frontend/public/build/shoelace/assets/icons/moisture.svg +3 -0
- frontend/public/build/shoelace/assets/icons/moon-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/moon-stars-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/moon-stars.svg +4 -0
- frontend/public/build/shoelace/assets/icons/moon.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mortarboard-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/mortarboard.svg +4 -0
- frontend/public/build/shoelace/assets/icons/motherboard-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/motherboard.svg +4 -0
- frontend/public/build/shoelace/assets/icons/mouse-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mouse.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mouse2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mouse2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mouse3-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/mouse3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/music-note-beamed.svg +5 -0
- frontend/public/build/shoelace/assets/icons/music-note-list.svg +6 -0
- frontend/public/build/shoelace/assets/icons/music-note.svg +5 -0
- frontend/public/build/shoelace/assets/icons/music-player-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/music-player.svg +5 -0
- frontend/public/build/shoelace/assets/icons/newspaper.svg +4 -0
- frontend/public/build/shoelace/assets/icons/nintendo-switch.svg +4 -0
- frontend/public/build/shoelace/assets/icons/node-minus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/node-minus.svg +3 -0
- frontend/public/build/shoelace/assets/icons/node-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/node-plus.svg +3 -0
- frontend/public/build/shoelace/assets/icons/noise-reduction.svg +4 -0
- frontend/public/build/shoelace/assets/icons/nut-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/nut.svg +4 -0
- frontend/public/build/shoelace/assets/icons/nvidia.svg +3 -0
- frontend/public/build/shoelace/assets/icons/nvme-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/nvme.svg +4 -0
- frontend/public/build/shoelace/assets/icons/octagon-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/octagon-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/octagon.svg +3 -0
- frontend/public/build/shoelace/assets/icons/opencollective.svg +4 -0
- frontend/public/build/shoelace/assets/icons/optical-audio-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/optical-audio.svg +5 -0
- frontend/public/build/shoelace/assets/icons/option.svg +3 -0
- frontend/public/build/shoelace/assets/icons/outlet.svg +4 -0
- frontend/public/build/shoelace/assets/icons/p-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/p-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/p-square-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/p-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/paint-bucket.svg +3 -0
- frontend/public/build/shoelace/assets/icons/palette-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/palette.svg +4 -0
- frontend/public/build/shoelace/assets/icons/palette2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/paperclip.svg +3 -0
- frontend/public/build/shoelace/assets/icons/paragraph.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pass-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pass.svg +4 -0
- frontend/public/build/shoelace/assets/icons/passport-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/passport.svg +4 -0
- frontend/public/build/shoelace/assets/icons/patch-check-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/patch-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/patch-exclamation-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/patch-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/patch-minus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/patch-minus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/patch-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/patch-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/patch-question-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/patch-question.svg +5 -0
- frontend/public/build/shoelace/assets/icons/pause-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pause-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/pause-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pause-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/pause-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pause.svg +3 -0
- frontend/public/build/shoelace/assets/icons/paypal.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pc-display-horizontal.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pc-display.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pc-horizontal.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pc.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pci-card-network.svg +5 -0
- frontend/public/build/shoelace/assets/icons/pci-card-sound.svg +5 -0
- frontend/public/build/shoelace/assets/icons/pci-card.svg +4 -0
- frontend/public/build/shoelace/assets/icons/peace-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/peace.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pen-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pen.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pencil-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pencil-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/pencil.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pentagon-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pentagon-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pentagon.svg +3 -0
- frontend/public/build/shoelace/assets/icons/people-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/people.svg +3 -0
- frontend/public/build/shoelace/assets/icons/percent.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-add.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-arms-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-badge-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-badge.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-bounding-box.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-check-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-dash-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-fill-add.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-fill-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-fill-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-fill-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-fill-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-fill-gear.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-fill-lock.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-fill-slash.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-fill-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-fill-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-gear.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-hearts.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-lines-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-lock.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-plus-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-raised-hand.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-rolodex.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-slash.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-standing-dress.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-standing.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-vcard-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-vcard.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-video.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-video2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-video3.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-walking.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-wheelchair.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-workspace.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person-x-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/person-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/person.svg +3 -0
- frontend/public/build/shoelace/assets/icons/phone-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/phone-flip.svg +3 -0
- frontend/public/build/shoelace/assets/icons/phone-landscape-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/phone-landscape.svg +4 -0
- frontend/public/build/shoelace/assets/icons/phone-vibrate-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/phone-vibrate.svg +4 -0
- frontend/public/build/shoelace/assets/icons/phone.svg +4 -0
- frontend/public/build/shoelace/assets/icons/pie-chart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pie-chart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/piggy-bank-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/piggy-bank.svg +4 -0
- frontend/public/build/shoelace/assets/icons/pin-angle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pin-angle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pin-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pin-map-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/pin-map.svg +4 -0
- frontend/public/build/shoelace/assets/icons/pin.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pinterest.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pip-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/pip.svg +4 -0
- frontend/public/build/shoelace/assets/icons/play-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/play-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/play-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/play-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/play-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/play.svg +3 -0
- frontend/public/build/shoelace/assets/icons/playstation.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plug-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plug.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plugin.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plus-circle-dotted.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plus-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plus-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/plus-lg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plus-slash-minus.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plus-square-dotted.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plus-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/plus-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/plus.svg +3 -0
- frontend/public/build/shoelace/assets/icons/postage-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/postage-heart-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/postage-heart.svg +4 -0
- frontend/public/build/shoelace/assets/icons/postage.svg +4 -0
- frontend/public/build/shoelace/assets/icons/postcard-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/postcard-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/postcard-heart.svg +4 -0
- frontend/public/build/shoelace/assets/icons/postcard.svg +3 -0
- frontend/public/build/shoelace/assets/icons/power.svg +4 -0
- frontend/public/build/shoelace/assets/icons/prescription.svg +4 -0
- frontend/public/build/shoelace/assets/icons/prescription2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/printer-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/printer.svg +4 -0
- frontend/public/build/shoelace/assets/icons/projector-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/projector.svg +4 -0
- frontend/public/build/shoelace/assets/icons/puzzle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/puzzle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/qr-code-scan.svg +7 -0
- frontend/public/build/shoelace/assets/icons/qr-code.svg +7 -0
- frontend/public/build/shoelace/assets/icons/question-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/question-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/question-diamond-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/question-diamond.svg +4 -0
- frontend/public/build/shoelace/assets/icons/question-lg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/question-octagon-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/question-octagon.svg +4 -0
- frontend/public/build/shoelace/assets/icons/question-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/question-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/question.svg +3 -0
- frontend/public/build/shoelace/assets/icons/quora.svg +3 -0
- frontend/public/build/shoelace/assets/icons/quote.svg +3 -0
- frontend/public/build/shoelace/assets/icons/r-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/r-circle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/r-square-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/r-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/radar.svg +3 -0
- frontend/public/build/shoelace/assets/icons/radioactive.svg +4 -0
- frontend/public/build/shoelace/assets/icons/rainbow.svg +3 -0
- frontend/public/build/shoelace/assets/icons/receipt-cutoff.svg +4 -0
- frontend/public/build/shoelace/assets/icons/receipt.svg +4 -0
- frontend/public/build/shoelace/assets/icons/reception-0.svg +3 -0
- frontend/public/build/shoelace/assets/icons/reception-1.svg +3 -0
- frontend/public/build/shoelace/assets/icons/reception-2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/reception-3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/reception-4.svg +3 -0
- frontend/public/build/shoelace/assets/icons/record-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/record-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/record-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/record-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/record-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/record.svg +3 -0
- frontend/public/build/shoelace/assets/icons/record2-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/record2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/recycle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/reddit.svg +4 -0
- frontend/public/build/shoelace/assets/icons/regex.svg +3 -0
- frontend/public/build/shoelace/assets/icons/repeat-1.svg +4 -0
- frontend/public/build/shoelace/assets/icons/repeat.svg +3 -0
- frontend/public/build/shoelace/assets/icons/reply-all-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/reply-all.svg +4 -0
- frontend/public/build/shoelace/assets/icons/reply-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/reply.svg +3 -0
- frontend/public/build/shoelace/assets/icons/rewind-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/rewind-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/rewind-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/rewind-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/rewind-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/rewind.svg +4 -0
- frontend/public/build/shoelace/assets/icons/robot.svg +4 -0
- frontend/public/build/shoelace/assets/icons/rocket-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/rocket-takeoff-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/rocket-takeoff.svg +5 -0
- frontend/public/build/shoelace/assets/icons/rocket.svg +5 -0
- frontend/public/build/shoelace/assets/icons/router-fill.svg +6 -0
- frontend/public/build/shoelace/assets/icons/router.svg +6 -0
- frontend/public/build/shoelace/assets/icons/rss-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/rss.svg +4 -0
- frontend/public/build/shoelace/assets/icons/rulers.svg +3 -0
- frontend/public/build/shoelace/assets/icons/safe-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/safe.svg +4 -0
- frontend/public/build/shoelace/assets/icons/safe2-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/safe2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/save-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/save.svg +3 -0
- frontend/public/build/shoelace/assets/icons/save2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/save2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/scissors.svg +3 -0
- frontend/public/build/shoelace/assets/icons/scooter.svg +3 -0
- frontend/public/build/shoelace/assets/icons/screwdriver.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sd-card-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sd-card.svg +4 -0
- frontend/public/build/shoelace/assets/icons/search-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/search-heart.svg +4 -0
- frontend/public/build/shoelace/assets/icons/search.svg +3 -0
- frontend/public/build/shoelace/assets/icons/segmented-nav.svg +3 -0
- frontend/public/build/shoelace/assets/icons/send-arrow-down-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-arrow-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-arrow-up-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-arrow-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-check-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-dash-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-exclamation-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/send-plus-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-slash-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-slash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-x-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/send.svg +3 -0
- frontend/public/build/shoelace/assets/icons/server.svg +5 -0
- frontend/public/build/shoelace/assets/icons/shadows.svg +3 -0
- frontend/public/build/shoelace/assets/icons/share-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/share.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-check.svg +4 -0
- frontend/public/build/shoelace/assets/icons/shield-exclamation.svg +4 -0
- frontend/public/build/shoelace/assets/icons/shield-fill-check.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-fill-exclamation.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-fill-minus.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-fill-plus.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-fill-x.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-lock-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-lock.svg +4 -0
- frontend/public/build/shoelace/assets/icons/shield-minus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/shield-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/shield-shaded.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-slash-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-slash.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shield-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/shield.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shift-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shift.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shop-window.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shop.svg +3 -0
- frontend/public/build/shoelace/assets/icons/shuffle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-dead-end-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-dead-end.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-do-not-enter-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-do-not-enter.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-intersection-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-intersection-side-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-intersection-side.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-intersection-t-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-intersection-t.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-intersection-y-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-intersection-y.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-intersection.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-merge-left-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-merge-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-merge-right-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-merge-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-no-left-turn-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-no-left-turn.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-no-parking-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-no-parking.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-no-right-turn-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-no-right-turn.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-railroad-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/sign-railroad.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-stop-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-stop-lights-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-stop-lights.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-stop.svg +5 -0
- frontend/public/build/shoelace/assets/icons/sign-turn-left-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-turn-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-turn-right-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-turn-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-turn-slight-left-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-turn-slight-left.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-turn-slight-right-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sign-turn-slight-right.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-yield-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sign-yield.svg +5 -0
- frontend/public/build/shoelace/assets/icons/signal.svg +3 -0
- frontend/public/build/shoelace/assets/icons/signpost-2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/signpost-2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/signpost-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/signpost-split-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/signpost-split.svg +3 -0
- frontend/public/build/shoelace/assets/icons/signpost.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sim-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sim-slash-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sim-slash.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sim.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sina-weibo.svg +4 -0
- frontend/public/build/shoelace/assets/icons/skip-backward-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-backward-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/skip-backward-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-backward-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/skip-backward-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-backward.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-end-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-end-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/skip-end-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-end-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/skip-end-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-end.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-forward-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-forward-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/skip-forward-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-forward-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/skip-forward-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-forward.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-start-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-start-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/skip-start-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-start-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/skip-start-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skip-start.svg +3 -0
- frontend/public/build/shoelace/assets/icons/skype.svg +3 -0
- frontend/public/build/shoelace/assets/icons/slack.svg +3 -0
- frontend/public/build/shoelace/assets/icons/slash-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/slash-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/slash-lg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/slash-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/slash-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/slash.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sliders.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sliders2-vertical.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sliders2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/smartwatch.svg +4 -0
- frontend/public/build/shoelace/assets/icons/snapchat.svg +3 -0
- frontend/public/build/shoelace/assets/icons/snow.svg +3 -0
- frontend/public/build/shoelace/assets/icons/snow2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/snow3.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sort-alpha-down-alt.svg +5 -0
- frontend/public/build/shoelace/assets/icons/sort-alpha-down.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sort-alpha-up-alt.svg +5 -0
- frontend/public/build/shoelace/assets/icons/sort-alpha-up.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sort-down-alt.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sort-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sort-numeric-down-alt.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sort-numeric-down.svg +5 -0
- frontend/public/build/shoelace/assets/icons/sort-numeric-up-alt.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sort-numeric-up.svg +5 -0
- frontend/public/build/shoelace/assets/icons/sort-up-alt.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sort-up.svg +3 -0
- frontend/public/build/shoelace/assets/icons/soundwave.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sourceforge.svg +4 -0
- frontend/public/build/shoelace/assets/icons/speaker-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/speaker.svg +4 -0
- frontend/public/build/shoelace/assets/icons/speedometer.svg +4 -0
- frontend/public/build/shoelace/assets/icons/speedometer2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/spellcheck.svg +4 -0
- frontend/public/build/shoelace/assets/icons/spotify.svg +3 -0
- frontend/public/build/shoelace/assets/icons/square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/square-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/square.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stack-overflow.svg +4 -0
- frontend/public/build/shoelace/assets/icons/stack.svg +4 -0
- frontend/public/build/shoelace/assets/icons/star-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/star-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/star.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stars.svg +3 -0
- frontend/public/build/shoelace/assets/icons/steam.svg +4 -0
- frontend/public/build/shoelace/assets/icons/stickies-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/stickies.svg +4 -0
- frontend/public/build/shoelace/assets/icons/sticky-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sticky.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stop-btn-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stop-btn.svg +4 -0
- frontend/public/build/shoelace/assets/icons/stop-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stop-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/stop-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stop.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stoplights-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stoplights.svg +4 -0
- frontend/public/build/shoelace/assets/icons/stopwatch-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stopwatch.svg +4 -0
- frontend/public/build/shoelace/assets/icons/strava.svg +3 -0
- frontend/public/build/shoelace/assets/icons/stripe.svg +3 -0
- frontend/public/build/shoelace/assets/icons/subscript.svg +3 -0
- frontend/public/build/shoelace/assets/icons/substack.svg +3 -0
- frontend/public/build/shoelace/assets/icons/subtract.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suit-club-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suit-club.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suit-diamond-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suit-diamond.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suit-heart-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suit-heart.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suit-spade-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suit-spade.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suitcase-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suitcase-lg-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suitcase-lg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suitcase.svg +4 -0
- frontend/public/build/shoelace/assets/icons/suitcase2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/suitcase2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sun-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sun.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sunglasses.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sunrise-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sunrise.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sunset-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/sunset.svg +3 -0
- frontend/public/build/shoelace/assets/icons/superscript.svg +3 -0
- frontend/public/build/shoelace/assets/icons/symmetry-horizontal.svg +3 -0
- frontend/public/build/shoelace/assets/icons/symmetry-vertical.svg +3 -0
- frontend/public/build/shoelace/assets/icons/table.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tablet-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tablet-landscape-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tablet-landscape.svg +4 -0
- frontend/public/build/shoelace/assets/icons/tablet.svg +4 -0
- frontend/public/build/shoelace/assets/icons/tag-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tag.svg +4 -0
- frontend/public/build/shoelace/assets/icons/tags-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/tags.svg +4 -0
- frontend/public/build/shoelace/assets/icons/taxi-front-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/taxi-front.svg +4 -0
- frontend/public/build/shoelace/assets/icons/telegram.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-forward-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-forward.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-inbound-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-inbound.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-minus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-minus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/telephone-outbound-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-outbound.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-plus-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/telephone-x-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/telephone-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/telephone.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tencent-qq.svg +4 -0
- frontend/public/build/shoelace/assets/icons/terminal-dash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/terminal-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/terminal-plus.svg +4 -0
- frontend/public/build/shoelace/assets/icons/terminal-split.svg +4 -0
- frontend/public/build/shoelace/assets/icons/terminal-x.svg +4 -0
- frontend/public/build/shoelace/assets/icons/terminal.svg +4 -0
- frontend/public/build/shoelace/assets/icons/text-center.svg +3 -0
- frontend/public/build/shoelace/assets/icons/text-indent-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/text-indent-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/text-left.svg +3 -0
- frontend/public/build/shoelace/assets/icons/text-paragraph.svg +3 -0
- frontend/public/build/shoelace/assets/icons/text-right.svg +3 -0
- frontend/public/build/shoelace/assets/icons/text-wrap.svg +3 -0
- frontend/public/build/shoelace/assets/icons/textarea-resize.svg +3 -0
- frontend/public/build/shoelace/assets/icons/textarea-t.svg +4 -0
- frontend/public/build/shoelace/assets/icons/textarea.svg +3 -0
- frontend/public/build/shoelace/assets/icons/thermometer-half.svg +4 -0
- frontend/public/build/shoelace/assets/icons/thermometer-high.svg +4 -0
- frontend/public/build/shoelace/assets/icons/thermometer-low.svg +4 -0
- frontend/public/build/shoelace/assets/icons/thermometer-snow.svg +4 -0
- frontend/public/build/shoelace/assets/icons/thermometer-sun.svg +4 -0
- frontend/public/build/shoelace/assets/icons/thermometer.svg +4 -0
- frontend/public/build/shoelace/assets/icons/threads-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/threads.svg +3 -0
- frontend/public/build/shoelace/assets/icons/three-dots-vertical.svg +3 -0
- frontend/public/build/shoelace/assets/icons/three-dots.svg +3 -0
- frontend/public/build/shoelace/assets/icons/thunderbolt-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/thunderbolt.svg +4 -0
- frontend/public/build/shoelace/assets/icons/ticket-detailed-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ticket-detailed.svg +4 -0
- frontend/public/build/shoelace/assets/icons/ticket-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ticket-perforated-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ticket-perforated.svg +4 -0
- frontend/public/build/shoelace/assets/icons/ticket.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tiktok.svg +3 -0
- frontend/public/build/shoelace/assets/icons/toggle-off.svg +3 -0
- frontend/public/build/shoelace/assets/icons/toggle-on.svg +3 -0
- frontend/public/build/shoelace/assets/icons/toggle2-off.svg +4 -0
- frontend/public/build/shoelace/assets/icons/toggle2-on.svg +4 -0
- frontend/public/build/shoelace/assets/icons/toggles.svg +3 -0
- frontend/public/build/shoelace/assets/icons/toggles2.svg +5 -0
- frontend/public/build/shoelace/assets/icons/tools.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tornado.svg +3 -0
- frontend/public/build/shoelace/assets/icons/train-freight-front-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/train-freight-front.svg +3 -0
- frontend/public/build/shoelace/assets/icons/train-front-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/train-front.svg +3 -0
- frontend/public/build/shoelace/assets/icons/train-lightrail-front-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/train-lightrail-front.svg +3 -0
- frontend/public/build/shoelace/assets/icons/translate.svg +4 -0
- frontend/public/build/shoelace/assets/icons/transparency.svg +3 -0
- frontend/public/build/shoelace/assets/icons/trash-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/trash.svg +4 -0
- frontend/public/build/shoelace/assets/icons/trash2-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/trash2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/trash3-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/trash3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tree-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tree.svg +3 -0
- frontend/public/build/shoelace/assets/icons/trello.svg +3 -0
- frontend/public/build/shoelace/assets/icons/triangle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/triangle-half.svg +3 -0
- frontend/public/build/shoelace/assets/icons/triangle.svg +3 -0
- frontend/public/build/shoelace/assets/icons/trophy-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/trophy.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tropical-storm.svg +4 -0
- frontend/public/build/shoelace/assets/icons/truck-flatbed.svg +3 -0
- frontend/public/build/shoelace/assets/icons/truck-front-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/truck-front.svg +4 -0
- frontend/public/build/shoelace/assets/icons/truck.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tsunami.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tv-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/tv.svg +3 -0
- frontend/public/build/shoelace/assets/icons/twitch.svg +4 -0
- frontend/public/build/shoelace/assets/icons/twitter-x.svg +3 -0
- frontend/public/build/shoelace/assets/icons/twitter.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-bold.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-h1.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-h2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-h3.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-h4.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-h5.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-h6.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-italic.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-strikethrough.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type-underline.svg +3 -0
- frontend/public/build/shoelace/assets/icons/type.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ubuntu.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ui-checks-grid.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ui-checks.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ui-radios-grid.svg +3 -0
- frontend/public/build/shoelace/assets/icons/ui-radios.svg +3 -0
- frontend/public/build/shoelace/assets/icons/umbrella-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/umbrella.svg +3 -0
- frontend/public/build/shoelace/assets/icons/unindent.svg +4 -0
- frontend/public/build/shoelace/assets/icons/union.svg +3 -0
- frontend/public/build/shoelace/assets/icons/unity.svg +3 -0
- frontend/public/build/shoelace/assets/icons/universal-access-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/universal-access.svg +3 -0
- frontend/public/build/shoelace/assets/icons/unlock-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/unlock.svg +3 -0
- frontend/public/build/shoelace/assets/icons/upc-scan.svg +3 -0
- frontend/public/build/shoelace/assets/icons/upc.svg +3 -0
- frontend/public/build/shoelace/assets/icons/upload.svg +4 -0
- frontend/public/build/shoelace/assets/icons/usb-c-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/usb-c.svg +4 -0
- frontend/public/build/shoelace/assets/icons/usb-drive-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/usb-drive.svg +3 -0
- frontend/public/build/shoelace/assets/icons/usb-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/usb-micro-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/usb-micro.svg +4 -0
- frontend/public/build/shoelace/assets/icons/usb-mini-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/usb-mini.svg +4 -0
- frontend/public/build/shoelace/assets/icons/usb-plug-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/usb-plug.svg +3 -0
- frontend/public/build/shoelace/assets/icons/usb-symbol.svg +3 -0
- frontend/public/build/shoelace/assets/icons/usb.svg +4 -0
- frontend/public/build/shoelace/assets/icons/valentine.svg +4 -0
- frontend/public/build/shoelace/assets/icons/valentine2.svg +4 -0
- frontend/public/build/shoelace/assets/icons/vector-pen.svg +4 -0
- frontend/public/build/shoelace/assets/icons/view-list.svg +3 -0
- frontend/public/build/shoelace/assets/icons/view-stacked.svg +3 -0
- frontend/public/build/shoelace/assets/icons/vignette.svg +4 -0
- frontend/public/build/shoelace/assets/icons/vimeo.svg +3 -0
- frontend/public/build/shoelace/assets/icons/vinyl-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/vinyl.svg +5 -0
- frontend/public/build/shoelace/assets/icons/virus.svg +3 -0
- frontend/public/build/shoelace/assets/icons/virus2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/voicemail.svg +3 -0
- frontend/public/build/shoelace/assets/icons/volume-down-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/volume-down.svg +3 -0
- frontend/public/build/shoelace/assets/icons/volume-mute-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/volume-mute.svg +3 -0
- frontend/public/build/shoelace/assets/icons/volume-off-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/volume-off.svg +3 -0
- frontend/public/build/shoelace/assets/icons/volume-up-fill.svg +5 -0
- frontend/public/build/shoelace/assets/icons/volume-up.svg +5 -0
- frontend/public/build/shoelace/assets/icons/vr.svg +3 -0
- frontend/public/build/shoelace/assets/icons/wallet-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/wallet.svg +3 -0
- frontend/public/build/shoelace/assets/icons/wallet2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/watch.svg +4 -0
- frontend/public/build/shoelace/assets/icons/water.svg +3 -0
- frontend/public/build/shoelace/assets/icons/webcam-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/webcam.svg +4 -0
- frontend/public/build/shoelace/assets/icons/wechat.svg +4 -0
- frontend/public/build/shoelace/assets/icons/whatsapp.svg +3 -0
- frontend/public/build/shoelace/assets/icons/wifi-1.svg +3 -0
- frontend/public/build/shoelace/assets/icons/wifi-2.svg +3 -0
- frontend/public/build/shoelace/assets/icons/wifi-off.svg +3 -0
- frontend/public/build/shoelace/assets/icons/wifi.svg +4 -0
- frontend/public/build/shoelace/assets/icons/wikipedia.svg +3 -0
- frontend/public/build/shoelace/assets/icons/wind.svg +3 -0
- frontend/public/build/shoelace/assets/icons/window-dash.svg +5 -0
- frontend/public/build/shoelace/assets/icons/window-desktop.svg +4 -0
- frontend/public/build/shoelace/assets/icons/window-dock.svg +4 -0
- frontend/public/build/shoelace/assets/icons/window-fullscreen.svg +4 -0
- frontend/public/build/shoelace/assets/icons/window-plus.svg +5 -0
- frontend/public/build/shoelace/assets/icons/window-sidebar.svg +4 -0
- frontend/public/build/shoelace/assets/icons/window-split.svg +4 -0
- frontend/public/build/shoelace/assets/icons/window-stack.svg +4 -0
- frontend/public/build/shoelace/assets/icons/window-x.svg +5 -0
- frontend/public/build/shoelace/assets/icons/window.svg +4 -0
- frontend/public/build/shoelace/assets/icons/windows.svg +3 -0
- frontend/public/build/shoelace/assets/icons/wordpress.svg +5 -0
- frontend/public/build/shoelace/assets/icons/wrench-adjustable-circle-fill.svg +4 -0
- frontend/public/build/shoelace/assets/icons/wrench-adjustable-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/wrench-adjustable.svg +4 -0
- frontend/public/build/shoelace/assets/icons/wrench.svg +3 -0
- frontend/public/build/shoelace/assets/icons/x-circle-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/x-circle.svg +4 -0
- frontend/public/build/shoelace/assets/icons/x-diamond-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/x-diamond.svg +3 -0
- frontend/public/build/shoelace/assets/icons/x-lg.svg +3 -0
- frontend/public/build/shoelace/assets/icons/x-octagon-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/x-octagon.svg +4 -0
- frontend/public/build/shoelace/assets/icons/x-square-fill.svg +3 -0
- frontend/public/build/shoelace/assets/icons/x-square.svg +4 -0
- frontend/public/build/shoelace/assets/icons/x.svg +3 -0
- frontend/public/build/shoelace/assets/icons/xbox.svg +3 -0
- frontend/public/build/shoelace/assets/icons/yelp.svg +3 -0
- frontend/public/build/shoelace/assets/icons/yin-yang.svg +4 -0
- frontend/public/build/shoelace/assets/icons/youtube.svg +3 -0
- frontend/public/build/shoelace/assets/icons/zoom-in.svg +5 -0
- frontend/public/build/shoelace/assets/icons/zoom-out.svg +5 -0
- frontend/public/fonts/inconsolata-v31-latin-300.eot +0 -0
- frontend/public/fonts/inconsolata-v31-latin-300.svg +358 -0
- frontend/public/fonts/inconsolata-v31-latin-300.ttf +0 -0
- frontend/public/fonts/inconsolata-v31-latin-300.woff +0 -0
- frontend/public/fonts/inconsolata-v31-latin-300.woff2 +0 -0
- frontend/public/fonts/inconsolata-v31-latin-500.eot +0 -0
- frontend/public/fonts/inconsolata-v31-latin-500.svg +359 -0
- frontend/public/fonts/inconsolata-v31-latin-500.ttf +0 -0
- frontend/public/fonts/inconsolata-v31-latin-500.woff +0 -0
- frontend/public/fonts/inconsolata-v31-latin-500.woff2 +0 -0
- frontend/public/fonts/inconsolata-v31-latin-700.eot +0 -0
- frontend/public/fonts/inconsolata-v31-latin-700.svg +358 -0
- frontend/public/fonts/inconsolata-v31-latin-700.ttf +0 -0
- frontend/public/fonts/inconsolata-v31-latin-700.woff +0 -0
- frontend/public/fonts/inconsolata-v31-latin-700.woff2 +0 -0
- frontend/public/fonts/inconsolata-v31-latin-regular.eot +0 -0
- frontend/public/fonts/inconsolata-v31-latin-regular.svg +358 -0
- frontend/public/fonts/inconsolata-v31-latin-regular.ttf +0 -0
- frontend/public/fonts/inconsolata-v31-latin-regular.woff +0 -0
- frontend/public/fonts/inconsolata-v31-latin-regular.woff2 +0 -0
- frontend/public/fonts/inter-v12-latin-300.eot +0 -0
- frontend/public/fonts/inter-v12-latin-300.svg +350 -0
- frontend/public/fonts/inter-v12-latin-300.ttf +0 -0
- frontend/public/fonts/inter-v12-latin-300.woff +0 -0
- frontend/public/fonts/inter-v12-latin-300.woff2 +0 -0
- frontend/public/fonts/inter-v12-latin-500.eot +0 -0
- frontend/public/fonts/inter-v12-latin-500.svg +351 -0
- frontend/public/fonts/inter-v12-latin-500.ttf +0 -0
- frontend/public/fonts/inter-v12-latin-500.woff +0 -0
- frontend/public/fonts/inter-v12-latin-500.woff2 +0 -0
- frontend/public/fonts/inter-v12-latin-700.eot +0 -0
- frontend/public/fonts/inter-v12-latin-700.svg +352 -0
- frontend/public/fonts/inter-v12-latin-700.ttf +0 -0
- frontend/public/fonts/inter-v12-latin-700.woff +0 -0
- frontend/public/fonts/inter-v12-latin-700.woff2 +0 -0
- frontend/public/fonts/inter-v12-latin-regular.eot +0 -0
- frontend/public/fonts/inter-v12-latin-regular.svg +351 -0
- frontend/public/fonts/inter-v12-latin-regular.ttf +0 -0
- frontend/public/fonts/inter-v12-latin-regular.woff +0 -0
- frontend/public/fonts/inter-v12-latin-regular.woff2 +0 -0
- frontend/public/fonts/lora-v32-latin-500.eot +0 -0
- frontend/public/fonts/lora-v32-latin-500.svg +431 -0
- frontend/public/fonts/lora-v32-latin-500.ttf +0 -0
- frontend/public/fonts/lora-v32-latin-500.woff +0 -0
- frontend/public/fonts/lora-v32-latin-500.woff2 +0 -0
- frontend/public/fonts/lora-v32-latin-700.eot +0 -0
- frontend/public/fonts/lora-v32-latin-700.svg +430 -0
- frontend/public/fonts/lora-v32-latin-700.ttf +0 -0
- frontend/public/fonts/lora-v32-latin-700.woff +0 -0
- frontend/public/fonts/lora-v32-latin-700.woff2 +0 -0
- frontend/public/fonts/lora-v32-latin-regular.eot +0 -0
- frontend/public/fonts/lora-v32-latin-regular.svg +430 -0
- frontend/public/fonts/lora-v32-latin-regular.ttf +0 -0
- frontend/public/fonts/lora-v32-latin-regular.woff +0 -0
- frontend/public/fonts/lora-v32-latin-regular.woff2 +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-300.eot +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-300.svg +305 -0
- frontend/public/fonts/nunito-sans-v12-latin-300.ttf +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-300.woff +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-300.woff2 +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-600.eot +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-600.svg +306 -0
- frontend/public/fonts/nunito-sans-v12-latin-600.ttf +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-600.woff +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-600.woff2 +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-700.eot +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-700.svg +306 -0
- frontend/public/fonts/nunito-sans-v12-latin-700.ttf +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-700.woff +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-700.woff2 +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-regular.eot +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-regular.ttf +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-regular.woff +0 -0
- frontend/public/fonts/nunito-sans-v12-latin-regular.woff2 +0 -0
- frontend/public/fonts/open-sans-v34-latin-300.eot +0 -0
- frontend/public/fonts/open-sans-v34-latin-300.svg +346 -0
- frontend/public/fonts/open-sans-v34-latin-300.ttf +0 -0
- frontend/public/fonts/open-sans-v34-latin-300.woff +0 -0
- frontend/public/fonts/open-sans-v34-latin-300.woff2 +0 -0
- frontend/public/fonts/open-sans-v34-latin-600.eot +0 -0
- frontend/public/fonts/open-sans-v34-latin-600.svg +348 -0
- frontend/public/fonts/open-sans-v34-latin-600.ttf +0 -0
- frontend/public/fonts/open-sans-v34-latin-600.woff +0 -0
- frontend/public/fonts/open-sans-v34-latin-600.woff2 +0 -0
- frontend/public/fonts/open-sans-v34-latin-700.eot +0 -0
- frontend/public/fonts/open-sans-v34-latin-700.svg +349 -0
- frontend/public/fonts/open-sans-v34-latin-700.ttf +0 -0
- frontend/public/fonts/open-sans-v34-latin-700.woff +0 -0
- frontend/public/fonts/open-sans-v34-latin-700.woff2 +0 -0
- frontend/public/fonts/open-sans-v34-latin-regular.eot +0 -0
- frontend/public/fonts/open-sans-v34-latin-regular.svg +349 -0
- frontend/public/fonts/open-sans-v34-latin-regular.ttf +0 -0
- frontend/public/fonts/open-sans-v34-latin-regular.woff +0 -0
- frontend/public/fonts/open-sans-v34-latin-regular.woff2 +0 -0
- frontend/public/hd-logo-black.svg +1 -0
- frontend/public/hd-logo-white.svg +1 -0
- hyperdiv/__init__.py +141 -0
- hyperdiv/app_runner.py +505 -0
- hyperdiv/application_state.py +48 -0
- hyperdiv/backends/__init__.py +62 -0
- hyperdiv/backends/granian.py +276 -0
- hyperdiv/cache.py +202 -0
- hyperdiv/cli.py +53 -0
- hyperdiv/collector.py +64 -0
- hyperdiv/component_base.py +329 -0
- hyperdiv/component_keys.py +61 -0
- hyperdiv/component_mixins/__init__.py +5 -0
- hyperdiv/component_mixins/boxy.py +170 -0
- hyperdiv/component_mixins/interactive.py +18 -0
- hyperdiv/component_mixins/slottable.py +43 -0
- hyperdiv/component_mixins/styled.py +307 -0
- hyperdiv/component_mixins/tests/__init__.py +0 -0
- hyperdiv/component_mixins/tests/component_mixins_tests.py +105 -0
- hyperdiv/component_mixins/togglable.py +31 -0
- hyperdiv/components/__init__.py +0 -0
- hyperdiv/components/alert.py +66 -0
- hyperdiv/components/anchor.py +30 -0
- hyperdiv/components/animation.py +219 -0
- hyperdiv/components/async_command.py +50 -0
- hyperdiv/components/audio.py +52 -0
- hyperdiv/components/avatar.py +43 -0
- hyperdiv/components/badge.py +36 -0
- hyperdiv/components/box.py +192 -0
- hyperdiv/components/box_list.py +53 -0
- hyperdiv/components/box_list_item.py +34 -0
- hyperdiv/components/breadcrumb.py +39 -0
- hyperdiv/components/breadcrumb_item.py +37 -0
- hyperdiv/components/button.py +125 -0
- hyperdiv/components/button_group.py +28 -0
- hyperdiv/components/card.py +75 -0
- hyperdiv/components/carousel.py +119 -0
- hyperdiv/components/carousel_item.py +16 -0
- hyperdiv/components/charts/__init__.py +9 -0
- hyperdiv/components/charts/bar_chart.py +43 -0
- hyperdiv/components/charts/bubble_chart.py +73 -0
- hyperdiv/components/charts/cartesian_chart.py +411 -0
- hyperdiv/components/charts/chart.py +58 -0
- hyperdiv/components/charts/common/__init__.py +0 -0
- hyperdiv/components/charts/common/color_utils.py +42 -0
- hyperdiv/components/charts/common/radial_chart_utils.py +35 -0
- hyperdiv/components/charts/line_chart.py +44 -0
- hyperdiv/components/charts/pie_chart.py +49 -0
- hyperdiv/components/charts/polar_chart.py +75 -0
- hyperdiv/components/charts/radar_chart.py +122 -0
- hyperdiv/components/charts/scatter_chart.py +43 -0
- hyperdiv/components/charts/tests/__init__.py +0 -0
- hyperdiv/components/charts/tests/chart_tests.py +263 -0
- hyperdiv/components/checkbox.py +60 -0
- hyperdiv/components/clipboard.py +30 -0
- hyperdiv/components/code.py +34 -0
- hyperdiv/components/color_picker.py +130 -0
- hyperdiv/components/common/__init__.py +0 -0
- hyperdiv/components/common/label_component.py +86 -0
- hyperdiv/components/common/list_base.py +14 -0
- hyperdiv/components/common/media_base.py +43 -0
- hyperdiv/components/common/shoelace_types.py +60 -0
- hyperdiv/components/common/text_utils.py +2 -0
- hyperdiv/components/cookies.py +231 -0
- hyperdiv/components/details.py +96 -0
- hyperdiv/components/dialog.py +42 -0
- hyperdiv/components/divider.py +42 -0
- hyperdiv/components/drawer.py +115 -0
- hyperdiv/components/dropdown.py +115 -0
- hyperdiv/components/form.py +577 -0
- hyperdiv/components/icon.py +47 -0
- hyperdiv/components/icon_button.py +29 -0
- hyperdiv/components/image.py +86 -0
- hyperdiv/components/image_comparer.py +45 -0
- hyperdiv/components/lifecycle.py +47 -0
- hyperdiv/components/link.py +89 -0
- hyperdiv/components/list.py +47 -0
- hyperdiv/components/list_item.py +11 -0
- hyperdiv/components/local_storage.py +123 -0
- hyperdiv/components/location.py +132 -0
- hyperdiv/components/markdown.py +127 -0
- hyperdiv/components/media_source.py +15 -0
- hyperdiv/components/menu.py +130 -0
- hyperdiv/components/menu_item.py +64 -0
- hyperdiv/components/menu_label.py +26 -0
- hyperdiv/components/nav.py +16 -0
- hyperdiv/components/option.py +53 -0
- hyperdiv/components/ordered_list.py +49 -0
- hyperdiv/components/plaintext.py +27 -0
- hyperdiv/components/popup.py +124 -0
- hyperdiv/components/progress_bar.py +70 -0
- hyperdiv/components/progress_ring.py +57 -0
- hyperdiv/components/radio.py +40 -0
- hyperdiv/components/radio_button.py +51 -0
- hyperdiv/components/radio_group.py +167 -0
- hyperdiv/components/scope.py +112 -0
- hyperdiv/components/select_.py +151 -0
- hyperdiv/components/slider.py +135 -0
- hyperdiv/components/spinner.py +40 -0
- hyperdiv/components/split_panel.py +146 -0
- hyperdiv/components/state.py +101 -0
- hyperdiv/components/style.py +27 -0
- hyperdiv/components/switch.py +56 -0
- hyperdiv/components/tab.py +46 -0
- hyperdiv/components/tab_group.py +175 -0
- hyperdiv/components/table.py +217 -0
- hyperdiv/components/tag.py +77 -0
- hyperdiv/components/task.py +232 -0
- hyperdiv/components/tests/__init__.py +0 -0
- hyperdiv/components/tests/alert_tests.py +24 -0
- hyperdiv/components/tests/animation_tests.py +19 -0
- hyperdiv/components/tests/audio_tests.py +52 -0
- hyperdiv/components/tests/box_list_tests.py +15 -0
- hyperdiv/components/tests/button_tests.py +17 -0
- hyperdiv/components/tests/carousel_tests.py +19 -0
- hyperdiv/components/tests/checkbox_tests.py +20 -0
- hyperdiv/components/tests/clipboard_tests.py +12 -0
- hyperdiv/components/tests/cookie_tests.py +123 -0
- hyperdiv/components/tests/form_tests.py +107 -0
- hyperdiv/components/tests/local_storage_tests.py +101 -0
- hyperdiv/components/tests/markdown_tests.py +47 -0
- hyperdiv/components/tests/popup_test.py +24 -0
- hyperdiv/components/tests/radio_group_tests.py +22 -0
- hyperdiv/components/tests/style_tests.py +28 -0
- hyperdiv/components/tests/tab_group_tests.py +56 -0
- hyperdiv/components/tests/tree_tests.py +83 -0
- hyperdiv/components/text.py +112 -0
- hyperdiv/components/text_input.py +241 -0
- hyperdiv/components/textarea.py +68 -0
- hyperdiv/components/theme.py +75 -0
- hyperdiv/components/tooltip.py +91 -0
- hyperdiv/components/tree.py +144 -0
- hyperdiv/components/tree_item.py +109 -0
- hyperdiv/components/video.py +62 -0
- hyperdiv/components/window.py +47 -0
- hyperdiv/connection.py +86 -0
- hyperdiv/debug.py +86 -0
- hyperdiv/design_tokens.py +431 -0
- hyperdiv/diff.py +208 -0
- hyperdiv/equalities.py +29 -0
- hyperdiv/exceptions.py +2 -0
- hyperdiv/ext/__init__.py +6 -0
- hyperdiv/ext/data_table.py +472 -0
- hyperdiv/ext/icon_link.py +94 -0
- hyperdiv/ext/navigation_menu.py +179 -0
- hyperdiv/ext/router.py +217 -0
- hyperdiv/ext/template.py +277 -0
- hyperdiv/ext/tests/__init__.py +0 -0
- hyperdiv/ext/tests/data_table_tests.py +102 -0
- hyperdiv/ext/tests/router_tests.py +60 -0
- hyperdiv/ext/tests/template_tests.py +12 -0
- hyperdiv/ext/theme_switcher.py +67 -0
- hyperdiv/frame.py +324 -0
- hyperdiv/frontend.py +27 -0
- hyperdiv/global_state.py +82 -0
- hyperdiv/icons.py +1956 -0
- hyperdiv/index_page.py +333 -0
- hyperdiv/main.py +132 -0
- hyperdiv/plugin.py +209 -0
- hyperdiv/prop.py +160 -0
- hyperdiv/prop_types/__init__.py +23 -0
- hyperdiv/prop_types/any_type.py +11 -0
- hyperdiv/prop_types/border.py +107 -0
- hyperdiv/prop_types/border_edge.py +82 -0
- hyperdiv/prop_types/box_size.py +77 -0
- hyperdiv/prop_types/clamped_number.py +72 -0
- hyperdiv/prop_types/color.py +194 -0
- hyperdiv/prop_types/color_constant.py +74 -0
- hyperdiv/prop_types/constant.py +16 -0
- hyperdiv/prop_types/css.py +15 -0
- hyperdiv/prop_types/css_field.py +35 -0
- hyperdiv/prop_types/design_token.py +31 -0
- hyperdiv/prop_types/event.py +42 -0
- hyperdiv/prop_types/float_type.py +28 -0
- hyperdiv/prop_types/hyperdiv_type.py +27 -0
- hyperdiv/prop_types/list_type.py +26 -0
- hyperdiv/prop_types/native.py +62 -0
- hyperdiv/prop_types/one_of.py +19 -0
- hyperdiv/prop_types/one_or_more_of.py +25 -0
- hyperdiv/prop_types/optional.py +24 -0
- hyperdiv/prop_types/size.py +169 -0
- hyperdiv/prop_types/tests/__init__.py +0 -0
- hyperdiv/prop_types/tests/any_type_tests.py +8 -0
- hyperdiv/prop_types/tests/base_size_tests.py +59 -0
- hyperdiv/prop_types/tests/border_edge_tests.py +36 -0
- hyperdiv/prop_types/tests/border_tests.py +98 -0
- hyperdiv/prop_types/tests/box_size_tests.py +44 -0
- hyperdiv/prop_types/tests/clamped_number_tests.py +20 -0
- hyperdiv/prop_types/tests/color_constant_tests.py +63 -0
- hyperdiv/prop_types/tests/constant_tests.py +13 -0
- hyperdiv/prop_types/tests/css_field_tests.py +15 -0
- hyperdiv/prop_types/tests/design_token_tests.py +20 -0
- hyperdiv/prop_types/tests/event_tests.py +18 -0
- hyperdiv/prop_types/tests/float_tests.py +11 -0
- hyperdiv/prop_types/tests/list_tests.py +25 -0
- hyperdiv/prop_types/tests/native_tests.py +18 -0
- hyperdiv/prop_types/tests/one_of_tests.py +14 -0
- hyperdiv/prop_types/tests/one_or_more_of_tests.py +24 -0
- hyperdiv/prop_types/tests/optional_tests.py +22 -0
- hyperdiv/prop_types/tests/time_value_tests.py +31 -0
- hyperdiv/prop_types/tests/tuple_type_tests.py +26 -0
- hyperdiv/prop_types/tests/union_tests.py +18 -0
- hyperdiv/prop_types/time_value.py +55 -0
- hyperdiv/prop_types/tuple_type.py +43 -0
- hyperdiv/prop_types/union.py +28 -0
- hyperdiv/renderer.py +260 -0
- hyperdiv/server.py +163 -0
- hyperdiv/slot.py +35 -0
- hyperdiv/sqlite.py +127 -0
- hyperdiv/style_part.py +47 -0
- hyperdiv/task_runtime.py +54 -0
- hyperdiv/test_utils.py +134 -0
- hyperdiv/tests/__init__.py +0 -0
- hyperdiv/tests/app_runner_tests.py +266 -0
- hyperdiv/tests/application_state_tests.py +67 -0
- hyperdiv/tests/component_base_tests.py +180 -0
- hyperdiv/tests/design_token_tests.py +37 -0
- hyperdiv/tests/equalities_tests.py +44 -0
- hyperdiv/tests/index_page_tests.py +156 -0
- hyperdiv/tests/plugin_tests.py +280 -0
- hyperdiv/tests/server_tests.py +103 -0
- hyperdiv/tests/sqlite_tests.py +80 -0
- hyperdiv/tests/style_part_tests.py +54 -0
- hyperdiv/ui_command.py +108 -0
- hyperdiv/ui_prop_state.py +92 -0
- hyperdiv/ui_singleton.py +70 -0
- hyperdivlite-0.1.9.dist-info/METADATA +163 -0
- hyperdivlite-0.1.9.dist-info/RECORD +2380 -0
- hyperdivlite-0.1.9.dist-info/WHEEL +4 -0
- hyperdivlite-0.1.9.dist-info/entry_points.txt +3 -0
- hyperdivlite-0.1.9.dist-info/licenses/LICENSE +202 -0
- hyperdivlite-0.1.9.dist-info/licenses/NOTICE +11 -0
hyperdiv/index_page.py
ADDED
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import mimetypes
|
|
2
|
+
import os
|
|
3
|
+
from textwrap import dedent, indent
|
|
4
|
+
import xxhash
|
|
5
|
+
from jinja2 import Template
|
|
6
|
+
from .frontend import get_frontend_public_path
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def get_mime_type(file_path):
|
|
10
|
+
mime_type, _ = mimetypes.guess_type(file_path)
|
|
11
|
+
return mime_type
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def attributes_from_dict(d):
|
|
15
|
+
attributes = []
|
|
16
|
+
for k, v in d.items():
|
|
17
|
+
if isinstance(v, bool):
|
|
18
|
+
if v:
|
|
19
|
+
attributes.append(k)
|
|
20
|
+
else:
|
|
21
|
+
attributes.append(f'{k}="{v}"')
|
|
22
|
+
return " ".join(attributes)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def js_tag_from_dict(d):
|
|
26
|
+
return f"<script {attributes_from_dict(d)}></script>"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def js_tag_from_url(u):
|
|
30
|
+
return js_tag_from_dict(dict(src=u))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def css_tag_from_dict(d):
|
|
34
|
+
return f"<link {attributes_from_dict(d)} />"
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def css_tag_from_url(u):
|
|
38
|
+
return css_tag_from_dict(dict(rel="stylesheet", href=u))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def index_page(
|
|
42
|
+
title="Hyperdiv",
|
|
43
|
+
description=None,
|
|
44
|
+
keywords=None,
|
|
45
|
+
url=None,
|
|
46
|
+
image=None,
|
|
47
|
+
twitter_card_type="summary_large_image",
|
|
48
|
+
favicon="/hd-logo-white.svg",
|
|
49
|
+
favicon_16=None,
|
|
50
|
+
favicon_32=None,
|
|
51
|
+
apple_touch_icon=None,
|
|
52
|
+
css_assets=(),
|
|
53
|
+
js_assets=(),
|
|
54
|
+
raw_head_content="",
|
|
55
|
+
):
|
|
56
|
+
"""
|
|
57
|
+
This function generates the app's HTML index page that is served
|
|
58
|
+
to the browser when users load the app's URL. It generates SEO meta
|
|
59
|
+
tags as well as Twitter (`twitter:`) and Meta OpenGraph (`og:`)
|
|
60
|
+
tags, so Twitter/Meta will generate nice-looking preview cards
|
|
61
|
+
when the app is shared on these platforms.
|
|
62
|
+
|
|
63
|
+
Custom Javascript and CSS assets can also be added to the index
|
|
64
|
+
page. More on this below.
|
|
65
|
+
|
|
66
|
+
Passing `title`, `description`, `url`, `favicon`, and `image`,
|
|
67
|
+
should be enough to generate a useful set of meta tags.
|
|
68
|
+
|
|
69
|
+
This function's only use is to pass its return value into the
|
|
70
|
+
`index_page` parameter of Hyperdiv's @component(run) function.
|
|
71
|
+
|
|
72
|
+
## Parameters
|
|
73
|
+
|
|
74
|
+
* `title`: The title of the app.
|
|
75
|
+
* `description`: A short one-line description of the app.
|
|
76
|
+
|
|
77
|
+
* `keywords`: An iterable of short keywords describing the app, or
|
|
78
|
+
a comma-separated string of keywords.
|
|
79
|
+
|
|
80
|
+
* `url`: The external full URL of the app, for example
|
|
81
|
+
`"https://my-app.foo.com"`.
|
|
82
|
+
|
|
83
|
+
* `image`: A full URL to an image that should be included in
|
|
84
|
+
previews when sharing the app on social media. For example
|
|
85
|
+
`"https://my-app.foo.com/my-app-image.png"`.
|
|
86
|
+
|
|
87
|
+
* `twitter_card_type`: One of `"summary"` or
|
|
88
|
+
`"summary_large_image"`. The former causes Twitter to render a
|
|
89
|
+
smaller card with the image to the left of the
|
|
90
|
+
title/description, when the app's URL is shared on Twitter. The
|
|
91
|
+
latter causes a larger card to be rendered, where the image is
|
|
92
|
+
prominently displayed above the title/description.
|
|
93
|
+
|
|
94
|
+
* `favicon`: A URL pointing to a favicon. Can be a local URL like
|
|
95
|
+
`"/assets/favicon.png"`. The favicon is an icon displayed next
|
|
96
|
+
to the title in browser tab headers.
|
|
97
|
+
|
|
98
|
+
* `favicon_16`: A URL pointing to the 16x16px version of the favicon.
|
|
99
|
+
|
|
100
|
+
* `favicon_32`: A URL pointing to the 32x32px version of the favicon.
|
|
101
|
+
|
|
102
|
+
* `apple_touch_icon`: A URL pointing to the Apple touch icon. This
|
|
103
|
+
is a favicon specifically used by Apple software in certain
|
|
104
|
+
situations. A recommended size is 180x180px. If this isn't
|
|
105
|
+
specified, the favicon will be used.
|
|
106
|
+
|
|
107
|
+
* `css_assets`: Custom CSS assets to load into the index page.
|
|
108
|
+
|
|
109
|
+
* `js_assets`: Custom Javascript assets to load into the index page.
|
|
110
|
+
|
|
111
|
+
* `raw_head_content`: A string of arbitrary content to add to the
|
|
112
|
+
`<head>` tag of the generated index page.
|
|
113
|
+
|
|
114
|
+
## Loading Custom Assets
|
|
115
|
+
|
|
116
|
+
The `css_assets`, `js_assets`, and `raw_head_content` parameters
|
|
117
|
+
can be used to load custom local or remote assets into the index
|
|
118
|
+
page.
|
|
119
|
+
|
|
120
|
+
```py-nodemo
|
|
121
|
+
hd.run(main, index_page=hd.index_page(
|
|
122
|
+
js_assets=[
|
|
123
|
+
# A local Javascript asset:
|
|
124
|
+
"/assets/my-script.js",
|
|
125
|
+
# A remote Javascript asset:
|
|
126
|
+
"https://foo.com/remote-script.js"
|
|
127
|
+
],
|
|
128
|
+
css_assets=[
|
|
129
|
+
# A local CSS asset
|
|
130
|
+
"/assets/my-styles.css",
|
|
131
|
+
"https//foo.com/remote-styles.css",
|
|
132
|
+
]
|
|
133
|
+
))
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Hyperdiv will generate basic `<script>` and `<link>` tags to load
|
|
137
|
+
these scripts.
|
|
138
|
+
|
|
139
|
+
### Custom Attributes
|
|
140
|
+
|
|
141
|
+
Instead of a string, you can pass a dictionary mapping attributes
|
|
142
|
+
to values. This can be useful when you want to add extra
|
|
143
|
+
attributes that Hyperdiv does not add by default:
|
|
144
|
+
|
|
145
|
+
```py-nodemo
|
|
146
|
+
hd.run(main, index_page=hd.index_page(
|
|
147
|
+
js_assets=[dict(
|
|
148
|
+
defer=True
|
|
149
|
+
src="https://foo.com/remote-script.js?x=1",
|
|
150
|
+
)]
|
|
151
|
+
))
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
The code above will generate the tag `<script defer src="https://foo.com/remote-script.js?x=1"></script>`.
|
|
155
|
+
|
|
156
|
+
When you use a dictionary, Hyperdiv will not set any attributes
|
|
157
|
+
implicitly. For example to properly load a CSS asset, you should
|
|
158
|
+
set the `rel` attribute:
|
|
159
|
+
|
|
160
|
+
```py-nodemo
|
|
161
|
+
hd.run(main, index_page=hd.index_page(
|
|
162
|
+
js_assets=[dict(
|
|
163
|
+
rel="stylesheet",
|
|
164
|
+
href="/assets/custom-styles.css",
|
|
165
|
+
)]
|
|
166
|
+
))
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Raw Head Content
|
|
170
|
+
|
|
171
|
+
If the options above don't fit your use case, you can use the
|
|
172
|
+
`raw_head_content` argument to cause Hyperdiv to insert a
|
|
173
|
+
string into the page's `<head>` tag:
|
|
174
|
+
|
|
175
|
+
```py-nodemo
|
|
176
|
+
hd.run(main, index_page=hd.index_page(
|
|
177
|
+
raw_head_content=(
|
|
178
|
+
'''
|
|
179
|
+
<link rel="stylesheet" href="/assets/my-styles.css" />
|
|
180
|
+
<script defer src="https://foo.com/remote-script.js"></script>
|
|
181
|
+
<script>
|
|
182
|
+
console.log("Hello world!")
|
|
183
|
+
</script>
|
|
184
|
+
'''
|
|
185
|
+
)
|
|
186
|
+
))
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Note that Hyperdiv will re-indent this string to try to match the
|
|
190
|
+
indentation of the index page.
|
|
191
|
+
|
|
192
|
+
Hyperdiv inserts custom head content in this order:
|
|
193
|
+
|
|
194
|
+
1. The tags generated by `css_assets`, in the order they are
|
|
195
|
+
specified, if any.
|
|
196
|
+
2. Followed by the tags generated by `js_assets`, in the order
|
|
197
|
+
they are specified, if any.
|
|
198
|
+
3. Followed The content specified by `raw_head_content`.
|
|
199
|
+
|
|
200
|
+
"""
|
|
201
|
+
|
|
202
|
+
head_tags = []
|
|
203
|
+
|
|
204
|
+
for css_tag in css_assets:
|
|
205
|
+
if isinstance(css_tag, dict):
|
|
206
|
+
head_tags.append(css_tag_from_dict(css_tag))
|
|
207
|
+
else:
|
|
208
|
+
head_tags.append(css_tag_from_url(css_tag))
|
|
209
|
+
|
|
210
|
+
for js_tag in js_assets:
|
|
211
|
+
if isinstance(js_tag, dict):
|
|
212
|
+
head_tags.append(js_tag_from_dict(js_tag))
|
|
213
|
+
else:
|
|
214
|
+
head_tags.append(js_tag_from_url(js_tag))
|
|
215
|
+
|
|
216
|
+
if head_tags:
|
|
217
|
+
raw_head_content = "\n".join(head_tags + [dedent(raw_head_content).strip()])
|
|
218
|
+
|
|
219
|
+
template_contents = index_page_template(
|
|
220
|
+
title=title,
|
|
221
|
+
description=description,
|
|
222
|
+
keywords=keywords,
|
|
223
|
+
url=url,
|
|
224
|
+
image=image,
|
|
225
|
+
twitter_card_type=twitter_card_type,
|
|
226
|
+
favicon=favicon,
|
|
227
|
+
favicon_16=favicon_16,
|
|
228
|
+
favicon_32=favicon_32,
|
|
229
|
+
apple_touch_icon=apple_touch_icon,
|
|
230
|
+
raw_head_content=raw_head_content,
|
|
231
|
+
)
|
|
232
|
+
template = Template(template_contents)
|
|
233
|
+
return template.render(body="", style="")
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
def index_page_template(
|
|
237
|
+
title="Hyperdiv",
|
|
238
|
+
description=None,
|
|
239
|
+
keywords=None,
|
|
240
|
+
url=None,
|
|
241
|
+
image=None,
|
|
242
|
+
twitter_card_type="summary_large_image",
|
|
243
|
+
favicon=None,
|
|
244
|
+
favicon_16=None,
|
|
245
|
+
favicon_32=None,
|
|
246
|
+
apple_touch_icon=None,
|
|
247
|
+
raw_head_content="",
|
|
248
|
+
):
|
|
249
|
+
public_path = get_frontend_public_path()
|
|
250
|
+
|
|
251
|
+
css_bundle_path = os.path.join(public_path, "build", "bundle.css")
|
|
252
|
+
css_hash = xxhash.xxh32(str(int(os.path.getmtime(css_bundle_path)))).hexdigest()
|
|
253
|
+
|
|
254
|
+
js_bundle_path = os.path.join(public_path, "build", "bundle.js")
|
|
255
|
+
js_hash = xxhash.xxh32(str(int(os.path.getmtime(js_bundle_path)))).hexdigest()
|
|
256
|
+
|
|
257
|
+
prefix = """
|
|
258
|
+
<!DOCTYPE html>
|
|
259
|
+
<html lang="en">
|
|
260
|
+
<head>
|
|
261
|
+
<meta charset="utf-8" />
|
|
262
|
+
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
263
|
+
"""
|
|
264
|
+
|
|
265
|
+
# Indent by 12 spaces to match the indent where the
|
|
266
|
+
# raw_head_content is inserted in the suffix string below:
|
|
267
|
+
if raw_head_content:
|
|
268
|
+
raw_head_content = indent(raw_head_content, " " * 12).strip()
|
|
269
|
+
|
|
270
|
+
suffix = f"""
|
|
271
|
+
<style id="hyperdiv-styles">{{{{style}}}}</style>
|
|
272
|
+
<link rel="stylesheet" href="/build/bundle.css?v={css_hash}" />
|
|
273
|
+
<script defer src="/build/bundle.js?v={js_hash}"></script>
|
|
274
|
+
{raw_head_content}
|
|
275
|
+
</head>
|
|
276
|
+
<body>{{{{body}}}}</body>
|
|
277
|
+
</html>
|
|
278
|
+
"""
|
|
279
|
+
|
|
280
|
+
lines = ['<meta property="og:type" content="website" />']
|
|
281
|
+
|
|
282
|
+
if title:
|
|
283
|
+
lines.append(f"<title>{title}</title>")
|
|
284
|
+
lines.append(f'<meta property="og:title" content="{title}" />')
|
|
285
|
+
lines.append(f'<meta property="og:site_name" content="{title}" />')
|
|
286
|
+
lines.append(f'<meta name="twitter:title" content="{title}" />')
|
|
287
|
+
if keywords:
|
|
288
|
+
if not isinstance(keywords, str):
|
|
289
|
+
try:
|
|
290
|
+
keywords = ", ".join([str(k) for k in keywords])
|
|
291
|
+
except TypeError:
|
|
292
|
+
raise ValueError(
|
|
293
|
+
"keywords should a string containing keywords separated by ', ' "
|
|
294
|
+
"or an iterable of keywords"
|
|
295
|
+
)
|
|
296
|
+
lines.append(f'<meta name="keywords" content="{keywords}" />')
|
|
297
|
+
if description:
|
|
298
|
+
lines.append(f'<meta name="description" content="{description}" />')
|
|
299
|
+
lines.append(f'<meta property="og:description" content="{description}" />')
|
|
300
|
+
lines.append(f'<meta name="twitter:description" content="{description}" />')
|
|
301
|
+
if twitter_card_type not in ("summary", "summary_large_image"):
|
|
302
|
+
twitter_card_type = "summary_large_image"
|
|
303
|
+
lines.append(f'<meta name="twitter:card" content="{twitter_card_type}" />')
|
|
304
|
+
if url:
|
|
305
|
+
lines.append(f'<meta property="og:url" content="{url}" />')
|
|
306
|
+
if image:
|
|
307
|
+
lines.append(f'<meta property="og:image" content="{image}" />')
|
|
308
|
+
lines.append(f'<meta name="twitter:image" content="{image}" />')
|
|
309
|
+
|
|
310
|
+
if not favicon_16:
|
|
311
|
+
favicon_16 = favicon or favicon_32 or apple_touch_icon
|
|
312
|
+
if not favicon_32:
|
|
313
|
+
favicon_32 = favicon or favicon_16 or apple_touch_icon
|
|
314
|
+
if not apple_touch_icon:
|
|
315
|
+
apple_touch_icon = favicon or favicon_16 or favicon_32
|
|
316
|
+
|
|
317
|
+
if favicon_16:
|
|
318
|
+
mime_type = get_mime_type(favicon_16)
|
|
319
|
+
lines.append(
|
|
320
|
+
f'<link rel="icon" type="{mime_type}" sizes="16x16" href="{favicon_16}" />'
|
|
321
|
+
)
|
|
322
|
+
if favicon_32:
|
|
323
|
+
mime_type = get_mime_type(favicon_32)
|
|
324
|
+
lines.append(
|
|
325
|
+
f'<link rel="icon" type="{mime_type}" sizes="32x32" href="{favicon_32}" />'
|
|
326
|
+
)
|
|
327
|
+
if apple_touch_icon:
|
|
328
|
+
mime_type = get_mime_type(apple_touch_icon)
|
|
329
|
+
lines.append(
|
|
330
|
+
f'<link rel="apple-touch-icon" type="{mime_type}" sizes="180x180" href="{apple_touch_icon}" />'
|
|
331
|
+
)
|
|
332
|
+
|
|
333
|
+
return dedent(prefix) + " " + "\n ".join(sorted(lines)) + dedent(suffix)
|
hyperdiv/main.py
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
from termcolor import colored
|
|
2
|
+
import webbrowser
|
|
3
|
+
import threading
|
|
4
|
+
import socket
|
|
5
|
+
import time
|
|
6
|
+
import sys
|
|
7
|
+
import os
|
|
8
|
+
from .backends import create_server
|
|
9
|
+
from .task_runtime import TaskRuntime
|
|
10
|
+
from .index_page import index_page as create_index_page
|
|
11
|
+
from .debug import PRODUCTION_LOCAL
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def find_open_port(start=8988):
|
|
15
|
+
for port in range(start, 65536):
|
|
16
|
+
try:
|
|
17
|
+
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
18
|
+
sock.bind(("0.0.0.0", port))
|
|
19
|
+
return port
|
|
20
|
+
except OSError:
|
|
21
|
+
continue
|
|
22
|
+
finally:
|
|
23
|
+
sock.close()
|
|
24
|
+
raise Exception("Could not find an open port.")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def is_port_open(port):
|
|
28
|
+
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
29
|
+
sock.settimeout(0.1)
|
|
30
|
+
try:
|
|
31
|
+
sock.connect((os.environ.get("HD_HOST", "localhost"), port))
|
|
32
|
+
except (socket.timeout, ConnectionRefusedError):
|
|
33
|
+
return False
|
|
34
|
+
finally:
|
|
35
|
+
sock.close()
|
|
36
|
+
return True
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def get_port():
|
|
40
|
+
port = 8888
|
|
41
|
+
|
|
42
|
+
port_env_var = os.getenv("HD_PORT")
|
|
43
|
+
if port_env_var:
|
|
44
|
+
try:
|
|
45
|
+
port = int(os.getenv("HD_PORT"))
|
|
46
|
+
except Exception as e:
|
|
47
|
+
print(f"Invalid port: {port_env_var}. Error: {e}")
|
|
48
|
+
sys.exit(1)
|
|
49
|
+
elif PRODUCTION_LOCAL:
|
|
50
|
+
# PRODUCTION_LOCAL indicates an app meant to be run locally by
|
|
51
|
+
# users. In this case we dynamically find an open port instead
|
|
52
|
+
# of failing with an "Adress is already in use" error in case
|
|
53
|
+
# 8888 is occupied and HD_PORT is unspecified.
|
|
54
|
+
port = find_open_port()
|
|
55
|
+
|
|
56
|
+
return port
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def wait_for_port(port):
|
|
60
|
+
while not is_port_open(port):
|
|
61
|
+
time.sleep(0.05)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def open_browser(port):
|
|
65
|
+
def run():
|
|
66
|
+
wait_for_port(port)
|
|
67
|
+
webbrowser.open(f"http://{os.environ.get('HD_HOST', 'localhost')}:{port}")
|
|
68
|
+
|
|
69
|
+
thread = threading.Thread(target=run)
|
|
70
|
+
thread.start()
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def run(app_function, task_threads=10, executor=None, index_page=None):
|
|
74
|
+
"""
|
|
75
|
+
The entrypoint into Hyperdiv.
|
|
76
|
+
|
|
77
|
+
When calling `run(app_function)`, Hyperdiv will start a web server
|
|
78
|
+
ready to serve the app defined by `app_function`, on a local
|
|
79
|
+
port. A user can connect a web browser to this port to interact
|
|
80
|
+
with the app. The call to `run` will block until Hyperdiv exits.
|
|
81
|
+
|
|
82
|
+
Hyperdiv listens for signals SIGINT and SIGTERM and will cleanly
|
|
83
|
+
exit the web server when receiving one of those signals. For
|
|
84
|
+
example, pressing Ctrl-C in the terminal where Hyperdiv is running
|
|
85
|
+
will cause Hyperdiv to exit.
|
|
86
|
+
|
|
87
|
+
Parameters:
|
|
88
|
+
* `app_function`: The function implementing the Hyperdiv app.
|
|
89
|
+
|
|
90
|
+
* `task_threads`: The number of threads to run in the internal
|
|
91
|
+
[ThreadPoolExecutor](https://docs.python.org/3/library/concurrent.futures.html)
|
|
92
|
+
used for running asynchronous @component(task) functions.
|
|
93
|
+
|
|
94
|
+
* `executor`: A
|
|
95
|
+
[ThreadPoolExecutor](https://docs.python.org/3/library/concurrent.futures.html)
|
|
96
|
+
in which to run @component(task) functions. If this argument is
|
|
97
|
+
non-`None`, `task_threads` will be ignored.
|
|
98
|
+
|
|
99
|
+
* `index_page`: An index page generated with @component(index_page).
|
|
100
|
+
|
|
101
|
+
* `port`: The port on which to start the web server. By default,
|
|
102
|
+
the port is `8888`. Alternatively, the port can be set with the
|
|
103
|
+
`HD_PORT` environment variable.
|
|
104
|
+
|
|
105
|
+
"""
|
|
106
|
+
port = get_port()
|
|
107
|
+
|
|
108
|
+
task_runtime = TaskRuntime(task_threads, executor=executor)
|
|
109
|
+
server = create_server(
|
|
110
|
+
port,
|
|
111
|
+
app_function,
|
|
112
|
+
task_runtime,
|
|
113
|
+
index_page or create_index_page(),
|
|
114
|
+
)
|
|
115
|
+
try:
|
|
116
|
+
server.listen()
|
|
117
|
+
except Exception as e:
|
|
118
|
+
print(f"Failed to start on port {server.port}. {e}")
|
|
119
|
+
print(
|
|
120
|
+
"Try using a different port:",
|
|
121
|
+
colored(f"HD_PORT=[port] python {sys.argv[0]}", "blue"),
|
|
122
|
+
)
|
|
123
|
+
task_runtime.shutdown()
|
|
124
|
+
sys.exit(1)
|
|
125
|
+
|
|
126
|
+
if PRODUCTION_LOCAL:
|
|
127
|
+
open_browser(server.port)
|
|
128
|
+
|
|
129
|
+
server.start()
|
|
130
|
+
|
|
131
|
+
# At this point, the server has shut down.
|
|
132
|
+
task_runtime.shutdown()
|
hyperdiv/plugin.py
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import glob
|
|
2
|
+
from urllib.parse import urlparse
|
|
3
|
+
import os
|
|
4
|
+
from .component_base import Component
|
|
5
|
+
from .component_mixins.styled import Styled
|
|
6
|
+
|
|
7
|
+
PLUGINS_PREFIX = "/hyperdiv-plugins"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def is_url(s):
|
|
11
|
+
try:
|
|
12
|
+
result = urlparse(s)
|
|
13
|
+
# Ensure the URL has at least a scheme (e.g., "http") and a netloc (e.g., "www.google.com")
|
|
14
|
+
return all([result.scheme, result.netloc])
|
|
15
|
+
except ValueError:
|
|
16
|
+
return False
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def get_path(s):
|
|
20
|
+
return urlparse(s).path
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def is_pure_path(s):
|
|
24
|
+
result = urlparse(s)
|
|
25
|
+
return result.path and not (
|
|
26
|
+
result.scheme
|
|
27
|
+
or result.netloc
|
|
28
|
+
or result.params
|
|
29
|
+
or result.query
|
|
30
|
+
or result.fragment
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def expand_assets_glob(assets_root, asset_description):
|
|
35
|
+
assets_root = os.path.realpath(assets_root)
|
|
36
|
+
|
|
37
|
+
current_dir = os.getcwd()
|
|
38
|
+
os.chdir(assets_root)
|
|
39
|
+
try:
|
|
40
|
+
paths = glob.glob(asset_description, recursive=True)
|
|
41
|
+
|
|
42
|
+
if not paths:
|
|
43
|
+
raise Exception(
|
|
44
|
+
f"Asset description {asset_description} did not match any files."
|
|
45
|
+
)
|
|
46
|
+
for path in paths:
|
|
47
|
+
if not os.path.realpath(path).startswith(assets_root):
|
|
48
|
+
raise Exception(f"Asset path {path} escapes directory {assets_root}.")
|
|
49
|
+
return paths
|
|
50
|
+
finally:
|
|
51
|
+
os.chdir(current_dir)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class PluginAssetsCollector(type):
|
|
55
|
+
plugin_assets: dict = dict()
|
|
56
|
+
|
|
57
|
+
def __new__(cls, clsname, bases, attrs):
|
|
58
|
+
klass = super().__new__(cls, clsname, bases, attrs)
|
|
59
|
+
|
|
60
|
+
if clsname != "Plugin":
|
|
61
|
+
plugin_name = getattr(klass, "_name", None) or klass.__name__
|
|
62
|
+
|
|
63
|
+
assets_root = getattr(klass, "_assets_root", None)
|
|
64
|
+
asset_descriptions = getattr(klass, "_assets", None)
|
|
65
|
+
|
|
66
|
+
def check_assets_root():
|
|
67
|
+
if not assets_root:
|
|
68
|
+
raise Exception(
|
|
69
|
+
f"Plugin {plugin_name} does not specify an `_assets_root`"
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
if not os.path.exists(assets_root):
|
|
73
|
+
raise Exception(
|
|
74
|
+
f"Plugin {plugin_name} `_assets_root` {assets_root} does not exist."
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
if not os.path.isabs(assets_root):
|
|
78
|
+
raise Exception(
|
|
79
|
+
f"Plugin {plugin_name} `_assets_root` {assets_root} is not an absolute path."
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
def infer_asset_from_extension(asset):
|
|
83
|
+
asset_path = get_path(asset)
|
|
84
|
+
if asset_path.lower().endswith(".css"):
|
|
85
|
+
return ("css-link", asset)
|
|
86
|
+
elif asset_path.lower().endswith(".js"):
|
|
87
|
+
return ("js-link", asset)
|
|
88
|
+
else:
|
|
89
|
+
raise Exception(f"Asset with unknown extension: {asset}")
|
|
90
|
+
|
|
91
|
+
if not asset_descriptions:
|
|
92
|
+
raise Exception(f"Plugin {plugin_name} does not specify any `_assets`.")
|
|
93
|
+
|
|
94
|
+
if assets_root:
|
|
95
|
+
check_assets_root()
|
|
96
|
+
|
|
97
|
+
assets_config = dict(
|
|
98
|
+
assets_root=assets_root,
|
|
99
|
+
assets=[],
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
for asset_description in asset_descriptions:
|
|
103
|
+
if isinstance(asset_description, tuple):
|
|
104
|
+
if len(asset_description) != 2:
|
|
105
|
+
raise Exception(f"Invalid asset: {asset_description}")
|
|
106
|
+
typ, asset = asset_description
|
|
107
|
+
if typ in ("js", "css"):
|
|
108
|
+
assets_config["assets"].append(asset_description)
|
|
109
|
+
continue
|
|
110
|
+
if typ not in ("css-link", "js-link"):
|
|
111
|
+
raise Exception(f"Invalid asset type: {typ}")
|
|
112
|
+
if not is_url(asset):
|
|
113
|
+
check_assets_root()
|
|
114
|
+
asset_path = get_path(asset)
|
|
115
|
+
if not os.path.exists(os.path.join(assets_root, asset_path)):
|
|
116
|
+
raise Exception(
|
|
117
|
+
f"Plugin asset path {asset_path} does not exist."
|
|
118
|
+
)
|
|
119
|
+
assets_config["assets"].append(asset_description)
|
|
120
|
+
elif is_url(asset_description):
|
|
121
|
+
assets_config["assets"].append(
|
|
122
|
+
infer_asset_from_extension(asset_description)
|
|
123
|
+
)
|
|
124
|
+
elif not is_pure_path(asset_description):
|
|
125
|
+
check_assets_root()
|
|
126
|
+
asset_path = get_path(asset_description)
|
|
127
|
+
if not os.path.exists(os.path.join(assets_root, asset_path)):
|
|
128
|
+
raise Exception(
|
|
129
|
+
f"Plugin asset path {asset_path} does not exist."
|
|
130
|
+
)
|
|
131
|
+
print(
|
|
132
|
+
asset_description,
|
|
133
|
+
asset_path,
|
|
134
|
+
infer_asset_from_extension(asset_description),
|
|
135
|
+
)
|
|
136
|
+
assets_config["assets"].append(
|
|
137
|
+
infer_asset_from_extension(asset_description)
|
|
138
|
+
)
|
|
139
|
+
else:
|
|
140
|
+
check_assets_root()
|
|
141
|
+
paths = expand_assets_glob(assets_root, asset_description)
|
|
142
|
+
for path in paths:
|
|
143
|
+
assets_config["assets"].append(infer_asset_from_extension(path))
|
|
144
|
+
|
|
145
|
+
PluginAssetsCollector.plugin_assets[plugin_name] = assets_config
|
|
146
|
+
|
|
147
|
+
return klass
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
class Plugin(Component, Styled, metaclass=PluginAssetsCollector):
|
|
151
|
+
"""
|
|
152
|
+
This class can be subclassed to define custom Hyperdiv components,
|
|
153
|
+
with custom Javascript, CSS, and other assets, such as images.
|
|
154
|
+
|
|
155
|
+
See [here](/extending-hyperdiv/plugins) for a detailed dive into how
|
|
156
|
+
plugins work.
|
|
157
|
+
"""
|
|
158
|
+
|
|
159
|
+
_tag = "hyperdiv-plugin"
|
|
160
|
+
_camlcase_props = False
|
|
161
|
+
|
|
162
|
+
@staticmethod
|
|
163
|
+
def js(asset):
|
|
164
|
+
"""Helper to define an inline Javascript asset."""
|
|
165
|
+
return ("js", asset)
|
|
166
|
+
|
|
167
|
+
@staticmethod
|
|
168
|
+
def css(asset):
|
|
169
|
+
"""Helper to define an inline CSS asset."""
|
|
170
|
+
return ("css", asset)
|
|
171
|
+
|
|
172
|
+
@staticmethod
|
|
173
|
+
def js_link(asset):
|
|
174
|
+
"""Helper to define a Javascript link asset."""
|
|
175
|
+
return ("js-link", asset)
|
|
176
|
+
|
|
177
|
+
@staticmethod
|
|
178
|
+
def css_link(asset):
|
|
179
|
+
"""Helper to define a CSS link asset."""
|
|
180
|
+
return ("css-link", asset)
|
|
181
|
+
|
|
182
|
+
def render(self):
|
|
183
|
+
"""
|
|
184
|
+
The JSON-rendered form of the plugin that is sent to the browser.
|
|
185
|
+
"""
|
|
186
|
+
klass = type(self)
|
|
187
|
+
plugin_name = getattr(klass, "_name", None) or klass.__name__
|
|
188
|
+
|
|
189
|
+
plugin_config = PluginAssetsCollector.plugin_assets.get(plugin_name, {})
|
|
190
|
+
|
|
191
|
+
assets_root = plugin_config.get("assets_root")
|
|
192
|
+
assets_paths = plugin_config.get("assets", [])
|
|
193
|
+
|
|
194
|
+
output = super().render()
|
|
195
|
+
|
|
196
|
+
if assets_root:
|
|
197
|
+
output["assetsRoot"] = f"{PLUGINS_PREFIX}/{plugin_name}"
|
|
198
|
+
|
|
199
|
+
output["assets"] = []
|
|
200
|
+
|
|
201
|
+
for asset_type, asset_path in assets_paths:
|
|
202
|
+
if asset_type in ("css", "js") or is_url(asset_path):
|
|
203
|
+
output["assets"].append((asset_type, asset_path))
|
|
204
|
+
else:
|
|
205
|
+
output["assets"].append(
|
|
206
|
+
(asset_type, f"{PLUGINS_PREFIX}/{plugin_name}/{asset_path}")
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
return output
|