mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
6b4084287c
* chore: improve access field for comments for public boards (#1956) Co-authored-by: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com> * chore: update user activity endpoint to return only workspace activities (#1980) * fix: n+1 in issue history and issue automation tasks (#1994) * fix: issue exports in self hosted instances (#1996) * fix: issue exports in self hosted instances * dev: remove print logs * dev: update url creation function * fix: changed the presigned url for self hosted exports --------- Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> * dev: remove gunicorn config (#1999) * feat: mark all read notifications (#1963) * feat: mark all read notifications * fix: changed string to boolean * fix: changed snoozed condition * chore: project public board issue retrieve (#2003) * chore: project public board issue retrieve * dev: project issues list endpoint * fix: issue public retrieve endpoint * fix: only external comments will show in deploy boards (#2010) * fix: issue votes (#2006) * fix: issue votes * fix: added default as 1 in vote * fix: issue vote migration file * fix: access creation in comments (#2013) * dev: user timezone select option (#2002) * fix: start date filter not working on the platform (#2007) * feat: access selector for comment (#2012) * dev: access specifier for comment * chore: change access order * style: revamp of the issue details sidebar (#2014) * chore: update module status icons and colors (#2011) * chore: update module status icons and colors * refactor: import statements * fix: add default alue to module status * chore: track public board comments and reaction users for public deploy boards (#1972) * chore: track project deploy board comment and reaction users for public deploy boards * dev: remove tracking from project viewsets * feat: user timezones (#2009) * dev: user timezones * feat: user timezones * fix: user created by stats (#2016) * fix: asset key validation (#1938) * fix: asset key validation * chore: asset key validation in user assets --------- Co-authored-by: Bavisetti Narayan <narayan@Bavisettis-MacBook-Pro.local> * dev: revamp peek overview (#2021) * dev: mobx for issues store * refactor: peek overview component * chore: update open issue button * fix: issue mutation after any crud action * chore: remove peek overview from gantt * chore: refactor code * chore: tracking the history of issue reactions and votes. (#2020) * chore: tracking the issues reaction and vote history * fix: changed the keywords for vote and reaction * chore: added validation * dev: revamp publish project modal (#2022) * dev: revamp publish project modal * chore: sidebar dropdown text * fix: bugs on the user profile page (#2018) * chore: return issue votes in public issue list endpoint (#2026) * style: list view * [feat]: Tiptap table integration (#2008) * added basic table support * fixed table position at bottom * fixed image node deletion logic's regression issue * added compatible styles * enabled slash commands * disabled slash command and bubble menu's node selector for table cells * added dropcursor support to type below the table/image * blocked image uploads for handledrop and paste actions * style: kanban view * style: tiptap table (#2033) * style: theming added * chore: issue reactions and votes --------- Co-authored-by: Nikhil <118773738+pablohashescobar@users.noreply.github.com> Co-authored-by: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com> Co-authored-by: NarayanBavisetti <narayan3119@gmail.com> Co-authored-by: Bavisetti Narayan <narayan@Bavisettis-MacBook-Pro.local> Co-authored-by: M. Palanikannan <73993394+Palanikannan1437@users.noreply.github.com>
232 lines
4.4 KiB
CSS
232 lines
4.4 KiB
CSS
.ProseMirror p.is-editor-empty:first-child::before {
|
||
content: attr(data-placeholder);
|
||
float: left;
|
||
color: rgb(var(--color-text-400));
|
||
pointer-events: none;
|
||
height: 0;
|
||
}
|
||
|
||
.ProseMirror .is-empty::before {
|
||
content: attr(data-placeholder);
|
||
float: left;
|
||
color: rgb(var(--color-text-400));
|
||
pointer-events: none;
|
||
height: 0;
|
||
}
|
||
|
||
/* Custom image styles */
|
||
|
||
.ProseMirror img {
|
||
transition: filter 0.1s ease-in-out;
|
||
|
||
&:hover {
|
||
cursor: pointer;
|
||
filter: brightness(90%);
|
||
}
|
||
|
||
&.ProseMirror-selectednode {
|
||
outline: 3px solid #5abbf7;
|
||
filter: brightness(90%);
|
||
}
|
||
}
|
||
|
||
.ProseMirror-gapcursor:after {
|
||
border-top: 1px solid rgb(var(--color-text-100)) !important;
|
||
}
|
||
|
||
/* Custom TODO list checkboxes – shoutout to this awesome tutorial: https://moderncss.dev/pure-css-custom-checkbox-style/ */
|
||
|
||
ul[data-type="taskList"] li > label {
|
||
margin-right: 0.2rem;
|
||
user-select: none;
|
||
}
|
||
|
||
@media screen and (max-width: 768px) {
|
||
ul[data-type="taskList"] li > label {
|
||
margin-right: 0.5rem;
|
||
}
|
||
}
|
||
|
||
ul[data-type="taskList"] li > label input[type="checkbox"] {
|
||
-webkit-appearance: none;
|
||
appearance: none;
|
||
background-color: rgb(var(--color-background-100));
|
||
margin: 0;
|
||
cursor: pointer;
|
||
width: 1.2rem;
|
||
height: 1.2rem;
|
||
position: relative;
|
||
border: 2px solid rgb(var(--color-text-100));
|
||
margin-right: 0.3rem;
|
||
display: grid;
|
||
place-content: center;
|
||
|
||
&:hover {
|
||
background-color: rgb(var(--color-background-80));
|
||
}
|
||
|
||
&:active {
|
||
background-color: rgb(var(--color-background-90));
|
||
}
|
||
|
||
&::before {
|
||
content: "";
|
||
width: 0.65em;
|
||
height: 0.65em;
|
||
transform: scale(0);
|
||
transition: 120ms transform ease-in-out;
|
||
box-shadow: inset 1em 1em;
|
||
transform-origin: center;
|
||
clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
|
||
}
|
||
|
||
&:checked::before {
|
||
transform: scale(1);
|
||
}
|
||
}
|
||
|
||
ul[data-type="taskList"] li[data-checked="true"] > div > p {
|
||
color: rgb(var(--color-text-200));
|
||
text-decoration: line-through;
|
||
text-decoration-thickness: 2px;
|
||
}
|
||
|
||
/* Overwrite tippy-box original max-width */
|
||
|
||
.tippy-box {
|
||
max-width: 400px !important;
|
||
}
|
||
|
||
.ProseMirror {
|
||
position: relative;
|
||
word-wrap: break-word;
|
||
white-space: pre-wrap;
|
||
-moz-tab-size: 4;
|
||
tab-size: 4;
|
||
-webkit-user-select: text;
|
||
-moz-user-select: text;
|
||
-ms-user-select: text;
|
||
user-select: text;
|
||
outline: none;
|
||
cursor: text;
|
||
line-height: 1.2;
|
||
font-family: inherit;
|
||
font-size: 14px;
|
||
color: inherit;
|
||
-moz-box-sizing: border-box;
|
||
box-sizing: border-box;
|
||
appearance: textfield;
|
||
-webkit-appearance: textfield;
|
||
-moz-appearance: textfield;
|
||
}
|
||
|
||
.fadeIn {
|
||
opacity: 1;
|
||
transition: opacity 0.3s ease-in;
|
||
}
|
||
|
||
.fadeOut {
|
||
opacity: 0;
|
||
transition: opacity 0.2s ease-out;
|
||
}
|
||
|
||
.img-placeholder {
|
||
position: relative;
|
||
width: 35%;
|
||
|
||
&:before {
|
||
content: "";
|
||
box-sizing: border-box;
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 45%;
|
||
width: 20px;
|
||
height: 20px;
|
||
border-radius: 50%;
|
||
border: 3px solid rgba(var(--color-text-200));
|
||
border-top-color: rgba(var(--color-text-800));
|
||
animation: spinning 0.6s linear infinite;
|
||
}
|
||
}
|
||
|
||
@keyframes spinning {
|
||
to {
|
||
transform: rotate(360deg);
|
||
}
|
||
}
|
||
|
||
#tiptap-container {
|
||
table {
|
||
border-collapse: collapse;
|
||
table-layout: fixed;
|
||
margin: 0;
|
||
border: 1px solid rgb(var(--color-border-200));
|
||
width: 100%;
|
||
|
||
td,
|
||
th {
|
||
min-width: 1em;
|
||
border: 1px solid rgb(var(--color-border-200));
|
||
padding: 10px 15px;
|
||
vertical-align: top;
|
||
box-sizing: border-box;
|
||
position: relative;
|
||
transition: background-color 0.3s ease;
|
||
|
||
> * {
|
||
margin-bottom: 0;
|
||
}
|
||
}
|
||
|
||
th {
|
||
font-weight: bold;
|
||
text-align: left;
|
||
background-color: rgb(var(--color-primary-100));
|
||
}
|
||
|
||
td:hover {
|
||
background-color: rgba(var(--color-primary-300), 0.1);
|
||
}
|
||
|
||
.selectedCell:after {
|
||
z-index: 2;
|
||
position: absolute;
|
||
content: "";
|
||
left: 0;
|
||
right: 0;
|
||
top: 0;
|
||
bottom: 0;
|
||
background-color: rgba(var(--color-primary-300), 0.1);
|
||
pointer-events: none;
|
||
}
|
||
|
||
.column-resize-handle {
|
||
position: absolute;
|
||
right: -2px;
|
||
top: 0;
|
||
bottom: -2px;
|
||
width: 2px;
|
||
background-color: rgb(var(--color-primary-400));
|
||
pointer-events: none;
|
||
}
|
||
}
|
||
}
|
||
|
||
.tableWrapper {
|
||
overflow-x: auto;
|
||
}
|
||
|
||
.resize-cursor {
|
||
cursor: ew-resize;
|
||
cursor: col-resize;
|
||
}
|
||
|
||
.ProseMirror table * p {
|
||
padding: 0px 1px;
|
||
margin: 6px 2px;
|
||
}
|
||
|
||
.ProseMirror table * .is-empty::before {
|
||
opacity: 0;
|
||
}
|