jet_ui 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +106 -0
- data/LICENSE.md +21 -0
- data/README.md +114 -0
- data/app/assets/images/jet_ui/icons/academic-cap.svg +3 -0
- data/app/assets/images/jet_ui/icons/adjustments-horizontal.svg +3 -0
- data/app/assets/images/jet_ui/icons/adjustments-vertical.svg +3 -0
- data/app/assets/images/jet_ui/icons/archive-box-arrow-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/archive-box-x-mark.svg +3 -0
- data/app/assets/images/jet_ui/icons/archive-box.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-down-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-down-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-down-on-square-stack.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-down-on-square.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-down-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-down-tray.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-left-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-left-end-on-rectangle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-left-on-rectangle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-left-start-on-rectangle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-long-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-long-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-long-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-long-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-path-rounded-square.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-path.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-right-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-right-end-on-rectangle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-right-on-rectangle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-right-start-on-rectangle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-small-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-small-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-small-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-small-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-top-right-on-square.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-trending-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-trending-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-turn-down-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-turn-down-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-turn-left-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-turn-left-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-turn-right-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-turn-right-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-turn-up-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-turn-up-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-up-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-up-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-up-on-square-stack.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-up-on-square.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-up-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-up-tray.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-uturn-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-uturn-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-uturn-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrow-uturn-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrows-pointing-in.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrows-pointing-out.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrows-right-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/arrows-up-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/at-symbol.svg +3 -0
- data/app/assets/images/jet_ui/icons/backspace.svg +3 -0
- data/app/assets/images/jet_ui/icons/backward.svg +4 -0
- data/app/assets/images/jet_ui/icons/banknotes.svg +3 -0
- data/app/assets/images/jet_ui/icons/bars-2.svg +3 -0
- data/app/assets/images/jet_ui/icons/bars-3-bottom-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/bars-3-bottom-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/bars-3-center-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/bars-3.svg +3 -0
- data/app/assets/images/jet_ui/icons/bars-4.svg +3 -0
- data/app/assets/images/jet_ui/icons/bars-arrow-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/bars-arrow-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/battery-0.svg +3 -0
- data/app/assets/images/jet_ui/icons/battery-100.svg +3 -0
- data/app/assets/images/jet_ui/icons/battery-50.svg +3 -0
- data/app/assets/images/jet_ui/icons/beaker.svg +3 -0
- data/app/assets/images/jet_ui/icons/bell-alert.svg +3 -0
- data/app/assets/images/jet_ui/icons/bell-slash.svg +3 -0
- data/app/assets/images/jet_ui/icons/bell-snooze.svg +3 -0
- data/app/assets/images/jet_ui/icons/bell.svg +3 -0
- data/app/assets/images/jet_ui/icons/bold.svg +3 -0
- data/app/assets/images/jet_ui/icons/bolt-slash.svg +3 -0
- data/app/assets/images/jet_ui/icons/bolt.svg +3 -0
- data/app/assets/images/jet_ui/icons/book-open.svg +3 -0
- data/app/assets/images/jet_ui/icons/bookmark-slash.svg +3 -0
- data/app/assets/images/jet_ui/icons/bookmark-square.svg +3 -0
- data/app/assets/images/jet_ui/icons/bookmark.svg +3 -0
- data/app/assets/images/jet_ui/icons/briefcase.svg +3 -0
- data/app/assets/images/jet_ui/icons/bug-ant.svg +3 -0
- data/app/assets/images/jet_ui/icons/building-library.svg +3 -0
- data/app/assets/images/jet_ui/icons/building-office-2.svg +3 -0
- data/app/assets/images/jet_ui/icons/building-office.svg +3 -0
- data/app/assets/images/jet_ui/icons/building-storefront.svg +3 -0
- data/app/assets/images/jet_ui/icons/cake.svg +3 -0
- data/app/assets/images/jet_ui/icons/calculator.svg +3 -0
- data/app/assets/images/jet_ui/icons/calendar-date-range.svg +3 -0
- data/app/assets/images/jet_ui/icons/calendar-days.svg +3 -0
- data/app/assets/images/jet_ui/icons/calendar.svg +3 -0
- data/app/assets/images/jet_ui/icons/camera.svg +5 -0
- data/app/assets/images/jet_ui/icons/chart-bar-square.svg +3 -0
- data/app/assets/images/jet_ui/icons/chart-bar.svg +5 -0
- data/app/assets/images/jet_ui/icons/chart-pie.svg +4 -0
- data/app/assets/images/jet_ui/icons/chat-bubble-bottom-center-text.svg +3 -0
- data/app/assets/images/jet_ui/icons/chat-bubble-bottom-center.svg +3 -0
- data/app/assets/images/jet_ui/icons/chat-bubble-left-ellipsis.svg +3 -0
- data/app/assets/images/jet_ui/icons/chat-bubble-left-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/chat-bubble-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/chat-bubble-oval-left-ellipsis.svg +3 -0
- data/app/assets/images/jet_ui/icons/chat-bubble-oval-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/check-badge.svg +3 -0
- data/app/assets/images/jet_ui/icons/check-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/check.svg +3 -0
- data/app/assets/images/jet_ui/icons/chevron-double-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/chevron-double-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/chevron-double-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/chevron-double-up.svg +4 -0
- data/app/assets/images/jet_ui/icons/chevron-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/chevron-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/chevron-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/chevron-up-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/chevron-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/circle-stack.svg +3 -0
- data/app/assets/images/jet_ui/icons/clipboard-document-check.svg +3 -0
- data/app/assets/images/jet_ui/icons/clipboard-document-list.svg +3 -0
- data/app/assets/images/jet_ui/icons/clipboard-document.svg +3 -0
- data/app/assets/images/jet_ui/icons/clipboard.svg +3 -0
- data/app/assets/images/jet_ui/icons/clock.svg +3 -0
- data/app/assets/images/jet_ui/icons/cloud-arrow-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/cloud-arrow-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/cloud.svg +3 -0
- data/app/assets/images/jet_ui/icons/code-bracket-square.svg +3 -0
- data/app/assets/images/jet_ui/icons/code-bracket.svg +3 -0
- data/app/assets/images/jet_ui/icons/cog-6-tooth.svg +4 -0
- data/app/assets/images/jet_ui/icons/cog-8-tooth.svg +4 -0
- data/app/assets/images/jet_ui/icons/cog.svg +3 -0
- data/app/assets/images/jet_ui/icons/command-line.svg +3 -0
- data/app/assets/images/jet_ui/icons/computer-desktop.svg +3 -0
- data/app/assets/images/jet_ui/icons/cpu-chip.svg +3 -0
- data/app/assets/images/jet_ui/icons/credit-card.svg +3 -0
- data/app/assets/images/jet_ui/icons/cube-transparent.svg +3 -0
- data/app/assets/images/jet_ui/icons/cube.svg +3 -0
- data/app/assets/images/jet_ui/icons/currency-bangladeshi.svg +3 -0
- data/app/assets/images/jet_ui/icons/currency-dollar.svg +3 -0
- data/app/assets/images/jet_ui/icons/currency-euro.svg +3 -0
- data/app/assets/images/jet_ui/icons/currency-pound.svg +3 -0
- data/app/assets/images/jet_ui/icons/currency-rupee.svg +3 -0
- data/app/assets/images/jet_ui/icons/currency-yen.svg +3 -0
- data/app/assets/images/jet_ui/icons/cursor-arrow-rays.svg +3 -0
- data/app/assets/images/jet_ui/icons/cursor-arrow-ripple.svg +3 -0
- data/app/assets/images/jet_ui/icons/device-phone-mobile.svg +3 -0
- data/app/assets/images/jet_ui/icons/device-tablet.svg +3 -0
- data/app/assets/images/jet_ui/icons/divide.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-arrow-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-arrow-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-chart-bar.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-check.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-currency-bangladeshi.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-currency-dollar.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-currency-euro.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-currency-pound.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-currency-rupee.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-currency-yen.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-duplicate.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-magnifying-glass.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-minus.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-plus.svg +3 -0
- data/app/assets/images/jet_ui/icons/document-text.svg +3 -0
- data/app/assets/images/jet_ui/icons/document.svg +3 -0
- data/app/assets/images/jet_ui/icons/ellipsis-horizontal-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/ellipsis-horizontal.svg +5 -0
- data/app/assets/images/jet_ui/icons/ellipsis-vertical.svg +5 -0
- data/app/assets/images/jet_ui/icons/envelope-open.svg +3 -0
- data/app/assets/images/jet_ui/icons/envelope.svg +3 -0
- data/app/assets/images/jet_ui/icons/equals.svg +3 -0
- data/app/assets/images/jet_ui/icons/exclamation-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/exclamation-triangle.svg +3 -0
- data/app/assets/images/jet_ui/icons/eye-dropper.svg +3 -0
- data/app/assets/images/jet_ui/icons/eye-slash.svg +3 -0
- data/app/assets/images/jet_ui/icons/eye.svg +4 -0
- data/app/assets/images/jet_ui/icons/face-frown.svg +3 -0
- data/app/assets/images/jet_ui/icons/face-smile.svg +3 -0
- data/app/assets/images/jet_ui/icons/film.svg +3 -0
- data/app/assets/images/jet_ui/icons/finger-print.svg +3 -0
- data/app/assets/images/jet_ui/icons/fire.svg +4 -0
- data/app/assets/images/jet_ui/icons/flag.svg +3 -0
- data/app/assets/images/jet_ui/icons/folder-arrow-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/folder-minus.svg +3 -0
- data/app/assets/images/jet_ui/icons/folder-open.svg +3 -0
- data/app/assets/images/jet_ui/icons/folder-plus.svg +3 -0
- data/app/assets/images/jet_ui/icons/folder.svg +3 -0
- data/app/assets/images/jet_ui/icons/forward.svg +4 -0
- data/app/assets/images/jet_ui/icons/funnel.svg +3 -0
- data/app/assets/images/jet_ui/icons/gif.svg +3 -0
- data/app/assets/images/jet_ui/icons/gift-top.svg +3 -0
- data/app/assets/images/jet_ui/icons/gift.svg +3 -0
- data/app/assets/images/jet_ui/icons/github.svg +10 -0
- data/app/assets/images/jet_ui/icons/globe-alt.svg +3 -0
- data/app/assets/images/jet_ui/icons/globe-americas.svg +3 -0
- data/app/assets/images/jet_ui/icons/globe-asia-australia.svg +3 -0
- data/app/assets/images/jet_ui/icons/globe-europe-africa.svg +3 -0
- data/app/assets/images/jet_ui/icons/h1.svg +3 -0
- data/app/assets/images/jet_ui/icons/h2.svg +3 -0
- data/app/assets/images/jet_ui/icons/h3.svg +3 -0
- data/app/assets/images/jet_ui/icons/hand-raised.svg +3 -0
- data/app/assets/images/jet_ui/icons/hand-thumb-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/hand-thumb-up.svg +3 -0
- data/app/assets/images/jet_ui/icons/hashtag.svg +3 -0
- data/app/assets/images/jet_ui/icons/heart.svg +3 -0
- data/app/assets/images/jet_ui/icons/home-modern.svg +3 -0
- data/app/assets/images/jet_ui/icons/home.svg +3 -0
- data/app/assets/images/jet_ui/icons/identification.svg +3 -0
- data/app/assets/images/jet_ui/icons/inbox-arrow-down.svg +3 -0
- data/app/assets/images/jet_ui/icons/inbox-stack.svg +3 -0
- data/app/assets/images/jet_ui/icons/inbox.svg +3 -0
- data/app/assets/images/jet_ui/icons/information-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/italic.svg +3 -0
- data/app/assets/images/jet_ui/icons/key.svg +3 -0
- data/app/assets/images/jet_ui/icons/language.svg +3 -0
- data/app/assets/images/jet_ui/icons/lifebuoy.svg +3 -0
- data/app/assets/images/jet_ui/icons/light-bulb.svg +3 -0
- data/app/assets/images/jet_ui/icons/link-slash.svg +3 -0
- data/app/assets/images/jet_ui/icons/link.svg +3 -0
- data/app/assets/images/jet_ui/icons/list-bullet.svg +3 -0
- data/app/assets/images/jet_ui/icons/lock-closed.svg +3 -0
- data/app/assets/images/jet_ui/icons/lock-open.svg +3 -0
- data/app/assets/images/jet_ui/icons/magnifying-glass-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/magnifying-glass-minus.svg +3 -0
- data/app/assets/images/jet_ui/icons/magnifying-glass-plus.svg +3 -0
- data/app/assets/images/jet_ui/icons/magnifying-glass.svg +3 -0
- data/app/assets/images/jet_ui/icons/map-pin.svg +4 -0
- data/app/assets/images/jet_ui/icons/map.svg +3 -0
- data/app/assets/images/jet_ui/icons/megaphone.svg +3 -0
- data/app/assets/images/jet_ui/icons/microphone.svg +3 -0
- data/app/assets/images/jet_ui/icons/minus-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/minus-small.svg +3 -0
- data/app/assets/images/jet_ui/icons/minus.svg +3 -0
- data/app/assets/images/jet_ui/icons/moon.svg +3 -0
- data/app/assets/images/jet_ui/icons/musical-note.svg +3 -0
- data/app/assets/images/jet_ui/icons/newspaper.svg +3 -0
- data/app/assets/images/jet_ui/icons/no-symbol.svg +3 -0
- data/app/assets/images/jet_ui/icons/numbered-list.svg +3 -0
- data/app/assets/images/jet_ui/icons/paint-brush.svg +3 -0
- data/app/assets/images/jet_ui/icons/paper-airplane.svg +3 -0
- data/app/assets/images/jet_ui/icons/paper-clip.svg +3 -0
- data/app/assets/images/jet_ui/icons/pause-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/pause.svg +3 -0
- data/app/assets/images/jet_ui/icons/pencil-square.svg +3 -0
- data/app/assets/images/jet_ui/icons/pencil.svg +3 -0
- data/app/assets/images/jet_ui/icons/percent-badge.svg +3 -0
- data/app/assets/images/jet_ui/icons/phone-arrow-down-left.svg +3 -0
- data/app/assets/images/jet_ui/icons/phone-arrow-up-right.svg +3 -0
- data/app/assets/images/jet_ui/icons/phone-x-mark.svg +3 -0
- data/app/assets/images/jet_ui/icons/phone.svg +3 -0
- data/app/assets/images/jet_ui/icons/photo.svg +3 -0
- data/app/assets/images/jet_ui/icons/play-circle.svg +4 -0
- data/app/assets/images/jet_ui/icons/play-pause.svg +3 -0
- data/app/assets/images/jet_ui/icons/play.svg +3 -0
- data/app/assets/images/jet_ui/icons/plus-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/plus-small.svg +3 -0
- data/app/assets/images/jet_ui/icons/plus.svg +3 -0
- data/app/assets/images/jet_ui/icons/power.svg +3 -0
- data/app/assets/images/jet_ui/icons/presentation-chart-bar.svg +3 -0
- data/app/assets/images/jet_ui/icons/presentation-chart-line.svg +3 -0
- data/app/assets/images/jet_ui/icons/printer.svg +3 -0
- data/app/assets/images/jet_ui/icons/puzzle-piece.svg +3 -0
- data/app/assets/images/jet_ui/icons/qr-code.svg +13 -0
- data/app/assets/images/jet_ui/icons/question-mark-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/queue-list.svg +3 -0
- data/app/assets/images/jet_ui/icons/radio.svg +3 -0
- data/app/assets/images/jet_ui/icons/receipt-percent.svg +3 -0
- data/app/assets/images/jet_ui/icons/receipt-refund.svg +3 -0
- data/app/assets/images/jet_ui/icons/rectangle-group.svg +5 -0
- data/app/assets/images/jet_ui/icons/rectangle-stack.svg +3 -0
- data/app/assets/images/jet_ui/icons/rocket-launch.svg +3 -0
- data/app/assets/images/jet_ui/icons/rss.svg +3 -0
- data/app/assets/images/jet_ui/icons/scale.svg +3 -0
- data/app/assets/images/jet_ui/icons/scissors.svg +3 -0
- data/app/assets/images/jet_ui/icons/server-stack.svg +3 -0
- data/app/assets/images/jet_ui/icons/server.svg +3 -0
- data/app/assets/images/jet_ui/icons/share.svg +3 -0
- data/app/assets/images/jet_ui/icons/shield-check.svg +3 -0
- data/app/assets/images/jet_ui/icons/shield-exclamation.svg +3 -0
- data/app/assets/images/jet_ui/icons/shopping-bag.svg +3 -0
- data/app/assets/images/jet_ui/icons/shopping-cart.svg +3 -0
- data/app/assets/images/jet_ui/icons/signal-slash.svg +3 -0
- data/app/assets/images/jet_ui/icons/signal.svg +3 -0
- data/app/assets/images/jet_ui/icons/slash.svg +3 -0
- data/app/assets/images/jet_ui/icons/sparkles.svg +5 -0
- data/app/assets/images/jet_ui/icons/speaker-wave.svg +3 -0
- data/app/assets/images/jet_ui/icons/speaker-x-mark.svg +3 -0
- data/app/assets/images/jet_ui/icons/spinner.svg +1 -0
- data/app/assets/images/jet_ui/icons/square-2-stack.svg +3 -0
- data/app/assets/images/jet_ui/icons/square-3-stack-3d.svg +3 -0
- data/app/assets/images/jet_ui/icons/squares-2x2.svg +6 -0
- data/app/assets/images/jet_ui/icons/squares-plus.svg +3 -0
- data/app/assets/images/jet_ui/icons/star.svg +3 -0
- data/app/assets/images/jet_ui/icons/stop-circle.svg +4 -0
- data/app/assets/images/jet_ui/icons/stop.svg +3 -0
- data/app/assets/images/jet_ui/icons/strikethrough.svg +3 -0
- data/app/assets/images/jet_ui/icons/sun.svg +3 -0
- data/app/assets/images/jet_ui/icons/swatch.svg +3 -0
- data/app/assets/images/jet_ui/icons/table-cells.svg +3 -0
- data/app/assets/images/jet_ui/icons/tag.svg +4 -0
- data/app/assets/images/jet_ui/icons/ticket.svg +3 -0
- data/app/assets/images/jet_ui/icons/trash.svg +3 -0
- data/app/assets/images/jet_ui/icons/trophy.svg +3 -0
- data/app/assets/images/jet_ui/icons/truck.svg +3 -0
- data/app/assets/images/jet_ui/icons/tv.svg +3 -0
- data/app/assets/images/jet_ui/icons/underline.svg +3 -0
- data/app/assets/images/jet_ui/icons/user-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/user-group.svg +3 -0
- data/app/assets/images/jet_ui/icons/user-minus.svg +3 -0
- data/app/assets/images/jet_ui/icons/user-plus.svg +3 -0
- data/app/assets/images/jet_ui/icons/user.svg +4 -0
- data/app/assets/images/jet_ui/icons/users.svg +3 -0
- data/app/assets/images/jet_ui/icons/variable.svg +3 -0
- data/app/assets/images/jet_ui/icons/video-camera-slash.svg +3 -0
- data/app/assets/images/jet_ui/icons/video-camera.svg +3 -0
- data/app/assets/images/jet_ui/icons/view-columns.svg +3 -0
- data/app/assets/images/jet_ui/icons/viewfinder-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/wallet.svg +3 -0
- data/app/assets/images/jet_ui/icons/wifi.svg +3 -0
- data/app/assets/images/jet_ui/icons/window.svg +3 -0
- data/app/assets/images/jet_ui/icons/wrench-screwdriver.svg +3 -0
- data/app/assets/images/jet_ui/icons/wrench.svg +4 -0
- data/app/assets/images/jet_ui/icons/x-circle.svg +3 -0
- data/app/assets/images/jet_ui/icons/x-mark.svg +3 -0
- data/app/assets/javascripts/jet_ui/clipboard_controller.js +46 -0
- data/app/assets/javascripts/jet_ui/drawer_controller.js +70 -0
- data/app/assets/javascripts/jet_ui/drawers_controller.js +83 -0
- data/app/assets/javascripts/jet_ui/dropdown_controller.js +95 -0
- data/app/assets/javascripts/jet_ui/flash_controller.js +34 -0
- data/app/assets/javascripts/jet_ui/modal_controller.js +35 -0
- data/app/assets/javascripts/jet_ui/modals_controller.js +30 -0
- data/app/assets/javascripts/jet_ui/popover_controller.js +95 -0
- data/app/assets/javascripts/jet_ui/tooltip_controller.js +107 -0
- data/app/assets/javascripts/jet_ui/turbo_confirm_controller.js +25 -0
- data/app/assets/stylesheets/jet_ui/accordion.css +24 -0
- data/app/assets/stylesheets/jet_ui/alert.css +27 -0
- data/app/assets/stylesheets/jet_ui/avatar.css +15 -0
- data/app/assets/stylesheets/jet_ui/badge.css +22 -0
- data/app/assets/stylesheets/jet_ui/breadcrumbs.css +28 -0
- data/app/assets/stylesheets/jet_ui/btn.css +88 -0
- data/app/assets/stylesheets/jet_ui/card.css +61 -0
- data/app/assets/stylesheets/jet_ui/divider.css +21 -0
- data/app/assets/stylesheets/jet_ui/drawer.css +46 -0
- data/app/assets/stylesheets/jet_ui/dropdown.css +33 -0
- data/app/assets/stylesheets/jet_ui/empty.css +25 -0
- data/app/assets/stylesheets/jet_ui/flash.css +50 -0
- data/app/assets/stylesheets/jet_ui/group.css +40 -0
- data/app/assets/stylesheets/jet_ui/header.css +65 -0
- data/app/assets/stylesheets/jet_ui/icon.css +11 -0
- data/app/assets/stylesheets/jet_ui/list.css +31 -0
- data/app/assets/stylesheets/jet_ui/modal.css +47 -0
- data/app/assets/stylesheets/jet_ui/navbar.css +36 -0
- data/app/assets/stylesheets/jet_ui/pagy.css +54 -0
- data/app/assets/stylesheets/jet_ui/popover.css +51 -0
- data/app/assets/stylesheets/jet_ui/sidebar.css +35 -0
- data/app/assets/stylesheets/jet_ui/stat.css +23 -0
- data/app/assets/stylesheets/jet_ui/stepper.css +82 -0
- data/app/assets/stylesheets/jet_ui/table.css +68 -0
- data/app/assets/stylesheets/jet_ui/tabs.css +32 -0
- data/app/assets/stylesheets/jet_ui/theme.css +174 -0
- data/app/assets/stylesheets/jet_ui/timeline.css +45 -0
- data/app/assets/stylesheets/jet_ui/tooltip.css +33 -0
- data/app/assets/stylesheets/jet_ui.css +28 -0
- data/app/components/jet_ui/accordion/body_component.rb +21 -0
- data/app/components/jet_ui/accordion/component.rb +24 -0
- data/app/components/jet_ui/accordion/summary_component.rb +29 -0
- data/app/components/jet_ui/alert/component.rb +29 -0
- data/app/components/jet_ui/alert/description_component.rb +21 -0
- data/app/components/jet_ui/alert/icon_component.rb +21 -0
- data/app/components/jet_ui/alert/title_component.rb +21 -0
- data/app/components/jet_ui/avatar/component.rb +54 -0
- data/app/components/jet_ui/badge/component.rb +35 -0
- data/app/components/jet_ui/base_component.rb +6 -0
- data/app/components/jet_ui/breadcrumbs/component.rb +18 -0
- data/app/components/jet_ui/breadcrumbs/item_component.rb +25 -0
- data/app/components/jet_ui/btn/component.rb +51 -0
- data/app/components/jet_ui/card/body_component.rb +24 -0
- data/app/components/jet_ui/card/component.rb +24 -0
- data/app/components/jet_ui/card/footer_component.rb +48 -0
- data/app/components/jet_ui/card/header_component.rb +48 -0
- data/app/components/jet_ui/card/subtitle_component.rb +24 -0
- data/app/components/jet_ui/card/title_component.rb +24 -0
- data/app/components/jet_ui/clipboard/component.rb +58 -0
- data/app/components/jet_ui/divider/component.rb +30 -0
- data/app/components/jet_ui/drawer/body_component.rb +21 -0
- data/app/components/jet_ui/drawer/component.rb +54 -0
- data/app/components/jet_ui/drawer/footer_component.rb +45 -0
- data/app/components/jet_ui/drawer/header_component.rb +46 -0
- data/app/components/jet_ui/dropdown/button_component.rb +24 -0
- data/app/components/jet_ui/dropdown/component.rb +28 -0
- data/app/components/jet_ui/dropdown/divider_component.rb +21 -0
- data/app/components/jet_ui/dropdown/link_component.rb +29 -0
- data/app/components/jet_ui/dropdown/menu_component.rb +25 -0
- data/app/components/jet_ui/dropdown/title_component.rb +21 -0
- data/app/components/jet_ui/dropdown/trigger_component.rb +28 -0
- data/app/components/jet_ui/empty/actions_component.rb +19 -0
- data/app/components/jet_ui/empty/component.rb +15 -0
- data/app/components/jet_ui/empty/description_component.rb +15 -0
- data/app/components/jet_ui/empty/icon_component.rb +18 -0
- data/app/components/jet_ui/empty/title_component.rb +15 -0
- data/app/components/jet_ui/flash/component.html.erb +14 -0
- data/app/components/jet_ui/flash/component.rb +44 -0
- data/app/components/jet_ui/group/component.rb +26 -0
- data/app/components/jet_ui/header/actions_component.rb +21 -0
- data/app/components/jet_ui/header/component.rb +35 -0
- data/app/components/jet_ui/header/heading_component.rb +21 -0
- data/app/components/jet_ui/header/subtitle_component.rb +21 -0
- data/app/components/jet_ui/header/title_component.rb +21 -0
- data/app/components/jet_ui/icon/component.rb +46 -0
- data/app/components/jet_ui/list/action_component.rb +21 -0
- data/app/components/jet_ui/list/component.rb +29 -0
- data/app/components/jet_ui/list/content_component.rb +21 -0
- data/app/components/jet_ui/list/icon_component.rb +25 -0
- data/app/components/jet_ui/list/item_component.rb +21 -0
- data/app/components/jet_ui/modal/body_component.rb +21 -0
- data/app/components/jet_ui/modal/component.rb +54 -0
- data/app/components/jet_ui/modal/footer_component.rb +45 -0
- data/app/components/jet_ui/modal/header_component.rb +46 -0
- data/app/components/jet_ui/navbar/actions_component.rb +21 -0
- data/app/components/jet_ui/navbar/brand_component.rb +21 -0
- data/app/components/jet_ui/navbar/component.rb +22 -0
- data/app/components/jet_ui/navbar/content_component.rb +21 -0
- data/app/components/jet_ui/navbar/main_component.rb +21 -0
- data/app/components/jet_ui/pagy/component.rb +38 -0
- data/app/components/jet_ui/popover/component.rb +29 -0
- data/app/components/jet_ui/popover/content_component.rb +23 -0
- data/app/components/jet_ui/popover/trigger_component.rb +20 -0
- data/app/components/jet_ui/sidebar/component.rb +27 -0
- data/app/components/jet_ui/sidebar/link_component.rb +44 -0
- data/app/components/jet_ui/sidebar/menu_component.rb +21 -0
- data/app/components/jet_ui/sidebar/section_component.rb +21 -0
- data/app/components/jet_ui/sidebar/title_component.rb +21 -0
- data/app/components/jet_ui/spinner/component.rb +16 -0
- data/app/components/jet_ui/stat/component.rb +21 -0
- data/app/components/jet_ui/stat/description_component.rb +57 -0
- data/app/components/jet_ui/stat/label_component.rb +21 -0
- data/app/components/jet_ui/stat/value_component.rb +21 -0
- data/app/components/jet_ui/stepper/component.rb +18 -0
- data/app/components/jet_ui/stepper/step_component.rb +69 -0
- data/app/components/jet_ui/table/component.rb +37 -0
- data/app/components/jet_ui/table/tbody_component.rb +15 -0
- data/app/components/jet_ui/table/td_component.rb +29 -0
- data/app/components/jet_ui/table/tfoot_component.rb +15 -0
- data/app/components/jet_ui/table/th_component.rb +27 -0
- data/app/components/jet_ui/table/thead_component.rb +15 -0
- data/app/components/jet_ui/table/tr_component.rb +15 -0
- data/app/components/jet_ui/tabs/component.rb +30 -0
- data/app/components/jet_ui/tabs/item_component.rb +34 -0
- data/app/components/jet_ui/timeline/component.rb +15 -0
- data/app/components/jet_ui/timeline/content_component.rb +15 -0
- data/app/components/jet_ui/timeline/dot_component.rb +37 -0
- data/app/components/jet_ui/timeline/item_component.rb +15 -0
- data/app/components/jet_ui/timeline/time_component.rb +15 -0
- data/app/components/jet_ui/tooltip/component.rb +34 -0
- data/app/components/jet_ui/turbo_confirm/component.html.erb +20 -0
- data/app/components/jet_ui/turbo_confirm/component.rb +8 -0
- data/app/helpers/jet_ui_helper.rb +37 -0
- data/lib/generators/jet_ui/eject/USAGE +20 -0
- data/lib/generators/jet_ui/eject/eject_generator.rb +376 -0
- data/lib/generators/jet_ui/install/USAGE +11 -0
- data/lib/generators/jet_ui/install/install_generator.rb +121 -0
- data/lib/jet_ui/engine.rb +32 -0
- data/lib/jet_ui/version.rb +5 -0
- data/lib/jet_ui.rb +5 -0
- metadata +667 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module List
|
|
5
|
+
class ContentComponent < BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :div, content, class: classes, **@options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('list__content', @options.delete(:class))
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module List
|
|
5
|
+
class IconComponent < BaseComponent
|
|
6
|
+
def initialize(name = nil, size: 5, **options)
|
|
7
|
+
@name = name
|
|
8
|
+
@size = size
|
|
9
|
+
@options = options
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def call
|
|
13
|
+
content_tag :div, class: classes, **@options do
|
|
14
|
+
render JetUi::Icon::Component.new(@name.presence || content.to_s.strip, size: @size)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def classes
|
|
21
|
+
class_names('list__icon', @options.delete(:class))
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module List
|
|
5
|
+
class ItemComponent < BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :li, content, class: classes, **@options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('list__item', @options.delete(:class))
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Modal
|
|
5
|
+
class BodyComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :div, content, class: classes, **@options.except(:class)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('modal__body', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Modal
|
|
5
|
+
class Component < JetUi::BaseComponent
|
|
6
|
+
SIZES = %w[sm md lg xl 2xl 3xl 4xl 5xl 6xl].freeze
|
|
7
|
+
DEFAULT_SIZE = '2xl'
|
|
8
|
+
|
|
9
|
+
def initialize(title: nil, subtitle: nil, size: DEFAULT_SIZE, id: nil)
|
|
10
|
+
@title = title
|
|
11
|
+
@subtitle = subtitle
|
|
12
|
+
@size = size
|
|
13
|
+
@id = id
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
erb_template <<~ERB
|
|
17
|
+
<%= container_tag do %>
|
|
18
|
+
<%= helpers.jet_ui.modal_header(title: @title, subtitle: @subtitle, closable: closable?, id: @id) %>
|
|
19
|
+
<%= content %>
|
|
20
|
+
<% end %>
|
|
21
|
+
ERB
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def container_tag(&block)
|
|
26
|
+
return sync_dialog(&block) if @id
|
|
27
|
+
return turbo_frame_dialog(&block) if helpers.turbo_frame_request?
|
|
28
|
+
|
|
29
|
+
content_tag :div, class: class_names('modal modal-page', "w-#{@size}"), &block
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def sync_dialog(&block)
|
|
33
|
+
dialog_tag(id: @id, data: { modals_target: 'dialog' }, &block)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def turbo_frame_dialog(&block)
|
|
37
|
+
helpers.turbo_frame_tag :modal do
|
|
38
|
+
dialog_tag(id: :modalDialog, data: { controller: 'modal' }) do
|
|
39
|
+
helpers.turbo_frame_tag(:modalContent, &block)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def dialog_tag(**options, &block)
|
|
45
|
+
attrs = { tabindex: '-1', class: class_names('modal', 'animate-slide-up', "w-#{@size}") }
|
|
46
|
+
content_tag :dialog, **attrs, **options, &block
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def closable?
|
|
50
|
+
helpers.turbo_frame_request? || @id
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Modal
|
|
5
|
+
class FooterComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(direction: :row, align: :start, justify: :start, bordered: true, **options)
|
|
7
|
+
@direction = direction
|
|
8
|
+
@align = align
|
|
9
|
+
@justify = justify
|
|
10
|
+
@bordered = bordered
|
|
11
|
+
@options = options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def call
|
|
15
|
+
content_tag :div, content, class: classes, **@options.except(:class)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def classes
|
|
21
|
+
class_names(
|
|
22
|
+
'modal__footer',
|
|
23
|
+
{ 'modal__footer-bordered' => @bordered },
|
|
24
|
+
direction_class,
|
|
25
|
+
align_class,
|
|
26
|
+
justify_class,
|
|
27
|
+
@options[:class]
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def direction_class
|
|
32
|
+
{ col: 'flex flex-col gap-2', row: 'flex flex-row gap-2' }[@direction]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def align_class
|
|
36
|
+
{ start: 'items-start', center: 'items-center', end: 'items-end' }[@align]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def justify_class
|
|
40
|
+
{ start: 'justify-start', center: 'justify-center', end: 'justify-end',
|
|
41
|
+
between: 'justify-between' }[@justify]
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Modal
|
|
5
|
+
class HeaderComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(title: nil, subtitle: nil, closable: true, id: nil, bordered: true, **options)
|
|
7
|
+
@title = title
|
|
8
|
+
@subtitle = subtitle
|
|
9
|
+
@closable = closable
|
|
10
|
+
@id = id
|
|
11
|
+
@bordered = bordered
|
|
12
|
+
@options = options
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
erb_template <<~ERB
|
|
16
|
+
<div class="<%= classes %>">
|
|
17
|
+
<div>
|
|
18
|
+
<% if @title %>
|
|
19
|
+
<h3 class="modal__title"><%= @title %></h3>
|
|
20
|
+
<% end %>
|
|
21
|
+
<% if @subtitle %>
|
|
22
|
+
<div class="modal__subtitle"><%= @subtitle %></div>
|
|
23
|
+
<% end %>
|
|
24
|
+
<%= content %>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<% if @closable %>
|
|
28
|
+
<button type="button" class="modal__close" data-action="click->modal#close click->modals#close" aria-label="Close" data-id="<%= @id %>">
|
|
29
|
+
<%= helpers.jet_ui.icon("x-mark", size: 6) %>
|
|
30
|
+
</button>
|
|
31
|
+
<% end %>
|
|
32
|
+
</div>
|
|
33
|
+
ERB
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
def classes
|
|
38
|
+
class_names(
|
|
39
|
+
'modal__header',
|
|
40
|
+
{ 'modal__header-bordered' => @bordered },
|
|
41
|
+
@options[:class]
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Navbar
|
|
5
|
+
class ActionsComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag(:div, content, class: classes, **@options.except(:class))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('navbar__actions', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Navbar
|
|
5
|
+
class BrandComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag(:div, content, class: classes, **@options.except(:class))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('navbar__brand', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Navbar
|
|
5
|
+
class Component < JetUi::BaseComponent
|
|
6
|
+
def initialize(sticky: true, **options)
|
|
7
|
+
@sticky = sticky
|
|
8
|
+
@options = options
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def call
|
|
12
|
+
content_tag(:header, content, class: classes, **@options.except(:class))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def classes
|
|
18
|
+
class_names('navbar', { 'navbar-sticky' => @sticky }, @options[:class])
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Navbar
|
|
5
|
+
class ContentComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag(:div, content, class: classes, **@options.except(:class))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('navbar__content', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Navbar
|
|
5
|
+
class MainComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag(:div, content, class: classes, **@options.except(:class))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('navbar__main', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Pagy
|
|
5
|
+
class Component < BaseComponent
|
|
6
|
+
WRAPPER_CLASSES = 'flex flex-col md:items-center gap-x-6 gap-y-2 md:justify-between md:flex-row'
|
|
7
|
+
|
|
8
|
+
def initialize(pagy:, **options)
|
|
9
|
+
@pagy = pagy
|
|
10
|
+
@options = options
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def render?
|
|
14
|
+
@pagy.pages > 1
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
content_tag :div, class: class_names(WRAPPER_CLASSES, @options.delete(:class)), **@options do
|
|
19
|
+
safe_join([page_info, nav_wrapper])
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def page_info
|
|
26
|
+
content_tag(:div, class: 'sticky left-0 text-muted-foreground') do
|
|
27
|
+
content_tag(:div) do
|
|
28
|
+
safe_join(['Page ', content_tag(:strong, @pagy.page.to_s), " of #{@pagy.pages}"])
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def nav_wrapper
|
|
34
|
+
content_tag(:div, content, class: 'sticky left-0 md:right-0')
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Popover
|
|
5
|
+
class Component < JetUi::BaseComponent
|
|
6
|
+
def initialize(placement: :bottom, **options)
|
|
7
|
+
@placement = placement
|
|
8
|
+
@options = options
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
erb_template <<~ERB
|
|
12
|
+
<%= content_tag :div, **attrs, class: 'w-fit' do %>
|
|
13
|
+
<%= content %>
|
|
14
|
+
<% end %>
|
|
15
|
+
ERB
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def attrs
|
|
20
|
+
data_attributes = {
|
|
21
|
+
controller: 'popover',
|
|
22
|
+
popover_placement_value: @placement
|
|
23
|
+
}.deep_merge(@options.fetch(:data, {}))
|
|
24
|
+
|
|
25
|
+
@options.except(:data).merge(data: data_attributes)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Popover
|
|
5
|
+
class ContentComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(title: nil, **options)
|
|
7
|
+
@title = title
|
|
8
|
+
@options = options
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
erb_template <<~ERB
|
|
12
|
+
<%= content_tag :div, class: "popover", data: { popover_target: "content" }, **@options.except(:class, :data) do %>
|
|
13
|
+
<% if @title %>
|
|
14
|
+
<div class="popover__title"><%= @title %></div>
|
|
15
|
+
<% end %>
|
|
16
|
+
<div class="popover__body">
|
|
17
|
+
<%= content %>
|
|
18
|
+
</div>
|
|
19
|
+
<% end %>
|
|
20
|
+
ERB
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Popover
|
|
5
|
+
class TriggerComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(as: nil, **options)
|
|
7
|
+
@as = as
|
|
8
|
+
@options = options
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def call
|
|
12
|
+
if @as
|
|
13
|
+
helpers.jet_ui.public_send(@as, **@options) { content }
|
|
14
|
+
else
|
|
15
|
+
content_tag :span, content, **@options
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Sidebar
|
|
5
|
+
class Component < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag(:nav, content, class: classes, **data_attributes, **@options.except(:class, :data))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('sidebar', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def data_attributes
|
|
21
|
+
default_data = { sidebar_target: 'menu' }
|
|
22
|
+
custom_data = @options[:data] || {}
|
|
23
|
+
{ data: default_data.merge(custom_data) }
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Sidebar
|
|
5
|
+
class LinkComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(url: nil, disabled: false, active: nil, **options)
|
|
7
|
+
@url = url
|
|
8
|
+
@disabled = disabled
|
|
9
|
+
@active = active
|
|
10
|
+
@options = options
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
erb_template <<~ERB
|
|
14
|
+
<li>
|
|
15
|
+
<% if @disabled %>
|
|
16
|
+
<span class="<%= classes %>"><%= content %></span>
|
|
17
|
+
<% else %>
|
|
18
|
+
<%= link_to @url, class: classes, **@options.except(:class) do %>
|
|
19
|
+
<%= content %>
|
|
20
|
+
<% end %>
|
|
21
|
+
<% end %>
|
|
22
|
+
</li>
|
|
23
|
+
ERB
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def classes
|
|
28
|
+
class_names(
|
|
29
|
+
'sidebar__link',
|
|
30
|
+
('sidebar__link-active' if active?),
|
|
31
|
+
('sidebar__link-disabled' if @disabled),
|
|
32
|
+
@options[:class]
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def active?
|
|
37
|
+
return @active unless @active.nil?
|
|
38
|
+
return false if @url.nil? || @disabled
|
|
39
|
+
|
|
40
|
+
helpers.current_page?(@url)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Sidebar
|
|
5
|
+
class MenuComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag(:ul, content, class: classes, **@options.except(:class))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('sidebar__menu', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Sidebar
|
|
5
|
+
class SectionComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag(:div, content, class: classes, **@options.except(:class))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('sidebar__section', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Sidebar
|
|
5
|
+
class TitleComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag(:h4, content, class: classes, **@options.except(:class))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('sidebar__title', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Spinner
|
|
5
|
+
class Component < BaseComponent
|
|
6
|
+
def initialize(size: 6, **options)
|
|
7
|
+
@size = size
|
|
8
|
+
@options = options
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def call
|
|
12
|
+
render JetUi::Icon::Component.new('spinner', size: @size, **@options)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Stat
|
|
5
|
+
class Component < BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :div, content, class: classes, **@options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('stat', @options.delete(:class))
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|