{"version":3,"sources":["../src/styles.css"],"sourcesContent":["/**\n * Optional CSS custom properties for @formosaic/core.\n *\n * Import this stylesheet in your application to get default theming:\n *   import \"@formosaic/core/src/styles.css\";\n *\n * Override any variable on a parent element or :root to customize colors.\n */\n:root {\n  --formosaic-error-color: #d13438;\n  --formosaic-warning-color: #ffb900;\n  --formosaic-saving-color: #0078d4;\n  --formosaic-label-color: #323130;\n  --formosaic-required-color: #d13438;\n  --formosaic-border-radius: 4px;\n  --formosaic-field-gap: 8px;\n  --formosaic-font-size: 14px;\n  --formosaic-animation-duration: 150ms;\n  --formosaic-animation-easing: ease-out;\n  --formosaic-highlight-color: rgba(0, 120, 212, 0.1);\n}\n\n/* Screen-reader-only utility (visually hidden, accessible to assistive technology) */\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  padding: 0;\n  margin: -1px;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  white-space: nowrap;\n  border: 0;\n}\n\n/* Focus styles for keyboard navigation */\n.formosaic-form :focus-visible {\n  outline: 2px solid var(--formosaic-saving-color, #0078d4);\n  outline-offset: 2px;\n}\n\n/* ─── Field show/hide animation (grid height collapse + opacity) ─── */\n.formosaic-field-animate {\n  display: grid;\n  grid-template-rows: 1fr;\n  opacity: 1;\n  transition:\n    grid-template-rows var(--formosaic-animation-duration) var(--formosaic-animation-easing),\n    opacity var(--formosaic-animation-duration) var(--formosaic-animation-easing);\n}\n\n@starting-style {\n  .formosaic-field-animate {\n    grid-template-rows: 0fr;\n    opacity: 0;\n  }\n}\n\n.formosaic-field-animate[data-first-render] {\n  transition: none;\n}\n\n.formosaic-field-animate[data-exiting] {\n  grid-template-rows: 0fr;\n  opacity: 0;\n}\n\n.formosaic-field-animate-inner {\n  overflow: hidden;\n  min-height: 0;\n}\n\n/* ─── Required indicator fade ─── */\n.formosaic-required-indicator {\n  opacity: 1;\n  transition: opacity var(--formosaic-animation-duration) var(--formosaic-animation-easing);\n}\n\n@starting-style {\n  .formosaic-required-indicator {\n    opacity: 0;\n  }\n}\n\n/* ─── Error message slide-in ─── */\n.formosaic-error-animate {\n  opacity: 1;\n  transform: translateY(0);\n  transition:\n    opacity var(--formosaic-animation-duration) var(--formosaic-animation-easing),\n    transform var(--formosaic-animation-duration) var(--formosaic-animation-easing);\n}\n\n@starting-style {\n  .formosaic-error-animate {\n    opacity: 0;\n    transform: translateY(-4px);\n  }\n}\n\n/* Error slide-in when error appears on already-visible field */\n.formosaic-error-animate[data-error-entering] {\n  animation: formosaic-error-slide-in var(--formosaic-animation-duration) var(--formosaic-animation-easing);\n}\n\n@keyframes formosaic-error-slide-in {\n  from { opacity: 0; transform: translateY(-4px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n\n/* ─── Read-only crossfade ─── */\n.formosaic-field-container[data-readonly-entering] {\n  animation: formosaic-readonly-fade var(--formosaic-animation-duration) var(--formosaic-animation-easing);\n}\n\n@keyframes formosaic-readonly-fade {\n  from { opacity: 0.6; }\n  to { opacity: 1; }\n}\n\n/* ─── Label change pulse ─── */\n.formosaic-field-container[data-label-changing] {\n  animation: formosaic-label-pulse calc(var(--formosaic-animation-duration) * 2) var(--formosaic-animation-easing);\n}\n\n@keyframes formosaic-label-pulse {\n  0% { opacity: 1; }\n  50% { opacity: 0.4; }\n  100% { opacity: 1; }\n}\n\n/* ─── Dropdown option change highlight ─── */\n.formosaic-field-container[data-options-changed] {\n  animation: formosaic-options-flash calc(var(--formosaic-animation-duration) * 2) var(--formosaic-animation-easing);\n}\n\n@keyframes formosaic-options-flash {\n  from { background-color: var(--formosaic-highlight-color); }\n  to { background-color: transparent; }\n}\n\n/* ─── Reduced motion ─── */\n@media (prefers-reduced-motion: reduce) {\n  :root {\n    --formosaic-animation-duration: 0ms;\n  }\n}\n\n/* ─── Animations disabled via settings ─── */\n[data-formosaic-no-animations] {\n  --formosaic-animation-duration: 0ms;\n}\n"],"mappings":";AAQA;AACE,2BAAyB;AACzB,6BAA2B;AAC3B,4BAA0B;AAC1B,2BAAyB;AACzB,8BAA4B;AAC5B,6BAA2B;AAC3B,yBAAuB;AACvB,yBAAuB;AACvB,kCAAgC;AAChC,gCAA8B;AAC9B,+BAA6B,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;AACjD;AAGA,CAAC;AACC,YAAU;AACV,SAAO;AACP,UAAQ;AACR,WAAS;AACT,UAAQ;AACR,YAAU;AACV,QAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpB,eAAa;AACb,UAAQ;AACV;AAGA,CAAC,eAAe;AACd,WAAS,IAAI,MAAM,IAAI,wBAAwB,EAAE;AACjD,kBAAgB;AAClB;AAGA,CAAC;AACC,WAAS;AACT,sBAAoB;AACpB,WAAS;AACT,cACE,mBAAmB,IAAI,gCAAgC,IAAI,6BAA6B,EACxF,QAAQ,IAAI,gCAAgC,IAAI;AACpD;AAEA;AACE,GAVD;AAWG,wBAAoB;AACpB,aAAS;AACX;AACF;AAEA,CAhBC,uBAgBuB,CAAC;AACvB,cAAY;AACd;AAEA,CApBC,uBAoBuB,CAAC;AACvB,sBAAoB;AACpB,WAAS;AACX;AAEA,CAAC;AACC,YAAU;AACV,cAAY;AACd;AAGA,CAAC;AACC,WAAS;AACT,cAAY,QAAQ,IAAI,gCAAgC,IAAI;AAC9D;AAEA;AACE,GAND;AAOG,aAAS;AACX;AACF;AAGA,CAAC;AACC,WAAS;AACT,aAAW,WAAW;AACtB,cACE,QAAQ,IAAI,gCAAgC,IAAI,6BAA6B,EAC7E,UAAU,IAAI,gCAAgC,IAAI;AACtD;AAEA;AACE,GATD;AAUG,aAAS;AACT,eAAW,WAAW;AACxB;AACF;AAGA,CAhBC,uBAgBuB,CAAC;AACvB,aAAW,yBAAyB,IAAI,gCAAgC,IAAI;AAC9E;AAEA,WAHa;AAIX;AAAO,aAAS;AAAG,eAAW,WAAW;AAAO;AAChD;AAAK,aAAS;AAAG,eAAW,WAAW;AAAI;AAC7C;AAGA,CAAC,yBAAyB,CAAC;AACzB,aAAW,wBAAwB,IAAI,gCAAgC,IAAI;AAC7E;AAEA,WAHa;AAIX;AAAO,aAAS;AAAK;AACrB;AAAK,aAAS;AAAG;AACnB;AAGA,CAVC,yBAUyB,CAAC;AACzB,aAAW,sBAAsB,KAAK,IAAI,gCAAgC,EAAE,GAAG,IAAI;AACrF;AAEA,WAHa;AAIX;AAAK,aAAS;AAAG;AACjB;AAAM,aAAS;AAAK;AACpB;AAAO,aAAS;AAAG;AACrB;AAGA,CArBC,yBAqByB,CAAC;AACzB,aAAW,wBAAwB,KAAK,IAAI,gCAAgC,EAAE,GAAG,IAAI;AACvF;AAEA,WAHa;AAIX;AAAO,sBAAkB,IAAI;AAA8B;AAC3D;AAAK,sBAAkB;AAAa;AACtC;AAGA,QAAO,wBAAyB;AAC9B;AACE,oCAAgC;AAClC;AACF;AAGA,CAAC;AACC,kCAAgC;AAClC;","names":[]}