@ahrowe/ui 0.1.16 → 0.1.18
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 +4 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +791 -748
- package/dist/index.mjs.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/package/common/chip/chip.d.ts +1 -1
- package/dist/types/package/common/chip/chip.types.d.ts +8 -0
- package/dist/types/package/common/virtualList/useColumns.d.ts +7 -1
- package/dist/types/package/common/virtualList/useVirtualWindow.d.ts +5 -2
- package/dist/types/package/common/virtualList/virtualList.types.d.ts +6 -0
- package/docs/CLAUDE.md +19 -26
- package/docs/FormValidator.md +146 -0
- package/docs/FormValidatorGroup.md +154 -0
- package/package.json +1 -1
package/dist/style.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
@layer ahrowe-ui {
|
|
2
|
-
.accordion_YZt8B{color:var(--text-color);margin:-1px;transition:margin .2s}.accordion-title_CGYKY{width:100%}.accordion-active_mocpj{margin:10px 0}.accordion-header_OEjXM{cursor:pointer;background:var(--background);border-radius:var(--default-border-radius);border:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px;font-size:16px;font-weight:400;transition:all .2s;display:flex}.accordion-header-active_6KvnM{border:1px solid var(--primary-color);background:var(--background-accent);border-radius:var(--default-border-radius) var(--default-border-radius) 0px 0px}.accordion-body_2o-mY{border-radius:0px 0px var(--default-border-radius) var(--default-border-radius);border:1px solid var(--border-color);border-top:none;border-bottom:none;transition:all .2s;position:relative;overflow:hidden}.accordion-body-inner_JI9nJ{padding:16px}.accordion-body-active_sb2-U{border:1px solid var(--primary-color);border-top:none}.accordion-icon_kLqp-{width:16px;height:16px;color:var(--border-color);flex-shrink:0;transition:transform .2s;transform:rotate(0)}.accordion-icon-active_lJwG8{transform:rotate(180deg)}.accordion_X64Nz{margin:-1px;transition:margin .2s}.accordion-title_2q-FF{width:100%}.accordion-active_72VwY{border:2px solid var(--primary-color);border-radius:var(--default-border-radius);margin:10px 0}.accordion-header_XuGF6{cursor:pointer;background:var(--background);border-radius:var(--default-border-radius);justify-content:space-between;align-items:center;padding:16px;font-size:16px;font-weight:400;transition:all .2s;display:flex}.accordion-header-active_xf8Ch{background:var(--background-accent);border-radius:var(--default-border-radius) var(--default-border-radius) 0px 0px}.accordion-body_0Jsco{border-radius:0px 0px var(--default-border-radius) var(--default-border-radius);border-top:none;border-bottom:none;transition:all .2s;position:relative;overflow:hidden}.accordion-body-inner_0UBPf{padding:16px}.accordion-body-active_XFSy1{border-top:none}.accordion-icon_W1mz5{width:16px;height:16px;color:var(--primary-color);flex-shrink:0;transition:transform .2s;transform:rotate(0)}.accordion-icon-active_LI98q{transform:rotate(180deg)}.accordion_wkZJf{margin:-1px;transition:margin .2s}.accordion-title_-qwNy{width:100%}.accordion-active_t9-a2{margin:10px 0}.accordion-header_-oST6{cursor:pointer;border-radius:var(--default-border-radius);justify-content:space-between;align-items:center;font-size:16px;font-weight:400;transition:all .2s;display:flex}.accordion-header-active_UvKis{border-radius:var(--default-border-radius) var(--default-border-radius) 0px 0px}.accordion-body_ZagrJ{border-radius:0px 0px var(--default-border-radius) var(--default-border-radius);transition:all .2s;position:relative;overflow:hidden}.accordion-body-inner_HE7PL{padding:0}.accordion-icon_kHxym{width:16px;height:16px;color:var(--primary-color);flex-shrink:0;transition:transform .2s;transform:rotate(0)}.accordion-icon-active_-L8BH{transform:rotate(180deg)}.actionButtons_7GybR{gap:var(--spacing-m);display:flex}@media (--mq-mobile){.actionButtons_7GybR{flex-direction:column}}.actionButtons-margin_-XoFP{margin-top:var(--spacing-l)}.button_wYLPJ{appearance:none;box-sizing:border-box;color:var(--text-color);font-size:16px;font-family:var(--default-font);border-radius:var(--default-border-radius);cursor:pointer;background:0 0;border:none;padding:0;position:relative;overflow:hidden}.button-notAllowed_xGT-E{cursor:not-allowed;filter:opacity(.8)}.button-loading-icon_1pTTz{width:100%!important;height:100%!important}.button-content_Q-0-4{white-space:break-spaces;position:relative}.button-content_Q-0-4 div{text-overflow:ellipsis;overflow:hidden}.button-loading_TY6y7{visibility:hidden}.button-loading-container_pMSta{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute}.button-withIcon_IXEKA{justify-content:center;align-items:center;gap:var(--spacing-s);display:flex}.button-style-primary_Ra5i-{background:var(--primary-color);color:var(--text-on-primary)}.button-style-primary_Ra5i- .button-loading-icon_1pTTz{stroke:var(--text-on-primary)}.button-style-delete_jpTCf{background:var(--error-color);color:var(--text-on-delete)}.button-style-delete_jpTCf .button-loading-icon_1pTTz{stroke:var(--text-on-delete)}.button-background_9Vfo5{padding:8px 12px;display:block}.button-size-default_N4HG9{font-size:16px}.button-size-small_mn6jE{font-size:12px}.button-size-small-background_KILXc{padding:0;display:block}.button-size-medium_gNVDM{font-size:16px}.button-size-large_xSIcS{font-size:20px}.spinner-loading_qbxX-{width:70px;height:70px}.spinner-loading_qbxX- circle{stroke-dasharray:283;stroke-dashoffset:281px;stroke-linecap:round;transform-origin:50%;animation:2s cubic-bezier(.89,.01,.12,1) infinite animate-spinner_6HoVF,3s linear infinite spin_axdh6}@keyframes animate-spinner_6HoVF{0%{stroke-dashoffset:281px}50%{stroke-dashoffset:0}to{stroke-dashoffset:-281px}}@keyframes spin_axdh6{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ripple_TsvyF{aspect-ratio:1;width:100%;animation:ripple_TsvyF var(--ripple-animation-length) linear forwards;background:#fff3;border-radius:1000px;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(0)}.ripple-container_QzHdC{border-radius:inherit;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}@keyframes ripple_TsvyF{to{opacity:0;transform:translate(-50%,-50%)scale(4)}}.actionIcon_ganSq{cursor:pointer;padding:4px}.actionIcon_ganSq:hover{filter:brightness(.8)}.card_w-6Ki{border-radius:var(--default-border-radius);background:var(--background-accent-light);color:var(--text-color);overflow:hidden}.card-padding_X2-q-{padding:16px}.card-shadow_xCSZ9{box-shadow:var(--card-shadow)}.card-interactable_az2lE{cursor:pointer}.card-hover_fdS-X{transition:transform .15s,box-shadow .15s,filter .3s}.card-hover_fdS-X:hover{background:var(--background-accent);transform:translateY(-2px)}.cardHeader_HfIlm{align-items:center;gap:16px;display:flex}.cardHeader-thumbnail_rFw-N{background:#00000014 50%/cover;border-radius:40px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.cardHeader-actions_awD46{gap:var(--spacing-s);flex-wrap:wrap;flex-shrink:1;justify-content:flex-end;align-items:center;display:flex}.cardHeader-titles_CAUU3{flex-flow:column;flex:1;gap:4px;display:flex;overflow:hidden}.cardHeader-titles-main_Z834V{text-overflow:ellipsis;flex-shrink:100000;min-width:3ch;font-size:18px;font-weight:600;overflow:hidden}.cardHeader-titles-main-container_1j-od{align-items:center;gap:var(--spacing-m);justify-content:space-between;display:flex}.cardHeader-titles-sub_2X08b{text-overflow:ellipsis;font-weight:300;overflow:hidden}.cardMedia_GZJQF{width:calc(100% + 32px);margin:0 -16px}.cardActions_uYu-0{flex-wrap:wrap;gap:8px;display:flex}.checkbox_VO3c2{-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;column-gap:10px;width:fit-content;margin:-1px;display:flex}.checkbox-icon_7O0Hm{color:#a3a9b9;background-color:var(--light-background-color);border-radius:6px;justify-content:center;align-items:center;width:fit-content;height:fit-content;display:flex}.checkbox-loading_4t2-w{background:0 0}.checkbox-loading-spinner_XzXt4{width:100%;height:100%}.checkbox-pointer_XnO8e{cursor:pointer}.checkbox_VO3c2:focus-visible{border:1px solid var(--primary-color);border-radius:6px;outline:none}.checkbox-disabled_ML2rR{filter:brightness(.8);cursor:not-allowed}.checkbox-checkmark_Xclv9{border:1.8px solid var(--text-color);border-radius:var(--default-border-radius);position:relative}.checkbox-checkmark_Xclv9 svg{stroke:var(--text-on-primary);stroke-dasharray:5;stroke-dashoffset:5px;background:var(--primary-color);box-sizing:content-box;border-radius:var(--default-border-radius);padding:2px;transition:transform .1s,stroke-dashoffset .4s .2s;transform:scale(0)}.checkbox-checkmark-checked_mD4FI svg{stroke-dashoffset:0;transform:scale(1)translate(-3px,-3px)}.chip_rCTMl{box-sizing:border-box;background:#00000014;border-radius:99999px;width:fit-content;max-width:100%;position:relative}.chip-clickable_WTVjG{cursor:pointer}.chip-inner_mfo-w{align-items:center;gap:8px;padding:4px 8px;display:flex}.chip-inner_mfo-w>*{white-space:nowrap}.chip-text_d1juf{text-overflow:ellipsis;overflow:hidden}.chip-thumbnail_-A7eU{background:#00000014 0 0/cover;border-radius:18px;justify-content:center;align-items:center;width:18px;height:18px;display:flex;overflow:hidden}.chip-container_oNNmF{flex-wrap:wrap;gap:8px;display:flex}.chip-container-inline_11QHw{flex-wrap:nowrap;overflow:auto}.floatingMenu_E1XCy{position:relative}.floatingMenu-content_AmxkA{cursor:pointer}.floatingMenu-container_w7k-Y{background:var(--background-modal);border-radius:calc(var(--default-border-radius) + 4px);margin-top:10px;padding:8px;position:absolute;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.floatingMenu-container-align-left_InKnZ{left:0}.floatingMenu-container-align-right_a9OoS{right:0}.floatingMenu-container-align-center_-8bGT{left:50%;transform:translate(-50%)}.floatingMenu-container-flag_VdKHr{background:var(--background-modal);width:10px;height:10px;margin-top:5px;position:absolute;transform:rotate(45deg);box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.floatingMenu-container-flag-align-right_vxrRN{right:8px}.floatingMenu-container-flag-align-left_a2Vv-{left:8px}.floatingMenu-container-flag-align-center_SmaaY{left:50%;transform:translate(-50%)rotate(45deg)}.floatingMenu-anim_5KB-f{opacity:.7;z-index:2;animation:.1s forwards showMenu_AprCh;position:fixed;transform:scale(.7)}@keyframes showMenu_AprCh{to{opacity:1;transform:scale(1)}}.tooltipBubble_uyev0{z-index:10;color:#fff;pointer-events:none;background-color:#454953;border-radius:3px;width:max-content;max-width:200px;padding:6px 9px;font-size:12px;position:absolute;bottom:calc(100% + 6px);left:0}.tooltipBubble_uyev0:after{content:"";border:5px solid #0000;border-top-color:#454953;position:absolute;top:100%;left:12px}.tooltipDetails_R7N16{align-items:center;display:inline-flex;position:relative}.tooltipDetails-icon_rsjns{color:#fff;cursor:default;-webkit-user-select:none;user-select:none;background-color:#454953;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:700;display:inline-flex}.tooltipError_gUBut{background-color:var(--error-lighter);width:max-content;color:var(--red);z-index:1;border-radius:3px;padding:6px 9px;font-size:10px;position:absolute;top:-33px;right:0}.tooltipError_gUBut:after{content:"";border-style:solid;border-width:5px;border-color:var(--error-border-color) transparent transparent transparent;margin-left:-5px;position:absolute;top:100%;left:90%}.required-mark_xGJdX{color:var(--error-font-color);padding:0 0 0 4px}.isRequired_Jkn3h{color:var(--message-error-color)}.input_VKNCE{width:100%;position:relative}.input-placeholder_IZH-l{opacity:0;-webkit-user-select:none;user-select:none;pointer-events:none;transition:all .2s;position:absolute;top:50%;left:7px;transform:translateY(-50%)}.input-placeholder-shown_mm35e{animation:.2s .3s forwards fadeIn_kmX3i}.input-placeholder-multiline_tLHAl{top:14px;transform:translateY(0)}.input-matLabel_-05ey{pointer-events:none;-webkit-user-select:none;user-select:none;font-size:16px;transition:all .3s;position:absolute;top:50%;left:7px;right:0;transform:translateY(-50%)}.input-matLabel-floating_1P2YE{font-size:13px;inset:-9px 0 0 14px;transform:translateY(0)}.input-matLabel-multiline_miIZJ{top:14px;transform:translateY(0)}.input-fieldset_XCibg{box-sizing:border-box;border-radius:var(--default-border-radius);border-style:solid;border-width:1px;border-color:var(--border-color);pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;min-width:0;margin:0;padding:0 0 0 8px;position:absolute;inset:-11px 0 0}.input-fieldset-legend_X23zp{white-space:nowrap;max-width:0;padding:0;transition:max-width .2s;display:block}.input-fieldset-legend-active_t-9hu{max-width:300px}.input-fieldset-legend_X23zp span{opacity:0;padding:5px;font-size:13px}.input-fieldset-legend_X23zp span:empty{padding:.000001px}.input-container_M1RoG{border-radius:var(--default-border-radius);background-color:var(--input-background);cursor:text;align-items:center;height:100%;transition:border-color;display:flex}.input-container-multiline_eLw7h{align-items:flex-start;padding-top:10px;overflow:hidden}.input-container-border_l131I{outline:1px solid var(--border-color);background-color:var(--input-background);outline:none;transition:border-color}.input-container-border-focused_ct6oY{outline-color:var(--primary-color);border-color:var(--primary-color)}.input-container-border-searchFocused_lq088{outline-color:var(--search-input-color);border-color:var(--search-input-color);outline-width:2px}.input-container-border-invalid_Wdbq2,.input-container-border-invalid_Wdbq2:hover,.input-container-border-error_gzfPG{outline-color:var(--error-border-color);border-color:var(--error-border-color)}.input-label_w1hMR{color:var(--text-color);height:100%;display:flex}.input-label-column_qBFPC{flex-direction:column}.input-label-text_-J5qQ{white-space:nowrap;color:color(var(--border-color) lightness(40%));white-space:nowrap;background-color:#0000;align-items:center;margin-bottom:6px;margin-right:5px;font-size:12px;display:flex;position:absolute;top:-15px}.input-upper-right-label_I-WG3{min-height:12px;color:color(var(--border-color) lightness(40%));font-size:12px;position:absolute;right:8px;transform:translateY(calc(-100% - 1.5px))}.input-field_pmDvZ{appearance:none;font-family:inherit;font-size:inherit;box-sizing:border-box;resize:none;border-radius:var(--default-border-radius);width:100%;color:var(--text-color);background:0 0;border:none;line-height:20px;overflow:hidden}.input-field_pmDvZ:focus{outline:none}.input-field_pmDvZ::placeholder{color:var(--text-light)}.input-field-withIcon_VpfmK{padding-right:37px!important}.input-field-withIcon-left_Io7lU{padding-left:37px!important;padding-right:9px!important}.input-field-suffix_NZpXp{padding-right:9px}.input-field-date_UHJEZ{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;padding:6px 9px}.input-field-date_UHJEZ svg{color:#fff}.input-field-default_TKipA{padding:8px 7.5px 6px}.input-field_pmDvZ[disabled]{background-color:var(--disabled-input-color);color:var(--disabled-font-color);-webkit-text-fill-color:var(--disabled-font-color);opacity:1}.input-field_pmDvZ[disabled]::placeholder{color:var(--disabled-font-color);-webkit-text-fill-color:var(--disabled-font-color)}.input-field-uppercase_UV6f1{text-transform:uppercase}.input-field-multiline_al3V1{resize:vertical;min-height:30px;padding-top:4px;overflow-y:auto}.input-field-multiline-autoResize_nK33P{resize:none;overflow:hidden}.input-field-icon_YyJIr{appearance:none;box-sizing:border-box;cursor:pointer;color:var(--input-icon-color);-webkit-user-select:none;user-select:none;background-color:#0000;border:none;outline:none;position:absolute;top:50%;right:10px;transform:translateY(-50%);width:19px!important;height:19px!important}.input-field-icon-left_m2XB1{left:10px}.input-field-icon-notClickable_7j24I{pointer-events:none}.input-error_LIG23{height:1em;color:var(--error-font-color);padding-top:3px;font-size:11px}@keyframes fadeIn_kmX3i{0%{opacity:0}to{opacity:.5}}.colorPicker_Ts3an{align-items:center;gap:8px;display:flex}.swatch_NW78g{border-radius:var(--default-border-radius);cursor:pointer;background-color:#fff;background-image:linear-gradient(45deg,#bbb 25%,#0000 25%),linear-gradient(-45deg,#bbb 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#bbb 75%),linear-gradient(-45deg,#0000 75%,#bbb 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;flex-shrink:0;width:32px;height:32px;position:relative;box-shadow:0 0 0 1px #00000026}.swatch_NW78g:hover .swatchHex_j7-i5{opacity:1}.swatchFill_oNtHf{border-radius:inherit;position:absolute;inset:0}.swatchHex_j7-i5{color:#fff;border-radius:inherit;opacity:0;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:1;background:#0000008c;justify-content:center;align-items:center;font-family:monospace;font-size:8px;transition:opacity .15s;display:flex;position:absolute;inset:0}.panel_WXEvY{flex-direction:column;gap:10px;width:224px;padding:12px;display:flex}.gradientArea_qEZim{cursor:crosshair;background:linear-gradient(to right, white, hsl(calc(var(--hue) * 1deg), 100%, 50%));border-radius:4px;width:200px;height:160px;position:relative;overflow:hidden}.gradientOverlay_ZQybe{background:linear-gradient(#0000,#000);position:absolute;inset:0}.cursor_m67Lm{pointer-events:none;z-index:1;border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 3px #00000080}.hueSlider_k3Knb{appearance:none;border-radius:var(--default-border-radius);cursor:pointer;background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);outline:none;width:100%;height:10px}.hueSlider_k3Knb::-webkit-slider-thumb{appearance:none;border-radius:var(--default-border-radius);background:var(--primary-color);width:6px;height:20px;box-shadow:var(--card-shadow);cursor:pointer}.hueSlider_k3Knb::-moz-range-thumb{border-radius:var(--default-border-radius);background:var(--primary-color);width:6px;height:20px;box-shadow:var(--card-shadow);cursor:pointer}.alphaSlider_OT2sD{appearance:none;border-radius:var(--default-border-radius);cursor:pointer;background-image:linear-gradient(to right, transparent, var(--alpha-color)), linear-gradient(45deg, #bbb 25%, transparent 25%), linear-gradient(-45deg, #bbb 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #bbb 75%), linear-gradient(-45deg, transparent 75%, #bbb 75%);background-color:#fff;background-position:0 0,0 0,0 4px,4px -4px,-4px 0;background-size:100% 100%,8px 8px,8px 8px,8px 8px,8px 8px;outline:none;width:100%;height:10px}.alphaSlider_OT2sD::-webkit-slider-thumb{appearance:none;border-radius:var(--default-border-radius);background:var(--primary-color);width:6px;height:20px;box-shadow:var(--card-shadow);cursor:pointer}.alphaSlider_OT2sD::-moz-range-thumb{border-radius:var(--default-border-radius);background:var(--primary-color);width:6px;height:20px;box-shadow:var(--card-shadow);cursor:pointer}.hexInput_zQw4s{border-radius:var(--default-border-radius);border:1px solid var(--border-color);background:var(--input-background);width:100%;color:var(--text-color);box-sizing:border-box;outline:none;padding:5px 8px;font-family:monospace;font-size:13px}.hexInput_zQw4s:focus{border-color:var(--primary-color)}.modal_L-Fkd{border-radius:var(--default-border-radius);background:var(--background-modal);color:var(--text-color);font-family:var(--default-font);box-sizing:border-box;transform-origin:bottom;max-width:95%;max-height:95%;padding:16px;animation:.2s slideIn_RVIHR,.3s forwards fadeIn_XSuIE;position:relative;overflow:auto}@media not (--breakpoint-desktop){.modal_L-Fkd{max-width:100%;max-height:100%}}.modal-container_qwKIm{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}@media (--breakpoint-tablet){.modal-container_qwKIm{z-index:1}}.modal-header_DhsRr{justify-content:space-between;gap:8px;margin-bottom:16px;display:flex}.modal-header_DhsRr div{text-overflow:ellipsis;overflow:hidden}.modal-header_DhsRr svg{cursor:pointer}.modal-wrapper_r5wzq{opacity:0;background:#00000052;width:100%;height:100%;transition:all .3s ease-in-out;position:fixed;top:0;left:0}.modal-wrapper-shown_F0BgK{opacity:1}@keyframes slideIn_RVIHR{0%{transform:scale(0)}to{transform:scale(.99)}}@keyframes fadeIn_XSuIE{0%{opacity:0}to{opacity:1}}.datePickerMonth-item_30WWy{aspect-ratio:1;justify-content:center;align-items:center;margin:1px 0;display:flex}.datePickerMonth-content_9bbSs{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid}.datePickerMonth-day_SaASA{cursor:pointer}.datePickerMonth-day-today_RXOIr{background-color:var(--background-accent-light);border-radius:var(--default-border-radius)}.datePickerMonth-day-selected_yMF-v{background-color:var(--primary-color);color:var(--text-on-primary);border-radius:0}.datePickerMonth-day-selected-start_ftVeI{border-top-left-radius:var(--default-border-radius);border-bottom-left-radius:var(--default-border-radius)}.datePickerMonth-day-selected-end_MZ2qy{border-top-right-radius:var(--default-border-radius);border-bottom-right-radius:var(--default-border-radius)}.datePickerMonth-day-disabled_4t0Ci{filter:brightness(.5);cursor:not-allowed}.datePickerMonth-placeholder_gy1Yx{-webkit-user-select:none;user-select:none;pointer-events:none}.infiniteBlock_dFv-h{max-height:none}.spinner-wrapper_hsgWz{justify-content:center;align-items:center;padding:4px 0;display:flex}.spinner_VjUS2{width:32px;height:32px}.required-mark_fy7Fm{color:var(--error-font-color);padding:0 0 0 4px}.dropdown_XTshY{position:relative}.dropdown-label_TIpeK{display:flex}.dropdown-label-column_cMCBc{flex-direction:column}.dropdown-label-text_u-UKq{white-space:nowrap;color:var(--text-color);align-items:center;margin-bottom:5px;margin-right:5px;font-size:12px;display:flex;position:absolute;top:-15px}.dropdown-input_WiPcb{cursor:pointer;background-color:var(--input-background);border-radius:var(--default-border-radius);position:relative}.dropdown-input-plain_Ap12N{background:0 0}.dropdown-input_WiPcb:focus-within{outline:none}.dropdown-input-button_ziKKi{font-family:inherit;font-size:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;text-align:left;width:100%;color:var(--text-color);background-color:#0000;border:none;line-height:20px;overflow:hidden;padding:7.5px 20% 7.5px 7.5px!important}.dropdown-input-button-disabled_JEaO-{background-color:var(--disabled-input-color);color:var(--disabled-font-color);border-radius:var(--default-border-radius)}.dropdown-input-button_ziKKi:focus{outline:none}.dropdown-input-button-icon_jl7EY{float:right;right:var(--spacing-s);color:var(--text-color);cursor:pointer;background-color:#0000;border:none;outline:none;position:absolute;top:50%;transform:translateY(-50%)}.dropdown-input-button-icon-arrow_SFJbx{pointer-events:none;transition:transform .25s}.dropdown-input-button-icon-arrow-open_8yQbZ{transform:rotate(180deg)}.dropdown-input-list_JnMbA{border:1px solid var(--border-color);background-color:var(--background);border-radius:var(--default-border-radius);transform-origin:100% 0;z-index:1;flex-direction:column;width:calc(100% - 1px);max-height:160px;list-style-type:none;transition:transform .25s;display:flex;position:absolute;left:-1px;overflow:hidden auto;transform:scaleY(1)}.dropdown-input-list-on-top_RpQ9v{bottom:56px}.dropdown-input-list-wider_0rbTN{width:max-content!important}.dropdown-input-list-item_EAy5L{cursor:pointer;background-color:var(--background);text-align:left;border:none;border-radius:0;padding:6px;transition:all .3s}.dropdown-input-list-item-active_0dhia{background-color:var(--background-accent)}.dropdown-input-list-item-selected_hShJf{font-weight:500}.dropdown-input-list-item_EAy5L:focus{outline:none}.dropdown-input-list-item_EAy5L:hover{background-color:var(--background-accent)}.dropdown-input-list-item-disabled_3r-Yn{background-color:var(--disabled-input-color);color:var(--disabled-font-color);cursor:not-allowed}.dropdown-input-list-item-disabled_3r-Yn:hover{background-color:var(--disabled-input-color)}.dropdown-input-list-hidden_huNc5{transform:scaleY(0)}.dropdown-fieldset_wQwTf{box-sizing:border-box;border-radius:var(--default-border-radius);border-style:solid;border-width:1px;border-color:var(--border-color);pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;margin:0;padding-left:8px;position:absolute;inset:-10px 0 0}.dropdown-fieldset-legend_a1M4L{white-space:nowrap;max-width:0;padding:0;transition:max-width .2s;display:block}.dropdown-fieldset-legend-active_bnR5F{max-width:300px}.dropdown-fieldset-legend_a1M4L span{opacity:0;padding:5px;font-size:13px}.dropdown-placeholder_QYMPZ{opacity:0;transition:all .2s;position:absolute;top:8px;left:7px}.dropdown-placeholder-shown_-IkNH{animation:.2s .3s forwards fadeIn_oMJZj}.dropdown-matLabel_iHQnt{pointer-events:none;-webkit-user-select:none;user-select:none;font-size:16px;transition:all .3s;position:absolute;inset:9px 0 0 7px}.dropdown-matLabel-floating_zY51S{font-size:13px;inset:-9px 0 0 14px}@keyframes fadeIn_oMJZj{0%{opacity:0}to{opacity:.5}}.dropdown-border_9Oaex{outline:1px solid var(--border-color);background-color:var(--input-background);outline:none;transition:border-color}.dropdown-border-focused_Te-ER{outline-color:var(--primary-color);border-color:var(--primary-color)}.dropdown-border-searchFocused_AH67N{outline-color:var(--search-input-color);border-color:var(--search-input-color);outline-width:2px}.dropdown-border-plain_Bbh-3{border-color:#0000;outline-color:#0000}.dropdown-border-invalid_ySVaS,.dropdown-border-invalid_ySVaS:hover,.dropdown-border-error_-JB33{outline-color:var(--error-border-color);border-color:var(--error-border-color)}.datePicker_ZohTp{flex:1;width:100%;min-width:105px;position:relative}.datePicker-header_YmSWE{justify-content:space-between;align-items:center;margin:8px 0;display:flex}.datePicker-header-monthAndYear_b5ntO{display:flex}.datePicker-header-monthAndYear-container_Hcgks{gap:16px;display:flex;position:relative}.datePicker-header-month_jqFHl{width:120px}.datePicker-header-year_4egHF{width:75px}.datePicker-month_7iosT{min-width:185px}.emptyState_KXOIx{justify-content:center;align-items:center;gap:var(--spacing-m);flex-flow:column;display:flex}.fab_hyAAa{--icon-size:18px;border-radius:50%;align-items:stretch;width:56px;height:56px;padding:0;display:flex}.fab_hyAAa>div{border-radius:50%;justify-content:center;align-items:center;width:100%;display:flex}.fab-content_IBiXm{font-size:var(--icon-size);width:var(--icon-size);height:var(--icon-size)}.fab-content_IBiXm svg{width:var(--icon-size);height:var(--icon-size)}.fab-content-container_FQD1x{justify-content:center;align-items:center;display:flex}.fab-size-mini_KP9BD{background:var(--background-accent-light);width:40px;height:40px}.fab_YI34X{opacity:0;border-radius:50%;animation:.3s forwards appear_DL0wm;transform:scale(0);box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.fab-container_8uoYo{position:fixed;bottom:16px;right:16px}@media (--breakpoint-tablet){.fab-container_8uoYo{z-index:2}}.fab-menu_O1WO9{pointer-events:none;-webkit-user-select:none;user-select:none;flex-flow:column-reverse;align-items:center;gap:16px;width:100%;display:flex;position:absolute;top:0;transform:translateY(calc(-100% - 16px))}.fab-menu-backdrop_m9T6a{opacity:0;background:#000;width:0%;height:0%;transition:opacity .4s;position:fixed;top:0;left:0}.fab-menu-backdrop-open_35mlH{opacity:.5;width:100%;height:100%}.fab-menu-entry_rIgXr{cursor:pointer;opacity:0;pointer-events:all;transition:all .2s;position:relative;transform:scale(0)}.fab-menu-entry_rIgXr:nth-child(2){transition-delay:50ms}.fab-menu-entry_rIgXr:nth-child(3){transition-delay:.1s}.fab-menu-entry_rIgXr:nth-child(4){transition-delay:.15s}.fab-menu-entry_rIgXr:nth-child(5){transition-delay:.2s}.fab-menu-entry_rIgXr:nth-child(6){transition-delay:.25s}.fab-menu-entry_rIgXr:nth-child(7){transition-delay:.3s}.fab-menu-entry-shown_066HC{opacity:1;transform:scale(1)}.fab-menu-entry-label_pXdDf{background:var(--background-accent-light);border-radius:var(--default-border-radius);padding:4px 8px}.fab-menu-entry-label-container_oeKI5{align-items:center;width:max-content;height:100%;margin-left:-8px;display:flex;position:absolute;transform:translate(-100%)}.fab-icon_5Fp-6{justify-content:center;align-items:center;width:100%;height:100%;transition:all .4s;display:flex;position:relative}.fab-icon-menuOpen_Jp8Qb{transform:rotate(225deg)}.fab-icon-content_o0VDx{opacity:0;width:18px;height:18px;transition:opacity .3s;position:absolute}.fab-icon-content-shown_oY19H{opacity:1}@keyframes appear_DL0wm{to{opacity:1;transform:scale(1)}}.iconPicker_xJJmG{border-radius:var(--default-border-radius);border:1px solid #0000}.iconPicker-label_VEB2X{font-size:var(--text-small-font-size);margin-bottom:8px}.iconPicker-item_iJWDN{background:var(--background-accent);cursor:pointer;width:24px;height:24px;stroke:var(--text-color);border-radius:200px;justify-content:center;align-items:center;padding:8px;display:flex;position:relative}.iconPicker-item_iJWDN:focus-visible{outline:1px solid var(--primary-color)}.iconPicker-item-container_-1WT5{flex-wrap:wrap;justify-content:space-around;gap:8px 14px;display:flex}.iconPicker-item-selected_GQ-I1{background:var(--primary-color)}.iconPicker-error_23m9v{border-color:red}.inputDropdown_UdYMa{position:relative}.dropdown_-M5-x{border-radius:var(--default-border-radius);background:var(--background-modal);width:fit-content;max-width:240px;box-shadow:var(--card-shadow);box-sizing:border-box;transform-origin:0 0;opacity:0;z-index:2;max-height:200px;transition:all .1s;position:fixed;overflow:auto;transform:scale(.95)}.dropdown-shown_H2rFU{opacity:1;transform:scale(1)}.dropdown-item_JRgbt{z-index:0;cursor:pointer;outline:none;padding:8px}.dropdown-item_JRgbt:hover,.dropdown-item_JRgbt:focus,.dropdown-item-highlighted_1ZENP{background:var(--background-accent)}.dropdown-category_OMT0E{padding:16px 8px 4px}.board_6KRdw{gap:var(--spacing-s);align-items:flex-start;width:100%;display:flex;overflow-x:auto}.column_NrNeF{background:var(--background-accent-light);border-radius:var(--default-border-radius);box-shadow:var(--card-shadow);border:2px solid #0000;flex-direction:column;flex:1 1 0;transition:border-color .15s,background .15s;display:flex}.column-empty_5KYsJ{flex:0 1 0;min-width:140px}.column-over_sO7oD{border-color:var(--primary-lighter);background:var(--background-accent)}.column-header_PLeKG{padding:var(--spacing-m) var(--spacing-l);background:var(--background-accent);border-radius:var(--default-border-radius) var(--default-border-radius) 0 0;font-size:var(--header-small-font-size);font-weight:var(--header-font-weight);color:var(--text-color);border-bottom:1px solid var(--border-color)}.column-items_xY5er{padding:var(--spacing-m);gap:var(--spacing-m);flex-direction:column;flex:1;min-height:80px;display:flex}.item_T8CJK{cursor:grab;touch-action:none}.item_T8CJK:active{cursor:grabbing}.item-dragging_iWurw{opacity:.4}.dragOverlay_DSyKz{border-radius:var(--default-border-radius);cursor:grabbing;box-shadow:0 10px 30px #00000040, var(--card-shadow)}.iconLoading_wovj4{-webkit-user-select:none;user-select:none;pointer-events:none;--draw-duration:.8s;--delay:.4s;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.iconLoading_wovj4 svg{stroke-dasharray:14;stroke-dashoffset:14px;aspect-ratio:1;width:200px;animation:calc(var(--draw-duration) * 3) spin-to-oblivion_0tZtm var(--delay) infinite;stroke:var(--primary-color);stroke-linecap:round;transform:rotate(0)}.iconLoading-first_SBwP3{animation:calc(var(--draw-duration) * 3) draw-line_1NiWA var(--delay) infinite}.iconLoading-second_nHrW3{animation:calc(var(--draw-duration) * 3) draw-line-two_HmaHl var(--delay) infinite}@keyframes draw-line_1NiWA{33%{stroke-dashoffset:0}95%{stroke-dashoffset:0}96%{stroke-dashoffset:14px}}@keyframes draw-line-two_HmaHl{33%{stroke-dashoffset:14px}66%{stroke-dashoffset:0}95%{stroke-dashoffset:0}96%{stroke-dashoffset:14px}}@keyframes spin-to-oblivion_0tZtm{50%{transform:rotate(180deg)}75%{transform:rotate(180deg)scale(0)}to{transform:rotate(180deg)scale(0)}}.arrows_yjRlc{border-left:1px solid var(--border-color);flex-direction:column;align-self:stretch;margin:4px 0;display:flex}.arrowBtn_DbJoa{cursor:pointer;color:var(--text-dark);background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:0 6px;font-size:.55rem;line-height:1;transition:color .15s,background .15s;display:flex}.arrowBtn_DbJoa:hover{color:var(--primary-color);background:var(--background-accent-light)}.arrowBtn_DbJoa:active{color:var(--primary-lighter)}.optionPicker_Yx82s{gap:var(--spacing-m);border-radius:var(--default-border-radius);border:1px solid var(--border-color);justify-content:space-around;width:100%;display:flex;position:relative;overflow:hidden}.optionPicker-chip_ywtvr{background:var(--primary-color);border-radius:var(--default-border-radius);height:100%;transition:left .25s ease-in-out,width .25s ease-in-out;position:absolute;top:0;left:0}.optionPicker-option_uq0vK{text-align:center;cursor:pointer;width:100%;height:100%;padding:var(--spacing-m);text-overflow:ellipsis;border-radius:var(--default-border-radius);transition:color .25s;display:block;position:relative;overflow:hidden}.optionPicker-option_uq0vK:focus{outline:var(--primary-color) solid 2px;outline-offset:-2px}.optionPicker-option-active_yUECW{color:var(--text-on-primary)}.overscroll_Ij750{-ms-overflow-style:none;scrollbar-width:none;height:100vh;overflow:auto}.overscroll_Ij750::-webkit-scrollbar{display:none}.overscroll-header_S6vYc{width:100%;position:absolute;bottom:0}.overscroll-header-centered_8VlsP{justify-content:center;align-items:center;display:flex}.overscroll-header-container_iignp{position:relative}.progressBar_LO0sX{border-radius:var(--default-border-radius);background-color:#e0e0e0;align-items:center;min-width:100px;min-height:10px;display:flex;overflow:hidden}.progressBar-fill_rt32j{background-color:var(--primary-color);align-items:center;width:0;height:-webkit-fill-available;height:-moz-available;height:stretch;transition:width .3s;display:flex;overflow:hidden}.progressBar-fill-end_71wL3{border-radius:0 var(--default-border-radius) var(--default-border-radius) 0}.progressBar-label_jWud2{color:#fff;text-overflow:ellipsis;white-space:nowrap;padding:0 5px;font-size:12px;overflow:hidden}.progressBar-label-custom_sSump{mix-blend-mode:difference}.roomDrawer_SJj4-{border:1px solid var(--border-color);border-radius:var(--default-border-radius);background:var(--background);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;overflow:hidden}.roomDrawer-toolbar_55H5p{background:var(--background-accent);border-bottom:1px solid var(--border-color);align-items:center;gap:4px;padding:6px 8px;display:flex}.roomDrawer-toolbar-sep_nJeh8{flex:1}.roomDrawer-toolbar-btn_2qinY{border-radius:var(--default-border-radius);width:32px;height:32px;color:var(--text-dark);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:13px;transition:background .12s,color .12s;display:flex}.roomDrawer-toolbar-btn_2qinY:hover:not(:disabled){background:var(--background-accent-light);color:var(--text-color)}.roomDrawer-toolbar-btn_2qinY:disabled{opacity:.35;cursor:not-allowed}.roomDrawer-toolbar-btn-active_4XX25{background:var(--primary-accent);color:var(--primary-color);border-color:var(--primary-lighter)}.roomDrawer-toolbar-zoomLabel_HMkb5{border-radius:var(--default-border-radius);min-width:40px;height:32px;color:var(--text-dark);cursor:pointer;text-align:center;background:0 0;border:1px solid #0000;padding:0 4px;font-size:11px}.roomDrawer-toolbar-zoomLabel_HMkb5:hover{background:var(--background-accent-light);color:var(--text-color)}.roomDrawer-canvas_Y18uD{cursor:crosshair;-webkit-user-select:none;user-select:none;width:100%;display:block}.roomDrawer-canvas-select_M43-x{cursor:default}.roomDrawer-info_qwC6L{background:var(--background-accent);border-top:1px solid var(--border-color);align-items:center;gap:8px;padding:6px 8px;display:flex}.roomDrawer-info-label_8I9hB{color:var(--text-dark);white-space:nowrap;font-size:12px}.roomDrawer-info-input_YAl-K{border:1px solid var(--border-color);border-radius:var(--default-border-radius);background:var(--background);max-width:220px;height:28px;color:var(--text-color);flex:1;padding:0 8px;font-size:13px}.roomDrawer-info-input_YAl-K:focus{border-color:var(--primary-color);outline:none}.roomDrawer-info-spacer_cOj96{flex:1}.roomDrawer-info-delete_TSBUN{border:1px solid var(--border-color);border-radius:var(--default-border-radius);width:28px;height:28px;color:var(--text-dark);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:12px;transition:background .12s,color .12s,border-color .12s;display:flex}.roomDrawer-info-delete_TSBUN:hover{color:#fff;background:#e53935;border-color:#e53935}.roomDrawer-hint_3WTFa{color:var(--text-dark);background:var(--background-accent);border-top:1px solid var(--border-color);padding:4px 8px;font-size:11px}.roomDrawer-info-doorsBtn_oK5Uf{border:1px solid var(--border-color);border-radius:var(--default-border-radius);height:28px;color:var(--text-dark);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:5px;padding:0 8px;font-size:12px;transition:background .12s,color .12s;display:flex}.roomDrawer-info-doorsBtn_oK5Uf:hover{background:var(--background-accent-light);color:var(--text-color)}.roomDrawer-doorPanel_e-Tl9{background:var(--background-accent);border-top:1px solid var(--border-color);flex-direction:column;display:flex}.roomDrawer-doorPanel-header_--iXz{border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding:6px 8px;display:flex}.roomDrawer-doorPanel-icon_KxaVY{color:var(--text-dark);font-size:12px}.roomDrawer-doorPanel-title_8nOZS{color:var(--text-dark);flex:1;font-size:12px}.roomDrawer-doorPanel-done_ejQkx{border:1px solid var(--border-color);border-radius:var(--default-border-radius);height:26px;color:var(--text-dark);cursor:pointer;background:0 0;align-items:center;gap:5px;padding:0 10px;font-size:12px;transition:background .12s,color .12s;display:flex}.roomDrawer-doorPanel-done_ejQkx:hover{background:var(--primary-accent);color:var(--primary-color);border-color:var(--primary-lighter)}.roomDrawer-doorPanel-list_rDou7{flex-direction:column;gap:4px;max-height:130px;padding:6px 8px;display:flex;overflow-y:auto}.roomDrawer-doorPanel-item_U-3-B{align-items:center;gap:6px;display:flex}.roomDrawer-doorPanel-label_qSYqY{color:var(--text-color);min-width:48px;font-size:12px}.roomDrawer-doorPanel-widthLabel_jXv7D{color:var(--text-dark);font-size:11px}.roomDrawer-doorPanel-empty_LcDw0{color:var(--text-dark);padding:2px 0;font-size:11px;font-style:italic}.roomDrawer-canvas-door_qzCIa{cursor:crosshair}.doorGap_KrIuB{stroke:var(--background);stroke-width:4px;stroke-linecap:butt;pointer-events:none}.doorMarker_-N63z{fill:var(--primary-color);stroke:var(--background);stroke-width:.8px;pointer-events:all;cursor:grab}.doorMarker_-N63z:active{cursor:grabbing}.gridLine_V-rxw{stroke:var(--text-color);stroke-width:.3px;opacity:.12}.roomFill_JnJ0J{fill:var(--primary-accent);fill-opacity:.08;stroke:none}.roomFill-selected_IfIRr{fill-opacity:.22}.roomStroke_S18UH{fill:none;stroke:var(--primary-color);stroke-width:1.5px;stroke-linejoin:round}.roomStroke-selected_fm19u{stroke:var(--primary-lighter);stroke-width:2px}.roomText_6fIeU{fill:var(--text-color);stroke:none;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:7px}.doorPanel_raCv0{stroke:var(--primary-color);stroke-width:1.5px;stroke-linecap:round}.doorPanel-selected_5DG7g{stroke:var(--primary-lighter);stroke-width:2px}.doorSwing_Tbt9D{fill:none;stroke:var(--primary-color);stroke-width:.8px;stroke-dasharray:3 2;pointer-events:none}.doorSwing-selected_fFte5{stroke:var(--primary-lighter)}.preview_seIZY{fill:var(--primary-accent);stroke:var(--primary-color);stroke-width:1px;stroke-dasharray:4 2;pointer-events:none}.polyCloseTarget_snjYx{fill:var(--primary-color);opacity:.5;pointer-events:none}.polyVertex_fw0nX{fill:var(--primary-color);stroke:none;pointer-events:none}.vertexHandle_-z7g5{fill:var(--background);stroke:var(--primary-color);stroke-width:1.5px;cursor:grab;pointer-events:all}.vertexHandle_-z7g5:hover{fill:var(--primary-accent);stroke:var(--primary-lighter)}.roomViewer-containerLoading_BL3M-{opacity:.4;pointer-events:none}.roomViewer-container_YlmB8 svg{stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1}.roomViewer-container_YlmB8 svg path{stroke:var(--primary-color);fill:#0000}.roomViewer-container_YlmB8 svg path[id=background]{stroke:none;fill:#0000;cursor:pointer}.roomViewer-container_YlmB8 svg [id^=room]{cursor:pointer}.roomViewer-container_YlmB8 svg text{fill:var(--text-color);stroke:none;font-size:5px}.roomViewer-active_gG6wf{stroke:#18f810!important;fill:#20f81013!important}.roomViewer-active_gG6wf path{stroke:#18f810!important;fill:none!important}.roomViewer-active_gG6wf path[id=background]{stroke:none!important;fill:#20f81013!important}.roomViewer-selected_CpdMj{stroke:#18f810!important}.roomViewer-selected_CpdMj path{stroke:#18f810!important;fill:none!important}.roomViewer-selected_CpdMj path[id=background]{stroke:none!important;fill:#20f81013!important}.roomViewer-selected_CpdMj text{stroke:none;fill:var(--text-color)}.roomViewer-tint_O9JrM,.roomViewer-tint_O9JrM path{fill:#20f81013!important}.roomViewer-tint_O9JrM text{stroke:none;fill:none}.roomViewer-actions_4cA74{justify-content:center;gap:8px;width:100%;font-size:16px;display:flex}.roomViewer-actions_4cA74 svg{cursor:pointer}.roomViewer-header_XEHCO{margin-bottom:4px}.scrollbarProvider_IMBFu{display:contents}.scrollbarProvider_IMBFu *{scrollbar-width:thin;scrollbar-color:var(--background-accent-light) var(--background)}.scrollbarProvider_IMBFu ::-webkit-scrollbar{width:12px}.scrollbarProvider_IMBFu ::-webkit-scrollbar-track{background:0 0}.scrollbarProvider_IMBFu ::-webkit-scrollbar-thumb{background-color:var(--background-accent-light);border:3px solid var(--background);border-radius:10px}.resultCount_Sn48Q{color:var(--text-dark);margin:6px 0 0;font-size:12px}.stepper_kiS2A{-webkit-user-select:none;user-select:none;align-items:center;margin-bottom:30px;display:flex}.stepper-clickable_Nm6fP{cursor:pointer}.stepper-vertical_2y9rg{flex-flow:column}.stepper-connector_J2FwZ{background-position:0%;background-size:200% 200%;background-image:repeating-linear-gradient(90deg, var(--primary-lighter) 0%, var(--primary-lighter) 50%, var(--primary-color) 50%, var(--primary-color) 100%);width:50px;height:1px;transition:all .6s}.stepper-connector-vertical_vwY38{background-position:0 100%;background-image:repeating-linear-gradient(0deg, var(--primary-lighter) 0%, var(--primary-lighter) 50%, var(--primary-color) 50%, var(--primary-color) 100%);width:3px;height:100px}.stepper-connector-filled_W8UZS{background-position:-100% 0;height:3px}.stepper-entry_KD4JJ{box-sizing:border-box;border:1px solid var(--primary-lighter);width:40px;height:40px;color:var(--primary-lighter);border-radius:var(--default-border-radius);box-shadow:inset 0px 0px 0px var(--primary-color);justify-content:center;align-items:center;transition:all .4s;display:flex;position:relative;transform:none}.stepper-entry-active_V1aRt{border:2px solid var(--primary-color);color:var(--primary-color);transform:scale(1.1)}.stepper-entry-done_M3wb5{box-shadow:inset 0px 0px 0px 30px var(--primary-color);transform:none}.stepper-entry-number_J168Q{stroke-dasharray:5;stroke-dashoffset:5px}.stepper-entry-number-done_-m7sD{animation:.4s .2s forwards showCheckmark_Rd0oW}@keyframes showCheckmark_Rd0oW{0%{stroke-dashoffset:5px}to{stroke-dashoffset:0}}.stepper-entry-label_b94eg{text-align:center;width:140px;position:absolute;top:45px;left:0;transform:translate(-50px)}.stepper-entry-label-vertical_Zm8i4{text-align:left;top:0;left:100px}.gifPreview_-ECUZ{aspect-ratio:1;--gif-preview-gap-size:5px;gap:var(--gif-preview-gap-size);flex-wrap:wrap;justify-content:center;width:min(420px,90vw);display:flex;position:relative;overflow:auto}.gifPreview-image_Aq7-a{background-position:50%;background-size:cover;width:100%;height:100%}.gifPreview-image-container_ycypL{aspect-ratio:1;background:linear-gradient(45deg, var(--primary-color) 10%, var(--primary-lighter), var(--primary-accent), var(--primary-color) 85%);border-radius:var(--default-border-radius);width:min(140px,33.3%);width:min(calc(140px - var(--gif-preview-gap-size)), calc(33.3% - var(--gif-preview-gap-size)));background-size:500% 500%;animation:1s linear infinite gradientBottomLeftToTopRight_wo6HB;overflow:hidden}.gifView_Fa2zj{justify-content:center;align-items:center;display:flex;position:relative}.gifView_Fa2zj img{border-radius:var(--default-border-radius);max-width:100%;overflow:hidden}.gifView-loading_LfNJr{background:linear-gradient(45deg, var(--primary-color) 10%, var(--primary-lighter), var(--primary-accent), var(--primary-color) 85%);border-radius:var(--default-border-radius);background-size:500% 500%;width:100%;height:100%;animation:1s linear infinite gradientBottomLeftToTopRight_JR6aS;position:absolute;top:0;left:0;overflow:hidden}.tenorPicker-selected_IfR2z{margin-top:8px}.tenorPicker-modal-content_Vkolf{gap:var(--spacing-m);flex-flow:column;display:flex}.tenorPicker-suggestions-container_kJCj5{max-width:420px}.tenorPicker-suggestions-item_Rl99M{cursor:pointer}.colorFade_eLv2g *{transition:background .3s ease-in-out}.container_krdsW{z-index:9999;pointer-events:none;box-sizing:border-box;flex-direction:column;gap:8px;padding:16px;display:flex;position:fixed}.container-top-left_zfDTO{align-items:flex-start;top:0;left:0}.container-top-center_CUIGc{align-items:center;top:0;left:50%;transform:translate(-50%)}.container-top-right_sB0KU{align-items:flex-end;top:0;right:0}.container-bottom-left_toJdF{flex-direction:column-reverse;align-items:flex-start;bottom:0;left:0}.container-bottom-center_Bkf9m{flex-direction:column-reverse;align-items:center;bottom:0;left:50%;transform:translate(-50%)}.container-bottom-right_oRSMc{flex-direction:column-reverse;align-items:flex-end;bottom:0;right:0}.toast_qBi4o{pointer-events:all;border-radius:var(--default-border-radius);background:var(--background-modal);color:var(--text-color);font-family:var(--default-font);box-shadow:var(--card-shadow);box-sizing:border-box;align-items:flex-start;gap:10px;min-width:240px;max-width:380px;padding:12px 14px;animation:.25s forwards toastSlideDown_4lKWq;display:flex;position:relative;overflow:hidden}.toast-bottom_X8ZIe{animation:.25s forwards toastSlideUp_SGR5X}.toast-dismissing_xKmB-{animation:.2s forwards toastFadeOut_cvHYp}.toast-info_RlLli{border-left:3px solid var(--info-color,#3b82f6)}.toast-info_RlLli .toastIcon_xU1nA{color:var(--info-color,#3b82f6)}.toast-success_I1g1B{border-left:3px solid var(--success-color)}.toast-success_I1g1B .toastIcon_xU1nA{color:var(--success-color)}.toast-error_MloFO{border-left:3px solid var(--error-color,#ef4444)}.toast-error_MloFO .toastIcon_xU1nA{color:var(--error-color,#ef4444)}.toast-warn_pP6HB{border-left:3px solid var(--warn-color)}.toast-warn_pP6HB .toastIcon_xU1nA{color:var(--warn-color)}.toast-default_RTt2L{border-left:3px solid var(--primary-color)}.toast-default_RTt2L .toastIcon_xU1nA{color:var(--primary-color)}.toastIcon_xU1nA{flex-shrink:0;margin-top:1px;font-size:15px}.toastContent_gvyIv{flex:1;font-size:14px;line-height:1.4}.toastCloseButton_n-YST{cursor:pointer;color:var(--text-dark);opacity:.6;background:0 0;border:none;flex-shrink:0;margin-top:1px;padding:0;font-size:13px;transition:opacity .15s}.toastCloseButton_n-YST:hover{opacity:1}.toastProgressBar_6vBs6{opacity:.35;transform-origin:0;width:100%;height:3px;animation:toastShrink_h89HS var(--toast-duration) linear forwards;background:currentColor;position:absolute;bottom:0;left:0}@keyframes toastSlideDown_4lKWq{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideUp_SGR5X{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes toastFadeOut_cvHYp{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@keyframes toastShrink_h89HS{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.virtualList_qBPNc{box-sizing:border-box;color:var(--text-color);font-family:var(--default-font);overflow-anchor:none;scrollbar-gutter:stable;overscroll-behavior:contain;isolation:isolate;overflow-y:auto}.virtualList-drag-clone_artnC{box-sizing:border-box;contain:layout paint style;cursor:grabbing;transition:none}.virtualList-header_0Ellb{z-index:1;background:var(--background-accent);border-bottom:1px solid var(--border-color);box-sizing:border-box;display:grid;position:sticky;top:0}.virtualList-header-cell_c8NGV{color:var(--text-dark);text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;padding:8px 12px;font-size:13px;font-weight:600;overflow:hidden}.virtualList-header-toggle_pYFxD{cursor:pointer;color:var(--text-dark);border-radius:var(--default-border-radius);background:0 0;border:none;align-items:center;padding:4px 8px;transition:background .15s;display:flex}.virtualList-header-toggle_pYFxD:hover{background:var(--background-accent-light);color:var(--text-color)}.virtualList-toggle-wrapper_JP32M{align-items:center;padding:0 4px;display:flex;position:absolute;top:0;bottom:0;right:0}.virtualList-toggle-popover_gbpd7{background:var(--background-accent);border:1px solid var(--border-color);border-radius:var(--default-border-radius);box-shadow:var(--card-shadow);min-width:160px;padding:4px 0;position:absolute;top:calc(100% + 4px);right:0}.virtualList-toggle-item_5gu5d{white-space:nowrap;padding:4px 12px;font-size:14px;transition:background .1s}.virtualList-toggle-item_5gu5d:hover{background:var(--background-accent-light)}.virtualList-column-chip_nOqr6{box-sizing:border-box;background:var(--primary-color);color:#fff;pointer-events:none;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:1;display:flex;position:absolute;top:0;right:0}.virtualList-select-cell_s9kAy{box-sizing:border-box;justify-content:center;align-items:center;padding:0 4px;display:flex}.virtualList-body_k-fRr{box-sizing:border-box;position:relative}.virtualList-row_TTY50{border-bottom:1px solid var(--border-color);box-sizing:border-box;cursor:pointer;contain:layout paint style;transition:background .1s}.virtualList-row-no-divider_Ct0gV{border-bottom:none}.virtualList-row_TTY50:hover{background:var(--background-accent-light)}.virtualList-row-no-hover_2d3mH:hover{background:0 0}.virtualList-row-selected_hwEN-,.virtualList-row-selected_hwEN-:hover{background:var(--primary-lighter)}.virtualList-row-draggable_I86ha{cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.virtualList-row-draggable_I86ha:active{cursor:grabbing}.virtualList-row-dragging_6T5tQ{opacity:.4}.virtualList-row-drop-inside_Uhi9n{background:var(--primary-lighter);box-shadow:inset 0 0 0 2px var(--primary-color)}.virtualList-drop-line_EM-g4{background:var(--primary-color);pointer-events:none;z-index:1;height:2px;position:absolute;right:0}.virtualList-drop-line_EM-g4:before{content:"";background:var(--primary-color);border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.virtualList-drop-line-before_n-0iZ{top:-1px}.virtualList-drop-line-after_2dld-{bottom:-1px}.virtualList-reordering_Rt9E3{touch-action:none}.virtualList-reordering_Rt9E3 .virtualList-row_TTY50{-webkit-user-select:none;user-select:none}.virtualList-reordering_Rt9E3 .virtualList-row_TTY50:hover{background:0 0}.virtualList-reordering_Rt9E3 .virtualList-row_TTY50.virtualList-row-selected_hwEN-:hover{background:var(--primary-lighter)}.virtualList-reordering_Rt9E3 .virtualList-row_TTY50.virtualList-row-dragging_6T5tQ{background:0 0}.virtualList-cell_H0zBv{text-overflow:ellipsis;box-sizing:border-box;align-items:center;min-width:0;padding:8px 12px;font-size:14px;display:flex;overflow:hidden}.virtualList-cell_H0zBv[data-fit-key]{white-space:nowrap}.virtualList-loading-full_wzZNM{justify-content:center;align-items:center;height:100%;display:flex}.virtualList-loading-indicator_EJced{justify-content:center;align-items:center;padding:8px 0;display:flex}.virtualList-spinner_apClW{width:32px;height:32px}.wizard_uRBAN{width:100%;height:100%;padding:1px;transition:all .2s;position:relative;overflow:hidden}.wizard-content_lcl4C{height:fit-content;position:absolute}.wizard-content-outOfFrame_Eks4Y *{-webkit-user-select:none;user-select:none;pointer-events:none;visibility:hidden;display:none}.wizard-content-container_yxbCJ{transition:all .6s;display:flex;position:relative}
|
|
2
|
+
.accordion_YZt8B{color:var(--text-color);margin:-1px;transition:margin .2s}.accordion-title_CGYKY{width:100%}.accordion-active_mocpj{margin:10px 0}.accordion-header_OEjXM{cursor:pointer;background:var(--background);border-radius:var(--default-border-radius);border:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:16px;font-size:16px;font-weight:400;transition:all .2s;display:flex}.accordion-header-active_6KvnM{border:1px solid var(--primary-color);background:var(--background-accent);border-radius:var(--default-border-radius) var(--default-border-radius) 0px 0px}.accordion-body_2o-mY{border-radius:0px 0px var(--default-border-radius) var(--default-border-radius);border:1px solid var(--border-color);border-top:none;border-bottom:none;transition:all .2s;position:relative;overflow:hidden}.accordion-body-inner_JI9nJ{padding:16px}.accordion-body-active_sb2-U{border:1px solid var(--primary-color);border-top:none}.accordion-icon_kLqp-{width:16px;height:16px;color:var(--border-color);flex-shrink:0;transition:transform .2s;transform:rotate(0)}.accordion-icon-active_lJwG8{transform:rotate(180deg)}.accordion_X64Nz{margin:-1px;transition:margin .2s}.accordion-title_2q-FF{width:100%}.accordion-active_72VwY{border:2px solid var(--primary-color);border-radius:var(--default-border-radius);margin:10px 0}.accordion-header_XuGF6{cursor:pointer;background:var(--background);border-radius:var(--default-border-radius);justify-content:space-between;align-items:center;padding:16px;font-size:16px;font-weight:400;transition:all .2s;display:flex}.accordion-header-active_xf8Ch{background:var(--background-accent);border-radius:var(--default-border-radius) var(--default-border-radius) 0px 0px}.accordion-body_0Jsco{border-radius:0px 0px var(--default-border-radius) var(--default-border-radius);border-top:none;border-bottom:none;transition:all .2s;position:relative;overflow:hidden}.accordion-body-inner_0UBPf{padding:16px}.accordion-body-active_XFSy1{border-top:none}.accordion-icon_W1mz5{width:16px;height:16px;color:var(--primary-color);flex-shrink:0;transition:transform .2s;transform:rotate(0)}.accordion-icon-active_LI98q{transform:rotate(180deg)}.accordion_wkZJf{margin:-1px;transition:margin .2s}.accordion-title_-qwNy{width:100%}.accordion-active_t9-a2{margin:10px 0}.accordion-header_-oST6{cursor:pointer;border-radius:var(--default-border-radius);justify-content:space-between;align-items:center;font-size:16px;font-weight:400;transition:all .2s;display:flex}.accordion-header-active_UvKis{border-radius:var(--default-border-radius) var(--default-border-radius) 0px 0px}.accordion-body_ZagrJ{border-radius:0px 0px var(--default-border-radius) var(--default-border-radius);transition:all .2s;position:relative;overflow:hidden}.accordion-body-inner_HE7PL{padding:0}.accordion-icon_kHxym{width:16px;height:16px;color:var(--primary-color);flex-shrink:0;transition:transform .2s;transform:rotate(0)}.accordion-icon-active_-L8BH{transform:rotate(180deg)}.actionButtons_7GybR{gap:var(--spacing-m);display:flex}@media (--mq-mobile){.actionButtons_7GybR{flex-direction:column}}.actionButtons-margin_-XoFP{margin-top:var(--spacing-l)}.button_wYLPJ{appearance:none;box-sizing:border-box;color:var(--text-color);font-size:16px;font-family:var(--default-font);border-radius:var(--default-border-radius);cursor:pointer;background:0 0;border:none;padding:0;position:relative;overflow:hidden}.button-notAllowed_xGT-E{cursor:not-allowed;filter:opacity(.8)}.button-loading-icon_1pTTz{width:100%!important;height:100%!important}.button-content_Q-0-4{white-space:break-spaces;position:relative}.button-content_Q-0-4 div{text-overflow:ellipsis;overflow:hidden}.button-loading_TY6y7{visibility:hidden}.button-loading-container_pMSta{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute}.button-withIcon_IXEKA{justify-content:center;align-items:center;gap:var(--spacing-s);display:flex}.button-style-primary_Ra5i-{background:var(--primary-color);color:var(--text-on-primary)}.button-style-primary_Ra5i- .button-loading-icon_1pTTz{stroke:var(--text-on-primary)}.button-style-delete_jpTCf{background:var(--error-color);color:var(--text-on-delete)}.button-style-delete_jpTCf .button-loading-icon_1pTTz{stroke:var(--text-on-delete)}.button-background_9Vfo5{padding:8px 12px;display:block}.button-size-default_N4HG9{font-size:16px}.button-size-small_mn6jE{font-size:12px}.button-size-small-background_KILXc{padding:0;display:block}.button-size-medium_gNVDM{font-size:16px}.button-size-large_xSIcS{font-size:20px}.spinner-loading_qbxX-{width:70px;height:70px}.spinner-loading_qbxX- circle{stroke-dasharray:283;stroke-dashoffset:281px;stroke-linecap:round;transform-origin:50%;animation:2s cubic-bezier(.89,.01,.12,1) infinite animate-spinner_6HoVF,3s linear infinite spin_axdh6}@keyframes animate-spinner_6HoVF{0%{stroke-dashoffset:281px}50%{stroke-dashoffset:0}to{stroke-dashoffset:-281px}}@keyframes spin_axdh6{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ripple_TsvyF{aspect-ratio:1;width:100%;animation:ripple_TsvyF var(--ripple-animation-length) linear forwards;background:#fff3;border-radius:1000px;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(0)}.ripple-container_QzHdC{border-radius:inherit;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}@keyframes ripple_TsvyF{to{opacity:0;transform:translate(-50%,-50%)scale(4)}}.actionIcon_ganSq{cursor:pointer;padding:4px}.actionIcon_ganSq:hover{filter:brightness(.8)}.card_w-6Ki{border-radius:var(--default-border-radius);background:var(--background-accent-light);color:var(--text-color);overflow:hidden}.card-padding_X2-q-{padding:16px}.card-shadow_xCSZ9{box-shadow:var(--card-shadow)}.card-interactable_az2lE{cursor:pointer}.card-hover_fdS-X{transition:transform .15s,box-shadow .15s,filter .3s}.card-hover_fdS-X:hover{background:var(--background-accent);transform:translateY(-2px)}.cardHeader_HfIlm{align-items:center;gap:16px;display:flex}.cardHeader-thumbnail_rFw-N{background:#00000014 50%/cover;border-radius:40px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.cardHeader-actions_awD46{gap:var(--spacing-s);flex-wrap:wrap;flex-shrink:1;justify-content:flex-end;align-items:center;display:flex}.cardHeader-titles_CAUU3{flex-flow:column;flex:1;gap:4px;display:flex;overflow:hidden}.cardHeader-titles-main_Z834V{text-overflow:ellipsis;flex-shrink:100000;min-width:3ch;font-size:18px;font-weight:600;overflow:hidden}.cardHeader-titles-main-container_1j-od{align-items:center;gap:var(--spacing-m);justify-content:space-between;display:flex}.cardHeader-titles-sub_2X08b{text-overflow:ellipsis;font-weight:300;overflow:hidden}.cardMedia_GZJQF{width:calc(100% + 32px);margin:0 -16px}.cardActions_uYu-0{flex-wrap:wrap;gap:8px;display:flex}.checkbox_VO3c2{-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;column-gap:10px;width:fit-content;margin:-1px;display:flex}.checkbox-icon_7O0Hm{color:#a3a9b9;background-color:var(--light-background-color);border-radius:6px;justify-content:center;align-items:center;width:fit-content;height:fit-content;display:flex}.checkbox-loading_4t2-w{background:0 0}.checkbox-loading-spinner_XzXt4{width:100%;height:100%}.checkbox-pointer_XnO8e{cursor:pointer}.checkbox_VO3c2:focus-visible{border:1px solid var(--primary-color);border-radius:6px;outline:none}.checkbox-disabled_ML2rR{filter:brightness(.8);cursor:not-allowed}.checkbox-checkmark_Xclv9{border:1.8px solid var(--text-color);border-radius:var(--default-border-radius);position:relative}.checkbox-checkmark_Xclv9 svg{stroke:var(--text-on-primary);stroke-dasharray:5;stroke-dashoffset:5px;background:var(--primary-color);box-sizing:content-box;border-radius:var(--default-border-radius);padding:2px;transition:transform .1s,stroke-dashoffset .4s .2s;transform:scale(0)}.checkbox-checkmark-checked_mD4FI svg{stroke-dashoffset:0;transform:scale(1)translate(-3px,-3px)}.chip_rCTMl{box-sizing:border-box;background:#00000014;border-radius:99999px;width:fit-content;max-width:100%;position:relative}.chip-clickable_WTVjG{cursor:pointer}.chip-style-default_ppCDx{color:var(--text-color);background:#00000014}.chip-style-primary_oyE85{background:var(--primary-color);color:var(--text-on-primary)}.chip-style-info_GNJrm{background:var(--info-lighter);color:var(--info-color)}.chip-style-warn_Jx3LU{background:var(--warn-lighter);color:var(--warn-color)}.chip-style-error_-Npvg{background:var(--error-lighter);color:var(--error-color)}.chip-inner_mfo-w{align-items:center;gap:8px;padding:4px 8px;display:flex}.chip-inner_mfo-w>*{white-space:nowrap}.chip-text_d1juf{text-overflow:ellipsis;overflow:hidden}.chip-thumbnail_-A7eU{background:#00000014 0 0/cover;border-radius:18px;justify-content:center;align-items:center;width:18px;height:18px;display:flex;overflow:hidden}.chip-container_oNNmF{flex-wrap:wrap;gap:8px;display:flex}.chip-container-inline_11QHw{flex-wrap:nowrap;overflow:auto}.floatingMenu_E1XCy{position:relative}.floatingMenu-content_AmxkA{cursor:pointer}.floatingMenu-container_w7k-Y{background:var(--background-modal);border-radius:calc(var(--default-border-radius) + 4px);margin-top:10px;padding:8px;position:absolute;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.floatingMenu-container-align-left_InKnZ{left:0}.floatingMenu-container-align-right_a9OoS{right:0}.floatingMenu-container-align-center_-8bGT{left:50%;transform:translate(-50%)}.floatingMenu-container-flag_VdKHr{background:var(--background-modal);width:10px;height:10px;margin-top:5px;position:absolute;transform:rotate(45deg);box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.floatingMenu-container-flag-align-right_vxrRN{right:8px}.floatingMenu-container-flag-align-left_a2Vv-{left:8px}.floatingMenu-container-flag-align-center_SmaaY{left:50%;transform:translate(-50%)rotate(45deg)}.floatingMenu-anim_5KB-f{opacity:.7;z-index:2;animation:.1s forwards showMenu_AprCh;position:fixed;transform:scale(.7)}@keyframes showMenu_AprCh{to{opacity:1;transform:scale(1)}}.tooltipBubble_uyev0{z-index:10;color:#fff;pointer-events:none;background-color:#454953;border-radius:3px;width:max-content;max-width:200px;padding:6px 9px;font-size:12px;position:absolute;bottom:calc(100% + 6px);left:0}.tooltipBubble_uyev0:after{content:"";border:5px solid #0000;border-top-color:#454953;position:absolute;top:100%;left:12px}.tooltipDetails_R7N16{align-items:center;display:inline-flex;position:relative}.tooltipDetails-icon_rsjns{color:#fff;cursor:default;-webkit-user-select:none;user-select:none;background-color:#454953;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;font-weight:700;display:inline-flex}.tooltipError_gUBut{background-color:var(--error-lighter);width:max-content;color:var(--red);z-index:1;border-radius:3px;padding:6px 9px;font-size:10px;position:absolute;top:-33px;right:0}.tooltipError_gUBut:after{content:"";border-style:solid;border-width:5px;border-color:var(--error-border-color) transparent transparent transparent;margin-left:-5px;position:absolute;top:100%;left:90%}.required-mark_xGJdX{color:var(--error-font-color);padding:0 0 0 4px}.isRequired_Jkn3h{color:var(--message-error-color)}.input_VKNCE{width:100%;position:relative}.input-placeholder_IZH-l{opacity:0;-webkit-user-select:none;user-select:none;pointer-events:none;transition:all .2s;position:absolute;top:50%;left:7px;transform:translateY(-50%)}.input-placeholder-shown_mm35e{animation:.2s .3s forwards fadeIn_kmX3i}.input-placeholder-multiline_tLHAl{top:14px;transform:translateY(0)}.input-matLabel_-05ey{pointer-events:none;-webkit-user-select:none;user-select:none;font-size:16px;transition:all .3s;position:absolute;top:50%;left:7px;right:0;transform:translateY(-50%)}.input-matLabel-floating_1P2YE{font-size:13px;inset:-9px 0 0 14px;transform:translateY(0)}.input-matLabel-multiline_miIZJ{top:14px;transform:translateY(0)}.input-fieldset_XCibg{box-sizing:border-box;border-radius:var(--default-border-radius);border-style:solid;border-width:1px;border-color:var(--border-color);pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;min-width:0;margin:0;padding:0 0 0 8px;position:absolute;inset:-11px 0 0}.input-fieldset-legend_X23zp{white-space:nowrap;max-width:0;padding:0;transition:max-width .2s;display:block}.input-fieldset-legend-active_t-9hu{max-width:300px}.input-fieldset-legend_X23zp span{opacity:0;padding:5px;font-size:13px}.input-fieldset-legend_X23zp span:empty{padding:.000001px}.input-container_M1RoG{border-radius:var(--default-border-radius);background-color:var(--input-background);cursor:text;align-items:center;height:100%;transition:border-color;display:flex}.input-container-multiline_eLw7h{align-items:flex-start;padding-top:10px;overflow:hidden}.input-container-border_l131I{outline:1px solid var(--border-color);background-color:var(--input-background);outline:none;transition:border-color}.input-container-border-focused_ct6oY{outline-color:var(--primary-color);border-color:var(--primary-color)}.input-container-border-searchFocused_lq088{outline-color:var(--search-input-color);border-color:var(--search-input-color);outline-width:2px}.input-container-border-invalid_Wdbq2,.input-container-border-invalid_Wdbq2:hover,.input-container-border-error_gzfPG{outline-color:var(--error-border-color);border-color:var(--error-border-color)}.input-label_w1hMR{color:var(--text-color);height:100%;display:flex}.input-label-column_qBFPC{flex-direction:column}.input-label-text_-J5qQ{white-space:nowrap;color:color(var(--border-color) lightness(40%));white-space:nowrap;background-color:#0000;align-items:center;margin-bottom:6px;margin-right:5px;font-size:12px;display:flex;position:absolute;top:-15px}.input-upper-right-label_I-WG3{min-height:12px;color:color(var(--border-color) lightness(40%));font-size:12px;position:absolute;right:8px;transform:translateY(calc(-100% - 1.5px))}.input-field_pmDvZ{appearance:none;font-family:inherit;font-size:inherit;box-sizing:border-box;resize:none;border-radius:var(--default-border-radius);width:100%;color:var(--text-color);background:0 0;border:none;line-height:20px;overflow:hidden}.input-field_pmDvZ:focus{outline:none}.input-field_pmDvZ::placeholder{color:var(--text-light)}.input-field-withIcon_VpfmK{padding-right:37px!important}.input-field-withIcon-left_Io7lU{padding-left:37px!important;padding-right:9px!important}.input-field-suffix_NZpXp{padding-right:9px}.input-field-date_UHJEZ{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;padding:6px 9px}.input-field-date_UHJEZ svg{color:#fff}.input-field-default_TKipA{padding:8px 7.5px 6px}.input-field_pmDvZ[disabled]{background-color:var(--disabled-input-color);color:var(--disabled-font-color);-webkit-text-fill-color:var(--disabled-font-color);opacity:1}.input-field_pmDvZ[disabled]::placeholder{color:var(--disabled-font-color);-webkit-text-fill-color:var(--disabled-font-color)}.input-field-uppercase_UV6f1{text-transform:uppercase}.input-field-multiline_al3V1{resize:vertical;min-height:30px;padding-top:4px;overflow-y:auto}.input-field-multiline-autoResize_nK33P{resize:none;overflow:hidden}.input-field-icon_YyJIr{appearance:none;box-sizing:border-box;cursor:pointer;color:var(--input-icon-color);-webkit-user-select:none;user-select:none;background-color:#0000;border:none;outline:none;position:absolute;top:50%;right:10px;transform:translateY(-50%);width:19px!important;height:19px!important}.input-field-icon-left_m2XB1{left:10px}.input-field-icon-notClickable_7j24I{pointer-events:none}.input-error_LIG23{height:1em;color:var(--error-font-color);padding-top:3px;font-size:11px}@keyframes fadeIn_kmX3i{0%{opacity:0}to{opacity:.5}}.colorPicker_Ts3an{align-items:center;gap:8px;display:flex}.swatch_NW78g{border-radius:var(--default-border-radius);cursor:pointer;background-color:#fff;background-image:linear-gradient(45deg,#bbb 25%,#0000 25%),linear-gradient(-45deg,#bbb 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#bbb 75%),linear-gradient(-45deg,#0000 75%,#bbb 75%);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;flex-shrink:0;width:32px;height:32px;position:relative;box-shadow:0 0 0 1px #00000026}.swatch_NW78g:hover .swatchHex_j7-i5{opacity:1}.swatchFill_oNtHf{border-radius:inherit;position:absolute;inset:0}.swatchHex_j7-i5{color:#fff;border-radius:inherit;opacity:0;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:1;background:#0000008c;justify-content:center;align-items:center;font-family:monospace;font-size:8px;transition:opacity .15s;display:flex;position:absolute;inset:0}.panel_WXEvY{flex-direction:column;gap:10px;width:224px;padding:12px;display:flex}.gradientArea_qEZim{cursor:crosshair;background:linear-gradient(to right, white, hsl(calc(var(--hue) * 1deg), 100%, 50%));border-radius:4px;width:200px;height:160px;position:relative;overflow:hidden}.gradientOverlay_ZQybe{background:linear-gradient(#0000,#000);position:absolute;inset:0}.cursor_m67Lm{pointer-events:none;z-index:1;border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 3px #00000080}.hueSlider_k3Knb{appearance:none;border-radius:var(--default-border-radius);cursor:pointer;background:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);outline:none;width:100%;height:10px}.hueSlider_k3Knb::-webkit-slider-thumb{appearance:none;border-radius:var(--default-border-radius);background:var(--primary-color);width:6px;height:20px;box-shadow:var(--card-shadow);cursor:pointer}.hueSlider_k3Knb::-moz-range-thumb{border-radius:var(--default-border-radius);background:var(--primary-color);width:6px;height:20px;box-shadow:var(--card-shadow);cursor:pointer}.alphaSlider_OT2sD{appearance:none;border-radius:var(--default-border-radius);cursor:pointer;background-image:linear-gradient(to right, transparent, var(--alpha-color)), linear-gradient(45deg, #bbb 25%, transparent 25%), linear-gradient(-45deg, #bbb 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #bbb 75%), linear-gradient(-45deg, transparent 75%, #bbb 75%);background-color:#fff;background-position:0 0,0 0,0 4px,4px -4px,-4px 0;background-size:100% 100%,8px 8px,8px 8px,8px 8px,8px 8px;outline:none;width:100%;height:10px}.alphaSlider_OT2sD::-webkit-slider-thumb{appearance:none;border-radius:var(--default-border-radius);background:var(--primary-color);width:6px;height:20px;box-shadow:var(--card-shadow);cursor:pointer}.alphaSlider_OT2sD::-moz-range-thumb{border-radius:var(--default-border-radius);background:var(--primary-color);width:6px;height:20px;box-shadow:var(--card-shadow);cursor:pointer}.hexInput_zQw4s{border-radius:var(--default-border-radius);border:1px solid var(--border-color);background:var(--input-background);width:100%;color:var(--text-color);box-sizing:border-box;outline:none;padding:5px 8px;font-family:monospace;font-size:13px}.hexInput_zQw4s:focus{border-color:var(--primary-color)}.modal_L-Fkd{border-radius:var(--default-border-radius);background:var(--background-modal);color:var(--text-color);font-family:var(--default-font);box-sizing:border-box;transform-origin:bottom;max-width:95%;max-height:95%;padding:16px;animation:.2s slideIn_RVIHR,.3s forwards fadeIn_XSuIE;position:relative;overflow:auto}@media not (--breakpoint-desktop){.modal_L-Fkd{max-width:100%;max-height:100%}}.modal-container_qwKIm{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}@media (--breakpoint-tablet){.modal-container_qwKIm{z-index:1}}.modal-header_DhsRr{justify-content:space-between;gap:8px;margin-bottom:16px;display:flex}.modal-header_DhsRr div{text-overflow:ellipsis;overflow:hidden}.modal-header_DhsRr svg{cursor:pointer}.modal-wrapper_r5wzq{opacity:0;background:#00000052;width:100%;height:100%;transition:all .3s ease-in-out;position:fixed;top:0;left:0}.modal-wrapper-shown_F0BgK{opacity:1}@keyframes slideIn_RVIHR{0%{transform:scale(0)}to{transform:scale(.99)}}@keyframes fadeIn_XSuIE{0%{opacity:0}to{opacity:1}}.datePickerMonth-item_30WWy{aspect-ratio:1;justify-content:center;align-items:center;margin:1px 0;display:flex}.datePickerMonth-content_9bbSs{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid}.datePickerMonth-day_SaASA{cursor:pointer}.datePickerMonth-day-today_RXOIr{background-color:var(--background-accent-light);border-radius:var(--default-border-radius)}.datePickerMonth-day-selected_yMF-v{background-color:var(--primary-color);color:var(--text-on-primary);border-radius:0}.datePickerMonth-day-selected-start_ftVeI{border-top-left-radius:var(--default-border-radius);border-bottom-left-radius:var(--default-border-radius)}.datePickerMonth-day-selected-end_MZ2qy{border-top-right-radius:var(--default-border-radius);border-bottom-right-radius:var(--default-border-radius)}.datePickerMonth-day-disabled_4t0Ci{filter:brightness(.5);cursor:not-allowed}.datePickerMonth-placeholder_gy1Yx{-webkit-user-select:none;user-select:none;pointer-events:none}.infiniteBlock_dFv-h{max-height:none}.spinner-wrapper_hsgWz{justify-content:center;align-items:center;padding:4px 0;display:flex}.spinner_VjUS2{width:32px;height:32px}.required-mark_fy7Fm{color:var(--error-font-color);padding:0 0 0 4px}.dropdown_XTshY{position:relative}.dropdown-label_TIpeK{display:flex}.dropdown-label-column_cMCBc{flex-direction:column}.dropdown-label-text_u-UKq{white-space:nowrap;color:var(--text-color);align-items:center;margin-bottom:5px;margin-right:5px;font-size:12px;display:flex;position:absolute;top:-15px}.dropdown-input_WiPcb{cursor:pointer;background-color:var(--input-background);border-radius:var(--default-border-radius);position:relative}.dropdown-input-plain_Ap12N{background:0 0}.dropdown-input_WiPcb:focus-within{outline:none}.dropdown-input-button_ziKKi{font-family:inherit;font-size:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;text-align:left;width:100%;color:var(--text-color);background-color:#0000;border:none;line-height:20px;overflow:hidden;padding:7.5px 20% 7.5px 7.5px!important}.dropdown-input-button-disabled_JEaO-{background-color:var(--disabled-input-color);color:var(--disabled-font-color);border-radius:var(--default-border-radius)}.dropdown-input-button_ziKKi:focus{outline:none}.dropdown-input-button-icon_jl7EY{float:right;right:var(--spacing-s);color:var(--text-color);cursor:pointer;background-color:#0000;border:none;outline:none;position:absolute;top:50%;transform:translateY(-50%)}.dropdown-input-button-icon-arrow_SFJbx{pointer-events:none;transition:transform .25s}.dropdown-input-button-icon-arrow-open_8yQbZ{transform:rotate(180deg)}.dropdown-input-list_JnMbA{border:1px solid var(--border-color);background-color:var(--background);border-radius:var(--default-border-radius);transform-origin:100% 0;z-index:1;flex-direction:column;width:calc(100% - 1px);max-height:160px;list-style-type:none;transition:transform .25s;display:flex;position:absolute;left:-1px;overflow:hidden auto;transform:scaleY(1)}.dropdown-input-list-on-top_RpQ9v{bottom:56px}.dropdown-input-list-wider_0rbTN{width:max-content!important}.dropdown-input-list-item_EAy5L{cursor:pointer;background-color:var(--background);text-align:left;border:none;border-radius:0;padding:6px;transition:all .3s}.dropdown-input-list-item-active_0dhia{background-color:var(--background-accent)}.dropdown-input-list-item-selected_hShJf{font-weight:500}.dropdown-input-list-item_EAy5L:focus{outline:none}.dropdown-input-list-item_EAy5L:hover{background-color:var(--background-accent)}.dropdown-input-list-item-disabled_3r-Yn{background-color:var(--disabled-input-color);color:var(--disabled-font-color);cursor:not-allowed}.dropdown-input-list-item-disabled_3r-Yn:hover{background-color:var(--disabled-input-color)}.dropdown-input-list-hidden_huNc5{transform:scaleY(0)}.dropdown-fieldset_wQwTf{box-sizing:border-box;border-radius:var(--default-border-radius);border-style:solid;border-width:1px;border-color:var(--border-color);pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;margin:0;padding-left:8px;position:absolute;inset:-10px 0 0}.dropdown-fieldset-legend_a1M4L{white-space:nowrap;max-width:0;padding:0;transition:max-width .2s;display:block}.dropdown-fieldset-legend-active_bnR5F{max-width:300px}.dropdown-fieldset-legend_a1M4L span{opacity:0;padding:5px;font-size:13px}.dropdown-placeholder_QYMPZ{opacity:0;transition:all .2s;position:absolute;top:8px;left:7px}.dropdown-placeholder-shown_-IkNH{animation:.2s .3s forwards fadeIn_oMJZj}.dropdown-matLabel_iHQnt{pointer-events:none;-webkit-user-select:none;user-select:none;font-size:16px;transition:all .3s;position:absolute;inset:9px 0 0 7px}.dropdown-matLabel-floating_zY51S{font-size:13px;inset:-9px 0 0 14px}@keyframes fadeIn_oMJZj{0%{opacity:0}to{opacity:.5}}.dropdown-border_9Oaex{outline:1px solid var(--border-color);background-color:var(--input-background);outline:none;transition:border-color}.dropdown-border-focused_Te-ER{outline-color:var(--primary-color);border-color:var(--primary-color)}.dropdown-border-searchFocused_AH67N{outline-color:var(--search-input-color);border-color:var(--search-input-color);outline-width:2px}.dropdown-border-plain_Bbh-3{border-color:#0000;outline-color:#0000}.dropdown-border-invalid_ySVaS,.dropdown-border-invalid_ySVaS:hover,.dropdown-border-error_-JB33{outline-color:var(--error-border-color);border-color:var(--error-border-color)}.datePicker_ZohTp{flex:1;width:100%;min-width:105px;position:relative}.datePicker-header_YmSWE{justify-content:space-between;align-items:center;margin:8px 0;display:flex}.datePicker-header-monthAndYear_b5ntO{display:flex}.datePicker-header-monthAndYear-container_Hcgks{gap:16px;display:flex;position:relative}.datePicker-header-month_jqFHl{width:120px}.datePicker-header-year_4egHF{width:75px}.datePicker-month_7iosT{min-width:185px}.emptyState_KXOIx{justify-content:center;align-items:center;gap:var(--spacing-m);flex-flow:column;display:flex}.fab_hyAAa{--icon-size:18px;border-radius:50%;align-items:stretch;width:56px;height:56px;padding:0;display:flex}.fab_hyAAa>div{border-radius:50%;justify-content:center;align-items:center;width:100%;display:flex}.fab-content_IBiXm{font-size:var(--icon-size);width:var(--icon-size);height:var(--icon-size)}.fab-content_IBiXm svg{width:var(--icon-size);height:var(--icon-size)}.fab-content-container_FQD1x{justify-content:center;align-items:center;display:flex}.fab-size-mini_KP9BD{background:var(--background-accent-light);width:40px;height:40px}.fab_YI34X{opacity:0;border-radius:50%;animation:.3s forwards appear_DL0wm;transform:scale(0);box-shadow:0 3px 5px -1px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.fab-container_8uoYo{position:fixed;bottom:16px;right:16px}@media (--breakpoint-tablet){.fab-container_8uoYo{z-index:2}}.fab-menu_O1WO9{pointer-events:none;-webkit-user-select:none;user-select:none;flex-flow:column-reverse;align-items:center;gap:16px;width:100%;display:flex;position:absolute;top:0;transform:translateY(calc(-100% - 16px))}.fab-menu-backdrop_m9T6a{opacity:0;background:#000;width:0%;height:0%;transition:opacity .4s;position:fixed;top:0;left:0}.fab-menu-backdrop-open_35mlH{opacity:.5;width:100%;height:100%}.fab-menu-entry_rIgXr{cursor:pointer;opacity:0;pointer-events:all;transition:all .2s;position:relative;transform:scale(0)}.fab-menu-entry_rIgXr:nth-child(2){transition-delay:50ms}.fab-menu-entry_rIgXr:nth-child(3){transition-delay:.1s}.fab-menu-entry_rIgXr:nth-child(4){transition-delay:.15s}.fab-menu-entry_rIgXr:nth-child(5){transition-delay:.2s}.fab-menu-entry_rIgXr:nth-child(6){transition-delay:.25s}.fab-menu-entry_rIgXr:nth-child(7){transition-delay:.3s}.fab-menu-entry-shown_066HC{opacity:1;transform:scale(1)}.fab-menu-entry-label_pXdDf{background:var(--background-accent-light);border-radius:var(--default-border-radius);padding:4px 8px}.fab-menu-entry-label-container_oeKI5{align-items:center;width:max-content;height:100%;margin-left:-8px;display:flex;position:absolute;transform:translate(-100%)}.fab-icon_5Fp-6{justify-content:center;align-items:center;width:100%;height:100%;transition:all .4s;display:flex;position:relative}.fab-icon-menuOpen_Jp8Qb{transform:rotate(225deg)}.fab-icon-content_o0VDx{opacity:0;width:18px;height:18px;transition:opacity .3s;position:absolute}.fab-icon-content-shown_oY19H{opacity:1}@keyframes appear_DL0wm{to{opacity:1;transform:scale(1)}}.iconPicker_xJJmG{border-radius:var(--default-border-radius);border:1px solid #0000}.iconPicker-label_VEB2X{font-size:var(--text-small-font-size);margin-bottom:8px}.iconPicker-item_iJWDN{background:var(--background-accent);cursor:pointer;width:24px;height:24px;stroke:var(--text-color);border-radius:200px;justify-content:center;align-items:center;padding:8px;display:flex;position:relative}.iconPicker-item_iJWDN:focus-visible{outline:1px solid var(--primary-color)}.iconPicker-item-container_-1WT5{flex-wrap:wrap;justify-content:space-around;gap:8px 14px;display:flex}.iconPicker-item-selected_GQ-I1{background:var(--primary-color)}.iconPicker-error_23m9v{border-color:red}.inputDropdown_UdYMa{position:relative}.dropdown_-M5-x{border-radius:var(--default-border-radius);background:var(--background-modal);width:fit-content;max-width:240px;box-shadow:var(--card-shadow);box-sizing:border-box;transform-origin:0 0;opacity:0;z-index:2;max-height:200px;transition:all .1s;position:fixed;overflow:auto;transform:scale(.95)}.dropdown-shown_H2rFU{opacity:1;transform:scale(1)}.dropdown-item_JRgbt{z-index:0;cursor:pointer;outline:none;padding:8px}.dropdown-item_JRgbt:hover,.dropdown-item_JRgbt:focus,.dropdown-item-highlighted_1ZENP{background:var(--background-accent)}.dropdown-category_OMT0E{padding:16px 8px 4px}.board_6KRdw{gap:var(--spacing-s);align-items:flex-start;width:100%;display:flex;overflow-x:auto}.column_NrNeF{background:var(--background-accent-light);border-radius:var(--default-border-radius);box-shadow:var(--card-shadow);border:2px solid #0000;flex-direction:column;flex:1 1 0;transition:border-color .15s,background .15s;display:flex}.column-empty_5KYsJ{flex:0 1 0;min-width:140px}.column-over_sO7oD{border-color:var(--primary-lighter);background:var(--background-accent)}.column-header_PLeKG{padding:var(--spacing-m) var(--spacing-l);background:var(--background-accent);border-radius:var(--default-border-radius) var(--default-border-radius) 0 0;font-size:var(--header-small-font-size);font-weight:var(--header-font-weight);color:var(--text-color);border-bottom:1px solid var(--border-color)}.column-items_xY5er{padding:var(--spacing-m);gap:var(--spacing-m);flex-direction:column;flex:1;min-height:80px;display:flex}.item_T8CJK{cursor:grab;touch-action:none}.item_T8CJK:active{cursor:grabbing}.item-dragging_iWurw{opacity:.4}.dragOverlay_DSyKz{border-radius:var(--default-border-radius);cursor:grabbing;box-shadow:0 10px 30px #00000040, var(--card-shadow)}.iconLoading_wovj4{-webkit-user-select:none;user-select:none;pointer-events:none;--draw-duration:.8s;--delay:.4s;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.iconLoading_wovj4 svg{stroke-dasharray:14;stroke-dashoffset:14px;aspect-ratio:1;width:200px;animation:calc(var(--draw-duration) * 3) spin-to-oblivion_0tZtm var(--delay) infinite;stroke:var(--primary-color);stroke-linecap:round;transform:rotate(0)}.iconLoading-first_SBwP3{animation:calc(var(--draw-duration) * 3) draw-line_1NiWA var(--delay) infinite}.iconLoading-second_nHrW3{animation:calc(var(--draw-duration) * 3) draw-line-two_HmaHl var(--delay) infinite}@keyframes draw-line_1NiWA{33%{stroke-dashoffset:0}95%{stroke-dashoffset:0}96%{stroke-dashoffset:14px}}@keyframes draw-line-two_HmaHl{33%{stroke-dashoffset:14px}66%{stroke-dashoffset:0}95%{stroke-dashoffset:0}96%{stroke-dashoffset:14px}}@keyframes spin-to-oblivion_0tZtm{50%{transform:rotate(180deg)}75%{transform:rotate(180deg)scale(0)}to{transform:rotate(180deg)scale(0)}}.arrows_yjRlc{border-left:1px solid var(--border-color);flex-direction:column;align-self:stretch;margin:4px 0;display:flex}.arrowBtn_DbJoa{cursor:pointer;color:var(--text-dark);background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:0 6px;font-size:.55rem;line-height:1;transition:color .15s,background .15s;display:flex}.arrowBtn_DbJoa:hover{color:var(--primary-color);background:var(--background-accent-light)}.arrowBtn_DbJoa:active{color:var(--primary-lighter)}.optionPicker_Yx82s{gap:var(--spacing-m);border-radius:var(--default-border-radius);border:1px solid var(--border-color);justify-content:space-around;width:100%;display:flex;position:relative;overflow:hidden}.optionPicker-chip_ywtvr{background:var(--primary-color);border-radius:var(--default-border-radius);height:100%;transition:left .25s ease-in-out,width .25s ease-in-out;position:absolute;top:0;left:0}.optionPicker-option_uq0vK{text-align:center;cursor:pointer;width:100%;height:100%;padding:var(--spacing-m);text-overflow:ellipsis;border-radius:var(--default-border-radius);transition:color .25s;display:block;position:relative;overflow:hidden}.optionPicker-option_uq0vK:focus{outline:var(--primary-color) solid 2px;outline-offset:-2px}.optionPicker-option-active_yUECW{color:var(--text-on-primary)}.overscroll_Ij750{-ms-overflow-style:none;scrollbar-width:none;height:100vh;overflow:auto}.overscroll_Ij750::-webkit-scrollbar{display:none}.overscroll-header_S6vYc{width:100%;position:absolute;bottom:0}.overscroll-header-centered_8VlsP{justify-content:center;align-items:center;display:flex}.overscroll-header-container_iignp{position:relative}.progressBar_LO0sX{border-radius:var(--default-border-radius);background-color:#e0e0e0;align-items:center;min-width:100px;min-height:10px;display:flex;overflow:hidden}.progressBar-fill_rt32j{background-color:var(--primary-color);align-items:center;width:0;height:-webkit-fill-available;height:-moz-available;height:stretch;transition:width .3s;display:flex;overflow:hidden}.progressBar-fill-end_71wL3{border-radius:0 var(--default-border-radius) var(--default-border-radius) 0}.progressBar-label_jWud2{color:#fff;text-overflow:ellipsis;white-space:nowrap;padding:0 5px;font-size:12px;overflow:hidden}.progressBar-label-custom_sSump{mix-blend-mode:difference}.roomDrawer_SJj4-{border:1px solid var(--border-color);border-radius:var(--default-border-radius);background:var(--background);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;overflow:hidden}.roomDrawer-toolbar_55H5p{background:var(--background-accent);border-bottom:1px solid var(--border-color);align-items:center;gap:4px;padding:6px 8px;display:flex}.roomDrawer-toolbar-sep_nJeh8{flex:1}.roomDrawer-toolbar-btn_2qinY{border-radius:var(--default-border-radius);width:32px;height:32px;color:var(--text-dark);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:13px;transition:background .12s,color .12s;display:flex}.roomDrawer-toolbar-btn_2qinY:hover:not(:disabled){background:var(--background-accent-light);color:var(--text-color)}.roomDrawer-toolbar-btn_2qinY:disabled{opacity:.35;cursor:not-allowed}.roomDrawer-toolbar-btn-active_4XX25{background:var(--primary-accent);color:var(--primary-color);border-color:var(--primary-lighter)}.roomDrawer-toolbar-zoomLabel_HMkb5{border-radius:var(--default-border-radius);min-width:40px;height:32px;color:var(--text-dark);cursor:pointer;text-align:center;background:0 0;border:1px solid #0000;padding:0 4px;font-size:11px}.roomDrawer-toolbar-zoomLabel_HMkb5:hover{background:var(--background-accent-light);color:var(--text-color)}.roomDrawer-canvas_Y18uD{cursor:crosshair;-webkit-user-select:none;user-select:none;width:100%;display:block}.roomDrawer-canvas-select_M43-x{cursor:default}.roomDrawer-info_qwC6L{background:var(--background-accent);border-top:1px solid var(--border-color);align-items:center;gap:8px;padding:6px 8px;display:flex}.roomDrawer-info-label_8I9hB{color:var(--text-dark);white-space:nowrap;font-size:12px}.roomDrawer-info-input_YAl-K{border:1px solid var(--border-color);border-radius:var(--default-border-radius);background:var(--background);max-width:220px;height:28px;color:var(--text-color);flex:1;padding:0 8px;font-size:13px}.roomDrawer-info-input_YAl-K:focus{border-color:var(--primary-color);outline:none}.roomDrawer-info-spacer_cOj96{flex:1}.roomDrawer-info-delete_TSBUN{border:1px solid var(--border-color);border-radius:var(--default-border-radius);width:28px;height:28px;color:var(--text-dark);cursor:pointer;background:0 0;justify-content:center;align-items:center;font-size:12px;transition:background .12s,color .12s,border-color .12s;display:flex}.roomDrawer-info-delete_TSBUN:hover{color:#fff;background:#e53935;border-color:#e53935}.roomDrawer-hint_3WTFa{color:var(--text-dark);background:var(--background-accent);border-top:1px solid var(--border-color);padding:4px 8px;font-size:11px}.roomDrawer-info-doorsBtn_oK5Uf{border:1px solid var(--border-color);border-radius:var(--default-border-radius);height:28px;color:var(--text-dark);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:5px;padding:0 8px;font-size:12px;transition:background .12s,color .12s;display:flex}.roomDrawer-info-doorsBtn_oK5Uf:hover{background:var(--background-accent-light);color:var(--text-color)}.roomDrawer-doorPanel_e-Tl9{background:var(--background-accent);border-top:1px solid var(--border-color);flex-direction:column;display:flex}.roomDrawer-doorPanel-header_--iXz{border-bottom:1px solid var(--border-color);align-items:center;gap:8px;padding:6px 8px;display:flex}.roomDrawer-doorPanel-icon_KxaVY{color:var(--text-dark);font-size:12px}.roomDrawer-doorPanel-title_8nOZS{color:var(--text-dark);flex:1;font-size:12px}.roomDrawer-doorPanel-done_ejQkx{border:1px solid var(--border-color);border-radius:var(--default-border-radius);height:26px;color:var(--text-dark);cursor:pointer;background:0 0;align-items:center;gap:5px;padding:0 10px;font-size:12px;transition:background .12s,color .12s;display:flex}.roomDrawer-doorPanel-done_ejQkx:hover{background:var(--primary-accent);color:var(--primary-color);border-color:var(--primary-lighter)}.roomDrawer-doorPanel-list_rDou7{flex-direction:column;gap:4px;max-height:130px;padding:6px 8px;display:flex;overflow-y:auto}.roomDrawer-doorPanel-item_U-3-B{align-items:center;gap:6px;display:flex}.roomDrawer-doorPanel-label_qSYqY{color:var(--text-color);min-width:48px;font-size:12px}.roomDrawer-doorPanel-widthLabel_jXv7D{color:var(--text-dark);font-size:11px}.roomDrawer-doorPanel-empty_LcDw0{color:var(--text-dark);padding:2px 0;font-size:11px;font-style:italic}.roomDrawer-canvas-door_qzCIa{cursor:crosshair}.doorGap_KrIuB{stroke:var(--background);stroke-width:4px;stroke-linecap:butt;pointer-events:none}.doorMarker_-N63z{fill:var(--primary-color);stroke:var(--background);stroke-width:.8px;pointer-events:all;cursor:grab}.doorMarker_-N63z:active{cursor:grabbing}.gridLine_V-rxw{stroke:var(--text-color);stroke-width:.3px;opacity:.12}.roomFill_JnJ0J{fill:var(--primary-accent);fill-opacity:.08;stroke:none}.roomFill-selected_IfIRr{fill-opacity:.22}.roomStroke_S18UH{fill:none;stroke:var(--primary-color);stroke-width:1.5px;stroke-linejoin:round}.roomStroke-selected_fm19u{stroke:var(--primary-lighter);stroke-width:2px}.roomText_6fIeU{fill:var(--text-color);stroke:none;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:7px}.doorPanel_raCv0{stroke:var(--primary-color);stroke-width:1.5px;stroke-linecap:round}.doorPanel-selected_5DG7g{stroke:var(--primary-lighter);stroke-width:2px}.doorSwing_Tbt9D{fill:none;stroke:var(--primary-color);stroke-width:.8px;stroke-dasharray:3 2;pointer-events:none}.doorSwing-selected_fFte5{stroke:var(--primary-lighter)}.preview_seIZY{fill:var(--primary-accent);stroke:var(--primary-color);stroke-width:1px;stroke-dasharray:4 2;pointer-events:none}.polyCloseTarget_snjYx{fill:var(--primary-color);opacity:.5;pointer-events:none}.polyVertex_fw0nX{fill:var(--primary-color);stroke:none;pointer-events:none}.vertexHandle_-z7g5{fill:var(--background);stroke:var(--primary-color);stroke-width:1.5px;cursor:grab;pointer-events:all}.vertexHandle_-z7g5:hover{fill:var(--primary-accent);stroke:var(--primary-lighter)}.roomViewer-containerLoading_BL3M-{opacity:.4;pointer-events:none}.roomViewer-container_YlmB8 svg{stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1}.roomViewer-container_YlmB8 svg path{stroke:var(--primary-color);fill:#0000}.roomViewer-container_YlmB8 svg path[id=background]{stroke:none;fill:#0000;cursor:pointer}.roomViewer-container_YlmB8 svg [id^=room]{cursor:pointer}.roomViewer-container_YlmB8 svg text{fill:var(--text-color);stroke:none;font-size:5px}.roomViewer-active_gG6wf{stroke:#18f810!important;fill:#20f81013!important}.roomViewer-active_gG6wf path{stroke:#18f810!important;fill:none!important}.roomViewer-active_gG6wf path[id=background]{stroke:none!important;fill:#20f81013!important}.roomViewer-selected_CpdMj{stroke:#18f810!important}.roomViewer-selected_CpdMj path{stroke:#18f810!important;fill:none!important}.roomViewer-selected_CpdMj path[id=background]{stroke:none!important;fill:#20f81013!important}.roomViewer-selected_CpdMj text{stroke:none;fill:var(--text-color)}.roomViewer-tint_O9JrM,.roomViewer-tint_O9JrM path{fill:#20f81013!important}.roomViewer-tint_O9JrM text{stroke:none;fill:none}.roomViewer-actions_4cA74{justify-content:center;gap:8px;width:100%;font-size:16px;display:flex}.roomViewer-actions_4cA74 svg{cursor:pointer}.roomViewer-header_XEHCO{margin-bottom:4px}.scrollbarProvider_IMBFu{display:contents}.scrollbarProvider_IMBFu *{scrollbar-width:thin;scrollbar-color:var(--background-accent-light) var(--background)}.scrollbarProvider_IMBFu ::-webkit-scrollbar{width:12px}.scrollbarProvider_IMBFu ::-webkit-scrollbar-track{background:0 0}.scrollbarProvider_IMBFu ::-webkit-scrollbar-thumb{background-color:var(--background-accent-light);border:3px solid var(--background);border-radius:10px}.resultCount_Sn48Q{color:var(--text-dark);margin:6px 0 0;font-size:12px}.stepper_kiS2A{-webkit-user-select:none;user-select:none;align-items:center;margin-bottom:30px;display:flex}.stepper-clickable_Nm6fP{cursor:pointer}.stepper-vertical_2y9rg{flex-flow:column}.stepper-connector_J2FwZ{background-position:0%;background-size:200% 200%;background-image:repeating-linear-gradient(90deg, var(--primary-lighter) 0%, var(--primary-lighter) 50%, var(--primary-color) 50%, var(--primary-color) 100%);width:50px;height:1px;transition:all .6s}.stepper-connector-vertical_vwY38{background-position:0 100%;background-image:repeating-linear-gradient(0deg, var(--primary-lighter) 0%, var(--primary-lighter) 50%, var(--primary-color) 50%, var(--primary-color) 100%);width:3px;height:100px}.stepper-connector-filled_W8UZS{background-position:-100% 0;height:3px}.stepper-entry_KD4JJ{box-sizing:border-box;border:1px solid var(--primary-lighter);width:40px;height:40px;color:var(--primary-lighter);border-radius:var(--default-border-radius);box-shadow:inset 0px 0px 0px var(--primary-color);justify-content:center;align-items:center;transition:all .4s;display:flex;position:relative;transform:none}.stepper-entry-active_V1aRt{border:2px solid var(--primary-color);color:var(--primary-color);transform:scale(1.1)}.stepper-entry-done_M3wb5{box-shadow:inset 0px 0px 0px 30px var(--primary-color);transform:none}.stepper-entry-number_J168Q{stroke-dasharray:5;stroke-dashoffset:5px}.stepper-entry-number-done_-m7sD{animation:.4s .2s forwards showCheckmark_Rd0oW}@keyframes showCheckmark_Rd0oW{0%{stroke-dashoffset:5px}to{stroke-dashoffset:0}}.stepper-entry-label_b94eg{text-align:center;width:140px;position:absolute;top:45px;left:0;transform:translate(-50px)}.stepper-entry-label-vertical_Zm8i4{text-align:left;top:0;left:100px}.gifPreview_-ECUZ{aspect-ratio:1;--gif-preview-gap-size:5px;gap:var(--gif-preview-gap-size);flex-wrap:wrap;justify-content:center;width:min(420px,90vw);display:flex;position:relative;overflow:auto}.gifPreview-image_Aq7-a{background-position:50%;background-size:cover;width:100%;height:100%}.gifPreview-image-container_ycypL{aspect-ratio:1;background:linear-gradient(45deg, var(--primary-color) 10%, var(--primary-lighter), var(--primary-accent), var(--primary-color) 85%);border-radius:var(--default-border-radius);width:min(140px,33.3%);width:min(calc(140px - var(--gif-preview-gap-size)), calc(33.3% - var(--gif-preview-gap-size)));background-size:500% 500%;animation:1s linear infinite gradientBottomLeftToTopRight_wo6HB;overflow:hidden}.gifView_Fa2zj{justify-content:center;align-items:center;display:flex;position:relative}.gifView_Fa2zj img{border-radius:var(--default-border-radius);max-width:100%;overflow:hidden}.gifView-loading_LfNJr{background:linear-gradient(45deg, var(--primary-color) 10%, var(--primary-lighter), var(--primary-accent), var(--primary-color) 85%);border-radius:var(--default-border-radius);background-size:500% 500%;width:100%;height:100%;animation:1s linear infinite gradientBottomLeftToTopRight_JR6aS;position:absolute;top:0;left:0;overflow:hidden}.tenorPicker-selected_IfR2z{margin-top:8px}.tenorPicker-modal-content_Vkolf{gap:var(--spacing-m);flex-flow:column;display:flex}.tenorPicker-suggestions-container_kJCj5{max-width:420px}.tenorPicker-suggestions-item_Rl99M{cursor:pointer}.colorFade_eLv2g *{transition:background .3s ease-in-out}.container_krdsW{z-index:9999;pointer-events:none;box-sizing:border-box;flex-direction:column;gap:8px;padding:16px;display:flex;position:fixed}.container-top-left_zfDTO{align-items:flex-start;top:0;left:0}.container-top-center_CUIGc{align-items:center;top:0;left:50%;transform:translate(-50%)}.container-top-right_sB0KU{align-items:flex-end;top:0;right:0}.container-bottom-left_toJdF{flex-direction:column-reverse;align-items:flex-start;bottom:0;left:0}.container-bottom-center_Bkf9m{flex-direction:column-reverse;align-items:center;bottom:0;left:50%;transform:translate(-50%)}.container-bottom-right_oRSMc{flex-direction:column-reverse;align-items:flex-end;bottom:0;right:0}.toast_qBi4o{pointer-events:all;border-radius:var(--default-border-radius);background:var(--background-modal);color:var(--text-color);font-family:var(--default-font);box-shadow:var(--card-shadow);box-sizing:border-box;align-items:flex-start;gap:10px;min-width:240px;max-width:380px;padding:12px 14px;animation:.25s forwards toastSlideDown_4lKWq;display:flex;position:relative;overflow:hidden}.toast-bottom_X8ZIe{animation:.25s forwards toastSlideUp_SGR5X}.toast-dismissing_xKmB-{animation:.2s forwards toastFadeOut_cvHYp}.toast-info_RlLli{border-left:3px solid var(--info-color,#3b82f6)}.toast-info_RlLli .toastIcon_xU1nA{color:var(--info-color,#3b82f6)}.toast-success_I1g1B{border-left:3px solid var(--success-color)}.toast-success_I1g1B .toastIcon_xU1nA{color:var(--success-color)}.toast-error_MloFO{border-left:3px solid var(--error-color,#ef4444)}.toast-error_MloFO .toastIcon_xU1nA{color:var(--error-color,#ef4444)}.toast-warn_pP6HB{border-left:3px solid var(--warn-color)}.toast-warn_pP6HB .toastIcon_xU1nA{color:var(--warn-color)}.toast-default_RTt2L{border-left:3px solid var(--primary-color)}.toast-default_RTt2L .toastIcon_xU1nA{color:var(--primary-color)}.toastIcon_xU1nA{flex-shrink:0;margin-top:1px;font-size:15px}.toastContent_gvyIv{flex:1;font-size:14px;line-height:1.4}.toastCloseButton_n-YST{cursor:pointer;color:var(--text-dark);opacity:.6;background:0 0;border:none;flex-shrink:0;margin-top:1px;padding:0;font-size:13px;transition:opacity .15s}.toastCloseButton_n-YST:hover{opacity:1}.toastProgressBar_6vBs6{opacity:.35;transform-origin:0;width:100%;height:3px;animation:toastShrink_h89HS var(--toast-duration) linear forwards;background:currentColor;position:absolute;bottom:0;left:0}@keyframes toastSlideDown_4lKWq{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes toastSlideUp_SGR5X{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes toastFadeOut_cvHYp{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@keyframes toastShrink_h89HS{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.virtualList_qBPNc{box-sizing:border-box;color:var(--text-color);font-family:var(--default-font);overflow-anchor:none;scrollbar-gutter:stable;overscroll-behavior:contain;isolation:isolate;overflow-y:auto}.virtualList-drag-clone_artnC{box-sizing:border-box;contain:layout paint style;cursor:grabbing;transition:none}.virtualList-header_0Ellb{z-index:1;background:var(--background-accent);border-bottom:1px solid var(--border-color);box-sizing:border-box;display:grid;position:sticky;top:0}.virtualList-header-cell_c8NGV{color:var(--text-dark);text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;padding:8px 12px;font-size:13px;font-weight:600;overflow:hidden}.virtualList-header-toggle_pYFxD{cursor:pointer;color:var(--text-dark);border-radius:var(--default-border-radius);background:0 0;border:none;align-items:center;padding:4px 8px;transition:background .15s;display:flex}.virtualList-header-toggle_pYFxD:hover{background:var(--background-accent-light);color:var(--text-color)}.virtualList-toggle-wrapper_JP32M{align-items:center;padding:0 4px;display:flex;position:absolute;top:0;bottom:0;right:0}.virtualList-toggle-popover_gbpd7{background:var(--background-accent);border:1px solid var(--border-color);border-radius:var(--default-border-radius);box-shadow:var(--card-shadow);min-width:160px;padding:4px 0;position:absolute;top:calc(100% + 4px);right:0}.virtualList-toggle-item_5gu5d{white-space:nowrap;padding:4px 12px;font-size:14px;transition:background .1s}.virtualList-toggle-item_5gu5d:hover{background:var(--background-accent-light)}.virtualList-column-chip_nOqr6{box-sizing:border-box;background:var(--primary-color);color:#fff;pointer-events:none;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:1;display:flex;position:absolute;top:0;right:0}.virtualList-select-cell_s9kAy{box-sizing:border-box;justify-content:center;align-items:center;padding:0 4px;display:flex}.virtualList-body_k-fRr{box-sizing:border-box;position:relative}.virtualList-row_TTY50{border-bottom:1px solid var(--border-color);box-sizing:border-box;cursor:pointer;contain:layout paint style;transition:background .1s}.virtualList-row-no-divider_Ct0gV{border-bottom:none}.virtualList-row_TTY50:hover{background:var(--background-accent-light)}.virtualList-row-no-hover_2d3mH:hover{background:0 0}.virtualList-row-selected_hwEN-,.virtualList-row-selected_hwEN-:hover{background:var(--primary-lighter)}.virtualList-row-draggable_I86ha{cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.virtualList-row-draggable_I86ha:active{cursor:grabbing}.virtualList-row-dragging_6T5tQ{opacity:.4}.virtualList-row-drop-inside_Uhi9n{background:var(--primary-lighter);box-shadow:inset 0 0 0 2px var(--primary-color)}.virtualList-drop-line_EM-g4{background:var(--primary-color);pointer-events:none;z-index:1;height:2px;position:absolute;right:0}.virtualList-drop-line_EM-g4:before{content:"";background:var(--primary-color);border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.virtualList-drop-line-before_n-0iZ{top:-1px}.virtualList-drop-line-after_2dld-{bottom:-1px}.virtualList-reordering_Rt9E3{touch-action:none}.virtualList-reordering_Rt9E3 .virtualList-row_TTY50{-webkit-user-select:none;user-select:none}.virtualList-reordering_Rt9E3 .virtualList-row_TTY50:hover{background:0 0}.virtualList-reordering_Rt9E3 .virtualList-row_TTY50.virtualList-row-selected_hwEN-:hover{background:var(--primary-lighter)}.virtualList-reordering_Rt9E3 .virtualList-row_TTY50.virtualList-row-dragging_6T5tQ{background:0 0}.virtualList-cell_H0zBv{text-overflow:ellipsis;box-sizing:border-box;align-items:center;min-width:0;padding:8px 12px;font-size:14px;display:flex;overflow:hidden}.virtualList-cell_H0zBv[data-fit-key]{white-space:nowrap}.virtualList-loading-full_wzZNM{justify-content:center;align-items:center;height:100%;display:flex}.virtualList-loading-indicator_EJced{justify-content:center;align-items:center;padding:8px 0;display:flex}.virtualList-spinner_apClW{width:32px;height:32px}.wizard_uRBAN{width:100%;height:100%;padding:1px;transition:all .2s;position:relative;overflow:hidden}.wizard-content_lcl4C{height:fit-content;position:absolute}.wizard-content-outOfFrame_Eks4Y *{-webkit-user-select:none;user-select:none;pointer-events:none;visibility:hidden;display:none}.wizard-content-container_yxbCJ{transition:all .6s;display:flex;position:relative}
|
|
3
3
|
/*$vite$:1*/
|
|
4
4
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ChipProps } from './chip.types';
|
|
2
|
-
declare function Chip({ className, thumbnail, text, showRemoveIcon, onClick, onRemove, ...rest }: ChipProps): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare function Chip({ className, thumbnail, text, styleType, showRemoveIcon, onClick, onRemove, ...rest }: ChipProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default Chip;
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { HtmlProps } from '../types/slots.types';
|
|
2
|
+
export declare enum ChipStyleType {
|
|
3
|
+
Default = "default",
|
|
4
|
+
Primary = "primary",
|
|
5
|
+
Info = "info",
|
|
6
|
+
Warn = "warn",
|
|
7
|
+
Error = "error"
|
|
8
|
+
}
|
|
2
9
|
export interface ChipProps extends HtmlProps {
|
|
3
10
|
className?: string;
|
|
4
11
|
text?: string;
|
|
5
12
|
thumbnail?: React.ReactNode;
|
|
13
|
+
styleType?: ChipStyleType;
|
|
6
14
|
showRemoveIcon?: boolean;
|
|
7
15
|
onClick?: () => void;
|
|
8
16
|
onRemove?: () => void;
|
|
@@ -13,6 +13,8 @@ interface UseColumnsArgs<T> {
|
|
|
13
13
|
startIndex: number;
|
|
14
14
|
endIndex: number;
|
|
15
15
|
containerHeight: number;
|
|
16
|
+
/** Re-measure `fit` columns when the container width settles (e.g. after a route transition). */
|
|
17
|
+
containerWidth: number;
|
|
16
18
|
}
|
|
17
19
|
interface UseColumnsResult<T> {
|
|
18
20
|
hasColumns: boolean;
|
|
@@ -26,6 +28,10 @@ interface UseColumnsResult<T> {
|
|
|
26
28
|
setToggleOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
27
29
|
toggleRef: React.RefObject<HTMLDivElement | null>;
|
|
28
30
|
handleToggleColumn: (key: string) => void;
|
|
31
|
+
/** Imperative escape hatch: drop fit-column pins so they re-measure on the
|
|
32
|
+
* next layout. For out-of-band content changes that don't flow through a new
|
|
33
|
+
* `items` array or `columns` set (which reset automatically). */
|
|
34
|
+
recalculateColumns: () => void;
|
|
29
35
|
}
|
|
30
36
|
/**
|
|
31
37
|
* Table-mode column logic: visibility (controlled or uncontrolled, with
|
|
@@ -33,5 +39,5 @@ interface UseColumnsResult<T> {
|
|
|
33
39
|
* `fit`-column width measurement that pins one shared px track across the header
|
|
34
40
|
* and every row grid so they stay aligned.
|
|
35
41
|
*/
|
|
36
|
-
export declare function useColumns<T>({ columns, items, multiSelect, visibleColumnKeys, onVisibleColumnsChange, persistColumnsKey, showColumnToggle, rootRef, startIndex, endIndex, containerHeight, }: UseColumnsArgs<T>): UseColumnsResult<T>;
|
|
42
|
+
export declare function useColumns<T>({ columns, items, multiSelect, visibleColumnKeys, onVisibleColumnsChange, persistColumnsKey, showColumnToggle, rootRef, startIndex, endIndex, containerHeight, containerWidth, }: UseColumnsArgs<T>): UseColumnsResult<T>;
|
|
37
43
|
export {};
|
|
@@ -10,7 +10,6 @@ interface UseVirtualWindowArgs<T> {
|
|
|
10
10
|
overscan: number;
|
|
11
11
|
onLoadMore?: () => Promise<void>;
|
|
12
12
|
loadMoreThreshold: number;
|
|
13
|
-
forwardedRef: React.ForwardedRef<VirtualListHandle>;
|
|
14
13
|
}
|
|
15
14
|
interface UseVirtualWindowResult {
|
|
16
15
|
rootRef: React.RefObject<HTMLDivElement | null>;
|
|
@@ -22,10 +21,14 @@ interface UseVirtualWindowResult {
|
|
|
22
21
|
offsets: number[];
|
|
23
22
|
totalHeight: number;
|
|
24
23
|
containerHeight: number;
|
|
24
|
+
containerWidth: number;
|
|
25
25
|
startIndex: number;
|
|
26
26
|
endIndex: number;
|
|
27
27
|
handleScroll: (e: React.UIEvent<HTMLDivElement>) => void;
|
|
28
28
|
showLoadMoreSpinner: boolean;
|
|
29
|
+
/** The scroll-related imperative methods, for the component to compose into
|
|
30
|
+
* the forwarded handle alongside column controls. */
|
|
31
|
+
scrollApi: Omit<VirtualListHandle, 'recalculateColumns'>;
|
|
29
32
|
}
|
|
30
33
|
/**
|
|
31
34
|
* The generic virtualization engine: viewport measurement, per-row height
|
|
@@ -34,5 +37,5 @@ interface UseVirtualWindowResult {
|
|
|
34
37
|
* scroll handle. Mode-agnostic — knows nothing about columns, selection or
|
|
35
38
|
* dragging.
|
|
36
39
|
*/
|
|
37
|
-
export declare function useVirtualWindow<T>({ items, keys, getItemKey, estimatedRowHeight, rowGap, overscan, onLoadMore, loadMoreThreshold,
|
|
40
|
+
export declare function useVirtualWindow<T>({ items, keys, getItemKey, estimatedRowHeight, rowGap, overscan, onLoadMore, loadMoreThreshold, }: UseVirtualWindowArgs<T>): UseVirtualWindowResult;
|
|
38
41
|
export {};
|
|
@@ -35,6 +35,12 @@ export interface VirtualListHandle {
|
|
|
35
35
|
scrollToTop: (options?: Pick<VirtualListScrollOptions, 'behavior'>) => void;
|
|
36
36
|
/** The underlying scroll container element, for advanced use. */
|
|
37
37
|
getScrollElement: () => HTMLDivElement | null;
|
|
38
|
+
/**
|
|
39
|
+
* Re-measure `fit` columns on the next layout. Call this after an out-of-band
|
|
40
|
+
* content change that doesn't flow through a new `items` array or `columns`
|
|
41
|
+
* set (those reset automatically) — e.g. a cell's content grew in place.
|
|
42
|
+
*/
|
|
43
|
+
recalculateColumns: () => void;
|
|
38
44
|
}
|
|
39
45
|
export type VirtualListSlots = 'root' | 'header' | 'headerCell' | 'headerToggle' | 'togglePopover' | 'toggleItem' | 'body' | 'row' | 'cell' | 'selectCell' | 'loadingIndicator' | 'dropIndicator' | 'columnChip';
|
|
40
46
|
/** Where a tree-reorder drop lands relative to the row it is over. */
|
package/docs/CLAUDE.md
CHANGED
|
@@ -37,7 +37,7 @@ const myTheme: Theme = {
|
|
|
37
37
|
|
|
38
38
|
## FormValidator (for form-connected components)
|
|
39
39
|
|
|
40
|
-
Input, NumberInput, Dropdown, Checkbox all accept a `formValidator` prop. Use it to connect validation state.
|
|
40
|
+
Input, NumberInput, Dropdown, Checkbox, DatePicker, IconPicker, InputDropdown, and Textarea all accept a `formValidator` prop. Use it to connect validation state.
|
|
41
41
|
|
|
42
42
|
```tsx
|
|
43
43
|
import { FormValidator, Validators, Input } from '@ahrowe/ui';
|
|
@@ -47,38 +47,29 @@ const nameValidator = new FormValidator('', [Validators.required(), Validators.m
|
|
|
47
47
|
|
|
48
48
|
// Pass to component — it tracks value, dirty, touched, errors internally
|
|
49
49
|
<Input label="Name" formValidator={nameValidator} />
|
|
50
|
-
|
|
51
|
-
// Read state
|
|
52
|
-
nameValidator.value // current value
|
|
53
|
-
nameValidator.hasError() // true if any error
|
|
54
|
-
nameValidator.getCurrentErrorMessage() // first error message or null
|
|
55
|
-
nameValidator.touched // user has blurred the field
|
|
56
|
-
nameValidator.dirty // value has changed
|
|
57
|
-
|
|
58
|
-
// Validators available
|
|
59
|
-
Validators.required()
|
|
60
|
-
Validators.minLength(n)
|
|
61
|
-
Validators.maxLength(n)
|
|
62
|
-
Validators.email()
|
|
63
|
-
Validators.mustBeNumber()
|
|
64
|
-
Validators.date()
|
|
65
|
-
Validators.website()
|
|
66
|
-
Validators.password() // min 8 chars, 1 letter, 1 digit
|
|
67
|
-
Validators.oneOf([...])
|
|
68
|
-
Validators.multiEmail()
|
|
69
|
-
Validators.bic()
|
|
70
50
|
```
|
|
71
51
|
|
|
72
|
-
For
|
|
52
|
+
For multi-field forms with a single submit handler, use `useFormValidatorGroup`:
|
|
73
53
|
|
|
74
54
|
```tsx
|
|
75
|
-
import {
|
|
55
|
+
import { useFormValidatorGroup, FormValidator, Validators } from '@ahrowe/ui';
|
|
56
|
+
|
|
57
|
+
const form = useFormValidatorGroup(
|
|
58
|
+
{
|
|
59
|
+
name: new FormValidator('', [Validators.required()]),
|
|
60
|
+
email: new FormValidator('', [Validators.required(), Validators.email()]),
|
|
61
|
+
},
|
|
62
|
+
{ onSubmit: async (values) => save(values) }, // values is fully typed
|
|
63
|
+
);
|
|
76
64
|
|
|
77
|
-
|
|
78
|
-
group.
|
|
79
|
-
|
|
65
|
+
<form.Form>
|
|
66
|
+
<Input label="Name" formValidator={form.group.name} />
|
|
67
|
+
<Input label="Email" formValidator={form.group.email} />
|
|
68
|
+
</form.Form>
|
|
80
69
|
```
|
|
81
70
|
|
|
71
|
+
Full reference: see **FormValidator.md** (single field, all built-in validators, custom validators) and **FormValidatorGroup.md** (whole-form submit, validate, reset, server-error mapping) below.
|
|
72
|
+
|
|
82
73
|
## Slot customisation (classNames / styles)
|
|
83
74
|
|
|
84
75
|
Most components expose `classNames` and `styles` props for styling inner elements without fighting CSS specificity.
|
|
@@ -116,6 +107,8 @@ Slot keys per component are documented in each component's doc file below.
|
|
|
116
107
|
@EmptyState.md
|
|
117
108
|
@Fab.md
|
|
118
109
|
@FloatingMenu.md
|
|
110
|
+
@FormValidator.md
|
|
111
|
+
@FormValidatorGroup.md
|
|
119
112
|
@IconPicker.md
|
|
120
113
|
@IdleManager.md
|
|
121
114
|
@InfiniteBlock.md
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# FormValidator
|
|
2
|
+
|
|
3
|
+
**When to use:** Track and validate a single form field's value, dirty/touched state, and errors. Pass the instance to any form-connected component (`Input`, `NumberInput`, `Dropdown`, `Checkbox`, `DatePicker`, `IconPicker`, `InputDropdown`, `Textarea`) via its `formValidator` prop — the component then reads the value and surfaces validation errors automatically. For multi-field forms with submit handling, use `FormValidatorGroup` instead.
|
|
4
|
+
|
|
5
|
+
**Import:** `import { FormValidator, Validators, useFormValidator } from '@ahrowe/ui'`
|
|
6
|
+
**Types:** `import type { ValidatorFunction, ValidationError } from '@ahrowe/ui'`
|
|
7
|
+
|
|
8
|
+
## Basic usage
|
|
9
|
+
|
|
10
|
+
```tsx
|
|
11
|
+
import { FormValidator, Validators, Input } from '@ahrowe/ui';
|
|
12
|
+
|
|
13
|
+
// Create with a default (empty) value and an optional list of validators
|
|
14
|
+
const nameValidator = new FormValidator('', [Validators.required(), Validators.minLength(2)]);
|
|
15
|
+
|
|
16
|
+
// Hand it to a form component — it tracks value, dirty, touched, and errors internally
|
|
17
|
+
<Input label="Name" formValidator={nameValidator} />
|
|
18
|
+
|
|
19
|
+
// Read state at any time
|
|
20
|
+
nameValidator.value // current value (typed as T)
|
|
21
|
+
nameValidator.hasError() // true if any error is present
|
|
22
|
+
nameValidator.hasError('required') // true if the error with id 'required' is present
|
|
23
|
+
nameValidator.getCurrentErrorMessage() // first error message, or null
|
|
24
|
+
nameValidator.touched // user has entered and left the field
|
|
25
|
+
nameValidator.dirty // value has changed since creation
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
> **The first constructor argument is the field's _default (empty)_ value** — what the field holds when nothing has been entered, **not** an existing record's value. Use the type's natural empty value:
|
|
29
|
+
>
|
|
30
|
+
> | Field | Default value |
|
|
31
|
+
> |-------|---------------|
|
|
32
|
+
> | string (text, email, …) | `''` |
|
|
33
|
+
> | `Date` | `null` |
|
|
34
|
+
> | number | `undefined` (or `0`) |
|
|
35
|
+
> | checkbox / boolean | `false` |
|
|
36
|
+
> | single-select id | `null` |
|
|
37
|
+
>
|
|
38
|
+
> To pre-fill fields when **editing an existing entity**, don't seed values here — pass them as `initialValues` on a `FormValidatorGroup` (see [FormValidatorGroup.md](FormValidatorGroup.md)). That keeps the empty value as the validator's true default so `reset()` works correctly.
|
|
39
|
+
|
|
40
|
+
## Re-rendering a function component when the value changes
|
|
41
|
+
|
|
42
|
+
A `FormValidator` lives outside React state, so changing it does **not** by itself re-render a function component. When you read `validator.value` / `validator.hasError()` directly in render (rather than only handing the instance to a form component), subscribe with `useFormValidator` so the component re-renders on every change:
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
import { useMemo } from 'react';
|
|
46
|
+
import { FormValidator, Validators, useFormValidator, Input } from '@ahrowe/ui';
|
|
47
|
+
|
|
48
|
+
function NameField() {
|
|
49
|
+
// Create once — never `new FormValidator(...)` inline in render without memoising
|
|
50
|
+
const validator = useMemo(() => new FormValidator('', [Validators.required()]), []);
|
|
51
|
+
useFormValidator(validator); // re-renders this component on value/error/touched/dirty changes
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<>
|
|
55
|
+
<Input label="Name" formValidator={validator} />
|
|
56
|
+
<button disabled={validator.hasError()}>Save</button>
|
|
57
|
+
</>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`useFormValidator(validator)` returns the same instance for convenience and accepts `null`.
|
|
63
|
+
|
|
64
|
+
## Typing the value
|
|
65
|
+
|
|
66
|
+
`FormValidator<T>` is generic. Pass the value type for non-string fields, and give each its natural empty value as the default:
|
|
67
|
+
|
|
68
|
+
```tsx
|
|
69
|
+
const ageValidator = new FormValidator<number | undefined>(undefined, [Validators.required()]);
|
|
70
|
+
const dateValidator = new FormValidator<Date | null>(null);
|
|
71
|
+
const agreedValidator = new FormValidator<boolean>(false, [Validators.required()]);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Instance API
|
|
75
|
+
|
|
76
|
+
| Member | Signature | Description |
|
|
77
|
+
|--------|-----------|-------------|
|
|
78
|
+
| `value` | `T` (get/set) | Current value. The setter assigns **without** validating — prefer `set()` for user input. |
|
|
79
|
+
| `set` | `(newValue: T, wasUser = true) => this` | Assign value, mark dirty when `wasUser`, then re-validate. Chainable. |
|
|
80
|
+
| `validate` | `() => void` | Clear errors and run every validator against the current value. |
|
|
81
|
+
| `touched` | `boolean` (get/set) | User has entered and left the field. |
|
|
82
|
+
| `dirty` | `boolean` (get/set) | Value changed since creation. |
|
|
83
|
+
| `errors` | `ValidationError[]` (get) | All current errors (`{ id, message }`). |
|
|
84
|
+
| `hasError` | `(id?: string) => boolean` | Any error when called with no arg; a specific error by `id` otherwise. |
|
|
85
|
+
| `getCurrentErrorMessage` | `() => string \| null` | First error message, or `null`. |
|
|
86
|
+
| `addError` | `(error: ValidationError) => void` | Push an error manually (e.g. a server-side error). |
|
|
87
|
+
| `removeErrors` | `(ids: string[]) => void` | Remove errors by id. |
|
|
88
|
+
| `clearErrors` | `() => void` | Remove all errors. |
|
|
89
|
+
| `label` | `string` (get/set) | Field label; form components set this and validators receive it (used by `required()` messages). |
|
|
90
|
+
| `validators` | `ValidatorFunction[]` | The active validator list — mutable. |
|
|
91
|
+
| `registerOnUpdateListener` | `(cb: () => void) => void` | Subscribe to changes (what `useFormValidator` uses internally). |
|
|
92
|
+
| `removeOnUpdateListener` | `(cb: () => void) => void` | Unsubscribe. |
|
|
93
|
+
|
|
94
|
+
> Validators run once in the constructor, so `hasError()` reflects the initial value immediately.
|
|
95
|
+
|
|
96
|
+
## Built-in validators
|
|
97
|
+
|
|
98
|
+
All live as static methods on `Validators`. Each returns a `ValidatorFunction` and accepts an optional custom `errorMsg` as the last argument to override the default message.
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
Validators.required(errorMsg?) // value must be present (0 counts as present)
|
|
102
|
+
Validators.minLength(min, errorMsg?) // string length >= min (also fails on empty)
|
|
103
|
+
Validators.maxLength(max, errorMsg?) // string length <= max
|
|
104
|
+
Validators.email(errorMsg?) // valid email address
|
|
105
|
+
Validators.multiEmail(errorMsg?) // comma/semicolon-separated list of emails
|
|
106
|
+
Validators.mustBeNumber(errorMsg?) // parses as a number
|
|
107
|
+
Validators.oneOf(allowedValues, errorMsg?) // value is in the allowed array
|
|
108
|
+
Validators.typeOf(allowedTypes, errorMsg?) // typeof value matches (string or string[])
|
|
109
|
+
Validators.date(errorMsg?) // valid date string (DD.MM.YYYY or ISO)
|
|
110
|
+
Validators.dateObject(errorMsg?) // an object with an `isValid` flag (e.g. a date wrapper)
|
|
111
|
+
Validators.website(errorMsg?) // valid URL
|
|
112
|
+
Validators.bic(errorMsg?) // valid BIC/SWIFT code
|
|
113
|
+
Validators.minLetters(min, errorMsg?) // at least `min` letters (a–z, incl. äöüß)
|
|
114
|
+
Validators.minDigits(min, errorMsg?) // at least `min` digits
|
|
115
|
+
Validators.password(errorMsg?) // min 8 chars, ≥1 letter, ≥1 digit
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
> **Empty values pass most validators.** Except `required()` and `minLength()`, every validator returns `null` for an empty value — so a field is "valid when empty" unless you also add `Validators.required()`. Combine them:
|
|
119
|
+
> `new FormValidator('', [Validators.required(), Validators.email()])`.
|
|
120
|
+
|
|
121
|
+
## Custom validators
|
|
122
|
+
|
|
123
|
+
A validator is any `(value, label?) => ValidationError | null` — return `null` when valid, or `{ id, message }` when not:
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
import type { ValidatorFunction } from '@ahrowe/ui';
|
|
127
|
+
|
|
128
|
+
const mustBeEven: ValidatorFunction = (value) =>
|
|
129
|
+
Number(value) % 2 === 0 ? null : { id: 'even', message: 'Must be an even number' };
|
|
130
|
+
|
|
131
|
+
const validator = new FormValidator<number>(0, [Validators.required(), mustBeEven]);
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
The `id` you choose is what `hasError('even')` and `removeErrors(['even'])` match against.
|
|
135
|
+
|
|
136
|
+
## Reading server-side errors back into a field
|
|
137
|
+
|
|
138
|
+
```tsx
|
|
139
|
+
validator.addError({ id: 'taken', message: 'This email is already registered' });
|
|
140
|
+
// later, once the user edits the field again:
|
|
141
|
+
validator.removeErrors(['taken']);
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
When validating a whole form at once, prefer `FormValidatorGroup.parseError()` — see `FormValidatorGroup`.
|
|
145
|
+
</content>
|
|
146
|
+
</invoke>
|