UNPKG

@mussonindustrial/pyro-mui-joy

Version:

A port of Material UI Joy Theme for Ignition by Inductive Automation

296 lines (251 loc) 8.96 kB
[data-component='ia.input.numeric-entry-field'], .ia_numericEntryFieldComponent__modal .ia_inputField__wrapper { @include variant-support(Input); /* Define component properties */ --joy-Input-radius: var(--joy-radius-sm); --joy-Input-gap: 0.5rem; --joy-Input-placeholderColor: inherit; --joy-Input-placeholderOpacity: 0.5; --joy-Input-focused: 0; --joy-Input-focusedThickness: var(--joy-focus-thickness); --joy-Input-focusedHighlight: var( --joy-variant-focusedHighlight, var(--joy-palette-focusVisible) ); --joy-Icon-fontSize: 0.85rem; --joy-Input-decoratorChildOffset: min( calc( var(--joy-Input-paddingInline) - ( var(--joy-Input-minHeight) - 2 * var(--joy-variant-borderWidth, 0px) - var(--joy-Input-decoratorChildHeight) ) / 2 ), var(--joy-Input-paddingInline) ); --joy-_Input-paddingBlock: max( ( var(--joy-Input-minHeight) - 2 * var(--joy-variant-borderWidth, 0px) - var(--joy-Input-decoratorChildHeight) ) / 2, 0px ); --joy-Input-decoratorChildRadius: max( var(--joy-Input-radius) - var(--joy-variant-borderWidth, 0px) - var(--joy-_Input-paddingBlock), min( var(--joy-_Input-paddingBlock) + var(--joy-variant-borderWidth, 0px), var(--joy-Input-radius) / 2 ) ); --joy-Button-minHeight: var(--joy-Input-decoratorChildHeight); --joy-IconButton-size: var(--joy-Input-decoratorChildHeight); --joy-Button-radius: var(--joy-Input-decoratorChildRadius); --joy-IconButton-radius: var(--joy-Input-decoratorChildRadius); /* Default to Medium size */ --joy-Input-minHeight: 2.25rem; --joy-Input-paddingInline: 0.75rem; --joy-Input-decoratorChildHeight: min(1.75rem, var(--joy-Input-minHeight)); /* Style */ box-sizing: border-box; min-width: 0px; min-height: var(--joy-Input-minHeight); overflow: visible; position: relative; display: flex; font-family: var(--joy-fontFamily-body); font-size: var(--joy-fontSize-md); /* Apply component properties */ color: var(--joy-Input-Color); background-color: var( --joy-Input-Bg, var(--joy-palette-background-surface) ); border-color: var(--joy-Input-Border); border-width: var(--joy-Input-borderWidth); border-style: var(--joy-Input-borderStyle); border-radius: var(--joy-Input-radius); min-height: var(--joy-Input-minHeight) !important; padding-inline: var(--joy-Input-paddingInline); &:hover { --joy-Input-Border: var( --joy-variant-HoverBorder, var(--joy-Input-default-HoverBorder) ); } &:disabled { @include component-state(Input, Disabled); pointer-events: none; cursor: default; } &[psc='Joy/Variant/plain'], &[psc='Joy/Variant/outlined'] { --joy-Input-Bg: var(--joy-palette-background-surface); } &::placeholder { font-family: var(--joy-fontFamily-body); font-size: var(--joy-fontSize-md); color: var(--joy-Input-placeholderColor); opacity: var(--joy-Input-placeholderOpacity); } &:focus-within { outline-width: var(--joy-Input-focusedThickness); outline-style: solid; outline-color: var(--joy-Input-focusedHighlight); outline-offset: min( calc(var(--joy-Input-borderWidth, 0px) * -1), calc(var(--joy-Input-focusedThickness) * -1) ); } svg { fill: currentColor; } input { border: none; color: var(--joy-Input-Color); background-color: transparent; font-family: var(--joy-fontFamily-body); font-size: var(--joy-fontSize-md); /* margin-inline-start: calc(var(--joy-Input-decoratorChildOffset) * -1); */ &::placeholder { font-family: var(--joy-fontFamily-body); font-size: var(--joy-fontSize-md); color: var(--joy-Input-placeholderColor); opacity: var(--joy-Input-placeholderOpacity); } } } .ia_numericEntryFieldComponent__modal .ia_inputField, .ia_numericEntryFieldComponent__modal .ia_inputField__wrapper { @include style-forced(Input, outlined, primary); } /* Edit Icon */ .ia_numericEntryFieldComponent__editLink { @include variant-support(IconButton); --joy-Icon-margin: initial; min-width: var(--joy-IconButton-size, 2.25rem) !important; min-height: var(--joy-IconButton-size, 2.25rem) !important; padding-inline: 0.25rem; padding-block: 0px; margin: var(--joy-IconButton-margin); border-radius: var(--joy-IconButton-radius, var(--joy-radius-sm)); cursor: pointer; display: inline-flex; align-items: center; -webkit-box-pack: center; justify-content: center; position: relative; --joy-variant-borderWidth: 0px; margin-inline-start: calc(var(--joy-_Input-paddingBlock) / 2); margin-inline-end: calc(var(--joy-Input-decoratorChildOffset) * -1); --joy-Button-borderStyle: none; --joy-Button-radius: var(--joy-radius-sm); color: var(--joy-IconButton-Color); background-color: var(--joy-IconButton-Bg); border-color: var(--joy-IconButton-Border); border-width: var(--joy-IconButton-borderWidth); border-style: var(--joy-IconButton-borderStyle); border-radius: var(--joy-IconButton-radius); &:hover { @include component-state(IconButton, Hover); } &:active { @include component-state(IconButton, Active); } svg { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; margin: var(--joy-Icon-margin); width: 1em; height: 1em; display: inline-block; fill: currentColor; -webkit-flex-shrink: 0; -ms-flex-negative: 0; flex-shrink: 0; font-size: var(--joy-Icon-fontSize, 1.25rem); color: var(--joy-Icon-color); } g { width: 100%; height: 100%; } } /* Size Support */ [psc='Joy/Size/sm'] [data-component='ia.input.numeric-entry-field'], [psc='Joy/Size/sm'][data-component='ia.input.numeric-entry-field'] { --joy-Input-minHeight: 2rem; --joy-Input-paddingInline: 0.5rem; --joy-Input-decoratorChildHeight: min(1.5rem, var(--joy-Input-minHeight)); } [psc='Joy/Size/md'] [data-component='ia.input.numeric-entry-field'], [psc='Joy/Size/md'][data-component='ia.input.numeric-entry-field'] { --joy-Input-minHeight: 2.25rem; --joy-Input-paddingInline: 0.75rem; --joy-Input-decoratorChildHeight: min(1.75rem, var(--joy-Input-minHeight)); } [psc='Joy/Size/lg'] [data-component='ia.input.numeric-entry-field'], [psc='Joy/Size/lg'][data-component='ia.input.numeric-entry-field'] { --joy-Input-minHeight: 2.75rem; --joy-Input-paddingInline: 1rem; --joy-Input-decoratorChildHeight: min(2.25rem, var(--joy-Input-minHeight)); } /* Resets and Fixes */ .ia_numericEntryFieldComponent__wrapper, .ia_numericEntryFieldComponent__wrapper--joy-readOnly { justify-content: stretch !important; align-items: center !important; height: unset !important; width: 100% !important; border: none; background-color: transparent; } /* Modal */ .ia_numericEntryFieldComponent__modal { background-color: var(--joy-palette-background-popup); border-color: var(--joy-palette-neutral-outlinedBorder); border-width: var(--joy-variant-outlined-borderWidth); border-style: var(--joy-variant-outlined-borderStyle); box-shadow: var(--joy-shadow-lg); border-radius: var(--joy-radius-sm); flex-basis: auto; flex-grow: 1; .ia_button--joy-primary { margin-left: 10px; @include style-forced(Button, solid, primary); &:hover { @include component-state-forced(Button, solid, Hover); } &:active { @include component-state-forced(Button, solid, Active); } } .ia_button--joy-secondary { margin-left: auto; @include style-forced(Button, plain, primary); &:hover { @include component-state-forced(Button, plain, Hover); } &:active { @include component-state-forced(Button, plain, Active); } } &.component-modal-large-viewport.component-modal-below:not( .hide-arrow ):after, &.component-modal-large-viewport.component-modal-below:not( .hide-arrow ):before { border-bottom-color: var(--joy-palette-neutral-600) !important; } &_content { align-items: stretch; } &:not(.component-modal-large-viewport) &_content { width: 100% !important; } }