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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import json
|
|
3
|
+
import signal
|
|
4
|
+
import multiprocessing
|
|
5
|
+
import requests
|
|
6
|
+
import websocket
|
|
7
|
+
import hyperdiv as hd
|
|
8
|
+
from ..main import wait_for_port
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def empty_app():
|
|
12
|
+
def main():
|
|
13
|
+
pass
|
|
14
|
+
|
|
15
|
+
hd.run(main)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class MockServer:
|
|
19
|
+
def __init__(self, fn=empty_app, port=9070):
|
|
20
|
+
self.fn = fn
|
|
21
|
+
self.port = port
|
|
22
|
+
self.process = None
|
|
23
|
+
self.prev_port = os.environ.get("HD_PORT")
|
|
24
|
+
self.prev_debug = os.environ.get("HD_DEBUG")
|
|
25
|
+
|
|
26
|
+
def __enter__(self):
|
|
27
|
+
os.environ["HD_PORT"] = str(self.port)
|
|
28
|
+
os.environ["HD_DEBUG"] = "1"
|
|
29
|
+
self.process = multiprocessing.Process(target=self.fn)
|
|
30
|
+
self.process.start()
|
|
31
|
+
wait_for_port(self.port)
|
|
32
|
+
return self
|
|
33
|
+
|
|
34
|
+
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
35
|
+
os.kill(self.process.pid, signal.SIGINT)
|
|
36
|
+
self.process.join()
|
|
37
|
+
|
|
38
|
+
if self.prev_port is None:
|
|
39
|
+
del os.environ["HD_PORT"]
|
|
40
|
+
else:
|
|
41
|
+
os.environ["HD_PORT"] = self.prev_port
|
|
42
|
+
|
|
43
|
+
if self.prev_debug is None:
|
|
44
|
+
del os.environ["HD_DEBUG"]
|
|
45
|
+
else:
|
|
46
|
+
os.environ["HD_DEBUG"] = self.prev_debug
|
|
47
|
+
|
|
48
|
+
def open_websocket(self):
|
|
49
|
+
return websocket.create_connection(f"ws://{os.environ.get('HD_HOST', 'localhost')}:{self.port}/ws")
|
|
50
|
+
|
|
51
|
+
def request_path(self, path):
|
|
52
|
+
return requests.get(f"http://{os.environ.get('HD_HOST', 'localhost')}:{self.port}{path}").text
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def checkbox_app():
|
|
56
|
+
def my_fun():
|
|
57
|
+
b = hd.checkbox("Hello", key="my-checkbox")
|
|
58
|
+
|
|
59
|
+
if b.checked:
|
|
60
|
+
hd.text("checked")
|
|
61
|
+
|
|
62
|
+
hd.run(my_fun)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def test_websocket():
|
|
66
|
+
"""TODO"""
|
|
67
|
+
|
|
68
|
+
with MockServer(checkbox_app) as s:
|
|
69
|
+
ws = s.open_websocket()
|
|
70
|
+
dom = json.loads(ws.recv())
|
|
71
|
+
root = dom["dom"]
|
|
72
|
+
root_key = root["key"]
|
|
73
|
+
assert len(root["children"]) == 1
|
|
74
|
+
assert root["children"][0]["key"] == "my-checkbox"
|
|
75
|
+
|
|
76
|
+
ws.send(
|
|
77
|
+
json.dumps(
|
|
78
|
+
[{"type": "update", "updates": [["my-checkbox", "checked", True]]}]
|
|
79
|
+
)
|
|
80
|
+
)
|
|
81
|
+
response = json.loads(ws.recv())
|
|
82
|
+
assert "diff" in response
|
|
83
|
+
assert root_key in response["diff"]
|
|
84
|
+
assert "children" in response["diff"][root_key]
|
|
85
|
+
assert len(response["diff"][root_key]["children"]) == 1
|
|
86
|
+
cmd = response["diff"][root_key]["children"][0]
|
|
87
|
+
assert cmd[0] == "insert"
|
|
88
|
+
assert cmd[1] == 1
|
|
89
|
+
assert len(cmd[2]) == 1
|
|
90
|
+
txt = cmd[2][0]
|
|
91
|
+
assert txt["props"] == {"content": "checked"}
|
|
92
|
+
ws.close()
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def test_server():
|
|
96
|
+
with MockServer() as s:
|
|
97
|
+
t1 = s.request_path("/")
|
|
98
|
+
t2 = s.request_path("/foo")
|
|
99
|
+
t3 = s.request_path("/foo/bar")
|
|
100
|
+
|
|
101
|
+
assert t1 == t2 == t3
|
|
102
|
+
|
|
103
|
+
s.request_path("/build/bundle.js")
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
import os
|
|
3
|
+
import tempfile
|
|
4
|
+
from ..sqlite import sql, sqlite, sqlite_tx, retry, migrate
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@retry
|
|
8
|
+
def insert_user_1(db_path, name, age):
|
|
9
|
+
with sqlite(db_path) as (_, cursor):
|
|
10
|
+
cursor.execute("insert into Users (name, age) values (?, ?)", (name, age))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@retry
|
|
14
|
+
def insert_user_2(db_path, name, age, role):
|
|
15
|
+
with sqlite_tx(db_path) as (_, cursor):
|
|
16
|
+
cursor.execute(
|
|
17
|
+
"insert into Users (name, age, role) values (?, ?, ?)", (name, age, role)
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@retry
|
|
22
|
+
def select_users_1(db_path):
|
|
23
|
+
with sqlite(db_path) as (_, cursor):
|
|
24
|
+
cursor.execute("select name, age from Users")
|
|
25
|
+
return cursor.fetchall()
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@retry
|
|
29
|
+
def select_users_2(db_path):
|
|
30
|
+
with sqlite_tx(db_path) as (_, cursor):
|
|
31
|
+
cursor.execute("select name, age, role from Users")
|
|
32
|
+
return cursor.fetchall()
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@retry
|
|
36
|
+
def failed_insert_user_2(db_path, name, age, role):
|
|
37
|
+
with sqlite_tx(db_path) as (_, cursor):
|
|
38
|
+
cursor.execute(
|
|
39
|
+
"insert into Users (name, age, role) values (?, ?, ?)", (name, age, role)
|
|
40
|
+
)
|
|
41
|
+
raise Exception("Failure")
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def test_sqlite():
|
|
45
|
+
with tempfile.NamedTemporaryFile(delete=False) as f:
|
|
46
|
+
db_path = f.name
|
|
47
|
+
|
|
48
|
+
migrations = [sql("create table Users (name, age)")]
|
|
49
|
+
|
|
50
|
+
migrate(db_path, migrations)
|
|
51
|
+
# Migrating again does nothing
|
|
52
|
+
migrate(db_path, migrations)
|
|
53
|
+
|
|
54
|
+
insert_user_1(db_path, "Steve", 40)
|
|
55
|
+
insert_user_1(db_path, "Andy", 32)
|
|
56
|
+
|
|
57
|
+
users = select_users_1(db_path)
|
|
58
|
+
assert users == [{"name": "Steve", "age": 40}, {"name": "Andy", "age": 32}]
|
|
59
|
+
|
|
60
|
+
migrations += [sql("alter table Users add column role")]
|
|
61
|
+
migrate(db_path, migrations)
|
|
62
|
+
|
|
63
|
+
insert_user_2(db_path, "Mary", 23, "Manager")
|
|
64
|
+
insert_user_2(db_path, "Joe", 38, "Engineer")
|
|
65
|
+
|
|
66
|
+
users = select_users_2(db_path)
|
|
67
|
+
assert users == [
|
|
68
|
+
{"name": "Steve", "age": 40, "role": None},
|
|
69
|
+
{"name": "Andy", "age": 32, "role": None},
|
|
70
|
+
{"name": "Mary", "age": 23, "role": "Manager"},
|
|
71
|
+
{"name": "Joe", "age": 38, "role": "Engineer"},
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
with pytest.raises(Exception):
|
|
75
|
+
failed_insert_user_2(db_path, "Jimmy", 50, "Manager")
|
|
76
|
+
|
|
77
|
+
# The inserted record got rolled back
|
|
78
|
+
assert select_users_2(db_path) == users
|
|
79
|
+
|
|
80
|
+
os.remove(db_path)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from ..test_utils import mock_frame
|
|
3
|
+
from ..components.style import style
|
|
4
|
+
from ..components.button import button
|
|
5
|
+
from ..style_part import StylePart
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@mock_frame
|
|
9
|
+
def test_style_part():
|
|
10
|
+
# None case
|
|
11
|
+
b = button(label_style=None)
|
|
12
|
+
assert b.label_style is None
|
|
13
|
+
|
|
14
|
+
# Non-style case
|
|
15
|
+
with pytest.raises(Exception):
|
|
16
|
+
button(label_style=10)
|
|
17
|
+
|
|
18
|
+
# Basic case, does not add `display:flex` or direction.
|
|
19
|
+
b = button(label_style=style(width=10))
|
|
20
|
+
|
|
21
|
+
rendered = b.render()
|
|
22
|
+
assert rendered["style"][f"#{b._key}::part(label)"] == "width:10rem"
|
|
23
|
+
|
|
24
|
+
# Test that 'display:flex' and 'direction' are automatically added:
|
|
25
|
+
b = button(label_style=style(width=10, align="center"))
|
|
26
|
+
|
|
27
|
+
rendered = b.render()
|
|
28
|
+
|
|
29
|
+
style_items = set(rendered["style"][f"#{b._key}::part(label)"].split(";"))
|
|
30
|
+
|
|
31
|
+
assert style_items == set(
|
|
32
|
+
[
|
|
33
|
+
"display:flex",
|
|
34
|
+
"width:10rem",
|
|
35
|
+
"align-items:center",
|
|
36
|
+
"flex-direction:column",
|
|
37
|
+
]
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Test that direction is correctly taken into account:
|
|
41
|
+
b = button(label_style=style(width=10, align="center", direction="horizontal"))
|
|
42
|
+
|
|
43
|
+
rendered = b.render()
|
|
44
|
+
|
|
45
|
+
style_items = set(rendered["style"][f"#{b._key}::part(label)"].split(";"))
|
|
46
|
+
|
|
47
|
+
assert style_items == set(
|
|
48
|
+
[
|
|
49
|
+
"display:flex",
|
|
50
|
+
"width:10rem",
|
|
51
|
+
"align-items:center",
|
|
52
|
+
"flex-direction:row",
|
|
53
|
+
]
|
|
54
|
+
)
|
hyperdiv/ui_command.py
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
from .frame import AppRunnerFrame
|
|
2
|
+
from .components.async_command import async_command
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class UICommand:
|
|
6
|
+
"""
|
|
7
|
+
Just an in-memory representation of a command. `result_key` is the
|
|
8
|
+
Hyperdiv key of the `async_command` object returned by the
|
|
9
|
+
command. The UI will update the done/running/result props at this
|
|
10
|
+
key when the command is done executing.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
def __init__(self, result_key, target, command, args):
|
|
14
|
+
self.result_key = result_key
|
|
15
|
+
self.target = target
|
|
16
|
+
self.command = command
|
|
17
|
+
self.args = args
|
|
18
|
+
|
|
19
|
+
def render(self):
|
|
20
|
+
return dict(
|
|
21
|
+
resultKey=self.result_key,
|
|
22
|
+
target=self.target,
|
|
23
|
+
command=self.command,
|
|
24
|
+
args=self.args,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
@staticmethod
|
|
28
|
+
def send(result_key, target, command, args):
|
|
29
|
+
"""Sends a command to the UI at the end of the current frame."""
|
|
30
|
+
AppRunnerFrame.current().add_command(
|
|
31
|
+
UICommand(result_key, target, command, args)
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def ui_read(target, command, args):
|
|
36
|
+
"""Invoke a UI read command. A read will send the command to the UI
|
|
37
|
+
and return a result object in `running` state. Calling this read
|
|
38
|
+
again on subsequent frames will *not* re-send the read call to the
|
|
39
|
+
UI. It will remain in `done` state and return the same value over
|
|
40
|
+
and over.
|
|
41
|
+
|
|
42
|
+
To trigger a re-read, you can call `clear()` on the returned
|
|
43
|
+
`async_command` object, which resets the running/done props and causes
|
|
44
|
+
the read to be sent again on the next frame.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
result = async_command()
|
|
48
|
+
|
|
49
|
+
sent = False
|
|
50
|
+
|
|
51
|
+
if not result.running and not result.done:
|
|
52
|
+
UICommand.send(result._key, target, command, args)
|
|
53
|
+
result.running = True
|
|
54
|
+
sent = True
|
|
55
|
+
|
|
56
|
+
return result, sent
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def ui_write(target, command, args):
|
|
60
|
+
"""Invoke a UI write command. Unlike a read, a write call will send
|
|
61
|
+
the command to the UI on every call. Intuitively, writes should
|
|
62
|
+
not be called on every frame, but rather only in response to
|
|
63
|
+
events like `clicked`.
|
|
64
|
+
|
|
65
|
+
Writes still return a `async_command` object that can be inspected to
|
|
66
|
+
determine the status of the write. However, note that if you
|
|
67
|
+
immediately invoke the same write again, before the previous has
|
|
68
|
+
finished, the `async_command` object will likely be updated by the 1st
|
|
69
|
+
(unfinished) call, and then again by the 2nd.
|
|
70
|
+
"""
|
|
71
|
+
result = async_command()
|
|
72
|
+
result.clear()
|
|
73
|
+
|
|
74
|
+
UICommand.send(result._key, target, command, args)
|
|
75
|
+
|
|
76
|
+
result.running = True
|
|
77
|
+
|
|
78
|
+
return result
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class UICommandCache:
|
|
82
|
+
"""
|
|
83
|
+
A generic cache that stores UI command objects in Hyperdiv
|
|
84
|
+
session storage.
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
def __init__(self, storage_key):
|
|
88
|
+
self.storage_key = storage_key
|
|
89
|
+
|
|
90
|
+
def cache_result(self, key, result):
|
|
91
|
+
storage = AppRunnerFrame.current().get_storage(self.storage_key)
|
|
92
|
+
|
|
93
|
+
storage.setdefault(key, [])
|
|
94
|
+
storage[key].append(result)
|
|
95
|
+
|
|
96
|
+
def clear_cache_at_key(self, key):
|
|
97
|
+
storage = AppRunnerFrame.current().get_storage(self.storage_key)
|
|
98
|
+
|
|
99
|
+
read_results = storage.get(key, [])
|
|
100
|
+
for read_result in read_results:
|
|
101
|
+
read_result.clear()
|
|
102
|
+
|
|
103
|
+
def clear_cache(self):
|
|
104
|
+
storage = AppRunnerFrame.current().get_storage(self.storage_key)
|
|
105
|
+
|
|
106
|
+
for read_results in storage.values():
|
|
107
|
+
for read_result in read_results:
|
|
108
|
+
read_result.clear()
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
from .component_base import Component
|
|
2
|
+
from .diff import Insert
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class UIPropState:
|
|
6
|
+
"""Holds the prop values that the browser holds at this moment. This is
|
|
7
|
+
used to determine if a prop changed and the new value should be
|
|
8
|
+
sent to the browser.
|
|
9
|
+
|
|
10
|
+
This data structure is updated
|
|
11
|
+
|
|
12
|
+
(a) When a new dom or dom diff is sent to the browser. The data
|
|
13
|
+
structure is updated to hold those new prop values before the
|
|
14
|
+
dom or diff are sent off.
|
|
15
|
+
|
|
16
|
+
(b) When a prop change is received from the browser. For example
|
|
17
|
+
when the user checks a checkbox and `checked` is updated to
|
|
18
|
+
`True`, this prop state is updated also.
|
|
19
|
+
|
|
20
|
+
Note that (b) implicitly prevents browser-modified values from
|
|
21
|
+
being echoed back to the browser.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
Unset = object()
|
|
25
|
+
|
|
26
|
+
def __init__(self, state):
|
|
27
|
+
# A reference to component global state
|
|
28
|
+
self.state = state
|
|
29
|
+
# The values of props held by the UI
|
|
30
|
+
self.props = dict()
|
|
31
|
+
|
|
32
|
+
def get_prop_value(self, key, prop_name):
|
|
33
|
+
if key not in self.props:
|
|
34
|
+
return UIPropState.Unset
|
|
35
|
+
if prop_name not in self.props[key]:
|
|
36
|
+
return UIPropState.Unset
|
|
37
|
+
return self.props[key][prop_name]
|
|
38
|
+
|
|
39
|
+
def set_prop_values(self, props):
|
|
40
|
+
for prop in props:
|
|
41
|
+
if prop.internal:
|
|
42
|
+
continue
|
|
43
|
+
if isinstance(prop.value, Component):
|
|
44
|
+
self.set_prop_values_from_component(prop.value)
|
|
45
|
+
else:
|
|
46
|
+
self.set_prop_value(prop)
|
|
47
|
+
|
|
48
|
+
def set_prop_value(self, prop):
|
|
49
|
+
if prop.internal:
|
|
50
|
+
return
|
|
51
|
+
if prop.key not in self.props:
|
|
52
|
+
self.props[prop.key] = dict()
|
|
53
|
+
self.props[prop.key][prop.name] = prop.value
|
|
54
|
+
|
|
55
|
+
def set_prop_values_from_component(self, component):
|
|
56
|
+
key = component._key
|
|
57
|
+
props = self.state.get_props(key).values()
|
|
58
|
+
self.set_prop_values(props)
|
|
59
|
+
if component._has_children:
|
|
60
|
+
for child in component._children:
|
|
61
|
+
self.set_prop_values_from_component(child)
|
|
62
|
+
|
|
63
|
+
def set_prop_values_from_diff(self, diff):
|
|
64
|
+
for component_diff in diff._diff:
|
|
65
|
+
self.set_prop_values(component_diff.props)
|
|
66
|
+
for command in component_diff.children:
|
|
67
|
+
if isinstance(command, Insert):
|
|
68
|
+
for component in command.components:
|
|
69
|
+
self.set_prop_values_from_component(component)
|
|
70
|
+
|
|
71
|
+
def prop_changed(self, prop):
|
|
72
|
+
if isinstance(prop.value, Component):
|
|
73
|
+
return self.component_changed(prop.value)
|
|
74
|
+
|
|
75
|
+
if prop.internal:
|
|
76
|
+
return False
|
|
77
|
+
|
|
78
|
+
ui_prop_value = self.get_prop_value(prop.key, prop.name)
|
|
79
|
+
|
|
80
|
+
if ui_prop_value == UIPropState.Unset:
|
|
81
|
+
return True
|
|
82
|
+
|
|
83
|
+
return ui_prop_value != prop.value
|
|
84
|
+
|
|
85
|
+
def component_changed(self, component):
|
|
86
|
+
props = self.state.get_props(component._key)
|
|
87
|
+
|
|
88
|
+
for prop in props.values():
|
|
89
|
+
if self.prop_changed(prop):
|
|
90
|
+
return True
|
|
91
|
+
|
|
92
|
+
return False
|
hyperdiv/ui_singleton.py
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from .component_base import BaseState
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class SingletonCollector(type):
|
|
5
|
+
"""
|
|
6
|
+
Collects Singleton and BrowserSingleton classes as they are defined. The
|
|
7
|
+
singleton classes have to be instantiated in bulk by `AppRunner`,
|
|
8
|
+
and this class provides the mechanism that collects all the
|
|
9
|
+
singletons in one place.
|
|
10
|
+
|
|
11
|
+
BrowserSingletons are singletons that are sent to the browser, like
|
|
12
|
+
`location` and `theme`. Singletons stay on the backend and don't
|
|
13
|
+
have a browser counterpart.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
ui_singleton_classes: set[type] = set()
|
|
17
|
+
singleton_classes: set[type] = set()
|
|
18
|
+
|
|
19
|
+
def __new__(cls, clsname, bases, attrs):
|
|
20
|
+
klass = super().__new__(cls, clsname, bases, attrs)
|
|
21
|
+
if clsname not in ("BrowserSingleton", "Singleton"):
|
|
22
|
+
if issubclass(klass, Singleton):
|
|
23
|
+
SingletonCollector.singleton_classes.add(klass)
|
|
24
|
+
elif issubclass(klass, BrowserSingleton):
|
|
25
|
+
SingletonCollector.ui_singleton_classes.add(klass)
|
|
26
|
+
return klass
|
|
27
|
+
|
|
28
|
+
@staticmethod
|
|
29
|
+
def create_ui_singletons():
|
|
30
|
+
return [
|
|
31
|
+
component_class()
|
|
32
|
+
for component_class in SingletonCollector.ui_singleton_classes
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
@staticmethod
|
|
36
|
+
def create_singletons():
|
|
37
|
+
return [
|
|
38
|
+
component_class()
|
|
39
|
+
for component_class in SingletonCollector.ui_singleton_classes.union(
|
|
40
|
+
SingletonCollector.singleton_classes
|
|
41
|
+
)
|
|
42
|
+
]
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class BrowserSingleton(BaseState, metaclass=SingletonCollector):
|
|
46
|
+
"""
|
|
47
|
+
A browser singleton is a non-UI component that communicates values
|
|
48
|
+
between Python <-> browser.
|
|
49
|
+
|
|
50
|
+
All instances of a BrowserSingleton class share the same underlying
|
|
51
|
+
state.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
def __init__(self):
|
|
55
|
+
"""BrowserSingleton should not be instantiated directly."""
|
|
56
|
+
super().__init__()
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class Singleton(BaseState, metaclass=SingletonCollector):
|
|
60
|
+
"""
|
|
61
|
+
A Singleton is a non-UI component that never gets sent to the
|
|
62
|
+
frontend. It is backend-only.
|
|
63
|
+
|
|
64
|
+
All instances of a Singleton class share the same underlying
|
|
65
|
+
state.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
def __init__(self):
|
|
69
|
+
"""Singleton should not be instantiated directly."""
|
|
70
|
+
super().__init__()
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hyperdivlite
|
|
3
|
+
Version: 0.1.9
|
|
4
|
+
Summary: A lightweight Hyperdiv fork with Granian as the default backend and optional Tornado
|
|
5
|
+
License: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
License-File: NOTICE
|
|
8
|
+
Keywords: hyperdiv,reactive,ui,web,framework,granian,asgi
|
|
9
|
+
Author: Marius Nita
|
|
10
|
+
Author-email: m@mariusnita.com
|
|
11
|
+
Requires-Python: >=3.10,<4.0
|
|
12
|
+
Classifier: Environment :: Web Environment
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
|
+
Classifier: Programming Language :: Python
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
23
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
24
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
25
|
+
Provides-Extra: tornado
|
|
26
|
+
Requires-Dist: Jinja2 (>=3.1.6,<4.0.0)
|
|
27
|
+
Requires-Dist: cachetools (>=5.3.0,<6.0.0)
|
|
28
|
+
Requires-Dist: click (>=8.1.3,<9.0.0)
|
|
29
|
+
Requires-Dist: email-validator (>=2.0.0,<3.0.0)
|
|
30
|
+
Requires-Dist: frozendict (>=2.3.10,<3.0.0)
|
|
31
|
+
Requires-Dist: granian (>=2.8,<3.0)
|
|
32
|
+
Requires-Dist: mistune (>=2.0.5,<3.0.0)
|
|
33
|
+
Requires-Dist: parse (>=1.20.0,<2.0.0)
|
|
34
|
+
Requires-Dist: pygments (>=2.17.2,<3.0.0)
|
|
35
|
+
Requires-Dist: starlette (>=0.46)
|
|
36
|
+
Requires-Dist: termcolor (>=2.3.0,<3.0.0)
|
|
37
|
+
Requires-Dist: tornado (>=6.5,<7.0) ; extra == "tornado"
|
|
38
|
+
Requires-Dist: xxhash (>=3.0.0,<4.0.0)
|
|
39
|
+
Description-Content-Type: text/markdown
|
|
40
|
+
|
|
41
|
+
# HyperdivLite
|
|
42
|
+
|
|
43
|
+
**HyperdivLite** 是 [Hyperdiv](https://hyperdiv.io) 的轻量分支(fork),保留了原来的
|
|
44
|
+
即时模式响应式 UI 编程模型,同时把服务器传输层换成 **Granian + Starlette**。
|
|
45
|
+
|
|
46
|
+
核心变化只有一处:**默认后端改为 Granian,Tornado 变为可选依赖**。
|
|
47
|
+
组件系统、渲染管线、状态管理、任务运行时与上游保持一致。
|
|
48
|
+
|
|
49
|
+
## 与上游的差异
|
|
50
|
+
|
|
51
|
+
| 项目 | Hyperdiv 0.1.9 | HyperdivLite |
|
|
52
|
+
|------|----------------|--------------|
|
|
53
|
+
| 默认服务器 | Tornado | Granian(内嵌模式) |
|
|
54
|
+
| Tornado 依赖 | 核心依赖,必装 | 可选 extra,默认不装 |
|
|
55
|
+
| ASGI 层 | Tornado WebSocket | Starlette ASGI |
|
|
56
|
+
| 启动参数 | 无 | 无,`hd.run()` 直接可用 |
|
|
57
|
+
| Windows 支持 | 可用 | 可用,无 spawn 序列化问题 |
|
|
58
|
+
| 后端切换 | 不可切换 | `HD_SERVER=granian` / `HD_SERVER=tornado` |
|
|
59
|
+
|
|
60
|
+
## 安装
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# 默认安装:Granian + Starlette,不含 Tornado
|
|
64
|
+
pip install hyperdivlite
|
|
65
|
+
|
|
66
|
+
# 需要兼容旧的 Tornado 后端时
|
|
67
|
+
pip install "hyperdivlite[tornado]"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Python 版本要求:3.10 及以上。
|
|
71
|
+
|
|
72
|
+
> 注意:安装后的 **导入名仍然是 `hyperdiv`**,因此代码里写 `import hyperdiv as hd`
|
|
73
|
+
> 无需改动,与上游保持兼容。
|
|
74
|
+
|
|
75
|
+
## 快速开始
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
import hyperdiv as hd
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def main():
|
|
82
|
+
state = hd.state(count=0)
|
|
83
|
+
|
|
84
|
+
with hd.box(padding=2, gap=1):
|
|
85
|
+
hd.text(f"当前计数:{state.count}")
|
|
86
|
+
if hd.button("加一").clicked:
|
|
87
|
+
state.count += 1
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
if __name__ == "__main__":
|
|
91
|
+
hd.run(main)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
python app.py
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
默认监听 `http://localhost:8988`,可用 `HD_PORT` 指定端口、`HD_HOST` 指定地址。
|
|
99
|
+
|
|
100
|
+
## 后端选择
|
|
101
|
+
|
|
102
|
+
不设置任何环境变量时使用 Granian。需要旧后端时显式切换:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# 默认:Granian
|
|
106
|
+
python app.py
|
|
107
|
+
|
|
108
|
+
# 使用 Tornado(需先安装 hyperdivlite[tornado])
|
|
109
|
+
HD_SERVER=tornado python app.py
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
选择顺序:
|
|
113
|
+
|
|
114
|
+
1. `HD_SERVER=tornado` → Tornado
|
|
115
|
+
2. `HD_SERVER=granian` → Granian
|
|
116
|
+
3. 未设置 → Granian
|
|
117
|
+
4. Granian 不可用但 Tornado 已装 → 自动回退 Tornado
|
|
118
|
+
5. 都不可用 → 明确报错
|
|
119
|
+
|
|
120
|
+
## 功能特性
|
|
121
|
+
|
|
122
|
+
- 即时模式 UI:组件调用即渲染,无需手写模板
|
|
123
|
+
- 隐式响应式状态:状态变更自动触发重渲染
|
|
124
|
+
- 内置 Shoelace 组件库,支持亮色/暗色主题
|
|
125
|
+
- Chart.js 图表、Markdown 渲染、表单校验
|
|
126
|
+
- WebSocket 虚拟 DOM 增量补丁
|
|
127
|
+
- 插件系统与自定义组件
|
|
128
|
+
- 静态资源兜底:任意有效路径回落 `index`,支持前端路由
|
|
129
|
+
|
|
130
|
+
## 文档应用
|
|
131
|
+
|
|
132
|
+
安装后可本地打开上游文档:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
hyperdiv docs
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## 架构说明
|
|
139
|
+
|
|
140
|
+
后端适配层位于 `hyperdiv/backends/`,只实现两个契约:
|
|
141
|
+
|
|
142
|
+
1. `Server(port, app_function, task_runtime, index_page)`
|
|
143
|
+
2. 连接对象提供 `send(message: dict)`
|
|
144
|
+
|
|
145
|
+
因此 `app_runner.py`、组件系统、渲染与差异计算完全不需要改动。
|
|
146
|
+
详细设计见 [BACKENDS.md](BACKENDS.md)。
|
|
147
|
+
|
|
148
|
+
## 验证
|
|
149
|
+
|
|
150
|
+
`examples/` 下提供两个验证脚本:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
python examples/check_ws.py <port> # WebSocket 首帧 DOM
|
|
154
|
+
python examples/check_click.py <port> # 端到端点击交互
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
已实测:默认 Granian 与可选 Tornado 两种后端下,首页、静态资源、路径回退、
|
|
158
|
+
WebSocket 首帧、点击交互、进程退出均正常。
|
|
159
|
+
|
|
160
|
+
## 许可
|
|
161
|
+
|
|
162
|
+
沿袭上游 Apache-2.0 许可证,原始版权归 Marius Nita 及 Hyperdiv 贡献者所有。
|
|
163
|
+
|