@memobit/libs 3.6.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ControlPanel/ControlPanelFilter.js +1 -1
- package/dist/components/Dropdown/Dropdown.css +1 -1
- package/dist/components/Dropdown/Dropdown2.js +87 -87
- package/dist/helpers/Images.js +22 -16
- package/dist/helpers/VersionInfo.js +1 -1
- package/dist/index.d.ts +20 -18
- package/dist/index.js +123 -127
- package/dist/version.js +1 -1
- package/dist/version.json +4 -4
- package/package.json +1 -1
|
@@ -285,7 +285,7 @@ var H = 3, f = (e) => Array.isArray(e) ? e : e == null || typeof e == "boolean"
|
|
|
285
285
|
},
|
|
286
286
|
options: t,
|
|
287
287
|
placeholder: e.placeholder,
|
|
288
|
-
searchable: e.searchable ?? !
|
|
288
|
+
searchable: e.searchable ?? !0,
|
|
289
289
|
selectedCountDisplay: "inline",
|
|
290
290
|
usePortal: !1,
|
|
291
291
|
value: typeof e.value == "boolean" ? null : e.value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dropdown-container{width:100%;position:relative}.dropdown-container.disabled{cursor:not-allowed;pointer-events:none;opacity:.6}.dropdown-container .dropdown-label{margin-bottom:var(--spacing-8);color:var(--form-control-label-color,var(--body-color));font-size:var(--form-control-label-font-size,var(--font-size-sm));font-weight:var(--form-control-label-font-weight,var(--font-weight-medium));letter-spacing:var(--form-control-label-letter-spacing,normal);text-transform:var(--form-control-label-text-transform,none);display:block}.dropdown-container .dropdown-input-container{--dropdown-actions-space:var(--spacing-48);background-color:var(--dropdown-header-background-color);width:100%;color:var(--dropdown-header-color);position:relative;overflow:hidden;container-type:inline-size}.dropdown-container .dropdown-input-container .input-text{background-color:#0000}.dropdown-container .dropdown-input-container--clearable{--dropdown-actions-space:calc(var(--spacing-80) + var(--spacing-12))}.dropdown-container .dropdown-input-container:not(.dropdown-input-container--chips) input[type=text]{padding-right:var(--dropdown-actions-space);text-overflow:ellipsis}.dropdown-container .dropdown-input-container--has-prefix-icon input[type=text]{padding-left:var(--spacing-40)}.dropdown-container .dropdown-input-container .dropdown-selected-icon{color:var(--dropdown-header-color);align-items:center;display:flex}.dropdown-container .dropdown-input-container .dropdown-selected-icon--prefix{top:50%;left:var(--spacing-12);z-index:1;pointer-events:none;position:absolute;transform:translateY(-50%)}.dropdown-container .dropdown-input-container .dropdown-selected-icon--suffix{padding:0 var(--spacing-4);pointer-events:none}.dropdown-container .dropdown-input-container input[type=text]{transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out}.dropdown-container .dropdown-input-container .dropdown-value-chip{box-sizing:border-box;top:50%;left:var(--spacing-12);z-index:1;align-items:center;gap:var(--spacing-4);padding:var(--spacing-2) var(--spacing-8);border-radius:var(--radius-full);border:var(--spacing-1) solid var(--chip-selected-border-color,var(--body-accent-color));background:var(--chip-selected-background-color,var(--card-background-accent-color));color:var(--chip-selected-color,var(--body-accent-color));font-size:var(--font-size-xs);max-width:calc(100% - var(--spacing-12) - var(--dropdown-actions-space));cursor:pointer;display:inline-flex;position:absolute;transform:translateY(-50%)}.dropdown-container .dropdown-input-container .dropdown-value-chip__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dropdown-container .dropdown-input-container .dropdown-value-chip svg{width:var(--spacing-12);height:var(--spacing-12);flex-shrink:0}.dropdown-container .dropdown-input-container--chips{align-items:center;gap:var(--spacing-4);padding:var(--spacing-4) var(--spacing-80) var(--spacing-4) var(--spacing-8);flex-wrap:nowrap;display:flex;overflow:auto hidden}.dropdown-container .dropdown-input-container--chips::-webkit-scrollbar{height:var(--scrollbar-size)}.dropdown-container .dropdown-input-container--chips .input-text-wrapper{flex:1 1 var(--spacing-80);min-width:var(--spacing-80)}.dropdown-container .dropdown-input-container--chips input[type=text]{padding:var(--spacing-4);border:none}.dropdown-container .dropdown-input-container--chips-multiline{min-height:var(--spacing-40);flex-wrap:wrap;overflow:visible}.dropdown-container .dropdown-input-container--chips-multiline .dropdown-actions-buttons{top:var(--spacing-4);transform:none}.dropdown-container .dropdown-input-container .dropdown-chip{align-items:center;gap:var(--spacing-4);padding:var(--spacing-2) var(--spacing-8);border-radius:var(--radius-full);border:var(--spacing-1) solid var(--chip-selected-border-color,var(--body-accent-color));background:var(--chip-selected-background-color,var(--card-background-accent-color));color:var(--chip-selected-color,var(--body-accent-color));font-size:var(--font-size-xs);flex-shrink:0;max-width:100%;display:inline-flex}.dropdown-container .dropdown-input-container .dropdown-chip__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dropdown-container .dropdown-input-container .dropdown-chip__remove{cursor:pointer;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.dropdown-container .dropdown-input-container .dropdown-chip__remove svg{width:var(--spacing-12);height:var(--spacing-12)}.dropdown-container .dropdown-input-container .dropdown-selected-count{font-size:var(--font-size-xs);color:var(--body-color-muted);pointer-events:none;position:absolute;bottom:-20px;left:0}.dropdown-container .dropdown-input-container .dropdown-actions-buttons{z-index:1;justify-content:center;align-items:center;height:calc(100% - 2px);padding:0 6px;display:flex;position:absolute;top:50%;right:1px;transform:translateY(-50%)}.dropdown-container .dropdown-input-container .dropdown-actions-buttons:before{content:"";opacity:.9;z-index:-1;position:absolute;inset:0}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button{justify-content:center;align-items:center;display:flex}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button{padding:var(--spacing-8);border-radius:0}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button span{justify-content:center;align-items:center;display:flex}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button:hover{background-color:var(--dropdown-action-hover-background-color)}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button svg{fill:var(--dropdown-action-color)}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button svg:hover{fill:var(--dropdown-action-hover-color)}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-clear-button:focus{box-shadow:0 0 0 var(--spacing-2) var(--form-control-focus-ring);outline:none}@media (width<=768px){.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-clear-button{width:var(--spacing-40);height:var(--spacing-40);right:var(--spacing-40)}}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-toggle-button button{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-toggle-button svg{width:var(--spacing-16);height:var(--spacing-16);transition:transform .2s ease-in-out}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-toggle-button:focus{box-shadow:inset 0 0 0 var(--spacing-2) var(--form-control-focus-ring);outline:none}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-toggle-button.open svg{transform:rotate(180deg)}.dropdown-container.dropdown-highlighted .dropdown-input-container input[type=text]{border-color:var(--form-control-focus-border-color)}.dropdown-container.dropdown-error .dropdown-input-container{background-color:var(--form-control-error-background-color)}.dropdown-container.dropdown-error .dropdown-input-container input[type=text]{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);color:var(--form-control-error-color)}.dropdown-container.dropdown-error .dropdown-input-container input[type=text]:focus{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.dropdown-container .dropdown-error-message{font-size:var(--font-size-xs);color:var(--form-control-error-color)}.dropdown-container.dropdown-success .dropdown-input-container{background-color:var(--form-control-success-background-color)}.dropdown-container.dropdown-success .dropdown-input-container input[type=text]{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);color:var(--form-control-success-color)}.dropdown-container.dropdown-success .dropdown-input-container input[type=text]:focus{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.dropdown-container .dropdown-success-message{font-size:var(--font-size-xs);color:var(--form-control-success-color)}.dropdown-container.multiple .dropdown-input-container,.dropdown-container.multiple input[type=text]{min-height:var(--spacing-40)}.dropdown-container.multiple .dropdown-input-container--chips input[type=text]{min-height:var(--spacing-24)}.dropdown-container.count-display-floating .dropdown-input-container{overflow:visible}.dropdown-menu{z-index:1000;width:100%;margin-top:var(--spacing-4);background-color:var(--dropdown-options-background-color);color:var(--dropdown-options-color);border:var(--spacing-1) solid var(--dropdown-border-color);border-radius:var(--radius-sm);box-shadow:0 var(--spacing-8) var(--spacing-16) -3px var(--box-shadow), 0 var(--spacing-4) var(--spacing-8) -2px var(--box-shadow);max-height:240px;position:absolute;overflow-y:auto}.dropdown-menu--portal{margin-top:var(--spacing-4)}.dropdown-menu--upward{margin-top:0;margin-bottom:var(--spacing-4);top:auto;bottom:100%}.dropdown-menu::-webkit-scrollbar{width:var(--scrollbar-size)}.dropdown-menu::-webkit-scrollbar-track{background:var(--scrollbar-track-color);border-radius:var(--scrollbar-radius)}.dropdown-menu::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:var(--scrollbar-radius)}.dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.dropdown-menu .dropdown-options-list{padding:var(--spacing-4) 0;margin:0;list-style:none}.dropdown-menu .dropdown-options-list .dropdown-option{padding:var(--spacing-12) var(--spacing-12);cursor:pointer;border-left:var(--spacing-4) solid transparent;align-items:center;transition:background-color .2s ease-in-out;display:flex}.dropdown-menu .dropdown-options-list .dropdown-option.focused{color:var(--dropdown-options-hover-color);background-color:var(--dropdown-options-hover-background-color);outline:none}.dropdown-menu .dropdown-options-list .dropdown-option.dropdown-option--disabled{opacity:.45;cursor:not-allowed}.dropdown-menu .dropdown-options-list .dropdown-option.dropdown-option--disabled:hover,.dropdown-menu .dropdown-options-list .dropdown-option.dropdown-option--disabled.focused{color:inherit;background-color:#0000}.dropdown-menu .dropdown-options-list .dropdown-option.selected{background-color:var(--dropdown-options-selected-background-color);color:var(--dropdown-options-selected-color)}.dropdown-menu .dropdown-options-list .dropdown-option.selected:hover,.dropdown-menu .dropdown-options-list .dropdown-option.selected.focused{color:var(--dropdown-options-hover-color);background-color:var(--dropdown-options-hover-background-color);opacity:.9}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-checkbox{margin-right:var(--spacing-8);flex-shrink:0}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-checkbox .checkbox{width:var(--spacing-16);height:var(--spacing-16);border:var(--spacing-2) solid var(--form-control-selection-border-color);border-radius:var(--spacing-4);background-color:#0000;justify-content:center;align-items:center;transition:all .2s ease-in-out;display:flex}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-checkbox .checkbox.checked{background-color:var(--form-control-selection-background-color);color:var(--form-control-selection-color)}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content{flex:1;min-width:0}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content .dropdown-option-label{align-items:center;gap:var(--spacing-8);min-width:0;display:inline-flex}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content .dropdown-option-prefix{flex:none;justify-content:center;align-items:center;display:inline-flex}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content .dropdown-option-details{width:100%;font-size:var(--font-size-xs);margin-top:var(--spacing-2);display:block}@media (width<=768px){.dropdown-menu .dropdown-options-list .dropdown-option{padding:var(--spacing-16) var(--spacing-12)}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content{font-size:var(--font-size-md)}}.dropdown-menu .dropdown-no-options{padding:var(--spacing-12);text-align:center;font-style:italic}.dropdown-menu .dropdown-options-list .dropdown-option--create{color:var(--body-accent-color);border-top:1px solid var(--delimiter-color);font-weight:var(--font-weight-medium)}@media (width<=768px){.dropdown-menu{max-height:var(--spacing-300)}.dropdown-menu .dropdown-options-list .dropdown-option{min-height:var(--spacing-48)}}@container (width<=160px){.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button.dropdown-clear-button{display:none}.dropdown-container .dropdown-input-container .dropdown-value-chip{max-width:calc(100% - var(--spacing-12) - var(--spacing-48))}.dropdown-container .dropdown-input-container:not(.dropdown-input-container--chips) input[type=text]{padding-right:var(--spacing-48)}}
|
|
1
|
+
.dropdown-container{width:100%;position:relative}.dropdown-container.disabled{cursor:not-allowed;pointer-events:none;opacity:.6}.dropdown-container .dropdown-label{margin-bottom:var(--spacing-8);color:var(--form-control-label-color,var(--body-color));font-size:var(--form-control-label-font-size,var(--font-size-sm));font-weight:var(--form-control-label-font-weight,var(--font-weight-medium));letter-spacing:var(--form-control-label-letter-spacing,normal);text-transform:var(--form-control-label-text-transform,none);display:block}.dropdown-container .dropdown-input-container{--dropdown-actions-space:var(--spacing-48);background-color:var(--dropdown-header-background-color);width:100%;color:var(--dropdown-header-color);position:relative;overflow:hidden;container-type:inline-size}.dropdown-container .dropdown-input-container .input-text{background-color:#0000}.dropdown-container .dropdown-input-container .input-text:read-only:not(:disabled){cursor:pointer}.dropdown-container .dropdown-input-container--clearable{--dropdown-actions-space:calc(var(--spacing-80) + var(--spacing-12))}.dropdown-container .dropdown-input-container:not(.dropdown-input-container--chips) input[type=text]{padding-right:var(--dropdown-actions-space);text-overflow:ellipsis}.dropdown-container .dropdown-input-container--has-prefix-icon input[type=text]{padding-left:var(--spacing-40)}.dropdown-container .dropdown-input-container .dropdown-selected-icon{color:var(--dropdown-header-color);align-items:center;display:flex}.dropdown-container .dropdown-input-container .dropdown-selected-icon--prefix{top:50%;left:var(--spacing-12);z-index:1;pointer-events:none;position:absolute;transform:translateY(-50%)}.dropdown-container .dropdown-input-container .dropdown-selected-icon--suffix{padding:0 var(--spacing-4);pointer-events:none}.dropdown-container .dropdown-input-container input[type=text]{transition:border-color .2s ease-in-out,box-shadow .2s ease-in-out}.dropdown-container .dropdown-input-container .dropdown-value-chip{box-sizing:border-box;top:50%;left:var(--spacing-12);z-index:1;align-items:center;gap:var(--spacing-4);padding:var(--spacing-2) var(--spacing-8);border-radius:var(--radius-full);border:var(--spacing-1) solid var(--chip-selected-border-color,var(--body-accent-color));background:var(--chip-selected-background-color,var(--card-background-accent-color));color:var(--chip-selected-color,var(--body-accent-color));font-size:var(--font-size-xs);max-width:calc(100% - var(--spacing-12) - var(--dropdown-actions-space));cursor:pointer;display:inline-flex;position:absolute;transform:translateY(-50%)}.dropdown-container .dropdown-input-container .dropdown-value-chip__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dropdown-container .dropdown-input-container .dropdown-value-chip svg{width:var(--spacing-12);height:var(--spacing-12);flex-shrink:0}.dropdown-container .dropdown-input-container--chips{align-items:center;gap:var(--spacing-4);padding:var(--spacing-4) var(--spacing-80) var(--spacing-4) var(--spacing-8);flex-wrap:nowrap;display:flex;overflow:auto hidden}.dropdown-container .dropdown-input-container--chips::-webkit-scrollbar{height:var(--scrollbar-size)}.dropdown-container .dropdown-input-container--chips .input-text-wrapper{flex:1 1 var(--spacing-80);min-width:var(--spacing-80)}.dropdown-container .dropdown-input-container--chips input[type=text]{padding:var(--spacing-4);border:none}.dropdown-container .dropdown-input-container--chips-multiline{min-height:var(--spacing-40);flex-wrap:wrap;overflow:visible}.dropdown-container .dropdown-input-container--chips-multiline .dropdown-actions-buttons{top:var(--spacing-4);transform:none}.dropdown-container .dropdown-input-container .dropdown-chip{align-items:center;gap:var(--spacing-4);padding:var(--spacing-2) var(--spacing-8);border-radius:var(--radius-full);border:var(--spacing-1) solid var(--chip-selected-border-color,var(--body-accent-color));background:var(--chip-selected-background-color,var(--card-background-accent-color));color:var(--chip-selected-color,var(--body-accent-color));font-size:var(--font-size-xs);flex-shrink:0;max-width:100%;display:inline-flex}.dropdown-container .dropdown-input-container .dropdown-chip__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dropdown-container .dropdown-input-container .dropdown-chip__remove{cursor:pointer;color:inherit;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.dropdown-container .dropdown-input-container .dropdown-chip__remove svg{width:var(--spacing-12);height:var(--spacing-12)}.dropdown-container .dropdown-input-container .dropdown-selected-count{font-size:var(--font-size-xs);color:var(--body-color-muted);pointer-events:none;position:absolute;bottom:-20px;left:0}.dropdown-container .dropdown-input-container .dropdown-actions-buttons{z-index:1;justify-content:center;align-items:center;height:calc(100% - 2px);padding:0 6px;display:flex;position:absolute;top:50%;right:1px;transform:translateY(-50%)}.dropdown-container .dropdown-input-container .dropdown-actions-buttons:before{content:"";opacity:.9;z-index:-1;position:absolute;inset:0}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button{justify-content:center;align-items:center;display:flex}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button{padding:var(--spacing-8);border-radius:0}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button span{justify-content:center;align-items:center;display:flex}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button:hover{background-color:var(--dropdown-action-hover-background-color)}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button svg{fill:var(--dropdown-action-color)}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button button svg:hover{fill:var(--dropdown-action-hover-color)}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-clear-button:focus{box-shadow:0 0 0 var(--spacing-2) var(--form-control-focus-ring);outline:none}@media (width<=768px){.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-clear-button{width:var(--spacing-40);height:var(--spacing-40);right:var(--spacing-40)}}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-toggle-button button{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-toggle-button svg{width:var(--spacing-16);height:var(--spacing-16);transition:transform .2s ease-in-out}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-toggle-button:focus{box-shadow:inset 0 0 0 var(--spacing-2) var(--form-control-focus-ring);outline:none}.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-toggle-button.open svg{transform:rotate(180deg)}.dropdown-container.dropdown-highlighted .dropdown-input-container input[type=text]{border-color:var(--form-control-focus-border-color)}.dropdown-container.dropdown-error .dropdown-input-container{background-color:var(--form-control-error-background-color)}.dropdown-container.dropdown-error .dropdown-input-container input[type=text]{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);color:var(--form-control-error-color)}.dropdown-container.dropdown-error .dropdown-input-container input[type=text]:focus{background-color:var(--form-control-error-background-color);border-color:var(--form-control-error-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.dropdown-container .dropdown-error-message{font-size:var(--font-size-xs);color:var(--form-control-error-color)}.dropdown-container.dropdown-success .dropdown-input-container{background-color:var(--form-control-success-background-color)}.dropdown-container.dropdown-success .dropdown-input-container input[type=text]{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);color:var(--form-control-success-color)}.dropdown-container.dropdown-success .dropdown-input-container input[type=text]:focus{background-color:var(--form-control-success-background-color);border-color:var(--form-control-success-border-color);box-shadow:0 0 0 var(--spacing-2) var(--box-shadow)}.dropdown-container .dropdown-success-message{font-size:var(--font-size-xs);color:var(--form-control-success-color)}.dropdown-container.multiple .dropdown-input-container,.dropdown-container.multiple input[type=text]{min-height:var(--spacing-40)}.dropdown-container.multiple .dropdown-input-container--chips input[type=text]{min-height:var(--spacing-24)}.dropdown-container.count-display-floating .dropdown-input-container{overflow:visible}.dropdown-menu{z-index:1000;width:100%;margin-top:var(--spacing-4);background-color:var(--dropdown-options-background-color);color:var(--dropdown-options-color);border:var(--spacing-1) solid var(--dropdown-border-color);border-radius:var(--radius-sm);box-shadow:0 var(--spacing-8) var(--spacing-16) -3px var(--box-shadow), 0 var(--spacing-4) var(--spacing-8) -2px var(--box-shadow);max-height:240px;position:absolute;overflow-y:auto}.dropdown-menu--portal{margin-top:var(--spacing-4)}.dropdown-menu--upward{margin-top:0;margin-bottom:var(--spacing-4);top:auto;bottom:100%}.dropdown-menu::-webkit-scrollbar{width:var(--scrollbar-size)}.dropdown-menu::-webkit-scrollbar-track{background:var(--scrollbar-track-color);border-radius:var(--scrollbar-radius)}.dropdown-menu::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:var(--scrollbar-radius)}.dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.dropdown-menu .dropdown-options-list{padding:var(--spacing-4) 0;margin:0;list-style:none}.dropdown-menu .dropdown-options-list .dropdown-option{padding:var(--spacing-12) var(--spacing-12);cursor:pointer;border-left:var(--spacing-4) solid transparent;align-items:center;transition:background-color .2s ease-in-out;display:flex}.dropdown-menu .dropdown-options-list .dropdown-option.focused{color:var(--dropdown-options-hover-color);background-color:var(--dropdown-options-hover-background-color);outline:none}.dropdown-menu .dropdown-options-list .dropdown-option.dropdown-option--disabled{opacity:.45;cursor:not-allowed}.dropdown-menu .dropdown-options-list .dropdown-option.dropdown-option--disabled:hover,.dropdown-menu .dropdown-options-list .dropdown-option.dropdown-option--disabled.focused{color:inherit;background-color:#0000}.dropdown-menu .dropdown-options-list .dropdown-option.selected{background-color:var(--dropdown-options-selected-background-color);color:var(--dropdown-options-selected-color)}.dropdown-menu .dropdown-options-list .dropdown-option.selected:hover,.dropdown-menu .dropdown-options-list .dropdown-option.selected.focused{color:var(--dropdown-options-hover-color);background-color:var(--dropdown-options-hover-background-color);opacity:.9}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-checkbox{margin-right:var(--spacing-8);flex-shrink:0}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-checkbox .checkbox{width:var(--spacing-16);height:var(--spacing-16);border:var(--spacing-2) solid var(--form-control-selection-border-color);border-radius:var(--spacing-4);background-color:#0000;justify-content:center;align-items:center;transition:all .2s ease-in-out;display:flex}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-checkbox .checkbox.checked{background-color:var(--form-control-selection-background-color);color:var(--form-control-selection-color)}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content{flex:1;min-width:0}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content .dropdown-option-label{align-items:center;gap:var(--spacing-8);min-width:0;display:inline-flex}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content .dropdown-option-prefix{flex:none;justify-content:center;align-items:center;display:inline-flex}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content .dropdown-option-details{width:100%;font-size:var(--font-size-xs);margin-top:var(--spacing-2);display:block}@media (width<=768px){.dropdown-menu .dropdown-options-list .dropdown-option{padding:var(--spacing-16) var(--spacing-12)}.dropdown-menu .dropdown-options-list .dropdown-option .dropdown-option-content{font-size:var(--font-size-md)}}.dropdown-menu .dropdown-no-options{padding:var(--spacing-12);text-align:center;font-style:italic}.dropdown-menu .dropdown-options-list .dropdown-option--create{color:var(--body-accent-color);border-top:1px solid var(--delimiter-color);font-weight:var(--font-weight-medium)}@media (width<=768px){.dropdown-menu{max-height:var(--spacing-300)}.dropdown-menu .dropdown-options-list .dropdown-option{min-height:var(--spacing-48)}}@container (width<=160px){.dropdown-container .dropdown-input-container .dropdown-actions-buttons .dropdown-action-button.dropdown-clear-button{display:none}.dropdown-container .dropdown-input-container .dropdown-value-chip{max-width:calc(100% - var(--spacing-12) - var(--spacing-48))}.dropdown-container .dropdown-input-container:not(.dropdown-input-container--chips) input[type=text]{padding-right:var(--spacing-48)}}
|
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
import './Dropdown.css';
|
|
2
2
|
import { Icon as I } from "../Icon/Icon2.js";
|
|
3
|
-
import { Button as
|
|
4
|
-
import { Tooltip as
|
|
5
|
-
import { InputText as
|
|
6
|
-
import { foldDiacritics as
|
|
3
|
+
import { Button as ae } from "../Button/Button2.js";
|
|
4
|
+
import { Tooltip as He } from "../Tooltip/Tooltip2.js";
|
|
5
|
+
import { InputText as je } from "../InputText/InputText2.js";
|
|
6
|
+
import { foldDiacritics as fe } from "../../helpers/Search.js";
|
|
7
7
|
/* empty css */
|
|
8
|
-
import { useEffect as E, useId as
|
|
8
|
+
import { useEffect as E, useId as Ce, useRef as D, useState as k } from "react";
|
|
9
9
|
import { jsx as c, jsxs as g } from "react/jsx-runtime";
|
|
10
|
-
import { createPortal as
|
|
11
|
-
import { caretDown as
|
|
12
|
-
var
|
|
13
|
-
const [p, v] = k(!1), [s, l] = k(M || ""), [a, X] = k(m), [L,
|
|
10
|
+
import { createPortal as _e } from "react-dom";
|
|
11
|
+
import { caretDown as ze, clear as pe } from "@memobit/icons";
|
|
12
|
+
var Ze = ({ allowCustomValue: h = !1, autofocus: ue = !1, className: we = "", disabled: x = !1, error: A, highlighted: he = !1, id: me, label: J, maxVisibleSelectedLabels: ge = 1, multilineChips: ve = !1, multiple: i = !1, name: N, onChange: u, onSearchChange: be, options: m, placeholder: H = "Select an option", searchable: f = !0, searchValue: M, selectedCountDisplay: j = "inline", showChips: C = !1, sortSelectedFirst: Q = !1, success: _, usePortal: $ = !0, value: d, valueAsChip: xe = !0 }) => {
|
|
13
|
+
const [p, v] = k(!1), [s, l] = k(M || ""), [a, X] = k(m), [L, O] = k(-1), [o, w] = k([]), [R, Ne] = k({
|
|
14
14
|
top: 0,
|
|
15
15
|
bottom: 0,
|
|
16
16
|
left: 0,
|
|
17
17
|
width: 0,
|
|
18
18
|
maxHeight: 300
|
|
19
|
-
}), [z,
|
|
19
|
+
}), [z, $e] = k(!1), S = D(null), y = D([]), F = D(null), ke = D(null), Y = Ce(), Z = me ?? `dropdown-${Y}`, U = D(null);
|
|
20
20
|
E(() => {
|
|
21
|
-
if (p && Q &&
|
|
22
|
-
const n = new Set(
|
|
21
|
+
if (p && Q && i) {
|
|
22
|
+
const n = new Set(o.map((r) => r.value)), e = [], t = [];
|
|
23
23
|
m.forEach((r) => (n.has(r.value) ? e : t).push(r)), U.current = [...e, ...t];
|
|
24
24
|
} else p || (U.current = null);
|
|
25
25
|
}, [
|
|
26
26
|
p,
|
|
27
27
|
Q,
|
|
28
|
-
|
|
28
|
+
i,
|
|
29
29
|
m
|
|
30
30
|
]), E(() => {
|
|
31
31
|
const n = U.current ?? m;
|
|
32
32
|
if (!f || !s) X(n);
|
|
33
33
|
else {
|
|
34
|
-
const e =
|
|
34
|
+
const e = fe(s), t = n.filter((r) => fe(r.label).includes(e));
|
|
35
35
|
X(t);
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
O(-1);
|
|
38
38
|
}, [
|
|
39
39
|
s,
|
|
40
40
|
m,
|
|
@@ -50,19 +50,19 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
50
50
|
e && (w([]), l(""));
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
|
-
if (
|
|
53
|
+
if (i && Array.isArray(d) && d.length === 0) {
|
|
54
54
|
e && (w([]), l(""));
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
|
-
if (!
|
|
57
|
+
if (!i && d === "") {
|
|
58
58
|
e && (w([]), l(""));
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
61
|
if (m.length > 0) {
|
|
62
|
-
if (
|
|
62
|
+
if (i && Array.isArray(d)) {
|
|
63
63
|
const t = m.filter((r) => typeof r.value == "number" ? d.includes(r.value) : d.includes(r.value.toString()));
|
|
64
64
|
w(t), e && l("");
|
|
65
|
-
} else if (!
|
|
65
|
+
} else if (!i && (typeof d == "string" || typeof d == "number")) {
|
|
66
66
|
const t = m.find((r) => typeof r.value == "number" && typeof d == "number" ? r.value === d : r.value.toString() === d.toString());
|
|
67
67
|
if (t)
|
|
68
68
|
w([t]), e && l(t.label);
|
|
@@ -75,7 +75,7 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
75
75
|
w([r]), e && l(d.trim());
|
|
76
76
|
} else e && (w([]), l(""));
|
|
77
77
|
}
|
|
78
|
-
} else if (h && !
|
|
78
|
+
} else if (h && !i && typeof d == "string" && d.trim()) {
|
|
79
79
|
const t = {
|
|
80
80
|
label: d.trim(),
|
|
81
81
|
value: d.trim(),
|
|
@@ -86,24 +86,24 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
86
86
|
}, [
|
|
87
87
|
d,
|
|
88
88
|
m,
|
|
89
|
-
|
|
89
|
+
i,
|
|
90
90
|
f,
|
|
91
91
|
h
|
|
92
92
|
]), E(() => {
|
|
93
93
|
f && M !== void 0 && l(M);
|
|
94
94
|
}, [M, f]), E(() => {
|
|
95
|
-
if (!p || !
|
|
95
|
+
if (!p || !S.current) return;
|
|
96
96
|
const n = () => {
|
|
97
|
-
if (!
|
|
98
|
-
const t =
|
|
99
|
-
if (
|
|
100
|
-
const
|
|
101
|
-
|
|
97
|
+
if (!S.current) return;
|
|
98
|
+
const t = S.current.getBoundingClientRect(), r = window.visualViewport, T = r?.offsetTop ?? 0, Me = T + (r?.height ?? window.innerHeight), ce = 300, Te = 8, G = Me - t.bottom, de = t.top - T, le = G < ce && de > G;
|
|
99
|
+
if ($e(le), $) {
|
|
100
|
+
const Ae = Math.max(0, (le ? de : G) - Te);
|
|
101
|
+
Ne({
|
|
102
102
|
top: t.bottom,
|
|
103
103
|
bottom: window.innerHeight - t.top,
|
|
104
104
|
left: t.left,
|
|
105
105
|
width: t.width,
|
|
106
|
-
maxHeight: Math.min(
|
|
106
|
+
maxHeight: Math.min(ce, Ae)
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
109
|
};
|
|
@@ -114,12 +114,12 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
114
114
|
};
|
|
115
115
|
}, [p, $]), E(() => {
|
|
116
116
|
const n = (e) => {
|
|
117
|
-
if (
|
|
117
|
+
if (S.current && !S.current.contains(e.target)) {
|
|
118
118
|
if ($ && p) {
|
|
119
119
|
const t = document.querySelector(".dropdown-menu--portal");
|
|
120
120
|
if (t && t.contains(e.target)) return;
|
|
121
121
|
}
|
|
122
|
-
if (h && !
|
|
122
|
+
if (h && !i && s.trim() && !(o.length > 0 && o[0].label.toLowerCase() === s.trim().toLowerCase())) {
|
|
123
123
|
const t = m.find((r) => r.label.toLowerCase() === s.toLowerCase() || r.value.toString() === s) || {
|
|
124
124
|
label: s.trim(),
|
|
125
125
|
value: s.trim(),
|
|
@@ -128,7 +128,7 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
128
128
|
w([t]), l(t.label), v(!1), u && u(t, N);
|
|
129
129
|
return;
|
|
130
130
|
}
|
|
131
|
-
v(!1), !
|
|
131
|
+
v(!1), !i && o.length > 0 ? l(o[0].label) : i && f && l("");
|
|
132
132
|
}
|
|
133
133
|
};
|
|
134
134
|
return document.addEventListener("mousedown", n), () => {
|
|
@@ -138,20 +138,20 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
138
138
|
h,
|
|
139
139
|
s,
|
|
140
140
|
p,
|
|
141
|
-
|
|
141
|
+
i,
|
|
142
142
|
N,
|
|
143
143
|
u,
|
|
144
144
|
m,
|
|
145
145
|
f,
|
|
146
|
-
|
|
146
|
+
o,
|
|
147
147
|
$
|
|
148
148
|
]);
|
|
149
149
|
const K = (n) => {
|
|
150
150
|
if (!n.disabled)
|
|
151
|
-
if (
|
|
152
|
-
const e =
|
|
151
|
+
if (i) {
|
|
152
|
+
const e = o.some((r) => r.value === n.value);
|
|
153
153
|
let t;
|
|
154
|
-
e ? t =
|
|
154
|
+
e ? t = o.filter((r) => r.value !== n.value) : t = [...o, n], w(t), f && l(""), u && u(t, N);
|
|
155
155
|
} else
|
|
156
156
|
l(n.label), w([n]), v(!1), u && u(n, N);
|
|
157
157
|
}, P = () => {
|
|
@@ -166,23 +166,23 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
166
166
|
value: s.trim(),
|
|
167
167
|
className: "custom-option"
|
|
168
168
|
};
|
|
169
|
-
if (
|
|
170
|
-
const t = [...
|
|
169
|
+
if (i) {
|
|
170
|
+
const t = [...o, e];
|
|
171
171
|
w(t), l(""), u && u(t, N);
|
|
172
172
|
} else
|
|
173
173
|
w([e]), l(e.label), v(!1), u && u(e, N);
|
|
174
174
|
}, ee = (n) => {
|
|
175
|
-
const e =
|
|
176
|
-
w(e), u && (
|
|
177
|
-
},
|
|
178
|
-
w([]), (!f || !
|
|
179
|
-
},
|
|
180
|
-
l(n), p || v(!0),
|
|
175
|
+
const e = o.filter((t) => t.value !== n.value);
|
|
176
|
+
w(e), u && (i ? u(e, N) : (u(null, N), f || l("")));
|
|
177
|
+
}, Le = () => {
|
|
178
|
+
w([]), (!f || !i) && l(""), v(!1), u && u(i ? [] : null, N);
|
|
179
|
+
}, Oe = (n) => {
|
|
180
|
+
l(n), p || v(!0), be?.(n);
|
|
181
181
|
}, ne = () => {
|
|
182
|
-
x || (v(!0), !
|
|
182
|
+
x || (v(!0), !i && f && o.length > 0 && l(""), (i || f) && F.current?.focus());
|
|
183
183
|
}, Se = () => {
|
|
184
|
-
x || (v(!p), p || (
|
|
185
|
-
},
|
|
184
|
+
x || (v(!p), p || (O(-1), !i && f && o.length > 0 && l(""), (i || f) && F.current?.focus()));
|
|
185
|
+
}, ye = (n) => {
|
|
186
186
|
if (!x) {
|
|
187
187
|
if (!p) {
|
|
188
188
|
(n.key === "ArrowDown" || n.key === "Enter") && (v(!0), n.preventDefault());
|
|
@@ -191,14 +191,14 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
191
191
|
switch (n.key) {
|
|
192
192
|
case "ArrowDown":
|
|
193
193
|
if (n.preventDefault(), h && s && a.length === 0) return;
|
|
194
|
-
|
|
194
|
+
O((e) => {
|
|
195
195
|
const t = e < (h && s && !a.some((r) => r.label.toLowerCase() === s.toLowerCase()) ? a.length : a.length - 1) ? e + 1 : 0;
|
|
196
196
|
return t < a.length && y.current[t] && y.current[t]?.scrollIntoView({ block: "nearest" }), t;
|
|
197
197
|
});
|
|
198
198
|
break;
|
|
199
199
|
case "ArrowUp":
|
|
200
200
|
if (n.preventDefault(), h && s && a.length === 0) return;
|
|
201
|
-
|
|
201
|
+
O((e) => {
|
|
202
202
|
const t = h && s && !a.some((T) => T.label.toLowerCase() === s.toLowerCase()) ? a.length : a.length - 1, r = e > 0 ? e - 1 : t;
|
|
203
203
|
return r < a.length && y.current[r] && y.current[r]?.scrollIntoView({ block: "nearest" }), r;
|
|
204
204
|
});
|
|
@@ -207,25 +207,25 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
207
207
|
n.preventDefault(), L >= 0 && L < a.length ? K(a[L]) : (h && s && L === a.length || h && s && a.length === 0) && P();
|
|
208
208
|
break;
|
|
209
209
|
case "Escape":
|
|
210
|
-
n.preventDefault(), v(!1), !
|
|
210
|
+
n.preventDefault(), v(!1), !i && o.length > 0 ? l(o[0].label) : i && f && l("");
|
|
211
211
|
break;
|
|
212
212
|
case "Backspace":
|
|
213
|
-
|
|
213
|
+
i && s === "" && o.length > 0 && (n.preventDefault(), ee(o[o.length - 1]));
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
|
-
}, q = (n) =>
|
|
217
|
-
if (
|
|
218
|
-
const n = Math.max(1,
|
|
219
|
-
if (
|
|
220
|
-
const e =
|
|
216
|
+
}, q = (n) => o.some((e) => e.value === n.value), Ie = () => {
|
|
217
|
+
if (o.length === 0) return "";
|
|
218
|
+
const n = Math.max(1, ge);
|
|
219
|
+
if (o.length <= n) return o.map((r) => r.label).join(", ");
|
|
220
|
+
const e = o.slice(0, n).map((r) => r.label).join(", "), t = o.length - n;
|
|
221
221
|
return `${e} (+${t} ${t === 1 ? "other" : "others"})`;
|
|
222
|
-
},
|
|
222
|
+
}, Ee = () => i && C || f && p ? s : o.length > 0 ? i ? Ie() : o[0].label : "", De = () => i && C ? o.length > 0 ? "" : H : p && f ? H : o.length > 0 ? "" : H, Re = () => !i || o.length === 0 || j === "none" ? null : j === "floating" ? /* @__PURE__ */ g("div", {
|
|
223
223
|
className: "dropdown-selected-count",
|
|
224
|
-
children: [
|
|
225
|
-
}) : null, te = () => !!(h && s && s.trim() && !a.some((n) => n.label.toLowerCase() === s.toLowerCase() || n.value.toString() === s)),
|
|
224
|
+
children: [o.length, " selected"]
|
|
225
|
+
}) : null, te = () => !!(h && s && s.trim() && !a.some((n) => n.label.toLowerCase() === s.toLowerCase() || n.value.toString() === s)), Be = () => {
|
|
226
226
|
if (!p || x) return null;
|
|
227
227
|
const n = /* @__PURE__ */ c("div", {
|
|
228
|
-
ref:
|
|
228
|
+
ref: ke,
|
|
229
229
|
className: `dropdown-menu ${$ ? "dropdown-menu--portal" : ""} ${z ? "dropdown-menu--upward" : ""}`,
|
|
230
230
|
style: $ ? {
|
|
231
231
|
position: "fixed",
|
|
@@ -244,9 +244,9 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
244
244
|
},
|
|
245
245
|
className: `dropdown-option ${e.className || ""} ${L === t ? "focused" : ""} ${q(e) ? "selected" : ""} ${e.disabled ? "dropdown-option--disabled" : ""}`,
|
|
246
246
|
onClick: () => K(e),
|
|
247
|
-
onMouseEnter: () =>
|
|
247
|
+
onMouseEnter: () => O(t),
|
|
248
248
|
title: e.tooltip,
|
|
249
|
-
children: [
|
|
249
|
+
children: [i && /* @__PURE__ */ c("div", {
|
|
250
250
|
className: "dropdown-option-checkbox",
|
|
251
251
|
children: /* @__PURE__ */ c("div", {
|
|
252
252
|
className: `checkbox ${q(e) ? "checked" : ""}`,
|
|
@@ -288,7 +288,7 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
288
288
|
},
|
|
289
289
|
className: `dropdown-option dropdown-option--create ${L === a.length ? "focused" : ""}`,
|
|
290
290
|
onClick: P,
|
|
291
|
-
onMouseEnter: () =>
|
|
291
|
+
onMouseEnter: () => O(a.length),
|
|
292
292
|
children: /* @__PURE__ */ c("div", {
|
|
293
293
|
className: "dropdown-option-content",
|
|
294
294
|
children: /* @__PURE__ */ g("span", {
|
|
@@ -306,11 +306,11 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
306
306
|
children: "No options found"
|
|
307
307
|
})
|
|
308
308
|
});
|
|
309
|
-
return $ ?
|
|
310
|
-
}, b = !
|
|
309
|
+
return $ ? _e(n, document.body) : n;
|
|
310
|
+
}, b = !i && o.length === 1 ? o[0] : null, B = xe && !p && !i && o.length > 0, re = !!(b?.icon && !s && !B), oe = !!(b?.suffixIcon && !B), W = i && C, ie = o.length > 0, se = f || h;
|
|
311
311
|
return /* @__PURE__ */ g("div", {
|
|
312
|
-
className: `dropdown-container ${A ? "dropdown-error" : ""} ${_ ? "dropdown-success" : ""} ${
|
|
313
|
-
ref:
|
|
312
|
+
className: `dropdown-container ${A ? "dropdown-error" : ""} ${_ ? "dropdown-success" : ""} ${he ? "dropdown-highlighted" : ""} ${i ? "multiple" : ""} ${x ? "disabled" : ""} ${i ? `count-display-${j}` : ""} ${we}`,
|
|
313
|
+
ref: S,
|
|
314
314
|
children: [
|
|
315
315
|
J && /* @__PURE__ */ c("label", {
|
|
316
316
|
htmlFor: Z,
|
|
@@ -318,7 +318,7 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
318
318
|
children: J
|
|
319
319
|
}),
|
|
320
320
|
/* @__PURE__ */ g("div", {
|
|
321
|
-
className: `dropdown-input-container ${re ? "dropdown-input-container--has-prefix-icon" : ""} ${oe ? "dropdown-input-container--has-suffix-icon" : ""} ${W ? "dropdown-input-container--chips" : ""} ${W &&
|
|
321
|
+
className: `dropdown-input-container ${re ? "dropdown-input-container--has-prefix-icon" : ""} ${oe ? "dropdown-input-container--has-suffix-icon" : ""} ${W ? "dropdown-input-container--chips" : ""} ${W && ve ? "dropdown-input-container--chips-multiline" : ""} ${ie ? "dropdown-input-container--clearable" : ""}`,
|
|
322
322
|
children: [
|
|
323
323
|
re && b?.icon && /* @__PURE__ */ c("span", {
|
|
324
324
|
className: "dropdown-selected-icon dropdown-selected-icon--prefix",
|
|
@@ -332,12 +332,12 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
332
332
|
children: b.label
|
|
333
333
|
})]
|
|
334
334
|
}),
|
|
335
|
-
W &&
|
|
335
|
+
W && o.map((n) => /* @__PURE__ */ g("span", {
|
|
336
336
|
className: "dropdown-chip",
|
|
337
337
|
children: [/* @__PURE__ */ c("span", {
|
|
338
338
|
className: "dropdown-chip__label",
|
|
339
339
|
children: n.label
|
|
340
|
-
}), /* @__PURE__ */ c(
|
|
340
|
+
}), /* @__PURE__ */ c(He, {
|
|
341
341
|
title: "Remove",
|
|
342
342
|
children: /* @__PURE__ */ c("button", {
|
|
343
343
|
type: "button",
|
|
@@ -346,22 +346,22 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
346
346
|
onClick: (e) => {
|
|
347
347
|
e.stopPropagation(), ee(n);
|
|
348
348
|
},
|
|
349
|
-
children:
|
|
349
|
+
children: pe
|
|
350
350
|
})
|
|
351
351
|
})]
|
|
352
352
|
}, `dd-chip-${n.value}`)),
|
|
353
|
-
/* @__PURE__ */ c(
|
|
353
|
+
/* @__PURE__ */ c(je, {
|
|
354
354
|
ref: F,
|
|
355
355
|
id: Z,
|
|
356
|
-
placeholder: B ? "" :
|
|
357
|
-
value: B ? "" :
|
|
358
|
-
onChange:
|
|
359
|
-
},
|
|
356
|
+
placeholder: B ? "" : De(),
|
|
357
|
+
value: B ? "" : Ee(),
|
|
358
|
+
onChange: se ? Oe : void 0,
|
|
360
359
|
onClick: ne,
|
|
361
|
-
onKeyDown:
|
|
360
|
+
onKeyDown: ye,
|
|
362
361
|
autoComplete: "off",
|
|
363
|
-
autoFocus:
|
|
364
|
-
disabled: x
|
|
362
|
+
autoFocus: ue,
|
|
363
|
+
disabled: x,
|
|
364
|
+
readOnly: !se
|
|
365
365
|
}),
|
|
366
366
|
/* @__PURE__ */ g("div", {
|
|
367
367
|
className: "dropdown-actions-buttons",
|
|
@@ -372,28 +372,28 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
372
372
|
}),
|
|
373
373
|
ie && /* @__PURE__ */ c("span", {
|
|
374
374
|
className: "dropdown-action-button dropdown-clear-button",
|
|
375
|
-
children: /* @__PURE__ */ c(
|
|
375
|
+
children: /* @__PURE__ */ c(ae, {
|
|
376
376
|
variant: "plain",
|
|
377
|
-
onClick:
|
|
377
|
+
onClick: Le,
|
|
378
378
|
disabled: x,
|
|
379
|
-
children:
|
|
379
|
+
children: pe
|
|
380
380
|
})
|
|
381
381
|
}),
|
|
382
382
|
/* @__PURE__ */ c("span", {
|
|
383
383
|
className: `dropdown-action-button dropdown-toggle-button ${p ? "open" : ""}`,
|
|
384
|
-
children: /* @__PURE__ */ c(
|
|
384
|
+
children: /* @__PURE__ */ c(ae, {
|
|
385
385
|
variant: "plain",
|
|
386
386
|
onClick: Se,
|
|
387
387
|
disabled: x,
|
|
388
|
-
children:
|
|
388
|
+
children: ze
|
|
389
389
|
})
|
|
390
390
|
})
|
|
391
391
|
]
|
|
392
392
|
}),
|
|
393
|
-
|
|
393
|
+
Re()
|
|
394
394
|
]
|
|
395
395
|
}),
|
|
396
|
-
|
|
396
|
+
Be(),
|
|
397
397
|
A && /* @__PURE__ */ c("span", {
|
|
398
398
|
className: "dropdown-error-message",
|
|
399
399
|
children: A
|
|
@@ -406,5 +406,5 @@ var Ye = ({ allowCustomValue: h = !1, autofocus: pe = !1, className: ue = "", di
|
|
|
406
406
|
});
|
|
407
407
|
};
|
|
408
408
|
export {
|
|
409
|
-
|
|
409
|
+
Ze as Dropdown
|
|
410
410
|
};
|
package/dist/helpers/Images.js
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
|
-
var
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
var u = "/data-files", p = (l) => {
|
|
2
|
+
const e = `${u}/${l.replace(/^\/+|\/+$/g, "")}`, c = () => `${e}/default.jpg`, g = (t) => `${e}/category/${t}.jpg`, o = (t, a) => typeof t != "string" ? URL.createObjectURL(t) : t ? t.includes(e) || t.startsWith("blob:") || t.startsWith("http") ? t : `${e}/specific/${t}` : a ? g(a) : c(), n = (t, a) => {
|
|
3
|
+
const r = c(), s = a ? g(a) : r;
|
|
4
|
+
return t ? t.endsWith(r) ? null : t.includes(`${e}/category/`) ? r : s : s;
|
|
5
|
+
};
|
|
6
|
+
return {
|
|
7
|
+
basePath: e,
|
|
8
|
+
getDefaultImageUrl: c,
|
|
9
|
+
getCategoryImageUrl: g,
|
|
10
|
+
getImageUrl: o,
|
|
11
|
+
getNextImageFallback: n,
|
|
12
|
+
applyImageFallback: (t, a) => {
|
|
13
|
+
const r = t.currentTarget, s = n(r.src, a);
|
|
14
|
+
if (s && !r.src.endsWith(s)) {
|
|
15
|
+
r.src = s;
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
r.onerror = null;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
11
21
|
};
|
|
12
22
|
export {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
i as getCategoryImageUrl,
|
|
16
|
-
g as getDefaultImageUrl,
|
|
17
|
-
c as getImageUrl,
|
|
18
|
-
l as getNextImageFallback
|
|
23
|
+
u as DATA_FILES_PATH,
|
|
24
|
+
p as createImagePaths
|
|
19
25
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -152,8 +152,6 @@ export declare interface AppHeaderProps {
|
|
|
152
152
|
showSeparator?: boolean;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
export declare const applyImageFallback: (event: SyntheticEvent<HTMLImageElement>, categoryKey?: string) => void;
|
|
156
|
-
|
|
157
155
|
export declare interface AppPersistenceDefaults<TPages, TTheme> {
|
|
158
156
|
pages?: TPages;
|
|
159
157
|
theme: TTheme;
|
|
@@ -772,6 +770,7 @@ export declare interface ControlPanelFilter {
|
|
|
772
770
|
count?: number | string;
|
|
773
771
|
placeholder?: string;
|
|
774
772
|
multiple?: boolean;
|
|
773
|
+
/** Dropdown filters are searchable unless set to false; chips filters only show a search box when true. */
|
|
775
774
|
searchable?: boolean;
|
|
776
775
|
min?: number;
|
|
777
776
|
max?: number;
|
|
@@ -1031,8 +1030,19 @@ declare interface CountryWithFlagProps {
|
|
|
1031
1030
|
*/
|
|
1032
1031
|
export declare const createApiClient: ({ baseUrl, loginPath }: ApiClientConfig) => ApiClient;
|
|
1033
1032
|
|
|
1033
|
+
/**
|
|
1034
|
+
* Image paths for one entity folder under /data-files, laid out as:
|
|
1035
|
+
* default.jpg — fallback for the whole folder
|
|
1036
|
+
* category/<key>.jpg — per-category fallback
|
|
1037
|
+
* specific/<filename> — uploaded images
|
|
1038
|
+
* The folder is named after what it holds (e.g. 'books'), never after the app.
|
|
1039
|
+
*/
|
|
1040
|
+
export declare const createImagePaths: (folder: string) => ImagePaths;
|
|
1041
|
+
|
|
1034
1042
|
export declare const CSRF_HEADER = "X-CSRF-Token";
|
|
1035
1043
|
|
|
1044
|
+
export declare const DATA_FILES_PATH = "/data-files";
|
|
1045
|
+
|
|
1036
1046
|
declare function DataView_2<T>({ columns, data, rowKey, pinnedIds, selectable, onSelectionChange, selectedIds: controlledSelectedIds, pageSizeOptions, initialPageSize, showPageSize, card, actions, actionsWidth, timeline, onRowClick, rowHref, rowClassName, rowDetail, empty, initialSortKey, initialSortDirection, sortKey: controlledSortKey, sortDirection: controlledSortDirection, onSortChange, miniSort, showCardSortControls, desktopView, cardMaxWidth, className, onPageChange, onPageSizeChange, currentPage: controlledCurrentPage, totalItems: controlledTotalItems, group, showResultsCount, totalCount, itemNoun, columnSelector, }: DataViewProps<T>): default_2.JSX.Element;
|
|
1037
1047
|
export { DataView_2 as DataView }
|
|
1038
1048
|
|
|
@@ -1702,8 +1712,6 @@ export declare const formatSecondsToMediaTime: (seconds: number | undefined) =>
|
|
|
1702
1712
|
|
|
1703
1713
|
export declare const fuzzyMatch: (text: string, query: string) => boolean;
|
|
1704
1714
|
|
|
1705
|
-
export declare const getCategoryImageUrl: (categoryKey: string) => string;
|
|
1706
|
-
|
|
1707
1715
|
export declare const getCsrfToken: () => string | null;
|
|
1708
1716
|
|
|
1709
1717
|
/**
|
|
@@ -1711,17 +1719,6 @@ export declare const getCsrfToken: () => string | null;
|
|
|
1711
1719
|
*/
|
|
1712
1720
|
export declare const getDaysInMonth: (year: number, month: number) => number;
|
|
1713
1721
|
|
|
1714
|
-
export declare const getDefaultImageUrl: () => string;
|
|
1715
|
-
|
|
1716
|
-
/**
|
|
1717
|
-
* Resolves what an <img> should show for a stored image value:
|
|
1718
|
-
* - a File (new, unsaved upload) → a blob URL
|
|
1719
|
-
* - a full URL, blob URL or already-prefixed path → unchanged
|
|
1720
|
-
* - empty → the category fallback, else the app default
|
|
1721
|
-
* - a bare filename → its path under specific/
|
|
1722
|
-
*/
|
|
1723
|
-
export declare const getImageUrl: (filename: string | File, categoryKey?: string) => string;
|
|
1724
|
-
|
|
1725
1722
|
export declare const getIndicatorColor: (bmi: number, ranges: BMIRange[]) => string;
|
|
1726
1723
|
|
|
1727
1724
|
export declare const getIndicatorPosition: (bmi: number, ranges: BMIRange[]) => number;
|
|
@@ -1739,8 +1736,6 @@ export declare const getIsoWeek: (date: Date) => number;
|
|
|
1739
1736
|
*/
|
|
1740
1737
|
export declare const getMonthMatrix: (year: number, month: number, firstDayOfWeek?: 0 | 1) => Date[][];
|
|
1741
1738
|
|
|
1742
|
-
export declare const getNextImageFallback: (currentSrc: string, categoryKey?: string) => string | null;
|
|
1743
|
-
|
|
1744
1739
|
export declare const getPediatricRanges: (p5: number, p85: number, p95: number) => BMIRange[];
|
|
1745
1740
|
|
|
1746
1741
|
export declare const getPercent: (value: number, total: number) => number;
|
|
@@ -1906,7 +1901,14 @@ export declare type IconSize = 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl';
|
|
|
1906
1901
|
|
|
1907
1902
|
export declare type IconVariant = 'default' | 'muted' | 'accent' | 'info' | 'success' | 'warning' | 'danger';
|
|
1908
1903
|
|
|
1909
|
-
export declare
|
|
1904
|
+
export declare interface ImagePaths {
|
|
1905
|
+
basePath: string;
|
|
1906
|
+
getDefaultImageUrl: () => string;
|
|
1907
|
+
getCategoryImageUrl: (categoryKey: string) => string;
|
|
1908
|
+
getImageUrl: (filename: string | File, categoryKey?: string) => string;
|
|
1909
|
+
getNextImageFallback: (currentSrc: string, categoryKey?: string) => string | null;
|
|
1910
|
+
applyImageFallback: (event: SyntheticEvent<HTMLImageElement>, categoryKey?: string) => void;
|
|
1911
|
+
}
|
|
1910
1912
|
|
|
1911
1913
|
export declare const InfiniteScroll: ({ children, onLoadMore, hasMore, isLoading, threshold, rootMargin, height, onScrollChange, endMessage, className, }: InfiniteScrollProps) => JSX.Element;
|
|
1912
1914
|
|
package/dist/index.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
import { Icon as o } from "./components/Icon/Icon2.js";
|
|
2
2
|
import { Accordion as m } from "./components/Accordion/Accordion2.js";
|
|
3
3
|
import { useBodyScrollLock as e } from "./hooks/useBodyScrollLock.js";
|
|
4
|
-
import { ThemeContext as
|
|
4
|
+
import { ThemeContext as f } from "./components/ThemeSettings/ThemeContextValue.js";
|
|
5
5
|
import { useTheme as n } from "./components/ThemeSettings/useTheme.js";
|
|
6
6
|
import { useComponentEffect as s } from "./hooks/useComponentEffect.js";
|
|
7
|
-
import { Button as
|
|
8
|
-
import { Tooltip as
|
|
7
|
+
import { Button as d } from "./components/Button/Button2.js";
|
|
8
|
+
import { Tooltip as g } from "./components/Tooltip/Tooltip2.js";
|
|
9
9
|
import { Modal as S } from "./components/Modal/Modal2.js";
|
|
10
10
|
import { AlertDialog as P } from "./components/AlertDialog/AlertDialog2.js";
|
|
11
11
|
import { AnalogClock as D } from "./components/AnalogClock/AnalogClock2.js";
|
|
12
|
-
import { AngleSlider as
|
|
12
|
+
import { AngleSlider as A } from "./components/AngleSlider/AngleSlider2.js";
|
|
13
13
|
import { Separator as B } from "./components/Separator/Separator2.js";
|
|
14
14
|
import { AppHeader as E } from "./components/AppHeader/AppHeader2.js";
|
|
15
|
-
import { AvatarInitials as
|
|
16
|
-
import { Badge as
|
|
15
|
+
import { AvatarInitials as y } from "./components/AvatarInitials/AvatarInitials2.js";
|
|
16
|
+
import { Badge as _ } from "./components/Badge/Badge2.js";
|
|
17
17
|
import { Banner as v } from "./components/Banner/Banner2.js";
|
|
18
18
|
import { Blockquote as H } from "./components/Blockquote/Blockquote2.js";
|
|
19
|
-
import { ADULT_RANGES as N, PEDIATRIC_THRESHOLDS as
|
|
19
|
+
import { ADULT_RANGES as N, PEDIATRIC_THRESHOLDS as w, calculateBMI as O, getIndicatorColor as U, getIndicatorPosition as V, getPediatricRanges as W, getRangeLabel as Q } from "./components/BMI/bmiUtils.js";
|
|
20
20
|
import { BMI as G } from "./components/BMI/BMI2.js";
|
|
21
21
|
import { Breadcrumb as j } from "./components/Breadcrumb/Breadcrumb2.js";
|
|
22
22
|
import { BulkActionBar as K } from "./components/BulkActionBar/BulkActionBar2.js";
|
|
23
|
-
import { APP_DATE_FORMAT as Y, APP_DATE_TIME_FORMAT as Z, addDays as $, addMonths as rr, formatAppDate as or, formatAppDateTime as tr, formatDate as mr, formatDateLocale as ir, formatDuration as er, formatRelativeDuration as pr, formatRelativeTime as
|
|
23
|
+
import { APP_DATE_FORMAT as Y, APP_DATE_TIME_FORMAT as Z, addDays as $, addMonths as rr, formatAppDate as or, formatAppDateTime as tr, formatDate as mr, formatDateLocale as ir, formatDuration as er, formatRelativeDuration as pr, formatRelativeTime as fr, formatSecondsToMediaTime as ar, getDaysInMonth as nr, getIsoWeek as lr, getMonthMatrix as sr, getTodayDateString as ur, isAfter as dr, isBefore as cr, isDateInRange as gr, isSameDay as Tr, isToday as Sr, isWeekend as Ir } from "./helpers/Datetime.js";
|
|
24
24
|
import { Calendar as Cr } from "./components/Calendar/Calendar2.js";
|
|
25
|
-
import { CalendarHeatmap as
|
|
26
|
-
import { Card as
|
|
25
|
+
import { CalendarHeatmap as hr } from "./components/CalendarHeatmap/CalendarHeatmap2.js";
|
|
26
|
+
import { Card as Mr } from "./components/Card/Card2.js";
|
|
27
27
|
import { Checkbox as kr } from "./components/Checkbox/Checkbox2.js";
|
|
28
|
-
import { Chip as
|
|
28
|
+
import { Chip as Rr } from "./components/Chip/Chip2.js";
|
|
29
29
|
import { CollapsibleSection as Lr } from "./components/CollapsibleSection/CollapsibleSection2.js";
|
|
30
|
-
import { InputNumber as
|
|
30
|
+
import { InputNumber as br } from "./components/InputNumber/InputNumber2.js";
|
|
31
31
|
import { InputText as xr } from "./components/InputText/InputText2.js";
|
|
32
32
|
import { ColorPicker as Fr } from "./components/ColorPicker/ColorPicker2.js";
|
|
33
|
-
import { CommandPalette as
|
|
34
|
-
import { Confetti as
|
|
33
|
+
import { CommandPalette as wr } from "./components/CommandPalette/CommandPalette2.js";
|
|
34
|
+
import { Confetti as Ur } from "./components/Confetti/Confetti2.js";
|
|
35
35
|
import Wr from "./components/ConfirmDialog/ConfirmDialog2.js";
|
|
36
36
|
import { usePopover as zr } from "./components/Popover/hooks/Popover.hook.js";
|
|
37
37
|
import { Popover as qr } from "./components/Popover/Popover2.js";
|
|
@@ -39,22 +39,22 @@ import { ConfirmPopover as Jr } from "./components/ConfirmPopover/ConfirmPopover
|
|
|
39
39
|
import { ContextMenu as Xr } from "./components/ContextMenu/ContextMenu2.js";
|
|
40
40
|
import { ToastContainer as Zr, ToastProvider as $r, useToast as ro } from "./components/ContextToast/ContextToast2.js";
|
|
41
41
|
import { breakpoints as to, useBreakpoint as mo } from "./hooks/useBreakpoint.js";
|
|
42
|
-
import { ControlPanelProvider as eo, useControlPanel as po, useControlPanelContext as
|
|
42
|
+
import { ControlPanelProvider as eo, useControlPanel as po, useControlPanelContext as fo } from "./components/ControlPanel/ControlPanelContext.js";
|
|
43
43
|
import { TimePicker as no } from "./components/TimePicker/TimePicker2.js";
|
|
44
44
|
import { DatePicker as so } from "./components/DatePicker/DatePicker2.js";
|
|
45
|
-
import { foldDiacritics as
|
|
45
|
+
import { foldDiacritics as co, fuzzyMatch as go } from "./helpers/Search.js";
|
|
46
46
|
import { Dropdown as So } from "./components/Dropdown/Dropdown2.js";
|
|
47
47
|
import { InputDate as Po } from "./components/InputDate/InputDate2.js";
|
|
48
48
|
import { InputSearch as Do } from "./components/InputSearch/InputSearch2.js";
|
|
49
|
-
import { Rating as
|
|
49
|
+
import { Rating as Ao } from "./components/Rating/Rating2.js";
|
|
50
50
|
import { Slider as Bo } from "./components/Slider/Slider2.js";
|
|
51
51
|
import { ControlPanel as Eo } from "./components/ControlPanel/ControlPanel2.js";
|
|
52
|
-
import { CopyButton as
|
|
53
|
-
import { Flag as
|
|
52
|
+
import { CopyButton as yo } from "./components/CopyButton/CopyButton2.js";
|
|
53
|
+
import { Flag as _o } from "./components/Flag/Flag2.js";
|
|
54
54
|
import { CountryWithFlag as vo } from "./components/CountryWithFlag/CountryWithFlag2.js";
|
|
55
55
|
import { getResultsCount as Ho } from "./helpers/Pagination.js";
|
|
56
56
|
import { EmptyState as No } from "./components/EmptyState/EmptyState2.js";
|
|
57
|
-
import { Pagination as
|
|
57
|
+
import { Pagination as Oo } from "./components/Pagination/Pagination2.js";
|
|
58
58
|
import { TimelineMarkerDot as Vo, TimelineMarkers as Wo, TimelineMobileSeparator as Qo, calculateTimelineMarkers as zo } from "./components/TimelineMarkers/TimelineMarkers2.js";
|
|
59
59
|
import { MiniSort as qo } from "./components/MiniSort/MiniSort2.js";
|
|
60
60
|
import { DataView as Jo } from "./components/DataView/DataView2.js";
|
|
@@ -64,22 +64,22 @@ import { Drawer as rt } from "./components/Drawer/Drawer2.js";
|
|
|
64
64
|
import { DayAgenda as tt } from "./components/DayAgenda/DayAgenda2.js";
|
|
65
65
|
import { DiffViewer as it } from "./components/DiffViewer/DiffViewer2.js";
|
|
66
66
|
import { EmojiPicker as pt } from "./components/EmojiPicker/EmojiPicker2.js";
|
|
67
|
-
import { ErrorBoundary as
|
|
67
|
+
import { ErrorBoundary as at } from "./components/ErrorBoundary/ErrorBoundary2.js";
|
|
68
68
|
import { ToggleButtons as lt } from "./components/ToggleButtons/ToggleButtons2.js";
|
|
69
69
|
import { EventCalendar as ut } from "./components/EventCalendar/EventCalendar2.js";
|
|
70
|
-
import { FileDropzone as
|
|
70
|
+
import { FileDropzone as ct } from "./components/FileDropzone/FileDropzone2.js";
|
|
71
71
|
import { FloatButton as Tt } from "./components/FloatButton/FloatButton2.js";
|
|
72
72
|
import { FloatingWindow as It } from "./components/FloatingWindow/FloatingWindow2.js";
|
|
73
73
|
import { Loading as Ct } from "./components/Loading/Loading2.js";
|
|
74
|
-
import { FolderBrowserModal as
|
|
75
|
-
import { Col as
|
|
74
|
+
import { FolderBrowserModal as ht } from "./components/FolderBrowserModal/FolderBrowserModal2.js";
|
|
75
|
+
import { Col as Mt } from "./components/Grid/Col.js";
|
|
76
76
|
import { Grid as kt } from "./components/Grid/Grid2.js";
|
|
77
|
-
import { IconPicker as
|
|
77
|
+
import { IconPicker as Rt } from "./components/IconPicker/IconPicker2.js";
|
|
78
78
|
import { InfiniteScroll as Lt } from "./components/InfiniteScroll/InfiniteScroll2.js";
|
|
79
|
-
import { InputEmail as
|
|
79
|
+
import { InputEmail as bt, validateEmail as vt } from "./components/InputEmail/InputEmail2.js";
|
|
80
80
|
import { InputFile as Ht } from "./components/InputFile/InputFile2.js";
|
|
81
|
-
import { InputMask as Nt, InputMaskPresets as
|
|
82
|
-
import { InputPassword as
|
|
81
|
+
import { InputMask as Nt, InputMaskPresets as wt } from "./components/InputMask/InputMask2.js";
|
|
82
|
+
import { InputPassword as Ut } from "./components/InputPassword/InputPassword2.js";
|
|
83
83
|
import { InputPhone as Wt } from "./components/InputPhone/InputPhone2.js";
|
|
84
84
|
import { InputPIN as zt } from "./components/InputPIN/InputPIN2.js";
|
|
85
85
|
import { InputTextarea as qt } from "./components/InputTextarea/InputTextarea2.js";
|
|
@@ -90,20 +90,20 @@ import { List as rm } from "./components/List/List2.js";
|
|
|
90
90
|
import { MenuHamburger as tm } from "./components/MenuHamburger/MenuHamburger2.js";
|
|
91
91
|
import { Minimap as im } from "./components/Minimap/Minimap2.js";
|
|
92
92
|
import { MiniStatsCard as pm } from "./components/MiniStatsCard/MiniStatsCard2.js";
|
|
93
|
-
import { NavBar as
|
|
93
|
+
import { NavBar as am } from "./components/NavBar/NavBar2.js";
|
|
94
94
|
import { NotificationPanel as lm } from "./components/NotificationPanel/NotificationPanel2.js";
|
|
95
95
|
import { PieChart as um } from "./components/PieChart/PieChart2.js";
|
|
96
|
-
import { clamp as
|
|
96
|
+
import { clamp as cm, format2Digits as gm, getPercent as Tm, getPercentsOf2Numbers as Sm } from "./helpers/Numbers.js";
|
|
97
97
|
import { ProgressBar as Pm } from "./components/ProgressBar/ProgressBar2.js";
|
|
98
98
|
import { ProgressRing as Dm } from "./components/ProgressRing/ProgressRing2.js";
|
|
99
|
-
import { QuantitySelector as
|
|
99
|
+
import { QuantitySelector as Am } from "./components/QuantitySelector/QuantitySelector2.js";
|
|
100
100
|
import { QuickAdd as Bm } from "./components/QuickAdd/QuickAdd2.js";
|
|
101
101
|
import { QuickNumberUpdate as Em } from "./components/QuickNumberUpdate/QuickNumberUpdate2.js";
|
|
102
|
-
import { Radio as
|
|
103
|
-
import { QuickOptionUpdate as
|
|
102
|
+
import { Radio as ym } from "./components/Radio/Radio2.js";
|
|
103
|
+
import { QuickOptionUpdate as _m } from "./components/QuickOptionUpdate/QuickOptionUpdate2.js";
|
|
104
104
|
import { RangeSlider as vm } from "./components/RangeSlider/RangeSlider2.js";
|
|
105
|
-
import { ensureHtml as Hm, htmlToMarkdown as Fm, htmlToPlainText as Nm, splitHtmlIntoSteps as
|
|
106
|
-
import { RichTextEditor as
|
|
105
|
+
import { ensureHtml as Hm, htmlToMarkdown as Fm, htmlToPlainText as Nm, splitHtmlIntoSteps as wm } from "./helpers/HtmlContent.js";
|
|
106
|
+
import { RichTextEditor as Um } from "./components/RichTextEditor/RichTextEditor2.js";
|
|
107
107
|
import { RollingNumber as Wm } from "./components/RollingNumber/RollingNumber2.js";
|
|
108
108
|
import { ScrollToTop as zm } from "./components/ScrollToTop/ScrollToTop2.js";
|
|
109
109
|
import { SidebarProvider as qm, useSidebar as jm } from "./components/Sidebar/SidebarContext.js";
|
|
@@ -113,40 +113,40 @@ import { Skeleton as $m } from "./components/Skeleton/Skeleton2.js";
|
|
|
113
113
|
import { SplitPanel as oi } from "./components/SplitPanel/SplitPanel2.js";
|
|
114
114
|
import { Splitter as mi } from "./components/Splitter/Splitter2.js";
|
|
115
115
|
import { StackedBar as ei } from "./components/StackedBar/StackedBar2.js";
|
|
116
|
-
import { Stats as
|
|
116
|
+
import { Stats as fi } from "./components/Stats/Stats2.js";
|
|
117
117
|
import { StickyBar as ni } from "./components/StickyBar/StickyBar2.js";
|
|
118
118
|
import { SuggestionsList as si } from "./components/SuggestionsList/SuggestionsList2.js";
|
|
119
|
-
import { THEME_CONFIGS as
|
|
119
|
+
import { THEME_CONFIGS as di, getThemeConfig as ci } from "./components/ThemeSettings/themeConfig.js";
|
|
120
120
|
import { ThemeProvider as Ti } from "./components/ThemeSettings/ThemeContext.js";
|
|
121
121
|
import { ToggleSwitch as Ii } from "./components/ToggleSwitch/ToggleSwitch2.js";
|
|
122
122
|
import { ThemeSettings as Ci } from "./components/ThemeSettings/ThemeSettings2.js";
|
|
123
|
-
import { Timeline as
|
|
124
|
-
import { TipsOfTheDay as
|
|
123
|
+
import { Timeline as hi } from "./components/Timeline/Timeline2.js";
|
|
124
|
+
import { TipsOfTheDay as Mi } from "./components/TipsOfTheDay/TipsOfTheDay2.js";
|
|
125
125
|
import { Toast as ki } from "./components/Toast/Toast2.js";
|
|
126
|
-
import { Toolbar as
|
|
126
|
+
import { Toolbar as Ri } from "./components/Toolbar/Toolbar2.js";
|
|
127
127
|
import { TourHud as Li } from "./components/TourHud/TourHud2.js";
|
|
128
|
-
import { Transition as
|
|
128
|
+
import { Transition as bi } from "./components/Transition/Transition2.js";
|
|
129
129
|
import { Tree as xi } from "./components/Tree/Tree2.js";
|
|
130
130
|
import { VirtualList as Fi } from "./components/VirtualList/VirtualList2.js";
|
|
131
|
-
import { WHtR as
|
|
132
|
-
import { ApiError as
|
|
131
|
+
import { WHtR as wi } from "./components/WHtR/WHtR2.js";
|
|
132
|
+
import { ApiError as Ui, CSRF_HEADER as Vi, HttpMethod as Wi, HttpStatus as Qi, buildRequestHeaders as zi, createApiClient as Gi, getCsrfToken as qi, isClientErrorStatus as ji, isServerErrorStatus as Ji, isSuccessStatus as Ki, readErrorMessage as Xi } from "./helpers/Http.js";
|
|
133
133
|
import { AuthContext as Zi, AuthProvider as $i } from "./contexts/AuthContext/AuthContext.js";
|
|
134
134
|
import { useAuth as oe } from "./hooks/useAuth/useAuth.js";
|
|
135
135
|
import { ChangePasswordModal as me } from "./components/Auth/ChangePasswordModal/ChangePasswordModal2.js";
|
|
136
136
|
import { Login as ee } from "./components/Auth/Login/Login2.js";
|
|
137
|
-
import { useAccountMenu as
|
|
137
|
+
import { useAccountMenu as fe } from "./hooks/useAccountMenu.js";
|
|
138
138
|
import { AppPersistenceStorage as ne } from "./helpers/AppPersistenceStorage.js";
|
|
139
139
|
import { useAppPersistence as se } from "./hooks/useAppPersistence.js";
|
|
140
|
-
import { chartColors as
|
|
140
|
+
import { chartColors as de, chartTooltipStyle as ce } from "./helpers/Charts.js";
|
|
141
141
|
import { formatBigNumber as Te, formatBytes as Se, formatMoney as Ie } from "./helpers/Format.js";
|
|
142
142
|
import { highlightText as Ce } from "./helpers/Highlight.js";
|
|
143
|
-
import {
|
|
144
|
-
import { matchStringsByLogicalOperator as
|
|
145
|
-
import { shortenText as
|
|
146
|
-
import { extractDomainFromUrl as
|
|
147
|
-
import { LIB_BUILD_DATE as
|
|
148
|
-
import { initVersionInfo as
|
|
149
|
-
import { validateVin as
|
|
143
|
+
import { DATA_FILES_PATH as he, createImagePaths as Ae } from "./helpers/Images.js";
|
|
144
|
+
import { matchStringsByLogicalOperator as Be } from "./helpers/LogicalOperators.js";
|
|
145
|
+
import { shortenText as Ee, slugify as Re, truncateText as ye } from "./helpers/Strings.js";
|
|
146
|
+
import { extractDomainFromUrl as _e, stripQueryString as be, stripTrackingParams as ve } from "./helpers/Urls.js";
|
|
147
|
+
import { LIB_BUILD_DATE as He, LIB_BUILD_ID as Fe, LIB_BUILD_NUMBER as Ne, LIB_COMMIT as we, LIB_VERSION as Oe } from "./version.js";
|
|
148
|
+
import { initVersionInfo as Ve } from "./helpers/VersionInfo.js";
|
|
149
|
+
import { validateVin as Qe } from "./validators/Vin.js";
|
|
150
150
|
export {
|
|
151
151
|
N as ADULT_RANGES,
|
|
152
152
|
Y as APP_DATE_FORMAT,
|
|
@@ -154,40 +154,41 @@ export {
|
|
|
154
154
|
m as Accordion,
|
|
155
155
|
P as AlertDialog,
|
|
156
156
|
D as AnalogClock,
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
A as AngleSlider,
|
|
158
|
+
Ui as ApiError,
|
|
159
159
|
E as AppHeader,
|
|
160
160
|
ne as AppPersistenceStorage,
|
|
161
161
|
Zi as AuthContext,
|
|
162
162
|
ee as AuthLogin,
|
|
163
163
|
$i as AuthProvider,
|
|
164
|
-
|
|
164
|
+
y as AvatarInitials,
|
|
165
165
|
G as BMI,
|
|
166
|
-
|
|
166
|
+
_ as Badge,
|
|
167
167
|
v as Banner,
|
|
168
168
|
H as Blockquote,
|
|
169
169
|
j as Breadcrumb,
|
|
170
170
|
K as BulkActionBar,
|
|
171
|
-
|
|
171
|
+
d as Button,
|
|
172
172
|
Vi as CSRF_HEADER,
|
|
173
173
|
Cr as Calendar,
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
hr as CalendarHeatmap,
|
|
175
|
+
Mr as Card,
|
|
176
176
|
me as ChangePasswordModal,
|
|
177
177
|
kr as Checkbox,
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
Rr as Chip,
|
|
179
|
+
Mt as Col,
|
|
180
180
|
Lr as CollapsibleSection,
|
|
181
181
|
Fr as ColorPicker,
|
|
182
|
-
|
|
183
|
-
|
|
182
|
+
wr as CommandPalette,
|
|
183
|
+
Ur as Confetti,
|
|
184
184
|
Wr as ConfirmDialog,
|
|
185
185
|
Jr as ConfirmPopover,
|
|
186
186
|
Xr as ContextMenu,
|
|
187
187
|
Eo as ControlPanel,
|
|
188
188
|
eo as ControlPanelProvider,
|
|
189
|
-
|
|
189
|
+
yo as CopyButton,
|
|
190
190
|
vo as CountryWithFlag,
|
|
191
|
+
he as DATA_FILES_PATH,
|
|
191
192
|
Jo as DataView,
|
|
192
193
|
so as DatePicker,
|
|
193
194
|
Xo as DateRangePicker,
|
|
@@ -197,28 +198,27 @@ export {
|
|
|
197
198
|
So as Dropdown,
|
|
198
199
|
pt as EmojiPicker,
|
|
199
200
|
No as EmptyState,
|
|
200
|
-
|
|
201
|
+
at as ErrorBoundary,
|
|
201
202
|
ut as EventCalendar,
|
|
202
|
-
|
|
203
|
-
|
|
203
|
+
ct as FileDropzone,
|
|
204
|
+
_o as Flag,
|
|
204
205
|
Tt as FloatButton,
|
|
205
206
|
It as FloatingWindow,
|
|
206
|
-
|
|
207
|
+
ht as FolderBrowserModal,
|
|
207
208
|
kt as Grid,
|
|
208
209
|
Wi as HttpMethod,
|
|
209
210
|
Qi as HttpStatus,
|
|
210
|
-
Ae as IMAGES_BASE_PATH,
|
|
211
211
|
o as Icon,
|
|
212
|
-
|
|
212
|
+
Rt as IconPicker,
|
|
213
213
|
Lt as InfiniteScroll,
|
|
214
214
|
Po as InputDate,
|
|
215
|
-
|
|
215
|
+
bt as InputEmail,
|
|
216
216
|
Ht as InputFile,
|
|
217
217
|
Nt as InputMask,
|
|
218
|
-
|
|
219
|
-
|
|
218
|
+
wt as InputMaskPresets,
|
|
219
|
+
br as InputNumber,
|
|
220
220
|
zt as InputPIN,
|
|
221
|
-
|
|
221
|
+
Ut as InputPassword,
|
|
222
222
|
Wt as InputPhone,
|
|
223
223
|
Do as InputSearch,
|
|
224
224
|
xr as InputText,
|
|
@@ -226,11 +226,11 @@ export {
|
|
|
226
226
|
Jt as InputTime,
|
|
227
227
|
Xt as InputUrl,
|
|
228
228
|
Zt as JourneyWizard,
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
229
|
+
He as LIB_BUILD_DATE,
|
|
230
|
+
Fe as LIB_BUILD_ID,
|
|
231
|
+
Ne as LIB_BUILD_NUMBER,
|
|
232
|
+
we as LIB_COMMIT,
|
|
233
|
+
Oe as LIB_VERSION,
|
|
234
234
|
rm as List,
|
|
235
235
|
Ct as Loading,
|
|
236
236
|
tm as MenuHamburger,
|
|
@@ -238,22 +238,22 @@ export {
|
|
|
238
238
|
pm as MiniStatsCard,
|
|
239
239
|
im as Minimap,
|
|
240
240
|
S as Modal,
|
|
241
|
-
|
|
241
|
+
am as NavBar,
|
|
242
242
|
lm as NotificationPanel,
|
|
243
|
-
|
|
244
|
-
|
|
243
|
+
w as PEDIATRIC_THRESHOLDS,
|
|
244
|
+
Oo as Pagination,
|
|
245
245
|
um as PieChart,
|
|
246
246
|
qr as Popover,
|
|
247
247
|
Pm as ProgressBar,
|
|
248
248
|
Dm as ProgressRing,
|
|
249
|
-
|
|
249
|
+
Am as QuantitySelector,
|
|
250
250
|
Bm as QuickAdd,
|
|
251
251
|
Em as QuickNumberUpdate,
|
|
252
|
-
|
|
253
|
-
|
|
252
|
+
_m as QuickOptionUpdate,
|
|
253
|
+
ym as Radio,
|
|
254
254
|
vm as RangeSlider,
|
|
255
|
-
|
|
256
|
-
|
|
255
|
+
Ao as Rating,
|
|
256
|
+
Um as RichTextEditor,
|
|
257
257
|
Wm as RollingNumber,
|
|
258
258
|
zm as ScrollToTop,
|
|
259
259
|
B as Separator,
|
|
@@ -265,46 +265,46 @@ export {
|
|
|
265
265
|
oi as SplitPanel,
|
|
266
266
|
mi as Splitter,
|
|
267
267
|
ei as StackedBar,
|
|
268
|
-
|
|
268
|
+
fi as Stats,
|
|
269
269
|
ni as StickyBar,
|
|
270
270
|
si as SuggestionsList,
|
|
271
|
-
|
|
272
|
-
|
|
271
|
+
di as THEME_CONFIGS,
|
|
272
|
+
f as ThemeContext,
|
|
273
273
|
Ti as ThemeProvider,
|
|
274
274
|
Ci as ThemeSettings,
|
|
275
275
|
no as TimePicker,
|
|
276
|
-
|
|
276
|
+
hi as Timeline,
|
|
277
277
|
Vo as TimelineMarkerDot,
|
|
278
278
|
Wo as TimelineMarkers,
|
|
279
279
|
Qo as TimelineMobileSeparator,
|
|
280
|
-
|
|
280
|
+
Mi as TipsOfTheDay,
|
|
281
281
|
ki as Toast,
|
|
282
282
|
Zr as ToastContainer,
|
|
283
283
|
$r as ToastProvider,
|
|
284
284
|
lt as ToggleButtons,
|
|
285
285
|
Ii as ToggleSwitch,
|
|
286
|
-
|
|
287
|
-
|
|
286
|
+
Ri as Toolbar,
|
|
287
|
+
g as Tooltip,
|
|
288
288
|
Li as TourHud,
|
|
289
|
-
|
|
289
|
+
bi as Transition,
|
|
290
290
|
xi as Tree,
|
|
291
291
|
Fi as VirtualList,
|
|
292
|
-
|
|
292
|
+
wi as WHtR,
|
|
293
293
|
$ as addDays,
|
|
294
294
|
rr as addMonths,
|
|
295
|
-
Me as applyImageFallback,
|
|
296
295
|
to as breakpoints,
|
|
297
296
|
zi as buildRequestHeaders,
|
|
298
|
-
|
|
297
|
+
O as calculateBMI,
|
|
299
298
|
zo as calculateTimelineMarkers,
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
299
|
+
de as chartColors,
|
|
300
|
+
ce as chartTooltipStyle,
|
|
301
|
+
cm as clamp,
|
|
303
302
|
Gi as createApiClient,
|
|
303
|
+
Ae as createImagePaths,
|
|
304
304
|
Hm as ensureHtml,
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
305
|
+
_e as extractDomainFromUrl,
|
|
306
|
+
co as foldDiacritics,
|
|
307
|
+
gm as format2Digits,
|
|
308
308
|
or as formatAppDate,
|
|
309
309
|
tr as formatAppDateTime,
|
|
310
310
|
Te as formatBigNumber,
|
|
@@ -314,60 +314,56 @@ export {
|
|
|
314
314
|
er as formatDuration,
|
|
315
315
|
Ie as formatMoney,
|
|
316
316
|
pr as formatRelativeDuration,
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
he as getCategoryImageUrl,
|
|
317
|
+
fr as formatRelativeTime,
|
|
318
|
+
ar as formatSecondsToMediaTime,
|
|
319
|
+
go as fuzzyMatch,
|
|
321
320
|
qi as getCsrfToken,
|
|
322
321
|
nr as getDaysInMonth,
|
|
323
|
-
|
|
324
|
-
ke as getImageUrl,
|
|
325
|
-
O as getIndicatorColor,
|
|
322
|
+
U as getIndicatorColor,
|
|
326
323
|
V as getIndicatorPosition,
|
|
327
324
|
lr as getIsoWeek,
|
|
328
325
|
sr as getMonthMatrix,
|
|
329
|
-
Ee as getNextImageFallback,
|
|
330
326
|
W as getPediatricRanges,
|
|
331
327
|
Tm as getPercent,
|
|
332
328
|
Sm as getPercentsOf2Numbers,
|
|
333
329
|
Q as getRangeLabel,
|
|
334
330
|
Ho as getResultsCount,
|
|
335
|
-
|
|
331
|
+
ci as getThemeConfig,
|
|
336
332
|
ur as getTodayDateString,
|
|
337
333
|
Ce as highlightText,
|
|
338
334
|
Fm as htmlToMarkdown,
|
|
339
335
|
Nm as htmlToPlainText,
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
336
|
+
Ve as initVersionInfo,
|
|
337
|
+
dr as isAfter,
|
|
338
|
+
cr as isBefore,
|
|
343
339
|
ji as isClientErrorStatus,
|
|
344
|
-
|
|
340
|
+
gr as isDateInRange,
|
|
345
341
|
Tr as isSameDay,
|
|
346
342
|
Ji as isServerErrorStatus,
|
|
347
343
|
Ki as isSuccessStatus,
|
|
348
344
|
Sr as isToday,
|
|
349
345
|
Ir as isWeekend,
|
|
350
|
-
|
|
346
|
+
Be as matchStringsByLogicalOperator,
|
|
351
347
|
Xi as readErrorMessage,
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
348
|
+
Ee as shortenText,
|
|
349
|
+
Re as slugify,
|
|
350
|
+
wm as splitHtmlIntoSteps,
|
|
351
|
+
be as stripQueryString,
|
|
352
|
+
ve as stripTrackingParams,
|
|
353
|
+
ye as truncateText,
|
|
354
|
+
fe as useAccountMenu,
|
|
359
355
|
se as useAppPersistence,
|
|
360
356
|
oe as useAuth,
|
|
361
357
|
e as useBodyScrollLock,
|
|
362
358
|
mo as useBreakpoint,
|
|
363
359
|
s as useComponentEffect,
|
|
364
360
|
po as useControlPanel,
|
|
365
|
-
|
|
361
|
+
fo as useControlPanelContext,
|
|
366
362
|
zr as usePopover,
|
|
367
363
|
jm as useSidebar,
|
|
368
364
|
Zo as useSwipe,
|
|
369
365
|
n as useTheme,
|
|
370
366
|
ro as useToast,
|
|
371
367
|
vt as validateEmail,
|
|
372
|
-
|
|
368
|
+
Qe as validateVin
|
|
373
369
|
};
|
package/dist/version.js
CHANGED
package/dist/version.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memobit/libs",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.0",
|
|
4
4
|
"description": "React component library powering the Memobit apps — 100+ components, helpers and hooks. Icons ship as @memobit/icons and themes as @memobit/themes. TypeScript-first, ESM-only, React 19.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|