mirror of
https://github.com/bonfire-networks/bonfire-app.git
synced 2024-05-17 00:22:40 +00:00
Moved assets to UI.Social repo
This commit is contained in:
parent
7aec103227
commit
ff02357630
4
.github/workflows/release.yaml
vendored
4
.github/workflows/release.yaml
vendored
|
@ -19,11 +19,11 @@ jobs:
|
|||
# - name: Install Elixir dependencies
|
||||
# run: mix deps.get --only prod
|
||||
# - name: Install JS dependencies
|
||||
# run: just js.deps.get
|
||||
# run: just js-deps-get
|
||||
# - name: Prepare release
|
||||
# run: |
|
||||
# mix compile
|
||||
# mix assets.build
|
||||
# cd ./assets && yarn build && cd ..
|
||||
# mix phx.digest
|
||||
# mix release
|
||||
# env:
|
||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -84,6 +84,7 @@ benchmarks/output
|
|||
.vscode/
|
||||
.local
|
||||
screenshots/
|
||||
./assets
|
||||
|
||||
# we use yarn, so ignore others
|
||||
assets/package-lock.json
|
||||
|
|
|
@ -112,7 +112,7 @@ RUN tar --exclude=*.env --exclude=.git --exclude=assets/node_modules --exclude=a
|
|||
|
||||
# prepare static assets
|
||||
COPY data/current_flavour/config/deps_hooks.js data/current_flavour/config/deps_hooks.js
|
||||
RUN mix assets.build
|
||||
RUN cd ./assets && yarn build && cd ..
|
||||
RUN MIX_ENV=prod CI=1 mix phx.digest
|
||||
# RUN ls -la priv/static
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"plugins": {
|
||||
"tailwindcss": true,
|
||||
"postcss-import": true
|
||||
}
|
||||
}
|
|
@ -1,750 +0,0 @@
|
|||
/* This file is for your main application css. */
|
||||
|
||||
@import "../node_modules/nprogress/nprogress.css";
|
||||
@import "../node_modules/@yaireo/tagify/dist/tagify.css";
|
||||
@import "../../deps/bonfire_ui_common/assets/node_modules/@splidejs/splide/dist/css/splide.min.css";
|
||||
@import "../../deps/bonfire_ui_common/assets/node_modules/glider-js/glider.min.css";
|
||||
|
||||
@tailwind base;
|
||||
|
||||
.badge.badge-lg {
|
||||
height: 2.25rem;
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.-secondary li a {
|
||||
@apply !leading-normal !h-auto !tracking-normal
|
||||
}
|
||||
|
||||
* {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.max-w-screen {
|
||||
max-width: var(--inner-window-width);
|
||||
}
|
||||
|
||||
.glider-track {
|
||||
@apply gap-3;
|
||||
}
|
||||
:root {
|
||||
--inner-window-height: 100%;
|
||||
--inner-window-width: 100%;
|
||||
}
|
||||
|
||||
.overflowed {
|
||||
height: var(--inner-window-height);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
|
||||
html,
|
||||
body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
[type='checkbox'], [type='radio'] {
|
||||
background-color: transparent;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
#boundaries_selection tags, #boundaries_selection_tagify {
|
||||
border: none;
|
||||
}
|
||||
|
||||
|
||||
@keyframes fadeIn {
|
||||
0%{
|
||||
opacity: 0;
|
||||
}
|
||||
100%{
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeinLeft {
|
||||
0%{
|
||||
left: -50%;
|
||||
}
|
||||
100%{
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.sortable-drag{
|
||||
@apply !opacity-100 !bg-base-100;
|
||||
}
|
||||
|
||||
|
||||
.sortable-ghost {
|
||||
@apply bg-base-300 opacity-100;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.active-comment:after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
@apply bg-primary rounded-full w-2 h-2 right-10 top-4;
|
||||
}
|
||||
|
||||
.tagify {
|
||||
@apply rounded;
|
||||
--placeholder-color: hsl(var(--bc)/80);
|
||||
--placeholder-color-focus: hsl(var(--bc)/80);
|
||||
--input-color: hsl(var(--bc)/70);
|
||||
--tags-border-color: hsl(var(--bc)/20);
|
||||
--tag-bg: var(--in);
|
||||
--tag-hover: var(--tag-bg);
|
||||
--tag-remove-bg: var(--tag-bg);
|
||||
}
|
||||
.tagify--outside tag,
|
||||
.tagify tag {
|
||||
@apply rounded bg-info;
|
||||
}
|
||||
|
||||
.tagify__dropdown__wrapper {
|
||||
}
|
||||
.tagify__dropdown__item {
|
||||
@apply text-slate-800;
|
||||
}
|
||||
.tagify__dropdown__item:hover,
|
||||
.tagify__dropdown__item--active {
|
||||
}
|
||||
|
||||
.tagify--outside{
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.tagify--outside .tagify__input{
|
||||
@apply rounded;
|
||||
order: -1;
|
||||
flex: 100%;
|
||||
border: 1px solid var(--tags-border-color);
|
||||
transition: .1s;
|
||||
}
|
||||
|
||||
.tagify--outside .tagify__input:hover{ border-color:var(--tags-hover-border-color); }
|
||||
.tagify--outside.tagify--focus .tagify__input{
|
||||
transition: 0s;
|
||||
border-color: var(--tags-focus-border-color);
|
||||
}
|
||||
|
||||
.badge-lg {
|
||||
height: 2rem;
|
||||
}
|
||||
.menu svg path {
|
||||
stroke-width: 1;
|
||||
}
|
||||
|
||||
.full-height {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.feed_tab.active {
|
||||
@apply border-b-2 border-primary font-semibold;
|
||||
}
|
||||
|
||||
.full_page {
|
||||
height: calc(var(--inner-window-height)) ;
|
||||
}
|
||||
|
||||
.widget {
|
||||
height: calc(var(--inner-window-height) - 65px) ;
|
||||
}
|
||||
|
||||
|
||||
#bonfire_layout {
|
||||
height: calc(var(--inner-window-height) - 60px);
|
||||
overflow-y: auto;
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.widget {
|
||||
height: 0;
|
||||
}
|
||||
#bonfire_layout {
|
||||
height: 100%;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
.checkbox {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
[x-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.lined:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
display: block;
|
||||
width: 3px;
|
||||
border-radius: 100px;
|
||||
left: 0;
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
@apply bg-primary
|
||||
}
|
||||
|
||||
.dropdown.open:before {
|
||||
content: " ";
|
||||
background: transparent;
|
||||
display: block;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
|
||||
.wide {
|
||||
width: 640px;
|
||||
}
|
||||
|
||||
|
||||
.main_reply_to {
|
||||
padding-left: 0.75rem !important
|
||||
}
|
||||
|
||||
/* LiveView specific classes for your customizations */
|
||||
.phx-no-feedback.invalid-feedback,
|
||||
.phx-no-feedback .invalid-feedback {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.phx-click-loading {
|
||||
opacity: 0.5;
|
||||
transition: opacity 1s ease-out;
|
||||
}
|
||||
|
||||
.phx-disconnected{
|
||||
cursor: wait;
|
||||
}
|
||||
.phx-disconnected *{
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.phx-modal {
|
||||
opacity: 1!important;
|
||||
position: fixed;
|
||||
z-index: 1;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
background-color: rgb(0,0,0);
|
||||
background-color: rgba(0,0,0,0.4);
|
||||
}
|
||||
|
||||
.phx-modal-content {
|
||||
background-color: #fefefe;
|
||||
margin: 15% auto;
|
||||
padding: 20px;
|
||||
border: 1px solid #888;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.phx-modal-close {
|
||||
color: #aaa;
|
||||
float: right;
|
||||
font-size: 28px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.phx-modal-close:hover,
|
||||
.phx-modal-close:focus {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
.invalid-feedback {
|
||||
color: #a94442;
|
||||
display: block;
|
||||
margin: -1rem 0 2rem;
|
||||
}
|
||||
|
||||
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
|
||||
/* Import with */
|
||||
/* @import './scrollbar-color.css'; */
|
||||
|
||||
:root {
|
||||
--scrollbarTrack: hsla(var(--b2));
|
||||
--scrollbarThumb: hsla(var(--bc)/0.1);
|
||||
--scrollbarThumbHover: hsla(var(--bc)/0.2);
|
||||
}
|
||||
/* Scrollbar colors*/
|
||||
/* width */
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
}
|
||||
|
||||
/* Track */
|
||||
::-webkit-scrollbar-track {
|
||||
background: var(--scrollbarTrack);
|
||||
}
|
||||
|
||||
|
||||
::-webkit-scrollbar-track:hover {
|
||||
background: var(--b1);
|
||||
}
|
||||
|
||||
|
||||
/* Handle */
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--scrollbarThumb);
|
||||
border-radius: 3px
|
||||
}
|
||||
|
||||
/* Handle on hover */
|
||||
|
||||
|
||||
.menu .menu-title>a, .menu .menu-title>span {
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
.feed_activity_action {
|
||||
@apply flex items-center space-x-1 rounded cursor-pointer;
|
||||
}
|
||||
|
||||
.feed_activity .dropdown-content {
|
||||
transform: none
|
||||
}
|
||||
|
||||
.feed_activity_text_active {
|
||||
@apply text-primary;
|
||||
}
|
||||
|
||||
.feed_activity_action:hover .feed_activity_icon {
|
||||
@apply bg-base-300 bg-opacity-50;
|
||||
}
|
||||
|
||||
.feed_activity_action:hover .feed_activity_text {
|
||||
@apply text-opacity-100;
|
||||
}
|
||||
|
||||
.feed_activity_action:hover .feed_activity_icon svg {
|
||||
@apply text-base-content;
|
||||
}
|
||||
|
||||
.feed_activity_icon_active {
|
||||
@apply text-primary;
|
||||
}
|
||||
|
||||
|
||||
.feed_activity_icon {
|
||||
@apply flex items-center rounded h-8 w-8 place-content-center;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.feed_activity_text {
|
||||
@apply text-xs font-normal text-base-content flex;
|
||||
}
|
||||
|
||||
.reply_to {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
|
||||
.comment_lined {
|
||||
position: absolute;
|
||||
content: "";
|
||||
top: 50px;
|
||||
bottom: -10px;
|
||||
width: 2px;
|
||||
left: 30px;
|
||||
z-index: 999999;
|
||||
@apply bg-base-200;
|
||||
}
|
||||
|
||||
.profile_item:hover {
|
||||
background-color: hsla(var(--bc)/var(--tw-bg-opacity,1));
|
||||
}
|
||||
|
||||
.h-modal {
|
||||
height: calc(var(--inner-window-height) - 48px);
|
||||
}
|
||||
|
||||
.h-bonfire-logged {
|
||||
height: calc(var(--inner-window-height) - 96px);
|
||||
}
|
||||
|
||||
|
||||
body {
|
||||
scrollbar-gutter: stable both-edges;
|
||||
}
|
||||
|
||||
html, body, a {
|
||||
@apply text-base-content;
|
||||
}
|
||||
|
||||
a, .link, .link-hover {
|
||||
text-decoration-skip: objects;
|
||||
text-decoration-skip-ink: auto;
|
||||
}
|
||||
|
||||
.alert {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
article .prose {
|
||||
color: hsla(var(--bc));
|
||||
}
|
||||
|
||||
figure iframe {
|
||||
max-width: 100%;
|
||||
max-height: calc(var(--inner-window-height) - 60px);
|
||||
}
|
||||
article figure iframe {
|
||||
max-height: calc(var(--inner-window-height) / 2.5);
|
||||
}
|
||||
|
||||
.write_post_content {
|
||||
@apply text-base-content;
|
||||
--ck-color-engine-placeholder-text: hsla(var(--bc) / 0.8);
|
||||
--ck-color-mention-background: transparent ;
|
||||
--ck-color-mention-text: hsla(var(--sc) / 1) ;
|
||||
}
|
||||
|
||||
.write_post_content .mention {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
|
||||
.prose .mention {
|
||||
@apply link-primary link-hover;
|
||||
}
|
||||
|
||||
|
||||
.ck.ck-placeholder:before,
|
||||
.ck .ck-placeholder:before {
|
||||
@apply text-base-content text-opacity-80;
|
||||
}
|
||||
|
||||
.ck.ck-editor__editable_inline>:first-child {
|
||||
margin-top: 8px !important;
|
||||
}
|
||||
|
||||
.ck-balloon-panel_visible {
|
||||
@apply !border-none !bg-neutral
|
||||
}
|
||||
|
||||
.ck_list {
|
||||
@apply !bg-neutral !border-none !shadow !menu !m-0 !p-0;
|
||||
}
|
||||
|
||||
.ck-list__item {
|
||||
cursor: pointer !important;
|
||||
border-radius: 4px !important;
|
||||
}
|
||||
|
||||
.ck.ck-list__item .ck-button {
|
||||
cursor: pointer !important;
|
||||
}
|
||||
|
||||
.mention_item-name {
|
||||
@apply !text-neutral-content !font-semibold;
|
||||
}
|
||||
|
||||
.mention_item-username {
|
||||
@apply !ml-1 !font-light !text-neutral-content/80;
|
||||
|
||||
}
|
||||
|
||||
.ck.ck-list__item .ck-button.ck-on {
|
||||
@apply !bg-base-content/5 !block !w-full;
|
||||
}
|
||||
|
||||
.ck.ck-reset.ck-list.ck-mentions {
|
||||
@apply p-1.5 rounded border-none;
|
||||
}
|
||||
|
||||
.ck-content .mention {
|
||||
@apply !text-primary !link;
|
||||
}
|
||||
|
||||
.ck.ck-balloon-panel.ck-balloon-panel_caret_se.ck-balloon-panel_visible {
|
||||
border-radius: 4px !important;
|
||||
}
|
||||
|
||||
.editor_area#editor {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.background-invisible:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
background-color: hsla(var(--b3) / 1);
|
||||
left: -8px;
|
||||
right: -8px;
|
||||
bottom: 0px;
|
||||
display: block;
|
||||
@apply top-0 tablet:top-[-1rem];
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.background-invisible:before {
|
||||
top: 0rem;
|
||||
}
|
||||
}
|
||||
|
||||
.sm_background-invisible:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
z-index: -1;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
bottom: -1rem;
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
emoji-picker {
|
||||
--emoji-size: 1.2rem;
|
||||
--emoji-padding: 0.4rem;
|
||||
--background: hsla(var(--b3) / 1);
|
||||
--num-columns: 6;
|
||||
--border-color: hsla(var(--b3) / 1);
|
||||
--button-hover-background: hsla(var(--bc) / 4);
|
||||
width: 280px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.no-padding {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
@keyframes fade-out {
|
||||
from {
|
||||
opacity: 1;
|
||||
}
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
.fade-out {
|
||||
animation: fade-out 1s;
|
||||
animation-delay: 5s;
|
||||
animation-fill-mode: forwards;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
.tooltip::before {
|
||||
content: "";
|
||||
display: none;
|
||||
}
|
||||
.tooltip::after {
|
||||
content: "";
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.scrolling-container {
|
||||
@apply h-full min-h-full min-h-[100px] max-h-[150px];
|
||||
}
|
||||
|
||||
.ql-container {
|
||||
font-size: 18px !important;
|
||||
height: 100%;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.ql-editor {
|
||||
@apply h-full min-h-full;
|
||||
flex: 1;
|
||||
overflow-y: visible !important;
|
||||
overflow-x: auto;
|
||||
padding: 15px !important;
|
||||
}
|
||||
|
||||
.ql-editor.ql-blank::before {
|
||||
@apply !text-base-content/70;
|
||||
}
|
||||
|
||||
.ql-html-textContainer div,
|
||||
.ql-html-textContainer button,
|
||||
.ql-html-textContainer span {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.ql-mention-list-container {
|
||||
width:270px;
|
||||
border:1px solid #f0f0f0;
|
||||
border-radius:4px;
|
||||
background-color:#fff;
|
||||
box-shadow:0 2px 12px 0 rgba(30,30,30,.08);
|
||||
z-index:9001;
|
||||
overflow:auto
|
||||
}
|
||||
|
||||
.ql-tooltip {
|
||||
z-index: 999999999;
|
||||
}
|
||||
.ql-mention-loading{line-height:44px;padding:0 20px;vertical-align:middle;font-size:16px}
|
||||
.ql-mention-list{list-style:none;margin:0;padding:0;overflow:hidden}
|
||||
.ql-mention-list-item{cursor:pointer;line-height:44px;font-size:16px;padding:0 20px;vertical-align:middle}
|
||||
.ql-mention-list-item.disabled{cursor:auto}
|
||||
.ql-mention-list-item.selected{background-color:#d3e1eb;text-decoration:none}
|
||||
.ql-editor .mention {
|
||||
@apply bg-slate-300;
|
||||
height:24px;
|
||||
width:65px;
|
||||
border-radius:6px;
|
||||
padding:3px 0;
|
||||
margin-right:2px;
|
||||
user-select:all
|
||||
}
|
||||
.ql-editor .mention a {
|
||||
@apply text-slate-800;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
.ql-editor .mention>span {
|
||||
margin: 0 3px
|
||||
}
|
||||
|
||||
|
||||
.modal-bottom :where(.modal-box) {
|
||||
--tw-translate-y: 0;
|
||||
}
|
||||
|
||||
.smart_input_container {
|
||||
--tw-shadow: 0 10px 35px -5px rgb(0 0 0 / 0.8), 0 8px 10px -6px rgb(0 0 0 / 0.1);
|
||||
}
|
||||
|
||||
.upload-entry img {
|
||||
@apply w-full h-[140px] object-cover rounded-lg;
|
||||
}
|
||||
|
||||
.media_container img.media-image {
|
||||
@apply !h-[160px] !max-w-[160px] object-cover;
|
||||
}
|
||||
|
||||
.media-entry button {
|
||||
@apply w-full h-full
|
||||
}
|
||||
|
||||
|
||||
.media-single button {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.media-multiple button {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.prose {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.modal-box {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.tabs_nav .tab {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.tabs_nav_profile .tab {
|
||||
@apply !py-4 !h-[3.5rem];
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.tabs_nav_profile .tab.tab-active {
|
||||
border-bottom: 3px solid;
|
||||
}
|
||||
|
||||
.tabs_nav .tab.tab-active {
|
||||
border-bottom: 3px solid;
|
||||
}
|
||||
|
||||
.not-distraction-free {
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.text-sm pre,
|
||||
.text-sm code {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
.input-sizer.stacked {
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
|
||||
.input-sizer.stacked::after {
|
||||
grid-area: 2 / 1;
|
||||
}
|
||||
|
||||
.input-sizer.stacked textarea {
|
||||
grid-area: 2 / 1;
|
||||
}
|
||||
|
||||
.input-sizer::after, .input-sizer .textarea {
|
||||
resize: none;
|
||||
}
|
||||
|
||||
|
||||
.input-sizer::after {
|
||||
content: attr(data-value) ' ';
|
||||
visibility: hidden;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.input-sizer {
|
||||
display: inline-grid;
|
||||
vertical-align: top;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
.splide__pagination__page.is-active {
|
||||
@apply bg-base-content/70;
|
||||
}
|
||||
.splide__arrow:disabled {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.splide__arrow {
|
||||
@apply text-base-content/80;
|
||||
}
|
||||
|
||||
.dropdown.dropdown-open .dropdown-content, .dropdown.dropdown-hover:hover .dropdown-content, .dropdown:not(.dropdown-hover):focus .dropdown-content, .dropdown:not(.dropdown-hover):focus-within .dropdown-content {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.dropdown .dropdown-content {
|
||||
height: 0;
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
// equivalent of the following + attempted added sass plugin
|
||||
// plugin is required to support sass imports in any JS deps
|
||||
// esbuild ./js/bonfire_live.js ./js/bonfire_basic.js --target=es2015 --bundle --sourcemap --loader:.svg=text --outdir=../priv/static/js --watch
|
||||
|
||||
const outdir = "../priv/static/js";
|
||||
|
||||
// const {sassPlugin} = require("esbuild-sass-plugin")
|
||||
const { sassPlugin } = require("@es-pack/esbuild-sass-plugin")
|
||||
// const { createImporter } = require("sass-extended-importer");
|
||||
|
||||
// const sass = require('sass')
|
||||
// var fs = require('fs');
|
||||
|
||||
require('esbuild').build({
|
||||
plugins: [sassPlugin(
|
||||
// {
|
||||
// cache: true,
|
||||
// importer: createImporter()
|
||||
// }
|
||||
)],
|
||||
watch: {
|
||||
onRebuild(error, result) {
|
||||
if (error) console.error('watch build failed:', error)
|
||||
else {
|
||||
|
||||
// const result = sass.renderSync({ file: outdir + '/bonfire_live.css' });
|
||||
|
||||
// fs.writeFile(outdir+'/deps.css', result.css.toString(), function (err) {
|
||||
// if (err) throw err;
|
||||
// console.log('sass was transformed');
|
||||
// });
|
||||
|
||||
console.log('watch build succeeded:', result)
|
||||
}
|
||||
},
|
||||
},
|
||||
bundle: true,
|
||||
sourcemap: true,
|
||||
target: 'es2015',
|
||||
loader: {
|
||||
'.png': 'dataurl',
|
||||
'.svg': 'text',
|
||||
},
|
||||
entryPoints: [
|
||||
'./js/bonfire_live.js',
|
||||
'./js/bonfire_basic.js'
|
||||
],
|
||||
outdir: outdir
|
||||
}).then(result => {
|
||||
console.log('watching for JS changes...')
|
||||
})
|
|
@ -1,10 +0,0 @@
|
|||
#!/bin/sh
|
||||
# This script installs the main app's JS deps
|
||||
|
||||
SCRIPT_DIR=`dirname "$0"`
|
||||
|
||||
echo "Install the app's main JS deps from dir '$SCRIPT_DIR' with args '$@'\n"
|
||||
|
||||
yarn -v || npm -g install yarn
|
||||
|
||||
cd $SCRIPT_DIR && yarn $@
|
|
@ -1,48 +0,0 @@
|
|||
import "./common"
|
||||
|
||||
let Hooks = {};
|
||||
|
||||
// TODO: put this in something similar to /config/deps_hooks.js and/or make it extensible/configurable
|
||||
import { ImageHooks } from "./../../deps/bonfire_ui_common/assets/js/image"
|
||||
|
||||
Object.assign(Hooks, ImageHooks);
|
||||
|
||||
// run LiveView Hooks without LiveView
|
||||
(function () {
|
||||
[...document.querySelectorAll("[phx-hook]")].map((hookEl) => {
|
||||
let hookName = hookEl.getAttribute("phx-hook");
|
||||
let hook = Hooks[hookName];
|
||||
|
||||
if (hook) {
|
||||
let mountedFn = hook.mounted.bind({ ...hook, el: hookEl });
|
||||
mountedFn();
|
||||
}
|
||||
});
|
||||
}) ();
|
||||
|
||||
function phxClick(event) {
|
||||
// event.preventDefault(); // Override the native event?
|
||||
let name = this.getAttribute("phx-click")
|
||||
if (name.charAt(0) == "[") {
|
||||
name = JSON.parse(name)[0][1]["event"]
|
||||
}
|
||||
window.location = "/LiveHandler/" + name.replace(":", "/") + "?" + new URLSearchParams(getPhxValues(this)).toString()
|
||||
}
|
||||
|
||||
// attempt graceful degradation for LiveView events without LiveView
|
||||
(function () {
|
||||
[...document.querySelectorAll("[phx-click]")].map((el) => {
|
||||
el.addEventListener('click', phxClick);
|
||||
});
|
||||
})();
|
||||
|
||||
function getPhxValues(el) {
|
||||
console.log(el)
|
||||
return el
|
||||
.getAttributeNames()
|
||||
.filter(name => name.startsWith("phx-value-"))
|
||||
.reduce((obj, name) => ({
|
||||
...obj,
|
||||
[name.substring(10)]: el.getAttribute(name)
|
||||
}), {})
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
// JS shared with non_live pages
|
||||
import "./common"
|
||||
|
||||
// for JS features & extensions to hook into LiveView
|
||||
let Hooks = {};
|
||||
|
||||
// Semi-boilerplate Phoenix+LiveView...
|
||||
|
||||
import {Socket} from "phoenix"
|
||||
import NProgress from "nprogress"
|
||||
import {LiveSocket} from "phoenix_live_view"
|
||||
|
||||
let csrfToken = document.querySelector("meta[name='csrf-token']").getAttribute("content")
|
||||
let liveSocket = new LiveSocket("/live", Socket, {
|
||||
timeout: 60000,
|
||||
params: { _csrf_token: csrfToken },
|
||||
dom: {
|
||||
onBeforeElUpdated(from, to) {
|
||||
if (from._x_dataStack) { window.Alpine.clone(from, to) }
|
||||
}
|
||||
},
|
||||
hooks: Hooks
|
||||
})
|
||||
|
||||
// Show progress bar on live navigation and form submits
|
||||
window.addEventListener("phx:page-loading-start", info => NProgress.start())
|
||||
window.addEventListener("phx:page-loading-stop", info => NProgress.done())
|
||||
|
||||
// connect if there are any LiveViews on the page
|
||||
liveSocket.connect()
|
||||
// themeChange()
|
||||
|
||||
// expose liveSocket on window for web console debug logs and latency simulation:
|
||||
// >> liveSocket.enableDebug()
|
||||
// >> liveSocket.enableLatencySim(1000) // enabled for duration of browser session
|
||||
// >> liveSocket.disableLatencySim()
|
||||
|
||||
window.liveSocket = liveSocket
|
||||
|
||||
// import DynamicImport from '@rtvision/esbuild-dynamic-import';
|
||||
// note depending on your setup you may need to do DynamicImport.default() instead
|
||||
// DynamicImport({ transformExtensions: ['.js'], changeRelativeToAbsolute: false, filter: "../../data/current_flavour/config/deps_hooks.js" })
|
||||
|
||||
import { ExtensionHooks } from "../../data/current_flavour/config/deps_hooks.js"
|
||||
// Add Extensions' Hooks...
|
||||
Object.assign(liveSocket.hooks, ExtensionHooks);
|
|
@ -1,26 +0,0 @@
|
|||
|
||||
import "phoenix_html"
|
||||
|
||||
// lightweight JS toolkit
|
||||
import Alpine from "alpinejs"
|
||||
import intersect from '@alpinejs/intersect'
|
||||
import collapse from '@alpinejs/collapse'
|
||||
|
||||
Alpine.plugin(intersect)
|
||||
Alpine.plugin(collapse)
|
||||
|
||||
window.Alpine = Alpine
|
||||
Alpine.start()
|
||||
|
||||
const winnerDimension = () => {
|
||||
// set the viewport inner height in a custom property on the root of the document
|
||||
document.documentElement.style.setProperty('--inner-window-height', `${window.innerHeight}px`);
|
||||
document.documentElement.style.setProperty('--inner-window-width', `${document.getElementById('inner').getBoundingClientRect().width}px`);
|
||||
}
|
||||
|
||||
winnerDimension()
|
||||
window.addEventListener('resize', winnerDimension)
|
||||
|
||||
// CSS
|
||||
// import * as tagifycss from "../node_modules/@yaireo/tagify/dist/tagify.css";
|
||||
// import * as css from "../css/app.scss"
|
|
@ -1,60 +0,0 @@
|
|||
{
|
||||
"version": "0.0.0",
|
||||
"license": "AGPL-3.0",
|
||||
"scripts": {
|
||||
"watch.assets": "cpx 'static/**/*' ../priv/static --watch",
|
||||
"prepare.static": "mkdir -p ../priv/static/ && cp -r static/*.ico ../priv/static/ && cp -r static/images ../priv/static/ && cp -r static/fonts ../priv/static/ && cp -r static/pwa* ../priv/static/",
|
||||
"build": "yarn prepare.static && yarn build.postcss && yarn build.esbuild",
|
||||
"watch.js": "esbuild ./js/bonfire_live.js ./js/bonfire_basic.js --target=es2017 --bundle --sourcemap --loader:.svg=text --outdir=../priv/static/assets --watch",
|
||||
"build.esbuild": "esbuild ./js/bonfire_live.js ./js/bonfire_basic.js --target=es2017 --bundle --sourcemap --loader:.svg=text --bundle --outdir=../priv/static/assets",
|
||||
"watch.tailwindcss": "TAILWIND_MODE=build NODE_ENV=production npx tailwindcss -i ./css/app.scss -o ../priv/static/assets/bonfire_basic.css --files ../{lib,forks,deps}/**/*{.leex,.heex,.sface} --jit --watch",
|
||||
"build.tailwindcss": "TAILWIND_MODE=build NODE_ENV=production npx tailwindcss -i ./css/app.scss -o ../priv/static/assets/bonfire_basic.css --jit --minify",
|
||||
"watch.css": "TAILWIND_MODE=watch NODE_ENV=development postcss ./css/app.scss -o ../priv/static/assets/bonfire_basic.css -w",
|
||||
"build.postcss": "TAILWIND_MODE=build NODE_ENV=production postcss ./css/app.scss -o ../priv/static/assets/bonfire_basic.css",
|
||||
"watch.parcel": "parcel watch 'js/bonfire_*.js' --dist-dir ../priv/static/assets",
|
||||
"build.parcel": "parcel build 'js/bonfire_*.js' --dist-dir ../priv/static/assets"
|
||||
},
|
||||
"disabledScripts": {
|
||||
"preinstall": "npx only-allow yarn"
|
||||
},
|
||||
"alias": {
|
||||
"buffer": {
|
||||
"global": false
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@alpinejs/collapse": "^3.10.2",
|
||||
"@alpinejs/intersect": "^3.10.2",
|
||||
"@tailwindcss/forms": "^0.5.2",
|
||||
"@tailwindcss/line-clamp": "^0.4.0",
|
||||
"@tailwindcss/typography": "^0.5.2",
|
||||
"@yaireo/tagify": "^4.12.0",
|
||||
"alpinejs": "^3.10.2",
|
||||
"daisyui": "^2.39.0",
|
||||
"nprogress": "^0.2.0",
|
||||
"phoenix": "link:../deps/phoenix",
|
||||
"phoenix_html": "link:../deps/phoenix_html",
|
||||
"phoenix_live_view": "link:../deps/phoenix_live_view"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^10.4.7",
|
||||
"buffer": "^6.0.3",
|
||||
"cpx2": "^4.2.0",
|
||||
"esbuild": "^0.15.10",
|
||||
"postcss": "^8.4.14",
|
||||
"postcss-cli": "^10.0",
|
||||
"postcss-import": "^15.0.0",
|
||||
"prop-types": "^15.8.1",
|
||||
"tailwindcss": "~3.1.4",
|
||||
"tailwindcss-debug-screens": "^2.2.1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"chromedriver": "^106.0.1"
|
||||
},
|
||||
"disabledDependencies": {
|
||||
"@rtvision/esbuild-dynamic-import": "^0.2.0",
|
||||
"@parcel/transformer-sass": "2.5.0",
|
||||
"parcel": "^2.5.0",
|
||||
"pnpm": "^7.1.3"
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
// NOTE: parcel uses .postcssrc instead
|
||||
module.exports = {
|
||||
plugins: {
|
||||
'postcss-import': {},
|
||||
'tailwindcss': {},
|
||||
autoprefixer: {}
|
||||
}
|
||||
};
|
|
@ -1 +0,0 @@
|
|||
../../../data/uploads
|
Binary file not shown.
Before Width: | Height: | Size: 140 KiB |
Binary file not shown.
File diff suppressed because it is too large
Load diff
Before Width: | Height: | Size: 194 KiB |
Binary file not shown.
|
@ -1,6 +0,0 @@
|
|||
To add a font:
|
||||
- put the files in assets/static/fonts
|
||||
- create a file assets/static/fonts/font-family-name.css
|
||||
- add it to `fontFamily` in assets/tailwind.config.js
|
||||
- add to to `font_families` in config/bonfire_ui.exs
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
/* inter-100 - latin */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 100;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-latin-100.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-latin-100.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* inter-300 - latin */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-latin-300.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-latin-300.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* inter-regular - latin */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-latin-regular.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-latin-regular.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* inter-500 - latin */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-latin-500.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-latin-500.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* inter-700 - latin */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-latin-700.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-latin-700.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
|
@ -1,59 +0,0 @@
|
|||
/* inter-100 - vietnamese_latin-ext_latin_greek_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 100;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-100.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-100.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* inter-300 - vietnamese_latin-ext_latin_greek_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-300.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-300.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* inter-500 - vietnamese_latin-ext_latin_greek_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-500.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-500.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* inter-regular - vietnamese_latin-ext_latin_greek_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-regular.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-regular.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* inter-700 - vietnamese_latin-ext_latin_greek_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local(''),
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-700.woff2') format('woff2'),
|
||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/inter-v11-vietnamese_latin-ext_latin_greek_cyrillic-700.woff') format('woff');
|
||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,90 +0,0 @@
|
|||
/* noto-sans-100 - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 100;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-100.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-100.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-100italic - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 100;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-100italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-100italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-300 - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-300italic - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 300;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-300italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-regular - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-italic - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-500 - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-500italic - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 500;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-500italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-500italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-700 - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-700italic - latin */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
|
@ -1,90 +0,0 @@
|
|||
/* noto-sans-100 - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 100;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-100.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-100.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-100italic - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 100;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-100italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-100italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-300 - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 300;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-300italic - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 300;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-300italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-regular - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-italic - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-500 - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-500italic - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 500;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-500italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-500italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-700 - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
/* noto-sans-700italic - vietnamese_latin-ext_latin_greek_devanagari_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local(''),
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('/fonts/noto-sans-v27-vietnamese_latin-ext_latin_greek_devanagari_cyrillic-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,10 +0,0 @@
|
|||
@font-face {
|
||||
font-family: 'OpenDyslexic';
|
||||
src: local(''),
|
||||
url('/fonts/OpenDyslexic.ttf.woff') format('woff'),
|
||||
url('/fonts/OpenDyslexic.ttf.svg#OpenDyslexic') format('svg'),
|
||||
url('/fonts/OpenDyslexic.ttf.eot'),
|
||||
url('/fonts/OpenDyslexic.ttf.eot?#iefix') format('embedded-opentype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 5 KiB |
Binary file not shown.
Before Width: | Height: | Size: 138 KiB |
Binary file not shown.
Before Width: | Height: | Size: 170 KiB |
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"background_color": "#190908",
|
||||
"description": "Bonfire is a federated social networking toolkit to customise and host your own online space and control your experience at the most granular level.",
|
||||
"dir": "ltr",
|
||||
"display": "standalone",
|
||||
"name": "Bonfire",
|
||||
"orientation": "portrait",
|
||||
"scope": "/",
|
||||
"short_name": "Bonfire",
|
||||
"start_url": "/",
|
||||
"theme_color": "#552217",
|
||||
"categories": [],
|
||||
"screenshots": [
|
||||
{
|
||||
"src": "/images/bonfires.png",
|
||||
"sizes": "580×200",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"icons": [
|
||||
{
|
||||
"src": "/favicon.ico",
|
||||
"type": "image/x-icon"
|
||||
}
|
||||
],
|
||||
"shortcuts": []
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" class="dark">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title data-suffix=" · Bonfire">Bonfire - offline</title>
|
||||
<link phx-track-static rel='stylesheet' href='../assets/bonfire_basic.css' />
|
||||
</head>
|
||||
|
||||
<body id="layout-root" class="h-screen">
|
||||
<div data-phx-main="true">
|
||||
<div id="layout-error">
|
||||
<div class="">
|
||||
<div class="flex flex-col items-center mx-auto mt-16 overflow-hidden">
|
||||
<div class="relative z-10 flex flex-shrink-0">
|
||||
<div class="items-center flex-shrink-0 lg:px-4">
|
||||
<a data-phx-link="redirect" data-phx-link-state="push" href="/">
|
||||
<div class="flex items-center px-4 py-2 rounded">
|
||||
<div class="w-16 h-16 mb-4 bg-center bg-no-repeat bg-contain"
|
||||
style="background-image: url(../images/bonfire-icon.png)"></div>
|
||||
</div>
|
||||
</a>
|
||||
<!-- <div class="flex items-center">
|
||||
<h1 class="heading-1 text-base-content">Bonfire</h1>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-full max-w-screen-md mx-auto mt-12">
|
||||
<div class="prose text-center max-w-none">
|
||||
<h3 class="text-base-content">
|
||||
You seem to be offline. Please connect to the internet and <a href="/" class="link">try again</a>.
|
||||
</h3>
|
||||
<div class="flex flex-col place-content-center">
|
||||
<img src='../images/bonfires.png' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</html>
|
|
@ -1,55 +0,0 @@
|
|||
// This is the "Offline page" service worker
|
||||
|
||||
importScripts('https://storage.googleapis.com/workbox-cdn/releases/5.1.2/workbox-sw.js');
|
||||
|
||||
const CACHE = "pwabuilder-page";
|
||||
// const CACHE = "pwabuilder-offline-page";
|
||||
|
||||
const offlineFallbackPage = "/pwa/offline.html";
|
||||
|
||||
self.addEventListener("message", (event) => {
|
||||
if (event.data && event.data.type === "SKIP_WAITING") {
|
||||
self.skipWaiting();
|
||||
}
|
||||
});
|
||||
|
||||
self.addEventListener('install', async (event) => {
|
||||
event.waitUntil(
|
||||
caches.open(CACHE)
|
||||
.then((cache) => cache.add(offlineFallbackPage))
|
||||
);
|
||||
});
|
||||
|
||||
if (workbox.navigationPreload.isSupported()) {
|
||||
workbox.navigationPreload.enable();
|
||||
}
|
||||
|
||||
// uncomment to cache pages
|
||||
// workbox.routing.registerRoute(
|
||||
// new RegExp('/*'),
|
||||
// new workbox.strategies.StaleWhileRevalidate({
|
||||
// cacheName: CACHE
|
||||
// })
|
||||
// );
|
||||
|
||||
self.addEventListener('fetch', (event) => {
|
||||
if (event.request.mode === 'navigate') {
|
||||
event.respondWith((async () => {
|
||||
try {
|
||||
const preloadResp = await event.preloadResponse;
|
||||
|
||||
if (preloadResp) {
|
||||
return preloadResp;
|
||||
}
|
||||
|
||||
const networkResp = await fetch(event.request);
|
||||
return networkResp;
|
||||
} catch (error) {
|
||||
|
||||
const cache = await caches.open(CACHE);
|
||||
const cachedResp = await cache.match(offlineFallbackPage);
|
||||
return cachedResp;
|
||||
}
|
||||
})());
|
||||
}
|
||||
});
|
|
@ -1,117 +0,0 @@
|
|||
const colors = require('tailwindcss/colors')
|
||||
|
||||
|
||||
module.exports = {
|
||||
mode: 'jit',
|
||||
future: {
|
||||
removeDeprecatedGapUtilities: true,
|
||||
purgeLayersByDefault: true,
|
||||
},
|
||||
content: [
|
||||
'../{lib,forks,deps}/**/*{.leex,.heex,.sface,_live.ex,.js}',
|
||||
'../deps/bonfire_ui_common/live_select/lib/live_select/component.*ex', // FIXME: what should this point to?
|
||||
'./js/*.js'
|
||||
],
|
||||
theme: {
|
||||
extend: {
|
||||
fontFamily: {
|
||||
'sans': ['OpenDyslexic', 'Inter', 'Noto Sans', 'Roboto', 'system-ui', 'sans-serif']
|
||||
},
|
||||
screens: {
|
||||
'tablet': '920px',
|
||||
'tablet-lg': '1200px',
|
||||
'desktop-lg': '1448px',
|
||||
'wide': '1920px'
|
||||
},
|
||||
maxWidth: {
|
||||
'600': '600px'
|
||||
},
|
||||
colors: {
|
||||
gray: colors.gray,
|
||||
blueGray: colors.slate,
|
||||
amber: colors.amber,
|
||||
rose: colors.rose,
|
||||
orange: colors.orange,
|
||||
teal: colors.teal,
|
||||
cyan: colors.cyan
|
||||
},
|
||||
spacing: {
|
||||
'72': '18rem',
|
||||
'84': '21rem',
|
||||
'90': '22rem',
|
||||
'96': '26rem',
|
||||
},
|
||||
typography: (theme) => ({
|
||||
sm: {
|
||||
css: {
|
||||
fontSize: '15px',
|
||||
h1: {
|
||||
margin: 0
|
||||
},
|
||||
h2: {
|
||||
margin: 0
|
||||
},
|
||||
h3: {
|
||||
margin: 0
|
||||
},
|
||||
p: {
|
||||
margin: 0,
|
||||
lineHeight: '20px'
|
||||
},
|
||||
li: {
|
||||
lineHeight: '20px'
|
||||
}
|
||||
}
|
||||
},
|
||||
lg: {
|
||||
css: {
|
||||
h1: {
|
||||
margin: 0
|
||||
},
|
||||
h2: {
|
||||
margin: 0
|
||||
},
|
||||
h3: {
|
||||
margin: 0
|
||||
},
|
||||
p: {
|
||||
margin: 0,
|
||||
lineHeight: '20px'
|
||||
},
|
||||
li: {
|
||||
lineHeight: '20px'
|
||||
}
|
||||
}
|
||||
}
|
||||
}),
|
||||
}
|
||||
},
|
||||
daisyui: {
|
||||
darkTheme: "bonfire",
|
||||
themes: [
|
||||
{
|
||||
bonfire: {
|
||||
...require("daisyui/src/colors/themes")["[data-theme=dracula]"],
|
||||
"primary": "#fde047"
|
||||
},
|
||||
},
|
||||
"dark", "light", "cupcake", "bumblebee", "emerald", "corporate", "synthwave", "retro", "cyberpunk", "valentine", "halloween", "garden", "forest", "aqua", "lofi", "pastel", "fantasy", "wireframe", "black", "luxury", "dracula", "cmyk", "autumn", "business", "acid", "lemonade", "night", "coffee", "winter"
|
||||
]
|
||||
},
|
||||
variants: {
|
||||
extend: {
|
||||
ringWidth:['hover'],
|
||||
divideColor: ['dark'],
|
||||
ringColor: ['group-hover', 'hover'],
|
||||
fontWeight: ['group-hover'],
|
||||
borderWidth: ['hover', 'focus'],
|
||||
typography: ['dark']
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
require('@tailwindcss/line-clamp'),
|
||||
require('@tailwindcss/typography'),
|
||||
require('daisyui')
|
||||
// require('tailwindcss-debug-screens')
|
||||
],
|
||||
}
|
1502
assets/yarn.lock
1502
assets/yarn.lock
File diff suppressed because it is too large
Load diff
|
@ -5,5 +5,5 @@
|
|||
DEPS='iconify_ex bonfire_ui_common bonfire_editor_quill'
|
||||
# bonfire_editor_ck
|
||||
|
||||
chmod +x ./assets/install_extensions.sh
|
||||
./assets/install_extensions.sh "$DEPS" $@
|
||||
chmod +x ./js-deps-get.sh
|
||||
./js-deps-get.sh "$DEPS" $@
|
|
@ -7,5 +7,5 @@
|
|||
DEPS='iconify_ex bonfire_ui_common bonfire_editor_quill bonfire_editor_ck bonfire_geolocate bonfire_ui_kanban'
|
||||
#
|
||||
|
||||
chmod +x ./assets/install_extensions.sh
|
||||
./assets/install_extensions.sh "$DEPS" $@
|
||||
chmod +x ./js-deps-get.sh
|
||||
./js-deps-get.sh "$DEPS" $@
|
||||
|
|
|
@ -23,4 +23,3 @@ import { EncryptHooks } from "./../../../deps/bonfire_encrypt/assets/js/extensio
|
|||
Object.assign(ExtensionHooks, ResponsiveTabsHooks, EditorQuillHooks, CarouselHooks, FeedHooks, ChangeLocaleHooks, InputSelectHooks, NotificationsHooks, ThemeHooks, ImageHooks, GeolocateHooks, KanbanHooks, EncryptHooks) // EditorCkHooks
|
||||
|
||||
export { ExtensionHooks }
|
||||
|
|
@ -101,6 +101,7 @@ database =
|
|||
end
|
||||
|
||||
config :bonfire, ecto_repos: repos
|
||||
# config :bonfire_umbrella, ecto_repos: repos
|
||||
config :paginator, ecto_repos: repos
|
||||
config :bonfire, Bonfire.Common.Repo, repo_connection_config
|
||||
config :bonfire, Bonfire.Common.TestInstanceRepo, repo_connection_config
|
||||
|
|
|
@ -3,5 +3,5 @@
|
|||
# any extensions/deps with a package.json in their /assets directory
|
||||
DEPS='iconify_ex bonfire_ui_common bonfire_editor_ck bonfire_editor_quill'
|
||||
|
||||
chmod +x ./assets/install_extensions.sh
|
||||
./assets/install_extensions.sh "$DEPS" $@
|
||||
chmod +x ./js-deps-get.sh
|
||||
./js-deps-get.sh "$DEPS" $@
|
|
@ -3,5 +3,5 @@
|
|||
# add more modules separated by $IFS
|
||||
DEPS='iconify_ex bonfire_ui_common bonfire_editor_ck bonfire_geolocate'
|
||||
|
||||
chmod +x ./assets/install_extensions.sh
|
||||
./assets/install_extensions.sh "$DEPS" $@
|
||||
chmod +x ./js-deps-get.sh
|
||||
./js-deps-get.sh "$DEPS" $@
|
|
@ -3,5 +3,5 @@
|
|||
# any extensions/deps with a package.json in their /assets directory
|
||||
DEPS='iconify_ex bonfire_ui_common bonfire_editor_ck bonfire_geolocate'
|
||||
|
||||
chmod +x ./assets/install_extensions.sh
|
||||
./assets/install_extensions.sh "$DEPS" $@
|
||||
chmod +x ./js-deps-get.sh
|
||||
./js-deps-get.sh "$DEPS" $@
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
DEPS=${1}
|
||||
|
||||
yarn -v || npm -g install yarn || echo "Yarn is required to install JS deps"
|
||||
|
||||
for dep in $DEPS ; do
|
||||
echo "Install JS deps from extension '$dep' with args '$2'"
|
||||
|
||||
|
@ -12,10 +14,15 @@ for dep in $DEPS ; do
|
|||
cd ../../../
|
||||
fi
|
||||
|
||||
if cd "forks/$dep/assets" 2>/dev/null ; then
|
||||
yarn $2
|
||||
cd ../../../
|
||||
fi
|
||||
|
||||
if cd "deps/$dep/assets" 2>/dev/null ; then
|
||||
yarn $2
|
||||
cd ../../../
|
||||
else
|
||||
echo "The extension '$dep' is not available\n"
|
||||
fi
|
||||
done
|
||||
done
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue