From 6e3a54677d1f9575e18e75deaa220e00a9bf99cc Mon Sep 17 00:00:00 2001 From: Konstantinos Kaloutas Date: Tue, 11 Oct 2022 14:17:24 +0300 Subject: [PATCH] feat: auto heading --- resources/css/common.css | 2 +- resources/css/tabler-extension.css | 44 +++++++++++-------- resources/fonts/tabler-icons-extension.woff2 | Bin 2516 -> 2684 bytes src/main/frontend/components/content.cljs | 17 ++++++- src/main/frontend/dicts.cljc | 1 + src/main/frontend/ui.cljs | 7 +-- 6 files changed, 47 insertions(+), 24 deletions(-) diff --git a/resources/css/common.css b/resources/css/common.css index ad28f6ee8a..7b8e795495 100644 --- a/resources/css/common.css +++ b/resources/css/common.css @@ -510,7 +510,7 @@ i.ti { } .to-heading-button { - @apply px-1 !important; + @apply px-1 text-lg !important; } /** endregion **/ diff --git a/resources/css/tabler-extension.css b/resources/css/tabler-extension.css index cd092f1bc4..8e04331e97 100644 --- a/resources/css/tabler-extension.css +++ b/resources/css/tabler-extension.css @@ -29,73 +29,81 @@ } .tie-app-feature::before { - content: '\ea01'; + content: "\ea01"; } .tie-block::before { - content: '\ea02'; + content: "\ea02"; } .tie-block-search::before { - content: '\ea03'; + content: "\ea03"; } .tie-connector::before { - content: '\ea04'; + content: "\ea04"; +} + +.tie-h-auto::before { + content: "\ea05"; +} + +.tie-heading-off::before { + content: "\ea06"; } .tie-new-block::before { - content: '\ea05'; + content: "\ea07"; } .tie-new-page::before { - content: '\ea06'; + content: "\ea08"; } .tie-new-whiteboard::before { - content: '\ea07'; + content: "\ea09"; } .tie-new-whiteboard-element::before { - content: '\ea08'; + content: "\ea0a"; } .tie-object-compact::before { - content: '\ea09'; + content: "\ea0b"; } .tie-object-expanded::before { - content: '\ea0a'; + content: "\ea0c"; } .tie-page::before { - content: '\ea0b'; + content: "\ea0d"; } .tie-page-search::before { - content: '\ea0c'; + content: "\ea0e"; } .tie-references-hide::before { - content: '\ea0d'; + content: "\ea0f"; } .tie-references-show::before { - content: '\ea0e'; + content: "\ea10"; } .tie-select-cursor::before { - content: '\ea0f'; + content: "\ea11"; } .tie-text::before { - content: '\ea10'; + content: "\ea12"; } .tie-whiteboard::before { - content: '\ea11'; + content: "\ea13"; } .tie-whiteboard-element::before { - content: '\ea12'; + content: "\ea14"; } diff --git a/resources/fonts/tabler-icons-extension.woff2 b/resources/fonts/tabler-icons-extension.woff2 index 738163326d3cd80533e2255a480a41704d4b90bc..f2ed3bb5f49d5132a1e310a136333cc85b860e3c 100644 GIT binary patch delta 2683 zcmV->3WW946Z{kycTYw#00961000Vn01E&B000^^000Utkr*C-dJ3XUoJ9*P00A}v zBm-0gAO(d!2ZBW#IToX$ZgEn0vVR_Ar_2+^s_hsdtxmfrY$Pk$_-P2qQMs+PPCmr* z^!ugfep;Xa36%mnR6vfv5y`5kl_iV5Dniv&_)f-GW}dI!pWI&Gam4N+5u|SXiW?F! zBBro%Yeaml%GAz(-RuAR&Qgm7yszZ6EDhNUL|!0E3y9J=brwi2vt3Y%oD_NBU})g6q0;e zjAb2#Q<)thy%&f$h14)#bPZv33}tPxU=R(gIo_Gm-v9FS4GfKpO-#)!Ns%gz2GTh! z7`Fg6NJYti8L(0TR%*aX16XMRD;;2^2UzI?CX12;SYdz_1guDa6&bLi09I7MN-|(2 z1+bC|SV;q{Xds9J>u}ijB)!{L+5IKTFVrKI2%=Lmo}q>b;epO=379%fKP1b^;wij! zcMDVAd^Ty*K`QI~P4(^aL3#V>1aZ4=(gDWyU7M1Bwaq&|hb9>*TCyxlsZ0$KI}m@M zI7hWe#E=vaBKkrT(R8XL;;bFRHOr(exp+(wFLlv7l-SF~tWe?1{aZ#`CAD*5n zo&L1d%X`f&EEu^1qfUl5`bKv=cVO~=pf?eu*n|m#(olew)^H_S>eYEQ(UOCO=(d?{ zi#$pEE*h5@6(0W?=VwHz7DhB(q1Mo$;6y8g1)5kpy1WW+Cz*U1Mxhl`q7cBvARmy_ z$&qeE&o{Igbjc9(JS99NC_kSCno6*V%_ie4c%V&0@A1MO9`Zc}o<3gcM}N0}uk`0X zW`Bo!_lAFGKYp&&?jGMCf~J%-!p%z@if7FD+FkqyaQWZBHhCy-b$xNz$s8oy+kK?u129~pzZvPd(>EzKT-!yu!H`?3#M?9e4 z!iD{|Eb3>y!hre<$6hl%D)WR_=FYjf>wtwG+v5Jnqy4srJXqAMvQX3St^XHgp+%W= zdJC3CRbT_ja6>M4xYs;>!OV+jCIi$ED4Bs0;8o|CfXmj#SS5(v$KBS$mxXI%IGu}ymXbS2)IRS!-$xDi= z*W-X(e)<(G`8y#C-5~jmg*NYtJy|KAHCE4+WZ6kA>tN_^GRUDKHGvBq43eTJ%^6$f zW#`J=h|0o+D`SUO-Y>5R!^=C_y7Hp;T(OL2i)ol{hdL3#(%^-QR2S313%*qM69Ry; zW-(b!7Jf;VvU8_~I9GWi*NdI?kcVU}!jVA8;wD5xzd)rhyn_LPtIA0~)~R&2F;T2? z^+_Xq=ZPpApQPk0nMY$Y=v^Fl@anJi$Xnq%x=ERT%L^j-s-wVda+g=;g?sf|Wp}Z6 z$V@}NMe+|aQQ<{;TWtAFfFi3*C4az~@rToS>XrX}toI!-fB4$mR}oqdW3Zj}1j}`w zgLBT1q3e2?02nmf6tUp=lHVvlHe^CkkJIg<+J^1WD5r~BBiE@DDR$A&5f#rKS=FzW zW+0A#T0%vYsXeNZ^1rBYG}EHiM$ST~+$b8lm#(If?fjh!OEg&Kx9UdA%xL`C?rBJ- zu`#~Q+r!D&3F(9%*6Q5YQhKVXspK0v{Jlgpl$-y-#rR%CmJl>7ej+sS6{u3Ifu&rb zS~VJ3inZ-TF(=9e^a{D9nnQv=Td`(uBis;wCcgG|IVt8uY;m8%P{J3wMRvubcGj^` zi&Ccq`Atfw#NVw|{gC${<`=7?+7D4DrV2!bqN6coF&gSza{RbhNmvmBBdT>-*S2XK zzWsWt)M?VDOE3KlGR!FBOft< z#Ftrf#1c)^L#^79lBAmARx2b=e4w$GD^#18)l9XE81K?D{91}}Sz2HHD5`G$O%@l4 psc^g)0OqO2bZ!}(C-7(nw&a=X#jL*t%S99MJhoaQHS+`j005$GAlv`| delta 2514 zcmV;@2`%>g6x0(KcTYw#00961000Tp01E&B000<7000Sukr*C-UJ9QanOF-b00A}v zBm+zYAO(d!2ZAmekrbn%gmNm${&`@#M+wD%r6Eob2QQom8)yv{Ay68Nd_-v?H_sJ} zvb9)1M^KEly?1M0Nn(}AbhG41lSVQTa$`D?xsD}%a`SzUBX&n1N`76)x2+i?TFlP6R3(ElZ;WjSOQhz2lH0nvJ|4lT)LwilcwJSEGg5*;p! zn3KCOc+T_%BG=y|iYs;f`oA^P<{#jgG_M{Hj4TLSCpLdG)6D!#XbZasw1+^h_&jO= zdY+Z7s*qK#LRNU+`TbTs1gDy5gGj~5-LJ*H>pxNe4KsFs;MV3GQ$f63RWHIqJOBaK zo#S#-Dgw^Ai^l_ShV6uB7GK2)Wl(r3E8^wWB0eld8MruG5e`pXzt|s#T^TtD{eVO4 zBfOMR31(#}P2Vl$?TT>jBdC|R??4G(nuGuU#}KBo;^R(y?)?vslMBTN+(Z%&FCT~s z9H<47KkEm7AY%_$768j4U|9kz%YbDCu&e@>HNdhCST+F5CSchDEZcx(2e9k{mOa3- z4_FR>i{Tt*?r{Xl&s3%$dxd?4Y`q+N4%vGUaSxo^C(0jC<6Scc1pxYPyE|Ci`}h`(0})D+S+wu4G9&Ryj!9+z2HffGd%Y1t&5; zU?SiO^TKMi1rJh|-9hK72|ATk3(s8+?VNK{ljnw=ITP5o{p`iSl-jgvBxXgIh1j1` zGPX#+Y2AAoGK}-N^*E?$XVW{k18VYc36U)(FA&X|y~$iux6ax&nO%Md-ij9_}-QK0`c7cAAa(Z?8D8w5!$l;o;&0FQbPB% zCKX!7uPZOiPzr^wW;Wl8?s5krkQ0cZTkwDj`O^^ih1E5yDHpNop)#;liz+u+;5xB2 z)DktJTPM&d$HUrE@YKheAUb2gzDp2+$c}n@C3#-Z$a|&&x zUNCNJExgu@aBZeCrS((hFWK`$E$I-1Z6c_ZTzE?jHYjl`i>S>eRG{P$&*N3`B2FSE zFfUGF!7Y*uNZ7J|6S-DUBh@#eJ(7_}MmEDRKE9c7(+xQ^kH1*o%&(nNODN%4Lup2G#+QZ%lCfoqa;qU!CW!D*8U>G*(u>W*M<`rJB7t9y)_w{}60F2srWTG~)9vS=J^j_b8hAtM& zKi;|-93UvEL;}vSc{if}3Ia-aK9mOwOU)r^Gmq^8X`qn4?Jd~A=BOF13?X*~e0<%E%rqc1`fRZ}80o2w5PHNO7B0Uc*r1L>IS8b(iqmG{}+ER{#{l>weDNry*UK;R`55P(3Id4XT+ zyCE6rX^Z9*XuVg(_`nQ#v{L)Vqu_EQxy4$|Ko&<@Lmapgv zXa+C%GU892gp&9d?R0{=^h76Ga@#85s0m@D)hjMI5ab52MeJdJnBdX&Q6xuxH7tjaxauefAM zZpy^Z=S-Zxe!jdAYdUrIw{*I>`FxMx78y-3QW?@R#PS>06T<>K1y6Ut z0d%hMhbqP*h$U1}y9pqP5k!%T+lIOF^n8UI{N>;NP zHpxD}$?t|DEV%$}_6%fkL_Z_}$v?Aro1-erMve)8U{7w%qV%xqn6>fH_Y$uvlRXz| z%A^+mC(+}ejAO&UJ=(|cA;YL6el@7|p8cu0y?c}22;uL+;k2yyk0IO-uh&DI#`;XC zi-^igs8VFaloZt{652aTL?}a$XMmH^5QNBNDNWvnbO90Ee9O%Wn^C5N5fq{b(TQ8G zCOf!)WldAc9Kl!-J0gHczqFvrbyHs_B zR!d1&&OLeom59vgKGO#{i~Oz?k77vlT59DnJB4H^;8)B`#Cao%UAVnzl9yH~p3D(Z c^e=|o6QZ*z|6)|}|9foMeh#1YH~;_u0OAA4?f?J) diff --git a/src/main/frontend/components/content.cljs b/src/main/frontend/components/content.cljs index f94a58b7f4..8e9556ca8f 100644 --- a/src/main/frontend/components/content.cljs +++ b/src/main/frontend/components/content.cljs @@ -175,14 +175,27 @@ [:div.flex.flex-row.justify-between.flex-1.px-1 (for [i (range 1 7)] (ui/button - (str "H" i) + "" + :icon (str "h-" i) :class "to-heading-button" :on-click (fn [_e] (editor-handler/set-heading! block-id format i)) :intent "link" :small? true)) (ui/button - "H-" + "" + :icon "h-auto" + :icon-props {:extension? true} + :class "to-heading-button" + :title (t :auto-heading) + :on-click (fn [_e] + (editor-handler/set-heading! block-id :org true)) + :intent "link" + :small? true) + (ui/button + "" + :icon "heading-off" + :icon-props {:extension? true} :class "to-heading-button" :title (t :remove-heading) :on-click (fn [_e] diff --git a/src/main/frontend/dicts.cljc b/src/main/frontend/dicts.cljc index c2c652459a..89141a270b 100644 --- a/src/main/frontend/dicts.cljc +++ b/src/main/frontend/dicts.cljc @@ -338,6 +338,7 @@ :dark "Dark" :remove-background "Remove background" :remove-heading "Remove heading" + :auto-heading "Auto heading" :open "Open" :open-a-directory "Open a local directory" :user/delete-account "Delete account" diff --git a/src/main/frontend/ui.cljs b/src/main/frontend/ui.cljs index 5dd42ce53a..9d9fff3121 100644 --- a/src/main/frontend/ui.cljs +++ b/src/main/frontend/ui.cljs @@ -59,7 +59,8 @@ "yellow" "green" "blue" - "purple"]) + "purple" + "pink"]) (rum/defc ls-textarea < rum/reactive @@ -949,7 +950,7 @@ (f (merge {:size 18} (r/map-keys->camel-case opts)))]))))))) (defn button - [text & {:keys [background href class intent on-click small? large? title icon] + [text & {:keys [background href class intent on-click small? large? title icon icon-props] :or {small? false large? false} :as option}] (let [klass (when-not intent ".bg-indigo-600.hover:bg-indigo-700.focus:border-indigo-700.active:bg-indigo-700.text-center") @@ -966,7 +967,7 @@ {:on-click (fn [] (util/open-url href) (when (fn? on-click) (on-click)))})) - (when icon (frontend.ui/icon icon {:class "mr-1"})) + (when icon (frontend.ui/icon icon (merge icon-props {:class (when-not (empty? text) "mr-1")}))) text])) (rum/defc type-icon