@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.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.dev.cjs +68 -91
- package/dist/index.dev.cjs.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/providers/HoneyStyleProvider.d.ts +2 -1
- package/dist/styled.d.ts +68 -7
- package/package.json +2 -2
- package/dist/css/flatten-css-rules.d.ts +0 -2
package/dist/index.dev.cjs
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/******/ "use strict";
|
|
3
3
|
/******/ var __webpack_modules__ = ({
|
|
4
4
|
|
|
5
|
-
/***/ "./node_modules/.pnpm/react@19.2.
|
|
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.
|
|
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.
|
|
367
|
+
/***/ "./node_modules/.pnpm/react@19.2.7/node_modules/react/jsx-runtime.js"
|
|
368
368
|
/*!***************************************************************************!*\
|
|
369
|
-
!*** ./node_modules/.pnpm/react@19.2.
|
|
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.
|
|
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.
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 */
|
|
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})},
|
|
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
|
/***/ },
|