spina 2.0.2 → 2.3.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 +9 -7
- data/Rakefile +2 -0
- data/app/assets/config/spina/manifest.js +8 -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/application.js +2 -0
- data/app/assets/javascripts/spina/controllers/attachment_picker_controller.js +15 -0
- 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/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 +203630 -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/api/paginable.rb +44 -0
- data/app/controllers/concerns/spina/current_account.rb +17 -0
- data/app/controllers/concerns/spina/current_theme.rb +17 -0
- data/app/controllers/spina/admin/accounts_controller.rb +13 -21
- data/app/controllers/spina/admin/admin_controller.rb +18 -14
- 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 +4 -4
- data/app/controllers/spina/admin/resources_controller.rb +4 -7
- data/app/controllers/spina/admin/sessions_controller.rb +5 -8
- 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 +32 -13
- data/app/controllers/spina/api/api_controller.rb +29 -0
- data/app/controllers/spina/api/images_controller.rb +12 -0
- data/app/controllers/spina/api/navigations_controller.rb +20 -0
- data/app/controllers/spina/api/pages_controller.rb +26 -0
- data/app/controllers/spina/api/resources_controller.rb +19 -0
- data/app/controllers/spina/application_controller.rb +2 -1
- data/app/controllers/spina/pages_controller.rb +5 -5
- 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/attachments_helper.rb +1 -1
- data/app/helpers/spina/images_helper.rb +26 -2
- data/app/helpers/spina/spina_helper.rb +13 -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 +5 -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 +10 -5
- 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/serializers/spina/api/base_serializer.rb +6 -0
- data/app/serializers/spina/api/image_serializer.rb +20 -0
- data/app/serializers/spina/api/navigation_serializer.rb +30 -0
- data/app/serializers/spina/api/page_serializer.rb +28 -0
- data/app/serializers/spina/api/resource_serializer.rb +12 -0
- data/app/views/layouts/spina/admin/admin.html.erb +18 -0
- data/app/views/layouts/spina/admin/application.html.erb +27 -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 +33 -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 +71 -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 +98 -2
- data/config/locales/bg.yml +98 -2
- data/config/locales/de.yml +184 -78
- data/config/locales/en.yml +106 -2
- data/config/locales/es.yml +139 -41
- data/config/locales/fr.yml +98 -2
- data/config/locales/id.yml +98 -2
- data/config/locales/it.yml +107 -11
- data/config/locales/nl.yml +103 -5
- data/config/locales/pl.yml +98 -2
- data/config/locales/pt-BR.yml +98 -2
- data/config/locales/ro.yml +98 -2
- data/config/locales/ru.yml +205 -87
- data/config/locales/sv.yml +98 -2
- data/config/locales/tr.yml +98 -2
- data/config/locales/zh-CN.yml +98 -2
- data/config/routes.rb +31 -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 +56 -12
- 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 +62 -15
- data/lib/spina/admin_sectionable.rb +23 -0
- data/lib/spina/attr_json_monkeypatch.rb +28 -0
- data/lib/spina/authentication/basic.rb +24 -0
- data/lib/spina/authentication/sessions.rb +32 -0
- data/lib/spina/engine.rb +23 -9
- 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 +694 -192
- 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/controllers/concerns/spina/current_methods.rb +0 -26
- 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 +0,0 @@
|
|
1
|
-
= render 'form'
|
@@ -1,4 +0,0 @@
|
|
1
|
-
- if current_spina_user.present?
|
2
|
-
#admin_bar
|
3
|
-
= link_to t('spina.edit_website'), spina.admin_root_url, data: {icon: 'q', turbolinks: false}, class: 'button button-hollow button-round button-small'
|
4
|
-
= link_to t('spina.logout'), spina.admin_logout_path, data: {icon: 'h'}, class: 'button button-hollow button-round button-small'
|
@@ -1,11 +0,0 @@
|
|
1
|
-
<script type="text/javascript">
|
2
|
-
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
3
|
-
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
4
|
-
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
5
|
-
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
6
|
-
|
7
|
-
ga('create', '<%= current_account.google_analytics %>', 'auto');
|
8
|
-
ga('set', 'anonymizeIp', true);
|
9
|
-
ga('send', 'pageview');
|
10
|
-
</script>
|
11
|
-
|
@@ -1 +0,0 @@
|
|
1
|
-
%meta{ name: 'google-site-verification' , content: current_account.google_site_verification }
|
data/config/fontcustom.yml
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
# =============================================================================
|
2
|
-
# Font Custom Configuration
|
3
|
-
# This file should live in the directory where you run `fontcustom compile`.
|
4
|
-
# For more info, visit <https://github.com/FontCustom/fontcustom>.
|
5
|
-
# =============================================================================
|
6
|
-
|
7
|
-
|
8
|
-
# -----------------------------------------------------------------------------
|
9
|
-
# Project Info
|
10
|
-
# -----------------------------------------------------------------------------
|
11
|
-
|
12
|
-
# The font's name. Also determines the file names of generated templates.
|
13
|
-
font_name: ics_spina
|
14
|
-
|
15
|
-
# Format of CSS selectors. {{glyph}} is substituted for the glyph name.
|
16
|
-
css_selector: .icon-{{glyph}}
|
17
|
-
|
18
|
-
# Generate fonts without asset-busting hashes.
|
19
|
-
no_hash: true
|
20
|
-
|
21
|
-
# Encode WOFF fonts into the generated CSS.
|
22
|
-
#base64: true
|
23
|
-
|
24
|
-
# Forces compilation, even if inputs have not changed
|
25
|
-
#force: true
|
26
|
-
|
27
|
-
# Display (possibly useful) debugging messages.
|
28
|
-
#debug: true
|
29
|
-
|
30
|
-
# Hide status messages.
|
31
|
-
#quiet: true
|
32
|
-
|
33
|
-
|
34
|
-
# -----------------------------------------------------------------------------
|
35
|
-
# Input / Output Locations
|
36
|
-
# You can save generated fonts, CSS, and other files to different locations
|
37
|
-
# here. Font Custom can also read input vectors and templates from different
|
38
|
-
# places.
|
39
|
-
#
|
40
|
-
# NOTE:
|
41
|
-
# - Be sure to preserve the whitespace in these YAML hashes.
|
42
|
-
# - INPUT[:vectors] and OUTPUT[:fonts] are required. Everything else is
|
43
|
-
# optional.
|
44
|
-
# - Specify output locations for custom templates by including their file
|
45
|
-
# names as the key.
|
46
|
-
# -----------------------------------------------------------------------------
|
47
|
-
|
48
|
-
input:
|
49
|
-
vectors: app/assets/icons/spina
|
50
|
-
templates: lib/spina/fontcustom
|
51
|
-
|
52
|
-
output:
|
53
|
-
fonts: app/assets/fonts/spina
|
54
|
-
css: app/assets/stylesheets/spina
|
55
|
-
preview: app/assets/icons/spina/preview
|
56
|
-
|
57
|
-
|
58
|
-
# -----------------------------------------------------------------------------
|
59
|
-
# Templates
|
60
|
-
# A YAML array of templates and files to generate alongside fonts. Custom
|
61
|
-
# templates should be saved in the INPUT[:templates] directory and referenced
|
62
|
-
# by their base file name.
|
63
|
-
#
|
64
|
-
# For Rails and Compass templates, set `preprocessor_path` as the relative
|
65
|
-
# path from OUTPUT[:css] to OUTPUT[:fonts]. By default, these are the same
|
66
|
-
# directory.
|
67
|
-
#
|
68
|
-
# Included in Font Custom: preview, css, scss, scss-rails
|
69
|
-
# Default: css, preview
|
70
|
-
# -----------------------------------------------------------------------------
|
71
|
-
|
72
|
-
templates:
|
73
|
-
- _ics_spina.scss
|
74
|
-
- preview
|
75
|
-
#- my-custom-template.yml
|
76
|
-
|
77
|
-
#preprocessor_path: ../fonts/
|
78
|
-
|
79
|
-
|
80
|
-
# -----------------------------------------------------------------------------
|
81
|
-
# Font Settings (defaults shown)
|
82
|
-
# -----------------------------------------------------------------------------
|
83
|
-
|
84
|
-
# Size (in pica points) for which your font is designed.
|
85
|
-
font_design_size: 32
|
86
|
-
|
87
|
-
# The em size. Setting this will scale the entire font to the given size.
|
88
|
-
#font_em: 512
|
89
|
-
|
90
|
-
# The font's ascent and descent. Used to calculate the baseline.
|
91
|
-
#font_ascent: 448
|
92
|
-
#font_descent: 64
|
93
|
-
|
94
|
-
# Horizontally fit glyphs to their individual vector widths.
|
95
|
-
#autowidth: false
|
File without changes
|
@@ -1,69 +0,0 @@
|
|
1
|
-
// require normalize.css
|
2
|
-
|
3
|
-
// $color-primary: #6865b4
|
4
|
-
$color-link: #0275d8
|
5
|
-
|
6
|
-
html
|
7
|
-
font-size: 16px
|
8
|
-
|
9
|
-
body
|
10
|
-
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
|
11
|
-
font-size: 1rem
|
12
|
-
line-height: 1.5
|
13
|
-
|
14
|
-
h1, h2, h3, h4, h5, h6
|
15
|
-
margin-top: 0
|
16
|
-
margin-bottom: 0.5rem
|
17
|
-
|
18
|
-
h1
|
19
|
-
font-size: 2.5rem
|
20
|
-
h2
|
21
|
-
font-size: 2rem
|
22
|
-
h3
|
23
|
-
font-size: 1.75rem
|
24
|
-
h4
|
25
|
-
font-size: 1.5rem
|
26
|
-
h5
|
27
|
-
font-size: 1.25rem
|
28
|
-
h6
|
29
|
-
font-size: 1rem
|
30
|
-
|
31
|
-
p
|
32
|
-
margin-top: 0
|
33
|
-
margin-bottom: 1rem
|
34
|
-
|
35
|
-
ul, ol
|
36
|
-
margin-top: 0
|
37
|
-
margin-bottom: 1rem
|
38
|
-
|
39
|
-
img
|
40
|
-
vertical-align: middle
|
41
|
-
|
42
|
-
a
|
43
|
-
color: $color-link
|
44
|
-
text-decoration: none
|
45
|
-
|
46
|
-
&:hover, &:focus
|
47
|
-
color: darken($color-link, 15%)
|
48
|
-
text-decoration: underline
|
49
|
-
|
50
|
-
.container
|
51
|
-
width: 960px
|
52
|
-
margin: 0 auto
|
53
|
-
|
54
|
-
.nav
|
55
|
-
padding-left: 0
|
56
|
-
margin-bottom: 2rem
|
57
|
-
list-style: none
|
58
|
-
|
59
|
-
.nav-item
|
60
|
-
display: inline-block
|
61
|
-
|
62
|
-
.nav-item + .nav-item
|
63
|
-
margin-left: 20px
|
64
|
-
|
65
|
-
.nav-item.active > a
|
66
|
-
text-decoration: underline
|
67
|
-
|
68
|
-
#languages
|
69
|
-
float: right
|
@@ -1,20 +0,0 @@
|
|
1
|
-
%h1= current_page.title
|
2
|
-
= content :option
|
3
|
-
|
4
|
-
= content :headline
|
5
|
-
= content.text :headline
|
6
|
-
= content.html :body
|
7
|
-
- if has_content?(:image)
|
8
|
-
= content.image_tag :image, resize: '100x100'
|
9
|
-
|
10
|
-
= current_account.content :line
|
11
|
-
|
12
|
-
- repeater current_account.content(:repeater) do |repeater_content|
|
13
|
-
= repeater_content.content :line
|
14
|
-
|
15
|
-
- images :image_collection do |image|
|
16
|
-
= content.image_tag image, resize: '50x50'
|
17
|
-
|
18
|
-
- repeater :repeater do |project|
|
19
|
-
= project.content.html :line
|
20
|
-
= project.content.image_tag :image, resize: '50x50'
|
@@ -1,11 +0,0 @@
|
|
1
|
-
!!!
|
2
|
-
%html
|
3
|
-
%head
|
4
|
-
%title= current_account.name
|
5
|
-
= stylesheet_link_tag 'demo/application', media: 'all', 'data-turbolinks-track' => true
|
6
|
-
= csrf_meta_tags
|
7
|
-
%body
|
8
|
-
.container
|
9
|
-
= render 'demo/shared/languages'
|
10
|
-
= render 'demo/shared/navigation'
|
11
|
-
= yield
|
@@ -1,85 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* --------------------------------------------------------------------
|
3
|
-
* jQuery customfileinput plugin
|
4
|
-
* Author: Scott Jehl, scott@filamentgroup.com
|
5
|
-
* Copyright (c) 2009 Filament Group
|
6
|
-
* licensed under MIT (filamentgroup.com/examples/mit-license.txt)
|
7
|
-
* --------------------------------------------------------------------
|
8
|
-
*/
|
9
|
-
$.fn.customFileInput = function(){
|
10
|
-
//apply events and styles for file input element
|
11
|
-
var fileInput = $(this)
|
12
|
-
.addClass('customfile-input') //add class for CSS
|
13
|
-
.mouseover(function(){ upload.addClass('customfile-hover'); })
|
14
|
-
.mouseout(function(){ upload.removeClass('customfile-hover'); })
|
15
|
-
.focus(function(){
|
16
|
-
upload.addClass('customfile-focus');
|
17
|
-
fileInput.data('val', fileInput.val());
|
18
|
-
})
|
19
|
-
.blur(function(){
|
20
|
-
upload.removeClass('customfile-focus');
|
21
|
-
$(this).trigger('checkChange');
|
22
|
-
})
|
23
|
-
.bind('disable',function(){
|
24
|
-
fileInput.attr('disabled',true);
|
25
|
-
upload.addClass('customfile-disabled');
|
26
|
-
})
|
27
|
-
.bind('enable',function(){
|
28
|
-
fileInput.removeAttr('disabled');
|
29
|
-
upload.removeClass('customfile-disabled');
|
30
|
-
})
|
31
|
-
.bind('checkChange', function(){
|
32
|
-
if(fileInput.val() && fileInput.val() != fileInput.data('val')){
|
33
|
-
fileInput.trigger('change');
|
34
|
-
}
|
35
|
-
})
|
36
|
-
.bind('change',function(){
|
37
|
-
//get file name
|
38
|
-
var fileName = $(this).val().split(/\\/).pop();
|
39
|
-
//get file extension
|
40
|
-
var fileExt = 'customfile-ext-' + fileName.split('.').pop().toLowerCase();
|
41
|
-
//update the feedback
|
42
|
-
uploadFeedback
|
43
|
-
.text(fileName) //set feedback text to filename
|
44
|
-
.removeClass(uploadFeedback.data('fileExt') || '') //remove any existing file extension class
|
45
|
-
.addClass(fileExt) //add file extension class
|
46
|
-
.data('fileExt', fileExt) //store file extension for class removal on next change
|
47
|
-
.addClass('customfile-feedback-populated'); //add class to show populated state
|
48
|
-
//change text of button
|
49
|
-
uploadButton.text('Kies een bestand');
|
50
|
-
})
|
51
|
-
.click(function(){ //for IE and Opera, make sure change fires after choosing a file, using an async callback
|
52
|
-
fileInput.data('val', fileInput.val());
|
53
|
-
setTimeout(function(){
|
54
|
-
fileInput.trigger('checkChange');
|
55
|
-
},100);
|
56
|
-
});
|
57
|
-
|
58
|
-
//create custom control container
|
59
|
-
var upload = $('<div class="customfile"></div>');
|
60
|
-
//create custom control button
|
61
|
-
var uploadButton = $('<span class="customfile-button" aria-hidden="true">voeg foto toe</span>').appendTo(upload);
|
62
|
-
//create custom control feedback
|
63
|
-
var uploadFeedback = $('<span class="customfile-feedback" aria-hidden="true">Geen bestand geselecteerd...</span>').appendTo(upload);
|
64
|
-
|
65
|
-
//match disabled state
|
66
|
-
if(fileInput.is('[disabled]')){
|
67
|
-
fileInput.trigger('disable');
|
68
|
-
}
|
69
|
-
|
70
|
-
|
71
|
-
//on mousemove, keep file input under the cursor to steal click
|
72
|
-
upload
|
73
|
-
.mousemove(function(e){
|
74
|
-
fileInput.css({
|
75
|
-
'left': e.pageX - upload.offset().left - fileInput.outerWidth() + 20, //position right side 20px right of cursor X)
|
76
|
-
'top': e.pageY - upload.offset().top - $(window).scrollTop() - 3
|
77
|
-
});
|
78
|
-
})
|
79
|
-
.insertAfter(fileInput); //insert after the input
|
80
|
-
|
81
|
-
fileInput.appendTo(upload);
|
82
|
-
|
83
|
-
//return jQuery
|
84
|
-
return $(this);
|
85
|
-
};
|
@@ -1,485 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Nestable jQuery Plugin - Copyright (c) 2012 David Bushell - http://dbushell.com/
|
3
|
-
* Dual-licensed under the BSD or MIT licenses
|
4
|
-
*/
|
5
|
-
;(function($, window, document, undefined)
|
6
|
-
{
|
7
|
-
var hasTouch = 'ontouchstart' in window;
|
8
|
-
|
9
|
-
/**
|
10
|
-
* Detect CSS pointer-events property
|
11
|
-
* events are normally disabled on the dragging element to avoid conflicts
|
12
|
-
* https://github.com/ausi/Feature-detection-technique-for-pointer-events/blob/master/modernizr-pointerevents.js
|
13
|
-
*/
|
14
|
-
var hasPointerEvents = (function()
|
15
|
-
{
|
16
|
-
var el = document.createElement('div'),
|
17
|
-
docEl = document.documentElement;
|
18
|
-
if (!('pointerEvents' in el.style)) {
|
19
|
-
return false;
|
20
|
-
}
|
21
|
-
el.style.pointerEvents = 'auto';
|
22
|
-
el.style.pointerEvents = 'x';
|
23
|
-
docEl.appendChild(el);
|
24
|
-
var supports = window.getComputedStyle && window.getComputedStyle(el, '').pointerEvents === 'auto';
|
25
|
-
docEl.removeChild(el);
|
26
|
-
return !!supports;
|
27
|
-
})();
|
28
|
-
|
29
|
-
var eStart = hasTouch ? 'touchstart' : 'mousedown',
|
30
|
-
eMove = hasTouch ? 'touchmove' : 'mousemove',
|
31
|
-
eEnd = hasTouch ? 'touchend' : 'mouseup';
|
32
|
-
eCancel = hasTouch ? 'touchcancel' : 'mouseup';
|
33
|
-
|
34
|
-
var defaults = {
|
35
|
-
listNodeName : 'ol',
|
36
|
-
itemNodeName : 'li',
|
37
|
-
rootClass : 'dd',
|
38
|
-
listClass : 'dd-list',
|
39
|
-
itemClass : 'dd-item',
|
40
|
-
dragClass : 'dd-dragel',
|
41
|
-
handleClass : 'dd-handle',
|
42
|
-
collapsedClass : 'dd-collapsed',
|
43
|
-
placeClass : 'dd-placeholder',
|
44
|
-
noDragClass : 'dd-nodrag',
|
45
|
-
emptyClass : 'dd-empty',
|
46
|
-
expandBtnHTML : '<button data-action="expand" type="button">Expand</button>',
|
47
|
-
collapseBtnHTML : '<button data-action="collapse" type="button">Collapse</button>',
|
48
|
-
group : 0,
|
49
|
-
maxDepth : 5,
|
50
|
-
threshold : 20
|
51
|
-
};
|
52
|
-
|
53
|
-
function Plugin(element, options)
|
54
|
-
{
|
55
|
-
this.w = $(window);
|
56
|
-
this.el = $(element);
|
57
|
-
this.options = $.extend({}, defaults, options);
|
58
|
-
this.init();
|
59
|
-
}
|
60
|
-
|
61
|
-
Plugin.prototype = {
|
62
|
-
|
63
|
-
init: function()
|
64
|
-
{
|
65
|
-
var list = this;
|
66
|
-
|
67
|
-
list.reset();
|
68
|
-
|
69
|
-
list.el.data('nestable-group', this.options.group);
|
70
|
-
|
71
|
-
list.placeEl = $('<div class="' + list.options.placeClass + '"/>');
|
72
|
-
|
73
|
-
$.each(this.el.find(list.options.itemNodeName), function(k, el) {
|
74
|
-
list.setParent($(el));
|
75
|
-
});
|
76
|
-
|
77
|
-
list.el.on('click', 'button', function(e) {
|
78
|
-
if (list.dragEl || (!hasTouch && e.button !== 0)) {
|
79
|
-
return;
|
80
|
-
}
|
81
|
-
var target = $(e.currentTarget),
|
82
|
-
action = target.data('action'),
|
83
|
-
item = target.parent(list.options.itemNodeName);
|
84
|
-
if (action === 'collapse') {
|
85
|
-
list.collapseItem(item);
|
86
|
-
}
|
87
|
-
if (action === 'expand') {
|
88
|
-
list.expandItem(item);
|
89
|
-
}
|
90
|
-
});
|
91
|
-
|
92
|
-
var onStartEvent = function(e)
|
93
|
-
{
|
94
|
-
var handle = $(e.target);
|
95
|
-
if (!handle.hasClass(list.options.handleClass)) {
|
96
|
-
if (handle.closest('.' + list.options.noDragClass).length) {
|
97
|
-
return;
|
98
|
-
}
|
99
|
-
handle = handle.closest('.' + list.options.handleClass);
|
100
|
-
}
|
101
|
-
if (!handle.length || list.dragEl || (!hasTouch && e.button !== 0) || (hasTouch && e.touches.length !== 1)) {
|
102
|
-
return;
|
103
|
-
}
|
104
|
-
e.preventDefault();
|
105
|
-
list.dragStart(hasTouch ? e.touches[0] : e);
|
106
|
-
};
|
107
|
-
|
108
|
-
var onMoveEvent = function(e)
|
109
|
-
{
|
110
|
-
if (list.dragEl) {
|
111
|
-
e.preventDefault();
|
112
|
-
list.dragMove(hasTouch ? e.touches[0] : e);
|
113
|
-
}
|
114
|
-
};
|
115
|
-
|
116
|
-
var onEndEvent = function(e)
|
117
|
-
{
|
118
|
-
if (list.dragEl) {
|
119
|
-
e.preventDefault();
|
120
|
-
list.dragStop(hasTouch ? e.touches[0] : e);
|
121
|
-
}
|
122
|
-
};
|
123
|
-
|
124
|
-
if (hasTouch) {
|
125
|
-
list.el[0].addEventListener(eStart, onStartEvent, false);
|
126
|
-
window.addEventListener(eMove, onMoveEvent, false);
|
127
|
-
window.addEventListener(eEnd, onEndEvent, false);
|
128
|
-
window.addEventListener(eCancel, onEndEvent, false);
|
129
|
-
} else {
|
130
|
-
list.el.on(eStart, onStartEvent);
|
131
|
-
list.w.on(eMove, onMoveEvent);
|
132
|
-
list.w.on(eEnd, onEndEvent);
|
133
|
-
}
|
134
|
-
|
135
|
-
},
|
136
|
-
|
137
|
-
serialize: function()
|
138
|
-
{
|
139
|
-
var data,
|
140
|
-
depth = 0,
|
141
|
-
list = this;
|
142
|
-
step = function(level, depth)
|
143
|
-
{
|
144
|
-
var array = [ ],
|
145
|
-
items = level.children(list.options.itemNodeName);
|
146
|
-
items.each(function()
|
147
|
-
{
|
148
|
-
var li = $(this),
|
149
|
-
item = $.extend({}, li.data()),
|
150
|
-
sub = li.children(list.options.listNodeName);
|
151
|
-
if (sub.length) {
|
152
|
-
item.children = step(sub, depth + 1);
|
153
|
-
}
|
154
|
-
array.push(item);
|
155
|
-
});
|
156
|
-
return array;
|
157
|
-
};
|
158
|
-
data = step(list.el.find(list.options.listNodeName).first(), depth);
|
159
|
-
return data;
|
160
|
-
},
|
161
|
-
|
162
|
-
serialise: function()
|
163
|
-
{
|
164
|
-
return this.serialize();
|
165
|
-
},
|
166
|
-
|
167
|
-
reset: function()
|
168
|
-
{
|
169
|
-
this.mouse = {
|
170
|
-
offsetX : 0,
|
171
|
-
offsetY : 0,
|
172
|
-
startX : 0,
|
173
|
-
startY : 0,
|
174
|
-
lastX : 0,
|
175
|
-
lastY : 0,
|
176
|
-
nowX : 0,
|
177
|
-
nowY : 0,
|
178
|
-
distX : 0,
|
179
|
-
distY : 0,
|
180
|
-
dirAx : 0,
|
181
|
-
dirX : 0,
|
182
|
-
dirY : 0,
|
183
|
-
lastDirX : 0,
|
184
|
-
lastDirY : 0,
|
185
|
-
distAxX : 0,
|
186
|
-
distAxY : 0
|
187
|
-
};
|
188
|
-
this.moving = false;
|
189
|
-
this.dragEl = null;
|
190
|
-
this.dragRootEl = null;
|
191
|
-
this.dragDepth = 0;
|
192
|
-
this.hasNewRoot = false;
|
193
|
-
this.pointEl = null;
|
194
|
-
},
|
195
|
-
|
196
|
-
expandItem: function(li)
|
197
|
-
{
|
198
|
-
li.removeClass(this.options.collapsedClass);
|
199
|
-
li.children('[data-action="expand"]').hide();
|
200
|
-
li.children('[data-action="collapse"]').show();
|
201
|
-
li.children(this.options.listNodeName).show();
|
202
|
-
},
|
203
|
-
|
204
|
-
collapseItem: function(li)
|
205
|
-
{
|
206
|
-
var lists = li.children(this.options.listNodeName);
|
207
|
-
if (lists.length) {
|
208
|
-
li.addClass(this.options.collapsedClass);
|
209
|
-
li.children('[data-action="collapse"]').hide();
|
210
|
-
li.children('[data-action="expand"]').show();
|
211
|
-
li.children(this.options.listNodeName).hide();
|
212
|
-
}
|
213
|
-
},
|
214
|
-
|
215
|
-
expandAll: function()
|
216
|
-
{
|
217
|
-
var list = this;
|
218
|
-
list.el.find(list.options.itemNodeName).each(function() {
|
219
|
-
list.expandItem($(this));
|
220
|
-
});
|
221
|
-
},
|
222
|
-
|
223
|
-
collapseAll: function()
|
224
|
-
{
|
225
|
-
var list = this;
|
226
|
-
list.el.find(list.options.itemNodeName).each(function() {
|
227
|
-
list.collapseItem($(this));
|
228
|
-
});
|
229
|
-
},
|
230
|
-
|
231
|
-
setParent: function(li)
|
232
|
-
{
|
233
|
-
if (li.children(this.options.listNodeName).length) {
|
234
|
-
li.prepend($(this.options.expandBtnHTML));
|
235
|
-
li.prepend($(this.options.collapseBtnHTML));
|
236
|
-
}
|
237
|
-
li.children('[data-action="expand"]').hide();
|
238
|
-
},
|
239
|
-
|
240
|
-
unsetParent: function(li)
|
241
|
-
{
|
242
|
-
li.removeClass(this.options.collapsedClass);
|
243
|
-
li.children('[data-action]').remove();
|
244
|
-
li.children(this.options.listNodeName).remove();
|
245
|
-
},
|
246
|
-
|
247
|
-
dragStart: function(e)
|
248
|
-
{
|
249
|
-
var mouse = this.mouse,
|
250
|
-
target = $(e.target),
|
251
|
-
dragItem = target.closest(this.options.itemNodeName);
|
252
|
-
|
253
|
-
this.placeEl.css('height', dragItem.height());
|
254
|
-
|
255
|
-
mouse.offsetX = e.offsetX !== undefined ? e.offsetX : e.pageX - target.offset().left;
|
256
|
-
mouse.offsetY = e.offsetY !== undefined ? e.offsetY : e.pageY - target.offset().top;
|
257
|
-
mouse.startX = mouse.lastX = e.pageX;
|
258
|
-
mouse.startY = mouse.lastY = e.pageY;
|
259
|
-
|
260
|
-
this.dragRootEl = this.el;
|
261
|
-
|
262
|
-
this.dragEl = $(document.createElement(this.options.listNodeName)).addClass(this.options.listClass + ' ' + this.options.dragClass);
|
263
|
-
this.dragEl.css('width', dragItem.width());
|
264
|
-
|
265
|
-
// fix for zepto.js
|
266
|
-
//dragItem.after(this.placeEl).detach().appendTo(this.dragEl);
|
267
|
-
dragItem.after(this.placeEl);
|
268
|
-
dragItem[0].parentNode.removeChild(dragItem[0]);
|
269
|
-
dragItem.appendTo(this.dragEl);
|
270
|
-
|
271
|
-
$(document.body).append(this.dragEl);
|
272
|
-
this.dragEl.css({
|
273
|
-
'left' : e.pageX - mouse.offsetX,
|
274
|
-
'top' : e.pageY - mouse.offsetY
|
275
|
-
});
|
276
|
-
// total depth of dragging item
|
277
|
-
var i, depth,
|
278
|
-
items = this.dragEl.find(this.options.itemNodeName);
|
279
|
-
for (i = 0; i < items.length; i++) {
|
280
|
-
depth = $(items[i]).parents(this.options.listNodeName).length;
|
281
|
-
if (depth > this.dragDepth) {
|
282
|
-
this.dragDepth = depth;
|
283
|
-
}
|
284
|
-
}
|
285
|
-
},
|
286
|
-
|
287
|
-
dragStop: function(e)
|
288
|
-
{
|
289
|
-
// fix for zepto.js
|
290
|
-
//this.placeEl.replaceWith(this.dragEl.children(this.options.itemNodeName + ':first').detach());
|
291
|
-
var el = this.dragEl.children(this.options.itemNodeName).first();
|
292
|
-
el[0].parentNode.removeChild(el[0]);
|
293
|
-
this.placeEl.replaceWith(el);
|
294
|
-
|
295
|
-
this.dragEl.remove();
|
296
|
-
this.el.trigger('change');
|
297
|
-
if (this.hasNewRoot) {
|
298
|
-
this.dragRootEl.trigger('change');
|
299
|
-
}
|
300
|
-
this.reset();
|
301
|
-
},
|
302
|
-
|
303
|
-
dragMove: function(e)
|
304
|
-
{
|
305
|
-
var list, parent, prev, next, depth,
|
306
|
-
opt = this.options,
|
307
|
-
mouse = this.mouse;
|
308
|
-
|
309
|
-
this.dragEl.css({
|
310
|
-
'left' : e.pageX - mouse.offsetX,
|
311
|
-
'top' : e.pageY - mouse.offsetY
|
312
|
-
});
|
313
|
-
|
314
|
-
// mouse position last events
|
315
|
-
mouse.lastX = mouse.nowX;
|
316
|
-
mouse.lastY = mouse.nowY;
|
317
|
-
// mouse position this events
|
318
|
-
mouse.nowX = e.pageX;
|
319
|
-
mouse.nowY = e.pageY;
|
320
|
-
// distance mouse moved between events
|
321
|
-
mouse.distX = mouse.nowX - mouse.lastX;
|
322
|
-
mouse.distY = mouse.nowY - mouse.lastY;
|
323
|
-
// direction mouse was moving
|
324
|
-
mouse.lastDirX = mouse.dirX;
|
325
|
-
mouse.lastDirY = mouse.dirY;
|
326
|
-
// direction mouse is now moving (on both axis)
|
327
|
-
mouse.dirX = mouse.distX === 0 ? 0 : mouse.distX > 0 ? 1 : -1;
|
328
|
-
mouse.dirY = mouse.distY === 0 ? 0 : mouse.distY > 0 ? 1 : -1;
|
329
|
-
// axis mouse is now moving on
|
330
|
-
var newAx = Math.abs(mouse.distX) > Math.abs(mouse.distY) ? 1 : 0;
|
331
|
-
|
332
|
-
// do nothing on first move
|
333
|
-
if (!mouse.moving) {
|
334
|
-
mouse.dirAx = newAx;
|
335
|
-
mouse.moving = true;
|
336
|
-
return;
|
337
|
-
}
|
338
|
-
|
339
|
-
// calc distance moved on this axis (and direction)
|
340
|
-
if (mouse.dirAx !== newAx) {
|
341
|
-
mouse.distAxX = 0;
|
342
|
-
mouse.distAxY = 0;
|
343
|
-
} else {
|
344
|
-
mouse.distAxX += Math.abs(mouse.distX);
|
345
|
-
if (mouse.dirX !== 0 && mouse.dirX !== mouse.lastDirX) {
|
346
|
-
mouse.distAxX = 0;
|
347
|
-
}
|
348
|
-
mouse.distAxY += Math.abs(mouse.distY);
|
349
|
-
if (mouse.dirY !== 0 && mouse.dirY !== mouse.lastDirY) {
|
350
|
-
mouse.distAxY = 0;
|
351
|
-
}
|
352
|
-
}
|
353
|
-
mouse.dirAx = newAx;
|
354
|
-
|
355
|
-
/**
|
356
|
-
* move horizontal
|
357
|
-
*/
|
358
|
-
if (mouse.dirAx && mouse.distAxX >= opt.threshold) {
|
359
|
-
// reset move distance on x-axis for new phase
|
360
|
-
mouse.distAxX = 0;
|
361
|
-
prev = this.placeEl.prev(opt.itemNodeName);
|
362
|
-
// increase horizontal level if previous sibling exists and is not collapsed
|
363
|
-
if (mouse.distX > 0 && prev.length && !prev.hasClass(opt.collapsedClass)) {
|
364
|
-
// cannot increase level when item above is collapsed
|
365
|
-
list = prev.find(opt.listNodeName).last();
|
366
|
-
// check if depth limit has reached
|
367
|
-
depth = this.placeEl.parents(opt.listNodeName).length;
|
368
|
-
if (depth + this.dragDepth <= opt.maxDepth) {
|
369
|
-
// create new sub-level if one doesn't exist
|
370
|
-
if (!list.length) {
|
371
|
-
list = $('<' + opt.listNodeName + '/>').addClass(opt.listClass);
|
372
|
-
list.append(this.placeEl);
|
373
|
-
prev.append(list);
|
374
|
-
this.setParent(prev);
|
375
|
-
} else {
|
376
|
-
// else append to next level up
|
377
|
-
list = prev.children(opt.listNodeName).last();
|
378
|
-
list.append(this.placeEl);
|
379
|
-
}
|
380
|
-
}
|
381
|
-
}
|
382
|
-
// decrease horizontal level
|
383
|
-
if (mouse.distX < 0) {
|
384
|
-
// we can't decrease a level if an item preceeds the current one
|
385
|
-
next = this.placeEl.next(opt.itemNodeName);
|
386
|
-
if (!next.length) {
|
387
|
-
parent = this.placeEl.parent();
|
388
|
-
this.placeEl.closest(opt.itemNodeName).after(this.placeEl);
|
389
|
-
if (!parent.children().length) {
|
390
|
-
this.unsetParent(parent.parent());
|
391
|
-
}
|
392
|
-
}
|
393
|
-
}
|
394
|
-
}
|
395
|
-
|
396
|
-
var isEmpty = false;
|
397
|
-
|
398
|
-
// find list item under cursor
|
399
|
-
if (!hasPointerEvents) {
|
400
|
-
this.dragEl[0].style.visibility = 'hidden';
|
401
|
-
}
|
402
|
-
this.pointEl = $(document.elementFromPoint(e.pageX - document.body.scrollLeft, e.pageY - (window.pageYOffset || document.documentElement.scrollTop)));
|
403
|
-
if (!hasPointerEvents) {
|
404
|
-
this.dragEl[0].style.visibility = 'visible';
|
405
|
-
}
|
406
|
-
if (this.pointEl.hasClass(opt.handleClass)) {
|
407
|
-
this.pointEl = this.pointEl.parent(opt.itemNodeName);
|
408
|
-
}
|
409
|
-
if (this.pointEl.hasClass(opt.emptyClass)) {
|
410
|
-
isEmpty = true;
|
411
|
-
}
|
412
|
-
else if (!this.pointEl.length || !this.pointEl.hasClass(opt.itemClass)) {
|
413
|
-
return;
|
414
|
-
}
|
415
|
-
|
416
|
-
// find parent list of item under cursor
|
417
|
-
var pointElRoot = this.pointEl.closest('.' + opt.rootClass),
|
418
|
-
isNewRoot = this.dragRootEl.data('nestable-id') !== pointElRoot.data('nestable-id');
|
419
|
-
|
420
|
-
/**
|
421
|
-
* move vertical
|
422
|
-
*/
|
423
|
-
if (!mouse.dirAx || isNewRoot || isEmpty) {
|
424
|
-
// check if groups match if dragging over new root
|
425
|
-
if (isNewRoot && opt.group !== pointElRoot.data('nestable-group')) {
|
426
|
-
return;
|
427
|
-
}
|
428
|
-
// check depth limit
|
429
|
-
depth = this.dragDepth - 1 + this.pointEl.parents(opt.listNodeName).length;
|
430
|
-
if (depth > opt.maxDepth) {
|
431
|
-
return;
|
432
|
-
}
|
433
|
-
var before = e.pageY < (this.pointEl.offset().top + this.pointEl.height() / 2);
|
434
|
-
parent = this.placeEl.parent();
|
435
|
-
// if empty create new list to replace empty placeholder
|
436
|
-
if (isEmpty) {
|
437
|
-
list = $(document.createElement(opt.listNodeName)).addClass(opt.listClass);
|
438
|
-
list.append(this.placeEl);
|
439
|
-
this.pointEl.replaceWith(list);
|
440
|
-
}
|
441
|
-
else if (before) {
|
442
|
-
this.pointEl.before(this.placeEl);
|
443
|
-
}
|
444
|
-
else {
|
445
|
-
this.pointEl.after(this.placeEl);
|
446
|
-
}
|
447
|
-
if (!parent.children().length) {
|
448
|
-
this.unsetParent(parent.parent());
|
449
|
-
}
|
450
|
-
if (!this.dragRootEl.find(opt.itemNodeName).length) {
|
451
|
-
this.dragRootEl.append('<div class="' + opt.emptyClass + '"/>');
|
452
|
-
}
|
453
|
-
// parent root list has changed
|
454
|
-
if (isNewRoot) {
|
455
|
-
this.dragRootEl = pointElRoot;
|
456
|
-
this.hasNewRoot = this.el[0] !== this.dragRootEl[0];
|
457
|
-
}
|
458
|
-
}
|
459
|
-
}
|
460
|
-
|
461
|
-
};
|
462
|
-
|
463
|
-
$.fn.nestable = function(params)
|
464
|
-
{
|
465
|
-
var lists = this,
|
466
|
-
retval = this;
|
467
|
-
|
468
|
-
lists.each(function()
|
469
|
-
{
|
470
|
-
var plugin = $(this).data("nestable");
|
471
|
-
|
472
|
-
if (!plugin) {
|
473
|
-
$(this).data("nestable", new Plugin(this, params));
|
474
|
-
$(this).data("nestable-id", new Date().getTime());
|
475
|
-
} else {
|
476
|
-
if (typeof params === 'string' && typeof plugin[params] === 'function') {
|
477
|
-
retval = plugin[params]();
|
478
|
-
}
|
479
|
-
}
|
480
|
-
});
|
481
|
-
|
482
|
-
return retval || lists;
|
483
|
-
};
|
484
|
-
|
485
|
-
})(window.jQuery || window.Zepto, window, document);
|