{"version":3,"sources":["../src/stack/index.tsx"],"names":["forwardRef","Stack","spacing"],"mappings":";;;;;;;AAgBA,IAAM,QAAA,GAA4D;AAAA,EAChE,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,UAAA;AAAA,EACL,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU;AACZ,CAAA;AACA,IAAM,UAAA,GAAoE;AAAA,EACxE,KAAA,EAAO,YAAA;AAAA,EACP,MAAA,EAAQ,QAAA;AAAA,EACR,GAAA,EAAK,UAAA;AAAA,EACL,OAAA,EAAS,eAAA;AAAA,EACT,MAAA,EAAQ,cAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAA;AAcO,IAAM,QAAQA,gBAAA,CAAuC,SAASC,MAAAA,CACnE,EAAE,YAAY,QAAA,EAAU,GAAA,GAAM,CAAA,EAAG,KAAA,EAAO,SAAS,IAAA,EAAM,MAAA,EAAQ,WAAW,KAAA,EAAO,QAAA,IACjF,GAAA,EACA;AACA,EAAA,MAAM,QAAA,GAA0B;AAAA,IAC9B,OAAA,EAAS,SAAS,aAAA,GAAgB,MAAA;AAAA,IAClC,aAAA,EAAe,SAAA;AAAA,IACf,GAAA,EAAKC,aAAQ,GAAG,CAAA;AAAA,IAChB,UAAA,EAAY,KAAA,GAAQ,QAAA,CAAS,KAAK,CAAA,GAAI,MAAA;AAAA,IACtC,cAAA,EAAgB,OAAA,GAAU,UAAA,CAAW,OAAO,CAAA,GAAI,MAAA;AAAA,IAChD,QAAA,EAAU,OAAO,MAAA,GAAS,MAAA;AAAA,IAC1B,GAAG;AAAA,GACL;AACA,EAAA,sCACG,KAAA,EAAA,EAAI,GAAA,EAAU,SAAA,EAAsB,KAAA,EAAO,UACzC,QAAA,EACH,CAAA;AAEJ,CAAC","file":"stack.cjs","sourcesContent":["/**\n * Stack (web). Flex container with a `gap` that maps to the spacing scale.\n *\n *   <Stack gap={4}>...</Stack>             // 16px gap, column by default\n *   <Stack direction=\"row\" gap={2} align=\"center\">\n *\n * For tighter shorthands -- horizontal layout, single line, etc. -- use Flex\n * which wraps this with sensible defaults.\n */\nimport { forwardRef, type CSSProperties, type ForwardedRef, type ReactNode } from \"react\";\nimport { spacing, type SpacingKey } from \"@plyxui/core\";\n\nexport type StackDirection = \"row\" | \"column\" | \"row-reverse\" | \"column-reverse\";\nexport type StackAlign = \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\nexport type StackJustify = \"start\" | \"center\" | \"end\" | \"between\" | \"around\" | \"evenly\";\n\nconst alignMap: Record<StackAlign, CSSProperties[\"alignItems\"]> = {\n  start: \"flex-start\",\n  center: \"center\",\n  end: \"flex-end\",\n  stretch: \"stretch\",\n  baseline: \"baseline\",\n};\nconst justifyMap: Record<StackJustify, CSSProperties[\"justifyContent\"]> = {\n  start: \"flex-start\",\n  center: \"center\",\n  end: \"flex-end\",\n  between: \"space-between\",\n  around: \"space-around\",\n  evenly: \"space-evenly\",\n};\n\nexport interface StackProps {\n  direction?: StackDirection;\n  gap?: SpacingKey;\n  align?: StackAlign;\n  justify?: StackJustify;\n  wrap?: boolean;\n  inline?: boolean;\n  className?: string;\n  style?: CSSProperties;\n  children?: ReactNode;\n}\n\nexport const Stack = forwardRef<HTMLDivElement, StackProps>(function Stack(\n  { direction = \"column\", gap = 0, align, justify, wrap, inline, className, style, children },\n  ref,\n) {\n  const computed: CSSProperties = {\n    display: inline ? \"inline-flex\" : \"flex\",\n    flexDirection: direction,\n    gap: spacing[gap],\n    alignItems: align ? alignMap[align] : undefined,\n    justifyContent: justify ? justifyMap[justify] : undefined,\n    flexWrap: wrap ? \"wrap\" : undefined,\n    ...style,\n  };\n  return (\n    <div ref={ref} className={className} style={computed}>\n      {children}\n    </div>\n  );\n});\n"]}