{"version":3,"sources":["../src/Stack.jsx"],"names":["_a","Stack"],"mappings":"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","file":"Stack.mjs","sourcesContent":["/* eslint-disable react/jsx-filename-extension */\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { generateAtomics } from './generateAtomics';\nimport css from './css';\n\nconst stackAtomics = generateAtomics(({ theme }) => {\n  const conditions = {};\n  Object.entries(theme.breakpoints.values)\n    .sort((a, b) => a[1] - b[1])\n    .forEach(([breakpoint, value]) => {\n      conditions[breakpoint] = `@media (min-width: ${value}${theme.breakpoints.unit ?? 'px'})`;\n    });\n  return {\n    conditions,\n    defaultCondition: theme.breakpoints?.keys?.[0],\n    properties: {\n      flexDirection: ['column', 'column-reverse', 'row', 'row-reverse'],\n      gap: ['--Stack-gap'],\n    },\n    shorthands: {\n      direction: ['flexDirection'],\n      spacing: ['gap'],\n    },\n    multipliers: {\n      gap: Array.isArray(theme.vars?.spacing) ? theme.vars.spacing[0] : theme.vars?.spacing,\n    },\n  };\n});\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n *\n * @param {React.ReactNode} children\n * @param {React.ReactElement} separator\n * @returns {React.ReactNode[]}\n */\nfunction joinChildren(children, separator) {\n  const childrenArray = React.Children.toArray(children).filter(Boolean);\n\n  return childrenArray.reduce((output, child, index) => {\n    output.push(child);\n\n    if (index < childrenArray.length - 1) {\n      output.push(React.cloneElement(separator, { key: `separator-${index}` }));\n    }\n\n    return output;\n  }, []);\n}\n\nconst Stack = React.forwardRef(function Stack(\n  {\n    children,\n    spacing = 0,\n    style,\n    className,\n    divider,\n    component = 'div',\n    direction = 'column',\n    ...other\n  },\n  ref,\n) {\n  const stackAtomicsObj = {\n    direction,\n    spacing,\n  };\n  const stackClasses = stackAtomics(stackAtomicsObj);\n  const Component = component;\n  return (\n    <Component\n      ref={ref}\n      className={clsx(\n        css({\n          display: 'flex',\n        }),\n        stackClasses.className,\n        className,\n      )}\n      style={{ ...style, ...stackClasses.style }}\n      {...other}\n    >\n      {divider ? joinChildren(children, divider) : children}\n    </Component>\n  );\n});\n\nif (process.env.NODE_ENV !== 'production') {\n  Stack.propTypes /* remove-proptypes */ = {\n    // ┌────────────────────────────── Warning ──────────────────────────────┐\n    // │ These PropTypes are generated from the TypeScript type definitions. │\n    // │    To update them, edit the d.ts file and run `pnpm proptypes`.     │\n    // └─────────────────────────────────────────────────────────────────────┘\n    /**\n     * The content of the component.\n     */\n    children: PropTypes.node,\n    /**\n     * @ignore\n     */\n    className: PropTypes.string,\n    /**\n     * The component used for the root node.\n     * Either a string to use a HTML element or a component.\n     */\n    component: PropTypes.elementType,\n    /**\n     * @ignore\n     */\n    direction: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([\n      PropTypes.oneOf(['column', 'column-reverse', 'row', 'row-reverse']),\n      PropTypes.arrayOf(PropTypes.oneOf(['column', 'column-reverse', 'row', 'row-reverse'])),\n      PropTypes.object,\n    ]),\n    /**\n     * @ignore\n     */\n    divider: PropTypes.node,\n    /**\n     * @ignore\n     */\n    spacing: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([\n      PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired),\n      PropTypes.number,\n      PropTypes.object,\n      PropTypes.string,\n    ]),\n    /**\n     * @ignore\n     */\n    style: PropTypes.shape(),\n  };\n}\n\nif (Stack) {\n  Stack.displayName = 'Stack';\n}\n\nexport default Stack;\n"]}