@react-hive/honey-style 2.2.0 → 2.3.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.
@@ -1960,6 +1960,7 @@ __webpack_require__.r(__webpack_exports__);
1960
1960
  /* harmony export */ CSS_COLOR_PROPERTIES: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.CSS_COLOR_PROPERTIES),
1961
1961
  /* harmony export */ CSS_SPACING_PROPERTIES: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.CSS_SPACING_PROPERTIES),
1962
1962
  /* harmony export */ createSpacingMiddleware: () => (/* reexport safe */ _middlewares__WEBPACK_IMPORTED_MODULE_2__.createSpacingMiddleware),
1963
+ /* harmony export */ createStackMiddleware: () => (/* reexport safe */ _middlewares__WEBPACK_IMPORTED_MODULE_2__.createStackMiddleware),
1963
1964
  /* harmony export */ css: () => (/* reexport safe */ _css__WEBPACK_IMPORTED_MODULE_4__.css),
1964
1965
  /* harmony export */ mediaQuery: () => (/* reexport safe */ _at_rules__WEBPACK_IMPORTED_MODULE_5__.mediaQuery),
1965
1966
  /* harmony export */ processCss: () => (/* reexport safe */ _processor__WEBPACK_IMPORTED_MODULE_3__.processCss)
@@ -1988,7 +1989,8 @@ __webpack_require__.r(__webpack_exports__);
1988
1989
 
1989
1990
  __webpack_require__.r(__webpack_exports__);
1990
1991
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1991
- /* harmony export */ createSpacingMiddleware: () => (/* binding */ createSpacingMiddleware)
1992
+ /* harmony export */ createSpacingMiddleware: () => (/* binding */ createSpacingMiddleware),
1993
+ /* harmony export */ createStackMiddleware: () => (/* binding */ createStackMiddleware)
1992
1994
  /* harmony export */ });
1993
1995
  /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./src/css/constants.ts");
1994
1996
 
@@ -2010,12 +2012,29 @@ const createSpacingMiddleware = ({ spacingMultiplier }) => element => {
2010
2012
  for (const value of parts) {
2011
2013
  transformedParts.push(
2012
2014
  // Accept only numeric strings (integers or floats), no units or symbols
2013
- /^(\d+|\d*\.\d+)$/.test(value) ? `${parseFloat(value) * spacingMultiplier}px` : value);
2015
+ /^-?\d*\.?\d+$/.test(value) ? `${parseFloat(value) * spacingMultiplier}px` : value);
2014
2016
  }
2015
2017
  const transformed = transformedParts.join(' ');
2016
2018
  element.return = `${element.props}:${transformed};`;
2017
2019
  }
2018
2020
  };
2021
+ const createStackMiddleware = ({ spacingMultiplier = 0 }) => element => {
2022
+ if (element.parent?.type !== 'rule' || element.type !== '@honey-stack') {
2023
+ return;
2024
+ }
2025
+ const match = element.value.match(`^${element.type}\\s*\\(\\s*([^)]+?)\\s*\\)`);
2026
+ if (!match) {
2027
+ return;
2028
+ }
2029
+ const rawGap = match[1].trim();
2030
+ // Matches values like: 1.5, -2, 10px, 0.25rem, 5%, etc.
2031
+ const hasUnit = /[a-z%]+$/i.test(rawGap);
2032
+ const gapValue = hasUnit ? rawGap : `${parseFloat(rawGap) * spacingMultiplier}px`;
2033
+ const parentSelector = element.parent?.value;
2034
+ // Transform @honey-stack(...) into three normal declarations
2035
+ element.type = 'decl';
2036
+ element.return = `${parentSelector}{display:flex;flex-direction:column;gap:${gapValue};}`;
2037
+ };
2019
2038
 
2020
2039
 
2021
2040
  /***/ }),
@@ -2038,7 +2057,11 @@ __webpack_require__.r(__webpack_exports__);
2038
2057
 
2039
2058
  const processCss = (rawCss, selector, { spacingMultiplier = 0 } = {}) => {
2040
2059
  const scopedCss = selector ? `${selector}{${rawCss}}` : rawCss;
2041
- const middlewares = [(0,_middlewares__WEBPACK_IMPORTED_MODULE_0__.createSpacingMiddleware)({ spacingMultiplier }), stylis__WEBPACK_IMPORTED_MODULE_1__.stringify];
2060
+ const middlewares = [
2061
+ (0,_middlewares__WEBPACK_IMPORTED_MODULE_0__.createSpacingMiddleware)({ spacingMultiplier }),
2062
+ (0,_middlewares__WEBPACK_IMPORTED_MODULE_0__.createStackMiddleware)({ spacingMultiplier }),
2063
+ stylis__WEBPACK_IMPORTED_MODULE_1__.stringify,
2064
+ ];
2042
2065
  return (0,stylis__WEBPACK_IMPORTED_MODULE_1__.serialize)((0,stylis__WEBPACK_IMPORTED_MODULE_2__.compile)(scopedCss), (0,stylis__WEBPACK_IMPORTED_MODULE_3__.middleware)(middlewares));
2043
2066
  };
2044
2067
 
@@ -2804,6 +2827,7 @@ __webpack_require__.r(__webpack_exports__);
2804
2827
  /* harmony export */ convertHexToHexWithAlpha: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_8__.convertHexToHexWithAlpha),
2805
2828
  /* harmony export */ createGlobalStyle: () => (/* reexport safe */ _global_style__WEBPACK_IMPORTED_MODULE_6__.createGlobalStyle),
2806
2829
  /* harmony export */ createSpacingMiddleware: () => (/* reexport safe */ _css__WEBPACK_IMPORTED_MODULE_5__.createSpacingMiddleware),
2830
+ /* harmony export */ createStackMiddleware: () => (/* reexport safe */ _css__WEBPACK_IMPORTED_MODULE_5__.createStackMiddleware),
2807
2831
  /* harmony export */ css: () => (/* reexport safe */ _css__WEBPACK_IMPORTED_MODULE_5__.css),
2808
2832
  /* harmony export */ filterNonHtmlAttrs: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_8__.filterNonHtmlAttrs),
2809
2833
  /* harmony export */ generateId: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_8__.generateId),