{"version":3,"file":"Input.module.cjs","names":[],"sources":["../../../src/components/Input/Input.module.css"],"sourcesContent":[".wrapper {\n    display: flex;\n    flex-direction: column;\n    gap: var(--tempest-space-1);\n    width: 100%;\n}\n\n.label {\n    font-size: var(--tempest-text-sm);\n    font-weight: var(--tempest-weight-semibold);\n    color: var(--tempest-text);\n    line-height: var(--tempest-leading-snug);\n}\n\n.required {\n    color: var(--tempest-danger);\n    margin-left: 2px;\n}\n\n.field {\n    position: relative;\n    display: flex;\n    align-items: center;\n}\n\n.input {\n    width: 100%;\n    height: var(--tempest-control-height-md);\n    padding: 0 var(--tempest-control-padding-md);\n    border: 1px solid var(--tempest-border);\n    border-radius: var(--tempest-control-radius);\n    background-color: var(--tempest-bg);\n    color: var(--tempest-text);\n    font-family: var(--tempest-font-sans);\n    font-size: var(--tempest-control-font-md);\n    line-height: var(--tempest-leading-snug);\n    box-shadow: var(--tempest-shadow-xs);\n    transition: var(--tempest-transition-color), var(--tempest-transition-shadow);\n}\n\n.input::placeholder {\n    color: var(--tempest-text-subtle);\n}\n\n.input:hover:not(:disabled):not(:focus) {\n    border-color: var(--tempest-border-strong);\n}\n\n.input:focus {\n    outline: none;\n    border-color: var(--tempest-primary);\n    box-shadow: 0 0 0 var(--tempest-focus-ring-width) var(--tempest-focus-ring-color);\n}\n\n.input:disabled {\n    background-color: var(--tempest-surface);\n    cursor: not-allowed;\n    color: var(--tempest-text-muted);\n    box-shadow: none;\n}\n\n.input:read-only {\n    background-color: var(--tempest-surface);\n}\n\n/* Sizes — density-aware. Applied directly on the <input>. */\n.sizeSm {\n    height: var(--tempest-control-height-sm);\n    padding: 0 var(--tempest-control-padding-sm);\n    font-size: var(--tempest-control-font-sm);\n}\n.sizeMd {\n    height: var(--tempest-control-height-md);\n    padding: 0 var(--tempest-control-padding-md);\n    font-size: var(--tempest-control-font-md);\n}\n.sizeLg {\n    height: var(--tempest-control-height-lg);\n    padding: 0 var(--tempest-control-padding-lg);\n    font-size: var(--tempest-control-font-lg);\n}\n\n.hasLeftIcon {\n    padding-left: 36px;\n}\n\n.hasRightIcon {\n    padding-right: 36px;\n}\n\n.iconLeft,\n.iconRight {\n    position: absolute;\n    display: flex;\n    align-items: center;\n    color: var(--tempest-text-muted);\n    pointer-events: none;\n}\n\n/*\n * Decorative icons let clicks fall through to the input, but interactive\n * adornments (a clear/reveal/save button passed as leftIcon/rightIcon) must\n * stay clickable — re-enable pointer events on the slot's children.\n */\n.iconLeft > *,\n.iconRight > * {\n    pointer-events: auto;\n}\n\n.iconLeft {\n    left: 12px;\n}\n\n.iconRight {\n    right: 12px;\n}\n\n.error .input {\n    border-color: var(--tempest-danger);\n}\n\n.error .input:focus {\n    box-shadow: 0 0 0 var(--tempest-focus-ring-width)\n        color-mix(in srgb, var(--tempest-danger) 25%, transparent);\n}\n\n.helper {\n    font-size: var(--tempest-text-xs);\n    color: var(--tempest-text-muted);\n    line-height: var(--tempest-leading-snug);\n}\n\n.errorText {\n    font-size: var(--tempest-text-xs);\n    color: var(--tempest-danger);\n    line-height: var(--tempest-leading-snug);\n}\n"],"mappings":";"}