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.
Files changed (64) hide show
  1. package/dist/index.cjs.js +10 -0
  2. package/dist/index.d.ts +18 -17
  3. package/dist/{my-lib.es.js → index.es.js} +985 -902
  4. package/dist/prlg-ui.css +1 -0
  5. package/dist/scss/colors.scss +134 -0
  6. package/dist/scss/fonts.scss +3 -0
  7. package/dist/scss/main.scss +36 -0
  8. package/dist/scss/mixins.scss +163 -0
  9. package/dist/scss/reset.scss +51 -0
  10. package/dist/scss/root-vars.scss +4 -0
  11. package/dist/useBodyScroll.util-BgQeA8Dg.js +82 -0
  12. package/dist/useBodyScroll.util-D-eNxODy.cjs +1 -0
  13. package/dist/utils/Portal/Portal.vue +27 -0
  14. package/dist/utils/Portal/index.ts +3 -0
  15. package/dist/utils/Portal.vue +27 -0
  16. package/dist/utils/date.util.ts +29 -0
  17. package/dist/utils/dayjs.util.ts +26 -0
  18. package/dist/utils/eventBus.util.ts +41 -0
  19. package/dist/utils/index.ts +3 -0
  20. package/dist/utils/isClient.util.ts +3 -0
  21. package/dist/utils/onClickOutside.util.ts +57 -0
  22. package/dist/utils/price.util.ts +21 -0
  23. package/dist/utils/useBodyScroll.util.ts +33 -0
  24. package/dist/utils/utils.cjs.js +1 -0
  25. package/dist/utils/utils.es.js +497 -0
  26. package/dist/utils.d.ts +90 -0
  27. package/package.json +46 -47
  28. package/dist/fonts/Roboto/Roboto-Black.woff +0 -0
  29. package/dist/fonts/Roboto/Roboto-Black.woff2 +0 -0
  30. package/dist/fonts/Roboto/Roboto-Bold.woff +0 -0
  31. package/dist/fonts/Roboto/Roboto-Bold.woff2 +0 -0
  32. package/dist/fonts/Roboto/Roboto-ExtraBold.woff +0 -0
  33. package/dist/fonts/Roboto/Roboto-ExtraBold.woff2 +0 -0
  34. package/dist/fonts/Roboto/Roboto-ExtraLight.woff +0 -0
  35. package/dist/fonts/Roboto/Roboto-ExtraLight.woff2 +0 -0
  36. package/dist/fonts/Roboto/Roboto-Light.woff +0 -0
  37. package/dist/fonts/Roboto/Roboto-Light.woff2 +0 -0
  38. package/dist/fonts/Roboto/Roboto-Medium.woff +0 -0
  39. package/dist/fonts/Roboto/Roboto-Medium.woff2 +0 -0
  40. package/dist/fonts/Roboto/Roboto-Regular.woff +0 -0
  41. package/dist/fonts/Roboto/Roboto-Regular.woff2 +0 -0
  42. package/dist/fonts/Roboto/Roboto-SemiBold.woff +0 -0
  43. package/dist/fonts/Roboto/Roboto-SemiBold.woff2 +0 -0
  44. package/dist/fonts/Roboto/Roboto-Thin.woff +0 -0
  45. package/dist/fonts/Roboto/Roboto-Thin.woff2 +0 -0
  46. package/dist/images/catalogs/acssesuari.png +0 -0
  47. package/dist/images/catalogs/all.png +0 -0
  48. package/dist/images/catalogs/antifriz.png +0 -0
  49. package/dist/images/catalogs/battery.png +0 -0
  50. package/dist/images/catalogs/chemistry.png +0 -0
  51. package/dist/images/catalogs/lamps.png +0 -0
  52. package/dist/images/catalogs/oil.png +0 -0
  53. package/dist/images/catalogs/original.png +0 -0
  54. package/dist/images/catalogs/to.png +0 -0
  55. package/dist/images/catalogs/ucenka.png +0 -0
  56. package/dist/images/catalogs/vin.png +0 -0
  57. package/dist/images/catalogs/wheels.png +0 -0
  58. package/dist/images/mainPage/banner.png +0 -0
  59. package/dist/images/manager.png +0 -0
  60. package/dist/images/news/news1.png +0 -0
  61. package/dist/images/news/newsBig1.png +0 -0
  62. package/dist/logo.svg +0 -27
  63. package/dist/my-lib.css +0 -1
  64. package/dist/my-lib.umd.js +0 -2
@@ -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,3 @@
1
+ @use "./mixins.scss" as mixins;
2
+
3
+ @include mixins.font-face("Roboto", (100, 200, 300, 400, 500, 600, 700, 800, 900));
@@ -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,4 @@
1
+ //MODAL
2
+ :root {
3
+ --modal-z-index: 1000;
4
+ }
@@ -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,3 @@
1
+ import Portal from "./Portal.vue";
2
+
3
+ export { Portal };
@@ -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
+ }