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,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Drawer
|
|
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
|
+
'drawer__footer',
|
|
23
|
+
{ 'drawer__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 Drawer
|
|
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="drawer__title"><%= @title %></h3>
|
|
20
|
+
<% end %>
|
|
21
|
+
<% if @subtitle %>
|
|
22
|
+
<div class="drawer__subtitle"><%= @subtitle %></div>
|
|
23
|
+
<% end %>
|
|
24
|
+
<%= content %>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<% if @closable %>
|
|
28
|
+
<button type="button" class="drawer__close" data-action="click->drawer#close click->drawers#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
|
+
'drawer__header',
|
|
40
|
+
{ 'drawer__header-bordered' => @bordered },
|
|
41
|
+
@options[:class]
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Dropdown
|
|
5
|
+
class ButtonComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(href: nil, **options)
|
|
7
|
+
@href = href
|
|
8
|
+
@options = options
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
erb_template <<~ERB
|
|
12
|
+
<li class="dropdown__item">
|
|
13
|
+
<%= button_to content, @href, **@options.except(:class), class: classes, form: { class: "dropdown__form" } %>
|
|
14
|
+
</li>
|
|
15
|
+
ERB
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def classes
|
|
20
|
+
class_names('dropdown__link', @options[:class])
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Dropdown
|
|
5
|
+
class Component < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
erb_template <<~ERB
|
|
11
|
+
<%= content_tag :div, class: classes, **attrs do %>
|
|
12
|
+
<%= content %>
|
|
13
|
+
<% end %>
|
|
14
|
+
ERB
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
def attrs
|
|
19
|
+
data_attributes = { controller: 'dropdown' }.deep_merge(@options.fetch(:data, {}))
|
|
20
|
+
@options.except(:class, :data).merge(data: data_attributes)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def classes
|
|
24
|
+
class_names('dropdown', @options[:class])
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Dropdown
|
|
5
|
+
class DividerComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :li, nil, class: classes, **@options.except(:class)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('dropdown__divider', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Dropdown
|
|
5
|
+
class LinkComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(url: nil, active: false, **options)
|
|
7
|
+
@url = url
|
|
8
|
+
@active = active
|
|
9
|
+
@options = options
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
erb_template <<~ERB
|
|
13
|
+
<li class="dropdown__item">
|
|
14
|
+
<%= link_to content, @url, class: classes, **@options.except(:class) %>
|
|
15
|
+
</li>
|
|
16
|
+
ERB
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def classes
|
|
21
|
+
class_names(
|
|
22
|
+
'dropdown__link',
|
|
23
|
+
('dropdown__link-active' if @active),
|
|
24
|
+
@options[:class]
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Dropdown
|
|
5
|
+
class MenuComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
erb_template <<~ERB
|
|
11
|
+
<div class="dropdown__menu" data-dropdown-target="menu">
|
|
12
|
+
<ul class="<%= classes %>">
|
|
13
|
+
<%= content %>
|
|
14
|
+
</ul>
|
|
15
|
+
</div>
|
|
16
|
+
ERB
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def classes
|
|
21
|
+
class_names('dropdown__wrapper', @options[:class])
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Dropdown
|
|
5
|
+
class TitleComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :h6, content, class: classes, **@options.except(:class)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('dropdown__title', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Dropdown
|
|
5
|
+
class TriggerComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(as: nil, **options)
|
|
7
|
+
@as = as
|
|
8
|
+
@options = options
|
|
9
|
+
@options[:data] ||= {}
|
|
10
|
+
@options[:data][:dropdown_target] = 'trigger'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def call
|
|
14
|
+
if @as
|
|
15
|
+
helpers.jet_ui.public_send(@as, **@options) { content }
|
|
16
|
+
else
|
|
17
|
+
content_tag :span, content, role: :button, class: classes, **@options.except(:class)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
def classes
|
|
24
|
+
class_names('dropdown__trigger', @options[:class])
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Empty
|
|
5
|
+
class ActionsComponent < BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
render JetUi::Group::Component.new(sticky: false,
|
|
12
|
+
class: class_names('empty__actions', @options.delete(:class)),
|
|
13
|
+
**@options) do
|
|
14
|
+
content
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Empty
|
|
5
|
+
class Component < BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :div, content, class: class_names('empty', @options.delete(:class)), **@options
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Empty
|
|
5
|
+
class DescriptionComponent < BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :p, content, class: class_names('empty__description', @options.delete(:class)), **@options
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Empty
|
|
5
|
+
class IconComponent < BaseComponent
|
|
6
|
+
def initialize(name = nil, **options)
|
|
7
|
+
@name = name
|
|
8
|
+
@options = options
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def call
|
|
12
|
+
content_tag :div, class: class_names('empty__icon', @options.delete(:class)), **@options do
|
|
13
|
+
render JetUi::Icon::Component.new(@name.presence || content.to_s.strip, size: 6)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Empty
|
|
5
|
+
class TitleComponent < BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :h3, content, class: class_names('empty__title', @options.delete(:class)), **@options
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<%= helpers.turbo_frame_tag @frame_id, class: 'flash-container', target: :_top, refresh: :morph do %>
|
|
2
|
+
<% flash_messages.each do |key, message| %>
|
|
3
|
+
<% next if message.blank? %>
|
|
4
|
+
|
|
5
|
+
<%= content_tag :div, id: "flash-#{key}", class: item_class(key), data: item_data do %>
|
|
6
|
+
<p class="flash-item__message"><%= message.html_safe %></p>
|
|
7
|
+
<% if @dismissible %>
|
|
8
|
+
<button class="flash-item__close" type="button" data-action="flash#close" aria-label="Close">
|
|
9
|
+
<%= render(JetUi::Icon::Component.new('x-mark', size: 5)) %>
|
|
10
|
+
</button>
|
|
11
|
+
<% end %>
|
|
12
|
+
<% end %>
|
|
13
|
+
<% end %>
|
|
14
|
+
<% end %>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Flash
|
|
5
|
+
class Component < BaseComponent
|
|
6
|
+
DISMISS_AFTER = 5000
|
|
7
|
+
SHOW_DELAY = 250
|
|
8
|
+
|
|
9
|
+
TYPE_CLASSES = {
|
|
10
|
+
'notice' => 'flash-item-info',
|
|
11
|
+
'success' => 'flash-item-success',
|
|
12
|
+
'alert' => 'flash-item-error',
|
|
13
|
+
'error' => 'flash-item-error',
|
|
14
|
+
'warning' => 'flash-item-warning'
|
|
15
|
+
}.freeze
|
|
16
|
+
|
|
17
|
+
def initialize(messages: nil, dismissible: true, frame_id: :flash)
|
|
18
|
+
@messages = messages
|
|
19
|
+
@dismissible = dismissible
|
|
20
|
+
@frame_id = frame_id
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def flash_messages
|
|
26
|
+
@messages || flash
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def item_class(flash_type)
|
|
30
|
+
type_class = TYPE_CLASSES[flash_type.to_s] || "flash-item-#{flash_type}"
|
|
31
|
+
class_names('flash-item', 'flash-item--hidden', type_class)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def item_data
|
|
35
|
+
attrs = { controller: 'flash', action: 'turbo:morph@window->flash#connect' }
|
|
36
|
+
if @dismissible
|
|
37
|
+
attrs[:flash_dismiss_after_value] = DISMISS_AFTER
|
|
38
|
+
attrs[:flash_show_delay_value] = SHOW_DELAY
|
|
39
|
+
end
|
|
40
|
+
attrs
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Group
|
|
5
|
+
class Component < BaseComponent
|
|
6
|
+
def initialize(sticky: true, **options)
|
|
7
|
+
@sticky = sticky
|
|
8
|
+
@options = options
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def call
|
|
12
|
+
content_tag :div, content, class: classes, **@options
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def classes
|
|
18
|
+
class_names(
|
|
19
|
+
'ui_group',
|
|
20
|
+
{ 'ui_group-sticky': @sticky },
|
|
21
|
+
@options.delete(:class)
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Header
|
|
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('header__actions', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Header
|
|
5
|
+
class Component < JetUi::BaseComponent
|
|
6
|
+
def initialize(direction: :row, align: :start, justify: :between,
|
|
7
|
+
sticky: false, bordered: false, **options)
|
|
8
|
+
@direction = direction
|
|
9
|
+
@align = align
|
|
10
|
+
@justify = justify
|
|
11
|
+
@sticky = sticky
|
|
12
|
+
@bordered = bordered
|
|
13
|
+
@options = options
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
content_tag :div, content, class: classes, **@options.except(:class)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def classes
|
|
23
|
+
class_names(
|
|
24
|
+
'header',
|
|
25
|
+
"header--#{@direction}",
|
|
26
|
+
"header--align-#{@align}",
|
|
27
|
+
"header--justify-#{@justify}",
|
|
28
|
+
{ 'header--sticky' => @sticky },
|
|
29
|
+
{ 'header--bordered' => @bordered },
|
|
30
|
+
@options[:class]
|
|
31
|
+
)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module Header
|
|
5
|
+
class HeadingComponent < 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('header__heading', @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 Header
|
|
5
|
+
class SubtitleComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :p, content, class: classes, **@options.except(:class)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('header__subtitle', @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 Header
|
|
5
|
+
class TitleComponent < JetUi::BaseComponent
|
|
6
|
+
def initialize(**options)
|
|
7
|
+
@options = options
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call
|
|
11
|
+
content_tag :h1, content, class: classes, **@options.except(:class)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def classes
|
|
17
|
+
class_names('header__title', @options[:class])
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'cgi'
|
|
4
|
+
|
|
5
|
+
module JetUi
|
|
6
|
+
module Icon
|
|
7
|
+
class Component < BaseComponent
|
|
8
|
+
ICONS_PATH = JetUi::Engine.root.join('app', 'assets', 'images', 'jet_ui', 'icons')
|
|
9
|
+
|
|
10
|
+
def initialize(name = nil, size: nil, **options)
|
|
11
|
+
@name = name.to_s
|
|
12
|
+
@size = size
|
|
13
|
+
@options = options
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
icon_name = @name.presence || content.to_s.strip
|
|
18
|
+
svg = File.read(ICONS_PATH.join("#{icon_name}.svg"))
|
|
19
|
+
# rubocop:disable Rails/OutputSafety
|
|
20
|
+
svg.sub('<svg', "<svg #{html_attributes(icon_name)}").html_safe
|
|
21
|
+
# rubocop:enable Rails/OutputSafety
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
def html_attributes(icon_name)
|
|
27
|
+
attrs = {
|
|
28
|
+
class: class_names('icon', @options.delete(:class)),
|
|
29
|
+
style: size_style,
|
|
30
|
+
'aria-hidden': 'true',
|
|
31
|
+
'aria-label': icon_name.to_s.humanize
|
|
32
|
+
}.merge(@options)
|
|
33
|
+
attrs.compact!
|
|
34
|
+
|
|
35
|
+
attrs.map { |k, v| "#{k}=\"#{CGI.escapeHTML(v.to_s)}\"" }.join(' ')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def size_style
|
|
39
|
+
return unless @size
|
|
40
|
+
|
|
41
|
+
size = "calc(var(--spacing) * #{@size})"
|
|
42
|
+
"width: #{size}; height: #{size};"
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module List
|
|
5
|
+
class ActionComponent < 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__action', @options.delete(:class))
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module JetUi
|
|
4
|
+
module List
|
|
5
|
+
class Component < BaseComponent
|
|
6
|
+
VARIANTS = %i[default divided].freeze
|
|
7
|
+
DEFAULT_VARIANT = :default
|
|
8
|
+
|
|
9
|
+
def initialize(variant: DEFAULT_VARIANT, **options)
|
|
10
|
+
@variant = VARIANTS.include?(variant) ? variant : DEFAULT_VARIANT
|
|
11
|
+
@options = options
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def call
|
|
15
|
+
content_tag :ul, content, class: classes, **@options
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def classes
|
|
21
|
+
class_names(
|
|
22
|
+
'list',
|
|
23
|
+
{ 'list--divided': @variant == :divided },
|
|
24
|
+
@options.delete(:class)
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|