prlg-ui 1.0.11 → 1.0.13
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/dist/index.cjs.js +10 -0
- package/dist/index.d.ts +18 -17
- package/dist/{my-lib.es.js → index.es.js} +985 -902
- package/dist/prlg-ui.css +1 -0
- package/dist/scss/colors.scss +134 -0
- package/dist/scss/fonts.scss +3 -0
- package/dist/scss/main.scss +36 -0
- package/dist/scss/mixins.scss +163 -0
- package/dist/scss/reset.scss +51 -0
- package/dist/scss/root-vars.scss +4 -0
- package/dist/useBodyScroll.util-BgQeA8Dg.js +82 -0
- package/dist/useBodyScroll.util-D-eNxODy.cjs +1 -0
- package/dist/utils/Portal/Portal.vue +27 -0
- package/dist/utils/Portal/index.ts +3 -0
- package/dist/utils/Portal.vue +27 -0
- package/dist/utils/date.util.ts +29 -0
- package/dist/utils/dayjs.util.ts +26 -0
- package/dist/utils/eventBus.util.ts +41 -0
- package/dist/utils/index.ts +3 -0
- package/dist/utils/isClient.util.ts +3 -0
- package/dist/utils/onClickOutside.util.ts +57 -0
- package/dist/utils/price.util.ts +21 -0
- package/dist/utils/useBodyScroll.util.ts +33 -0
- package/dist/utils/utils.cjs.js +1 -0
- package/dist/utils/utils.es.js +497 -0
- package/dist/utils.d.ts +90 -0
- package/package.json +46 -47
- package/dist/fonts/Roboto/Roboto-Black.woff +0 -0
- package/dist/fonts/Roboto/Roboto-Black.woff2 +0 -0
- package/dist/fonts/Roboto/Roboto-Bold.woff +0 -0
- package/dist/fonts/Roboto/Roboto-Bold.woff2 +0 -0
- package/dist/fonts/Roboto/Roboto-ExtraBold.woff +0 -0
- package/dist/fonts/Roboto/Roboto-ExtraBold.woff2 +0 -0
- package/dist/fonts/Roboto/Roboto-ExtraLight.woff +0 -0
- package/dist/fonts/Roboto/Roboto-ExtraLight.woff2 +0 -0
- package/dist/fonts/Roboto/Roboto-Light.woff +0 -0
- package/dist/fonts/Roboto/Roboto-Light.woff2 +0 -0
- package/dist/fonts/Roboto/Roboto-Medium.woff +0 -0
- package/dist/fonts/Roboto/Roboto-Medium.woff2 +0 -0
- package/dist/fonts/Roboto/Roboto-Regular.woff +0 -0
- package/dist/fonts/Roboto/Roboto-Regular.woff2 +0 -0
- package/dist/fonts/Roboto/Roboto-SemiBold.woff +0 -0
- package/dist/fonts/Roboto/Roboto-SemiBold.woff2 +0 -0
- package/dist/fonts/Roboto/Roboto-Thin.woff +0 -0
- package/dist/fonts/Roboto/Roboto-Thin.woff2 +0 -0
- package/dist/images/catalogs/acssesuari.png +0 -0
- package/dist/images/catalogs/all.png +0 -0
- package/dist/images/catalogs/antifriz.png +0 -0
- package/dist/images/catalogs/battery.png +0 -0
- package/dist/images/catalogs/chemistry.png +0 -0
- package/dist/images/catalogs/lamps.png +0 -0
- package/dist/images/catalogs/oil.png +0 -0
- package/dist/images/catalogs/original.png +0 -0
- package/dist/images/catalogs/to.png +0 -0
- package/dist/images/catalogs/ucenka.png +0 -0
- package/dist/images/catalogs/vin.png +0 -0
- package/dist/images/catalogs/wheels.png +0 -0
- package/dist/images/mainPage/banner.png +0 -0
- package/dist/images/manager.png +0 -0
- package/dist/images/news/news1.png +0 -0
- package/dist/images/news/newsBig1.png +0 -0
- package/dist/logo.svg +0 -27
- package/dist/my-lib.css +0 -1
- package/dist/my-lib.umd.js +0 -2
package/dist/prlg-ui.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";.button{--button-padding: 10px 20px;--button-border-radius: 12px;--button-bg-color: var(--theme-neutral-0);--button-color: var(--theme-neutral-900);--button-gap: 8px;--button-font-size: 16px;--button-line-height: 20px;min-width:max-content;width:max-content;height:auto;padding:var(--button-padding);border-radius:var(--button-border-radius);font-size:var(--button-font-size);line-height:var(--button-line-height);color:var(--button-color);background-color:var(--button-bg-color);gap:var(--button-gap);display:flex;align-items:center;justify-content:center;text-decoration:none;border:none;outline:none;transition:.3s background-color ease-in-out}.button:disabled{cursor:default}.button.button--full{width:100%!important}.button.button--rounded{--button-border-radius: 100px}.button.button--strong{font-weight:500}.button.button--contrast.button--primary{--button-bg-color: var(--theme-primary-200_25);--button-color: var(--theme-primary-500)}.button.button--contrast.button--primary:hover{--button-bg-color: var(--theme-primary-250)}.button.button--contrast.button--primary:focus{--button-bg-color: var(--theme-primary-250);box-shadow:0 0 0 4px var(--theme-primary-200_25)}.button.button--contrast.button--primary:active{--button-bg-color: var(--theme-primary-200);box-shadow:none}.button.button--contrast.button--primary:disabled{--button-bg-color: var(--theme-neutral-surface-disabled);--button-color: var(--theme-neutral-text-disabled)}.button.button--contrast.button--danger{--button-bg-color: var(--theme-error-100_50);--button-color: var(--theme-error-500)}.button.button--contrast.button--danger:hover{--button-bg-color: var(--theme-error-200_50);--button-color: var(--theme-error-500)}.button.button--contrast.button--danger:focus{--button-bg-color: var(--theme-error-200_50);--button-color: var(--theme-error-500);box-shadow:0 0 0 4px var(--theme-error-200)}.button.button--contrast.button--danger:active{--button-bg-color: var(--theme-error-200);--button-color: var(--theme-error-500);box-shadow:none}.button.button--contrast.button--danger:disabled{--button-bg-color: var(--theme-neutral-surface-disabled);--button-color: var(--theme-neutral-text-disabled)}.button.button--outlined.button--primary{--button-bg-color: var(--theme-neutral-0);--button-color: var(--theme-primary-500);border:1px solid var(--theme-primary-500)}.button.button--outlined.button--primary:hover{--button-bg-color: var(--theme-primary-50)}.button.button--outlined.button--primary:focus{--button-bg-color: var(--theme-primary-50);border:0;box-shadow:0 0 0 4px var(--theme-primary-200)}.button.button--outlined.button--primary:active{background-color:var(--theme-primary-50);border:1px solid var(--theme-primary-500);box-shadow:none}.button.button--outlined.button--primary:disabled{--button-bg-color: var(--theme-neutral-0);--button-color: var(--theme-neutral-text-disabled);border:1px solid var(--theme-neutral-border-disabled)}.button.button--outlined.button--danger{--button-bg-color: var(--theme-neutral-0);--button-color: var(--theme-error-500);border:1px solid var(--theme-error-500)}.button.button--outlined.button--danger:hover{--button-bg-color: var(--theme-error-100_50)}.button.button--outlined.button--danger:focus{--button-bg-color: var(--theme-error-100_50);border:1px solid var(--theme-error-500);box-shadow:1px 1px 4px 8px #ffd4d466}.button.button--outlined.button--danger:active{--button-bg-color: var(--theme-error-200);box-shadow:none}.button.button--outlined.button--danger:disabled{--button-bg-color: var(--theme-neutral-0);--button-color: var(--theme-neutral-text-disabled);border:1px solid var(--theme-neutral-border-disabled)}.button.button--outlined.button--secondary{--button-bg-color: var(--theme-neutral-0);--button-color: var(--theme-neutral-500);border:1px solid var(--theme-neutral-border-default);transition:.3s box-shadow ease-in-out,.3s border ease-in-out}.button.button--outlined.button--secondary:hover{--button-bg-color: var(--theme-neutral-200)}.button.button--outlined.button--secondary:focus{border:1px solid transparent;box-shadow:0 0 0 4px var(--theme-primary-200);transition:.3s box-shadow ease-in-out,.3s border ease-in-out}.button.button--outlined.button--secondary:active{--button-bg-color: var(--theme-neutral-300_40);--button-color: var(--theme-neutral-500);box-shadow:none;border:1px solid var(--theme-neutral-border-default)}.button.button--outlined.button--secondary:disabled{--button-color: var(--theme-neutral-text-disabled)}.button.button--text{--button-bg-color: transparent;--button-color: var(--theme-text-icon-body)}.button.button--text:hover{--button-bg-color: var(--theme-primary-200_25)}.button.button--text:focus{--button-bg-color: var(--theme-primary-200_25);box-shadow:1px 1px 4px 4px var(--theme-primary-500_5)}.button.button--text:active{--button-bg-color: var(--theme-primary-200_50);box-shadow:none}.button.button--text:disabled{--button-bg-color: transparent;--button-color: var(--theme-neutral-text-disabled)}.button.button--text.button--primary{--button-bg-color: transparent;--button-color: var(--theme-primary-500)}.button.button--text.button--primary:hover{--button-bg-color: var(--theme-primary-50);box-shadow:none}.button.button--text.button--primary:focus{--button-bg-color: var(--theme-primary-50);box-shadow:1px 1px 4px 4px var(--theme-primary-500_5)}.button.button--text.button--primary:active{box-shadow:none}.button.button--text.button--danger{--button-bg-color: transparent;--button-color: var(--theme-error-500)}.button.button--text.button--danger:hover{--button-bg-color: var(--theme-error-100_50)}.button.button--text.button--danger:focus{--button-bg-color: var(--theme-error-100_50);box-shadow:1px 1px 4px 4px #ffc5c566}.button.button--text.button--danger:active{--button-bg-color: var(--theme-error-200);box-shadow:none}.button.button--text.button--danger:disabled{--button-bg-color: transparent;--button-color: var(--theme-neutral-text-disabled)}.button.button--link{width:max-content;height:max-content;--button-bg-color: transparent;--button-color: var(--theme-info-400)}.button.button--link:hover{text-decoration:underline}.button.button--primary{--button-bg-color: var(--theme-primary-500);--button-color: var(--theme-neutral-0)}.button.button--primary:hover{--button-bg-color: var(--theme-primary-400)}.button.button--primary:focus{--button-bg-color: var(--theme-primary-400);box-shadow:0 0 0 4px var(--theme-primary-200_25)}.button.button--primary:active{--button-bg-color: var(--theme-primary-600);box-shadow:none}.button.button--primary:disabled{--button-bg-color: var(--theme-neutral-surface-disabled);--button-color: var(--theme-neutral-text-disabled);box-shadow:none}.button.button--danger{--button-bg-color: var(--theme-error-500);--button-color: var(--theme-neutral-0)}.button.button--danger:hover{--button-bg-color: var(--theme-error-400)}.button.button--danger:focus{--button-bg-color: var(--theme-error-400);box-shadow:0 0 0 4px var(--theme-error-200)}.button.button--danger:active{--button-bg-color: var(--theme-error-600);box-shadow:none}.button.button--danger:disabled{--button-bg-color: var(--theme-neutral-surface-disabled);--button-color: var(--theme-neutral-text-disabled)}.button.button--extrasmall{--button-padding: 4px 16px;--button-font-size: 14px;--button-line-height: 18px;--button-gap: 4px;--button-border-radius: 8px}.button.button--extrasmall.button--only-icon{--button-padding: 4px}.button.button--extrasmall.button--only-icon .button__icon{width:12px;height:12px}.button.button--small{--button-padding: 8px 16px;--button-font-size: 14px;--button-line-height: 18px;--button-gap: 4px}.button.button--small.button--only-icon{--button-padding: 8px}.button.button--small.button--only-icon .button__icon{width:16px;height:16px}.button.button--large{--button-padding: 16px 24px;--button-font-size: 20px;--button-gap: 12px}.button.button--large.button--only-icon{--button-padding: 16px}.button.button--large.button--only-icon .button__icon{width:24px;height:24px}.button.button--only-icon{--button-padding: 12px;aspect-ratio:1/1}.button.button--only-icon .button__icon{width:20px;height:20px}.button.button--icon-right{flex-direction:row-reverse}.sleed-deal{position:relative;display:flex;align-items:center;justify-content:center}.sleed-deal-menu{position:absolute;bottom:calc(100% + 10px);left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background-color:#fff;box-shadow:0 4px 12px #0000001a;padding:4px;border-radius:10px;min-width:100px;opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.sleed-deal-menu.sleed-deal-menu--open{opacity:1;visibility:visible;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.sleed-deal-menu__item{display:flex;justify-content:flex-start;align-items:center;gap:4px;padding:4px 6px;border-radius:10px;cursor:pointer}.sleed-deal-menu__item-icon{width:32px;height:32px;background-color:var(--theme-primary-50);color:var(--theme-primary-500);padding:8px;border-radius:100%}.sleed-deal-menu__item-label{width:max-content;font-size:14px}.sleed-deal-menu__item:hover{background-color:var(--theme-primary-50)}.checkbox{--checkbox-size: 20px;--checkbox-label-size: 15px;position:relative;display:flex;align-items:flex-start;gap:8px;cursor:pointer}.checkbox.checkbox--disabled{cursor:default}.checkbox__input{display:none}.checkbox__input:checked~.checkbox__field,.checkbox__input:indeterminate~.checkbox__field{background-color:var(--theme-primary-500);border-color:var(--theme-primary-500)}.checkbox__input:checked~.checkbox__field .dot,.checkbox__input:indeterminate~.checkbox__field .dot{opacity:1;visibility:visible;transition:var(--animate-duration) opacity ease-in-out,var(--animate-duration) visibility ease-in-out}.checkbox__input:checked~.checkbox__field:hover,.checkbox__input:indeterminate~.checkbox__field:hover{background-color:#55cd75;border-color:#55cd75}.checkbox__input:focus:checked~.checkbox__field{background-color:var(--theme-primary-200_15);border-color:var(--theme-primary-500)}.checkbox__input:active:checked~.checkbox__field{background-color:var(--theme-primary-700);border-color:var(--theme-primary-700)}.checkbox__input:disabled~.checkbox__field{border-color:#dcdcdc}.checkbox__input:disabled~.checkbox__label{color:#dcdcdc}.checkbox__input:disabled:checked~.checkbox__field{background-color:#dcdcdc}.checkbox__field{min-width:var(--checkbox-size);width:var(--checkbox-size);height:var(--checkbox-size);border-radius:4px;border:1px solid var(--theme-neutral-border-default);background-color:var(--theme-neutral-0);display:flex;justify-content:center;align-items:center}.checkbox__field .dot{width:100%;height:100%;opacity:0;visibility:hidden;transition:var(--animate-duration) opacity ease-in-out,var(--animate-duration) visibility ease-in-out;display:flex;justify-content:center;align-items:center}.checkbox__label{font-size:15px;line-height:130%;color:var(--theme-neutral-text-title)}.checkbox.checkbox--small{--checkbox-size: 16px;--checkbox-label-size: 12px}.checkbox.checkbox--large{--checkbox-size: 24px;--checkbox-label-size: 18px}.table-header__cell{position:relative;background-color:var(--theme-neutral-surface-icon);padding:8px 12px;text-align:left}.table-header__cell:first-child{border-top-left-radius:12px}.table-header__cell:last-child{border-top-right-radius:12px}.table-header__cell:not(:last-child):before{position:absolute;top:50%;right:0;transform:translateY(-50%);content:"";width:1px;height:60%;background-color:#0000000f}.table-header__cell.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table-header__cell.sortable:hover{background-color:#f3f4f6}.table-header__cell-content{display:flex;justify-content:flex-start;align-items:center}.table-header__cell .sort-icon{display:flex;flex-direction:column;align-items:center;margin-left:8px;color:var(--theme-neutral-icon-caption)}.table-header__cell .sort-icon.sort-icon--up .sort-icon__up,.table-header__cell .sort-icon.sort-icon--down .sort-icon__down{color:var(--theme-primary-500)}.table-header__cell .sort-icon svg{width:12px}.table-header__cell-title{font-weight:700;font-size:12px;line-height:150%;color:#000000d9}.radio{width:auto;height:auto;position:relative;display:flex;justify-content:flex-start;align-items:flex-start;gap:8px}.radio__input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:3;cursor:pointer}.radio__input:focus+.radio__track{box-shadow:0 0 0 9px #eafef0;border-color:var(--theme-primary-150)}.radio__input:active+.radio__track{box-shadow:none;border-color:var(--theme-primary-700)}.radio__input:checked+.radio__track{border-color:var(--theme-primary-500)}.radio__input:checked+.radio__track .radio__thumb{opacity:1;visibility:visible}.radio__track{min-width:20px;width:20px;height:20px;border-radius:100%;background-color:var(--theme-neutral-surface-default);border:1px solid var(--theme-neutral-border-default);cursor:pointer;margin-top:1px;display:flex;justify-content:center;align-items:center}.radio__track .radio__thumb{width:14px;height:14px;border-radius:100%;background-color:var(--theme-primary-500);opacity:0;visibility:hidden;transition:.3s opacity ease-in-out,.3s visibility ease-in-out}.radio__label{font-size:14px;color:var(--theme-neutral-text-body);margin-top:2px}.radio.radio--small .radio__label{font-size:12px}.radio.radio--large .radio__label{font-size:16px}.selection-checkbox{cursor:pointer;margin:0}.table-body__cell{padding:12px 8px 12px 12px}.table-row:hover{background-color:#f9fafb}.pagination{display:flex;justify-content:space-between;align-items:center;padding:12px}.pagination-controls{display:flex;align-items:center;gap:12px}.pagination-button{padding:8px 16px;border:1px solid #e5e7eb;background-color:#f9fafb;border-radius:4px;cursor:pointer}.pagination-button:disabled{background-color:#e5e7eb;cursor:not-allowed}.pagination-button:hover:not(:disabled){background-color:#f3f4f6}.pagination-info{font-size:14px}.rows-per-page{display:flex;align-items:center;gap:8px}.rows-per-page select{padding:4px;border-radius:4px;border:1px solid #e5e7eb}.spinner{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px}.spinner.spinner--small{width:30px;height:30px}.spinner.spinner--large{width:70px;height:70px}.spinner__circle{box-sizing:border-box;display:block;width:100%;height:100%;border:var(--spinner-stroke-width) solid transparent;border-top-color:var(--theme-primary-500);border-radius:50%;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.data-table{width:100%;overflow:auto}.table-container{position:relative}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px;text-align:left;border-bottom:1px solid #e5e7eb}.loading-overlay{position:absolute;inset:0;background:#0003;display:flex;align-items:center;justify-content:center;z-index:10}.loading .table{opacity:.5}.chip-checkbox{position:relative;width:max-content;display:flex;justify-content:flex-start;align-items:center;padding:7px 8px;border-radius:12px;transition:.3s background-color ease-in-out,.3s gap ease-in-out;cursor:pointer}.chip-checkbox:has(input:checked){background-color:var(--theme-neutral-surface-icon);gap:8px}.chip-checkbox input{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer}.chip-checkbox input:checked~.chip-checkbox__icon{width:18px;opacity:1;visibility:visible}.chip-checkbox__icon{width:0;height:18px;opacity:0;visibility:hidden;transition:.3s opacity ease-in-out,.3s visibility ease-in-out,.3s width ease-in-out;overflow:hidden;display:flex;justify-content:center;align-items:center}.chip-checkbox__icon svg{width:100%;height:100%}.chip-checkbox__text{font-size:12px;line-height:120%;color:var(--theme-neutral-text-body)}.tag{display:inline-flex;align-items:center;border-radius:12px;padding:4px 12px;font-size:12px;line-height:1;gap:8px;cursor:default}.tag__content{display:flex;justify-content:flex-start;align-items:center;gap:8px}.tag.tag--primary{background:var(--theme-primary-200_25);color:var(--theme-primary-900)}.tag.tag--primary .tag__icon{color:var(--theme-primary-600)}.tag.tag--secondary{background:var(--theme-neutral-surface-icon);color:var(--theme-neutral-text-subtitle)}.tag.tag--secondary .tag__icon{color:var(--theme-neutral-icon-primary)}.tag.tag--info{background:var(--theme-info-100_50);color:var(--theme-info-800)}.tag.tag--info .tag__icon{color:var(--theme-info-800)}.tag.tag--strong{font-weight:500}.tag.tag--with-icon{line-height:22px}.tag.tag--icon-right .tag__content{flex-direction:row-reverse}.tag__icon,.tag__remove{background:none;border:none;min-width:12px;width:12px;height:12px;padding:0;color:var(--theme-neutral-icon-primary);cursor:default;display:flex;justify-content:center;align-items:center}.tag__icon svg,.tag__remove svg{width:100%;height:100%}.tag__remove{cursor:pointer}.tag__remove:hover{color:var(--theme-neutral-text-body)}.tag__text{max-width:120px;width:max-content;padding-top:1px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.input{width:100%;height:auto;display:flex;flex-direction:column;gap:4px}.input.input--disabled .input__label{color:var(--theme-neutral-icon-disabled)}.input.input--disabled .input__field{border-color:var(--theme-neutral-border-disabled)}.input.input--error .input__label{color:var(--theme-error-500)}.input.input--error .input__field{border-color:var(--theme-error-500)!important;color:var(--theme-error-500)}.input.input--error .input__field::placeholder{color:var(--theme-error-500)}.input.input--small .input__field{height:26px;font-size:12px;line-height:150%}.input.input--small .input__field::placeholder{font-size:12px;line-height:150%}.input.input--large .input__field{height:37px;font-size:16px;line-height:130%}.input.input--large .input__field::placeholder{font-size:16px;line-height:130%}.input.input--outlined .input__field{border-color:var(--theme-neutral-border-default)}.input.input--outlined .input__field:hover{border-color:var(--theme-primary-500)}.input.input--outlined .input__field:focus{border-color:var(--theme-primary-500)}.input.input--outlined .input__field:disabled{border-color:var(--theme-neutral-border-disabled)}.input.input--fill .input__field{background-color:var(--theme-neutral-100)}.input__label{font-size:12px;font-weight:500;color:var(--theme-neutral-text-body);padding-left:8px}.input__wrapper{position:relative;display:flex;align-items:center;gap:4px}.input__field{width:100%;height:32px;border:1px solid transparent;background-color:var(--theme-neutral-0);border-radius:8px;display:flex;justify-content:flex-start;align-items:center;padding-left:8px;padding-bottom:2px}.input__field::placeholder{max-width:100%;font-family:Roboto,sans-serif;font-size:15px;line-height:24px;color:var(--theme-neutral-icon-disabled);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.input__actions{width:max-content;height:100%;display:flex;justify-content:center;align-items:center;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.input__clear{width:12px;height:12px;background-color:transparent;display:flex;justify-content:center;align-items:center}.input__clear svg{width:100%}.input__clear:hover{color:var(--theme-primary-500)}.input__eye{display:flex;justify-content:center;align-items:center;color:var(--theme-neutral-text-caption)}.input__error{font-size:10px;line-height:1;color:var(--theme-error-500);padding:4px 8px}.icon-field{width:100%;height:max-content;display:flex;justify-content:flex-start;align-items:center;border:1px solid var(--theme-neutral-border-default);border-radius:8px;padding:0 8px}.icon-field.icon-field--left{flex-direction:row}.icon-field.icon-field--right{flex-direction:row-reverse}.icon-field.icon-field--disabled{border-color:var(--theme-neutral-border-disabled)}.icon-field.icon-field--disabled .icon-field__icon{color:var(--theme-neutral-border-disabled)}.icon-field__icon{color:var(--theme-neutral-icon-disabled)}.icon-field__content{width:100%;display:flex;justify-content:flex-start;align-items:center}.icon-field__content>*{width:100%}.icon-field__content .input__field{border-width:0}.dropdown-option{width:100%;height:auto;display:flex;justify-content:flex-start;align-items:flex-start;font-size:15px;line-height:120%;color:var(--theme-neutral-text-title);cursor:pointer;padding:8px 0;transition:background .15s}.dropdown-option:not(:last-child){border-bottom:1px solid var(--theme-color-m)}.dropdown-option--selected{background:var(--theme-primary-100);color:var(--theme-primary-700);font-weight:600}.dropdown{width:100%;height:max-content;position:relative}.dropdown.dropdown--open .dropdown__field-arrow{transform:translateY(-50%) scaleY(-1);transition:var(--animate-duration) transform ease-in-out}.dropdown.dropdown--open .dropdown__popover{max-height:300px;opacity:1;pointer-events:auto}.dropdown__field{position:relative;width:100%;height:max-content;cursor:pointer}.dropdown__field-inner{display:flex;align-items:center;flex-wrap:nowrap;min-height:32px;width:100%;padding:0 12px;background:var(--theme-neutral-bg-default);border:1px solid var(--theme-neutral-border-default);border-radius:8px;gap:4px;overflow:hidden}.dropdown__field-inner__text{width:max-content;font-size:14px;line-height:1;color:var(--theme-neutral-text-body);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.dropdown__field-inner_tags{max-width:calc(100% - 14px);width:100%;overflow:hidden;display:flex;justify-content:flex-start;align-items:center;gap:4px}.dropdown__field-inner--multiple{cursor:pointer}.dropdown__field-inner--placeholder .dropdown__field-inner__text{color:var(--theme-neutral-text-caption)}.dropdown__field-input{flex:1 1 60px;min-width:60px;border:none;outline:none;background:transparent;font-size:15px;line-height:130%;color:var(--theme-neutral-text-default);padding:4px 0;height:28px;cursor:pointer}.dropdown__field-input:hover{border-color:var(--theme-primary-400)}.dropdown__field-arrow{width:10px;height:10px;position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--theme-neutral-icon-default);display:flex;justify-content:center;align-items:center;transition:var(--animate-duration) transform ease-in-out}.dropdown__popover{position:absolute;top:calc(100% + 10px);left:0;width:100%;max-height:0;opacity:0;background-color:var(--theme-neutral-0);border-radius:8px;box-shadow:-1px 1px 10px #8d8f9340;transition:max-height .3s ease,opacity .3s ease;pointer-events:none;overflow:auto}.dropdown__popover-wrapper{width:100%;height:100%;padding:12px;display:flex;flex-direction:column;gap:12px}.dropdown__popover-loading{width:100%;height:150px;display:flex;justify-content:center;align-items:center}.dropdown__popover-search{padding:8px 12px;position:sticky;top:0;background-color:#fff}.dropdown__popover__list{width:100%;height:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}.input-number{display:flex;align-items:center;gap:4px}.input-number__wrapper{display:flex;justify-content:flex-start;align-items:center;gap:8px;border-radius:10px;border:1px solid var(--theme-neutral-border-default);overflow:hidden;padding:0 16px}.input-number__input{min-width:56px;width:100%;height:36px;text-align:left;font-size:15px;line-height:24px;color:var(--theme-neutral-600)}.input-number__input::-webkit-inner-spin-button{display:none}.input-number__button{width:36px;height:36px}.input-number.input-number--view-buttons .input-number__wrapper{width:auto;padding:0}.input-number.input-number--view-buttons .input-number__input{width:56px;height:34px;text-align:center}.input-number.input-number--icon-left .input-number__wrapper{padding-left:8px}.input-number.input-number--icon-right .input-number__wrapper{flex-direction:row-reverse}.switch{width:48px;height:24px;position:relative;cursor:pointer}.switch.switch--disabled{cursor:default}.switch:hover .switch__thumb{box-shadow:0 2px 6px 2px #0000000d,0 1px 2px #0000001a}.switch:hover .switch__input:checked+.switch__track{background-color:var(--theme-primary-300)}.switch:focus .switch__input:checked+.switch__track{background-color:var(--theme-primary-300)}.switch__input{width:100%;height:100%;opacity:0;position:absolute;top:0;left:0;z-index:3;cursor:pointer}.switch__input:checked+.switch__track{background-color:var(--theme-primary-500)}.switch__input:checked+.switch__track .switch__thumb{transform:translate(24px)}.switch__input:disabled+.switch__track{background-color:var(--theme-neutral-surface-disabled)}.switch__input:disabled+.switch__track .switch__thumb{background-color:var(--theme-neutral-text-disabled)}.switch__track{width:100%;height:100%;background-color:var(--theme-neutral-250);border-radius:100px;padding:2px;transition:.3s background-color ease-in-out}.switch__thumb{min-width:20px;width:20px;height:20px;background-color:var(--theme-neutral-0);border-radius:100%;transition:.3s transform ease-in-out}.textarea{max-width:100%;display:flex;flex-direction:column;gap:4px}.textarea.textarea--disabled .textarea__label{color:var(--theme-neutral-icon-disabled)}.textarea.textarea--error .textarea__label{color:var(--theme-error-500)}.textarea.textarea--error .textarea__field{border-color:var(--theme-error-500)}.textarea.textarea--small .textarea__field{height:26px;font-size:12px;line-height:150%}.textarea.textarea--small .textarea__field::placeholder{font-size:12px;line-height:150%}.textarea.textarea--large .textarea__field{height:37px;font-size:16px;line-height:130%}.textarea__label{font-size:12px;font-weight:500;line-height:150%;padding-left:8px}.textarea__field{max-width:100%;width:100%;min-height:32px;height:32px;padding:5px 12px;border:1px solid #E0E0E0;border-radius:8px;font-size:15px;line-height:130%}.textarea__field::placeholder{font-size:15px;line-height:130%;color:var(--theme-neutral-icon-disabled)}.breadcrumb{width:auto;display:flex;justify-content:flex-start;align-items:center}.breadcrumb__item{font-size:14px;line-height:1;color:var(--theme-neutral-text-caption)}.breadcrumb__item.breadcrumb__item--disabled{color:var(--theme-neutral-text-body);cursor:default}.breadcrumb__item:not(.breadcrumb__item--disabled,.breadcrumb__seporator):hover{text-decoration:underline}.breadcrumb__seporator{padding:0 8px;display:flex;justify-content:center;align-items:center;cursor:default}.toast-message{min-width:379px;width:auto;height:auto;display:flex;justify-content:flex-start;align-items:flex-start;gap:8px;padding:12px;border-radius:8px}.toast-message__icon{min-width:16px;width:16px;height:16px}.toast-message__icon svg{width:100%;height:100%}.toast-message__content{width:100%;height:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:2px}.toast-message__title{font-weight:500;font-size:16px;line-height:1;color:var(--theme-neutral-text-title)}.toast-message__text{font-size:15px;line-height:24px;color:var(--theme-neutral-text-body)}.toast-message__close{min-width:24px;width:24px;height:24px;display:flex;justify-content:center;align-items:center;color:var(--theme-neutral-icon-secondary);align-self:center}.toast-message__close svg{width:100%;height:100%}.toast-message.toast-message--info{background-color:var(--theme-info-100_50)}.toast-message.toast-message--info .toast-message__icon{color:var(--theme-info-500)}.toast-message.toast-message--error{background-color:var(--theme-error-100_50)}.toast-message.toast-message--error .toast-message__icon{color:var(--theme-error-500)}.toast-message.toast-message--warn{background-color:var(--theme-warn-100)}.toast-message.toast-message--warn .toast-message__icon{color:var(--theme-warn-500)}.toast-message.toast-message--success{background-color:var(--theme-primary-50)}.toast-message.toast-message--success .toast-message__icon{color:var(--theme-primary-500)}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem}.toast-fade-enter-active,.toast-fade-leave-active{transition:opacity .3s,transform .3s}.toast-fade-enter-from,.toast-fade-leave-to{opacity:0;transform:translateY(-10px)}.badge{min-width:17px;min-height:17px;width:max-content;height:max-content;border-radius:8px;padding:2px 5px;font-weight:400;font-size:12px;line-height:100%;border:1px solid var(--theme-neutral-0)}.badge.badge--empty{min-width:8px;min-height:8px;width:8px;height:8px;aspect-ratio:1/1;padding:0}.badge.badge--primary{background-color:var(--theme-primary-500);color:var(--theme-neutral-0)}.badge.badge--danger{background-color:var(--theme-error-500);color:var(--theme-neutral-0)}.badge.badge--neutral{background-color:var(--theme-neutral-250);color:var(--theme-neutral-text-body)}.badge.badge--strong{font-weight:700}.overlay-badge{position:relative;width:max-content;height:max-content}.overlay-badge.overlay-badge--right .overlay-badge__badge{left:calc(100% - 5px)}.overlay-badge.overlay-badge--left .overlay-badge__badge{left:-4px}.overlay-badge__badge{position:absolute;top:-4px}.skeleton{position:relative;overflow:hidden;background-color:var(--theme-neutral-250)}.skeleton:after{content:"";animation:skeleton-animation 1.2s infinite;height:100%;left:0;position:absolute;right:0;top:0;transform:translate(-100%);z-index:1;background:linear-gradient(90deg,#fff0,#fff6,#fff0)}.skeleton.skeleton--circle{border-radius:100%!important}.skeleton.skeleton--square{width:var(--size)!important;height:var(--size)!important;aspect-ratio:1/1}@keyframes skeleton-animation{0%{transform:translate(-100%)}to{transform:translate(100%)}}.drawer{position:fixed;inset:0;width:100dvw;height:100dvh;z-index:1000;display:flex;justify-content:flex-start}.drawer.drawer--right{justify-content:flex-end}.drawer.drawer--right .drawer-close{left:-44px;border-radius:20px 0 0 20px}.drawer.drawer--top{align-items:flex-start;justify-content:flex-start}.drawer.drawer--top .drawer-wrapper{width:100%;height:var(--widthDrawer)}.drawer.drawer--bottom{align-items:flex-end;justify-content:flex-start}.drawer.drawer--bottom .drawer-wrapper{width:100%;height:var(--widthDrawer)}.drawer-overlay{position:absolute;width:100%;height:100%;background-color:#16161633}.drawer-wrapper{position:relative;width:var(--widthDrawer);height:100%;background-color:var(--theme-neutral-0);padding:20px 16px;box-shadow:0 3px 4px #00000040}.drawer-close{position:absolute;width:44px;height:40px;right:-44px;display:flex;justify-content:center;align-items:center;background-color:var(--theme-neutral-0);padding:8px 8px 8px 12px;border-radius:0 20px 20px 0;cursor:pointer}.drawer-close button{display:flex;justify-content:center;align-items:center}.drawer-close:hover svg{color:var(--theme-primary-500);transition:.3s color ease-in-out}.drawer-close svg{width:18px;height:18px;color:var(--theme-neutral-text-caption);transition:.3s color ease-in-out}.drawer-animate-enter-from .drawer-overlay{opacity:0;visibility:hidden}.drawer-animate-enter-from .drawer-wrapper{transform:translate(-100%)}.drawer-animate-enter-from.drawer--right .drawer-wrapper{transform:translate(calc(100% + 44px))}.drawer-animate-enter-from.drawer--top .drawer-wrapper{transform:translateY(-100%)}.drawer-animate-enter-from.drawer--bottom .drawer-wrapper{transform:translateY(100%)}.drawer-animate-enter-to .drawer-overlay{opacity:1;visibility:visible}.drawer-animate-enter-to.drawer--left .drawer-wrapper,.drawer-animate-enter-to.drawer--right .drawer-wrapper{transform:translate(0)}.drawer-animate-enter-to.drawer--top .drawer-wrapper,.drawer-animate-enter-to.drawer--bottom .drawer-wrapper{transform:translateY(0)}.drawer-animate-leave-from .drawer-overlay{opacity:1;visibility:visible}.drawer-animate-leave-from.drawer--left .drawer-wrapper,.drawer-animate-leave-from.drawer--right .drawer-wrapper{transform:translate(0)}.drawer-animate-leave-from.drawer--top .drawer-wrapper,.drawer-animate-leave-from.drawer--bottom .drawer-wrapper{transform:translateY(0)}.drawer-animate-leave-to .drawer-overlay{opacity:0;visibility:hidden}.drawer-animate-leave-to.drawer--left .drawer-wrapper{transform:translate(-100%)}.drawer-animate-leave-to.drawer--right .drawer-wrapper{transform:translate(calc(100% + 44px))}.drawer-animate-leave-to.drawer--top .drawer-wrapper{transform:translateY(-100%)}.drawer-animate-leave-to.drawer--bottom .drawer-wrapper{transform:translateY(100%)}.drawer-animate-enter-active{transition:all .5s ease-in-out}.drawer-animate-enter-active .drawer-overlay{transition:opacity .5s ease-in-out,visibility .5s ease-in-out}.drawer-animate-enter-active .drawer-wrapper{transition:transform .3s ease-in-out;transition-delay:.15s}.drawer-animate-leave-active{transition:all .5s ease-in-out}.drawer-animate-leave-active .drawer-overlay{transition:opacity .5s ease-in-out,visibility .5s ease-in-out}.drawer-animate-leave-active .drawer-wrapper{transition:transform .3s ease-in-out}.modal{position:fixed;inset:0;width:100vw;height:100vh;z-index:1001;display:flex;justify-content:center;align-items:center;opacity:1;visibility:visible;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.modal.modal--center{align-items:center}.modal.modal--top{align-items:flex-start;padding-top:5vh}.modal.modal--bottom{align-items:flex-end;padding-bottom:5vh}.modal__overlay{position:absolute;inset:0;width:100%;height:100%;background-color:#16161633}.modal__content{position:relative;max-width:80vw;min-width:200px;max-height:80vh;background-color:var(--theme-neutral-0);border-radius:12px;padding:24px;box-shadow:0 4px 12px #00000040;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:20px}.modal__header{width:100%;height:42px;display:flex;justify-content:space-between;align-items:center;padding-bottom:12px}.modal__header-title{font-size:20px;font-weight:500;color:var(--theme-neutral-text-title)}.modal__header-close{cursor:pointer;color:#a1a1a1;transition:color .3s ease-in-out;margin-left:auto}.modal__header-close:hover{color:var(--theme-primary-500);transition:color .3s ease-in-out}.modal__body{width:100%;height:100%;flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;overflow:hidden}.modal-content-fade-enter-active,.modal-content-fade-leave-active{transition:opacity .3s ease,visibility .3s ease}.modal-content-fade-enter-from,.modal-content-fade-leave-to{opacity:0;visibility:hidden}.modal-content-fade-enter-to,.modal-content-fade-leave-from{opacity:1;visibility:visible}.popover-wrapper{display:inline-block}.popover-trigger{display:inline-block;cursor:pointer}.popover{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 12px 25px #0000001a,0 0 8px #0000001a;max-width:300px;will-change:transform,opacity}.popover__content{padding:12px 16px}.popover__arrow{position:absolute;background:#fff;width:20px;height:20px;transform:rotate(45deg);border:1px solid #e5e7eb;z-index:1}.popover--top .popover__arrow{border-top:none;border-left:none}.popover--bottom .popover__arrow{border-bottom:none;border-right:none}.popover--left .popover__arrow{border-left:none;border-bottom:none}.popover--right .popover__arrow{border-right:none;border-top:none}.popover-fade-enter-active,.popover-fade-leave-active{transition:opacity .15s ease-out,transform .15s ease-out}.popover-fade-enter-from,.popover-fade-leave-to{opacity:0;transform:scale(.95)}.popover-fade-enter-to,.popover-fade-leave-from{opacity:1;transform:scale(1)}.accordion{width:100%;height:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:12px}.accordion-content-wrapper{overflow:hidden;transition:height .3s ease}.accordion-header{width:100%;height:auto;display:flex;justify-content:space-between;align-items:center;background-color:var(--theme-neutral-surface-icon);padding:15px 16px}.accordion-header.accordion-header--active .accordion-header__arrow{transform:rotate(90deg);background-color:var(--theme-neutral-0);color:var(--theme-primary-500);margin-left:0}.accordion-header__content{width:100%;height:100%;display:flex;justify-content:flex-start}.accordion-header__arrow{width:32px;height:32px;border-radius:100%;border:1px solid var(--theme-primary-500);display:flex;justify-content:center;align-items:center;color:var(--theme-neutral-0);background-color:var(--theme-primary-500);transition:.3s transform ease-in-out,.3s background-color ease-in-out,.3s transform ease-in-out}.accordion-header__arrow svg{width:14px;height:14px;margin-left:3px}.accordion-panel{width:100%;height:auto;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;border-radius:12px;overflow:hidden;border:1px solid rgba(144,164,174,.4)}.divider{position:relative;width:100%;height:1px;display:flex;align-items:center}.divider:before{position:absolute;content:""}.divider__content{width:max-content;font-size:14px;line-height:120%;color:var(--theme-neutral-text-body);padding:4px 8px;background-color:var(--theme-neutral-0);z-index:1}.divider.divider--center{justify-content:center}.divider.divider--left{justify-content:flex-start}.divider.divider--left .divider__content{margin-left:30px}.divider.divider--right{justify-content:flex-end}.divider.divider--right .divider__content{margin-right:30px}.divider.divider--horizontal:before{width:100%;height:auto;border-block-start:1px solid var(--theme-neutral-250)}.divider.divider--horizontal.divider--solid:before{border-block-start-style:solid}.divider.divider--horizontal.divider--dashed:before{border-block-start-style:dashed}.divider.divider--horizontal.divider--dotted:before{border-block-start-style:dotted}.divider.divider--vertical{width:1px;min-height:100%}.divider.divider--vertical:before{inset-block-start:0;inset-inline-start:50%;height:100%;content:"";border-inline-start:1px solid var(--theme-neutral-250)}.divider.divider--vertical.divider--solid:before{border-block-start-style:solid}.divider.divider--vertical.divider--dashed:before{border-block-start-style:dashed}.divider.divider--vertical.divider--dotted:before{border-block-start-style:dotted}.tab{width:max-content;height:max-content;position:relative;padding:8px 4px;font-size:14px;line-height:22px;color:var(--theme-neutral-text-body);cursor:pointer;margin-bottom:-1px;border-radius:8px}.tab:after{opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out;content:"";width:100%;height:2px;background-color:var(--theme-primary-500);position:absolute;left:0;right:0;bottom:0}.tab.tab--active{color:var(--theme-primary-500)}.tab.tab--active:after{opacity:1;visibility:visible}.tabs{width:100%;height:auto}.tab-panel{padding:16px}.tab-list{position:relative;width:100%;height:auto;overflow-x:scroll;overflow-y:hidden;box-sizing:content-box;scrollbar-width:thin;scrollbar-color:var(--theme-neutral-border-default) transparent}.tab-list::-webkit-scrollbar{width:0;height:8px}.tab-list::-webkit-scrollbar-thumb{background-color:var(--theme-neutral-border-default);border-radius:4px}.tab-list::-webkit-scrollbar-track{background:transparent}.tab-list::-webkit-scrollbar-corner{background:transparent}.tab-list__content{position:relative;min-width:100%;width:max-content;height:auto;display:flex;justify-content:flex-start;align-items:center;gap:24px}.tab-list__content:after{content:"";position:absolute;bottom:0;left:0;right:0;width:100%;height:1px;background-color:var(--theme-color-m)}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
//GLOBAL
|
|
2
|
+
:root {
|
|
3
|
+
--theme-color-m: #E3E9ED;
|
|
4
|
+
--animate-duration: 0.3s;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
//NEUTRAL
|
|
8
|
+
:root {
|
|
9
|
+
--theme-neutral-0: #ffffff;
|
|
10
|
+
--theme-neutral-100: #FDFDFD; //use bg main fill
|
|
11
|
+
--theme-neutral-200: #FAFAFA;
|
|
12
|
+
--theme-neutral-250: #EBEBEB;
|
|
13
|
+
--theme-neutral-250_40: #EBEBEB66; //use dissabled fill
|
|
14
|
+
--theme-neutral-300: #CECECE; //use border icon,text
|
|
15
|
+
--theme-neutral-300_40: #CECECE66; //use hover table fill
|
|
16
|
+
--theme-neutral-400: #BFBFBF;
|
|
17
|
+
--theme-neutral-400_40: #BFBFBF66;
|
|
18
|
+
--theme-neutral-500: #A1A1A1; //use btn icon
|
|
19
|
+
--theme-neutral-600: #525252;
|
|
20
|
+
--theme-neutral-700: #3D3D3D;
|
|
21
|
+
--theme-neutral-800: #292929;
|
|
22
|
+
--theme-neutral-850: #1F1F1F;
|
|
23
|
+
--theme-neutral-950: #0A0A0A;
|
|
24
|
+
|
|
25
|
+
--theme-neutral-surface-bg: var(--theme-neutral-100);
|
|
26
|
+
--theme-neutral-surface-default: var(--theme-neutral-0);
|
|
27
|
+
--theme-neutral-surface-subtitle: var(--theme-neutral-200);
|
|
28
|
+
--theme-neutral-surface-icon: #F1F4F5;
|
|
29
|
+
--theme-neutral-surface-disabled: var(--theme-neutral-250_40);
|
|
30
|
+
|
|
31
|
+
--theme-text-icon-body: #3B3B3B;
|
|
32
|
+
--theme-neutral-text-title: var(--theme-neutral-950);
|
|
33
|
+
--theme-neutral-text-subtitle: var(--theme-neutral-800);
|
|
34
|
+
--theme-neutral-text-body: var(--theme-neutral-700);
|
|
35
|
+
--theme-neutral-text-caption: var(--theme-neutral-500);
|
|
36
|
+
--theme-neutral-text-disabled: var(--theme-neutral-400_40);
|
|
37
|
+
--theme-neutral-text-negative: var(--theme-neutral-0);
|
|
38
|
+
|
|
39
|
+
--theme-neutral-icon-primary: #90A4AE;
|
|
40
|
+
--theme-neutral-icon-secondary: var(--theme-neutral-400);
|
|
41
|
+
--theme-neutral-icon-caption: var(--theme-neutral-500);
|
|
42
|
+
--theme-neutral-icon-disabled: #B5B5B5;
|
|
43
|
+
--theme-neutral-icon-negative: var(--theme-neutral-0);
|
|
44
|
+
|
|
45
|
+
--theme-neutral-border-default: var(--theme-neutral-300);
|
|
46
|
+
--theme-neutral-border-darker: var(--theme-neutral-400);
|
|
47
|
+
--theme-neutral-border-divider: #E3E9ED;
|
|
48
|
+
--theme-neutral-border-disabled: var(--theme-neutral-400_40);
|
|
49
|
+
|
|
50
|
+
//BOX-SHADOW
|
|
51
|
+
--theme-main-interface-shadow: 0 2px 8.8px 2px #0000000D, 0 0 13.4px 0 #0000000A;
|
|
52
|
+
--theme-hover-interface-shadow: 0 2px 8.8px 2px #0000000D, 0 1px 1px 0 #0000000A;
|
|
53
|
+
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//PRIMARY
|
|
57
|
+
:root {
|
|
58
|
+
--theme-primary-50: #EAFEF0;
|
|
59
|
+
--theme-primary-50_40: #EAFEF066;
|
|
60
|
+
--theme-primary-100: #BFF7CD;
|
|
61
|
+
--theme-primary-200: #AAEEBC;
|
|
62
|
+
--theme-primary-200_15: #94E6AA; //use focussed stroke
|
|
63
|
+
--theme-primary-200_25: #94E6AA40; //use focussed stroke
|
|
64
|
+
--theme-primary-200_50: #94E6AA80; //use focussed stroke
|
|
65
|
+
--theme-primary-250: #CAF3D5; //use hover fill
|
|
66
|
+
--theme-primary-300: #7FDD98; //use hover fill
|
|
67
|
+
--theme-primary-400: #2ABC51; //use focussed fill
|
|
68
|
+
--theme-primary-500_5: #00AB2E0D; //use default fill
|
|
69
|
+
--theme-primary-500: #00AB2E; //use default fill
|
|
70
|
+
--theme-primary-600: #008925; //use pressed fill
|
|
71
|
+
--theme-primary-700: #00671C;
|
|
72
|
+
--theme-primary-800: #004412;
|
|
73
|
+
--theme-primary-900: #002209;
|
|
74
|
+
|
|
75
|
+
--theme-primary-surface-default: var(--theme-primary-500);
|
|
76
|
+
--theme-primary-surface-subtitle: var(--theme-primary-50);
|
|
77
|
+
--theme-primary-surface-darker: var(--theme-primary-600);
|
|
78
|
+
--theme-primary-surface-lighter: var(--theme-primary-200_25);
|
|
79
|
+
--theme-primary-surface-hover: var(--theme-primary-50_40);
|
|
80
|
+
|
|
81
|
+
--theme-primary-border-default: var(--theme-primary-700);
|
|
82
|
+
--theme-primary-border-subtitle: var(--theme-primary-600);
|
|
83
|
+
--theme-primary-border-darker: var(--theme-primary-800);
|
|
84
|
+
--theme-primary-border-lighter: var(--theme-primary-200);
|
|
85
|
+
|
|
86
|
+
--theme-primary-icon-default: var(--theme-primary-500);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
//INFO
|
|
90
|
+
:root {
|
|
91
|
+
--theme-info-100: #E3EEFA;
|
|
92
|
+
--theme-info-100_50: #E3EEFA80; //use fill
|
|
93
|
+
--theme-info-200: #C2D9F5; //use stroke
|
|
94
|
+
--theme-info-300: #6EA6E7; //hover
|
|
95
|
+
--theme-info-400: #2674CE; //use link (подчеркивание при наведении)
|
|
96
|
+
--theme-info-500: #235FA4; //use icon
|
|
97
|
+
--theme-info-600: #02538F;
|
|
98
|
+
--theme-info-700: #134A73;
|
|
99
|
+
--theme-info-800: #152D4F;
|
|
100
|
+
--theme-info-900: #161E33;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
//WARN
|
|
104
|
+
:root {
|
|
105
|
+
--theme-warn-100: #FDF4EA; //use fill
|
|
106
|
+
--theme-warn-200: #FADFC1; //use stroke
|
|
107
|
+
--theme-warn-300: #F4C083; //hover
|
|
108
|
+
--theme-warn-400: #F1AB5A;
|
|
109
|
+
--theme-warn-500: #ED9631; //use icon
|
|
110
|
+
--theme-warn-600: #D47D16;
|
|
111
|
+
--theme-warn-700: #AC6410;
|
|
112
|
+
--theme-warn-800: #814A09;
|
|
113
|
+
--theme-warn-900: #492C0A;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
//ERROR
|
|
117
|
+
:root {
|
|
118
|
+
--theme-error-100: #FCEAEA;
|
|
119
|
+
--theme-error-100_50: #FCEAEA80; //use fill
|
|
120
|
+
--theme-error-200_50: #FCEAEA; //use stroke
|
|
121
|
+
--theme-error-200: #FFD4D4; //use stroke
|
|
122
|
+
--theme-error-300: #F4A6A6; //hover
|
|
123
|
+
--theme-error-400: #DF575C;
|
|
124
|
+
--theme-error-500: #DE292F; //use icon
|
|
125
|
+
--theme-error-600: #BD2429;
|
|
126
|
+
--theme-error-700: #921D21;
|
|
127
|
+
--theme-error-800: #6E1820;
|
|
128
|
+
--theme-error-900: #4E1012;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
//SHADOW
|
|
132
|
+
:root {
|
|
133
|
+
--theme-shadow-button: 0px 2px 8.8px 2px #0000000D, 0px 1px 1px 0px #0000000A;
|
|
134
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
@forward 'reset';
|
|
2
|
+
@forward 'colors';
|
|
3
|
+
@forward 'root-vars';
|
|
4
|
+
@forward 'mixins';
|
|
5
|
+
@forward 'fonts';
|
|
6
|
+
|
|
7
|
+
.container {
|
|
8
|
+
width: 100%;
|
|
9
|
+
margin: 0 auto;
|
|
10
|
+
padding: 0 10px;
|
|
11
|
+
max-width: 768px; // Базовая ширина для мобильных
|
|
12
|
+
|
|
13
|
+
@media screen and (min-width: 1010px) {
|
|
14
|
+
max-width: 991px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@media screen and (min-width: 1220px) {
|
|
18
|
+
max-width: 1200px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@media screen and (min-width: 1420px) {
|
|
22
|
+
max-width: 1400px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@media screen and (min-width: 1620px) {
|
|
26
|
+
max-width: 1600px;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.page-title {
|
|
31
|
+
font-weight: 600;
|
|
32
|
+
font-size: 24px;
|
|
33
|
+
line-height: 120%;
|
|
34
|
+
color: var(--theme-neutral-text-title);
|
|
35
|
+
text-transform: uppercase;
|
|
36
|
+
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Миксин для подключения шрифтов
|
|
3
|
+
* @param {string} $font-family - Название семейства шрифтов
|
|
4
|
+
* @param {list} $weights - Список весов шрифта (100-900)
|
|
5
|
+
*
|
|
6
|
+
* Пример использования:
|
|
7
|
+
* $weights: (100, 200, 300, 400, 500, 600, 700, 800, 900);
|
|
8
|
+
* $styles: (normal, italic);
|
|
9
|
+
* @include font-face('Roboto', $weights);
|
|
10
|
+
*
|
|
11
|
+
* Структура файлов шрифтов должна быть следующей:
|
|
12
|
+
* fonts/
|
|
13
|
+
* Roboto/
|
|
14
|
+
* Roboto-Thin.woff2
|
|
15
|
+
* Roboto-Thin.woff
|
|
16
|
+
* ...
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
@mixin font-face($font-family, $weights) {
|
|
20
|
+
@each $weight in $weights {
|
|
21
|
+
$weight-name: if(
|
|
22
|
+
$weight == 100,
|
|
23
|
+
"Thin",
|
|
24
|
+
if(
|
|
25
|
+
$weight == 200,
|
|
26
|
+
"ExtraLight",
|
|
27
|
+
if(
|
|
28
|
+
$weight == 300,
|
|
29
|
+
"Light",
|
|
30
|
+
if(
|
|
31
|
+
$weight == 400,
|
|
32
|
+
"Regular",
|
|
33
|
+
if(
|
|
34
|
+
$weight == 500,
|
|
35
|
+
"Medium",
|
|
36
|
+
if(
|
|
37
|
+
$weight == 600,
|
|
38
|
+
"SemiBold",
|
|
39
|
+
if(
|
|
40
|
+
$weight == 700,
|
|
41
|
+
"Bold",
|
|
42
|
+
if(
|
|
43
|
+
$weight == 800,
|
|
44
|
+
"ExtraBold",
|
|
45
|
+
if($weight == 900, "Black", $weight)
|
|
46
|
+
)
|
|
47
|
+
)
|
|
48
|
+
)
|
|
49
|
+
)
|
|
50
|
+
)
|
|
51
|
+
)
|
|
52
|
+
)
|
|
53
|
+
);
|
|
54
|
+
@font-face {
|
|
55
|
+
font-family: "#{$font-family}";
|
|
56
|
+
font-weight: #{$weight};
|
|
57
|
+
src: url("/fonts/#{$font-family}/#{$font-family}-#{$weight-name}.woff2")
|
|
58
|
+
format("woff2"),
|
|
59
|
+
url("/fonts/#{$font-family}/#{$font-family}-#{$weight-name}.woff")
|
|
60
|
+
format("woff");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Миксин для создания медиа-запросов с минимальной шириной
|
|
68
|
+
*
|
|
69
|
+
* @param {number} $width - Минимальная ширина в пикселях
|
|
70
|
+
*
|
|
71
|
+
* Пример использования:
|
|
72
|
+
* @include media-min-width(768px) {
|
|
73
|
+
* .container {
|
|
74
|
+
* padding: 20px;
|
|
75
|
+
* }
|
|
76
|
+
* }
|
|
77
|
+
*
|
|
78
|
+
* Применит стили для экранов шириной от 768px и больше
|
|
79
|
+
*/
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@mixin media-min-width($width) {
|
|
83
|
+
@media screen and (min-width: $width) {
|
|
84
|
+
@content;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/// Миксин для обрезки многострочного текста с троеточием
|
|
89
|
+
///
|
|
90
|
+
/// @param {Number} $lines - Количество отображаемых строк (по умолчанию: 2)
|
|
91
|
+
///
|
|
92
|
+
/// Используется для ограничения текста по количеству строк с добавлением "..."
|
|
93
|
+
/// Работает на основе -webkit-line-clamp и поддерживается в современных браузерах.
|
|
94
|
+
///
|
|
95
|
+
/// 🔁 Пример использования:
|
|
96
|
+
/// .text {
|
|
97
|
+
/// @include ellipsis-multiline(3);
|
|
98
|
+
/// }
|
|
99
|
+
@mixin ellipsis-multiline($lines: 2) {
|
|
100
|
+
display: -webkit-box;
|
|
101
|
+
-webkit-line-clamp: $lines;
|
|
102
|
+
-webkit-box-orient: vertical;
|
|
103
|
+
overflow: hidden;
|
|
104
|
+
text-overflow: ellipsis;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// 📱 Адаптив
|
|
108
|
+
@mixin respond($breakpoint) {
|
|
109
|
+
@if $breakpoint == sm {
|
|
110
|
+
@media (min-width: 640px) { @content; }
|
|
111
|
+
} @else if $breakpoint == md {
|
|
112
|
+
@media (min-width: 768px) { @content; }
|
|
113
|
+
} @else if $breakpoint == lg {
|
|
114
|
+
@media (min-width: 1024px) { @content; }
|
|
115
|
+
} @else if $breakpoint == xl {
|
|
116
|
+
@media (min-width: 1280px) { @content; }
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// ✨ Кастомный скроллбар
|
|
121
|
+
@mixin custom-scrollbar($direction) {
|
|
122
|
+
box-sizing: content-box;
|
|
123
|
+
|
|
124
|
+
scrollbar-width: thin;
|
|
125
|
+
scrollbar-color: var(--theme-neutral-border-default) transparent;
|
|
126
|
+
|
|
127
|
+
// WebKit scrollbar
|
|
128
|
+
&::-webkit-scrollbar {
|
|
129
|
+
@if $direction == "right" {
|
|
130
|
+
width: 8px;
|
|
131
|
+
height: 0;
|
|
132
|
+
} @else if $direction == "bottom" {
|
|
133
|
+
width: 0;
|
|
134
|
+
height: 8px;
|
|
135
|
+
} @else if $direction == "both" {
|
|
136
|
+
width: 8px;
|
|
137
|
+
height: 8px;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
&::-webkit-scrollbar-thumb {
|
|
142
|
+
background-color: var(--theme-neutral-border-default);
|
|
143
|
+
border-radius: 4px;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
&::-webkit-scrollbar-track {
|
|
147
|
+
background: transparent;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
&::-webkit-scrollbar-corner {
|
|
151
|
+
background: transparent;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Add paddings depending on direction
|
|
155
|
+
// @if $direction == "right" {
|
|
156
|
+
// padding-right: 10px;
|
|
157
|
+
// } @else if $direction == "bottom" {
|
|
158
|
+
// padding-bottom: 10px;
|
|
159
|
+
// } @else if $direction == "both" {
|
|
160
|
+
// padding-right: 10px;
|
|
161
|
+
// padding-bottom: 10px;
|
|
162
|
+
// }
|
|
163
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
* {
|
|
2
|
+
margin: 0;
|
|
3
|
+
padding: 0;
|
|
4
|
+
box-sizing: border-box;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
html, body {
|
|
8
|
+
height: 100%;
|
|
9
|
+
width: 100%;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
body {
|
|
13
|
+
font-family: "Roboto", sans-serif;
|
|
14
|
+
-webkit-font-smoothing: antialiased;
|
|
15
|
+
-moz-osx-font-smoothing: grayscale;
|
|
16
|
+
font-size: 16px;
|
|
17
|
+
line-height: 1.5;
|
|
18
|
+
color: #333;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
a {
|
|
22
|
+
text-decoration: none;
|
|
23
|
+
color: inherit;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
button {
|
|
27
|
+
border: none;
|
|
28
|
+
background: none;
|
|
29
|
+
cursor: pointer;
|
|
30
|
+
font: inherit;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
ul, ol {
|
|
34
|
+
list-style: none;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
img {
|
|
38
|
+
max-width: 100%;
|
|
39
|
+
height: auto;
|
|
40
|
+
display: block;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
input, textarea, select {
|
|
44
|
+
font: inherit;
|
|
45
|
+
border: none;
|
|
46
|
+
outline: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
h1, h2, h3, h4, h5, h6 {
|
|
50
|
+
font-weight: normal;
|
|
51
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { defineComponent as f, ref as p, computed as m, onMounted as w, renderSlot as c, createBlock as g, createCommentVNode as y, openBlock as h, Teleport as v } from "vue";
|
|
2
|
+
const u = /* @__PURE__ */ new WeakMap();
|
|
3
|
+
function S(e, t, r = {}) {
|
|
4
|
+
if (!e) return () => {
|
|
5
|
+
};
|
|
6
|
+
const o = u.get(e);
|
|
7
|
+
o && (o(), u.delete(e));
|
|
8
|
+
const n = (d) => {
|
|
9
|
+
const s = d.target instanceof Node ? d.target : null;
|
|
10
|
+
if (!s) return;
|
|
11
|
+
const a = (typeof r.ignore == "function" ? r.ignore() : r.ignore ?? []).map((l) => typeof l == "string" ? document.querySelector(l) : l instanceof HTMLElement ? l : null).filter((l) => l != null);
|
|
12
|
+
e.contains(s) || a.some((l) => l.contains(s)) || t(d);
|
|
13
|
+
};
|
|
14
|
+
document.addEventListener("mousedown", n, { capture: !0 }), document.addEventListener("touchstart", n, { capture: !0 });
|
|
15
|
+
const i = () => {
|
|
16
|
+
document.removeEventListener("mousedown", n, { capture: !0 }), document.removeEventListener("touchstart", n, { capture: !0 }), u.delete(e);
|
|
17
|
+
};
|
|
18
|
+
return u.set(e, i), i;
|
|
19
|
+
}
|
|
20
|
+
function k() {
|
|
21
|
+
return !!(typeof window < "u" && window.document && window.document.createElement);
|
|
22
|
+
}
|
|
23
|
+
const L = /* @__PURE__ */ f({
|
|
24
|
+
__name: "Portal",
|
|
25
|
+
props: {
|
|
26
|
+
appendTo: { default: "body" },
|
|
27
|
+
disabled: { type: Boolean }
|
|
28
|
+
},
|
|
29
|
+
setup(e) {
|
|
30
|
+
const t = p(), r = m(() => e.disabled || e.appendTo === "self");
|
|
31
|
+
return w(() => {
|
|
32
|
+
t.value = k();
|
|
33
|
+
}), (o, n) => r.value ? c(o.$slots, "default", { key: 0 }) : t.value ? (h(), g(v, {
|
|
34
|
+
key: 1,
|
|
35
|
+
to: o.appendTo
|
|
36
|
+
}, [
|
|
37
|
+
c(o.$slots, "default")
|
|
38
|
+
], 8, ["to"])) : y("", !0);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
function B() {
|
|
42
|
+
const e = /* @__PURE__ */ new Map();
|
|
43
|
+
return {
|
|
44
|
+
on(t, r) {
|
|
45
|
+
const o = e.get(t) || [];
|
|
46
|
+
o.push(r), e.set(t, o);
|
|
47
|
+
},
|
|
48
|
+
off(t, r) {
|
|
49
|
+
const o = e.get(t);
|
|
50
|
+
o && e.set(
|
|
51
|
+
t,
|
|
52
|
+
o.filter((n) => n !== r)
|
|
53
|
+
);
|
|
54
|
+
},
|
|
55
|
+
emit(t, r) {
|
|
56
|
+
const o = e.get(t);
|
|
57
|
+
o && o.forEach((n) => n(r));
|
|
58
|
+
},
|
|
59
|
+
clear() {
|
|
60
|
+
e.clear();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function C() {
|
|
65
|
+
let e = null, t = null;
|
|
66
|
+
return { lockScroll: () => {
|
|
67
|
+
if (typeof window > "u") return;
|
|
68
|
+
const n = document.body, i = window.innerWidth - n.clientWidth;
|
|
69
|
+
e === null && (e = n.style.overflow, t = n.style.paddingRight), n.style.overflow = "hidden", n.style.paddingRight = `${i}px`;
|
|
70
|
+
}, unlockScroll: () => {
|
|
71
|
+
if (!(typeof window > "u") && e !== null && t !== null) {
|
|
72
|
+
const n = document.body;
|
|
73
|
+
n.style.overflow = e, n.style.paddingRight = t, e = null, t = null;
|
|
74
|
+
}
|
|
75
|
+
} };
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
B as E,
|
|
79
|
+
L as _,
|
|
80
|
+
S as o,
|
|
81
|
+
C as u
|
|
82
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const l=require("vue"),d=new WeakMap;function f(e,t,r={}){if(!e)return()=>{};const o=d.get(e);o&&(o(),d.delete(e));const n=c=>{const s=c.target instanceof Node?c.target:null;if(!s)return;const a=(typeof r.ignore=="function"?r.ignore():r.ignore??[]).map(i=>typeof i=="string"?document.querySelector(i):i instanceof HTMLElement?i:null).filter(i=>i!=null);e.contains(s)||a.some(i=>i.contains(s))||t(c)};document.addEventListener("mousedown",n,{capture:!0}),document.addEventListener("touchstart",n,{capture:!0});const u=()=>{document.removeEventListener("mousedown",n,{capture:!0}),document.removeEventListener("touchstart",n,{capture:!0}),d.delete(e)};return d.set(e,u),u}function m(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}const p=l.defineComponent({__name:"Portal",props:{appendTo:{default:"body"},disabled:{type:Boolean}},setup(e){const t=l.ref(),r=l.computed(()=>e.disabled||e.appendTo==="self");return l.onMounted(()=>{t.value=m()}),(o,n)=>r.value?l.renderSlot(o.$slots,"default",{key:0}):t.value?(l.openBlock(),l.createBlock(l.Teleport,{key:1,to:o.appendTo},[l.renderSlot(o.$slots,"default")],8,["to"])):l.createCommentVNode("",!0)}});function w(){const e=new Map;return{on(t,r){const o=e.get(t)||[];o.push(r),e.set(t,o)},off(t,r){const o=e.get(t);o&&e.set(t,o.filter(n=>n!==r))},emit(t,r){const o=e.get(t);o&&o.forEach(n=>n(r))},clear(){e.clear()}}}function g(){let e=null,t=null;return{lockScroll:()=>{if(typeof window>"u")return;const n=document.body,u=window.innerWidth-n.clientWidth;e===null&&(e=n.style.overflow,t=n.style.paddingRight),n.style.overflow="hidden",n.style.paddingRight=`${u}px`},unlockScroll:()=>{if(!(typeof window>"u")&&e!==null&&t!==null){const n=document.body;n.style.overflow=e,n.style.paddingRight=t,e=null,t=null}}}}exports.EventBus=w;exports._sfc_main=p;exports.onClickOutside=f;exports.useBodyScroll=g;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<template v-if="inline">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
</template>
|
|
5
|
+
<template v-else-if="mounted">
|
|
6
|
+
<Teleport :to="appendTo">
|
|
7
|
+
<slot></slot>
|
|
8
|
+
</Teleport>
|
|
9
|
+
</template>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script setup lang="ts">
|
|
13
|
+
import { computed, onMounted, ref } from 'vue';
|
|
14
|
+
import isClient from '../../utils/isClient.util';
|
|
15
|
+
|
|
16
|
+
const { appendTo = 'body', disabled } = defineProps<{
|
|
17
|
+
appendTo?: 'self' | string,
|
|
18
|
+
disabled?: boolean
|
|
19
|
+
}>()
|
|
20
|
+
|
|
21
|
+
const mounted = ref<boolean>()
|
|
22
|
+
const inline = computed(() => disabled || appendTo === 'self')
|
|
23
|
+
|
|
24
|
+
onMounted(() => {
|
|
25
|
+
mounted.value = isClient()
|
|
26
|
+
})
|
|
27
|
+
</script>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<template v-if="inline">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
</template>
|
|
5
|
+
<template v-else-if="mounted">
|
|
6
|
+
<Teleport :to="appendTo">
|
|
7
|
+
<slot></slot>
|
|
8
|
+
</Teleport>
|
|
9
|
+
</template>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script setup lang="ts">
|
|
13
|
+
import { computed, onMounted, ref } from 'vue';
|
|
14
|
+
import isClient from '../../utils/isClient.util';
|
|
15
|
+
|
|
16
|
+
const { appendTo = 'body', disabled } = defineProps<{
|
|
17
|
+
appendTo?: 'self' | string,
|
|
18
|
+
disabled?: boolean
|
|
19
|
+
}>()
|
|
20
|
+
|
|
21
|
+
const mounted = ref<boolean>()
|
|
22
|
+
const inline = computed(() => disabled || appendTo === 'self')
|
|
23
|
+
|
|
24
|
+
onMounted(() => {
|
|
25
|
+
mounted.value = isClient()
|
|
26
|
+
})
|
|
27
|
+
</script>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import dayjs from './dayjs.util.ts'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Форматирует дату в человекочитаемый вид: 20 июня 2025
|
|
5
|
+
*/
|
|
6
|
+
export function formatDateReadable(date: string | Date): string {
|
|
7
|
+
return dayjs(date).format('D MMMM YYYY')
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Форматирует дату для отображения времени: 20 июня, 14:30
|
|
12
|
+
*/
|
|
13
|
+
export function formatDateWithTime(date: string | Date): string {
|
|
14
|
+
return dayjs(date).format('D MMMM, HH:mm')
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Возвращает разницу между датами в днях
|
|
19
|
+
*/
|
|
20
|
+
export function getDaysBetween(start: string | Date, end: string | Date): number {
|
|
21
|
+
return dayjs(end).diff(dayjs(start), 'day')
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Проверяет, истекла ли дата
|
|
26
|
+
*/
|
|
27
|
+
export function isExpired(date: string | Date): boolean {
|
|
28
|
+
return dayjs().isAfter(dayjs(date))
|
|
29
|
+
}
|