@react-hive/honey-style 6.2.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,9 +2,9 @@
2
2
  /******/ "use strict";
3
3
  /******/ var __webpack_modules__ = ({
4
4
 
5
- /***/ "./node_modules/.pnpm/react@19.2.6/node_modules/react/cjs/react-jsx-runtime.development.js"
5
+ /***/ "./node_modules/.pnpm/react@19.2.7/node_modules/react/cjs/react-jsx-runtime.development.js"
6
6
  /*!*************************************************************************************************!*\
7
- !*** ./node_modules/.pnpm/react@19.2.6/node_modules/react/cjs/react-jsx-runtime.development.js ***!
7
+ !*** ./node_modules/.pnpm/react@19.2.7/node_modules/react/cjs/react-jsx-runtime.development.js ***!
8
8
  \*************************************************************************************************/
9
9
  (__unused_webpack_module, exports, __webpack_require__) {
10
10
 
@@ -364,9 +364,9 @@
364
364
 
365
365
  /***/ },
366
366
 
367
- /***/ "./node_modules/.pnpm/react@19.2.6/node_modules/react/jsx-runtime.js"
367
+ /***/ "./node_modules/.pnpm/react@19.2.7/node_modules/react/jsx-runtime.js"
368
368
  /*!***************************************************************************!*\
369
- !*** ./node_modules/.pnpm/react@19.2.6/node_modules/react/jsx-runtime.js ***!
369
+ !*** ./node_modules/.pnpm/react@19.2.7/node_modules/react/jsx-runtime.js ***!
370
370
  \***************************************************************************/
371
371
  (module, __unused_webpack_exports, __webpack_require__) {
372
372
 
@@ -374,7 +374,7 @@
374
374
 
375
375
  if (false) // removed by dead control flow
376
376
  {} else {
377
- module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ "./node_modules/.pnpm/react@19.2.6/node_modules/react/cjs/react-jsx-runtime.development.js");
377
+ module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ "./node_modules/.pnpm/react@19.2.7/node_modules/react/cjs/react-jsx-runtime.development.js");
378
378
  }
379
379
 
380
380
 
@@ -789,9 +789,7 @@ __webpack_require__.r(__webpack_exports__);
789
789
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
790
790
  /* harmony export */ compileCss: () => (/* binding */ compileCss)
791
791
  /* harmony export */ });
792
- /* harmony import */ var _react_hive_honey_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-hive/honey-css */ "./node_modules/.pnpm/@react-hive+honey-css@1.17.1/node_modules/@react-hive/honey-css/dist/index.mjs");
793
- /* harmony import */ var _flatten_css_rules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flatten-css-rules */ "./src/css/flatten-css-rules.ts");
794
-
792
+ /* harmony import */ var _react_hive_honey_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-hive/honey-css */ "./node_modules/.pnpm/@react-hive+honey-css@1.18.0/node_modules/@react-hive/honey-css/dist/index.mjs");
795
793
 
796
794
  const SCOPED_AT_RULES = {
797
795
  media: true,
@@ -818,7 +816,7 @@ const scopeNodes = (nodes, scope) => nodes.map(node => {
818
816
  return node;
819
817
  });
820
818
  const compileCss = (ast, scope) => {
821
- const nextAst = (0,_flatten_css_rules__WEBPACK_IMPORTED_MODULE_1__.flattenCssRules)(scope
819
+ const nextAst = (0,_react_hive_honey_css__WEBPACK_IMPORTED_MODULE_0__.flattenCssRules)(scope
822
820
  ? {
823
821
  ...ast,
824
822
  body: scopeNodes(ast.body, scope),
@@ -1177,82 +1175,6 @@ const css = (strings, ...interpolations) => {
1177
1175
  const createCssRule = (selector, css) => `${selector}{${css}}`;
1178
1176
 
1179
1177
 
1180
- /***/ },
1181
-
1182
- /***/ "./src/css/flatten-css-rules.ts"
1183
- /*!**************************************!*\
1184
- !*** ./src/css/flatten-css-rules.ts ***!
1185
- \**************************************/
1186
- (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1187
-
1188
- __webpack_require__.r(__webpack_exports__);
1189
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1190
- /* harmony export */ flattenCssRules: () => (/* binding */ flattenCssRules)
1191
- /* harmony export */ });
1192
- /* harmony import */ var _react_hive_honey_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-hive/honey-css */ "./node_modules/.pnpm/@react-hive+honey-css@1.17.1/node_modules/@react-hive/honey-css/dist/index.mjs");
1193
-
1194
- const SELECTOR_CONTEXT_AT_RULES = {
1195
- media: true,
1196
- supports: true,
1197
- container: true,
1198
- layer: true,
1199
- };
1200
- const flattenRule = (node, parentSelector) => {
1201
- const fullSelector = parentSelector
1202
- ? (0,_react_hive_honey_css__WEBPACK_IMPORTED_MODULE_0__.resolveCssSelector)(node.selector, parentSelector)
1203
- : node.selector;
1204
- return flattenNodes(node.body, fullSelector);
1205
- };
1206
- const flattenNodes = (nodes, parentSelector) => {
1207
- const result = [];
1208
- const declarationBuffer = [];
1209
- const flushDeclarations = () => {
1210
- if (!parentSelector || declarationBuffer.length === 0) {
1211
- return;
1212
- }
1213
- result.push({
1214
- type: 'rule',
1215
- selector: parentSelector,
1216
- // Cheaper intent clarity
1217
- body: declarationBuffer.slice(),
1218
- });
1219
- declarationBuffer.length = 0;
1220
- };
1221
- for (let i = 0; i < nodes.length; i++) {
1222
- const node = nodes[i];
1223
- if (node.type === 'declaration') {
1224
- declarationBuffer.push(node);
1225
- continue;
1226
- }
1227
- if (node.type === 'rule') {
1228
- flushDeclarations();
1229
- result.push(...flattenRule(node, parentSelector));
1230
- continue;
1231
- }
1232
- if (node.type === 'atRule') {
1233
- flushDeclarations();
1234
- if (!SELECTOR_CONTEXT_AT_RULES[node.name]) {
1235
- result.push(node);
1236
- continue;
1237
- }
1238
- result.push({
1239
- ...node,
1240
- body: node.body && node.body.length > 0 ? flattenNodes(node.body, parentSelector) : node.body,
1241
- });
1242
- continue;
1243
- }
1244
- flushDeclarations();
1245
- result.push(node);
1246
- }
1247
- flushDeclarations();
1248
- return result;
1249
- };
1250
- const flattenCssRules = (ast) => ({
1251
- ...ast,
1252
- body: flattenNodes(ast.body),
1253
- });
1254
-
1255
-
1256
1178
  /***/ },
1257
1179
 
1258
1180
  /***/ "./src/css/index.ts"
@@ -1296,7 +1218,7 @@ __webpack_require__.r(__webpack_exports__);
1296
1218
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1297
1219
  /* harmony export */ processCss: () => (/* binding */ processCss)
1298
1220
  /* harmony export */ });
1299
- /* harmony import */ var _react_hive_honey_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-hive/honey-css */ "./node_modules/.pnpm/@react-hive+honey-css@1.17.1/node_modules/@react-hive/honey-css/dist/index.mjs");
1221
+ /* harmony import */ var _react_hive_honey_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-hive/honey-css */ "./node_modules/.pnpm/@react-hive+honey-css@1.18.0/node_modules/@react-hive/honey-css/dist/index.mjs");
1300
1222
  /* harmony import */ var _css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./css */ "./src/css/css.ts");
1301
1223
  /* harmony import */ var _compile_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./compile-css */ "./src/css/compile-css.ts");
1302
1224
  /* harmony import */ var _transform_absolute_fill_at_rule__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transform-absolute-fill-at-rule */ "./src/css/transform-absolute-fill-at-rule.ts");
@@ -1857,7 +1779,7 @@ __webpack_require__.r(__webpack_exports__);
1857
1779
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1858
1780
  /* harmony export */ HoneyStyleProvider: () => (/* binding */ HoneyStyleProvider)
1859
1781
  /* harmony export */ });
1860
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/.pnpm/react@19.2.6/node_modules/react/jsx-runtime.js");
1782
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/.pnpm/react@19.2.7/node_modules/react/jsx-runtime.js");
1861
1783
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1862
1784
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1863
1785
  /* harmony import */ var _contexts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../contexts */ "./src/contexts/index.ts");
@@ -1921,6 +1843,60 @@ __webpack_require__.r(__webpack_exports__);
1921
1843
 
1922
1844
 
1923
1845
 
1846
+ /**
1847
+ * Creates a Honey-styled component from an HTML element or React component.
1848
+ *
1849
+ * The returned function accepts a tagged template literal with static CSS and dynamic
1850
+ * interpolations. Interpolations receive the resolved styled context, including the
1851
+ * current theme, default props, and props passed to the component.
1852
+ *
1853
+ * The generated component supports the polymorphic `as` prop, so the rendered element
1854
+ * can be changed while preserving the native props of the selected element.
1855
+ *
1856
+ * Default props can be provided as either an object or a resolver function. Props passed
1857
+ * directly to the rendered styled component override default props.
1858
+ *
1859
+ * @template TargetProps - The custom props available to style interpolations.
1860
+ * @template Target - The base HTML element or React component used for rendering.
1861
+ * @template OverrideTarget - The default polymorphic element used for public prop inference.
1862
+ *
1863
+ * @param target - The base HTML element or React component to style.
1864
+ * @param defaultProps - Optional default props or a function that resolves default props from context.
1865
+ * @param options - Optional styled component options.
1866
+ *
1867
+ * @returns A tagged template function that creates a styled component.
1868
+ *
1869
+ * @example
1870
+ * ```tsx
1871
+ * const Box = styled('div')`
1872
+ * color: red;
1873
+ * `;
1874
+ *
1875
+ * <Box data-testid="box">Content</Box>
1876
+ * ```
1877
+ *
1878
+ * @example
1879
+ * ```tsx
1880
+ * const Button = styled<{ variant: 'primary' | 'secondary' }, 'button'>('button')`
1881
+ * ${({ variant }) => css`
1882
+ * color: ${variant === 'primary' ? 'white' : 'black'};
1883
+ * `}
1884
+ * `;
1885
+ *
1886
+ * <Button variant="primary" type="button" />
1887
+ * ```
1888
+ *
1889
+ * @example
1890
+ * ```tsx
1891
+ * const LinkBox = styled('div')`
1892
+ * color: blue;
1893
+ * `;
1894
+ *
1895
+ * <LinkBox as="a" href="https://example.com">
1896
+ * Link
1897
+ * </LinkBox>
1898
+ * ```
1899
+ */
1924
1900
  const styled = (target, defaultProps, { omitProps } = {}) => {
1925
1901
  return (strings, ...interpolations) => {
1926
1902
  const componentId = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.generateId)('hsc');
@@ -2222,16 +2198,17 @@ module.exports = require("react");
2222
2198
 
2223
2199
  /***/ },
2224
2200
 
2225
- /***/ "./node_modules/.pnpm/@react-hive+honey-css@1.17.1/node_modules/@react-hive/honey-css/dist/index.mjs"
2201
+ /***/ "./node_modules/.pnpm/@react-hive+honey-css@1.18.0/node_modules/@react-hive/honey-css/dist/index.mjs"
2226
2202
  /*!***********************************************************************************************************!*\
2227
- !*** ./node_modules/.pnpm/@react-hive+honey-css@1.17.1/node_modules/@react-hive/honey-css/dist/index.mjs ***!
2203
+ !*** ./node_modules/.pnpm/@react-hive+honey-css@1.18.0/node_modules/@react-hive/honey-css/dist/index.mjs ***!
2228
2204
  \***********************************************************************************************************/
2229
2205
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
2230
2206
 
2231
2207
  __webpack_require__.r(__webpack_exports__);
2232
2208
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2233
2209
  /* harmony export */ createCssTokenCursor: () => (/* binding */ r),
2234
- /* harmony export */ parseCss: () => (/* binding */ m),
2210
+ /* harmony export */ flattenCssRules: () => (/* binding */ x),
2211
+ /* harmony export */ parseCss: () => (/* binding */ d),
2235
2212
  /* harmony export */ parseCssAtRule: () => (/* binding */ b),
2236
2213
  /* harmony export */ parseCssBlock: () => (/* binding */ y),
2237
2214
  /* harmony export */ parseCssDeclaration: () => (/* binding */ c),
@@ -2243,7 +2220,7 @@ __webpack_require__.r(__webpack_exports__);
2243
2220
  /* harmony export */ stringifyCss: () => (/* binding */ l),
2244
2221
  /* harmony export */ tokenizeCss: () => (/* binding */ t)
2245
2222
  /* harmony export */ });
2246
- const e=e=>"{"===e||"}"===e||":"===e||";"===e||"@"===e||"("===e||'"'===e||"'"===e||"/"===e,t=t=>{const n=[];let r=0;const o=()=>r>=t.length,s=()=>o()?void 0:t[r],c=()=>r+1>=t.length?void 0:t[r+1],i=()=>{for(;;){const e=s();if(!e||!/\s/.test(e))return;r++}},a=()=>{if("/"!==s()||"/"!==c())return!1;for(r+=2;!o();){if("\n"===s()){r++;break}r++}return!0},p=()=>{if("/"!==s()||"*"!==c())return!1;for(r+=2;!o();){if("*"===s()&&"/"===c())return r+=2,!0;r++}return!0},l=()=>{const e=s();if(!e)return"";r++;let t="";for(;!o();){const n=s();if(!n)break;if("\\"===n){t+=n,r++;const e=s();e&&(t+=e,r++);continue}if(n===e){r++;break}t+=n,r++}return t},u=()=>{let e=0,t="";for(;!o();){const n=s();if(!n)break;if("("===n?e++:")"===n&&e--,t+=n,r++,0===e)break}return t},f=()=>{let t="";for(;!o();){const n=s();if(!n)break;if(e(n))break;t+=n,r++}return t.trim()};for(;!o()&&(i(),!o());){if(a()||p())continue;const e=s();if(!e)break;if("{"===e){n.push({type:"braceOpen"}),r++;continue}if("}"===e){n.push({type:"braceClose"}),r++;continue}if(":"===e){n.push({type:"colon"}),r++;continue}if(";"===e){n.push({type:"semicolon"}),r++;continue}if("@"===e){n.push({type:"at"}),r++;continue}if("("===e){n.push({type:"params",value:u()});continue}if('"'===e||"'"===e){n.push({type:"string",value:l()});continue}const t=f();t?n.push({type:"text",value:t}):r++}return n};function n(e,t){if(!e)throw new Error(t)}const r=e=>{let t=0;const r=()=>t>=e.length,o=()=>r()?void 0:e[t],s=()=>r()?void 0:e[t++];return{isEof:r,peek:o,next:s,mark:()=>t,reset:e=>{t=e},expect:e=>{const t=s();return n(t,`[@react-hive/honey-css]: Expected "${e}" but reached end of input.`),n(t.type===e,`[@react-hive/honey-css]: Expected "${e}" but got "${t.type}".`),t},readUntil:e=>{let t,n="";for(;!r();){const r=o();if(!r||e.includes(r.type))break;"text"===r.type?("text"===t&&n&&(n+=" "),n+=r.value):"string"===r.type?n+=`"${r.value}"`:"params"===r.type&&(n+=r.value),t=r.type,s()}return n.trim()},skipUntil:e=>{for(;!r();){const t=o();if(!t||e.includes(t.type))break;s()}}}},o=e=>{const t=[],n=()=>t.join("").trim();for(;!e.isEof();){const r=e.peek();if(!r)break;switch(r.type){case"braceOpen":case"braceClose":default:return n();case"colon":t.push(":");break;case"text":case"params":t.push(r.value);break;case"string":t.push(`"${r.value}"`)}e.next()}return n()},s=e=>{const t=e.peek();if(!t)return"";if("colon"===t.type)return o(e);const n=e.mark(),r=o(e);return"braceOpen"===e.peek()?.type?r:(e.reset(n),e.readUntil(["colon","braceOpen","semicolon","braceClose","at"]))},c=(e,t)=>{e.expect("colon");const n=e.readUntil(["semicolon","braceClose"]);return"semicolon"===e.peek()?.type&&e.next(),{type:"declaration",prop:t,value:n}},i=(e,t)=>{let n=0,r=0,o=0,s=null,c=!1;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);if(c)c=!1;else if(92!==a)if(null===s)if(34!==a&&39!==a)if(40!==a)if(41!==a)if(91!==a)if(93!==a){if(44===a&&0===r&&0===o){const r=e.slice(n,i).trim();r&&t(r),n=i+1}}else o--;else o++;else r--;else r++;else s=a;else a===s&&(s=null);else c=!0}const i=e.slice(n).trim();i&&t(i)},a=(e,t)=>{const n=e.trim();if(!n)return"";const r=t.trim();if(!r)return n;const o=-1!==r.indexOf(","),s=-1!==n.indexOf(","),c=-1!==n.indexOf("&");if(!o&&!s)return c?n.replaceAll("&",r):`${r} ${n}`;const a=[];return i(r,e=>{i(n,t=>{t.includes("&")?a.push(t.replaceAll("&",e)):a.push(`${e} ${t}`)})}),a.join(", ")},p=e=>{switch(e.type){case"declaration":return(e=>{const t=e.value.trim();return t?`${e.prop}:${t};`:""})(e);case"rule":return(e=>{const t=e.body.map(p).join("");return t?`${e.selector}{${t}}`:""})(e);case"atRule":return(e=>{const t=e.params?` ${e.params}`:"";if(null===e.body)return`@${e.name}${t};`;const n=e.body.map(p).join("");return n?`@${e.name}${t}{${n}}`:""})(e);default:return""}},l=e=>e.body.map(p).filter(Boolean).join(""),u=(e,t)=>(e.expect("braceOpen"),{type:"rule",selector:t,body:y(e)}),f=(e,{stopAtBraceClose:t})=>{const n=[];for(;!e.isEof();){const r=e.peek();if(!r)break;if(t&&"braceClose"===r.type){e.next();break}if("semicolon"===r.type){e.next();continue}if("at"===r.type){n.push(b(e));continue}const o=s(e);o?"colon"!==e.peek()?.type?"braceOpen"!==e.peek()?.type?e.next():n.push(u(e,o)):n.push(c(e,o)):e.next()}return n},y=e=>f(e,{stopAtBraceClose:!0}),b=e=>{e.expect("at");const t=e.readUntil(["semicolon","braceOpen"]),{name:n,params:r}=(e=>{const t=e.trim();if(!t)return{name:"",params:void 0};let n=0;const r=t.length;for(;n<r;){const e=t[n];if(" "===e||"\t"===e||"\n"===e||"\r"===e||"\f"===e||"("===e)break;n++}const o=t.slice(0,n);for(;n<r;){const e=t[n];if(" "!==e&&"\t"!==e&&"\n"!==e&&"\r"!==e&&"\f"!==e)break;n++}return{name:o,params:t.slice(n)||void 0}})(t);let o=r;if("params"===e.peek()?.type){const t=e.expect("params").value;o=o?`${o}${t}`:t}return"braceOpen"===e.peek()?.type?{type:"atRule",name:n,params:o,body:y(e)}:("semicolon"===e.peek()?.type&&e.next(),{type:"atRule",name:n,params:o,body:null})},m=e=>{const n=t(e),o=r(n);return{type:"stylesheet",body:f(o,{stopAtBraceClose:!1})}};
2223
+ const e=e=>"{"===e||"}"===e||":"===e||";"===e||"@"===e||"("===e||'"'===e||"'"===e||"/"===e,t=t=>{const n=[];let r=0;const o=()=>r>=t.length,s=()=>o()?void 0:t[r],c=()=>r+1>=t.length?void 0:t[r+1],i=()=>{for(;;){const e=s();if(!e||!/\s/.test(e))return;r++}},a=()=>{if("/"!==s()||"/"!==c())return!1;for(r+=2;!o();){if("\n"===s()){r++;break}r++}return!0},p=()=>{if("/"!==s()||"*"!==c())return!1;for(r+=2;!o();){if("*"===s()&&"/"===c())return r+=2,!0;r++}return!0},l=()=>{const e=s();if(!e)return"";r++;let t="";for(;!o();){const n=s();if(!n)break;if("\\"===n){t+=n,r++;const e=s();e&&(t+=e,r++);continue}if(n===e){r++;break}t+=n,r++}return t},u=()=>{let e=0,t="";for(;!o();){const n=s();if(!n)break;if("("===n?e++:")"===n&&e--,t+=n,r++,0===e)break}return t},f=()=>{let t="";for(;!o();){const n=s();if(!n)break;if(e(n))break;t+=n,r++}return t.trim()};for(;!o()&&(i(),!o());){if(a()||p())continue;const e=s();if(!e)break;if("{"===e){n.push({type:"braceOpen"}),r++;continue}if("}"===e){n.push({type:"braceClose"}),r++;continue}if(":"===e){n.push({type:"colon"}),r++;continue}if(";"===e){n.push({type:"semicolon"}),r++;continue}if("@"===e){n.push({type:"at"}),r++;continue}if("("===e){n.push({type:"params",value:u()});continue}if('"'===e||"'"===e){n.push({type:"string",value:l()});continue}const t=f();t?n.push({type:"text",value:t}):r++}return n};function n(e,t){if(!e)throw new Error(t)}const r=e=>{let t=0;const r=()=>t>=e.length,o=()=>r()?void 0:e[t],s=()=>r()?void 0:e[t++];return{isEof:r,peek:o,next:s,mark:()=>t,reset:e=>{t=e},expect:e=>{const t=s();return n(t,`[@react-hive/honey-css]: Expected "${e}" but reached end of input.`),n(t.type===e,`[@react-hive/honey-css]: Expected "${e}" but got "${t.type}".`),t},readUntil:e=>{let t,n="";for(;!r();){const r=o();if(!r||e.includes(r.type))break;"text"===r.type?("text"===t&&n&&(n+=" "),n+=r.value):"string"===r.type?n+=`"${r.value}"`:"params"===r.type&&(n+=r.value),t=r.type,s()}return n.trim()},skipUntil:e=>{for(;!r();){const t=o();if(!t||e.includes(t.type))break;s()}}}},o=e=>{const t=[],n=()=>t.join("").trim();for(;!e.isEof();){const r=e.peek();if(!r)break;switch(r.type){case"braceOpen":case"braceClose":default:return n();case"colon":t.push(":");break;case"text":case"params":t.push(r.value);break;case"string":t.push(`"${r.value}"`)}e.next()}return n()},s=e=>{const t=e.peek();if(!t)return"";if("colon"===t.type)return o(e);const n=e.mark(),r=o(e);return"braceOpen"===e.peek()?.type?r:(e.reset(n),e.readUntil(["colon","braceOpen","semicolon","braceClose","at"]))},c=(e,t)=>{e.expect("colon");const n=e.readUntil(["semicolon","braceClose"]);return"semicolon"===e.peek()?.type&&e.next(),{type:"declaration",prop:t,value:n}},i=(e,t)=>{let n=0,r=0,o=0,s=null,c=!1;for(let i=0;i<e.length;i++){const a=e.charCodeAt(i);if(c)c=!1;else if(92!==a)if(null===s)if(34!==a&&39!==a)if(40!==a)if(41!==a)if(91!==a)if(93!==a){if(44===a&&0===r&&0===o){const r=e.slice(n,i).trim();r&&t(r),n=i+1}}else o--;else o++;else r--;else r++;else s=a;else a===s&&(s=null);else c=!0}const i=e.slice(n).trim();i&&t(i)},a=(e,t)=>{const n=e.trim();if(!n)return"";const r=t.trim();if(!r)return n;const o=-1!==r.indexOf(","),s=-1!==n.indexOf(","),c=-1!==n.indexOf("&");if(!o&&!s)return c?n.replaceAll("&",r):`${r} ${n}`;const a=[];return i(r,e=>{i(n,t=>{t.includes("&")?a.push(t.replaceAll("&",e)):a.push(`${e} ${t}`)})}),a.join(", ")},p=e=>{switch(e.type){case"declaration":return(e=>{const t=e.value.trim();return t?`${e.prop}:${t};`:""})(e);case"rule":return(e=>{const t=e.body.map(p).join("");return t?`${e.selector}{${t}}`:""})(e);case"atRule":return(e=>{const t=e.params?` ${e.params}`:"";if(null===e.body)return`@${e.name}${t};`;const n=e.body.map(p).join("");return n?`@${e.name}${t}{${n}}`:""})(e);default:return""}},l=e=>e.body.map(p).filter(Boolean).join(""),u=(e,t)=>(e.expect("braceOpen"),{type:"rule",selector:t,body:y(e)}),f=(e,{stopAtBraceClose:t})=>{const n=[];for(;!e.isEof();){const r=e.peek();if(!r)break;if(t&&"braceClose"===r.type){e.next();break}if("semicolon"===r.type){e.next();continue}if("at"===r.type){n.push(b(e));continue}const o=s(e);o?"colon"!==e.peek()?.type?"braceOpen"!==e.peek()?.type?e.next():n.push(u(e,o)):n.push(c(e,o)):e.next()}return n},y=e=>f(e,{stopAtBraceClose:!0}),b=e=>{e.expect("at");const t=e.readUntil(["semicolon","braceOpen"]),{name:n,params:r}=(e=>{const t=e.trim();if(!t)return{name:"",params:void 0};let n=0;const r=t.length;for(;n<r;){const e=t[n];if(" "===e||"\t"===e||"\n"===e||"\r"===e||"\f"===e||"("===e)break;n++}const o=t.slice(0,n);for(;n<r;){const e=t[n];if(" "!==e&&"\t"!==e&&"\n"!==e&&"\r"!==e&&"\f"!==e)break;n++}return{name:o,params:t.slice(n)||void 0}})(t);let o=r;if("params"===e.peek()?.type){const t=e.expect("params").value;o=o?`${o}${t}`:t}return"braceOpen"===e.peek()?.type?{type:"atRule",name:n,params:o,body:y(e)}:("semicolon"===e.peek()?.type&&e.next(),{type:"atRule",name:n,params:o,body:null})},d=e=>{const n=t(e),o=r(n);return{type:"stylesheet",body:f(o,{stopAtBraceClose:!1})}},m={media:!0,supports:!0,container:!0,layer:!0},h=(e,t)=>{const n=t?a(e.selector,t):e.selector;return k(e.body,n)},k=(e,t)=>{const n=[],r=[],o=()=>{t&&0!==r.length&&(n.push({type:"rule",selector:t,body:r.slice()}),r.length=0)};for(let s=0;s<e.length;s++){const c=e[s];if("declaration"!==c.type)if("rule"!==c.type)if("atRule"!==c.type)o(),n.push(c);else{if(o(),!m[c.name]){n.push(c);continue}n.push({...c,body:c.body&&c.body.length>0?k(c.body,t):c.body})}else o(),n.push(...h(c,t));else r.push(c)}return o(),n},x=e=>({...e,body:k(e.body)});
2247
2224
  //# sourceMappingURL=index.mjs.map
2248
2225
 
2249
2226
  /***/ },