{"version":3,"file":"index.dev.mjs","sources":["../../src/index.ts"],"sourcesContent":["import compound from \"@dash-ui/compound\";\nimport type { ResponsiveStyles } from \"@dash-ui/responsive\";\nimport responsive from \"@dash-ui/responsive\";\nimport type {\n  DashThemes,\n  DashTokens,\n  StyleObject,\n  Styles,\n} from \"@dash-ui/styles\";\n\n/**\n * Creates new layout style utilities using an existing Dash `styles` instance.\n *\n * @param styles - An `styles` instance from `@dash-ui/styles`\n * @param mediaQueries - The media queries to use for responsive styles\n */\nfunction layout<\n  Tokens extends\n    | DashTokens\n    | {\n        gap: any;\n        pad: any;\n        borderWidth: any;\n        shadow: any;\n        radius: any;\n        color: any;\n        zIndex: any;\n      },\n  Themes extends DashThemes,\n  MQ extends Record<string, string>\n>(styles: Styles<Tokens, Themes>, mediaQueries?: MQ) {\n  const compoundStyles = compound(styles);\n  const responsiveStyles: ResponsiveStyles<Tokens, Themes, MQ> = responsive(\n    styles,\n    mediaQueries || {}\n  );\n\n  const box = compoundStyles(\n    {\n      /**\n       * Sets a `display` CSS property on your component\n       */\n      display: responsiveStyles.variants({\n        flex: { display: \"flex\" },\n        inlineFlex: { display: \"inline-flex\" },\n        grid: { display: \"grid\" },\n        inlineGrid: { display: \"inlineGrid\" },\n        block: { display: \"block\" },\n        inlineBlock: { display: \"inline-block\" },\n        inline: { display: \"inline\" },\n        table: { display: \"table\" },\n        tableCell: { display: \"table-cell\" },\n        tableRowGroup: { display: \"table-row-group\" },\n        tableRow: { display: \"table-row\" },\n        tableColumn: { display: \"table-column\" },\n        tableColumnGroup: { display: \"table-column-group\" },\n        tableHeader: { display: \"table-header\" },\n        tableHeaderGroup: { display: \"table-header-group\" },\n        tableFooterGroup: { display: \"table-footer-group\" },\n        listItem: { display: \"list-item\" },\n        contents: { display: \"contents\" },\n        runIn: { display: \"run-in\" },\n        none: { display: \"none\" },\n        inherit: { display: \"inherit\" },\n        initial: { display: \"initial\" },\n        unset: { display: \"unset\" },\n        revert: { display: \"revert\" },\n      }),\n      /**\n       * Sets a `position` CSS property on your component\n       */\n      position: responsiveStyles.variants({\n        absolute: { position: \"absolute\" },\n        relative: { position: \"relative\" },\n        fixed: { position: \"fixed\" },\n        sticky: { position: \"sticky\" },\n        static: { position: \"static\" },\n        inherit: { position: \"inherit\" },\n        initial: { position: \"initial\" },\n        unset: { position: \"unset\" },\n        revert: { position: \"revert\" },\n      }),\n      /**\n       * Sets a `width` CSS property on your component\n       */\n      width: responsiveStyles.lazy((width: number | string) => ({ width })),\n      /**\n       * Sets a `height` CSS property on your component\n       */\n      height: responsiveStyles.lazy((height: number | string) => ({ height })),\n      /**\n       * Sets a `max-width` CSS property on your component\n       */\n      maxWidth: responsiveStyles.lazy((maxWidth: number | string) => ({\n        maxWidth,\n      })),\n      /**\n       * Sets a `max-height` CSS property on your component\n       */\n      maxHeight: responsiveStyles.lazy((maxHeight: number | string) => ({\n        maxHeight,\n      })),\n      /**\n       * Sets a `max-width` CSS property on your component\n       */\n      minWidth: responsiveStyles.lazy((minWidth: number | string) => ({\n        minWidth,\n      })),\n      /**\n       * Sets a `max-height` CSS property on your component\n       */\n      minHeight: responsiveStyles.lazy((minHeight: number | string) => ({\n        minHeight,\n      })),\n      /**\n       * Sets a `width` and `height` CSS property on your component\n       */\n      size: responsiveStyles.lazy((size: number | string) => ({\n        width: size,\n        height: size,\n      })),\n      /**\n       * Sets a `padding` CSS property on your component using the \"pad\"\n       * token in your theme\n       */\n      pad: responsiveStyles.lazy(\n        (\n            value:\n              | Extract<keyof Tokens[\"pad\"], string | number>\n              | Extract<keyof Tokens[\"pad\"], string | number>[]\n          ) =>\n          ({ pad }): StyleObject => ({\n            padding: Array.isArray(value)\n              ? value.map((k) => pad[k]).join(\" \")\n              : pad[value],\n          })\n      ),\n      /**\n       * Sets a `background-color` CSS property on your component using the \"color\"\n       * token in your theme\n       */\n      bg: responsiveStyles.variants(\n        reduce(\n          styles.tokens.color as Record<\n            Extract<keyof Tokens[\"color\"], string | number>,\n            string | number\n          >,\n          (\n            acc: Record<\n              Extract<keyof Tokens[\"color\"], string | number> | \"default\",\n              StyleObject\n            >,\n            key\n          ) => {\n            acc[key] = {\n              backgroundColor: styles.tokens.color[key],\n            };\n\n            return acc;\n          },\n          {}\n        )\n      ),\n      /**\n       * Sets a `border-color` CSS property on your component using the \"color\"\n       * token in your theme and a `border-width` property using the \"borderWidth\"\n       * token.\n       */\n      border: responsiveStyles.lazy(\n        ([width, borderColor]: [\n            (\n              | Extract<keyof Tokens[\"borderWidth\"], string | number>\n              | Extract<keyof Tokens[\"borderWidth\"], string | number>[]\n            ),\n            Extract<keyof Tokens[\"color\"], string | number>\n          ]) =>\n          ({ borderWidth, color }): StyleObject => ({\n            borderWidth: Array.isArray(width)\n              ? width.map((w) => borderWidth[w]).join(\" \")\n              : borderWidth[width],\n            borderStyle: \"solid\",\n            borderColor: color[borderColor],\n          })\n      ),\n      /**\n       * Sets a `box-shadow` CSS property on your component using the \"shadow\"\n       * token in your theme\n       */\n      shadow: responsiveStyles.variants(\n        reduce(\n          styles.tokens.shadow as Record<\n            Extract<keyof Tokens[\"shadow\"], string | number>,\n            string\n          >,\n          (\n            acc: Record<\n              Extract<keyof Tokens[\"shadow\"], string | number> | \"default\",\n              StyleObject\n            >,\n            key\n          ) => {\n            acc[key] = {\n              boxShadow: styles.tokens.shadow[key],\n            };\n\n            return acc;\n          },\n          {}\n        )\n      ),\n      /**\n       * Sets a `border-radius` CSS property on your component using the \"radius\"\n       * token in your theme\n       */\n      radius: responsiveStyles.lazy(\n        (\n            value:\n              | Extract<keyof Tokens[\"radius\"], string | number>\n              | Extract<keyof Tokens[\"radius\"], string | number>[]\n          ) =>\n          ({ radius }): StyleObject => ({\n            borderRadius: Array.isArray(value)\n              ? value.map((k) => radius[k]).join(\" \")\n              : radius[value],\n          })\n      ),\n      /**\n       * Sets the top, right, bottom, left position of the element\n       *\n       * @see https://developer.mozilla.org/en-US/docs/Web/CSS/inset\n       */\n      inset: responsiveStyles.lazy(\n        (value: string | number | (string | number)[]) => {\n          if (Array.isArray(value)) {\n            return {\n              \"@supports (inset: 10px)\": {\n                inset: value.map(unit).join(\" \"),\n              },\n              \"@supports not (inset: 10px)\": {\n                top: value[0],\n                right: value[1] ?? value[0],\n                bottom: value[2] ?? value[0],\n                left: value[3] ?? value[1] ?? value[0],\n              },\n            };\n          }\n\n          return {\n            \"@supports (inset: 10px)\": {\n              inset: value,\n            },\n            \"@supports not (inset: 10px)\": {\n              top: value,\n              right: value,\n              bottom: value,\n              left: value,\n            },\n          };\n        }\n      ),\n      /**\n       * Sets a `z-index` CSS property on your component\n       */\n      z: responsiveStyles.variants(\n        reduce(\n          styles.tokens.zIndex as Record<\n            Extract<keyof Tokens[\"zIndex\"], string | number>,\n            string | number\n          >,\n          (\n            acc: Record<\n              Extract<keyof Tokens[\"zIndex\"], string | number> | \"default\",\n              StyleObject\n            >,\n            key\n          ) => {\n            acc[key] = {\n              zIndex: styles.tokens.zIndex[key],\n            };\n\n            return acc;\n          },\n          {}\n        )\n      ),\n    } as const,\n    { atomic: true }\n  );\n\n  const alignItems = responsiveStyles.variants({\n    start: {\n      \"@supports (align-items: start)\": {\n        alignItems: \"start\",\n      },\n      \"@supports not (align-items: start)\": {\n        alignItems: \"flex-start\",\n      },\n    },\n    end: {\n      \"@supports (align-items: end)\": {\n        alignItems: \"end\",\n      },\n      \"@supports not (align-items: end)\": {\n        alignItems: \"flex-end\",\n      },\n    },\n    center: { alignItems: \"center\" },\n    baseline: { alignItems: \"baseline\" },\n    stretch: { alignItems: \"stretch\" },\n    normal: { alignItems: \"normal\" },\n    inherit: { alignItems: \"inherit\" },\n    initial: { alignItems: \"initial\" },\n    unset: { alignItems: \"unset\" },\n    revert: { alignItems: \"revert\" },\n  } as const);\n\n  const justifyItems = responsiveStyles.variants({\n    start: {\n      \"@supports (justify-items: start)\": {\n        justifyItems: \"start\",\n      },\n      \"@supports not (justify-items: start)\": {\n        justifyItems: \"flex-start\",\n      },\n    },\n    end: {\n      \"@supports (justify-items: end)\": {\n        justifyItems: \"end\",\n      },\n      \"@supports not (justify-items: end)\": {\n        justifyItems: \"flex-end\",\n      },\n    },\n    center: { justifyItems: \"center\" },\n    baseline: { justifyItems: \"baseline\" },\n    stretch: { justifyItems: \"stretch\" },\n    normal: { justifyItems: \"normal\" },\n    inherit: { justifyItems: \"inherit\" },\n    initial: { justifyItems: \"initial\" },\n    unset: { justifyItems: \"unset\" },\n    revert: { justifyItems: \"revert\" },\n  } as const);\n\n  const justifyContent = responsiveStyles.variants({\n    start: {\n      \"@supports (justify-content: start)\": {\n        justifyContent: \"start\",\n      },\n      \"@supports not (justify-content: start)\": {\n        justifyContent: \"flex-start\",\n      },\n    },\n    end: {\n      \"@supports (justify-content: end)\": {\n        justifyContent: \"end\",\n      },\n      \"@supports not (justify-content: end)\": {\n        justifyContent: \"flex-end\",\n      },\n    },\n    center: { justifyContent: \"center\" },\n    around: { justifyContent: \"space-around\" },\n    between: { justifyContent: \"space-between\" },\n    evenly: { justifyContent: \"space-evenly\" },\n    baseline: { justifyContent: \"baseline\" },\n    stretch: { justifyContent: \"stretch\" },\n    normal: { justifyContent: \"normal\" },\n    inherit: { justifyContent: \"inherit\" },\n    initial: { justifyContent: \"initial\" },\n    unset: { justifyContent: \"unset\" },\n    revert: { justifyContent: \"revert\" },\n  } as const);\n\n  const alignContent = responsiveStyles.variants({\n    start: {\n      \"@supports (align-content: start)\": {\n        alignContent: \"start\",\n      },\n      \"@supports not (align-content: start)\": {\n        alignContent: \"flex-start\",\n      },\n    },\n    end: {\n      \"@supports (align-content: end)\": {\n        alignContent: \"end\",\n      },\n      \"@supports not (align-content: end)\": {\n        alignContent: \"flex-end\",\n      },\n    },\n    center: { alignContent: \"center\" },\n    around: { alignContent: \"space-around\" },\n    between: { alignContent: \"space-between\" },\n    evenly: { alignContent: \"space-evenly\" },\n    baseline: { alignContent: \"baseline\" },\n    stretch: { alignContent: \"stretch\" },\n    normal: { alignContent: \"normal\" },\n    inherit: { alignContent: \"inherit\" },\n    initial: { alignContent: \"initial\" },\n    unset: { alignContent: \"unset\" },\n    revert: { alignContent: \"revert\" },\n  } as const);\n\n  const alignSelf = responsiveStyles.variants({\n    start: {\n      \"@supports (align-self: start)\": {\n        alignSelf: \"start\",\n      },\n      \"@supports not (align-self: start)\": {\n        alignSelf: \"flex-start\",\n      },\n    },\n    end: {\n      \"@supports (align-self: end)\": {\n        alignSelf: \"end\",\n      },\n      \"@supports not (align-self: end)\": {\n        alignSelf: \"flex-end\",\n      },\n    },\n    center: { alignSelf: \"center\" },\n    baseline: { alignSelf: \"baseline\" },\n    stretch: { alignSelf: \"stretch\" },\n    auto: { alignSelf: \"auto\" },\n    normal: { alignSelf: \"normal\" },\n    inherit: { alignSelf: \"inherit\" },\n    initial: { alignSelf: \"initial\" },\n    unset: { alignSelf: \"unset\" },\n    revert: { alignSelf: \"revert\" },\n  } as const);\n\n  const justifySelf = responsiveStyles.variants({\n    start: {\n      \"@supports (justify-self: start)\": {\n        justifySelf: \"start\",\n      },\n      \"@supports not (justify-self: start)\": {\n        justifySelf: \"flex-start\",\n      },\n    },\n    end: {\n      \"@supports (justify-self: end)\": {\n        justifySelf: \"end\",\n      },\n      \"@supports not (justify-self: end)\": {\n        justifySelf: \"flex-end\",\n      },\n    },\n    center: { justifySelf: \"center\" },\n    around: { justifySelf: \"space-around\" },\n    between: { justifySelf: \"space-between\" },\n    evenly: { justifySelf: \"space-evenly\" },\n    baseline: { justifySelf: \"baseline\" },\n    stretch: { justifySelf: \"stretch\" },\n    auto: { justifySelf: \"auto\" },\n    normal: { justifySelf: \"normal\" },\n    inherit: { justifySelf: \"inherit\" },\n    initial: { justifySelf: \"initial\" },\n    unset: { justifySelf: \"unset\" },\n    revert: { justifySelf: \"revert\" },\n  } as const);\n\n  const flexItem = compoundStyles(\n    {\n      /**\n       * Sets a `align-self` CSS property on your component\n       */\n      align: alignSelf,\n      /**\n       * Sets a `justify-self` CSS property on your component\n       */\n      basis: responsiveStyles.lazy((value: string | number) => ({\n        flexBasis: value,\n      })),\n      /**\n       * Sets a `justify-self` CSS property on your component\n       */\n      distribute: justifySelf,\n      /**\n       * Sets a `flex-grow` CSS property on your component\n       */\n      grow: responsiveStyles.lazy((value: number | boolean) => ({\n        flexGrow: Number(value),\n      })),\n      /**\n       * Sets a `order` CSS property on your component\n       */\n      order: responsiveStyles.lazy((value: number) => ({ order: value })),\n      /**\n       * Sets a `flex-shrink` CSS property on your component\n       */\n      shrink: responsiveStyles.lazy((value: number | boolean) => ({\n        flexShrink: Number(value),\n      })),\n      ...box.styles,\n    },\n    { atomic: true }\n  );\n\n  const inline = compoundStyles(\n    {\n      default: responsiveStyles.one({\n        display: \"flex\",\n        flexWrap: \"wrap\",\n        justifyContent: \"flex-start\",\n        \"& > *\": {\n          flexShrink: 0,\n        },\n      }),\n      /**\n       * Sets a vertical and horizontal gap between the child elements in the\n       * inline using the \"gap\" token in your theme\n       */\n      gap: responsiveStyles.variants(\n        reduce(\n          styles.tokens.gap as Record<\n            Extract<keyof Tokens[\"gap\"], string | number>,\n            string | number\n          >,\n          (\n            acc: Record<\n              Extract<keyof Tokens[\"gap\"], string | number> | \"default\",\n              StyleObject\n            >,\n            value\n          ) => {\n            const gap = styles.tokens.gap;\n\n            acc[value] = {\n              \"@supports (display: flex) and (gap: 1em)\": {\n                gap: gap[value],\n              },\n              \"@supports not (display: flex) and (gap: 1em)\": {\n                marginTop: `calc(-1 * ${gap[value]})!important`,\n                marginLeft: `calc(-1 * ${gap[value]})!important`,\n                \"& > *\": {\n                  marginTop: `${gap[value]}!important`,\n                  marginLeft: `${gap[value]}!important`,\n                },\n              },\n            };\n\n            return acc;\n          },\n          {}\n        )\n      ),\n      /**\n       * Distributed alignment properties on the x-axis using `justify-content`\n       */\n      distribute: justifyContent,\n      /**\n       * Positional alignment for its child items on the y-axis using `align-items`\n       */\n      align: alignItems,\n      ...box.styles,\n    } as const,\n    { atomic: true }\n  );\n\n  const sharedGrid = compoundStyles(\n    {\n      default: responsiveStyles.one({ display: \"grid\" }),\n      /**\n       * Makes the component display as an `inline-grid` rather than `grid`\n       */\n      inline: responsiveStyles.one({ display: \"inline-grid\" }),\n      /**\n       * Sets a `justify-items` CSS property on your component\n       */\n      alignX: justifyItems,\n      /**\n       * Sets an `align-items` CSS property on your component\n       */\n      alignY: alignItems,\n      /**\n       * Sets a `justify-content` CSS property on your component\n       */\n      distributeX: justifyContent,\n      /**\n       * Sets an `align-content` CSS property on your component\n       */\n      distributeY: alignContent,\n      /**\n       * Sets a horizontal and vertical gap between the child elements in the row\n       * using the \"gap\" token in your theme\n       */\n      gap: responsiveStyles.lazy(\n        (\n            value:\n              | Extract<keyof Tokens[\"gap\"], number | string>\n              | [\n                  Extract<keyof Tokens[\"gap\"], number | string>,\n                  Extract<keyof Tokens[\"gap\"], number | string>\n                ]\n          ) =>\n          ({ gap }): StyleObject => ({\n            gridGap: Array.isArray(value)\n              ? value.map((p) => gap[p]).join(\" \")\n              : gap[value] + \" \" + gap[value],\n            gap: Array.isArray(value)\n              ? value.map((p) => gap[p]).join(\" \")\n              : gap[value] + \" \" + gap[value],\n          })\n      ),\n      /**\n       * Sets a `grid-template-rows` CSS property on your component\n       */\n      rows: responsiveStyles.lazy(\n        (value: number | (number | string)[]): StyleObject => {\n          let rows: (number | string)[];\n          if (Array.isArray(value)) rows = value;\n          // ie doesn't have repeat\n          else rows = [`repeat(${value},minmax(0,1fr))`];\n          return { gridTemplateRows: rows.map((row) => unit(row)).join(\" \") };\n        }\n      ),\n    },\n    { atomic: true }\n  );\n\n  const grid = compoundStyles(\n    {\n      /**\n       * Sets a `grid-template-columns` CSS property on your component\n       */\n      cols: responsiveStyles.lazy((value: number | (number | string)[]) => {\n        let columns: (number | string)[];\n        if (Array.isArray(value)) columns = value;\n        // ie doesn't have repeat\n        else columns = [`repeat(${value},minmax(0,1fr))`];\n        return {\n          gridTemplateColumns: columns.map((col) => unit(col)).join(\" \"),\n        };\n      }),\n      ...sharedGrid.styles,\n      ...box.styles,\n    } as const,\n    { atomic: true }\n  );\n\n  const gridItem = compoundStyles(\n    {\n      /**\n       * Sets a `justify-self` CSS property on your component\n       */\n      distribute: justifySelf,\n      /**\n       * Sets an `align-self` CSS property on your component\n       */\n      align: alignSelf,\n      /**\n       * Sets a `grid-column-start` CSS property on your component\n       */\n      colStart: responsiveStyles.lazy((gridColumnStart: number | string) => ({\n        gridColumnStart,\n      })),\n      /**\n       * Sets a `grid-column-end` CSS property on your component\n       */\n      colEnd: responsiveStyles.lazy((gridColumnEnd: number | string) => ({\n        gridColumnEnd,\n      })),\n      /**\n       * Sets a `grid-row-start` CSS property on your component\n       */\n      rowStart: responsiveStyles.lazy((gridRowStart: number | string) => ({\n        gridRowStart,\n      })),\n      /**\n       * Sets a `grid-row-end` CSS property on your component\n       */\n      rowEnd: responsiveStyles.lazy((gridRowEnd: number | string) => ({\n        gridRowEnd,\n      })),\n      ...box.styles,\n    } as const,\n    { atomic: true }\n  );\n\n  const autoGrid = compoundStyles(\n    {\n      /**\n       * The minimum width of a grid item\n       */\n      itemWidth: responsiveStyles.lazy((itemWidth: number | string) => ({\n        gridTemplateColumns: `repeat(auto-fit, minmax(${unit(\n          itemWidth\n        )}, 1fr))`,\n      })),\n      ...sharedGrid.styles,\n    } as const,\n    { atomic: true }\n  );\n\n  const hstack = compoundStyles(\n    {\n      default: responsiveStyles.one({\n        display: \"flex\",\n        flexDirection: \"row\",\n        \"& > *\": {\n          flexShrink: 0,\n        },\n      }),\n      /**\n       * Reverses the order of the child elements\n       */\n      reversed: responsiveStyles.one({\n        flexDirection: \"row-reverse\",\n      }),\n      /**\n       * Sets a horizontal gap between the child elements in the hstack using the \"gap\"\n       * token in your theme\n       */\n      gap: responsiveStyles.variants(\n        reduce(\n          styles.tokens.gap as Record<\n            Extract<keyof Tokens[\"gap\"], string | number>,\n            string | number\n          >,\n          (\n            acc: Record<\n              Extract<keyof Tokens[\"gap\"], string | number> | \"default\",\n              StyleObject\n            >,\n            value\n          ) => {\n            const gap = styles.tokens.gap;\n            const margin = {\n              \"& > * + *\": {\n                marginLeft: `${gap[value]}!important`,\n              },\n            };\n            acc[value] = (\"\" + value).startsWith(\"-\")\n              ? margin\n              : {\n                  \"@supports (display: flex) and (gap: 1em)\": {\n                    gap: gap[value],\n                  },\n                  \"@supports not (display: flex) and (gap: 1em)\": margin,\n                };\n\n            return acc;\n          },\n          {}\n        )\n      ),\n      /**\n       * Distributed alignment properties on the y-axis using `justify-content`\n       */\n      distribute: justifyContent,\n      /**\n       * Positional alignment for its child items on the x-axis using `align-items`\n       */\n      align: alignItems,\n      ...box.styles,\n    } as const,\n    { atomic: true }\n  );\n\n  const vstack = compoundStyles(\n    {\n      default: responsiveStyles.one({\n        display: \"flex\",\n        flexDirection: \"column\",\n        \"& > *\": {\n          flexShrink: 0,\n        },\n      }),\n      /**\n       * Reverses the order of the child elements\n       */\n      reversed: responsiveStyles.one({\n        flexDirection: \"column-reverse\",\n      }),\n      /**\n       * Sets a vertical gap between the child elements in the vstack using the \"gap\"\n       * token in your theme\n       */\n      gap: responsiveStyles.variants(\n        reduce(\n          styles.tokens.gap as Record<\n            Extract<keyof Tokens[\"gap\"], string | number>,\n            string | number\n          >,\n          (\n            acc: Record<\n              Extract<keyof Tokens[\"gap\"], string | number> | \"default\",\n              StyleObject\n            >,\n            value\n          ) => {\n            const gap = styles.tokens.gap;\n            const margin = {\n              \"& > * + *\": {\n                marginTop: `${gap[value]}!important`,\n              },\n            };\n\n            acc[value] = (value + \"\").startsWith(\"-\")\n              ? margin\n              : {\n                  \"@supports (display: flex) and (gap: 1em)\": {\n                    gap: gap[value],\n                  },\n                  \"@supports not (display: flex) and (gap: 1em)\": margin,\n                };\n\n            return acc;\n          },\n          {}\n        )\n      ),\n      /**\n       * Distributed alignment properties on the y-axis using `justify-content`\n       */\n      distribute: justifyContent,\n      /**\n       * Positional alignment for its child items on the y-axis using `align-items`\n       */\n      align: alignItems,\n      ...box.styles,\n    } as const,\n    { atomic: true }\n  );\n\n  const zstack = compoundStyles(\n    {\n      default: responsiveStyles.one({\n        display: \"grid\",\n        \"> *\": {\n          gridArea: \"1/1/1/1\",\n        },\n      }),\n      inline: grid.styles.inline,\n      alignX: justifyItems,\n      alignY: alignItems,\n      distributeX: justifyContent,\n      distributeY: alignContent,\n      center: responsiveStyles.one({\n        alignItems: \"center\",\n        justifyItems: \"center\",\n      }),\n      ...box.styles,\n    } as const,\n    { atomic: true }\n  );\n\n  const overlay = compoundStyles(\n    {\n      default: responsiveStyles.one({ position: \"absolute\" }),\n      /**\n       * Sets a `margin` between the edges of the overlay item's container\n       */\n      offset: responsiveStyles.lazy((margin: number | string) => ({ margin })),\n      /**\n       * Sets the placement of your overlay item relative to its container\n       */\n      placement: responsiveStyles.variants({\n        top: { top: 0, left: \"50%\", transform: \"translateX(-50%)\" },\n        right: { right: 0, top: \"50%\", transform: \"translateY(-50%)\" },\n        bottom: { bottom: 0, left: \"50%\", transform: \"translateX(-50%)\" },\n        left: { left: 0, top: \"50%\", transform: \"translateY(-50%)\" },\n        center: {\n          top: \"50%\",\n          left: \"50%\",\n          transform: \"translate(-50%, -50%)\",\n        },\n        topRight: { top: 0, right: 0 },\n        topLeft: { top: 0, left: 0 },\n        bottomRight: { bottom: 0, right: 0 },\n        bottomLeft: { bottom: 0, left: 0 },\n      }),\n      ...box.styles,\n    } as const,\n    { atomic: true }\n  );\n\n  const bleed = compoundStyles(\n    {\n      /**\n       * Sets a negative margin on itself using the \"pad\" token in your theme\n       */\n      amount: responsiveStyles.lazy(\n        (\n            value:\n              | Extract<keyof Tokens[\"pad\"], string | number>\n              | Extract<keyof Tokens[\"pad\"], string | number>[]\n          ) =>\n          ({ pad }): StyleObject => ({\n            margin: Array.isArray(value)\n              ? value\n                  .map((k) =>\n                    String(k).startsWith(\"-\")\n                      ? `${pad[k]}`\n                      : `calc(-1 * ${pad[k]})`\n                  )\n                  .join(\" \") + \"!important\"\n              : String(value).startsWith(\"-\")\n              ? `${pad[value]}!important`\n              : `calc(-1 * ${pad[value]})!important`,\n          })\n      ),\n      ...box.styles,\n    } as const,\n    { atomic: true }\n  );\n\n  return {\n    /**\n     * Sets a `align-items` CSS property on your component\n     */\n    alignItems,\n    /**\n     * Sets a `justify-items` CSS property on your component\n     */\n    justifyItems,\n    /**\n     * Sets a `justify-content` CSS property on your component\n     */\n    justifyContent,\n    /**\n     * Sets a `align-content` CSS property on your component\n     */\n    alignContent,\n    /**\n     * Sets a `align-self` CSS property on your component\n     */\n    alignSelf,\n    /**\n     * Sets a `justify-self` CSS property on your component\n     */\n    justifySelf,\n\n    /**\n     * A layout style for adding size, padding, position, color, and more\n     * using tokens from your CSS variable theme.\n     *\n     * @example\n     * <div className={box({size: 300, bg: {sm: 'red', md: 'blue'}})} />\n     */\n    box,\n    /**\n     * Arranges child nodes horizontally, wrapping to multiple lines if needed,\n     * with equal spacing between items.\n     *\n     * If there is only a single child node, no space will be rendered.\n     *\n     * ```\n     * ☐☐☐☐☐\n     * ☐☐☐☐☐☐\n     * ☐☐☐☐☐\n     * ☐☐☐\n     * ```\n     *\n     * Some use cases include input chips and tags.\n     *\n     * @example\n     * <div className={inline({gap: 'sm})}>\n     *   <Item/>\n     *   <Item/>\n     * </div>\n     */\n    inline,\n    /**\n     * A layout style that can add positioning properties to itself inside\n     * of a flex container.\n     *\n     * @example\n     * <div className={flexItem({alignSelf: 'center', order: 2})}/>\n     */\n    flexItem,\n    /**\n     * A layout style that distributes its children in a grid like so:\n     *\n     * ```\n     * ☐ ☐ ☐\n     * ☐ ☐ ☐\n     * ☐ ☐ ☐\n     * ```\n     *\n     * @example\n     * <div className={grid({rows: 2, cols: 2})}>\n     *   <GridItem/>\n     *   <GridItem/>\n     *   <GridItem/>\n     *   <GridItem/>\n     * </div>\n     */\n    grid,\n    /**\n     * A layout style that can add positioning properties to itself inside\n     * of a `<Grid>` component.\n     *\n     * @example\n     * <div className={grid({cols: 2, rows: 2})}>\n     *   // Occupies 2 columns\n     *   <div className={gridItem({colStart: 1, colEnd: 2})} />\n     *   <div/>\n     *   <div/>\n     * </div>\n     */\n    gridItem,\n    /**\n     * A grid that automatically chooses a number of columns based on a preferred\n     * minimum grid item width. The items will grow to fit snugly within the grid\n     * container, like with flex wrapping, but no item will grow larger than the\n     * column size, unlike flex wrapping.\n     *\n     * ☐ ☐ ☐\n     * ☐ ☐ ☐\n     * ☐ ☐\n     */\n    autoGrid,\n    /**\n     * A layout style that distributes its items in a row without wrapping\n     * like so:\n     *\n     * ```\n     * ☐ ☐ ☐ ☐ ☐ ☐ ☐\n     * ```\n     *\n     * @example\n     * <div className={hstack({gap: 'sm'})}>\n     *   <Item/>\n     *   <Item/>\n     * </div>\n     */\n    hstack,\n    /**\n     * A layout style that distributes its items in a column without wrapping\n     * like so:\n     *\n     * ```\n     * ☐\n     * ☐\n     * ☐\n     * ☐\n     * ```\n     *\n     * @example\n     * <div className={vstack({gap: 'sm'})}>\n     *   <Item/>\n     *   <Item/>\n     * </div>\n     */\n    vstack,\n    /**\n     * A layout style that stacks its items on top of one another, like so:\n     *\n     * ```\n     * _____\n     * | ☐ |\n     * _____\n     * ```\n     *\n     * @example\n     * <div className={zstack({center: true})} />\n     */\n    zstack,\n    /**\n     * A layout style than positions itself absolutely inside of its\n     * container in whichever placement you decide.\n     *\n     * @example\n     * <div className={overlay({placement: 'bottomRight', offset: 24})} />\n     */\n    overlay,\n    /**\n     * A layout style that sets a negative left/top margin on itself using\n     * the \"pad\" token in your theme. This is useful for increasing the\n     * tap area of a component while maintaining the desired visual padding.\n     *\n     * @example\n     * <div className={bleed({amount: 'sm', pad: 'lg'})}>\n     *   <Item/>\n     *   <Item/>\n     * </div>\n     */\n    bleed,\n  } as const;\n}\n\nexport default layout;\n\nconst keys: <T>(obj: T) => (keyof T)[] = Object.keys;\nfunction reduce<T, U>(\n  obj: T,\n  fn: (acc: U, key: keyof T, currentIndex: number, arr: (keyof T)[]) => U,\n  init: Partial<U>\n): U {\n  return keys(obj).reduce(fn, init as U);\n}\n\n/**\n * Adds a `px` unit to numeric values and returns non-numeric values as\n * they are.\n *\n * @param value - The value you want to maybe add a unit to\n */\nfunction unit<T extends number | string>(value: T): T | string {\n  return !isNaN(value as any) && value !== 0 ? `${value}px` : value;\n}\n"],"names":["width","height","maxWidth","maxHeight","minWidth","minHeight","size","value","pad","padding","Array","isArray","map","k","join","borderColor","borderWidth","color","w","borderStyle","radius","borderRadius","inset","unit","top","right","bottom","left","flexBasis","flexGrow","Number","order","flexShrink","gap","gridGap","p","row","rows","gridTemplateRows","col","columns","gridTemplateColumns","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","itemWidth","margin","String","startsWith","layout","styles","mediaQueries","compoundStyles","compound","responsiveStyles","responsive","box","display","variants","flex","inlineFlex","grid","inlineGrid","block","inlineBlock","inline","table","tableCell","tableRowGroup","tableRow","tableColumn","tableColumnGroup","tableHeader","tableHeaderGroup","tableFooterGroup","listItem","contents","runIn","none","inherit","initial","unset","revert","position","absolute","relative","fixed","sticky","static","lazy","bg","reduce","tokens","acc","key","backgroundColor","border","shadow","boxShadow","z","zIndex","atomic","alignItems","start","end","center","baseline","stretch","normal","justifyItems","justifyContent","around","between","evenly","alignContent","alignSelf","auto","justifySelf","flexItem","align","basis","distribute","grow","shrink","default","one","flexWrap","marginTop","marginLeft","sharedGrid","alignX","alignY","distributeX","distributeY","cols","gridItem","colStart","colEnd","rowStart","rowEnd","autoGrid","hstack","flexDirection","reversed","vstack","zstack","gridArea","overlay","offset","placement","transform","topRight","topLeft","bottomRight","bottomLeft","bleed","amount","keys","Object","obj","fn","init","isNaN"],"mappings":"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AE,CAAV;AAAaC,QAAAA,IAAI,EAAE,CAAA;AAAnB,OAAA;KAbH,CAAA;GAeR8B,EAAAA,GAAG,CAACN,MAzBmB,CA2B5B,EAAA;AAAEmD,IAAAA,MAAM,EAAE,IAAA;AAAV,GA3B4B,CAA9B,CAAA;EA8BA,IAAMsD,KAAK,GAAGvG,cAAc,CAAA,QAAA,CAAA;AAExB;AACN;AACA;IACMwG,MAAM,EAAEtG,gBAAgB,CAACmC,IAAjB,CAAA,MAAA,CAAA;GAoBLjC,EAAAA,GAAG,CAACN,MAzBiB,CA2B1B,EAAA;AAAEmD,IAAAA,MAAM,EAAE,IAAA;AAAV,GA3B0B,CAA5B,CAAA;EA8BA,OAAO;AACL;AACJ;AACA;IACIC,UAJK;;AAKL;AACJ;AACA;IACIO,YARK;;AASL;AACJ;AACA;IACIC,cAZK;;AAaL;AACJ;AACA;IACII,YAhBK;;AAiBL;AACJ;AACA;IACIC,SApBK;;AAqBL;AACJ;AACA;IACIE,WAxBK;;AA0BL;AACJ;AACA;AACA;AACA;AACA;AACA;IACI7D,GAjCK;;AAkCL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIS,MAvDK;;AAwDL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIqD,QA/DK;;AAgEL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIzD,IAjFK;;AAkFL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI0E,QA9FK;;AA+FL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIK,QAzGK;;AA0GL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,MAxHK;;AAyHL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIG,MA1IK;;AA2IL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,MAvJK;;AAwJL;AACJ;AACA;AACA;AACA;AACA;AACA;IACIE,OA/JK;;AAgKL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIQ,IAAAA,KAAAA;GA3KF,CAAA;AA6KD,CAAA;AAID,IAAME,IAAgC,GAAGC,MAAM,CAACD,IAAhD,CAAA;;AACA,SAASlE,MAAT,CACEoE,GADF,EAEEC,EAFF,EAGEC,IAHF,EAIK;EACH,OAAOJ,IAAI,CAACE,GAAD,CAAJ,CAAUpE,MAAV,CAAiBqE,EAAjB,EAAqBC,IAArB,CAAP,CAAA;AACD,CAAA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS3I,IAAT,CAAyChB,KAAzC,EAA+D;AAC7D,EAAA,OAAO,CAAC4J,KAAK,CAAC5J,KAAD,CAAN,IAAwBA,KAAK,KAAK,CAAlC,GAAyCA,KAAzC,GAAA,IAAA,GAAqDA,KAA5D,CAAA;AACD;;;;"}