From 317c3ee7e9d3b8e0d849f2fe48803a343ecced3e Mon Sep 17 00:00:00 2001 From: Jeff Clement Date: Sun, 18 Feb 2024 09:05:49 -0700 Subject: [PATCH] Initial App --- .devcontainer/Dockerfile | 47 ++ .devcontainer/devcontainer.json | 22 + .devcontainer/init.sh | 3 + .formatter.exs | 6 + .github/workflows/fly.yml | 37 + .gitignore | 37 + .vscode/launch.json | 31 + .vscode/settings.json | 52 ++ README.md | 18 + assets/css/app.css | 5 + assets/js/app.js | 41 ++ assets/tailwind.config.js | 68 ++ assets/vendor/heroicons/LICENSE.md | 21 + assets/vendor/heroicons/UPGRADE.md | 6 + .../optimized/20/solid/academic-cap.svg | 3 + .../20/solid/adjustments-horizontal.svg | 3 + .../20/solid/adjustments-vertical.svg | 3 + .../20/solid/archive-box-arrow-down.svg | 3 + .../optimized/20/solid/archive-box-x-mark.svg | 4 + .../optimized/20/solid/archive-box.svg | 4 + .../optimized/20/solid/arrow-down-circle.svg | 3 + .../optimized/20/solid/arrow-down-left.svg | 3 + .../20/solid/arrow-down-on-square-stack.svg | 3 + .../20/solid/arrow-down-on-square.svg | 3 + .../optimized/20/solid/arrow-down-right.svg | 3 + .../optimized/20/solid/arrow-down-tray.svg | 4 + .../optimized/20/solid/arrow-down.svg | 3 + .../optimized/20/solid/arrow-left-circle.svg | 10 + .../20/solid/arrow-left-on-rectangle.svg | 4 + .../optimized/20/solid/arrow-left.svg | 3 + .../optimized/20/solid/arrow-long-down.svg | 3 + .../optimized/20/solid/arrow-long-left.svg | 3 + .../optimized/20/solid/arrow-long-right.svg | 3 + .../optimized/20/solid/arrow-long-up.svg | 3 + .../20/solid/arrow-path-rounded-square.svg | 3 + .../optimized/20/solid/arrow-path.svg | 3 + .../optimized/20/solid/arrow-right-circle.svg | 3 + .../20/solid/arrow-right-on-rectangle.svg | 4 + .../optimized/20/solid/arrow-right.svg | 3 + .../optimized/20/solid/arrow-small-down.svg | 3 + .../optimized/20/solid/arrow-small-left.svg | 3 + .../optimized/20/solid/arrow-small-right.svg | 3 + .../optimized/20/solid/arrow-small-up.svg | 3 + .../20/solid/arrow-top-right-on-square.svg | 4 + .../20/solid/arrow-trending-down.svg | 3 + .../optimized/20/solid/arrow-trending-up.svg | 3 + .../optimized/20/solid/arrow-up-circle.svg | 3 + .../optimized/20/solid/arrow-up-left.svg | 3 + .../20/solid/arrow-up-on-square-stack.svg | 3 + .../optimized/20/solid/arrow-up-on-square.svg | 3 + .../optimized/20/solid/arrow-up-right.svg | 3 + .../optimized/20/solid/arrow-up-tray.svg | 4 + .../heroicons/optimized/20/solid/arrow-up.svg | 3 + .../optimized/20/solid/arrow-uturn-down.svg | 3 + .../optimized/20/solid/arrow-uturn-left.svg | 3 + .../optimized/20/solid/arrow-uturn-right.svg | 3 + .../optimized/20/solid/arrow-uturn-up.svg | 3 + .../optimized/20/solid/arrows-pointing-in.svg | 3 + .../20/solid/arrows-pointing-out.svg | 3 + .../optimized/20/solid/arrows-right-left.svg | 3 + .../optimized/20/solid/arrows-up-down.svg | 3 + .../optimized/20/solid/at-symbol.svg | 3 + .../optimized/20/solid/backspace.svg | 3 + .../heroicons/optimized/20/solid/backward.svg | 3 + .../optimized/20/solid/banknotes.svg | 3 + .../heroicons/optimized/20/solid/bars-2.svg | 3 + .../optimized/20/solid/bars-3-bottom-left.svg | 3 + .../20/solid/bars-3-bottom-right.svg | 3 + .../optimized/20/solid/bars-3-center-left.svg | 3 + .../heroicons/optimized/20/solid/bars-3.svg | 3 + .../heroicons/optimized/20/solid/bars-4.svg | 3 + .../optimized/20/solid/bars-arrow-down.svg | 3 + .../optimized/20/solid/bars-arrow-up.svg | 3 + .../optimized/20/solid/battery-0.svg | 3 + .../optimized/20/solid/battery-100.svg | 4 + .../optimized/20/solid/battery-50.svg | 4 + .../heroicons/optimized/20/solid/beaker.svg | 3 + .../optimized/20/solid/bell-alert.svg | 4 + .../optimized/20/solid/bell-slash.svg | 3 + .../optimized/20/solid/bell-snooze.svg | 3 + .../heroicons/optimized/20/solid/bell.svg | 3 + .../optimized/20/solid/bolt-slash.svg | 4 + .../heroicons/optimized/20/solid/bolt.svg | 3 + .../optimized/20/solid/book-open.svg | 3 + .../optimized/20/solid/bookmark-slash.svg | 3 + .../optimized/20/solid/bookmark-square.svg | 3 + .../heroicons/optimized/20/solid/bookmark.svg | 3 + .../optimized/20/solid/briefcase.svg | 4 + .../heroicons/optimized/20/solid/bug-ant.svg | 3 + .../optimized/20/solid/building-library.svg | 3 + .../optimized/20/solid/building-office-2.svg | 3 + .../optimized/20/solid/building-office.svg | 3 + .../20/solid/building-storefront.svg | 3 + .../heroicons/optimized/20/solid/cake.svg | 3 + .../optimized/20/solid/calculator.svg | 3 + .../optimized/20/solid/calendar-days.svg | 4 + .../heroicons/optimized/20/solid/calendar.svg | 3 + .../heroicons/optimized/20/solid/camera.svg | 3 + .../optimized/20/solid/chart-bar-square.svg | 3 + .../optimized/20/solid/chart-bar.svg | 3 + .../optimized/20/solid/chart-pie.svg | 4 + .../solid/chat-bubble-bottom-center-text.svg | 3 + .../20/solid/chat-bubble-bottom-center.svg | 3 + .../20/solid/chat-bubble-left-ellipsis.svg | 3 + .../20/solid/chat-bubble-left-right.svg | 4 + .../optimized/20/solid/chat-bubble-left.svg | 3 + .../solid/chat-bubble-oval-left-ellipsis.svg | 3 + .../20/solid/chat-bubble-oval-left.svg | 3 + .../optimized/20/solid/check-badge.svg | 3 + .../optimized/20/solid/check-circle.svg | 3 + .../heroicons/optimized/20/solid/check.svg | 3 + .../20/solid/chevron-double-down.svg | 3 + .../20/solid/chevron-double-left.svg | 3 + .../20/solid/chevron-double-right.svg | 4 + .../optimized/20/solid/chevron-double-up.svg | 3 + .../optimized/20/solid/chevron-down.svg | 3 + .../optimized/20/solid/chevron-left.svg | 3 + .../optimized/20/solid/chevron-right.svg | 3 + .../optimized/20/solid/chevron-up-down.svg | 3 + .../optimized/20/solid/chevron-up.svg | 3 + .../optimized/20/solid/circle-stack.svg | 3 + .../20/solid/clipboard-document-check.svg | 4 + .../20/solid/clipboard-document-list.svg | 4 + .../optimized/20/solid/clipboard-document.svg | 4 + .../optimized/20/solid/clipboard.svg | 3 + .../heroicons/optimized/20/solid/clock.svg | 3 + .../optimized/20/solid/cloud-arrow-down.svg | 3 + .../optimized/20/solid/cloud-arrow-up.svg | 3 + .../heroicons/optimized/20/solid/cloud.svg | 3 + .../20/solid/code-bracket-square.svg | 3 + .../optimized/20/solid/code-bracket.svg | 3 + .../optimized/20/solid/cog-6-tooth.svg | 3 + .../optimized/20/solid/cog-8-tooth.svg | 3 + .../heroicons/optimized/20/solid/cog.svg | 4 + .../optimized/20/solid/command-line.svg | 3 + .../optimized/20/solid/computer-desktop.svg | 3 + .../heroicons/optimized/20/solid/cpu-chip.svg | 4 + .../optimized/20/solid/credit-card.svg | 3 + .../optimized/20/solid/cube-transparent.svg | 3 + .../heroicons/optimized/20/solid/cube.svg | 3 + .../20/solid/currency-bangladeshi.svg | 3 + .../optimized/20/solid/currency-dollar.svg | 4 + .../optimized/20/solid/currency-euro.svg | 3 + .../optimized/20/solid/currency-pound.svg | 3 + .../optimized/20/solid/currency-rupee.svg | 3 + .../optimized/20/solid/currency-yen.svg | 3 + .../optimized/20/solid/cursor-arrow-rays.svg | 3 + .../20/solid/cursor-arrow-ripple.svg | 3 + .../20/solid/device-phone-mobile.svg | 4 + .../optimized/20/solid/device-tablet.svg | 3 + .../20/solid/document-arrow-down.svg | 3 + .../optimized/20/solid/document-arrow-up.svg | 3 + .../optimized/20/solid/document-chart-bar.svg | 3 + .../optimized/20/solid/document-check.svg | 3 + .../optimized/20/solid/document-duplicate.svg | 4 + .../20/solid/document-magnifying-glass.svg | 4 + .../optimized/20/solid/document-minus.svg | 3 + .../optimized/20/solid/document-plus.svg | 3 + .../optimized/20/solid/document-text.svg | 3 + .../heroicons/optimized/20/solid/document.svg | 3 + .../20/solid/ellipsis-horizontal-circle.svg | 3 + .../20/solid/ellipsis-horizontal.svg | 3 + .../optimized/20/solid/ellipsis-vertical.svg | 3 + .../optimized/20/solid/envelope-open.svg | 3 + .../heroicons/optimized/20/solid/envelope.svg | 4 + .../optimized/20/solid/exclamation-circle.svg | 3 + .../20/solid/exclamation-triangle.svg | 3 + .../optimized/20/solid/eye-dropper.svg | 3 + .../optimized/20/solid/eye-slash.svg | 4 + .../heroicons/optimized/20/solid/eye.svg | 4 + .../optimized/20/solid/face-frown.svg | 3 + .../optimized/20/solid/face-smile.svg | 3 + .../heroicons/optimized/20/solid/film.svg | 3 + .../optimized/20/solid/finger-print.svg | 3 + .../heroicons/optimized/20/solid/fire.svg | 3 + .../heroicons/optimized/20/solid/flag.svg | 3 + .../optimized/20/solid/folder-arrow-down.svg | 3 + .../optimized/20/solid/folder-minus.svg | 3 + .../optimized/20/solid/folder-open.svg | 3 + .../optimized/20/solid/folder-plus.svg | 3 + .../heroicons/optimized/20/solid/folder.svg | 3 + .../heroicons/optimized/20/solid/forward.svg | 3 + .../heroicons/optimized/20/solid/funnel.svg | 3 + .../heroicons/optimized/20/solid/gif.svg | 3 + .../heroicons/optimized/20/solid/gift-top.svg | 3 + .../heroicons/optimized/20/solid/gift.svg | 4 + .../optimized/20/solid/globe-alt.svg | 3 + .../optimized/20/solid/globe-americas.svg | 3 + .../20/solid/globe-asia-australia.svg | 3 + .../20/solid/globe-europe-africa.svg | 3 + .../optimized/20/solid/hand-raised.svg | 3 + .../optimized/20/solid/hand-thumb-down.svg | 3 + .../optimized/20/solid/hand-thumb-up.svg | 3 + .../heroicons/optimized/20/solid/hashtag.svg | 3 + .../heroicons/optimized/20/solid/heart.svg | 3 + .../optimized/20/solid/home-modern.svg | 3 + .../heroicons/optimized/20/solid/home.svg | 3 + .../optimized/20/solid/identification.svg | 3 + .../optimized/20/solid/inbox-arrow-down.svg | 4 + .../optimized/20/solid/inbox-stack.svg | 4 + .../heroicons/optimized/20/solid/inbox.svg | 3 + .../optimized/20/solid/information-circle.svg | 3 + .../heroicons/optimized/20/solid/key.svg | 3 + .../heroicons/optimized/20/solid/language.svg | 4 + .../heroicons/optimized/20/solid/lifebuoy.svg | 3 + .../optimized/20/solid/light-bulb.svg | 3 + .../heroicons/optimized/20/solid/link.svg | 4 + .../optimized/20/solid/list-bullet.svg | 3 + .../optimized/20/solid/lock-closed.svg | 3 + .../optimized/20/solid/lock-open.svg | 3 + .../20/solid/magnifying-glass-circle.svg | 4 + .../20/solid/magnifying-glass-minus.svg | 4 + .../20/solid/magnifying-glass-plus.svg | 4 + .../optimized/20/solid/magnifying-glass.svg | 3 + .../heroicons/optimized/20/solid/map-pin.svg | 3 + .../heroicons/optimized/20/solid/map.svg | 3 + .../optimized/20/solid/megaphone.svg | 3 + .../optimized/20/solid/microphone.svg | 4 + .../optimized/20/solid/minus-circle.svg | 3 + .../optimized/20/solid/minus-small.svg | 3 + .../heroicons/optimized/20/solid/minus.svg | 3 + .../heroicons/optimized/20/solid/moon.svg | 3 + .../optimized/20/solid/musical-note.svg | 3 + .../optimized/20/solid/newspaper.svg | 4 + .../optimized/20/solid/no-symbol.svg | 3 + .../optimized/20/solid/paint-brush.svg | 3 + .../optimized/20/solid/paper-airplane.svg | 3 + .../optimized/20/solid/paper-clip.svg | 3 + .../optimized/20/solid/pause-circle.svg | 3 + .../heroicons/optimized/20/solid/pause.svg | 3 + .../optimized/20/solid/pencil-square.svg | 4 + .../heroicons/optimized/20/solid/pencil.svg | 3 + .../20/solid/phone-arrow-down-left.svg | 3 + .../20/solid/phone-arrow-up-right.svg | 3 + .../optimized/20/solid/phone-x-mark.svg | 3 + .../heroicons/optimized/20/solid/phone.svg | 3 + .../heroicons/optimized/20/solid/photo.svg | 3 + .../optimized/20/solid/play-circle.svg | 3 + .../optimized/20/solid/play-pause.svg | 3 + .../heroicons/optimized/20/solid/play.svg | 3 + .../optimized/20/solid/plus-circle.svg | 3 + .../optimized/20/solid/plus-small.svg | 3 + .../heroicons/optimized/20/solid/plus.svg | 3 + .../heroicons/optimized/20/solid/power.svg | 3 + .../20/solid/presentation-chart-bar.svg | 3 + .../20/solid/presentation-chart-line.svg | 3 + .../heroicons/optimized/20/solid/printer.svg | 3 + .../optimized/20/solid/puzzle-piece.svg | 3 + .../heroicons/optimized/20/solid/qr-code.svg | 3 + .../20/solid/question-mark-circle.svg | 3 + .../optimized/20/solid/queue-list.svg | 3 + .../heroicons/optimized/20/solid/radio.svg | 3 + .../optimized/20/solid/receipt-percent.svg | 3 + .../optimized/20/solid/receipt-refund.svg | 3 + .../optimized/20/solid/rectangle-group.svg | 3 + .../optimized/20/solid/rectangle-stack.svg | 3 + .../optimized/20/solid/rocket-launch.svg | 4 + .../heroicons/optimized/20/solid/rss.svg | 4 + .../heroicons/optimized/20/solid/scale.svg | 3 + .../heroicons/optimized/20/solid/scissors.svg | 4 + .../optimized/20/solid/server-stack.svg | 4 + .../heroicons/optimized/20/solid/server.svg | 4 + .../heroicons/optimized/20/solid/share.svg | 3 + .../optimized/20/solid/shield-check.svg | 3 + .../optimized/20/solid/shield-exclamation.svg | 3 + .../optimized/20/solid/shopping-bag.svg | 3 + .../optimized/20/solid/shopping-cart.svg | 3 + .../optimized/20/solid/signal-slash.svg | 3 + .../heroicons/optimized/20/solid/signal.svg | 4 + .../heroicons/optimized/20/solid/sparkles.svg | 3 + .../optimized/20/solid/speaker-wave.svg | 4 + .../optimized/20/solid/speaker-x-mark.svg | 3 + .../optimized/20/solid/square-2-stack.svg | 4 + .../optimized/20/solid/square-3-stack-3d.svg | 5 + .../optimized/20/solid/squares-2x2.svg | 3 + .../optimized/20/solid/squares-plus.svg | 3 + .../heroicons/optimized/20/solid/star.svg | 3 + .../optimized/20/solid/stop-circle.svg | 3 + .../heroicons/optimized/20/solid/stop.svg | 3 + .../heroicons/optimized/20/solid/sun.svg | 3 + .../heroicons/optimized/20/solid/swatch.svg | 3 + .../optimized/20/solid/table-cells.svg | 3 + .../heroicons/optimized/20/solid/tag.svg | 3 + .../heroicons/optimized/20/solid/ticket.svg | 3 + .../heroicons/optimized/20/solid/trash.svg | 3 + .../heroicons/optimized/20/solid/trophy.svg | 3 + .../heroicons/optimized/20/solid/truck.svg | 4 + .../heroicons/optimized/20/solid/tv.svg | 4 + .../optimized/20/solid/user-circle.svg | 3 + .../optimized/20/solid/user-group.svg | 3 + .../optimized/20/solid/user-minus.svg | 3 + .../optimized/20/solid/user-plus.svg | 3 + .../heroicons/optimized/20/solid/user.svg | 3 + .../heroicons/optimized/20/solid/users.svg | 3 + .../heroicons/optimized/20/solid/variable.svg | 3 + .../optimized/20/solid/video-camera-slash.svg | 3 + .../optimized/20/solid/video-camera.svg | 3 + .../optimized/20/solid/view-columns.svg | 3 + .../optimized/20/solid/viewfinder-circle.svg | 3 + .../heroicons/optimized/20/solid/wallet.svg | 3 + .../heroicons/optimized/20/solid/wifi.svg | 3 + .../heroicons/optimized/20/solid/window.svg | 3 + .../optimized/20/solid/wrench-screwdriver.svg | 4 + .../heroicons/optimized/20/solid/wrench.svg | 3 + .../heroicons/optimized/20/solid/x-circle.svg | 3 + .../heroicons/optimized/20/solid/x-mark.svg | 3 + .../optimized/24/outline/academic-cap.svg | 3 + .../24/outline/adjustments-horizontal.svg | 3 + .../24/outline/adjustments-vertical.svg | 3 + .../24/outline/archive-box-arrow-down.svg | 3 + .../24/outline/archive-box-x-mark.svg | 3 + .../optimized/24/outline/archive-box.svg | 3 + .../24/outline/arrow-down-circle.svg | 3 + .../optimized/24/outline/arrow-down-left.svg | 3 + .../24/outline/arrow-down-on-square-stack.svg | 3 + .../24/outline/arrow-down-on-square.svg | 3 + .../optimized/24/outline/arrow-down-right.svg | 3 + .../optimized/24/outline/arrow-down-tray.svg | 3 + .../optimized/24/outline/arrow-down.svg | 3 + .../24/outline/arrow-left-circle.svg | 3 + .../24/outline/arrow-left-on-rectangle.svg | 3 + .../optimized/24/outline/arrow-left.svg | 3 + .../optimized/24/outline/arrow-long-down.svg | 3 + .../optimized/24/outline/arrow-long-left.svg | 3 + .../optimized/24/outline/arrow-long-right.svg | 3 + .../optimized/24/outline/arrow-long-up.svg | 3 + .../24/outline/arrow-path-rounded-square.svg | 3 + .../optimized/24/outline/arrow-path.svg | 3 + .../24/outline/arrow-right-circle.svg | 3 + .../24/outline/arrow-right-on-rectangle.svg | 3 + .../optimized/24/outline/arrow-right.svg | 3 + .../optimized/24/outline/arrow-small-down.svg | 3 + .../optimized/24/outline/arrow-small-left.svg | 3 + .../24/outline/arrow-small-right.svg | 3 + .../optimized/24/outline/arrow-small-up.svg | 3 + .../24/outline/arrow-top-right-on-square.svg | 3 + .../24/outline/arrow-trending-down.svg | 3 + .../24/outline/arrow-trending-up.svg | 3 + .../optimized/24/outline/arrow-up-circle.svg | 3 + .../optimized/24/outline/arrow-up-left.svg | 3 + .../24/outline/arrow-up-on-square-stack.svg | 3 + .../24/outline/arrow-up-on-square.svg | 3 + .../optimized/24/outline/arrow-up-right.svg | 3 + .../optimized/24/outline/arrow-up-tray.svg | 3 + .../optimized/24/outline/arrow-up.svg | 3 + .../optimized/24/outline/arrow-uturn-down.svg | 3 + .../optimized/24/outline/arrow-uturn-left.svg | 3 + .../24/outline/arrow-uturn-right.svg | 3 + .../optimized/24/outline/arrow-uturn-up.svg | 3 + .../24/outline/arrows-pointing-in.svg | 3 + .../24/outline/arrows-pointing-out.svg | 3 + .../24/outline/arrows-right-left.svg | 3 + .../optimized/24/outline/arrows-up-down.svg | 3 + .../optimized/24/outline/at-symbol.svg | 3 + .../optimized/24/outline/backspace.svg | 3 + .../optimized/24/outline/backward.svg | 3 + .../optimized/24/outline/banknotes.svg | 3 + .../heroicons/optimized/24/outline/bars-2.svg | 3 + .../24/outline/bars-3-bottom-left.svg | 3 + .../24/outline/bars-3-bottom-right.svg | 3 + .../24/outline/bars-3-center-left.svg | 3 + .../heroicons/optimized/24/outline/bars-3.svg | 3 + .../heroicons/optimized/24/outline/bars-4.svg | 3 + .../optimized/24/outline/bars-arrow-down.svg | 3 + .../optimized/24/outline/bars-arrow-up.svg | 3 + .../optimized/24/outline/battery-0.svg | 3 + .../optimized/24/outline/battery-100.svg | 3 + .../optimized/24/outline/battery-50.svg | 3 + .../heroicons/optimized/24/outline/beaker.svg | 3 + .../optimized/24/outline/bell-alert.svg | 3 + .../optimized/24/outline/bell-slash.svg | 3 + .../optimized/24/outline/bell-snooze.svg | 3 + .../heroicons/optimized/24/outline/bell.svg | 3 + .../optimized/24/outline/bolt-slash.svg | 3 + .../heroicons/optimized/24/outline/bolt.svg | 3 + .../optimized/24/outline/book-open.svg | 3 + .../optimized/24/outline/bookmark-slash.svg | 3 + .../optimized/24/outline/bookmark-square.svg | 3 + .../optimized/24/outline/bookmark.svg | 3 + .../optimized/24/outline/briefcase.svg | 3 + .../optimized/24/outline/bug-ant.svg | 3 + .../optimized/24/outline/building-library.svg | 3 + .../24/outline/building-office-2.svg | 3 + .../optimized/24/outline/building-office.svg | 3 + .../24/outline/building-storefront.svg | 3 + .../heroicons/optimized/24/outline/cake.svg | 3 + .../optimized/24/outline/calculator.svg | 3 + .../optimized/24/outline/calendar-days.svg | 3 + .../optimized/24/outline/calendar.svg | 3 + .../heroicons/optimized/24/outline/camera.svg | 4 + .../optimized/24/outline/chart-bar-square.svg | 3 + .../optimized/24/outline/chart-bar.svg | 3 + .../optimized/24/outline/chart-pie.svg | 4 + .../chat-bubble-bottom-center-text.svg | 3 + .../24/outline/chat-bubble-bottom-center.svg | 3 + .../24/outline/chat-bubble-left-ellipsis.svg | 3 + .../24/outline/chat-bubble-left-right.svg | 3 + .../optimized/24/outline/chat-bubble-left.svg | 3 + .../chat-bubble-oval-left-ellipsis.svg | 3 + .../24/outline/chat-bubble-oval-left.svg | 3 + .../optimized/24/outline/check-badge.svg | 3 + .../optimized/24/outline/check-circle.svg | 3 + .../heroicons/optimized/24/outline/check.svg | 3 + .../24/outline/chevron-double-down.svg | 3 + .../24/outline/chevron-double-left.svg | 3 + .../24/outline/chevron-double-right.svg | 3 + .../24/outline/chevron-double-up.svg | 3 + .../optimized/24/outline/chevron-down.svg | 3 + .../optimized/24/outline/chevron-left.svg | 3 + .../optimized/24/outline/chevron-right.svg | 3 + .../optimized/24/outline/chevron-up-down.svg | 3 + .../optimized/24/outline/chevron-up.svg | 3 + .../optimized/24/outline/circle-stack.svg | 3 + .../24/outline/clipboard-document-check.svg | 3 + .../24/outline/clipboard-document-list.svg | 3 + .../24/outline/clipboard-document.svg | 3 + .../optimized/24/outline/clipboard.svg | 3 + .../heroicons/optimized/24/outline/clock.svg | 3 + .../optimized/24/outline/cloud-arrow-down.svg | 3 + .../optimized/24/outline/cloud-arrow-up.svg | 3 + .../heroicons/optimized/24/outline/cloud.svg | 3 + .../24/outline/code-bracket-square.svg | 3 + .../optimized/24/outline/code-bracket.svg | 3 + .../optimized/24/outline/cog-6-tooth.svg | 4 + .../optimized/24/outline/cog-8-tooth.svg | 4 + .../heroicons/optimized/24/outline/cog.svg | 3 + .../optimized/24/outline/command-line.svg | 3 + .../optimized/24/outline/computer-desktop.svg | 3 + .../optimized/24/outline/cpu-chip.svg | 3 + .../optimized/24/outline/credit-card.svg | 3 + .../optimized/24/outline/cube-transparent.svg | 3 + .../heroicons/optimized/24/outline/cube.svg | 3 + .../24/outline/currency-bangladeshi.svg | 3 + .../optimized/24/outline/currency-dollar.svg | 3 + .../optimized/24/outline/currency-euro.svg | 3 + .../optimized/24/outline/currency-pound.svg | 3 + .../optimized/24/outline/currency-rupee.svg | 3 + .../optimized/24/outline/currency-yen.svg | 3 + .../24/outline/cursor-arrow-rays.svg | 3 + .../24/outline/cursor-arrow-ripple.svg | 3 + .../24/outline/device-phone-mobile.svg | 3 + .../optimized/24/outline/device-tablet.svg | 3 + .../24/outline/document-arrow-down.svg | 3 + .../24/outline/document-arrow-up.svg | 3 + .../24/outline/document-chart-bar.svg | 3 + .../optimized/24/outline/document-check.svg | 3 + .../24/outline/document-duplicate.svg | 3 + .../24/outline/document-magnifying-glass.svg | 3 + .../optimized/24/outline/document-minus.svg | 3 + .../optimized/24/outline/document-plus.svg | 3 + .../optimized/24/outline/document-text.svg | 3 + .../optimized/24/outline/document.svg | 3 + .../24/outline/ellipsis-horizontal-circle.svg | 3 + .../24/outline/ellipsis-horizontal.svg | 3 + .../24/outline/ellipsis-vertical.svg | 3 + .../optimized/24/outline/envelope-open.svg | 3 + .../optimized/24/outline/envelope.svg | 3 + .../24/outline/exclamation-circle.svg | 3 + .../24/outline/exclamation-triangle.svg | 3 + .../optimized/24/outline/eye-dropper.svg | 3 + .../optimized/24/outline/eye-slash.svg | 3 + .../heroicons/optimized/24/outline/eye.svg | 4 + .../optimized/24/outline/face-frown.svg | 3 + .../optimized/24/outline/face-smile.svg | 3 + .../heroicons/optimized/24/outline/film.svg | 3 + .../optimized/24/outline/finger-print.svg | 3 + .../heroicons/optimized/24/outline/fire.svg | 4 + .../heroicons/optimized/24/outline/flag.svg | 3 + .../24/outline/folder-arrow-down.svg | 3 + .../optimized/24/outline/folder-minus.svg | 3 + .../optimized/24/outline/folder-open.svg | 3 + .../optimized/24/outline/folder-plus.svg | 3 + .../heroicons/optimized/24/outline/folder.svg | 3 + .../optimized/24/outline/forward.svg | 3 + .../heroicons/optimized/24/outline/funnel.svg | 3 + .../heroicons/optimized/24/outline/gif.svg | 3 + .../optimized/24/outline/gift-top.svg | 3 + .../heroicons/optimized/24/outline/gift.svg | 3 + .../optimized/24/outline/globe-alt.svg | 3 + .../optimized/24/outline/globe-americas.svg | 3 + .../24/outline/globe-asia-australia.svg | 3 + .../24/outline/globe-europe-africa.svg | 3 + .../optimized/24/outline/hand-raised.svg | 3 + .../optimized/24/outline/hand-thumb-down.svg | 3 + .../optimized/24/outline/hand-thumb-up.svg | 3 + .../optimized/24/outline/hashtag.svg | 3 + .../heroicons/optimized/24/outline/heart.svg | 3 + .../optimized/24/outline/home-modern.svg | 3 + .../heroicons/optimized/24/outline/home.svg | 3 + .../optimized/24/outline/identification.svg | 3 + .../optimized/24/outline/inbox-arrow-down.svg | 3 + .../optimized/24/outline/inbox-stack.svg | 3 + .../heroicons/optimized/24/outline/inbox.svg | 3 + .../24/outline/information-circle.svg | 3 + .../heroicons/optimized/24/outline/key.svg | 3 + .../optimized/24/outline/language.svg | 3 + .../optimized/24/outline/lifebuoy.svg | 3 + .../optimized/24/outline/light-bulb.svg | 3 + .../heroicons/optimized/24/outline/link.svg | 3 + .../optimized/24/outline/list-bullet.svg | 3 + .../optimized/24/outline/lock-closed.svg | 3 + .../optimized/24/outline/lock-open.svg | 3 + .../24/outline/magnifying-glass-circle.svg | 3 + .../24/outline/magnifying-glass-minus.svg | 3 + .../24/outline/magnifying-glass-plus.svg | 3 + .../optimized/24/outline/magnifying-glass.svg | 3 + .../optimized/24/outline/map-pin.svg | 4 + .../heroicons/optimized/24/outline/map.svg | 3 + .../optimized/24/outline/megaphone.svg | 3 + .../optimized/24/outline/microphone.svg | 3 + .../optimized/24/outline/minus-circle.svg | 3 + .../optimized/24/outline/minus-small.svg | 3 + .../heroicons/optimized/24/outline/minus.svg | 3 + .../heroicons/optimized/24/outline/moon.svg | 3 + .../optimized/24/outline/musical-note.svg | 3 + .../optimized/24/outline/newspaper.svg | 3 + .../optimized/24/outline/no-symbol.svg | 3 + .../optimized/24/outline/paint-brush.svg | 3 + .../optimized/24/outline/paper-airplane.svg | 3 + .../optimized/24/outline/paper-clip.svg | 3 + .../optimized/24/outline/pause-circle.svg | 3 + .../heroicons/optimized/24/outline/pause.svg | 3 + .../optimized/24/outline/pencil-square.svg | 3 + .../heroicons/optimized/24/outline/pencil.svg | 3 + .../24/outline/phone-arrow-down-left.svg | 3 + .../24/outline/phone-arrow-up-right.svg | 3 + .../optimized/24/outline/phone-x-mark.svg | 3 + .../heroicons/optimized/24/outline/phone.svg | 3 + .../heroicons/optimized/24/outline/photo.svg | 3 + .../optimized/24/outline/play-circle.svg | 4 + .../optimized/24/outline/play-pause.svg | 3 + .../heroicons/optimized/24/outline/play.svg | 3 + .../optimized/24/outline/plus-circle.svg | 3 + .../optimized/24/outline/plus-small.svg | 3 + .../heroicons/optimized/24/outline/plus.svg | 3 + .../heroicons/optimized/24/outline/power.svg | 3 + .../24/outline/presentation-chart-bar.svg | 3 + .../24/outline/presentation-chart-line.svg | 3 + .../optimized/24/outline/printer.svg | 3 + .../optimized/24/outline/puzzle-piece.svg | 3 + .../optimized/24/outline/qr-code.svg | 4 + .../24/outline/question-mark-circle.svg | 3 + .../optimized/24/outline/queue-list.svg | 3 + .../heroicons/optimized/24/outline/radio.svg | 3 + .../optimized/24/outline/receipt-percent.svg | 3 + .../optimized/24/outline/receipt-refund.svg | 3 + .../optimized/24/outline/rectangle-group.svg | 3 + .../optimized/24/outline/rectangle-stack.svg | 3 + .../optimized/24/outline/rocket-launch.svg | 3 + .../heroicons/optimized/24/outline/rss.svg | 3 + .../heroicons/optimized/24/outline/scale.svg | 3 + .../optimized/24/outline/scissors.svg | 3 + .../optimized/24/outline/server-stack.svg | 3 + .../heroicons/optimized/24/outline/server.svg | 3 + .../heroicons/optimized/24/outline/share.svg | 3 + .../optimized/24/outline/shield-check.svg | 3 + .../24/outline/shield-exclamation.svg | 3 + .../optimized/24/outline/shopping-bag.svg | 3 + .../optimized/24/outline/shopping-cart.svg | 3 + .../optimized/24/outline/signal-slash.svg | 3 + .../heroicons/optimized/24/outline/signal.svg | 3 + .../optimized/24/outline/sparkles.svg | 3 + .../optimized/24/outline/speaker-wave.svg | 3 + .../optimized/24/outline/speaker-x-mark.svg | 3 + .../optimized/24/outline/square-2-stack.svg | 3 + .../24/outline/square-3-stack-3d.svg | 3 + .../optimized/24/outline/squares-2x2.svg | 3 + .../optimized/24/outline/squares-plus.svg | 3 + .../heroicons/optimized/24/outline/star.svg | 3 + .../optimized/24/outline/stop-circle.svg | 4 + .../heroicons/optimized/24/outline/stop.svg | 3 + .../heroicons/optimized/24/outline/sun.svg | 3 + .../heroicons/optimized/24/outline/swatch.svg | 3 + .../optimized/24/outline/table-cells.svg | 3 + .../heroicons/optimized/24/outline/tag.svg | 4 + .../heroicons/optimized/24/outline/ticket.svg | 3 + .../heroicons/optimized/24/outline/trash.svg | 3 + .../heroicons/optimized/24/outline/trophy.svg | 3 + .../heroicons/optimized/24/outline/truck.svg | 3 + .../heroicons/optimized/24/outline/tv.svg | 3 + .../optimized/24/outline/user-circle.svg | 3 + .../optimized/24/outline/user-group.svg | 3 + .../optimized/24/outline/user-minus.svg | 3 + .../optimized/24/outline/user-plus.svg | 3 + .../heroicons/optimized/24/outline/user.svg | 3 + .../heroicons/optimized/24/outline/users.svg | 3 + .../optimized/24/outline/variable.svg | 3 + .../24/outline/video-camera-slash.svg | 3 + .../optimized/24/outline/video-camera.svg | 3 + .../optimized/24/outline/view-columns.svg | 3 + .../24/outline/viewfinder-circle.svg | 3 + .../heroicons/optimized/24/outline/wallet.svg | 3 + .../heroicons/optimized/24/outline/wifi.svg | 3 + .../heroicons/optimized/24/outline/window.svg | 3 + .../24/outline/wrench-screwdriver.svg | 3 + .../heroicons/optimized/24/outline/wrench.svg | 4 + .../optimized/24/outline/x-circle.svg | 3 + .../heroicons/optimized/24/outline/x-mark.svg | 3 + .../optimized/24/solid/academic-cap.svg | 5 + .../24/solid/adjustments-horizontal.svg | 3 + .../24/solid/adjustments-vertical.svg | 3 + .../24/solid/archive-box-arrow-down.svg | 4 + .../optimized/24/solid/archive-box-x-mark.svg | 4 + .../optimized/24/solid/archive-box.svg | 4 + .../optimized/24/solid/arrow-down-circle.svg | 3 + .../optimized/24/solid/arrow-down-left.svg | 3 + .../24/solid/arrow-down-on-square-stack.svg | 4 + .../24/solid/arrow-down-on-square.svg | 3 + .../optimized/24/solid/arrow-down-right.svg | 3 + .../optimized/24/solid/arrow-down-tray.svg | 3 + .../optimized/24/solid/arrow-down.svg | 3 + .../optimized/24/solid/arrow-left-circle.svg | 3 + .../24/solid/arrow-left-on-rectangle.svg | 3 + .../optimized/24/solid/arrow-left.svg | 3 + .../optimized/24/solid/arrow-long-down.svg | 3 + .../optimized/24/solid/arrow-long-left.svg | 3 + .../optimized/24/solid/arrow-long-right.svg | 3 + .../optimized/24/solid/arrow-long-up.svg | 3 + .../24/solid/arrow-path-rounded-square.svg | 3 + .../optimized/24/solid/arrow-path.svg | 3 + .../optimized/24/solid/arrow-right-circle.svg | 3 + .../24/solid/arrow-right-on-rectangle.svg | 3 + .../optimized/24/solid/arrow-right.svg | 3 + .../optimized/24/solid/arrow-small-down.svg | 3 + .../optimized/24/solid/arrow-small-left.svg | 3 + .../optimized/24/solid/arrow-small-right.svg | 3 + .../optimized/24/solid/arrow-small-up.svg | 3 + .../24/solid/arrow-top-right-on-square.svg | 3 + .../24/solid/arrow-trending-down.svg | 3 + .../optimized/24/solid/arrow-trending-up.svg | 3 + .../optimized/24/solid/arrow-up-circle.svg | 3 + .../optimized/24/solid/arrow-up-left.svg | 3 + .../24/solid/arrow-up-on-square-stack.svg | 4 + .../optimized/24/solid/arrow-up-on-square.svg | 3 + .../optimized/24/solid/arrow-up-right.svg | 3 + .../optimized/24/solid/arrow-up-tray.svg | 3 + .../heroicons/optimized/24/solid/arrow-up.svg | 3 + .../optimized/24/solid/arrow-uturn-down.svg | 3 + .../optimized/24/solid/arrow-uturn-left.svg | 3 + .../optimized/24/solid/arrow-uturn-right.svg | 3 + .../optimized/24/solid/arrow-uturn-up.svg | 3 + .../optimized/24/solid/arrows-pointing-in.svg | 3 + .../24/solid/arrows-pointing-out.svg | 3 + .../optimized/24/solid/arrows-right-left.svg | 3 + .../optimized/24/solid/arrows-up-down.svg | 3 + .../optimized/24/solid/at-symbol.svg | 3 + .../optimized/24/solid/backspace.svg | 3 + .../heroicons/optimized/24/solid/backward.svg | 3 + .../optimized/24/solid/banknotes.svg | 5 + .../heroicons/optimized/24/solid/bars-2.svg | 3 + .../optimized/24/solid/bars-3-bottom-left.svg | 3 + .../24/solid/bars-3-bottom-right.svg | 3 + .../optimized/24/solid/bars-3-center-left.svg | 3 + .../heroicons/optimized/24/solid/bars-3.svg | 3 + .../heroicons/optimized/24/solid/bars-4.svg | 3 + .../optimized/24/solid/bars-arrow-down.svg | 3 + .../optimized/24/solid/bars-arrow-up.svg | 3 + .../optimized/24/solid/battery-0.svg | 3 + .../optimized/24/solid/battery-100.svg | 3 + .../optimized/24/solid/battery-50.svg | 4 + .../heroicons/optimized/24/solid/beaker.svg | 3 + .../optimized/24/solid/bell-alert.svg | 4 + .../optimized/24/solid/bell-slash.svg | 4 + .../optimized/24/solid/bell-snooze.svg | 3 + .../heroicons/optimized/24/solid/bell.svg | 3 + .../optimized/24/solid/bolt-slash.svg | 3 + .../heroicons/optimized/24/solid/bolt.svg | 3 + .../optimized/24/solid/book-open.svg | 3 + .../optimized/24/solid/bookmark-slash.svg | 3 + .../optimized/24/solid/bookmark-square.svg | 3 + .../heroicons/optimized/24/solid/bookmark.svg | 3 + .../optimized/24/solid/briefcase.svg | 4 + .../heroicons/optimized/24/solid/bug-ant.svg | 3 + .../optimized/24/solid/building-library.svg | 5 + .../optimized/24/solid/building-office-2.svg | 3 + .../optimized/24/solid/building-office.svg | 3 + .../24/solid/building-storefront.svg | 4 + .../heroicons/optimized/24/solid/cake.svg | 3 + .../optimized/24/solid/calculator.svg | 3 + .../optimized/24/solid/calendar-days.svg | 4 + .../heroicons/optimized/24/solid/calendar.svg | 3 + .../heroicons/optimized/24/solid/camera.svg | 4 + .../optimized/24/solid/chart-bar-square.svg | 3 + .../optimized/24/solid/chart-bar.svg | 3 + .../optimized/24/solid/chart-pie.svg | 4 + .../solid/chat-bubble-bottom-center-text.svg | 3 + .../24/solid/chat-bubble-bottom-center.svg | 3 + .../24/solid/chat-bubble-left-ellipsis.svg | 3 + .../24/solid/chat-bubble-left-right.svg | 4 + .../optimized/24/solid/chat-bubble-left.svg | 3 + .../solid/chat-bubble-oval-left-ellipsis.svg | 3 + .../24/solid/chat-bubble-oval-left.svg | 3 + .../optimized/24/solid/check-badge.svg | 3 + .../optimized/24/solid/check-circle.svg | 3 + .../heroicons/optimized/24/solid/check.svg | 3 + .../24/solid/chevron-double-down.svg | 3 + .../24/solid/chevron-double-left.svg | 3 + .../24/solid/chevron-double-right.svg | 3 + .../optimized/24/solid/chevron-double-up.svg | 3 + .../optimized/24/solid/chevron-down.svg | 3 + .../optimized/24/solid/chevron-left.svg | 3 + .../optimized/24/solid/chevron-right.svg | 3 + .../optimized/24/solid/chevron-up-down.svg | 3 + .../optimized/24/solid/chevron-up.svg | 3 + .../optimized/24/solid/circle-stack.svg | 6 + .../24/solid/clipboard-document-check.svg | 4 + .../24/solid/clipboard-document-list.svg | 4 + .../optimized/24/solid/clipboard-document.svg | 5 + .../optimized/24/solid/clipboard.svg | 3 + .../heroicons/optimized/24/solid/clock.svg | 3 + .../optimized/24/solid/cloud-arrow-down.svg | 3 + .../optimized/24/solid/cloud-arrow-up.svg | 3 + .../heroicons/optimized/24/solid/cloud.svg | 3 + .../24/solid/code-bracket-square.svg | 3 + .../optimized/24/solid/code-bracket.svg | 3 + .../optimized/24/solid/cog-6-tooth.svg | 3 + .../optimized/24/solid/cog-8-tooth.svg | 3 + .../heroicons/optimized/24/solid/cog.svg | 4 + .../optimized/24/solid/command-line.svg | 3 + .../optimized/24/solid/computer-desktop.svg | 3 + .../heroicons/optimized/24/solid/cpu-chip.svg | 4 + .../optimized/24/solid/credit-card.svg | 4 + .../optimized/24/solid/cube-transparent.svg | 3 + .../heroicons/optimized/24/solid/cube.svg | 3 + .../24/solid/currency-bangladeshi.svg | 3 + .../optimized/24/solid/currency-dollar.svg | 4 + .../optimized/24/solid/currency-euro.svg | 3 + .../optimized/24/solid/currency-pound.svg | 3 + .../optimized/24/solid/currency-rupee.svg | 3 + .../optimized/24/solid/currency-yen.svg | 3 + .../optimized/24/solid/cursor-arrow-rays.svg | 3 + .../24/solid/cursor-arrow-ripple.svg | 3 + .../24/solid/device-phone-mobile.svg | 4 + .../optimized/24/solid/device-tablet.svg | 4 + .../24/solid/document-arrow-down.svg | 4 + .../optimized/24/solid/document-arrow-up.svg | 4 + .../optimized/24/solid/document-chart-bar.svg | 4 + .../optimized/24/solid/document-check.svg | 4 + .../optimized/24/solid/document-duplicate.svg | 4 + .../24/solid/document-magnifying-glass.svg | 5 + .../optimized/24/solid/document-minus.svg | 4 + .../optimized/24/solid/document-plus.svg | 4 + .../optimized/24/solid/document-text.svg | 4 + .../heroicons/optimized/24/solid/document.svg | 4 + .../24/solid/ellipsis-horizontal-circle.svg | 3 + .../24/solid/ellipsis-horizontal.svg | 3 + .../optimized/24/solid/ellipsis-vertical.svg | 3 + .../optimized/24/solid/envelope-open.svg | 4 + .../heroicons/optimized/24/solid/envelope.svg | 4 + .../optimized/24/solid/exclamation-circle.svg | 3 + .../24/solid/exclamation-triangle.svg | 3 + .../optimized/24/solid/eye-dropper.svg | 3 + .../optimized/24/solid/eye-slash.svg | 5 + .../heroicons/optimized/24/solid/eye.svg | 4 + .../optimized/24/solid/face-frown.svg | 3 + .../optimized/24/solid/face-smile.svg | 3 + .../heroicons/optimized/24/solid/film.svg | 3 + .../optimized/24/solid/finger-print.svg | 3 + .../heroicons/optimized/24/solid/fire.svg | 3 + .../heroicons/optimized/24/solid/flag.svg | 3 + .../optimized/24/solid/folder-arrow-down.svg | 3 + .../optimized/24/solid/folder-minus.svg | 3 + .../optimized/24/solid/folder-open.svg | 3 + .../optimized/24/solid/folder-plus.svg | 3 + .../heroicons/optimized/24/solid/folder.svg | 3 + .../heroicons/optimized/24/solid/forward.svg | 3 + .../heroicons/optimized/24/solid/funnel.svg | 3 + .../heroicons/optimized/24/solid/gif.svg | 3 + .../heroicons/optimized/24/solid/gift-top.svg | 4 + .../heroicons/optimized/24/solid/gift.svg | 3 + .../optimized/24/solid/globe-alt.svg | 3 + .../optimized/24/solid/globe-americas.svg | 3 + .../24/solid/globe-asia-australia.svg | 4 + .../24/solid/globe-europe-africa.svg | 3 + .../optimized/24/solid/hand-raised.svg | 3 + .../optimized/24/solid/hand-thumb-down.svg | 3 + .../optimized/24/solid/hand-thumb-up.svg | 3 + .../heroicons/optimized/24/solid/hashtag.svg | 3 + .../heroicons/optimized/24/solid/heart.svg | 3 + .../optimized/24/solid/home-modern.svg | 4 + .../heroicons/optimized/24/solid/home.svg | 4 + .../optimized/24/solid/identification.svg | 3 + .../optimized/24/solid/inbox-arrow-down.svg | 4 + .../optimized/24/solid/inbox-stack.svg | 4 + .../heroicons/optimized/24/solid/inbox.svg | 3 + .../optimized/24/solid/information-circle.svg | 3 + .../heroicons/optimized/24/solid/key.svg | 3 + .../heroicons/optimized/24/solid/language.svg | 3 + .../heroicons/optimized/24/solid/lifebuoy.svg | 3 + .../optimized/24/solid/light-bulb.svg | 4 + .../heroicons/optimized/24/solid/link.svg | 3 + .../optimized/24/solid/list-bullet.svg | 3 + .../optimized/24/solid/lock-closed.svg | 3 + .../optimized/24/solid/lock-open.svg | 3 + .../24/solid/magnifying-glass-circle.svg | 4 + .../24/solid/magnifying-glass-minus.svg | 3 + .../24/solid/magnifying-glass-plus.svg | 3 + .../optimized/24/solid/magnifying-glass.svg | 3 + .../heroicons/optimized/24/solid/map-pin.svg | 3 + .../heroicons/optimized/24/solid/map.svg | 3 + .../optimized/24/solid/megaphone.svg | 3 + .../optimized/24/solid/microphone.svg | 4 + .../optimized/24/solid/minus-circle.svg | 3 + .../optimized/24/solid/minus-small.svg | 3 + .../heroicons/optimized/24/solid/minus.svg | 3 + .../heroicons/optimized/24/solid/moon.svg | 3 + .../optimized/24/solid/musical-note.svg | 3 + .../optimized/24/solid/newspaper.svg | 4 + .../optimized/24/solid/no-symbol.svg | 3 + .../optimized/24/solid/paint-brush.svg | 3 + .../optimized/24/solid/paper-airplane.svg | 3 + .../optimized/24/solid/paper-clip.svg | 3 + .../optimized/24/solid/pause-circle.svg | 3 + .../heroicons/optimized/24/solid/pause.svg | 3 + .../optimized/24/solid/pencil-square.svg | 4 + .../heroicons/optimized/24/solid/pencil.svg | 3 + .../24/solid/phone-arrow-down-left.svg | 4 + .../24/solid/phone-arrow-up-right.svg | 4 + .../optimized/24/solid/phone-x-mark.svg | 3 + .../heroicons/optimized/24/solid/phone.svg | 3 + .../heroicons/optimized/24/solid/photo.svg | 3 + .../optimized/24/solid/play-circle.svg | 3 + .../optimized/24/solid/play-pause.svg | 3 + .../heroicons/optimized/24/solid/play.svg | 3 + .../optimized/24/solid/plus-circle.svg | 3 + .../optimized/24/solid/plus-small.svg | 3 + .../heroicons/optimized/24/solid/plus.svg | 3 + .../heroicons/optimized/24/solid/power.svg | 3 + .../24/solid/presentation-chart-bar.svg | 3 + .../24/solid/presentation-chart-line.svg | 3 + .../heroicons/optimized/24/solid/printer.svg | 3 + .../optimized/24/solid/puzzle-piece.svg | 3 + .../heroicons/optimized/24/solid/qr-code.svg | 3 + .../24/solid/question-mark-circle.svg | 3 + .../optimized/24/solid/queue-list.svg | 3 + .../heroicons/optimized/24/solid/radio.svg | 3 + .../optimized/24/solid/receipt-percent.svg | 3 + .../optimized/24/solid/receipt-refund.svg | 3 + .../optimized/24/solid/rectangle-group.svg | 3 + .../optimized/24/solid/rectangle-stack.svg | 3 + .../optimized/24/solid/rocket-launch.svg | 4 + .../heroicons/optimized/24/solid/rss.svg | 3 + .../heroicons/optimized/24/solid/scale.svg | 3 + .../heroicons/optimized/24/solid/scissors.svg | 4 + .../optimized/24/solid/server-stack.svg | 4 + .../heroicons/optimized/24/solid/server.svg | 4 + .../heroicons/optimized/24/solid/share.svg | 3 + .../optimized/24/solid/shield-check.svg | 3 + .../optimized/24/solid/shield-exclamation.svg | 3 + .../optimized/24/solid/shopping-bag.svg | 3 + .../optimized/24/solid/shopping-cart.svg | 3 + .../optimized/24/solid/signal-slash.svg | 3 + .../heroicons/optimized/24/solid/signal.svg | 3 + .../heroicons/optimized/24/solid/sparkles.svg | 3 + .../optimized/24/solid/speaker-wave.svg | 4 + .../optimized/24/solid/speaker-x-mark.svg | 3 + .../optimized/24/solid/square-2-stack.svg | 4 + .../optimized/24/solid/square-3-stack-3d.svg | 5 + .../optimized/24/solid/squares-2x2.svg | 3 + .../optimized/24/solid/squares-plus.svg | 3 + .../heroicons/optimized/24/solid/star.svg | 3 + .../optimized/24/solid/stop-circle.svg | 3 + .../heroicons/optimized/24/solid/stop.svg | 3 + .../heroicons/optimized/24/solid/sun.svg | 3 + .../heroicons/optimized/24/solid/swatch.svg | 4 + .../optimized/24/solid/table-cells.svg | 3 + .../heroicons/optimized/24/solid/tag.svg | 3 + .../heroicons/optimized/24/solid/ticket.svg | 3 + .../heroicons/optimized/24/solid/trash.svg | 3 + .../heroicons/optimized/24/solid/trophy.svg | 3 + .../heroicons/optimized/24/solid/truck.svg | 5 + .../heroicons/optimized/24/solid/tv.svg | 4 + .../optimized/24/solid/user-circle.svg | 3 + .../optimized/24/solid/user-group.svg | 4 + .../optimized/24/solid/user-minus.svg | 3 + .../optimized/24/solid/user-plus.svg | 3 + .../heroicons/optimized/24/solid/user.svg | 3 + .../heroicons/optimized/24/solid/users.svg | 3 + .../heroicons/optimized/24/solid/variable.svg | 3 + .../optimized/24/solid/video-camera-slash.svg | 3 + .../optimized/24/solid/video-camera.svg | 3 + .../optimized/24/solid/view-columns.svg | 3 + .../optimized/24/solid/viewfinder-circle.svg | 3 + .../heroicons/optimized/24/solid/wallet.svg | 3 + .../heroicons/optimized/24/solid/wifi.svg | 3 + .../heroicons/optimized/24/solid/window.svg | 3 + .../optimized/24/solid/wrench-screwdriver.svg | 5 + .../heroicons/optimized/24/solid/wrench.svg | 3 + .../heroicons/optimized/24/solid/x-circle.svg | 3 + .../heroicons/optimized/24/solid/x-mark.svg | 3 + assets/vendor/topbar.js | 165 +++++ assets/yarn.lock | 4 + config/config.exs | 66 ++ config/dev.exs | 82 +++ config/prod.exs | 21 + config/runtime.exs | 117 +++ config/test.exs | 33 + lib/multi_tenant.ex | 9 + lib/multi_tenant/application.ex | 36 + lib/multi_tenant/mailer.ex | 3 + lib/multi_tenant/notes.ex | 34 + lib/multi_tenant/notes/note.ex | 18 + lib/multi_tenant/repo.ex | 5 + lib/multi_tenant/todos.ex | 34 + lib/multi_tenant/todos/todo.ex | 18 + lib/multi_tenant_web.ex | 113 +++ .../components/core_components.ex | 674 ++++++++++++++++++ lib/multi_tenant_web/components/layouts.ex | 5 + .../components/layouts/app.html.heex | 26 + .../components/layouts/root.html.heex | 17 + .../controllers/error_html.ex | 19 + .../controllers/error_json.ex | 15 + .../controllers/page_controller.ex | 7 + lib/multi_tenant_web/controllers/page_html.ex | 5 + .../controllers/page_html/home.html.heex | 1 + lib/multi_tenant_web/endpoint.ex | 51 ++ lib/multi_tenant_web/gettext.ex | 24 + lib/multi_tenant_web/live/notes_edit_live.ex | 101 +++ lib/multi_tenant_web/live/notes_live.ex | 56 ++ lib/multi_tenant_web/live/todos_edit_live.ex | 101 +++ lib/multi_tenant_web/live/todos_live.ex | 56 ++ lib/multi_tenant_web/router.ex | 52 ++ lib/multi_tenant_web/telemetry.ex | 92 +++ mix.exs | 74 ++ mix.lock | 43 ++ priv/gettext/en/LC_MESSAGES/errors.po | 112 +++ priv/gettext/errors.pot | 110 +++ priv/repo/migrations/.formatter.exs | 4 + priv/repo/migrations/20240218145725_init.exs | 17 + priv/repo/seeds.exs | 40 ++ priv/static/favicon.ico | Bin 0 -> 152 bytes priv/static/images/logo.svg | 6 + priv/static/robots.txt | 5 + .../controllers/error_html_test.exs | 14 + .../controllers/error_json_test.exs | 12 + test/support/conn_case.ex | 38 + test/support/data_case.ex | 58 ++ test/test_helper.exs | 2 + 938 files changed, 5765 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/init.sh create mode 100644 .formatter.exs create mode 100644 .github/workflows/fly.yml create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 assets/css/app.css create mode 100644 assets/js/app.js create mode 100644 assets/tailwind.config.js create mode 100644 assets/vendor/heroicons/LICENSE.md create mode 100644 assets/vendor/heroicons/UPGRADE.md create mode 100644 assets/vendor/heroicons/optimized/20/solid/academic-cap.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/adjustments-horizontal.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/adjustments-vertical.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/archive-box-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/archive-box-x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/archive-box.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-down-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-down-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square-stack.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-down-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-down-tray.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-left-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-left-on-rectangle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-long-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-long-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-long-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-long-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-path-rounded-square.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-path.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-right-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-right-on-rectangle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-small-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-small-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-small-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-small-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-top-right-on-square.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-trending-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-trending-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-up-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-up-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square-stack.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-up-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-up-tray.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-uturn-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-uturn-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-uturn-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrow-uturn-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrows-pointing-in.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrows-pointing-out.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrows-right-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/arrows-up-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/at-symbol.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/backspace.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/backward.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/banknotes.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bars-2.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bars-3-bottom-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bars-3-bottom-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bars-3-center-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bars-3.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bars-4.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bars-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bars-arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/battery-0.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/battery-100.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/battery-50.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/beaker.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bell-alert.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bell-slash.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bell-snooze.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bell.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bolt-slash.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bolt.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/book-open.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bookmark-slash.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bookmark-square.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bookmark.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/briefcase.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/bug-ant.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/building-library.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/building-office-2.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/building-office.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/building-storefront.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cake.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/calculator.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/calendar-days.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/calendar.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/camera.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chart-bar-square.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chart-bar.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chart-pie.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chat-bubble-bottom-center-text.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chat-bubble-bottom-center.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chat-bubble-left-ellipsis.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chat-bubble-left-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chat-bubble-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chat-bubble-oval-left-ellipsis.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chat-bubble-oval-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/check-badge.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/check-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/check.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chevron-double-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chevron-double-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chevron-double-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chevron-double-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chevron-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chevron-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chevron-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chevron-up-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/chevron-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/circle-stack.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/clipboard-document-check.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/clipboard-document-list.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/clipboard-document.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/clipboard.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/clock.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cloud-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cloud-arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cloud.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/code-bracket-square.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/code-bracket.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cog-6-tooth.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cog-8-tooth.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cog.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/command-line.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/computer-desktop.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cpu-chip.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/credit-card.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cube-transparent.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cube.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/currency-bangladeshi.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/currency-dollar.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/currency-euro.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/currency-pound.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/currency-rupee.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/currency-yen.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cursor-arrow-rays.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/cursor-arrow-ripple.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/device-phone-mobile.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/device-tablet.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document-arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document-chart-bar.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document-check.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document-duplicate.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document-magnifying-glass.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document-minus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document-plus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document-text.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/document.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/ellipsis-horizontal-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/ellipsis-horizontal.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/ellipsis-vertical.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/envelope-open.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/envelope.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/exclamation-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/exclamation-triangle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/eye-dropper.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/eye-slash.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/eye.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/face-frown.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/face-smile.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/film.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/finger-print.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/fire.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/flag.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/folder-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/folder-minus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/folder-open.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/folder-plus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/folder.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/forward.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/funnel.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/gif.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/gift-top.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/gift.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/globe-alt.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/globe-americas.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/globe-asia-australia.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/globe-europe-africa.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/hand-raised.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/hand-thumb-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/hand-thumb-up.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/hashtag.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/heart.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/home-modern.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/home.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/identification.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/inbox-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/inbox-stack.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/inbox.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/information-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/key.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/language.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/lifebuoy.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/light-bulb.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/link.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/list-bullet.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/lock-closed.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/lock-open.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/magnifying-glass-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/magnifying-glass-minus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/magnifying-glass-plus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/magnifying-glass.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/map-pin.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/map.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/megaphone.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/microphone.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/minus-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/minus-small.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/minus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/moon.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/musical-note.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/newspaper.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/no-symbol.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/paint-brush.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/paper-airplane.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/paper-clip.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/pause-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/pause.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/pencil-square.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/pencil.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/phone-arrow-down-left.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/phone-arrow-up-right.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/phone-x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/phone.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/photo.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/play-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/play-pause.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/play.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/plus-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/plus-small.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/plus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/power.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/presentation-chart-bar.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/presentation-chart-line.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/printer.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/puzzle-piece.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/qr-code.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/question-mark-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/queue-list.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/radio.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/receipt-percent.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/receipt-refund.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/rectangle-group.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/rectangle-stack.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/rocket-launch.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/rss.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/scale.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/scissors.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/server-stack.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/server.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/share.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/shield-check.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/shield-exclamation.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/shopping-bag.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/shopping-cart.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/signal-slash.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/signal.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/sparkles.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/speaker-wave.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/speaker-x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/square-2-stack.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/square-3-stack-3d.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/squares-2x2.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/squares-plus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/star.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/stop-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/stop.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/sun.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/swatch.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/table-cells.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/tag.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/ticket.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/trash.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/trophy.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/truck.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/tv.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/user-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/user-group.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/user-minus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/user-plus.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/user.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/users.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/variable.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/video-camera-slash.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/video-camera.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/view-columns.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/viewfinder-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/wallet.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/wifi.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/window.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/wrench-screwdriver.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/wrench.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/x-circle.svg create mode 100644 assets/vendor/heroicons/optimized/20/solid/x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/academic-cap.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/adjustments-horizontal.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/adjustments-vertical.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/archive-box-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/archive-box-x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/archive-box.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-down-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-down-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-down-on-square-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-down-on-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-down-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-down-tray.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-left-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-left-on-rectangle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-long-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-long-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-long-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-long-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-path-rounded-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-path.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-right-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-right-on-rectangle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-small-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-small-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-small-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-small-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-top-right-on-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-trending-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-trending-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-up-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-up-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-up-on-square-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-up-on-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-up-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-up-tray.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-uturn-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-uturn-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-uturn-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrow-uturn-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrows-pointing-in.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrows-pointing-out.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrows-right-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/arrows-up-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/at-symbol.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/backspace.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/backward.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/banknotes.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bars-2.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bars-3-bottom-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bars-3-bottom-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bars-3-center-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bars-3.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bars-4.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bars-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bars-arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/battery-0.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/battery-100.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/battery-50.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/beaker.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bell-alert.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bell-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bell-snooze.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bell.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bolt-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bolt.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/book-open.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bookmark-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bookmark-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bookmark.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/briefcase.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/bug-ant.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/building-library.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/building-office-2.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/building-office.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/building-storefront.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cake.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/calculator.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/calendar-days.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/calendar.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/camera.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chart-bar-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chart-bar.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chart-pie.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chat-bubble-bottom-center-text.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chat-bubble-bottom-center.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chat-bubble-left-ellipsis.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chat-bubble-left-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chat-bubble-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chat-bubble-oval-left-ellipsis.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chat-bubble-oval-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/check-badge.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/check-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/check.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chevron-double-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chevron-double-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chevron-double-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chevron-double-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chevron-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chevron-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chevron-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chevron-up-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/chevron-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/circle-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/clipboard-document-check.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/clipboard-document-list.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/clipboard-document.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/clipboard.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/clock.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cloud-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cloud-arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cloud.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/code-bracket-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/code-bracket.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cog-6-tooth.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cog-8-tooth.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cog.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/command-line.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/computer-desktop.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cpu-chip.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/credit-card.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cube-transparent.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cube.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/currency-bangladeshi.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/currency-dollar.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/currency-euro.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/currency-pound.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/currency-rupee.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/currency-yen.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cursor-arrow-rays.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/cursor-arrow-ripple.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/device-phone-mobile.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/device-tablet.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document-arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document-chart-bar.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document-check.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document-duplicate.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document-magnifying-glass.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document-minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document-text.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/document.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/ellipsis-horizontal-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/ellipsis-horizontal.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/ellipsis-vertical.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/envelope-open.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/envelope.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/exclamation-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/exclamation-triangle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/eye-dropper.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/eye-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/eye.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/face-frown.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/face-smile.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/film.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/finger-print.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/fire.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/flag.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/folder-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/folder-minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/folder-open.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/folder-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/folder.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/forward.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/funnel.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/gif.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/gift-top.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/gift.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/globe-alt.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/globe-americas.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/globe-asia-australia.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/globe-europe-africa.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/hand-raised.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/hand-thumb-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/hand-thumb-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/hashtag.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/heart.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/home-modern.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/home.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/identification.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/inbox-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/inbox-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/inbox.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/information-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/key.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/language.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/lifebuoy.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/light-bulb.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/link.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/list-bullet.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/lock-closed.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/lock-open.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/magnifying-glass-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/magnifying-glass-minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/magnifying-glass-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/magnifying-glass.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/map-pin.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/map.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/megaphone.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/microphone.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/minus-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/minus-small.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/moon.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/musical-note.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/newspaper.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/no-symbol.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/paint-brush.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/paper-airplane.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/paper-clip.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/pause-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/pause.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/pencil-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/pencil.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/phone-arrow-down-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/phone-arrow-up-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/phone-x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/phone.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/photo.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/play-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/play-pause.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/play.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/plus-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/plus-small.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/power.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/presentation-chart-bar.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/presentation-chart-line.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/printer.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/puzzle-piece.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/qr-code.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/question-mark-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/queue-list.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/radio.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/receipt-percent.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/receipt-refund.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/rectangle-group.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/rectangle-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/rocket-launch.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/rss.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/scale.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/scissors.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/server-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/server.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/share.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/shield-check.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/shield-exclamation.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/shopping-bag.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/shopping-cart.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/signal-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/signal.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/sparkles.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/speaker-wave.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/speaker-x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/square-2-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/square-3-stack-3d.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/squares-2x2.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/squares-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/star.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/stop-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/stop.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/sun.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/swatch.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/table-cells.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/tag.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/ticket.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/trash.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/trophy.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/truck.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/tv.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/user-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/user-group.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/user-minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/user-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/user.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/users.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/variable.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/video-camera-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/video-camera.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/view-columns.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/viewfinder-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/wallet.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/wifi.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/window.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/wrench-screwdriver.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/wrench.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/x-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/outline/x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/academic-cap.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/adjustments-horizontal.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/adjustments-vertical.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/archive-box-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/archive-box-x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/archive-box.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-down-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-down-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-down-on-square-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-down-on-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-down-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-down-tray.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-left-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-left-on-rectangle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-long-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-long-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-long-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-long-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-path-rounded-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-path.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-right-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-right-on-rectangle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-small-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-small-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-small-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-small-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-top-right-on-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-trending-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-trending-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-up-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-up-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-up-on-square-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-up-on-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-up-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-up-tray.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-uturn-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-uturn-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-uturn-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrow-uturn-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrows-pointing-in.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrows-pointing-out.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrows-right-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/arrows-up-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/at-symbol.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/backspace.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/backward.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/banknotes.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bars-2.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bars-3-bottom-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bars-3-bottom-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bars-3-center-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bars-3.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bars-4.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bars-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bars-arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/battery-0.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/battery-100.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/battery-50.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/beaker.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bell-alert.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bell-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bell-snooze.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bell.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bolt-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bolt.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/book-open.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bookmark-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bookmark-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bookmark.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/briefcase.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/bug-ant.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/building-library.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/building-office-2.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/building-office.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/building-storefront.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cake.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/calculator.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/calendar-days.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/calendar.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/camera.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chart-bar-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chart-bar.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chart-pie.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chat-bubble-bottom-center-text.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chat-bubble-bottom-center.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chat-bubble-left-ellipsis.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chat-bubble-left-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chat-bubble-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chat-bubble-oval-left-ellipsis.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chat-bubble-oval-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/check-badge.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/check-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/check.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chevron-double-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chevron-double-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chevron-double-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chevron-double-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chevron-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chevron-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chevron-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chevron-up-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/chevron-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/circle-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/clipboard-document-check.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/clipboard-document-list.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/clipboard-document.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/clipboard.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/clock.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cloud-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cloud-arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cloud.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/code-bracket-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/code-bracket.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cog-6-tooth.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cog-8-tooth.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cog.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/command-line.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/computer-desktop.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cpu-chip.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/credit-card.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cube-transparent.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cube.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/currency-bangladeshi.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/currency-dollar.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/currency-euro.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/currency-pound.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/currency-rupee.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/currency-yen.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cursor-arrow-rays.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/cursor-arrow-ripple.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/device-phone-mobile.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/device-tablet.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document-arrow-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document-chart-bar.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document-check.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document-duplicate.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document-magnifying-glass.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document-minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document-text.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/document.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/ellipsis-horizontal-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/ellipsis-horizontal.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/ellipsis-vertical.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/envelope-open.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/envelope.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/exclamation-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/exclamation-triangle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/eye-dropper.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/eye-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/eye.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/face-frown.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/face-smile.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/film.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/finger-print.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/fire.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/flag.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/folder-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/folder-minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/folder-open.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/folder-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/folder.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/forward.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/funnel.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/gif.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/gift-top.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/gift.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/globe-alt.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/globe-americas.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/globe-asia-australia.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/globe-europe-africa.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/hand-raised.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/hand-thumb-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/hand-thumb-up.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/hashtag.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/heart.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/home-modern.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/home.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/identification.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/inbox-arrow-down.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/inbox-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/inbox.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/information-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/key.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/language.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/lifebuoy.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/light-bulb.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/link.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/list-bullet.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/lock-closed.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/lock-open.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/magnifying-glass-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/magnifying-glass-minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/magnifying-glass-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/magnifying-glass.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/map-pin.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/map.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/megaphone.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/microphone.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/minus-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/minus-small.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/moon.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/musical-note.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/newspaper.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/no-symbol.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/paint-brush.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/paper-airplane.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/paper-clip.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/pause-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/pause.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/pencil-square.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/pencil.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/phone-arrow-down-left.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/phone-arrow-up-right.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/phone-x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/phone.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/photo.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/play-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/play-pause.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/play.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/plus-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/plus-small.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/power.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/presentation-chart-bar.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/presentation-chart-line.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/printer.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/puzzle-piece.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/qr-code.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/question-mark-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/queue-list.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/radio.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/receipt-percent.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/receipt-refund.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/rectangle-group.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/rectangle-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/rocket-launch.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/rss.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/scale.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/scissors.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/server-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/server.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/share.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/shield-check.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/shield-exclamation.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/shopping-bag.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/shopping-cart.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/signal-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/signal.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/sparkles.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/speaker-wave.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/speaker-x-mark.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/square-2-stack.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/square-3-stack-3d.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/squares-2x2.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/squares-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/star.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/stop-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/stop.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/sun.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/swatch.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/table-cells.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/tag.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/ticket.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/trash.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/trophy.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/truck.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/tv.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/user-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/user-group.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/user-minus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/user-plus.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/user.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/users.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/variable.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/video-camera-slash.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/video-camera.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/view-columns.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/viewfinder-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/wallet.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/wifi.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/window.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/wrench-screwdriver.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/wrench.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/x-circle.svg create mode 100644 assets/vendor/heroicons/optimized/24/solid/x-mark.svg create mode 100644 assets/vendor/topbar.js create mode 100644 assets/yarn.lock create mode 100644 config/config.exs create mode 100644 config/dev.exs create mode 100644 config/prod.exs create mode 100644 config/runtime.exs create mode 100644 config/test.exs create mode 100644 lib/multi_tenant.ex create mode 100644 lib/multi_tenant/application.ex create mode 100644 lib/multi_tenant/mailer.ex create mode 100644 lib/multi_tenant/notes.ex create mode 100644 lib/multi_tenant/notes/note.ex create mode 100644 lib/multi_tenant/repo.ex create mode 100644 lib/multi_tenant/todos.ex create mode 100644 lib/multi_tenant/todos/todo.ex create mode 100644 lib/multi_tenant_web.ex create mode 100644 lib/multi_tenant_web/components/core_components.ex create mode 100644 lib/multi_tenant_web/components/layouts.ex create mode 100644 lib/multi_tenant_web/components/layouts/app.html.heex create mode 100644 lib/multi_tenant_web/components/layouts/root.html.heex create mode 100644 lib/multi_tenant_web/controllers/error_html.ex create mode 100644 lib/multi_tenant_web/controllers/error_json.ex create mode 100644 lib/multi_tenant_web/controllers/page_controller.ex create mode 100644 lib/multi_tenant_web/controllers/page_html.ex create mode 100644 lib/multi_tenant_web/controllers/page_html/home.html.heex create mode 100644 lib/multi_tenant_web/endpoint.ex create mode 100644 lib/multi_tenant_web/gettext.ex create mode 100644 lib/multi_tenant_web/live/notes_edit_live.ex create mode 100644 lib/multi_tenant_web/live/notes_live.ex create mode 100644 lib/multi_tenant_web/live/todos_edit_live.ex create mode 100644 lib/multi_tenant_web/live/todos_live.ex create mode 100644 lib/multi_tenant_web/router.ex create mode 100644 lib/multi_tenant_web/telemetry.ex create mode 100644 mix.exs create mode 100644 mix.lock create mode 100644 priv/gettext/en/LC_MESSAGES/errors.po create mode 100644 priv/gettext/errors.pot create mode 100644 priv/repo/migrations/.formatter.exs create mode 100644 priv/repo/migrations/20240218145725_init.exs create mode 100644 priv/repo/seeds.exs create mode 100644 priv/static/favicon.ico create mode 100644 priv/static/images/logo.svg create mode 100644 priv/static/robots.txt create mode 100644 test/multi_tenant_web/controllers/error_html_test.exs create mode 100644 test/multi_tenant_web/controllers/error_json_test.exs create mode 100644 test/support/conn_case.ex create mode 100644 test/support/data_case.ex create mode 100644 test/test_helper.exs diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..0a170ac --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,47 @@ +FROM mcr.microsoft.com/devcontainers/base:jammy + +RUN apt update +RUN apt install -y git curl inotify-tools wget + +# Erlang Deps +RUN apt-get -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.0-gtk3-dev libwxgtk-webview3.0-gtk3-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils libncurses-dev openjdk-11-jdk + +# Install Postgres +ENV PGUSER=postgres +ENV PGHOST=127.0.0.1 +RUN sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' +RUN curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg +RUN apt update +RUN apt install -y postgresql-16 +# Postgres from anywhere! +RUN sh -c 'echo "host all all all trust" > /etc/postgresql/16/main/pg_hba.conf' + +# Install ASDF +RUN git clone https://github.com/asdf-vm/asdf.git /opt/asdf --branch v0.13.1 + +# install Fly +RUN curl -L https://fly.io/install.sh | sudo -u vscode sh +RUN sh -c 'echo "export FLYCTL_INSTALL=/home/vscode/.fly" >> /home/vscode/.bashrc' +RUN sh -c 'echo "export PATH=\"/home/vscode/.fly/bin:$PATH\"" >> /home/vscode/.bashrc' + +# install Elixir and Erlang +ARG ELIXIR_VERSION=1.16.0 +ARG ERLANG_VERSION=26.2.1 +RUN sh -c 'echo "source /opt/asdf/asdf.sh" >> /home/vscode/.bashrc' +RUN sudo -u vscode bash -c 'source /opt/asdf/asdf.sh && asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git' +RUN sudo -u vscode bash -c "source /opt/asdf/asdf.sh && asdf install erlang $ERLANG_VERSION && asdf global erlang $ERLANG_VERSION" +RUN sudo -u vscode bash -c 'source /opt/asdf/asdf.sh && asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git' +RUN sudo -u vscode bash -c "source /opt/asdf/asdf.sh && asdf install elixir $ELIXIR_VERSION && asdf global elixir $ELIXIR_VERSION" + +# install NodeJS and Yarn +ARG NODEJS_VERSION=21.6.1 +RUN sudo -u vscode bash -c 'source /opt/asdf/asdf.sh && asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git' +RUN sudo -u vscode bash -c "source /opt/asdf/asdf.sh && asdf install nodejs $NODEJS_VERSION && asdf global nodejs $NODEJS_VERSION" +RUN sudo -u vscode bash -c 'source /opt/asdf/asdf.sh && npm install --global yarn' + +# locale +ENV LANG en_US.UTF-8 +ENV LC_ALL en_US.UTF-8 +ENV LANGUAGE en_US:en + +CMD ["/bin/bash"] \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..7159be9 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,22 @@ +{ + "name": "Ubuntu", + "build": {"dockerfile": "Dockerfile"}, + "postCreateCommand": ". .devcontainer/init.sh", + "forwardPorts": [4000, 5432], + + "customizations": { + "vscode": { + "extensions": [ + "github.codespaces", + "tamasfe.even-better-toml", + "phoenixframework.phoenix", + "JakeBecker.elixir-ls", + "mechatroner.rainbow-csv", + "Arsen.darcula-theme-for-elixir", + "bradlc.vscode-tailwindcss", + "ms-azuretools.vscode-docker", + "ckolkman.vscode-postgres" + ] + } + } +} diff --git a/.devcontainer/init.sh b/.devcontainer/init.sh new file mode 100644 index 0000000..0860fd3 --- /dev/null +++ b/.devcontainer/init.sh @@ -0,0 +1,3 @@ +sudo service postgresql start +cd assets && yarn install && cd .. +mix setup \ No newline at end of file diff --git a/.formatter.exs b/.formatter.exs new file mode 100644 index 0000000..ef8840c --- /dev/null +++ b/.formatter.exs @@ -0,0 +1,6 @@ +[ + import_deps: [:ecto, :ecto_sql, :phoenix], + subdirectories: ["priv/*/migrations"], + plugins: [Phoenix.LiveView.HTMLFormatter], + inputs: ["*.{heex,ex,exs}", "{config,lib,test}/**/*.{heex,ex,exs}", "priv/*/seeds.exs"] +] diff --git a/.github/workflows/fly.yml b/.github/workflows/fly.yml new file mode 100644 index 0000000..5bc64da --- /dev/null +++ b/.github/workflows/fly.yml @@ -0,0 +1,37 @@ +name: Fly Deploy +on: + push: + branches: + - main +jobs: + + test: + name: Test + runs-on: ubuntu-latest + services: + db: + image: postgres:latest + ports: ['5432:5432'] + env: + POSTGRES_PASSWORD: postgres + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + steps: + - uses: actions/checkout@v2 + - uses: erlef/setup-beam@v1 + with: + otp-version: '26.2.1' + elixir-version: '1.16.0' + - run: mix deps.get + - run: mix test + + deploy: + name: Deploy app + runs-on: ubuntu-latest + needs: + - test + steps: + - uses: actions/checkout@v3 + - uses: superfly/flyctl-actions/setup-flyctl@master + - run: flyctl deploy --remote-only + env: + FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..808a8b9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +# The directory Mix will write compiled artifacts to. +/_build/ + +# If you run "mix test --cover", coverage assets end up here. +/cover/ + +# The directory Mix downloads your dependencies sources to. +/deps/ + +# Where 3rd-party dependencies like ExDoc output generated docs. +/doc/ + +# Ignore .fetch files in case you like to edit your project deps locally. +/.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez + +# Temporary files, for example, from tests. +/tmp/ + +# Ignore package tarball (built via "mix hex.build"). +multi_tenant-*.tar + +# Ignore assets that are produced by build tools. +/priv/static/assets/ + +# Ignore digested assets cache. +/priv/static/cache_manifest.json + +# In case you use Node.js/npm, you want to ignore these. +npm-debug.log +/assets/node_modules/ + diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..18d8b60 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,31 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "mix_task", + "name": "mix (Default task)", + "request": "launch", + "exitAfterTaskReturns": false, + "task": "phx.server", + "projectDir": "${workspaceRoot}" + }, + { + "type": "mix_task", + "name": "mix test", + "request": "launch", + "task": "test", + "taskArgs": [ + "--trace" + ], + "startApps": true, + "projectDir": "${workspaceRoot}", + "requireFiles": [ + "test/**/test_helper.exs", + "test/**/*_test.exs" + ] + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..da1e2c7 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,52 @@ +{ + "workbench.startupEditor": "newUntitledFile", + "files.associations": { + "*.csv": "plaintext", + "*.heex": "phoenix-heex" + }, + "editor.columnSelection": false, + "redhat.telemetry.enabled": false, + "[xml]": { + "editor.defaultFormatter": "redhat.vscode-xml" + }, + "git.confirmSync": false, + "editor.inlineSuggest.enabled": true, + "[markdown]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "workbench.colorTheme": "Darcula theme for Elixir", + + "elixirLS.suggestSpecs": false, + "elixirLS.dialyzerEnabled": true, + "elixirLS.signatureAfterComplete": false, + "elixirLS.fetchDeps": false, + + "files.exclude": { + "**/_build": true, + "**/deps": true, + "**/priv/static": true, + "**/.elixir_ls": true + }, + + "[elixir]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "JakeBecker.elixir-ls" + }, + + "[phoenix-heex]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "JakeBecker.elixir-ls" + }, + + "emmet.includeLanguages": { + "elixir": "html", + "phoenix-heex": "html" + }, + "emmet.triggerExpansionOnTab": true, + "tailwindCSS.includeLanguages": { + "phoenix-heex": "html", + "elixir": "html", + // ... + }, + } + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..6f6682f --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# MultiTenant + +To start your Phoenix server: + + * Run `mix setup` to install and setup dependencies + * Start Phoenix endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server` + +Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. + +Ready to run in production? Please [check our deployment guides](https://hexdocs.pm/phoenix/deployment.html). + +## Learn more + + * Official website: https://www.phoenixframework.org/ + * Guides: https://hexdocs.pm/phoenix/overview.html + * Docs: https://hexdocs.pm/phoenix + * Forum: https://elixirforum.com/c/phoenix-forum + * Source: https://github.com/phoenixframework/phoenix diff --git a/assets/css/app.css b/assets/css/app.css new file mode 100644 index 0000000..378c8f9 --- /dev/null +++ b/assets/css/app.css @@ -0,0 +1,5 @@ +@import "tailwindcss/base"; +@import "tailwindcss/components"; +@import "tailwindcss/utilities"; + +/* This file is for your main application CSS */ diff --git a/assets/js/app.js b/assets/js/app.js new file mode 100644 index 0000000..df0cdd9 --- /dev/null +++ b/assets/js/app.js @@ -0,0 +1,41 @@ +// If you want to use Phoenix channels, run `mix help phx.gen.channel` +// to get started and then uncomment the line below. +// import "./user_socket.js" + +// You can include dependencies in two ways. +// +// The simplest option is to put them in assets/vendor and +// import them using relative paths: +// +// import "../vendor/some-package.js" +// +// Alternatively, you can `npm install some-package --prefix assets` and import +// them using a path starting with the package name: +// +// import "some-package" +// + +// Include phoenix_html to handle method=PUT/DELETE in forms and buttons. +import "phoenix_html" +// Establish Phoenix Socket and LiveView configuration. +import {Socket} from "phoenix" +import {LiveSocket} from "phoenix_live_view" +import topbar from "../vendor/topbar" + +let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content") +let liveSocket = new LiveSocket("/live", Socket, {params: {_csrf_token: csrfToken}}) + +// Show progress bar on live navigation and form submits +topbar.config({barColors: {0: "#29d"}, shadowColor: "rgba(0, 0, 0, .3)"}) +window.addEventListener("phx:page-loading-start", _info => topbar.show(300)) +window.addEventListener("phx:page-loading-stop", _info => topbar.hide()) + +// connect if there are any LiveViews on the page +liveSocket.connect() + +// expose liveSocket on window for web console debug logs and latency simulation: +// >> liveSocket.enableDebug() +// >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session +// >> liveSocket.disableLatencySim() +window.liveSocket = liveSocket + diff --git a/assets/tailwind.config.js b/assets/tailwind.config.js new file mode 100644 index 0000000..4d9f5ba --- /dev/null +++ b/assets/tailwind.config.js @@ -0,0 +1,68 @@ +// See the Tailwind configuration guide for advanced usage +// https://tailwindcss.com/docs/configuration + +const plugin = require("tailwindcss/plugin") +const fs = require("fs") +const path = require("path") + +module.exports = { + content: [ + "./js/**/*.js", + "../lib/multi_tenant_web.ex", + "../lib/multi_tenant_web/**/*.*ex" + ], + theme: { + extend: { + colors: { + brand: "#FD4F00", + } + }, + }, + plugins: [ + require("@tailwindcss/forms"), + // Allows prefixing tailwind classes with LiveView classes to add rules + // only when LiveView classes are applied, for example: + // + //
+ // + plugin(({addVariant}) => addVariant("phx-no-feedback", [".phx-no-feedback&", ".phx-no-feedback &"])), + plugin(({addVariant}) => addVariant("phx-click-loading", [".phx-click-loading&", ".phx-click-loading &"])), + plugin(({addVariant}) => addVariant("phx-submit-loading", [".phx-submit-loading&", ".phx-submit-loading &"])), + plugin(({addVariant}) => addVariant("phx-change-loading", [".phx-change-loading&", ".phx-change-loading &"])), + + // Embeds Heroicons (https://heroicons.com) into your app.css bundle + // See your `CoreComponents.icon/1` for more information. + // + plugin(function({matchComponents, theme}) { + let iconsDir = path.join(__dirname, "./vendor/heroicons/optimized") + let values = {} + let icons = [ + ["", "/24/outline"], + ["-solid", "/24/solid"], + ["-mini", "/20/solid"] + ] + icons.forEach(([suffix, dir]) => { + fs.readdirSync(path.join(iconsDir, dir)).forEach(file => { + let name = path.basename(file, ".svg") + suffix + values[name] = {name, fullPath: path.join(iconsDir, dir, file)} + }) + }) + matchComponents({ + "hero": ({name, fullPath}) => { + let content = fs.readFileSync(fullPath).toString().replace(/\r?\n|\r/g, "") + return { + [`--hero-${name}`]: `url('data:image/svg+xml;utf8,${content}')`, + "-webkit-mask": `var(--hero-${name})`, + "mask": `var(--hero-${name})`, + "mask-repeat": "no-repeat", + "background-color": "currentColor", + "vertical-align": "middle", + "display": "inline-block", + "width": theme("spacing.5"), + "height": theme("spacing.5") + } + } + }, {values}) + }) + ] +} diff --git a/assets/vendor/heroicons/LICENSE.md b/assets/vendor/heroicons/LICENSE.md new file mode 100644 index 0000000..1ac3e40 --- /dev/null +++ b/assets/vendor/heroicons/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Refactoring UI Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/assets/vendor/heroicons/UPGRADE.md b/assets/vendor/heroicons/UPGRADE.md new file mode 100644 index 0000000..5a140b9 --- /dev/null +++ b/assets/vendor/heroicons/UPGRADE.md @@ -0,0 +1,6 @@ +You are running heroicons v2.0.16. To upgrade in place, you can run the following command, +where your `HERO_VSN` export is your desired version: + + export HERO_VSN="2.0.16" ; \ + curl -L "https://github.com/tailwindlabs/heroicons/archive/refs/tags/v${HERO_VSN}.tar.gz" | \ + tar -xvz --strip-components=1 heroicons-${HERO_VSN}/optimized diff --git a/assets/vendor/heroicons/optimized/20/solid/academic-cap.svg b/assets/vendor/heroicons/optimized/20/solid/academic-cap.svg new file mode 100644 index 0000000..bb980e6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/academic-cap.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/adjustments-horizontal.svg b/assets/vendor/heroicons/optimized/20/solid/adjustments-horizontal.svg new file mode 100644 index 0000000..13f9251 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/adjustments-horizontal.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/adjustments-vertical.svg b/assets/vendor/heroicons/optimized/20/solid/adjustments-vertical.svg new file mode 100644 index 0000000..6f75b6c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/adjustments-vertical.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/archive-box-arrow-down.svg b/assets/vendor/heroicons/optimized/20/solid/archive-box-arrow-down.svg new file mode 100644 index 0000000..5ccef9d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/archive-box-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/archive-box-x-mark.svg b/assets/vendor/heroicons/optimized/20/solid/archive-box-x-mark.svg new file mode 100644 index 0000000..73acbef --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/archive-box-x-mark.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/archive-box.svg b/assets/vendor/heroicons/optimized/20/solid/archive-box.svg new file mode 100644 index 0000000..2205ae8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/archive-box.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-down-circle.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-down-circle.svg new file mode 100644 index 0000000..bb21a89 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-down-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-down-left.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-down-left.svg new file mode 100644 index 0000000..f0c3624 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-down-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square-stack.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square-stack.svg new file mode 100644 index 0000000..d9c4db0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square.svg new file mode 100644 index 0000000..4e8ee0f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-down-on-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-down-right.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-down-right.svg new file mode 100644 index 0000000..65cdada --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-down-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-down-tray.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-down-tray.svg new file mode 100644 index 0000000..5c3589d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-down-tray.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-down.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-down.svg new file mode 100644 index 0000000..8d577b1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-left-circle.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-left-circle.svg new file mode 100644 index 0000000..8cce243 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-left-circle.svg @@ -0,0 +1,10 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-left-on-rectangle.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-left-on-rectangle.svg new file mode 100644 index 0000000..74d0699 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-left-on-rectangle.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-left.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-left.svg new file mode 100644 index 0000000..c7efd30 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-long-down.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-long-down.svg new file mode 100644 index 0000000..d263061 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-long-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-long-left.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-long-left.svg new file mode 100644 index 0000000..297553c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-long-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-long-right.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-long-right.svg new file mode 100644 index 0000000..eea945e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-long-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-long-up.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-long-up.svg new file mode 100644 index 0000000..193ff97 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-long-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-path-rounded-square.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-path-rounded-square.svg new file mode 100644 index 0000000..7d3deb5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-path-rounded-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-path.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-path.svg new file mode 100644 index 0000000..1a31b4c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-path.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-right-circle.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-right-circle.svg new file mode 100644 index 0000000..4178da9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-right-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-right-on-rectangle.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-right-on-rectangle.svg new file mode 100644 index 0000000..27c4dff --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-right-on-rectangle.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-right.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-right.svg new file mode 100644 index 0000000..95cc517 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-small-down.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-small-down.svg new file mode 100644 index 0000000..b986c6c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-small-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-small-left.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-small-left.svg new file mode 100644 index 0000000..0cb7e71 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-small-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-small-right.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-small-right.svg new file mode 100644 index 0000000..16beb5e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-small-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-small-up.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-small-up.svg new file mode 100644 index 0000000..7fda0e5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-small-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-top-right-on-square.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-top-right-on-square.svg new file mode 100644 index 0000000..c93df54 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-top-right-on-square.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-trending-down.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-trending-down.svg new file mode 100644 index 0000000..5ec7c03 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-trending-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-trending-up.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-trending-up.svg new file mode 100644 index 0000000..67af2cc --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-trending-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-up-circle.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-up-circle.svg new file mode 100644 index 0000000..21d87f2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-up-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-up-left.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-up-left.svg new file mode 100644 index 0000000..fb50038 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-up-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square-stack.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square-stack.svg new file mode 100644 index 0000000..0df0ed2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square.svg new file mode 100644 index 0000000..01f18a8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-up-on-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-up-right.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-up-right.svg new file mode 100644 index 0000000..4841916 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-up-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-up-tray.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-up-tray.svg new file mode 100644 index 0000000..832afe5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-up-tray.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-up.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-up.svg new file mode 100644 index 0000000..24b12b7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-down.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-down.svg new file mode 100644 index 0000000..6839676 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-left.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-left.svg new file mode 100644 index 0000000..6691aa4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-right.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-right.svg new file mode 100644 index 0000000..9a6e23b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-up.svg b/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-up.svg new file mode 100644 index 0000000..8e65bf8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrow-uturn-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrows-pointing-in.svg b/assets/vendor/heroicons/optimized/20/solid/arrows-pointing-in.svg new file mode 100644 index 0000000..6275807 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrows-pointing-in.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrows-pointing-out.svg b/assets/vendor/heroicons/optimized/20/solid/arrows-pointing-out.svg new file mode 100644 index 0000000..14e1bcd --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrows-pointing-out.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrows-right-left.svg b/assets/vendor/heroicons/optimized/20/solid/arrows-right-left.svg new file mode 100644 index 0000000..87616d3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrows-right-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/arrows-up-down.svg b/assets/vendor/heroicons/optimized/20/solid/arrows-up-down.svg new file mode 100644 index 0000000..b9c43d9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/arrows-up-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/at-symbol.svg b/assets/vendor/heroicons/optimized/20/solid/at-symbol.svg new file mode 100644 index 0000000..a9e960d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/at-symbol.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/backspace.svg b/assets/vendor/heroicons/optimized/20/solid/backspace.svg new file mode 100644 index 0000000..d3c1686 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/backspace.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/backward.svg b/assets/vendor/heroicons/optimized/20/solid/backward.svg new file mode 100644 index 0000000..8d341b2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/backward.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/banknotes.svg b/assets/vendor/heroicons/optimized/20/solid/banknotes.svg new file mode 100644 index 0000000..979c586 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/banknotes.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bars-2.svg b/assets/vendor/heroicons/optimized/20/solid/bars-2.svg new file mode 100644 index 0000000..4ce1e19 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bars-2.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bars-3-bottom-left.svg b/assets/vendor/heroicons/optimized/20/solid/bars-3-bottom-left.svg new file mode 100644 index 0000000..ebf785d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bars-3-bottom-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bars-3-bottom-right.svg b/assets/vendor/heroicons/optimized/20/solid/bars-3-bottom-right.svg new file mode 100644 index 0000000..af69c3d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bars-3-bottom-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bars-3-center-left.svg b/assets/vendor/heroicons/optimized/20/solid/bars-3-center-left.svg new file mode 100644 index 0000000..ee8a526 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bars-3-center-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bars-3.svg b/assets/vendor/heroicons/optimized/20/solid/bars-3.svg new file mode 100644 index 0000000..d164cfd --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bars-3.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bars-4.svg b/assets/vendor/heroicons/optimized/20/solid/bars-4.svg new file mode 100644 index 0000000..8e3f650 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bars-4.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bars-arrow-down.svg b/assets/vendor/heroicons/optimized/20/solid/bars-arrow-down.svg new file mode 100644 index 0000000..fd8f98d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bars-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bars-arrow-up.svg b/assets/vendor/heroicons/optimized/20/solid/bars-arrow-up.svg new file mode 100644 index 0000000..ba77dbe --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bars-arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/battery-0.svg b/assets/vendor/heroicons/optimized/20/solid/battery-0.svg new file mode 100644 index 0000000..2320f7e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/battery-0.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/battery-100.svg b/assets/vendor/heroicons/optimized/20/solid/battery-100.svg new file mode 100644 index 0000000..e04408f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/battery-100.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/battery-50.svg b/assets/vendor/heroicons/optimized/20/solid/battery-50.svg new file mode 100644 index 0000000..e5e8498 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/battery-50.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/beaker.svg b/assets/vendor/heroicons/optimized/20/solid/beaker.svg new file mode 100644 index 0000000..025c46b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/beaker.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bell-alert.svg b/assets/vendor/heroicons/optimized/20/solid/bell-alert.svg new file mode 100644 index 0000000..c84dc7c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bell-alert.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bell-slash.svg b/assets/vendor/heroicons/optimized/20/solid/bell-slash.svg new file mode 100644 index 0000000..a4296ac --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bell-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bell-snooze.svg b/assets/vendor/heroicons/optimized/20/solid/bell-snooze.svg new file mode 100644 index 0000000..ad4f8c5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bell-snooze.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bell.svg b/assets/vendor/heroicons/optimized/20/solid/bell.svg new file mode 100644 index 0000000..2a81bba --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bell.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bolt-slash.svg b/assets/vendor/heroicons/optimized/20/solid/bolt-slash.svg new file mode 100644 index 0000000..e4c2499 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bolt-slash.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bolt.svg b/assets/vendor/heroicons/optimized/20/solid/bolt.svg new file mode 100644 index 0000000..53f4fb9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bolt.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/book-open.svg b/assets/vendor/heroicons/optimized/20/solid/book-open.svg new file mode 100644 index 0000000..99cf0d4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/book-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bookmark-slash.svg b/assets/vendor/heroicons/optimized/20/solid/bookmark-slash.svg new file mode 100644 index 0000000..1442fd4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bookmark-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bookmark-square.svg b/assets/vendor/heroicons/optimized/20/solid/bookmark-square.svg new file mode 100644 index 0000000..849c425 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bookmark-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bookmark.svg b/assets/vendor/heroicons/optimized/20/solid/bookmark.svg new file mode 100644 index 0000000..a3e68de --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bookmark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/briefcase.svg b/assets/vendor/heroicons/optimized/20/solid/briefcase.svg new file mode 100644 index 0000000..275f4b3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/briefcase.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/bug-ant.svg b/assets/vendor/heroicons/optimized/20/solid/bug-ant.svg new file mode 100644 index 0000000..bc86615 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/bug-ant.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/building-library.svg b/assets/vendor/heroicons/optimized/20/solid/building-library.svg new file mode 100644 index 0000000..610bce7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/building-library.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/building-office-2.svg b/assets/vendor/heroicons/optimized/20/solid/building-office-2.svg new file mode 100644 index 0000000..b25c33d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/building-office-2.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/building-office.svg b/assets/vendor/heroicons/optimized/20/solid/building-office.svg new file mode 100644 index 0000000..8fb3fab --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/building-office.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/building-storefront.svg b/assets/vendor/heroicons/optimized/20/solid/building-storefront.svg new file mode 100644 index 0000000..0d7da7c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/building-storefront.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cake.svg b/assets/vendor/heroicons/optimized/20/solid/cake.svg new file mode 100644 index 0000000..c58d3b9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cake.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/calculator.svg b/assets/vendor/heroicons/optimized/20/solid/calculator.svg new file mode 100644 index 0000000..cc26160 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/calculator.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/calendar-days.svg b/assets/vendor/heroicons/optimized/20/solid/calendar-days.svg new file mode 100644 index 0000000..ded2318 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/calendar-days.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/calendar.svg b/assets/vendor/heroicons/optimized/20/solid/calendar.svg new file mode 100644 index 0000000..dea374d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/calendar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/camera.svg b/assets/vendor/heroicons/optimized/20/solid/camera.svg new file mode 100644 index 0000000..17356ae --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/camera.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chart-bar-square.svg b/assets/vendor/heroicons/optimized/20/solid/chart-bar-square.svg new file mode 100644 index 0000000..6d5b976 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chart-bar-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chart-bar.svg b/assets/vendor/heroicons/optimized/20/solid/chart-bar.svg new file mode 100644 index 0000000..c496112 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chart-bar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chart-pie.svg b/assets/vendor/heroicons/optimized/20/solid/chart-pie.svg new file mode 100644 index 0000000..37d18c9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chart-pie.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chat-bubble-bottom-center-text.svg b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-bottom-center-text.svg new file mode 100644 index 0000000..fee91be --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-bottom-center-text.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chat-bubble-bottom-center.svg b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-bottom-center.svg new file mode 100644 index 0000000..24de840 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-bottom-center.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chat-bubble-left-ellipsis.svg b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-left-ellipsis.svg new file mode 100644 index 0000000..7e2b06c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-left-ellipsis.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chat-bubble-left-right.svg b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-left-right.svg new file mode 100644 index 0000000..fceca7f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-left-right.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chat-bubble-left.svg b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-left.svg new file mode 100644 index 0000000..cd706f9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chat-bubble-oval-left-ellipsis.svg b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-oval-left-ellipsis.svg new file mode 100644 index 0000000..88d9c32 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-oval-left-ellipsis.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chat-bubble-oval-left.svg b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-oval-left.svg new file mode 100644 index 0000000..f3b3883 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chat-bubble-oval-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/check-badge.svg b/assets/vendor/heroicons/optimized/20/solid/check-badge.svg new file mode 100644 index 0000000..b13190c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/check-badge.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/check-circle.svg b/assets/vendor/heroicons/optimized/20/solid/check-circle.svg new file mode 100644 index 0000000..dbbc905 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/check-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/check.svg b/assets/vendor/heroicons/optimized/20/solid/check.svg new file mode 100644 index 0000000..d1956aa --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/check.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chevron-double-down.svg b/assets/vendor/heroicons/optimized/20/solid/chevron-double-down.svg new file mode 100644 index 0000000..3c65193 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chevron-double-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chevron-double-left.svg b/assets/vendor/heroicons/optimized/20/solid/chevron-double-left.svg new file mode 100644 index 0000000..a41e615 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chevron-double-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chevron-double-right.svg b/assets/vendor/heroicons/optimized/20/solid/chevron-double-right.svg new file mode 100644 index 0000000..d78c932 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chevron-double-right.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chevron-double-up.svg b/assets/vendor/heroicons/optimized/20/solid/chevron-double-up.svg new file mode 100644 index 0000000..f7ac668 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chevron-double-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chevron-down.svg b/assets/vendor/heroicons/optimized/20/solid/chevron-down.svg new file mode 100644 index 0000000..6b63dfb --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chevron-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chevron-left.svg b/assets/vendor/heroicons/optimized/20/solid/chevron-left.svg new file mode 100644 index 0000000..b484a40 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chevron-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chevron-right.svg b/assets/vendor/heroicons/optimized/20/solid/chevron-right.svg new file mode 100644 index 0000000..9ce3745 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chevron-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chevron-up-down.svg b/assets/vendor/heroicons/optimized/20/solid/chevron-up-down.svg new file mode 100644 index 0000000..2499bb1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chevron-up-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/chevron-up.svg b/assets/vendor/heroicons/optimized/20/solid/chevron-up.svg new file mode 100644 index 0000000..8aaaa1f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/chevron-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/circle-stack.svg b/assets/vendor/heroicons/optimized/20/solid/circle-stack.svg new file mode 100644 index 0000000..fae2090 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/circle-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/clipboard-document-check.svg b/assets/vendor/heroicons/optimized/20/solid/clipboard-document-check.svg new file mode 100644 index 0000000..2447012 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/clipboard-document-check.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/clipboard-document-list.svg b/assets/vendor/heroicons/optimized/20/solid/clipboard-document-list.svg new file mode 100644 index 0000000..a78b24c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/clipboard-document-list.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/clipboard-document.svg b/assets/vendor/heroicons/optimized/20/solid/clipboard-document.svg new file mode 100644 index 0000000..f29a433 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/clipboard-document.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/clipboard.svg b/assets/vendor/heroicons/optimized/20/solid/clipboard.svg new file mode 100644 index 0000000..3b2a7ff --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/clipboard.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/clock.svg b/assets/vendor/heroicons/optimized/20/solid/clock.svg new file mode 100644 index 0000000..d72dd62 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/clock.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cloud-arrow-down.svg b/assets/vendor/heroicons/optimized/20/solid/cloud-arrow-down.svg new file mode 100644 index 0000000..cb32c04 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cloud-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cloud-arrow-up.svg b/assets/vendor/heroicons/optimized/20/solid/cloud-arrow-up.svg new file mode 100644 index 0000000..06b2c4a --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cloud-arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cloud.svg b/assets/vendor/heroicons/optimized/20/solid/cloud.svg new file mode 100644 index 0000000..c5eb0c8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cloud.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/code-bracket-square.svg b/assets/vendor/heroicons/optimized/20/solid/code-bracket-square.svg new file mode 100644 index 0000000..e4e3530 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/code-bracket-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/code-bracket.svg b/assets/vendor/heroicons/optimized/20/solid/code-bracket.svg new file mode 100644 index 0000000..4adfd32 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/code-bracket.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cog-6-tooth.svg b/assets/vendor/heroicons/optimized/20/solid/cog-6-tooth.svg new file mode 100644 index 0000000..435032f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cog-6-tooth.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cog-8-tooth.svg b/assets/vendor/heroicons/optimized/20/solid/cog-8-tooth.svg new file mode 100644 index 0000000..0450feb --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cog-8-tooth.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cog.svg b/assets/vendor/heroicons/optimized/20/solid/cog.svg new file mode 100644 index 0000000..10f43b5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cog.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/command-line.svg b/assets/vendor/heroicons/optimized/20/solid/command-line.svg new file mode 100644 index 0000000..59cf34c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/command-line.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/computer-desktop.svg b/assets/vendor/heroicons/optimized/20/solid/computer-desktop.svg new file mode 100644 index 0000000..4eeac1b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/computer-desktop.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cpu-chip.svg b/assets/vendor/heroicons/optimized/20/solid/cpu-chip.svg new file mode 100644 index 0000000..f7c49b4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cpu-chip.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/credit-card.svg b/assets/vendor/heroicons/optimized/20/solid/credit-card.svg new file mode 100644 index 0000000..d650fea --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/credit-card.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cube-transparent.svg b/assets/vendor/heroicons/optimized/20/solid/cube-transparent.svg new file mode 100644 index 0000000..bfe9dae --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cube-transparent.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cube.svg b/assets/vendor/heroicons/optimized/20/solid/cube.svg new file mode 100644 index 0000000..c3436ed --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cube.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/currency-bangladeshi.svg b/assets/vendor/heroicons/optimized/20/solid/currency-bangladeshi.svg new file mode 100644 index 0000000..2a27260 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/currency-bangladeshi.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/currency-dollar.svg b/assets/vendor/heroicons/optimized/20/solid/currency-dollar.svg new file mode 100644 index 0000000..1b00de7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/currency-dollar.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/currency-euro.svg b/assets/vendor/heroicons/optimized/20/solid/currency-euro.svg new file mode 100644 index 0000000..43fda8e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/currency-euro.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/currency-pound.svg b/assets/vendor/heroicons/optimized/20/solid/currency-pound.svg new file mode 100644 index 0000000..9bc57fe --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/currency-pound.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/currency-rupee.svg b/assets/vendor/heroicons/optimized/20/solid/currency-rupee.svg new file mode 100644 index 0000000..67da528 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/currency-rupee.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/currency-yen.svg b/assets/vendor/heroicons/optimized/20/solid/currency-yen.svg new file mode 100644 index 0000000..68fca06 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/currency-yen.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cursor-arrow-rays.svg b/assets/vendor/heroicons/optimized/20/solid/cursor-arrow-rays.svg new file mode 100644 index 0000000..d2d36a7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cursor-arrow-rays.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/cursor-arrow-ripple.svg b/assets/vendor/heroicons/optimized/20/solid/cursor-arrow-ripple.svg new file mode 100644 index 0000000..89ccfda --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/cursor-arrow-ripple.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/device-phone-mobile.svg b/assets/vendor/heroicons/optimized/20/solid/device-phone-mobile.svg new file mode 100644 index 0000000..68fac4f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/device-phone-mobile.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/device-tablet.svg b/assets/vendor/heroicons/optimized/20/solid/device-tablet.svg new file mode 100644 index 0000000..2490e1f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/device-tablet.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document-arrow-down.svg b/assets/vendor/heroicons/optimized/20/solid/document-arrow-down.svg new file mode 100644 index 0000000..a51461d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document-arrow-up.svg b/assets/vendor/heroicons/optimized/20/solid/document-arrow-up.svg new file mode 100644 index 0000000..d55aacd --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document-arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document-chart-bar.svg b/assets/vendor/heroicons/optimized/20/solid/document-chart-bar.svg new file mode 100644 index 0000000..8d5f60a --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document-chart-bar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document-check.svg b/assets/vendor/heroicons/optimized/20/solid/document-check.svg new file mode 100644 index 0000000..b28da14 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document-check.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document-duplicate.svg b/assets/vendor/heroicons/optimized/20/solid/document-duplicate.svg new file mode 100644 index 0000000..64768cf --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document-duplicate.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document-magnifying-glass.svg b/assets/vendor/heroicons/optimized/20/solid/document-magnifying-glass.svg new file mode 100644 index 0000000..0dc8eba --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document-magnifying-glass.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document-minus.svg b/assets/vendor/heroicons/optimized/20/solid/document-minus.svg new file mode 100644 index 0000000..bf7af06 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document-plus.svg b/assets/vendor/heroicons/optimized/20/solid/document-plus.svg new file mode 100644 index 0000000..133cc82 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document-text.svg b/assets/vendor/heroicons/optimized/20/solid/document-text.svg new file mode 100644 index 0000000..f7d91ba --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document-text.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/document.svg b/assets/vendor/heroicons/optimized/20/solid/document.svg new file mode 100644 index 0000000..aa7070c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/document.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/ellipsis-horizontal-circle.svg b/assets/vendor/heroicons/optimized/20/solid/ellipsis-horizontal-circle.svg new file mode 100644 index 0000000..799cf88 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/ellipsis-horizontal-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/ellipsis-horizontal.svg b/assets/vendor/heroicons/optimized/20/solid/ellipsis-horizontal.svg new file mode 100644 index 0000000..a82211c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/ellipsis-horizontal.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/ellipsis-vertical.svg b/assets/vendor/heroicons/optimized/20/solid/ellipsis-vertical.svg new file mode 100644 index 0000000..ac9c83f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/ellipsis-vertical.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/envelope-open.svg b/assets/vendor/heroicons/optimized/20/solid/envelope-open.svg new file mode 100644 index 0000000..a60035b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/envelope-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/envelope.svg b/assets/vendor/heroicons/optimized/20/solid/envelope.svg new file mode 100644 index 0000000..b582b8f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/envelope.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/exclamation-circle.svg b/assets/vendor/heroicons/optimized/20/solid/exclamation-circle.svg new file mode 100644 index 0000000..3cf5b59 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/exclamation-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/exclamation-triangle.svg b/assets/vendor/heroicons/optimized/20/solid/exclamation-triangle.svg new file mode 100644 index 0000000..a6cc02f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/exclamation-triangle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/eye-dropper.svg b/assets/vendor/heroicons/optimized/20/solid/eye-dropper.svg new file mode 100644 index 0000000..cce0833 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/eye-dropper.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/eye-slash.svg b/assets/vendor/heroicons/optimized/20/solid/eye-slash.svg new file mode 100644 index 0000000..cc2e222 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/eye-slash.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/eye.svg b/assets/vendor/heroicons/optimized/20/solid/eye.svg new file mode 100644 index 0000000..b17cec9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/eye.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/face-frown.svg b/assets/vendor/heroicons/optimized/20/solid/face-frown.svg new file mode 100644 index 0000000..8cbb3b3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/face-frown.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/face-smile.svg b/assets/vendor/heroicons/optimized/20/solid/face-smile.svg new file mode 100644 index 0000000..434c83e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/face-smile.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/film.svg b/assets/vendor/heroicons/optimized/20/solid/film.svg new file mode 100644 index 0000000..9573445 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/film.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/finger-print.svg b/assets/vendor/heroicons/optimized/20/solid/finger-print.svg new file mode 100644 index 0000000..409d67e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/finger-print.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/fire.svg b/assets/vendor/heroicons/optimized/20/solid/fire.svg new file mode 100644 index 0000000..88fb85e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/fire.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/flag.svg b/assets/vendor/heroicons/optimized/20/solid/flag.svg new file mode 100644 index 0000000..b790f05 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/flag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/folder-arrow-down.svg b/assets/vendor/heroicons/optimized/20/solid/folder-arrow-down.svg new file mode 100644 index 0000000..4c2a915 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/folder-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/folder-minus.svg b/assets/vendor/heroicons/optimized/20/solid/folder-minus.svg new file mode 100644 index 0000000..248388b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/folder-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/folder-open.svg b/assets/vendor/heroicons/optimized/20/solid/folder-open.svg new file mode 100644 index 0000000..79d245e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/folder-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/folder-plus.svg b/assets/vendor/heroicons/optimized/20/solid/folder-plus.svg new file mode 100644 index 0000000..0780a54 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/folder-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/folder.svg b/assets/vendor/heroicons/optimized/20/solid/folder.svg new file mode 100644 index 0000000..c92e0ff --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/folder.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/forward.svg b/assets/vendor/heroicons/optimized/20/solid/forward.svg new file mode 100644 index 0000000..11fd161 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/forward.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/funnel.svg b/assets/vendor/heroicons/optimized/20/solid/funnel.svg new file mode 100644 index 0000000..af3078f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/funnel.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/gif.svg b/assets/vendor/heroicons/optimized/20/solid/gif.svg new file mode 100644 index 0000000..ff1cd38 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/gif.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/gift-top.svg b/assets/vendor/heroicons/optimized/20/solid/gift-top.svg new file mode 100644 index 0000000..d650d04 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/gift-top.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/gift.svg b/assets/vendor/heroicons/optimized/20/solid/gift.svg new file mode 100644 index 0000000..90362ab --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/gift.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/globe-alt.svg b/assets/vendor/heroicons/optimized/20/solid/globe-alt.svg new file mode 100644 index 0000000..c8ff599 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/globe-alt.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/globe-americas.svg b/assets/vendor/heroicons/optimized/20/solid/globe-americas.svg new file mode 100644 index 0000000..7de8723 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/globe-americas.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/globe-asia-australia.svg b/assets/vendor/heroicons/optimized/20/solid/globe-asia-australia.svg new file mode 100644 index 0000000..b3da4dd --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/globe-asia-australia.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/globe-europe-africa.svg b/assets/vendor/heroicons/optimized/20/solid/globe-europe-africa.svg new file mode 100644 index 0000000..92db1e1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/globe-europe-africa.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/hand-raised.svg b/assets/vendor/heroicons/optimized/20/solid/hand-raised.svg new file mode 100644 index 0000000..caa27db --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/hand-raised.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/hand-thumb-down.svg b/assets/vendor/heroicons/optimized/20/solid/hand-thumb-down.svg new file mode 100644 index 0000000..06ffbe0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/hand-thumb-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/hand-thumb-up.svg b/assets/vendor/heroicons/optimized/20/solid/hand-thumb-up.svg new file mode 100644 index 0000000..3d67d98 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/hand-thumb-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/hashtag.svg b/assets/vendor/heroicons/optimized/20/solid/hashtag.svg new file mode 100644 index 0000000..29c9f10 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/hashtag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/heart.svg b/assets/vendor/heroicons/optimized/20/solid/heart.svg new file mode 100644 index 0000000..96e63d9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/heart.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/home-modern.svg b/assets/vendor/heroicons/optimized/20/solid/home-modern.svg new file mode 100644 index 0000000..95033a3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/home-modern.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/home.svg b/assets/vendor/heroicons/optimized/20/solid/home.svg new file mode 100644 index 0000000..ae2acdc --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/home.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/identification.svg b/assets/vendor/heroicons/optimized/20/solid/identification.svg new file mode 100644 index 0000000..7a8338c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/identification.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/inbox-arrow-down.svg b/assets/vendor/heroicons/optimized/20/solid/inbox-arrow-down.svg new file mode 100644 index 0000000..37f464e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/inbox-arrow-down.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/inbox-stack.svg b/assets/vendor/heroicons/optimized/20/solid/inbox-stack.svg new file mode 100644 index 0000000..b8f22d1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/inbox-stack.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/inbox.svg b/assets/vendor/heroicons/optimized/20/solid/inbox.svg new file mode 100644 index 0000000..87ae30d --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/inbox.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/information-circle.svg b/assets/vendor/heroicons/optimized/20/solid/information-circle.svg new file mode 100644 index 0000000..25ac644 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/information-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/key.svg b/assets/vendor/heroicons/optimized/20/solid/key.svg new file mode 100644 index 0000000..97e8ad8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/key.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/language.svg b/assets/vendor/heroicons/optimized/20/solid/language.svg new file mode 100644 index 0000000..e7524be --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/language.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/lifebuoy.svg b/assets/vendor/heroicons/optimized/20/solid/lifebuoy.svg new file mode 100644 index 0000000..79134c1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/lifebuoy.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/light-bulb.svg b/assets/vendor/heroicons/optimized/20/solid/light-bulb.svg new file mode 100644 index 0000000..415e374 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/light-bulb.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/link.svg b/assets/vendor/heroicons/optimized/20/solid/link.svg new file mode 100644 index 0000000..e820413 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/link.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/list-bullet.svg b/assets/vendor/heroicons/optimized/20/solid/list-bullet.svg new file mode 100644 index 0000000..3637934 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/list-bullet.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/lock-closed.svg b/assets/vendor/heroicons/optimized/20/solid/lock-closed.svg new file mode 100644 index 0000000..e7e1dc1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/lock-closed.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/lock-open.svg b/assets/vendor/heroicons/optimized/20/solid/lock-open.svg new file mode 100644 index 0000000..2ac4b14 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/lock-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/magnifying-glass-circle.svg b/assets/vendor/heroicons/optimized/20/solid/magnifying-glass-circle.svg new file mode 100644 index 0000000..e025769 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/magnifying-glass-circle.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/magnifying-glass-minus.svg b/assets/vendor/heroicons/optimized/20/solid/magnifying-glass-minus.svg new file mode 100644 index 0000000..a8fb7a2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/magnifying-glass-minus.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/magnifying-glass-plus.svg b/assets/vendor/heroicons/optimized/20/solid/magnifying-glass-plus.svg new file mode 100644 index 0000000..e55fc4c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/magnifying-glass-plus.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/magnifying-glass.svg b/assets/vendor/heroicons/optimized/20/solid/magnifying-glass.svg new file mode 100644 index 0000000..d90520a --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/magnifying-glass.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/map-pin.svg b/assets/vendor/heroicons/optimized/20/solid/map-pin.svg new file mode 100644 index 0000000..7adc8a9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/map-pin.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/map.svg b/assets/vendor/heroicons/optimized/20/solid/map.svg new file mode 100644 index 0000000..7e25c7b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/map.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/megaphone.svg b/assets/vendor/heroicons/optimized/20/solid/megaphone.svg new file mode 100644 index 0000000..cf73785 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/megaphone.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/microphone.svg b/assets/vendor/heroicons/optimized/20/solid/microphone.svg new file mode 100644 index 0000000..635ded0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/microphone.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/minus-circle.svg b/assets/vendor/heroicons/optimized/20/solid/minus-circle.svg new file mode 100644 index 0000000..5c361e2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/minus-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/minus-small.svg b/assets/vendor/heroicons/optimized/20/solid/minus-small.svg new file mode 100644 index 0000000..4e041d3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/minus-small.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/minus.svg b/assets/vendor/heroicons/optimized/20/solid/minus.svg new file mode 100644 index 0000000..6d8dd24 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/moon.svg b/assets/vendor/heroicons/optimized/20/solid/moon.svg new file mode 100644 index 0000000..b592110 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/moon.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/musical-note.svg b/assets/vendor/heroicons/optimized/20/solid/musical-note.svg new file mode 100644 index 0000000..c7f0aa8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/musical-note.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/newspaper.svg b/assets/vendor/heroicons/optimized/20/solid/newspaper.svg new file mode 100644 index 0000000..be785e3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/newspaper.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/no-symbol.svg b/assets/vendor/heroicons/optimized/20/solid/no-symbol.svg new file mode 100644 index 0000000..8463da2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/no-symbol.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/paint-brush.svg b/assets/vendor/heroicons/optimized/20/solid/paint-brush.svg new file mode 100644 index 0000000..c2db8c0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/paint-brush.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/paper-airplane.svg b/assets/vendor/heroicons/optimized/20/solid/paper-airplane.svg new file mode 100644 index 0000000..35315ad --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/paper-airplane.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/paper-clip.svg b/assets/vendor/heroicons/optimized/20/solid/paper-clip.svg new file mode 100644 index 0000000..b38155e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/paper-clip.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/pause-circle.svg b/assets/vendor/heroicons/optimized/20/solid/pause-circle.svg new file mode 100644 index 0000000..732530a --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/pause-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/pause.svg b/assets/vendor/heroicons/optimized/20/solid/pause.svg new file mode 100644 index 0000000..b6544ba --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/pause.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/pencil-square.svg b/assets/vendor/heroicons/optimized/20/solid/pencil-square.svg new file mode 100644 index 0000000..129ee44 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/pencil-square.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/pencil.svg b/assets/vendor/heroicons/optimized/20/solid/pencil.svg new file mode 100644 index 0000000..fa50498 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/pencil.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/phone-arrow-down-left.svg b/assets/vendor/heroicons/optimized/20/solid/phone-arrow-down-left.svg new file mode 100644 index 0000000..feeb636 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/phone-arrow-down-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/phone-arrow-up-right.svg b/assets/vendor/heroicons/optimized/20/solid/phone-arrow-up-right.svg new file mode 100644 index 0000000..e1d9331 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/phone-arrow-up-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/phone-x-mark.svg b/assets/vendor/heroicons/optimized/20/solid/phone-x-mark.svg new file mode 100644 index 0000000..6f1fd36 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/phone-x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/phone.svg b/assets/vendor/heroicons/optimized/20/solid/phone.svg new file mode 100644 index 0000000..5fd57fc --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/phone.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/photo.svg b/assets/vendor/heroicons/optimized/20/solid/photo.svg new file mode 100644 index 0000000..db063d3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/photo.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/play-circle.svg b/assets/vendor/heroicons/optimized/20/solid/play-circle.svg new file mode 100644 index 0000000..d1587b7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/play-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/play-pause.svg b/assets/vendor/heroicons/optimized/20/solid/play-pause.svg new file mode 100644 index 0000000..cdfa63b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/play-pause.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/play.svg b/assets/vendor/heroicons/optimized/20/solid/play.svg new file mode 100644 index 0000000..2cd53e1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/play.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/plus-circle.svg b/assets/vendor/heroicons/optimized/20/solid/plus-circle.svg new file mode 100644 index 0000000..3925a14 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/plus-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/plus-small.svg b/assets/vendor/heroicons/optimized/20/solid/plus-small.svg new file mode 100644 index 0000000..eb22598 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/plus-small.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/plus.svg b/assets/vendor/heroicons/optimized/20/solid/plus.svg new file mode 100644 index 0000000..218ab93 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/power.svg b/assets/vendor/heroicons/optimized/20/solid/power.svg new file mode 100644 index 0000000..1603820 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/power.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/presentation-chart-bar.svg b/assets/vendor/heroicons/optimized/20/solid/presentation-chart-bar.svg new file mode 100644 index 0000000..e1a4242 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/presentation-chart-bar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/presentation-chart-line.svg b/assets/vendor/heroicons/optimized/20/solid/presentation-chart-line.svg new file mode 100644 index 0000000..2e9281f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/presentation-chart-line.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/printer.svg b/assets/vendor/heroicons/optimized/20/solid/printer.svg new file mode 100644 index 0000000..81d93dc --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/printer.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/puzzle-piece.svg b/assets/vendor/heroicons/optimized/20/solid/puzzle-piece.svg new file mode 100644 index 0000000..e5329e5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/puzzle-piece.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/qr-code.svg b/assets/vendor/heroicons/optimized/20/solid/qr-code.svg new file mode 100644 index 0000000..d5daf2a --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/qr-code.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/question-mark-circle.svg b/assets/vendor/heroicons/optimized/20/solid/question-mark-circle.svg new file mode 100644 index 0000000..893dab5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/question-mark-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/queue-list.svg b/assets/vendor/heroicons/optimized/20/solid/queue-list.svg new file mode 100644 index 0000000..91f5b57 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/queue-list.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/radio.svg b/assets/vendor/heroicons/optimized/20/solid/radio.svg new file mode 100644 index 0000000..9a12c8b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/radio.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/receipt-percent.svg b/assets/vendor/heroicons/optimized/20/solid/receipt-percent.svg new file mode 100644 index 0000000..1a8f254 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/receipt-percent.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/receipt-refund.svg b/assets/vendor/heroicons/optimized/20/solid/receipt-refund.svg new file mode 100644 index 0000000..a134c56 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/receipt-refund.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/rectangle-group.svg b/assets/vendor/heroicons/optimized/20/solid/rectangle-group.svg new file mode 100644 index 0000000..599d5f4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/rectangle-group.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/rectangle-stack.svg b/assets/vendor/heroicons/optimized/20/solid/rectangle-stack.svg new file mode 100644 index 0000000..94b5654 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/rectangle-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/rocket-launch.svg b/assets/vendor/heroicons/optimized/20/solid/rocket-launch.svg new file mode 100644 index 0000000..b97e89e --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/rocket-launch.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/rss.svg b/assets/vendor/heroicons/optimized/20/solid/rss.svg new file mode 100644 index 0000000..538ae9a --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/rss.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/scale.svg b/assets/vendor/heroicons/optimized/20/solid/scale.svg new file mode 100644 index 0000000..60b0ed9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/scale.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/scissors.svg b/assets/vendor/heroicons/optimized/20/solid/scissors.svg new file mode 100644 index 0000000..3122658 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/scissors.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/server-stack.svg b/assets/vendor/heroicons/optimized/20/solid/server-stack.svg new file mode 100644 index 0000000..2247dbe --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/server-stack.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/server.svg b/assets/vendor/heroicons/optimized/20/solid/server.svg new file mode 100644 index 0000000..6c8899b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/server.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/share.svg b/assets/vendor/heroicons/optimized/20/solid/share.svg new file mode 100644 index 0000000..e5aafee --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/share.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/shield-check.svg b/assets/vendor/heroicons/optimized/20/solid/shield-check.svg new file mode 100644 index 0000000..a8572d4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/shield-check.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/shield-exclamation.svg b/assets/vendor/heroicons/optimized/20/solid/shield-exclamation.svg new file mode 100644 index 0000000..8562de4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/shield-exclamation.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/shopping-bag.svg b/assets/vendor/heroicons/optimized/20/solid/shopping-bag.svg new file mode 100644 index 0000000..e70c815 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/shopping-bag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/shopping-cart.svg b/assets/vendor/heroicons/optimized/20/solid/shopping-cart.svg new file mode 100644 index 0000000..855a631 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/shopping-cart.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/signal-slash.svg b/assets/vendor/heroicons/optimized/20/solid/signal-slash.svg new file mode 100644 index 0000000..822179a --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/signal-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/signal.svg b/assets/vendor/heroicons/optimized/20/solid/signal.svg new file mode 100644 index 0000000..7539204 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/signal.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/sparkles.svg b/assets/vendor/heroicons/optimized/20/solid/sparkles.svg new file mode 100644 index 0000000..a247c94 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/sparkles.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/speaker-wave.svg b/assets/vendor/heroicons/optimized/20/solid/speaker-wave.svg new file mode 100644 index 0000000..2e6b3e0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/speaker-wave.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/speaker-x-mark.svg b/assets/vendor/heroicons/optimized/20/solid/speaker-x-mark.svg new file mode 100644 index 0000000..0c39f61 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/speaker-x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/square-2-stack.svg b/assets/vendor/heroicons/optimized/20/solid/square-2-stack.svg new file mode 100644 index 0000000..177d43a --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/square-2-stack.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/square-3-stack-3d.svg b/assets/vendor/heroicons/optimized/20/solid/square-3-stack-3d.svg new file mode 100644 index 0000000..7d6b44f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/square-3-stack-3d.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/squares-2x2.svg b/assets/vendor/heroicons/optimized/20/solid/squares-2x2.svg new file mode 100644 index 0000000..47c1817 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/squares-2x2.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/squares-plus.svg b/assets/vendor/heroicons/optimized/20/solid/squares-plus.svg new file mode 100644 index 0000000..019eb37 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/squares-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/star.svg b/assets/vendor/heroicons/optimized/20/solid/star.svg new file mode 100644 index 0000000..a870365 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/star.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/stop-circle.svg b/assets/vendor/heroicons/optimized/20/solid/stop-circle.svg new file mode 100644 index 0000000..9167a64 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/stop-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/stop.svg b/assets/vendor/heroicons/optimized/20/solid/stop.svg new file mode 100644 index 0000000..b0e40db --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/stop.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/sun.svg b/assets/vendor/heroicons/optimized/20/solid/sun.svg new file mode 100644 index 0000000..449e36c --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/sun.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/swatch.svg b/assets/vendor/heroicons/optimized/20/solid/swatch.svg new file mode 100644 index 0000000..1089548 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/swatch.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/table-cells.svg b/assets/vendor/heroicons/optimized/20/solid/table-cells.svg new file mode 100644 index 0000000..aa8eacd --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/table-cells.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/tag.svg b/assets/vendor/heroicons/optimized/20/solid/tag.svg new file mode 100644 index 0000000..d6c9c8b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/tag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/ticket.svg b/assets/vendor/heroicons/optimized/20/solid/ticket.svg new file mode 100644 index 0000000..7d04b01 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/ticket.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/trash.svg b/assets/vendor/heroicons/optimized/20/solid/trash.svg new file mode 100644 index 0000000..16bd5c6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/trash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/trophy.svg b/assets/vendor/heroicons/optimized/20/solid/trophy.svg new file mode 100644 index 0000000..e2ebdaf --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/trophy.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/truck.svg b/assets/vendor/heroicons/optimized/20/solid/truck.svg new file mode 100644 index 0000000..a50085a --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/truck.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/tv.svg b/assets/vendor/heroicons/optimized/20/solid/tv.svg new file mode 100644 index 0000000..b0c7209 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/tv.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/user-circle.svg b/assets/vendor/heroicons/optimized/20/solid/user-circle.svg new file mode 100644 index 0000000..abd6c98 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/user-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/user-group.svg b/assets/vendor/heroicons/optimized/20/solid/user-group.svg new file mode 100644 index 0000000..dc83736 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/user-group.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/user-minus.svg b/assets/vendor/heroicons/optimized/20/solid/user-minus.svg new file mode 100644 index 0000000..b092b77 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/user-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/user-plus.svg b/assets/vendor/heroicons/optimized/20/solid/user-plus.svg new file mode 100644 index 0000000..afd5965 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/user-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/user.svg b/assets/vendor/heroicons/optimized/20/solid/user.svg new file mode 100644 index 0000000..4d9b2ee --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/user.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/users.svg b/assets/vendor/heroicons/optimized/20/solid/users.svg new file mode 100644 index 0000000..43526a6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/users.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/variable.svg b/assets/vendor/heroicons/optimized/20/solid/variable.svg new file mode 100644 index 0000000..3460817 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/variable.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/video-camera-slash.svg b/assets/vendor/heroicons/optimized/20/solid/video-camera-slash.svg new file mode 100644 index 0000000..95b9413 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/video-camera-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/video-camera.svg b/assets/vendor/heroicons/optimized/20/solid/video-camera.svg new file mode 100644 index 0000000..4d22f16 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/video-camera.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/view-columns.svg b/assets/vendor/heroicons/optimized/20/solid/view-columns.svg new file mode 100644 index 0000000..1111492 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/view-columns.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/viewfinder-circle.svg b/assets/vendor/heroicons/optimized/20/solid/viewfinder-circle.svg new file mode 100644 index 0000000..5cfe9fb --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/viewfinder-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/wallet.svg b/assets/vendor/heroicons/optimized/20/solid/wallet.svg new file mode 100644 index 0000000..6ce8050 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/wallet.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/wifi.svg b/assets/vendor/heroicons/optimized/20/solid/wifi.svg new file mode 100644 index 0000000..f3c7118 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/wifi.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/window.svg b/assets/vendor/heroicons/optimized/20/solid/window.svg new file mode 100644 index 0000000..9110a2b --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/window.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/wrench-screwdriver.svg b/assets/vendor/heroicons/optimized/20/solid/wrench-screwdriver.svg new file mode 100644 index 0000000..2ad879f --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/wrench-screwdriver.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/wrench.svg b/assets/vendor/heroicons/optimized/20/solid/wrench.svg new file mode 100644 index 0000000..2643e00 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/wrench.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/x-circle.svg b/assets/vendor/heroicons/optimized/20/solid/x-circle.svg new file mode 100644 index 0000000..a660014 --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/x-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/20/solid/x-mark.svg b/assets/vendor/heroicons/optimized/20/solid/x-mark.svg new file mode 100644 index 0000000..0635bac --- /dev/null +++ b/assets/vendor/heroicons/optimized/20/solid/x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/academic-cap.svg b/assets/vendor/heroicons/optimized/24/outline/academic-cap.svg new file mode 100644 index 0000000..fc18107 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/academic-cap.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/adjustments-horizontal.svg b/assets/vendor/heroicons/optimized/24/outline/adjustments-horizontal.svg new file mode 100644 index 0000000..e859e5d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/adjustments-horizontal.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/adjustments-vertical.svg b/assets/vendor/heroicons/optimized/24/outline/adjustments-vertical.svg new file mode 100644 index 0000000..6153809 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/adjustments-vertical.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/archive-box-arrow-down.svg b/assets/vendor/heroicons/optimized/24/outline/archive-box-arrow-down.svg new file mode 100644 index 0000000..1a0a830 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/archive-box-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/archive-box-x-mark.svg b/assets/vendor/heroicons/optimized/24/outline/archive-box-x-mark.svg new file mode 100644 index 0000000..49bd087 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/archive-box-x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/archive-box.svg b/assets/vendor/heroicons/optimized/24/outline/archive-box.svg new file mode 100644 index 0000000..704f353 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/archive-box.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-down-circle.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-down-circle.svg new file mode 100644 index 0000000..248b0e8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-down-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-down-left.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-down-left.svg new file mode 100644 index 0000000..262b5ff --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-down-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-down-on-square-stack.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-down-on-square-stack.svg new file mode 100644 index 0000000..42a5b84 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-down-on-square-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-down-on-square.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-down-on-square.svg new file mode 100644 index 0000000..da1b827 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-down-on-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-down-right.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-down-right.svg new file mode 100644 index 0000000..9cc7a30 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-down-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-down-tray.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-down-tray.svg new file mode 100644 index 0000000..a77546c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-down-tray.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-down.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-down.svg new file mode 100644 index 0000000..b5b04fd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-left-circle.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-left-circle.svg new file mode 100644 index 0000000..849cc5f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-left-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-left-on-rectangle.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-left-on-rectangle.svg new file mode 100644 index 0000000..0d6a3cc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-left-on-rectangle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-left.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-left.svg new file mode 100644 index 0000000..49f15d4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-long-down.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-long-down.svg new file mode 100644 index 0000000..eb7a92b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-long-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-long-left.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-long-left.svg new file mode 100644 index 0000000..d3e9005 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-long-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-long-right.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-long-right.svg new file mode 100644 index 0000000..413d6b5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-long-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-long-up.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-long-up.svg new file mode 100644 index 0000000..fb029f4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-long-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-path-rounded-square.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-path-rounded-square.svg new file mode 100644 index 0000000..0cfe39e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-path-rounded-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-path.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-path.svg new file mode 100644 index 0000000..7da4fd2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-path.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-right-circle.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-right-circle.svg new file mode 100644 index 0000000..e7bcb80 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-right-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-right-on-rectangle.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-right-on-rectangle.svg new file mode 100644 index 0000000..2b49bec --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-right-on-rectangle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-right.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-right.svg new file mode 100644 index 0000000..8527a52 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-small-down.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-small-down.svg new file mode 100644 index 0000000..1f1a210 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-small-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-small-left.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-small-left.svg new file mode 100644 index 0000000..778cb17 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-small-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-small-right.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-small-right.svg new file mode 100644 index 0000000..1b5fc64 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-small-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-small-up.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-small-up.svg new file mode 100644 index 0000000..4ed197e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-small-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-top-right-on-square.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-top-right-on-square.svg new file mode 100644 index 0000000..c4a9239 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-top-right-on-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-trending-down.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-trending-down.svg new file mode 100644 index 0000000..aebbb18 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-trending-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-trending-up.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-trending-up.svg new file mode 100644 index 0000000..868f3d3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-trending-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-up-circle.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-up-circle.svg new file mode 100644 index 0000000..51340d6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-up-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-up-left.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-up-left.svg new file mode 100644 index 0000000..ba4e54e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-up-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-up-on-square-stack.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-up-on-square-stack.svg new file mode 100644 index 0000000..0d4d823 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-up-on-square-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-up-on-square.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-up-on-square.svg new file mode 100644 index 0000000..2c38ea0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-up-on-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-up-right.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-up-right.svg new file mode 100644 index 0000000..0b7a372 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-up-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-up-tray.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-up-tray.svg new file mode 100644 index 0000000..448b853 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-up-tray.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-up.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-up.svg new file mode 100644 index 0000000..e269624 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-down.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-down.svg new file mode 100644 index 0000000..51f9929 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-left.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-left.svg new file mode 100644 index 0000000..b8f240e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-right.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-right.svg new file mode 100644 index 0000000..ece5091 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-up.svg b/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-up.svg new file mode 100644 index 0000000..b76c54b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrow-uturn-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrows-pointing-in.svg b/assets/vendor/heroicons/optimized/24/outline/arrows-pointing-in.svg new file mode 100644 index 0000000..0a8872d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrows-pointing-in.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrows-pointing-out.svg b/assets/vendor/heroicons/optimized/24/outline/arrows-pointing-out.svg new file mode 100644 index 0000000..936ac45 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrows-pointing-out.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrows-right-left.svg b/assets/vendor/heroicons/optimized/24/outline/arrows-right-left.svg new file mode 100644 index 0000000..18890f3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrows-right-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/arrows-up-down.svg b/assets/vendor/heroicons/optimized/24/outline/arrows-up-down.svg new file mode 100644 index 0000000..da4cdf3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/arrows-up-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/at-symbol.svg b/assets/vendor/heroicons/optimized/24/outline/at-symbol.svg new file mode 100644 index 0000000..fe2f644 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/at-symbol.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/backspace.svg b/assets/vendor/heroicons/optimized/24/outline/backspace.svg new file mode 100644 index 0000000..f76c5df --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/backspace.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/backward.svg b/assets/vendor/heroicons/optimized/24/outline/backward.svg new file mode 100644 index 0000000..fb1da49 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/backward.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/banknotes.svg b/assets/vendor/heroicons/optimized/24/outline/banknotes.svg new file mode 100644 index 0000000..0603b0d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/banknotes.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bars-2.svg b/assets/vendor/heroicons/optimized/24/outline/bars-2.svg new file mode 100644 index 0000000..9c49ca2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bars-2.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bars-3-bottom-left.svg b/assets/vendor/heroicons/optimized/24/outline/bars-3-bottom-left.svg new file mode 100644 index 0000000..e23bbc3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bars-3-bottom-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bars-3-bottom-right.svg b/assets/vendor/heroicons/optimized/24/outline/bars-3-bottom-right.svg new file mode 100644 index 0000000..a0f683d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bars-3-bottom-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bars-3-center-left.svg b/assets/vendor/heroicons/optimized/24/outline/bars-3-center-left.svg new file mode 100644 index 0000000..a8e83e1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bars-3-center-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bars-3.svg b/assets/vendor/heroicons/optimized/24/outline/bars-3.svg new file mode 100644 index 0000000..a7cf320 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bars-3.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bars-4.svg b/assets/vendor/heroicons/optimized/24/outline/bars-4.svg new file mode 100644 index 0000000..f34bddf --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bars-4.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bars-arrow-down.svg b/assets/vendor/heroicons/optimized/24/outline/bars-arrow-down.svg new file mode 100644 index 0000000..200fd3a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bars-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bars-arrow-up.svg b/assets/vendor/heroicons/optimized/24/outline/bars-arrow-up.svg new file mode 100644 index 0000000..d88bf4e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bars-arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/battery-0.svg b/assets/vendor/heroicons/optimized/24/outline/battery-0.svg new file mode 100644 index 0000000..fd2aa9d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/battery-0.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/battery-100.svg b/assets/vendor/heroicons/optimized/24/outline/battery-100.svg new file mode 100644 index 0000000..ba012c6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/battery-100.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/battery-50.svg b/assets/vendor/heroicons/optimized/24/outline/battery-50.svg new file mode 100644 index 0000000..f6f9838 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/battery-50.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/beaker.svg b/assets/vendor/heroicons/optimized/24/outline/beaker.svg new file mode 100644 index 0000000..2d143fd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/beaker.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bell-alert.svg b/assets/vendor/heroicons/optimized/24/outline/bell-alert.svg new file mode 100644 index 0000000..c4af427 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bell-alert.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bell-slash.svg b/assets/vendor/heroicons/optimized/24/outline/bell-slash.svg new file mode 100644 index 0000000..2df7520 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bell-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bell-snooze.svg b/assets/vendor/heroicons/optimized/24/outline/bell-snooze.svg new file mode 100644 index 0000000..117de29 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bell-snooze.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bell.svg b/assets/vendor/heroicons/optimized/24/outline/bell.svg new file mode 100644 index 0000000..63ab153 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bell.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bolt-slash.svg b/assets/vendor/heroicons/optimized/24/outline/bolt-slash.svg new file mode 100644 index 0000000..13af346 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bolt-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bolt.svg b/assets/vendor/heroicons/optimized/24/outline/bolt.svg new file mode 100644 index 0000000..5e629fe --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bolt.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/book-open.svg b/assets/vendor/heroicons/optimized/24/outline/book-open.svg new file mode 100644 index 0000000..a4153b6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/book-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bookmark-slash.svg b/assets/vendor/heroicons/optimized/24/outline/bookmark-slash.svg new file mode 100644 index 0000000..f3ae625 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bookmark-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bookmark-square.svg b/assets/vendor/heroicons/optimized/24/outline/bookmark-square.svg new file mode 100644 index 0000000..00e5cc3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bookmark-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bookmark.svg b/assets/vendor/heroicons/optimized/24/outline/bookmark.svg new file mode 100644 index 0000000..6d06e4f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bookmark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/briefcase.svg b/assets/vendor/heroicons/optimized/24/outline/briefcase.svg new file mode 100644 index 0000000..adab6ff --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/briefcase.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/bug-ant.svg b/assets/vendor/heroicons/optimized/24/outline/bug-ant.svg new file mode 100644 index 0000000..ac04fad --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/bug-ant.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/building-library.svg b/assets/vendor/heroicons/optimized/24/outline/building-library.svg new file mode 100644 index 0000000..4e2e1da --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/building-library.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/building-office-2.svg b/assets/vendor/heroicons/optimized/24/outline/building-office-2.svg new file mode 100644 index 0000000..45e063c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/building-office-2.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/building-office.svg b/assets/vendor/heroicons/optimized/24/outline/building-office.svg new file mode 100644 index 0000000..0efd982 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/building-office.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/building-storefront.svg b/assets/vendor/heroicons/optimized/24/outline/building-storefront.svg new file mode 100644 index 0000000..31fca55 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/building-storefront.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cake.svg b/assets/vendor/heroicons/optimized/24/outline/cake.svg new file mode 100644 index 0000000..a603e90 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cake.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/calculator.svg b/assets/vendor/heroicons/optimized/24/outline/calculator.svg new file mode 100644 index 0000000..d97740e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/calculator.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/calendar-days.svg b/assets/vendor/heroicons/optimized/24/outline/calendar-days.svg new file mode 100644 index 0000000..64b5f8f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/calendar-days.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/calendar.svg b/assets/vendor/heroicons/optimized/24/outline/calendar.svg new file mode 100644 index 0000000..5e44911 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/calendar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/camera.svg b/assets/vendor/heroicons/optimized/24/outline/camera.svg new file mode 100644 index 0000000..b8bdae3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/camera.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chart-bar-square.svg b/assets/vendor/heroicons/optimized/24/outline/chart-bar-square.svg new file mode 100644 index 0000000..d7fa42c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chart-bar-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chart-bar.svg b/assets/vendor/heroicons/optimized/24/outline/chart-bar.svg new file mode 100644 index 0000000..27f20fa --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chart-bar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chart-pie.svg b/assets/vendor/heroicons/optimized/24/outline/chart-pie.svg new file mode 100644 index 0000000..fa51c16 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chart-pie.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chat-bubble-bottom-center-text.svg b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-bottom-center-text.svg new file mode 100644 index 0000000..4bc306e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-bottom-center-text.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chat-bubble-bottom-center.svg b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-bottom-center.svg new file mode 100644 index 0000000..d59d02a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-bottom-center.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chat-bubble-left-ellipsis.svg b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-left-ellipsis.svg new file mode 100644 index 0000000..9a0ec73 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-left-ellipsis.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chat-bubble-left-right.svg b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-left-right.svg new file mode 100644 index 0000000..4d366b8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-left-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chat-bubble-left.svg b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-left.svg new file mode 100644 index 0000000..a41bf1e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chat-bubble-oval-left-ellipsis.svg b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-oval-left-ellipsis.svg new file mode 100644 index 0000000..83d1751 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-oval-left-ellipsis.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chat-bubble-oval-left.svg b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-oval-left.svg new file mode 100644 index 0000000..d0d0d89 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chat-bubble-oval-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/check-badge.svg b/assets/vendor/heroicons/optimized/24/outline/check-badge.svg new file mode 100644 index 0000000..8d6b79a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/check-badge.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/check-circle.svg b/assets/vendor/heroicons/optimized/24/outline/check-circle.svg new file mode 100644 index 0000000..d4471d6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/check-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/check.svg b/assets/vendor/heroicons/optimized/24/outline/check.svg new file mode 100644 index 0000000..7644e30 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/check.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chevron-double-down.svg b/assets/vendor/heroicons/optimized/24/outline/chevron-double-down.svg new file mode 100644 index 0000000..d7e9370 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chevron-double-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chevron-double-left.svg b/assets/vendor/heroicons/optimized/24/outline/chevron-double-left.svg new file mode 100644 index 0000000..95834af --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chevron-double-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chevron-double-right.svg b/assets/vendor/heroicons/optimized/24/outline/chevron-double-right.svg new file mode 100644 index 0000000..37a809d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chevron-double-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chevron-double-up.svg b/assets/vendor/heroicons/optimized/24/outline/chevron-double-up.svg new file mode 100644 index 0000000..5182691 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chevron-double-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chevron-down.svg b/assets/vendor/heroicons/optimized/24/outline/chevron-down.svg new file mode 100644 index 0000000..b38efa5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chevron-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chevron-left.svg b/assets/vendor/heroicons/optimized/24/outline/chevron-left.svg new file mode 100644 index 0000000..73fe99a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chevron-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chevron-right.svg b/assets/vendor/heroicons/optimized/24/outline/chevron-right.svg new file mode 100644 index 0000000..1e31bfd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chevron-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chevron-up-down.svg b/assets/vendor/heroicons/optimized/24/outline/chevron-up-down.svg new file mode 100644 index 0000000..27b1d4f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chevron-up-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/chevron-up.svg b/assets/vendor/heroicons/optimized/24/outline/chevron-up.svg new file mode 100644 index 0000000..713a6f1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/chevron-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/circle-stack.svg b/assets/vendor/heroicons/optimized/24/outline/circle-stack.svg new file mode 100644 index 0000000..b8fb769 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/circle-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/clipboard-document-check.svg b/assets/vendor/heroicons/optimized/24/outline/clipboard-document-check.svg new file mode 100644 index 0000000..7bb03a1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/clipboard-document-check.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/clipboard-document-list.svg b/assets/vendor/heroicons/optimized/24/outline/clipboard-document-list.svg new file mode 100644 index 0000000..4670777 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/clipboard-document-list.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/clipboard-document.svg b/assets/vendor/heroicons/optimized/24/outline/clipboard-document.svg new file mode 100644 index 0000000..783a333 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/clipboard-document.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/clipboard.svg b/assets/vendor/heroicons/optimized/24/outline/clipboard.svg new file mode 100644 index 0000000..ad9b943 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/clipboard.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/clock.svg b/assets/vendor/heroicons/optimized/24/outline/clock.svg new file mode 100644 index 0000000..337196c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/clock.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cloud-arrow-down.svg b/assets/vendor/heroicons/optimized/24/outline/cloud-arrow-down.svg new file mode 100644 index 0000000..7074791 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cloud-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cloud-arrow-up.svg b/assets/vendor/heroicons/optimized/24/outline/cloud-arrow-up.svg new file mode 100644 index 0000000..8b45081 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cloud-arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cloud.svg b/assets/vendor/heroicons/optimized/24/outline/cloud.svg new file mode 100644 index 0000000..55fd725 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cloud.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/code-bracket-square.svg b/assets/vendor/heroicons/optimized/24/outline/code-bracket-square.svg new file mode 100644 index 0000000..8308024 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/code-bracket-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/code-bracket.svg b/assets/vendor/heroicons/optimized/24/outline/code-bracket.svg new file mode 100644 index 0000000..3361add --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/code-bracket.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cog-6-tooth.svg b/assets/vendor/heroicons/optimized/24/outline/cog-6-tooth.svg new file mode 100644 index 0000000..d585645 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cog-6-tooth.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cog-8-tooth.svg b/assets/vendor/heroicons/optimized/24/outline/cog-8-tooth.svg new file mode 100644 index 0000000..28f85f4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cog-8-tooth.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cog.svg b/assets/vendor/heroicons/optimized/24/outline/cog.svg new file mode 100644 index 0000000..f2bad9f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cog.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/command-line.svg b/assets/vendor/heroicons/optimized/24/outline/command-line.svg new file mode 100644 index 0000000..baaf362 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/command-line.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/computer-desktop.svg b/assets/vendor/heroicons/optimized/24/outline/computer-desktop.svg new file mode 100644 index 0000000..fb9a6e0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/computer-desktop.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cpu-chip.svg b/assets/vendor/heroicons/optimized/24/outline/cpu-chip.svg new file mode 100644 index 0000000..cabc435 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cpu-chip.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/credit-card.svg b/assets/vendor/heroicons/optimized/24/outline/credit-card.svg new file mode 100644 index 0000000..3c0c917 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/credit-card.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cube-transparent.svg b/assets/vendor/heroicons/optimized/24/outline/cube-transparent.svg new file mode 100644 index 0000000..5a8adac --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cube-transparent.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cube.svg b/assets/vendor/heroicons/optimized/24/outline/cube.svg new file mode 100644 index 0000000..70b0091 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cube.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/currency-bangladeshi.svg b/assets/vendor/heroicons/optimized/24/outline/currency-bangladeshi.svg new file mode 100644 index 0000000..7f2fca3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/currency-bangladeshi.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/currency-dollar.svg b/assets/vendor/heroicons/optimized/24/outline/currency-dollar.svg new file mode 100644 index 0000000..d376f4c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/currency-dollar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/currency-euro.svg b/assets/vendor/heroicons/optimized/24/outline/currency-euro.svg new file mode 100644 index 0000000..8b9dd2e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/currency-euro.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/currency-pound.svg b/assets/vendor/heroicons/optimized/24/outline/currency-pound.svg new file mode 100644 index 0000000..8e7c52d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/currency-pound.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/currency-rupee.svg b/assets/vendor/heroicons/optimized/24/outline/currency-rupee.svg new file mode 100644 index 0000000..078bf05 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/currency-rupee.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/currency-yen.svg b/assets/vendor/heroicons/optimized/24/outline/currency-yen.svg new file mode 100644 index 0000000..254011a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/currency-yen.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cursor-arrow-rays.svg b/assets/vendor/heroicons/optimized/24/outline/cursor-arrow-rays.svg new file mode 100644 index 0000000..c29d0fd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cursor-arrow-rays.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/cursor-arrow-ripple.svg b/assets/vendor/heroicons/optimized/24/outline/cursor-arrow-ripple.svg new file mode 100644 index 0000000..500a04c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/cursor-arrow-ripple.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/device-phone-mobile.svg b/assets/vendor/heroicons/optimized/24/outline/device-phone-mobile.svg new file mode 100644 index 0000000..1caf911 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/device-phone-mobile.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/device-tablet.svg b/assets/vendor/heroicons/optimized/24/outline/device-tablet.svg new file mode 100644 index 0000000..7090ecb --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/device-tablet.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document-arrow-down.svg b/assets/vendor/heroicons/optimized/24/outline/document-arrow-down.svg new file mode 100644 index 0000000..04f6e65 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document-arrow-up.svg b/assets/vendor/heroicons/optimized/24/outline/document-arrow-up.svg new file mode 100644 index 0000000..c0ca80f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document-arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document-chart-bar.svg b/assets/vendor/heroicons/optimized/24/outline/document-chart-bar.svg new file mode 100644 index 0000000..2ffa3fe --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document-chart-bar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document-check.svg b/assets/vendor/heroicons/optimized/24/outline/document-check.svg new file mode 100644 index 0000000..5ea7d9c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document-check.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document-duplicate.svg b/assets/vendor/heroicons/optimized/24/outline/document-duplicate.svg new file mode 100644 index 0000000..acc6464 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document-duplicate.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document-magnifying-glass.svg b/assets/vendor/heroicons/optimized/24/outline/document-magnifying-glass.svg new file mode 100644 index 0000000..f94eff6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document-magnifying-glass.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document-minus.svg b/assets/vendor/heroicons/optimized/24/outline/document-minus.svg new file mode 100644 index 0000000..173cb1f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document-plus.svg b/assets/vendor/heroicons/optimized/24/outline/document-plus.svg new file mode 100644 index 0000000..9ec31ad --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document-text.svg b/assets/vendor/heroicons/optimized/24/outline/document-text.svg new file mode 100644 index 0000000..cd77136 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document-text.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/document.svg b/assets/vendor/heroicons/optimized/24/outline/document.svg new file mode 100644 index 0000000..863a8aa --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/document.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/ellipsis-horizontal-circle.svg b/assets/vendor/heroicons/optimized/24/outline/ellipsis-horizontal-circle.svg new file mode 100644 index 0000000..09aac53 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/ellipsis-horizontal-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/ellipsis-horizontal.svg b/assets/vendor/heroicons/optimized/24/outline/ellipsis-horizontal.svg new file mode 100644 index 0000000..7541be5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/ellipsis-horizontal.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/ellipsis-vertical.svg b/assets/vendor/heroicons/optimized/24/outline/ellipsis-vertical.svg new file mode 100644 index 0000000..4676cf3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/ellipsis-vertical.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/envelope-open.svg b/assets/vendor/heroicons/optimized/24/outline/envelope-open.svg new file mode 100644 index 0000000..ff9dccd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/envelope-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/envelope.svg b/assets/vendor/heroicons/optimized/24/outline/envelope.svg new file mode 100644 index 0000000..ae8ff72 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/envelope.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/exclamation-circle.svg b/assets/vendor/heroicons/optimized/24/outline/exclamation-circle.svg new file mode 100644 index 0000000..25ef36f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/exclamation-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/exclamation-triangle.svg b/assets/vendor/heroicons/optimized/24/outline/exclamation-triangle.svg new file mode 100644 index 0000000..c9742f1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/exclamation-triangle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/eye-dropper.svg b/assets/vendor/heroicons/optimized/24/outline/eye-dropper.svg new file mode 100644 index 0000000..c7263e1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/eye-dropper.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/eye-slash.svg b/assets/vendor/heroicons/optimized/24/outline/eye-slash.svg new file mode 100644 index 0000000..072c9f2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/eye-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/eye.svg b/assets/vendor/heroicons/optimized/24/outline/eye.svg new file mode 100644 index 0000000..2a54d63 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/eye.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/face-frown.svg b/assets/vendor/heroicons/optimized/24/outline/face-frown.svg new file mode 100644 index 0000000..ba0cab3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/face-frown.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/face-smile.svg b/assets/vendor/heroicons/optimized/24/outline/face-smile.svg new file mode 100644 index 0000000..5246524 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/face-smile.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/film.svg b/assets/vendor/heroicons/optimized/24/outline/film.svg new file mode 100644 index 0000000..d76e594 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/film.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/finger-print.svg b/assets/vendor/heroicons/optimized/24/outline/finger-print.svg new file mode 100644 index 0000000..0c1eeb2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/finger-print.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/fire.svg b/assets/vendor/heroicons/optimized/24/outline/fire.svg new file mode 100644 index 0000000..54c9748 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/fire.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/flag.svg b/assets/vendor/heroicons/optimized/24/outline/flag.svg new file mode 100644 index 0000000..dff4126 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/flag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/folder-arrow-down.svg b/assets/vendor/heroicons/optimized/24/outline/folder-arrow-down.svg new file mode 100644 index 0000000..96290cd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/folder-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/folder-minus.svg b/assets/vendor/heroicons/optimized/24/outline/folder-minus.svg new file mode 100644 index 0000000..824cb0e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/folder-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/folder-open.svg b/assets/vendor/heroicons/optimized/24/outline/folder-open.svg new file mode 100644 index 0000000..0721502 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/folder-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/folder-plus.svg b/assets/vendor/heroicons/optimized/24/outline/folder-plus.svg new file mode 100644 index 0000000..3df62d2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/folder-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/folder.svg b/assets/vendor/heroicons/optimized/24/outline/folder.svg new file mode 100644 index 0000000..3054819 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/folder.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/forward.svg b/assets/vendor/heroicons/optimized/24/outline/forward.svg new file mode 100644 index 0000000..cc80dc9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/forward.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/funnel.svg b/assets/vendor/heroicons/optimized/24/outline/funnel.svg new file mode 100644 index 0000000..338fa52 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/funnel.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/gif.svg b/assets/vendor/heroicons/optimized/24/outline/gif.svg new file mode 100644 index 0000000..ba8a186 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/gif.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/gift-top.svg b/assets/vendor/heroicons/optimized/24/outline/gift-top.svg new file mode 100644 index 0000000..055b6d2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/gift-top.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/gift.svg b/assets/vendor/heroicons/optimized/24/outline/gift.svg new file mode 100644 index 0000000..5445815 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/gift.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/globe-alt.svg b/assets/vendor/heroicons/optimized/24/outline/globe-alt.svg new file mode 100644 index 0000000..a605be0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/globe-alt.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/globe-americas.svg b/assets/vendor/heroicons/optimized/24/outline/globe-americas.svg new file mode 100644 index 0000000..5d1a5cb --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/globe-americas.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/globe-asia-australia.svg b/assets/vendor/heroicons/optimized/24/outline/globe-asia-australia.svg new file mode 100644 index 0000000..f4898fa --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/globe-asia-australia.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/globe-europe-africa.svg b/assets/vendor/heroicons/optimized/24/outline/globe-europe-africa.svg new file mode 100644 index 0000000..c8f797d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/globe-europe-africa.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/hand-raised.svg b/assets/vendor/heroicons/optimized/24/outline/hand-raised.svg new file mode 100644 index 0000000..859f1ab --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/hand-raised.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/hand-thumb-down.svg b/assets/vendor/heroicons/optimized/24/outline/hand-thumb-down.svg new file mode 100644 index 0000000..c588a53 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/hand-thumb-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/hand-thumb-up.svg b/assets/vendor/heroicons/optimized/24/outline/hand-thumb-up.svg new file mode 100644 index 0000000..66ca9c3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/hand-thumb-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/hashtag.svg b/assets/vendor/heroicons/optimized/24/outline/hashtag.svg new file mode 100644 index 0000000..3ae1060 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/hashtag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/heart.svg b/assets/vendor/heroicons/optimized/24/outline/heart.svg new file mode 100644 index 0000000..1084768 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/heart.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/home-modern.svg b/assets/vendor/heroicons/optimized/24/outline/home-modern.svg new file mode 100644 index 0000000..20f4e2c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/home-modern.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/home.svg b/assets/vendor/heroicons/optimized/24/outline/home.svg new file mode 100644 index 0000000..9543375 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/home.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/identification.svg b/assets/vendor/heroicons/optimized/24/outline/identification.svg new file mode 100644 index 0000000..bfd302a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/identification.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/inbox-arrow-down.svg b/assets/vendor/heroicons/optimized/24/outline/inbox-arrow-down.svg new file mode 100644 index 0000000..db6ebda --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/inbox-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/inbox-stack.svg b/assets/vendor/heroicons/optimized/24/outline/inbox-stack.svg new file mode 100644 index 0000000..6c1e55c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/inbox-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/inbox.svg b/assets/vendor/heroicons/optimized/24/outline/inbox.svg new file mode 100644 index 0000000..56b35cb --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/inbox.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/information-circle.svg b/assets/vendor/heroicons/optimized/24/outline/information-circle.svg new file mode 100644 index 0000000..c7fa9d7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/information-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/key.svg b/assets/vendor/heroicons/optimized/24/outline/key.svg new file mode 100644 index 0000000..e9684cd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/key.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/language.svg b/assets/vendor/heroicons/optimized/24/outline/language.svg new file mode 100644 index 0000000..0c606ef --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/language.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/lifebuoy.svg b/assets/vendor/heroicons/optimized/24/outline/lifebuoy.svg new file mode 100644 index 0000000..1660e99 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/lifebuoy.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/light-bulb.svg b/assets/vendor/heroicons/optimized/24/outline/light-bulb.svg new file mode 100644 index 0000000..e3f2d9a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/light-bulb.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/link.svg b/assets/vendor/heroicons/optimized/24/outline/link.svg new file mode 100644 index 0000000..916a703 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/link.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/list-bullet.svg b/assets/vendor/heroicons/optimized/24/outline/list-bullet.svg new file mode 100644 index 0000000..1474573 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/list-bullet.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/lock-closed.svg b/assets/vendor/heroicons/optimized/24/outline/lock-closed.svg new file mode 100644 index 0000000..08b23c9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/lock-closed.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/lock-open.svg b/assets/vendor/heroicons/optimized/24/outline/lock-open.svg new file mode 100644 index 0000000..c5595dd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/lock-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/magnifying-glass-circle.svg b/assets/vendor/heroicons/optimized/24/outline/magnifying-glass-circle.svg new file mode 100644 index 0000000..e71f8bf --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/magnifying-glass-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/magnifying-glass-minus.svg b/assets/vendor/heroicons/optimized/24/outline/magnifying-glass-minus.svg new file mode 100644 index 0000000..6bd11c1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/magnifying-glass-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/magnifying-glass-plus.svg b/assets/vendor/heroicons/optimized/24/outline/magnifying-glass-plus.svg new file mode 100644 index 0000000..5dab7de --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/magnifying-glass-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/magnifying-glass.svg b/assets/vendor/heroicons/optimized/24/outline/magnifying-glass.svg new file mode 100644 index 0000000..7cff88f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/magnifying-glass.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/map-pin.svg b/assets/vendor/heroicons/optimized/24/outline/map-pin.svg new file mode 100644 index 0000000..1f272f4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/map-pin.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/map.svg b/assets/vendor/heroicons/optimized/24/outline/map.svg new file mode 100644 index 0000000..f96c988 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/map.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/megaphone.svg b/assets/vendor/heroicons/optimized/24/outline/megaphone.svg new file mode 100644 index 0000000..ec19508 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/megaphone.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/microphone.svg b/assets/vendor/heroicons/optimized/24/outline/microphone.svg new file mode 100644 index 0000000..670b34f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/microphone.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/minus-circle.svg b/assets/vendor/heroicons/optimized/24/outline/minus-circle.svg new file mode 100644 index 0000000..b9630fc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/minus-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/minus-small.svg b/assets/vendor/heroicons/optimized/24/outline/minus-small.svg new file mode 100644 index 0000000..3e1a8b7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/minus-small.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/minus.svg b/assets/vendor/heroicons/optimized/24/outline/minus.svg new file mode 100644 index 0000000..781994c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/moon.svg b/assets/vendor/heroicons/optimized/24/outline/moon.svg new file mode 100644 index 0000000..91501fd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/moon.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/musical-note.svg b/assets/vendor/heroicons/optimized/24/outline/musical-note.svg new file mode 100644 index 0000000..c0667fc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/musical-note.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/newspaper.svg b/assets/vendor/heroicons/optimized/24/outline/newspaper.svg new file mode 100644 index 0000000..0a4ac57 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/newspaper.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/no-symbol.svg b/assets/vendor/heroicons/optimized/24/outline/no-symbol.svg new file mode 100644 index 0000000..19b0bd0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/no-symbol.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/paint-brush.svg b/assets/vendor/heroicons/optimized/24/outline/paint-brush.svg new file mode 100644 index 0000000..b66098f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/paint-brush.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/paper-airplane.svg b/assets/vendor/heroicons/optimized/24/outline/paper-airplane.svg new file mode 100644 index 0000000..32da43e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/paper-airplane.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/paper-clip.svg b/assets/vendor/heroicons/optimized/24/outline/paper-clip.svg new file mode 100644 index 0000000..1d78d81 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/paper-clip.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/pause-circle.svg b/assets/vendor/heroicons/optimized/24/outline/pause-circle.svg new file mode 100644 index 0000000..a9a9e93 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/pause-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/pause.svg b/assets/vendor/heroicons/optimized/24/outline/pause.svg new file mode 100644 index 0000000..9843f7b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/pause.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/pencil-square.svg b/assets/vendor/heroicons/optimized/24/outline/pencil-square.svg new file mode 100644 index 0000000..3de435b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/pencil-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/pencil.svg b/assets/vendor/heroicons/optimized/24/outline/pencil.svg new file mode 100644 index 0000000..0c8759a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/pencil.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/phone-arrow-down-left.svg b/assets/vendor/heroicons/optimized/24/outline/phone-arrow-down-left.svg new file mode 100644 index 0000000..b1b2e61 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/phone-arrow-down-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/phone-arrow-up-right.svg b/assets/vendor/heroicons/optimized/24/outline/phone-arrow-up-right.svg new file mode 100644 index 0000000..faaf659 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/phone-arrow-up-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/phone-x-mark.svg b/assets/vendor/heroicons/optimized/24/outline/phone-x-mark.svg new file mode 100644 index 0000000..0b8de6d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/phone-x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/phone.svg b/assets/vendor/heroicons/optimized/24/outline/phone.svg new file mode 100644 index 0000000..6f73149 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/phone.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/photo.svg b/assets/vendor/heroicons/optimized/24/outline/photo.svg new file mode 100644 index 0000000..6982a11 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/photo.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/play-circle.svg b/assets/vendor/heroicons/optimized/24/outline/play-circle.svg new file mode 100644 index 0000000..3a2fa63 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/play-circle.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/play-pause.svg b/assets/vendor/heroicons/optimized/24/outline/play-pause.svg new file mode 100644 index 0000000..4ce4e55 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/play-pause.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/play.svg b/assets/vendor/heroicons/optimized/24/outline/play.svg new file mode 100644 index 0000000..c0ae6de --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/play.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/plus-circle.svg b/assets/vendor/heroicons/optimized/24/outline/plus-circle.svg new file mode 100644 index 0000000..4da4d1f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/plus-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/plus-small.svg b/assets/vendor/heroicons/optimized/24/outline/plus-small.svg new file mode 100644 index 0000000..991ed59 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/plus-small.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/plus.svg b/assets/vendor/heroicons/optimized/24/outline/plus.svg new file mode 100644 index 0000000..0480817 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/power.svg b/assets/vendor/heroicons/optimized/24/outline/power.svg new file mode 100644 index 0000000..c4b2706 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/power.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/presentation-chart-bar.svg b/assets/vendor/heroicons/optimized/24/outline/presentation-chart-bar.svg new file mode 100644 index 0000000..87d8a6d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/presentation-chart-bar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/presentation-chart-line.svg b/assets/vendor/heroicons/optimized/24/outline/presentation-chart-line.svg new file mode 100644 index 0000000..2262e1f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/presentation-chart-line.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/printer.svg b/assets/vendor/heroicons/optimized/24/outline/printer.svg new file mode 100644 index 0000000..6f7c5fa --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/printer.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/puzzle-piece.svg b/assets/vendor/heroicons/optimized/24/outline/puzzle-piece.svg new file mode 100644 index 0000000..13aa1a5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/puzzle-piece.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/qr-code.svg b/assets/vendor/heroicons/optimized/24/outline/qr-code.svg new file mode 100644 index 0000000..662a4bd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/qr-code.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/question-mark-circle.svg b/assets/vendor/heroicons/optimized/24/outline/question-mark-circle.svg new file mode 100644 index 0000000..9fb2542 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/question-mark-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/queue-list.svg b/assets/vendor/heroicons/optimized/24/outline/queue-list.svg new file mode 100644 index 0000000..91c3f11 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/queue-list.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/radio.svg b/assets/vendor/heroicons/optimized/24/outline/radio.svg new file mode 100644 index 0000000..f9c177a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/radio.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/receipt-percent.svg b/assets/vendor/heroicons/optimized/24/outline/receipt-percent.svg new file mode 100644 index 0000000..2d19255 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/receipt-percent.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/receipt-refund.svg b/assets/vendor/heroicons/optimized/24/outline/receipt-refund.svg new file mode 100644 index 0000000..dc569fc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/receipt-refund.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/rectangle-group.svg b/assets/vendor/heroicons/optimized/24/outline/rectangle-group.svg new file mode 100644 index 0000000..b184964 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/rectangle-group.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/rectangle-stack.svg b/assets/vendor/heroicons/optimized/24/outline/rectangle-stack.svg new file mode 100644 index 0000000..e1c0272 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/rectangle-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/rocket-launch.svg b/assets/vendor/heroicons/optimized/24/outline/rocket-launch.svg new file mode 100644 index 0000000..6400ee8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/rocket-launch.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/rss.svg b/assets/vendor/heroicons/optimized/24/outline/rss.svg new file mode 100644 index 0000000..1c36b21 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/rss.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/scale.svg b/assets/vendor/heroicons/optimized/24/outline/scale.svg new file mode 100644 index 0000000..500e3c6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/scale.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/scissors.svg b/assets/vendor/heroicons/optimized/24/outline/scissors.svg new file mode 100644 index 0000000..a23dc81 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/scissors.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/server-stack.svg b/assets/vendor/heroicons/optimized/24/outline/server-stack.svg new file mode 100644 index 0000000..3b7fe32 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/server-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/server.svg b/assets/vendor/heroicons/optimized/24/outline/server.svg new file mode 100644 index 0000000..c1675f3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/server.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/share.svg b/assets/vendor/heroicons/optimized/24/outline/share.svg new file mode 100644 index 0000000..125b6d1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/share.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/shield-check.svg b/assets/vendor/heroicons/optimized/24/outline/shield-check.svg new file mode 100644 index 0000000..f9fa2b9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/shield-check.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/shield-exclamation.svg b/assets/vendor/heroicons/optimized/24/outline/shield-exclamation.svg new file mode 100644 index 0000000..b52a2ff --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/shield-exclamation.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/shopping-bag.svg b/assets/vendor/heroicons/optimized/24/outline/shopping-bag.svg new file mode 100644 index 0000000..f5a51bd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/shopping-bag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/shopping-cart.svg b/assets/vendor/heroicons/optimized/24/outline/shopping-cart.svg new file mode 100644 index 0000000..661477b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/shopping-cart.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/signal-slash.svg b/assets/vendor/heroicons/optimized/24/outline/signal-slash.svg new file mode 100644 index 0000000..62992c3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/signal-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/signal.svg b/assets/vendor/heroicons/optimized/24/outline/signal.svg new file mode 100644 index 0000000..56114d3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/signal.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/sparkles.svg b/assets/vendor/heroicons/optimized/24/outline/sparkles.svg new file mode 100644 index 0000000..5a78b09 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/sparkles.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/speaker-wave.svg b/assets/vendor/heroicons/optimized/24/outline/speaker-wave.svg new file mode 100644 index 0000000..1b6dde7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/speaker-wave.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/speaker-x-mark.svg b/assets/vendor/heroicons/optimized/24/outline/speaker-x-mark.svg new file mode 100644 index 0000000..427e21e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/speaker-x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/square-2-stack.svg b/assets/vendor/heroicons/optimized/24/outline/square-2-stack.svg new file mode 100644 index 0000000..bc5e253 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/square-2-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/square-3-stack-3d.svg b/assets/vendor/heroicons/optimized/24/outline/square-3-stack-3d.svg new file mode 100644 index 0000000..8af2704 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/square-3-stack-3d.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/squares-2x2.svg b/assets/vendor/heroicons/optimized/24/outline/squares-2x2.svg new file mode 100644 index 0000000..601366d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/squares-2x2.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/squares-plus.svg b/assets/vendor/heroicons/optimized/24/outline/squares-plus.svg new file mode 100644 index 0000000..b8033c1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/squares-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/star.svg b/assets/vendor/heroicons/optimized/24/outline/star.svg new file mode 100644 index 0000000..98aa481 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/star.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/stop-circle.svg b/assets/vendor/heroicons/optimized/24/outline/stop-circle.svg new file mode 100644 index 0000000..b570e8e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/stop-circle.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/stop.svg b/assets/vendor/heroicons/optimized/24/outline/stop.svg new file mode 100644 index 0000000..4ee917a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/stop.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/sun.svg b/assets/vendor/heroicons/optimized/24/outline/sun.svg new file mode 100644 index 0000000..5667cb3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/sun.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/swatch.svg b/assets/vendor/heroicons/optimized/24/outline/swatch.svg new file mode 100644 index 0000000..5b136eb --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/swatch.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/table-cells.svg b/assets/vendor/heroicons/optimized/24/outline/table-cells.svg new file mode 100644 index 0000000..cb37937 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/table-cells.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/tag.svg b/assets/vendor/heroicons/optimized/24/outline/tag.svg new file mode 100644 index 0000000..9620545 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/tag.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/ticket.svg b/assets/vendor/heroicons/optimized/24/outline/ticket.svg new file mode 100644 index 0000000..da2d69e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/ticket.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/trash.svg b/assets/vendor/heroicons/optimized/24/outline/trash.svg new file mode 100644 index 0000000..0d32d58 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/trash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/trophy.svg b/assets/vendor/heroicons/optimized/24/outline/trophy.svg new file mode 100644 index 0000000..f846e52 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/trophy.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/truck.svg b/assets/vendor/heroicons/optimized/24/outline/truck.svg new file mode 100644 index 0000000..6e1ea69 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/truck.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/tv.svg b/assets/vendor/heroicons/optimized/24/outline/tv.svg new file mode 100644 index 0000000..7b8a706 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/tv.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/user-circle.svg b/assets/vendor/heroicons/optimized/24/outline/user-circle.svg new file mode 100644 index 0000000..a177f26 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/user-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/user-group.svg b/assets/vendor/heroicons/optimized/24/outline/user-group.svg new file mode 100644 index 0000000..4e7089b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/user-group.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/user-minus.svg b/assets/vendor/heroicons/optimized/24/outline/user-minus.svg new file mode 100644 index 0000000..703478e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/user-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/user-plus.svg b/assets/vendor/heroicons/optimized/24/outline/user-plus.svg new file mode 100644 index 0000000..24533d1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/user-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/user.svg b/assets/vendor/heroicons/optimized/24/outline/user.svg new file mode 100644 index 0000000..e9b6c20 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/user.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/users.svg b/assets/vendor/heroicons/optimized/24/outline/users.svg new file mode 100644 index 0000000..87304a0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/users.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/variable.svg b/assets/vendor/heroicons/optimized/24/outline/variable.svg new file mode 100644 index 0000000..81fab04 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/variable.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/video-camera-slash.svg b/assets/vendor/heroicons/optimized/24/outline/video-camera-slash.svg new file mode 100644 index 0000000..d1de13e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/video-camera-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/video-camera.svg b/assets/vendor/heroicons/optimized/24/outline/video-camera.svg new file mode 100644 index 0000000..aae1a19 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/video-camera.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/view-columns.svg b/assets/vendor/heroicons/optimized/24/outline/view-columns.svg new file mode 100644 index 0000000..22a668e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/view-columns.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/viewfinder-circle.svg b/assets/vendor/heroicons/optimized/24/outline/viewfinder-circle.svg new file mode 100644 index 0000000..0583eef --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/viewfinder-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/wallet.svg b/assets/vendor/heroicons/optimized/24/outline/wallet.svg new file mode 100644 index 0000000..8f19d64 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/wallet.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/wifi.svg b/assets/vendor/heroicons/optimized/24/outline/wifi.svg new file mode 100644 index 0000000..084b3e1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/wifi.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/window.svg b/assets/vendor/heroicons/optimized/24/outline/window.svg new file mode 100644 index 0000000..4ffea71 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/window.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/wrench-screwdriver.svg b/assets/vendor/heroicons/optimized/24/outline/wrench-screwdriver.svg new file mode 100644 index 0000000..1023ae9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/wrench-screwdriver.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/wrench.svg b/assets/vendor/heroicons/optimized/24/outline/wrench.svg new file mode 100644 index 0000000..de3a6e2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/wrench.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/x-circle.svg b/assets/vendor/heroicons/optimized/24/outline/x-circle.svg new file mode 100644 index 0000000..294ba20 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/x-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/outline/x-mark.svg b/assets/vendor/heroicons/optimized/24/outline/x-mark.svg new file mode 100644 index 0000000..a6d9eb7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/outline/x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/academic-cap.svg b/assets/vendor/heroicons/optimized/24/solid/academic-cap.svg new file mode 100644 index 0000000..2a13ef2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/academic-cap.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/adjustments-horizontal.svg b/assets/vendor/heroicons/optimized/24/solid/adjustments-horizontal.svg new file mode 100644 index 0000000..ed9b950 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/adjustments-horizontal.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/adjustments-vertical.svg b/assets/vendor/heroicons/optimized/24/solid/adjustments-vertical.svg new file mode 100644 index 0000000..fc4b90c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/adjustments-vertical.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/archive-box-arrow-down.svg b/assets/vendor/heroicons/optimized/24/solid/archive-box-arrow-down.svg new file mode 100644 index 0000000..5999b72 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/archive-box-arrow-down.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/archive-box-x-mark.svg b/assets/vendor/heroicons/optimized/24/solid/archive-box-x-mark.svg new file mode 100644 index 0000000..e7dd0d6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/archive-box-x-mark.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/archive-box.svg b/assets/vendor/heroicons/optimized/24/solid/archive-box.svg new file mode 100644 index 0000000..74e0471 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/archive-box.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-down-circle.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-down-circle.svg new file mode 100644 index 0000000..c85a4ff --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-down-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-down-left.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-down-left.svg new file mode 100644 index 0000000..5cd0d4d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-down-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-down-on-square-stack.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-down-on-square-stack.svg new file mode 100644 index 0000000..d2ef0b3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-down-on-square-stack.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-down-on-square.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-down-on-square.svg new file mode 100644 index 0000000..35eab41 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-down-on-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-down-right.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-down-right.svg new file mode 100644 index 0000000..8c60942 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-down-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-down-tray.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-down-tray.svg new file mode 100644 index 0000000..a18c62d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-down-tray.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-down.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-down.svg new file mode 100644 index 0000000..5cb396b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-left-circle.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-left-circle.svg new file mode 100644 index 0000000..a937f8e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-left-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-left-on-rectangle.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-left-on-rectangle.svg new file mode 100644 index 0000000..972a85e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-left-on-rectangle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-left.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-left.svg new file mode 100644 index 0000000..51bef70 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-long-down.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-long-down.svg new file mode 100644 index 0000000..891774e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-long-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-long-left.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-long-left.svg new file mode 100644 index 0000000..aa12c0c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-long-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-long-right.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-long-right.svg new file mode 100644 index 0000000..0bcb6a0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-long-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-long-up.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-long-up.svg new file mode 100644 index 0000000..b36d8e0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-long-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-path-rounded-square.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-path-rounded-square.svg new file mode 100644 index 0000000..0808a57 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-path-rounded-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-path.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-path.svg new file mode 100644 index 0000000..48a71fd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-path.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-right-circle.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-right-circle.svg new file mode 100644 index 0000000..424f75a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-right-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-right-on-rectangle.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-right-on-rectangle.svg new file mode 100644 index 0000000..73a7a7e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-right-on-rectangle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-right.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-right.svg new file mode 100644 index 0000000..1b1bbd1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-small-down.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-small-down.svg new file mode 100644 index 0000000..790993f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-small-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-small-left.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-small-left.svg new file mode 100644 index 0000000..231b1b2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-small-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-small-right.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-small-right.svg new file mode 100644 index 0000000..5d91261 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-small-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-small-up.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-small-up.svg new file mode 100644 index 0000000..33b31cf --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-small-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-top-right-on-square.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-top-right-on-square.svg new file mode 100644 index 0000000..ac1bc37 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-top-right-on-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-trending-down.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-trending-down.svg new file mode 100644 index 0000000..f46b609 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-trending-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-trending-up.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-trending-up.svg new file mode 100644 index 0000000..f2ece6e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-trending-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-up-circle.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-up-circle.svg new file mode 100644 index 0000000..0a9999f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-up-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-up-left.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-up-left.svg new file mode 100644 index 0000000..b6f9c2e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-up-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-up-on-square-stack.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-up-on-square-stack.svg new file mode 100644 index 0000000..b661da7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-up-on-square-stack.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-up-on-square.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-up-on-square.svg new file mode 100644 index 0000000..cba893e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-up-on-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-up-right.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-up-right.svg new file mode 100644 index 0000000..7554631 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-up-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-up-tray.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-up-tray.svg new file mode 100644 index 0000000..19093f6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-up-tray.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-up.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-up.svg new file mode 100644 index 0000000..16f6c79 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-down.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-down.svg new file mode 100644 index 0000000..6975024 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-left.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-left.svg new file mode 100644 index 0000000..f0b679a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-right.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-right.svg new file mode 100644 index 0000000..2da0f98 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-up.svg b/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-up.svg new file mode 100644 index 0000000..8cfe23d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrow-uturn-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrows-pointing-in.svg b/assets/vendor/heroicons/optimized/24/solid/arrows-pointing-in.svg new file mode 100644 index 0000000..604920f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrows-pointing-in.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrows-pointing-out.svg b/assets/vendor/heroicons/optimized/24/solid/arrows-pointing-out.svg new file mode 100644 index 0000000..2399662 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrows-pointing-out.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrows-right-left.svg b/assets/vendor/heroicons/optimized/24/solid/arrows-right-left.svg new file mode 100644 index 0000000..93fb7f1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrows-right-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/arrows-up-down.svg b/assets/vendor/heroicons/optimized/24/solid/arrows-up-down.svg new file mode 100644 index 0000000..356e9ca --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/arrows-up-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/at-symbol.svg b/assets/vendor/heroicons/optimized/24/solid/at-symbol.svg new file mode 100644 index 0000000..a02c654 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/at-symbol.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/backspace.svg b/assets/vendor/heroicons/optimized/24/solid/backspace.svg new file mode 100644 index 0000000..e5a79c2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/backspace.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/backward.svg b/assets/vendor/heroicons/optimized/24/solid/backward.svg new file mode 100644 index 0000000..bdf2a01 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/backward.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/banknotes.svg b/assets/vendor/heroicons/optimized/24/solid/banknotes.svg new file mode 100644 index 0000000..1cc1803 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/banknotes.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bars-2.svg b/assets/vendor/heroicons/optimized/24/solid/bars-2.svg new file mode 100644 index 0000000..6ee47ab --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bars-2.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bars-3-bottom-left.svg b/assets/vendor/heroicons/optimized/24/solid/bars-3-bottom-left.svg new file mode 100644 index 0000000..a804c11 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bars-3-bottom-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bars-3-bottom-right.svg b/assets/vendor/heroicons/optimized/24/solid/bars-3-bottom-right.svg new file mode 100644 index 0000000..2fd11ad --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bars-3-bottom-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bars-3-center-left.svg b/assets/vendor/heroicons/optimized/24/solid/bars-3-center-left.svg new file mode 100644 index 0000000..9a2c170 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bars-3-center-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bars-3.svg b/assets/vendor/heroicons/optimized/24/solid/bars-3.svg new file mode 100644 index 0000000..85584e8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bars-3.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bars-4.svg b/assets/vendor/heroicons/optimized/24/solid/bars-4.svg new file mode 100644 index 0000000..e3591d1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bars-4.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bars-arrow-down.svg b/assets/vendor/heroicons/optimized/24/solid/bars-arrow-down.svg new file mode 100644 index 0000000..10140b8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bars-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bars-arrow-up.svg b/assets/vendor/heroicons/optimized/24/solid/bars-arrow-up.svg new file mode 100644 index 0000000..4b3d4a7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bars-arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/battery-0.svg b/assets/vendor/heroicons/optimized/24/solid/battery-0.svg new file mode 100644 index 0000000..f03a737 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/battery-0.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/battery-100.svg b/assets/vendor/heroicons/optimized/24/solid/battery-100.svg new file mode 100644 index 0000000..62e4ec9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/battery-100.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/battery-50.svg b/assets/vendor/heroicons/optimized/24/solid/battery-50.svg new file mode 100644 index 0000000..63344d7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/battery-50.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/beaker.svg b/assets/vendor/heroicons/optimized/24/solid/beaker.svg new file mode 100644 index 0000000..e0b73cc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/beaker.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bell-alert.svg b/assets/vendor/heroicons/optimized/24/solid/bell-alert.svg new file mode 100644 index 0000000..f280b00 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bell-alert.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bell-slash.svg b/assets/vendor/heroicons/optimized/24/solid/bell-slash.svg new file mode 100644 index 0000000..0ef076c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bell-slash.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bell-snooze.svg b/assets/vendor/heroicons/optimized/24/solid/bell-snooze.svg new file mode 100644 index 0000000..cf93ae0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bell-snooze.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bell.svg b/assets/vendor/heroicons/optimized/24/solid/bell.svg new file mode 100644 index 0000000..818496e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bell.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bolt-slash.svg b/assets/vendor/heroicons/optimized/24/solid/bolt-slash.svg new file mode 100644 index 0000000..59d24f7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bolt-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bolt.svg b/assets/vendor/heroicons/optimized/24/solid/bolt.svg new file mode 100644 index 0000000..596c47a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bolt.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/book-open.svg b/assets/vendor/heroicons/optimized/24/solid/book-open.svg new file mode 100644 index 0000000..2e0a181 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/book-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bookmark-slash.svg b/assets/vendor/heroicons/optimized/24/solid/bookmark-slash.svg new file mode 100644 index 0000000..8435a02 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bookmark-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bookmark-square.svg b/assets/vendor/heroicons/optimized/24/solid/bookmark-square.svg new file mode 100644 index 0000000..a4d3ca5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bookmark-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bookmark.svg b/assets/vendor/heroicons/optimized/24/solid/bookmark.svg new file mode 100644 index 0000000..e9f3fb7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bookmark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/briefcase.svg b/assets/vendor/heroicons/optimized/24/solid/briefcase.svg new file mode 100644 index 0000000..a66af56 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/briefcase.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/bug-ant.svg b/assets/vendor/heroicons/optimized/24/solid/bug-ant.svg new file mode 100644 index 0000000..3c16cbc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/bug-ant.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/building-library.svg b/assets/vendor/heroicons/optimized/24/solid/building-library.svg new file mode 100644 index 0000000..90f8640 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/building-library.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/building-office-2.svg b/assets/vendor/heroicons/optimized/24/solid/building-office-2.svg new file mode 100644 index 0000000..240eedb --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/building-office-2.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/building-office.svg b/assets/vendor/heroicons/optimized/24/solid/building-office.svg new file mode 100644 index 0000000..9883e33 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/building-office.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/building-storefront.svg b/assets/vendor/heroicons/optimized/24/solid/building-storefront.svg new file mode 100644 index 0000000..f3b54ba --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/building-storefront.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cake.svg b/assets/vendor/heroicons/optimized/24/solid/cake.svg new file mode 100644 index 0000000..f13b308 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cake.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/calculator.svg b/assets/vendor/heroicons/optimized/24/solid/calculator.svg new file mode 100644 index 0000000..e058510 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/calculator.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/calendar-days.svg b/assets/vendor/heroicons/optimized/24/solid/calendar-days.svg new file mode 100644 index 0000000..0df9b16 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/calendar-days.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/calendar.svg b/assets/vendor/heroicons/optimized/24/solid/calendar.svg new file mode 100644 index 0000000..27e208c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/calendar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/camera.svg b/assets/vendor/heroicons/optimized/24/solid/camera.svg new file mode 100644 index 0000000..e58165d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/camera.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chart-bar-square.svg b/assets/vendor/heroicons/optimized/24/solid/chart-bar-square.svg new file mode 100644 index 0000000..d4af840 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chart-bar-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chart-bar.svg b/assets/vendor/heroicons/optimized/24/solid/chart-bar.svg new file mode 100644 index 0000000..abe5349 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chart-bar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chart-pie.svg b/assets/vendor/heroicons/optimized/24/solid/chart-pie.svg new file mode 100644 index 0000000..5aea729 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chart-pie.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chat-bubble-bottom-center-text.svg b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-bottom-center-text.svg new file mode 100644 index 0000000..bff24c4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-bottom-center-text.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chat-bubble-bottom-center.svg b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-bottom-center.svg new file mode 100644 index 0000000..eab7a41 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-bottom-center.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chat-bubble-left-ellipsis.svg b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-left-ellipsis.svg new file mode 100644 index 0000000..1ee6159 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-left-ellipsis.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chat-bubble-left-right.svg b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-left-right.svg new file mode 100644 index 0000000..80ad26d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-left-right.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chat-bubble-left.svg b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-left.svg new file mode 100644 index 0000000..3dd81b7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chat-bubble-oval-left-ellipsis.svg b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-oval-left-ellipsis.svg new file mode 100644 index 0000000..815c6d7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-oval-left-ellipsis.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chat-bubble-oval-left.svg b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-oval-left.svg new file mode 100644 index 0000000..473b921 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chat-bubble-oval-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/check-badge.svg b/assets/vendor/heroicons/optimized/24/solid/check-badge.svg new file mode 100644 index 0000000..058b329 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/check-badge.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/check-circle.svg b/assets/vendor/heroicons/optimized/24/solid/check-circle.svg new file mode 100644 index 0000000..2b90831 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/check-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/check.svg b/assets/vendor/heroicons/optimized/24/solid/check.svg new file mode 100644 index 0000000..2a6bc17 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/check.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chevron-double-down.svg b/assets/vendor/heroicons/optimized/24/solid/chevron-double-down.svg new file mode 100644 index 0000000..ddbe304 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chevron-double-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chevron-double-left.svg b/assets/vendor/heroicons/optimized/24/solid/chevron-double-left.svg new file mode 100644 index 0000000..5c6539d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chevron-double-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chevron-double-right.svg b/assets/vendor/heroicons/optimized/24/solid/chevron-double-right.svg new file mode 100644 index 0000000..7e25238 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chevron-double-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chevron-double-up.svg b/assets/vendor/heroicons/optimized/24/solid/chevron-double-up.svg new file mode 100644 index 0000000..029e687 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chevron-double-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chevron-down.svg b/assets/vendor/heroicons/optimized/24/solid/chevron-down.svg new file mode 100644 index 0000000..4f9ce7e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chevron-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chevron-left.svg b/assets/vendor/heroicons/optimized/24/solid/chevron-left.svg new file mode 100644 index 0000000..2d89e8b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chevron-left.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chevron-right.svg b/assets/vendor/heroicons/optimized/24/solid/chevron-right.svg new file mode 100644 index 0000000..36e4859 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chevron-right.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chevron-up-down.svg b/assets/vendor/heroicons/optimized/24/solid/chevron-up-down.svg new file mode 100644 index 0000000..58edbc3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chevron-up-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/chevron-up.svg b/assets/vendor/heroicons/optimized/24/solid/chevron-up.svg new file mode 100644 index 0000000..9abe9cd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/chevron-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/circle-stack.svg b/assets/vendor/heroicons/optimized/24/solid/circle-stack.svg new file mode 100644 index 0000000..5a49d80 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/circle-stack.svg @@ -0,0 +1,6 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/clipboard-document-check.svg b/assets/vendor/heroicons/optimized/24/solid/clipboard-document-check.svg new file mode 100644 index 0000000..21ec021 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/clipboard-document-check.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/clipboard-document-list.svg b/assets/vendor/heroicons/optimized/24/solid/clipboard-document-list.svg new file mode 100644 index 0000000..d60bed5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/clipboard-document-list.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/clipboard-document.svg b/assets/vendor/heroicons/optimized/24/solid/clipboard-document.svg new file mode 100644 index 0000000..d70b708 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/clipboard-document.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/clipboard.svg b/assets/vendor/heroicons/optimized/24/solid/clipboard.svg new file mode 100644 index 0000000..c09970f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/clipboard.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/clock.svg b/assets/vendor/heroicons/optimized/24/solid/clock.svg new file mode 100644 index 0000000..1d6fb4a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/clock.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cloud-arrow-down.svg b/assets/vendor/heroicons/optimized/24/solid/cloud-arrow-down.svg new file mode 100644 index 0000000..d6cf7c5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cloud-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cloud-arrow-up.svg b/assets/vendor/heroicons/optimized/24/solid/cloud-arrow-up.svg new file mode 100644 index 0000000..7e0dcee --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cloud-arrow-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cloud.svg b/assets/vendor/heroicons/optimized/24/solid/cloud.svg new file mode 100644 index 0000000..95d0c73 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cloud.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/code-bracket-square.svg b/assets/vendor/heroicons/optimized/24/solid/code-bracket-square.svg new file mode 100644 index 0000000..103f73b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/code-bracket-square.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/code-bracket.svg b/assets/vendor/heroicons/optimized/24/solid/code-bracket.svg new file mode 100644 index 0000000..9f331ef --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/code-bracket.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cog-6-tooth.svg b/assets/vendor/heroicons/optimized/24/solid/cog-6-tooth.svg new file mode 100644 index 0000000..ba6fca5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cog-6-tooth.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cog-8-tooth.svg b/assets/vendor/heroicons/optimized/24/solid/cog-8-tooth.svg new file mode 100644 index 0000000..9b9b1a6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cog-8-tooth.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cog.svg b/assets/vendor/heroicons/optimized/24/solid/cog.svg new file mode 100644 index 0000000..e854f73 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cog.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/command-line.svg b/assets/vendor/heroicons/optimized/24/solid/command-line.svg new file mode 100644 index 0000000..e2a0af8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/command-line.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/computer-desktop.svg b/assets/vendor/heroicons/optimized/24/solid/computer-desktop.svg new file mode 100644 index 0000000..5b7f2ef --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/computer-desktop.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cpu-chip.svg b/assets/vendor/heroicons/optimized/24/solid/cpu-chip.svg new file mode 100644 index 0000000..e20f6fb --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cpu-chip.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/credit-card.svg b/assets/vendor/heroicons/optimized/24/solid/credit-card.svg new file mode 100644 index 0000000..fe4dc14 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/credit-card.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cube-transparent.svg b/assets/vendor/heroicons/optimized/24/solid/cube-transparent.svg new file mode 100644 index 0000000..5577f26 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cube-transparent.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cube.svg b/assets/vendor/heroicons/optimized/24/solid/cube.svg new file mode 100644 index 0000000..b0029f2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cube.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/currency-bangladeshi.svg b/assets/vendor/heroicons/optimized/24/solid/currency-bangladeshi.svg new file mode 100644 index 0000000..ca13c68 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/currency-bangladeshi.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/currency-dollar.svg b/assets/vendor/heroicons/optimized/24/solid/currency-dollar.svg new file mode 100644 index 0000000..e0155df --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/currency-dollar.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/currency-euro.svg b/assets/vendor/heroicons/optimized/24/solid/currency-euro.svg new file mode 100644 index 0000000..2926c25 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/currency-euro.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/currency-pound.svg b/assets/vendor/heroicons/optimized/24/solid/currency-pound.svg new file mode 100644 index 0000000..547f725 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/currency-pound.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/currency-rupee.svg b/assets/vendor/heroicons/optimized/24/solid/currency-rupee.svg new file mode 100644 index 0000000..2ee9b46 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/currency-rupee.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/currency-yen.svg b/assets/vendor/heroicons/optimized/24/solid/currency-yen.svg new file mode 100644 index 0000000..65ef9bc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/currency-yen.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cursor-arrow-rays.svg b/assets/vendor/heroicons/optimized/24/solid/cursor-arrow-rays.svg new file mode 100644 index 0000000..c0e462b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cursor-arrow-rays.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/cursor-arrow-ripple.svg b/assets/vendor/heroicons/optimized/24/solid/cursor-arrow-ripple.svg new file mode 100644 index 0000000..867faa4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/cursor-arrow-ripple.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/device-phone-mobile.svg b/assets/vendor/heroicons/optimized/24/solid/device-phone-mobile.svg new file mode 100644 index 0000000..eec0738 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/device-phone-mobile.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/device-tablet.svg b/assets/vendor/heroicons/optimized/24/solid/device-tablet.svg new file mode 100644 index 0000000..88e2cc8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/device-tablet.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document-arrow-down.svg b/assets/vendor/heroicons/optimized/24/solid/document-arrow-down.svg new file mode 100644 index 0000000..77ac19c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document-arrow-down.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document-arrow-up.svg b/assets/vendor/heroicons/optimized/24/solid/document-arrow-up.svg new file mode 100644 index 0000000..bc26cb9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document-arrow-up.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document-chart-bar.svg b/assets/vendor/heroicons/optimized/24/solid/document-chart-bar.svg new file mode 100644 index 0000000..83d0eac --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document-chart-bar.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document-check.svg b/assets/vendor/heroicons/optimized/24/solid/document-check.svg new file mode 100644 index 0000000..e827854 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document-check.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document-duplicate.svg b/assets/vendor/heroicons/optimized/24/solid/document-duplicate.svg new file mode 100644 index 0000000..fa7375d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document-duplicate.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document-magnifying-glass.svg b/assets/vendor/heroicons/optimized/24/solid/document-magnifying-glass.svg new file mode 100644 index 0000000..ab165f7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document-magnifying-glass.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document-minus.svg b/assets/vendor/heroicons/optimized/24/solid/document-minus.svg new file mode 100644 index 0000000..265c6eb --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document-minus.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document-plus.svg b/assets/vendor/heroicons/optimized/24/solid/document-plus.svg new file mode 100644 index 0000000..5e31459 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document-plus.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document-text.svg b/assets/vendor/heroicons/optimized/24/solid/document-text.svg new file mode 100644 index 0000000..73b30cd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document-text.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/document.svg b/assets/vendor/heroicons/optimized/24/solid/document.svg new file mode 100644 index 0000000..a05f20f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/document.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/ellipsis-horizontal-circle.svg b/assets/vendor/heroicons/optimized/24/solid/ellipsis-horizontal-circle.svg new file mode 100644 index 0000000..6ec2b50 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/ellipsis-horizontal-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/ellipsis-horizontal.svg b/assets/vendor/heroicons/optimized/24/solid/ellipsis-horizontal.svg new file mode 100644 index 0000000..ddb5a3f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/ellipsis-horizontal.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/ellipsis-vertical.svg b/assets/vendor/heroicons/optimized/24/solid/ellipsis-vertical.svg new file mode 100644 index 0000000..792c0ae --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/ellipsis-vertical.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/envelope-open.svg b/assets/vendor/heroicons/optimized/24/solid/envelope-open.svg new file mode 100644 index 0000000..e6bf97b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/envelope-open.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/envelope.svg b/assets/vendor/heroicons/optimized/24/solid/envelope.svg new file mode 100644 index 0000000..702341b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/envelope.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/exclamation-circle.svg b/assets/vendor/heroicons/optimized/24/solid/exclamation-circle.svg new file mode 100644 index 0000000..fdaadc0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/exclamation-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/exclamation-triangle.svg b/assets/vendor/heroicons/optimized/24/solid/exclamation-triangle.svg new file mode 100644 index 0000000..627a712 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/exclamation-triangle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/eye-dropper.svg b/assets/vendor/heroicons/optimized/24/solid/eye-dropper.svg new file mode 100644 index 0000000..15b16d0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/eye-dropper.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/eye-slash.svg b/assets/vendor/heroicons/optimized/24/solid/eye-slash.svg new file mode 100644 index 0000000..11ef99b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/eye-slash.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/eye.svg b/assets/vendor/heroicons/optimized/24/solid/eye.svg new file mode 100644 index 0000000..a648db3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/eye.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/face-frown.svg b/assets/vendor/heroicons/optimized/24/solid/face-frown.svg new file mode 100644 index 0000000..7040d58 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/face-frown.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/face-smile.svg b/assets/vendor/heroicons/optimized/24/solid/face-smile.svg new file mode 100644 index 0000000..d5e75a2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/face-smile.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/film.svg b/assets/vendor/heroicons/optimized/24/solid/film.svg new file mode 100644 index 0000000..fbd26cc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/film.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/finger-print.svg b/assets/vendor/heroicons/optimized/24/solid/finger-print.svg new file mode 100644 index 0000000..68e72b4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/finger-print.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/fire.svg b/assets/vendor/heroicons/optimized/24/solid/fire.svg new file mode 100644 index 0000000..93b1b1f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/fire.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/flag.svg b/assets/vendor/heroicons/optimized/24/solid/flag.svg new file mode 100644 index 0000000..8c67b01 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/flag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/folder-arrow-down.svg b/assets/vendor/heroicons/optimized/24/solid/folder-arrow-down.svg new file mode 100644 index 0000000..5d963b4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/folder-arrow-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/folder-minus.svg b/assets/vendor/heroicons/optimized/24/solid/folder-minus.svg new file mode 100644 index 0000000..d0292b8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/folder-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/folder-open.svg b/assets/vendor/heroicons/optimized/24/solid/folder-open.svg new file mode 100644 index 0000000..b9d80ba --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/folder-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/folder-plus.svg b/assets/vendor/heroicons/optimized/24/solid/folder-plus.svg new file mode 100644 index 0000000..efaf949 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/folder-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/folder.svg b/assets/vendor/heroicons/optimized/24/solid/folder.svg new file mode 100644 index 0000000..a7847f8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/folder.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/forward.svg b/assets/vendor/heroicons/optimized/24/solid/forward.svg new file mode 100644 index 0000000..de90863 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/forward.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/funnel.svg b/assets/vendor/heroicons/optimized/24/solid/funnel.svg new file mode 100644 index 0000000..fe5699f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/funnel.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/gif.svg b/assets/vendor/heroicons/optimized/24/solid/gif.svg new file mode 100644 index 0000000..283e6e5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/gif.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/gift-top.svg b/assets/vendor/heroicons/optimized/24/solid/gift-top.svg new file mode 100644 index 0000000..4bd4e6f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/gift-top.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/gift.svg b/assets/vendor/heroicons/optimized/24/solid/gift.svg new file mode 100644 index 0000000..2ca6c92 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/gift.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/globe-alt.svg b/assets/vendor/heroicons/optimized/24/solid/globe-alt.svg new file mode 100644 index 0000000..0cbacae --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/globe-alt.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/globe-americas.svg b/assets/vendor/heroicons/optimized/24/solid/globe-americas.svg new file mode 100644 index 0000000..5ae0d5d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/globe-americas.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/globe-asia-australia.svg b/assets/vendor/heroicons/optimized/24/solid/globe-asia-australia.svg new file mode 100644 index 0000000..14249d6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/globe-asia-australia.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/globe-europe-africa.svg b/assets/vendor/heroicons/optimized/24/solid/globe-europe-africa.svg new file mode 100644 index 0000000..49a78fd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/globe-europe-africa.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/hand-raised.svg b/assets/vendor/heroicons/optimized/24/solid/hand-raised.svg new file mode 100644 index 0000000..1717d51 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/hand-raised.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/hand-thumb-down.svg b/assets/vendor/heroicons/optimized/24/solid/hand-thumb-down.svg new file mode 100644 index 0000000..7a2b9a6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/hand-thumb-down.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/hand-thumb-up.svg b/assets/vendor/heroicons/optimized/24/solid/hand-thumb-up.svg new file mode 100644 index 0000000..4942d2d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/hand-thumb-up.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/hashtag.svg b/assets/vendor/heroicons/optimized/24/solid/hashtag.svg new file mode 100644 index 0000000..29e677d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/hashtag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/heart.svg b/assets/vendor/heroicons/optimized/24/solid/heart.svg new file mode 100644 index 0000000..b5f0d95 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/heart.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/home-modern.svg b/assets/vendor/heroicons/optimized/24/solid/home-modern.svg new file mode 100644 index 0000000..488685a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/home-modern.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/home.svg b/assets/vendor/heroicons/optimized/24/solid/home.svg new file mode 100644 index 0000000..ec0bae1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/home.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/identification.svg b/assets/vendor/heroicons/optimized/24/solid/identification.svg new file mode 100644 index 0000000..829b24d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/identification.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/inbox-arrow-down.svg b/assets/vendor/heroicons/optimized/24/solid/inbox-arrow-down.svg new file mode 100644 index 0000000..4fd220b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/inbox-arrow-down.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/inbox-stack.svg b/assets/vendor/heroicons/optimized/24/solid/inbox-stack.svg new file mode 100644 index 0000000..fffab99 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/inbox-stack.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/inbox.svg b/assets/vendor/heroicons/optimized/24/solid/inbox.svg new file mode 100644 index 0000000..b74380e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/inbox.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/information-circle.svg b/assets/vendor/heroicons/optimized/24/solid/information-circle.svg new file mode 100644 index 0000000..bd2723b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/information-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/key.svg b/assets/vendor/heroicons/optimized/24/solid/key.svg new file mode 100644 index 0000000..6acee27 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/key.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/language.svg b/assets/vendor/heroicons/optimized/24/solid/language.svg new file mode 100644 index 0000000..60d1aee --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/language.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/lifebuoy.svg b/assets/vendor/heroicons/optimized/24/solid/lifebuoy.svg new file mode 100644 index 0000000..9ddc8d4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/lifebuoy.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/light-bulb.svg b/assets/vendor/heroicons/optimized/24/solid/light-bulb.svg new file mode 100644 index 0000000..ff49cb3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/light-bulb.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/link.svg b/assets/vendor/heroicons/optimized/24/solid/link.svg new file mode 100644 index 0000000..a6dc093 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/link.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/list-bullet.svg b/assets/vendor/heroicons/optimized/24/solid/list-bullet.svg new file mode 100644 index 0000000..7983877 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/list-bullet.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/lock-closed.svg b/assets/vendor/heroicons/optimized/24/solid/lock-closed.svg new file mode 100644 index 0000000..8a5a6d7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/lock-closed.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/lock-open.svg b/assets/vendor/heroicons/optimized/24/solid/lock-open.svg new file mode 100644 index 0000000..4562f7e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/lock-open.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/magnifying-glass-circle.svg b/assets/vendor/heroicons/optimized/24/solid/magnifying-glass-circle.svg new file mode 100644 index 0000000..17a6f28 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/magnifying-glass-circle.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/magnifying-glass-minus.svg b/assets/vendor/heroicons/optimized/24/solid/magnifying-glass-minus.svg new file mode 100644 index 0000000..06ae161 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/magnifying-glass-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/magnifying-glass-plus.svg b/assets/vendor/heroicons/optimized/24/solid/magnifying-glass-plus.svg new file mode 100644 index 0000000..92040d0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/magnifying-glass-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/magnifying-glass.svg b/assets/vendor/heroicons/optimized/24/solid/magnifying-glass.svg new file mode 100644 index 0000000..b602e08 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/magnifying-glass.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/map-pin.svg b/assets/vendor/heroicons/optimized/24/solid/map-pin.svg new file mode 100644 index 0000000..92e6785 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/map-pin.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/map.svg b/assets/vendor/heroicons/optimized/24/solid/map.svg new file mode 100644 index 0000000..9d4f7dd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/map.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/megaphone.svg b/assets/vendor/heroicons/optimized/24/solid/megaphone.svg new file mode 100644 index 0000000..b1f1e10 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/megaphone.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/microphone.svg b/assets/vendor/heroicons/optimized/24/solid/microphone.svg new file mode 100644 index 0000000..a5f4cb6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/microphone.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/minus-circle.svg b/assets/vendor/heroicons/optimized/24/solid/minus-circle.svg new file mode 100644 index 0000000..8c981ab --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/minus-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/minus-small.svg b/assets/vendor/heroicons/optimized/24/solid/minus-small.svg new file mode 100644 index 0000000..782213e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/minus-small.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/minus.svg b/assets/vendor/heroicons/optimized/24/solid/minus.svg new file mode 100644 index 0000000..1fa7117 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/moon.svg b/assets/vendor/heroicons/optimized/24/solid/moon.svg new file mode 100644 index 0000000..97d5c5a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/moon.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/musical-note.svg b/assets/vendor/heroicons/optimized/24/solid/musical-note.svg new file mode 100644 index 0000000..a9ab9b5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/musical-note.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/newspaper.svg b/assets/vendor/heroicons/optimized/24/solid/newspaper.svg new file mode 100644 index 0000000..d1f2c1e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/newspaper.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/no-symbol.svg b/assets/vendor/heroicons/optimized/24/solid/no-symbol.svg new file mode 100644 index 0000000..42eb771 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/no-symbol.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/paint-brush.svg b/assets/vendor/heroicons/optimized/24/solid/paint-brush.svg new file mode 100644 index 0000000..35fd5a6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/paint-brush.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/paper-airplane.svg b/assets/vendor/heroicons/optimized/24/solid/paper-airplane.svg new file mode 100644 index 0000000..9365a57 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/paper-airplane.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/paper-clip.svg b/assets/vendor/heroicons/optimized/24/solid/paper-clip.svg new file mode 100644 index 0000000..0a0dcdd --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/paper-clip.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/pause-circle.svg b/assets/vendor/heroicons/optimized/24/solid/pause-circle.svg new file mode 100644 index 0000000..4fe4f2b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/pause-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/pause.svg b/assets/vendor/heroicons/optimized/24/solid/pause.svg new file mode 100644 index 0000000..2e121ac --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/pause.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/pencil-square.svg b/assets/vendor/heroicons/optimized/24/solid/pencil-square.svg new file mode 100644 index 0000000..5f4aaf8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/pencil-square.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/pencil.svg b/assets/vendor/heroicons/optimized/24/solid/pencil.svg new file mode 100644 index 0000000..78ec61a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/pencil.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/phone-arrow-down-left.svg b/assets/vendor/heroicons/optimized/24/solid/phone-arrow-down-left.svg new file mode 100644 index 0000000..06f3ba0 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/phone-arrow-down-left.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/phone-arrow-up-right.svg b/assets/vendor/heroicons/optimized/24/solid/phone-arrow-up-right.svg new file mode 100644 index 0000000..678c4f6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/phone-arrow-up-right.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/phone-x-mark.svg b/assets/vendor/heroicons/optimized/24/solid/phone-x-mark.svg new file mode 100644 index 0000000..a017a7d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/phone-x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/phone.svg b/assets/vendor/heroicons/optimized/24/solid/phone.svg new file mode 100644 index 0000000..ca2a6bc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/phone.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/photo.svg b/assets/vendor/heroicons/optimized/24/solid/photo.svg new file mode 100644 index 0000000..57e023d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/photo.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/play-circle.svg b/assets/vendor/heroicons/optimized/24/solid/play-circle.svg new file mode 100644 index 0000000..752273a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/play-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/play-pause.svg b/assets/vendor/heroicons/optimized/24/solid/play-pause.svg new file mode 100644 index 0000000..e5bb17c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/play-pause.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/play.svg b/assets/vendor/heroicons/optimized/24/solid/play.svg new file mode 100644 index 0000000..da0e4e2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/play.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/plus-circle.svg b/assets/vendor/heroicons/optimized/24/solid/plus-circle.svg new file mode 100644 index 0000000..b45f965 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/plus-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/plus-small.svg b/assets/vendor/heroicons/optimized/24/solid/plus-small.svg new file mode 100644 index 0000000..0c4b744 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/plus-small.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/plus.svg b/assets/vendor/heroicons/optimized/24/solid/plus.svg new file mode 100644 index 0000000..85d3b14 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/power.svg b/assets/vendor/heroicons/optimized/24/solid/power.svg new file mode 100644 index 0000000..2bf830f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/power.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/presentation-chart-bar.svg b/assets/vendor/heroicons/optimized/24/solid/presentation-chart-bar.svg new file mode 100644 index 0000000..cb0bc9a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/presentation-chart-bar.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/presentation-chart-line.svg b/assets/vendor/heroicons/optimized/24/solid/presentation-chart-line.svg new file mode 100644 index 0000000..54e10b2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/presentation-chart-line.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/printer.svg b/assets/vendor/heroicons/optimized/24/solid/printer.svg new file mode 100644 index 0000000..4fce791 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/printer.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/puzzle-piece.svg b/assets/vendor/heroicons/optimized/24/solid/puzzle-piece.svg new file mode 100644 index 0000000..4f85b37 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/puzzle-piece.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/qr-code.svg b/assets/vendor/heroicons/optimized/24/solid/qr-code.svg new file mode 100644 index 0000000..7f676ca --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/qr-code.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/question-mark-circle.svg b/assets/vendor/heroicons/optimized/24/solid/question-mark-circle.svg new file mode 100644 index 0000000..2ae51be --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/question-mark-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/queue-list.svg b/assets/vendor/heroicons/optimized/24/solid/queue-list.svg new file mode 100644 index 0000000..536fd88 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/queue-list.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/radio.svg b/assets/vendor/heroicons/optimized/24/solid/radio.svg new file mode 100644 index 0000000..92ca514 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/radio.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/receipt-percent.svg b/assets/vendor/heroicons/optimized/24/solid/receipt-percent.svg new file mode 100644 index 0000000..5eb6371 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/receipt-percent.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/receipt-refund.svg b/assets/vendor/heroicons/optimized/24/solid/receipt-refund.svg new file mode 100644 index 0000000..6a1a154 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/receipt-refund.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/rectangle-group.svg b/assets/vendor/heroicons/optimized/24/solid/rectangle-group.svg new file mode 100644 index 0000000..289d198 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/rectangle-group.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/rectangle-stack.svg b/assets/vendor/heroicons/optimized/24/solid/rectangle-stack.svg new file mode 100644 index 0000000..82a1334 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/rectangle-stack.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/rocket-launch.svg b/assets/vendor/heroicons/optimized/24/solid/rocket-launch.svg new file mode 100644 index 0000000..522fc64 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/rocket-launch.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/rss.svg b/assets/vendor/heroicons/optimized/24/solid/rss.svg new file mode 100644 index 0000000..b9a8ab2 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/rss.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/scale.svg b/assets/vendor/heroicons/optimized/24/solid/scale.svg new file mode 100644 index 0000000..b7e57c7 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/scale.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/scissors.svg b/assets/vendor/heroicons/optimized/24/solid/scissors.svg new file mode 100644 index 0000000..9c971b3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/scissors.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/server-stack.svg b/assets/vendor/heroicons/optimized/24/solid/server-stack.svg new file mode 100644 index 0000000..c0d3074 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/server-stack.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/server.svg b/assets/vendor/heroicons/optimized/24/solid/server.svg new file mode 100644 index 0000000..55f9aed --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/server.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/share.svg b/assets/vendor/heroicons/optimized/24/solid/share.svg new file mode 100644 index 0000000..8f45dfc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/share.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/shield-check.svg b/assets/vendor/heroicons/optimized/24/solid/shield-check.svg new file mode 100644 index 0000000..2596ace --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/shield-check.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/shield-exclamation.svg b/assets/vendor/heroicons/optimized/24/solid/shield-exclamation.svg new file mode 100644 index 0000000..ce53fcc --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/shield-exclamation.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/shopping-bag.svg b/assets/vendor/heroicons/optimized/24/solid/shopping-bag.svg new file mode 100644 index 0000000..e6503ee --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/shopping-bag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/shopping-cart.svg b/assets/vendor/heroicons/optimized/24/solid/shopping-cart.svg new file mode 100644 index 0000000..931a12f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/shopping-cart.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/signal-slash.svg b/assets/vendor/heroicons/optimized/24/solid/signal-slash.svg new file mode 100644 index 0000000..21c65cb --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/signal-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/signal.svg b/assets/vendor/heroicons/optimized/24/solid/signal.svg new file mode 100644 index 0000000..9027aef --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/signal.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/sparkles.svg b/assets/vendor/heroicons/optimized/24/solid/sparkles.svg new file mode 100644 index 0000000..0d8d0c1 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/sparkles.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/speaker-wave.svg b/assets/vendor/heroicons/optimized/24/solid/speaker-wave.svg new file mode 100644 index 0000000..bd84477 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/speaker-wave.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/speaker-x-mark.svg b/assets/vendor/heroicons/optimized/24/solid/speaker-x-mark.svg new file mode 100644 index 0000000..e71f1b6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/speaker-x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/square-2-stack.svg b/assets/vendor/heroicons/optimized/24/solid/square-2-stack.svg new file mode 100644 index 0000000..c3726a5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/square-2-stack.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/square-3-stack-3d.svg b/assets/vendor/heroicons/optimized/24/solid/square-3-stack-3d.svg new file mode 100644 index 0000000..8ed638d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/square-3-stack-3d.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/squares-2x2.svg b/assets/vendor/heroicons/optimized/24/solid/squares-2x2.svg new file mode 100644 index 0000000..475f6c3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/squares-2x2.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/squares-plus.svg b/assets/vendor/heroicons/optimized/24/solid/squares-plus.svg new file mode 100644 index 0000000..88a2dda --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/squares-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/star.svg b/assets/vendor/heroicons/optimized/24/solid/star.svg new file mode 100644 index 0000000..8509819 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/star.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/stop-circle.svg b/assets/vendor/heroicons/optimized/24/solid/stop-circle.svg new file mode 100644 index 0000000..8e57a2c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/stop-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/stop.svg b/assets/vendor/heroicons/optimized/24/solid/stop.svg new file mode 100644 index 0000000..1bf426f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/stop.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/sun.svg b/assets/vendor/heroicons/optimized/24/solid/sun.svg new file mode 100644 index 0000000..1b597fa --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/sun.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/swatch.svg b/assets/vendor/heroicons/optimized/24/solid/swatch.svg new file mode 100644 index 0000000..9b26c03 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/swatch.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/table-cells.svg b/assets/vendor/heroicons/optimized/24/solid/table-cells.svg new file mode 100644 index 0000000..151a30c --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/table-cells.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/tag.svg b/assets/vendor/heroicons/optimized/24/solid/tag.svg new file mode 100644 index 0000000..efcd01b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/tag.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/ticket.svg b/assets/vendor/heroicons/optimized/24/solid/ticket.svg new file mode 100644 index 0000000..e947c41 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/ticket.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/trash.svg b/assets/vendor/heroicons/optimized/24/solid/trash.svg new file mode 100644 index 0000000..ed7bf43 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/trash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/trophy.svg b/assets/vendor/heroicons/optimized/24/solid/trophy.svg new file mode 100644 index 0000000..ed7ee15 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/trophy.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/truck.svg b/assets/vendor/heroicons/optimized/24/solid/truck.svg new file mode 100644 index 0000000..c218da6 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/truck.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/tv.svg b/assets/vendor/heroicons/optimized/24/solid/tv.svg new file mode 100644 index 0000000..8f27026 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/tv.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/user-circle.svg b/assets/vendor/heroicons/optimized/24/solid/user-circle.svg new file mode 100644 index 0000000..978d0b8 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/user-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/user-group.svg b/assets/vendor/heroicons/optimized/24/solid/user-group.svg new file mode 100644 index 0000000..7ae7600 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/user-group.svg @@ -0,0 +1,4 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/user-minus.svg b/assets/vendor/heroicons/optimized/24/solid/user-minus.svg new file mode 100644 index 0000000..062a7c9 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/user-minus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/user-plus.svg b/assets/vendor/heroicons/optimized/24/solid/user-plus.svg new file mode 100644 index 0000000..ef313fa --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/user-plus.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/user.svg b/assets/vendor/heroicons/optimized/24/solid/user.svg new file mode 100644 index 0000000..207213d --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/user.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/users.svg b/assets/vendor/heroicons/optimized/24/solid/users.svg new file mode 100644 index 0000000..2959115 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/users.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/variable.svg b/assets/vendor/heroicons/optimized/24/solid/variable.svg new file mode 100644 index 0000000..5601cac --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/variable.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/video-camera-slash.svg b/assets/vendor/heroicons/optimized/24/solid/video-camera-slash.svg new file mode 100644 index 0000000..2a344d5 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/video-camera-slash.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/video-camera.svg b/assets/vendor/heroicons/optimized/24/solid/video-camera.svg new file mode 100644 index 0000000..55bf7b4 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/video-camera.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/view-columns.svg b/assets/vendor/heroicons/optimized/24/solid/view-columns.svg new file mode 100644 index 0000000..f7295e3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/view-columns.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/viewfinder-circle.svg b/assets/vendor/heroicons/optimized/24/solid/viewfinder-circle.svg new file mode 100644 index 0000000..e04b727 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/viewfinder-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/wallet.svg b/assets/vendor/heroicons/optimized/24/solid/wallet.svg new file mode 100644 index 0000000..001b38a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/wallet.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/wifi.svg b/assets/vendor/heroicons/optimized/24/solid/wifi.svg new file mode 100644 index 0000000..eb4fd4e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/wifi.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/window.svg b/assets/vendor/heroicons/optimized/24/solid/window.svg new file mode 100644 index 0000000..4de83b3 --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/window.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/wrench-screwdriver.svg b/assets/vendor/heroicons/optimized/24/solid/wrench-screwdriver.svg new file mode 100644 index 0000000..b7e0e9e --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/wrench-screwdriver.svg @@ -0,0 +1,5 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/wrench.svg b/assets/vendor/heroicons/optimized/24/solid/wrench.svg new file mode 100644 index 0000000..3b61d5b --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/wrench.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/x-circle.svg b/assets/vendor/heroicons/optimized/24/solid/x-circle.svg new file mode 100644 index 0000000..913782a --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/x-circle.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/heroicons/optimized/24/solid/x-mark.svg b/assets/vendor/heroicons/optimized/24/solid/x-mark.svg new file mode 100644 index 0000000..e525a8f --- /dev/null +++ b/assets/vendor/heroicons/optimized/24/solid/x-mark.svg @@ -0,0 +1,3 @@ + diff --git a/assets/vendor/topbar.js b/assets/vendor/topbar.js new file mode 100644 index 0000000..4195727 --- /dev/null +++ b/assets/vendor/topbar.js @@ -0,0 +1,165 @@ +/** + * @license MIT + * topbar 2.0.0, 2023-02-04 + * https://buunguyen.github.io/topbar + * Copyright (c) 2021 Buu Nguyen + */ +(function (window, document) { + "use strict"; + + // https://gist.github.com/paulirish/1579671 + (function () { + var lastTime = 0; + var vendors = ["ms", "moz", "webkit", "o"]; + for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { + window.requestAnimationFrame = + window[vendors[x] + "RequestAnimationFrame"]; + window.cancelAnimationFrame = + window[vendors[x] + "CancelAnimationFrame"] || + window[vendors[x] + "CancelRequestAnimationFrame"]; + } + if (!window.requestAnimationFrame) + window.requestAnimationFrame = function (callback, element) { + var currTime = new Date().getTime(); + var timeToCall = Math.max(0, 16 - (currTime - lastTime)); + var id = window.setTimeout(function () { + callback(currTime + timeToCall); + }, timeToCall); + lastTime = currTime + timeToCall; + return id; + }; + if (!window.cancelAnimationFrame) + window.cancelAnimationFrame = function (id) { + clearTimeout(id); + }; + })(); + + var canvas, + currentProgress, + showing, + progressTimerId = null, + fadeTimerId = null, + delayTimerId = null, + addEvent = function (elem, type, handler) { + if (elem.addEventListener) elem.addEventListener(type, handler, false); + else if (elem.attachEvent) elem.attachEvent("on" + type, handler); + else elem["on" + type] = handler; + }, + options = { + autoRun: true, + barThickness: 3, + barColors: { + 0: "rgba(26, 188, 156, .9)", + ".25": "rgba(52, 152, 219, .9)", + ".50": "rgba(241, 196, 15, .9)", + ".75": "rgba(230, 126, 34, .9)", + "1.0": "rgba(211, 84, 0, .9)", + }, + shadowBlur: 10, + shadowColor: "rgba(0, 0, 0, .6)", + className: null, + }, + repaint = function () { + canvas.width = window.innerWidth; + canvas.height = options.barThickness * 5; // need space for shadow + + var ctx = canvas.getContext("2d"); + ctx.shadowBlur = options.shadowBlur; + ctx.shadowColor = options.shadowColor; + + var lineGradient = ctx.createLinearGradient(0, 0, canvas.width, 0); + for (var stop in options.barColors) + lineGradient.addColorStop(stop, options.barColors[stop]); + ctx.lineWidth = options.barThickness; + ctx.beginPath(); + ctx.moveTo(0, options.barThickness / 2); + ctx.lineTo( + Math.ceil(currentProgress * canvas.width), + options.barThickness / 2 + ); + ctx.strokeStyle = lineGradient; + ctx.stroke(); + }, + createCanvas = function () { + canvas = document.createElement("canvas"); + var style = canvas.style; + style.position = "fixed"; + style.top = style.left = style.right = style.margin = style.padding = 0; + style.zIndex = 100001; + style.display = "none"; + if (options.className) canvas.classList.add(options.className); + document.body.appendChild(canvas); + addEvent(window, "resize", repaint); + }, + topbar = { + config: function (opts) { + for (var key in opts) + if (options.hasOwnProperty(key)) options[key] = opts[key]; + }, + show: function (delay) { + if (showing) return; + if (delay) { + if (delayTimerId) return; + delayTimerId = setTimeout(() => topbar.show(), delay); + } else { + showing = true; + if (fadeTimerId !== null) window.cancelAnimationFrame(fadeTimerId); + if (!canvas) createCanvas(); + canvas.style.opacity = 1; + canvas.style.display = "block"; + topbar.progress(0); + if (options.autoRun) { + (function loop() { + progressTimerId = window.requestAnimationFrame(loop); + topbar.progress( + "+" + 0.05 * Math.pow(1 - Math.sqrt(currentProgress), 2) + ); + })(); + } + } + }, + progress: function (to) { + if (typeof to === "undefined") return currentProgress; + if (typeof to === "string") { + to = + (to.indexOf("+") >= 0 || to.indexOf("-") >= 0 + ? currentProgress + : 0) + parseFloat(to); + } + currentProgress = to > 1 ? 1 : to; + repaint(); + return currentProgress; + }, + hide: function () { + clearTimeout(delayTimerId); + delayTimerId = null; + if (!showing) return; + showing = false; + if (progressTimerId != null) { + window.cancelAnimationFrame(progressTimerId); + progressTimerId = null; + } + (function loop() { + if (topbar.progress("+.1") >= 1) { + canvas.style.opacity -= 0.05; + if (canvas.style.opacity <= 0.05) { + canvas.style.display = "none"; + fadeTimerId = null; + return; + } + } + fadeTimerId = window.requestAnimationFrame(loop); + })(); + }, + }; + + if (typeof module === "object" && typeof module.exports === "object") { + module.exports = topbar; + } else if (typeof define === "function" && define.amd) { + define(function () { + return topbar; + }); + } else { + this.topbar = topbar; + } +}.call(this, window, document)); diff --git a/assets/yarn.lock b/assets/yarn.lock new file mode 100644 index 0000000..fb57ccd --- /dev/null +++ b/assets/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + diff --git a/config/config.exs b/config/config.exs new file mode 100644 index 0000000..d072fd4 --- /dev/null +++ b/config/config.exs @@ -0,0 +1,66 @@ +# This file is responsible for configuring your application +# and its dependencies with the aid of the Config module. +# +# This configuration file is loaded before any dependency and +# is restricted to this project. + +# General application configuration +import Config + +config :multi_tenant, + ecto_repos: [MultiTenant.Repo], + generators: [timestamp_type: :utc_datetime] + +# Configures the endpoint +config :multi_tenant, MultiTenantWeb.Endpoint, + url: [host: "localhost"], + adapter: Phoenix.Endpoint.Cowboy2Adapter, + render_errors: [ + formats: [html: MultiTenantWeb.ErrorHTML, json: MultiTenantWeb.ErrorJSON], + layout: false + ], + pubsub_server: MultiTenant.PubSub, + live_view: [signing_salt: "rTi1WyOL"] + +# Configures the mailer +# +# By default it uses the "Local" adapter which stores the emails +# locally. You can see the emails in your browser, at "/dev/mailbox". +# +# For production it's recommended to configure a different adapter +# at the `config/runtime.exs`. +config :multi_tenant, MultiTenant.Mailer, adapter: Swoosh.Adapters.Local + +# Configure esbuild (the version is required) +config :esbuild, + version: "0.17.11", + default: [ + args: + ~w(js/app.js --bundle --target=es2017 --outdir=../priv/static/assets --external:/fonts/* --external:/images/*), + cd: Path.expand("../assets", __DIR__), + env: %{"NODE_PATH" => Path.expand("../deps", __DIR__)} + ] + +# Configure tailwind (the version is required) +config :tailwind, + version: "3.3.2", + default: [ + args: ~w( + --config=tailwind.config.js + --input=css/app.css + --output=../priv/static/assets/app.css + ), + cd: Path.expand("../assets", __DIR__) + ] + +# Configures Elixir's Logger +config :logger, :console, + format: "$time $metadata[$level] $message\n", + metadata: [:request_id] + +# Use Jason for JSON parsing in Phoenix +config :phoenix, :json_library, Jason + +# Import environment specific config. This must remain at the bottom +# of this file so it overrides the configuration defined above. +import_config "#{config_env()}.exs" diff --git a/config/dev.exs b/config/dev.exs new file mode 100644 index 0000000..82482ab --- /dev/null +++ b/config/dev.exs @@ -0,0 +1,82 @@ +import Config + +# Configure your database +config :multi_tenant, MultiTenant.Repo, + username: "postgres", + password: "postgres", + hostname: "localhost", + database: "multi_tenant_dev", + stacktrace: true, + show_sensitive_data_on_connection_error: true, + pool_size: 10 + +# For development, we disable any cache and enable +# debugging and code reloading. +# +# The watchers configuration can be used to run external +# watchers to your application. For example, we can use it +# to bundle .js and .css sources. +config :multi_tenant, MultiTenantWeb.Endpoint, + # Binding to loopback ipv4 address prevents access from other machines. + # Change to `ip: {0, 0, 0, 0}` to allow access from other machines. + http: [ip: {127, 0, 0, 1}, port: 4000], + check_origin: false, + code_reloader: true, + debug_errors: true, + secret_key_base: "ZGq9GQkqZ6scP4FA/mwdt365QxampWRun/iRLGkpkMo7s+87Qrn6+yh5fmq/+ZIk", + watchers: [ + esbuild: {Esbuild, :install_and_run, [:default, ~w(--sourcemap=inline --watch)]}, + tailwind: {Tailwind, :install_and_run, [:default, ~w(--watch)]} + ] + +# ## SSL Support +# +# In order to use HTTPS in development, a self-signed +# certificate can be generated by running the following +# Mix task: +# +# mix phx.gen.cert +# +# Run `mix help phx.gen.cert` for more information. +# +# The `http:` config above can be replaced with: +# +# https: [ +# port: 4001, +# cipher_suite: :strong, +# keyfile: "priv/cert/selfsigned_key.pem", +# certfile: "priv/cert/selfsigned.pem" +# ], +# +# If desired, both `http:` and `https:` keys can be +# configured to run both http and https servers on +# different ports. + +# Watch static and templates for browser reloading. +config :multi_tenant, MultiTenantWeb.Endpoint, + live_reload: [ + patterns: [ + ~r"priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$", + ~r"priv/gettext/.*(po)$", + ~r"lib/multi_tenant_web/(controllers|live|components)/.*(ex|heex)$" + ] + ] + +# Enable dev routes for dashboard and mailbox +config :multi_tenant, dev_routes: true + +# Do not include metadata nor timestamps in development logs +config :logger, :console, format: "[$level] $message\n" + +# Set a higher stacktrace during development. Avoid configuring such +# in production as building large stacktraces may be expensive. +config :phoenix, :stacktrace_depth, 20 + +# Initialize plugs at runtime for faster development compilation +config :phoenix, :plug_init_mode, :runtime + +# Include HEEx debug annotations as HTML comments in rendered markup +config :phoenix_live_view, :debug_heex_annotations, true + +# Disable swoosh api client as it is only required for production adapters. +config :swoosh, :api_client, false diff --git a/config/prod.exs b/config/prod.exs new file mode 100644 index 0000000..9dd350f --- /dev/null +++ b/config/prod.exs @@ -0,0 +1,21 @@ +import Config + +# Note we also include the path to a cache manifest +# containing the digested version of static files. This +# manifest is generated by the `mix assets.deploy` task, +# which you should run after static files are built and +# before starting your production server. +config :multi_tenant, MultiTenantWeb.Endpoint, + cache_static_manifest: "priv/static/cache_manifest.json" + +# Configures Swoosh API Client +config :swoosh, api_client: Swoosh.ApiClient.Finch, finch_name: MultiTenant.Finch + +# Disable Swoosh Local Memory Storage +config :swoosh, local: false + +# Do not print debug messages in production +config :logger, level: :info + +# Runtime production configuration, including reading +# of environment variables, is done on config/runtime.exs. diff --git a/config/runtime.exs b/config/runtime.exs new file mode 100644 index 0000000..10479c2 --- /dev/null +++ b/config/runtime.exs @@ -0,0 +1,117 @@ +import Config + +# config/runtime.exs is executed for all environments, including +# during releases. It is executed after compilation and before the +# system starts, so it is typically used to load production configuration +# and secrets from environment variables or elsewhere. Do not define +# any compile-time configuration in here, as it won't be applied. +# The block below contains prod specific runtime configuration. + +# ## Using releases +# +# If you use `mix release`, you need to explicitly enable the server +# by passing the PHX_SERVER=true when you start it: +# +# PHX_SERVER=true bin/multi_tenant start +# +# Alternatively, you can use `mix phx.gen.release` to generate a `bin/server` +# script that automatically sets the env var above. +if System.get_env("PHX_SERVER") do + config :multi_tenant, MultiTenantWeb.Endpoint, server: true +end + +if config_env() == :prod do + database_url = + System.get_env("DATABASE_URL") || + raise """ + environment variable DATABASE_URL is missing. + For example: ecto://USER:PASS@HOST/DATABASE + """ + + maybe_ipv6 = if System.get_env("ECTO_IPV6") in ~w(true 1), do: [:inet6], else: [] + + config :multi_tenant, MultiTenant.Repo, + # ssl: true, + url: database_url, + pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), + socket_options: maybe_ipv6 + + # The secret key base is used to sign/encrypt cookies and other secrets. + # A default value is used in config/dev.exs and config/test.exs but you + # want to use a different value for prod and you most likely don't want + # to check this value into version control, so we use an environment + # variable instead. + secret_key_base = + System.get_env("SECRET_KEY_BASE") || + raise """ + environment variable SECRET_KEY_BASE is missing. + You can generate one by calling: mix phx.gen.secret + """ + + host = System.get_env("PHX_HOST") || "example.com" + port = String.to_integer(System.get_env("PORT") || "4000") + + config :multi_tenant, :dns_cluster_query, System.get_env("DNS_CLUSTER_QUERY") + + config :multi_tenant, MultiTenantWeb.Endpoint, + url: [host: host, port: 443, scheme: "https"], + http: [ + # Enable IPv6 and bind on all interfaces. + # Set it to {0, 0, 0, 0, 0, 0, 0, 1} for local network only access. + # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html + # for details about using IPv6 vs IPv4 and loopback vs public addresses. + ip: {0, 0, 0, 0, 0, 0, 0, 0}, + port: port + ], + secret_key_base: secret_key_base + + # ## SSL Support + # + # To get SSL working, you will need to add the `https` key + # to your endpoint configuration: + # + # config :multi_tenant, MultiTenantWeb.Endpoint, + # https: [ + # ..., + # port: 443, + # cipher_suite: :strong, + # keyfile: System.get_env("SOME_APP_SSL_KEY_PATH"), + # certfile: System.get_env("SOME_APP_SSL_CERT_PATH") + # ] + # + # The `cipher_suite` is set to `:strong` to support only the + # latest and more secure SSL ciphers. This means old browsers + # and clients may not be supported. You can set it to + # `:compatible` for wider support. + # + # `:keyfile` and `:certfile` expect an absolute path to the key + # and cert in disk or a relative path inside priv, for example + # "priv/ssl/server.key". For all supported SSL configuration + # options, see https://hexdocs.pm/plug/Plug.SSL.html#configure/1 + # + # We also recommend setting `force_ssl` in your endpoint, ensuring + # no data is ever sent via http, always redirecting to https: + # + # config :multi_tenant, MultiTenantWeb.Endpoint, + # force_ssl: [hsts: true] + # + # Check `Plug.SSL` for all available options in `force_ssl`. + + # ## Configuring the mailer + # + # In production you need to configure the mailer to use a different adapter. + # Also, you may need to configure the Swoosh API client of your choice if you + # are not using SMTP. Here is an example of the configuration: + # + # config :multi_tenant, MultiTenant.Mailer, + # adapter: Swoosh.Adapters.Mailgun, + # api_key: System.get_env("MAILGUN_API_KEY"), + # domain: System.get_env("MAILGUN_DOMAIN") + # + # For this example you need include a HTTP client required by Swoosh API client. + # Swoosh supports Hackney and Finch out of the box: + # + # config :swoosh, :api_client, Swoosh.ApiClient.Hackney + # + # See https://hexdocs.pm/swoosh/Swoosh.html#module-installation for details. +end diff --git a/config/test.exs b/config/test.exs new file mode 100644 index 0000000..587890f --- /dev/null +++ b/config/test.exs @@ -0,0 +1,33 @@ +import Config + +# Configure your database +# +# The MIX_TEST_PARTITION environment variable can be used +# to provide built-in test partitioning in CI environment. +# Run `mix help test` for more information. +config :multi_tenant, MultiTenant.Repo, + username: "postgres", + password: "postgres", + hostname: "localhost", + database: "multi_tenant_test#{System.get_env("MIX_TEST_PARTITION")}", + pool: Ecto.Adapters.SQL.Sandbox, + pool_size: 10 + +# We don't run a server during test. If one is required, +# you can enable the server option below. +config :multi_tenant, MultiTenantWeb.Endpoint, + http: [ip: {127, 0, 0, 1}, port: 4002], + secret_key_base: "kItRDxtb3Fj/DYhK36/AXqkgKeToWj4ap801vhHvFHjGN+cpGdOh/fyU3XiBW9qH", + server: false + +# In test we don't send emails. +config :multi_tenant, MultiTenant.Mailer, adapter: Swoosh.Adapters.Test + +# Disable swoosh api client as it is only required for production adapters. +config :swoosh, :api_client, false + +# Print only warnings and errors during test +config :logger, level: :warning + +# Initialize plugs at runtime for faster test compilation +config :phoenix, :plug_init_mode, :runtime diff --git a/lib/multi_tenant.ex b/lib/multi_tenant.ex new file mode 100644 index 0000000..ccdddb9 --- /dev/null +++ b/lib/multi_tenant.ex @@ -0,0 +1,9 @@ +defmodule MultiTenant do + @moduledoc """ + MultiTenant keeps the contexts that define your domain + and business logic. + + Contexts are also responsible for managing your data, regardless + if it comes from the database, an external API or others. + """ +end diff --git a/lib/multi_tenant/application.ex b/lib/multi_tenant/application.ex new file mode 100644 index 0000000..b07bc4f --- /dev/null +++ b/lib/multi_tenant/application.ex @@ -0,0 +1,36 @@ +defmodule MultiTenant.Application do + # See https://hexdocs.pm/elixir/Application.html + # for more information on OTP Applications + @moduledoc false + + use Application + + @impl true + def start(_type, _args) do + children = [ + MultiTenantWeb.Telemetry, + MultiTenant.Repo, + {DNSCluster, query: Application.get_env(:multi_tenant, :dns_cluster_query) || :ignore}, + {Phoenix.PubSub, name: MultiTenant.PubSub}, + # Start the Finch HTTP client for sending emails + {Finch, name: MultiTenant.Finch}, + # Start a worker by calling: MultiTenant.Worker.start_link(arg) + # {MultiTenant.Worker, arg}, + # Start to serve requests, typically the last entry + MultiTenantWeb.Endpoint + ] + + # See https://hexdocs.pm/elixir/Supervisor.html + # for other strategies and supported options + opts = [strategy: :one_for_one, name: MultiTenant.Supervisor] + Supervisor.start_link(children, opts) + end + + # Tell Phoenix to update the endpoint configuration + # whenever the application is updated. + @impl true + def config_change(changed, _new, removed) do + MultiTenantWeb.Endpoint.config_change(changed, removed) + :ok + end +end diff --git a/lib/multi_tenant/mailer.ex b/lib/multi_tenant/mailer.ex new file mode 100644 index 0000000..9655a22 --- /dev/null +++ b/lib/multi_tenant/mailer.ex @@ -0,0 +1,3 @@ +defmodule MultiTenant.Mailer do + use Swoosh.Mailer, otp_app: :multi_tenant +end diff --git a/lib/multi_tenant/notes.ex b/lib/multi_tenant/notes.ex new file mode 100644 index 0000000..fe16db3 --- /dev/null +++ b/lib/multi_tenant/notes.ex @@ -0,0 +1,34 @@ +defmodule MultiTenant.Notes do + import Ecto.Query, warn: false + alias MultiTenant.Repo + alias MultiTenant.Notes.Note + + def list() do + Note + |> order_by(desc: :inserted_at) + |> Repo.all() + end + + def get!(id), do: Repo.get!(Note, id) + + def create(attrs \\ %{}) do + %Note{} + |> Note.changeset(attrs) + |> Repo.insert() + end + + def update(%Note{} = note, attrs) do + note + |> Note.changeset(attrs) + |> Repo.update() + end + + def delete(%Note{} = note) do + note + |> Repo.delete() + end + + def changeset(%Note{} = note, attrs \\ %{}) do + Note.changeset(note, attrs) + end +end diff --git a/lib/multi_tenant/notes/note.ex b/lib/multi_tenant/notes/note.ex new file mode 100644 index 0000000..a15f29d --- /dev/null +++ b/lib/multi_tenant/notes/note.ex @@ -0,0 +1,18 @@ +defmodule MultiTenant.Notes.Note do + use Ecto.Schema + import Ecto.Changeset + + schema "notes" do + field :title, :string + field :body, :string + + timestamps(type: :utc_datetime) + end + + @doc false + def changeset(note, attrs) do + note + |> cast(attrs, [:title, :body]) + |> validate_required([:title]) + end +end diff --git a/lib/multi_tenant/repo.ex b/lib/multi_tenant/repo.ex new file mode 100644 index 0000000..2e53500 --- /dev/null +++ b/lib/multi_tenant/repo.ex @@ -0,0 +1,5 @@ +defmodule MultiTenant.Repo do + use Ecto.Repo, + otp_app: :multi_tenant, + adapter: Ecto.Adapters.Postgres +end diff --git a/lib/multi_tenant/todos.ex b/lib/multi_tenant/todos.ex new file mode 100644 index 0000000..b2127b4 --- /dev/null +++ b/lib/multi_tenant/todos.ex @@ -0,0 +1,34 @@ +defmodule MultiTenant.Todos do + import Ecto.Query, warn: false + alias MultiTenant.Repo + alias MultiTenant.Todos.Todo + + def list() do + Todo + |> order_by(desc: :inserted_at) + |> Repo.all() + end + + def get!(id), do: Repo.get!(Todo, id) + + def create(attrs \\ %{}) do + %Todo{} + |> Todo.changeset(attrs) + |> Repo.insert() + end + + def update(%Todo{} = todo, attrs) do + todo + |> Todo.changeset(attrs) + |> Repo.update() + end + + def delete(%Todo{} = todo) do + todo + |> Repo.delete() + end + + def changeset(%Todo{} = todo, attrs \\ %{}) do + Todo.changeset(todo, attrs) + end +end diff --git a/lib/multi_tenant/todos/todo.ex b/lib/multi_tenant/todos/todo.ex new file mode 100644 index 0000000..a061289 --- /dev/null +++ b/lib/multi_tenant/todos/todo.ex @@ -0,0 +1,18 @@ +defmodule MultiTenant.Todos.Todo do + use Ecto.Schema + import Ecto.Changeset + + schema "todos" do + field :name, :string + field :done, :boolean + + timestamps(type: :utc_datetime) + end + + @doc false + def changeset(note, attrs) do + note + |> cast(attrs, [:name, :done]) + |> validate_required([:name, :done]) + end +end diff --git a/lib/multi_tenant_web.ex b/lib/multi_tenant_web.ex new file mode 100644 index 0000000..56f33d9 --- /dev/null +++ b/lib/multi_tenant_web.ex @@ -0,0 +1,113 @@ +defmodule MultiTenantWeb do + @moduledoc """ + The entrypoint for defining your web interface, such + as controllers, components, channels, and so on. + + This can be used in your application as: + + use MultiTenantWeb, :controller + use MultiTenantWeb, :html + + The definitions below will be executed for every controller, + component, etc, so keep them short and clean, focused + on imports, uses and aliases. + + Do NOT define functions inside the quoted expressions + below. Instead, define additional modules and import + those modules here. + """ + + def static_paths, do: ~w(assets fonts images favicon.ico robots.txt) + + def router do + quote do + use Phoenix.Router, helpers: false + + # Import common connection and controller functions to use in pipelines + import Plug.Conn + import Phoenix.Controller + import Phoenix.LiveView.Router + end + end + + def channel do + quote do + use Phoenix.Channel + end + end + + def controller do + quote do + use Phoenix.Controller, + formats: [:html, :json], + layouts: [html: MultiTenantWeb.Layouts] + + import Plug.Conn + import MultiTenantWeb.Gettext + + unquote(verified_routes()) + end + end + + def live_view do + quote do + use Phoenix.LiveView, + layout: {MultiTenantWeb.Layouts, :app} + + unquote(html_helpers()) + end + end + + def live_component do + quote do + use Phoenix.LiveComponent + + unquote(html_helpers()) + end + end + + def html do + quote do + use Phoenix.Component + + # Import convenience functions from controllers + import Phoenix.Controller, + only: [get_csrf_token: 0, view_module: 1, view_template: 1] + + # Include general helpers for rendering HTML + unquote(html_helpers()) + end + end + + defp html_helpers do + quote do + # HTML escaping functionality + import Phoenix.HTML + # Core UI components and translation + import MultiTenantWeb.CoreComponents + import MultiTenantWeb.Gettext + + # Shortcut for generating JS commands + alias Phoenix.LiveView.JS + + # Routes generation with the ~p sigil + unquote(verified_routes()) + end + end + + def verified_routes do + quote do + use Phoenix.VerifiedRoutes, + endpoint: MultiTenantWeb.Endpoint, + router: MultiTenantWeb.Router, + statics: MultiTenantWeb.static_paths() + end + end + + @doc """ + When used, dispatch to the appropriate controller/view/etc. + """ + defmacro __using__(which) when is_atom(which) do + apply(__MODULE__, which, []) + end +end diff --git a/lib/multi_tenant_web/components/core_components.ex b/lib/multi_tenant_web/components/core_components.ex new file mode 100644 index 0000000..12681e7 --- /dev/null +++ b/lib/multi_tenant_web/components/core_components.ex @@ -0,0 +1,674 @@ +defmodule MultiTenantWeb.CoreComponents do + @moduledoc """ + Provides core UI components. + + At first glance, this module may seem daunting, but its goal is to provide + core building blocks for your application, such as modals, tables, and + forms. The components consist mostly of markup and are well-documented + with doc strings and declarative assigns. You may customize and style + them in any way you want, based on your application growth and needs. + + The default components use Tailwind CSS, a utility-first CSS framework. + See the [Tailwind CSS documentation](https://tailwindcss.com) to learn + how to customize them or feel free to swap in another framework altogether. + + Icons are provided by [heroicons](https://heroicons.com). See `icon/1` for usage. + """ + use Phoenix.Component + + alias Phoenix.LiveView.JS + import MultiTenantWeb.Gettext + + @doc """ + Renders a modal. + + ## Examples + + <.modal id="confirm-modal"> + This is a modal. + + + JS commands may be passed to the `:on_cancel` to configure + the closing/cancel event, for example: + + <.modal id="confirm" on_cancel={JS.navigate(~p"/posts")}> + This is another modal. + + + """ + attr :id, :string, required: true + attr :show, :boolean, default: false + attr :on_cancel, JS, default: %JS{} + slot :inner_block, required: true + + def modal(assigns) do + ~H""" + + """ + end + + def input(%{type: "select"} = assigns) do + ~H""" +
+ <.label for={@id}><%= @label %> + + <.error :for={msg <- @errors}><%= msg %> +
+ """ + end + + def input(%{type: "textarea"} = assigns) do + ~H""" +
+ <.label for={@id}><%= @label %> + + <.error :for={msg <- @errors}><%= msg %> +
+ """ + end + + # All other inputs text, datetime-local, url, password, etc. are handled here... + def input(assigns) do + ~H""" +
+ <.label for={@id}><%= @label %> + + <.error :for={msg <- @errors}><%= msg %> +
+ """ + end + + @doc """ + Renders a label. + """ + attr :for, :string, default: nil + slot :inner_block, required: true + + def label(assigns) do + ~H""" + + """ + end + + @doc """ + Generates a generic error message. + """ + slot :inner_block, required: true + + def error(assigns) do + ~H""" +

+ <.icon name="hero-exclamation-circle-mini" class="mt-0.5 h-5 w-5 flex-none" /> + <%= render_slot(@inner_block) %> +

+ """ + end + + @doc """ + Renders a header with title. + """ + attr :class, :string, default: nil + + slot :inner_block, required: true + slot :subtitle + slot :actions + + def header(assigns) do + ~H""" +
+
+

+ <%= render_slot(@inner_block) %> +

+

+ <%= render_slot(@subtitle) %> +

+
+
<%= render_slot(@actions) %>
+
+ """ + end + + @doc ~S""" + Renders a table with generic styling. + + ## Examples + + <.table id="users" rows={@users}> + <:col :let={user} label="id"><%= user.id %> + <:col :let={user} label="username"><%= user.username %> + + """ + attr :id, :string, required: true + attr :rows, :list, required: true + attr :row_id, :any, default: nil, doc: "the function for generating the row id" + attr :row_click, :any, default: nil, doc: "the function for handling phx-click on each row" + + attr :row_item, :any, + default: &Function.identity/1, + doc: "the function for mapping each row before calling the :col and :action slots" + + slot :col, required: true do + attr :label, :string + end + + slot :action, doc: "the slot for showing user actions in the last table column" + + def table(assigns) do + assigns = + with %{rows: %Phoenix.LiveView.LiveStream{}} <- assigns do + assign(assigns, row_id: assigns.row_id || fn {id, _item} -> id end) + end + + ~H""" +
+ + + + + + + + + + + + + +
<%= col[:label] %> + <%= gettext("Actions") %> +
+
+ + + <%= render_slot(col, @row_item.(row)) %> + +
+
+
+ + + <%= render_slot(action, @row_item.(row)) %> + +
+
+
+ """ + end + + @doc """ + Renders a data list. + + ## Examples + + <.list> + <:item title="Title"><%= @post.title %> + <:item title="Views"><%= @post.views %> + + """ + slot :item, required: true do + attr :title, :string, required: true + end + + def list(assigns) do + ~H""" +
+
+
+
<%= item.title %>
+
<%= render_slot(item) %>
+
+
+
+ """ + end + + @doc """ + Renders a back navigation link. + + ## Examples + + <.back navigate={~p"/posts"}>Back to posts + """ + attr :navigate, :any, required: true + slot :inner_block, required: true + + def back(assigns) do + ~H""" +
+ <.link + navigate={@navigate} + class="text-sm font-semibold leading-6 text-zinc-900 hover:text-zinc-700" + > + <.icon name="hero-arrow-left-solid" class="h-3 w-3" /> + <%= render_slot(@inner_block) %> + +
+ """ + end + + @doc """ + Renders a [Heroicon](https://heroicons.com). + + Heroicons come in three styles – outline, solid, and mini. + By default, the outline style is used, but solid and mini may + be applied by using the `-solid` and `-mini` suffix. + + You can customize the size and colors of the icons by setting + width, height, and background color classes. + + Icons are extracted from your `assets/vendor/heroicons` directory and bundled + within your compiled app.css by the plugin in your `assets/tailwind.config.js`. + + ## Examples + + <.icon name="hero-x-mark-solid" /> + <.icon name="hero-arrow-path" class="ml-1 w-3 h-3 animate-spin" /> + """ + attr :name, :string, required: true + attr :class, :string, default: nil + + def icon(%{name: "hero-" <> _} = assigns) do + ~H""" + + """ + end + + ## JS Commands + + def show(js \\ %JS{}, selector) do + JS.show(js, + to: selector, + transition: + {"transition-all transform ease-out duration-300", + "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95", + "opacity-100 translate-y-0 sm:scale-100"} + ) + end + + def hide(js \\ %JS{}, selector) do + JS.hide(js, + to: selector, + time: 200, + transition: + {"transition-all transform ease-in duration-200", + "opacity-100 translate-y-0 sm:scale-100", + "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"} + ) + end + + def show_modal(js \\ %JS{}, id) when is_binary(id) do + js + |> JS.show(to: "##{id}") + |> JS.show( + to: "##{id}-bg", + transition: {"transition-all transform ease-out duration-300", "opacity-0", "opacity-100"} + ) + |> show("##{id}-container") + |> JS.add_class("overflow-hidden", to: "body") + |> JS.focus_first(to: "##{id}-content") + end + + def hide_modal(js \\ %JS{}, id) do + js + |> JS.hide( + to: "##{id}-bg", + transition: {"transition-all transform ease-in duration-200", "opacity-100", "opacity-0"} + ) + |> hide("##{id}-container") + |> JS.hide(to: "##{id}", transition: {"block", "block", "hidden"}) + |> JS.remove_class("overflow-hidden", to: "body") + |> JS.pop_focus() + end + + @doc """ + Translates an error message using gettext. + """ + def translate_error({msg, opts}) do + # When using gettext, we typically pass the strings we want + # to translate as a static argument: + # + # # Translate the number of files with plural rules + # dngettext("errors", "1 file", "%{count} files", count) + # + # However the error messages in our forms and APIs are generated + # dynamically, so we need to translate them by calling Gettext + # with our gettext backend as first argument. Translations are + # available in the errors.po file (as we use the "errors" domain). + if count = opts[:count] do + Gettext.dngettext(MultiTenantWeb.Gettext, "errors", msg, msg, count, opts) + else + Gettext.dgettext(MultiTenantWeb.Gettext, "errors", msg, opts) + end + end + + @doc """ + Translates the errors for a field from a keyword list of errors. + """ + def translate_errors(errors, field) when is_list(errors) do + for {^field, {msg, opts}} <- errors, do: translate_error({msg, opts}) + end +end diff --git a/lib/multi_tenant_web/components/layouts.ex b/lib/multi_tenant_web/components/layouts.ex new file mode 100644 index 0000000..ab73734 --- /dev/null +++ b/lib/multi_tenant_web/components/layouts.ex @@ -0,0 +1,5 @@ +defmodule MultiTenantWeb.Layouts do + use MultiTenantWeb, :html + + embed_templates "layouts/*" +end diff --git a/lib/multi_tenant_web/components/layouts/app.html.heex b/lib/multi_tenant_web/components/layouts/app.html.heex new file mode 100644 index 0000000..e1e65ba --- /dev/null +++ b/lib/multi_tenant_web/components/layouts/app.html.heex @@ -0,0 +1,26 @@ +
+
+
+ + + +

+ Silly Multi-Tenant Test App +

+
+
+ <.link href={~p"/notes"} class="hover:text-zinc-700"> + Notes + + <.link href={~p"/todos"} class="hover:text-zinc-700"> + Todos + +
+
+
+
+
+ <.flash_group flash={@flash} /> + <%= @inner_content %> +
+
diff --git a/lib/multi_tenant_web/components/layouts/root.html.heex b/lib/multi_tenant_web/components/layouts/root.html.heex new file mode 100644 index 0000000..261941f --- /dev/null +++ b/lib/multi_tenant_web/components/layouts/root.html.heex @@ -0,0 +1,17 @@ + + + + + + + <.live_title suffix=" · Phoenix Framework"> + <%= assigns[:page_title] || "MultiTenant" %> + + + + + + <%= @inner_content %> + + diff --git a/lib/multi_tenant_web/controllers/error_html.ex b/lib/multi_tenant_web/controllers/error_html.ex new file mode 100644 index 0000000..b8e1f72 --- /dev/null +++ b/lib/multi_tenant_web/controllers/error_html.ex @@ -0,0 +1,19 @@ +defmodule MultiTenantWeb.ErrorHTML do + use MultiTenantWeb, :html + + # If you want to customize your error pages, + # uncomment the embed_templates/1 call below + # and add pages to the error directory: + # + # * lib/multi_tenant_web/controllers/error_html/404.html.heex + # * lib/multi_tenant_web/controllers/error_html/500.html.heex + # + # embed_templates "error_html/*" + + # The default is to render a plain text page based on + # the template name. For example, "404.html" becomes + # "Not Found". + def render(template, _assigns) do + Phoenix.Controller.status_message_from_template(template) + end +end diff --git a/lib/multi_tenant_web/controllers/error_json.ex b/lib/multi_tenant_web/controllers/error_json.ex new file mode 100644 index 0000000..5e071f9 --- /dev/null +++ b/lib/multi_tenant_web/controllers/error_json.ex @@ -0,0 +1,15 @@ +defmodule MultiTenantWeb.ErrorJSON do + # If you want to customize a particular status code, + # you may add your own clauses, such as: + # + # def render("500.json", _assigns) do + # %{errors: %{detail: "Internal Server Error"}} + # end + + # By default, Phoenix returns the status message from + # the template name. For example, "404.json" becomes + # "Not Found". + def render(template, _assigns) do + %{errors: %{detail: Phoenix.Controller.status_message_from_template(template)}} + end +end diff --git a/lib/multi_tenant_web/controllers/page_controller.ex b/lib/multi_tenant_web/controllers/page_controller.ex new file mode 100644 index 0000000..8f5aff9 --- /dev/null +++ b/lib/multi_tenant_web/controllers/page_controller.ex @@ -0,0 +1,7 @@ +defmodule MultiTenantWeb.PageController do + use MultiTenantWeb, :controller + + def home(conn, _params) do + render(conn, :home) + end +end diff --git a/lib/multi_tenant_web/controllers/page_html.ex b/lib/multi_tenant_web/controllers/page_html.ex new file mode 100644 index 0000000..e13df8d --- /dev/null +++ b/lib/multi_tenant_web/controllers/page_html.ex @@ -0,0 +1,5 @@ +defmodule MultiTenantWeb.PageHTML do + use MultiTenantWeb, :html + + embed_templates "page_html/*" +end diff --git a/lib/multi_tenant_web/controllers/page_html/home.html.heex b/lib/multi_tenant_web/controllers/page_html/home.html.heex new file mode 100644 index 0000000..f3e333e --- /dev/null +++ b/lib/multi_tenant_web/controllers/page_html/home.html.heex @@ -0,0 +1 @@ +

Hello World

diff --git a/lib/multi_tenant_web/endpoint.ex b/lib/multi_tenant_web/endpoint.ex new file mode 100644 index 0000000..e342919 --- /dev/null +++ b/lib/multi_tenant_web/endpoint.ex @@ -0,0 +1,51 @@ +defmodule MultiTenantWeb.Endpoint do + use Phoenix.Endpoint, otp_app: :multi_tenant + + # The session will be stored in the cookie and signed, + # this means its contents can be read but not tampered with. + # Set :encryption_salt if you would also like to encrypt it. + @session_options [ + store: :cookie, + key: "_multi_tenant_key", + signing_salt: "3k+vOR3k", + same_site: "Lax" + ] + + socket "/live", Phoenix.LiveView.Socket, websocket: [connect_info: [session: @session_options]] + + # Serve at "/" the static files from "priv/static" directory. + # + # You should set gzip to true if you are running phx.digest + # when deploying your static files in production. + plug Plug.Static, + at: "/", + from: :multi_tenant, + gzip: false, + only: MultiTenantWeb.static_paths() + + # Code reloading can be explicitly enabled under the + # :code_reloader configuration of your endpoint. + if code_reloading? do + socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket + plug Phoenix.LiveReloader + plug Phoenix.CodeReloader + plug Phoenix.Ecto.CheckRepoStatus, otp_app: :multi_tenant + end + + plug Phoenix.LiveDashboard.RequestLogger, + param_key: "request_logger", + cookie_key: "request_logger" + + plug Plug.RequestId + plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint] + + plug Plug.Parsers, + parsers: [:urlencoded, :multipart, :json], + pass: ["*/*"], + json_decoder: Phoenix.json_library() + + plug Plug.MethodOverride + plug Plug.Head + plug Plug.Session, @session_options + plug MultiTenantWeb.Router +end diff --git a/lib/multi_tenant_web/gettext.ex b/lib/multi_tenant_web/gettext.ex new file mode 100644 index 0000000..ab12aa3 --- /dev/null +++ b/lib/multi_tenant_web/gettext.ex @@ -0,0 +1,24 @@ +defmodule MultiTenantWeb.Gettext do + @moduledoc """ + A module providing Internationalization with a gettext-based API. + + By using [Gettext](https://hexdocs.pm/gettext), + your module gains a set of macros for translations, for example: + + import MultiTenantWeb.Gettext + + # Simple translation + gettext("Here is the string to translate") + + # Plural translation + ngettext("Here is the string to translate", + "Here are the strings to translate", + 3) + + # Domain-based translation + dgettext("errors", "Here is the error message to translate") + + See the [Gettext Docs](https://hexdocs.pm/gettext) for detailed usage. + """ + use Gettext, otp_app: :multi_tenant +end diff --git a/lib/multi_tenant_web/live/notes_edit_live.ex b/lib/multi_tenant_web/live/notes_edit_live.ex new file mode 100644 index 0000000..e16c112 --- /dev/null +++ b/lib/multi_tenant_web/live/notes_edit_live.ex @@ -0,0 +1,101 @@ +defmodule MultiTenantWeb.NotesEditLive do + alias MultiTenant.Notes + alias MultiTenant.Notes.Note + use MultiTenantWeb, :live_view + + @impl true + def mount(_params, _session, socket) do + {:ok, socket} + end + + @impl true + def handle_params(params, _url, socket) do + # this view is invoked with live_action of either "new" or "edit" + # call apply_action to handle the live_action + {:noreply, apply_action(socket, socket.assigns.live_action, params)} + end + + defp apply_action(socket, :edit, %{"id" => id}) do + socket + |> assign(:page_title, "Edit Note") + |> assign_note(Notes.get!(id)) + end + + defp apply_action(socket, :new, _params) do + socket + |> assign(:page_title, "New Note") + |> assign_note(%Note{}) + end + + defp assign_note(socket, note) do + # assign the note and its HTML representation to the socket + socket + |> assign(:note, note) + |> assign(:form, to_form(Notes.changeset(note))) + end + + @impl true + def handle_event("validate", %{"note" => note_params}, socket) do + changeset = + socket.assigns.note + |> Notes.changeset(note_params) + |> Map.put(:action, :validate) + + {:noreply, assign(socket, form: to_form(changeset))} + end + + @impl true + def handle_event("save", %{"note" => note_params}, socket), + do: save(socket, note_params, socket.assigns.live_action) + + defp save(socket, note_params, :new) do + case Notes.create(note_params) do + {:ok, note} -> + {:noreply, + socket + |> assign_note(note) + |> put_flash(:info, "Note created successfully") + |> push_navigate(to: ~p"/notes/#{note.id}/edit")} + + {:error, %Ecto.Changeset{} = changeset} -> + {:noreply, assign(socket, form: to_form(changeset))} + end + end + + defp save(socket, note_params, :edit) do + case Notes.update(socket.assigns.note, note_params) do + {:ok, note} -> + {:noreply, + socket + |> assign_note(note) + |> put_flash(:info, "Note updated successfully")} + + {:error, %Ecto.Changeset{} = changeset} -> + {:noreply, assign(socket, form: to_form(changeset))} + end + end + + @impl true + def render(assigns) do + ~H""" +
+ <.header> + <%= @page_title %> + + +
+ <.simple_form for={@form} id="note-form" phx-change="validate" phx-submit="save"> + <.input field={@form[:title]} type="text" label="Title" /> + <.input field={@form[:body]} type="text" label="Body" /> + + <:actions> + <.button phx-disable-with="Saving..."> + Save Note + + + +
+
+ """ + end +end diff --git a/lib/multi_tenant_web/live/notes_live.ex b/lib/multi_tenant_web/live/notes_live.ex new file mode 100644 index 0000000..eb4ce1c --- /dev/null +++ b/lib/multi_tenant_web/live/notes_live.ex @@ -0,0 +1,56 @@ +defmodule MultiTenantWeb.NotesLive do + use MultiTenantWeb, :live_view + alias MultiTenant.Notes + + @impl true + def mount(_params, _session, socket) do + {:ok, + socket + |> assign(:page_title, "Notes") + |> assign(:notes, Notes.list())} + end + + @impl true + def handle_event("delete", %{"id" => id}, socket) do + note = Notes.get!(id) + {:ok, _} = Notes.delete(note) + + {:noreply, socket |> assign(notes: Enum.filter(socket.assigns.notes, &(&1.id != note.id)))} + end + + @impl true + def render(assigns) do + ~H""" + <.header> + Listing Notes + <:actions> + <.link patch={~p"/notes/new"}> + <.button>New note + + + + + <.table id="notes" rows={@notes}> + <:col :let={note} label="Title"> + <%= note.title %> + + <:col :let={note} label="Body"> + <%= note.body %> + + <:action :let={note}> + <.link patch={~p"/notes/#{note}/edit"}> + <.icon name="hero-pencil" /> + + + <:action :let={note}> + <.link + phx-click={JS.push("delete", value: %{id: note.id}) |> hide("##{note.id}")} + data-confirm="Are you sure?" + > + <.icon name="hero-trash" /> + + + + """ + end +end diff --git a/lib/multi_tenant_web/live/todos_edit_live.ex b/lib/multi_tenant_web/live/todos_edit_live.ex new file mode 100644 index 0000000..e8e7256 --- /dev/null +++ b/lib/multi_tenant_web/live/todos_edit_live.ex @@ -0,0 +1,101 @@ +defmodule MultiTenantWeb.TodosEditLive do + alias MultiTenant.Todos + alias MultiTenant.Todos.Todo + use MultiTenantWeb, :live_view + + @impl true + def mount(_params, _session, socket) do + {:ok, socket} + end + + @impl true + def handle_params(params, _url, socket) do + # this view is invoked with live_action of either "new" or "edit" + # call apply_action to handle the live_action + {:noreply, apply_action(socket, socket.assigns.live_action, params)} + end + + defp apply_action(socket, :edit, %{"id" => id}) do + socket + |> assign(:page_title, "Edit Todo") + |> assign_todo(Todos.get!(id)) + end + + defp apply_action(socket, :new, _params) do + socket + |> assign(:page_title, "New Todo") + |> assign_todo(%Todo{}) + end + + defp assign_todo(socket, todo) do + # assign the todo and its HTML representation to the socket + socket + |> assign(:todo, todo) + |> assign(:form, to_form(Todos.changeset(todo))) + end + + @impl true + def handle_event("validate", %{"todo" => todo_params}, socket) do + changeset = + socket.assigns.todo + |> Todos.changeset(todo_params) + |> Map.put(:action, :validate) + + {:noreply, assign(socket, form: to_form(changeset))} + end + + @impl true + def handle_event("save", %{"todo" => todo_params}, socket), + do: save(socket, todo_params, socket.assigns.live_action) + + defp save(socket, todo_params, :new) do + case Todos.create(todo_params) do + {:ok, todo} -> + {:noreply, + socket + |> assign_todo(todo) + |> put_flash(:info, "Todo created successfully") + |> push_navigate(to: ~p"/todos/#{todo.id}/edit")} + + {:error, %Ecto.Changeset{} = changeset} -> + {:noreply, assign(socket, form: to_form(changeset))} + end + end + + defp save(socket, todo_params, :edit) do + case Todos.update(socket.assigns.todo, todo_params) do + {:ok, todo} -> + {:noreply, + socket + |> assign_todo(todo) + |> put_flash(:info, "Todo updated successfully")} + + {:error, %Ecto.Changeset{} = changeset} -> + {:noreply, assign(socket, form: to_form(changeset))} + end + end + + @impl true + def render(assigns) do + ~H""" +
+ <.header> + <%= @page_title %> + + +
+ <.simple_form for={@form} id="todo-form" phx-change="validate" phx-submit="save"> + <.input field={@form[:name]} type="text" label="Name" /> + <.input field={@form[:done]} type="checkbox" label="Done?" /> + + <:actions> + <.button phx-disable-with="Saving..."> + Save Todo + + + +
+
+ """ + end +end diff --git a/lib/multi_tenant_web/live/todos_live.ex b/lib/multi_tenant_web/live/todos_live.ex new file mode 100644 index 0000000..6d70ce8 --- /dev/null +++ b/lib/multi_tenant_web/live/todos_live.ex @@ -0,0 +1,56 @@ +defmodule MultiTenantWeb.TodosLive do + use MultiTenantWeb, :live_view + alias MultiTenant.Todos + + @impl true + def mount(_params, _session, socket) do + {:ok, + socket + |> assign(:page_title, "Todos") + |> assign(:todos, Todos.list())} + end + + @impl true + def handle_event("delete", %{"id" => id}, socket) do + todo = Todos.get!(id) + {:ok, _} = Todos.delete(todo) + + {:noreply, socket |> assign(todos: Enum.filter(socket.assigns.todos, &(&1.id != todo.id)))} + end + + @impl true + def render(assigns) do + ~H""" + <.header> + Listing Todos + <:actions> + <.link patch={~p"/todos/new"}> + <.button>New todo + + + + + <.table id="todos" rows={@todos}> + <:col :let={todo} label="Name"> + <%= todo.name %> + + <:col :let={todo} label="Done"> + <%= todo.done %> + + <:action :let={todo}> + <.link patch={~p"/todos/#{todo}/edit"}> + <.icon name="hero-pencil" /> + + + <:action :let={todo}> + <.link + phx-click={JS.push("delete", value: %{id: todo.id}) |> hide("##{todo.id}")} + data-confirm="Are you sure?" + > + <.icon name="hero-trash" /> + + + + """ + end +end diff --git a/lib/multi_tenant_web/router.ex b/lib/multi_tenant_web/router.ex new file mode 100644 index 0000000..f072e0f --- /dev/null +++ b/lib/multi_tenant_web/router.ex @@ -0,0 +1,52 @@ +defmodule MultiTenantWeb.Router do + use MultiTenantWeb, :router + + pipeline :browser do + plug :accepts, ["html"] + plug :fetch_session + plug :fetch_live_flash + plug :put_root_layout, html: {MultiTenantWeb.Layouts, :root} + plug :protect_from_forgery + plug :put_secure_browser_headers + end + + pipeline :api do + plug :accepts, ["json"] + end + + scope "/", MultiTenantWeb do + pipe_through :browser + + get "/", PageController, :home + + live "/notes/new", NotesEditLive, :new + live "/notes/:id/edit", NotesEditLive, :edit + live "/notes", NotesLive, :index + + live "/todos/new", TodosEditLive, :new + live "/todos/:id/edit", TodosEditLive, :edit + live "/todos", TodosLive, :index + end + + # Other scopes may use custom stacks. + # scope "/api", MultiTenantWeb do + # pipe_through :api + # end + + # Enable LiveDashboard and Swoosh mailbox preview in development + if Application.compile_env(:multi_tenant, :dev_routes) do + # If you want to use the LiveDashboard in production, you should put + # it behind authentication and allow only admins to access it. + # If your application does not have an admins-only section yet, + # you can use Plug.BasicAuth to set up some basic authentication + # as long as you are also using SSL (which you should anyway). + import Phoenix.LiveDashboard.Router + + scope "/dev" do + pipe_through :browser + + live_dashboard "/dashboard", metrics: MultiTenantWeb.Telemetry + forward "/mailbox", Plug.Swoosh.MailboxPreview + end + end +end diff --git a/lib/multi_tenant_web/telemetry.ex b/lib/multi_tenant_web/telemetry.ex new file mode 100644 index 0000000..adf4422 --- /dev/null +++ b/lib/multi_tenant_web/telemetry.ex @@ -0,0 +1,92 @@ +defmodule MultiTenantWeb.Telemetry do + use Supervisor + import Telemetry.Metrics + + def start_link(arg) do + Supervisor.start_link(__MODULE__, arg, name: __MODULE__) + end + + @impl true + def init(_arg) do + children = [ + # Telemetry poller will execute the given period measurements + # every 10_000ms. Learn more here: https://hexdocs.pm/telemetry_metrics + {:telemetry_poller, measurements: periodic_measurements(), period: 10_000} + # Add reporters as children of your supervision tree. + # {Telemetry.Metrics.ConsoleReporter, metrics: metrics()} + ] + + Supervisor.init(children, strategy: :one_for_one) + end + + def metrics do + [ + # Phoenix Metrics + summary("phoenix.endpoint.start.system_time", + unit: {:native, :millisecond} + ), + summary("phoenix.endpoint.stop.duration", + unit: {:native, :millisecond} + ), + summary("phoenix.router_dispatch.start.system_time", + tags: [:route], + unit: {:native, :millisecond} + ), + summary("phoenix.router_dispatch.exception.duration", + tags: [:route], + unit: {:native, :millisecond} + ), + summary("phoenix.router_dispatch.stop.duration", + tags: [:route], + unit: {:native, :millisecond} + ), + summary("phoenix.socket_connected.duration", + unit: {:native, :millisecond} + ), + summary("phoenix.channel_joined.duration", + unit: {:native, :millisecond} + ), + summary("phoenix.channel_handled_in.duration", + tags: [:event], + unit: {:native, :millisecond} + ), + + # Database Metrics + summary("multi_tenant.repo.query.total_time", + unit: {:native, :millisecond}, + description: "The sum of the other measurements" + ), + summary("multi_tenant.repo.query.decode_time", + unit: {:native, :millisecond}, + description: "The time spent decoding the data received from the database" + ), + summary("multi_tenant.repo.query.query_time", + unit: {:native, :millisecond}, + description: "The time spent executing the query" + ), + summary("multi_tenant.repo.query.queue_time", + unit: {:native, :millisecond}, + description: "The time spent waiting for a database connection" + ), + summary("multi_tenant.repo.query.idle_time", + unit: {:native, :millisecond}, + description: + "The time the connection spent waiting before being checked out for the query" + ), + + # VM Metrics + summary("vm.memory.total", unit: {:byte, :kilobyte}), + summary("vm.total_run_queue_lengths.total"), + summary("vm.total_run_queue_lengths.cpu"), + summary("vm.total_run_queue_lengths.io") + ] + end + + defp periodic_measurements do + [ + # A module, function and arguments to be invoked periodically. + # This function must call :telemetry.execute/3 and a metric must be added above. + # {MultiTenantWeb, :count_users, []} + ] + end +end diff --git a/mix.exs b/mix.exs new file mode 100644 index 0000000..bed1328 --- /dev/null +++ b/mix.exs @@ -0,0 +1,74 @@ +defmodule MultiTenant.MixProject do + use Mix.Project + + def project do + [ + app: :multi_tenant, + version: "0.1.0", + elixir: "~> 1.14", + elixirc_paths: elixirc_paths(Mix.env()), + start_permanent: Mix.env() == :prod, + aliases: aliases(), + deps: deps() + ] + end + + # Configuration for the OTP application. + # + # Type `mix help compile.app` for more information. + def application do + [ + mod: {MultiTenant.Application, []}, + extra_applications: [:logger, :runtime_tools] + ] + end + + # Specifies which paths to compile per environment. + defp elixirc_paths(:test), do: ["lib", "test/support"] + defp elixirc_paths(_), do: ["lib"] + + # Specifies your project dependencies. + # + # Type `mix help deps` for examples and options. + defp deps do + [ + {:phoenix, "~> 1.7.10"}, + {:phoenix_ecto, "~> 4.4"}, + {:ecto_sql, "~> 3.10"}, + {:postgrex, ">= 0.0.0"}, + {:phoenix_html, "~> 3.3"}, + {:phoenix_live_reload, "~> 1.2", only: :dev}, + {:phoenix_live_view, "~> 0.20.1"}, + {:floki, ">= 0.30.0", only: :test}, + {:phoenix_live_dashboard, "~> 0.8.2"}, + {:esbuild, "~> 0.8", runtime: Mix.env() == :dev}, + {:tailwind, "~> 0.2.0", runtime: Mix.env() == :dev}, + {:swoosh, "~> 1.3"}, + {:finch, "~> 0.13"}, + {:telemetry_metrics, "~> 0.6"}, + {:telemetry_poller, "~> 1.0"}, + {:gettext, "~> 0.20"}, + {:jason, "~> 1.2"}, + {:dns_cluster, "~> 0.1.1"}, + {:plug_cowboy, "~> 2.5"} + ] + end + + # Aliases are shortcuts or tasks specific to the current project. + # For example, to install project dependencies and perform other setup tasks, run: + # + # $ mix setup + # + # See the documentation for `Mix` for more info on aliases. + defp aliases do + [ + setup: ["deps.get", "ecto.setup", "assets.setup", "assets.build"], + "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"], + "ecto.reset": ["ecto.drop", "ecto.setup"], + test: ["ecto.create --quiet", "ecto.migrate --quiet", "test"], + "assets.setup": ["tailwind.install --if-missing", "esbuild.install --if-missing"], + "assets.build": ["tailwind default", "esbuild default"], + "assets.deploy": ["tailwind default --minify", "esbuild default --minify", "phx.digest"] + ] + end +end diff --git a/mix.lock b/mix.lock new file mode 100644 index 0000000..48eaa57 --- /dev/null +++ b/mix.lock @@ -0,0 +1,43 @@ +%{ + "castore": {:hex, :castore, "1.0.5", "9eeebb394cc9a0f3ae56b813459f990abb0a3dedee1be6b27fdb50301930502f", [:mix], [], "hexpm", "8d7c597c3e4a64c395980882d4bca3cebb8d74197c590dc272cfd3b6a6310578"}, + "cowboy": {:hex, :cowboy, "2.10.0", "ff9ffeff91dae4ae270dd975642997afe2a1179d94b1887863e43f681a203e26", [:make, :rebar3], [{:cowlib, "2.12.1", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "3afdccb7183cc6f143cb14d3cf51fa00e53db9ec80cdcd525482f5e99bc41d6b"}, + "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"}, + "cowlib": {:hex, :cowlib, "2.12.1", "a9fa9a625f1d2025fe6b462cb865881329b5caff8f1854d1cbc9f9533f00e1e1", [:make, :rebar3], [], "hexpm", "163b73f6367a7341b33c794c4e88e7dbfe6498ac42dcd69ef44c5bc5507c8db0"}, + "db_connection": {:hex, :db_connection, "2.6.0", "77d835c472b5b67fc4f29556dee74bf511bbafecdcaf98c27d27fa5918152086", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c2f992d15725e721ec7fbc1189d4ecdb8afef76648c746a8e1cad35e3b8a35f3"}, + "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"}, + "dns_cluster": {:hex, :dns_cluster, "0.1.3", "0bc20a2c88ed6cc494f2964075c359f8c2d00e1bf25518a6a6c7fd277c9b0c66", [:mix], [], "hexpm", "46cb7c4a1b3e52c7ad4cbe33ca5079fbde4840dedeafca2baf77996c2da1bc33"}, + "ecto": {:hex, :ecto, "3.11.1", "4b4972b717e7ca83d30121b12998f5fcdc62ba0ed4f20fd390f16f3270d85c3e", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ebd3d3772cd0dfcd8d772659e41ed527c28b2a8bde4b00fe03e0463da0f1983b"}, + "ecto_sql": {:hex, :ecto_sql, "3.11.1", "e9abf28ae27ef3916b43545f9578b4750956ccea444853606472089e7d169470", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.11.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16.0 or ~> 0.17.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ce14063ab3514424276e7e360108ad6c2308f6d88164a076aac8a387e1fea634"}, + "esbuild": {:hex, :esbuild, "0.8.1", "0cbf919f0eccb136d2eeef0df49c4acf55336de864e63594adcea3814f3edf41", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "25fc876a67c13cb0a776e7b5d7974851556baeda2085296c14ab48555ea7560f"}, + "expo": {:hex, :expo, "0.5.1", "249e826a897cac48f591deba863b26c16682b43711dd15ee86b92f25eafd96d9", [:mix], [], "hexpm", "68a4233b0658a3d12ee00d27d37d856b1ba48607e7ce20fd376958d0ba6ce92b"}, + "file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"}, + "finch": {:hex, :finch, "0.18.0", "944ac7d34d0bd2ac8998f79f7a811b21d87d911e77a786bc5810adb75632ada4", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "69f5045b042e531e53edc2574f15e25e735b522c37e2ddb766e15b979e03aa65"}, + "floki": {:hex, :floki, "0.35.3", "0c8c6234aa71cb2b069cf801e8f8f30f8d096eb452c3dae2ccc409510ec32720", [:mix], [], "hexpm", "6d9f07f3fc76599f3b66c39f4a81ac62c8f4d9631140268db92aacad5d0e56d4"}, + "gettext": {:hex, :gettext, "0.24.0", "6f4d90ac5f3111673cbefc4ebee96fe5f37a114861ab8c7b7d5b30a1108ce6d8", [:mix], [{:expo, "~> 0.5.1", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "bdf75cdfcbe9e4622dd18e034b227d77dd17f0f133853a1c73b97b3d6c770e8b"}, + "hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"}, + "jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"}, + "mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"}, + "mint": {:hex, :mint, "1.5.2", "4805e059f96028948870d23d7783613b7e6b0e2fb4e98d720383852a760067fd", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "d77d9e9ce4eb35941907f1d3df38d8f750c357865353e21d335bdcdf6d892a02"}, + "nimble_options": {:hex, :nimble_options, "1.1.0", "3b31a57ede9cb1502071fade751ab0c7b8dbe75a9a4c2b5bbb0943a690b63172", [:mix], [], "hexpm", "8bbbb3941af3ca9acc7835f5655ea062111c9c27bcac53e004460dfd19008a99"}, + "nimble_pool": {:hex, :nimble_pool, "1.0.0", "5eb82705d138f4dd4423f69ceb19ac667b3b492ae570c9f5c900bb3d2f50a847", [:mix], [], "hexpm", "80be3b882d2d351882256087078e1b1952a28bf98d0a287be87e4a24a710b67a"}, + "phoenix": {:hex, :phoenix, "1.7.11", "1d88fc6b05ab0c735b250932c4e6e33bfa1c186f76dcf623d8dd52f07d6379c7", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "b1ec57f2e40316b306708fe59b92a16b9f6f4bf50ccfa41aa8c7feb79e0ec02a"}, + "phoenix_ecto": {:hex, :phoenix_ecto, "4.4.3", "86e9878f833829c3f66da03d75254c155d91d72a201eb56ae83482328dc7ca93", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "d36c401206f3011fefd63d04e8ef626ec8791975d9d107f9a0817d426f61ac07"}, + "phoenix_html": {:hex, :phoenix_html, "3.3.3", "380b8fb45912b5638d2f1d925a3771b4516b9a78587249cabe394e0a5d579dc9", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "923ebe6fec6e2e3b3e569dfbdc6560de932cd54b000ada0208b5f45024bdd76c"}, + "phoenix_live_dashboard": {:hex, :phoenix_live_dashboard, "0.8.3", "7ff51c9b6609470f681fbea20578dede0e548302b0c8bdf338b5a753a4f045bf", [:mix], [{:ecto, "~> 3.6.2 or ~> 3.7", [hex: :ecto, repo: "hexpm", optional: true]}, {:ecto_mysql_extras, "~> 0.5", [hex: :ecto_mysql_extras, repo: "hexpm", optional: true]}, {:ecto_psql_extras, "~> 0.7", [hex: :ecto_psql_extras, repo: "hexpm", optional: true]}, {:ecto_sqlite3_extras, "~> 1.1.7 or ~> 1.2.0", [hex: :ecto_sqlite3_extras, repo: "hexpm", optional: true]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:phoenix_live_view, "~> 0.19 or ~> 1.0", [hex: :phoenix_live_view, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "f9470a0a8bae4f56430a23d42f977b5a6205fdba6559d76f932b876bfaec652d"}, + "phoenix_live_reload": {:hex, :phoenix_live_reload, "1.4.1", "2aff698f5e47369decde4357ba91fc9c37c6487a512b41732818f2204a8ef1d3", [:mix], [{:file_system, "~> 0.2.1 or ~> 0.3", [hex: :file_system, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.4", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "9bffb834e7ddf08467fe54ae58b5785507aaba6255568ae22b4d46e2bb3615ab"}, + "phoenix_live_view": {:hex, :phoenix_live_view, "0.20.7", "278804219cc85e00f59a02a07b8ea591d99b219877a3b984fb77ac3fdebfb696", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix, "~> 1.6.15 or ~> 1.7.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 3.3 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.15", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "4d533f5d6b09c6ff4fb1f41d61dcd90c7f076f25909d4a5481d71bd442b83dc9"}, + "phoenix_pubsub": {:hex, :phoenix_pubsub, "2.1.3", "3168d78ba41835aecad272d5e8cd51aa87a7ac9eb836eabc42f6e57538e3731d", [:mix], [], "hexpm", "bba06bc1dcfd8cb086759f0edc94a8ba2bc8896d5331a1e2c2902bf8e36ee502"}, + "phoenix_template": {:hex, :phoenix_template, "1.0.4", "e2092c132f3b5e5b2d49c96695342eb36d0ed514c5b252a77048d5969330d639", [:mix], [{:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}], "hexpm", "2c0c81f0e5c6753faf5cca2f229c9709919aba34fab866d3bc05060c9c444206"}, + "plug": {:hex, :plug, "1.15.3", "712976f504418f6dff0a3e554c40d705a9bcf89a7ccef92fc6a5ef8f16a30a97", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "cc4365a3c010a56af402e0809208873d113e9c38c401cabd88027ef4f5c01fd2"}, + "plug_cowboy": {:hex, :plug_cowboy, "2.7.0", "3ae9369c60641084363b08fe90267cbdd316df57e3557ea522114b30b63256ea", [:mix], [{:cowboy, "~> 2.7.0 or ~> 2.8.0 or ~> 2.9.0 or ~> 2.10.0", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "d85444fb8aa1f2fc62eabe83bbe387d81510d773886774ebdcb429b3da3c1a4a"}, + "plug_crypto": {:hex, :plug_crypto, "2.0.0", "77515cc10af06645abbfb5e6ad7a3e9714f805ae118fa1a70205f80d2d70fe73", [:mix], [], "hexpm", "53695bae57cc4e54566d993eb01074e4d894b65a3766f1c43e2c61a1b0f45ea9"}, + "postgrex": {:hex, :postgrex, "0.17.4", "5777781f80f53b7c431a001c8dad83ee167bcebcf3a793e3906efff680ab62b3", [:mix], [{:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "6458f7d5b70652bc81c3ea759f91736c16a31be000f306d3c64bcdfe9a18b3cc"}, + "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"}, + "swoosh": {:hex, :swoosh, "1.15.2", "490ea85a98e8fb5178c07039e0d8519839e38127724a58947a668c00db7574ee", [:mix], [{:bandit, ">= 1.0.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:cowboy, "~> 1.1 or ~> 2.4", [hex: :cowboy, repo: "hexpm", optional: true]}, {:ex_aws, "~> 2.1", [hex: :ex_aws, repo: "hexpm", optional: true]}, {:finch, "~> 0.6", [hex: :finch, repo: "hexpm", optional: true]}, {:gen_smtp, "~> 0.13 or ~> 1.0", [hex: :gen_smtp, repo: "hexpm", optional: true]}, {:hackney, "~> 1.9", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mail, "~> 0.2", [hex: :mail, repo: "hexpm", optional: true]}, {:mime, "~> 1.1 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 1.0.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:req, "~> 0.4 or ~> 1.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.2 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "9f7739c02f6c7c0ca82ee397f3bfe0465dbe4c8a65372ac2a5584bf147dd5831"}, + "tailwind": {:hex, :tailwind, "0.2.2", "9e27288b568ede1d88517e8c61259bc214a12d7eed271e102db4c93fcca9b2cd", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}], "hexpm", "ccfb5025179ea307f7f899d1bb3905cd0ac9f687ed77feebc8f67bdca78565c4"}, + "telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"}, + "telemetry_metrics": {:hex, :telemetry_metrics, "0.6.2", "2caabe9344ec17eafe5403304771c3539f3b6e2f7fb6a6f602558c825d0d0bfb", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "9b43db0dc33863930b9ef9d27137e78974756f5f198cae18409970ed6fa5b561"}, + "telemetry_poller": {:hex, :telemetry_poller, "1.0.0", "db91bb424e07f2bb6e73926fcafbfcbcb295f0193e0a00e825e589a0a47e8453", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "b3a24eafd66c3f42da30fc3ca7dda1e9d546c12250a2d60d7b81d264fbec4f6e"}, + "websock": {:hex, :websock, "0.5.3", "2f69a6ebe810328555b6fe5c831a851f485e303a7c8ce6c5f675abeb20ebdadc", [:mix], [], "hexpm", "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"}, + "websock_adapter": {:hex, :websock_adapter, "0.5.5", "9dfeee8269b27e958a65b3e235b7e447769f66b5b5925385f5a569269164a210", [:mix], [{:bandit, ">= 0.6.0", [hex: :bandit, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "4b977ba4a01918acbf77045ff88de7f6972c2a009213c515a445c48f224ffce9"}, +} diff --git a/priv/gettext/en/LC_MESSAGES/errors.po b/priv/gettext/en/LC_MESSAGES/errors.po new file mode 100644 index 0000000..844c4f5 --- /dev/null +++ b/priv/gettext/en/LC_MESSAGES/errors.po @@ -0,0 +1,112 @@ +## `msgid`s in this file come from POT (.pot) files. +## +## Do not add, change, or remove `msgid`s manually here as +## they're tied to the ones in the corresponding POT file +## (with the same domain). +## +## Use `mix gettext.extract --merge` or `mix gettext.merge` +## to merge POT files into PO files. +msgid "" +msgstr "" +"Language: en\n" + +## From Ecto.Changeset.cast/4 +msgid "can't be blank" +msgstr "" + +## From Ecto.Changeset.unique_constraint/3 +msgid "has already been taken" +msgstr "" + +## From Ecto.Changeset.put_change/3 +msgid "is invalid" +msgstr "" + +## From Ecto.Changeset.validate_acceptance/3 +msgid "must be accepted" +msgstr "" + +## From Ecto.Changeset.validate_format/3 +msgid "has invalid format" +msgstr "" + +## From Ecto.Changeset.validate_subset/3 +msgid "has an invalid entry" +msgstr "" + +## From Ecto.Changeset.validate_exclusion/3 +msgid "is reserved" +msgstr "" + +## From Ecto.Changeset.validate_confirmation/3 +msgid "does not match confirmation" +msgstr "" + +## From Ecto.Changeset.no_assoc_constraint/3 +msgid "is still associated with this entry" +msgstr "" + +msgid "are still associated with this entry" +msgstr "" + +## From Ecto.Changeset.validate_length/3 +msgid "should have %{count} item(s)" +msgid_plural "should have %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be %{count} character(s)" +msgid_plural "should be %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be %{count} byte(s)" +msgid_plural "should be %{count} byte(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have at least %{count} item(s)" +msgid_plural "should have at least %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at least %{count} character(s)" +msgid_plural "should be at least %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at least %{count} byte(s)" +msgid_plural "should be at least %{count} byte(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have at most %{count} item(s)" +msgid_plural "should have at most %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at most %{count} character(s)" +msgid_plural "should be at most %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at most %{count} byte(s)" +msgid_plural "should be at most %{count} byte(s)" +msgstr[0] "" +msgstr[1] "" + +## From Ecto.Changeset.validate_number/3 +msgid "must be less than %{number}" +msgstr "" + +msgid "must be greater than %{number}" +msgstr "" + +msgid "must be less than or equal to %{number}" +msgstr "" + +msgid "must be greater than or equal to %{number}" +msgstr "" + +msgid "must be equal to %{number}" +msgstr "" diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot new file mode 100644 index 0000000..ccf5c68 --- /dev/null +++ b/priv/gettext/errors.pot @@ -0,0 +1,110 @@ +## This is a PO Template file. +## +## `msgid`s here are often extracted from source code. +## Add new translations manually only if they're dynamic +## translations that can't be statically extracted. +## +## Run `mix gettext.extract` to bring this file up to +## date. Leave `msgstr`s empty as changing them here has no +## effect: edit them in PO (`.po`) files instead. + +## From Ecto.Changeset.cast/4 +msgid "can't be blank" +msgstr "" + +## From Ecto.Changeset.unique_constraint/3 +msgid "has already been taken" +msgstr "" + +## From Ecto.Changeset.put_change/3 +msgid "is invalid" +msgstr "" + +## From Ecto.Changeset.validate_acceptance/3 +msgid "must be accepted" +msgstr "" + +## From Ecto.Changeset.validate_format/3 +msgid "has invalid format" +msgstr "" + +## From Ecto.Changeset.validate_subset/3 +msgid "has an invalid entry" +msgstr "" + +## From Ecto.Changeset.validate_exclusion/3 +msgid "is reserved" +msgstr "" + +## From Ecto.Changeset.validate_confirmation/3 +msgid "does not match confirmation" +msgstr "" + +## From Ecto.Changeset.no_assoc_constraint/3 +msgid "is still associated with this entry" +msgstr "" + +msgid "are still associated with this entry" +msgstr "" + +## From Ecto.Changeset.validate_length/3 +msgid "should have %{count} item(s)" +msgid_plural "should have %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be %{count} character(s)" +msgid_plural "should be %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be %{count} byte(s)" +msgid_plural "should be %{count} byte(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have at least %{count} item(s)" +msgid_plural "should have at least %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at least %{count} character(s)" +msgid_plural "should be at least %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at least %{count} byte(s)" +msgid_plural "should be at least %{count} byte(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should have at most %{count} item(s)" +msgid_plural "should have at most %{count} item(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at most %{count} character(s)" +msgid_plural "should be at most %{count} character(s)" +msgstr[0] "" +msgstr[1] "" + +msgid "should be at most %{count} byte(s)" +msgid_plural "should be at most %{count} byte(s)" +msgstr[0] "" +msgstr[1] "" + +## From Ecto.Changeset.validate_number/3 +msgid "must be less than %{number}" +msgstr "" + +msgid "must be greater than %{number}" +msgstr "" + +msgid "must be less than or equal to %{number}" +msgstr "" + +msgid "must be greater than or equal to %{number}" +msgstr "" + +msgid "must be equal to %{number}" +msgstr "" diff --git a/priv/repo/migrations/.formatter.exs b/priv/repo/migrations/.formatter.exs new file mode 100644 index 0000000..49f9151 --- /dev/null +++ b/priv/repo/migrations/.formatter.exs @@ -0,0 +1,4 @@ +[ + import_deps: [:ecto_sql], + inputs: ["*.exs"] +] diff --git a/priv/repo/migrations/20240218145725_init.exs b/priv/repo/migrations/20240218145725_init.exs new file mode 100644 index 0000000..14e56b5 --- /dev/null +++ b/priv/repo/migrations/20240218145725_init.exs @@ -0,0 +1,17 @@ +defmodule MultiTenant.Repo.Migrations.Init do + use Ecto.Migration + + def change do + create table(:todos) do + add :name, :string, null: false + add :done, :boolean, null: false, default: false + timestamps(type: :utc_datetime) + end + + create table(:notes) do + add :title, :string, null: false + add :body, :string + timestamps(type: :utc_datetime) + end + end +end diff --git a/priv/repo/seeds.exs b/priv/repo/seeds.exs new file mode 100644 index 0000000..6790414 --- /dev/null +++ b/priv/repo/seeds.exs @@ -0,0 +1,40 @@ +# Script for populating the database. You can run it as: +# +# mix run priv/repo/seeds.exs +# +# Inside the script, you can read and write to any of your +# repositories directly: +# +# MultiTenant.Repo.insert!(%MultiTenant.SomeSchema{}) +# +# We recommend using the bang functions (`insert!`, `update!` +# and so on) as they will fail if something goes wrong. + +alias MultiTenant.Repo +alias MultiTenant.Todos.Todo +alias MultiTenant.Notes.Note + +Repo.insert!(%Note{ + title: "First Note", + body: "This is the first note" +}) + +Repo.insert!(%Note{ + title: "Second Note", + body: "This is the second note" +}) + +Repo.insert!(%Todo{ + name: "First Todo", + done: false +}) + +Repo.insert!(%Todo{ + name: "Second Todo", + done: false +}) + +Repo.insert!(%Todo{ + name: "Third Todo", + done: true +}) diff --git a/priv/static/favicon.ico b/priv/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7f372bfc21cdd8cb47585339d5fa4d9dd424402f GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=@t!V@Ar*{oFEH`~d50E!_s``s q?{G*w(7?#d#v@^nKnY_HKaYb01EZMZjMqTJ89ZJ6T-G@yGywoKK_h|y literal 0 HcmV?d00001 diff --git a/priv/static/images/logo.svg b/priv/static/images/logo.svg new file mode 100644 index 0000000..9f26bab --- /dev/null +++ b/priv/static/images/logo.svg @@ -0,0 +1,6 @@ + diff --git a/priv/static/robots.txt b/priv/static/robots.txt new file mode 100644 index 0000000..26e06b5 --- /dev/null +++ b/priv/static/robots.txt @@ -0,0 +1,5 @@ +# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file +# +# To ban all spiders from the entire site uncomment the next two lines: +# User-agent: * +# Disallow: / diff --git a/test/multi_tenant_web/controllers/error_html_test.exs b/test/multi_tenant_web/controllers/error_html_test.exs new file mode 100644 index 0000000..1f37e4d --- /dev/null +++ b/test/multi_tenant_web/controllers/error_html_test.exs @@ -0,0 +1,14 @@ +defmodule MultiTenantWeb.ErrorHTMLTest do + use MultiTenantWeb.ConnCase, async: true + + # Bring render_to_string/4 for testing custom views + import Phoenix.Template + + test "renders 404.html" do + assert render_to_string(MultiTenantWeb.ErrorHTML, "404", "html", []) == "Not Found" + end + + test "renders 500.html" do + assert render_to_string(MultiTenantWeb.ErrorHTML, "500", "html", []) == "Internal Server Error" + end +end diff --git a/test/multi_tenant_web/controllers/error_json_test.exs b/test/multi_tenant_web/controllers/error_json_test.exs new file mode 100644 index 0000000..ad12ced --- /dev/null +++ b/test/multi_tenant_web/controllers/error_json_test.exs @@ -0,0 +1,12 @@ +defmodule MultiTenantWeb.ErrorJSONTest do + use MultiTenantWeb.ConnCase, async: true + + test "renders 404" do + assert MultiTenantWeb.ErrorJSON.render("404.json", %{}) == %{errors: %{detail: "Not Found"}} + end + + test "renders 500" do + assert MultiTenantWeb.ErrorJSON.render("500.json", %{}) == + %{errors: %{detail: "Internal Server Error"}} + end +end diff --git a/test/support/conn_case.ex b/test/support/conn_case.ex new file mode 100644 index 0000000..c44f380 --- /dev/null +++ b/test/support/conn_case.ex @@ -0,0 +1,38 @@ +defmodule MultiTenantWeb.ConnCase do + @moduledoc """ + This module defines the test case to be used by + tests that require setting up a connection. + + Such tests rely on `Phoenix.ConnTest` and also + import other functionality to make it easier + to build common data structures and query the data layer. + + Finally, if the test case interacts with the database, + we enable the SQL sandbox, so changes done to the database + are reverted at the end of every test. If you are using + PostgreSQL, you can even run database tests asynchronously + by setting `use MultiTenantWeb.ConnCase, async: true`, although + this option is not recommended for other databases. + """ + + use ExUnit.CaseTemplate + + using do + quote do + # The default endpoint for testing + @endpoint MultiTenantWeb.Endpoint + + use MultiTenantWeb, :verified_routes + + # Import conveniences for testing with connections + import Plug.Conn + import Phoenix.ConnTest + import MultiTenantWeb.ConnCase + end + end + + setup tags do + MultiTenant.DataCase.setup_sandbox(tags) + {:ok, conn: Phoenix.ConnTest.build_conn()} + end +end diff --git a/test/support/data_case.ex b/test/support/data_case.ex new file mode 100644 index 0000000..051f013 --- /dev/null +++ b/test/support/data_case.ex @@ -0,0 +1,58 @@ +defmodule MultiTenant.DataCase do + @moduledoc """ + This module defines the setup for tests requiring + access to the application's data layer. + + You may define functions here to be used as helpers in + your tests. + + Finally, if the test case interacts with the database, + we enable the SQL sandbox, so changes done to the database + are reverted at the end of every test. If you are using + PostgreSQL, you can even run database tests asynchronously + by setting `use MultiTenant.DataCase, async: true`, although + this option is not recommended for other databases. + """ + + use ExUnit.CaseTemplate + + using do + quote do + alias MultiTenant.Repo + + import Ecto + import Ecto.Changeset + import Ecto.Query + import MultiTenant.DataCase + end + end + + setup tags do + MultiTenant.DataCase.setup_sandbox(tags) + :ok + end + + @doc """ + Sets up the sandbox based on the test tags. + """ + def setup_sandbox(tags) do + pid = Ecto.Adapters.SQL.Sandbox.start_owner!(MultiTenant.Repo, shared: not tags[:async]) + on_exit(fn -> Ecto.Adapters.SQL.Sandbox.stop_owner(pid) end) + end + + @doc """ + A helper that transforms changeset errors into a map of messages. + + assert {:error, changeset} = Accounts.create_user(%{password: "short"}) + assert "password is too short" in errors_on(changeset).password + assert %{password: ["password is too short"]} = errors_on(changeset) + + """ + def errors_on(changeset) do + Ecto.Changeset.traverse_errors(changeset, fn {message, opts} -> + Regex.replace(~r"%{(\w+)}", message, fn _, key -> + opts |> Keyword.get(String.to_existing_atom(key), key) |> to_string() + end) + end) + end +end diff --git a/test/test_helper.exs b/test/test_helper.exs new file mode 100644 index 0000000..538a3bf --- /dev/null +++ b/test/test_helper.exs @@ -0,0 +1,2 @@ +ExUnit.start() +Ecto.Adapters.SQL.Sandbox.mode(MultiTenant.Repo, :manual)