├── .DS_Store ├── .replit ├── LICENSE ├── README.md ├── app ├── .DS_Store ├── cssQuickCommands.json ├── dist │ ├── .DS_Store │ ├── App.min.js │ ├── App.min.js.map │ └── style.css ├── imgs │ ├── .DS_Store │ ├── button.gif │ ├── demo.png │ ├── frameworks │ │ ├── alpine.svg │ │ ├── bootstrap-5.svg │ │ ├── bulma.svg │ │ ├── foundation.svg │ │ ├── materialize.svg │ │ ├── pico-css.svg │ │ ├── polyui.svg │ │ ├── semantic-ui.svg │ │ ├── tailwind.svg │ │ └── uikit.svg │ ├── header.png │ ├── icon-192x192.png │ ├── icon-256x256.png │ ├── icon-384x384.png │ ├── icon-512x512.png │ ├── icon.svg │ ├── logo.svg │ ├── make-work-awesome.gif │ ├── preview.png │ ├── responsive.gif │ ├── responsive.mp4 │ ├── screenshot-todo-app.jpeg │ ├── screenshot.jpeg │ └── screenshot.png ├── index.html ├── json │ ├── .DS_Store │ ├── alpinejs-todolist.json │ ├── bootstrap-landing-page-demo.json │ ├── cssbuttonhoverdemo.json │ ├── csstextanimation-Polyrise.json │ └── samplesitedemo.json ├── libraries │ ├── .DS_Store │ ├── font-awesome │ │ ├── LICENSE.txt │ │ ├── css │ │ │ ├── all.css │ │ │ ├── all.min.css │ │ │ ├── brands.css │ │ │ ├── brands.min.css │ │ │ ├── fontawesome.css │ │ │ ├── fontawesome.min.css │ │ │ ├── regular.css │ │ │ ├── regular.min.css │ │ │ ├── solid.css │ │ │ ├── solid.min.css │ │ │ ├── svg-with-js.css │ │ │ ├── svg-with-js.min.css │ │ │ ├── v4-font-face.css │ │ │ ├── v4-font-face.min.css │ │ │ ├── v4-shims.css │ │ │ ├── v4-shims.min.css │ │ │ ├── v5-font-face.css │ │ │ └── v5-font-face.min.css │ │ ├── js │ │ │ ├── all.js │ │ │ ├── all.min.js │ │ │ ├── brands.js │ │ │ ├── brands.min.js │ │ │ ├── conflict-detection.js │ │ │ ├── conflict-detection.min.js │ │ │ ├── fontawesome.js │ │ │ ├── fontawesome.min.js │ │ │ ├── regular.js │ │ │ ├── regular.min.js │ │ │ ├── solid.js │ │ │ ├── solid.min.js │ │ │ ├── v4-shims.js │ │ │ └── v4-shims.min.js │ │ └── webfonts │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-solid-900.woff2 │ │ │ ├── fa-v4compatibility.ttf │ │ │ └── fa-v4compatibility.woff2 │ ├── html2canvas │ │ └── html2canvas.min.js │ ├── jszip │ │ ├── FileSaver.min.js │ │ └── jszip.min.js │ ├── lz-string │ │ ├── .DS_Store │ │ └── lz-string.min.js │ ├── pickr │ │ ├── pickr.es5.min.js │ │ ├── pickr.min.js │ │ └── themes │ │ │ ├── classic.min.css │ │ │ ├── monolith.min.css │ │ │ └── nano.min.css │ ├── pico │ │ ├── css │ │ │ ├── pico.amber.css │ │ │ ├── pico.amber.min.css │ │ │ ├── pico.blue.css │ │ │ ├── pico.blue.min.css │ │ │ ├── pico.classless.amber.css │ │ │ ├── pico.classless.amber.min.css │ │ │ ├── pico.classless.blue.css │ │ │ ├── pico.classless.blue.min.css │ │ │ ├── pico.classless.conditional.amber.css │ │ │ ├── pico.classless.conditional.amber.min.css │ │ │ ├── pico.classless.conditional.blue.css │ │ │ ├── pico.classless.conditional.blue.min.css │ │ │ ├── pico.classless.conditional.cyan.css │ │ │ ├── pico.classless.conditional.cyan.min.css │ │ │ ├── pico.classless.conditional.fuchsia.css │ │ │ ├── pico.classless.conditional.fuchsia.min.css │ │ │ ├── pico.classless.conditional.green.css │ │ │ ├── pico.classless.conditional.green.min.css │ │ │ ├── pico.classless.conditional.grey.css │ │ │ ├── pico.classless.conditional.grey.min.css │ │ │ ├── pico.classless.conditional.indigo.css │ │ │ ├── pico.classless.conditional.indigo.min.css │ │ │ ├── pico.classless.conditional.jade.css │ │ │ ├── pico.classless.conditional.jade.min.css │ │ │ ├── pico.classless.conditional.lime.css │ │ │ ├── pico.classless.conditional.lime.min.css │ │ │ ├── pico.classless.conditional.orange.css │ │ │ ├── pico.classless.conditional.orange.min.css │ │ │ ├── pico.classless.conditional.pink.css │ │ │ ├── pico.classless.conditional.pink.min.css │ │ │ ├── pico.classless.conditional.pumpkin.css │ │ │ ├── pico.classless.conditional.pumpkin.min.css │ │ │ ├── pico.classless.conditional.purple.css │ │ │ ├── pico.classless.conditional.purple.min.css │ │ │ ├── pico.classless.conditional.red.css │ │ │ ├── pico.classless.conditional.red.min.css │ │ │ ├── pico.classless.conditional.sand.css │ │ │ ├── pico.classless.conditional.sand.min.css │ │ │ ├── pico.classless.conditional.slate.css │ │ │ ├── pico.classless.conditional.slate.min.css │ │ │ ├── pico.classless.conditional.violet.css │ │ │ ├── pico.classless.conditional.violet.min.css │ │ │ ├── pico.classless.conditional.yellow.css │ │ │ ├── pico.classless.conditional.yellow.min.css │ │ │ ├── pico.classless.conditional.zinc.css │ │ │ ├── pico.classless.conditional.zinc.min.css │ │ │ ├── pico.classless.css │ │ │ ├── pico.classless.cyan.css │ │ │ ├── pico.classless.cyan.min.css │ │ │ ├── pico.classless.fuchsia.css │ │ │ ├── pico.classless.fuchsia.min.css │ │ │ ├── pico.classless.green.css │ │ │ ├── pico.classless.green.min.css │ │ │ ├── pico.classless.grey.css │ │ │ ├── pico.classless.grey.min.css │ │ │ ├── pico.classless.indigo.css │ │ │ ├── pico.classless.indigo.min.css │ │ │ ├── pico.classless.jade.css │ │ │ ├── pico.classless.jade.min.css │ │ │ ├── pico.classless.lime.css │ │ │ ├── pico.classless.lime.min.css │ │ │ ├── pico.classless.min.css │ │ │ ├── pico.classless.orange.css │ │ │ ├── pico.classless.orange.min.css │ │ │ ├── pico.classless.pink.css │ │ │ ├── pico.classless.pink.min.css │ │ │ ├── pico.classless.pumpkin.css │ │ │ ├── pico.classless.pumpkin.min.css │ │ │ ├── pico.classless.purple.css │ │ │ ├── pico.classless.purple.min.css │ │ │ ├── pico.classless.red.css │ │ │ ├── pico.classless.red.min.css │ │ │ ├── pico.classless.sand.css │ │ │ ├── pico.classless.sand.min.css │ │ │ ├── pico.classless.slate.css │ │ │ ├── pico.classless.slate.min.css │ │ │ ├── pico.classless.violet.css │ │ │ ├── pico.classless.violet.min.css │ │ │ ├── pico.classless.yellow.css │ │ │ ├── pico.classless.yellow.min.css │ │ │ ├── pico.classless.zinc.css │ │ │ ├── pico.classless.zinc.min.css │ │ │ ├── pico.colors.css │ │ │ ├── pico.colors.min.css │ │ │ ├── pico.conditional.amber.css │ │ │ ├── pico.conditional.amber.min.css │ │ │ ├── pico.conditional.blue.css │ │ │ ├── pico.conditional.blue.min.css │ │ │ ├── pico.conditional.css │ │ │ ├── pico.conditional.cyan.css │ │ │ ├── pico.conditional.cyan.min.css │ │ │ ├── pico.conditional.fuchsia.css │ │ │ ├── pico.conditional.fuchsia.min.css │ │ │ ├── pico.conditional.green.css │ │ │ ├── pico.conditional.green.min.css │ │ │ ├── pico.conditional.grey.css │ │ │ ├── pico.conditional.grey.min.css │ │ │ ├── pico.conditional.indigo.css │ │ │ ├── pico.conditional.indigo.min.css │ │ │ ├── pico.conditional.jade.css │ │ │ ├── pico.conditional.jade.min.css │ │ │ ├── pico.conditional.lime.css │ │ │ ├── pico.conditional.lime.min.css │ │ │ ├── pico.conditional.min.css │ │ │ ├── pico.conditional.orange.css │ │ │ ├── pico.conditional.orange.min.css │ │ │ ├── pico.conditional.pink.css │ │ │ ├── pico.conditional.pink.min.css │ │ │ ├── pico.conditional.pumpkin.css │ │ │ ├── pico.conditional.pumpkin.min.css │ │ │ ├── pico.conditional.purple.css │ │ │ ├── pico.conditional.purple.min.css │ │ │ ├── pico.conditional.red.css │ │ │ ├── pico.conditional.red.min.css │ │ │ ├── pico.conditional.sand.css │ │ │ ├── pico.conditional.sand.min.css │ │ │ ├── pico.conditional.slate.css │ │ │ ├── pico.conditional.slate.min.css │ │ │ ├── pico.conditional.violet.css │ │ │ ├── pico.conditional.violet.min.css │ │ │ ├── pico.conditional.yellow.css │ │ │ ├── pico.conditional.yellow.min.css │ │ │ ├── pico.conditional.zinc.css │ │ │ ├── pico.conditional.zinc.min.css │ │ │ ├── pico.css │ │ │ ├── pico.cyan.css │ │ │ ├── pico.cyan.min.css │ │ │ ├── pico.fluid.classless.amber.css │ │ │ ├── pico.fluid.classless.amber.min.css │ │ │ ├── pico.fluid.classless.blue.css │ │ │ ├── pico.fluid.classless.blue.min.css │ │ │ ├── pico.fluid.classless.conditional.amber.css │ │ │ ├── pico.fluid.classless.conditional.amber.min.css │ │ │ ├── pico.fluid.classless.conditional.blue.css │ │ │ ├── pico.fluid.classless.conditional.blue.min.css │ │ │ ├── pico.fluid.classless.conditional.cyan.css │ │ │ ├── pico.fluid.classless.conditional.cyan.min.css │ │ │ ├── pico.fluid.classless.conditional.fuchsia.css │ │ │ ├── pico.fluid.classless.conditional.fuchsia.min.css │ │ │ ├── pico.fluid.classless.conditional.green.css │ │ │ ├── pico.fluid.classless.conditional.green.min.css │ │ │ ├── pico.fluid.classless.conditional.grey.css │ │ │ ├── pico.fluid.classless.conditional.grey.min.css │ │ │ ├── pico.fluid.classless.conditional.indigo.css │ │ │ ├── pico.fluid.classless.conditional.indigo.min.css │ │ │ ├── pico.fluid.classless.conditional.jade.css │ │ │ ├── pico.fluid.classless.conditional.jade.min.css │ │ │ ├── pico.fluid.classless.conditional.lime.css │ │ │ ├── pico.fluid.classless.conditional.lime.min.css │ │ │ ├── pico.fluid.classless.conditional.orange.css │ │ │ ├── pico.fluid.classless.conditional.orange.min.css │ │ │ ├── pico.fluid.classless.conditional.pink.css │ │ │ ├── pico.fluid.classless.conditional.pink.min.css │ │ │ ├── pico.fluid.classless.conditional.pumpkin.css │ │ │ ├── pico.fluid.classless.conditional.pumpkin.min.css │ │ │ ├── pico.fluid.classless.conditional.purple.css │ │ │ ├── pico.fluid.classless.conditional.purple.min.css │ │ │ ├── pico.fluid.classless.conditional.red.css │ │ │ ├── pico.fluid.classless.conditional.red.min.css │ │ │ ├── pico.fluid.classless.conditional.sand.css │ │ │ ├── pico.fluid.classless.conditional.sand.min.css │ │ │ ├── pico.fluid.classless.conditional.slate.css │ │ │ ├── pico.fluid.classless.conditional.slate.min.css │ │ │ ├── pico.fluid.classless.conditional.violet.css │ │ │ ├── pico.fluid.classless.conditional.violet.min.css │ │ │ ├── pico.fluid.classless.conditional.yellow.css │ │ │ ├── pico.fluid.classless.conditional.yellow.min.css │ │ │ ├── pico.fluid.classless.conditional.zinc.css │ │ │ ├── pico.fluid.classless.conditional.zinc.min.css │ │ │ ├── pico.fluid.classless.css │ │ │ ├── pico.fluid.classless.cyan.css │ │ │ ├── pico.fluid.classless.cyan.min.css │ │ │ ├── pico.fluid.classless.fuchsia.css │ │ │ ├── pico.fluid.classless.fuchsia.min.css │ │ │ ├── pico.fluid.classless.green.css │ │ │ ├── pico.fluid.classless.green.min.css │ │ │ ├── pico.fluid.classless.grey.css │ │ │ ├── pico.fluid.classless.grey.min.css │ │ │ ├── pico.fluid.classless.indigo.css │ │ │ ├── pico.fluid.classless.indigo.min.css │ │ │ ├── pico.fluid.classless.jade.css │ │ │ ├── pico.fluid.classless.jade.min.css │ │ │ ├── pico.fluid.classless.lime.css │ │ │ ├── pico.fluid.classless.lime.min.css │ │ │ ├── pico.fluid.classless.min.css │ │ │ ├── pico.fluid.classless.orange.css │ │ │ ├── pico.fluid.classless.orange.min.css │ │ │ ├── pico.fluid.classless.pink.css │ │ │ ├── pico.fluid.classless.pink.min.css │ │ │ ├── pico.fluid.classless.pumpkin.css │ │ │ ├── pico.fluid.classless.pumpkin.min.css │ │ │ ├── pico.fluid.classless.purple.css │ │ │ ├── pico.fluid.classless.purple.min.css │ │ │ ├── pico.fluid.classless.red.css │ │ │ ├── pico.fluid.classless.red.min.css │ │ │ ├── pico.fluid.classless.sand.css │ │ │ ├── pico.fluid.classless.sand.min.css │ │ │ ├── pico.fluid.classless.slate.css │ │ │ ├── pico.fluid.classless.slate.min.css │ │ │ ├── pico.fluid.classless.violet.css │ │ │ ├── pico.fluid.classless.violet.min.css │ │ │ ├── pico.fluid.classless.yellow.css │ │ │ ├── pico.fluid.classless.yellow.min.css │ │ │ ├── pico.fluid.classless.zinc.css │ │ │ ├── pico.fluid.classless.zinc.min.css │ │ │ ├── pico.fuchsia.css │ │ │ ├── pico.fuchsia.min.css │ │ │ ├── pico.green.css │ │ │ ├── pico.green.min.css │ │ │ ├── pico.grey.css │ │ │ ├── pico.grey.min.css │ │ │ ├── pico.indigo.css │ │ │ ├── pico.indigo.min.css │ │ │ ├── pico.jade.css │ │ │ ├── pico.jade.min.css │ │ │ ├── pico.lime.css │ │ │ ├── pico.lime.min.css │ │ │ ├── pico.min.css │ │ │ ├── pico.orange.css │ │ │ ├── pico.orange.min.css │ │ │ ├── pico.pink.css │ │ │ ├── pico.pink.min.css │ │ │ ├── pico.pumpkin.css │ │ │ ├── pico.pumpkin.min.css │ │ │ ├── pico.purple.css │ │ │ ├── pico.purple.min.css │ │ │ ├── pico.red.css │ │ │ ├── pico.red.min.css │ │ │ ├── pico.sand.css │ │ │ ├── pico.sand.min.css │ │ │ ├── pico.slate.css │ │ │ ├── pico.slate.min.css │ │ │ ├── pico.violet.css │ │ │ ├── pico.violet.min.css │ │ │ ├── pico.yellow.css │ │ │ ├── pico.yellow.min.css │ │ │ ├── pico.zinc.css │ │ │ ├── pico.zinc.min.css │ │ │ └── postcss.config.js │ │ ├── pico.classless.css │ │ ├── pico.classless.min.css │ │ ├── pico.classless.mod.css │ │ ├── pico.min-orig.css │ │ └── pico.min.css │ ├── sortablejs │ │ └── Sortable.min.js │ └── tailwind │ │ ├── tailwind-mod-noreset.min.js │ │ ├── tailwind-mod.min.css │ │ ├── tailwind-mod.min.js │ │ ├── tailwind.min.css │ │ └── tailwind.min.js ├── manifest.json ├── media │ ├── .DS_Store │ ├── github.svg │ ├── multiplatform.svg │ ├── polyrise-desktop.gif │ ├── polyrise-desktop.mp4 │ ├── polyrise-desktop.png │ ├── polyrise-desktop.webm │ ├── polyrise-desktop.webp │ ├── polyrise-mobile.gif │ ├── polyrise-mobile.mp4 │ └── polyrise-mobile.webm ├── package.json ├── postcss.config.cjs ├── src │ ├── .DS_Store │ ├── App.js │ ├── concat.js │ ├── cssQuickCommands.json │ └── style.css ├── sw.js └── tailwind.config.js ├── dist ├── .DS_Store ├── bundle.css ├── bundle.js └── old-bundle.css ├── imgs ├── .DS_Store ├── author.jpg ├── button.gif ├── header-transparent.png ├── header.png ├── header.psd ├── header.svg ├── icon-192x192.png ├── icon-256x256.png ├── icon-384x384.png ├── icon-512x512.png ├── icon-color.svg ├── icon-lines.svg ├── icon.svg ├── logo.png └── logo.svg ├── index.html ├── manifest.json ├── media ├── .DS_Store ├── github.svg ├── multiplatform.svg ├── polyrise-desktop.gif ├── polyrise-desktop.mp4 ├── polyrise-desktop.png ├── polyrise-desktop.webm ├── polyrise-desktop.webp ├── polyrise-mobile.gif ├── polyrise-mobile.mp4 ├── polyrise-mobile.png └── polyrise-mobile.webm ├── package.json ├── polyrise-Polyrise.json └── polyrise-kodeWeave.json /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/.DS_Store -------------------------------------------------------------------------------- /.replit: -------------------------------------------------------------------------------- 1 | hidden=[".config"] 2 | 3 | # hosting is currently hardcoded for this language 4 | # [hosting] 5 | # route = "/" 6 | # directory= "/" 7 | 8 | [nix] 9 | channel = "stable-22_11" 10 | 11 | [languages.html] 12 | pattern = "**/*.html" 13 | [languages.html.languageServer] 14 | start = "vscode-html-language-server --stdio" 15 | [languages.html.languageServer.initializationOptions] 16 | provideFormatter = true 17 | [languages.html.languageServer.configuration.html] 18 | customData = [ ] 19 | autoCreateQuotes = true 20 | autoClosingTags = true 21 | mirrorCursorOnMatchingTag = false 22 | 23 | [languages.html.languageServer.configuration.html.completion] 24 | attributeDefaultValue = "doublequotes" 25 | 26 | [languages.html.languageServer.configuration.html.format] 27 | enable = true 28 | wrapLineLength = 120 29 | unformatted = "wbr" 30 | contentUnformatted = "pre,code,textarea" 31 | indentInnerHtml = false 32 | preserveNewLines = true 33 | indentHandlebars = false 34 | endWithNewline = false 35 | extraLiners = "head, body, /html" 36 | wrapAttributes = "auto" 37 | templating = false 38 | unformattedContentDelimiter = "" 39 | 40 | [languages.html.languageServer.configuration.html.suggest] 41 | html5 = true 42 | 43 | [languages.html.languageServer.configuration.html.validate] 44 | scripts = true 45 | styles = true 46 | 47 | [languages.html.languageServer.configuration.html.hover] 48 | documentation = true 49 | references = true 50 | 51 | [languages.html.languageServer.configuration.html.trace] 52 | server = "off" 53 | 54 | [languages.javascript] 55 | pattern = "**/{*.js,*.jsx,*.ts,*.tsx,*.mjs,*.cjs}" 56 | [languages.javascript.languageServer] 57 | start = "typescript-language-server --stdio" 58 | 59 | [languages.css] 60 | pattern = "**/{*.less,*.scss,*.css}" 61 | [languages.css.languageServer] 62 | start = "vscode-css-language-server --stdio" 63 | [languages.css.languageServer.configuration.css] 64 | customData = [ ] 65 | validate = true 66 | 67 | [languages.css.languageServer.configuration.css.completion] 68 | triggerPropertyValueCompletion = true 69 | completePropertyWithSemicolon = true 70 | 71 | [languages.css.languageServer.configuration.css.hover] 72 | documentation = true 73 | references = true 74 | 75 | [languages.css.languageServer.configuration.css.lint] 76 | # Configure linting 77 | # ignore = don't show any warning or error 78 | # warning = show yellow underline 79 | # error = show red underline 80 | argumentsInColorFunction = "error" # Invalid number of parameters 81 | boxModel = "ignore" # Do not use width or height when using padding or border 82 | compatibleVendorPrefixes = "ignore" # When using a vendor-specific prefix make sure to also include all other vendor-specific properties" 83 | duplicateProperties = "warning" # Do not use duplicate style definitions 84 | emptyRules = "warning" # Do not use empty rulesets 85 | float = "ignore" # Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes. 86 | fontFaceProperties = "warning" # @font-face rule must define 'src' and 'font-family' properties 87 | hexColorLength = "error" # Hex colors must consist of three, four, six or eight hex numbers 88 | idSelector = "ignore" # Selectors should not contain IDs because these rules are too tightly coupled with the HTML. 89 | ieHack = "ignore" # IE hacks are only necessary when supporting IE7 and older 90 | important = "ignore" # Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored. 91 | importStatement = "ignore" # Import statements do not load in parallel 92 | propertyIgnoredDueToDisplay = "warning" # Property is ignored due to the display 93 | universalSelector = "ignore" # The universal selector (*) is known to be slow 94 | unknownAtRules = "warning" # Unknown at-rule 95 | unknownProperties = "warning" # Unknown property. 96 | validProperties = [ ] # add some properties that the linter doesn't know about 97 | unknownVendorSpecificProperties = "ignore" # Unknown vendor specific property. 98 | vendorPrefix = "warning" # When using a vendor-specific prefix also include the standard property 99 | zeroUnits = "ignore" # No unit for zero needed 100 | 101 | [languages.css.languageServer.configuration.css.trace] 102 | server = "off" 103 | 104 | [languages.css.languageServer.configuration.scss] 105 | validate = true 106 | 107 | [languages.css.languageServer.configuration.scss.completion] 108 | triggerPropertyValueCompletion = true 109 | completePropertyWithSemicolon = true 110 | 111 | [languages.css.languageServer.configuration.scss.hover] 112 | documentation = true 113 | references = true 114 | 115 | [languages.css.languageServer.configuration.scss.lint] 116 | # Configure linting 117 | # ignore = don't show any warning or error 118 | # warning = show yellow underline 119 | # error = show red underline 120 | argumentsInColorFunction = "error" # Invalid number of parameters 121 | boxModel = "ignore" # Do not use width or height when using padding or border 122 | compatibleVendorPrefixes = "ignore" # When using a vendor-specific prefix make sure to also include all other vendor-specific properties" 123 | duplicateProperties = "warning" # Do not use duplicate style definitions 124 | emptyRules = "warning" # Do not use empty rulesets 125 | float = "ignore" # Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes. 126 | fontFaceProperties = "warning" # @font-face rule must define 'src' and 'font-family' properties 127 | hexColorLength = "error" # Hex colors must consist of three, four, six or eight hex numbers 128 | idSelector = "ignore" # Selectors should not contain IDs because these rules are too tightly coupled with the HTML. 129 | ieHack = "ignore" # IE hacks are only necessary when supporting IE7 and older 130 | important = "ignore" # Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored. 131 | importStatement = "ignore" # Import statements do not load in parallel 132 | propertyIgnoredDueToDisplay = "warning" # Property is ignored due to the display 133 | universalSelector = "ignore" # The universal selector (*) is known to be slow 134 | unknownAtRules = "warning" # Unknown at-rule 135 | unknownProperties = "warning" # Unknown property. 136 | validProperties = [ ] # add some properties that the linter doesn't know about 137 | unknownVendorSpecificProperties = "ignore" # Unknown vendor specific property. 138 | vendorPrefix = "warning" # When using a vendor-specific prefix also include the standard property 139 | zeroUnits = "ignore" # No unit for zero needed" 140 | 141 | [languages.css.languageServer.configuration.less] 142 | validate = true 143 | 144 | [languages.css.languageServer.configuration.less.completion] 145 | triggerPropertyValueCompletion = true 146 | completePropertyWithSemicolon = true 147 | 148 | [languages.css.languageServer.configuration.less.hover] 149 | documentation = true 150 | references = true 151 | 152 | [languages.css.languageServer.configuration.less.lint] 153 | # Configure linting 154 | # ignore = don't show any warning or error 155 | # warning = show yellow underline 156 | # error = show red underline 157 | argumentsInColorFunction = "error" # Invalid number of parameters 158 | boxModel = "ignore" # Do not use width or height when using padding or border 159 | compatibleVendorPrefixes = "ignore" # When using a vendor-specific prefix make sure to also include all other vendor-specific properties" 160 | duplicateProperties = "warning" # Do not use duplicate style definitions 161 | emptyRules = "warning" # Do not use empty rulesets 162 | float = "ignore" # Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes. 163 | fontFaceProperties = "warning" # @font-face rule must define 'src' and 'font-family' properties 164 | hexColorLength = "error" # Hex colors must consist of three, four, six or eight hex numbers 165 | idSelector = "ignore" # Selectors should not contain IDs because these rules are too tightly coupled with the HTML. 166 | ieHack = "ignore" # IE hacks are only necessary when supporting IE7 and older 167 | important = "ignore" # Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored. 168 | importStatement = "ignore" # Import statements do not load in parallel 169 | propertyIgnoredDueToDisplay = "warning" # Property is ignored due to the display 170 | universalSelector = "ignore" # The universal selector (*) is known to be slow 171 | unknownAtRules = "warning" # Unknown at-rule 172 | unknownProperties = "warning" # Unknown property. 173 | validProperties = [ ] # add some properties that the linter doesn't know about 174 | unknownVendorSpecificProperties = "ignore" # Unknown vendor specific property. 175 | vendorPrefix = "warning" # When using a vendor-specific prefix also include the standard property 176 | zeroUnits = "ignore" # No unit for zero needed" 177 | 178 | [gitHubImport] 179 | requiredFiles = [".replit", "replit.nix", ".config"] -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-2024 Michael Schwartz "mikethedj4@yahoo.com". 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # **Polyrise** 3 | Free Mobile Website Builder! Create awesome responsive websites. Easy and fast - No coding! Free for personal and commercial use. 4 | 5 | ![](https://raw.githubusercontent.com/michaelsboost/Polyrise/gh-pages/imgs/header.png) 6 | 7 | [![MIT License](https://img.shields.io/github/license/michaelsboost/Polyrise)](LICENSE) [![GitHub Stars](https://img.shields.io/github/stars/michaelsboost/Polyrise)](https://github.com/michaelsboost/Polyrise/stargazers) [![GitHub Issues](https://img.shields.io/github/issues/michaelsboost/Polyrise)](https://github.com/michaelsboost/Polyrise/issues) 8 | 9 | --- 10 | 11 | ## **🚀 About Polyrise** 12 | 13 | Polyrise is a **free and open-source website builder** that allows users to **design, prototype, and deploy websites, apps, and PWAs** directly in their browser. 14 | 15 | With a **click/tap interface**, **custom components**, **visual CSS editing**, **real-time desktop preview on mobile**, and **offline support**, Polyrise is a **powerful tool for designers, developers, and creators**. 16 | 17 | --- 18 | 19 | ## **🌟 Features** 20 | 21 | ✅ **Click/Tap to Add Elements** – Add blocks instantly to the page or as child elements. 22 | ✅ **Click/Tap to Customize** – Modify text, styles, and layout effortlessly. 23 | ✅ **Custom Components** – Create, save, and reuse components for faster workflows. 24 | ✅ **Nested Elements** – Add elements inside other blocks for structured design. 25 | ✅ **Command Palette** – Built-in **guide and command system** for quick actions. 26 | ✅ **Keyboard Shortcuts** – Use `Ctrl`, `Shift`, and more for advanced interactions. 27 | ✅ **Desktop Preview on Mobile** – View your website’s **desktop layout while designing on mobile.** 28 | ✅ **Export as ZIP & HTML** – Download and deploy your project anywhere. 29 | ✅ **Export as PWA** – Convert your project into a **Progressive Web App (PWA)**. 30 | ✅ **Visual CSS Editor** – Edit **CSS styles, root variables, pseudo-elements, animations, breakpoints, and more** through an intuitive interface. 31 | ✅ **Built-in APIs** – Easily import images, SVGs, and audio from Openverse and Iconify. 32 | ✅ **Offline Support** – Works **without an internet connection** after the first load. 33 | ✅ **One-Click Screenshot** – Capture a full project preview with **html2canvas**. 34 | ✅ **Fully Responsive** – Optimized for **mobile and desktop**. 35 | ✅ **No Backend Required** – Works **entirely in the browser**. 36 | ✅ **Lightweight & Fast** – Designed for **performance and efficiency**. 37 | 38 | --- 39 | 40 | ## **🛠️ Tech Stack** 41 | 42 | Polyrise is powered by **modern open-source technologies**: 43 | 44 | - **[Tailwind CSS](https://tailwindcss.com/)** – A utility-first CSS framework. 45 | - **[HeroIcons](https://heroicons.com/)** & **[Font Awesome](https://fontawesome.com/)** – SVG icon integration. 46 | - **[JSZip](https://stuk.github.io/jszip/)** – Generates **ZIP file exports**. 47 | - **[FileSaver.js](https://github.com/eligrey/FileSaver.js/)** – Enables file downloads in the browser. 48 | - **[html2canvas](https://html2canvas.hertzen.com/)** – Captures **screenshots of webpages**. 49 | - **[Openverse API](https://wordpress.org/openverse/)** – Free images/audio search. 50 | - **[Iconify API](https://iconify.design/)** – Adds thousands of vector icons. 51 | 52 | --- 53 | 54 | ## **📥 Installation & Setup** 55 | 56 | Polyrise is **fully web-based** – no installation needed. Try it now: 57 | ➡️ [Polyrise Online](https://michaelsboost.com/Polyrise/) 58 | 59 | Or, to run locally: 60 | 61 | ### **Clone the Repository** 62 | 63 | > git clone 64 | > https://github.com/michaelsboost/Polyrise.git 65 | > cd Polyrise 66 | 67 | ### **Start a Local Server** 68 | 69 | To preview Polyrise locally, use a simple Python server: 70 | 71 | bash 72 | 73 | > python3 -m http.server 8000 74 | 75 | Then, open `http://localhost:8000` in your browser. 76 | 77 | ---------- 78 | 79 | ## **📦 Exporting a PWA** 80 | 81 | Polyrise makes exporting a **Progressive Web App (PWA)** effortless. 82 | 83 | ### **Steps to Export a PWA:** 84 | 85 | 1. Create your project in Polyrise. 86 | 2. Click **Export as PWA**. 87 | 3. A ZIP file will be generated with: 88 | - `index.html` (your project’s entry point) 89 | - `sw.js` (service worker for offline support) 90 | - `manifest.json` (PWA metadata) 91 | - All necessary assets 92 | 4. Extract and upload to your web server! 93 | 94 | ---------- 95 | 96 | ## **⚡ Performance & Lighthouse Scores** 97 | 98 | Unlike other coding playgrounds, Polyrise achieves **top-tier performance** thanks to a custom **Virtual DOM & Diffing Algorithm** built with **JavaScript Proxies**. 99 | 100 | ### **Lighthouse Scores** 101 | 102 | ✅ **Performance:** `99` 103 | ✅ **Accessibility:** `100` 104 | ✅ **Best Practices:** `100` 105 | ✅ **SEO:** `100` 106 | 107 | ---------- 108 | 109 | ## **📜 License** 110 | 111 | Polyrise is **open-source** under the **MIT License**. 112 | See the full license: [LICENSE](https://github.com/michaelsboost/Polyrise/blob/main/LICENSE). 113 | 114 | ---------- 115 | 116 | ## **💡 Want to Contribute?** 117 | 118 | Awesome! Polyrise is **free and open-source**, and contributions are always welcome. 119 | 120 | ### **How You Can Help:** 121 | 122 | 🔹 **Submit a Pull Request** – Found a bug? Have a feature idea? Let's build together! 123 | 🔹 **Spread the Word** – Share Polyrise with fellow developers & creators. 124 | 🔹 **Fork & Experiment** – Polyrise is yours to play with—have fun with it! 125 | 126 | If Polyrise has been helpful to you, here are some ways you can show support: 127 | 128 | [![ko-fi](https://storage.ko-fi.com/cdn/useruploads/d666bcdd-8d38-47d4-b78b-018d4b726d48.png)](https://ko-fi.com/michaelsboost) 129 | 130 | ☕ **Buy me a coffee:** [ko-fi.com/michaelsboost](http://ko-fi.com/michaelsboost) 131 | 🎨 **Grab some of my art prints:** [DeviantArt Store](https://deviantart.com/michaelsboost/prints) 132 | 👕 **Get a Polyrise T-shirt or gear:** [Merch Store](https://michaelsboost.com/gear) 133 | 📚 **Check out my Graphic Design Course:** [Learn Design](https://michaelsboost.com/graphicdesign) 134 | 🛒 **Register as a customer on my store:** [Visit Store](https://michaelsboost.com/store) 135 | 💙 **Donate via PayPal:** [Support via PayPal](https://michaelsboost.com/donate) 136 | 💸 **Donate via Cash App:** [Support via SquareCash](https://cash.me/$michaelsboost) 137 | 138 | Your support helps keep Polyrise free, open-source, and constantly improving. 🚀 139 | 140 | ---------- 141 | 142 | ## **📧 Contact** 143 | 144 | For questions, feature requests, or collaborations, reach out to: 145 | **Michael Schwartz** – [michaelsboost.com](https://michaelsboost.com/) 146 | -------------------------------------------------------------------------------- /app/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/.DS_Store -------------------------------------------------------------------------------- /app/dist/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/dist/.DS_Store -------------------------------------------------------------------------------- /app/imgs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/.DS_Store -------------------------------------------------------------------------------- /app/imgs/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/button.gif -------------------------------------------------------------------------------- /app/imgs/demo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/demo.png -------------------------------------------------------------------------------- /app/imgs/frameworks/alpine.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/imgs/frameworks/bootstrap-5.svg: -------------------------------------------------------------------------------- 1 | 2 | 10 | 12 | 19 | 24 | 25 | -------------------------------------------------------------------------------- /app/imgs/frameworks/bulma.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/imgs/frameworks/foundation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/imgs/frameworks/materialize.svg: -------------------------------------------------------------------------------- 1 | 2 | 11 | 13 | 17 | 22 | 27 | 32 | 37 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /app/imgs/frameworks/pico-css.svg: -------------------------------------------------------------------------------- 1 | 2 | 24 | -------------------------------------------------------------------------------- /app/imgs/frameworks/polyui.svg: -------------------------------------------------------------------------------- 1 | 2 | 15 | 18 | 20 | 27 | 31 | 32 | 36 | 37 | 41 | 42 | 46 | 47 | 48 | 53 | 54 | 61 | 65 | 66 | 70 | 71 | 75 | 76 | 80 | 81 | 82 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /app/imgs/frameworks/semantic-ui.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/imgs/frameworks/tailwind.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/imgs/frameworks/uikit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/imgs/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/header.png -------------------------------------------------------------------------------- /app/imgs/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/icon-192x192.png -------------------------------------------------------------------------------- /app/imgs/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/icon-256x256.png -------------------------------------------------------------------------------- /app/imgs/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/icon-384x384.png -------------------------------------------------------------------------------- /app/imgs/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/icon-512x512.png -------------------------------------------------------------------------------- /app/imgs/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/imgs/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 25 | -------------------------------------------------------------------------------- /app/imgs/make-work-awesome.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/make-work-awesome.gif -------------------------------------------------------------------------------- /app/imgs/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/preview.png -------------------------------------------------------------------------------- /app/imgs/responsive.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/responsive.gif -------------------------------------------------------------------------------- /app/imgs/responsive.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/responsive.mp4 -------------------------------------------------------------------------------- /app/imgs/screenshot-todo-app.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/screenshot-todo-app.jpeg -------------------------------------------------------------------------------- /app/imgs/screenshot.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/screenshot.jpeg -------------------------------------------------------------------------------- /app/imgs/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/imgs/screenshot.png -------------------------------------------------------------------------------- /app/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Polyrise 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | 34 |
35 |
36 |

Polyrise

37 |

Design with Freedom, Build with Power. Free for personal and commercial use.

38 |
39 |
40 | 41 |
42 | 43 | 44 | 45 | 46 | 47 | 69 | 70 | -------------------------------------------------------------------------------- /app/json/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/json/.DS_Store -------------------------------------------------------------------------------- /app/json/cssbuttonhoverdemo.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CSS Button Hover Demo", 3 | "version": "0.0.1", 4 | "title": "CSS Button Hover Demo", 5 | "description": "CSS Button Hover Demo", 6 | "author": "Polyrise", 7 | "url": "https://michaelsboost.com/", 8 | "meta": "", 9 | "libraries": [ 10 | "https://fonts.googleapis.com/css?family=Poppins:900i" 11 | ], 12 | "css": { 13 | "rootVariables": {}, 14 | "styles": { 15 | "*": { 16 | "base": { 17 | "box-sizing": "border-box" 18 | } 19 | }, 20 | "body": { 21 | "base": { 22 | "height": "100vh", 23 | "display": "flex", 24 | "justify-content": "center", 25 | "align-items": "center" 26 | } 27 | }, 28 | ".wrapper": { 29 | "base": { 30 | "display": "flex", 31 | "justify-content": "center" 32 | } 33 | }, 34 | ".cta": { 35 | "base": { 36 | "display": "flex", 37 | "padding": "10px 45px", 38 | "text-decoration": "none", 39 | "font-family": "'Poppins', sans-serif", 40 | "font-size": "40px", 41 | "color": "white", 42 | "background": "#6225E6", 43 | "transition": "1s", 44 | "box-shadow": "6px 6px 0 black", 45 | "transform": "skewX(-15deg)" 46 | }, 47 | "pseudos": [ 48 | { 49 | "selector": ":focus", 50 | "styles": { 51 | "outline": "none" 52 | } 53 | }, 54 | { 55 | "selector": ":hover", 56 | "styles": { 57 | "transition": "0.5s", 58 | "box-shadow": "10px 10px 0 #FBC638" 59 | } 60 | } 61 | ] 62 | }, 63 | ".cta span:nth-child(2)": { 64 | "base": { 65 | "transition": "0.5s", 66 | "margin-right": "0px" 67 | } 68 | }, 69 | ".cta:hover span:nth-child(2)": { 70 | "base": { 71 | "transition": "0.5s", 72 | "margin-right": "45px" 73 | } 74 | }, 75 | "span": { 76 | "base": { 77 | "transform": "skewX(15deg)" 78 | } 79 | }, 80 | "span:nth-child(2)": { 81 | "base": { 82 | "width": "20px", 83 | "margin-left": "30px", 84 | "position": "relative", 85 | "top": "12%" 86 | } 87 | }, 88 | "path.one": { 89 | "base": { 90 | "transition": "0.4s", 91 | "transform": "translateX(-60%)" 92 | } 93 | }, 94 | "path.two": { 95 | "base": { 96 | "transition": "0.5s", 97 | "transform": "translateX(-30%)" 98 | } 99 | }, 100 | ".cta:hover path.three": { 101 | "base": { 102 | "animation": "color_anim 1s infinite 0.2s" 103 | } 104 | }, 105 | ".cta:hover path.one": { 106 | "base": { 107 | "transform": "translateX(0%)", 108 | "animation": "color_anim 1s infinite 0.6s" 109 | } 110 | }, 111 | ".cta:hover path.two": { 112 | "base": { 113 | "transform": "translateX(0%)", 114 | "animation": "color_anim 1s infinite 0.4s" 115 | } 116 | }, 117 | "keyframes color_anim": { 118 | "base": { 119 | "0%{fill": "white" 120 | } 121 | }, 122 | "50%": { 123 | "base": { 124 | "fill": "#FBC638" 125 | } 126 | }, 127 | "100%": { 128 | "base": { 129 | "fill": "white" 130 | } 131 | } 132 | }, 133 | "animations": { 134 | "color_anim": { 135 | "keyframes": { 136 | "0%": { 137 | "fill": "white" 138 | }, 139 | "50%": { 140 | "fill": "#FBC638" 141 | } 142 | } 143 | } 144 | }, 145 | "breakpoints": {} 146 | }, 147 | "components": [], 148 | "html": [ 149 | { 150 | "tag": "div", 151 | "id": "t8d1flau0", 152 | "style": "", 153 | "state": { 154 | "collapsed": false, 155 | "visible": true, 156 | "selected": false 157 | }, 158 | "name": "div", 159 | "type": "box", 160 | "text": "", 161 | "props": { 162 | "class": "wrapper" 163 | }, 164 | "children": [ 165 | { 166 | "tag": "a", 167 | "id": "orhp0gaht", 168 | "style": "", 169 | "state": { 170 | "collapsed": false, 171 | "visible": true, 172 | "selected": false 173 | }, 174 | "name": "a", 175 | "type": "text", 176 | "text": "", 177 | "props": { 178 | "class": "cta", 179 | "href": "#" 180 | }, 181 | "children": [ 182 | { 183 | "tag": "span", 184 | "id": "ra8379ehw", 185 | "style": "", 186 | "state": { 187 | "collapsed": false, 188 | "visible": true, 189 | "selected": false 190 | }, 191 | "name": "span", 192 | "type": "text", 193 | "text": "NEXT", 194 | "children": [] 195 | }, 196 | { 197 | "tag": "span", 198 | "id": "wh50s60zu", 199 | "style": "", 200 | "state": { 201 | "collapsed": false, 202 | "visible": true, 203 | "selected": false 204 | }, 205 | "name": "span", 206 | "type": "text", 207 | "text": "", 208 | "children": [ 209 | { 210 | "tag": "svg", 211 | "id": "ikuexkyqc", 212 | "style": "", 213 | "state": { 214 | "collapsed": false, 215 | "visible": true, 216 | "selected": false 217 | }, 218 | "name": "svg", 219 | "type": "svg", 220 | "props": { 221 | "width": "66px", 222 | "height": "43px", 223 | "viewbox": "0 0 66 43", 224 | "version": "1.1", 225 | "xmlns": "http://www.w3.org/2000/svg", 226 | "xmlns:xlink": "http://www.w3.org/1999/xlink" 227 | }, 228 | "children": [ 229 | { 230 | "tag": "g", 231 | "id": "qqfksd13h", 232 | "style": "", 233 | "state": { 234 | "collapsed": false, 235 | "visible": true, 236 | "selected": false 237 | }, 238 | "name": "g", 239 | "type": "g", 240 | "props": { 241 | "id": "arrow", 242 | "stroke": "none", 243 | "stroke-width": "1", 244 | "fill": "none", 245 | "fill-rule": "evenodd" 246 | }, 247 | "children": [ 248 | { 249 | "tag": "path", 250 | "id": "cy7yyvmrd", 251 | "style": "", 252 | "state": { 253 | "collapsed": false, 254 | "visible": true, 255 | "selected": false 256 | }, 257 | "name": "path", 258 | "type": "path", 259 | "props": { 260 | "class": "one", 261 | "d": "M40.1543933,3.89485454 L43.9763149,0.139296592 C44.1708311,-0.0518420739 44.4826329,-0.0518571125 44.6771675,0.139262789 L65.6916134,20.7848311 C66.0855801,21.1718824 66.0911863,21.8050225 65.704135,22.1989893 C65.7000188,22.2031791 65.6958657,22.2073326 65.6916762,22.2114492 L44.677098,42.8607841 C44.4825957,43.0519059 44.1708242,43.0519358 43.9762853,42.8608513 L40.1545186,39.1069479 C39.9575152,38.9134427 39.9546793,38.5968729 40.1481845,38.3998695 C40.1502893,38.3977268 40.1524132,38.395603 40.1545562,38.3934985 L56.9937789,21.8567812 C57.1908028,21.6632968 57.193672,21.3467273 57.0001876,21.1497035 C56.9980647,21.1475418 56.9959223,21.1453995 56.9937605,21.1432767 L40.1545208,4.60825197 C39.9574869,4.41477773 39.9546013,4.09820839 40.1480756,3.90117456 C40.1501626,3.89904911 40.1522686,3.89694235 40.1543933,3.89485454 Z", 262 | "fill": "#FFFFFF" 263 | }, 264 | "children": [] 265 | }, 266 | { 267 | "tag": "path", 268 | "id": "jos4lektr", 269 | "style": "", 270 | "state": { 271 | "collapsed": false, 272 | "visible": true, 273 | "selected": false 274 | }, 275 | "name": "path", 276 | "type": "path", 277 | "props": { 278 | "class": "two", 279 | "d": "M20.1543933,3.89485454 L23.9763149,0.139296592 C24.1708311,-0.0518420739 24.4826329,-0.0518571125 24.6771675,0.139262789 L45.6916134,20.7848311 C46.0855801,21.1718824 46.0911863,21.8050225 45.704135,22.1989893 C45.7000188,22.2031791 45.6958657,22.2073326 45.6916762,22.2114492 L24.677098,42.8607841 C24.4825957,43.0519059 24.1708242,43.0519358 23.9762853,42.8608513 L20.1545186,39.1069479 C19.9575152,38.9134427 19.9546793,38.5968729 20.1481845,38.3998695 C20.1502893,38.3977268 20.1524132,38.395603 20.1545562,38.3934985 L36.9937789,21.8567812 C37.1908028,21.6632968 37.193672,21.3467273 37.0001876,21.1497035 C36.9980647,21.1475418 36.9959223,21.1453995 36.9937605,21.1432767 L20.1545208,4.60825197 C19.9574869,4.41477773 19.9546013,4.09820839 20.1480756,3.90117456 C20.1501626,3.89904911 20.1522686,3.89694235 20.1543933,3.89485454 Z", 280 | "fill": "#FFFFFF" 281 | }, 282 | "children": [] 283 | }, 284 | { 285 | "tag": "path", 286 | "id": "dcswe2oyv", 287 | "style": "", 288 | "state": { 289 | "collapsed": false, 290 | "visible": true, 291 | "selected": false 292 | }, 293 | "name": "path", 294 | "type": "path", 295 | "props": { 296 | "class": "three", 297 | "d": "M0.154393339,3.89485454 L3.97631488,0.139296592 C4.17083111,-0.0518420739 4.48263286,-0.0518571125 4.67716753,0.139262789 L25.6916134,20.7848311 C26.0855801,21.1718824 26.0911863,21.8050225 25.704135,22.1989893 C25.7000188,22.2031791 25.6958657,22.2073326 25.6916762,22.2114492 L4.67709797,42.8607841 C4.48259567,43.0519059 4.17082418,43.0519358 3.97628526,42.8608513 L0.154518591,39.1069479 C-0.0424848215,38.9134427 -0.0453206733,38.5968729 0.148184538,38.3998695 C0.150289256,38.3977268 0.152413239,38.395603 0.154556228,38.3934985 L16.9937789,21.8567812 C17.1908028,21.6632968 17.193672,21.3467273 17.0001876,21.1497035 C16.9980647,21.1475418 16.9959223,21.1453995 16.9937605,21.1432767 L0.15452076,4.60825197 C-0.0425130651,4.41477773 -0.0453986756,4.09820839 0.148075568,3.90117456 C0.150162624,3.89904911 0.152268631,3.89694235 0.154393339,3.89485454 Z", 298 | "fill": "#FFFFFF" 299 | }, 300 | "children": [] 301 | } 302 | ] 303 | } 304 | ] 305 | } 306 | ] 307 | } 308 | ] 309 | } 310 | ] 311 | } 312 | ], 313 | "logo": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDEzNS40NjY2NiAxMzUuNDY2NjciCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnMKICAgICBpZD0iZGVmczEiIC8+PGcKICAgICBpZD0iZzI0Ij48cGF0aAogICAgICAgaWQ9InBhdGgyMiIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiMxMzNhZDQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSw2Ny43MzMzMzIgViAxMzUuMjAwNTMgTCAyNS4zODc1OTcsMTI2LjAzMTA3IFYgMTA2Ljk2MDQgNjcuNzMzMzMyIFogbSA4NS45Njg5MTE1LDAgLTU3Ljc2OTA4MywzMi4yOTcyNTggdiAxOC44MTA3MyBMIDEyNS44ODIyNCw2Ny43MzMzMzIgWiIgLz48cGF0aAogICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6IzA0YTJmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIgogICAgICAgaWQ9InBhdGgyMyIKICAgICAgIGQ9Im0gNDkuNTY4NTI3LDM1LjgxOTU1MyAtMTYuOTcwNDc4LDkuNzk3OTEgMCwtMTkuNTk1ODIgeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDIuMjE3MjY1MiwwLDAsMi4xNDcwMjkzLC0zNC40OTUyNjksLTkuMjYyMTYyKSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgyNCIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiM4NjAwZWY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSwwLjI2NjEzMzYyIFYgNjcuNzMzMzMyIEggMjUuMzg3NTk3IFYgNDIuODU2ODE1IDI4LjMyNjk1MyBsIDcwLjMyNTkzOSwzOS4zMTU5NDYgLTAuMTYxNzQ3LDAuMDkwNDMgaCAzMC4zMzA0NTEgbCAwLjAwMiwtMC4wMDEgeiIgLz48L2c+PC9zdmc+Cg==", 314 | "lang": "en", 315 | "dark": true, 316 | "previewDark": true, 317 | "pwa": false, 318 | "activePanel": "layers" 319 | } -------------------------------------------------------------------------------- /app/json/csstextanimation-Polyrise.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CSS Text Animation", 3 | "version": "0.0.1", 4 | "title": "CSS Text Animation", 5 | "description": "CSS Text Animation", 6 | "author": "Polyrise", 7 | "url": "https://michaelsboost.com/", 8 | "meta": "", 9 | "libraries": [ 10 | "https://fonts.googleapis.com/css?family=Roboto:700" 11 | ], 12 | "css": { 13 | "rootVariables": {}, 14 | "styles": { 15 | "body": { 16 | "base": { 17 | "margin": "0px", 18 | "font-family": "'Roboto'", 19 | "text-align": "center" 20 | } 21 | }, 22 | "#container": { 23 | "base": { 24 | "color": "#999", 25 | "text-transform": "uppercase", 26 | "font-size": "36px", 27 | "font-weight": "bold", 28 | "padding-top": "200px", 29 | "position": "fixed", 30 | "width": "100%", 31 | "bottom": "45%", 32 | "display": "block" 33 | } 34 | }, 35 | "#flip": { 36 | "base": { 37 | "height": "50px", 38 | "overflow": "hidden" 39 | } 40 | }, 41 | "#flip > div > div": { 42 | "base": { 43 | "color": "#fff", 44 | "padding": "4px 12px", 45 | "height": "45px", 46 | "margin-bottom": "45px", 47 | "display": "inline-block" 48 | } 49 | }, 50 | "#flip div": { 51 | "pseudos": [ 52 | { 53 | "selector": ":first-child", 54 | "styles": { 55 | "animation": "show 5s linear infinite" 56 | } 57 | } 58 | ] 59 | }, 60 | "#flip div div": { 61 | "base": { 62 | "background": "#42c58a" 63 | } 64 | }, 65 | "#flip div:first-child div": { 66 | "base": { 67 | "background": "#4ec7f3" 68 | } 69 | }, 70 | "#flip div:last-child div": { 71 | "base": { 72 | "background": "#DC143C" 73 | } 74 | } 75 | }, 76 | "animations": { 77 | "show": { 78 | "keyframes": { 79 | "0%": { 80 | "margin-top": "-270px" 81 | }, 82 | "5%": { 83 | "margin-top": "-180px" 84 | }, 85 | "33%": { 86 | "margin-top": "-180px" 87 | }, 88 | "38%": { 89 | "margin-top": "-90px" 90 | }, 91 | "66%": { 92 | "margin-top": "-90px" 93 | }, 94 | "71%": { 95 | "margin-top": "0px" 96 | }, 97 | "99.99%": { 98 | "margin-top": "0px" 99 | }, 100 | "100%": { 101 | "margin-top": "-270px" 102 | } 103 | } 104 | } 105 | }, 106 | "breakpoints": {} 107 | }, 108 | "components": [], 109 | "html": [ 110 | { 111 | "tag": "div", 112 | "id": "ppj3ipnae", 113 | "style": "", 114 | "state": { 115 | "collapsed": false, 116 | "visible": true, 117 | "selected": false 118 | }, 119 | "name": "div", 120 | "type": "box", 121 | "text": "", 122 | "props": { 123 | "id": "container" 124 | }, 125 | "children": [ 126 | { 127 | "tag": "span", 128 | "id": "qb8y29isc", 129 | "style": "", 130 | "state": { 131 | "collapsed": false, 132 | "visible": true, 133 | "selected": false 134 | }, 135 | "name": "span", 136 | "type": "text", 137 | "text": "Make", 138 | "children": [] 139 | }, 140 | { 141 | "tag": "div", 142 | "id": "aljnrsffq", 143 | "style": "", 144 | "state": { 145 | "collapsed": false, 146 | "visible": true, 147 | "selected": false 148 | }, 149 | "name": "div", 150 | "type": "box", 151 | "text": "", 152 | "props": { 153 | "id": "flip" 154 | }, 155 | "children": [ 156 | { 157 | "tag": "div", 158 | "id": "s0e0b8puc", 159 | "style": "", 160 | "state": { 161 | "collapsed": false, 162 | "visible": true, 163 | "selected": false 164 | }, 165 | "name": "div", 166 | "type": "box", 167 | "text": "", 168 | "children": [ 169 | { 170 | "tag": "div", 171 | "id": "deq9bx7fe", 172 | "style": "", 173 | "state": { 174 | "collapsed": false, 175 | "visible": true, 176 | "selected": false 177 | }, 178 | "name": "div", 179 | "type": "box", 180 | "text": "work", 181 | "children": [] 182 | } 183 | ] 184 | }, 185 | { 186 | "tag": "div", 187 | "id": "tsuqohbb5", 188 | "style": "", 189 | "state": { 190 | "collapsed": false, 191 | "visible": true, 192 | "selected": false 193 | }, 194 | "name": "div", 195 | "type": "box", 196 | "text": "", 197 | "children": [ 198 | { 199 | "tag": "div", 200 | "id": "ww6zul5pl", 201 | "style": "", 202 | "state": { 203 | "collapsed": false, 204 | "visible": true, 205 | "selected": false 206 | }, 207 | "name": "div", 208 | "type": "box", 209 | "text": "lifestyle", 210 | "children": [] 211 | } 212 | ] 213 | }, 214 | { 215 | "tag": "div", 216 | "id": "vrj1yt56n", 217 | "style": "", 218 | "state": { 219 | "collapsed": false, 220 | "visible": true, 221 | "selected": false 222 | }, 223 | "name": "div", 224 | "type": "box", 225 | "text": "", 226 | "children": [ 227 | { 228 | "tag": "div", 229 | "id": "ukf94cta9", 230 | "style": "", 231 | "state": { 232 | "collapsed": false, 233 | "visible": true, 234 | "selected": false 235 | }, 236 | "name": "div", 237 | "type": "box", 238 | "text": "everything", 239 | "children": [] 240 | } 241 | ] 242 | } 243 | ] 244 | }, 245 | { 246 | "tag": "span", 247 | "id": "q0u1hykot", 248 | "style": "", 249 | "state": { 250 | "collapsed": false, 251 | "visible": true, 252 | "selected": false 253 | }, 254 | "name": "span", 255 | "type": "text", 256 | "text": "awesome!", 257 | "children": [] 258 | } 259 | ] 260 | } 261 | ], 262 | "logo": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDEzNS40NjY2NiAxMzUuNDY2NjciCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnMKICAgICBpZD0iZGVmczEiIC8+PGcKICAgICBpZD0iZzI0Ij48cGF0aAogICAgICAgaWQ9InBhdGgyMiIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiMxMzNhZDQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSw2Ny43MzMzMzIgViAxMzUuMjAwNTMgTCAyNS4zODc1OTcsMTI2LjAzMTA3IFYgMTA2Ljk2MDQgNjcuNzMzMzMyIFogbSA4NS45Njg5MTE1LDAgLTU3Ljc2OTA4MywzMi4yOTcyNTggdiAxOC44MTA3MyBMIDEyNS44ODIyNCw2Ny43MzMzMzIgWiIgLz48cGF0aAogICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6IzA0YTJmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIgogICAgICAgaWQ9InBhdGgyMyIKICAgICAgIGQ9Im0gNDkuNTY4NTI3LDM1LjgxOTU1MyAtMTYuOTcwNDc4LDkuNzk3OTEgMCwtMTkuNTk1ODIgeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDIuMjE3MjY1MiwwLDAsMi4xNDcwMjkzLC0zNC40OTUyNjksLTkuMjYyMTYyKSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgyNCIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiM4NjAwZWY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSwwLjI2NjEzMzYyIFYgNjcuNzMzMzMyIEggMjUuMzg3NTk3IFYgNDIuODU2ODE1IDI4LjMyNjk1MyBsIDcwLjMyNTkzOSwzOS4zMTU5NDYgLTAuMTYxNzQ3LDAuMDkwNDMgaCAzMC4zMzA0NTEgbCAwLjAwMiwtMC4wMDEgeiIgLz48L2c+PC9zdmc+Cg==", 263 | "lang": "en", 264 | "dark": true, 265 | "previewDark": true, 266 | "pwa": false, 267 | "activePanel": "layers" 268 | } -------------------------------------------------------------------------------- /app/json/samplesitedemo.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Sample site demo", 3 | "version": "0.0.1", 4 | "title": "Sample site demo", 5 | "description": "Sample site demo", 6 | "author": "Polyrise", 7 | "url": "https://michaelsboost.com/", 8 | "meta": "", 9 | "libraries": [], 10 | "css": { 11 | "rootVariables": { 12 | "--primary-background": "#0172ad", 13 | "--navbar-background-color": "#5360b4", 14 | "--navbar-hover-background-color": "#7d1e86", 15 | "--feature-background-color": "#fff", 16 | "--feature-border-color": "#ccc", 17 | "--feature-border-width": "1px", 18 | "--footer-background-color": "#333c4e", 19 | "--footer-color": "#fff", 20 | "--body-background": "#eee", 21 | "--body-color": "#1c1c1c", 22 | "--feature-gap": "1rem", 23 | "--transition": "0.2s ease-in-out" 24 | }, 25 | "styles": { 26 | "html": { 27 | "base": { 28 | "font-family": "Arial, sans-serif", 29 | "line-height": "1.6" 30 | } 31 | }, 32 | "body": { 33 | "base": { 34 | "margin": "0", 35 | "padding": "0", 36 | "color": "var(--body-color)", 37 | "background": "var(--body-background)" 38 | } 39 | }, 40 | ".navbar": { 41 | "base": { 42 | "--bg-color": "var(--navbar-background-color)", 43 | "--hover-bg-color": "var(--navbar-hover-background-color)", 44 | "--focus-outline": "2px solid blue", 45 | "background": "var(--bg-color)", 46 | "color": "#fff", 47 | "padding": "1rem", 48 | "text-align": "center", 49 | "position": "fixed", 50 | "top": "0", 51 | "left": "0", 52 | "right": "0", 53 | "transition": "var(--transition)" 54 | }, 55 | "pseudos": [] 56 | }, 57 | ".hero": { 58 | "base": { 59 | "display": "grid", 60 | "background-color": "#13171f", 61 | "color": "#fff", 62 | "padding": "4rem 2rem", 63 | "text-align": "center", 64 | "place-items": "center", 65 | "height": "100vh" 66 | } 67 | }, 68 | ".container": { 69 | "base": { 70 | "margin": "0" 71 | } 72 | }, 73 | ".hero h1": { 74 | "base": { 75 | "font-size": "2rem", 76 | "margin": "0" 77 | } 78 | }, 79 | ".btn": { 80 | "base": { 81 | "cursor": "pointer", 82 | "padding": "0.75rem 1rem", 83 | "line-height": "1.5", 84 | "font-size": "1rem", 85 | "font-family": "Arial", 86 | "font-weight": "400", 87 | "text-align": "center", 88 | "width": "140px", 89 | "height": "50px", 90 | "border-radius": "0.25rem", 91 | "border": ".0625rem solid var(--primary-background)", 92 | "color": "#ffffff", 93 | "background": "var(--primary-background)", 94 | "transition": "var(--transition)" 95 | }, 96 | "pseudos": [ 97 | { 98 | "selector": ":hover", 99 | "styles": { 100 | "background": "#0688fa" 101 | } 102 | } 103 | ] 104 | }, 105 | ".features": { 106 | "base": { 107 | "display": "grid", 108 | "grid-template-columns": "repeat(1, minmax(0, 1fr))", 109 | "gap": "var(--feature-gap)", 110 | "padding": "1rem", 111 | "justify-content": "space-between" 112 | } 113 | }, 114 | ".feature": { 115 | "base": { 116 | "background-color": "var(--feature-background-color)", 117 | "border": "var(--feature-border-width) solid var(--feature-border-color)", 118 | "border-radius": "8px", 119 | "padding": "1rem", 120 | "text-align": "center" 121 | } 122 | }, 123 | ".footer": { 124 | "base": { 125 | "background-color": "var(--footer-background-color)", 126 | "color": "var(--footer-color)", 127 | "text-align": "center", 128 | "padding": "1rem" 129 | } 130 | } 131 | }, 132 | "animations": {}, 133 | "breakpoints": { 134 | "640px": { 135 | ".container": { 136 | "base": { 137 | "max-width": "640px" 138 | } 139 | } 140 | }, 141 | "768px": { 142 | ".features": { 143 | "base": { 144 | "grid-template-columns": "repeat(3, minmax(0, 1fr))" 145 | } 146 | } 147 | }, 148 | "1024px": { 149 | ".container": { 150 | "base": { 151 | "max-width": "1024px" 152 | } 153 | } 154 | } 155 | } 156 | }, 157 | "components": [ 158 | { 159 | "name": "button", 160 | "code": "" 161 | }, 162 | { 163 | "name": "feature", 164 | "code": "
\r\n

Feature 1

\r\n

Describe the first feature of the product here.

\r\n
" 165 | } 166 | ], 167 | "html": [ 168 | { 169 | "tag": "div", 170 | "id": "tzxzvms4p", 171 | "style": ".navbar", 172 | "state": { 173 | "collapsed": false, 174 | "visible": true, 175 | "selected": false 176 | }, 177 | "name": "navbar", 178 | "type": "box", 179 | "text": "Polyrise", 180 | "props": { 181 | "class": "navbar" 182 | }, 183 | "children": [] 184 | }, 185 | { 186 | "tag": "main", 187 | "id": "eloejw877", 188 | "style": ".hero", 189 | "state": { 190 | "collapsed": false, 191 | "visible": true, 192 | "selected": false 193 | }, 194 | "name": "hero", 195 | "type": "box", 196 | "text": "", 197 | "props": { 198 | "class": "hero" 199 | }, 200 | "children": [ 201 | { 202 | "tag": "div", 203 | "id": "t7i7juho6", 204 | "style": ".container", 205 | "state": { 206 | "collapsed": false, 207 | "visible": true, 208 | "selected": false 209 | }, 210 | "name": "container", 211 | "type": "box", 212 | "text": "", 213 | "props": { 214 | "class": "container" 215 | }, 216 | "children": [ 217 | { 218 | "tag": "h1", 219 | "id": "icl723l1x", 220 | "style": ".hero h1", 221 | "state": { 222 | "collapsed": false, 223 | "visible": true, 224 | "selected": false 225 | }, 226 | "name": "h1", 227 | "type": "text", 228 | "text": "Free Mobile Website Builder!", 229 | "children": [] 230 | }, 231 | { 232 | "tag": "p", 233 | "id": "uses42x36", 234 | "style": "", 235 | "state": { 236 | "collapsed": false, 237 | "visible": true, 238 | "selected": false 239 | }, 240 | "name": "p", 241 | "type": "text", 242 | "text": "Create awesome responsive websites. Easy and fast - No coding! Free for commercial use.", 243 | "children": [] 244 | }, 245 | { 246 | "tag": "button", 247 | "id": "enagjqpf6", 248 | "style": ".btn", 249 | "state": { 250 | "collapsed": false, 251 | "visible": true, 252 | "selected": false 253 | }, 254 | "name": "button", 255 | "type": "text", 256 | "text": "Click Me!", 257 | "props": { 258 | "class": "btn" 259 | }, 260 | "children": [] 261 | } 262 | ] 263 | } 264 | ] 265 | }, 266 | { 267 | "tag": "section", 268 | "id": "bdpis3s67", 269 | "style": ".features", 270 | "state": { 271 | "collapsed": true, 272 | "visible": true, 273 | "selected": false 274 | }, 275 | "name": "features", 276 | "type": "box", 277 | "text": "", 278 | "props": { 279 | "class": "features" 280 | }, 281 | "children": [ 282 | { 283 | "tag": "div", 284 | "id": "ms3bo6uz4", 285 | "style": ".feature", 286 | "state": { 287 | "collapsed": true, 288 | "visible": true, 289 | "selected": false 290 | }, 291 | "name": "feature", 292 | "type": "box", 293 | "text": "", 294 | "props": { 295 | "class": "feature" 296 | }, 297 | "children": [ 298 | { 299 | "tag": "h2", 300 | "id": "l2sszpmyv", 301 | "style": "", 302 | "state": { 303 | "collapsed": false, 304 | "visible": true, 305 | "selected": false 306 | }, 307 | "name": "h2", 308 | "type": "text", 309 | "text": "Feature 1", 310 | "children": [] 311 | }, 312 | { 313 | "tag": "p", 314 | "id": "kf8uckupd", 315 | "style": "", 316 | "state": { 317 | "collapsed": false, 318 | "visible": true, 319 | "selected": false 320 | }, 321 | "name": "p", 322 | "type": "text", 323 | "text": "Describe the first feature of the product here.", 324 | "children": [] 325 | } 326 | ] 327 | }, 328 | { 329 | "tag": "div", 330 | "id": "xlb227t4f", 331 | "style": ".feature", 332 | "state": { 333 | "collapsed": true, 334 | "visible": true, 335 | "selected": false 336 | }, 337 | "name": "feature", 338 | "type": "box", 339 | "text": "", 340 | "props": { 341 | "class": "feature" 342 | }, 343 | "children": [ 344 | { 345 | "tag": "h2", 346 | "id": "mtzw3xswo", 347 | "style": "", 348 | "state": { 349 | "collapsed": false, 350 | "visible": true, 351 | "selected": false 352 | }, 353 | "name": "h2", 354 | "type": "text", 355 | "text": "Feature 2", 356 | "children": [] 357 | }, 358 | { 359 | "tag": "p", 360 | "id": "yc264mp48", 361 | "style": "", 362 | "state": { 363 | "collapsed": false, 364 | "visible": true, 365 | "selected": false 366 | }, 367 | "name": "p", 368 | "type": "text", 369 | "text": "Describe the second feature of the product here.", 370 | "children": [] 371 | } 372 | ] 373 | }, 374 | { 375 | "tag": "div", 376 | "id": "tw7cmc4jv", 377 | "style": ".feature", 378 | "state": { 379 | "collapsed": true, 380 | "visible": true, 381 | "selected": false 382 | }, 383 | "name": "feature", 384 | "type": "box", 385 | "text": "", 386 | "props": { 387 | "class": "feature" 388 | }, 389 | "children": [ 390 | { 391 | "tag": "h2", 392 | "id": "swrz9hpmb", 393 | "style": "", 394 | "state": { 395 | "collapsed": false, 396 | "visible": true, 397 | "selected": false 398 | }, 399 | "name": "h2", 400 | "type": "text", 401 | "text": "Feature 3", 402 | "children": [] 403 | }, 404 | { 405 | "tag": "p", 406 | "id": "hpxh2m5jw", 407 | "style": "", 408 | "state": { 409 | "collapsed": false, 410 | "visible": true, 411 | "selected": false 412 | }, 413 | "name": "p", 414 | "type": "text", 415 | "text": "Describe the third feature of the product here.", 416 | "children": [] 417 | } 418 | ] 419 | } 420 | ] 421 | }, 422 | { 423 | "tag": "footer", 424 | "id": "uyz0vhpvl", 425 | "style": ".footer", 426 | "state": { 427 | "collapsed": true, 428 | "visible": true, 429 | "selected": false 430 | }, 431 | "name": "footer", 432 | "type": "box", 433 | "text": "", 434 | "props": { 435 | "class": "footer" 436 | }, 437 | "children": [ 438 | { 439 | "tag": "p", 440 | "id": "mctsabbkm", 441 | "style": "", 442 | "state": { 443 | "collapsed": false, 444 | "visible": true, 445 | "selected": false 446 | }, 447 | "name": "p", 448 | "type": "text", 449 | "text": "© 2024 Product Company. All rights reserved.", 450 | "children": [] 451 | } 452 | ] 453 | } 454 | ], 455 | "logo": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB3aWR0aD0iNTEyIgogICBoZWlnaHQ9IjUxMiIKICAgdmlld0JveD0iMCAwIDEzNS40NjY2NiAxMzUuNDY2NjciCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzEiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnMKICAgICBpZD0iZGVmczEiIC8+PGcKICAgICBpZD0iZzI0Ij48cGF0aAogICAgICAgaWQ9InBhdGgyMiIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiMxMzNhZDQ7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSw2Ny43MzMzMzIgViAxMzUuMjAwNTMgTCAyNS4zODc1OTcsMTI2LjAzMTA3IFYgMTA2Ljk2MDQgNjcuNzMzMzMyIFogbSA4NS45Njg5MTE1LDAgLTU3Ljc2OTA4MywzMi4yOTcyNTggdiAxOC44MTA3MyBMIDEyNS44ODIyNCw2Ny43MzMzMzIgWiIgLz48cGF0aAogICAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lO2ZpbGw6IzA0YTJmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MTQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kIgogICAgICAgaWQ9InBhdGgyMyIKICAgICAgIGQ9Im0gNDkuNTY4NTI3LDM1LjgxOTU1MyAtMTYuOTcwNDc4LDkuNzk3OTEgMCwtMTkuNTk1ODIgeiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDIuMjE3MjY1MiwwLDAsMi4xNDcwMjkzLC0zNC40OTUyNjksLTkuMjYyMTYyKSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgyNCIKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiM4NjAwZWY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlLXdpZHRoOjk2LjE3NDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQiCiAgICAgICBkPSJNIDkuNTgyODc3NSwwLjI2NjEzMzYyIFYgNjcuNzMzMzMyIEggMjUuMzg3NTk3IFYgNDIuODU2ODE1IDI4LjMyNjk1MyBsIDcwLjMyNTkzOSwzOS4zMTU5NDYgLTAuMTYxNzQ3LDAuMDkwNDMgaCAzMC4zMzA0NTEgbCAwLjAwMiwtMC4wMDEgeiIgLz48L2c+PC9zdmc+Cg==", 456 | "lang": "en", 457 | "dark": true, 458 | "previewDark": true, 459 | "pwa": false, 460 | "activePanel": "layers" 461 | } -------------------------------------------------------------------------------- /app/libraries/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/libraries/.DS_Store -------------------------------------------------------------------------------- /app/libraries/font-awesome/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Fonticons, Inc. (https://fontawesome.com) 2 | 3 | -------------------------------------------------------------------------------- 4 | 5 | Font Awesome Free License 6 | 7 | Font Awesome Free is free, open source, and GPL friendly. You can use it for 8 | commercial projects, open source projects, or really almost whatever you want. 9 | Full Font Awesome Free license: https://fontawesome.com/license/free. 10 | 11 | -------------------------------------------------------------------------------- 12 | 13 | # Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/) 14 | 15 | The Font Awesome Free download is licensed under a Creative Commons 16 | Attribution 4.0 International License and applies to all icons packaged 17 | as SVG and JS file types. 18 | 19 | -------------------------------------------------------------------------------- 20 | 21 | # Fonts: SIL OFL 1.1 License 22 | 23 | In the Font Awesome Free download, the SIL OFL license applies to all icons 24 | packaged as web and desktop font files. 25 | 26 | Copyright (c) 2022 Fonticons, Inc. (https://fontawesome.com) 27 | with Reserved Font Name: "Font Awesome". 28 | 29 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 30 | This license is copied below, and is also available with a FAQ at: 31 | http://scripts.sil.org/OFL 32 | 33 | SIL OPEN FONT LICENSE 34 | Version 1.1 - 26 February 2007 35 | 36 | PREAMBLE 37 | The goals of the Open Font License (OFL) are to stimulate worldwide 38 | development of collaborative font projects, to support the font creation 39 | efforts of academic and linguistic communities, and to provide a free and 40 | open framework in which fonts may be shared and improved in partnership 41 | with others. 42 | 43 | The OFL allows the licensed fonts to be used, studied, modified and 44 | redistributed freely as long as they are not sold by themselves. The 45 | fonts, including any derivative works, can be bundled, embedded, 46 | redistributed and/or sold with any software provided that any reserved 47 | names are not used by derivative works. The fonts and derivatives, 48 | however, cannot be released under any other type of license. The 49 | requirement for fonts to remain under this license does not apply 50 | to any document created using the fonts or their derivatives. 51 | 52 | DEFINITIONS 53 | "Font Software" refers to the set of files released by the Copyright 54 | Holder(s) under this license and clearly marked as such. This may 55 | include source files, build scripts and documentation. 56 | 57 | "Reserved Font Name" refers to any names specified as such after the 58 | copyright statement(s). 59 | 60 | "Original Version" refers to the collection of Font Software components as 61 | distributed by the Copyright Holder(s). 62 | 63 | "Modified Version" refers to any derivative made by adding to, deleting, 64 | or substituting — in part or in whole — any of the components of the 65 | Original Version, by changing formats or by porting the Font Software to a 66 | new environment. 67 | 68 | "Author" refers to any designer, engineer, programmer, technical 69 | writer or other person who contributed to the Font Software. 70 | 71 | PERMISSION & CONDITIONS 72 | Permission is hereby granted, free of charge, to any person obtaining 73 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 74 | redistribute, and sell modified and unmodified copies of the Font 75 | Software, subject to the following conditions: 76 | 77 | 1) Neither the Font Software nor any of its individual components, 78 | in Original or Modified Versions, may be sold by itself. 79 | 80 | 2) Original or Modified Versions of the Font Software may be bundled, 81 | redistributed and/or sold with any software, provided that each copy 82 | contains the above copyright notice and this license. These can be 83 | included either as stand-alone text files, human-readable headers or 84 | in the appropriate machine-readable metadata fields within text or 85 | binary files as long as those fields can be easily viewed by the user. 86 | 87 | 3) No Modified Version of the Font Software may use the Reserved Font 88 | Name(s) unless explicit written permission is granted by the corresponding 89 | Copyright Holder. This restriction only applies to the primary font name as 90 | presented to the users. 91 | 92 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 93 | Software shall not be used to promote, endorse or advertise any 94 | Modified Version, except to acknowledge the contribution(s) of the 95 | Copyright Holder(s) and the Author(s) or with their explicit written 96 | permission. 97 | 98 | 5) The Font Software, modified or unmodified, in part or in whole, 99 | must be distributed entirely under this license, and must not be 100 | distributed under any other license. The requirement for fonts to 101 | remain under this license does not apply to any document created 102 | using the Font Software. 103 | 104 | TERMINATION 105 | This license becomes null and void if any of the above conditions are 106 | not met. 107 | 108 | DISCLAIMER 109 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 110 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 111 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 112 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 113 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 114 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 115 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 116 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 117 | OTHER DEALINGS IN THE FONT SOFTWARE. 118 | 119 | -------------------------------------------------------------------------------- 120 | 121 | # Code: MIT License (https://opensource.org/licenses/MIT) 122 | 123 | In the Font Awesome Free download, the MIT license applies to all non-font and 124 | non-icon files. 125 | 126 | Copyright 2022 Fonticons, Inc. 127 | 128 | Permission is hereby granted, free of charge, to any person obtaining a copy of 129 | this software and associated documentation files (the "Software"), to deal in the 130 | Software without restriction, including without limitation the rights to use, copy, 131 | modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 132 | and to permit persons to whom the Software is furnished to do so, subject to the 133 | following conditions: 134 | 135 | The above copyright notice and this permission notice shall be included in all 136 | copies or substantial portions of the Software. 137 | 138 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 139 | INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 140 | PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 141 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 142 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 143 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 144 | 145 | -------------------------------------------------------------------------------- 146 | 147 | # Attribution 148 | 149 | Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font 150 | Awesome Free files already contain embedded comments with sufficient 151 | attribution, so you shouldn't need to do anything additional when using these 152 | files normally. 153 | 154 | We've kept attribution comments terse, so we ask that you do not actively work 155 | to remove them from files, especially code. They're a great way for folks to 156 | learn about Font Awesome. 157 | 158 | -------------------------------------------------------------------------------- 159 | 160 | # Brand Icons 161 | 162 | All brand icons are trademarks of their respective owners. The use of these 163 | trademarks does not indicate endorsement of the trademark holder by Font 164 | Awesome, nor vice versa. **Please do not use brand logos for any purpose except 165 | to represent the company, product, or service to which they refer.** 166 | -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/brands.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | :host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"} -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/regular.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | :root, :host { 7 | --fa-style-family-classic: 'Font Awesome 6 Free'; 8 | --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } 9 | 10 | @font-face { 11 | font-family: 'Font Awesome 6 Free'; 12 | font-style: normal; 13 | font-weight: 400; 14 | font-display: block; 15 | src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } 16 | 17 | .far, 18 | .fa-regular { 19 | font-weight: 400; } 20 | -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/regular.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | :host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400} -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/solid.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | :root, :host { 7 | --fa-style-family-classic: 'Font Awesome 6 Free'; 8 | --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } 9 | 10 | @font-face { 11 | font-family: 'Font Awesome 6 Free'; 12 | font-style: normal; 13 | font-weight: 900; 14 | font-display: block; 15 | src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } 16 | 17 | .fas, 18 | .fa-solid { 19 | font-weight: 900; } 20 | -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/solid.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | :host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900} -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/svg-with-js.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | :host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Solid";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Regular";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Light";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Thin";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 6 Sharp";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.07143em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor)}.svg-inline--fa .fa-secondary,.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)} -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/v4-font-face.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | @font-face { 7 | font-family: 'FontAwesome'; 8 | font-display: block; 9 | src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } 10 | 11 | @font-face { 12 | font-family: 'FontAwesome'; 13 | font-display: block; 14 | src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } 15 | 16 | @font-face { 17 | font-family: 'FontAwesome'; 18 | font-display: block; 19 | src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); 20 | unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } 21 | 22 | @font-face { 23 | font-family: 'FontAwesome'; 24 | font-display: block; 25 | src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); 26 | unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; } 27 | -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/v4-font-face.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | @font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/v5-font-face.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | @font-face { 7 | font-family: 'Font Awesome 5 Brands'; 8 | font-display: block; 9 | font-weight: 400; 10 | src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } 11 | 12 | @font-face { 13 | font-family: 'Font Awesome 5 Free'; 14 | font-display: block; 15 | font-weight: 900; 16 | src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } 17 | 18 | @font-face { 19 | font-family: 'Font Awesome 5 Free'; 20 | font-display: block; 21 | font-weight: 400; 22 | src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } 23 | -------------------------------------------------------------------------------- /app/libraries/font-awesome/css/v5-font-face.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | @font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")} -------------------------------------------------------------------------------- /app/libraries/font-awesome/js/conflict-detection.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 6.2.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | * Copyright 2022 Fonticons, Inc. 5 | */ 6 | var t;t=function(){"use strict";function o(e,t){var n,o=Object.keys(e);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(e),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,n)),o}function a(e){for(var t=1;tt.length)&&(e=t.length);for(var n=0,o=new Array(e);n>16)+(e>>16)+(n>>16)<<16|65535&n}function c(t,e,n,o,r,i){return u((i=u(u(e,t),u(o,i)))<>>32-r,n)}function d(t,e,n,o,r,i,a){return c(e&n|~e&o,t,e,r,i,a)}function m(t,e,n,o,r,i,a){return c(e&o|n&~o,t,e,r,i,a)}function p(t,e,n,o,r,i,a){return c(e^n^o,t,e,r,i,a)}function g(t,e,n,o,r,i,a){return c(n^(e|~o),t,e,r,i,a)}function a(t,e){var n,o,r,i;t[e>>5]|=128<>>9<<4)]=e;for(var a=1732584193,c=-271733879,s=-1732584194,f=271733878,l=0;l>5]>>>o%32&255);return e}function f(t){var e=[];for(e[(t.length>>2)-1]=void 0,o=0;o>5]|=(255&t.charCodeAt(o/8))<>>4&15)+n.charAt(15&e);return o}function n(t){return unescape(encodeURIComponent(t))}function r(t){return s(a(f(t=n(t)),8*t.length))}function i(t,e){return function(t,e){var n,o=f(t),r=[],i=[];for(r[15]=i[15]=void 0,16 element that loads this detection:"),console.info("\t%c".concat(O,"%c: milliseconds to wait for each test before deciding whether it's a conflict."),"font-weight: bold;","font-size: normal;"),console.info("\t%c".concat(D,"%c: milliseconds to wait for the browser to accumulate test results before giving up."),"font-weight: bold;","font-size: normal;"),C({maxDuration:t,showProgress:!0,progressIndicator:"waiting...",fn:function(){return Object.keys(n.conflict).length+Object.keys(n.noConflict).length>=i}}).then(function(){console.info("DONE!"),k({nodesTested:n,nodesFound:r}),e({nodesTested:n,nodesFound:r}),console.groupEnd()}).catch(function(t){"timeout"===t?console.info("TIME OUT! We waited until we got tired. Here's what we found:"):(console.info("Whoops! We hit an error:",t),console.info("Here's what we'd found up until that error:")),k({nodesTested:n,nodesFound:r}),e({nodesTested:n,nodesFound:r}),console.groupEnd()}))}var S=l.FontAwesomeDetection||{},N=a(a(a({},{report:function(t){var e,n=t.nodesTested,o=t.nodesFound,r={};for(e in o)n.conflict[e]||n.noConflict[e]||(r[e]=o[e]);if(0<(t=Object.keys(n.conflict).length)){console.info("%cConflict".concat(1=b.status}function e(a){try{a.dispatchEvent(new MouseEvent("click"))}catch(c){var b=document.createEvent("MouseEvents");b.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||("object"!=typeof window||window!==f?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement("a");g=g||b.name||"download",j.download=g,j.rel="noopener","string"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target="_blank")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:"msSaveOrOpenBlob"in navigator?function(f,g,h){if(g=g||f.name||"download","string"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement("a");i.href=f,i.target="_blank",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open("","_blank"),g&&(g.document.title=g.document.body.innerText="downloading..."),"string"==typeof b)return c(b,d,e);var h="application/octet-stream"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\/[\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&"undefined"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,"data:attachment/file;"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,"undefined"!=typeof module&&(module.exports=g)}); 2 | 3 | //# sourceMappingURL=FileSaver.min.js.map -------------------------------------------------------------------------------- /app/libraries/lz-string/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/libraries/lz-string/.DS_Store -------------------------------------------------------------------------------- /app/libraries/lz-string/lz-string.min.js: -------------------------------------------------------------------------------- 1 | var LZString=function(){function o(o,r){if(!t[o]){t[o]={};for(var n=0;ne;e++){var s=r.charCodeAt(e);n[2*e]=s>>>8,n[2*e+1]=s%256}return n},decompressFromUint8Array:function(o){if(null===o||void 0===o)return i.decompress(o);for(var n=new Array(o.length/2),e=0,t=n.length;t>e;e++)n[e]=256*o[2*e]+o[2*e+1];var s=[];return n.forEach(function(o){s.push(r(o))}),i.decompress(s.join(""))},compressToEncodedURIComponent:function(o){return null==o?"":i._compress(o,6,function(o){return e.charAt(o)})},decompressFromEncodedURIComponent:function(r){return null==r?"":""==r?null:(r=r.replace(/ /g,"+"),i._decompress(r.length,32,function(n){return o(e,r.charAt(n))}))},compress:function(o){return i._compress(o,16,function(o){return r(o)})},_compress:function(o,r,n){if(null==o)return"";var e,t,i,s={},p={},u="",c="",a="",l=2,f=3,h=2,d=[],m=0,v=0;for(i=0;ie;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++),s[c]=f++,a=String(u)}if(""!==a){if(Object.prototype.hasOwnProperty.call(p,a)){if(a.charCodeAt(0)<256){for(e=0;h>e;e++)m<<=1,v==r-1?(v=0,d.push(n(m)),m=0):v++;for(t=a.charCodeAt(0),e=0;8>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}else{for(t=1,e=0;h>e;e++)m=m<<1|t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t=0;for(t=a.charCodeAt(0),e=0;16>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1}l--,0==l&&(l=Math.pow(2,h),h++),delete p[a]}else for(t=s[a],e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;l--,0==l&&(l=Math.pow(2,h),h++)}for(t=2,e=0;h>e;e++)m=m<<1|1&t,v==r-1?(v=0,d.push(n(m)),m=0):v++,t>>=1;for(;;){if(m<<=1,v==r-1){d.push(n(m));break}v++}return d.join("")},decompress:function(o){return null==o?"":""==o?null:i._decompress(o.length,32768,function(r){return o.charCodeAt(r)})},_decompress:function(o,n,e){var t,i,s,p,u,c,a,l,f=[],h=4,d=4,m=3,v="",w=[],A={val:e(0),position:n,index:1};for(i=0;3>i;i+=1)f[i]=i;for(p=0,c=Math.pow(2,2),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(t=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;l=r(p);break;case 2:return""}for(f[3]=l,s=l,w.push(l);;){if(A.index>o)return"";for(p=0,c=Math.pow(2,m),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;switch(l=p){case 0:for(p=0,c=Math.pow(2,8),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 1:for(p=0,c=Math.pow(2,16),a=1;a!=c;)u=A.val&A.position,A.position>>=1,0==A.position&&(A.position=n,A.val=e(A.index++)),p|=(u>0?1:0)*a,a<<=1;f[d++]=r(p),l=d-1,h--;break;case 2:return w.join("")}if(0==h&&(h=Math.pow(2,m),m++),f[l])v=f[l];else{if(l!==d)return null;v=s+s.charAt(0)}w.push(v),f[d++]=s+v.charAt(0),h--,s=v,0==h&&(h=Math.pow(2,m),m++)}}};return i}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module&&(module.exports=LZString); -------------------------------------------------------------------------------- /app/libraries/pickr/themes/classic.min.css: -------------------------------------------------------------------------------- 1 | /*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */ 2 | .pickr{position:relative;overflow:visible;transform:translateY(0)}.pickr *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:0.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url('data:image/svg+xml;utf8, ') no-repeat center;background-size:0;transition:all 0.3s}.pickr .pcr-button::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pickr .pcr-button::before{z-index:initial}.pickr .pcr-button::after{position:absolute;content:'';top:0;left:0;height:100%;width:100%;transition:background 0.3s;background:var(--pcr-color);border-radius:.15em}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear::before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pickr *,.pcr-app *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow 0.3s}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(0,0,0,0.25)}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:0.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity 0.3s, visibility 0s 0.3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 0.15em 1.5em 0 rgba(0,0,0,0.1),0 0 1em 0 rgba(0,0,0,0.03);left:0;top:0}.pcr-app.visible{transition:opacity 0.3s;visibility:visible;opacity:1}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:0.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports (display: grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit, 1.75em)}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:0.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all 0.15s;overflow:hidden;background:transparent;z-index:1}.pcr-app .pcr-swatches>button::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:6px;border-radius:.15em;z-index:-1}.pcr-app .pcr-swatches>button::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,0.05);border-radius:0.15em;box-sizing:border-box}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -0.2em 0 -0.2em}.pcr-app .pcr-interaction>*{margin:0 0.2em}.pcr-app .pcr-interaction input{letter-spacing:0.07em;font-size:0.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all 0.15s;padding:0.45em 0.5em;margin-top:0.75em}.pcr-app .pcr-interaction input:hover{filter:brightness(0.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(66,133,244,0.75)}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all 0.2s;border-radius:.15em;background:#f1f3f4;cursor:text}.pcr-app .pcr-interaction .pcr-result::-moz-selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(0.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(244,66,80,0.75)}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme='classic']{width:28.5em;max-width:95vw;padding:0.8em}.pcr-app[data-theme='classic'] .pcr-selection{display:flex;justify-content:space-between;flex-grow:1}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview{position:relative;z-index:1;width:2em;display:flex;flex-direction:column;justify-content:space-between;margin-right:0.75em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview .pcr-last-color{cursor:pointer;border-radius:0.15em 0.15em 0 0;z-index:2}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview .pcr-current-color{border-radius:0 0 0.15em 0.15em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview .pcr-last-color,.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);width:100%;height:50%}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-palette{width:100%;height:8em;z-index:1}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-palette .pcr-palette{flex-grow:1;border-radius:.15em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-opacity{margin-left:0.75em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-opacity .pcr-picker{left:50%;transform:translateX(-50%)}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-opacity .pcr-slider{width:8px;flex-grow:1;border-radius:50em}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to bottom, red, #ff0, lime, cyan, blue, #f0f, red)}.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to bottom, transparent, black),url('data:image/svg+xml;utf8, ');background-size:100%, 50%} 3 | 4 | -------------------------------------------------------------------------------- /app/libraries/pickr/themes/monolith.min.css: -------------------------------------------------------------------------------- 1 | /*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */ 2 | .pickr{position:relative;overflow:visible;transform:translateY(0)}.pickr *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:0.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url('data:image/svg+xml;utf8, ') no-repeat center;background-size:0;transition:all 0.3s}.pickr .pcr-button::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pickr .pcr-button::before{z-index:initial}.pickr .pcr-button::after{position:absolute;content:'';top:0;left:0;height:100%;width:100%;transition:background 0.3s;background:var(--pcr-color);border-radius:.15em}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear::before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pickr *,.pcr-app *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow 0.3s}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(0,0,0,0.25)}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:0.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity 0.3s, visibility 0s 0.3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 0.15em 1.5em 0 rgba(0,0,0,0.1),0 0 1em 0 rgba(0,0,0,0.03);left:0;top:0}.pcr-app.visible{transition:opacity 0.3s;visibility:visible;opacity:1}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:0.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports (display: grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit, 1.75em)}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:0.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all 0.15s;overflow:hidden;background:transparent;z-index:1}.pcr-app .pcr-swatches>button::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:6px;border-radius:.15em;z-index:-1}.pcr-app .pcr-swatches>button::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,0.05);border-radius:0.15em;box-sizing:border-box}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -0.2em 0 -0.2em}.pcr-app .pcr-interaction>*{margin:0 0.2em}.pcr-app .pcr-interaction input{letter-spacing:0.07em;font-size:0.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all 0.15s;padding:0.45em 0.5em;margin-top:0.75em}.pcr-app .pcr-interaction input:hover{filter:brightness(0.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(66,133,244,0.75)}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all 0.2s;border-radius:.15em;background:#f1f3f4;cursor:text}.pcr-app .pcr-interaction .pcr-result::-moz-selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(0.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(244,66,80,0.75)}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme='monolith']{width:14.25em;max-width:95vw;padding:0.8em}.pcr-app[data-theme='monolith'] .pcr-selection{display:flex;flex-direction:column;justify-content:space-between;flex-grow:1}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-preview{position:relative;z-index:1;width:100%;height:1em;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:0.5em}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-preview::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-preview .pcr-last-color{cursor:pointer;transition:background-color 0.3s, box-shadow 0.3s;border-radius:0.15em 0 0 0.15em;z-index:2}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-preview .pcr-current-color{border-radius:0 0.15em 0.15em 0}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-preview .pcr-last-color,.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-preview .pcr-current-color{background:var(--pcr-color);width:50%;height:100%}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-palette{width:100%;height:8em;z-index:1}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-palette .pcr-palette{border-radius:.15em;width:100%;height:100%}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-opacity{height:0.5em;margin-top:0.75em}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-opacity .pcr-picker{top:50%;transform:translateY(-50%)}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-opacity .pcr-slider{flex-grow:1;border-radius:50em}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red)}.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to right, transparent, black),url('data:image/svg+xml;utf8, ');background-size:100%, 0.25em} 3 | 4 | -------------------------------------------------------------------------------- /app/libraries/pickr/themes/nano.min.css: -------------------------------------------------------------------------------- 1 | /*! Pickr 1.8.2 MIT | https://github.com/Simonwep/pickr */ 2 | .pickr{position:relative;overflow:visible;transform:translateY(0)}.pickr *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr .pcr-button{position:relative;height:2em;width:2em;padding:0.5em;cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;border-radius:.15em;background:url('data:image/svg+xml;utf8, ') no-repeat center;background-size:0;transition:all 0.3s}.pickr .pcr-button::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pickr .pcr-button::before{z-index:initial}.pickr .pcr-button::after{position:absolute;content:'';top:0;left:0;height:100%;width:100%;transition:background 0.3s;background:var(--pcr-color);border-radius:.15em}.pickr .pcr-button.clear{background-size:70%}.pickr .pcr-button.clear::before{opacity:0}.pickr .pcr-button.clear:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-button.disabled{cursor:not-allowed}.pickr *,.pcr-app *{box-sizing:border-box;outline:none;border:none;-webkit-appearance:none}.pickr input:focus,.pickr input.pcr-active,.pickr button:focus,.pickr button.pcr-active,.pcr-app input:focus,.pcr-app input.pcr-active,.pcr-app button:focus,.pcr-app button.pcr-active{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px var(--pcr-color)}.pickr .pcr-palette,.pickr .pcr-slider,.pcr-app .pcr-palette,.pcr-app .pcr-slider{transition:box-shadow 0.3s}.pickr .pcr-palette:focus,.pickr .pcr-slider:focus,.pcr-app .pcr-palette:focus,.pcr-app .pcr-slider:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(0,0,0,0.25)}.pcr-app{position:fixed;display:flex;flex-direction:column;z-index:10000;border-radius:0.1em;background:#fff;opacity:0;visibility:hidden;transition:opacity 0.3s, visibility 0s 0.3s;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;box-shadow:0 0.15em 1.5em 0 rgba(0,0,0,0.1),0 0 1em 0 rgba(0,0,0,0.03);left:0;top:0}.pcr-app.visible{transition:opacity 0.3s;visibility:visible;opacity:1}.pcr-app .pcr-swatches{display:flex;flex-wrap:wrap;margin-top:0.75em}.pcr-app .pcr-swatches.pcr-last{margin:0}@supports (display: grid){.pcr-app .pcr-swatches{display:grid;align-items:center;grid-template-columns:repeat(auto-fit, 1.75em)}}.pcr-app .pcr-swatches>button{font-size:1em;position:relative;width:calc(1.75em - 5px);height:calc(1.75em - 5px);border-radius:0.15em;cursor:pointer;margin:2.5px;flex-shrink:0;justify-self:center;transition:all 0.15s;overflow:hidden;background:transparent;z-index:1}.pcr-app .pcr-swatches>button::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:6px;border-radius:.15em;z-index:-1}.pcr-app .pcr-swatches>button::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:var(--pcr-color);border:1px solid rgba(0,0,0,0.05);border-radius:0.15em;box-sizing:border-box}.pcr-app .pcr-swatches>button:hover{filter:brightness(1.05)}.pcr-app .pcr-swatches>button:not(.pcr-active){box-shadow:none}.pcr-app .pcr-interaction{display:flex;flex-wrap:wrap;align-items:center;margin:0 -0.2em 0 -0.2em}.pcr-app .pcr-interaction>*{margin:0 0.2em}.pcr-app .pcr-interaction input{letter-spacing:0.07em;font-size:0.75em;text-align:center;cursor:pointer;color:#75797e;background:#f1f3f4;border-radius:.15em;transition:all 0.15s;padding:0.45em 0.5em;margin-top:0.75em}.pcr-app .pcr-interaction input:hover{filter:brightness(0.975)}.pcr-app .pcr-interaction input:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(66,133,244,0.75)}.pcr-app .pcr-interaction .pcr-result{color:#75797e;text-align:left;flex:1 1 8em;min-width:8em;transition:all 0.2s;border-radius:.15em;background:#f1f3f4;cursor:text}.pcr-app .pcr-interaction .pcr-result::-moz-selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-result::selection{background:#4285f4;color:#fff}.pcr-app .pcr-interaction .pcr-type.active{color:#fff;background:#4285f4}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff;width:auto}.pcr-app .pcr-interaction .pcr-save,.pcr-app .pcr-interaction .pcr-cancel,.pcr-app .pcr-interaction .pcr-clear{color:#fff}.pcr-app .pcr-interaction .pcr-save:hover,.pcr-app .pcr-interaction .pcr-cancel:hover,.pcr-app .pcr-interaction .pcr-clear:hover{filter:brightness(0.925)}.pcr-app .pcr-interaction .pcr-save{background:#4285f4}.pcr-app .pcr-interaction .pcr-clear,.pcr-app .pcr-interaction .pcr-cancel{background:#f44250}.pcr-app .pcr-interaction .pcr-clear:focus,.pcr-app .pcr-interaction .pcr-cancel:focus{box-shadow:0 0 0 1px rgba(255,255,255,0.85),0 0 0 3px rgba(244,66,80,0.75)}.pcr-app .pcr-selection .pcr-picker{position:absolute;height:18px;width:18px;border:2px solid #fff;border-radius:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pcr-app .pcr-selection .pcr-color-palette,.pcr-app .pcr-selection .pcr-color-chooser,.pcr-app .pcr-selection .pcr-color-opacity{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;cursor:grab;cursor:-webkit-grab}.pcr-app .pcr-selection .pcr-color-palette:active,.pcr-app .pcr-selection .pcr-color-chooser:active,.pcr-app .pcr-selection .pcr-color-opacity:active{cursor:grabbing;cursor:-webkit-grabbing}.pcr-app[data-theme='nano']{width:14.25em;max-width:95vw}.pcr-app[data-theme='nano'] .pcr-swatches{margin-top:.6em;padding:0 .6em}.pcr-app[data-theme='nano'] .pcr-interaction{padding:0 .6em .6em .6em}.pcr-app[data-theme='nano'] .pcr-selection{display:grid;grid-gap:.6em;grid-template-columns:1fr 4fr;grid-template-rows:5fr auto auto;align-items:center;height:10.5em;width:100%;align-self:flex-start}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview{grid-area:2 / 1 / 4 / 1;height:100%;width:100%;display:flex;flex-direction:row;justify-content:center;margin-left:.6em}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview .pcr-last-color{display:none}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview .pcr-current-color{position:relative;background:var(--pcr-color);width:2em;height:2em;border-radius:50em;overflow:hidden}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview .pcr-current-color::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-palette{grid-area:1 / 1 / 2 / 3;width:100%;height:100%;z-index:1}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-palette .pcr-palette{border-radius:.15em;width:100%;height:100%}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-palette .pcr-palette::before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml;utf8, ');background-size:.5em;border-radius:.15em;z-index:-1}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser{grid-area:2 / 2 / 2 / 2}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity{grid-area:3 / 2 / 3 / 2}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser,.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity{height:0.5em;margin:0 .6em}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser .pcr-picker,.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity .pcr-picker{top:50%;transform:translateY(-50%)}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser .pcr-slider,.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity .pcr-slider{flex-grow:1;border-radius:50em}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-chooser .pcr-slider{background:linear-gradient(to right, red, #ff0, lime, cyan, blue, #f0f, red)}.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-opacity .pcr-slider{background:linear-gradient(to right, transparent, black),url('data:image/svg+xml;utf8, ');background-size:100%, 0.25em} 3 | 4 | -------------------------------------------------------------------------------- /app/libraries/pico/css/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | map: false, 3 | plugins: { 4 | autoprefixer: { 5 | cascade: false 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /app/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "com.michaelsboost.polyrise", 3 | "name": "Polyrise", 4 | "short_name": "Polyrise", 5 | "description": "Free Mobile Website Builder! Create awesome responsive websites. Easy and fast - No coding! Free for commercial use.", 6 | "lang": "en-US", 7 | "dir": "ltr", 8 | "start_url": "./index.html", 9 | "scope": "./", 10 | "display": "standalone", 11 | "theme_color": "#13171f", 12 | "background_color": "#13171f", 13 | "icons": [ 14 | { 15 | "src": "./imgs/icon-192x192.png", 16 | "sizes": "192x192", 17 | "type": "image/png", 18 | "purpose": "any" 19 | }, 20 | { 21 | "src": "./imgs/icon-256x256.png", 22 | "sizes": "256x256", 23 | "type": "image/png", 24 | "purpose": "any" 25 | }, 26 | { 27 | "src": "./imgs/icon-384x384.png", 28 | "sizes": "384x384", 29 | "type": "image/png", 30 | "purpose": "any" 31 | }, 32 | { 33 | "src": "./imgs/icon-512x512.png", 34 | "sizes": "512x512", 35 | "type": "image/png", 36 | "purpose": "maskable" 37 | } 38 | ], 39 | "categories": [ 40 | "productivity", 41 | "utilities" 42 | ], 43 | "prefer_related_applications": true, 44 | "related_applications": [ 45 | { 46 | "platform": "play", 47 | "id": "com.michaelsboost.polyrise" 48 | } 49 | ] 50 | } 51 | -------------------------------------------------------------------------------- /app/media/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/media/.DS_Store -------------------------------------------------------------------------------- /app/media/polyrise-desktop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/media/polyrise-desktop.gif -------------------------------------------------------------------------------- /app/media/polyrise-desktop.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/media/polyrise-desktop.mp4 -------------------------------------------------------------------------------- /app/media/polyrise-desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/media/polyrise-desktop.png -------------------------------------------------------------------------------- /app/media/polyrise-desktop.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/media/polyrise-desktop.webm -------------------------------------------------------------------------------- /app/media/polyrise-desktop.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/media/polyrise-desktop.webp -------------------------------------------------------------------------------- /app/media/polyrise-mobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/media/polyrise-mobile.gif -------------------------------------------------------------------------------- /app/media/polyrise-mobile.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/media/polyrise-mobile.mp4 -------------------------------------------------------------------------------- /app/media/polyrise-mobile.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/media/polyrise-mobile.webm -------------------------------------------------------------------------------- /app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polyrise", 3 | "private": true, 4 | "version": "1.0.3", 5 | "type": "module", 6 | "scripts": { 7 | "build:css": "postcss src/style.css -o dist/style.css", 8 | "build:js": "esbuild src/concat.js --bundle --minify --sourcemap --outfile=dist/App.min.js", 9 | "build": "npm run build:css && npm run build:js", 10 | "serve": "http-server -c-1 -p 8081" 11 | }, 12 | "dependencies": { 13 | "autoprefixer": "^10.4.19", 14 | "cssnano": "^7.0.6", 15 | "postcss": "^8.4.38", 16 | "postcss-import": "^16.1.0", 17 | "tailwindcss": "^3.4.4" 18 | }, 19 | "devDependencies": { 20 | "@tailwindcss/typography": "^0.5.13", 21 | "esbuild": "^0.25.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require('postcss-import'), 4 | require('tailwindcss'), 5 | require('autoprefixer'), 6 | require('cssnano')({ 7 | preset: ['default', { 8 | discardComments: { removeAll: true }, // Remove all comments 9 | }], 10 | }), 11 | ], 12 | }; 13 | -------------------------------------------------------------------------------- /app/src/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/app/src/.DS_Store -------------------------------------------------------------------------------- /app/src/concat.js: -------------------------------------------------------------------------------- 1 | import '../libraries/pickr/pickr.min.js'; 2 | import './App.js'; -------------------------------------------------------------------------------- /app/src/style.css: -------------------------------------------------------------------------------- 1 | @import url('../libraries/pico/pico.classless.min.css'); 2 | @import url('../libraries/pickr/themes/nano.min.css'); 3 | 4 | /* @tailwind base; */ 5 | @tailwind components; 6 | @tailwind utilities; -------------------------------------------------------------------------------- /app/sw.js: -------------------------------------------------------------------------------- 1 | // Import Workbox 2 | importScripts('https://storage.googleapis.com/workbox-cdn/releases/6.4.1/workbox-sw.js'); 3 | 4 | const { registerRoute } = workbox.routing; 5 | const { NetworkFirst, StaleWhileRevalidate, CacheFirst } = workbox.strategies; 6 | const { CacheableResponsePlugin } = workbox.cacheableResponse; 7 | const { ExpirationPlugin } = workbox.expiration; 8 | const { clientsClaim, skipWaiting } = workbox.core; 9 | 10 | // Define cache name dynamically based on the project name 11 | const cacheName = 'Polyrise-cache'; 12 | 13 | // Force update when a new service worker is available 14 | self.addEventListener('install', (event) => { 15 | self.skipWaiting(); // Immediately apply new service worker 16 | }); 17 | 18 | // Clear old caches when activating a new service worker 19 | self.addEventListener('activate', async (event) => { 20 | event.waitUntil( 21 | caches.keys().then(cacheNames => { 22 | return Promise.all( 23 | cacheNames 24 | .filter(name => name !== cacheName) // Keep only the latest cache 25 | .map(name => caches.delete(name)) // Delete old caches 26 | ); 27 | }) 28 | ); 29 | clientsClaim(); // Take control of all open clients 30 | }); 31 | 32 | // Use Network First for scripts, styles, and documents (ensures updates) 33 | registerRoute( 34 | ({ request }) => request.destination === 'script' || request.destination === 'style' || request.destination === 'document', 35 | new NetworkFirst({ 36 | cacheName: cacheName, 37 | plugins: [ 38 | new CacheableResponsePlugin({ 39 | statuses: [0, 200], 40 | }), 41 | ], 42 | }) 43 | ); 44 | 45 | // Cache images, fonts, audio, and video for performance 46 | registerRoute( 47 | ({ request }) => 48 | request.destination === 'image' || request.destination === 'font' || 49 | request.destination === 'audio' || request.destination === 'video', 50 | new CacheFirst({ 51 | cacheName: cacheName, 52 | plugins: [ 53 | new ExpirationPlugin({ 54 | maxEntries: 50, // Limit stored assets 55 | maxAgeSeconds: 7 * 24 * 60 * 60, // Cache for 7 days 56 | }), 57 | ], 58 | }) 59 | ); 60 | 61 | // Listen for messages to skip waiting and apply new updates 62 | self.addEventListener('message', (event) => { 63 | if (event.data && event.data.type === 'SKIP_WAITING') { 64 | self.skipWaiting(); 65 | } 66 | }); 67 | -------------------------------------------------------------------------------- /app/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | content: [ 3 | './index.html', 4 | './src/*.html', 5 | './src/*.js', 6 | // './**/*.html', 7 | // './**/*.js', 8 | ], 9 | darkMode: "class", 10 | theme: { 11 | extend: {}, 12 | }, 13 | plugins: [], 14 | }; -------------------------------------------------------------------------------- /dist/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/dist/.DS_Store -------------------------------------------------------------------------------- /imgs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/.DS_Store -------------------------------------------------------------------------------- /imgs/author.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/author.jpg -------------------------------------------------------------------------------- /imgs/button.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/button.gif -------------------------------------------------------------------------------- /imgs/header-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/header-transparent.png -------------------------------------------------------------------------------- /imgs/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/header.png -------------------------------------------------------------------------------- /imgs/header.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/header.psd -------------------------------------------------------------------------------- /imgs/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/icon-192x192.png -------------------------------------------------------------------------------- /imgs/icon-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/icon-256x256.png -------------------------------------------------------------------------------- /imgs/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/icon-384x384.png -------------------------------------------------------------------------------- /imgs/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/icon-512x512.png -------------------------------------------------------------------------------- /imgs/icon-color.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | -------------------------------------------------------------------------------- /imgs/icon-lines.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /imgs/icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/imgs/logo.png -------------------------------------------------------------------------------- /imgs/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 25 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Polyrise: Design with Freedom, Build with Power! 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
33 |
34 | 50 | 64 |
65 | Get Started 66 |
67 |
68 |
69 |
70 |
71 |

Create Without Boundaries

72 |
73 |

Polyrise empowers you to design and customize responsive websites your way, whether on mobile or desktop. Choose your preferred libraries and frameworks, and build with complete creative freedom. From Bootstrap to Tailwind CSS and Alpine.js, Polyrise is the first website builder that truly liberates your design process, allowing you to craft anything from simple pages to fully interactive apps—anytime, anywhere.

74 |
75 | Get Started 76 |
77 |
78 |
79 |
80 | Example image 81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |

Explore Our Powerful Features

89 |

Discover how our tool empowers you to create, customize, and launch stunning websites with ease.

90 |
91 |
92 |
93 |
94 | Feature 1 in action 95 |
96 |

Bring Your Vision to Life

97 |

Design responsive websites with complete creative freedom. Customize every aspect of your project to fit your unique style.

98 |
99 |
100 |
101 |
102 |
103 | Feature 1 in action 104 |
105 |

Custom Components

106 |

Easily create and use custom components to build your unique designs, and speed up your workflow.

107 |
108 |
109 |
110 |
111 |
112 | Feature 2 in action 113 |
114 |

Full Creative Freedom

115 |

Unleash your creativity with complete control over design and functionality.

116 |
117 |
118 |
119 |
120 |
121 | Feature 3 in action 122 |
123 |

Responsive Design

124 |

Ensure your site looks great on any device with responsive design options.

125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 | 135 | Michael Schwartz 136 | 137 |
138 |

Michael Schwartz

139 |

Creator of Polyrise! 🚀

140 |

Building cool stuff since... well, a while ago. 😅

141 |
142 |
143 |
144 |
145 |
146 | 162 |
163 | 164 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "theme_color": "#13171f", 3 | "background_color": "#13171f", 4 | "display": "standalone", 5 | "start_url": "./index.html", 6 | "lang": "en-US", 7 | "name": "Polyrise", 8 | "short_name": "Polyrise", 9 | "description" : "Free Mobile Website Builder! Create awesome responsive websites. Easy and fast - No coding! Free for commercial use.", 10 | "icons": [ 11 | { 12 | "src": "./app/imgs/icon-192x192.png", 13 | "sizes": "192x192", 14 | "type": "image/png", 15 | "purpose": "any" 16 | }, 17 | { 18 | "src": "./app/imgs/icon-256x256.png", 19 | "sizes": "256x256", 20 | "type": "image/png", 21 | "purpose": "any" 22 | }, 23 | { 24 | "src": "./app/imgs/icon-384x384.png", 25 | "sizes": "384x384", 26 | "type": "image/png", 27 | "purpose": "any" 28 | }, 29 | { 30 | "src": "./app/imgs/icon-512x512.png", 31 | "sizes": "512x512", 32 | "type": "image/png", 33 | "purpose": "maskable" 34 | } 35 | ] 36 | } -------------------------------------------------------------------------------- /media/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/.DS_Store -------------------------------------------------------------------------------- /media/polyrise-desktop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/polyrise-desktop.gif -------------------------------------------------------------------------------- /media/polyrise-desktop.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/polyrise-desktop.mp4 -------------------------------------------------------------------------------- /media/polyrise-desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/polyrise-desktop.png -------------------------------------------------------------------------------- /media/polyrise-desktop.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/polyrise-desktop.webm -------------------------------------------------------------------------------- /media/polyrise-desktop.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/polyrise-desktop.webp -------------------------------------------------------------------------------- /media/polyrise-mobile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/polyrise-mobile.gif -------------------------------------------------------------------------------- /media/polyrise-mobile.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/polyrise-mobile.mp4 -------------------------------------------------------------------------------- /media/polyrise-mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/polyrise-mobile.png -------------------------------------------------------------------------------- /media/polyrise-mobile.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/michaelsboost/Polyrise/bd605add2bd4bb7efabbe2727ee20d02d209b6fa/media/polyrise-mobile.webm -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "javascriptname", 3 | "version": "0.0.1", 4 | "type": "module", 5 | "scripts": { 6 | "build:css": "postcss src/bundle.css -o dist/bundle.css", 7 | 8 | "build": "npm run build:css", 9 | "serve": "http-server -c-1 -p 8081" 10 | }, 11 | "devDependencies": { 12 | "autoprefixer": "^10.4.19", 13 | "postcss": "^8.4.38", 14 | "postcss-import": "^16.1.0", 15 | "cssnano": "^7.0.2", 16 | "tailwindcss": "^3.4.4", 17 | "rollup": "^2.79.1", 18 | "rollup-plugin-terser": "^7.0.2", 19 | "terser": "^5.10.0", 20 | "http-server": "^14.1.1" 21 | } 22 | } --------------------------------------------------------------------------------