@stenajs-webui/forms 20.7.3 → 20.7.5
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.es.js +61 -62
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.es.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode('._switch_1d6s8_1{--swui-switch-width: 50px;--swui-switch-height: var(--swui-field-box-size-medium);--swui-switch-animation-time: var(--swui-animation-time-medium);--swui-switch-selected-highlight-color: var(--lhds-color-blue-500);--swui-switch-knob-width: calc(var(--swui-switch-height) - 2px);--swui-switch-knob-bg-color-enabled: var(--swui-handle-bg-enabled-color);--swui-switch-knob-bg-color-disabled: var(--swui-handle-bg-disabled-color);--swui-switch-container-bg-color-enabled: var(--swui-field-bg-enabled);--swui-switch-container-bg-color-disabled: var(--swui-field-bg-disabled);--swui-switch-knob-border-color-enabled: var(--swui-separator-color);--swui-switch-container-border-color: var(--swui-field-border-color);--swui-switch-container-border-color-hover: var( --swui-field-border-color-hover );--swui-switch-container-border-color-disabled: var( --swui-field-border-color-disabled );--swui-switch-knob-shadow-color: var(--swui-field-shadow-color);display:flex;flex-direction:row;border:1px solid var(--swui-switch-container-border-color);box-sizing:border-box;background-color:var(--swui-switch-container-bg-color-enabled);height:var(--swui-switch-height);width:var(--swui-switch-width);border-radius:calc(var(--swui-switch-height) / 2);padding:0;margin:0;cursor:pointer;transition:background-color var(--swui-switch-animation-time)}._switch_1d6s8_1:focus{outline:0}._switch_1d6s8_1:focus-visible{outline:var(--swui-focus-outline);outline-offset:2px;border:1px solid var(--swui-switch-selected-highlight-color)}._switch_1d6s8_1:hover{border:1px solid var(--swui-switch-selected-highlight-color)}._switch_1d6s8_1:disabled{cursor:default;background-color:var(--swui-switch-container-bg-color-disabled);border:1px solid var(--swui-switch-container-border-color-disabled)}._switch_1d6s8_1:disabled ._knob_1d6s8_56{background-color:var(--swui-switch-knob-bg-color-disabled)}._switch_1d6s8_1 ._filler_1d6s8_61{flex:none;transition:flex var(--swui-switch-animation-time)}._switch_1d6s8_1 ._knob_1d6s8_56{width:var(--swui-switch-knob-width);height:var(--swui-switch-knob-width);border-radius:50%;background-color:var(--swui-switch-knob-bg-color-enabled);box-shadow:var(--swui-switch-knob-shadow-color) 0 0 4px 1px}._checked_1d6s8_75{border:1px solid var(--swui-switch-selected-highlight-color);background-color:var(--swui-switch-selected-highlight-color)}._checked_1d6s8_75 ._filler_1d6s8_61{flex:1}._checkbox_1ndou_1{--swui-checkbox-height: var(--swui-field-box-size-medium);--swui-checkbox-height-small: var(--swui-field-box-size-small);--swui-checkbox-border-radius: var(--swui-field-border-radius);--swui-checkbox-animation-time: var(--swui-animation-time-medium);--swui-checkbox-icon-color: var(--swui-field-indicator-active-color);--swui-checkbox-disabled-icon-color: var(--swui-text-disabled-color);--swui-checkbox-unchecked-icon-color: var( --swui-field-indicator-inactive-color );--swui-checkbox-unchecked-bg-color: var(--swui-white);--swui-checkbox-checked-bg-color: var(--lhds-color-blue-500);--swui-checkbox-disabled-bg-color: var(--swui-field-bg-disabled);--swui-checkbox-disabled-checked-bg-color: var(--swui-field-bg-disabled);--swui-checkbox-border-color: var(--swui-field-border-color);--swui-checkbox-border-hover-color: var(--swui-field-border-color-hover);--swui-checkbox-disabled-border-color: var(--swui-checkbox-disabled-bg-color);-webkit-appearance:none;-moz-appearance:none;border-radius:var(--swui-checkbox-border-radius);outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;cursor:pointer;border:1px solid var(--current-border-color, var(--swui-checkbox-border-color));background:var(--current-bg-color, var(--swui-checkbox-unchecked-bg-color));transition:background var(--swui-checkbox-animation-time),border-color var(--swui-checkbox-animation-time);flex-shrink:0}._checkbox_1ndou_1._standard_1ndou_39{width:var(--swui-checkbox-height);height:var(--swui-checkbox-height)}._checkbox_1ndou_1._standard_1ndou_39:after{width:3px;height:6px;left:9px;top:6px}._checkbox_1ndou_1._small_1ndou_51{width:var(--swui-checkbox-height-small);height:var(--swui-checkbox-height-small)}._checkbox_1ndou_1._small_1ndou_51:after{width:3px;height:6px;left:5px;top:2px}._checkbox_1ndou_1:after{content:"";display:block;position:absolute;transition:transform var(--swui-checkbox-animation-time) var(--d-t-e, ease),opacity var(--swui-checkbox-animation-time),width var(--swui-checkbox-animation-time),top var(--swui-checkbox-animation-time);border:2px solid var( --current-checkbox-icon-color, var(--swui-checkbox-unchecked-icon-color) );border-top:0;border-left:0;transform:rotate(var(--current-check-rotation, 20deg));box-sizing:content-box}._checkbox_1ndou_1:checked{--current-check-rotation: 43deg;--current-bg-color: var(--swui-checkbox-checked-bg-color);--current-border-color: var(--swui-checkbox-checked-bg-color);--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}._checkbox_1ndou_1:checked:after{--current-checkbox-icon-color: var(--swui-checkbox-icon-color)}._checkbox_1ndou_1:disabled:not(:checked){--current-bg-color: var(--swui-checkbox-disabled-bg-color);--current-border-color: var(--swui-checkbox-disabled-border-color)}._checkbox_1ndou_1:disabled:not(:checked):after{--current-checkbox-icon-color: --swui-checkbox-unchecked-icon-color}._checkbox_1ndou_1:disabled:checked{--current-bg-color: var(--swui-checkbox-disabled-checked-bg-color);--current-border-color: var(--swui-checkbox-disabled-border-color)}._checkbox_1ndou_1:disabled:checked:after{--current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color)}._checkbox_1ndou_1:indeterminate{--current-check-rotation: 43deg;--current-bg-color: var(--swui-checkbox-checked-bg-color);--current-border-color: var(--swui-checkbox-checked-bg-color);--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}._checkbox_1ndou_1:indeterminate:after{--current-checkbox-icon-color: var(--swui-checkbox-icon-color);border-right:0;transform:rotate(0);width:6px}._checkbox_1ndou_1:indeterminate._standard_1ndou_39:after{top:4px;left:8px}._checkbox_1ndou_1:indeterminate._small_1ndou_51:after{top:0;left:4px}._checkbox_1ndou_1:indeterminate:disabled:after{--current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color)}._checkbox_1ndou_1:hover:not(:checked):not(:disabled){--current-border-color: var(--swui-checkbox-border-hover-color)}._checkbox_1ndou_1:focus-visible{outline:var(--swui-focus-outline)}._checkbox_1ndou_1+label{font-size:1.4rem;line-height:var(--swui-checkbox-height);display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}._radiobutton_foy83_1{--swui-radiobutton-size-standard: var(--swui-field-box-size-medium);--swui-radiobutton-size-small: var(--swui-field-box-size-small);--swui-radiobutton-animation-time: var(--swui-animation-time-medium);--swui-radiobutton-icon-color: var(--swui-field-indicator-active-color);--swui-radiobutton-disabled-icon-color: var(--swui-field-text-color-disabled);--swui-radiobutton-unchecked-icon-color: var( --swui-field-indicator-inactive-color );--swui-radiobutton-checked-bg-color: var(--lhds-color-blue-500);--swui-radiobutton-checked-disabled-bg-color: var(--swui-field-bg-disabled);--swui-radiobutton-unchecked-bg-color: var(--swui-white);--swui-radiobutton-unchecked-disabled-bg-color: var(--swui-field-bg-disabled);--swui-radiobutton-unchecked-border-color: var(--swui-field-border-color);--swui-radiobutton-unchecked-hover-border-color: var( --swui-field-border-color-hover );--swui-radiobutton-disabled-border-color: var( --swui-radiobutton-checked-disabled-bg-color );-webkit-appearance:none;-moz-appearance:none;outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;flex:none;cursor:pointer;border:1px solid var(--current-border-color, var(--swui-radiobutton-unchecked-border-color));border-radius:50%;background:var( --current-bg-color, var(--swui-radiobutton-unchecked-bg-color) );transition:background var(--swui-radiobutton-animation-time),border-color var(--swui-radiobutton-animation-time)}._radiobutton_foy83_1._standard_foy83_45{height:var(--swui-radiobutton-size-standard);width:var(--swui-radiobutton-size-standard)}._radiobutton_foy83_1._standard_foy83_45:after{left:7px;top:7px}._radiobutton_foy83_1._small_foy83_55{height:var(--swui-radiobutton-size-small);width:var(--swui-radiobutton-size-small)}._radiobutton_foy83_1._small_foy83_55:after{left:3px;top:3px}._radiobutton_foy83_1:after{content:"";display:block;position:absolute;transition:transform var(--current-transform-time, var(--swui-radiobutton-animation-time)) var(--current-transform-type, ease),opacity var(--current-opacity-time, var(--swui-radiobutton-animation-time)) var(--current-transform-type, ease);transform:scale(var(--current-scale, 0));width:8px;height:8px;border-radius:50%;background:var( --current-icon-color, var(--swui-radiobutton-unchecked-icon-color) );opacity:var(--current-opacity, 0)}._radiobutton_foy83_1:checked{--current-bg-color: var(--swui-radiobutton-checked-bg-color);--current-border-color: var(--swui-radiobutton-checked-bg-color);--current-opacity-time: var(--swui-radiobutton-animation-time);--current-transform-time: .6s;--current-transform-type: cubic-bezier(.2, .85, .32, 1.2);--current-opacity: 1;--current-scale: 1}._radiobutton_foy83_1:checked:after{--current-icon-color: var(--swui-radiobutton-icon-color)}._radiobutton_foy83_1:disabled{--current-bg-color: var(--swui-radiobutton-unchecked-disabled-bg-color);--current-border-color: var(--swui-radiobutton-disabled-border-color)}._radiobutton_foy83_1:disabled:checked{--current-bg-color: var(--swui-radiobutton-checked-disabled-bg-color)}._radiobutton_foy83_1:disabled:checked:after{--current-icon-color: var(--swui-radiobutton-disabled-icon-color)}._radiobutton_foy83_1:hover:not(:checked):not(:disabled){--current-border-color: var( --swui-radiobutton-unchecked-hover-border-color )}._radiobutton_foy83_1:focus-visible{outline:var(--swui-focus-outline)}._radiobutton_foy83_1+label{font-size:1.4rem;line-height:var(--swui-radiobutton-size-standard);display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}._radioButtonBox_vpn6v_1{box-sizing:border-box;background-color:var(--lhds-color-ui-200);position:relative;border:1px solid var(--silver-ui);width:100%;border-radius:16px;padding:var(--swui-metrics-space);font-size:var(--swui-font-size-inputs);align-items:center;display:flex;cursor:pointer;outline:none}._radioButtonBox_vpn6v_1:hover{border-color:var(--hav)}._radioButtonBox_vpn6v_1._danger_vpn6v_19{background-color:var(--snackskal-light);border-color:var(--snackskal-light)}._radioButtonBox_vpn6v_1._danger_vpn6v_19:hover{border-color:var(--lhds-color-red-500)}@media (max-width: 768px){._radioButtonWrapper_vpn6v_30{width:100%}}._textInput_1jb3g_1{display:flex;height:var(--swui-field-height);width:100%;align-items:center;background:var(--swui-field-bg-enabled);border:1px solid var(--swui-field-border-color);border-radius:var(--swui-field-border-radius);outline:none}._textInput_1jb3g_1._textInput_1jb3g_1:focus-within:not(._disabled_1jb3g_11){outline:var(--swui-focus-outline);border-color:transparent}._textInput_1jb3g_1 ._input_1jb3g_16{letter-spacing:var(--swui-field-letter-spacing);line-height:var(--swui-field-text-line-height);width:100%;padding:2px var(--swui-metrics-indent);color:var(--swui-field-text-color);font-size:var(--swui-font-size-inputs);font-family:var(--swui-font-input);font-weight:var(--swui-font-weight-inputs);background:var(--swui-hidden);border:none;min-width:0;margin:0;outline:none}._textInput_1jb3g_1 ._input_1jb3g_16:disabled{color:var(--swui-field-text-color-disabled)}._textInput_1jb3g_1 ._input_1jb3g_16::placeholder{color:var(--swui-field-placeholder-color);font-weight:var(--swui-field-placeholder-font-weight)}._textInput_1jb3g_1 ._input_1jb3g_16:focus::placeholder{opacity:0}._textInput_1jb3g_1 ._input_1jb3g_16::-webkit-calendar-picker-indicator{display:none}._textInput_1jb3g_1 ._icon_1jb3g_49{transition:color var(--swui-animation-time-medium);color:var(--swui-field-icon-color);font-size:var(--swui-field-icon-size)}._textInput_1jb3g_1._standard_1jb3g_59:hover:not(:focus-within):not(._disabled_1jb3g_11),._textInput_1jb3g_1._success_1jb3g_60:hover:not(:focus-within):not(._disabled_1jb3g_11){border-color:var(--swui-field-border-color-hover)}._textInput_1jb3g_1._success_1jb3g_60 ._icon_1jb3g_49{color:var(--swui-state-success-color)}._textInput_1jb3g_1._loading_1jb3g_72{background:var(--swui-state-loading-light-color);border-color:var(--swui-state-loading-color)}._textInput_1jb3g_1._modified_1jb3g_77{background:var(--swui-state-modified-light-color);border-color:var(--swui-state-modified-light-color)}._textInput_1jb3g_1._modified_1jb3g_77 ._icon_1jb3g_49{color:var(--lhds-color-blue-300)}._textInput_1jb3g_1._error_1jb3g_86{background:var(--swui-state-error-light-color);border-color:var(--swui-state-error-light-color)}._textInput_1jb3g_1._error_1jb3g_86 ._icon_1jb3g_49{color:var(--swui-state-error-light-color)}._textInput_1jb3g_1._warning_1jb3g_95{background:var(--swui-state-alert-light-color);border-color:var(--swui-state-alert-light-color)}._textInput_1jb3g_1._warning_1jb3g_95 ._icon_1jb3g_49{color:var(--swui-state-alert-light-color)}._textInput_1jb3g_1._disabled_1jb3g_11{background:var(--swui-field-bg-disabled);border-color:var(--swui-field-bg-disabled)}._textInput_1jb3g_1._textInput_1jb3g_1._hideBorder_1jb3g_109{border:none;box-shadow:none;background:none;outline:none}._textInput_1jb3g_1 ._clickable_1jb3g_116:hover{cursor:pointer}._textInput_1jb3g_1 ._clickable_1jb3g_116:hover ._icon_1jb3g_49{color:var(--swui-primary-action-color)}._numericTextInputInput_1tnr6_1{-moz-appearance:textfield}._numericTextInputInput_1tnr6_1::-webkit-outer-spin-button,._numericTextInputInput_1tnr6_1::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}._labelledSelect_1evxo_1{border:1px solid var(--swui-field-border-color);border-radius:var(--swui-border-radius-large);position:relative;overflow:hidden;cursor:pointer}._labelledSelect_1evxo_1._labelledSelect_1evxo_1._onlyTopBorder_1evxo_8{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._labelledSelect_1evxo_1._onlyBottomBorder_1evxo_14{border-top-left-radius:0;border-top-right-radius:0}._labelledSelect_1evxo_1._error_1evxo_19{border-color:var(--snackskal);background-color:var(--snackskal)}._labelledSelect_1evxo_1._normal_1evxo_24{border-color:var(--swui-field-border-color);background-color:var(--moln)}._labelledSelect_1evxo_1._labelledSelect_1evxo_1:focus-within{border-color:var(--swui-field-border-color-hover);outline:var(--swui-focus-outline);outline-offset:0;z-index:10}._labelledSelect_1evxo_1._labelledSelect_1evxo_1:hover{border-color:var(--swui-field-border-color-hover)}._labelledSelect_1evxo_1 ._label_1evxo_1{display:flex;position:absolute;top:var(--swui-metrics-space);left:calc(var(--swui-metrics-space) * 2);cursor:pointer}._labelledSelect_1evxo_1 ._select_1evxo_48{color:var(--swui-text-primary-color);display:block;margin:0;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;font-size:var(--swui-font-size-inputs-large);line-height:1.5;box-sizing:border-box;cursor:pointer;padding:calc(var(--swui-metrics-space) * 5) calc(var(--swui-metrics-space) * 8) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 2)}._labelledSelect_1evxo_1 ._select_1evxo_48._error_1evxo_19{background-color:var(--snackskal)}._labelledSelect_1evxo_1 ._select_1evxo_48._normal_1evxo_24{background-color:var(--moln)}._labelledSelect_1evxo_1 ._iconWrapper_1evxo_73{border-radius:var(--swui-max-border-radius);width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;top:0;bottom:0;right:calc(var(--swui-metrics-space) * 2);margin-top:auto;margin-bottom:auto;padding:0;background:var(--silver-lighter);pointer-events:none}._labelledTextInput_lnht8_1{position:relative;background:var(--moln);overflow:hidden;cursor:text;border:1px solid var(--silver-light);border-radius:var(--swui-border-radius)}._labelledTextInput_lnht8_1 input{outline:none;border:none;margin:0;color:var(--swui-text-primary-color);background-color:transparent;line-height:var(--swui-line-height);width:100%;box-sizing:border-box;cursor:text}._labelledTextInput_lnht8_1._labelledTextInput_lnht8_1._onlyTop_lnht8_21{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._labelledTextInput_lnht8_1._labelledTextInput_lnht8_1._onlyBottom_lnht8_27{border-top-left-radius:0;border-top-right-radius:0}._labelledTextInput_lnht8_1:focus-within{outline:var(--swui-focus-outline);outline-offset:-1px;border-color:transparent}._labelledTextInput_lnht8_1:hover:not(:focus-within){border-color:var(--hav)}._labelledTextInput_lnht8_1._disabled_lnht8_42{background-color:var(--silver-lighter)}._labelledTextInput_lnht8_1._disabled_lnht8_42 input{color:var(--silver)}._labelledTextInput_lnht8_1._medium_lnht8_50:focus-within{outline-width:2px}._labelledTextInput_lnht8_1._medium_lnht8_50 input{font-size:var(--swui-font-size-inputs);padding:calc(var(--swui-metrics-space) * 4) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 1)}._labelledTextInput_lnht8_1._large_lnht8_62{border-radius:var(--swui-border-radius-large)}._labelledTextInput_lnht8_1._large_lnht8_62:focus-within{outline-width:3px}._labelledTextInput_lnht8_1._large_lnht8_62 input{font-size:var(--swui-font-size-inputs-large);padding:calc(var(--swui-metrics-space) * 5) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 2)}._labelledTextInput_lnht8_1._error_lnht8_76{border-color:var(--swui-state-error-light-color)}._labelledTextInput_lnht8_1._error_lnht8_76:hover:not(:focus-within){border-color:var(--modern-red)}._labelledTextInput_lnht8_1._error_lnht8_76 input{background-color:var(--swui-state-error-light-color)}._labelledTextInput_lnht8_1 label{display:flex;position:absolute;top:var(--swui-metrics-space);left:calc(var(--swui-metrics-space) * 2);cursor:text}._textArea_6n6nc_1{--swui-textarea-text-color: var(--swui-field-text-color);--swui-textarea-text-color-disabled: var(--swui-field-text-color-disabled);--swui-textarea-letter-spacing: var(--swui-field-letter-spacing);--swui-textarea-line-height: var(--swui-field-text-line-height);--swui-textarea-indent: var(--swui-metrics-indent);--swui-textarea-font-size: var(--swui-font-size-inputs);--swui-textarea-font-family: var(--swui-font-input);--swui-textarea-font-weight: var(--swui-font-weight-inputs);--swui-textarea-placeholder-color: var(--swui-text-disabled-color);--swui-textarea-animation-time: var(--swui-animation-time-medium);--swui-textarea-icon-color: var(--swui-field-border-color-disabled);--swui-textarea-icon-size: var(--swui-field-icon-size);--swui-textarea-icon-color-success: var(--swui-state-success-color);--swui-textarea-bg-loading: var(--swui-state-loading-light-color);--swui-textarea-border-color-loading: var(--swui-state-loading-color);--swui-textarea-bg-modified: var(--swui-state-modified-light-color);--swui-textarea-border-color-modified: var(--swui-state-modified-color);--swui-textarea-bg-warning: var(--swui-state-alert-light-color);--swui-textarea-border-color-warning: var(--swui-state-alert-color);--swui-textarea-bg-error: var(--swui-state-error-light-color);--swui-textarea-border-color-error: var(--swui-state-error-color);--swui-textarea-bg-color: var(--swui-field-bg-enabled);--swui-textarea-bg-color-disabled: var(--swui-field-bg-disabled);--swui-textarea-border-radius: var(--swui-field-border-radius);--swui-textarea-border-color: var(--swui-field-border-color);--swui-textarea-border-color-hover: var(--swui-field-border-color-hover);--swui-textarea-border-color-disabled: var( --swui-field-border-color-disabled );max-width:100%;letter-spacing:var(--swui-textarea-letter-spacing);line-height:var(--swui-textarea-line-height);padding:2px var(--swui-textarea-indent);color:var(--swui-textarea-text-color);font-size:var(--swui-textarea-font-size);font-family:var(--swui-textarea-font-family);font-weight:var(--swui-textarea-font-weight);background:var(--current-bg, var(--swui-textarea-bg-color));border:1px solid var(--current-border-color, var(--swui-textarea-border-color));border-radius:var(--swui-textarea-border-radius);transition:border var(--swui-textarea-animation-time);--current-icon-color: var(--swui-textarea-icon-color)}._textArea_6n6nc_1:focus:not(:focus-visible){outline:none}._textArea_6n6nc_1:focus{--current-border-color: var(--swui-textarea-border-color-hover);--current-bg: var(--swui-textarea-bg-color)}._textArea_6n6nc_1:focus-visible{outline:var(--swui-focus-outline)}._textArea_6n6nc_1:disabled{color:var(--swui-textarea-text-color-disabled);--current-bg: var(--swui-textarea-bg-color-disabled);--current-border-color: var(--swui-textarea-border-color-disabled)}')),document.head.appendChild(o)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
|
|
2
2
|
import { jsx as o, jsxs as m, Fragment as v } from "react/jsx-runtime";
|
|
3
|
-
import { Box as pt, Space as x, Text as N, Row as T, ScreenReaderOnlyText as
|
|
3
|
+
import { Box as pt, Space as x, Text as N, Row as T, ScreenReaderOnlyText as M, parseFloatElseUndefined as H, getDataProps as ft } from "@stenajs-webui/core";
|
|
4
4
|
import * as mt from "react";
|
|
5
|
-
import { forwardRef as
|
|
6
|
-
import
|
|
7
|
-
import { Icon as
|
|
5
|
+
import { forwardRef as W, useRef as P, useCallback as g, useEffect as z, useMemo as bt, useState as ht, useId as O } from "react";
|
|
6
|
+
import h from "classnames";
|
|
7
|
+
import { Icon as D, stenaCheck as E, stenaExclamationTriangle as G, InputSpinner as X, UpDownButtons as xt, TextInputButton as $, stenaEyeShow as yt, stenaEyeHide as It, stenaAngleDown as gt } from "@stenajs-webui/elements";
|
|
8
8
|
import { FontAwesomeIcon as wt } from "@fortawesome/react-fontawesome";
|
|
9
9
|
import { cssColor as q } from "@stenajs-webui/theme";
|
|
10
10
|
const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75", S = {
|
|
@@ -44,11 +44,11 @@ const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75",
|
|
|
44
44
|
/* @__PURE__ */ o(St, { disabled: e, ...c }),
|
|
45
45
|
/* @__PURE__ */ o(x, {}),
|
|
46
46
|
/* @__PURE__ */ o(N, { userSelect: "none", color: n, children: t })
|
|
47
|
-
] }) }) }), Nt = "_checkbox_1ndou_1", Rt = "_standard_1ndou_39", jt = "_small_1ndou_51",
|
|
47
|
+
] }) }) }), Nt = "_checkbox_1ndou_1", Rt = "_standard_1ndou_39", jt = "_small_1ndou_51", F = {
|
|
48
48
|
checkbox: Nt,
|
|
49
49
|
standard: Rt,
|
|
50
50
|
small: jt
|
|
51
|
-
}, $t =
|
|
51
|
+
}, $t = W(
|
|
52
52
|
({
|
|
53
53
|
indeterminate: t = !1,
|
|
54
54
|
onChange: e,
|
|
@@ -58,7 +58,7 @@ const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75",
|
|
|
58
58
|
className: s,
|
|
59
59
|
...i
|
|
60
60
|
}, d) => {
|
|
61
|
-
const l =
|
|
61
|
+
const l = P(), f = (u) => {
|
|
62
62
|
l.current = u, l.current && (l.current.indeterminate = !!t), d && (typeof d == "function" ? d(u) : d.current = u);
|
|
63
63
|
}, _ = g(
|
|
64
64
|
(u) => {
|
|
@@ -66,13 +66,13 @@ const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75",
|
|
|
66
66
|
},
|
|
67
67
|
[e, n]
|
|
68
68
|
);
|
|
69
|
-
return
|
|
69
|
+
return z(() => {
|
|
70
70
|
l.current && (l.current.indeterminate = !!t);
|
|
71
71
|
}, [t, l]), /* @__PURE__ */ o(
|
|
72
72
|
"input",
|
|
73
73
|
{
|
|
74
74
|
type: "checkbox",
|
|
75
|
-
className:
|
|
75
|
+
className: h(F.checkbox, F[c], s),
|
|
76
76
|
checked: r,
|
|
77
77
|
onChange: _,
|
|
78
78
|
ref: f,
|
|
@@ -92,11 +92,11 @@ const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75",
|
|
|
92
92
|
/* @__PURE__ */ o(x, {}),
|
|
93
93
|
e && /* @__PURE__ */ o(N, { userSelect: "none", color: c, children: e }),
|
|
94
94
|
t
|
|
95
|
-
] }) }) }), At = "_radiobutton_foy83_1", Ht = "_standard_foy83_45", Wt = "_small_foy83_55",
|
|
95
|
+
] }) }) }), At = "_radiobutton_foy83_1", Ht = "_standard_foy83_45", Wt = "_small_foy83_55", L = {
|
|
96
96
|
radiobutton: At,
|
|
97
97
|
standard: Ht,
|
|
98
98
|
small: Wt
|
|
99
|
-
}, J =
|
|
99
|
+
}, J = W(
|
|
100
100
|
({
|
|
101
101
|
onChange: t,
|
|
102
102
|
onValueChange: e,
|
|
@@ -116,14 +116,14 @@ const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75",
|
|
|
116
116
|
{
|
|
117
117
|
type: "radio",
|
|
118
118
|
name: r,
|
|
119
|
-
className:
|
|
119
|
+
className: h(L.radiobutton, L[n], c),
|
|
120
120
|
onChange: d,
|
|
121
121
|
ref: i,
|
|
122
122
|
...s
|
|
123
123
|
}
|
|
124
124
|
);
|
|
125
125
|
}
|
|
126
|
-
), Pt = "_radioButtonBox_vpn6v_1", Ut = "_danger_vpn6v_19", Ft = "_radioButtonWrapper_vpn6v_30",
|
|
126
|
+
), Pt = "_radioButtonBox_vpn6v_1", Ut = "_danger_vpn6v_19", Ft = "_radioButtonWrapper_vpn6v_30", K = {
|
|
127
127
|
radioButtonBox: Pt,
|
|
128
128
|
danger: Ut,
|
|
129
129
|
radioButtonWrapper: Ft
|
|
@@ -140,15 +140,14 @@ const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75",
|
|
|
140
140
|
}) => /* @__PURE__ */ o(
|
|
141
141
|
"label",
|
|
142
142
|
{
|
|
143
|
-
className:
|
|
143
|
+
className: h(K.radioButtonBox, K[n], r),
|
|
144
144
|
style: i,
|
|
145
145
|
children: /* @__PURE__ */ m(T, { justifyContent: "space-between", flexGrow: 1, children: [
|
|
146
146
|
/* @__PURE__ */ m(T, { alignItems: "center", children: [
|
|
147
147
|
/* @__PURE__ */ o(J, { ...l, className: d }),
|
|
148
148
|
/* @__PURE__ */ o(x, {}),
|
|
149
|
-
e ? /* @__PURE__ */ o(
|
|
150
|
-
/* @__PURE__ */ o(N, { "aria-hidden": !!e, children: t })
|
|
151
|
-
c && /* @__PURE__ */ o(T, { alignItems: "center", width: "48px", justifyContent: "center", children: /* @__PURE__ */ o($, { icon: c, size: 24 }) })
|
|
149
|
+
e ? /* @__PURE__ */ o(M, { children: e }) : null,
|
|
150
|
+
/* @__PURE__ */ o(N, { "aria-hidden": !!e, children: t })
|
|
152
151
|
] }),
|
|
153
152
|
/* @__PURE__ */ m(
|
|
154
153
|
T,
|
|
@@ -157,8 +156,8 @@ const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75",
|
|
|
157
156
|
width: c ? "48px" : void 0,
|
|
158
157
|
justifyContent: "center",
|
|
159
158
|
children: [
|
|
160
|
-
c && /* @__PURE__ */ o(
|
|
161
|
-
s
|
|
159
|
+
c && /* @__PURE__ */ o(D, { icon: c, size: 24 }),
|
|
160
|
+
!c && s
|
|
162
161
|
]
|
|
163
162
|
}
|
|
164
163
|
)
|
|
@@ -175,7 +174,7 @@ const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75",
|
|
|
175
174
|
/* @__PURE__ */ o(x, {}),
|
|
176
175
|
/* @__PURE__ */ o(N, { color: r, userSelect: "none", children: t })
|
|
177
176
|
] }) }) }), Lt = (t, e, n, r, c, s, i, d) => {
|
|
178
|
-
const l =
|
|
177
|
+
const l = P(!1), f = (a) => {
|
|
179
178
|
l.current || s == null || s(a.target.value ?? ""), i == null || i(a);
|
|
180
179
|
}, _ = (a) => {
|
|
181
180
|
l.current = !1, d == null || d(a);
|
|
@@ -189,10 +188,10 @@ const Bt = "_knob_1d6s8_56", Tt = "_filler_1d6s8_61", kt = "_checked_1d6s8_75",
|
|
|
189
188
|
else if (p === "Escape")
|
|
190
189
|
l.current = !0, r == null || r(), a.preventDefault(), a.stopPropagation();
|
|
191
190
|
else if (c) {
|
|
192
|
-
const
|
|
191
|
+
const b = (w, y) => {
|
|
193
192
|
l.current = !0, t.current.blur(), c(w), y.preventDefault(), y.stopPropagation();
|
|
194
193
|
};
|
|
195
|
-
a.shiftKey && p === "Tab" ?
|
|
194
|
+
a.shiftKey && p === "Tab" ? b("left", a) : p === "Tab" ? b("right", a) : p === "ArrowUp" ? b("up", a) : p === "ArrowDown" ? b("down", a) : p === "ArrowRight" ? t.current.value.length === t.current.selectionStart && b("right", a) : p === "ArrowLeft" && t.current.selectionStart === 0 && b("left", a);
|
|
196
195
|
}
|
|
197
196
|
e && e(a);
|
|
198
197
|
},
|
|
@@ -206,7 +205,7 @@ function Kt(t) {
|
|
|
206
205
|
return t.tagName === "TEXTAREA" || t.tagName === "INPUT" && (t.type === "text" || t.type === "search" || t.type === "url" || t.type === "tel" || t.type === "password");
|
|
207
206
|
}
|
|
208
207
|
const Mt = (t, e, n) => {
|
|
209
|
-
|
|
208
|
+
z(() => {
|
|
210
209
|
t.current && Kt(t.current) && (n ? t.current.setSelectionRange(0, t.current.value.length) : e && t.current.setSelectionRange(
|
|
211
210
|
t.current.value.length,
|
|
212
211
|
t.current.value.length
|
|
@@ -227,7 +226,7 @@ const Mt = (t, e, n) => {
|
|
|
227
226
|
autoFocus: a
|
|
228
227
|
}) => {
|
|
229
228
|
Mt(t, !!i, !!s);
|
|
230
|
-
const { onKeyDownHandler: p, onFocusHandler:
|
|
229
|
+
const { onKeyDownHandler: p, onFocusHandler: b, onBlurHandler: w } = Lt(
|
|
231
230
|
t,
|
|
232
231
|
u,
|
|
233
232
|
e,
|
|
@@ -245,7 +244,7 @@ const Mt = (t, e, n) => {
|
|
|
245
244
|
return {
|
|
246
245
|
onBlur: w,
|
|
247
246
|
onChange: y,
|
|
248
|
-
onFocus:
|
|
247
|
+
onFocus: b,
|
|
249
248
|
onKeyDown: p,
|
|
250
249
|
autoFocus: s || a
|
|
251
250
|
};
|
|
@@ -286,7 +285,7 @@ const Mt = (t, e, n) => {
|
|
|
286
285
|
wt,
|
|
287
286
|
{
|
|
288
287
|
icon: e,
|
|
289
|
-
className:
|
|
288
|
+
className: h(I.icon, n)
|
|
290
289
|
}
|
|
291
290
|
),
|
|
292
291
|
s ? /* @__PURE__ */ o(x, {}) : null
|
|
@@ -305,7 +304,7 @@ const Mt = (t, e, n) => {
|
|
|
305
304
|
disableContentPaddingRight: u,
|
|
306
305
|
iconLeft: a,
|
|
307
306
|
iconRight: p,
|
|
308
|
-
moveCursorToEndOnMount:
|
|
307
|
+
moveCursorToEndOnMount: b,
|
|
309
308
|
selectAllOnMount: w,
|
|
310
309
|
autoFocus: y,
|
|
311
310
|
onValueChange: R,
|
|
@@ -321,13 +320,13 @@ const Mt = (t, e, n) => {
|
|
|
321
320
|
onFocus: st,
|
|
322
321
|
onBlur: lt,
|
|
323
322
|
...it
|
|
324
|
-
} = t, dt =
|
|
323
|
+
} = t, dt = P(null), U = n ?? dt, at = zt(U, {
|
|
325
324
|
onEnter: tt,
|
|
326
325
|
onEsc: et,
|
|
327
326
|
onChange: nt,
|
|
328
327
|
onValueChange: R,
|
|
329
328
|
selectAllOnMount: w,
|
|
330
|
-
moveCursorToEndOnMount:
|
|
329
|
+
moveCursorToEndOnMount: b,
|
|
331
330
|
onDone: V,
|
|
332
331
|
onMove: rt,
|
|
333
332
|
onFocus: st,
|
|
@@ -338,7 +337,7 @@ const Mt = (t, e, n) => {
|
|
|
338
337
|
return /* @__PURE__ */ m(
|
|
339
338
|
"div",
|
|
340
339
|
{
|
|
341
|
-
className:
|
|
340
|
+
className: h(
|
|
342
341
|
I.textInput,
|
|
343
342
|
I[e],
|
|
344
343
|
{
|
|
@@ -366,10 +365,10 @@ const Mt = (t, e, n) => {
|
|
|
366
365
|
/* @__PURE__ */ o(
|
|
367
366
|
"input",
|
|
368
367
|
{
|
|
369
|
-
className:
|
|
368
|
+
className: h(I.input, c),
|
|
370
369
|
type: "text",
|
|
371
370
|
disabled: r,
|
|
372
|
-
ref:
|
|
371
|
+
ref: U,
|
|
373
372
|
autoFocus: y,
|
|
374
373
|
...it,
|
|
375
374
|
...at
|
|
@@ -401,10 +400,10 @@ const Mt = (t, e, n) => {
|
|
|
401
400
|
}) => {
|
|
402
401
|
if (t)
|
|
403
402
|
if (!e)
|
|
404
|
-
t(String(
|
|
403
|
+
t(String(A(n, r, c)));
|
|
405
404
|
else {
|
|
406
|
-
const i = (
|
|
407
|
-
t(String(
|
|
405
|
+
const i = (H(e) || 0) + n;
|
|
406
|
+
t(String(A(i, r, c)));
|
|
408
407
|
}
|
|
409
408
|
}, ne = ({
|
|
410
409
|
onValueChange: t,
|
|
@@ -416,10 +415,10 @@ const Mt = (t, e, n) => {
|
|
|
416
415
|
if (e === "")
|
|
417
416
|
t("");
|
|
418
417
|
else {
|
|
419
|
-
const s =
|
|
420
|
-
t(String(
|
|
418
|
+
const s = H(e) || 0;
|
|
419
|
+
t(String(A(s, n, r)));
|
|
421
420
|
}
|
|
422
|
-
},
|
|
421
|
+
}, A = (t, e, n) => {
|
|
423
422
|
let r = t;
|
|
424
423
|
return e != null && (r = Math.max(e, r)), n != null && (r = Math.min(n, r)), r;
|
|
425
424
|
}, He = ({
|
|
@@ -470,7 +469,7 @@ const Mt = (t, e, n) => {
|
|
|
470
469
|
min: r,
|
|
471
470
|
max: n,
|
|
472
471
|
step: c,
|
|
473
|
-
className:
|
|
472
|
+
className: h(ee.numericTextInputInput, d),
|
|
474
473
|
disabled: i,
|
|
475
474
|
...f
|
|
476
475
|
}
|
|
@@ -482,12 +481,12 @@ const Mt = (t, e, n) => {
|
|
|
482
481
|
if (!c)
|
|
483
482
|
e(void 0);
|
|
484
483
|
else {
|
|
485
|
-
const s =
|
|
484
|
+
const s = H(c);
|
|
486
485
|
s !== void 0 && e(s);
|
|
487
486
|
}
|
|
488
487
|
},
|
|
489
488
|
[e]
|
|
490
|
-
), r =
|
|
489
|
+
), r = bt(() => t === void 0 ? "" : String(t), [t]);
|
|
491
490
|
return {
|
|
492
491
|
onValueChange: n,
|
|
493
492
|
value: r
|
|
@@ -497,12 +496,12 @@ const Mt = (t, e, n) => {
|
|
|
497
496
|
visibleIcon: e = It,
|
|
498
497
|
...n
|
|
499
498
|
}) => {
|
|
500
|
-
const [r, c] =
|
|
499
|
+
const [r, c] = ht(!0);
|
|
501
500
|
return /* @__PURE__ */ o(
|
|
502
501
|
Q,
|
|
503
502
|
{
|
|
504
503
|
buttonRight: /* @__PURE__ */ o(
|
|
505
|
-
|
|
504
|
+
$,
|
|
506
505
|
{
|
|
507
506
|
icon: r ? t : e,
|
|
508
507
|
onClick: () => c((s) => !s)
|
|
@@ -532,7 +531,7 @@ const Mt = (t, e, n) => {
|
|
|
532
531
|
disabled: r,
|
|
533
532
|
className: c
|
|
534
533
|
}) => /* @__PURE__ */ m("label", { htmlFor: t, className: c, children: [
|
|
535
|
-
e ? /* @__PURE__ */ o(
|
|
534
|
+
e ? /* @__PURE__ */ o(M, { children: e }) : null,
|
|
536
535
|
/* @__PURE__ */ o(
|
|
537
536
|
oe,
|
|
538
537
|
{
|
|
@@ -561,7 +560,7 @@ const Mt = (t, e, n) => {
|
|
|
561
560
|
children: d,
|
|
562
561
|
...l
|
|
563
562
|
}) => {
|
|
564
|
-
const f =
|
|
563
|
+
const f = O(), _ = n ?? f, u = g(
|
|
565
564
|
(a) => {
|
|
566
565
|
t == null || t(a), e == null || e(a.target.value);
|
|
567
566
|
},
|
|
@@ -570,7 +569,7 @@ const Mt = (t, e, n) => {
|
|
|
570
569
|
return /* @__PURE__ */ m(
|
|
571
570
|
"div",
|
|
572
571
|
{
|
|
573
|
-
className:
|
|
572
|
+
className: h(
|
|
574
573
|
B.labelledSelect,
|
|
575
574
|
B[i],
|
|
576
575
|
B[s]
|
|
@@ -590,13 +589,13 @@ const Mt = (t, e, n) => {
|
|
|
590
589
|
{
|
|
591
590
|
id: _,
|
|
592
591
|
onChange: u,
|
|
593
|
-
className:
|
|
592
|
+
className: h(B.select, B[i]),
|
|
594
593
|
...l,
|
|
595
594
|
children: d
|
|
596
595
|
}
|
|
597
596
|
),
|
|
598
|
-
/* @__PURE__ */ o("div", { className:
|
|
599
|
-
|
|
597
|
+
/* @__PURE__ */ o("div", { className: h(B.iconWrapper), children: /* @__PURE__ */ o(
|
|
598
|
+
D,
|
|
600
599
|
{
|
|
601
600
|
icon: gt,
|
|
602
601
|
size: 24,
|
|
@@ -606,12 +605,12 @@ const Mt = (t, e, n) => {
|
|
|
606
605
|
]
|
|
607
606
|
}
|
|
608
607
|
);
|
|
609
|
-
}, pe = "_labelledTextInput_lnht8_1", fe = "_onlyTop_lnht8_21", me = "_onlyBottom_lnht8_27",
|
|
608
|
+
}, pe = "_labelledTextInput_lnht8_1", fe = "_onlyTop_lnht8_21", me = "_onlyBottom_lnht8_27", be = "_disabled_lnht8_42", he = "_medium_lnht8_50", xe = "_large_lnht8_62", ye = "_error_lnht8_76", k = {
|
|
610
609
|
labelledTextInput: pe,
|
|
611
610
|
onlyTop: fe,
|
|
612
611
|
onlyBottom: me,
|
|
613
|
-
disabled:
|
|
614
|
-
medium:
|
|
612
|
+
disabled: be,
|
|
613
|
+
medium: he,
|
|
615
614
|
large: xe,
|
|
616
615
|
error: ye
|
|
617
616
|
}, Fe = mt.forwardRef(
|
|
@@ -629,7 +628,7 @@ const Mt = (t, e, n) => {
|
|
|
629
628
|
variant: _ = "normal",
|
|
630
629
|
...u
|
|
631
630
|
}, a) => {
|
|
632
|
-
const p =
|
|
631
|
+
const p = O(), b = n ?? p, w = g(
|
|
633
632
|
(y) => {
|
|
634
633
|
i == null || i(y), l == null || l(y.target.value);
|
|
635
634
|
},
|
|
@@ -638,7 +637,7 @@ const Mt = (t, e, n) => {
|
|
|
638
637
|
return /* @__PURE__ */ m(
|
|
639
638
|
"div",
|
|
640
639
|
{
|
|
641
|
-
className:
|
|
640
|
+
className: h(
|
|
642
641
|
k.labelledTextInput,
|
|
643
642
|
k[_],
|
|
644
643
|
k[f],
|
|
@@ -649,7 +648,7 @@ const Mt = (t, e, n) => {
|
|
|
649
648
|
/* @__PURE__ */ o(
|
|
650
649
|
Y,
|
|
651
650
|
{
|
|
652
|
-
htmlFor:
|
|
651
|
+
htmlFor: b,
|
|
653
652
|
screenReaderLabel: r,
|
|
654
653
|
label: e
|
|
655
654
|
}
|
|
@@ -658,7 +657,7 @@ const Mt = (t, e, n) => {
|
|
|
658
657
|
"input",
|
|
659
658
|
{
|
|
660
659
|
ref: a,
|
|
661
|
-
id:
|
|
660
|
+
id: b,
|
|
662
661
|
autoComplete: t,
|
|
663
662
|
type: "text",
|
|
664
663
|
value: s,
|
|
@@ -687,11 +686,11 @@ const Mt = (t, e, n) => {
|
|
|
687
686
|
onClickRight: a,
|
|
688
687
|
children: p
|
|
689
688
|
}) => {
|
|
690
|
-
const
|
|
689
|
+
const b = t === "success" ? E : t === "warning" || t === "error" ? G : f, w = t === "loading" ? /* @__PURE__ */ o(X, {}) : s;
|
|
691
690
|
return /* @__PURE__ */ m(
|
|
692
691
|
"div",
|
|
693
692
|
{
|
|
694
|
-
className:
|
|
693
|
+
className: h(
|
|
695
694
|
I.textInput,
|
|
696
695
|
I.inputContainer,
|
|
697
696
|
I[t],
|
|
@@ -710,7 +709,7 @@ const Mt = (t, e, n) => {
|
|
|
710
709
|
disableContentPaddingLeft: d,
|
|
711
710
|
disableContentPaddingRight: l,
|
|
712
711
|
spaceOnLeft: !0,
|
|
713
|
-
button: _ ? /* @__PURE__ */ o(
|
|
712
|
+
button: _ ? /* @__PURE__ */ o($, { onClick: u, icon: _ }) : void 0
|
|
714
713
|
}
|
|
715
714
|
),
|
|
716
715
|
/* @__PURE__ */ o(T, { alignItems: "center", children: p }),
|
|
@@ -722,7 +721,7 @@ const Mt = (t, e, n) => {
|
|
|
722
721
|
disableContentPaddingLeft: d,
|
|
723
722
|
disableContentPaddingRight: l,
|
|
724
723
|
spaceOnRight: !0,
|
|
725
|
-
button:
|
|
724
|
+
button: b ? /* @__PURE__ */ o($, { onClick: a, icon: b }) : void 0
|
|
726
725
|
}
|
|
727
726
|
)
|
|
728
727
|
]
|
|
@@ -730,7 +729,7 @@ const Mt = (t, e, n) => {
|
|
|
730
729
|
);
|
|
731
730
|
}, Ie = "_textArea_6n6nc_1", ge = {
|
|
732
731
|
textArea: Ie
|
|
733
|
-
}, Ke =
|
|
732
|
+
}, Ke = W(
|
|
734
733
|
({
|
|
735
734
|
className: t,
|
|
736
735
|
value: e,
|
|
@@ -754,7 +753,7 @@ const Mt = (t, e, n) => {
|
|
|
754
753
|
disabled: d,
|
|
755
754
|
rows: i,
|
|
756
755
|
readOnly: s,
|
|
757
|
-
className:
|
|
756
|
+
className: h(ge.textArea, t),
|
|
758
757
|
style: { resize: c },
|
|
759
758
|
onChange: _,
|
|
760
759
|
value: e,
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/components/ui/switch/Switch.tsx","../src/components/ui/switch/SwitchWithLabel.tsx","../src/components/ui/checkbox/Checkbox.tsx","../src/components/ui/checkbox/CheckboxWithLabel.tsx","../src/components/ui/radio/RadioButton.tsx","../src/components/ui/radio/RadioButtonBox.tsx","../src/components/ui/radio/RadioButtonWithLabel.tsx","../src/hooks/UseKeyboardNavigation.ts","../src/hooks/UseSelectAllOnMount.ts","../src/hooks/UseTextInput.ts","../src/components/ui/text-input/TextInputIcon.tsx","../src/components/ui/text-input/TextInput.tsx","../src/utils/NumericHelpers.ts","../src/components/ui/numeric-text-input/NumericTextInput.tsx","../src/components/ui/numeric-text-input/hooks/UseNumericInputValue.ts","../src/components/ui/password-input/PasswordInput.tsx","../src/components/ui/input-label/InputLabelText.tsx","../src/components/ui/input-label/InputLabel.tsx","../src/components/ui/labelled-select/LabelledSelect.tsx","../src/components/ui/labelled-text-input/LabelledTextInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["import { Ref } from \"react\";\nimport * as React from \"react\";\nimport { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport styles from \"./Switch.module.css\";\n\nexport interface SwitchProps\n extends Omit<ButtonElementProps, \"value\">,\n ValueAndOnValueChangeProps<boolean> {\n wrapperRef?: Ref<HTMLDivElement>;\n}\n\nconst styleChecked = `${styles.switch} ${styles.checked}`;\n\nexport const Switch: React.FC<SwitchProps> = ({\n value,\n disabled,\n onValueChange,\n className,\n wrapperRef,\n ...restProps\n}) => {\n return (\n <div className={className} ref={wrapperRef}>\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n className={value ? styleChecked : styles.switch}\n disabled={disabled}\n onClick={() => onValueChange && onValueChange(!value)}\n {...restProps}\n >\n <div className={styles.filler} />\n <div className={styles.knob} />\n </button>\n </div>\n );\n};\n","import { Box, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Switch, SwitchProps } from \"./Switch\";\n\nexport interface SwitchWithLabelProps extends SwitchProps {\n label: string;\n textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n </Box>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n MutableRefObject,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport cx from \"classnames\";\nimport styles from \"./Checkbox.module.css\";\n\nexport type CheckboxSize = \"standard\" | \"small\";\n\nexport interface CheckboxProps\n extends FullOnChangeProps<boolean, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n indeterminate?: boolean;\n size?: CheckboxSize;\n disabled?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n indeterminate = false,\n onChange,\n onValueChange,\n value = false,\n size = \"standard\",\n className,\n ...inputProps\n },\n ref\n ) => {\n const localRef = useRef<HTMLInputElement>();\n\n const setRef = (element: HTMLInputElement) => {\n localRef.current = element;\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n if (ref) {\n if (typeof ref === \"function\") {\n ref(element);\n } else {\n (ref as MutableRefObject<HTMLInputElement>).current = element;\n }\n }\n };\n\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.checked);\n }\n },\n [onChange, onValueChange]\n );\n\n useEffect(() => {\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [indeterminate, localRef]);\n\n return (\n <input\n type={\"checkbox\"}\n className={cx(styles.checkbox, styles[size], className)}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { Checkbox, CheckboxProps } from \"./Checkbox\";\n\nexport interface CheckboxWithLabelProps extends CheckboxProps {\n label?: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const CheckboxWithLabel: React.FC<CheckboxWithLabelProps> = ({\n children,\n label,\n inputRef,\n wrapperRef,\n textColor,\n ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {label && (\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n )}\n {children}\n </Row>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./RadioButton.module.css\";\nimport cx from \"classnames\";\n\nexport type RadioButtonSize = \"standard\" | \"small\";\n\nexport interface RadioButtonProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n size?: RadioButtonSize;\n}\n\nexport const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(\n (\n {\n onChange,\n onValueChange,\n size = \"standard\",\n name,\n className,\n ...inputProps\n },\n ref\n ) => {\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange]\n );\n\n return (\n <input\n type={\"radio\"}\n name={name}\n className={cx(styles.radiobutton, styles[size], className)}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n }\n);\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport { Icon } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./RadioButtonBox.module.css\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport type RadioButtonBoxVariant = \"normal\" | \"danger\";\n\nexport type RadioButtonBoxProps =\n | RadioButtonBoxNoRightProps\n | RadioButtonBoxIconProps\n | RadioButtonBoxContentRightProps;\n\nexport interface RadioButtonBoxCommonProps extends RadioButtonProps {\n label?: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n variant?: RadioButtonBoxVariant;\n radioButtonClassName?: string;\n}\n\nexport interface RadioButtonBoxNoRightProps extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxIconProps extends RadioButtonBoxCommonProps {\n icon?: IconDefinition;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxContentRightProps\n extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: ReactNode;\n}\n\nexport const RadioButtonBox: React.FC<RadioButtonBoxProps> = ({\n label,\n screenReaderLabel,\n variant = \"normal\",\n className,\n icon,\n contentRight,\n style,\n radioButtonClassName,\n ...radioButtonProps\n}) => {\n return (\n <label\n className={cx(styles.radioButtonBox, styles[variant], className)}\n style={style}\n >\n <Row justifyContent={\"space-between\"} flexGrow={1}>\n <Row alignItems={\"center\"}>\n <RadioButton {...radioButtonProps} className={radioButtonClassName} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text aria-hidden={Boolean(screenReaderLabel)}>{label}</Text>\n {icon && (\n <Row alignItems={\"center\"} width={\"48px\"} justifyContent={\"center\"}>\n <Icon icon={icon} size={24} />\n </Row>\n )}\n </Row>\n <Row\n alignItems={\"center\"}\n width={icon ? \"48px\" : undefined}\n justifyContent={\"center\"}\n >\n {icon && <Icon icon={icon} size={24} />}\n {contentRight}\n </Row>\n </Row>\n </label>\n );\n};\n","import { Row, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport interface RadioButtonWithLabelProps extends RadioButtonProps {\n label: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const RadioButtonWithLabel: React.FC<RadioButtonWithLabelProps> = ({\n label,\n inputRef,\n wrapperRef,\n textColor,\n ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n <Text color={textColor} userSelect={\"none\"}>\n {label}\n </Text>\n </Row>\n </label>\n </div>\n );\n};\n","import {\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type MoveDirection = \"right\" | \"left\" | \"down\" | \"up\";\nexport type TextInputElement = HTMLTextAreaElement | HTMLInputElement;\n\nexport const useKeyboardNavigation = <TElement extends TextInputElement>(\n ref: RefObject<TElement>,\n /**\n * User-provided onKeyDown. Internal handler should forward calls to this.\n * */\n onKeyDown: KeyboardEventHandler<TElement> | undefined,\n onEnter: (() => void) | undefined,\n onEsc: (() => void) | undefined,\n /**\n * onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab.\n * */\n onMove: ((direction: MoveDirection) => void) | undefined,\n onDone: ((value: string) => void) | undefined,\n onBlur: FocusEventHandler<TElement> | undefined,\n onFocus: FocusEventHandler<TElement> | undefined\n) => {\n const wasHandled = useRef(false);\n\n const onBlurHandler: FocusEventHandler<TElement> = (ev) => {\n if (!wasHandled.current) {\n onDone?.(ev.target.value ?? \"\");\n }\n onBlur?.(ev);\n };\n\n const onFocusHandler: FocusEventHandler<TElement> = (ev) => {\n wasHandled.current = false;\n onFocus?.(ev);\n };\n\n const onKeyDownHandler: KeyboardEventHandler<TElement> = useCallback(\n (ev) => {\n const { key } = ev;\n if (key === \"Enter\") {\n wasHandled.current = true;\n onEnter?.();\n onDone?.(ev.currentTarget.value ?? \"\");\n } else if (key === \"Escape\") {\n wasHandled.current = true;\n onEsc?.();\n ev.preventDefault();\n ev.stopPropagation();\n } else if (onMove) {\n const blurMoveAndCancel = (\n direction: MoveDirection,\n e: KeyboardEvent<TElement>\n ) => {\n wasHandled.current = true;\n ref.current!.blur();\n onMove(direction);\n e.preventDefault();\n e.stopPropagation();\n };\n\n if (ev.shiftKey && key === \"Tab\") {\n blurMoveAndCancel(\"left\", ev);\n } else if (key === \"Tab\") {\n blurMoveAndCancel(\"right\", ev);\n } else if (key === \"ArrowUp\") {\n blurMoveAndCancel(\"up\", ev);\n } else if (key === \"ArrowDown\") {\n blurMoveAndCancel(\"down\", ev);\n } else if (key === \"ArrowRight\") {\n if (ref.current!.value.length === ref.current!.selectionStart) {\n blurMoveAndCancel(\"right\", ev);\n }\n } else if (key === \"ArrowLeft\") {\n if (ref.current!.selectionStart === 0) {\n blurMoveAndCancel(\"left\", ev);\n }\n }\n }\n\n if (onKeyDown) {\n onKeyDown(ev);\n }\n },\n [onEsc, onMove, onKeyDown, ref, onEnter, onDone]\n );\n\n return {\n onKeyDownHandler,\n onBlurHandler,\n onFocusHandler,\n };\n};\n","import { RefObject, useEffect } from \"react\";\nimport { TextInputElement } from \"./UseKeyboardNavigation\";\n\nexport function elementHasSelectionRange(element: TextInputElement): boolean {\n if (element.tagName === \"TEXTAREA\") {\n return true;\n }\n\n if (\n element.tagName === \"INPUT\" &&\n (element.type === \"text\" ||\n element.type === \"search\" ||\n element.type === \"url\" ||\n element.type === \"tel\" ||\n element.type === \"password\")\n ) {\n return true;\n }\n\n return false;\n}\n\nexport const useSelectAllOnMount = (\n ref: RefObject<TextInputElement>,\n moveCursorToEnd: boolean,\n enabled: boolean\n) => {\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n /*\n `selectionStart`, `selectionEnd` properties and `setSelectionRange` method apply only to inputs of types text, search, URL, tel and password.\n Chrome, starting from version 33, throws an exception while accessing those properties and method on the rest of input types.\n https://html.spec.whatwg.org/multipage/input.html#concept-input-apply\n */\n if (!elementHasSelectionRange(ref.current)) {\n return;\n }\n\n if (enabled) {\n ref.current.setSelectionRange(0, ref.current.value.length);\n } else if (moveCursorToEnd) {\n ref.current.setSelectionRange(\n ref.current.value.length,\n ref.current.value.length\n );\n }\n }, [moveCursorToEnd, ref, enabled]);\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n CSSProperties,\n FocusEventHandler,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n} from \"react\";\nimport { TextInputVariant } from \"../components/ui/text-input/TextInput\";\nimport {\n MoveDirection,\n TextInputElement,\n useKeyboardNavigation,\n} from \"./UseKeyboardNavigation\";\nimport { useSelectAllOnMount } from \"./UseSelectAllOnMount\";\nimport { FullOnChangeProps } from \"../components/ui/types\";\n\ninterface UseTextInputOptions<TElement extends TextInputElement>\n extends FullOnChangeProps<string, ChangeEvent<TElement>> {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n onFocus?: FocusEventHandler<TElement>;\n onBlur?: FocusEventHandler<TElement>;\n onKeyDown?: KeyboardEventHandler<TElement>;\n}\n\ninterface UseTextInputHookResult<TElement extends TextInputElement> {\n autoFocus?: boolean;\n onChange: ChangeEventHandler<TElement>;\n onFocus: FocusEventHandler<TElement>;\n onBlur: FocusEventHandler<TElement>;\n onKeyDown: KeyboardEventHandler<TElement>;\n}\n\nexport const useTextInput = <TElement extends TextInputElement>(\n ref: RefObject<TElement>,\n {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n }: UseTextInputOptions<TElement>\n): UseTextInputHookResult<TElement> => {\n useSelectAllOnMount(ref, !!moveCursorToEndOnMount, !!selectAllOnMount);\n\n const { onKeyDownHandler, onFocusHandler, onBlurHandler } =\n useKeyboardNavigation<TElement>(\n ref,\n onKeyDown,\n onEnter,\n onEsc,\n onMove,\n onDone,\n onBlur,\n onFocus\n );\n\n const onChangeHandler = useCallback<ChangeEventHandler<TElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange]\n );\n\n return {\n onBlur: onBlurHandler,\n onChange: onChangeHandler,\n onFocus: onFocusHandler,\n onKeyDown: onKeyDownHandler,\n autoFocus: selectAllOnMount || autoFocus,\n };\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Space } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n button?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n button,\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n}) => {\n if (!content && !icon && !button) {\n return null;\n }\n\n if (button) {\n return (\n <>\n {spaceOnLeft ? <Space num={0.25} /> : null}\n {button}\n {spaceOnRight ? <Space num={0.25} /> : null}\n </>\n );\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {content || null}\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { stenaCheck, stenaExclamationTriangle } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ChangeEvent, CSSProperties, useRef } from \"react\";\nimport { MoveDirection } from \"../../../hooks/UseKeyboardNavigation\";\nimport { useTextInput } from \"../../../hooks/UseTextInput\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./TextInput.module.css\";\nimport { TextInputIcon } from \"./TextInputIcon\";\n\nexport type TextInputVariant =\n | \"standard\"\n | \"loading\"\n | \"warning\"\n | \"error\"\n | \"modified\"\n | \"success\";\n\ninterface ExtraContent {\n /** React node to put to the left. Left icon is ignored if this is set. */\n contentLeft?: React.ReactNode;\n /** React node to put to the right. Right icon is ignored if this is set. */\n contentRight?: React.ReactNode;\n /** TextInputButton to the left. Left icon and content is ignored if this is set. */\n buttonLeft?: React.ReactNode;\n /** React node to put to the right. Right icon and content is ignored if this is set. */\n buttonRight?: React.ReactNode;\n /** If true, there will be no padding between contentLeft/contentRight and the border. */\n disableContentPadding?: boolean;\n /** If true, there will be no padding between contentLeft and the border. */\n disableContentPaddingLeft?: boolean;\n /** If true, there will be no padding between contentRight and the border. */\n disableContentPaddingRight?: boolean;\n /** Icon on the left side. */\n iconLeft?: IconDefinition;\n /** Icon on the right side. */\n iconRight?: IconDefinition;\n}\n\nexport interface TextInputProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n InputProps,\n ExtraContent {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n buttonLeft,\n buttonRight,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n moveCursorToEndOnMount,\n selectAllOnMount,\n autoFocus,\n onValueChange,\n wrapperClassName,\n wrapperStyle,\n onDone,\n onEnter,\n onEsc,\n onMove,\n onChange,\n onKeyDown,\n hideBorder,\n onFocus,\n onBlur,\n ...inputProps\n } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const refToUse = inputRef ?? localRef;\n const hookProps = useTextInput<HTMLInputElement>(refToUse, {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n });\n\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n button={buttonLeft}\n />\n <input\n className={cx(styles.input, className)}\n type={\"text\"}\n disabled={disabled}\n ref={refToUse}\n autoFocus={autoFocus}\n {...inputProps}\n {...hookProps}\n />\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n button={buttonRight}\n />\n </div>\n );\n};\n","import { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport const onStepValueChange = ({\n onValueChange,\n value,\n numSteps,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n value: string | undefined;\n numSteps: number;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (!value) {\n onValueChange(String(limitWithinRange(numSteps, min, max)));\n } else {\n const parsedValue = parseFloatElseUndefined(value);\n const newValue = (parsedValue || 0) + numSteps;\n onValueChange(String(limitWithinRange(newValue, min, max)));\n }\n }\n};\n\nexport const onTextValueChange = ({\n onValueChange,\n newValue,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n newValue: string;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (newValue === \"\") {\n onValueChange(\"\");\n } else {\n const parsedValue = parseFloatElseUndefined(newValue);\n const value = parsedValue || 0;\n onValueChange(String(limitWithinRange(value, min, max)));\n }\n }\n};\n\nconst limitWithinRange = (\n value: number,\n min?: number,\n max?: number\n): number => {\n let v = value;\n if (min != null) {\n v = Math.max(min, v);\n }\n if (max != null) {\n v = Math.min(max, v);\n }\n return v;\n};\n","import { Omit, Space } from \"@stenajs-webui/core\";\nimport { UpDownButtons } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport styles from \"./NumericTextInput.module.css\";\nimport cx from \"classnames\";\nimport {\n onStepValueChange,\n onTextValueChange,\n} from \"../../../utils/NumericHelpers\";\n\nexport interface NumericTextInputProps\n extends Omit<\n TextInputProps,\n | \"onChange\" // Omit onChange, since up down buttons don't generate HTMLInput event.\n | \"selectAllOnMount\" // Not supported by browser when input type='number'\n | \"moveCursorToEndOnMount\" // Not supported by browser when input type='number'\n > {\n max?: number;\n min?: number;\n step?: number;\n hideButtons?: boolean;\n}\n\nexport const NumericTextInput: React.FC<NumericTextInputProps> = ({\n value,\n onValueChange,\n max,\n min,\n step = 1,\n contentRight,\n disabled,\n className,\n hideButtons,\n ...restProps\n}) => {\n const onClick = useCallback(\n (numSteps: number) => {\n onStepValueChange({ onValueChange, value, numSteps, min, max });\n },\n [value, max, min, onValueChange]\n );\n const onChange = useCallback(\n (newValue: string) => {\n onTextValueChange({ onValueChange, newValue, min, max });\n },\n [max, min, onValueChange]\n );\n\n const contentRightToUse = hideButtons ? (\n contentRight\n ) : (\n <>\n {contentRight && (\n <>\n {contentRight}\n <Space />\n </>\n )}\n <UpDownButtons\n onClickUp={disabled ? undefined : () => onClick(step)}\n onClickDown={disabled ? undefined : () => onClick(-step)}\n iconColor={\"var(--swui-textinput-text-color)\"}\n disabled={disabled}\n />\n </>\n );\n\n return (\n <TextInput\n contentRight={contentRightToUse}\n value={value}\n onValueChange={onChange}\n disableContentPaddingRight={!hideButtons}\n type={\"number\"}\n min={min}\n max={max}\n step={step}\n className={cx(styles.numericTextInputInput, className)}\n disabled={disabled}\n {...restProps}\n />\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport { ValueAndOnValueChangeProps } from \"../../types\";\nimport { NumericTextInputProps } from \"../NumericTextInput\";\nimport { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport type NumericInputValueProps = ValueAndOnValueChangeProps<\n number | undefined\n>;\n\nexport const useNumericInputValue = (\n value: number | undefined,\n onValueChange?: (value: number | undefined) => void\n): Partial<NumericTextInputProps> => {\n const onValueChangeString = useCallback(\n (newValue: string) => {\n if (onValueChange) {\n if (!newValue) {\n onValueChange(undefined);\n } else {\n const n = parseFloatElseUndefined(newValue);\n if (n !== undefined) {\n onValueChange(n);\n }\n }\n }\n },\n [onValueChange]\n );\n\n const valueString = useMemo(() => {\n if (value === undefined) {\n return \"\";\n }\n return String(value);\n }, [value]);\n\n return {\n onValueChange: onValueChangeString,\n value: valueString,\n };\n};\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport {\n stenaEyeHide,\n stenaEyeShow,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = stenaEyeShow,\n visibleIcon = stenaEyeHide,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n buttonRight={\n <TextInputButton\n icon={isPassword ? hiddenIcon : visibleIcon}\n onClick={() => setIsPassword((x) => !x)}\n />\n }\n type={isPassword ? \"password\" : \"text\"}\n {...props}\n />\n );\n};\n","import { getDataProps, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface InputLabelTextProps {\n disabled?: boolean;\n text?: string;\n}\n\nexport const InputLabelText: React.FC<InputLabelTextProps> = ({\n disabled,\n text,\n ...props\n}) => {\n return (\n <Text\n variant={\"bold\"}\n color={cssColor(disabled ? \"--silver\" : \"--tjara\")}\n size={\"small\"}\n {...getDataProps(props)}\n >\n {text}\n </Text>\n );\n};\n","import * as React from \"react\";\nimport { InputLabelText } from \"./InputLabelText\";\nimport { ScreenReaderOnlyText } from \"@stenajs-webui/core\";\n\nexport interface InputLabelProps {\n htmlFor?: string;\n label?: string;\n screenReaderLabel?: string;\n className?: string;\n disabled?: boolean;\n}\n\nexport const InputLabel: React.FC<InputLabelProps> = ({\n htmlFor,\n screenReaderLabel,\n label,\n disabled,\n className,\n}) => {\n return (\n <label htmlFor={htmlFor} className={className}>\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <InputLabelText\n aria-hidden={Boolean(screenReaderLabel)}\n text={label}\n disabled={disabled}\n />\n </label>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEvent, PropsWithChildren, useCallback, useId } from \"react\";\nimport { Icon, stenaAngleDown } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledSelect.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport { SelectElementProps } from \"@stenajs-webui/core\";\n\nexport type SelectBorderVariant =\n | \"normalBorder\"\n | \"onlyTopBorder\"\n | \"onlyBottomBorder\";\n\nexport interface LabelledSelectProps\n extends ValueAndOnValueChangeProps<string>,\n PropsWithChildren,\n Omit<SelectElementProps, \"value\"> {\n id?: string;\n name: string;\n label?: string;\n screenReaderLabel?: string;\n borderVariant?: SelectBorderVariant;\n variant?: LabelledSelectVariant;\n}\n\nexport type LabelledSelectVariant = \"normal\" | \"error\";\n\nexport const LabelledSelect: React.FC<LabelledSelectProps> = ({\n onChange,\n onValueChange,\n id,\n label,\n screenReaderLabel,\n borderVariant = \"normalBorder\",\n variant = \"normal\",\n children,\n ...inputProps\n}) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange]\n );\n\n return (\n <div\n className={cx(\n styles.labelledSelect,\n styles[variant],\n styles[borderVariant]\n )}\n >\n <InputLabel\n htmlFor={activeId}\n className={styles.label}\n label={label}\n screenReaderLabel={screenReaderLabel}\n />\n <select\n id={activeId}\n onChange={onChangeHandler}\n className={cx(styles.select, styles[variant])}\n {...inputProps}\n >\n {children}\n </select>\n\n <div className={cx(styles.iconWrapper)}>\n <Icon\n icon={stenaAngleDown}\n size={24}\n color={cssColor(\"--modern-blue\")}\n />\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEventHandler, useCallback, useId } from \"react\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledTextInput.module.css\";\nimport { InputElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\n\nexport type LabelledTextInputVariant = \"normal\" | \"error\";\nexport type LabelledTextInputSize = \"medium\" | \"large\";\n\nexport type LabelledTextInputBorderVariant =\n | \"normalBorder\"\n | \"onlyTop\"\n | \"onlyBottom\";\n\nexport interface LabelledTextInputProps\n extends Omit<InputElementProps, \"value\" | \"size\">,\n ValueAndOnValueChangeProps<string> {\n id?: string;\n label?: string;\n size?: LabelledTextInputSize;\n screenReaderLabel?: string;\n pattern?: string;\n borderRadiusVariant?: LabelledTextInputBorderVariant;\n variant?: LabelledTextInputVariant;\n}\n\nexport const LabelledTextInput = React.forwardRef<\n HTMLInputElement,\n LabelledTextInputProps\n>(\n (\n {\n autoComplete = \"off\",\n label,\n id,\n screenReaderLabel,\n size = \"medium\",\n value,\n onChange,\n disabled,\n onValueChange,\n borderRadiusVariant = \"normalBorder\",\n variant = \"normal\",\n ...inputProps\n },\n ref\n ) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback<ChangeEventHandler<HTMLInputElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange]\n );\n\n return (\n <div\n className={cx(\n styles.labelledTextInput,\n styles[variant],\n styles[borderRadiusVariant],\n styles[size],\n disabled && styles.disabled\n )}\n >\n <InputLabel\n htmlFor={activeId}\n screenReaderLabel={screenReaderLabel}\n label={label}\n />\n <input\n ref={ref}\n id={activeId}\n autoComplete={autoComplete}\n type={\"text\"}\n value={value}\n onChange={onChangeHandler}\n disabled={disabled}\n {...inputProps}\n />\n </div>\n );\n }\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport cx from \"classnames\";\nimport { TextInputProps } from \"./TextInput\";\nimport { TextInputIcon } from \"./TextInputIcon\";\nimport {\n InputSpinner,\n stenaCheck,\n stenaExclamationTriangle,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\nimport { ButtonElementProps, Row } from \"@stenajs-webui/core\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\n\nexport interface TextInputBoxProps\n extends Pick<\n TextInputProps,\n | \"variant\"\n | \"wrapperClassName\"\n | \"disabled\"\n | \"wrapperStyle\"\n | \"contentLeft\"\n | \"contentRight\"\n | \"disableContentPadding\"\n | \"disableContentPaddingLeft\"\n | \"disableContentPaddingRight\"\n > {\n children?: ReactNode;\n iconRight?: IconDefinition;\n iconLeft?: IconDefinition;\n onClickLeft?: ButtonElementProps[\"onClick\"];\n onClickRight?: ButtonElementProps[\"onClick\"];\n}\n\nexport const TextInputBox: React.FC<TextInputBoxProps> = ({\n variant = \"standard\",\n disabled,\n wrapperClassName,\n wrapperStyle,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconRight,\n iconLeft,\n onClickLeft,\n onClickRight,\n children,\n}) => {\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles.inputContainer,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnLeft\n button={\n iconLeft ? (\n <TextInputButton onClick={onClickLeft} icon={iconLeft} />\n ) : undefined\n }\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnRight\n button={\n currentIconRight ? (\n <TextInputButton onClick={onClickRight} icon={currentIconRight} />\n ) : undefined\n }\n />\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./TextArea.module.css\";\nimport { FullOnChangeProps } from \"../types\";\n\ntype Resize =\n | \"none\"\n | \"both\"\n | \"horizontal\"\n | \"vertical\"\n | \"inherit\"\n | \"initial\"\n | \"revert\"\n | \"unset\";\n\nexport interface TextAreaProps\n extends Omit<ComponentPropsWithoutRef<\"textarea\">, \"value\">,\n FullOnChangeProps<string, ChangeEvent<HTMLTextAreaElement>> {\n resize?: Resize;\n readOnly?: boolean;\n rows?: number;\n disabled?: boolean;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n className,\n value,\n onValueChange,\n onChange,\n resize = \"none\",\n readOnly = false,\n rows,\n disabled,\n ...textAreaProps\n },\n ref\n ) => {\n const onChangeHandler: ChangeEventHandler<HTMLTextAreaElement> =\n useCallback(\n (ev) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange]\n );\n\n return (\n <textarea\n disabled={disabled}\n rows={rows}\n readOnly={readOnly}\n className={cx(styles.textArea, className)}\n style={{ resize }}\n onChange={onChangeHandler}\n value={value}\n ref={ref}\n {...textAreaProps}\n />\n );\n }\n);\n"],"names":["styleChecked","styles","Switch","value","disabled","onValueChange","className","wrapperRef","restProps","jsx","jsxs","SwitchWithLabel","label","textColor","switchProps","Box","Space","Text","Checkbox","forwardRef","indeterminate","onChange","size","inputProps","ref","localRef","useRef","setRef","element","handleInputChange","useCallback","ev","useEffect","cx","CheckboxWithLabel","children","inputRef","checkboxProps","Row","RadioButton","name","RadioButtonBox","screenReaderLabel","variant","icon","contentRight","style","radioButtonClassName","radioButtonProps","ScreenReaderOnlyText","Icon","RadioButtonWithLabel","useKeyboardNavigation","onKeyDown","onEnter","onEsc","onMove","onDone","onBlur","onFocus","wasHandled","onBlurHandler","onFocusHandler","key","blurMoveAndCancel","direction","e","elementHasSelectionRange","useSelectAllOnMount","moveCursorToEnd","enabled","useTextInput","selectAllOnMount","moveCursorToEndOnMount","autoFocus","onKeyDownHandler","onChangeHandler","TextInputIcon","button","iconClassName","content","spaceOnLeft","spaceOnRight","disableContentPadding","disableContentPaddingLeft","disableContentPaddingRight","Fragment","FontAwesomeIcon","TextInput","props","buttonLeft","buttonRight","contentLeft","iconLeft","iconRight","wrapperClassName","wrapperStyle","hideBorder","refToUse","hookProps","currentIconRight","stenaCheck","stenaExclamationTriangle","currentContentRight","InputSpinner","onStepValueChange","numSteps","min","max","limitWithinRange","newValue","parseFloatElseUndefined","onTextValueChange","v","NumericTextInput","step","hideButtons","onClick","UpDownButtons","useNumericInputValue","onValueChangeString","n","valueString","useMemo","PasswordInput","hiddenIcon","stenaEyeShow","visibleIcon","stenaEyeHide","isPassword","setIsPassword","useState","TextInputButton","x","InputLabelText","text","cssColor","getDataProps","InputLabel","htmlFor","LabelledSelect","id","borderVariant","hookId","useId","activeId","stenaAngleDown","LabelledTextInput","React","autoComplete","borderRadiusVariant","TextInputBox","onClickLeft","onClickRight","TextArea","resize","readOnly","rows","textAreaProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/components/ui/switch/Switch.tsx","../src/components/ui/switch/SwitchWithLabel.tsx","../src/components/ui/checkbox/Checkbox.tsx","../src/components/ui/checkbox/CheckboxWithLabel.tsx","../src/components/ui/radio/RadioButton.tsx","../src/components/ui/radio/RadioButtonBox.tsx","../src/components/ui/radio/RadioButtonWithLabel.tsx","../src/hooks/UseKeyboardNavigation.ts","../src/hooks/UseSelectAllOnMount.ts","../src/hooks/UseTextInput.ts","../src/components/ui/text-input/TextInputIcon.tsx","../src/components/ui/text-input/TextInput.tsx","../src/utils/NumericHelpers.ts","../src/components/ui/numeric-text-input/NumericTextInput.tsx","../src/components/ui/numeric-text-input/hooks/UseNumericInputValue.ts","../src/components/ui/password-input/PasswordInput.tsx","../src/components/ui/input-label/InputLabelText.tsx","../src/components/ui/input-label/InputLabel.tsx","../src/components/ui/labelled-select/LabelledSelect.tsx","../src/components/ui/labelled-text-input/LabelledTextInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["import { Ref } from \"react\";\nimport * as React from \"react\";\nimport { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport styles from \"./Switch.module.css\";\n\nexport interface SwitchProps\n extends Omit<ButtonElementProps, \"value\">,\n ValueAndOnValueChangeProps<boolean> {\n wrapperRef?: Ref<HTMLDivElement>;\n}\n\nconst styleChecked = `${styles.switch} ${styles.checked}`;\n\nexport const Switch: React.FC<SwitchProps> = ({\n value,\n disabled,\n onValueChange,\n className,\n wrapperRef,\n ...restProps\n}) => {\n return (\n <div className={className} ref={wrapperRef}>\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n className={value ? styleChecked : styles.switch}\n disabled={disabled}\n onClick={() => onValueChange && onValueChange(!value)}\n {...restProps}\n >\n <div className={styles.filler} />\n <div className={styles.knob} />\n </button>\n </div>\n );\n};\n","import { Box, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Switch, SwitchProps } from \"./Switch\";\n\nexport interface SwitchWithLabelProps extends SwitchProps {\n label: string;\n textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n </Box>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n MutableRefObject,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport cx from \"classnames\";\nimport styles from \"./Checkbox.module.css\";\n\nexport type CheckboxSize = \"standard\" | \"small\";\n\nexport interface CheckboxProps\n extends FullOnChangeProps<boolean, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n indeterminate?: boolean;\n size?: CheckboxSize;\n disabled?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n indeterminate = false,\n onChange,\n onValueChange,\n value = false,\n size = \"standard\",\n className,\n ...inputProps\n },\n ref\n ) => {\n const localRef = useRef<HTMLInputElement>();\n\n const setRef = (element: HTMLInputElement) => {\n localRef.current = element;\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n if (ref) {\n if (typeof ref === \"function\") {\n ref(element);\n } else {\n (ref as MutableRefObject<HTMLInputElement>).current = element;\n }\n }\n };\n\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.checked);\n }\n },\n [onChange, onValueChange]\n );\n\n useEffect(() => {\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [indeterminate, localRef]);\n\n return (\n <input\n type={\"checkbox\"}\n className={cx(styles.checkbox, styles[size], className)}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { Checkbox, CheckboxProps } from \"./Checkbox\";\n\nexport interface CheckboxWithLabelProps extends CheckboxProps {\n label?: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const CheckboxWithLabel: React.FC<CheckboxWithLabelProps> = ({\n children,\n label,\n inputRef,\n wrapperRef,\n textColor,\n ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {label && (\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n )}\n {children}\n </Row>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./RadioButton.module.css\";\nimport cx from \"classnames\";\n\nexport type RadioButtonSize = \"standard\" | \"small\";\n\nexport interface RadioButtonProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n size?: RadioButtonSize;\n}\n\nexport const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(\n (\n {\n onChange,\n onValueChange,\n size = \"standard\",\n name,\n className,\n ...inputProps\n },\n ref\n ) => {\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange]\n );\n\n return (\n <input\n type={\"radio\"}\n name={name}\n className={cx(styles.radiobutton, styles[size], className)}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n }\n);\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport { Icon } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./RadioButtonBox.module.css\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport type RadioButtonBoxVariant = \"normal\" | \"danger\";\n\nexport type RadioButtonBoxProps =\n | RadioButtonBoxNoRightProps\n | RadioButtonBoxIconProps\n | RadioButtonBoxContentRightProps;\n\nexport interface RadioButtonBoxCommonProps extends RadioButtonProps {\n label?: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n variant?: RadioButtonBoxVariant;\n radioButtonClassName?: string;\n}\n\nexport interface RadioButtonBoxNoRightProps extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxIconProps extends RadioButtonBoxCommonProps {\n icon?: IconDefinition;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxContentRightProps\n extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: ReactNode;\n}\n\nexport const RadioButtonBox: React.FC<RadioButtonBoxProps> = ({\n label,\n screenReaderLabel,\n variant = \"normal\",\n className,\n icon,\n contentRight,\n style,\n radioButtonClassName,\n ...radioButtonProps\n}) => {\n return (\n <label\n className={cx(styles.radioButtonBox, styles[variant], className)}\n style={style}\n >\n <Row justifyContent={\"space-between\"} flexGrow={1}>\n <Row alignItems={\"center\"}>\n <RadioButton {...radioButtonProps} className={radioButtonClassName} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text aria-hidden={Boolean(screenReaderLabel)}>{label}</Text>\n </Row>\n <Row\n alignItems={\"center\"}\n width={icon ? \"48px\" : undefined}\n justifyContent={\"center\"}\n >\n {icon && <Icon icon={icon} size={24} />}\n {!icon && contentRight}\n </Row>\n </Row>\n </label>\n );\n};\n","import { Row, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport interface RadioButtonWithLabelProps extends RadioButtonProps {\n label: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const RadioButtonWithLabel: React.FC<RadioButtonWithLabelProps> = ({\n label,\n inputRef,\n wrapperRef,\n textColor,\n ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n <Text color={textColor} userSelect={\"none\"}>\n {label}\n </Text>\n </Row>\n </label>\n </div>\n );\n};\n","import {\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type MoveDirection = \"right\" | \"left\" | \"down\" | \"up\";\nexport type TextInputElement = HTMLTextAreaElement | HTMLInputElement;\n\nexport const useKeyboardNavigation = <TElement extends TextInputElement>(\n ref: RefObject<TElement>,\n /**\n * User-provided onKeyDown. Internal handler should forward calls to this.\n * */\n onKeyDown: KeyboardEventHandler<TElement> | undefined,\n onEnter: (() => void) | undefined,\n onEsc: (() => void) | undefined,\n /**\n * onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab.\n * */\n onMove: ((direction: MoveDirection) => void) | undefined,\n onDone: ((value: string) => void) | undefined,\n onBlur: FocusEventHandler<TElement> | undefined,\n onFocus: FocusEventHandler<TElement> | undefined\n) => {\n const wasHandled = useRef(false);\n\n const onBlurHandler: FocusEventHandler<TElement> = (ev) => {\n if (!wasHandled.current) {\n onDone?.(ev.target.value ?? \"\");\n }\n onBlur?.(ev);\n };\n\n const onFocusHandler: FocusEventHandler<TElement> = (ev) => {\n wasHandled.current = false;\n onFocus?.(ev);\n };\n\n const onKeyDownHandler: KeyboardEventHandler<TElement> = useCallback(\n (ev) => {\n const { key } = ev;\n if (key === \"Enter\") {\n wasHandled.current = true;\n onEnter?.();\n onDone?.(ev.currentTarget.value ?? \"\");\n } else if (key === \"Escape\") {\n wasHandled.current = true;\n onEsc?.();\n ev.preventDefault();\n ev.stopPropagation();\n } else if (onMove) {\n const blurMoveAndCancel = (\n direction: MoveDirection,\n e: KeyboardEvent<TElement>\n ) => {\n wasHandled.current = true;\n ref.current!.blur();\n onMove(direction);\n e.preventDefault();\n e.stopPropagation();\n };\n\n if (ev.shiftKey && key === \"Tab\") {\n blurMoveAndCancel(\"left\", ev);\n } else if (key === \"Tab\") {\n blurMoveAndCancel(\"right\", ev);\n } else if (key === \"ArrowUp\") {\n blurMoveAndCancel(\"up\", ev);\n } else if (key === \"ArrowDown\") {\n blurMoveAndCancel(\"down\", ev);\n } else if (key === \"ArrowRight\") {\n if (ref.current!.value.length === ref.current!.selectionStart) {\n blurMoveAndCancel(\"right\", ev);\n }\n } else if (key === \"ArrowLeft\") {\n if (ref.current!.selectionStart === 0) {\n blurMoveAndCancel(\"left\", ev);\n }\n }\n }\n\n if (onKeyDown) {\n onKeyDown(ev);\n }\n },\n [onEsc, onMove, onKeyDown, ref, onEnter, onDone]\n );\n\n return {\n onKeyDownHandler,\n onBlurHandler,\n onFocusHandler,\n };\n};\n","import { RefObject, useEffect } from \"react\";\nimport { TextInputElement } from \"./UseKeyboardNavigation\";\n\nexport function elementHasSelectionRange(element: TextInputElement): boolean {\n if (element.tagName === \"TEXTAREA\") {\n return true;\n }\n\n if (\n element.tagName === \"INPUT\" &&\n (element.type === \"text\" ||\n element.type === \"search\" ||\n element.type === \"url\" ||\n element.type === \"tel\" ||\n element.type === \"password\")\n ) {\n return true;\n }\n\n return false;\n}\n\nexport const useSelectAllOnMount = (\n ref: RefObject<TextInputElement>,\n moveCursorToEnd: boolean,\n enabled: boolean\n) => {\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n /*\n `selectionStart`, `selectionEnd` properties and `setSelectionRange` method apply only to inputs of types text, search, URL, tel and password.\n Chrome, starting from version 33, throws an exception while accessing those properties and method on the rest of input types.\n https://html.spec.whatwg.org/multipage/input.html#concept-input-apply\n */\n if (!elementHasSelectionRange(ref.current)) {\n return;\n }\n\n if (enabled) {\n ref.current.setSelectionRange(0, ref.current.value.length);\n } else if (moveCursorToEnd) {\n ref.current.setSelectionRange(\n ref.current.value.length,\n ref.current.value.length\n );\n }\n }, [moveCursorToEnd, ref, enabled]);\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n CSSProperties,\n FocusEventHandler,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n} from \"react\";\nimport { TextInputVariant } from \"../components/ui/text-input/TextInput\";\nimport {\n MoveDirection,\n TextInputElement,\n useKeyboardNavigation,\n} from \"./UseKeyboardNavigation\";\nimport { useSelectAllOnMount } from \"./UseSelectAllOnMount\";\nimport { FullOnChangeProps } from \"../components/ui/types\";\n\ninterface UseTextInputOptions<TElement extends TextInputElement>\n extends FullOnChangeProps<string, ChangeEvent<TElement>> {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n onFocus?: FocusEventHandler<TElement>;\n onBlur?: FocusEventHandler<TElement>;\n onKeyDown?: KeyboardEventHandler<TElement>;\n}\n\ninterface UseTextInputHookResult<TElement extends TextInputElement> {\n autoFocus?: boolean;\n onChange: ChangeEventHandler<TElement>;\n onFocus: FocusEventHandler<TElement>;\n onBlur: FocusEventHandler<TElement>;\n onKeyDown: KeyboardEventHandler<TElement>;\n}\n\nexport const useTextInput = <TElement extends TextInputElement>(\n ref: RefObject<TElement>,\n {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n }: UseTextInputOptions<TElement>\n): UseTextInputHookResult<TElement> => {\n useSelectAllOnMount(ref, !!moveCursorToEndOnMount, !!selectAllOnMount);\n\n const { onKeyDownHandler, onFocusHandler, onBlurHandler } =\n useKeyboardNavigation<TElement>(\n ref,\n onKeyDown,\n onEnter,\n onEsc,\n onMove,\n onDone,\n onBlur,\n onFocus\n );\n\n const onChangeHandler = useCallback<ChangeEventHandler<TElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange]\n );\n\n return {\n onBlur: onBlurHandler,\n onChange: onChangeHandler,\n onFocus: onFocusHandler,\n onKeyDown: onKeyDownHandler,\n autoFocus: selectAllOnMount || autoFocus,\n };\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Space } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n button?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n button,\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n}) => {\n if (!content && !icon && !button) {\n return null;\n }\n\n if (button) {\n return (\n <>\n {spaceOnLeft ? <Space num={0.25} /> : null}\n {button}\n {spaceOnRight ? <Space num={0.25} /> : null}\n </>\n );\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {content || null}\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { stenaCheck, stenaExclamationTriangle } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ChangeEvent, CSSProperties, useRef } from \"react\";\nimport { MoveDirection } from \"../../../hooks/UseKeyboardNavigation\";\nimport { useTextInput } from \"../../../hooks/UseTextInput\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./TextInput.module.css\";\nimport { TextInputIcon } from \"./TextInputIcon\";\n\nexport type TextInputVariant =\n | \"standard\"\n | \"loading\"\n | \"warning\"\n | \"error\"\n | \"modified\"\n | \"success\";\n\ninterface ExtraContent {\n /** React node to put to the left. Left icon is ignored if this is set. */\n contentLeft?: React.ReactNode;\n /** React node to put to the right. Right icon is ignored if this is set. */\n contentRight?: React.ReactNode;\n /** TextInputButton to the left. Left icon and content is ignored if this is set. */\n buttonLeft?: React.ReactNode;\n /** React node to put to the right. Right icon and content is ignored if this is set. */\n buttonRight?: React.ReactNode;\n /** If true, there will be no padding between contentLeft/contentRight and the border. */\n disableContentPadding?: boolean;\n /** If true, there will be no padding between contentLeft and the border. */\n disableContentPaddingLeft?: boolean;\n /** If true, there will be no padding between contentRight and the border. */\n disableContentPaddingRight?: boolean;\n /** Icon on the left side. */\n iconLeft?: IconDefinition;\n /** Icon on the right side. */\n iconRight?: IconDefinition;\n}\n\nexport interface TextInputProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n InputProps,\n ExtraContent {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n buttonLeft,\n buttonRight,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n moveCursorToEndOnMount,\n selectAllOnMount,\n autoFocus,\n onValueChange,\n wrapperClassName,\n wrapperStyle,\n onDone,\n onEnter,\n onEsc,\n onMove,\n onChange,\n onKeyDown,\n hideBorder,\n onFocus,\n onBlur,\n ...inputProps\n } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const refToUse = inputRef ?? localRef;\n const hookProps = useTextInput<HTMLInputElement>(refToUse, {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n });\n\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n button={buttonLeft}\n />\n <input\n className={cx(styles.input, className)}\n type={\"text\"}\n disabled={disabled}\n ref={refToUse}\n autoFocus={autoFocus}\n {...inputProps}\n {...hookProps}\n />\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n button={buttonRight}\n />\n </div>\n );\n};\n","import { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport const onStepValueChange = ({\n onValueChange,\n value,\n numSteps,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n value: string | undefined;\n numSteps: number;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (!value) {\n onValueChange(String(limitWithinRange(numSteps, min, max)));\n } else {\n const parsedValue = parseFloatElseUndefined(value);\n const newValue = (parsedValue || 0) + numSteps;\n onValueChange(String(limitWithinRange(newValue, min, max)));\n }\n }\n};\n\nexport const onTextValueChange = ({\n onValueChange,\n newValue,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n newValue: string;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (newValue === \"\") {\n onValueChange(\"\");\n } else {\n const parsedValue = parseFloatElseUndefined(newValue);\n const value = parsedValue || 0;\n onValueChange(String(limitWithinRange(value, min, max)));\n }\n }\n};\n\nconst limitWithinRange = (\n value: number,\n min?: number,\n max?: number\n): number => {\n let v = value;\n if (min != null) {\n v = Math.max(min, v);\n }\n if (max != null) {\n v = Math.min(max, v);\n }\n return v;\n};\n","import { Omit, Space } from \"@stenajs-webui/core\";\nimport { UpDownButtons } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport styles from \"./NumericTextInput.module.css\";\nimport cx from \"classnames\";\nimport {\n onStepValueChange,\n onTextValueChange,\n} from \"../../../utils/NumericHelpers\";\n\nexport interface NumericTextInputProps\n extends Omit<\n TextInputProps,\n | \"onChange\" // Omit onChange, since up down buttons don't generate HTMLInput event.\n | \"selectAllOnMount\" // Not supported by browser when input type='number'\n | \"moveCursorToEndOnMount\" // Not supported by browser when input type='number'\n > {\n max?: number;\n min?: number;\n step?: number;\n hideButtons?: boolean;\n}\n\nexport const NumericTextInput: React.FC<NumericTextInputProps> = ({\n value,\n onValueChange,\n max,\n min,\n step = 1,\n contentRight,\n disabled,\n className,\n hideButtons,\n ...restProps\n}) => {\n const onClick = useCallback(\n (numSteps: number) => {\n onStepValueChange({ onValueChange, value, numSteps, min, max });\n },\n [value, max, min, onValueChange]\n );\n const onChange = useCallback(\n (newValue: string) => {\n onTextValueChange({ onValueChange, newValue, min, max });\n },\n [max, min, onValueChange]\n );\n\n const contentRightToUse = hideButtons ? (\n contentRight\n ) : (\n <>\n {contentRight && (\n <>\n {contentRight}\n <Space />\n </>\n )}\n <UpDownButtons\n onClickUp={disabled ? undefined : () => onClick(step)}\n onClickDown={disabled ? undefined : () => onClick(-step)}\n iconColor={\"var(--swui-textinput-text-color)\"}\n disabled={disabled}\n />\n </>\n );\n\n return (\n <TextInput\n contentRight={contentRightToUse}\n value={value}\n onValueChange={onChange}\n disableContentPaddingRight={!hideButtons}\n type={\"number\"}\n min={min}\n max={max}\n step={step}\n className={cx(styles.numericTextInputInput, className)}\n disabled={disabled}\n {...restProps}\n />\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport { ValueAndOnValueChangeProps } from \"../../types\";\nimport { NumericTextInputProps } from \"../NumericTextInput\";\nimport { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport type NumericInputValueProps = ValueAndOnValueChangeProps<\n number | undefined\n>;\n\nexport const useNumericInputValue = (\n value: number | undefined,\n onValueChange?: (value: number | undefined) => void\n): Partial<NumericTextInputProps> => {\n const onValueChangeString = useCallback(\n (newValue: string) => {\n if (onValueChange) {\n if (!newValue) {\n onValueChange(undefined);\n } else {\n const n = parseFloatElseUndefined(newValue);\n if (n !== undefined) {\n onValueChange(n);\n }\n }\n }\n },\n [onValueChange]\n );\n\n const valueString = useMemo(() => {\n if (value === undefined) {\n return \"\";\n }\n return String(value);\n }, [value]);\n\n return {\n onValueChange: onValueChangeString,\n value: valueString,\n };\n};\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport {\n stenaEyeHide,\n stenaEyeShow,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = stenaEyeShow,\n visibleIcon = stenaEyeHide,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n buttonRight={\n <TextInputButton\n icon={isPassword ? hiddenIcon : visibleIcon}\n onClick={() => setIsPassword((x) => !x)}\n />\n }\n type={isPassword ? \"password\" : \"text\"}\n {...props}\n />\n );\n};\n","import { getDataProps, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface InputLabelTextProps {\n disabled?: boolean;\n text?: string;\n}\n\nexport const InputLabelText: React.FC<InputLabelTextProps> = ({\n disabled,\n text,\n ...props\n}) => {\n return (\n <Text\n variant={\"bold\"}\n color={cssColor(disabled ? \"--silver\" : \"--tjara\")}\n size={\"small\"}\n {...getDataProps(props)}\n >\n {text}\n </Text>\n );\n};\n","import * as React from \"react\";\nimport { InputLabelText } from \"./InputLabelText\";\nimport { ScreenReaderOnlyText } from \"@stenajs-webui/core\";\n\nexport interface InputLabelProps {\n htmlFor?: string;\n label?: string;\n screenReaderLabel?: string;\n className?: string;\n disabled?: boolean;\n}\n\nexport const InputLabel: React.FC<InputLabelProps> = ({\n htmlFor,\n screenReaderLabel,\n label,\n disabled,\n className,\n}) => {\n return (\n <label htmlFor={htmlFor} className={className}>\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <InputLabelText\n aria-hidden={Boolean(screenReaderLabel)}\n text={label}\n disabled={disabled}\n />\n </label>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEvent, PropsWithChildren, useCallback, useId } from \"react\";\nimport { Icon, stenaAngleDown } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledSelect.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport { SelectElementProps } from \"@stenajs-webui/core\";\n\nexport type SelectBorderVariant =\n | \"normalBorder\"\n | \"onlyTopBorder\"\n | \"onlyBottomBorder\";\n\nexport interface LabelledSelectProps\n extends ValueAndOnValueChangeProps<string>,\n PropsWithChildren,\n Omit<SelectElementProps, \"value\"> {\n id?: string;\n name: string;\n label?: string;\n screenReaderLabel?: string;\n borderVariant?: SelectBorderVariant;\n variant?: LabelledSelectVariant;\n}\n\nexport type LabelledSelectVariant = \"normal\" | \"error\";\n\nexport const LabelledSelect: React.FC<LabelledSelectProps> = ({\n onChange,\n onValueChange,\n id,\n label,\n screenReaderLabel,\n borderVariant = \"normalBorder\",\n variant = \"normal\",\n children,\n ...inputProps\n}) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange]\n );\n\n return (\n <div\n className={cx(\n styles.labelledSelect,\n styles[variant],\n styles[borderVariant]\n )}\n >\n <InputLabel\n htmlFor={activeId}\n className={styles.label}\n label={label}\n screenReaderLabel={screenReaderLabel}\n />\n <select\n id={activeId}\n onChange={onChangeHandler}\n className={cx(styles.select, styles[variant])}\n {...inputProps}\n >\n {children}\n </select>\n\n <div className={cx(styles.iconWrapper)}>\n <Icon\n icon={stenaAngleDown}\n size={24}\n color={cssColor(\"--modern-blue\")}\n />\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEventHandler, useCallback, useId } from \"react\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledTextInput.module.css\";\nimport { InputElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\n\nexport type LabelledTextInputVariant = \"normal\" | \"error\";\nexport type LabelledTextInputSize = \"medium\" | \"large\";\n\nexport type LabelledTextInputBorderVariant =\n | \"normalBorder\"\n | \"onlyTop\"\n | \"onlyBottom\";\n\nexport interface LabelledTextInputProps\n extends Omit<InputElementProps, \"value\" | \"size\">,\n ValueAndOnValueChangeProps<string> {\n id?: string;\n label?: string;\n size?: LabelledTextInputSize;\n screenReaderLabel?: string;\n pattern?: string;\n borderRadiusVariant?: LabelledTextInputBorderVariant;\n variant?: LabelledTextInputVariant;\n}\n\nexport const LabelledTextInput = React.forwardRef<\n HTMLInputElement,\n LabelledTextInputProps\n>(\n (\n {\n autoComplete = \"off\",\n label,\n id,\n screenReaderLabel,\n size = \"medium\",\n value,\n onChange,\n disabled,\n onValueChange,\n borderRadiusVariant = \"normalBorder\",\n variant = \"normal\",\n ...inputProps\n },\n ref\n ) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback<ChangeEventHandler<HTMLInputElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange]\n );\n\n return (\n <div\n className={cx(\n styles.labelledTextInput,\n styles[variant],\n styles[borderRadiusVariant],\n styles[size],\n disabled && styles.disabled\n )}\n >\n <InputLabel\n htmlFor={activeId}\n screenReaderLabel={screenReaderLabel}\n label={label}\n />\n <input\n ref={ref}\n id={activeId}\n autoComplete={autoComplete}\n type={\"text\"}\n value={value}\n onChange={onChangeHandler}\n disabled={disabled}\n {...inputProps}\n />\n </div>\n );\n }\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport cx from \"classnames\";\nimport { TextInputProps } from \"./TextInput\";\nimport { TextInputIcon } from \"./TextInputIcon\";\nimport {\n InputSpinner,\n stenaCheck,\n stenaExclamationTriangle,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\nimport { ButtonElementProps, Row } from \"@stenajs-webui/core\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\n\nexport interface TextInputBoxProps\n extends Pick<\n TextInputProps,\n | \"variant\"\n | \"wrapperClassName\"\n | \"disabled\"\n | \"wrapperStyle\"\n | \"contentLeft\"\n | \"contentRight\"\n | \"disableContentPadding\"\n | \"disableContentPaddingLeft\"\n | \"disableContentPaddingRight\"\n > {\n children?: ReactNode;\n iconRight?: IconDefinition;\n iconLeft?: IconDefinition;\n onClickLeft?: ButtonElementProps[\"onClick\"];\n onClickRight?: ButtonElementProps[\"onClick\"];\n}\n\nexport const TextInputBox: React.FC<TextInputBoxProps> = ({\n variant = \"standard\",\n disabled,\n wrapperClassName,\n wrapperStyle,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconRight,\n iconLeft,\n onClickLeft,\n onClickRight,\n children,\n}) => {\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles.inputContainer,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnLeft\n button={\n iconLeft ? (\n <TextInputButton onClick={onClickLeft} icon={iconLeft} />\n ) : undefined\n }\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnRight\n button={\n currentIconRight ? (\n <TextInputButton onClick={onClickRight} icon={currentIconRight} />\n ) : undefined\n }\n />\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./TextArea.module.css\";\nimport { FullOnChangeProps } from \"../types\";\n\ntype Resize =\n | \"none\"\n | \"both\"\n | \"horizontal\"\n | \"vertical\"\n | \"inherit\"\n | \"initial\"\n | \"revert\"\n | \"unset\";\n\nexport interface TextAreaProps\n extends Omit<ComponentPropsWithoutRef<\"textarea\">, \"value\">,\n FullOnChangeProps<string, ChangeEvent<HTMLTextAreaElement>> {\n resize?: Resize;\n readOnly?: boolean;\n rows?: number;\n disabled?: boolean;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n className,\n value,\n onValueChange,\n onChange,\n resize = \"none\",\n readOnly = false,\n rows,\n disabled,\n ...textAreaProps\n },\n ref\n ) => {\n const onChangeHandler: ChangeEventHandler<HTMLTextAreaElement> =\n useCallback(\n (ev) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange]\n );\n\n return (\n <textarea\n disabled={disabled}\n rows={rows}\n readOnly={readOnly}\n className={cx(styles.textArea, className)}\n style={{ resize }}\n onChange={onChangeHandler}\n value={value}\n ref={ref}\n {...textAreaProps}\n />\n );\n }\n);\n"],"names":["styleChecked","styles","Switch","value","disabled","onValueChange","className","wrapperRef","restProps","jsx","jsxs","SwitchWithLabel","label","textColor","switchProps","Box","Space","Text","Checkbox","forwardRef","indeterminate","onChange","size","inputProps","ref","localRef","useRef","setRef","element","handleInputChange","useCallback","ev","useEffect","cx","CheckboxWithLabel","children","inputRef","checkboxProps","Row","RadioButton","name","RadioButtonBox","screenReaderLabel","variant","icon","contentRight","style","radioButtonClassName","radioButtonProps","ScreenReaderOnlyText","Icon","RadioButtonWithLabel","useKeyboardNavigation","onKeyDown","onEnter","onEsc","onMove","onDone","onBlur","onFocus","wasHandled","onBlurHandler","onFocusHandler","key","blurMoveAndCancel","direction","e","elementHasSelectionRange","useSelectAllOnMount","moveCursorToEnd","enabled","useTextInput","selectAllOnMount","moveCursorToEndOnMount","autoFocus","onKeyDownHandler","onChangeHandler","TextInputIcon","button","iconClassName","content","spaceOnLeft","spaceOnRight","disableContentPadding","disableContentPaddingLeft","disableContentPaddingRight","Fragment","FontAwesomeIcon","TextInput","props","buttonLeft","buttonRight","contentLeft","iconLeft","iconRight","wrapperClassName","wrapperStyle","hideBorder","refToUse","hookProps","currentIconRight","stenaCheck","stenaExclamationTriangle","currentContentRight","InputSpinner","onStepValueChange","numSteps","min","max","limitWithinRange","newValue","parseFloatElseUndefined","onTextValueChange","v","NumericTextInput","step","hideButtons","onClick","UpDownButtons","useNumericInputValue","onValueChangeString","n","valueString","useMemo","PasswordInput","hiddenIcon","stenaEyeShow","visibleIcon","stenaEyeHide","isPassword","setIsPassword","useState","TextInputButton","x","InputLabelText","text","cssColor","getDataProps","InputLabel","htmlFor","LabelledSelect","id","borderVariant","hookId","useId","activeId","stenaAngleDown","LabelledTextInput","React","autoComplete","borderRadiusVariant","TextInputBox","onClickLeft","onClickRight","TextArea","resize","readOnly","rows","textAreaProps"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode('._switch_1d6s8_1{--swui-switch-width: 50px;--swui-switch-height: var(--swui-field-box-size-medium);--swui-switch-animation-time: var(--swui-animation-time-medium);--swui-switch-selected-highlight-color: var(--lhds-color-blue-500);--swui-switch-knob-width: calc(var(--swui-switch-height) - 2px);--swui-switch-knob-bg-color-enabled: var(--swui-handle-bg-enabled-color);--swui-switch-knob-bg-color-disabled: var(--swui-handle-bg-disabled-color);--swui-switch-container-bg-color-enabled: var(--swui-field-bg-enabled);--swui-switch-container-bg-color-disabled: var(--swui-field-bg-disabled);--swui-switch-knob-border-color-enabled: var(--swui-separator-color);--swui-switch-container-border-color: var(--swui-field-border-color);--swui-switch-container-border-color-hover: var( --swui-field-border-color-hover );--swui-switch-container-border-color-disabled: var( --swui-field-border-color-disabled );--swui-switch-knob-shadow-color: var(--swui-field-shadow-color);display:flex;flex-direction:row;border:1px solid var(--swui-switch-container-border-color);box-sizing:border-box;background-color:var(--swui-switch-container-bg-color-enabled);height:var(--swui-switch-height);width:var(--swui-switch-width);border-radius:calc(var(--swui-switch-height) / 2);padding:0;margin:0;cursor:pointer;transition:background-color var(--swui-switch-animation-time)}._switch_1d6s8_1:focus{outline:0}._switch_1d6s8_1:focus-visible{outline:var(--swui-focus-outline);outline-offset:2px;border:1px solid var(--swui-switch-selected-highlight-color)}._switch_1d6s8_1:hover{border:1px solid var(--swui-switch-selected-highlight-color)}._switch_1d6s8_1:disabled{cursor:default;background-color:var(--swui-switch-container-bg-color-disabled);border:1px solid var(--swui-switch-container-border-color-disabled)}._switch_1d6s8_1:disabled ._knob_1d6s8_56{background-color:var(--swui-switch-knob-bg-color-disabled)}._switch_1d6s8_1 ._filler_1d6s8_61{flex:none;transition:flex var(--swui-switch-animation-time)}._switch_1d6s8_1 ._knob_1d6s8_56{width:var(--swui-switch-knob-width);height:var(--swui-switch-knob-width);border-radius:50%;background-color:var(--swui-switch-knob-bg-color-enabled);box-shadow:var(--swui-switch-knob-shadow-color) 0 0 4px 1px}._checked_1d6s8_75{border:1px solid var(--swui-switch-selected-highlight-color);background-color:var(--swui-switch-selected-highlight-color)}._checked_1d6s8_75 ._filler_1d6s8_61{flex:1}._checkbox_1ndou_1{--swui-checkbox-height: var(--swui-field-box-size-medium);--swui-checkbox-height-small: var(--swui-field-box-size-small);--swui-checkbox-border-radius: var(--swui-field-border-radius);--swui-checkbox-animation-time: var(--swui-animation-time-medium);--swui-checkbox-icon-color: var(--swui-field-indicator-active-color);--swui-checkbox-disabled-icon-color: var(--swui-text-disabled-color);--swui-checkbox-unchecked-icon-color: var( --swui-field-indicator-inactive-color );--swui-checkbox-unchecked-bg-color: var(--swui-white);--swui-checkbox-checked-bg-color: var(--lhds-color-blue-500);--swui-checkbox-disabled-bg-color: var(--swui-field-bg-disabled);--swui-checkbox-disabled-checked-bg-color: var(--swui-field-bg-disabled);--swui-checkbox-border-color: var(--swui-field-border-color);--swui-checkbox-border-hover-color: var(--swui-field-border-color-hover);--swui-checkbox-disabled-border-color: var(--swui-checkbox-disabled-bg-color);-webkit-appearance:none;-moz-appearance:none;border-radius:var(--swui-checkbox-border-radius);outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;cursor:pointer;border:1px solid var(--current-border-color, var(--swui-checkbox-border-color));background:var(--current-bg-color, var(--swui-checkbox-unchecked-bg-color));transition:background var(--swui-checkbox-animation-time),border-color var(--swui-checkbox-animation-time);flex-shrink:0}._checkbox_1ndou_1._standard_1ndou_39{width:var(--swui-checkbox-height);height:var(--swui-checkbox-height)}._checkbox_1ndou_1._standard_1ndou_39:after{width:3px;height:6px;left:9px;top:6px}._checkbox_1ndou_1._small_1ndou_51{width:var(--swui-checkbox-height-small);height:var(--swui-checkbox-height-small)}._checkbox_1ndou_1._small_1ndou_51:after{width:3px;height:6px;left:5px;top:2px}._checkbox_1ndou_1:after{content:"";display:block;position:absolute;transition:transform var(--swui-checkbox-animation-time) var(--d-t-e, ease),opacity var(--swui-checkbox-animation-time),width var(--swui-checkbox-animation-time),top var(--swui-checkbox-animation-time);border:2px solid var( --current-checkbox-icon-color, var(--swui-checkbox-unchecked-icon-color) );border-top:0;border-left:0;transform:rotate(var(--current-check-rotation, 20deg));box-sizing:content-box}._checkbox_1ndou_1:checked{--current-check-rotation: 43deg;--current-bg-color: var(--swui-checkbox-checked-bg-color);--current-border-color: var(--swui-checkbox-checked-bg-color);--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}._checkbox_1ndou_1:checked:after{--current-checkbox-icon-color: var(--swui-checkbox-icon-color)}._checkbox_1ndou_1:disabled:not(:checked){--current-bg-color: var(--swui-checkbox-disabled-bg-color);--current-border-color: var(--swui-checkbox-disabled-border-color)}._checkbox_1ndou_1:disabled:not(:checked):after{--current-checkbox-icon-color: --swui-checkbox-unchecked-icon-color}._checkbox_1ndou_1:disabled:checked{--current-bg-color: var(--swui-checkbox-disabled-checked-bg-color);--current-border-color: var(--swui-checkbox-disabled-border-color)}._checkbox_1ndou_1:disabled:checked:after{--current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color)}._checkbox_1ndou_1:indeterminate{--current-check-rotation: 43deg;--current-bg-color: var(--swui-checkbox-checked-bg-color);--current-border-color: var(--swui-checkbox-checked-bg-color);--d-t-e: cubic-bezier(.2, .85, .32, 1.2)}._checkbox_1ndou_1:indeterminate:after{--current-checkbox-icon-color: var(--swui-checkbox-icon-color);border-right:0;transform:rotate(0);width:6px}._checkbox_1ndou_1:indeterminate._standard_1ndou_39:after{top:4px;left:8px}._checkbox_1ndou_1:indeterminate._small_1ndou_51:after{top:0;left:4px}._checkbox_1ndou_1:indeterminate:disabled:after{--current-checkbox-icon-color: var(--swui-checkbox-disabled-icon-color)}._checkbox_1ndou_1:hover:not(:checked):not(:disabled){--current-border-color: var(--swui-checkbox-border-hover-color)}._checkbox_1ndou_1:focus-visible{outline:var(--swui-focus-outline)}._checkbox_1ndou_1+label{font-size:1.4rem;line-height:var(--swui-checkbox-height);display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}._radiobutton_foy83_1{--swui-radiobutton-size-standard: var(--swui-field-box-size-medium);--swui-radiobutton-size-small: var(--swui-field-box-size-small);--swui-radiobutton-animation-time: var(--swui-animation-time-medium);--swui-radiobutton-icon-color: var(--swui-field-indicator-active-color);--swui-radiobutton-disabled-icon-color: var(--swui-field-text-color-disabled);--swui-radiobutton-unchecked-icon-color: var( --swui-field-indicator-inactive-color );--swui-radiobutton-checked-bg-color: var(--lhds-color-blue-500);--swui-radiobutton-checked-disabled-bg-color: var(--swui-field-bg-disabled);--swui-radiobutton-unchecked-bg-color: var(--swui-white);--swui-radiobutton-unchecked-disabled-bg-color: var(--swui-field-bg-disabled);--swui-radiobutton-unchecked-border-color: var(--swui-field-border-color);--swui-radiobutton-unchecked-hover-border-color: var( --swui-field-border-color-hover );--swui-radiobutton-disabled-border-color: var( --swui-radiobutton-checked-disabled-bg-color );-webkit-appearance:none;-moz-appearance:none;outline:none;display:inline-block;vertical-align:top;position:relative;margin:0;flex:none;cursor:pointer;border:1px solid var(--current-border-color, var(--swui-radiobutton-unchecked-border-color));border-radius:50%;background:var( --current-bg-color, var(--swui-radiobutton-unchecked-bg-color) );transition:background var(--swui-radiobutton-animation-time),border-color var(--swui-radiobutton-animation-time)}._radiobutton_foy83_1._standard_foy83_45{height:var(--swui-radiobutton-size-standard);width:var(--swui-radiobutton-size-standard)}._radiobutton_foy83_1._standard_foy83_45:after{left:7px;top:7px}._radiobutton_foy83_1._small_foy83_55{height:var(--swui-radiobutton-size-small);width:var(--swui-radiobutton-size-small)}._radiobutton_foy83_1._small_foy83_55:after{left:3px;top:3px}._radiobutton_foy83_1:after{content:"";display:block;position:absolute;transition:transform var(--current-transform-time, var(--swui-radiobutton-animation-time)) var(--current-transform-type, ease),opacity var(--current-opacity-time, var(--swui-radiobutton-animation-time)) var(--current-transform-type, ease);transform:scale(var(--current-scale, 0));width:8px;height:8px;border-radius:50%;background:var( --current-icon-color, var(--swui-radiobutton-unchecked-icon-color) );opacity:var(--current-opacity, 0)}._radiobutton_foy83_1:checked{--current-bg-color: var(--swui-radiobutton-checked-bg-color);--current-border-color: var(--swui-radiobutton-checked-bg-color);--current-opacity-time: var(--swui-radiobutton-animation-time);--current-transform-time: .6s;--current-transform-type: cubic-bezier(.2, .85, .32, 1.2);--current-opacity: 1;--current-scale: 1}._radiobutton_foy83_1:checked:after{--current-icon-color: var(--swui-radiobutton-icon-color)}._radiobutton_foy83_1:disabled{--current-bg-color: var(--swui-radiobutton-unchecked-disabled-bg-color);--current-border-color: var(--swui-radiobutton-disabled-border-color)}._radiobutton_foy83_1:disabled:checked{--current-bg-color: var(--swui-radiobutton-checked-disabled-bg-color)}._radiobutton_foy83_1:disabled:checked:after{--current-icon-color: var(--swui-radiobutton-disabled-icon-color)}._radiobutton_foy83_1:hover:not(:checked):not(:disabled){--current-border-color: var( --swui-radiobutton-unchecked-hover-border-color )}._radiobutton_foy83_1:focus-visible{outline:var(--swui-focus-outline)}._radiobutton_foy83_1+label{font-size:1.4rem;line-height:var(--swui-radiobutton-size-standard);display:inline-block;vertical-align:top;cursor:pointer;margin-left:4px}._radioButtonBox_vpn6v_1{box-sizing:border-box;background-color:var(--lhds-color-ui-200);position:relative;border:1px solid var(--silver-ui);width:100%;border-radius:16px;padding:var(--swui-metrics-space);font-size:var(--swui-font-size-inputs);align-items:center;display:flex;cursor:pointer;outline:none}._radioButtonBox_vpn6v_1:hover{border-color:var(--hav)}._radioButtonBox_vpn6v_1._danger_vpn6v_19{background-color:var(--snackskal-light);border-color:var(--snackskal-light)}._radioButtonBox_vpn6v_1._danger_vpn6v_19:hover{border-color:var(--lhds-color-red-500)}@media (max-width: 768px){._radioButtonWrapper_vpn6v_30{width:100%}}._textInput_1jb3g_1{display:flex;height:var(--swui-field-height);width:100%;align-items:center;background:var(--swui-field-bg-enabled);border:1px solid var(--swui-field-border-color);border-radius:var(--swui-field-border-radius);outline:none}._textInput_1jb3g_1._textInput_1jb3g_1:focus-within:not(._disabled_1jb3g_11){outline:var(--swui-focus-outline);border-color:transparent}._textInput_1jb3g_1 ._input_1jb3g_16{letter-spacing:var(--swui-field-letter-spacing);line-height:var(--swui-field-text-line-height);width:100%;padding:2px var(--swui-metrics-indent);color:var(--swui-field-text-color);font-size:var(--swui-font-size-inputs);font-family:var(--swui-font-input);font-weight:var(--swui-font-weight-inputs);background:var(--swui-hidden);border:none;min-width:0;margin:0;outline:none}._textInput_1jb3g_1 ._input_1jb3g_16:disabled{color:var(--swui-field-text-color-disabled)}._textInput_1jb3g_1 ._input_1jb3g_16::placeholder{color:var(--swui-field-placeholder-color);font-weight:var(--swui-field-placeholder-font-weight)}._textInput_1jb3g_1 ._input_1jb3g_16:focus::placeholder{opacity:0}._textInput_1jb3g_1 ._input_1jb3g_16::-webkit-calendar-picker-indicator{display:none}._textInput_1jb3g_1 ._icon_1jb3g_49{transition:color var(--swui-animation-time-medium);color:var(--swui-field-icon-color);font-size:var(--swui-field-icon-size)}._textInput_1jb3g_1._standard_1jb3g_59:hover:not(:focus-within):not(._disabled_1jb3g_11),._textInput_1jb3g_1._success_1jb3g_60:hover:not(:focus-within):not(._disabled_1jb3g_11){border-color:var(--swui-field-border-color-hover)}._textInput_1jb3g_1._success_1jb3g_60 ._icon_1jb3g_49{color:var(--swui-state-success-color)}._textInput_1jb3g_1._loading_1jb3g_72{background:var(--swui-state-loading-light-color);border-color:var(--swui-state-loading-color)}._textInput_1jb3g_1._modified_1jb3g_77{background:var(--swui-state-modified-light-color);border-color:var(--swui-state-modified-light-color)}._textInput_1jb3g_1._modified_1jb3g_77 ._icon_1jb3g_49{color:var(--lhds-color-blue-300)}._textInput_1jb3g_1._error_1jb3g_86{background:var(--swui-state-error-light-color);border-color:var(--swui-state-error-light-color)}._textInput_1jb3g_1._error_1jb3g_86 ._icon_1jb3g_49{color:var(--swui-state-error-light-color)}._textInput_1jb3g_1._warning_1jb3g_95{background:var(--swui-state-alert-light-color);border-color:var(--swui-state-alert-light-color)}._textInput_1jb3g_1._warning_1jb3g_95 ._icon_1jb3g_49{color:var(--swui-state-alert-light-color)}._textInput_1jb3g_1._disabled_1jb3g_11{background:var(--swui-field-bg-disabled);border-color:var(--swui-field-bg-disabled)}._textInput_1jb3g_1._textInput_1jb3g_1._hideBorder_1jb3g_109{border:none;box-shadow:none;background:none;outline:none}._textInput_1jb3g_1 ._clickable_1jb3g_116:hover{cursor:pointer}._textInput_1jb3g_1 ._clickable_1jb3g_116:hover ._icon_1jb3g_49{color:var(--swui-primary-action-color)}._numericTextInputInput_1tnr6_1{-moz-appearance:textfield}._numericTextInputInput_1tnr6_1::-webkit-outer-spin-button,._numericTextInputInput_1tnr6_1::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}._labelledSelect_1evxo_1{border:1px solid var(--swui-field-border-color);border-radius:var(--swui-border-radius-large);position:relative;overflow:hidden;cursor:pointer}._labelledSelect_1evxo_1._labelledSelect_1evxo_1._onlyTopBorder_1evxo_8{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._labelledSelect_1evxo_1._onlyBottomBorder_1evxo_14{border-top-left-radius:0;border-top-right-radius:0}._labelledSelect_1evxo_1._error_1evxo_19{border-color:var(--snackskal);background-color:var(--snackskal)}._labelledSelect_1evxo_1._normal_1evxo_24{border-color:var(--swui-field-border-color);background-color:var(--moln)}._labelledSelect_1evxo_1._labelledSelect_1evxo_1:focus-within{border-color:var(--swui-field-border-color-hover);outline:var(--swui-focus-outline);outline-offset:0;z-index:10}._labelledSelect_1evxo_1._labelledSelect_1evxo_1:hover{border-color:var(--swui-field-border-color-hover)}._labelledSelect_1evxo_1 ._label_1evxo_1{display:flex;position:absolute;top:var(--swui-metrics-space);left:calc(var(--swui-metrics-space) * 2);cursor:pointer}._labelledSelect_1evxo_1 ._select_1evxo_48{color:var(--swui-text-primary-color);display:block;margin:0;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:none;font-size:var(--swui-font-size-inputs-large);line-height:1.5;box-sizing:border-box;cursor:pointer;padding:calc(var(--swui-metrics-space) * 5) calc(var(--swui-metrics-space) * 8) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 2)}._labelledSelect_1evxo_1 ._select_1evxo_48._error_1evxo_19{background-color:var(--snackskal)}._labelledSelect_1evxo_1 ._select_1evxo_48._normal_1evxo_24{background-color:var(--moln)}._labelledSelect_1evxo_1 ._iconWrapper_1evxo_73{border-radius:var(--swui-max-border-radius);width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;top:0;bottom:0;right:calc(var(--swui-metrics-space) * 2);margin-top:auto;margin-bottom:auto;padding:0;background:var(--silver-lighter);pointer-events:none}._labelledTextInput_lnht8_1{position:relative;background:var(--moln);overflow:hidden;cursor:text;border:1px solid var(--silver-light);border-radius:var(--swui-border-radius)}._labelledTextInput_lnht8_1 input{outline:none;border:none;margin:0;color:var(--swui-text-primary-color);background-color:transparent;line-height:var(--swui-line-height);width:100%;box-sizing:border-box;cursor:text}._labelledTextInput_lnht8_1._labelledTextInput_lnht8_1._onlyTop_lnht8_21{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}._labelledTextInput_lnht8_1._labelledTextInput_lnht8_1._onlyBottom_lnht8_27{border-top-left-radius:0;border-top-right-radius:0}._labelledTextInput_lnht8_1:focus-within{outline:var(--swui-focus-outline);outline-offset:-1px;border-color:transparent}._labelledTextInput_lnht8_1:hover:not(:focus-within){border-color:var(--hav)}._labelledTextInput_lnht8_1._disabled_lnht8_42{background-color:var(--silver-lighter)}._labelledTextInput_lnht8_1._disabled_lnht8_42 input{color:var(--silver)}._labelledTextInput_lnht8_1._medium_lnht8_50:focus-within{outline-width:2px}._labelledTextInput_lnht8_1._medium_lnht8_50 input{font-size:var(--swui-font-size-inputs);padding:calc(var(--swui-metrics-space) * 4) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 1)}._labelledTextInput_lnht8_1._large_lnht8_62{border-radius:var(--swui-border-radius-large)}._labelledTextInput_lnht8_1._large_lnht8_62:focus-within{outline-width:3px}._labelledTextInput_lnht8_1._large_lnht8_62 input{font-size:var(--swui-font-size-inputs-large);padding:calc(var(--swui-metrics-space) * 5) calc(var(--swui-metrics-space) * 2) calc(var(--swui-metrics-space) * 2)}._labelledTextInput_lnht8_1._error_lnht8_76{border-color:var(--swui-state-error-light-color)}._labelledTextInput_lnht8_1._error_lnht8_76:hover:not(:focus-within){border-color:var(--modern-red)}._labelledTextInput_lnht8_1._error_lnht8_76 input{background-color:var(--swui-state-error-light-color)}._labelledTextInput_lnht8_1 label{display:flex;position:absolute;top:var(--swui-metrics-space);left:calc(var(--swui-metrics-space) * 2);cursor:text}._textArea_6n6nc_1{--swui-textarea-text-color: var(--swui-field-text-color);--swui-textarea-text-color-disabled: var(--swui-field-text-color-disabled);--swui-textarea-letter-spacing: var(--swui-field-letter-spacing);--swui-textarea-line-height: var(--swui-field-text-line-height);--swui-textarea-indent: var(--swui-metrics-indent);--swui-textarea-font-size: var(--swui-font-size-inputs);--swui-textarea-font-family: var(--swui-font-input);--swui-textarea-font-weight: var(--swui-font-weight-inputs);--swui-textarea-placeholder-color: var(--swui-text-disabled-color);--swui-textarea-animation-time: var(--swui-animation-time-medium);--swui-textarea-icon-color: var(--swui-field-border-color-disabled);--swui-textarea-icon-size: var(--swui-field-icon-size);--swui-textarea-icon-color-success: var(--swui-state-success-color);--swui-textarea-bg-loading: var(--swui-state-loading-light-color);--swui-textarea-border-color-loading: var(--swui-state-loading-color);--swui-textarea-bg-modified: var(--swui-state-modified-light-color);--swui-textarea-border-color-modified: var(--swui-state-modified-color);--swui-textarea-bg-warning: var(--swui-state-alert-light-color);--swui-textarea-border-color-warning: var(--swui-state-alert-color);--swui-textarea-bg-error: var(--swui-state-error-light-color);--swui-textarea-border-color-error: var(--swui-state-error-color);--swui-textarea-bg-color: var(--swui-field-bg-enabled);--swui-textarea-bg-color-disabled: var(--swui-field-bg-disabled);--swui-textarea-border-radius: var(--swui-field-border-radius);--swui-textarea-border-color: var(--swui-field-border-color);--swui-textarea-border-color-hover: var(--swui-field-border-color-hover);--swui-textarea-border-color-disabled: var( --swui-field-border-color-disabled );max-width:100%;letter-spacing:var(--swui-textarea-letter-spacing);line-height:var(--swui-textarea-line-height);padding:2px var(--swui-textarea-indent);color:var(--swui-textarea-text-color);font-size:var(--swui-textarea-font-size);font-family:var(--swui-textarea-font-family);font-weight:var(--swui-textarea-font-weight);background:var(--current-bg, var(--swui-textarea-bg-color));border:1px solid var(--current-border-color, var(--swui-textarea-border-color));border-radius:var(--swui-textarea-border-radius);transition:border var(--swui-textarea-animation-time);--current-icon-color: var(--swui-textarea-icon-color)}._textArea_6n6nc_1:focus:not(:focus-visible){outline:none}._textArea_6n6nc_1:focus{--current-border-color: var(--swui-textarea-border-color-hover);--current-bg: var(--swui-textarea-bg-color)}._textArea_6n6nc_1:focus-visible{outline:var(--swui-focus-outline)}._textArea_6n6nc_1:disabled{color:var(--swui-textarea-text-color-disabled);--current-bg: var(--swui-textarea-bg-color-disabled);--current-border-color: var(--swui-textarea-border-color-disabled)}')),document.head.appendChild(o)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("@stenajs-webui/core"),p=require("react"),m=require("classnames"),h=require("@stenajs-webui/elements"),it=require("@fortawesome/react-fontawesome"),L=require("@stenajs-webui/theme");function at(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(n,s,r.get?r:{enumerable:!0,get:()=>t[s]})}}return n.default=t,Object.freeze(n)}const ut=at(p),dt="_knob_1d6s8_56",xt="_filler_1d6s8_61",pt="_checked_1d6s8_75",S={switch:"_switch_1d6s8_1",knob:dt,filler:xt,checked:pt},_t=`${S.switch} ${S.checked}`,P=({value:t,disabled:n,onValueChange:s,className:r,wrapperRef:o,...c})=>e.jsx("div",{className:r,ref:o,children:e.jsxs("button",{type:"button",role:"switch","aria-checked":t,className:t?_t:S.switch,disabled:n,onClick:()=>s&&s(!t),...c,children:[e.jsx("div",{className:S.filler}),e.jsx("div",{className:S.knob})]})}),ft=({label:t,disabled:n,textColor:s,wrapperRef:r,...o})=>e.jsx("div",{ref:r,children:e.jsx("label",{children:e.jsxs(d.Box,{row:!0,alignItems:"center",children:[e.jsx(P,{disabled:n,...o}),e.jsx(d.Space,{}),e.jsx(d.Text,{userSelect:"none",color:s,children:t})]})})}),jt="_checkbox_1ndou_1",bt="_standard_1ndou_39",ht="_small_1ndou_51",H={checkbox:jt,standard:bt,small:ht},O=p.forwardRef(({indeterminate:t=!1,onChange:n,onValueChange:s,value:r=!1,size:o="standard",className:c,...i},a)=>{const l=p.useRef(),j=x=>{l.current=x,l.current&&(l.current.indeterminate=!!t),a&&(typeof a=="function"?a(x):a.current=x)},_=p.useCallback(x=>{n&&n(x),s&&s(x.target.checked)},[n,s]);return p.useEffect(()=>{l.current&&(l.current.indeterminate=!!t)},[t,l]),e.jsx("input",{type:"checkbox",className:m(H.checkbox,H[o],c),checked:r,onChange:_,ref:j,...i})}),mt=({children:t,label:n,inputRef:s,wrapperRef:r,textColor:o,...c})=>e.jsx("div",{ref:r,children:e.jsx("label",{children:e.jsxs(d.Row,{alignItems:"center",children:[e.jsx(O,{...c,ref:s}),e.jsx(d.Space,{}),n&&e.jsx(d.Text,{userSelect:"none",color:o,children:n}),t]})})}),It="_radiobutton_foy83_1",gt="_standard_foy83_45",yt="_small_foy83_55",F={radiobutton:It,standard:gt,small:yt},v=p.forwardRef(({onChange:t,onValueChange:n,size:s="standard",name:r,className:o,...c},i)=>{const a=p.useCallback(l=>{t&&t(l),n&&n(l.target.value)},[t,n]);return e.jsx("input",{type:"radio",name:r,className:m(F.radiobutton,F[s],o),onChange:a,ref:i,...c})}),wt="_radioButtonBox_vpn6v_1",Tt="_danger_vpn6v_19",St="_radioButtonWrapper_vpn6v_30",W={radioButtonBox:wt,danger:Tt,radioButtonWrapper:St},kt=({label:t,screenReaderLabel:n,variant:s="normal",className:r,icon:o,contentRight:c,style:i,radioButtonClassName:a,...l})=>e.jsx("label",{className:m(W.radioButtonBox,W[s],r),style:i,children:e.jsxs(d.Row,{justifyContent:"space-between",flexGrow:1,children:[e.jsxs(d.Row,{alignItems:"center",children:[e.jsx(v,{...l,className:a}),e.jsx(d.Space,{}),n?e.jsx(d.ScreenReaderOnlyText,{children:n}):null,e.jsx(d.Text,{"aria-hidden":!!n,children:t}),o&&e.jsx(d.Row,{alignItems:"center",width:"48px",justifyContent:"center",children:e.jsx(h.Icon,{icon:o,size:24})})]}),e.jsxs(d.Row,{alignItems:"center",width:o?"48px":void 0,justifyContent:"center",children:[o&&e.jsx(h.Icon,{icon:o,size:24}),c]})]})}),Bt=({label:t,inputRef:n,wrapperRef:s,textColor:r,...o})=>e.jsx("div",{ref:s,children:e.jsx("label",{children:e.jsxs(d.Row,{alignItems:"center",children:[e.jsx(v,{ref:n,...o}),e.jsx(d.Space,{}),e.jsx(d.Text,{color:r,userSelect:"none",children:t})]})})}),U=(t,n,s,r,o,c,i,a)=>{const l=p.useRef(!1),j=u=>{l.current||c==null||c(u.target.value??""),i==null||i(u)},_=u=>{l.current=!1,a==null||a(u)};return{onKeyDownHandler:p.useCallback(u=>{const{key:f}=u;if(f==="Enter")l.current=!0,s==null||s(),c==null||c(u.currentTarget.value??"");else if(f==="Escape")l.current=!0,r==null||r(),u.preventDefault(),u.stopPropagation();else if(o){const b=(y,I)=>{l.current=!0,t.current.blur(),o(y),I.preventDefault(),I.stopPropagation()};u.shiftKey&&f==="Tab"?b("left",u):f==="Tab"?b("right",u):f==="ArrowUp"?b("up",u):f==="ArrowDown"?b("down",u):f==="ArrowRight"?t.current.value.length===t.current.selectionStart&&b("right",u):f==="ArrowLeft"&&t.current.selectionStart===0&&b("left",u)}n&&n(u)},[r,o,n,t,s,c]),onBlurHandler:j,onFocusHandler:_}};function M(t){return t.tagName==="TEXTAREA"||t.tagName==="INPUT"&&(t.type==="text"||t.type==="search"||t.type==="url"||t.type==="tel"||t.type==="password")}const q=(t,n,s)=>{p.useEffect(()=>{t.current&&M(t.current)&&(s?t.current.setSelectionRange(0,t.current.value.length):n&&t.current.setSelectionRange(t.current.value.length,t.current.value.length))},[n,t,s])},K=(t,{onEnter:n,onEsc:s,onChange:r,onValueChange:o,selectAllOnMount:c,moveCursorToEndOnMount:i,onDone:a,onMove:l,onFocus:j,onBlur:_,onKeyDown:x,autoFocus:u})=>{q(t,!!i,!!c);const{onKeyDownHandler:f,onFocusHandler:b,onBlurHandler:y}=U(t,x,n,s,l,a,_,j),I=p.useCallback(k=>{r==null||r(k),o==null||o(k.target.value)},[r,o]);return{onBlur:y,onChange:I,onFocus:b,onKeyDown:f,autoFocus:c||u}},Rt="_textInput_1jb3g_1",vt="_disabled_1jb3g_11",Nt="_input_1jb3g_16",At="_icon_1jb3g_49",$t="_standard_1jb3g_59",Ht="_success_1jb3g_60",Ft="_loading_1jb3g_72",Wt="_modified_1jb3g_77",Lt="_error_1jb3g_86",Pt="_warning_1jb3g_95",Ot="_hideBorder_1jb3g_109",Ut="_clickable_1jb3g_116",g={textInput:Rt,disabled:vt,input:Nt,icon:At,standard:$t,success:Ht,loading:Ft,modified:Wt,error:Lt,warning:Pt,hideBorder:Ot,clickable:Ut},B=({button:t,icon:n,iconClassName:s,content:r,spaceOnLeft:o,spaceOnRight:c,disableContentPadding:i,disableContentPaddingLeft:a,disableContentPaddingRight:l})=>!r&&!n&&!t?null:t?e.jsxs(e.Fragment,{children:[o?e.jsx(d.Space,{num:.25}):null,t,c?e.jsx(d.Space,{num:.25}):null]}):r?e.jsxs(e.Fragment,{children:[o&&!(i||a)?e.jsx(d.Space,{}):null,r||null,c&&!(i||l)?e.jsx(d.Space,{}):null]}):e.jsxs(e.Fragment,{children:[o?e.jsx(d.Space,{}):null,n&&e.jsx(it.FontAwesomeIcon,{icon:n,className:m(g.icon,s)}),c?e.jsx(d.Space,{}):null]}),N=t=>{const{variant:n="standard",inputRef:s,disabled:r,className:o,buttonLeft:c,buttonRight:i,contentLeft:a,contentRight:l,disableContentPadding:j,disableContentPaddingLeft:_,disableContentPaddingRight:x,iconLeft:u,iconRight:f,moveCursorToEndOnMount:b,selectAllOnMount:y,autoFocus:I,onValueChange:k,wrapperClassName:D,wrapperStyle:G,onDone:X,onEnter:J,onEsc:Q,onMove:Y,onChange:Z,onKeyDown:V,hideBorder:tt,onFocus:et,onBlur:nt,...st}=t,rt=p.useRef(null),$=s??rt,ot=K($,{onEnter:J,onEsc:Q,onChange:Z,onValueChange:k,selectAllOnMount:y,moveCursorToEndOnMount:b,onDone:X,onMove:Y,onFocus:et,onBlur:nt,onKeyDown:V,autoFocus:I}),ct=n==="success"?h.stenaCheck:n==="warning"||n==="error"?h.stenaExclamationTriangle:f,lt=n==="loading"?e.jsx(h.InputSpinner,{}):l;return e.jsxs("div",{className:m(g.textInput,g[n],{[g.disabled]:r},{[g.hideBorder]:tt},D),style:G,children:[e.jsx(B,{content:a,disableContentPadding:j,disableContentPaddingLeft:_,disableContentPaddingRight:x,icon:u,spaceOnLeft:!0,button:c}),e.jsx("input",{className:m(g.input,o),type:"text",disabled:r,ref:$,autoFocus:I,...st,...ot}),e.jsx(B,{content:lt,disableContentPadding:j,disableContentPaddingLeft:_,disableContentPaddingRight:x,icon:ct,spaceOnRight:!0,button:i})]})},Mt="_numericTextInputInput_1tnr6_1",qt={numericTextInputInput:Mt},z=({onValueChange:t,value:n,numSteps:s,min:r,max:o})=>{if(t)if(!n)t(String(R(s,r,o)));else{const i=(d.parseFloatElseUndefined(n)||0)+s;t(String(R(i,r,o)))}},E=({onValueChange:t,newValue:n,min:s,max:r})=>{if(t)if(n==="")t("");else{const c=d.parseFloatElseUndefined(n)||0;t(String(R(c,s,r)))}},R=(t,n,s)=>{let r=t;return n!=null&&(r=Math.max(n,r)),s!=null&&(r=Math.min(s,r)),r},Kt=({value:t,onValueChange:n,max:s,min:r,step:o=1,contentRight:c,disabled:i,className:a,hideButtons:l,...j})=>{const _=p.useCallback(f=>{z({onValueChange:n,value:t,numSteps:f,min:r,max:s})},[t,s,r,n]),x=p.useCallback(f=>{E({onValueChange:n,newValue:f,min:r,max:s})},[s,r,n]),u=l?c:e.jsxs(e.Fragment,{children:[c&&e.jsxs(e.Fragment,{children:[c,e.jsx(d.Space,{})]}),e.jsx(h.UpDownButtons,{onClickUp:i?void 0:()=>_(o),onClickDown:i?void 0:()=>_(-o),iconColor:"var(--swui-textinput-text-color)",disabled:i})]});return e.jsx(N,{contentRight:u,value:t,onValueChange:x,disableContentPaddingRight:!l,type:"number",min:r,max:s,step:o,className:m(qt.numericTextInputInput,a),disabled:i,...j})},zt=(t,n)=>{const s=p.useCallback(o=>{if(n)if(!o)n(void 0);else{const c=d.parseFloatElseUndefined(o);c!==void 0&&n(c)}},[n]),r=p.useMemo(()=>t===void 0?"":String(t),[t]);return{onValueChange:s,value:r}},Et=({hiddenIcon:t=h.stenaEyeShow,visibleIcon:n=h.stenaEyeHide,...s})=>{const[r,o]=p.useState(!0);return e.jsx(N,{buttonRight:e.jsx(h.TextInputButton,{icon:r?t:n,onClick:()=>o(c=>!c)}),type:r?"password":"text",...s})},C=({disabled:t,text:n,...s})=>e.jsx(d.Text,{variant:"bold",color:L.cssColor(t?"--silver":"--tjara"),size:"small",...d.getDataProps(s),children:n}),A=({htmlFor:t,screenReaderLabel:n,label:s,disabled:r,className:o})=>e.jsxs("label",{htmlFor:t,className:o,children:[n?e.jsx(d.ScreenReaderOnlyText,{children:n}):null,e.jsx(C,{"aria-hidden":!!n,text:s,disabled:r})]}),Ct="_labelledSelect_1evxo_1",Dt="_onlyTopBorder_1evxo_8",Gt="_onlyBottomBorder_1evxo_14",Xt="_error_1evxo_19",Jt="_normal_1evxo_24",Qt="_label_1evxo_1",Yt="_select_1evxo_48",Zt="_iconWrapper_1evxo_73",w={labelledSelect:Ct,onlyTopBorder:Dt,onlyBottomBorder:Gt,error:Xt,normal:Jt,label:Qt,select:Yt,iconWrapper:Zt},Vt=({onChange:t,onValueChange:n,id:s,label:r,screenReaderLabel:o,borderVariant:c="normalBorder",variant:i="normal",children:a,...l})=>{const j=p.useId(),_=s??j,x=p.useCallback(u=>{t==null||t(u),n==null||n(u.target.value)},[t,n]);return e.jsxs("div",{className:m(w.labelledSelect,w[i],w[c]),children:[e.jsx(A,{htmlFor:_,className:w.label,label:r,screenReaderLabel:o}),e.jsx("select",{id:_,onChange:x,className:m(w.select,w[i]),...l,children:a}),e.jsx("div",{className:m(w.iconWrapper),children:e.jsx(h.Icon,{icon:h.stenaAngleDown,size:24,color:L.cssColor("--modern-blue")})})]})},te="_labelledTextInput_lnht8_1",ee="_onlyTop_lnht8_21",ne="_onlyBottom_lnht8_27",se="_disabled_lnht8_42",re="_medium_lnht8_50",oe="_large_lnht8_62",ce="_error_lnht8_76",T={labelledTextInput:te,onlyTop:ee,onlyBottom:ne,disabled:se,medium:re,large:oe,error:ce},le=ut.forwardRef(({autoComplete:t="off",label:n,id:s,screenReaderLabel:r,size:o="medium",value:c,onChange:i,disabled:a,onValueChange:l,borderRadiusVariant:j="normalBorder",variant:_="normal",...x},u)=>{const f=p.useId(),b=s??f,y=p.useCallback(I=>{i==null||i(I),l==null||l(I.target.value)},[i,l]);return e.jsxs("div",{className:m(T.labelledTextInput,T[_],T[j],T[o],a&&T.disabled),children:[e.jsx(A,{htmlFor:b,screenReaderLabel:r,label:n}),e.jsx("input",{ref:u,id:b,autoComplete:t,type:"text",value:c,onChange:y,disabled:a,...x})]})}),ie=({variant:t="standard",disabled:n,wrapperClassName:s,wrapperStyle:r,contentLeft:o,contentRight:c,disableContentPadding:i,disableContentPaddingLeft:a,disableContentPaddingRight:l,iconRight:j,iconLeft:_,onClickLeft:x,onClickRight:u,children:f})=>{const b=t==="success"?h.stenaCheck:t==="warning"||t==="error"?h.stenaExclamationTriangle:j,y=t==="loading"?e.jsx(h.InputSpinner,{}):c;return e.jsxs("div",{className:m(g.textInput,g.inputContainer,g[t],{[g.disabled]:n},s),style:r,children:[e.jsx(B,{content:o,disableContentPadding:i,disableContentPaddingLeft:a,disableContentPaddingRight:l,spaceOnLeft:!0,button:_?e.jsx(h.TextInputButton,{onClick:x,icon:_}):void 0}),e.jsx(d.Row,{alignItems:"center",children:f}),e.jsx(B,{content:y,disableContentPadding:i,disableContentPaddingLeft:a,disableContentPaddingRight:l,spaceOnRight:!0,button:b?e.jsx(h.TextInputButton,{onClick:u,icon:b}):void 0})]})},ae="_textArea_6n6nc_1",ue={textArea:ae},de=p.forwardRef(({className:t,value:n,onValueChange:s,onChange:r,resize:o="none",readOnly:c=!1,rows:i,disabled:a,...l},j)=>{const _=p.useCallback(x=>{r&&r(x),s&&s(x.target.value)},[r,s]);return e.jsx("textarea",{disabled:a,rows:i,readOnly:c,className:m(ue.textArea,t),style:{resize:o},onChange:_,value:n,ref:j,...l})});exports.Checkbox=O;exports.CheckboxWithLabel=mt;exports.InputLabel=A;exports.InputLabelText=C;exports.LabelledSelect=Vt;exports.LabelledTextInput=le;exports.NumericTextInput=Kt;exports.PasswordInput=Et;exports.RadioButton=v;exports.RadioButtonBox=kt;exports.RadioButtonWithLabel=Bt;exports.Switch=P;exports.SwitchWithLabel=ft;exports.TextArea=de;exports.TextInput=N;exports.TextInputBox=ie;exports.elementHasSelectionRange=M;exports.onStepValueChange=z;exports.onTextValueChange=E;exports.useKeyboardNavigation=U;exports.useNumericInputValue=zt;exports.useSelectAllOnMount=q;exports.useTextInput=K;
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),d=require("@stenajs-webui/core"),p=require("react"),m=require("classnames"),h=require("@stenajs-webui/elements"),at=require("@fortawesome/react-fontawesome"),L=require("@stenajs-webui/theme");function it(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,r.get?r:{enumerable:!0,get:()=>t[s]})}}return e.default=t,Object.freeze(e)}const ut=it(p),dt="_knob_1d6s8_56",xt="_filler_1d6s8_61",pt="_checked_1d6s8_75",S={switch:"_switch_1d6s8_1",knob:dt,filler:xt,checked:pt},_t=`${S.switch} ${S.checked}`,P=({value:t,disabled:e,onValueChange:s,className:r,wrapperRef:o,...c})=>n.jsx("div",{className:r,ref:o,children:n.jsxs("button",{type:"button",role:"switch","aria-checked":t,className:t?_t:S.switch,disabled:e,onClick:()=>s&&s(!t),...c,children:[n.jsx("div",{className:S.filler}),n.jsx("div",{className:S.knob})]})}),ft=({label:t,disabled:e,textColor:s,wrapperRef:r,...o})=>n.jsx("div",{ref:r,children:n.jsx("label",{children:n.jsxs(d.Box,{row:!0,alignItems:"center",children:[n.jsx(P,{disabled:e,...o}),n.jsx(d.Space,{}),n.jsx(d.Text,{userSelect:"none",color:s,children:t})]})})}),bt="_checkbox_1ndou_1",jt="_standard_1ndou_39",ht="_small_1ndou_51",H={checkbox:bt,standard:jt,small:ht},O=p.forwardRef(({indeterminate:t=!1,onChange:e,onValueChange:s,value:r=!1,size:o="standard",className:c,...a},i)=>{const l=p.useRef(),b=x=>{l.current=x,l.current&&(l.current.indeterminate=!!t),i&&(typeof i=="function"?i(x):i.current=x)},_=p.useCallback(x=>{e&&e(x),s&&s(x.target.checked)},[e,s]);return p.useEffect(()=>{l.current&&(l.current.indeterminate=!!t)},[t,l]),n.jsx("input",{type:"checkbox",className:m(H.checkbox,H[o],c),checked:r,onChange:_,ref:b,...a})}),mt=({children:t,label:e,inputRef:s,wrapperRef:r,textColor:o,...c})=>n.jsx("div",{ref:r,children:n.jsx("label",{children:n.jsxs(d.Row,{alignItems:"center",children:[n.jsx(O,{...c,ref:s}),n.jsx(d.Space,{}),e&&n.jsx(d.Text,{userSelect:"none",color:o,children:e}),t]})})}),It="_radiobutton_foy83_1",gt="_standard_foy83_45",yt="_small_foy83_55",F={radiobutton:It,standard:gt,small:yt},v=p.forwardRef(({onChange:t,onValueChange:e,size:s="standard",name:r,className:o,...c},a)=>{const i=p.useCallback(l=>{t&&t(l),e&&e(l.target.value)},[t,e]);return n.jsx("input",{type:"radio",name:r,className:m(F.radiobutton,F[s],o),onChange:i,ref:a,...c})}),wt="_radioButtonBox_vpn6v_1",Tt="_danger_vpn6v_19",St="_radioButtonWrapper_vpn6v_30",W={radioButtonBox:wt,danger:Tt,radioButtonWrapper:St},kt=({label:t,screenReaderLabel:e,variant:s="normal",className:r,icon:o,contentRight:c,style:a,radioButtonClassName:i,...l})=>n.jsx("label",{className:m(W.radioButtonBox,W[s],r),style:a,children:n.jsxs(d.Row,{justifyContent:"space-between",flexGrow:1,children:[n.jsxs(d.Row,{alignItems:"center",children:[n.jsx(v,{...l,className:i}),n.jsx(d.Space,{}),e?n.jsx(d.ScreenReaderOnlyText,{children:e}):null,n.jsx(d.Text,{"aria-hidden":!!e,children:t})]}),n.jsxs(d.Row,{alignItems:"center",width:o?"48px":void 0,justifyContent:"center",children:[o&&n.jsx(h.Icon,{icon:o,size:24}),!o&&c]})]})}),Bt=({label:t,inputRef:e,wrapperRef:s,textColor:r,...o})=>n.jsx("div",{ref:s,children:n.jsx("label",{children:n.jsxs(d.Row,{alignItems:"center",children:[n.jsx(v,{ref:e,...o}),n.jsx(d.Space,{}),n.jsx(d.Text,{color:r,userSelect:"none",children:t})]})})}),U=(t,e,s,r,o,c,a,i)=>{const l=p.useRef(!1),b=u=>{l.current||c==null||c(u.target.value??""),a==null||a(u)},_=u=>{l.current=!1,i==null||i(u)};return{onKeyDownHandler:p.useCallback(u=>{const{key:f}=u;if(f==="Enter")l.current=!0,s==null||s(),c==null||c(u.currentTarget.value??"");else if(f==="Escape")l.current=!0,r==null||r(),u.preventDefault(),u.stopPropagation();else if(o){const j=(y,I)=>{l.current=!0,t.current.blur(),o(y),I.preventDefault(),I.stopPropagation()};u.shiftKey&&f==="Tab"?j("left",u):f==="Tab"?j("right",u):f==="ArrowUp"?j("up",u):f==="ArrowDown"?j("down",u):f==="ArrowRight"?t.current.value.length===t.current.selectionStart&&j("right",u):f==="ArrowLeft"&&t.current.selectionStart===0&&j("left",u)}e&&e(u)},[r,o,e,t,s,c]),onBlurHandler:b,onFocusHandler:_}};function M(t){return t.tagName==="TEXTAREA"||t.tagName==="INPUT"&&(t.type==="text"||t.type==="search"||t.type==="url"||t.type==="tel"||t.type==="password")}const q=(t,e,s)=>{p.useEffect(()=>{t.current&&M(t.current)&&(s?t.current.setSelectionRange(0,t.current.value.length):e&&t.current.setSelectionRange(t.current.value.length,t.current.value.length))},[e,t,s])},K=(t,{onEnter:e,onEsc:s,onChange:r,onValueChange:o,selectAllOnMount:c,moveCursorToEndOnMount:a,onDone:i,onMove:l,onFocus:b,onBlur:_,onKeyDown:x,autoFocus:u})=>{q(t,!!a,!!c);const{onKeyDownHandler:f,onFocusHandler:j,onBlurHandler:y}=U(t,x,e,s,l,i,_,b),I=p.useCallback(k=>{r==null||r(k),o==null||o(k.target.value)},[r,o]);return{onBlur:y,onChange:I,onFocus:j,onKeyDown:f,autoFocus:c||u}},Rt="_textInput_1jb3g_1",vt="_disabled_1jb3g_11",Nt="_input_1jb3g_16",At="_icon_1jb3g_49",$t="_standard_1jb3g_59",Ht="_success_1jb3g_60",Ft="_loading_1jb3g_72",Wt="_modified_1jb3g_77",Lt="_error_1jb3g_86",Pt="_warning_1jb3g_95",Ot="_hideBorder_1jb3g_109",Ut="_clickable_1jb3g_116",g={textInput:Rt,disabled:vt,input:Nt,icon:At,standard:$t,success:Ht,loading:Ft,modified:Wt,error:Lt,warning:Pt,hideBorder:Ot,clickable:Ut},B=({button:t,icon:e,iconClassName:s,content:r,spaceOnLeft:o,spaceOnRight:c,disableContentPadding:a,disableContentPaddingLeft:i,disableContentPaddingRight:l})=>!r&&!e&&!t?null:t?n.jsxs(n.Fragment,{children:[o?n.jsx(d.Space,{num:.25}):null,t,c?n.jsx(d.Space,{num:.25}):null]}):r?n.jsxs(n.Fragment,{children:[o&&!(a||i)?n.jsx(d.Space,{}):null,r||null,c&&!(a||l)?n.jsx(d.Space,{}):null]}):n.jsxs(n.Fragment,{children:[o?n.jsx(d.Space,{}):null,e&&n.jsx(at.FontAwesomeIcon,{icon:e,className:m(g.icon,s)}),c?n.jsx(d.Space,{}):null]}),N=t=>{const{variant:e="standard",inputRef:s,disabled:r,className:o,buttonLeft:c,buttonRight:a,contentLeft:i,contentRight:l,disableContentPadding:b,disableContentPaddingLeft:_,disableContentPaddingRight:x,iconLeft:u,iconRight:f,moveCursorToEndOnMount:j,selectAllOnMount:y,autoFocus:I,onValueChange:k,wrapperClassName:D,wrapperStyle:G,onDone:X,onEnter:J,onEsc:Q,onMove:Y,onChange:Z,onKeyDown:V,hideBorder:tt,onFocus:et,onBlur:nt,...st}=t,rt=p.useRef(null),$=s??rt,ot=K($,{onEnter:J,onEsc:Q,onChange:Z,onValueChange:k,selectAllOnMount:y,moveCursorToEndOnMount:j,onDone:X,onMove:Y,onFocus:et,onBlur:nt,onKeyDown:V,autoFocus:I}),ct=e==="success"?h.stenaCheck:e==="warning"||e==="error"?h.stenaExclamationTriangle:f,lt=e==="loading"?n.jsx(h.InputSpinner,{}):l;return n.jsxs("div",{className:m(g.textInput,g[e],{[g.disabled]:r},{[g.hideBorder]:tt},D),style:G,children:[n.jsx(B,{content:i,disableContentPadding:b,disableContentPaddingLeft:_,disableContentPaddingRight:x,icon:u,spaceOnLeft:!0,button:c}),n.jsx("input",{className:m(g.input,o),type:"text",disabled:r,ref:$,autoFocus:I,...st,...ot}),n.jsx(B,{content:lt,disableContentPadding:b,disableContentPaddingLeft:_,disableContentPaddingRight:x,icon:ct,spaceOnRight:!0,button:a})]})},Mt="_numericTextInputInput_1tnr6_1",qt={numericTextInputInput:Mt},E=({onValueChange:t,value:e,numSteps:s,min:r,max:o})=>{if(t)if(!e)t(String(R(s,r,o)));else{const a=(d.parseFloatElseUndefined(e)||0)+s;t(String(R(a,r,o)))}},z=({onValueChange:t,newValue:e,min:s,max:r})=>{if(t)if(e==="")t("");else{const c=d.parseFloatElseUndefined(e)||0;t(String(R(c,s,r)))}},R=(t,e,s)=>{let r=t;return e!=null&&(r=Math.max(e,r)),s!=null&&(r=Math.min(s,r)),r},Kt=({value:t,onValueChange:e,max:s,min:r,step:o=1,contentRight:c,disabled:a,className:i,hideButtons:l,...b})=>{const _=p.useCallback(f=>{E({onValueChange:e,value:t,numSteps:f,min:r,max:s})},[t,s,r,e]),x=p.useCallback(f=>{z({onValueChange:e,newValue:f,min:r,max:s})},[s,r,e]),u=l?c:n.jsxs(n.Fragment,{children:[c&&n.jsxs(n.Fragment,{children:[c,n.jsx(d.Space,{})]}),n.jsx(h.UpDownButtons,{onClickUp:a?void 0:()=>_(o),onClickDown:a?void 0:()=>_(-o),iconColor:"var(--swui-textinput-text-color)",disabled:a})]});return n.jsx(N,{contentRight:u,value:t,onValueChange:x,disableContentPaddingRight:!l,type:"number",min:r,max:s,step:o,className:m(qt.numericTextInputInput,i),disabled:a,...b})},Et=(t,e)=>{const s=p.useCallback(o=>{if(e)if(!o)e(void 0);else{const c=d.parseFloatElseUndefined(o);c!==void 0&&e(c)}},[e]),r=p.useMemo(()=>t===void 0?"":String(t),[t]);return{onValueChange:s,value:r}},zt=({hiddenIcon:t=h.stenaEyeShow,visibleIcon:e=h.stenaEyeHide,...s})=>{const[r,o]=p.useState(!0);return n.jsx(N,{buttonRight:n.jsx(h.TextInputButton,{icon:r?t:e,onClick:()=>o(c=>!c)}),type:r?"password":"text",...s})},C=({disabled:t,text:e,...s})=>n.jsx(d.Text,{variant:"bold",color:L.cssColor(t?"--silver":"--tjara"),size:"small",...d.getDataProps(s),children:e}),A=({htmlFor:t,screenReaderLabel:e,label:s,disabled:r,className:o})=>n.jsxs("label",{htmlFor:t,className:o,children:[e?n.jsx(d.ScreenReaderOnlyText,{children:e}):null,n.jsx(C,{"aria-hidden":!!e,text:s,disabled:r})]}),Ct="_labelledSelect_1evxo_1",Dt="_onlyTopBorder_1evxo_8",Gt="_onlyBottomBorder_1evxo_14",Xt="_error_1evxo_19",Jt="_normal_1evxo_24",Qt="_label_1evxo_1",Yt="_select_1evxo_48",Zt="_iconWrapper_1evxo_73",w={labelledSelect:Ct,onlyTopBorder:Dt,onlyBottomBorder:Gt,error:Xt,normal:Jt,label:Qt,select:Yt,iconWrapper:Zt},Vt=({onChange:t,onValueChange:e,id:s,label:r,screenReaderLabel:o,borderVariant:c="normalBorder",variant:a="normal",children:i,...l})=>{const b=p.useId(),_=s??b,x=p.useCallback(u=>{t==null||t(u),e==null||e(u.target.value)},[t,e]);return n.jsxs("div",{className:m(w.labelledSelect,w[a],w[c]),children:[n.jsx(A,{htmlFor:_,className:w.label,label:r,screenReaderLabel:o}),n.jsx("select",{id:_,onChange:x,className:m(w.select,w[a]),...l,children:i}),n.jsx("div",{className:m(w.iconWrapper),children:n.jsx(h.Icon,{icon:h.stenaAngleDown,size:24,color:L.cssColor("--modern-blue")})})]})},te="_labelledTextInput_lnht8_1",ee="_onlyTop_lnht8_21",ne="_onlyBottom_lnht8_27",se="_disabled_lnht8_42",re="_medium_lnht8_50",oe="_large_lnht8_62",ce="_error_lnht8_76",T={labelledTextInput:te,onlyTop:ee,onlyBottom:ne,disabled:se,medium:re,large:oe,error:ce},le=ut.forwardRef(({autoComplete:t="off",label:e,id:s,screenReaderLabel:r,size:o="medium",value:c,onChange:a,disabled:i,onValueChange:l,borderRadiusVariant:b="normalBorder",variant:_="normal",...x},u)=>{const f=p.useId(),j=s??f,y=p.useCallback(I=>{a==null||a(I),l==null||l(I.target.value)},[a,l]);return n.jsxs("div",{className:m(T.labelledTextInput,T[_],T[b],T[o],i&&T.disabled),children:[n.jsx(A,{htmlFor:j,screenReaderLabel:r,label:e}),n.jsx("input",{ref:u,id:j,autoComplete:t,type:"text",value:c,onChange:y,disabled:i,...x})]})}),ae=({variant:t="standard",disabled:e,wrapperClassName:s,wrapperStyle:r,contentLeft:o,contentRight:c,disableContentPadding:a,disableContentPaddingLeft:i,disableContentPaddingRight:l,iconRight:b,iconLeft:_,onClickLeft:x,onClickRight:u,children:f})=>{const j=t==="success"?h.stenaCheck:t==="warning"||t==="error"?h.stenaExclamationTriangle:b,y=t==="loading"?n.jsx(h.InputSpinner,{}):c;return n.jsxs("div",{className:m(g.textInput,g.inputContainer,g[t],{[g.disabled]:e},s),style:r,children:[n.jsx(B,{content:o,disableContentPadding:a,disableContentPaddingLeft:i,disableContentPaddingRight:l,spaceOnLeft:!0,button:_?n.jsx(h.TextInputButton,{onClick:x,icon:_}):void 0}),n.jsx(d.Row,{alignItems:"center",children:f}),n.jsx(B,{content:y,disableContentPadding:a,disableContentPaddingLeft:i,disableContentPaddingRight:l,spaceOnRight:!0,button:j?n.jsx(h.TextInputButton,{onClick:u,icon:j}):void 0})]})},ie="_textArea_6n6nc_1",ue={textArea:ie},de=p.forwardRef(({className:t,value:e,onValueChange:s,onChange:r,resize:o="none",readOnly:c=!1,rows:a,disabled:i,...l},b)=>{const _=p.useCallback(x=>{r&&r(x),s&&s(x.target.value)},[r,s]);return n.jsx("textarea",{disabled:i,rows:a,readOnly:c,className:m(ue.textArea,t),style:{resize:o},onChange:_,value:e,ref:b,...l})});exports.Checkbox=O;exports.CheckboxWithLabel=mt;exports.InputLabel=A;exports.InputLabelText=C;exports.LabelledSelect=Vt;exports.LabelledTextInput=le;exports.NumericTextInput=Kt;exports.PasswordInput=zt;exports.RadioButton=v;exports.RadioButtonBox=kt;exports.RadioButtonWithLabel=Bt;exports.Switch=P;exports.SwitchWithLabel=ft;exports.TextArea=de;exports.TextInput=N;exports.TextInputBox=ae;exports.elementHasSelectionRange=M;exports.onStepValueChange=E;exports.onTextValueChange=z;exports.useKeyboardNavigation=U;exports.useNumericInputValue=Et;exports.useSelectAllOnMount=q;exports.useTextInput=K;
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/ui/switch/Switch.tsx","../src/components/ui/switch/SwitchWithLabel.tsx","../src/components/ui/checkbox/Checkbox.tsx","../src/components/ui/checkbox/CheckboxWithLabel.tsx","../src/components/ui/radio/RadioButton.tsx","../src/components/ui/radio/RadioButtonBox.tsx","../src/components/ui/radio/RadioButtonWithLabel.tsx","../src/hooks/UseKeyboardNavigation.ts","../src/hooks/UseSelectAllOnMount.ts","../src/hooks/UseTextInput.ts","../src/components/ui/text-input/TextInputIcon.tsx","../src/components/ui/text-input/TextInput.tsx","../src/utils/NumericHelpers.ts","../src/components/ui/numeric-text-input/NumericTextInput.tsx","../src/components/ui/numeric-text-input/hooks/UseNumericInputValue.ts","../src/components/ui/password-input/PasswordInput.tsx","../src/components/ui/input-label/InputLabelText.tsx","../src/components/ui/input-label/InputLabel.tsx","../src/components/ui/labelled-select/LabelledSelect.tsx","../src/components/ui/labelled-text-input/LabelledTextInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["import { Ref } from \"react\";\nimport * as React from \"react\";\nimport { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport styles from \"./Switch.module.css\";\n\nexport interface SwitchProps\n extends Omit<ButtonElementProps, \"value\">,\n ValueAndOnValueChangeProps<boolean> {\n wrapperRef?: Ref<HTMLDivElement>;\n}\n\nconst styleChecked = `${styles.switch} ${styles.checked}`;\n\nexport const Switch: React.FC<SwitchProps> = ({\n value,\n disabled,\n onValueChange,\n className,\n wrapperRef,\n ...restProps\n}) => {\n return (\n <div className={className} ref={wrapperRef}>\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n className={value ? styleChecked : styles.switch}\n disabled={disabled}\n onClick={() => onValueChange && onValueChange(!value)}\n {...restProps}\n >\n <div className={styles.filler} />\n <div className={styles.knob} />\n </button>\n </div>\n );\n};\n","import { Box, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Switch, SwitchProps } from \"./Switch\";\n\nexport interface SwitchWithLabelProps extends SwitchProps {\n label: string;\n textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n </Box>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n MutableRefObject,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport cx from \"classnames\";\nimport styles from \"./Checkbox.module.css\";\n\nexport type CheckboxSize = \"standard\" | \"small\";\n\nexport interface CheckboxProps\n extends FullOnChangeProps<boolean, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n indeterminate?: boolean;\n size?: CheckboxSize;\n disabled?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n indeterminate = false,\n onChange,\n onValueChange,\n value = false,\n size = \"standard\",\n className,\n ...inputProps\n },\n ref\n ) => {\n const localRef = useRef<HTMLInputElement>();\n\n const setRef = (element: HTMLInputElement) => {\n localRef.current = element;\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n if (ref) {\n if (typeof ref === \"function\") {\n ref(element);\n } else {\n (ref as MutableRefObject<HTMLInputElement>).current = element;\n }\n }\n };\n\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.checked);\n }\n },\n [onChange, onValueChange]\n );\n\n useEffect(() => {\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [indeterminate, localRef]);\n\n return (\n <input\n type={\"checkbox\"}\n className={cx(styles.checkbox, styles[size], className)}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { Checkbox, CheckboxProps } from \"./Checkbox\";\n\nexport interface CheckboxWithLabelProps extends CheckboxProps {\n label?: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const CheckboxWithLabel: React.FC<CheckboxWithLabelProps> = ({\n children,\n label,\n inputRef,\n wrapperRef,\n textColor,\n ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {label && (\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n )}\n {children}\n </Row>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./RadioButton.module.css\";\nimport cx from \"classnames\";\n\nexport type RadioButtonSize = \"standard\" | \"small\";\n\nexport interface RadioButtonProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n size?: RadioButtonSize;\n}\n\nexport const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(\n (\n {\n onChange,\n onValueChange,\n size = \"standard\",\n name,\n className,\n ...inputProps\n },\n ref\n ) => {\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange]\n );\n\n return (\n <input\n type={\"radio\"}\n name={name}\n className={cx(styles.radiobutton, styles[size], className)}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n }\n);\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport { Icon } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./RadioButtonBox.module.css\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport type RadioButtonBoxVariant = \"normal\" | \"danger\";\n\nexport type RadioButtonBoxProps =\n | RadioButtonBoxNoRightProps\n | RadioButtonBoxIconProps\n | RadioButtonBoxContentRightProps;\n\nexport interface RadioButtonBoxCommonProps extends RadioButtonProps {\n label?: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n variant?: RadioButtonBoxVariant;\n radioButtonClassName?: string;\n}\n\nexport interface RadioButtonBoxNoRightProps extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxIconProps extends RadioButtonBoxCommonProps {\n icon?: IconDefinition;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxContentRightProps\n extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: ReactNode;\n}\n\nexport const RadioButtonBox: React.FC<RadioButtonBoxProps> = ({\n label,\n screenReaderLabel,\n variant = \"normal\",\n className,\n icon,\n contentRight,\n style,\n radioButtonClassName,\n ...radioButtonProps\n}) => {\n return (\n <label\n className={cx(styles.radioButtonBox, styles[variant], className)}\n style={style}\n >\n <Row justifyContent={\"space-between\"} flexGrow={1}>\n <Row alignItems={\"center\"}>\n <RadioButton {...radioButtonProps} className={radioButtonClassName} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text aria-hidden={Boolean(screenReaderLabel)}>{label}</Text>\n {icon && (\n <Row alignItems={\"center\"} width={\"48px\"} justifyContent={\"center\"}>\n <Icon icon={icon} size={24} />\n </Row>\n )}\n </Row>\n <Row\n alignItems={\"center\"}\n width={icon ? \"48px\" : undefined}\n justifyContent={\"center\"}\n >\n {icon && <Icon icon={icon} size={24} />}\n {contentRight}\n </Row>\n </Row>\n </label>\n );\n};\n","import { Row, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport interface RadioButtonWithLabelProps extends RadioButtonProps {\n label: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const RadioButtonWithLabel: React.FC<RadioButtonWithLabelProps> = ({\n label,\n inputRef,\n wrapperRef,\n textColor,\n ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n <Text color={textColor} userSelect={\"none\"}>\n {label}\n </Text>\n </Row>\n </label>\n </div>\n );\n};\n","import {\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type MoveDirection = \"right\" | \"left\" | \"down\" | \"up\";\nexport type TextInputElement = HTMLTextAreaElement | HTMLInputElement;\n\nexport const useKeyboardNavigation = <TElement extends TextInputElement>(\n ref: RefObject<TElement>,\n /**\n * User-provided onKeyDown. Internal handler should forward calls to this.\n * */\n onKeyDown: KeyboardEventHandler<TElement> | undefined,\n onEnter: (() => void) | undefined,\n onEsc: (() => void) | undefined,\n /**\n * onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab.\n * */\n onMove: ((direction: MoveDirection) => void) | undefined,\n onDone: ((value: string) => void) | undefined,\n onBlur: FocusEventHandler<TElement> | undefined,\n onFocus: FocusEventHandler<TElement> | undefined\n) => {\n const wasHandled = useRef(false);\n\n const onBlurHandler: FocusEventHandler<TElement> = (ev) => {\n if (!wasHandled.current) {\n onDone?.(ev.target.value ?? \"\");\n }\n onBlur?.(ev);\n };\n\n const onFocusHandler: FocusEventHandler<TElement> = (ev) => {\n wasHandled.current = false;\n onFocus?.(ev);\n };\n\n const onKeyDownHandler: KeyboardEventHandler<TElement> = useCallback(\n (ev) => {\n const { key } = ev;\n if (key === \"Enter\") {\n wasHandled.current = true;\n onEnter?.();\n onDone?.(ev.currentTarget.value ?? \"\");\n } else if (key === \"Escape\") {\n wasHandled.current = true;\n onEsc?.();\n ev.preventDefault();\n ev.stopPropagation();\n } else if (onMove) {\n const blurMoveAndCancel = (\n direction: MoveDirection,\n e: KeyboardEvent<TElement>\n ) => {\n wasHandled.current = true;\n ref.current!.blur();\n onMove(direction);\n e.preventDefault();\n e.stopPropagation();\n };\n\n if (ev.shiftKey && key === \"Tab\") {\n blurMoveAndCancel(\"left\", ev);\n } else if (key === \"Tab\") {\n blurMoveAndCancel(\"right\", ev);\n } else if (key === \"ArrowUp\") {\n blurMoveAndCancel(\"up\", ev);\n } else if (key === \"ArrowDown\") {\n blurMoveAndCancel(\"down\", ev);\n } else if (key === \"ArrowRight\") {\n if (ref.current!.value.length === ref.current!.selectionStart) {\n blurMoveAndCancel(\"right\", ev);\n }\n } else if (key === \"ArrowLeft\") {\n if (ref.current!.selectionStart === 0) {\n blurMoveAndCancel(\"left\", ev);\n }\n }\n }\n\n if (onKeyDown) {\n onKeyDown(ev);\n }\n },\n [onEsc, onMove, onKeyDown, ref, onEnter, onDone]\n );\n\n return {\n onKeyDownHandler,\n onBlurHandler,\n onFocusHandler,\n };\n};\n","import { RefObject, useEffect } from \"react\";\nimport { TextInputElement } from \"./UseKeyboardNavigation\";\n\nexport function elementHasSelectionRange(element: TextInputElement): boolean {\n if (element.tagName === \"TEXTAREA\") {\n return true;\n }\n\n if (\n element.tagName === \"INPUT\" &&\n (element.type === \"text\" ||\n element.type === \"search\" ||\n element.type === \"url\" ||\n element.type === \"tel\" ||\n element.type === \"password\")\n ) {\n return true;\n }\n\n return false;\n}\n\nexport const useSelectAllOnMount = (\n ref: RefObject<TextInputElement>,\n moveCursorToEnd: boolean,\n enabled: boolean\n) => {\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n /*\n `selectionStart`, `selectionEnd` properties and `setSelectionRange` method apply only to inputs of types text, search, URL, tel and password.\n Chrome, starting from version 33, throws an exception while accessing those properties and method on the rest of input types.\n https://html.spec.whatwg.org/multipage/input.html#concept-input-apply\n */\n if (!elementHasSelectionRange(ref.current)) {\n return;\n }\n\n if (enabled) {\n ref.current.setSelectionRange(0, ref.current.value.length);\n } else if (moveCursorToEnd) {\n ref.current.setSelectionRange(\n ref.current.value.length,\n ref.current.value.length\n );\n }\n }, [moveCursorToEnd, ref, enabled]);\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n CSSProperties,\n FocusEventHandler,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n} from \"react\";\nimport { TextInputVariant } from \"../components/ui/text-input/TextInput\";\nimport {\n MoveDirection,\n TextInputElement,\n useKeyboardNavigation,\n} from \"./UseKeyboardNavigation\";\nimport { useSelectAllOnMount } from \"./UseSelectAllOnMount\";\nimport { FullOnChangeProps } from \"../components/ui/types\";\n\ninterface UseTextInputOptions<TElement extends TextInputElement>\n extends FullOnChangeProps<string, ChangeEvent<TElement>> {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n onFocus?: FocusEventHandler<TElement>;\n onBlur?: FocusEventHandler<TElement>;\n onKeyDown?: KeyboardEventHandler<TElement>;\n}\n\ninterface UseTextInputHookResult<TElement extends TextInputElement> {\n autoFocus?: boolean;\n onChange: ChangeEventHandler<TElement>;\n onFocus: FocusEventHandler<TElement>;\n onBlur: FocusEventHandler<TElement>;\n onKeyDown: KeyboardEventHandler<TElement>;\n}\n\nexport const useTextInput = <TElement extends TextInputElement>(\n ref: RefObject<TElement>,\n {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n }: UseTextInputOptions<TElement>\n): UseTextInputHookResult<TElement> => {\n useSelectAllOnMount(ref, !!moveCursorToEndOnMount, !!selectAllOnMount);\n\n const { onKeyDownHandler, onFocusHandler, onBlurHandler } =\n useKeyboardNavigation<TElement>(\n ref,\n onKeyDown,\n onEnter,\n onEsc,\n onMove,\n onDone,\n onBlur,\n onFocus\n );\n\n const onChangeHandler = useCallback<ChangeEventHandler<TElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange]\n );\n\n return {\n onBlur: onBlurHandler,\n onChange: onChangeHandler,\n onFocus: onFocusHandler,\n onKeyDown: onKeyDownHandler,\n autoFocus: selectAllOnMount || autoFocus,\n };\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Space } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n button?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n button,\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n}) => {\n if (!content && !icon && !button) {\n return null;\n }\n\n if (button) {\n return (\n <>\n {spaceOnLeft ? <Space num={0.25} /> : null}\n {button}\n {spaceOnRight ? <Space num={0.25} /> : null}\n </>\n );\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {content || null}\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { stenaCheck, stenaExclamationTriangle } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ChangeEvent, CSSProperties, useRef } from \"react\";\nimport { MoveDirection } from \"../../../hooks/UseKeyboardNavigation\";\nimport { useTextInput } from \"../../../hooks/UseTextInput\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./TextInput.module.css\";\nimport { TextInputIcon } from \"./TextInputIcon\";\n\nexport type TextInputVariant =\n | \"standard\"\n | \"loading\"\n | \"warning\"\n | \"error\"\n | \"modified\"\n | \"success\";\n\ninterface ExtraContent {\n /** React node to put to the left. Left icon is ignored if this is set. */\n contentLeft?: React.ReactNode;\n /** React node to put to the right. Right icon is ignored if this is set. */\n contentRight?: React.ReactNode;\n /** TextInputButton to the left. Left icon and content is ignored if this is set. */\n buttonLeft?: React.ReactNode;\n /** React node to put to the right. Right icon and content is ignored if this is set. */\n buttonRight?: React.ReactNode;\n /** If true, there will be no padding between contentLeft/contentRight and the border. */\n disableContentPadding?: boolean;\n /** If true, there will be no padding between contentLeft and the border. */\n disableContentPaddingLeft?: boolean;\n /** If true, there will be no padding between contentRight and the border. */\n disableContentPaddingRight?: boolean;\n /** Icon on the left side. */\n iconLeft?: IconDefinition;\n /** Icon on the right side. */\n iconRight?: IconDefinition;\n}\n\nexport interface TextInputProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n InputProps,\n ExtraContent {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n buttonLeft,\n buttonRight,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n moveCursorToEndOnMount,\n selectAllOnMount,\n autoFocus,\n onValueChange,\n wrapperClassName,\n wrapperStyle,\n onDone,\n onEnter,\n onEsc,\n onMove,\n onChange,\n onKeyDown,\n hideBorder,\n onFocus,\n onBlur,\n ...inputProps\n } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const refToUse = inputRef ?? localRef;\n const hookProps = useTextInput<HTMLInputElement>(refToUse, {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n });\n\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n button={buttonLeft}\n />\n <input\n className={cx(styles.input, className)}\n type={\"text\"}\n disabled={disabled}\n ref={refToUse}\n autoFocus={autoFocus}\n {...inputProps}\n {...hookProps}\n />\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n button={buttonRight}\n />\n </div>\n );\n};\n","import { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport const onStepValueChange = ({\n onValueChange,\n value,\n numSteps,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n value: string | undefined;\n numSteps: number;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (!value) {\n onValueChange(String(limitWithinRange(numSteps, min, max)));\n } else {\n const parsedValue = parseFloatElseUndefined(value);\n const newValue = (parsedValue || 0) + numSteps;\n onValueChange(String(limitWithinRange(newValue, min, max)));\n }\n }\n};\n\nexport const onTextValueChange = ({\n onValueChange,\n newValue,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n newValue: string;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (newValue === \"\") {\n onValueChange(\"\");\n } else {\n const parsedValue = parseFloatElseUndefined(newValue);\n const value = parsedValue || 0;\n onValueChange(String(limitWithinRange(value, min, max)));\n }\n }\n};\n\nconst limitWithinRange = (\n value: number,\n min?: number,\n max?: number\n): number => {\n let v = value;\n if (min != null) {\n v = Math.max(min, v);\n }\n if (max != null) {\n v = Math.min(max, v);\n }\n return v;\n};\n","import { Omit, Space } from \"@stenajs-webui/core\";\nimport { UpDownButtons } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport styles from \"./NumericTextInput.module.css\";\nimport cx from \"classnames\";\nimport {\n onStepValueChange,\n onTextValueChange,\n} from \"../../../utils/NumericHelpers\";\n\nexport interface NumericTextInputProps\n extends Omit<\n TextInputProps,\n | \"onChange\" // Omit onChange, since up down buttons don't generate HTMLInput event.\n | \"selectAllOnMount\" // Not supported by browser when input type='number'\n | \"moveCursorToEndOnMount\" // Not supported by browser when input type='number'\n > {\n max?: number;\n min?: number;\n step?: number;\n hideButtons?: boolean;\n}\n\nexport const NumericTextInput: React.FC<NumericTextInputProps> = ({\n value,\n onValueChange,\n max,\n min,\n step = 1,\n contentRight,\n disabled,\n className,\n hideButtons,\n ...restProps\n}) => {\n const onClick = useCallback(\n (numSteps: number) => {\n onStepValueChange({ onValueChange, value, numSteps, min, max });\n },\n [value, max, min, onValueChange]\n );\n const onChange = useCallback(\n (newValue: string) => {\n onTextValueChange({ onValueChange, newValue, min, max });\n },\n [max, min, onValueChange]\n );\n\n const contentRightToUse = hideButtons ? (\n contentRight\n ) : (\n <>\n {contentRight && (\n <>\n {contentRight}\n <Space />\n </>\n )}\n <UpDownButtons\n onClickUp={disabled ? undefined : () => onClick(step)}\n onClickDown={disabled ? undefined : () => onClick(-step)}\n iconColor={\"var(--swui-textinput-text-color)\"}\n disabled={disabled}\n />\n </>\n );\n\n return (\n <TextInput\n contentRight={contentRightToUse}\n value={value}\n onValueChange={onChange}\n disableContentPaddingRight={!hideButtons}\n type={\"number\"}\n min={min}\n max={max}\n step={step}\n className={cx(styles.numericTextInputInput, className)}\n disabled={disabled}\n {...restProps}\n />\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport { ValueAndOnValueChangeProps } from \"../../types\";\nimport { NumericTextInputProps } from \"../NumericTextInput\";\nimport { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport type NumericInputValueProps = ValueAndOnValueChangeProps<\n number | undefined\n>;\n\nexport const useNumericInputValue = (\n value: number | undefined,\n onValueChange?: (value: number | undefined) => void\n): Partial<NumericTextInputProps> => {\n const onValueChangeString = useCallback(\n (newValue: string) => {\n if (onValueChange) {\n if (!newValue) {\n onValueChange(undefined);\n } else {\n const n = parseFloatElseUndefined(newValue);\n if (n !== undefined) {\n onValueChange(n);\n }\n }\n }\n },\n [onValueChange]\n );\n\n const valueString = useMemo(() => {\n if (value === undefined) {\n return \"\";\n }\n return String(value);\n }, [value]);\n\n return {\n onValueChange: onValueChangeString,\n value: valueString,\n };\n};\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport {\n stenaEyeHide,\n stenaEyeShow,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = stenaEyeShow,\n visibleIcon = stenaEyeHide,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n buttonRight={\n <TextInputButton\n icon={isPassword ? hiddenIcon : visibleIcon}\n onClick={() => setIsPassword((x) => !x)}\n />\n }\n type={isPassword ? \"password\" : \"text\"}\n {...props}\n />\n );\n};\n","import { getDataProps, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface InputLabelTextProps {\n disabled?: boolean;\n text?: string;\n}\n\nexport const InputLabelText: React.FC<InputLabelTextProps> = ({\n disabled,\n text,\n ...props\n}) => {\n return (\n <Text\n variant={\"bold\"}\n color={cssColor(disabled ? \"--silver\" : \"--tjara\")}\n size={\"small\"}\n {...getDataProps(props)}\n >\n {text}\n </Text>\n );\n};\n","import * as React from \"react\";\nimport { InputLabelText } from \"./InputLabelText\";\nimport { ScreenReaderOnlyText } from \"@stenajs-webui/core\";\n\nexport interface InputLabelProps {\n htmlFor?: string;\n label?: string;\n screenReaderLabel?: string;\n className?: string;\n disabled?: boolean;\n}\n\nexport const InputLabel: React.FC<InputLabelProps> = ({\n htmlFor,\n screenReaderLabel,\n label,\n disabled,\n className,\n}) => {\n return (\n <label htmlFor={htmlFor} className={className}>\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <InputLabelText\n aria-hidden={Boolean(screenReaderLabel)}\n text={label}\n disabled={disabled}\n />\n </label>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEvent, PropsWithChildren, useCallback, useId } from \"react\";\nimport { Icon, stenaAngleDown } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledSelect.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport { SelectElementProps } from \"@stenajs-webui/core\";\n\nexport type SelectBorderVariant =\n | \"normalBorder\"\n | \"onlyTopBorder\"\n | \"onlyBottomBorder\";\n\nexport interface LabelledSelectProps\n extends ValueAndOnValueChangeProps<string>,\n PropsWithChildren,\n Omit<SelectElementProps, \"value\"> {\n id?: string;\n name: string;\n label?: string;\n screenReaderLabel?: string;\n borderVariant?: SelectBorderVariant;\n variant?: LabelledSelectVariant;\n}\n\nexport type LabelledSelectVariant = \"normal\" | \"error\";\n\nexport const LabelledSelect: React.FC<LabelledSelectProps> = ({\n onChange,\n onValueChange,\n id,\n label,\n screenReaderLabel,\n borderVariant = \"normalBorder\",\n variant = \"normal\",\n children,\n ...inputProps\n}) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange]\n );\n\n return (\n <div\n className={cx(\n styles.labelledSelect,\n styles[variant],\n styles[borderVariant]\n )}\n >\n <InputLabel\n htmlFor={activeId}\n className={styles.label}\n label={label}\n screenReaderLabel={screenReaderLabel}\n />\n <select\n id={activeId}\n onChange={onChangeHandler}\n className={cx(styles.select, styles[variant])}\n {...inputProps}\n >\n {children}\n </select>\n\n <div className={cx(styles.iconWrapper)}>\n <Icon\n icon={stenaAngleDown}\n size={24}\n color={cssColor(\"--modern-blue\")}\n />\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEventHandler, useCallback, useId } from \"react\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledTextInput.module.css\";\nimport { InputElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\n\nexport type LabelledTextInputVariant = \"normal\" | \"error\";\nexport type LabelledTextInputSize = \"medium\" | \"large\";\n\nexport type LabelledTextInputBorderVariant =\n | \"normalBorder\"\n | \"onlyTop\"\n | \"onlyBottom\";\n\nexport interface LabelledTextInputProps\n extends Omit<InputElementProps, \"value\" | \"size\">,\n ValueAndOnValueChangeProps<string> {\n id?: string;\n label?: string;\n size?: LabelledTextInputSize;\n screenReaderLabel?: string;\n pattern?: string;\n borderRadiusVariant?: LabelledTextInputBorderVariant;\n variant?: LabelledTextInputVariant;\n}\n\nexport const LabelledTextInput = React.forwardRef<\n HTMLInputElement,\n LabelledTextInputProps\n>(\n (\n {\n autoComplete = \"off\",\n label,\n id,\n screenReaderLabel,\n size = \"medium\",\n value,\n onChange,\n disabled,\n onValueChange,\n borderRadiusVariant = \"normalBorder\",\n variant = \"normal\",\n ...inputProps\n },\n ref\n ) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback<ChangeEventHandler<HTMLInputElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange]\n );\n\n return (\n <div\n className={cx(\n styles.labelledTextInput,\n styles[variant],\n styles[borderRadiusVariant],\n styles[size],\n disabled && styles.disabled\n )}\n >\n <InputLabel\n htmlFor={activeId}\n screenReaderLabel={screenReaderLabel}\n label={label}\n />\n <input\n ref={ref}\n id={activeId}\n autoComplete={autoComplete}\n type={\"text\"}\n value={value}\n onChange={onChangeHandler}\n disabled={disabled}\n {...inputProps}\n />\n </div>\n );\n }\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport cx from \"classnames\";\nimport { TextInputProps } from \"./TextInput\";\nimport { TextInputIcon } from \"./TextInputIcon\";\nimport {\n InputSpinner,\n stenaCheck,\n stenaExclamationTriangle,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\nimport { ButtonElementProps, Row } from \"@stenajs-webui/core\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\n\nexport interface TextInputBoxProps\n extends Pick<\n TextInputProps,\n | \"variant\"\n | \"wrapperClassName\"\n | \"disabled\"\n | \"wrapperStyle\"\n | \"contentLeft\"\n | \"contentRight\"\n | \"disableContentPadding\"\n | \"disableContentPaddingLeft\"\n | \"disableContentPaddingRight\"\n > {\n children?: ReactNode;\n iconRight?: IconDefinition;\n iconLeft?: IconDefinition;\n onClickLeft?: ButtonElementProps[\"onClick\"];\n onClickRight?: ButtonElementProps[\"onClick\"];\n}\n\nexport const TextInputBox: React.FC<TextInputBoxProps> = ({\n variant = \"standard\",\n disabled,\n wrapperClassName,\n wrapperStyle,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconRight,\n iconLeft,\n onClickLeft,\n onClickRight,\n children,\n}) => {\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles.inputContainer,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnLeft\n button={\n iconLeft ? (\n <TextInputButton onClick={onClickLeft} icon={iconLeft} />\n ) : undefined\n }\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnRight\n button={\n currentIconRight ? (\n <TextInputButton onClick={onClickRight} icon={currentIconRight} />\n ) : undefined\n }\n />\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./TextArea.module.css\";\nimport { FullOnChangeProps } from \"../types\";\n\ntype Resize =\n | \"none\"\n | \"both\"\n | \"horizontal\"\n | \"vertical\"\n | \"inherit\"\n | \"initial\"\n | \"revert\"\n | \"unset\";\n\nexport interface TextAreaProps\n extends Omit<ComponentPropsWithoutRef<\"textarea\">, \"value\">,\n FullOnChangeProps<string, ChangeEvent<HTMLTextAreaElement>> {\n resize?: Resize;\n readOnly?: boolean;\n rows?: number;\n disabled?: boolean;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n className,\n value,\n onValueChange,\n onChange,\n resize = \"none\",\n readOnly = false,\n rows,\n disabled,\n ...textAreaProps\n },\n ref\n ) => {\n const onChangeHandler: ChangeEventHandler<HTMLTextAreaElement> =\n useCallback(\n (ev) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange]\n );\n\n return (\n <textarea\n disabled={disabled}\n rows={rows}\n readOnly={readOnly}\n className={cx(styles.textArea, className)}\n style={{ resize }}\n onChange={onChangeHandler}\n value={value}\n ref={ref}\n {...textAreaProps}\n />\n );\n }\n);\n"],"names":["styleChecked","styles","Switch","value","disabled","onValueChange","className","wrapperRef","restProps","jsx","jsxs","SwitchWithLabel","label","textColor","switchProps","Box","Space","Text","Checkbox","forwardRef","indeterminate","onChange","size","inputProps","ref","localRef","useRef","setRef","element","handleInputChange","useCallback","ev","useEffect","cx","CheckboxWithLabel","children","inputRef","checkboxProps","Row","RadioButton","name","RadioButtonBox","screenReaderLabel","variant","icon","contentRight","style","radioButtonClassName","radioButtonProps","ScreenReaderOnlyText","Icon","RadioButtonWithLabel","useKeyboardNavigation","onKeyDown","onEnter","onEsc","onMove","onDone","onBlur","onFocus","wasHandled","onBlurHandler","onFocusHandler","key","blurMoveAndCancel","direction","e","elementHasSelectionRange","useSelectAllOnMount","moveCursorToEnd","enabled","useTextInput","selectAllOnMount","moveCursorToEndOnMount","autoFocus","onKeyDownHandler","onChangeHandler","TextInputIcon","button","iconClassName","content","spaceOnLeft","spaceOnRight","disableContentPadding","disableContentPaddingLeft","disableContentPaddingRight","Fragment","FontAwesomeIcon","TextInput","props","buttonLeft","buttonRight","contentLeft","iconLeft","iconRight","wrapperClassName","wrapperStyle","hideBorder","refToUse","hookProps","currentIconRight","stenaCheck","stenaExclamationTriangle","currentContentRight","InputSpinner","onStepValueChange","numSteps","min","max","limitWithinRange","newValue","parseFloatElseUndefined","onTextValueChange","v","NumericTextInput","step","hideButtons","onClick","contentRightToUse","UpDownButtons","useNumericInputValue","onValueChangeString","n","valueString","useMemo","PasswordInput","hiddenIcon","stenaEyeShow","visibleIcon","stenaEyeHide","isPassword","setIsPassword","useState","TextInputButton","x","InputLabelText","text","cssColor","getDataProps","InputLabel","htmlFor","LabelledSelect","id","borderVariant","hookId","useId","activeId","stenaAngleDown","LabelledTextInput","React","autoComplete","borderRadiusVariant","TextInputBox","onClickLeft","onClickRight","TextArea","resize","readOnly","rows","textAreaProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/ui/switch/Switch.tsx","../src/components/ui/switch/SwitchWithLabel.tsx","../src/components/ui/checkbox/Checkbox.tsx","../src/components/ui/checkbox/CheckboxWithLabel.tsx","../src/components/ui/radio/RadioButton.tsx","../src/components/ui/radio/RadioButtonBox.tsx","../src/components/ui/radio/RadioButtonWithLabel.tsx","../src/hooks/UseKeyboardNavigation.ts","../src/hooks/UseSelectAllOnMount.ts","../src/hooks/UseTextInput.ts","../src/components/ui/text-input/TextInputIcon.tsx","../src/components/ui/text-input/TextInput.tsx","../src/utils/NumericHelpers.ts","../src/components/ui/numeric-text-input/NumericTextInput.tsx","../src/components/ui/numeric-text-input/hooks/UseNumericInputValue.ts","../src/components/ui/password-input/PasswordInput.tsx","../src/components/ui/input-label/InputLabelText.tsx","../src/components/ui/input-label/InputLabel.tsx","../src/components/ui/labelled-select/LabelledSelect.tsx","../src/components/ui/labelled-text-input/LabelledTextInput.tsx","../src/components/ui/text-input/TextInputBox.tsx","../src/components/ui/text-area/TextArea.tsx"],"sourcesContent":["import { Ref } from \"react\";\nimport * as React from \"react\";\nimport { ButtonElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport styles from \"./Switch.module.css\";\n\nexport interface SwitchProps\n extends Omit<ButtonElementProps, \"value\">,\n ValueAndOnValueChangeProps<boolean> {\n wrapperRef?: Ref<HTMLDivElement>;\n}\n\nconst styleChecked = `${styles.switch} ${styles.checked}`;\n\nexport const Switch: React.FC<SwitchProps> = ({\n value,\n disabled,\n onValueChange,\n className,\n wrapperRef,\n ...restProps\n}) => {\n return (\n <div className={className} ref={wrapperRef}>\n <button\n type=\"button\"\n role=\"switch\"\n aria-checked={value}\n className={value ? styleChecked : styles.switch}\n disabled={disabled}\n onClick={() => onValueChange && onValueChange(!value)}\n {...restProps}\n >\n <div className={styles.filler} />\n <div className={styles.knob} />\n </button>\n </div>\n );\n};\n","import { Box, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Switch, SwitchProps } from \"./Switch\";\n\nexport interface SwitchWithLabelProps extends SwitchProps {\n label: string;\n textColor?: string;\n}\n\nexport const SwitchWithLabel: React.FC<SwitchWithLabelProps> = ({\n label,\n disabled,\n textColor,\n wrapperRef,\n ...switchProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Box row alignItems={\"center\"}>\n <Switch disabled={disabled} {...switchProps} />\n <Space />\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n </Box>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n MutableRefObject,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport cx from \"classnames\";\nimport styles from \"./Checkbox.module.css\";\n\nexport type CheckboxSize = \"standard\" | \"small\";\n\nexport interface CheckboxProps\n extends FullOnChangeProps<boolean, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n indeterminate?: boolean;\n size?: CheckboxSize;\n disabled?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n indeterminate = false,\n onChange,\n onValueChange,\n value = false,\n size = \"standard\",\n className,\n ...inputProps\n },\n ref\n ) => {\n const localRef = useRef<HTMLInputElement>();\n\n const setRef = (element: HTMLInputElement) => {\n localRef.current = element;\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n if (ref) {\n if (typeof ref === \"function\") {\n ref(element);\n } else {\n (ref as MutableRefObject<HTMLInputElement>).current = element;\n }\n }\n };\n\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.checked);\n }\n },\n [onChange, onValueChange]\n );\n\n useEffect(() => {\n if (localRef.current) {\n localRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [indeterminate, localRef]);\n\n return (\n <input\n type={\"checkbox\"}\n className={cx(styles.checkbox, styles[size], className)}\n checked={value}\n onChange={handleInputChange}\n ref={setRef}\n {...inputProps}\n />\n );\n }\n);\n","import { Row, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { Checkbox, CheckboxProps } from \"./Checkbox\";\n\nexport interface CheckboxWithLabelProps extends CheckboxProps {\n label?: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const CheckboxWithLabel: React.FC<CheckboxWithLabelProps> = ({\n children,\n label,\n inputRef,\n wrapperRef,\n textColor,\n ...checkboxProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <Checkbox {...checkboxProps} ref={inputRef} />\n <Space />\n {label && (\n <Text userSelect={\"none\"} color={textColor}>\n {label}\n </Text>\n )}\n {children}\n </Row>\n </label>\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./RadioButton.module.css\";\nimport cx from \"classnames\";\n\nexport type RadioButtonSize = \"standard\" | \"small\";\n\nexport interface RadioButtonProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"value\"> {\n size?: RadioButtonSize;\n}\n\nexport const RadioButton = forwardRef<HTMLInputElement, RadioButtonProps>(\n (\n {\n onChange,\n onValueChange,\n size = \"standard\",\n name,\n className,\n ...inputProps\n },\n ref\n ) => {\n const handleInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange]\n );\n\n return (\n <input\n type={\"radio\"}\n name={name}\n className={cx(styles.radiobutton, styles[size], className)}\n onChange={handleInputChange}\n ref={ref}\n {...inputProps}\n />\n );\n }\n);\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Row, ScreenReaderOnlyText, Space, Text } from \"@stenajs-webui/core\";\nimport { Icon } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./RadioButtonBox.module.css\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport type RadioButtonBoxVariant = \"normal\" | \"danger\";\n\nexport type RadioButtonBoxProps =\n | RadioButtonBoxNoRightProps\n | RadioButtonBoxIconProps\n | RadioButtonBoxContentRightProps;\n\nexport interface RadioButtonBoxCommonProps extends RadioButtonProps {\n label?: string;\n /**\n * If set, this label is used by screen readers instead of label prop.\n * For example, label could be \"male\", while screenReaderLabel is \"Gender male\".\n * If not set, screen readers will use label prop.\n */\n screenReaderLabel?: string;\n variant?: RadioButtonBoxVariant;\n radioButtonClassName?: string;\n}\n\nexport interface RadioButtonBoxNoRightProps extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxIconProps extends RadioButtonBoxCommonProps {\n icon?: IconDefinition;\n contentRight?: never;\n}\n\nexport interface RadioButtonBoxContentRightProps\n extends RadioButtonBoxCommonProps {\n icon?: never;\n contentRight?: ReactNode;\n}\n\nexport const RadioButtonBox: React.FC<RadioButtonBoxProps> = ({\n label,\n screenReaderLabel,\n variant = \"normal\",\n className,\n icon,\n contentRight,\n style,\n radioButtonClassName,\n ...radioButtonProps\n}) => {\n return (\n <label\n className={cx(styles.radioButtonBox, styles[variant], className)}\n style={style}\n >\n <Row justifyContent={\"space-between\"} flexGrow={1}>\n <Row alignItems={\"center\"}>\n <RadioButton {...radioButtonProps} className={radioButtonClassName} />\n <Space />\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <Text aria-hidden={Boolean(screenReaderLabel)}>{label}</Text>\n </Row>\n <Row\n alignItems={\"center\"}\n width={icon ? \"48px\" : undefined}\n justifyContent={\"center\"}\n >\n {icon && <Icon icon={icon} size={24} />}\n {!icon && contentRight}\n </Row>\n </Row>\n </label>\n );\n};\n","import { Row, Space, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { Ref } from \"react\";\nimport { RadioButton, RadioButtonProps } from \"./RadioButton\";\n\nexport interface RadioButtonWithLabelProps extends RadioButtonProps {\n label: string;\n textColor?: string;\n wrapperRef?: Ref<HTMLDivElement>;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const RadioButtonWithLabel: React.FC<RadioButtonWithLabelProps> = ({\n label,\n inputRef,\n wrapperRef,\n textColor,\n ...radioButtonProps\n}) => {\n return (\n <div ref={wrapperRef}>\n <label>\n <Row alignItems={\"center\"}>\n <RadioButton ref={inputRef} {...radioButtonProps} />\n <Space />\n <Text color={textColor} userSelect={\"none\"}>\n {label}\n </Text>\n </Row>\n </label>\n </div>\n );\n};\n","import {\n FocusEventHandler,\n KeyboardEvent,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useRef,\n} from \"react\";\n\nexport type MoveDirection = \"right\" | \"left\" | \"down\" | \"up\";\nexport type TextInputElement = HTMLTextAreaElement | HTMLInputElement;\n\nexport const useKeyboardNavigation = <TElement extends TextInputElement>(\n ref: RefObject<TElement>,\n /**\n * User-provided onKeyDown. Internal handler should forward calls to this.\n * */\n onKeyDown: KeyboardEventHandler<TElement> | undefined,\n onEnter: (() => void) | undefined,\n onEsc: (() => void) | undefined,\n /**\n * onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab.\n * */\n onMove: ((direction: MoveDirection) => void) | undefined,\n onDone: ((value: string) => void) | undefined,\n onBlur: FocusEventHandler<TElement> | undefined,\n onFocus: FocusEventHandler<TElement> | undefined\n) => {\n const wasHandled = useRef(false);\n\n const onBlurHandler: FocusEventHandler<TElement> = (ev) => {\n if (!wasHandled.current) {\n onDone?.(ev.target.value ?? \"\");\n }\n onBlur?.(ev);\n };\n\n const onFocusHandler: FocusEventHandler<TElement> = (ev) => {\n wasHandled.current = false;\n onFocus?.(ev);\n };\n\n const onKeyDownHandler: KeyboardEventHandler<TElement> = useCallback(\n (ev) => {\n const { key } = ev;\n if (key === \"Enter\") {\n wasHandled.current = true;\n onEnter?.();\n onDone?.(ev.currentTarget.value ?? \"\");\n } else if (key === \"Escape\") {\n wasHandled.current = true;\n onEsc?.();\n ev.preventDefault();\n ev.stopPropagation();\n } else if (onMove) {\n const blurMoveAndCancel = (\n direction: MoveDirection,\n e: KeyboardEvent<TElement>\n ) => {\n wasHandled.current = true;\n ref.current!.blur();\n onMove(direction);\n e.preventDefault();\n e.stopPropagation();\n };\n\n if (ev.shiftKey && key === \"Tab\") {\n blurMoveAndCancel(\"left\", ev);\n } else if (key === \"Tab\") {\n blurMoveAndCancel(\"right\", ev);\n } else if (key === \"ArrowUp\") {\n blurMoveAndCancel(\"up\", ev);\n } else if (key === \"ArrowDown\") {\n blurMoveAndCancel(\"down\", ev);\n } else if (key === \"ArrowRight\") {\n if (ref.current!.value.length === ref.current!.selectionStart) {\n blurMoveAndCancel(\"right\", ev);\n }\n } else if (key === \"ArrowLeft\") {\n if (ref.current!.selectionStart === 0) {\n blurMoveAndCancel(\"left\", ev);\n }\n }\n }\n\n if (onKeyDown) {\n onKeyDown(ev);\n }\n },\n [onEsc, onMove, onKeyDown, ref, onEnter, onDone]\n );\n\n return {\n onKeyDownHandler,\n onBlurHandler,\n onFocusHandler,\n };\n};\n","import { RefObject, useEffect } from \"react\";\nimport { TextInputElement } from \"./UseKeyboardNavigation\";\n\nexport function elementHasSelectionRange(element: TextInputElement): boolean {\n if (element.tagName === \"TEXTAREA\") {\n return true;\n }\n\n if (\n element.tagName === \"INPUT\" &&\n (element.type === \"text\" ||\n element.type === \"search\" ||\n element.type === \"url\" ||\n element.type === \"tel\" ||\n element.type === \"password\")\n ) {\n return true;\n }\n\n return false;\n}\n\nexport const useSelectAllOnMount = (\n ref: RefObject<TextInputElement>,\n moveCursorToEnd: boolean,\n enabled: boolean\n) => {\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n /*\n `selectionStart`, `selectionEnd` properties and `setSelectionRange` method apply only to inputs of types text, search, URL, tel and password.\n Chrome, starting from version 33, throws an exception while accessing those properties and method on the rest of input types.\n https://html.spec.whatwg.org/multipage/input.html#concept-input-apply\n */\n if (!elementHasSelectionRange(ref.current)) {\n return;\n }\n\n if (enabled) {\n ref.current.setSelectionRange(0, ref.current.value.length);\n } else if (moveCursorToEnd) {\n ref.current.setSelectionRange(\n ref.current.value.length,\n ref.current.value.length\n );\n }\n }, [moveCursorToEnd, ref, enabled]);\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n CSSProperties,\n FocusEventHandler,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n} from \"react\";\nimport { TextInputVariant } from \"../components/ui/text-input/TextInput\";\nimport {\n MoveDirection,\n TextInputElement,\n useKeyboardNavigation,\n} from \"./UseKeyboardNavigation\";\nimport { useSelectAllOnMount } from \"./UseSelectAllOnMount\";\nimport { FullOnChangeProps } from \"../components/ui/types\";\n\ninterface UseTextInputOptions<TElement extends TextInputElement>\n extends FullOnChangeProps<string, ChangeEvent<TElement>> {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n onFocus?: FocusEventHandler<TElement>;\n onBlur?: FocusEventHandler<TElement>;\n onKeyDown?: KeyboardEventHandler<TElement>;\n}\n\ninterface UseTextInputHookResult<TElement extends TextInputElement> {\n autoFocus?: boolean;\n onChange: ChangeEventHandler<TElement>;\n onFocus: FocusEventHandler<TElement>;\n onBlur: FocusEventHandler<TElement>;\n onKeyDown: KeyboardEventHandler<TElement>;\n}\n\nexport const useTextInput = <TElement extends TextInputElement>(\n ref: RefObject<TElement>,\n {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n }: UseTextInputOptions<TElement>\n): UseTextInputHookResult<TElement> => {\n useSelectAllOnMount(ref, !!moveCursorToEndOnMount, !!selectAllOnMount);\n\n const { onKeyDownHandler, onFocusHandler, onBlurHandler } =\n useKeyboardNavigation<TElement>(\n ref,\n onKeyDown,\n onEnter,\n onEsc,\n onMove,\n onDone,\n onBlur,\n onFocus\n );\n\n const onChangeHandler = useCallback<ChangeEventHandler<TElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange]\n );\n\n return {\n onBlur: onBlurHandler,\n onChange: onChangeHandler,\n onFocus: onFocusHandler,\n onKeyDown: onKeyDownHandler,\n autoFocus: selectAllOnMount || autoFocus,\n };\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { Space } from \"@stenajs-webui/core\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport interface TextInputIconProps {\n iconClassName?: string;\n content?: React.ReactNode;\n button?: React.ReactNode;\n icon?: IconDefinition;\n spaceOnRight?: boolean;\n spaceOnLeft?: boolean;\n disableContentPadding?: boolean;\n disableContentPaddingLeft?: boolean;\n disableContentPaddingRight?: boolean;\n}\n\nexport const TextInputIcon: React.FC<TextInputIconProps> = ({\n button,\n icon,\n iconClassName,\n content,\n spaceOnLeft,\n spaceOnRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n}) => {\n if (!content && !icon && !button) {\n return null;\n }\n\n if (button) {\n return (\n <>\n {spaceOnLeft ? <Space num={0.25} /> : null}\n {button}\n {spaceOnRight ? <Space num={0.25} /> : null}\n </>\n );\n }\n\n if (content) {\n return (\n <>\n {spaceOnLeft &&\n !(disableContentPadding || disableContentPaddingLeft) ? (\n <Space />\n ) : null}\n {content || null}\n {spaceOnRight &&\n !(disableContentPadding || disableContentPaddingRight) ? (\n <Space />\n ) : null}\n </>\n );\n }\n\n return (\n <>\n {spaceOnLeft ? <Space /> : null}\n {icon && (\n <FontAwesomeIcon\n icon={icon}\n className={cx(styles.icon, iconClassName)}\n />\n )}\n {spaceOnRight ? <Space /> : null}\n </>\n );\n};\n","import { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { InputProps } from \"@stenajs-webui/core\";\nimport { InputSpinner } from \"@stenajs-webui/elements\";\nimport { stenaCheck, stenaExclamationTriangle } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport * as React from \"react\";\nimport { ChangeEvent, CSSProperties, useRef } from \"react\";\nimport { MoveDirection } from \"../../../hooks/UseKeyboardNavigation\";\nimport { useTextInput } from \"../../../hooks/UseTextInput\";\nimport { FullOnChangeProps } from \"../types\";\nimport styles from \"./TextInput.module.css\";\nimport { TextInputIcon } from \"./TextInputIcon\";\n\nexport type TextInputVariant =\n | \"standard\"\n | \"loading\"\n | \"warning\"\n | \"error\"\n | \"modified\"\n | \"success\";\n\ninterface ExtraContent {\n /** React node to put to the left. Left icon is ignored if this is set. */\n contentLeft?: React.ReactNode;\n /** React node to put to the right. Right icon is ignored if this is set. */\n contentRight?: React.ReactNode;\n /** TextInputButton to the left. Left icon and content is ignored if this is set. */\n buttonLeft?: React.ReactNode;\n /** React node to put to the right. Right icon and content is ignored if this is set. */\n buttonRight?: React.ReactNode;\n /** If true, there will be no padding between contentLeft/contentRight and the border. */\n disableContentPadding?: boolean;\n /** If true, there will be no padding between contentLeft and the border. */\n disableContentPaddingLeft?: boolean;\n /** If true, there will be no padding between contentRight and the border. */\n disableContentPaddingRight?: boolean;\n /** Icon on the left side. */\n iconLeft?: IconDefinition;\n /** Icon on the right side. */\n iconRight?: IconDefinition;\n}\n\nexport interface TextInputProps\n extends FullOnChangeProps<string, ChangeEvent<HTMLInputElement>>,\n InputProps,\n ExtraContent {\n wrapperStyle?: CSSProperties;\n wrapperClassName?: string;\n variant?: TextInputVariant;\n hideBorder?: boolean;\n selectAllOnMount?: boolean;\n moveCursorToEndOnMount?: boolean;\n onDone?: (value: string) => void;\n onEnter?: () => void;\n onEsc?: () => void;\n autoFocus?: boolean;\n /** onMove callback, triggered when user tries to move outside of field using arrow keys, tab or shift+tab. */\n onMove?: (direction: MoveDirection) => void;\n}\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n variant = \"standard\",\n inputRef,\n disabled,\n className,\n buttonLeft,\n buttonRight,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconLeft,\n iconRight,\n moveCursorToEndOnMount,\n selectAllOnMount,\n autoFocus,\n onValueChange,\n wrapperClassName,\n wrapperStyle,\n onDone,\n onEnter,\n onEsc,\n onMove,\n onChange,\n onKeyDown,\n hideBorder,\n onFocus,\n onBlur,\n ...inputProps\n } = props;\n const localRef = useRef<HTMLInputElement>(null);\n const refToUse = inputRef ?? localRef;\n const hookProps = useTextInput<HTMLInputElement>(refToUse, {\n onEnter,\n onEsc,\n onChange,\n onValueChange,\n selectAllOnMount,\n moveCursorToEndOnMount,\n onDone,\n onMove,\n onFocus,\n onBlur,\n onKeyDown,\n autoFocus,\n });\n\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n {\n [styles.hideBorder]: hideBorder,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={iconLeft}\n spaceOnLeft\n button={buttonLeft}\n />\n <input\n className={cx(styles.input, className)}\n type={\"text\"}\n disabled={disabled}\n ref={refToUse}\n autoFocus={autoFocus}\n {...inputProps}\n {...hookProps}\n />\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n icon={currentIconRight}\n spaceOnRight\n button={buttonRight}\n />\n </div>\n );\n};\n","import { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport const onStepValueChange = ({\n onValueChange,\n value,\n numSteps,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n value: string | undefined;\n numSteps: number;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (!value) {\n onValueChange(String(limitWithinRange(numSteps, min, max)));\n } else {\n const parsedValue = parseFloatElseUndefined(value);\n const newValue = (parsedValue || 0) + numSteps;\n onValueChange(String(limitWithinRange(newValue, min, max)));\n }\n }\n};\n\nexport const onTextValueChange = ({\n onValueChange,\n newValue,\n min,\n max,\n}: {\n onValueChange: ((value: string) => void) | undefined;\n newValue: string;\n min: number | undefined;\n max: number | undefined;\n}) => {\n if (onValueChange) {\n if (newValue === \"\") {\n onValueChange(\"\");\n } else {\n const parsedValue = parseFloatElseUndefined(newValue);\n const value = parsedValue || 0;\n onValueChange(String(limitWithinRange(value, min, max)));\n }\n }\n};\n\nconst limitWithinRange = (\n value: number,\n min?: number,\n max?: number\n): number => {\n let v = value;\n if (min != null) {\n v = Math.max(min, v);\n }\n if (max != null) {\n v = Math.min(max, v);\n }\n return v;\n};\n","import { Omit, Space } from \"@stenajs-webui/core\";\nimport { UpDownButtons } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { useCallback } from \"react\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport styles from \"./NumericTextInput.module.css\";\nimport cx from \"classnames\";\nimport {\n onStepValueChange,\n onTextValueChange,\n} from \"../../../utils/NumericHelpers\";\n\nexport interface NumericTextInputProps\n extends Omit<\n TextInputProps,\n | \"onChange\" // Omit onChange, since up down buttons don't generate HTMLInput event.\n | \"selectAllOnMount\" // Not supported by browser when input type='number'\n | \"moveCursorToEndOnMount\" // Not supported by browser when input type='number'\n > {\n max?: number;\n min?: number;\n step?: number;\n hideButtons?: boolean;\n}\n\nexport const NumericTextInput: React.FC<NumericTextInputProps> = ({\n value,\n onValueChange,\n max,\n min,\n step = 1,\n contentRight,\n disabled,\n className,\n hideButtons,\n ...restProps\n}) => {\n const onClick = useCallback(\n (numSteps: number) => {\n onStepValueChange({ onValueChange, value, numSteps, min, max });\n },\n [value, max, min, onValueChange]\n );\n const onChange = useCallback(\n (newValue: string) => {\n onTextValueChange({ onValueChange, newValue, min, max });\n },\n [max, min, onValueChange]\n );\n\n const contentRightToUse = hideButtons ? (\n contentRight\n ) : (\n <>\n {contentRight && (\n <>\n {contentRight}\n <Space />\n </>\n )}\n <UpDownButtons\n onClickUp={disabled ? undefined : () => onClick(step)}\n onClickDown={disabled ? undefined : () => onClick(-step)}\n iconColor={\"var(--swui-textinput-text-color)\"}\n disabled={disabled}\n />\n </>\n );\n\n return (\n <TextInput\n contentRight={contentRightToUse}\n value={value}\n onValueChange={onChange}\n disableContentPaddingRight={!hideButtons}\n type={\"number\"}\n min={min}\n max={max}\n step={step}\n className={cx(styles.numericTextInputInput, className)}\n disabled={disabled}\n {...restProps}\n />\n );\n};\n","import { useCallback, useMemo } from \"react\";\nimport { ValueAndOnValueChangeProps } from \"../../types\";\nimport { NumericTextInputProps } from \"../NumericTextInput\";\nimport { parseFloatElseUndefined } from \"@stenajs-webui/core\";\n\nexport type NumericInputValueProps = ValueAndOnValueChangeProps<\n number | undefined\n>;\n\nexport const useNumericInputValue = (\n value: number | undefined,\n onValueChange?: (value: number | undefined) => void\n): Partial<NumericTextInputProps> => {\n const onValueChangeString = useCallback(\n (newValue: string) => {\n if (onValueChange) {\n if (!newValue) {\n onValueChange(undefined);\n } else {\n const n = parseFloatElseUndefined(newValue);\n if (n !== undefined) {\n onValueChange(n);\n }\n }\n }\n },\n [onValueChange]\n );\n\n const valueString = useMemo(() => {\n if (value === undefined) {\n return \"\";\n }\n return String(value);\n }, [value]);\n\n return {\n onValueChange: onValueChangeString,\n value: valueString,\n };\n};\n","import * as React from \"react\";\nimport { useState } from \"react\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\nimport { TextInput, TextInputProps } from \"../text-input/TextInput\";\nimport {\n stenaEyeHide,\n stenaEyeShow,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\n\nexport interface PasswordInputProps extends TextInputProps {\n visibleIcon?: IconDefinition;\n hiddenIcon?: IconDefinition;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n hiddenIcon = stenaEyeShow,\n visibleIcon = stenaEyeHide,\n ...props\n}) => {\n const [isPassword, setIsPassword] = useState(true);\n\n return (\n <TextInput\n buttonRight={\n <TextInputButton\n icon={isPassword ? hiddenIcon : visibleIcon}\n onClick={() => setIsPassword((x) => !x)}\n />\n }\n type={isPassword ? \"password\" : \"text\"}\n {...props}\n />\n );\n};\n","import { getDataProps, Text } from \"@stenajs-webui/core\";\nimport * as React from \"react\";\nimport { cssColor } from \"@stenajs-webui/theme\";\n\nexport interface InputLabelTextProps {\n disabled?: boolean;\n text?: string;\n}\n\nexport const InputLabelText: React.FC<InputLabelTextProps> = ({\n disabled,\n text,\n ...props\n}) => {\n return (\n <Text\n variant={\"bold\"}\n color={cssColor(disabled ? \"--silver\" : \"--tjara\")}\n size={\"small\"}\n {...getDataProps(props)}\n >\n {text}\n </Text>\n );\n};\n","import * as React from \"react\";\nimport { InputLabelText } from \"./InputLabelText\";\nimport { ScreenReaderOnlyText } from \"@stenajs-webui/core\";\n\nexport interface InputLabelProps {\n htmlFor?: string;\n label?: string;\n screenReaderLabel?: string;\n className?: string;\n disabled?: boolean;\n}\n\nexport const InputLabel: React.FC<InputLabelProps> = ({\n htmlFor,\n screenReaderLabel,\n label,\n disabled,\n className,\n}) => {\n return (\n <label htmlFor={htmlFor} className={className}>\n {screenReaderLabel ? (\n <ScreenReaderOnlyText>{screenReaderLabel}</ScreenReaderOnlyText>\n ) : null}\n <InputLabelText\n aria-hidden={Boolean(screenReaderLabel)}\n text={label}\n disabled={disabled}\n />\n </label>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEvent, PropsWithChildren, useCallback, useId } from \"react\";\nimport { Icon, stenaAngleDown } from \"@stenajs-webui/elements\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledSelect.module.css\";\nimport { cssColor } from \"@stenajs-webui/theme\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\nimport { SelectElementProps } from \"@stenajs-webui/core\";\n\nexport type SelectBorderVariant =\n | \"normalBorder\"\n | \"onlyTopBorder\"\n | \"onlyBottomBorder\";\n\nexport interface LabelledSelectProps\n extends ValueAndOnValueChangeProps<string>,\n PropsWithChildren,\n Omit<SelectElementProps, \"value\"> {\n id?: string;\n name: string;\n label?: string;\n screenReaderLabel?: string;\n borderVariant?: SelectBorderVariant;\n variant?: LabelledSelectVariant;\n}\n\nexport type LabelledSelectVariant = \"normal\" | \"error\";\n\nexport const LabelledSelect: React.FC<LabelledSelectProps> = ({\n onChange,\n onValueChange,\n id,\n label,\n screenReaderLabel,\n borderVariant = \"normalBorder\",\n variant = \"normal\",\n children,\n ...inputProps\n}) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange]\n );\n\n return (\n <div\n className={cx(\n styles.labelledSelect,\n styles[variant],\n styles[borderVariant]\n )}\n >\n <InputLabel\n htmlFor={activeId}\n className={styles.label}\n label={label}\n screenReaderLabel={screenReaderLabel}\n />\n <select\n id={activeId}\n onChange={onChangeHandler}\n className={cx(styles.select, styles[variant])}\n {...inputProps}\n >\n {children}\n </select>\n\n <div className={cx(styles.iconWrapper)}>\n <Icon\n icon={stenaAngleDown}\n size={24}\n color={cssColor(\"--modern-blue\")}\n />\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nimport { ChangeEventHandler, useCallback, useId } from \"react\";\nimport cx from \"classnames\";\nimport { InputLabel } from \"../input-label/InputLabel\";\nimport styles from \"./LabelledTextInput.module.css\";\nimport { InputElementProps } from \"@stenajs-webui/core\";\nimport { ValueAndOnValueChangeProps } from \"../types\";\n\nexport type LabelledTextInputVariant = \"normal\" | \"error\";\nexport type LabelledTextInputSize = \"medium\" | \"large\";\n\nexport type LabelledTextInputBorderVariant =\n | \"normalBorder\"\n | \"onlyTop\"\n | \"onlyBottom\";\n\nexport interface LabelledTextInputProps\n extends Omit<InputElementProps, \"value\" | \"size\">,\n ValueAndOnValueChangeProps<string> {\n id?: string;\n label?: string;\n size?: LabelledTextInputSize;\n screenReaderLabel?: string;\n pattern?: string;\n borderRadiusVariant?: LabelledTextInputBorderVariant;\n variant?: LabelledTextInputVariant;\n}\n\nexport const LabelledTextInput = React.forwardRef<\n HTMLInputElement,\n LabelledTextInputProps\n>(\n (\n {\n autoComplete = \"off\",\n label,\n id,\n screenReaderLabel,\n size = \"medium\",\n value,\n onChange,\n disabled,\n onValueChange,\n borderRadiusVariant = \"normalBorder\",\n variant = \"normal\",\n ...inputProps\n },\n ref\n ) => {\n const hookId = useId();\n\n const activeId = id ?? hookId;\n\n const onChangeHandler = useCallback<ChangeEventHandler<HTMLInputElement>>(\n (ev) => {\n onChange?.(ev);\n onValueChange?.(ev.target.value);\n },\n [onChange, onValueChange]\n );\n\n return (\n <div\n className={cx(\n styles.labelledTextInput,\n styles[variant],\n styles[borderRadiusVariant],\n styles[size],\n disabled && styles.disabled\n )}\n >\n <InputLabel\n htmlFor={activeId}\n screenReaderLabel={screenReaderLabel}\n label={label}\n />\n <input\n ref={ref}\n id={activeId}\n autoComplete={autoComplete}\n type={\"text\"}\n value={value}\n onChange={onChangeHandler}\n disabled={disabled}\n {...inputProps}\n />\n </div>\n );\n }\n);\n","import * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport styles from \"./TextInput.module.css\";\nimport cx from \"classnames\";\nimport { TextInputProps } from \"./TextInput\";\nimport { TextInputIcon } from \"./TextInputIcon\";\nimport {\n InputSpinner,\n stenaCheck,\n stenaExclamationTriangle,\n TextInputButton,\n} from \"@stenajs-webui/elements\";\nimport { ButtonElementProps, Row } from \"@stenajs-webui/core\";\nimport { IconDefinition } from \"@fortawesome/fontawesome-svg-core\";\n\nexport interface TextInputBoxProps\n extends Pick<\n TextInputProps,\n | \"variant\"\n | \"wrapperClassName\"\n | \"disabled\"\n | \"wrapperStyle\"\n | \"contentLeft\"\n | \"contentRight\"\n | \"disableContentPadding\"\n | \"disableContentPaddingLeft\"\n | \"disableContentPaddingRight\"\n > {\n children?: ReactNode;\n iconRight?: IconDefinition;\n iconLeft?: IconDefinition;\n onClickLeft?: ButtonElementProps[\"onClick\"];\n onClickRight?: ButtonElementProps[\"onClick\"];\n}\n\nexport const TextInputBox: React.FC<TextInputBoxProps> = ({\n variant = \"standard\",\n disabled,\n wrapperClassName,\n wrapperStyle,\n contentLeft,\n contentRight,\n disableContentPadding,\n disableContentPaddingLeft,\n disableContentPaddingRight,\n iconRight,\n iconLeft,\n onClickLeft,\n onClickRight,\n children,\n}) => {\n const currentIconRight =\n variant === \"success\"\n ? stenaCheck\n : variant === \"warning\" || variant === \"error\"\n ? stenaExclamationTriangle\n : iconRight;\n\n const currentContentRight =\n variant === \"loading\" ? <InputSpinner /> : contentRight;\n\n return (\n <div\n className={cx(\n styles.textInput,\n styles.inputContainer,\n styles[variant],\n {\n [styles.disabled]: disabled,\n },\n wrapperClassName\n )}\n style={wrapperStyle}\n >\n <TextInputIcon\n content={contentLeft}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnLeft\n button={\n iconLeft ? (\n <TextInputButton onClick={onClickLeft} icon={iconLeft} />\n ) : undefined\n }\n />\n <Row alignItems={\"center\"}>{children}</Row>\n <TextInputIcon\n content={currentContentRight}\n disableContentPadding={disableContentPadding}\n disableContentPaddingLeft={disableContentPaddingLeft}\n disableContentPaddingRight={disableContentPaddingRight}\n spaceOnRight\n button={\n currentIconRight ? (\n <TextInputButton onClick={onClickRight} icon={currentIconRight} />\n ) : undefined\n }\n />\n </div>\n );\n};\n","import * as React from \"react\";\nimport {\n ChangeEvent,\n ChangeEventHandler,\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./TextArea.module.css\";\nimport { FullOnChangeProps } from \"../types\";\n\ntype Resize =\n | \"none\"\n | \"both\"\n | \"horizontal\"\n | \"vertical\"\n | \"inherit\"\n | \"initial\"\n | \"revert\"\n | \"unset\";\n\nexport interface TextAreaProps\n extends Omit<ComponentPropsWithoutRef<\"textarea\">, \"value\">,\n FullOnChangeProps<string, ChangeEvent<HTMLTextAreaElement>> {\n resize?: Resize;\n readOnly?: boolean;\n rows?: number;\n disabled?: boolean;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n (\n {\n className,\n value,\n onValueChange,\n onChange,\n resize = \"none\",\n readOnly = false,\n rows,\n disabled,\n ...textAreaProps\n },\n ref\n ) => {\n const onChangeHandler: ChangeEventHandler<HTMLTextAreaElement> =\n useCallback(\n (ev) => {\n if (onChange) {\n onChange(ev);\n }\n if (onValueChange) {\n onValueChange(ev.target.value);\n }\n },\n [onChange, onValueChange]\n );\n\n return (\n <textarea\n disabled={disabled}\n rows={rows}\n readOnly={readOnly}\n className={cx(styles.textArea, className)}\n style={{ resize }}\n onChange={onChangeHandler}\n value={value}\n ref={ref}\n {...textAreaProps}\n />\n );\n }\n);\n"],"names":["styleChecked","styles","Switch","value","disabled","onValueChange","className","wrapperRef","restProps","jsx","jsxs","SwitchWithLabel","label","textColor","switchProps","Box","Space","Text","Checkbox","forwardRef","indeterminate","onChange","size","inputProps","ref","localRef","useRef","setRef","element","handleInputChange","useCallback","ev","useEffect","cx","CheckboxWithLabel","children","inputRef","checkboxProps","Row","RadioButton","name","RadioButtonBox","screenReaderLabel","variant","icon","contentRight","style","radioButtonClassName","radioButtonProps","ScreenReaderOnlyText","Icon","RadioButtonWithLabel","useKeyboardNavigation","onKeyDown","onEnter","onEsc","onMove","onDone","onBlur","onFocus","wasHandled","onBlurHandler","onFocusHandler","key","blurMoveAndCancel","direction","e","elementHasSelectionRange","useSelectAllOnMount","moveCursorToEnd","enabled","useTextInput","selectAllOnMount","moveCursorToEndOnMount","autoFocus","onKeyDownHandler","onChangeHandler","TextInputIcon","button","iconClassName","content","spaceOnLeft","spaceOnRight","disableContentPadding","disableContentPaddingLeft","disableContentPaddingRight","Fragment","FontAwesomeIcon","TextInput","props","buttonLeft","buttonRight","contentLeft","iconLeft","iconRight","wrapperClassName","wrapperStyle","hideBorder","refToUse","hookProps","currentIconRight","stenaCheck","stenaExclamationTriangle","currentContentRight","InputSpinner","onStepValueChange","numSteps","min","max","limitWithinRange","newValue","parseFloatElseUndefined","onTextValueChange","v","NumericTextInput","step","hideButtons","onClick","contentRightToUse","UpDownButtons","useNumericInputValue","onValueChangeString","n","valueString","useMemo","PasswordInput","hiddenIcon","stenaEyeShow","visibleIcon","stenaEyeHide","isPassword","setIsPassword","useState","TextInputButton","x","InputLabelText","text","cssColor","getDataProps","InputLabel","htmlFor","LabelledSelect","id","borderVariant","hookId","useId","activeId","stenaAngleDown","LabelledTextInput","React","autoComplete","borderRadiusVariant","TextInputBox","onClickLeft","onClickRight","TextArea","resize","readOnly","rows","textAreaProps"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/forms",
|
|
3
|
-
"version": "20.7.
|
|
3
|
+
"version": "20.7.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "mattias800",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"deploy": "gh-pages -d example/build"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@stenajs-webui/core": "20.7.
|
|
37
|
-
"@stenajs-webui/elements": "20.7.
|
|
38
|
-
"@stenajs-webui/theme": "20.7.
|
|
39
|
-
"@stenajs-webui/tooltip": "20.7.
|
|
36
|
+
"@stenajs-webui/core": "20.7.5",
|
|
37
|
+
"@stenajs-webui/elements": "20.7.5",
|
|
38
|
+
"@stenajs-webui/theme": "20.7.5",
|
|
39
|
+
"@stenajs-webui/tooltip": "20.7.5",
|
|
40
40
|
"classnames": "^2.3.1",
|
|
41
41
|
"date-fns": "2.26.0",
|
|
42
42
|
"lodash-es": "^4.17.21"
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"files": [
|
|
82
82
|
"dist"
|
|
83
83
|
],
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "393e2f632de999467460bd1ae5c29b4b6b453d17"
|
|
85
85
|
}
|