spina 2.0.2 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of spina might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +6 -4
- data/Rakefile +2 -0
- data/app/assets/config/spina/manifest.js +7 -4
- data/app/assets/config/spina/tailwind.config.js +27 -0
- data/app/assets/icons/heroicons/outline/academic-cap.svg +5 -0
- data/app/assets/icons/heroicons/outline/adjustments.svg +3 -0
- data/app/assets/icons/heroicons/outline/annotation.svg +3 -0
- data/app/assets/icons/heroicons/outline/archive.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-circle-down.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-circle-left.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-circle-right.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-circle-up.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-down.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-left.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-narrow-down.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-narrow-left.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-narrow-right.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-narrow-up.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-right.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrow-up.svg +3 -0
- data/app/assets/icons/heroicons/outline/arrows-expand.svg +3 -0
- data/app/assets/icons/heroicons/outline/at-symbol.svg +3 -0
- data/app/assets/icons/heroicons/outline/backspace.svg +3 -0
- data/app/assets/icons/heroicons/outline/badge-check.svg +3 -0
- data/app/assets/icons/heroicons/outline/ban.svg +3 -0
- data/app/assets/icons/heroicons/outline/beaker.svg +3 -0
- data/app/assets/icons/heroicons/outline/bell.svg +3 -0
- data/app/assets/icons/heroicons/outline/book-open.svg +3 -0
- data/app/assets/icons/heroicons/outline/bookmark-alt.svg +3 -0
- data/app/assets/icons/heroicons/outline/bookmark.svg +3 -0
- data/app/assets/icons/heroicons/outline/briefcase.svg +3 -0
- data/app/assets/icons/heroicons/outline/cake.svg +3 -0
- data/app/assets/icons/heroicons/outline/calculator.svg +3 -0
- data/app/assets/icons/heroicons/outline/calendar.svg +3 -0
- data/app/assets/icons/heroicons/outline/camera.svg +4 -0
- data/app/assets/icons/heroicons/outline/cash.svg +3 -0
- data/app/assets/icons/heroicons/outline/chart-bar.svg +3 -0
- data/app/assets/icons/heroicons/outline/chart-pie.svg +4 -0
- data/app/assets/icons/heroicons/outline/chart-square-bar.svg +3 -0
- data/app/assets/icons/heroicons/outline/chat-alt-2.svg +3 -0
- data/app/assets/icons/heroicons/outline/chat-alt.svg +3 -0
- data/app/assets/icons/heroicons/outline/chat.svg +3 -0
- data/app/assets/icons/heroicons/outline/check-circle.svg +3 -0
- data/app/assets/icons/heroicons/outline/check.svg +3 -0
- data/app/assets/icons/heroicons/outline/chevron-double-down.svg +3 -0
- data/app/assets/icons/heroicons/outline/chevron-double-left.svg +3 -0
- data/app/assets/icons/heroicons/outline/chevron-double-right.svg +3 -0
- data/app/assets/icons/heroicons/outline/chevron-double-up.svg +3 -0
- data/app/assets/icons/heroicons/outline/chevron-down.svg +3 -0
- data/app/assets/icons/heroicons/outline/chevron-left.svg +3 -0
- data/app/assets/icons/heroicons/outline/chevron-right.svg +3 -0
- data/app/assets/icons/heroicons/outline/chevron-up.svg +3 -0
- data/app/assets/icons/heroicons/outline/chip.svg +3 -0
- data/app/assets/icons/heroicons/outline/clipboard-check.svg +3 -0
- data/app/assets/icons/heroicons/outline/clipboard-copy.svg +3 -0
- data/app/assets/icons/heroicons/outline/clipboard-list.svg +3 -0
- data/app/assets/icons/heroicons/outline/clipboard.svg +3 -0
- data/app/assets/icons/heroicons/outline/clock.svg +3 -0
- data/app/assets/icons/heroicons/outline/cloud-download.svg +3 -0
- data/app/assets/icons/heroicons/outline/cloud-upload.svg +3 -0
- data/app/assets/icons/heroicons/outline/cloud.svg +3 -0
- data/app/assets/icons/heroicons/outline/code.svg +3 -0
- data/app/assets/icons/heroicons/outline/cog.svg +4 -0
- data/app/assets/icons/heroicons/outline/collection.svg +3 -0
- data/app/assets/icons/heroicons/outline/color-swatch.svg +3 -0
- data/app/assets/icons/heroicons/outline/credit-card.svg +3 -0
- data/app/assets/icons/heroicons/outline/cube-transparent.svg +3 -0
- data/app/assets/icons/heroicons/outline/cube.svg +3 -0
- data/app/assets/icons/heroicons/outline/currency-bangladeshi.svg +3 -0
- data/app/assets/icons/heroicons/outline/currency-dollar.svg +3 -0
- data/app/assets/icons/heroicons/outline/currency-euro.svg +3 -0
- data/app/assets/icons/heroicons/outline/currency-pound.svg +3 -0
- data/app/assets/icons/heroicons/outline/currency-rupee.svg +3 -0
- data/app/assets/icons/heroicons/outline/currency-yen.svg +3 -0
- data/app/assets/icons/heroicons/outline/cursor-click.svg +3 -0
- data/app/assets/icons/heroicons/outline/database.svg +3 -0
- data/app/assets/icons/heroicons/outline/desktop-computer.svg +3 -0
- data/app/assets/icons/heroicons/outline/device-mobile.svg +3 -0
- data/app/assets/icons/heroicons/outline/device-tablet.svg +3 -0
- data/app/assets/icons/heroicons/outline/document-add.svg +3 -0
- data/app/assets/icons/heroicons/outline/document-download.svg +3 -0
- data/app/assets/icons/heroicons/outline/document-duplicate.svg +3 -0
- data/app/assets/icons/heroicons/outline/document-remove.svg +3 -0
- data/app/assets/icons/heroicons/outline/document-report.svg +3 -0
- data/app/assets/icons/heroicons/outline/document-search.svg +3 -0
- data/app/assets/icons/heroicons/outline/document-text.svg +3 -0
- data/app/assets/icons/heroicons/outline/document.svg +3 -0
- data/app/assets/icons/heroicons/outline/dots-circle-horizontal.svg +3 -0
- data/app/assets/icons/heroicons/outline/dots-horizontal.svg +3 -0
- data/app/assets/icons/heroicons/outline/dots-vertical.svg +3 -0
- data/app/assets/icons/heroicons/outline/download.svg +3 -0
- data/app/assets/icons/heroicons/outline/duplicate.svg +3 -0
- data/app/assets/icons/heroicons/outline/emoji-happy.svg +3 -0
- data/app/assets/icons/heroicons/outline/emoji-sad.svg +3 -0
- data/app/assets/icons/heroicons/outline/exclamation-circle.svg +3 -0
- data/app/assets/icons/heroicons/outline/exclamation.svg +3 -0
- data/app/assets/icons/heroicons/outline/external-link.svg +3 -0
- data/app/assets/icons/heroicons/outline/eye-off.svg +3 -0
- data/app/assets/icons/heroicons/outline/eye.svg +4 -0
- data/app/assets/icons/heroicons/outline/fast-forward.svg +3 -0
- data/app/assets/icons/heroicons/outline/film.svg +3 -0
- data/app/assets/icons/heroicons/outline/filter.svg +3 -0
- data/app/assets/icons/heroicons/outline/finger-print.svg +3 -0
- data/app/assets/icons/heroicons/outline/fire.svg +4 -0
- data/app/assets/icons/heroicons/outline/flag.svg +3 -0
- data/app/assets/icons/heroicons/outline/folder-add.svg +3 -0
- data/app/assets/icons/heroicons/outline/folder-download.svg +3 -0
- data/app/assets/icons/heroicons/outline/folder-open.svg +3 -0
- data/app/assets/icons/heroicons/outline/folder-remove.svg +3 -0
- data/app/assets/icons/heroicons/outline/folder.svg +3 -0
- data/app/assets/icons/heroicons/outline/gift.svg +3 -0
- data/app/assets/icons/heroicons/outline/globe-alt.svg +3 -0
- data/app/assets/icons/heroicons/outline/globe.svg +3 -0
- data/app/assets/icons/heroicons/outline/hand.svg +3 -0
- data/app/assets/icons/heroicons/outline/hashtag.svg +3 -0
- data/app/assets/icons/heroicons/outline/heart.svg +3 -0
- data/app/assets/icons/heroicons/outline/home.svg +3 -0
- data/app/assets/icons/heroicons/outline/identification.svg +3 -0
- data/app/assets/icons/heroicons/outline/inbox-in.svg +3 -0
- data/app/assets/icons/heroicons/outline/inbox.svg +3 -0
- data/app/assets/icons/heroicons/outline/information-circle.svg +3 -0
- data/app/assets/icons/heroicons/outline/key.svg +3 -0
- data/app/assets/icons/heroicons/outline/library.svg +3 -0
- data/app/assets/icons/heroicons/outline/light-bulb.svg +3 -0
- data/app/assets/icons/heroicons/outline/lightning-bolt.svg +3 -0
- data/app/assets/icons/heroicons/outline/link.svg +3 -0
- data/app/assets/icons/heroicons/outline/location-marker.svg +4 -0
- data/app/assets/icons/heroicons/outline/lock-closed.svg +3 -0
- data/app/assets/icons/heroicons/outline/lock-open.svg +3 -0
- data/app/assets/icons/heroicons/outline/login.svg +3 -0
- data/app/assets/icons/heroicons/outline/logout.svg +3 -0
- data/app/assets/icons/heroicons/outline/mail-open.svg +3 -0
- data/app/assets/icons/heroicons/outline/mail.svg +3 -0
- data/app/assets/icons/heroicons/outline/map.svg +3 -0
- data/app/assets/icons/heroicons/outline/menu-alt-1.svg +3 -0
- data/app/assets/icons/heroicons/outline/menu-alt-2.svg +3 -0
- data/app/assets/icons/heroicons/outline/menu-alt-3.svg +3 -0
- data/app/assets/icons/heroicons/outline/menu-alt-4.svg +3 -0
- data/app/assets/icons/heroicons/outline/menu.svg +3 -0
- data/app/assets/icons/heroicons/outline/microphone.svg +3 -0
- data/app/assets/icons/heroicons/outline/minus-circle.svg +3 -0
- data/app/assets/icons/heroicons/outline/minus-sm.svg +3 -0
- data/app/assets/icons/heroicons/outline/minus.svg +3 -0
- data/app/assets/icons/heroicons/outline/moon.svg +3 -0
- data/app/assets/icons/heroicons/outline/music-note.svg +3 -0
- data/app/assets/icons/heroicons/outline/newspaper.svg +3 -0
- data/app/assets/icons/heroicons/outline/office-building.svg +3 -0
- data/app/assets/icons/heroicons/outline/paper-airplane.svg +3 -0
- data/app/assets/icons/heroicons/outline/paper-clip.svg +3 -0
- data/app/assets/icons/heroicons/outline/pause.svg +3 -0
- data/app/assets/icons/heroicons/outline/pencil-alt.svg +3 -0
- data/app/assets/icons/heroicons/outline/pencil.svg +3 -0
- data/app/assets/icons/heroicons/outline/phone-incoming.svg +3 -0
- data/app/assets/icons/heroicons/outline/phone-missed-call.svg +3 -0
- data/app/assets/icons/heroicons/outline/phone-outgoing.svg +3 -0
- data/app/assets/icons/heroicons/outline/phone.svg +3 -0
- data/app/assets/icons/heroicons/outline/photograph.svg +3 -0
- data/app/assets/icons/heroicons/outline/play.svg +4 -0
- data/app/assets/icons/heroicons/outline/plus-circle.svg +3 -0
- data/app/assets/icons/heroicons/outline/plus-sm.svg +3 -0
- data/app/assets/icons/heroicons/outline/plus.svg +3 -0
- data/app/assets/icons/heroicons/outline/presentation-chart-bar.svg +3 -0
- data/app/assets/icons/heroicons/outline/presentation-chart-line.svg +3 -0
- data/app/assets/icons/heroicons/outline/printer.svg +3 -0
- data/app/assets/icons/heroicons/outline/puzzle.svg +3 -0
- data/app/assets/icons/heroicons/outline/qrcode.svg +3 -0
- data/app/assets/icons/heroicons/outline/question-mark-circle.svg +3 -0
- data/app/assets/icons/heroicons/outline/receipt-refund.svg +3 -0
- data/app/assets/icons/heroicons/outline/receipt-tax.svg +3 -0
- data/app/assets/icons/heroicons/outline/refresh.svg +3 -0
- data/app/assets/icons/heroicons/outline/reply.svg +3 -0
- data/app/assets/icons/heroicons/outline/rewind.svg +3 -0
- data/app/assets/icons/heroicons/outline/rss.svg +3 -0
- data/app/assets/icons/heroicons/outline/save-as.svg +3 -0
- data/app/assets/icons/heroicons/outline/save.svg +3 -0
- data/app/assets/icons/heroicons/outline/scale.svg +3 -0
- data/app/assets/icons/heroicons/outline/scissors.svg +3 -0
- data/app/assets/icons/heroicons/outline/search-circle.svg +3 -0
- data/app/assets/icons/heroicons/outline/search.svg +3 -0
- data/app/assets/icons/heroicons/outline/selector.svg +3 -0
- data/app/assets/icons/heroicons/outline/server.svg +3 -0
- data/app/assets/icons/heroicons/outline/share.svg +3 -0
- data/app/assets/icons/heroicons/outline/shield-check.svg +3 -0
- data/app/assets/icons/heroicons/outline/shield-exclamation.svg +3 -0
- data/app/assets/icons/heroicons/outline/shopping-bag.svg +3 -0
- data/app/assets/icons/heroicons/outline/shopping-cart.svg +3 -0
- data/app/assets/icons/heroicons/outline/sort-ascending.svg +3 -0
- data/app/assets/icons/heroicons/outline/sort-descending.svg +3 -0
- data/app/assets/icons/heroicons/outline/sparkles.svg +3 -0
- data/app/assets/icons/heroicons/outline/speakerphone.svg +3 -0
- data/app/assets/icons/heroicons/outline/star.svg +3 -0
- data/app/assets/icons/heroicons/outline/status-offline.svg +3 -0
- data/app/assets/icons/heroicons/outline/status-online.svg +3 -0
- data/app/assets/icons/heroicons/outline/stop.svg +4 -0
- data/app/assets/icons/heroicons/outline/sun.svg +3 -0
- data/app/assets/icons/heroicons/outline/support.svg +3 -0
- data/app/assets/icons/heroicons/outline/switch-horizontal.svg +3 -0
- data/app/assets/icons/heroicons/outline/switch-vertical.svg +3 -0
- data/app/assets/icons/heroicons/outline/table.svg +3 -0
- data/app/assets/icons/heroicons/outline/tag.svg +3 -0
- data/app/assets/icons/heroicons/outline/template.svg +3 -0
- data/app/assets/icons/heroicons/outline/terminal.svg +3 -0
- data/app/assets/icons/heroicons/outline/thumb-down.svg +3 -0
- data/app/assets/icons/heroicons/outline/thumb-up.svg +3 -0
- data/app/assets/icons/heroicons/outline/ticket.svg +3 -0
- data/app/assets/icons/heroicons/outline/translate.svg +3 -0
- data/app/assets/icons/heroicons/outline/trash.svg +3 -0
- data/app/assets/icons/heroicons/outline/trending-down.svg +3 -0
- data/app/assets/icons/heroicons/outline/trending-up.svg +3 -0
- data/app/assets/icons/heroicons/outline/truck.svg +4 -0
- data/app/assets/icons/heroicons/outline/upload.svg +3 -0
- data/app/assets/icons/heroicons/outline/user-add.svg +3 -0
- data/app/assets/icons/heroicons/outline/user-circle.svg +3 -0
- data/app/assets/icons/heroicons/outline/user-group.svg +3 -0
- data/app/assets/icons/heroicons/outline/user-remove.svg +3 -0
- data/app/assets/icons/heroicons/outline/user.svg +3 -0
- data/app/assets/icons/heroicons/outline/users.svg +3 -0
- data/app/assets/icons/heroicons/outline/variable.svg +3 -0
- data/app/assets/icons/heroicons/outline/video-camera.svg +3 -0
- data/app/assets/icons/heroicons/outline/view-boards.svg +3 -0
- data/app/assets/icons/heroicons/outline/view-grid-add.svg +3 -0
- data/app/assets/icons/heroicons/outline/view-grid.svg +3 -0
- data/app/assets/icons/heroicons/outline/view-list.svg +3 -0
- data/app/assets/icons/heroicons/outline/volume-off.svg +4 -0
- data/app/assets/icons/heroicons/outline/volume-up.svg +3 -0
- data/app/assets/icons/heroicons/outline/wifi.svg +3 -0
- data/app/assets/icons/heroicons/outline/x-circle.svg +3 -0
- data/app/assets/icons/heroicons/outline/x.svg +3 -0
- data/app/assets/icons/heroicons/outline/zoom-in.svg +3 -0
- data/app/assets/icons/heroicons/outline/zoom-out.svg +3 -0
- data/app/assets/icons/heroicons/solid/academic-cap.svg +3 -0
- data/app/assets/icons/heroicons/solid/adjustments.svg +3 -0
- data/app/assets/icons/heroicons/solid/annotation.svg +3 -0
- data/app/assets/icons/heroicons/solid/archive.svg +4 -0
- data/app/assets/icons/heroicons/solid/arrow-circle-down.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-circle-left.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-circle-right.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-circle-up.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-down.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-left.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-narrow-down.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-narrow-left.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-narrow-right.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-narrow-up.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-right.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrow-up.svg +3 -0
- data/app/assets/icons/heroicons/solid/arrows-expand.svg +3 -0
- data/app/assets/icons/heroicons/solid/at-symbol.svg +3 -0
- data/app/assets/icons/heroicons/solid/backspace.svg +3 -0
- data/app/assets/icons/heroicons/solid/badge-check.svg +3 -0
- data/app/assets/icons/heroicons/solid/ban.svg +3 -0
- data/app/assets/icons/heroicons/solid/beaker.svg +3 -0
- data/app/assets/icons/heroicons/solid/bell.svg +3 -0
- data/app/assets/icons/heroicons/solid/book-open.svg +3 -0
- data/app/assets/icons/heroicons/solid/bookmark-alt.svg +3 -0
- data/app/assets/icons/heroicons/solid/bookmark.svg +3 -0
- data/app/assets/icons/heroicons/solid/briefcase.svg +4 -0
- data/app/assets/icons/heroicons/solid/cake.svg +3 -0
- data/app/assets/icons/heroicons/solid/calculator.svg +3 -0
- data/app/assets/icons/heroicons/solid/calendar.svg +3 -0
- data/app/assets/icons/heroicons/solid/camera.svg +3 -0
- data/app/assets/icons/heroicons/solid/cash.svg +3 -0
- data/app/assets/icons/heroicons/solid/chart-bar.svg +3 -0
- data/app/assets/icons/heroicons/solid/chart-pie.svg +4 -0
- data/app/assets/icons/heroicons/solid/chart-square-bar.svg +3 -0
- data/app/assets/icons/heroicons/solid/chat-alt-2.svg +4 -0
- data/app/assets/icons/heroicons/solid/chat-alt.svg +3 -0
- data/app/assets/icons/heroicons/solid/chat.svg +3 -0
- data/app/assets/icons/heroicons/solid/check-circle.svg +3 -0
- data/app/assets/icons/heroicons/solid/check.svg +3 -0
- data/app/assets/icons/heroicons/solid/chevron-double-down.svg +3 -0
- data/app/assets/icons/heroicons/solid/chevron-double-left.svg +3 -0
- data/app/assets/icons/heroicons/solid/chevron-double-right.svg +4 -0
- data/app/assets/icons/heroicons/solid/chevron-double-up.svg +3 -0
- data/app/assets/icons/heroicons/solid/chevron-down.svg +3 -0
- data/app/assets/icons/heroicons/solid/chevron-left.svg +3 -0
- data/app/assets/icons/heroicons/solid/chevron-right.svg +3 -0
- data/app/assets/icons/heroicons/solid/chevron-up.svg +3 -0
- data/app/assets/icons/heroicons/solid/chip.svg +4 -0
- data/app/assets/icons/heroicons/solid/clipboard-check.svg +4 -0
- data/app/assets/icons/heroicons/solid/clipboard-copy.svg +4 -0
- data/app/assets/icons/heroicons/solid/clipboard-list.svg +4 -0
- data/app/assets/icons/heroicons/solid/clipboard.svg +4 -0
- data/app/assets/icons/heroicons/solid/clock.svg +3 -0
- data/app/assets/icons/heroicons/solid/cloud-download.svg +3 -0
- data/app/assets/icons/heroicons/solid/cloud-upload.svg +4 -0
- data/app/assets/icons/heroicons/solid/cloud.svg +3 -0
- data/app/assets/icons/heroicons/solid/code.svg +3 -0
- data/app/assets/icons/heroicons/solid/cog.svg +3 -0
- data/app/assets/icons/heroicons/solid/collection.svg +3 -0
- data/app/assets/icons/heroicons/solid/color-swatch.svg +3 -0
- data/app/assets/icons/heroicons/solid/credit-card.svg +4 -0
- data/app/assets/icons/heroicons/solid/cube-transparent.svg +3 -0
- data/app/assets/icons/heroicons/solid/cube.svg +3 -0
- data/app/assets/icons/heroicons/solid/currency-bangladeshi.svg +3 -0
- data/app/assets/icons/heroicons/solid/currency-dollar.svg +4 -0
- data/app/assets/icons/heroicons/solid/currency-euro.svg +3 -0
- data/app/assets/icons/heroicons/solid/currency-pound.svg +3 -0
- data/app/assets/icons/heroicons/solid/currency-rupee.svg +3 -0
- data/app/assets/icons/heroicons/solid/currency-yen.svg +3 -0
- data/app/assets/icons/heroicons/solid/cursor-click.svg +3 -0
- data/app/assets/icons/heroicons/solid/database.svg +5 -0
- data/app/assets/icons/heroicons/solid/desktop-computer.svg +3 -0
- data/app/assets/icons/heroicons/solid/device-mobile.svg +3 -0
- data/app/assets/icons/heroicons/solid/device-tablet.svg +3 -0
- data/app/assets/icons/heroicons/solid/document-add.svg +3 -0
- data/app/assets/icons/heroicons/solid/document-download.svg +3 -0
- data/app/assets/icons/heroicons/solid/document-duplicate.svg +4 -0
- data/app/assets/icons/heroicons/solid/document-remove.svg +3 -0
- data/app/assets/icons/heroicons/solid/document-report.svg +3 -0
- data/app/assets/icons/heroicons/solid/document-search.svg +4 -0
- data/app/assets/icons/heroicons/solid/document-text.svg +3 -0
- data/app/assets/icons/heroicons/solid/document.svg +3 -0
- data/app/assets/icons/heroicons/solid/dots-circle-horizontal.svg +3 -0
- data/app/assets/icons/heroicons/solid/dots-horizontal.svg +3 -0
- data/app/assets/icons/heroicons/solid/dots-vertical.svg +3 -0
- data/app/assets/icons/heroicons/solid/download.svg +3 -0
- data/app/assets/icons/heroicons/solid/duplicate.svg +4 -0
- data/app/assets/icons/heroicons/solid/emoji-happy.svg +3 -0
- data/app/assets/icons/heroicons/solid/emoji-sad.svg +3 -0
- data/app/assets/icons/heroicons/solid/exclamation-circle.svg +3 -0
- data/app/assets/icons/heroicons/solid/exclamation.svg +3 -0
- data/app/assets/icons/heroicons/solid/external-link.svg +4 -0
- data/app/assets/icons/heroicons/solid/eye-off.svg +4 -0
- data/app/assets/icons/heroicons/solid/eye.svg +4 -0
- data/app/assets/icons/heroicons/solid/fast-forward.svg +3 -0
- data/app/assets/icons/heroicons/solid/film.svg +3 -0
- data/app/assets/icons/heroicons/solid/filter.svg +3 -0
- data/app/assets/icons/heroicons/solid/finger-print.svg +5 -0
- data/app/assets/icons/heroicons/solid/fire.svg +3 -0
- data/app/assets/icons/heroicons/solid/flag.svg +3 -0
- data/app/assets/icons/heroicons/solid/folder-add.svg +4 -0
- data/app/assets/icons/heroicons/solid/folder-download.svg +4 -0
- data/app/assets/icons/heroicons/solid/folder-open.svg +4 -0
- data/app/assets/icons/heroicons/solid/folder-remove.svg +4 -0
- data/app/assets/icons/heroicons/solid/folder.svg +3 -0
- data/app/assets/icons/heroicons/solid/gift.svg +4 -0
- data/app/assets/icons/heroicons/solid/globe-alt.svg +3 -0
- data/app/assets/icons/heroicons/solid/globe.svg +3 -0
- data/app/assets/icons/heroicons/solid/hand.svg +3 -0
- data/app/assets/icons/heroicons/solid/hashtag.svg +3 -0
- data/app/assets/icons/heroicons/solid/heart.svg +3 -0
- data/app/assets/icons/heroicons/solid/home.svg +3 -0
- data/app/assets/icons/heroicons/solid/identification.svg +3 -0
- data/app/assets/icons/heroicons/solid/inbox-in.svg +4 -0
- data/app/assets/icons/heroicons/solid/inbox.svg +3 -0
- data/app/assets/icons/heroicons/solid/information-circle.svg +3 -0
- data/app/assets/icons/heroicons/solid/key.svg +3 -0
- data/app/assets/icons/heroicons/solid/library.svg +3 -0
- data/app/assets/icons/heroicons/solid/light-bulb.svg +3 -0
- data/app/assets/icons/heroicons/solid/lightning-bolt.svg +3 -0
- data/app/assets/icons/heroicons/solid/link.svg +3 -0
- data/app/assets/icons/heroicons/solid/location-marker.svg +3 -0
- data/app/assets/icons/heroicons/solid/lock-closed.svg +3 -0
- data/app/assets/icons/heroicons/solid/lock-open.svg +3 -0
- data/app/assets/icons/heroicons/solid/login.svg +3 -0
- data/app/assets/icons/heroicons/solid/logout.svg +3 -0
- data/app/assets/icons/heroicons/solid/mail-open.svg +3 -0
- data/app/assets/icons/heroicons/solid/mail.svg +4 -0
- data/app/assets/icons/heroicons/solid/map.svg +3 -0
- data/app/assets/icons/heroicons/solid/menu-alt-1.svg +3 -0
- data/app/assets/icons/heroicons/solid/menu-alt-2.svg +3 -0
- data/app/assets/icons/heroicons/solid/menu-alt-3.svg +3 -0
- data/app/assets/icons/heroicons/solid/menu-alt-4.svg +3 -0
- data/app/assets/icons/heroicons/solid/menu.svg +3 -0
- data/app/assets/icons/heroicons/solid/microphone.svg +3 -0
- data/app/assets/icons/heroicons/solid/minus-circle.svg +3 -0
- data/app/assets/icons/heroicons/solid/minus-sm.svg +3 -0
- data/app/assets/icons/heroicons/solid/minus.svg +3 -0
- data/app/assets/icons/heroicons/solid/moon.svg +3 -0
- data/app/assets/icons/heroicons/solid/music-note.svg +3 -0
- data/app/assets/icons/heroicons/solid/newspaper.svg +4 -0
- data/app/assets/icons/heroicons/solid/office-building.svg +3 -0
- data/app/assets/icons/heroicons/solid/paper-airplane.svg +3 -0
- data/app/assets/icons/heroicons/solid/paper-clip.svg +3 -0
- data/app/assets/icons/heroicons/solid/pause.svg +3 -0
- data/app/assets/icons/heroicons/solid/pencil-alt.svg +4 -0
- data/app/assets/icons/heroicons/solid/pencil.svg +3 -0
- data/app/assets/icons/heroicons/solid/phone-incoming.svg +4 -0
- data/app/assets/icons/heroicons/solid/phone-missed-call.svg +4 -0
- data/app/assets/icons/heroicons/solid/phone-outgoing.svg +4 -0
- data/app/assets/icons/heroicons/solid/phone.svg +3 -0
- data/app/assets/icons/heroicons/solid/photograph.svg +3 -0
- data/app/assets/icons/heroicons/solid/play.svg +3 -0
- data/app/assets/icons/heroicons/solid/plus-circle.svg +3 -0
- data/app/assets/icons/heroicons/solid/plus-sm.svg +3 -0
- data/app/assets/icons/heroicons/solid/plus.svg +3 -0
- data/app/assets/icons/heroicons/solid/presentation-chart-bar.svg +3 -0
- data/app/assets/icons/heroicons/solid/presentation-chart-line.svg +3 -0
- data/app/assets/icons/heroicons/solid/printer.svg +3 -0
- data/app/assets/icons/heroicons/solid/puzzle.svg +3 -0
- data/app/assets/icons/heroicons/solid/qrcode.svg +4 -0
- data/app/assets/icons/heroicons/solid/question-mark-circle.svg +3 -0
- data/app/assets/icons/heroicons/solid/receipt-refund.svg +3 -0
- data/app/assets/icons/heroicons/solid/receipt-tax.svg +3 -0
- data/app/assets/icons/heroicons/solid/refresh.svg +3 -0
- data/app/assets/icons/heroicons/solid/reply.svg +3 -0
- data/app/assets/icons/heroicons/solid/rewind.svg +3 -0
- data/app/assets/icons/heroicons/solid/rss.svg +4 -0
- data/app/assets/icons/heroicons/solid/save-as.svg +4 -0
- data/app/assets/icons/heroicons/solid/save.svg +3 -0
- data/app/assets/icons/heroicons/solid/scale.svg +3 -0
- data/app/assets/icons/heroicons/solid/scissors.svg +4 -0
- data/app/assets/icons/heroicons/solid/search-circle.svg +4 -0
- data/app/assets/icons/heroicons/solid/search.svg +3 -0
- data/app/assets/icons/heroicons/solid/selector.svg +3 -0
- data/app/assets/icons/heroicons/solid/server.svg +3 -0
- data/app/assets/icons/heroicons/solid/share.svg +3 -0
- data/app/assets/icons/heroicons/solid/shield-check.svg +3 -0
- data/app/assets/icons/heroicons/solid/shield-exclamation.svg +3 -0
- data/app/assets/icons/heroicons/solid/shopping-bag.svg +3 -0
- data/app/assets/icons/heroicons/solid/shopping-cart.svg +3 -0
- data/app/assets/icons/heroicons/solid/sort-ascending.svg +3 -0
- data/app/assets/icons/heroicons/solid/sort-descending.svg +3 -0
- data/app/assets/icons/heroicons/solid/sparkles.svg +3 -0
- data/app/assets/icons/heroicons/solid/speakerphone.svg +3 -0
- data/app/assets/icons/heroicons/solid/star.svg +3 -0
- data/app/assets/icons/heroicons/solid/status-offline.svg +3 -0
- data/app/assets/icons/heroicons/solid/status-online.svg +3 -0
- data/app/assets/icons/heroicons/solid/stop.svg +3 -0
- data/app/assets/icons/heroicons/solid/sun.svg +3 -0
- data/app/assets/icons/heroicons/solid/support.svg +3 -0
- data/app/assets/icons/heroicons/solid/switch-horizontal.svg +3 -0
- data/app/assets/icons/heroicons/solid/switch-vertical.svg +3 -0
- data/app/assets/icons/heroicons/solid/table.svg +3 -0
- data/app/assets/icons/heroicons/solid/tag.svg +3 -0
- data/app/assets/icons/heroicons/solid/template.svg +3 -0
- data/app/assets/icons/heroicons/solid/terminal.svg +3 -0
- data/app/assets/icons/heroicons/solid/thumb-down.svg +3 -0
- data/app/assets/icons/heroicons/solid/thumb-up.svg +3 -0
- data/app/assets/icons/heroicons/solid/ticket.svg +3 -0
- data/app/assets/icons/heroicons/solid/translate.svg +3 -0
- data/app/assets/icons/heroicons/solid/trash.svg +3 -0
- data/app/assets/icons/heroicons/solid/trending-down.svg +3 -0
- data/app/assets/icons/heroicons/solid/trending-up.svg +3 -0
- data/app/assets/icons/heroicons/solid/truck.svg +4 -0
- data/app/assets/icons/heroicons/solid/upload.svg +3 -0
- data/app/assets/icons/heroicons/solid/user-add.svg +3 -0
- data/app/assets/icons/heroicons/solid/user-circle.svg +3 -0
- data/app/assets/icons/heroicons/solid/user-group.svg +3 -0
- data/app/assets/icons/heroicons/solid/user-remove.svg +3 -0
- data/app/assets/icons/heroicons/solid/user.svg +3 -0
- data/app/assets/icons/heroicons/solid/users.svg +3 -0
- data/app/assets/icons/heroicons/solid/variable.svg +3 -0
- data/app/assets/icons/heroicons/solid/video-camera.svg +3 -0
- data/app/assets/icons/heroicons/solid/view-boards.svg +3 -0
- data/app/assets/icons/heroicons/solid/view-grid-add.svg +3 -0
- data/app/assets/icons/heroicons/solid/view-grid.svg +3 -0
- data/app/assets/icons/heroicons/solid/view-list.svg +3 -0
- data/app/assets/icons/heroicons/solid/volume-off.svg +3 -0
- data/app/assets/icons/heroicons/solid/volume-up.svg +3 -0
- data/app/assets/icons/heroicons/solid/wifi.svg +3 -0
- data/app/assets/icons/heroicons/solid/x-circle.svg +3 -0
- data/app/assets/icons/heroicons/solid/x.svg +3 -0
- data/app/assets/icons/heroicons/solid/zoom-in.svg +4 -0
- data/app/assets/icons/heroicons/solid/zoom-out.svg +4 -0
- data/app/assets/images/spina/favicon.png +0 -0
- data/app/assets/images/spina/spina.png +0 -0
- data/app/assets/images/spina/spina.svg +9 -1
- data/app/assets/javascripts/spina/controllers/autofocus_controller.js +9 -0
- data/app/assets/javascripts/spina/controllers/button_controller.js +37 -0
- data/app/assets/javascripts/spina/controllers/confetti_controller.js +43 -0
- data/app/assets/javascripts/spina/controllers/confirm_controller.js +62 -0
- data/app/assets/javascripts/spina/controllers/delegate_click_controller.js +13 -0
- data/app/assets/javascripts/spina/controllers/exists_controller.js +11 -0
- data/app/assets/javascripts/spina/controllers/form_controller.js +10 -0
- data/app/assets/javascripts/spina/controllers/hotkeys_controller.js +21 -0
- data/app/assets/javascripts/spina/controllers/image_collection_controller.js +37 -0
- data/app/assets/javascripts/spina/controllers/image_fade_in_controller.js +20 -0
- data/app/assets/javascripts/spina/controllers/infinite_scroll_controller.js +33 -0
- data/app/assets/javascripts/spina/controllers/loading_button_controller.js +40 -0
- data/app/assets/javascripts/spina/controllers/media_picker_controller.js +46 -0
- data/app/assets/javascripts/spina/controllers/media_picker_modal_controller.js +34 -0
- data/app/assets/javascripts/spina/controllers/modal_controller.js +22 -0
- data/app/assets/javascripts/spina/controllers/navigation_controller.js +77 -0
- data/app/assets/javascripts/spina/controllers/parent_pages_controller.js +16 -0
- data/app/assets/javascripts/spina/controllers/repeater_controller.js +71 -0
- data/app/assets/javascripts/spina/controllers/reveal_controller.js +1 -0
- data/app/assets/javascripts/spina/controllers/select_placeholder_controller.js +27 -0
- data/app/assets/javascripts/spina/controllers/selectable_controller.js +44 -0
- data/app/assets/javascripts/spina/controllers/shortcuts_controller.js +15 -0
- data/app/assets/javascripts/spina/controllers/sortable_controller.js +39 -0
- data/app/assets/javascripts/spina/controllers/switch_controller.js +27 -0
- data/app/assets/javascripts/spina/controllers/tabs_controller.js +70 -0
- data/app/assets/javascripts/spina/controllers/toggle_controller.js +12 -0
- data/app/assets/javascripts/spina/controllers/trix_controller.js +87 -0
- data/app/assets/javascripts/spina/controllers/unique_id_controller.js +31 -0
- data/app/assets/javascripts/spina/importmap.json.erb +5 -0
- data/app/assets/javascripts/spina/libraries/canvas-confetti.js +1 -0
- data/app/assets/javascripts/spina/libraries/canvas-confetti@1.3.2.js +592 -0
- data/app/assets/javascripts/spina/libraries/form-request-submit-polyfill.js +1 -0
- data/app/assets/javascripts/spina/libraries/form-request-submit-polyfill@2.0.0.js +27 -0
- data/app/assets/javascripts/spina/libraries/hotkeys.js +1 -0
- data/app/assets/javascripts/spina/libraries/hotkeys@3.8.7.js +596 -0
- data/app/assets/javascripts/spina/libraries/sortablejs.js +1 -0
- data/app/assets/javascripts/spina/libraries/sortablejs@1.13.0.js +3711 -0
- data/app/assets/javascripts/spina/libraries/stimulus-reveal@1.2.4.js +388 -0
- data/app/assets/javascripts/spina/libraries/trix.js +9 -0
- data/app/assets/javascripts/spina/libraries/trix@1.3.1.js +21 -0
- data/app/assets/stylesheets/spina/_animate.css +4072 -0
- data/app/assets/stylesheets/spina/_fonts.scss +114 -0
- data/app/assets/stylesheets/spina/_tailwind.css +199133 -0
- data/app/assets/stylesheets/spina/application.sass +3 -4
- data/app/assets/stylesheets/spina/tailwind/custom.css +193 -0
- data/app/components/spina/application_component.rb +4 -0
- data/app/components/spina/forms/group_component.html.erb +14 -0
- data/app/components/spina/forms/group_component.rb +13 -0
- data/app/components/spina/forms/label_component.rb +17 -0
- data/app/components/spina/forms/password_field_component.html.erb +14 -0
- data/app/components/spina/forms/password_field_component.rb +6 -0
- data/app/components/spina/forms/switch_component.html.erb +7 -0
- data/app/components/spina/forms/switch_component.rb +13 -0
- data/app/components/spina/forms/text_field_component.html.erb +14 -0
- data/app/components/spina/forms/text_field_component.rb +50 -0
- data/app/components/spina/forms/trix_toolbar_component.html.erb +90 -0
- data/app/components/spina/forms/trix_toolbar_component.rb +11 -0
- data/app/components/spina/hooks/hook_component.rb +21 -0
- data/app/components/spina/hooks/partial_component.rb +21 -0
- data/app/components/spina/main_navigation/link_component.html.erb +5 -0
- data/app/components/spina/main_navigation/link_component.rb +21 -0
- data/app/components/spina/main_navigation/sub_nav_component.html.erb +18 -0
- data/app/components/spina/main_navigation/sub_nav_component.rb +33 -0
- data/app/components/spina/media_picker/image_component.html.erb +18 -0
- data/app/components/spina/media_picker/image_component.rb +11 -0
- data/app/components/spina/media_picker/modal_component.html.erb +74 -0
- data/app/components/spina/media_picker/modal_component.rb +29 -0
- data/app/components/spina/pages/actions_component.html.erb +65 -0
- data/app/components/spina/pages/actions_component.rb +12 -0
- data/app/components/spina/pages/list_component.html.erb +8 -0
- data/app/components/spina/pages/list_component.rb +13 -0
- data/app/components/spina/pages/location_component.html.erb +10 -0
- data/app/components/spina/pages/location_component.rb +29 -0
- data/app/components/spina/pages/page_component.html.erb +25 -0
- data/app/components/spina/pages/page_component.rb +43 -0
- data/app/components/spina/pages/page_select_component.html.erb +1 -0
- data/app/components/spina/pages/page_select_component.rb +21 -0
- data/app/components/spina/pages/tab_button_component.html.erb +3 -0
- data/app/components/spina/pages/tab_button_component.rb +11 -0
- data/app/components/spina/pages/translations_component.html.erb +41 -0
- data/app/components/spina/pages/translations_component.rb +32 -0
- data/app/components/spina/user_interface/dropdown_button_component.rb +23 -0
- data/app/components/spina/user_interface/dropdown_component.html.erb +5 -0
- data/app/components/spina/user_interface/dropdown_component.rb +28 -0
- data/app/components/spina/user_interface/flash_message_component.html.erb +3 -0
- data/app/components/spina/user_interface/flash_message_component.rb +25 -0
- data/app/components/spina/user_interface/header_component.html.erb +24 -0
- data/app/components/spina/user_interface/header_component.rb +9 -0
- data/app/components/spina/user_interface/modal_component.html.erb +11 -0
- data/app/components/spina/user_interface/modal_component.rb +11 -0
- data/app/components/spina/user_interface/tab_link_component.html.erb +3 -0
- data/app/components/spina/user_interface/tab_link_component.rb +22 -0
- data/app/controllers/concerns/spina/current_methods.rb +11 -3
- data/app/controllers/spina/admin/accounts_controller.rb +13 -21
- data/app/controllers/spina/admin/admin_controller.rb +23 -12
- data/app/controllers/spina/admin/attachments_controller.rb +27 -6
- data/app/controllers/spina/admin/images_controller.rb +49 -13
- data/app/controllers/spina/admin/layout_controller.rb +41 -0
- data/app/controllers/spina/admin/media_folders_controller.rb +10 -13
- data/app/controllers/spina/admin/media_picker_controller.rb +6 -30
- data/app/controllers/spina/admin/move_pages_controller.rb +24 -0
- data/app/controllers/spina/admin/navigation_items_controller.rb +36 -0
- data/app/controllers/spina/admin/navigations_controller.rb +19 -16
- data/app/controllers/spina/admin/pages_controller.rb +68 -65
- data/app/controllers/spina/admin/parent_pages_controller.rb +10 -0
- data/app/controllers/spina/admin/password_resets_controller.rb +3 -3
- data/app/controllers/spina/admin/resources_controller.rb +4 -7
- data/app/controllers/spina/admin/sessions_controller.rb +4 -7
- data/app/controllers/spina/admin/settings_controller.rb +30 -29
- data/app/controllers/spina/admin/theme_controller.rb +23 -0
- data/app/controllers/spina/admin/users_controller.rb +22 -13
- data/app/controllers/spina/pages_controller.rb +1 -1
- data/app/helpers/spina/admin/icons_helper.rb +26 -0
- data/app/helpers/spina/admin/images_helper.rb +18 -0
- data/app/helpers/spina/admin/pages_helper.rb +21 -48
- data/app/helpers/spina/images_helper.rb +30 -2
- data/app/helpers/spina/spina_helper.rb +16 -0
- data/app/jobs/spina/application_job.rb +4 -0
- data/app/jobs/spina/resource_pages_update_job.rb +11 -0
- data/app/models/concerns/spina/gravatar.rb +20 -0
- data/app/models/concerns/spina/translated_content.rb +8 -7
- data/app/models/spina/account.rb +2 -0
- data/app/models/spina/application_record.rb +6 -0
- data/app/models/spina/attachment.rb +1 -1
- data/app/models/spina/current.rb +2 -0
- data/app/models/spina/navigation.rb +1 -0
- data/app/models/spina/navigation_item.rb +1 -1
- data/app/models/spina/page.rb +9 -4
- data/app/models/spina/parts/base.rb +6 -0
- data/app/models/spina/parts/image.rb +2 -0
- data/app/models/spina/resource.rb +12 -2
- data/app/models/spina/user.rb +4 -16
- data/app/views/layouts/spina/admin/admin.html.erb +18 -0
- data/app/views/layouts/spina/admin/application.html.erb +31 -0
- data/app/views/layouts/spina/admin/sessions.html.erb +1 -0
- data/app/views/spina/admin/accounts/edit.html.erb +49 -0
- data/app/views/spina/admin/attachments/_attachment.html.erb +28 -0
- data/app/views/spina/admin/attachments/edit.html.erb +16 -0
- data/app/views/spina/admin/attachments/index.html.erb +46 -0
- data/app/views/spina/admin/attachments/show.html.erb +1 -0
- data/app/views/spina/admin/images/_image.html.erb +65 -0
- data/app/views/spina/admin/images/edit.html.erb +16 -0
- data/app/views/spina/admin/images/index.html.erb +73 -0
- data/app/views/spina/admin/images/show.html.erb +1 -0
- data/app/views/spina/admin/images/update.turbo_stream.erb +5 -0
- data/app/views/spina/admin/layout/edit.html.erb +34 -0
- data/app/views/spina/admin/media_folders/_form.html.erb +30 -0
- data/app/views/spina/admin/media_folders/_media_folder.html.erb +18 -0
- data/app/views/spina/admin/media_folders/edit.html.erb +3 -0
- data/app/views/spina/admin/media_folders/new.html.erb +3 -0
- data/app/views/spina/admin/media_picker/show.html.erb +1 -0
- data/app/views/spina/admin/move_pages/new.html.erb +32 -0
- data/app/views/spina/admin/navigation_items/_form.html.erb +29 -0
- data/app/views/spina/admin/navigation_items/_navigation_item.html.erb +36 -0
- data/app/views/spina/admin/navigation_items/new.html.erb +3 -0
- data/app/views/spina/admin/navigations/_navigation.html.erb +1 -0
- data/app/views/spina/admin/navigations/edit.html.erb +32 -0
- data/app/views/spina/admin/navigations/index.html.erb +7 -0
- data/app/views/spina/admin/pages/_button_advanced.html.erb +4 -0
- data/app/views/spina/admin/pages/_button_page_content.html.erb +4 -0
- data/app/views/spina/admin/pages/_button_search_engines.html.erb +5 -0
- data/app/views/spina/admin/pages/_form.html.erb +36 -0
- data/app/views/spina/admin/pages/_form_advanced.html.erb +55 -0
- data/app/views/spina/admin/pages/_form_page_content.html.erb +8 -0
- data/app/views/spina/admin/pages/_form_search_engines.html.erb +45 -0
- data/app/views/spina/admin/pages/_new_page_form.html.erb +35 -0
- data/app/views/spina/admin/pages/edit.html.erb +1 -0
- data/app/views/spina/admin/pages/edit_content.html.erb +11 -0
- data/app/views/spina/admin/pages/edit_template.html.erb +36 -0
- data/app/views/spina/admin/pages/index.html.erb +66 -0
- data/app/views/spina/admin/pages/new.html.erb +3 -0
- data/app/views/spina/admin/parent_pages/index.html.erb +3 -0
- data/app/views/spina/admin/parts/attachments/_form.html.erb +8 -0
- data/app/views/spina/admin/parts/image_collections/_fields.html.erb +16 -0
- data/app/views/spina/admin/parts/image_collections/_form.html.erb +30 -0
- data/app/views/spina/admin/parts/images/_form.html.erb +32 -0
- data/app/views/spina/admin/parts/lines/_form.html.erb +6 -0
- data/app/views/spina/admin/parts/multi_lines/_form.html.erb +4 -0
- data/app/views/spina/admin/parts/options/_form.html.erb +5 -0
- data/app/views/spina/admin/parts/repeaters/_fields.html.erb +18 -0
- data/app/views/spina/admin/parts/repeaters/_form.html.erb +37 -0
- data/app/views/spina/admin/parts/texts/_form.html.erb +12 -0
- data/app/views/spina/admin/password_resets/edit.html.erb +22 -0
- data/app/views/spina/admin/password_resets/new.html.erb +21 -0
- data/app/views/spina/admin/resources/edit.html.erb +55 -0
- data/app/views/spina/admin/sessions/new.html.erb +24 -0
- data/app/views/spina/admin/settings/_string_field.html.erb +4 -0
- data/app/views/spina/admin/settings/_text_field.html.erb +5 -0
- data/app/views/spina/admin/settings/_wysiwyg_field.html.erb +13 -0
- data/app/views/spina/admin/settings/edit.html.erb +24 -0
- data/app/views/spina/admin/shared/_flash.html.erb +5 -0
- data/app/views/spina/admin/shared/_navigation.html.erb +66 -0
- data/app/views/spina/admin/theme/edit.html.erb +21 -0
- data/app/views/spina/admin/users/_form.html.erb +52 -0
- data/app/views/spina/admin/users/_user.html.erb +36 -0
- data/app/views/spina/admin/users/edit.html.erb +1 -0
- data/app/views/spina/admin/users/index.html.erb +15 -0
- data/app/views/spina/admin/users/new.html.erb +1 -0
- data/app/views/spina/user_mailer/forgot_password.html.erb +1 -1
- data/app/views/spina/user_mailer/forgot_password.txt.erb +1 -1
- data/config/locales/TH.yml +97 -2
- data/config/locales/bg.yml +97 -2
- data/config/locales/de.yml +97 -2
- data/config/locales/en.yml +99 -2
- data/config/locales/es.yml +97 -2
- data/config/locales/fr.yml +97 -2
- data/config/locales/id.yml +97 -2
- data/config/locales/it.yml +106 -11
- data/config/locales/nl.yml +102 -5
- data/config/locales/pl.yml +97 -2
- data/config/locales/pt-BR.yml +97 -2
- data/config/locales/ro.yml +97 -2
- data/config/locales/ru.yml +97 -2
- data/config/locales/sv.yml +97 -2
- data/config/locales/tr.yml +97 -2
- data/config/locales/zh-CN.yml +97 -2
- data/config/routes.rb +21 -24
- data/lib/generators/spina/install_generator.rb +0 -1
- data/lib/generators/spina/templates/app/views/default/pages/homepage.html.erb +2 -0
- data/lib/generators/spina/templates/app/views/default/pages/show.html.erb +3 -0
- data/lib/generators/spina/templates/app/views/default/shared/_navigation.html.erb +2 -0
- data/lib/generators/spina/templates/app/views/demo/pages/demo.html.erb +25 -0
- data/lib/generators/spina/templates/app/views/demo/pages/homepage.html.erb +3 -0
- data/lib/generators/spina/templates/app/views/demo/pages/show.html.erb +3 -0
- data/lib/generators/spina/templates/app/views/demo/shared/_languages.html.erb +5 -0
- data/lib/generators/spina/templates/app/views/demo/shared/_navigation.html.erb +2 -0
- data/lib/generators/spina/templates/app/views/layouts/default/application.html.erb +12 -0
- data/lib/generators/spina/templates/app/views/layouts/demo/application.html.erb +13 -0
- data/lib/generators/spina/templates/config/initializers/mobility.rb +1 -0
- data/lib/generators/spina/templates/config/initializers/spina.rb +12 -3
- data/lib/generators/spina/templates/config/initializers/themes/default.rb +59 -37
- data/lib/generators/spina/templates/config/initializers/themes/demo.rb +63 -64
- data/lib/spina.rb +45 -4
- data/lib/spina/admin_sectionable.rb +23 -0
- data/lib/spina/attr_json_monkeypatch.rb +28 -0
- data/lib/spina/engine.rb +9 -6
- data/lib/spina/importmap_helper.rb +37 -0
- data/lib/spina/plugin.rb +7 -1
- data/lib/spina/railtie.rb +5 -1
- data/lib/spina/tailwind_purger.rb +147 -0
- data/lib/spina/theme.rb +14 -5
- data/lib/spina/version.rb +1 -1
- data/lib/tasks/spina_tasks.rake +36 -0
- metadata +661 -215
- data/app/assets/config/spina_manifest.js +0 -5
- data/app/assets/fonts/spina/ics_spina.eot +0 -0
- data/app/assets/fonts/spina/ics_spina.svg +0 -380
- data/app/assets/fonts/spina/ics_spina.ttf +0 -0
- data/app/assets/fonts/spina/ics_spina.woff +0 -0
- data/app/assets/fonts/spina/ics_spina.woff2 +0 -0
- data/app/assets/images/spina/arrow-left.svg +0 -1
- data/app/assets/images/spina/arrow-right.svg +0 -1
- data/app/assets/images/spina/datepicker.svg +0 -1
- data/app/assets/images/spina/divider.svg +0 -1
- data/app/assets/images/spina/media_folder_placeholder.svg +0 -1
- data/app/assets/javascripts/spina/admin/application.js +0 -48
- data/app/assets/javascripts/spina/admin/confirm_delete.coffee.erb +0 -24
- data/app/assets/javascripts/spina/admin/controllers/attachment_picker_controller.js +0 -15
- data/app/assets/javascripts/spina/admin/controllers/gallery_select_controller.js +0 -52
- data/app/assets/javascripts/spina/admin/controllers/image_form_controller.js +0 -22
- data/app/assets/javascripts/spina/admin/controllers/infinite_scroll_controller.js +0 -38
- data/app/assets/javascripts/spina/admin/controllers/media_picker_controller.js +0 -171
- data/app/assets/javascripts/spina/admin/controllers/modal_controller.js +0 -18
- data/app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js +0 -35
- data/app/assets/javascripts/spina/admin/controllers/repeater_form_controller.js +0 -38
- data/app/assets/javascripts/spina/admin/dropdown.coffee +0 -75
- data/app/assets/javascripts/spina/admin/forms.coffee +0 -7
- data/app/assets/javascripts/spina/admin/media_gallery.coffee +0 -62
- data/app/assets/javascripts/spina/admin/modal.coffee +0 -53
- data/app/assets/javascripts/spina/admin/navigation.coffee +0 -45
- data/app/assets/javascripts/spina/admin/notifications.coffee +0 -7
- data/app/assets/javascripts/spina/admin/pages.coffee.erb +0 -65
- data/app/assets/javascripts/spina/admin/scaffold.coffee +0 -87
- data/app/assets/javascripts/spina/admin/switch.coffee +0 -43
- data/app/assets/javascripts/spina/admin/tabs.coffee +0 -13
- data/app/assets/javascripts/spina/admin/trix.coffee.erb +0 -114
- data/app/assets/javascripts/spina/admin/uploads.coffee +0 -35
- data/app/assets/stylesheets/spina.sass +0 -564
- data/app/assets/stylesheets/spina/_admin_editing.sass +0 -21
- data/app/assets/stylesheets/spina/_buttons.sass +0 -393
- data/app/assets/stylesheets/spina/_configuration.sass.erb +0 -23
- data/app/assets/stylesheets/spina/_custom_animations.sass +0 -61
- data/app/assets/stylesheets/spina/_fonts.sass +0 -54
- data/app/assets/stylesheets/spina/_forms.sass +0 -893
- data/app/assets/stylesheets/spina/_gallery.sass +0 -405
- data/app/assets/stylesheets/spina/_ics_spina.scss +0 -70
- data/app/assets/stylesheets/spina/_labels.sass +0 -30
- data/app/assets/stylesheets/spina/_login.sass +0 -52
- data/app/assets/stylesheets/spina/_media_picker.sass +0 -133
- data/app/assets/stylesheets/spina/_mixins.sass +0 -5
- data/app/assets/stylesheets/spina/_modal.sass +0 -195
- data/app/assets/stylesheets/spina/_normalize.scss +0 -396
- data/app/assets/stylesheets/spina/_notifications.sass +0 -68
- data/app/assets/stylesheets/spina/_pages.sass +0 -131
- data/app/assets/stylesheets/spina/_sortable_lists.sass +0 -190
- data/app/assets/stylesheets/spina/_tables.sass +0 -308
- data/app/assets/stylesheets/spina/_trix_custom.sass +0 -224
- data/app/assets/stylesheets/spina/_wizard.sass +0 -122
- data/app/assets/stylesheets/spina/admin/application.css.sass +0 -7
- data/app/assets/stylesheets/spina_front_end.sass +0 -19
- data/app/helpers/spina/admin/admin_helper.rb +0 -11
- data/app/helpers/spina/admin_nav_helper.rb +0 -7
- data/app/views/layouts/spina/admin/admin.html.haml +0 -34
- data/app/views/layouts/spina/admin/media_library.html.haml +0 -17
- data/app/views/layouts/spina/admin/pages.html.haml +0 -34
- data/app/views/layouts/spina/admin/resources.html.haml +0 -10
- data/app/views/layouts/spina/login.html.haml +0 -18
- data/app/views/spina/admin/accounts/_form.html.haml +0 -54
- data/app/views/spina/admin/accounts/analytics.html.haml +0 -28
- data/app/views/spina/admin/accounts/edit.html.haml +0 -1
- data/app/views/spina/admin/accounts/social.html.haml +0 -52
- data/app/views/spina/admin/accounts/style.html.haml +0 -35
- data/app/views/spina/admin/attachments/_attachment.html.haml +0 -7
- data/app/views/spina/admin/attachments/create.js.erb +0 -1
- data/app/views/spina/admin/attachments/index.html.haml +0 -16
- data/app/views/spina/admin/images/_form.html.haml +0 -5
- data/app/views/spina/admin/images/_image.html.haml +0 -8
- data/app/views/spina/admin/images/create.js.erb +0 -8
- data/app/views/spina/admin/images/index.html.haml +0 -24
- data/app/views/spina/admin/images/index.js.erb +0 -7
- data/app/views/spina/admin/media_folders/_form.html.haml +0 -17
- data/app/views/spina/admin/media_folders/_media_folder.html.haml +0 -8
- data/app/views/spina/admin/media_folders/edit.js.erb +0 -1
- data/app/views/spina/admin/media_folders/new.js.erb +0 -1
- data/app/views/spina/admin/media_folders/show.html.haml +0 -18
- data/app/views/spina/admin/media_picker/_image.html.haml +0 -3
- data/app/views/spina/admin/media_picker/_media_picker.html.haml +0 -32
- data/app/views/spina/admin/media_picker/_media_picker_grid.html.haml +0 -25
- data/app/views/spina/admin/media_picker/_modal.html.haml +0 -63
- data/app/views/spina/admin/media_picker/infinite_scroll.js.erb +0 -5
- data/app/views/spina/admin/media_picker/select.js.erb +0 -33
- data/app/views/spina/admin/media_picker/show.html.haml +0 -1
- data/app/views/spina/admin/media_picker/show.js.erb +0 -1
- data/app/views/spina/admin/navigations/_navigation_item_nested_list.html.haml +0 -7
- data/app/views/spina/admin/navigations/_page.html.haml +0 -8
- data/app/views/spina/admin/navigations/edit.html.haml +0 -22
- data/app/views/spina/admin/navigations/show.html.haml +0 -7
- data/app/views/spina/admin/pages/_form.html.haml +0 -52
- data/app/views/spina/admin/pages/_form_advanced.html.haml +0 -59
- data/app/views/spina/admin/pages/_form_page_content.html.haml +0 -17
- data/app/views/spina/admin/pages/_form_page_seo.html.haml +0 -32
- data/app/views/spina/admin/pages/_page.html.haml +0 -16
- data/app/views/spina/admin/pages/_page_nested_list.html.haml +0 -6
- data/app/views/spina/admin/pages/children.html.haml +0 -4
- data/app/views/spina/admin/pages/create.js.coffee +0 -0
- data/app/views/spina/admin/pages/edit.html.haml +0 -1
- data/app/views/spina/admin/pages/index.html.haml +0 -36
- data/app/views/spina/admin/pages/new.html.haml +0 -1
- data/app/views/spina/admin/pages/update.js.coffee +0 -1
- data/app/views/spina/admin/parts/attachments/_form.html.haml +0 -6
- data/app/views/spina/admin/parts/image_collections/_fields.html.haml +0 -7
- data/app/views/spina/admin/parts/image_collections/_form.html.haml +0 -12
- data/app/views/spina/admin/parts/images/_form.html.haml +0 -18
- data/app/views/spina/admin/parts/lines/_form.html.haml +0 -2
- data/app/views/spina/admin/parts/multi_lines/_form.html.haml +0 -2
- data/app/views/spina/admin/parts/options/_form.html.haml +0 -3
- data/app/views/spina/admin/parts/repeaters/_fields.html.haml +0 -15
- data/app/views/spina/admin/parts/repeaters/_form.html.haml +0 -17
- data/app/views/spina/admin/parts/texts/_form.html.haml +0 -6
- data/app/views/spina/admin/password_resets/edit.html.haml +0 -13
- data/app/views/spina/admin/password_resets/new.html.haml +0 -13
- data/app/views/spina/admin/resources/edit.html.haml +0 -65
- data/app/views/spina/admin/resources/show.html.haml +0 -27
- data/app/views/spina/admin/sessions/new.html.haml +0 -14
- data/app/views/spina/admin/settings/_string_field.html.haml +0 -4
- data/app/views/spina/admin/settings/_wysiwyg_field.html.haml +0 -4
- data/app/views/spina/admin/settings/edit.html.haml +0 -13
- data/app/views/spina/admin/shared/_breadcrumbs.html.haml +0 -1
- data/app/views/spina/admin/shared/_notifications.html.haml +0 -29
- data/app/views/spina/admin/shared/_primary_navigation.html.haml +0 -68
- data/app/views/spina/admin/shared/_rich_text_field.html.haml +0 -4
- data/app/views/spina/admin/users/_form.html.haml +0 -58
- data/app/views/spina/admin/users/edit.html.haml +0 -1
- data/app/views/spina/admin/users/index.html.haml +0 -30
- data/app/views/spina/admin/users/new.html.haml +0 -1
- data/app/views/spina/pages/robots.text.erb +0 -4
- data/app/views/spina/shared/_admin_bar.html.haml +0 -4
- data/app/views/spina/shared/_analytics.html.erb +0 -11
- data/app/views/spina/shared/_google_site_verification.html.haml +0 -1
- data/app/views/spina/shared/_navigation.html.haml +0 -3
- data/app/views/spina/shared/_social.html.haml +0 -5
- data/app/views/spina/shared/_spina_link.html.haml +0 -2
- data/config/fontcustom.yml +0 -95
- data/lib/generators/spina/templates/app/assets/stylesheets/default/application.css.sass +0 -0
- data/lib/generators/spina/templates/app/assets/stylesheets/demo/application.css.sass +0 -69
- data/lib/generators/spina/templates/app/views/default/pages/homepage.html.haml +0 -3
- data/lib/generators/spina/templates/app/views/default/pages/show.html.haml +0 -3
- data/lib/generators/spina/templates/app/views/default/shared/_navigation.html.haml +0 -2
- data/lib/generators/spina/templates/app/views/demo/pages/demo.html.haml +0 -20
- data/lib/generators/spina/templates/app/views/demo/pages/homepage.html.haml +0 -2
- data/lib/generators/spina/templates/app/views/demo/pages/show.html.haml +0 -3
- data/lib/generators/spina/templates/app/views/demo/shared/_languages.html.haml +0 -2
- data/lib/generators/spina/templates/app/views/demo/shared/_navigation.html.haml +0 -2
- data/lib/generators/spina/templates/app/views/layouts/default/application.html.haml +0 -10
- data/lib/generators/spina/templates/app/views/layouts/demo/application.html.haml +0 -11
- data/lib/spina/fontcustom/_ics_spina.scss +0 -5
- data/vendor/assets/javascripts/spina/jquery.customfileinput.js +0 -85
- data/vendor/assets/javascripts/spina/jquery.nestable.js +0 -485
- data/vendor/assets/javascripts/spina/jquery.ui.js +0 -6
- data/vendor/assets/javascripts/spina/sortable.js +0 -2
- data/vendor/assets/javascripts/spina/stimulus.umd.js +0 -5
- data/vendor/assets/javascripts/spina/trix.js +0 -21
- data/vendor/assets/stylesheets/spina/_animate.scss +0 -1
- data/vendor/assets/stylesheets/spina/_normalize.scss +0 -396
- data/vendor/assets/stylesheets/spina/_trix.css +0 -369
@@ -1,7 +0,0 @@
|
|
1
|
-
$(document).on 'click', '.structure-form-menu ul li a', (e) ->
|
2
|
-
$structureForm = $(this).parents('.structure-form')
|
3
|
-
$(this).parent('li').siblings().removeClass('active')
|
4
|
-
$(this).parent('li').addClass('active')
|
5
|
-
$structureForm.find('.structure-form-pane').removeClass('active')
|
6
|
-
$($(this).attr('href')).addClass('active')
|
7
|
-
e.preventDefault()
|
@@ -1,62 +0,0 @@
|
|
1
|
-
$(document).on 'direct-uploads:start', 'form', (e) ->
|
2
|
-
$(this).find('.customfile').addClass('loading')
|
3
|
-
|
4
|
-
$(document).on 'direct-uploads:end', 'form', (e) ->
|
5
|
-
$(this).find('.customfile').removeClass('loading')
|
6
|
-
|
7
|
-
$(document).on 'change', 'input[type="file"]', (e) ->
|
8
|
-
$form = $(this).parents('form')
|
9
|
-
$form.find('input[type="submit"]').click()
|
10
|
-
|
11
|
-
$(document).on 'click', '.organize-switch', (e) ->
|
12
|
-
$items = $('.gallery .infinite-scroll .item')
|
13
|
-
disabled = $items.draggable('option', 'disabled')
|
14
|
-
if disabled
|
15
|
-
$(this).addClass('button-success')
|
16
|
-
$(this).text($(this).attr('data-done-organizing'))
|
17
|
-
$(this).prepend('<i class="icon icon-random"></i>')
|
18
|
-
else
|
19
|
-
$(this).removeClass('button-success')
|
20
|
-
$(this).text($(this).attr('data-organize-images'))
|
21
|
-
$(this).prepend('<i class="icon icon-random"></i>')
|
22
|
-
$items.draggable('option', 'disabled', !disabled)
|
23
|
-
e.preventDefault()
|
24
|
-
|
25
|
-
ready = ->
|
26
|
-
$('.media-folder').droppable(
|
27
|
-
drop: (event, ui) ->
|
28
|
-
url = $(this).attr('data-add-to-media-folder-url')
|
29
|
-
image_id = $(ui.draggable).attr('data-image-id')
|
30
|
-
|
31
|
-
$.ajax
|
32
|
-
url: url,
|
33
|
-
type: 'PUT',
|
34
|
-
data: {
|
35
|
-
image_id: image_id
|
36
|
-
},
|
37
|
-
dataType: 'json',
|
38
|
-
success: (result) =>
|
39
|
-
$(ui.draggable).addClass('dropped').fadeOut()
|
40
|
-
imageCount = parseInt($(this).find('.media-folder-thumbnail').attr('data-badge'))
|
41
|
-
imgSrc = $(ui.draggable).find('img').attr('src')
|
42
|
-
|
43
|
-
$(this).removeClass('dropping')
|
44
|
-
$(this).find('.media-folder-thumbnail').attr('data-badge', imageCount + 1)
|
45
|
-
$(this).find('.media-folder-thumbnail img').attr('src', imgSrc)
|
46
|
-
|
47
|
-
over: (event, ui) ->
|
48
|
-
$(ui.draggable).addClass('dropping')
|
49
|
-
|
50
|
-
$(this).addClass('dropping')
|
51
|
-
out: (event, ui) ->
|
52
|
-
$(ui.draggable).removeClass('dropping')
|
53
|
-
|
54
|
-
$(this).removeClass('dropping')
|
55
|
-
)
|
56
|
-
|
57
|
-
$('.gallery .infinite-scroll .item').draggable(
|
58
|
-
revert: 'invalid',
|
59
|
-
disabled: true
|
60
|
-
)
|
61
|
-
|
62
|
-
$(document).on 'turbolinks:load', ready
|
@@ -1,53 +0,0 @@
|
|
1
|
-
# jQuery plugin
|
2
|
-
$.hideModal = ->
|
3
|
-
hideModal()
|
4
|
-
|
5
|
-
$.fn.modal = ->
|
6
|
-
showModal($(this))
|
7
|
-
|
8
|
-
$(document).on 'click', 'a[data-toggle="modal"]', ->
|
9
|
-
link = $(this)
|
10
|
-
modal = $(link.attr('href'))
|
11
|
-
showModal(modal)
|
12
|
-
|
13
|
-
$(document).on 'click', 'body.overlay', ->
|
14
|
-
hideModal()
|
15
|
-
|
16
|
-
$(document).on 'click', '[data-dismiss="modal"]', ->
|
17
|
-
hideModal()
|
18
|
-
|
19
|
-
$(document).on 'keyup', 'body.overlay', (e) ->
|
20
|
-
hideModal() if e.keyCode == 27
|
21
|
-
|
22
|
-
$(document).on 'click', '.modal', (e) ->
|
23
|
-
e.stopPropagation()
|
24
|
-
|
25
|
-
hideModal = ->
|
26
|
-
$('body').removeClass('overlay')
|
27
|
-
$('#overlay .modal').addClass('flyOut')
|
28
|
-
$('#overlay').fadeOut 300, ->
|
29
|
-
$(this).remove()
|
30
|
-
return false
|
31
|
-
|
32
|
-
showModal = (element) ->
|
33
|
-
modal = element.clone()
|
34
|
-
modal.addClass('animated flyIn')
|
35
|
-
|
36
|
-
if $('#overlay').length < 1
|
37
|
-
$('body').append('<div id="overlay"></div>')
|
38
|
-
else
|
39
|
-
$('#overlay').html('')
|
40
|
-
|
41
|
-
maxheight = window.innerHeight - (window.innerHeight / 8) - 150
|
42
|
-
|
43
|
-
modal.css({"margin-top": window.innerHeight / 8})
|
44
|
-
modal.find('section').css({"max-height": maxheight})
|
45
|
-
|
46
|
-
modal.appendTo('#overlay')
|
47
|
-
$('#overlay').fadeIn(400)
|
48
|
-
modal.show()
|
49
|
-
|
50
|
-
modal.find('input[type="file"][data-customfileinput]').customFileInput()
|
51
|
-
|
52
|
-
$('body').addClass('overlay')
|
53
|
-
return false
|
@@ -1,45 +0,0 @@
|
|
1
|
-
ready = ->
|
2
|
-
if $('nav#primary ul li ul li.active').length > 0
|
3
|
-
$('nav#primary > ul > li').removeClass('active')
|
4
|
-
$('nav#primary ul li ul li.active').parents('li').addClass('active')
|
5
|
-
|
6
|
-
$(document).on 'turbolinks:load', ready
|
7
|
-
|
8
|
-
$(document).on 'click', 'nav#primary a.back-to-main-menu', (e) ->
|
9
|
-
$('nav#primary').addClass('animated')
|
10
|
-
$('nav#primary').removeClass('transformed')
|
11
|
-
e.preventDefault()
|
12
|
-
|
13
|
-
$(document).on 'click', 'nav#primary a:not(.back-to-main-menu)', (e) ->
|
14
|
-
$('nav#primary ul li ul li').removeClass('active')
|
15
|
-
$(this).parent().addClass('active')
|
16
|
-
clearTimeout(navigationTimer)
|
17
|
-
|
18
|
-
$(document).on 'click', 'nav#primary > ul > li > a', (e) ->
|
19
|
-
if $(this).parent().find('ul').length > 0
|
20
|
-
e.preventDefault()
|
21
|
-
|
22
|
-
$(this).parent().siblings().removeClass('active')
|
23
|
-
$(this).parent().addClass('active')
|
24
|
-
|
25
|
-
# Clicking something from the primary menu adds the animation
|
26
|
-
$(document).on 'click', 'nav#primary:not(.transformed) > ul > li > a', (e) ->
|
27
|
-
$('nav#primary').addClass('animated').addClass('transformed')
|
28
|
-
|
29
|
-
# Clicking directly on the primary menu when it's transformed removes the animation
|
30
|
-
$(document).on 'click', 'nav#primary.transformed > ul > li > a', (e) ->
|
31
|
-
$('nav#primary').removeClass('animated')
|
32
|
-
$('nav#primary ul li ul li').removeClass('active')
|
33
|
-
$(this).parent().find('ul li:first-child').addClass('active')
|
34
|
-
|
35
|
-
delay = 200
|
36
|
-
navigationTimer = null
|
37
|
-
|
38
|
-
$(document).on 'mouseenter', 'nav#primary.transformed > ul > li:not(.active) > a', (e) ->
|
39
|
-
navigationTimer = setTimeout(->
|
40
|
-
$('nav#primary').addClass('animated')
|
41
|
-
$('nav#primary').removeClass('transformed')
|
42
|
-
, delay)
|
43
|
-
|
44
|
-
$(document).on 'mouseleave', 'nav#primary.transformed > ul > li:not(.active) > a', (e) ->
|
45
|
-
clearTimeout(navigationTimer)
|
@@ -1,65 +0,0 @@
|
|
1
|
-
ready = ->
|
2
|
-
if $.isFunction($.fn.nestable)
|
3
|
-
$('.dd').nestable
|
4
|
-
maxDepth: "<%= Spina.config.max_page_depth %>"
|
5
|
-
|
6
|
-
$('.sortable-grid').sortable().bind 'sortupdate', (e) ->
|
7
|
-
position_array = []
|
8
|
-
$(e.target).find('li.image').each (index) ->
|
9
|
-
position_array.push $(this).data('image-id')
|
10
|
-
$(e.target).parents('.horizontal-form-content').find('.image-positions').val(position_array.join(","))
|
11
|
-
|
12
|
-
$(document).on 'turbolinks:load', ready
|
13
|
-
|
14
|
-
# Dynamically add and remove structures
|
15
|
-
$(document).on 'click', 'form .add_structure_item_fields', (event) ->
|
16
|
-
$structureForm = $(this).parents('.structure-form')
|
17
|
-
|
18
|
-
time = new Date().getTime()
|
19
|
-
regexp = new RegExp("#{$(this).data('id')}|new_association", 'g')
|
20
|
-
$fields = $($(this).data('fields').replace(regexp, time))
|
21
|
-
$structureForm.find('.structure-form-content').append($fields)
|
22
|
-
|
23
|
-
$link = $("<li data-part-id='#{time}'><a href='#structure_form_pane_#{time}'><i class='icon icon-bars'></i> </a></li>")
|
24
|
-
|
25
|
-
$structureForm.find('.structure-form-menu ul').append($link)
|
26
|
-
$fields.attr('id', "structure_form_pane_#{time}")
|
27
|
-
|
28
|
-
$link.find('a').click()
|
29
|
-
|
30
|
-
# Fire event
|
31
|
-
$structureForm.trigger('spina:structure_added')
|
32
|
-
|
33
|
-
event.preventDefault()
|
34
|
-
|
35
|
-
$(document).on 'click', 'form .remove_structure_item_fields', (event) ->
|
36
|
-
$(this).prev('input[type=hidden]').val('1')
|
37
|
-
$pane = $(this).closest('.structure-form-pane')
|
38
|
-
$link = $("a[href='##{$pane.attr('id')}']").parents('li')
|
39
|
-
$previousLink = $link.siblings('li:visible')
|
40
|
-
|
41
|
-
$previousLink.find('a').trigger('click')
|
42
|
-
$link.hide()
|
43
|
-
$pane.hide()
|
44
|
-
$link.remove()
|
45
|
-
$pane.remove()
|
46
|
-
event.preventDefault()
|
47
|
-
|
48
|
-
$(document).on 'change', '.structure-form-pane .structure-form-part:first-child input', (event) ->
|
49
|
-
value = $(this).val()
|
50
|
-
$pane = $(this).parents('.structure-form-pane')
|
51
|
-
$link = $("a[href='##{$pane.attr('id')}']")
|
52
|
-
$link.html("<i class='icon icon-bars'></i> #{value}")
|
53
|
-
|
54
|
-
# Sort pages
|
55
|
-
$(document).on 'click', '.sort-switch', (event) ->
|
56
|
-
$($(this).attr('href') + ' .dd-item-inner').toggleClass('dd-handle')
|
57
|
-
if $(this).hasClass('button-success')
|
58
|
-
$(this).removeClass('button-success')
|
59
|
-
$(this).text($(this).data('change-order'))
|
60
|
-
$(this).prepend('<i class="icon icon-random"></i>')
|
61
|
-
else
|
62
|
-
$(this).addClass('button-success')
|
63
|
-
$(this).text($(this).data('done-changing-order'))
|
64
|
-
$(this).prepend('<i class="icon icon-check"></i>')
|
65
|
-
return false
|
@@ -1,87 +0,0 @@
|
|
1
|
-
# Scaffold
|
2
|
-
$(document).on 'click', '.table-clickable tr', (e) ->
|
3
|
-
$row = $(this).closest('tr')
|
4
|
-
link = $row.find('a.table-link:first')[0]
|
5
|
-
if link
|
6
|
-
link.click()
|
7
|
-
else
|
8
|
-
checkbox = $(this).find('input[type="checkbox"]:first, input[type="radio"]:first')
|
9
|
-
|
10
|
-
if checkbox.length > 0
|
11
|
-
|
12
|
-
# Get shifty
|
13
|
-
if !checkbox.prop("checked") && e.shiftKey
|
14
|
-
$firstRow = $('.table-clickable tr input[type="checkbox"]:checked:first').closest('tr')
|
15
|
-
|
16
|
-
if $firstRow.index() < $row.index()
|
17
|
-
$firstRow.nextUntil($row).each ->
|
18
|
-
$(this).find('input[type="checkbox"]:first').prop("checked", true)
|
19
|
-
else
|
20
|
-
$firstRow.prevUntil($row).each ->
|
21
|
-
$(this).find('input[type="checkbox"]:first').prop("checked", true)
|
22
|
-
document.getSelection().removeAllRanges()
|
23
|
-
|
24
|
-
checkbox.prop("checked", !checkbox.prop("checked"))
|
25
|
-
checkbox.trigger('checked')
|
26
|
-
e.stopPropagation()
|
27
|
-
|
28
|
-
$(document).on 'click', '.table-clickable .table-link', (e) ->
|
29
|
-
e.stopPropagation()
|
30
|
-
|
31
|
-
$(document).on 'click', '.table-clickable tr input', (e) ->
|
32
|
-
e.stopPropagation()
|
33
|
-
|
34
|
-
# Search inputs
|
35
|
-
$(document).on 'keyup', '.search-input input', (e) ->
|
36
|
-
$(this).parent().removeClass('animated small-shake')
|
37
|
-
if $(this).val() == ""
|
38
|
-
$(this).parent().find('.clear-input').fadeOut(200)
|
39
|
-
if e.keyCode == 13
|
40
|
-
$(this).parent().addClass('animated small-shake')
|
41
|
-
else
|
42
|
-
$(this).parent().find('.clear-input').fadeIn(200)
|
43
|
-
|
44
|
-
$(document).on 'click', '.clear-input', ->
|
45
|
-
link = $(this)
|
46
|
-
input = link.siblings('input')
|
47
|
-
input.val("")
|
48
|
-
input.focus()
|
49
|
-
input.trigger("keyup")
|
50
|
-
link.fadeOut(200)
|
51
|
-
return false
|
52
|
-
|
53
|
-
$(document).on 'keyup + change', '.table-container .search-input input', ->
|
54
|
-
datatable = $(this).parent().parent().find('table.datatable').dataTable()
|
55
|
-
datatable.fnFilter($(this).val())
|
56
|
-
|
57
|
-
$(document).on 'change', '.dd', ->
|
58
|
-
serialized = $(this).nestable('serialize')
|
59
|
-
sort_url = $(this).data('sort-url')
|
60
|
-
$.post sort_url, { list: serialized }
|
61
|
-
|
62
|
-
ready = ->
|
63
|
-
|
64
|
-
# Set paddingTop for section#main
|
65
|
-
if header = document.getElementById('header')
|
66
|
-
headerHeight = header.getBoundingClientRect().height
|
67
|
-
$('section#main').css({paddingTop: headerHeight})
|
68
|
-
$('section#main trix-toolbar').css({top: headerHeight + 15})
|
69
|
-
|
70
|
-
# Login wrapper
|
71
|
-
$('#login_wrapper').css('margin-top', $(document).innerHeight() / 8)
|
72
|
-
|
73
|
-
# Custom file
|
74
|
-
$('input[type="file"][data-customfileinput]:visible').each ->
|
75
|
-
$(this).customFileInput()
|
76
|
-
|
77
|
-
# Switch
|
78
|
-
if $('input[data-switch]').length > 0
|
79
|
-
$('input[data-switch]').spinaSwitch()
|
80
|
-
|
81
|
-
# Datepicker
|
82
|
-
if $('.datepicker').length > 0
|
83
|
-
$('.datepicker').datepicker
|
84
|
-
dateFormat: "dd-mm-yy"
|
85
|
-
firstDay: 1
|
86
|
-
|
87
|
-
$(document).on 'turbolinks:load', ready
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# jQuery plugin checkbox
|
2
|
-
$.fn.spinaSwitch = ->
|
3
|
-
return this.each ->
|
4
|
-
unless $(this).attr('data-plugin-switch')
|
5
|
-
input = $(this)
|
6
|
-
input.attr('data-plugin-switch', true)
|
7
|
-
input.hide()
|
8
|
-
|
9
|
-
# Check if it is checked
|
10
|
-
if input.is(':checked')
|
11
|
-
klass = "switch active"
|
12
|
-
else
|
13
|
-
klass = "switch"
|
14
|
-
|
15
|
-
# Insert new HTML into the DOM
|
16
|
-
input.after('<a href="#' + input.attr("id") + '" class="' + klass + '">
|
17
|
-
<span class="knob"></span>
|
18
|
-
</a>')
|
19
|
-
|
20
|
-
# Click handlers for checkbox
|
21
|
-
$(document).on 'click', 'a.switch', (e) ->
|
22
|
-
toggleSwitch(e)
|
23
|
-
|
24
|
-
$(document).on 'touchend', 'a.switch', (e) ->
|
25
|
-
toggleSwitch(e)
|
26
|
-
|
27
|
-
toggleSwitch = (e) ->
|
28
|
-
checkbox = $(e.currentTarget)
|
29
|
-
input = $(checkbox.attr("href"))
|
30
|
-
|
31
|
-
if checkbox.hasClass('activated') || checkbox.hasClass('active')
|
32
|
-
checkbox.removeClass('active')
|
33
|
-
checkbox.removeClass('activated')
|
34
|
-
checkbox.addClass('deactivated')
|
35
|
-
input.prop("checked", false)
|
36
|
-
else
|
37
|
-
checkbox.addClass('activated')
|
38
|
-
checkbox.removeClass('deactivated')
|
39
|
-
input.prop("checked", true)
|
40
|
-
|
41
|
-
input.trigger('change')
|
42
|
-
|
43
|
-
return false
|
@@ -1,13 +0,0 @@
|
|
1
|
-
$(document).on 'click', '.tabs li a[href^="#"]', ->
|
2
|
-
link = $(this)
|
3
|
-
tabs = link.parents('.tabs')
|
4
|
-
|
5
|
-
# Remove active
|
6
|
-
$('.tab-content').removeClass('active')
|
7
|
-
tabs.find('li').removeClass('active')
|
8
|
-
|
9
|
-
# Add active
|
10
|
-
link.parent('li').addClass('active')
|
11
|
-
$(link.attr('href')).addClass('active')
|
12
|
-
|
13
|
-
return false
|
@@ -1,114 +0,0 @@
|
|
1
|
-
window.Spina = {}
|
2
|
-
|
3
|
-
Trix.config.blockAttributes = $.extend Trix.config.blockAttributes, {
|
4
|
-
heading2:
|
5
|
-
tagName: "h2"
|
6
|
-
terminal: true
|
7
|
-
breakOnReturn: true
|
8
|
-
group: false
|
9
|
-
heading3:
|
10
|
-
tagName: "h3"
|
11
|
-
terminal: true
|
12
|
-
breakOnReturn: true
|
13
|
-
group: false
|
14
|
-
heading4:
|
15
|
-
tagName: "h4"
|
16
|
-
terminal: true
|
17
|
-
breakOnReturn: true
|
18
|
-
group: false
|
19
|
-
heading5:
|
20
|
-
tagName: "h5"
|
21
|
-
terminal: true
|
22
|
-
breakOnReturn: true
|
23
|
-
group: false
|
24
|
-
heading6:
|
25
|
-
tagName: "h6"
|
26
|
-
terminal: true
|
27
|
-
breakOnReturn: true
|
28
|
-
group: false
|
29
|
-
}
|
30
|
-
|
31
|
-
Trix.config.lang = $.extend Trix.config.lang, {
|
32
|
-
image: "Image"
|
33
|
-
heading1: "H1"
|
34
|
-
heading2: "H2"
|
35
|
-
heading3: "H3"
|
36
|
-
heading4: "H4"
|
37
|
-
heading5: "H5"
|
38
|
-
heading6: "H6"
|
39
|
-
}
|
40
|
-
|
41
|
-
Trix.config.toolbar =
|
42
|
-
getDefaultHTML: -> """
|
43
|
-
<div class="trix-button-row">
|
44
|
-
<span class="trix-button-group trix-button-group--text-tools" data-trix-button-group="text-tools">
|
45
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-bold" data-trix-attribute="bold" data-trix-key="b" title="#{Trix.config.lang.bold}" tabindex="-1">#{Trix.config.lang.bold}</button>
|
46
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-italic" data-trix-attribute="italic" data-trix-key="i" title="#{Trix.config.lang.italic}" tabindex="-1">#{Trix.config.lang.italic}</button>
|
47
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-link" data-trix-attribute="href" data-trix-action="link" data-trix-key="k" title="#{Trix.config.lang.link}" tabindex="-1">#{Trix.config.lang.link}</button>
|
48
|
-
</span>
|
49
|
-
<span class="trix-button-group trix-button-group--block-tools" data-trix-button-group="block-tools">
|
50
|
-
<button type="button" class="trix-button trix-button--text" data-trix-attribute="heading1" title="#{Trix.config.lang.heading1}" tabindex="-1">#{Trix.config.lang.heading1}</button>
|
51
|
-
<button type="button" class="trix-button trix-button--text" data-trix-attribute="heading2" title="#{Trix.config.lang.heading2}" tabindex="-1">#{Trix.config.lang.heading2}</button>
|
52
|
-
<button type="button" class="trix-button trix-button--text" data-trix-attribute="heading3" title="#{Trix.config.lang.heading3}" tabindex="-1">#{Trix.config.lang.heading3}</button>
|
53
|
-
<button type="button" class="trix-button trix-button--text" data-trix-attribute="heading4" title="#{Trix.config.lang.heading4}" tabindex="-1">#{Trix.config.lang.heading4}</button>
|
54
|
-
</span>
|
55
|
-
|
56
|
-
<span class="trix-button-group trix-button-group--block-tools">
|
57
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-image" data-trix-attribute="image" data-trix-action="image" title="#{Trix.config.lang.image}" tabindex="-1">#{Trix.config.lang.image}</button>
|
58
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-quote" data-trix-attribute="quote" title="#{Trix.config.lang.quote}" tabindex="-1">#{Trix.config.lang.quote}</button>
|
59
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-code" data-trix-attribute="code" title="#{Trix.config.lang.code}" tabindex="-1">#{Trix.config.lang.code}</button>
|
60
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-bullet-list" data-trix-attribute="bullet" title="#{Trix.config.lang.bullets}" tabindex="-1">#{Trix.config.lang.bullets}</button>
|
61
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-number-list" data-trix-attribute="number" title="#{Trix.config.lang.numbers}" tabindex="-1">#{Trix.config.lang.numbers}</button>
|
62
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-decrease-nesting-level" data-trix-action="decreaseNestingLevel" title="#{Trix.config.lang.outdent}" tabindex="-1">#{Trix.config.lang.outdent}</button>
|
63
|
-
<button type="button" class="trix-button trix-button--icon trix-button--icon-increase-nesting-level" data-trix-action="increaseNestingLevel" title="#{Trix.config.lang.indent}" tabindex="-1">#{Trix.config.lang.indent}</button>
|
64
|
-
</span>
|
65
|
-
|
66
|
-
<span class="trix-button-group-spacer"></span>
|
67
|
-
</div>
|
68
|
-
<div class="trix-button-row">
|
69
|
-
|
70
|
-
</div>
|
71
|
-
<div class="trix-dialogs" data-trix-dialogs>
|
72
|
-
<div class="trix-dialog trix-dialog--link" data-trix-dialog="href" data-trix-dialog-attribute="href">
|
73
|
-
<div class="trix-dialog__link-fields">
|
74
|
-
<input type="text" name="href" class="trix-input trix-input--dialog" placeholder="#{Trix.config.lang.urlPlaceholder}" aria-label="#{Trix.config.lang.url}" required data-trix-input>
|
75
|
-
<div class="trix-button-group">
|
76
|
-
<input type="button" class="trix-button trix-button--dialog" value="#{Trix.config.lang.link}" data-trix-method="setAttribute">
|
77
|
-
<input type="button" class="trix-button trix-button--dialog" value="#{Trix.config.lang.unlink}" data-trix-method="removeAttribute">
|
78
|
-
</div>
|
79
|
-
</div>
|
80
|
-
</div>
|
81
|
-
</div>
|
82
|
-
"""
|
83
|
-
|
84
|
-
class Spina.TrixAttachment
|
85
|
-
@imageSelect: (e) ->
|
86
|
-
toolbar_id = $(this).closest('trix-toolbar').attr('id')
|
87
|
-
$.getScript("<%= Spina::Engine.routes.url_helpers.admin_media_picker_path %>" + "?input=#{toolbar_id}&mode=trix")
|
88
|
-
|
89
|
-
@imageInsert: (e) ->
|
90
|
-
labels = []
|
91
|
-
labels.push "✍️ #{e.detail.alt}" if e.detail.alt != ""
|
92
|
-
labels.push "🔗 #{e.detail.link_to_url}" if e.detail.link_to_url != ""
|
93
|
-
label = labels.join(" ")
|
94
|
-
|
95
|
-
if e.detail.link_to_url != ""
|
96
|
-
attachment = new Trix.Attachment({content: "<a href='#{e.detail.link_to_url}' class='trix-attachment-spina-image' data-label='#{label}'>
|
97
|
-
<img src='#{e.detail.url}' alt='#{e.detail.alt}' />
|
98
|
-
</a>"})
|
99
|
-
else
|
100
|
-
attachment = new Trix.Attachment({content: "<span class='trix-attachment-spina-image' data-label='#{label}'>
|
101
|
-
<img src='#{e.detail.url}' alt='#{e.detail.alt}' />
|
102
|
-
</span>"})
|
103
|
-
|
104
|
-
this.editor.insertAttachment(attachment)
|
105
|
-
|
106
|
-
document.addEventListener 'trix-file-accept', (e) ->
|
107
|
-
e.preventDefault()
|
108
|
-
|
109
|
-
$(document).on 'click', '[data-trix-attribute="image"]', Spina.TrixAttachment.imageSelect
|
110
|
-
|
111
|
-
$(document).on 'image-insert', 'trix-editor', Spina.TrixAttachment.imageInsert
|
112
|
-
|
113
|
-
$(document).on 'click', 'a.trix-attachment-spina-image', (e) ->
|
114
|
-
e.preventDefault()
|