gdx-ui 2.2.4 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base.css +1 -1
- package/components/dialog/ConfirmationDialog.js +3 -0
- package/components/dialog/Dialog.js +8 -2
- package/components/drawer/Drawer.js +90 -0
- package/components/drawer/index.js +16 -0
- package/components/editor/HTMLEditor.js +526 -19
- package/components/index.js +11 -0
- package/components/util/Skeleton.js +6 -3
- package/hooks/useOverlayLayer.js +27 -0
- package/package.json +1 -1
- package/stories/drawer/Drawer.stories.js +72 -0
- package/stories/editable/Editor.stories.js +1 -1
- package/stories/utils/Element.js +17 -5
- package/stories/utils/TokensBorders.stories.js +3 -5
- package/stories/utils/TokensMargins.stories.js +18 -16
package/base.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
body{background:var(--body-bg);color:var(--color);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",system-ui,sans-serif;font-size:14px;font-weight:300;line-height:1.5em}body,html{box-sizing:border-box;height:100%;margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-weight:300;line-height:1.5em;margin:0 0 15px 0;padding:0}h1{font-size:25px}h2{font-size:20px}h3{font-size:16px}h4,h5,h6{font-size:14px;font-weight:500}small{font-size:12px}b,strong{font-weight:500}a,button.anchor{color:#1d9efc;text-decoration:none;background:0 0;border:none;cursor:pointer;padding:0}a:hover,button.anchor:hover{transition:color .2s ease;color:#0390f7}button{font-size:14px}p{margin:0 0 15px}code,pre{font-family:monospace;font-size:14px;color:#777}pre{background:var(--body-bg);border-radius:15px;border:solid 1px var(--border-color);line-height:1.5em;overflow:auto;padding:15px;text-wrap:wrap}hr{border:none;border-bottom:solid 1px var(--border-color);margin:15px 0}.app-layout{box-sizing:border-box;min-height:100%;display:flex;flex-direction:column}.app-body{flex-grow:1}.app-footer,.app-header{flex-grow:0;flex-shrink:0}.wrapper .span-side{width:250px}.wrapper .span-double{width:835px}.wrapper .adds-4 .span-add{width:263.75px}.wrapper .adds-3 .span-add{width:356.66666667px}.wrapper .span-half{width:542.5px}:root{--base-margin:15px}.theme-light,:root{--color:#272729;--btn-bg:#ECEDEF;--btn-bg-darker:#dee0e3;--el-bg:#FFFFFF;--el-bg-highlight:#f2f5f7;--body-bg:#f1f5f8;--border-color:#DDD;--border-radius:15px;--overlay-color:rgba(0, 0, 0, 0.2);--input-bg:#FFFFFF;--primary-color:#1D9EFC;--success-color:#38c153;--alert-color:#ea0835;--warning-color:#ffd500;--active-color:#64FA00;--color-gray:#777}.blink-soft{animation:blinker 2s linear infinite}@keyframes blinker{50%{opacity:.4}}.box{background:var(--el-bg);box-shadow:0 4px 18px rgba(0,0,0,.1);box-shadow:2px 4px 12px rgba(0,0,0,.1);background:#fff;border-radius:15px;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;transition-delay:0s;position:relative;margin-bottom:15px}.box-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.2)}.box-header{color:#777;background:#fff;border-radius:15px 15px 0 0}.box-header-collapsed{border-radius:15px}.box .box-footer .row,.box .box-toolbar .row{margin-bottom:0}.box .box-toolbar .form-element{margin-bottom:0}.box .box-top-btn{position:absolute;right:10px;top:10px}.box .box{box-shadow:none;border:solid 1px var(--border-color)}button:focus-visible{outline:1px auto #1D9EFC}.btn-circle:active,.btn:active{outline:3px solid rgba(29,158,252,.7)!important}.btn-circle:focus-visible,.btn:focus-visible{outline:2px solid #038df2;outline-offset:2px}.btn{border:none;border-radius:7.5px;box-sizing:border-box;display:inline-block;font-size:14px;margin:0;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;padding:12px 20px;transition:background .2s cubic-bezier(.4, 0, .2, 1)}.btn.disabled,.btn[disabled]{opacity:50%;pointer-events:none}.btn-normal{border:none}.btn-outline{background:0 0;color:var(--color)}.btn-link{border:solid 1px transparent;background:0 0;color:#1d9efc;font-weight:700}.btn-normal-default{background:var(--btn-bg);border:solid 1px var(--btn-bg);color:var(--color)}.btn-outline-default{border:solid 1px #919191;color:var(--color)}.btn-link-default{color:var(--color)}.btn-link-default:hover{background:#ecedef}.btn-normal-default:hover,.btn-outline-default:hover{background:var(--btn-bg-darker);border-color:var(--btn-bg-darker)}.btn-normal-primary{background:#1d9efc;border:solid 1px #1d9efc;color:#fff}.btn-outline-primary{border:solid 1px #1d9efc;color:#1d9efc}.btn-link-primary{color:#1d9efc}.btn-link-primary:hover{background:#e2f1fb}.btn-normal-primary:hover,.btn-outline-primary:hover{color:#fff;background:#038aed}.btn-normal-alert{background:#ea0835;border:solid 1px #ea0835;color:#fff}.btn-outline-alert{border:solid 1px #ea0835;color:#ea0835}.btn-link-alert{color:#ea0835}.btn-link-alert:hover{background:#fcc5c5}.btn-normal-alert:hover,.btn-outline-alert:hover{color:#fff;background:#c3072c}.btn-normal-success{background:#38c153;border:solid 1px #38c153;color:#fff}.btn-outline-success{border:solid 1px #38c153;color:#38c153}.btn-link-success{color:#38c153}.btn-link-success:hover{background:#ddffd4}.btn-normal-success:hover,.btn-outline-success:hover{color:#fff;background:#2fa145}.btn-normal-warning{background:#ffd500;border:solid 1px #ffd500}.btn-outline-warning{border:solid 1px #ffd500;color:#ca0}.btn-link-warning{color:#ca0}.btn-link-warning:hover{background:#fe9}.btn-normal-warning:hover,.btn-outline-warning:hover{color:#fff;background:#f0c800}.btn-size-large{font-size:20px;padding:15px 30px}.btn-size-small{font-size:12px;font-weight:unset;padding:4px 8px}.btn-circle{border-radius:50%;border:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:35px;width:35px;min-height:35px;min-width:35px;max-height:35px;max-width:35px;aspect-ratio:1/1;margin:0;padding:0;overflow:hidden;background:rgba(0,0,0,.05)}.btn-circle.disabled,.btn-circle[disabled]{opacity:30%;pointer-events:none;cursor:not-allowed}.btn-circle:active{outline:3px solid rgba(29,158,252,.7)!important}.btn-circle:hover{background:rgba(0,0,0,.1)}.btn-circle:active{background:rgba(0,0,0,.3)}.btn-circle-size-default{font-size:1em}.btn-circle-size-small{height:25px;width:25px;min-height:25px;min-width:25px;max-height:25px;max-width:25px;font-size:12px}.btn-circle-size-large{height:48px;width:48px;min-height:48px;min-width:48px;max-height:48px;max-width:48px;font-size:20px}.btn-circle-size-large svg{margin-left:0;margin-top:0}.btn-alert:active{outline:3px solid rgba(234,8,53,.7)!important}.btn-alert:focus-visible{outline:2px solid #c7072d;outline-offset:2px}.btn-success:active{outline:3px solid rgba(56,193,83,.7)!important}.btn-success:focus-visible{outline:2px solid #30a547;outline-offset:2px}.btn-warning:active{outline:3px solid rgba(255,213,0,.7)!important}.btn-warning:focus-visible{outline:2px solid #dbb700;outline-offset:2px}.carousel{width:100%;position:relative;overflow:hidden;background:var(--el-bg);border-radius:15px;user-select:none}.carousel-slide{display:flex;height:100%;will-change:transform}.carousel-img-wrapper{min-width:100%;height:100%;position:relative;overflow:hidden}.carousel-img{width:100%;height:100%;object-fit:cover;display:block}.carousel-title{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);color:#fff;padding:15px;font-size:20px;border-radius:0 0 15px 15px}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:9}.carousel-btn-left{left:15px}.carousel-btn-right{right:15px}.carousel-dots{position:absolute;left:0;right:0;bottom:15px;display:flex;justify-content:center;gap:15px;z-index:9}.carousel-dot-btn{width:15px;height:15px;border-radius:50%;border:none;cursor:pointer;outline:0;transition:backgrund .2s}.dialog{background:var(--el-bg);box-shadow:0 4px 18px rgba(0,0,0,.1);box-shadow:2px 4px 12px rgba(0,0,0,.1);background:#fff;border-radius:15px;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;transition-delay:0s;box-shadow:0 5px 30px rgba(0,0,0,.5);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);min-width:320px;max-width:90vw;max-height:calc(100vh - 32px);width:auto;margin:0;z-index:10001;display:flex;flex-direction:column;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.dialog-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.2)}.dialog h1,.dialog h2,.dialog h3{margin:0}.dialog-title{border-bottom:solid 1px var(--border-color);padding:15px;border-radius:15px 15px 0 0}.dialog-content{padding:15px}.dialog-actions{border-top:solid 1px var(--border-color);padding:15px}.dialog-actions .btn,.dialog-actions .flex,.dialog-actions .row{margin-bottom:0}.dialog-close{position:absolute;top:10px;right:15px}.dialog-close button:focus,.dialog-close button:focus-visible{outline:2px solid #038df2;outline-offset:2px}.dialog .box{box-shadow:none;border:solid 1px var(--border-color)!important}.dialog:focus{outline:0}.dialog-overlay{pointer-events:auto;z-index:10000}.dropdown{background:var(--el-bg);box-shadow:0 4px 18px rgba(0,0,0,.1);box-shadow:2px 4px 12px rgba(0,0,0,.1);background:#fff;border-radius:15px;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;transition-delay:0s;border:1px solid var(--border-color);padding:5px 0;position:absolute;z-index:99;min-width:400px;max-width:600px;left:0;cursor:pointer;margin:0}.dropdown-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.2)}.dropdown li{list-style:none;margin:0}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:var(--el-bg-highlight)}.dropdown-active{background-color:#1d9efc!important;color:#fff}.navbar-menu-item .dropdown a{margin:0!important;padding:0!important;color:var(--color)!important}.flex{display:flex;gap:15px}.flex-justify-start{justify-content:flex-start}.flex-justify-center{justify-content:center}.flex-justify-end{justify-content:flex-end}.flex-justify-between{justify-content:space-between}.flex-align-start{align-items:flex-start}.flex-align-center{align-items:center}.flex-align-end{align-items:flex-end}.flex-align-stretch{align-items:stretch}.flex-align-baseline{align-items:baseline}.flex[data-cols]{container-type:inline-size;flex-wrap:wrap;align-items:stretch}.flex[data-cols]>.flex-item{flex:0 0 calc((100% - (var(--flex-cols,1) - 1) * var(--flex-gap,15px))/ var(--flex-cols,1));max-width:calc((100% - (var(--flex-cols,1) - 1) * var(--flex-gap,15px))/ var(--flex-cols,1));box-sizing:border-box}@container (max-width:500px){.flex-item{flex:0 0 calc((100% - (var(--flex-phone-cols,1) - 1) * var(--flex-gap,15px))/ var(--flex-phone-cols,1))!important;max-width:calc((100% - (var(--flex-phone-cols,1) - 1) * var(--flex-gap,15px))/ var(--flex-phone-cols,1))!important}}@container (min-width:501px) and (max-width:900px){.flex-item{flex:0 0 calc((100% - (var(--flex-tablet-cols,2) - 1) * var(--flex-gap,15px))/ var(--flex-tablet-cols,2))!important;max-width:calc((100% - (var(--flex-tablet-cols,2) - 1) * var(--flex-gap,15px))/ var(--flex-tablet-cols,2))!important}}input:focus,select:focus,textarea:focus{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc;border-color:#4fb4fd}.input-inside,button,input,select,textarea{background:var(--input-bg);color:var(--color);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",system-ui,sans-serif}.input-inside,input,select,textarea{display:inline-block;padding:10px;box-sizing:border-box;font-size:14px;line-height:1.5em;border-radius:7.5px;vertical-align:middle;border:solid 1px var(--border-color);-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;margin-bottom:0!important}.input-inside.large,input.large,select.large,textarea.large{font-size:25px;padding:6px 6px}.input-inside:hover,input:hover,select:hover,textarea:hover{-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;border-color:#4fb4fd}.editable{display:inline-block;width:100%;min-height:1.4em;padding:2px 0;box-sizing:border-box;font-size:14px;line-height:1.5em;border-radius:7.5px;vertical-align:middle;border:solid 1px transparent;background:0 0;color:var(--color);white-space:pre-wrap;word-break:break-word;outline:0;margin-bottom:0!important}.editable:focus{background:var(--input-bg);outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc}.editable[data-empty=true]::before{content:attr(data-placeholder);color:#777;pointer-events:none}.editable:focus::before{content:''}.inline-elements .form-element{margin-bottom:0}input[type=color]{border:none;padding:0}.input-alert{-webkit-transition:none!important;transition:none!important;border-color:#ea0835!important}.input-alert:focus{outline:3px solid rgba(234,8,53,.7)!important}.input-wrapper{position:relative}.input-reset-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:2}.input-inside{padding:0 4px 0 0;height:auto;position:relative}.input-inside input:focus,.input-inside select:focus{outline:0!important}.input-inside :first-child{border-radius:7.5px 0 0 7.5px}.input-inside :last-child{border-radius:0 7.5px 7.5px 0}.input-inside:focus{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc}.input-inside{position:relative}.input-inside .btn-circle{height:24px;width:24px}.input-focus{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc}.input-btns{position:absolute;right:5px;top:5px}.label-inline{padding:0!important}.label-inline label{color:#777;padding:4px 8px}.label-inline select{border-right:none!important;border-left:solid 1px var(--border-color);color:var(--color)}.input-inside{height:auto}.input-inside:after,.input-inside:before{display:table;content:"";line-height:0}.input-inside:after{clear:both}.input-inside button,.input-inside i,.input-inside input,.input-inside span{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.input-inside input,.input-inside textarea{border:0!important;box-shadow:none}.input-inside:focus-within{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc}.input-inside input:focus,.input-inside select:focus{outline:0!important;border-color:transparent}.input-inside select{border:none;box-shadow:none;margin:0;padding:10px;color:#777;border-right:solid 1px var(--border-color);background:var(--input-bg);border-radius:0;height:40px}.input-inside select:focus{background:#e2f1fb}input.disabled,input[disabled]{background-color:var(--el-bg-color);border:none;box-shadow:none;padding:4px 0!important}input:-moz-read-only,input:read-only{color:brown;border:none!important}input[type=checkbox],input[type=radio]{box-shadow:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}select{margin-top:0;color:var(--color)}textarea{resize:none;height:auto}label{display:block}label input,label select,label textarea{margin-bottom:0}fieldset{border:solid 1px var(--border-color);margin-bottom:15px;border-radius:7.5px}legend{color:#777;padding:0 5px}fieldset label{margin-bottom:15px}td label{margin-bottom:0}.form-inline:after,.form-inline:before{display:table;content:"";line-height:0}.form-inline:after{clear:both}.form-inline button,.form-inline input,.form-inline label,.form-inline select,.form-inline textarea{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.toolbar-group:after,.toolbar-group:before{display:table;content:"";line-height:0}.toolbar-group:after{clear:both}.toolbar-group button,.toolbar-group input,.toolbar-group label,.toolbar-group select,.toolbar-group textarea{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle;margin-right:-5px;border-right:solid 1px #fff;border-radius:0}.toolbar-group button:first-child,.toolbar-group input:first-child,.toolbar-group label:first-child,.toolbar-group select:first-child,.toolbar-group textarea:first-child{border-radius:7.5px 0 0 7.5px}.toolbar-group button:last-child,.toolbar-group input:last-child,.toolbar-group label:last-child,.toolbar-group select:last-child,.toolbar-group textarea:last-child{border-radius:0 7.5px 7.5px 0;border-right:solid 1px var(--border-color)}::placeholder{color:#777;opacity:1}:-ms-input-placeholder{color:var(--border-color)}::-ms-input-placeholder{color:var(--border-color)}label.switch{margin-top:-5px}.switch{position:relative;display:inline-block;width:32px;height:19px}.switch input{opacity:0;width:0;height:0;outline:0}.form-switch{display:inline-block}.swith-label{margin-left:5px}.slider{box-shadow:inset 0 1px 3px rgb(0 0 0 / 10%)!important;border-radius:15px;-webkit-transition:background-color .1s;background-color:#ccc;bottom:-1px;cursor:pointer;left:0;position:absolute;right:1px;top:1px;transition:background-color .1s}.slider:before{border-radius:50%;left:2px;width:15px;-webkit-transition:.1s;background-color:#fff;bottom:2px;content:"";height:15px;position:absolute;transition:.1s}input:checked+.slider{background-color:#38c153}input:focus+.slider{box-shadow:0 0 1px #38c153}input:checked+.slider:before{transform:translateX(12px)}.switch input[type=checkbox]:focus+.slider{outline:0}.switch input[type=checkbox]:focus-visible+.slider{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc;outline-offset:2px}.cust-radio input[type=radio]:focus+.checkmark{outline:0}.cust-radio input[type=radio]:focus-visible+.checkmark{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc;outline-offset:2px}.input-label,.input-label-alert{display:block;font-size:12px;margin-bottom:2px}.input-label{color:#777}.input-label-alert{color:#ea0835}.cust-radio{display:block;position:relative;padding-left:18px;padding-right:10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cust-radio input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;top:4px;left:0;height:15px;width:15px;background-color:var(--border-color);box-shadow:inset 0 1px 3px rgb(0 0 0 / 20%)!important;border-radius:50%}.cust-radio input:checked~.checkmark{background-color:#1d9efc}.checkmark:after{content:"";position:absolute;display:none}.cust-radio input:checked~.checkmark:after{display:block}.cust-radio .checkmark:after{top:5px;left:5px;width:5px;height:5px;border-radius:50%;background:#fff}.hidden-arrows::-webkit-inner-spin-button,.hidden-arrows::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.code-editor{color:#777;font-family:monospace;font-size:12px;border:0;padding:0;width:100%}.code-editor:focus{outline:0!important}.information{border-radius:15px;padding:15px;margin-bottom:15px;position:relative}.information-icon{position:absolute;top:15px;left:15px;font-size:1.2em;opacity:.75}.information-content-icon{padding-left:30px}.information-large{font-size:25px;padding:30px}.information-default{background:var(--el-bg-highlight)}.information-primary{background:#e2f1fb;color:#1d9efc}.information-primary hr{border-bottom:solid 1px #1d9efc}.information-warning{background:#ffd500;color:var(--color)}.information-success{background:#ddffd4;color:#31a949}.information-success hr{border-bottom:solid 1px #38c153}.information-alert{background:#fcc5c5;color:#ea0835}.information-alert hr{border-bottom:solid 1px #ea0835}.badge{cursor:default;display:inline-block;line-height:1.5em;color:#fff;vertical-align:baseline;white-space:nowrap;position:relative}.badge-content{width:100%;display:flex;align-items:center;justify-content:center}.badge:empty{display:none}.badge .btn-circle{margin-left:5px}.badge-default{background-color:var(--btn-bg);color:#777}.badge.badge-primary{background-color:#1d9efc}.badge.badge-warning{color:var(--color);background-color:#ffd500}.badge.badge-success{background-color:#38c153}.badge.badge-alert{background-color:#ea0835}.badge{border-radius:30px;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.badge-content{width:100%;display:flex;align-items:center;justify-content:center;padding:7px 18px}.badge-closable .badge-content{padding-right:0!important}.badge-small .badge-content{padding:2px 10px;font-size:12px;min-height:20px}.clear-list ul{margin:0;padding:0}.clear-list ul li{padding:0;list-style:none;line-height:1.5em}.clear-list.none li{margin:0}.clear-list.compact li{margin:0 0 7.5px 0}.clear-list.default li{margin:0 0 15px 0}.clear-list.plenty li{margin:0 0 22.5px 0}.inline-list ul,ul.inline-list{display:flex;gap:15px;margin:0 0 15px;padding:0}.inline-list ul li,ul.inline-list li{padding:0;list-style:none}.loader-squares{display:flex;gap:8px;justify-content:center;align-items:center;height:40px}.loader-square{width:16px;height:16px;border-radius:15px;animation:loader-grow .7s cubic-bezier(.4,0,.2,1) infinite;transform-origin:center;background-color:#1895ff}.loader-square:first-child{animation-delay:0s}.loader-square:nth-child(2){animation-delay:.15s}.loader-square:nth-child(3){animation-delay:.3s}.loader-square:nth-child(4){animation-delay:.45s}.loader-square:nth-child(5){animation-delay:.6s}@keyframes loader-grow{0%{transform:scale(1);background-color:#1895ff}30%{transform:scale(1.5);background-color:#24d3fc}60%{transform:scale(1);background-color:#1fb5fe}100%{transform:scale(1);background-color:#1895ff}}.loader-lock{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.1);z-index:9990}.loader-wrapper{position:relative;z-index:9999}.loader-full{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.navbar-header{background:#000;border-bottom:solid 3px #1d9efc;box-shadow:0 4px 12px rgba(0,0,0,.1)}.navbar-responsive{-webkit-backdrop-filter:blur(5px);align-items:center;backdrop-filter:blur(5px);color:#fff;display:flex;min-height:60px;padding:0 15px;position:relative;z-index:100}.navbar-logo img{height:40px}.navbar-main{flex:1}.navbar-menu{display:flex;list-style:none;margin:0;padding:0}.navbar-menu .navbar-menu-item{position:relative;cursor:pointer;display:inline-block;z-index:888}.navbar-menu .navbar-menu-item a{color:#fff;display:block;padding:19px 30px}.navbar-menu .navbar-menu-item>.navbar-submenu{display:none;position:absolute;left:0;top:100%;min-width:160px;z-index:999;color:#fff!important;padding:7.5px 0 15px 0;background:rgba(0,0,0,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:0 0 15px 15px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.navbar-menu .navbar-menu-item>.navbar-submenu a{color:#fff;padding:10px 15px}.navbar-menu .navbar-menu-item>.navbar-submenu li:hover{background-color:rgba(255,255,255,.12);color:#fff}.navbar-menu .navbar-menu-item>.navbar-submenu li:hover>a{color:#fff}.navbar-icon-area,.navbar-menu,.navbar-menu-item.has-submenu>.navbar-submenu{color:#fff;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.navbar-menu-item.open>.navbar-submenu,.navbar-menu-item:hover>.navbar-submenu{display:block}.navbar-menu-item.active,.navbar-submenu-item.active{background:rgba(255,255,255,.1)}.navbar-icon-btn:hover,.navbar-menu-item:hover,.navbar-submenu-item:hover{background:rgba(255,255,255,.08)}.navbar-submenu{list-style:none;margin:0;padding:0}.navbar-icons{display:flex;gap:.5rem}.navbar-icons .navbar-icon-wrapper{position:relative}.navbar-icons .navbar-icon-btn{color:#fff;background:0 0;border:none;cursor:pointer;font-size:1.2em;height:40px;width:40px;display:flex;align-items:center;justify-content:center;opacity:.8}.navbar-icons .navbar-icon-btn:hover{opacity:1}.navbar-icons .navbar-icon-btn.active{color:#1d9efc;opacity:1}.navbar-hamburger{display:none;background:0 0;border:none;font-size:1.5em;margin-left:1rem;cursor:pointer;color:#fff}.navbar-icon-area{display:none;position:absolute;left:50%;transform:translateX(-50%);top:100%;z-index:99;width:1100px;max-width:calc(100vw - (15px * 2));box-sizing:border-box;background:rgba(0,0,0,.8);border-radius:0 0 15px 15px;padding:15px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.navbar-icon-area.open{display:block}.navbar-icon-area-content{display:flex;justify-content:center;width:100%}.pagination{padding-bottom:15px}.pagination-bar{width:100%;display:flex;justify-content:center;align-items:center;padding:15px 0}.pagination-bar-inner{display:flex;align-items:center;gap:15px;min-width:150px;max-width:220px}.pagination-input{width:48px;text-align:center;border-radius:15px;border:1px solid #ccc;padding:4px 0;font-size:1em}.row{display:flex;flex-wrap:wrap;width:100%;gap:15px;margin-bottom:15px}.row-item{box-sizing:border-box}.list-scroller-wrapper{width:100%;position:relative}.list-scroller{display:flex;overflow-x:auto;scroll-behavior:smooth;gap:15px;width:100%;scrollbar-width:none;-ms-overflow-style:none;margin:0;padding:5px}.list-scroller::-webkit-scrollbar{display:none}.list-scroller li{margin:0;padding:0;list-style:none}.list-scroller-btn{position:absolute;z-index:9;background:#ccc;top:50%;transform:translateY(-50%)}.list-scroller-btn-left{left:-15px}.list-scroller-btn-right{right:-15px}.skeleton{background:linear-gradient(90deg,var(--btn-bg) 25%,#aaa 50%,var(--btn-bg) 75%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite linear;border-radius:15px;padding:15px;margin-bottom:15px;position:relative;overflow:hidden}@keyframes skeleton-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.snackbar{padding:15px 60px 15px 15px;color:#fff;border-radius:15px;margin:auto;margin-bottom:15px;box-sizing:border-box;position:relative;min-width:500px;box-shadow:0 3px 10px rgba(0,0,0,.3)}.snackbar .snackbar-close{position:absolute;top:10px;right:10px}.snackbar-stack{position:fixed;bottom:15px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center}table{max-width:100%;border-collapse:collapse;border-spacing:0}.table{cursor:default;border-bottom:solid 1px transparent;margin-bottom:15px;border-collapse:separate;background:var(--el-bg)}.table thead td,.table thead th{background-color:var(--el-bg);border-bottom:solid 1px var(--border-color);color:#777;font-weight:400;position:sticky;top:0;z-index:5}.table thead td a,.table thead td button.anchor,.table thead th a,.table thead th button.anchor{color:#777!important}.table thead td a:hover,.table thead td button.anchor:hover,.table thead th a:hover,.table thead th button.anchor:hover{text-decoration:underline;color:#5e5e5e}.table thead td:first-child,.table thead th:first-child{border-radius:15px 0 0 0}.table thead td:last-child,.table thead th:last-child{border-radius:0 15px 0 0}.table td,.table th{padding:8px 6px;line-height:1.5em}.table td .form-element,.table th .form-element{margin-bottom:0!important}.table td .btn,.table td .row,.table th .btn,.table th .row{margin-bottom:0}.table tbody td,.table tbody th{border-top:solid 1px transparent}.table .overlined td,.table .overlined th{border-top:solid 1px var(--border-color)}.table .underlined td,.table .underlined th{border-bottom:solid 1px var(--border-color)}.table tr.valign-middle td{vertical-align:middle}.table tr.valign-top td{vertical-align:top}.table tr.valign-bottom td{vertical-align:bottom}.table-striped tbody tr:nth-child(odd){background-color:var(--el-bg-highlight)}.table-hover tbody tr:hover>td{background-color:#cce6f8}.table-hover tbody tr:hover>td.highlight-primary{background-color:#b5dbf5}.table-hover tbody tr:hover>td.highlight-success{background-color:#b5ffa1}.table-hover tbody tr:hover>td.highlight-alert{background-color:#f99595}.table-hover tbody tr:hover>td.highlight-warning{background-color:#ffe666}.table td.highlight-primary,.table th.highlight-primary,.table tr.highlight-primary td,.table tr.highlight-primary th{background-color:#e2f1fb}.table td.highlight-alert,.table th.highlight-alert,.table tr.highlight-alert td,.table tr.highlight-alert th{background-color:#fcc5c5}.table td.highlight-success,.table th.highlight-success,.table tr.highlight-success td,.table tr.highlight-success th{background-color:#ddffd4}.table td.highlight-warning,.table th.highlight-warning,.table tr.highlight-warning td,.table tr.highlight-warning th{background-color:#fe9}.table .input-wrapper,.table .uneditable-input,.table input,.table select,.table textarea{margin-bottom:0}.tabs{display:flex;border-bottom:solid 1px var(--border-color)}.tabs .tab{padding:15px;margin:0;border:none;cursor:pointer;border:solid 1px transparent;border-radius:15px 15px 0 0}.tabs .tab.active{border:solid 1px var(--border-color);border-bottom:solid 1px #fff;color:#1d9efc;position:relative;z-index:9;background:#fff;bottom:-1px}.tabs .tab.disabled,.tabs .tab[disabled]{color:#919191;pointer-events:none}.tab-content{padding:15px;border:solid 1px var(--border-color);border-top:solid 1px transparent;border-radius:0 0 15px 15px;position:relative;z-index:1;background:#fff}.image{display:flex}.image-left{justify-content:flex-start}.image-right{justify-content:flex-end}.image-center{justify-content:center}.thumb{background-color:#fff!important;border-radius:15px;box-sizing:border-box;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;width:100%}.thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}.thumb.thumb-bordered{border:solid 1px var(--border-color)}.thumb-small{width:56px;height:56px}.thumb-smallest{width:32px;height:32px}.thumb-medium{width:80px;height:80px}.thumb-large{width:160px;height:160px}.thumb-largest{width:240px;height:240px}.thumb .thumb-corner{position:absolute;top:-13px;right:-13px}.image-zoom{overflow:hidden;position:relative;touch-action:none;background:#fff}.image-zoom img{position:absolute;user-select:none}.image-zoom-caption{position:absolute;bottom:15px;background:rgba(0,0,0,.25);border-radius:15px;color:#fff;padding:5px 15px;font-size:12px;z-index:9;left:50%;transform:translateX(-50%);display:block}.tooltip-wrapper{position:relative;display:inline-block}.tooltip{position:absolute;bottom:120%;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.7);color:#fff;padding:6px 12px;border-radius:15px;white-space:nowrap;z-index:100;font-size:.9em;box-shadow:0 2px 8px rgba(0,0,0,.15)}ul.tree{list-style:none;padding:0;margin:0 0 15px 0}ul.tree ul.tree{margin-left:-23px;margin-top:4px;margin-bottom:0}ul.tree li{margin:0;padding:3px 10px;line-height:2rem;border-left:1px solid #646464;cursor:default;position:relative}ul.tree li .tree-content{display:inline-block;margin:3px 0 0 15px}ul.tree li .tree-content-button{display:inline-block;margin:3px 0 0 45px}ul.tree li .tree-last-content{display:inline-block;margin:3px 0 0 15px}ul.tree li .tree-button{position:absolute;top:3px;left:15px;z-index:5}ul.tree li:last-child{border-left:none;line-height:15px!important}ul.tree li:last-child:before{border-left:1px solid #646464}ul.tree li:before{position:absolute;top:-3px;height:1.6em;width:15px;color:#fff;border-bottom:1px solid #646464;content:"";display:inline-block;left:0}ul.tree li:after{position:relative;top:-.3em;height:1.6em;width:15px;color:#fff;content:"";display:inline-block;left:-7px}.text-content{line-height:1.5}.text-size-small{font-size:12px}.text-size-normal{font-size:14px}.text-size-large{font-size:25px}.margin-top{margin-top:15px}.margin-bottom{margin-bottom:15px}.margin-both{margin:15px 0}.collapesed{margin:0}.separated{margin:15px 0}.color-default{color:var(--color)!important}.color-primary{color:#1d9efc!important}.color-success{color:#38c153!important}.color-alert{color:#ea0835!important}.color-warning{color:#ffd500!important}.color-active{color:#64fa00!important}.color-gray{color:#777!important}.bg-primary{background-color:#1d9efc!important;color:#fff}.bg-success{background-color:#38c153!important;color:#fff}.bg-alert{background-color:#ea0835!important;color:#fff}.bg-warning{background-color:#ffd500!important;color:#272729}.bg-default,.bg-gray{background-color:#777!important;color:#fff}.bg-active{background-color:#64fa00!important}.bg-alert .btn-circle svg,.bg-default .btn-circle svg,.bg-primary .btn-circle svg,.bg-success .btn-circle svg{color:#fff!important}.inline{display:inline-block;vertical-align:middle}.note{color:#777;font-size:12px;font-weight:400}.note a{color:#777;text-decoration:underline}.note a:hover{color:#1d9efc}.relative{position:relative}.absolute{position:absolute}.corner-btn{position:absolute;right:15px;top:15px}.center{text-align:center}.right{text-align:right}.left{text-align:left}.content{padding:15px}.visible{visibility:visible}.invisible{visibility:hidden}.hidden{display:none}.expanded{width:100%;margin-bottom:15px}.rounded{border-radius:15px}.bordered{border:solid 1px var(--border-color);border-radius:15px}.bordered-primary{border-color:#1d9efc}.border-top{border-top:solid 1px var(--border-color)}.border-bottom{border-bottom:solid 1px var(--border-color)}.overlay{background:var(--overlay-color);height:100%;left:0;position:fixed;top:0;transition:.2s;width:100%;z-index:99}.component-locker{background:var(--overlay-color);border-radius:15px;height:100%;left:0;position:absolute;top:0;transition:.2s;width:100%;z-index:9}.outline-primary{outline:1px dashed #1D9EFC}.outline-success{outline:1px dashed #38c153}.spacing-none{margin-bottom:0}.spacing-compact{margin-bottom:7.5px}.spacing-default,.spacing-normal{margin-bottom:15px}.spacing-plenty{margin-bottom:22.5px}.container-align-left .container-item{display:flex;justify-content:flex-start}.container-align-center .container-item{display:flex;justify-content:center}.container-align-right .container-item{display:flex;justify-content:flex-end}.container .container-item .container-align-left{display:flex;justify-content:flex-start}.container .container-item .container-align-center{display:flex;justify-content:center}.container .container-item .container-align-right{display:flex;justify-content:flex-end}.container-none .container-item{margin-bottom:0}.container-compact .container-item{margin-bottom:7.5px}.container-default .container-item,.container-normal .container-item{margin-bottom:15px}.container-plenty .container-item{margin-bottom:22.5px}.widget{box-shadow:2px 4px 12px rgba(0,0,0,.1);background:#fff;border-radius:15px;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;transition-delay:0s}.widget-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.2)}.wrapper{position:relative;margin:auto}.wrapper-large{width:1100px}.wrapper-large .role-mainside{width:835px}.wrapper-large .role-sidebar{width:250px}.wrapper-large .role-half{width:550px}.wrapper-large .box .role-mainside{width:820px}.wrapper-large .box .role-sidebar{width:820px}.wrapper-small{width:366.66666667px}.wrapper-medium{width:550px}@-ms-viewport{width:device-width}@media (max-width:500px){body{font-size:14px}h1,h2,h3{font-size:1.1em}.wrapper-default,.wrapper-large{width:96%;margin:auto}.navbar-icon-area{width:96%;max-width:96%}.row-item{flex:0 0 100%!important;max-width:100%!important}.btn{width:100%}.snackbar{width:100%}.expanded-phone{width:100%}.dialog{width:95%!important}.hide-phone{display:none!important}.show-phone{display:block!important}}@media (min-width:501px) and (max-width:900px){body{font-size:14px}h1{font-size:1.3em}h2,h3{font-size:1.1em}.wrapper-default,.wrapper-large{width:96%;margin:auto}.navbar-icon-area{width:96%;max-width:96%}.row-item{flex:0 0 calc(50% - (15px / 2))!important;max-width:calc(50% - (15px / 2))!important}.snackbar{width:100%}}@media (max-width:900px){.navbar-menu{flex-direction:column;display:none;background:rgba(0,0,0,.88);position:absolute;left:0;top:56px;width:100%;box-shadow:0 4px 16px rgba(0,0,0,.24);color:#fff}.navbar-main.open .navbar-menu{display:flex}.navbar-hamburger{display:block}.navbar-menu-item{width:100%}.navbar-menu-item>a{color:#fff;padding:16px 20px}.navbar-menu-item:hover>.navbar-submenu{display:none}.navbar-menu-item.open>.navbar-submenu{display:block}.navbar-submenu{position:static!important;min-width:100%!important;border:none!important;border-radius:0!important}.navbar-submenu a{color:#fff!important;padding:12px 20px 12px 38px!important}.navbar-submenu-item{color:#fff}.navbar-submenu-item:hover{background:rgba(255,255,255,.08)}.navbar-icons{margin-left:auto}}
|
|
1
|
+
body{background:var(--body-bg);color:var(--color);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",system-ui,sans-serif;font-size:14px;font-weight:300;line-height:1.5em}body,html{box-sizing:border-box;height:100%;margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-weight:300;line-height:1.5em;margin:0 0 15px 0;padding:0}h1{font-size:25px}h2{font-size:20px}h3{font-size:16px}h4,h5,h6{font-size:14px;font-weight:500}small{font-size:12px}b,strong{font-weight:500}a,button.anchor{color:#1d9efc;text-decoration:none;background:0 0;border:none;cursor:pointer;padding:0}a:hover,button.anchor:hover{transition:color .2s ease;color:#0390f7}button{font-size:14px}p{margin:0 0 15px}code,pre{font-family:monospace;font-size:14px;color:#777}pre{background:var(--body-bg);border-radius:15px;border:solid 1px var(--border-color);line-height:1.5em;overflow:auto;padding:15px;text-wrap:wrap}hr{border:none;border-bottom:solid 1px var(--border-color);margin:15px 0}.app-layout{box-sizing:border-box;min-height:100%;display:flex;flex-direction:column}.app-body{flex-grow:1}.app-footer,.app-header{flex-grow:0;flex-shrink:0}.wrapper .span-side{width:250px}.wrapper .span-double{width:835px}.wrapper .adds-4 .span-add{width:263.75px}.wrapper .adds-3 .span-add{width:356.66666667px}.wrapper .span-half{width:542.5px}:root{--base-margin:15px}.theme-light,:root{--color:#272729;--btn-bg:#ECEDEF;--btn-bg-darker:#dee0e3;--el-bg:#FFFFFF;--el-bg-highlight:#f2f5f7;--body-bg:#f1f5f8;--border-color:#DDD;--border-radius:15px;--overlay-color:rgba(0, 0, 0, 0.2);--input-bg:#FFFFFF;--primary-color:#1D9EFC;--success-color:#38c153;--alert-color:#ea0835;--warning-color:#ffd500;--active-color:#64FA00;--color-gray:#777}.blink-soft{animation:blinker 2s linear infinite}@keyframes blinker{50%{opacity:.4}}.box{background:var(--el-bg);box-shadow:0 4px 18px rgba(0,0,0,.1);box-shadow:2px 4px 12px rgba(0,0,0,.1);background:#fff;border-radius:15px;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;transition-delay:0s;position:relative;margin-bottom:15px}.box-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.2)}.box-header{color:#777;background:#fff;border-radius:15px 15px 0 0}.box-header-collapsed{border-radius:15px}.box .box-footer .row,.box .box-toolbar .row{margin-bottom:0}.box .box-toolbar .form-element{margin-bottom:0}.box .box-top-btn{position:absolute;right:10px;top:10px}.box .box{box-shadow:none;border:solid 1px var(--border-color)}button:focus-visible{outline:1px auto #1D9EFC}.btn-circle:active,.btn:active{outline:3px solid rgba(29,158,252,.7)!important}.btn-circle:focus-visible,.btn:focus-visible{outline:2px solid #038df2;outline-offset:2px}.btn{border:none;border-radius:7.5px;box-sizing:border-box;display:inline-block;font-size:14px;margin:0;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;padding:12px 20px;transition:background .2s cubic-bezier(.4, 0, .2, 1)}.btn.disabled,.btn[disabled]{opacity:50%;pointer-events:none}.btn.active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);background:var(--btn-bg);border:solid 1px var(--btn-bg);color:var(--color)}.btn-normal{border:none}.btn-outline{background:0 0;color:var(--color)}.btn-link{border:solid 1px transparent;background:0 0;color:#1d9efc;font-weight:700}.btn-normal-default{background:var(--btn-bg);border:solid 1px var(--btn-bg);color:var(--color)}.btn-outline-default{border:solid 1px #919191;color:var(--color)}.btn-link-default{color:var(--color)}.btn-link-default:hover{background:#ecedef}.btn-normal-default:hover,.btn-outline-default:hover{background:var(--btn-bg-darker);border-color:var(--btn-bg-darker)}.btn-normal-primary{background:#1d9efc;border:solid 1px #1d9efc;color:#fff}.btn-outline-primary{border:solid 1px #1d9efc;color:#1d9efc}.btn-link-primary{color:#1d9efc}.btn-link-primary:hover{background:#e2f1fb}.btn-normal-primary:hover,.btn-outline-primary:hover{color:#fff;background:#038aed}.btn-normal-alert{background:#ea0835;border:solid 1px #ea0835;color:#fff}.btn-outline-alert{border:solid 1px #ea0835;color:#ea0835}.btn-link-alert{color:#ea0835}.btn-link-alert:hover{background:#fcc5c5}.btn-normal-alert:hover,.btn-outline-alert:hover{color:#fff;background:#c3072c}.btn-normal-success{background:#38c153;border:solid 1px #38c153;color:#fff}.btn-outline-success{border:solid 1px #38c153;color:#38c153}.btn-link-success{color:#38c153}.btn-link-success:hover{background:#ddffd4}.btn-normal-success:hover,.btn-outline-success:hover{color:#fff;background:#2fa145}.btn-normal-warning{background:#ffd500;border:solid 1px #ffd500}.btn-outline-warning{border:solid 1px #ffd500;color:#ca0}.btn-link-warning{color:#ca0}.btn-link-warning:hover{background:#fe9}.btn-normal-warning:hover,.btn-outline-warning:hover{color:#fff;background:#f0c800}.btn-size-large{font-size:20px;padding:15px 30px}.btn-size-small{font-size:12px;font-weight:unset;padding:4px 8px}.btn-circle{border-radius:50%;border:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;height:35px;width:35px;min-height:35px;min-width:35px;max-height:35px;max-width:35px;aspect-ratio:1/1;margin:0;padding:0;overflow:hidden;background:rgba(0,0,0,.05)}.btn-circle.disabled,.btn-circle[disabled]{opacity:30%;pointer-events:none;cursor:not-allowed}.btn-circle:active{outline:3px solid rgba(29,158,252,.7)!important}.btn-circle:hover{background:rgba(0,0,0,.1)}.btn-circle:active{background:rgba(0,0,0,.3)}.btn-circle-size-default{font-size:1em}.btn-circle-size-small{height:25px;width:25px;min-height:25px;min-width:25px;max-height:25px;max-width:25px;font-size:12px}.btn-circle-size-large{height:48px;width:48px;min-height:48px;min-width:48px;max-height:48px;max-width:48px;font-size:20px}.btn-circle-size-large svg{margin-left:0;margin-top:0}.btn-alert:active{outline:3px solid rgba(234,8,53,.7)!important}.btn-alert:focus-visible{outline:2px solid #c7072d;outline-offset:2px}.btn-success:active{outline:3px solid rgba(56,193,83,.7)!important}.btn-success:focus-visible{outline:2px solid #30a547;outline-offset:2px}.btn-warning:active{outline:3px solid rgba(255,213,0,.7)!important}.btn-warning:focus-visible{outline:2px solid #dbb700;outline-offset:2px}.carousel{width:100%;position:relative;overflow:hidden;background:var(--el-bg);border-radius:15px;user-select:none}.carousel-slide{display:flex;height:100%;will-change:transform}.carousel-img-wrapper{min-width:100%;height:100%;position:relative;overflow:hidden}.carousel-img{width:100%;height:100%;object-fit:cover;display:block}.carousel-title{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);color:#fff;padding:15px;font-size:20px;border-radius:0 0 15px 15px}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:9}.carousel-btn-left{left:15px}.carousel-btn-right{right:15px}.carousel-dots{position:absolute;left:0;right:0;bottom:15px;display:flex;justify-content:center;gap:15px;z-index:9}.carousel-dot-btn{width:15px;height:15px;border-radius:50%;border:none;cursor:pointer;outline:0;transition:backgrund .2s}.drawer{background:var(--el-bg);box-shadow:0 4px 18px rgba(0,0,0,.1);box-shadow:2px 4px 12px rgba(0,0,0,.1);background:#fff;border-radius:15px;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;transition-delay:0s;position:fixed;z-index:10001;display:flex;flex-direction:column;box-shadow:0 5px 30px rgba(0,0,0,.35);max-width:100vw;max-height:100vh}.drawer-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.2)}.drawer-content{flex:1;overflow-y:auto;padding:15px}.drawer-close{position:absolute;top:10px;right:15px;z-index:2}.drawer-right{right:0;top:0;width:min(420px,92vw);height:100vh;border-radius:0;animation:drawer-slide-in-right .2s ease-out}.drawer-left{left:0;top:0;width:min(420px,92vw);height:100vh;border-radius:0;animation:drawer-slide-in-left .2s ease-out}.drawer-top{left:0;top:0;width:100vw;height:min(360px,92vh);border-radius:0 0 15px 15px;animation:drawer-slide-in-top .2s ease-out}.drawer-bottom{left:0;bottom:0;width:100vw;height:min(360px,92vh);border-radius:15px 15px 0 0;animation:drawer-slide-in-bottom .2s ease-out}.drawer-overlay{pointer-events:auto;z-index:10000}@keyframes drawer-slide-in-right{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes drawer-slide-in-left{from{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes drawer-slide-in-top{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes drawer-slide-in-bottom{from{transform:translateY(100%)}to{transform:translateY(0)}}.dialog{background:var(--el-bg);box-shadow:0 4px 18px rgba(0,0,0,.1);box-shadow:2px 4px 12px rgba(0,0,0,.1);background:#fff;border-radius:15px;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;transition-delay:0s;box-shadow:0 5px 30px rgba(0,0,0,.5);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);min-width:320px;max-width:90vw;max-height:calc(100vh - 32px);width:auto;margin:0;z-index:10001;display:flex;flex-direction:column;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.dialog-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.2)}.dialog h1,.dialog h2,.dialog h3{margin:0}.dialog-title{border-bottom:solid 1px var(--border-color);padding:15px;border-radius:15px 15px 0 0}.dialog-content{padding:15px}.dialog-actions{border-top:solid 1px var(--border-color);padding:15px}.dialog-actions .btn,.dialog-actions .flex,.dialog-actions .row{margin-bottom:0}.dialog-close{position:absolute;top:10px;right:15px}.dialog-close button:focus,.dialog-close button:focus-visible{outline:2px solid #038df2;outline-offset:2px}.dialog .box{box-shadow:none;border:solid 1px var(--border-color)!important}.dialog:focus{outline:0}.dialog-overlay{pointer-events:auto;z-index:10000}.dropdown{background:var(--el-bg);box-shadow:0 4px 18px rgba(0,0,0,.1);box-shadow:2px 4px 12px rgba(0,0,0,.1);background:#fff;border-radius:15px;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;transition-delay:0s;border:1px solid var(--border-color);padding:5px 0;position:absolute;z-index:99;min-width:400px;max-width:600px;left:0;cursor:pointer;margin:0}.dropdown-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.2)}.dropdown li{list-style:none;margin:0}.dropdown-item{padding:8px 12px}.dropdown-item:hover{background-color:var(--el-bg-highlight)}.dropdown-active{background-color:#1d9efc!important;color:#fff}.navbar-menu-item .dropdown a{margin:0!important;padding:0!important;color:var(--color)!important}.flex{display:flex;gap:15px}.flex-justify-start{justify-content:flex-start}.flex-justify-center{justify-content:center}.flex-justify-end{justify-content:flex-end}.flex-justify-between{justify-content:space-between}.flex-align-start{align-items:flex-start}.flex-align-center{align-items:center}.flex-align-end{align-items:flex-end}.flex-align-stretch{align-items:stretch}.flex-align-baseline{align-items:baseline}.flex[data-cols]{container-type:inline-size;flex-wrap:wrap;align-items:stretch}.flex[data-cols]>.flex-item{flex:0 0 calc((100% - (var(--flex-cols,1) - 1) * var(--flex-gap,15px))/ var(--flex-cols,1));max-width:calc((100% - (var(--flex-cols,1) - 1) * var(--flex-gap,15px))/ var(--flex-cols,1));box-sizing:border-box}@container (max-width:500px){.flex-item{flex:0 0 calc((100% - (var(--flex-phone-cols,1) - 1) * var(--flex-gap,15px))/ var(--flex-phone-cols,1))!important;max-width:calc((100% - (var(--flex-phone-cols,1) - 1) * var(--flex-gap,15px))/ var(--flex-phone-cols,1))!important}}@container (min-width:501px) and (max-width:900px){.flex-item{flex:0 0 calc((100% - (var(--flex-tablet-cols,2) - 1) * var(--flex-gap,15px))/ var(--flex-tablet-cols,2))!important;max-width:calc((100% - (var(--flex-tablet-cols,2) - 1) * var(--flex-gap,15px))/ var(--flex-tablet-cols,2))!important}}input:focus,select:focus,textarea:focus{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc;border-color:#4fb4fd}.input-inside,button,input,select,textarea{background:var(--input-bg);color:var(--color);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",system-ui,sans-serif}.input-inside,input,select,textarea{display:inline-block;padding:10px;box-sizing:border-box;font-size:14px;line-height:1.5em;border-radius:7.5px;vertical-align:middle;border:solid 1px var(--border-color);-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;margin-bottom:0!important}.input-inside.large,input.large,select.large,textarea.large{font-size:25px;padding:6px 6px}.input-inside:hover,input:hover,select:hover,textarea:hover{-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;border-color:#4fb4fd}.editable{display:inline-block;width:100%;min-height:1.4em;padding:2px 0;box-sizing:border-box;font-size:14px;line-height:1.5em;border-radius:7.5px;vertical-align:middle;border:solid 1px transparent;background:0 0;color:var(--color);white-space:pre-wrap;word-break:break-word;outline:0;margin-bottom:0!important}.editable:focus{background:var(--input-bg);outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc}.editable[data-empty=true]::before{content:attr(data-placeholder);color:#777;pointer-events:none}.editable:focus::before{content:''}.inline-elements .form-element{margin-bottom:0}input[type=color]{border:none;padding:0}.input-alert{-webkit-transition:none!important;transition:none!important;border-color:#ea0835!important}.input-alert:focus{outline:3px solid rgba(234,8,53,.7)!important}.input-wrapper{position:relative}.input-reset-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:2}.input-inside{padding:0 4px 0 0;height:auto;position:relative}.input-inside input:focus,.input-inside select:focus{outline:0!important}.input-inside :first-child{border-radius:7.5px 0 0 7.5px}.input-inside :last-child{border-radius:0 7.5px 7.5px 0}.input-inside:focus{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc}.input-inside{position:relative}.input-inside .btn-circle{height:24px;width:24px}.input-focus{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc}.input-btns{position:absolute;right:5px;top:5px}.label-inline{padding:0!important}.label-inline label{color:#777;padding:4px 8px}.label-inline select{border-right:none!important;border-left:solid 1px var(--border-color);color:var(--color)}.input-inside{height:auto}.input-inside:after,.input-inside:before{display:table;content:"";line-height:0}.input-inside:after{clear:both}.input-inside button,.input-inside i,.input-inside input,.input-inside span{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.input-inside input,.input-inside textarea{border:0!important;box-shadow:none}.input-inside:focus-within{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc}.input-inside input:focus,.input-inside select:focus{outline:0!important;border-color:transparent}.input-inside select{border:none;box-shadow:none;margin:0;padding:10px;color:#777;border-right:solid 1px var(--border-color);background:var(--input-bg);border-radius:0;height:40px}.input-inside select:focus{background:#e2f1fb}input.disabled,input[disabled]{background-color:var(--el-bg-color);border:none;box-shadow:none;padding:4px 0!important}input:-moz-read-only,input:read-only{color:brown;border:none!important}input[type=checkbox],input[type=radio]{box-shadow:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}select{margin-top:0;color:var(--color)}textarea{resize:none;height:auto}label{display:block}label input,label select,label textarea{margin-bottom:0}fieldset{border:solid 1px var(--border-color);margin-bottom:15px;border-radius:7.5px}legend{color:#777;padding:0 5px}fieldset label{margin-bottom:15px}td label{margin-bottom:0}.form-inline:after,.form-inline:before{display:table;content:"";line-height:0}.form-inline:after{clear:both}.form-inline button,.form-inline input,.form-inline label,.form-inline select,.form-inline textarea{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.toolbar-group:after,.toolbar-group:before{display:table;content:"";line-height:0}.toolbar-group:after{clear:both}.toolbar-group button,.toolbar-group input,.toolbar-group label,.toolbar-group select,.toolbar-group textarea{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle;margin-right:-5px;border-right:solid 1px #fff;border-radius:0}.toolbar-group button:first-child,.toolbar-group input:first-child,.toolbar-group label:first-child,.toolbar-group select:first-child,.toolbar-group textarea:first-child{border-radius:7.5px 0 0 7.5px}.toolbar-group button:last-child,.toolbar-group input:last-child,.toolbar-group label:last-child,.toolbar-group select:last-child,.toolbar-group textarea:last-child{border-radius:0 7.5px 7.5px 0;border-right:solid 1px var(--border-color)}::placeholder{color:#777;opacity:1}:-ms-input-placeholder{color:var(--border-color)}::-ms-input-placeholder{color:var(--border-color)}label.switch{margin-top:-5px}.switch{position:relative;display:inline-block;width:32px;height:19px}.switch input{opacity:0;width:0;height:0;outline:0}.form-switch{display:inline-block}.swith-label{margin-left:5px}.slider{box-shadow:inset 0 1px 3px rgb(0 0 0 / 10%)!important;border-radius:15px;-webkit-transition:background-color .1s;background-color:#ccc;bottom:-1px;cursor:pointer;left:0;position:absolute;right:1px;top:1px;transition:background-color .1s}.slider:before{border-radius:50%;left:2px;width:15px;-webkit-transition:.1s;background-color:#fff;bottom:2px;content:"";height:15px;position:absolute;transition:.1s}input:checked+.slider{background-color:#38c153}input:focus+.slider{box-shadow:0 0 1px #38c153}input:checked+.slider:before{transform:translateX(12px)}.switch input[type=checkbox]:focus+.slider{outline:0}.switch input[type=checkbox]:focus-visible+.slider{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc;outline-offset:2px}.cust-radio input[type=radio]:focus+.checkmark{outline:0}.cust-radio input[type=radio]:focus-visible+.checkmark{outline:3px solid rgba(29,158,252,.7);border-color:#1d9efc;outline-offset:2px}.input-label,.input-label-alert{display:block;font-size:12px;margin-bottom:2px}.input-label{color:#777}.input-label-alert{color:#ea0835}.cust-radio{display:block;position:relative;padding-left:18px;padding-right:10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cust-radio input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{position:absolute;top:4px;left:0;height:15px;width:15px;background-color:var(--border-color);box-shadow:inset 0 1px 3px rgb(0 0 0 / 20%)!important;border-radius:50%}.cust-radio input:checked~.checkmark{background-color:#1d9efc}.checkmark:after{content:"";position:absolute;display:none}.cust-radio input:checked~.checkmark:after{display:block}.cust-radio .checkmark:after{top:5px;left:5px;width:5px;height:5px;border-radius:50%;background:#fff}.hidden-arrows::-webkit-inner-spin-button,.hidden-arrows::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.code-editor{color:#777;font-family:monospace;font-size:12px;border:0;padding:0;width:100%}.code-editor:focus{outline:0!important}.information{border-radius:15px;padding:15px;margin-bottom:15px;position:relative}.information-icon{position:absolute;top:15px;left:15px;font-size:1.2em;opacity:.75}.information-content-icon{padding-left:30px}.information-large{font-size:25px;padding:30px}.information-default{background:var(--el-bg-highlight)}.information-primary{background:#e2f1fb;color:#1d9efc}.information-primary hr{border-bottom:solid 1px #1d9efc}.information-warning{background:#ffd500;color:var(--color)}.information-success{background:#ddffd4;color:#31a949}.information-success hr{border-bottom:solid 1px #38c153}.information-alert{background:#fcc5c5;color:#ea0835}.information-alert hr{border-bottom:solid 1px #ea0835}.badge{cursor:default;display:inline-block;line-height:1.5em;color:#fff;vertical-align:baseline;white-space:nowrap;position:relative}.badge-content{width:100%;display:flex;align-items:center;justify-content:center}.badge:empty{display:none}.badge .btn-circle{margin-left:5px}.badge-default{background-color:var(--btn-bg);color:#777}.badge.badge-primary{background-color:#1d9efc}.badge.badge-warning{color:var(--color);background-color:#ffd500}.badge.badge-success{background-color:#38c153}.badge.badge-alert{background-color:#ea0835}.badge{border-radius:30px;box-shadow:inset 0 1px 4px rgba(0,0,0,.1)}.badge-content{width:100%;display:flex;align-items:center;justify-content:center;padding:7px 18px}.badge-closable .badge-content{padding-right:0!important}.badge-small .badge-content{padding:2px 10px;font-size:12px;min-height:20px}.clear-list ul{margin:0;padding:0}.clear-list ul li{padding:0;list-style:none;line-height:1.5em}.clear-list.none li{margin:0}.clear-list.compact li{margin:0 0 7.5px 0}.clear-list.default li{margin:0 0 15px 0}.clear-list.plenty li{margin:0 0 22.5px 0}.inline-list ul,ul.inline-list{display:flex;gap:15px;margin:0 0 15px;padding:0}.inline-list ul li,ul.inline-list li{padding:0;list-style:none}.loader-squares{display:flex;gap:8px;justify-content:center;align-items:center;height:40px}.loader-square{width:16px;height:16px;border-radius:15px;animation:loader-grow .7s cubic-bezier(.4,0,.2,1) infinite;transform-origin:center;background-color:#1895ff}.loader-square:first-child{animation-delay:0s}.loader-square:nth-child(2){animation-delay:.15s}.loader-square:nth-child(3){animation-delay:.3s}.loader-square:nth-child(4){animation-delay:.45s}.loader-square:nth-child(5){animation-delay:.6s}@keyframes loader-grow{0%{transform:scale(1);background-color:#1895ff}30%{transform:scale(1.5);background-color:#24d3fc}60%{transform:scale(1);background-color:#1fb5fe}100%{transform:scale(1);background-color:#1895ff}}.loader-lock{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.1);z-index:9990}.loader-wrapper{position:relative;z-index:9999}.loader-full{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.navbar-header{background:#000;border-bottom:solid 3px #1d9efc;box-shadow:0 4px 12px rgba(0,0,0,.1)}.navbar-responsive{-webkit-backdrop-filter:blur(5px);align-items:center;backdrop-filter:blur(5px);color:#fff;display:flex;min-height:60px;padding:0 15px;position:relative;z-index:100}.navbar-logo img{height:40px}.navbar-main{flex:1}.navbar-menu{display:flex;list-style:none;margin:0;padding:0}.navbar-menu .navbar-menu-item{position:relative;cursor:pointer;display:inline-block;z-index:888}.navbar-menu .navbar-menu-item a{color:#fff;display:block;padding:19px 30px}.navbar-menu .navbar-menu-item>.navbar-submenu{display:none;position:absolute;left:0;top:100%;min-width:160px;z-index:999;color:#fff!important;padding:7.5px 0 15px 0;background:rgba(0,0,0,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:0 0 15px 15px;box-shadow:0 4px 12px rgba(0,0,0,.1)}.navbar-menu .navbar-menu-item>.navbar-submenu a{color:#fff;padding:10px 15px}.navbar-menu .navbar-menu-item>.navbar-submenu li:hover{background-color:rgba(255,255,255,.12);color:#fff}.navbar-menu .navbar-menu-item>.navbar-submenu li:hover>a{color:#fff}.navbar-icon-area,.navbar-menu,.navbar-menu-item.has-submenu>.navbar-submenu{color:#fff;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.navbar-menu-item.open>.navbar-submenu,.navbar-menu-item:hover>.navbar-submenu{display:block}.navbar-menu-item.active,.navbar-submenu-item.active{background:rgba(255,255,255,.1)}.navbar-icon-btn:hover,.navbar-menu-item:hover,.navbar-submenu-item:hover{background:rgba(255,255,255,.08)}.navbar-submenu{list-style:none;margin:0;padding:0}.navbar-icons{display:flex;gap:.5rem}.navbar-icons .navbar-icon-wrapper{position:relative}.navbar-icons .navbar-icon-btn{color:#fff;background:0 0;border:none;cursor:pointer;font-size:1.2em;height:40px;width:40px;display:flex;align-items:center;justify-content:center;opacity:.8}.navbar-icons .navbar-icon-btn:hover{opacity:1}.navbar-icons .navbar-icon-btn.active{color:#1d9efc;opacity:1}.navbar-hamburger{display:none;background:0 0;border:none;font-size:1.5em;margin-left:1rem;cursor:pointer;color:#fff}.navbar-icon-area{display:none;position:absolute;left:50%;transform:translateX(-50%);top:100%;z-index:99;width:1100px;max-width:calc(100vw - (15px * 2));box-sizing:border-box;background:rgba(0,0,0,.8);border-radius:0 0 15px 15px;padding:15px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.navbar-icon-area.open{display:block}.navbar-icon-area-content{display:flex;justify-content:center;width:100%}.pagination{padding-bottom:15px}.pagination-bar{width:100%;display:flex;justify-content:center;align-items:center;padding:15px 0}.pagination-bar-inner{display:flex;align-items:center;gap:15px;min-width:150px;max-width:220px}.pagination-input{width:48px;text-align:center;border-radius:15px;border:1px solid #ccc;padding:4px 0;font-size:1em}.row{display:flex;flex-wrap:wrap;width:100%;gap:15px;margin-bottom:15px}.row-item{box-sizing:border-box}.list-scroller-wrapper{width:100%;position:relative}.list-scroller{display:flex;overflow-x:auto;scroll-behavior:smooth;gap:15px;width:100%;scrollbar-width:none;-ms-overflow-style:none;margin:0;padding:5px}.list-scroller::-webkit-scrollbar{display:none}.list-scroller li{margin:0;padding:0;list-style:none}.list-scroller-btn{position:absolute;z-index:9;background:#ccc;top:50%;transform:translateY(-50%)}.list-scroller-btn-left{left:-15px}.list-scroller-btn-right{right:-15px}.skeleton{background:linear-gradient(90deg,var(--btn-bg) 25%,#aaa 50%,var(--btn-bg) 75%);background-size:200% 100%;animation:skeleton-shimmer 2s infinite linear;border-radius:15px;padding:15px;margin-bottom:15px;position:relative;overflow:hidden}@keyframes skeleton-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.snackbar{padding:15px 60px 15px 15px;color:#fff;border-radius:15px;margin:auto;margin-bottom:15px;box-sizing:border-box;position:relative;min-width:500px;box-shadow:0 3px 10px rgba(0,0,0,.3)}.snackbar .snackbar-close{position:absolute;top:10px;right:10px}.snackbar-stack{position:fixed;bottom:15px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;align-items:center}table{max-width:100%;border-collapse:collapse;border-spacing:0}.table{cursor:default;border-bottom:solid 1px transparent;margin-bottom:15px;border-collapse:separate;background:var(--el-bg)}.table thead td,.table thead th{background-color:var(--el-bg);border-bottom:solid 1px var(--border-color);color:#777;font-weight:400;position:sticky;top:0;z-index:5}.table thead td a,.table thead td button.anchor,.table thead th a,.table thead th button.anchor{color:#777!important}.table thead td a:hover,.table thead td button.anchor:hover,.table thead th a:hover,.table thead th button.anchor:hover{text-decoration:underline;color:#5e5e5e}.table thead td:first-child,.table thead th:first-child{border-radius:15px 0 0 0}.table thead td:last-child,.table thead th:last-child{border-radius:0 15px 0 0}.table td,.table th{padding:8px 6px;line-height:1.5em}.table td .form-element,.table th .form-element{margin-bottom:0!important}.table td .btn,.table td .row,.table th .btn,.table th .row{margin-bottom:0}.table tbody td,.table tbody th{border-top:solid 1px transparent}.table .overlined td,.table .overlined th{border-top:solid 1px var(--border-color)}.table .underlined td,.table .underlined th{border-bottom:solid 1px var(--border-color)}.table tr.valign-middle td{vertical-align:middle}.table tr.valign-top td{vertical-align:top}.table tr.valign-bottom td{vertical-align:bottom}.table-striped tbody tr:nth-child(odd){background-color:var(--el-bg-highlight)}.table-hover tbody tr:hover>td{background-color:#cce6f8}.table-hover tbody tr:hover>td.highlight-primary{background-color:#b5dbf5}.table-hover tbody tr:hover>td.highlight-success{background-color:#b5ffa1}.table-hover tbody tr:hover>td.highlight-alert{background-color:#f99595}.table-hover tbody tr:hover>td.highlight-warning{background-color:#ffe666}.table td.highlight-primary,.table th.highlight-primary,.table tr.highlight-primary td,.table tr.highlight-primary th{background-color:#e2f1fb}.table td.highlight-alert,.table th.highlight-alert,.table tr.highlight-alert td,.table tr.highlight-alert th{background-color:#fcc5c5}.table td.highlight-success,.table th.highlight-success,.table tr.highlight-success td,.table tr.highlight-success th{background-color:#ddffd4}.table td.highlight-warning,.table th.highlight-warning,.table tr.highlight-warning td,.table tr.highlight-warning th{background-color:#fe9}.table .input-wrapper,.table .uneditable-input,.table input,.table select,.table textarea{margin-bottom:0}.html-editor .table{table-layout:fixed;width:100%;border-collapse:collapse;border:1px dashed rgba(119,119,119,.4)}.html-editor .table td,.html-editor .table th{border:1px dashed rgba(119,119,119,.4);min-width:40px}.tabs{display:flex;border-bottom:solid 1px var(--border-color)}.tabs .tab{padding:15px;margin:0;border:none;cursor:pointer;border:solid 1px transparent;border-radius:15px 15px 0 0}.tabs .tab.active{border:solid 1px var(--border-color);border-bottom:solid 1px #fff;color:#1d9efc;position:relative;z-index:9;background:#fff;bottom:-1px}.tabs .tab.disabled,.tabs .tab[disabled]{color:#919191;pointer-events:none}.tab-content{padding:15px;border:solid 1px var(--border-color);border-top:solid 1px transparent;border-radius:0 0 15px 15px;position:relative;z-index:1;background:#fff}.image{display:flex}.image-left{justify-content:flex-start}.image-right{justify-content:flex-end}.image-center{justify-content:center}.thumb{background-color:#fff!important;border-radius:15px;box-sizing:border-box;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;width:100%}.thumb img{max-width:100%;max-height:100%;object-fit:contain;display:block}.thumb.thumb-bordered{border:solid 1px var(--border-color)}.thumb-small{width:56px;height:56px}.thumb-smallest{width:32px;height:32px}.thumb-medium{width:80px;height:80px}.thumb-large{width:160px;height:160px}.thumb-largest{width:240px;height:240px}.thumb .thumb-corner{position:absolute;top:-13px;right:-13px}.image-zoom{overflow:hidden;position:relative;touch-action:none;background:#fff}.image-zoom img{position:absolute;user-select:none}.image-zoom-caption{position:absolute;bottom:15px;background:rgba(0,0,0,.25);border-radius:15px;color:#fff;padding:5px 15px;font-size:12px;z-index:9;left:50%;transform:translateX(-50%);display:block}.tooltip-wrapper{position:relative;display:inline-block}.tooltip{position:absolute;bottom:120%;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.7);color:#fff;padding:6px 12px;border-radius:15px;white-space:nowrap;z-index:100;font-size:.9em;box-shadow:0 2px 8px rgba(0,0,0,.15)}ul.tree{list-style:none;padding:0;margin:0 0 15px 0}ul.tree ul.tree{margin-left:-23px;margin-top:4px;margin-bottom:0}ul.tree li{margin:0;padding:3px 10px;line-height:2rem;border-left:1px solid #646464;cursor:default;position:relative}ul.tree li .tree-content{display:inline-block;margin:3px 0 0 15px}ul.tree li .tree-content-button{display:inline-block;margin:3px 0 0 45px}ul.tree li .tree-last-content{display:inline-block;margin:3px 0 0 15px}ul.tree li .tree-button{position:absolute;top:3px;left:15px;z-index:5}ul.tree li:last-child{border-left:none;line-height:15px!important}ul.tree li:last-child:before{border-left:1px solid #646464}ul.tree li:before{position:absolute;top:-3px;height:1.6em;width:15px;color:#fff;border-bottom:1px solid #646464;content:"";display:inline-block;left:0}ul.tree li:after{position:relative;top:-.3em;height:1.6em;width:15px;color:#fff;content:"";display:inline-block;left:-7px}.text-content{line-height:1.5}.text-size-small{font-size:12px}.text-size-normal{font-size:14px}.text-size-large{font-size:25px}.margin-top{margin-top:15px}.margin-bottom{margin-bottom:15px}.margin-both{margin:15px 0}.collapesed{margin:0}.separated{margin:15px 0}.color-default{color:var(--color)!important}.color-primary{color:#1d9efc!important}.color-success{color:#38c153!important}.color-alert{color:#ea0835!important}.color-warning{color:#ffd500!important}.color-active{color:#64fa00!important}.color-gray{color:#777!important}.bg-primary{background-color:#1d9efc!important;color:#fff}.bg-success{background-color:#38c153!important;color:#fff}.bg-alert{background-color:#ea0835!important;color:#fff}.bg-warning{background-color:#ffd500!important;color:#272729}.bg-default,.bg-gray{background-color:#777!important;color:#fff}.bg-active{background-color:#64fa00!important}.bg-alert .btn-circle svg,.bg-default .btn-circle svg,.bg-primary .btn-circle svg,.bg-success .btn-circle svg{color:#fff!important}.inline{display:inline-block;vertical-align:middle}.note{color:#777;font-size:12px;font-weight:400}.note a{color:#777;text-decoration:underline}.note a:hover{color:#1d9efc}.relative{position:relative}.absolute{position:absolute}.corner-btn{position:absolute;right:15px;top:15px}.center{text-align:center}.right{text-align:right}.left{text-align:left}.content{padding:15px}.visible{visibility:visible}.invisible{visibility:hidden}.hidden{display:none}.expanded{width:100%;margin-bottom:15px}.rounded{border-radius:15px}.bordered{border:solid 1px var(--border-color);border-radius:15px}.bordered-primary{border-color:#1d9efc}.border-top{border-top:solid 1px var(--border-color)}.border-bottom{border-bottom:solid 1px var(--border-color)}.overlay{background:var(--overlay-color);height:100%;left:0;position:fixed;top:0;transition:.2s;width:100%;z-index:99}.component-locker{background:var(--overlay-color);border-radius:15px;height:100%;left:0;position:absolute;top:0;transition:.2s;width:100%;z-index:9}.outline-primary{outline:1px dashed #1D9EFC}.outline-success{outline:1px dashed #38c153}.spacing-none{margin-bottom:0}.spacing-compact{margin-bottom:7.5px}.spacing-default,.spacing-normal{margin-bottom:15px}.spacing-plenty{margin-bottom:22.5px}.container-align-left .container-item{display:flex;justify-content:flex-start}.container-align-center .container-item{display:flex;justify-content:center}.container-align-right .container-item{display:flex;justify-content:flex-end}.container .container-item .container-align-left{display:flex;justify-content:flex-start}.container .container-item .container-align-center{display:flex;justify-content:center}.container .container-item .container-align-right{display:flex;justify-content:flex-end}.container-none .container-item{margin-bottom:0}.container-compact .container-item{margin-bottom:7.5px}.container-default .container-item,.container-normal .container-item{margin-bottom:15px}.container-plenty .container-item{margin-bottom:22.5px}.widget{box-shadow:2px 4px 12px rgba(0,0,0,.1);background:#fff;border-radius:15px;transform:translateY(0);transition:transform .25s ease,box-shadow .25s ease;transition-delay:0s}.widget-hover:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.2)}.wrapper{position:relative;margin:auto}.wrapper-large{width:1100px}.wrapper-large .role-mainside{width:835px}.wrapper-large .role-sidebar{width:250px}.wrapper-large .role-half{width:550px}.wrapper-large .box .role-mainside{width:820px}.wrapper-large .box .role-sidebar{width:820px}.wrapper-small{width:366.66666667px}.wrapper-medium{width:550px}@-ms-viewport{width:device-width}@media (max-width:500px){body{font-size:14px}h1,h2,h3{font-size:1.1em}.wrapper-default,.wrapper-large{width:96%;margin:auto}.navbar-icon-area{width:96%;max-width:96%}.row-item{flex:0 0 100%!important;max-width:100%!important}.btn{width:100%}.snackbar{width:100%}.expanded-phone{width:100%}.dialog{width:95%!important}.hide-phone{display:none!important}.show-phone{display:block!important}}@media (min-width:501px) and (max-width:900px){body{font-size:14px}h1{font-size:1.3em}h2,h3{font-size:1.1em}.wrapper-default,.wrapper-large{width:96%;margin:auto}.navbar-icon-area{width:96%;max-width:96%}.row-item{flex:0 0 calc(50% - (15px / 2))!important;max-width:calc(50% - (15px / 2))!important}.snackbar{width:100%}}@media (max-width:900px){.navbar-menu{flex-direction:column;display:none;background:rgba(0,0,0,.88);position:absolute;left:0;top:56px;width:100%;box-shadow:0 4px 16px rgba(0,0,0,.24);color:#fff}.navbar-main.open .navbar-menu{display:flex}.navbar-hamburger{display:block}.navbar-menu-item{width:100%}.navbar-menu-item>a{color:#fff;padding:16px 20px}.navbar-menu-item:hover>.navbar-submenu{display:none}.navbar-menu-item.open>.navbar-submenu{display:block}.navbar-submenu{position:static!important;min-width:100%!important;border:none!important;border-radius:0!important}.navbar-submenu a{color:#fff!important;padding:12px 20px 12px 38px!important}.navbar-submenu-item{color:#fff}.navbar-submenu-item:hover{background:rgba(255,255,255,.08)}.navbar-icons{margin-left:auto}}
|
|
@@ -13,6 +13,8 @@ var _flex = require("../flex");
|
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
14
|
var ConfirmationDialog = exports.ConfirmationDialog = function ConfirmationDialog(_ref) {
|
|
15
15
|
var children = _ref.children,
|
|
16
|
+
_ref$open = _ref.open,
|
|
17
|
+
open = _ref$open === void 0 ? true : _ref$open,
|
|
16
18
|
title = _ref.title,
|
|
17
19
|
icon = _ref.icon,
|
|
18
20
|
color = _ref.color,
|
|
@@ -25,6 +27,7 @@ var ConfirmationDialog = exports.ConfirmationDialog = function ConfirmationDialo
|
|
|
25
27
|
_ref$textCancel = _ref.textCancel,
|
|
26
28
|
textCancel = _ref$textCancel === void 0 ? 'Cancelar' : _ref$textCancel;
|
|
27
29
|
return /*#__PURE__*/_react["default"].createElement(_Dialog.Dialog, {
|
|
30
|
+
open: open,
|
|
28
31
|
width: width,
|
|
29
32
|
height: height,
|
|
30
33
|
color: color,
|
|
@@ -10,6 +10,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
10
10
|
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
11
11
|
var _util = require("../util");
|
|
12
12
|
var _button = require("../button");
|
|
13
|
+
var _useOverlayLayer = require("../../hooks/useOverlayLayer");
|
|
13
14
|
var _excluded = ["children", "className", "spacing"];
|
|
14
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
15
16
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
@@ -37,6 +38,7 @@ var Dialog = exports.Dialog = function Dialog(_ref) {
|
|
|
37
38
|
_ref$closeOnEscape = _ref.closeOnEscape,
|
|
38
39
|
closeOnEscape = _ref$closeOnEscape === void 0 ? true : _ref$closeOnEscape;
|
|
39
40
|
var dialogRef = (0, _react.useRef)(null);
|
|
41
|
+
var zIndex = (0, _useOverlayLayer.useOverlayLayer)(open);
|
|
40
42
|
(0, _react.useEffect)(function () {
|
|
41
43
|
if (!open || !closeOnEscape) return undefined;
|
|
42
44
|
var handleKeyDown = function handleKeyDown(event) {
|
|
@@ -82,14 +84,18 @@ var Dialog = exports.Dialog = function Dialog(_ref) {
|
|
|
82
84
|
isLoading: isLoading
|
|
83
85
|
}
|
|
84
86
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
85
|
-
className: "overlay dialog-overlay"
|
|
87
|
+
className: "overlay dialog-overlay",
|
|
88
|
+
style: {
|
|
89
|
+
zIndex: zIndex
|
|
90
|
+
}
|
|
86
91
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
87
92
|
className: "dialog",
|
|
88
93
|
tabIndex: -1,
|
|
89
94
|
ref: dialogRef,
|
|
90
95
|
style: {
|
|
91
96
|
width: width,
|
|
92
|
-
height: height
|
|
97
|
+
height: height,
|
|
98
|
+
zIndex: zIndex + 1
|
|
93
99
|
},
|
|
94
100
|
role: "dialog",
|
|
95
101
|
"aria-modal": "true"
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = exports.Drawer = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _button = require("../button");
|
|
11
|
+
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
12
|
+
var _useOutsideClick2 = require("../../hooks/useOutsideClick");
|
|
13
|
+
var _useOverlayLayer = require("../../hooks/useOverlayLayer");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
15
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
16
|
+
var Drawer = exports.Drawer = function Drawer(_ref) {
|
|
17
|
+
var children = _ref.children,
|
|
18
|
+
_ref$open = _ref.open,
|
|
19
|
+
open = _ref$open === void 0 ? false : _ref$open,
|
|
20
|
+
_ref$position = _ref.position,
|
|
21
|
+
position = _ref$position === void 0 ? 'right' : _ref$position,
|
|
22
|
+
onClose = _ref.onClose,
|
|
23
|
+
width = _ref.width,
|
|
24
|
+
height = _ref.height,
|
|
25
|
+
className = _ref.className,
|
|
26
|
+
_ref$closeOnEscape = _ref.closeOnEscape,
|
|
27
|
+
closeOnEscape = _ref$closeOnEscape === void 0 ? true : _ref$closeOnEscape;
|
|
28
|
+
var zIndex = (0, _useOverlayLayer.useOverlayLayer)(open);
|
|
29
|
+
var onClickOutside = (0, _react.useCallback)(function () {
|
|
30
|
+
if (!open) return;
|
|
31
|
+
onClose && onClose();
|
|
32
|
+
}, [open, onClose]);
|
|
33
|
+
var _useOutsideClick = (0, _useOutsideClick2.useOutsideClick)({
|
|
34
|
+
onClickOutside: onClickOutside
|
|
35
|
+
}),
|
|
36
|
+
wrapperRef = _useOutsideClick.wrapperRef;
|
|
37
|
+
(0, _react.useEffect)(function () {
|
|
38
|
+
if (!open || !closeOnEscape) {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
42
|
+
if (event.key === 'Escape') {
|
|
43
|
+
onClose && onClose();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
47
|
+
return function () {
|
|
48
|
+
return window.removeEventListener('keydown', handleKeyDown);
|
|
49
|
+
};
|
|
50
|
+
}, [open, closeOnEscape, onClose]);
|
|
51
|
+
if (!open) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
55
|
+
className: "overlay drawer-overlay",
|
|
56
|
+
style: {
|
|
57
|
+
zIndex: zIndex
|
|
58
|
+
}
|
|
59
|
+
}), /*#__PURE__*/_react["default"].createElement("aside", {
|
|
60
|
+
ref: wrapperRef,
|
|
61
|
+
className: "drawer drawer-".concat(position, " ").concat(className ? className : ''),
|
|
62
|
+
style: {
|
|
63
|
+
width: width,
|
|
64
|
+
height: height,
|
|
65
|
+
zIndex: zIndex + 1
|
|
66
|
+
},
|
|
67
|
+
role: "dialog",
|
|
68
|
+
"aria-modal": "true"
|
|
69
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
70
|
+
className: "drawer-close"
|
|
71
|
+
}, /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
|
|
72
|
+
icon: _freeSolidSvgIcons.faTimes,
|
|
73
|
+
onClick: onClose,
|
|
74
|
+
"aria-expanded": open,
|
|
75
|
+
"aria-label": open ? 'Close drawer' : 'Open drawer'
|
|
76
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
77
|
+
className: "drawer-content"
|
|
78
|
+
}, children)));
|
|
79
|
+
};
|
|
80
|
+
Drawer.propTypes = {
|
|
81
|
+
children: _propTypes["default"].any,
|
|
82
|
+
open: _propTypes["default"].bool,
|
|
83
|
+
position: _propTypes["default"].oneOf(['left', 'right', 'top', 'bottom']),
|
|
84
|
+
width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
85
|
+
height: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
86
|
+
className: _propTypes["default"].string,
|
|
87
|
+
closeOnEscape: _propTypes["default"].bool,
|
|
88
|
+
onClose: _propTypes["default"].func
|
|
89
|
+
};
|
|
90
|
+
var _default = exports["default"] = Drawer;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _Drawer = require("./Drawer");
|
|
7
|
+
Object.keys(_Drawer).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _Drawer[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _Drawer[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -11,8 +11,14 @@ var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
|
11
11
|
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
12
12
|
var _flex = require("../flex");
|
|
13
13
|
var _button = require("../button");
|
|
14
|
+
var _dialog = require("../dialog");
|
|
15
|
+
var _forms = require("../forms");
|
|
16
|
+
var _excluded = ["icon", "title", "onClick", "active"];
|
|
14
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
15
18
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
19
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
20
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
21
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
16
22
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
17
23
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
24
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
@@ -27,6 +33,8 @@ var HTMLEditor = function HTMLEditor(_ref) {
|
|
|
27
33
|
height = _ref$height === void 0 ? 200 : _ref$height,
|
|
28
34
|
onChange = _ref.onChange;
|
|
29
35
|
var editorRef = (0, _react.useRef)(null);
|
|
36
|
+
var selectionRef = (0, _react.useRef)(null);
|
|
37
|
+
var currentLinkRef = (0, _react.useRef)(null);
|
|
30
38
|
var _useState = (0, _react.useState)(false),
|
|
31
39
|
_useState2 = _slicedToArray(_useState, 2),
|
|
32
40
|
isFocuded = _useState2[0],
|
|
@@ -39,7 +47,50 @@ var HTMLEditor = function HTMLEditor(_ref) {
|
|
|
39
47
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
40
48
|
showCode = _useState6[0],
|
|
41
49
|
setShowCode = _useState6[1]; // Nuevo estado
|
|
42
|
-
|
|
50
|
+
var _useState7 = (0, _react.useState)(false),
|
|
51
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
52
|
+
showLinkDialog = _useState8[0],
|
|
53
|
+
setShowLinkDialog = _useState8[1];
|
|
54
|
+
var _useState9 = (0, _react.useState)(false),
|
|
55
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
56
|
+
showTableDialog = _useState0[0],
|
|
57
|
+
setShowTableDialog = _useState0[1];
|
|
58
|
+
var _useState1 = (0, _react.useState)(''),
|
|
59
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
60
|
+
linkUrl = _useState10[0],
|
|
61
|
+
setLinkUrl = _useState10[1];
|
|
62
|
+
var _useState11 = (0, _react.useState)(''),
|
|
63
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
64
|
+
linkText = _useState12[0],
|
|
65
|
+
setLinkText = _useState12[1];
|
|
66
|
+
var _useState13 = (0, _react.useState)(false),
|
|
67
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
68
|
+
openInNewWindow = _useState14[0],
|
|
69
|
+
setOpenInNewWindow = _useState14[1];
|
|
70
|
+
var _useState15 = (0, _react.useState)(2),
|
|
71
|
+
_useState16 = _slicedToArray(_useState15, 2),
|
|
72
|
+
tableRows = _useState16[0],
|
|
73
|
+
setTableRows = _useState16[1];
|
|
74
|
+
var _useState17 = (0, _react.useState)(2),
|
|
75
|
+
_useState18 = _slicedToArray(_useState17, 2),
|
|
76
|
+
tableCols = _useState18[0],
|
|
77
|
+
setTableCols = _useState18[1];
|
|
78
|
+
var _useState19 = (0, _react.useState)({
|
|
79
|
+
bold: false,
|
|
80
|
+
italic: false,
|
|
81
|
+
h1: false,
|
|
82
|
+
h2: false,
|
|
83
|
+
h3: false,
|
|
84
|
+
orderedList: false,
|
|
85
|
+
unorderedList: false,
|
|
86
|
+
link: false
|
|
87
|
+
}),
|
|
88
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
89
|
+
toolbarState = _useState20[0],
|
|
90
|
+
setToolbarState = _useState20[1];
|
|
91
|
+
var stopToolbarMouseDown = function stopToolbarMouseDown(event) {
|
|
92
|
+
event.preventDefault();
|
|
93
|
+
};
|
|
43
94
|
(0, _react.useEffect)(function () {
|
|
44
95
|
if (!showCode && editorRef.current) {
|
|
45
96
|
editorRef.current.innerHTML = html;
|
|
@@ -50,23 +101,400 @@ var HTMLEditor = function HTMLEditor(_ref) {
|
|
|
50
101
|
var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
51
102
|
document.execCommand(command, false, value);
|
|
52
103
|
setHtml(editorRef.current.innerHTML);
|
|
104
|
+
updateToolbarState();
|
|
105
|
+
};
|
|
106
|
+
var normalizeBlockTags = function normalizeBlockTags() {
|
|
107
|
+
if (!editorRef.current) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
var blocks = editorRef.current.querySelectorAll(':scope > div');
|
|
111
|
+
blocks.forEach(function (block) {
|
|
112
|
+
var paragraph = document.createElement('p');
|
|
113
|
+
paragraph.innerHTML = block.innerHTML || '<br>';
|
|
114
|
+
block.replaceWith(paragraph);
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
var buildTableHtml = function buildTableHtml(rows, cols) {
|
|
118
|
+
var width = "".concat(100 / cols, "%");
|
|
119
|
+
var columns = Array.from({
|
|
120
|
+
length: cols
|
|
121
|
+
}, function () {
|
|
122
|
+
return "<col style=\"width: ".concat(width, ";\">");
|
|
123
|
+
}).join('');
|
|
124
|
+
var bodyRows = Array.from({
|
|
125
|
+
length: rows
|
|
126
|
+
}, function () {
|
|
127
|
+
var cells = Array.from({
|
|
128
|
+
length: cols
|
|
129
|
+
}, function () {
|
|
130
|
+
return '<td><br></td>';
|
|
131
|
+
}).join('');
|
|
132
|
+
return "<tr>".concat(cells, "</tr>");
|
|
133
|
+
}).join('');
|
|
134
|
+
return "<table class=\"table expanded\"><colgroup>".concat(columns, "</colgroup><tbody>").concat(bodyRows, "</tbody></table>");
|
|
135
|
+
};
|
|
136
|
+
var _stripBoldFromNode = function stripBoldFromNode(node) {
|
|
137
|
+
var _element$style;
|
|
138
|
+
if (!node || node.nodeType !== Node.ELEMENT_NODE && node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
var children = Array.from(node.childNodes);
|
|
142
|
+
children.forEach(_stripBoldFromNode);
|
|
143
|
+
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
var element = node;
|
|
147
|
+
var tagName = element.tagName;
|
|
148
|
+
if (tagName === 'B' || tagName === 'STRONG') {
|
|
149
|
+
var parent = element.parentNode;
|
|
150
|
+
if (!parent) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
while (element.firstChild) {
|
|
154
|
+
parent.insertBefore(element.firstChild, element);
|
|
155
|
+
}
|
|
156
|
+
parent.removeChild(element);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
var weight = ((_element$style = element.style) === null || _element$style === void 0 ? void 0 : _element$style.fontWeight) || '';
|
|
160
|
+
var numericWeight = Number.parseInt(weight, 10);
|
|
161
|
+
if (weight === 'bold' || weight === 'bolder' || !Number.isNaN(numericWeight) && numericWeight >= 600) {
|
|
162
|
+
var _element$getAttribute;
|
|
163
|
+
element.style.fontWeight = '';
|
|
164
|
+
if (!((_element$getAttribute = element.getAttribute('style')) !== null && _element$getAttribute !== void 0 && _element$getAttribute.trim())) {
|
|
165
|
+
element.removeAttribute('style');
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
var getSelectionRange = function getSelectionRange() {
|
|
170
|
+
var selection = window.getSelection();
|
|
171
|
+
if (!selection || selection.rangeCount === 0) {
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
174
|
+
var range = selection.getRangeAt(0);
|
|
175
|
+
if (!editorRef.current || !editorRef.current.contains(range.commonAncestorContainer)) {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
return range;
|
|
179
|
+
};
|
|
180
|
+
var syncHtml = function syncHtml() {
|
|
181
|
+
if (!editorRef.current) return;
|
|
182
|
+
normalizeBlockTags();
|
|
183
|
+
var value = editorRef.current.innerHTML;
|
|
184
|
+
setHtml(value);
|
|
185
|
+
if (onChange) onChange(value);
|
|
186
|
+
};
|
|
187
|
+
var getBlockElementFromNode = (0, _react.useCallback)(function (node) {
|
|
188
|
+
var currentNode = node;
|
|
189
|
+
while (currentNode && currentNode !== editorRef.current) {
|
|
190
|
+
if (currentNode.nodeType === Node.ELEMENT_NODE) {
|
|
191
|
+
var tagName = currentNode.tagName;
|
|
192
|
+
if (['H1', 'H2', 'H3', 'LI', 'P', 'DIV'].includes(tagName)) {
|
|
193
|
+
return currentNode;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
currentNode = currentNode.parentNode;
|
|
197
|
+
}
|
|
198
|
+
return null;
|
|
199
|
+
}, []);
|
|
200
|
+
var getAnchorElement = (0, _react.useCallback)(function (node) {
|
|
201
|
+
var currentNode = node;
|
|
202
|
+
while (currentNode && currentNode !== editorRef.current) {
|
|
203
|
+
if (currentNode.nodeType === Node.ELEMENT_NODE && currentNode.tagName === 'A') {
|
|
204
|
+
return currentNode;
|
|
205
|
+
}
|
|
206
|
+
currentNode = currentNode.parentNode;
|
|
207
|
+
}
|
|
208
|
+
return null;
|
|
209
|
+
}, []);
|
|
210
|
+
var hasFormattingInNodeTree = (0, _react.useCallback)(function (node, _ref2) {
|
|
211
|
+
var _ref2$tags = _ref2.tags,
|
|
212
|
+
tags = _ref2$tags === void 0 ? [] : _ref2$tags,
|
|
213
|
+
styleCheck = _ref2.styleCheck;
|
|
214
|
+
var currentNode = node;
|
|
215
|
+
while (currentNode && currentNode !== editorRef.current) {
|
|
216
|
+
if (currentNode.nodeType === Node.ELEMENT_NODE) {
|
|
217
|
+
var tagName = currentNode.tagName;
|
|
218
|
+
if (tags.includes(tagName)) {
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
if (styleCheck && styleCheck(currentNode)) {
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
currentNode = currentNode.parentNode;
|
|
226
|
+
}
|
|
227
|
+
return false;
|
|
228
|
+
}, []);
|
|
229
|
+
var getInlineFormatState = (0, _react.useCallback)(function (range, selection) {
|
|
230
|
+
var nodesToCheck = [selection === null || selection === void 0 ? void 0 : selection.anchorNode, range.startContainer, range.endContainer, range.commonAncestorContainer].filter(Boolean);
|
|
231
|
+
var hasBold = nodesToCheck.some(function (node) {
|
|
232
|
+
return hasFormattingInNodeTree(node, {
|
|
233
|
+
tags: ['B', 'STRONG'],
|
|
234
|
+
styleCheck: function styleCheck(element) {
|
|
235
|
+
var _element$style2;
|
|
236
|
+
var weight = ((_element$style2 = element.style) === null || _element$style2 === void 0 ? void 0 : _element$style2.fontWeight) || '';
|
|
237
|
+
if (weight === 'bold' || weight === 'bolder') {
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
var numericWeight = Number.parseInt(weight, 10);
|
|
241
|
+
return !Number.isNaN(numericWeight) && numericWeight >= 600;
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
var hasItalic = nodesToCheck.some(function (node) {
|
|
246
|
+
return hasFormattingInNodeTree(node, {
|
|
247
|
+
tags: ['I', 'EM'],
|
|
248
|
+
styleCheck: function styleCheck(element) {
|
|
249
|
+
var _element$style3;
|
|
250
|
+
return ((_element$style3 = element.style) === null || _element$style3 === void 0 ? void 0 : _element$style3.fontStyle) === 'italic';
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
return {
|
|
255
|
+
bold: hasBold,
|
|
256
|
+
italic: hasItalic
|
|
257
|
+
};
|
|
258
|
+
}, [hasFormattingInNodeTree]);
|
|
259
|
+
var getToolbarState = (0, _react.useCallback)(function () {
|
|
260
|
+
var selection = window.getSelection();
|
|
261
|
+
if (!selection || selection.rangeCount === 0) {
|
|
262
|
+
return {
|
|
263
|
+
bold: false,
|
|
264
|
+
italic: false,
|
|
265
|
+
h1: false,
|
|
266
|
+
h2: false,
|
|
267
|
+
h3: false,
|
|
268
|
+
orderedList: false,
|
|
269
|
+
unorderedList: false,
|
|
270
|
+
link: false
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
var range = selection.getRangeAt(0);
|
|
274
|
+
if (!editorRef.current || !editorRef.current.contains(range.commonAncestorContainer)) {
|
|
275
|
+
return {
|
|
276
|
+
bold: false,
|
|
277
|
+
italic: false,
|
|
278
|
+
h1: false,
|
|
279
|
+
h2: false,
|
|
280
|
+
h3: false,
|
|
281
|
+
orderedList: false,
|
|
282
|
+
unorderedList: false,
|
|
283
|
+
link: false
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
var anchorNode = selection.anchorNode || range.startContainer;
|
|
287
|
+
var blockElement = getBlockElementFromNode(anchorNode);
|
|
288
|
+
var anchorElement = getAnchorElement(anchorNode) || getAnchorElement(range.commonAncestorContainer);
|
|
289
|
+
var listElement = (blockElement === null || blockElement === void 0 ? void 0 : blockElement.tagName) === 'LI' ? blockElement.parentElement : null;
|
|
290
|
+
var inlineFormatState = getInlineFormatState(range, selection);
|
|
291
|
+
return {
|
|
292
|
+
bold: document.queryCommandState('bold') || inlineFormatState.bold,
|
|
293
|
+
italic: document.queryCommandState('italic') || inlineFormatState.italic,
|
|
294
|
+
h1: (blockElement === null || blockElement === void 0 ? void 0 : blockElement.tagName) === 'H1',
|
|
295
|
+
h2: (blockElement === null || blockElement === void 0 ? void 0 : blockElement.tagName) === 'H2',
|
|
296
|
+
h3: (blockElement === null || blockElement === void 0 ? void 0 : blockElement.tagName) === 'H3',
|
|
297
|
+
orderedList: (listElement === null || listElement === void 0 ? void 0 : listElement.tagName) === 'OL' || document.queryCommandState('insertOrderedList'),
|
|
298
|
+
unorderedList: (listElement === null || listElement === void 0 ? void 0 : listElement.tagName) === 'UL' || document.queryCommandState('insertUnorderedList'),
|
|
299
|
+
link: Boolean(anchorElement)
|
|
300
|
+
};
|
|
301
|
+
}, [getAnchorElement, getBlockElementFromNode, getInlineFormatState]);
|
|
302
|
+
var updateToolbarState = (0, _react.useCallback)(function () {
|
|
303
|
+
setToolbarState(getToolbarState());
|
|
304
|
+
}, [getToolbarState]);
|
|
305
|
+
var restoreSelection = function restoreSelection() {
|
|
306
|
+
var selection = window.getSelection();
|
|
307
|
+
var savedRange = selectionRef.current;
|
|
308
|
+
if (!selection || !savedRange) {
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
selection.removeAllRanges();
|
|
312
|
+
selection.addRange(savedRange);
|
|
313
|
+
return savedRange;
|
|
53
314
|
};
|
|
54
315
|
var handleCreateLink = function handleCreateLink() {
|
|
55
|
-
var
|
|
56
|
-
if (
|
|
57
|
-
|
|
316
|
+
var range = getSelectionRange();
|
|
317
|
+
if (!range) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
var selection = window.getSelection();
|
|
321
|
+
var selectedText = (selection === null || selection === void 0 ? void 0 : selection.toString().trim()) || '';
|
|
322
|
+
var anchor = getAnchorElement(range.startContainer) || getAnchorElement(range.endContainer);
|
|
323
|
+
selectionRef.current = range.cloneRange();
|
|
324
|
+
currentLinkRef.current = anchor;
|
|
325
|
+
setLinkUrl((anchor === null || anchor === void 0 ? void 0 : anchor.getAttribute('href')) || '');
|
|
326
|
+
setLinkText((anchor === null || anchor === void 0 ? void 0 : anchor.textContent) || selectedText);
|
|
327
|
+
setOpenInNewWindow((anchor === null || anchor === void 0 ? void 0 : anchor.target) === '_blank');
|
|
328
|
+
setShowLinkDialog(true);
|
|
329
|
+
};
|
|
330
|
+
var handleCreateTable = function handleCreateTable() {
|
|
331
|
+
var range = getSelectionRange();
|
|
332
|
+
if (!range) {
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
selectionRef.current = range.cloneRange();
|
|
336
|
+
setTableRows(2);
|
|
337
|
+
setTableCols(2);
|
|
338
|
+
setShowTableDialog(true);
|
|
339
|
+
};
|
|
340
|
+
var toggleHeading = function toggleHeading(tagName) {
|
|
341
|
+
var selection = window.getSelection();
|
|
342
|
+
if (!selection || selection.rangeCount === 0) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
var range = selection.getRangeAt(0);
|
|
346
|
+
if (!editorRef.current || !editorRef.current.contains(range.commonAncestorContainer)) {
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
var currentBlock = getBlockElementFromNode(selection.anchorNode || range.startContainer);
|
|
350
|
+
var nextBlock = (currentBlock === null || currentBlock === void 0 ? void 0 : currentBlock.tagName) === tagName.toUpperCase() ? 'p' : tagName;
|
|
351
|
+
document.execCommand('formatBlock', false, "<".concat(nextBlock, ">"));
|
|
352
|
+
setHtml(editorRef.current.innerHTML);
|
|
353
|
+
updateToolbarState();
|
|
354
|
+
};
|
|
355
|
+
var toggleBold = function toggleBold() {
|
|
356
|
+
var range = getSelectionRange();
|
|
357
|
+
if (!range) {
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// If bold is not currently active (or caret only), keep native behavior.
|
|
362
|
+
if (!toolbarState.bold || range.collapsed) {
|
|
363
|
+
execCommand('bold');
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
// Fallback: remove only bold markup from selected fragment.
|
|
368
|
+
var fragment = range.extractContents();
|
|
369
|
+
var insertedNodes = Array.from(fragment.childNodes);
|
|
370
|
+
_stripBoldFromNode(fragment);
|
|
371
|
+
range.insertNode(fragment);
|
|
372
|
+
if (insertedNodes.length > 0) {
|
|
373
|
+
var selection = window.getSelection();
|
|
374
|
+
var newRange = document.createRange();
|
|
375
|
+
newRange.setStartBefore(insertedNodes[0]);
|
|
376
|
+
newRange.setEndAfter(insertedNodes[insertedNodes.length - 1]);
|
|
377
|
+
selection === null || selection === void 0 || selection.removeAllRanges();
|
|
378
|
+
selection === null || selection === void 0 || selection.addRange(newRange);
|
|
379
|
+
}
|
|
380
|
+
syncHtml();
|
|
381
|
+
updateToolbarState();
|
|
382
|
+
};
|
|
383
|
+
var closeLinkDialog = function closeLinkDialog() {
|
|
384
|
+
setShowLinkDialog(false);
|
|
385
|
+
selectionRef.current = null;
|
|
386
|
+
currentLinkRef.current = null;
|
|
387
|
+
};
|
|
388
|
+
var closeTableDialog = function closeTableDialog() {
|
|
389
|
+
setShowTableDialog(false);
|
|
390
|
+
selectionRef.current = null;
|
|
391
|
+
};
|
|
392
|
+
var applyLink = function applyLink() {
|
|
393
|
+
var url = linkUrl.trim();
|
|
394
|
+
var text = linkText.trim();
|
|
395
|
+
if (!url) {
|
|
396
|
+
return;
|
|
397
|
+
}
|
|
398
|
+
var savedRange = restoreSelection();
|
|
399
|
+
if (!savedRange || !editorRef.current) {
|
|
400
|
+
closeLinkDialog();
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
403
|
+
var selection = window.getSelection();
|
|
404
|
+
var selectedText = (selection === null || selection === void 0 ? void 0 : selection.toString().trim()) || '';
|
|
405
|
+
var resolvedText = text || selectedText || url;
|
|
406
|
+
var existingLink = currentLinkRef.current && editorRef.current.contains(currentLinkRef.current) ? currentLinkRef.current : null;
|
|
407
|
+
if (existingLink) {
|
|
408
|
+
existingLink.setAttribute('href', url);
|
|
409
|
+
if (openInNewWindow) {
|
|
410
|
+
existingLink.setAttribute('target', '_blank');
|
|
411
|
+
existingLink.setAttribute('rel', 'noopener noreferrer');
|
|
412
|
+
} else {
|
|
413
|
+
existingLink.removeAttribute('target');
|
|
414
|
+
existingLink.removeAttribute('rel');
|
|
415
|
+
}
|
|
416
|
+
existingLink.textContent = resolvedText;
|
|
417
|
+
} else {
|
|
418
|
+
var link = document.createElement('a');
|
|
419
|
+
link.setAttribute('href', url);
|
|
420
|
+
if (openInNewWindow) {
|
|
421
|
+
link.setAttribute('target', '_blank');
|
|
422
|
+
link.setAttribute('rel', 'noopener noreferrer');
|
|
423
|
+
}
|
|
424
|
+
link.textContent = resolvedText;
|
|
425
|
+
if (!savedRange.collapsed) {
|
|
426
|
+
savedRange.deleteContents();
|
|
427
|
+
}
|
|
428
|
+
savedRange.insertNode(link);
|
|
429
|
+
savedRange.setStartAfter(link);
|
|
430
|
+
savedRange.collapse(true);
|
|
431
|
+
selection.removeAllRanges();
|
|
432
|
+
selection.addRange(savedRange);
|
|
58
433
|
}
|
|
434
|
+
syncHtml();
|
|
435
|
+
closeLinkDialog();
|
|
436
|
+
updateToolbarState();
|
|
437
|
+
};
|
|
438
|
+
var applyTable = function applyTable() {
|
|
439
|
+
var rows = Math.max(1, Number(tableRows) || 1);
|
|
440
|
+
var cols = Math.max(1, Number(tableCols) || 1);
|
|
441
|
+
var savedRange = restoreSelection();
|
|
442
|
+
if (!savedRange || !editorRef.current) {
|
|
443
|
+
closeTableDialog();
|
|
444
|
+
return;
|
|
445
|
+
}
|
|
446
|
+
var tableHtml = buildTableHtml(rows, cols);
|
|
447
|
+
document.execCommand('insertHTML', false, tableHtml);
|
|
448
|
+
normalizeBlockTags();
|
|
449
|
+
syncHtml();
|
|
450
|
+
closeTableDialog();
|
|
451
|
+
updateToolbarState();
|
|
59
452
|
};
|
|
60
453
|
var handleInput = function handleInput() {
|
|
454
|
+
normalizeBlockTags();
|
|
61
455
|
var value = editorRef.current.innerHTML;
|
|
62
456
|
setHtml(value);
|
|
63
457
|
if (onChange) onChange(value);
|
|
458
|
+
updateToolbarState();
|
|
459
|
+
};
|
|
460
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
461
|
+
if (event.key !== 'Enter') {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
event.preventDefault();
|
|
465
|
+
document.execCommand('insertHTML', false, '<p><br></p>');
|
|
466
|
+
normalizeBlockTags();
|
|
467
|
+
if (editorRef.current) {
|
|
468
|
+
setHtml(editorRef.current.innerHTML);
|
|
469
|
+
if (onChange) onChange(editorRef.current.innerHTML);
|
|
470
|
+
}
|
|
471
|
+
updateToolbarState();
|
|
64
472
|
};
|
|
65
473
|
var handleHtmlChange = function handleHtmlChange(e) {
|
|
66
474
|
setHtml(e.target.value);
|
|
67
475
|
editorRef.current.innerHTML = e.target.value;
|
|
68
476
|
if (onChange) onChange(e.target.value);
|
|
69
477
|
};
|
|
478
|
+
(0, _react.useEffect)(function () {
|
|
479
|
+
var editorElement = editorRef.current;
|
|
480
|
+
var handleSelectionChange = function handleSelectionChange() {
|
|
481
|
+
updateToolbarState();
|
|
482
|
+
};
|
|
483
|
+
var handleEditorMouseUp = function handleEditorMouseUp() {
|
|
484
|
+
updateToolbarState();
|
|
485
|
+
};
|
|
486
|
+
var handleEditorKeyUp = function handleEditorKeyUp() {
|
|
487
|
+
updateToolbarState();
|
|
488
|
+
};
|
|
489
|
+
document.addEventListener('selectionchange', handleSelectionChange);
|
|
490
|
+
editorElement === null || editorElement === void 0 || editorElement.addEventListener('mouseup', handleEditorMouseUp);
|
|
491
|
+
editorElement === null || editorElement === void 0 || editorElement.addEventListener('keyup', handleEditorKeyUp);
|
|
492
|
+
return function () {
|
|
493
|
+
document.removeEventListener('selectionchange', handleSelectionChange);
|
|
494
|
+
editorElement === null || editorElement === void 0 || editorElement.removeEventListener('mouseup', handleEditorMouseUp);
|
|
495
|
+
editorElement === null || editorElement === void 0 || editorElement.removeEventListener('keyup', handleEditorKeyUp);
|
|
496
|
+
};
|
|
497
|
+
}, [updateToolbarState]);
|
|
70
498
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
71
499
|
className: "bordered rounded \n ".concat(isFocuded ? 'input-focus' : '', "\n ").concat(error ? 'input-alert' : '', "\n "),
|
|
72
500
|
style: {
|
|
@@ -79,60 +507,82 @@ var HTMLEditor = function HTMLEditor(_ref) {
|
|
|
79
507
|
gap: 5
|
|
80
508
|
}, /*#__PURE__*/_react["default"].createElement(CommandButton, {
|
|
81
509
|
icon: _freeSolidSvgIcons.faBold,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
510
|
+
active: toolbarState.bold,
|
|
511
|
+
onClick: toggleBold,
|
|
512
|
+
onMouseDown: stopToolbarMouseDown
|
|
85
513
|
}), /*#__PURE__*/_react["default"].createElement(CommandButton, {
|
|
86
514
|
icon: _freeSolidSvgIcons.faItalic,
|
|
515
|
+
active: toolbarState.italic,
|
|
87
516
|
onClick: function onClick() {
|
|
88
517
|
return execCommand('italic');
|
|
89
|
-
}
|
|
518
|
+
},
|
|
519
|
+
onMouseDown: stopToolbarMouseDown
|
|
90
520
|
}), /*#__PURE__*/_react["default"].createElement(_flex.FlexItem, null, /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
91
521
|
size: "small",
|
|
92
522
|
decoration: "link",
|
|
523
|
+
className: toolbarState.h1 ? 'active' : '',
|
|
524
|
+
onMouseDown: stopToolbarMouseDown,
|
|
93
525
|
onClick: function onClick() {
|
|
94
|
-
return
|
|
526
|
+
return toggleHeading('h1');
|
|
95
527
|
}
|
|
96
528
|
}, "H1")), /*#__PURE__*/_react["default"].createElement(_flex.FlexItem, null, /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
97
529
|
size: "small",
|
|
98
530
|
decoration: "link",
|
|
531
|
+
className: toolbarState.h2 ? 'active' : '',
|
|
532
|
+
onMouseDown: stopToolbarMouseDown,
|
|
99
533
|
onClick: function onClick() {
|
|
100
|
-
return
|
|
534
|
+
return toggleHeading('h2');
|
|
101
535
|
}
|
|
102
536
|
}, "H2")), /*#__PURE__*/_react["default"].createElement(_flex.FlexItem, null, /*#__PURE__*/_react["default"].createElement(_button.Button, {
|
|
103
537
|
size: "small",
|
|
104
538
|
decoration: "link",
|
|
539
|
+
className: toolbarState.h3 ? 'active' : '',
|
|
540
|
+
onMouseDown: stopToolbarMouseDown,
|
|
105
541
|
onClick: function onClick() {
|
|
106
|
-
return
|
|
542
|
+
return toggleHeading('h3');
|
|
107
543
|
}
|
|
108
544
|
}, "H3")), /*#__PURE__*/_react["default"].createElement(CommandButton, {
|
|
109
545
|
icon: _freeSolidSvgIcons.faListOl,
|
|
546
|
+
active: toolbarState.orderedList,
|
|
110
547
|
onClick: function onClick() {
|
|
111
548
|
return execCommand('insertOrderedList');
|
|
112
549
|
},
|
|
550
|
+
onMouseDown: stopToolbarMouseDown,
|
|
113
551
|
title: "Lista ordenada"
|
|
114
552
|
}), /*#__PURE__*/_react["default"].createElement(CommandButton, {
|
|
115
553
|
icon: _freeSolidSvgIcons.faListUl,
|
|
554
|
+
active: toolbarState.unorderedList,
|
|
116
555
|
onClick: function onClick() {
|
|
117
556
|
return execCommand('insertUnorderedList');
|
|
118
557
|
},
|
|
558
|
+
onMouseDown: stopToolbarMouseDown,
|
|
119
559
|
title: "Lista desordenada"
|
|
120
560
|
}), /*#__PURE__*/_react["default"].createElement(CommandSeparator, null), /*#__PURE__*/_react["default"].createElement(CommandButton, {
|
|
121
561
|
icon: _freeSolidSvgIcons.faLink,
|
|
562
|
+
active: toolbarState.link,
|
|
122
563
|
onClick: handleCreateLink,
|
|
564
|
+
onMouseDown: stopToolbarMouseDown,
|
|
123
565
|
title: "Agregar enlace"
|
|
124
566
|
}), /*#__PURE__*/_react["default"].createElement(CommandButton, {
|
|
125
567
|
icon: _freeSolidSvgIcons.faUnlink,
|
|
126
568
|
onClick: function onClick() {
|
|
127
569
|
return execCommand('unlink');
|
|
128
570
|
},
|
|
571
|
+
onMouseDown: stopToolbarMouseDown,
|
|
129
572
|
title: "Quitar enlace"
|
|
573
|
+
}), /*#__PURE__*/_react["default"].createElement(CommandSeparator, null), /*#__PURE__*/_react["default"].createElement(CommandButton, {
|
|
574
|
+
icon: _freeSolidSvgIcons.faTable,
|
|
575
|
+
onClick: handleCreateTable,
|
|
576
|
+
onMouseDown: stopToolbarMouseDown,
|
|
577
|
+
title: "Insertar tabla"
|
|
130
578
|
}), /*#__PURE__*/_react["default"].createElement(CommandSeparator, null), /*#__PURE__*/_react["default"].createElement(CommandButton, {
|
|
131
579
|
icon: _freeSolidSvgIcons.faTextSlash,
|
|
132
580
|
onClick: function onClick() {
|
|
133
581
|
return execCommand('removeFormat');
|
|
134
|
-
}
|
|
582
|
+
},
|
|
583
|
+
onMouseDown: stopToolbarMouseDown
|
|
135
584
|
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
585
|
+
className: "html-editor",
|
|
136
586
|
ref: editorRef,
|
|
137
587
|
contentEditable: true,
|
|
138
588
|
style: {
|
|
@@ -141,6 +591,7 @@ var HTMLEditor = function HTMLEditor(_ref) {
|
|
|
141
591
|
outline: 'none'
|
|
142
592
|
},
|
|
143
593
|
onInput: handleInput,
|
|
594
|
+
onKeyDown: handleKeyDown,
|
|
144
595
|
onFocus: function onFocus() {
|
|
145
596
|
return setIsFocused(true);
|
|
146
597
|
},
|
|
@@ -177,7 +628,59 @@ var HTMLEditor = function HTMLEditor(_ref) {
|
|
|
177
628
|
title: showCode ? 'Mostrar editor visual' : 'Mostrar código HTML'
|
|
178
629
|
}))), error && /*#__PURE__*/_react["default"].createElement("div", {
|
|
179
630
|
className: "input-label-alert"
|
|
180
|
-
}, error)
|
|
631
|
+
}, error), /*#__PURE__*/_react["default"].createElement(_dialog.ConfirmationDialog, {
|
|
632
|
+
open: showLinkDialog,
|
|
633
|
+
title: currentLinkRef.current ? 'Editar enlace' : 'Agregar enlace',
|
|
634
|
+
icon: _freeSolidSvgIcons.faLink,
|
|
635
|
+
color: "primary",
|
|
636
|
+
textConfirm: "Guardar",
|
|
637
|
+
textCancel: "Cancelar",
|
|
638
|
+
onClose: closeLinkDialog,
|
|
639
|
+
onConfirm: applyLink
|
|
640
|
+
}, /*#__PURE__*/_react["default"].createElement(_forms.Input, {
|
|
641
|
+
label: "URL",
|
|
642
|
+
value: linkUrl,
|
|
643
|
+
onChange: function onChange(event) {
|
|
644
|
+
return setLinkUrl(event.target.value);
|
|
645
|
+
}
|
|
646
|
+
}), /*#__PURE__*/_react["default"].createElement(_forms.Input, {
|
|
647
|
+
label: "Texto",
|
|
648
|
+
value: linkText,
|
|
649
|
+
onChange: function onChange(event) {
|
|
650
|
+
return setLinkText(event.target.value);
|
|
651
|
+
}
|
|
652
|
+
}), /*#__PURE__*/_react["default"].createElement(_forms.Switch, {
|
|
653
|
+
label: "Abrir en nueva ventana",
|
|
654
|
+
checked: openInNewWindow,
|
|
655
|
+
onChange: function onChange(event) {
|
|
656
|
+
return setOpenInNewWindow(event.target.checked);
|
|
657
|
+
}
|
|
658
|
+
})), /*#__PURE__*/_react["default"].createElement(_dialog.ConfirmationDialog, {
|
|
659
|
+
open: showTableDialog,
|
|
660
|
+
title: "Insertar tabla",
|
|
661
|
+
icon: _freeSolidSvgIcons.faTable,
|
|
662
|
+
color: "primary",
|
|
663
|
+
textConfirm: "Insertar",
|
|
664
|
+
textCancel: "Cancelar",
|
|
665
|
+
onClose: closeTableDialog,
|
|
666
|
+
onConfirm: applyTable
|
|
667
|
+
}, /*#__PURE__*/_react["default"].createElement(_forms.Input, {
|
|
668
|
+
type: "number",
|
|
669
|
+
label: "Filas",
|
|
670
|
+
min: 1,
|
|
671
|
+
value: tableRows,
|
|
672
|
+
onChange: function onChange(event) {
|
|
673
|
+
return setTableRows(event.target.value);
|
|
674
|
+
}
|
|
675
|
+
}), /*#__PURE__*/_react["default"].createElement(_forms.Input, {
|
|
676
|
+
type: "number",
|
|
677
|
+
label: "Columnas",
|
|
678
|
+
min: 1,
|
|
679
|
+
value: tableCols,
|
|
680
|
+
onChange: function onChange(event) {
|
|
681
|
+
return setTableCols(event.target.value);
|
|
682
|
+
}
|
|
683
|
+
})));
|
|
181
684
|
};
|
|
182
685
|
var CommandSeparator = function CommandSeparator() {
|
|
183
686
|
return /*#__PURE__*/_react["default"].createElement(_flex.FlexItem, null, /*#__PURE__*/_react["default"].createElement("span", {
|
|
@@ -187,16 +690,20 @@ var CommandSeparator = function CommandSeparator() {
|
|
|
187
690
|
className: "light-gray"
|
|
188
691
|
}, "|"));
|
|
189
692
|
};
|
|
190
|
-
var CommandButton = function CommandButton(
|
|
191
|
-
var icon =
|
|
192
|
-
title =
|
|
193
|
-
onClick =
|
|
194
|
-
|
|
693
|
+
var CommandButton = function CommandButton(_ref3) {
|
|
694
|
+
var icon = _ref3.icon,
|
|
695
|
+
title = _ref3.title,
|
|
696
|
+
onClick = _ref3.onClick,
|
|
697
|
+
_ref3$active = _ref3.active,
|
|
698
|
+
active = _ref3$active === void 0 ? false : _ref3$active,
|
|
699
|
+
props = _objectWithoutProperties(_ref3, _excluded);
|
|
700
|
+
return /*#__PURE__*/_react["default"].createElement(_flex.FlexItem, null, /*#__PURE__*/_react["default"].createElement(_button.Button, _extends({
|
|
195
701
|
size: "small",
|
|
196
702
|
decoration: "link",
|
|
703
|
+
className: active ? 'active' : '',
|
|
197
704
|
onClick: onClick,
|
|
198
705
|
title: title
|
|
199
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
706
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_reactFontawesome.FontAwesomeIcon, {
|
|
200
707
|
icon: icon
|
|
201
708
|
})));
|
|
202
709
|
};
|
package/components/index.js
CHANGED
|
@@ -58,6 +58,17 @@ Object.keys(_dialog).forEach(function (key) {
|
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
|
+
var _drawer = require("./drawer");
|
|
62
|
+
Object.keys(_drawer).forEach(function (key) {
|
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
|
64
|
+
if (key in exports && exports[key] === _drawer[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function get() {
|
|
68
|
+
return _drawer[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
61
72
|
var _editable = require("./editable");
|
|
62
73
|
Object.keys(_editable).forEach(function (key) {
|
|
63
74
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.Skeleton = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
var _excluded = ["width", "height"];
|
|
9
|
+
var _excluded = ["width", "height", "spacing"];
|
|
10
10
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
11
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
12
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
@@ -14,9 +14,11 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
|
|
|
14
14
|
var Skeleton = exports.Skeleton = function Skeleton(_ref) {
|
|
15
15
|
var width = _ref.width,
|
|
16
16
|
height = _ref.height,
|
|
17
|
+
_ref$spacing = _ref.spacing,
|
|
18
|
+
spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing,
|
|
17
19
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
18
20
|
return /*#__PURE__*/_react["default"].createElement("div", _extends({
|
|
19
|
-
className: "skeleton blink-soft",
|
|
21
|
+
className: "skeleton blink-soft spacing-".concat(spacing),
|
|
20
22
|
style: {
|
|
21
23
|
width: width,
|
|
22
24
|
height: height
|
|
@@ -25,5 +27,6 @@ var Skeleton = exports.Skeleton = function Skeleton(_ref) {
|
|
|
25
27
|
};
|
|
26
28
|
Skeleton.propTypes = {
|
|
27
29
|
width: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
|
|
28
|
-
height: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string])
|
|
30
|
+
height: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
|
|
31
|
+
spacing: _propTypes["default"].oneOf(['none', 'compact', 'default', 'plenty'])
|
|
29
32
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useOverlayLayer = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
9
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
11
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
12
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
13
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
14
|
+
var BASE_Z_INDEX = 10000;
|
|
15
|
+
var nextZIndex = BASE_Z_INDEX;
|
|
16
|
+
var useOverlayLayer = exports.useOverlayLayer = function useOverlayLayer(open) {
|
|
17
|
+
var _useState = (0, _react.useState)(BASE_Z_INDEX),
|
|
18
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
19
|
+
zIndex = _useState2[0],
|
|
20
|
+
setZIndex = _useState2[1];
|
|
21
|
+
(0, _react.useLayoutEffect)(function () {
|
|
22
|
+
if (!open) return;
|
|
23
|
+
setZIndex(nextZIndex);
|
|
24
|
+
nextZIndex += 2;
|
|
25
|
+
}, [open]);
|
|
26
|
+
return zIndex;
|
|
27
|
+
};
|
package/package.json
CHANGED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = exports.NestedOverlays = exports.DrawerDefault = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _components = require("../../components");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
11
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
12
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
13
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
14
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
15
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
16
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
17
|
+
var _default = exports["default"] = {
|
|
18
|
+
title: 'Drawer/Drawer',
|
|
19
|
+
component: _components.Drawer,
|
|
20
|
+
parameters: {
|
|
21
|
+
layout: 'centered'
|
|
22
|
+
},
|
|
23
|
+
tags: ['autodocs']
|
|
24
|
+
};
|
|
25
|
+
var DrawerDefault = exports.DrawerDefault = {
|
|
26
|
+
args: {
|
|
27
|
+
open: true,
|
|
28
|
+
position: 'right'
|
|
29
|
+
},
|
|
30
|
+
render: function render(args) {
|
|
31
|
+
return /*#__PURE__*/_react["default"].createElement(_components.Drawer, args, "Hola mundo");
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
var NestedOverlays = exports.NestedOverlays = {
|
|
35
|
+
render: function render() {
|
|
36
|
+
var _useState = (0, _react.useState)(false),
|
|
37
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
38
|
+
drawerOpen = _useState2[0],
|
|
39
|
+
setDrawerOpen = _useState2[1];
|
|
40
|
+
var _useState3 = (0, _react.useState)(false),
|
|
41
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
42
|
+
dialogOpen = _useState4[0],
|
|
43
|
+
setDialogOpen = _useState4[1];
|
|
44
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_components.Button, {
|
|
45
|
+
onClick: function onClick() {
|
|
46
|
+
return setDialogOpen(true);
|
|
47
|
+
}
|
|
48
|
+
}, "Open dialog"), /*#__PURE__*/_react["default"].createElement(_components.Button, {
|
|
49
|
+
onClick: function onClick() {
|
|
50
|
+
return setDrawerOpen(true);
|
|
51
|
+
}
|
|
52
|
+
}, "Open drawer"), /*#__PURE__*/_react["default"].createElement(_components.Dialog, {
|
|
53
|
+
open: dialogOpen,
|
|
54
|
+
onClose: function onClose() {
|
|
55
|
+
return setDialogOpen(false);
|
|
56
|
+
}
|
|
57
|
+
}, /*#__PURE__*/_react["default"].createElement(_components.DialogTitle, null, "Dialog"), /*#__PURE__*/_react["default"].createElement(_components.DialogContent, null, /*#__PURE__*/_react["default"].createElement(_components.Button, {
|
|
58
|
+
onClick: function onClick() {
|
|
59
|
+
return setDrawerOpen(true);
|
|
60
|
+
}
|
|
61
|
+
}, "Open drawer"))), /*#__PURE__*/_react["default"].createElement(_components.Drawer, {
|
|
62
|
+
open: drawerOpen,
|
|
63
|
+
onClose: function onClose() {
|
|
64
|
+
return setDrawerOpen(false);
|
|
65
|
+
}
|
|
66
|
+
}, /*#__PURE__*/_react["default"].createElement(_components.Button, {
|
|
67
|
+
onClick: function onClick() {
|
|
68
|
+
return setDialogOpen(true);
|
|
69
|
+
}
|
|
70
|
+
}, "Open dialog")));
|
|
71
|
+
}
|
|
72
|
+
};
|
package/stories/utils/Element.js
CHANGED
|
@@ -3,13 +3,25 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports
|
|
6
|
+
exports.Element = void 0;
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _excluded = ["className", "main", "rounded"];
|
|
8
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
10
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
10
|
-
var
|
|
11
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
12
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
13
|
+
var Element = exports.Element = function Element(_ref) {
|
|
14
|
+
var _ref$className = _ref.className,
|
|
15
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
16
|
+
_ref$main = _ref.main,
|
|
17
|
+
main = _ref$main === void 0 ? true : _ref$main,
|
|
18
|
+
_ref$rounded = _ref.rounded,
|
|
19
|
+
rounded = _ref$rounded === void 0 ? true : _ref$rounded,
|
|
20
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
11
21
|
return /*#__PURE__*/_react["default"].createElement("div", _extends({
|
|
12
|
-
className: "
|
|
22
|
+
className: "".concat(className, " content\n ").concat(rounded ? ' rounded' : ''),
|
|
23
|
+
style: {
|
|
24
|
+
backgroundColor: main ? '#c2f0ff' : '#DDD'
|
|
25
|
+
}
|
|
13
26
|
}, props), "Any Element");
|
|
14
|
-
};
|
|
15
|
-
var _default = exports["default"] = Element;
|
|
27
|
+
};
|
|
@@ -10,6 +10,7 @@ var _Expandable = require("../../components/expandable/Expandable");
|
|
|
10
10
|
var _Separator = require("../../components/util/Separator");
|
|
11
11
|
var _components = require("../../components");
|
|
12
12
|
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
13
|
+
var _Element = require("./Element");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
15
|
var _default = exports["default"] = {
|
|
15
16
|
title: 'Tokens/Borders',
|
|
@@ -30,12 +31,9 @@ var Borders = exports.Borders = {
|
|
|
30
31
|
},
|
|
31
32
|
render: function render(_ref) {
|
|
32
33
|
var border = _ref.border;
|
|
33
|
-
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(
|
|
34
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Element.Element, {
|
|
34
35
|
className: "".concat(border, " margin-bottom"),
|
|
35
|
-
|
|
36
|
-
padding: '15px',
|
|
37
|
-
backgroundColor: '#ccffc1'
|
|
38
|
-
}
|
|
36
|
+
rounded: false
|
|
39
37
|
}, "Some content here"), /*#__PURE__*/_react["default"].createElement("div", null, "Use the class ", /*#__PURE__*/_react["default"].createElement("code", null, ".", border), " to apply this border."));
|
|
40
38
|
}
|
|
41
39
|
};
|
|
@@ -10,7 +10,19 @@ var _Expandable = require("../../components/expandable/Expandable");
|
|
|
10
10
|
var _Separator = require("../../components/util/Separator");
|
|
11
11
|
var _components = require("../../components");
|
|
12
12
|
var _reactFontawesome = require("@fortawesome/react-fontawesome");
|
|
13
|
+
var _Element = require("./Element");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
15
|
+
// const Element = ({ className = '', ...props }) => {
|
|
16
|
+
// return (
|
|
17
|
+
// <div
|
|
18
|
+
// className={`${className} content rounded`}
|
|
19
|
+
// style={{ backgroundColor: '#DDD' }}
|
|
20
|
+
// {...props}
|
|
21
|
+
// >
|
|
22
|
+
// Any Element
|
|
23
|
+
// </div>
|
|
24
|
+
// );
|
|
25
|
+
// };
|
|
14
26
|
var _default = exports["default"] = {
|
|
15
27
|
title: 'Tokens/Margins',
|
|
16
28
|
// component: Tokens,
|
|
@@ -30,22 +42,12 @@ var Margins = exports.Margins = {
|
|
|
30
42
|
},
|
|
31
43
|
render: function render(_ref) {
|
|
32
44
|
var margin = _ref.margin;
|
|
33
|
-
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
className: "".concat(margin),
|
|
40
|
-
style: {
|
|
41
|
-
padding: '15px',
|
|
42
|
-
backgroundColor: '#ccffc1'
|
|
43
|
-
}
|
|
44
|
-
}, "This element will change its margin based on the selected option. ", /*#__PURE__*/_react["default"].createElement("br", null), "Use the class ", /*#__PURE__*/_react["default"].createElement("code", null, ".", margin), " to apply this margin."), /*#__PURE__*/_react["default"].createElement("div", {
|
|
45
|
-
style: {
|
|
46
|
-
padding: '15px',
|
|
47
|
-
backgroundColor: '#F5F5F5'
|
|
48
|
-
}
|
|
45
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Element.Element, {
|
|
46
|
+
main: false
|
|
47
|
+
}, "Some content here"), /*#__PURE__*/_react["default"].createElement(_Element.Element, {
|
|
48
|
+
className: "".concat(margin)
|
|
49
|
+
}, "This element will change its margin based on the selected option. ", /*#__PURE__*/_react["default"].createElement("br", null), "Use the class ", /*#__PURE__*/_react["default"].createElement("code", null, ".", margin), " to apply this margin."), /*#__PURE__*/_react["default"].createElement(_Element.Element, {
|
|
50
|
+
main: false
|
|
49
51
|
}, "Some content here"));
|
|
50
52
|
}
|
|
51
53
|
};
|