{
  "version": 3,
  "sources": ["../../../src/styles/border/index.ts"],
  "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { BoxEdge, GenerateFunction, StyleDefinition } from '../../types';\nimport { generateRule, generateBoxRules, camelCaseJoin } from '../utils';\n\n/**\n * Creates a function for generating CSS rules when the style path is the same as the camelCase CSS property used in React.\n *\n * @param path An array of strings representing the path to the style value in the style object.\n *\n * @return A function that generates CSS rules.\n */\nfunction createBorderGenerateFunction( path: string[] ): GenerateFunction {\n\treturn ( style, options ) =>\n\t\tgenerateRule( style, options, path, camelCaseJoin( path ) );\n}\n\n/**\n * Creates a function for generating border-{top,bottom,left,right}-{color,style,width} CSS rules.\n *\n * @param edge The edge to create CSS rules for.\n *\n * @return A function that generates CSS rules.\n */\nfunction createBorderEdgeGenerateFunction( edge: BoxEdge ): GenerateFunction {\n\treturn ( style, options ) => {\n\t\treturn [ 'color', 'style', 'width' ].flatMap( ( key ) => {\n\t\t\tconst path = [ 'border', edge, key ];\n\t\t\treturn createBorderGenerateFunction( path )( style, options );\n\t\t} );\n\t};\n}\n\nconst color: StyleDefinition = {\n\tname: 'color',\n\tgenerate: createBorderGenerateFunction( [ 'border', 'color' ] ),\n};\n\nconst radius: StyleDefinition = {\n\tname: 'radius',\n\tgenerate: ( style, options ) => {\n\t\treturn generateBoxRules(\n\t\t\tstyle,\n\t\t\toptions,\n\t\t\t[ 'border', 'radius' ],\n\t\t\t{\n\t\t\t\tdefault: 'borderRadius',\n\t\t\t\tindividual: 'border%sRadius',\n\t\t\t},\n\t\t\t[ 'topLeft', 'topRight', 'bottomLeft', 'bottomRight' ]\n\t\t);\n\t},\n};\n\nconst borderStyle: StyleDefinition = {\n\tname: 'style',\n\tgenerate: createBorderGenerateFunction( [ 'border', 'style' ] ),\n};\n\nconst width: StyleDefinition = {\n\tname: 'width',\n\tgenerate: createBorderGenerateFunction( [ 'border', 'width' ] ),\n};\n\nconst borderTop: StyleDefinition = {\n\tname: 'borderTop',\n\tgenerate: createBorderEdgeGenerateFunction( 'top' ),\n};\n\nconst borderRight: StyleDefinition = {\n\tname: 'borderRight',\n\tgenerate: createBorderEdgeGenerateFunction( 'right' ),\n};\n\nconst borderBottom: StyleDefinition = {\n\tname: 'borderBottom',\n\tgenerate: createBorderEdgeGenerateFunction( 'bottom' ),\n};\n\nconst borderLeft: StyleDefinition = {\n\tname: 'borderLeft',\n\tgenerate: createBorderEdgeGenerateFunction( 'left' ),\n};\n\nexport default [\n\tcolor,\n\tborderStyle,\n\twidth,\n\tradius,\n\tborderTop,\n\tborderRight,\n\tborderBottom,\n\tborderLeft,\n];\n"],
  "mappings": ";AAIA,SAAS,cAAc,kBAAkB,qBAAqB;AAS9D,SAAS,6BAA8B,MAAmC;AACzE,SAAO,CAAE,OAAO,YACf,aAAc,OAAO,SAAS,MAAM,cAAe,IAAK,CAAE;AAC5D;AASA,SAAS,iCAAkC,MAAkC;AAC5E,SAAO,CAAE,OAAO,YAAa;AAC5B,WAAO,CAAE,SAAS,SAAS,OAAQ,EAAE,QAAS,CAAE,QAAS;AACxD,YAAM,OAAO,CAAE,UAAU,MAAM,GAAI;AACnC,aAAO,6BAA8B,IAAK,EAAG,OAAO,OAAQ;AAAA,IAC7D,CAAE;AAAA,EACH;AACD;AAEA,IAAM,QAAyB;AAAA,EAC9B,MAAM;AAAA,EACN,UAAU,6BAA8B,CAAE,UAAU,OAAQ,CAAE;AAC/D;AAEA,IAAM,SAA0B;AAAA,EAC/B,MAAM;AAAA,EACN,UAAU,CAAE,OAAO,YAAa;AAC/B,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA,CAAE,UAAU,QAAS;AAAA,MACrB;AAAA,QACC,SAAS;AAAA,QACT,YAAY;AAAA,MACb;AAAA,MACA,CAAE,WAAW,YAAY,cAAc,aAAc;AAAA,IACtD;AAAA,EACD;AACD;AAEA,IAAM,cAA+B;AAAA,EACpC,MAAM;AAAA,EACN,UAAU,6BAA8B,CAAE,UAAU,OAAQ,CAAE;AAC/D;AAEA,IAAM,QAAyB;AAAA,EAC9B,MAAM;AAAA,EACN,UAAU,6BAA8B,CAAE,UAAU,OAAQ,CAAE;AAC/D;AAEA,IAAM,YAA6B;AAAA,EAClC,MAAM;AAAA,EACN,UAAU,iCAAkC,KAAM;AACnD;AAEA,IAAM,cAA+B;AAAA,EACpC,MAAM;AAAA,EACN,UAAU,iCAAkC,OAAQ;AACrD;AAEA,IAAM,eAAgC;AAAA,EACrC,MAAM;AAAA,EACN,UAAU,iCAAkC,QAAS;AACtD;AAEA,IAAM,aAA8B;AAAA,EACnC,MAAM;AAAA,EACN,UAAU,iCAAkC,MAAO;AACpD;AAEA,IAAO,iBAAQ;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;",
  "names": []
}
