@react-hive/honey-style 2.6.0 → 2.7.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.
@@ -1962,6 +1962,7 @@ __webpack_require__.r(__webpack_exports__);
1962
1962
  /* harmony export */ CSS_SPACING_PROPERTIES: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_1__.CSS_SPACING_PROPERTIES),
1963
1963
  /* harmony export */ createAbsoluteFillAtRuleMiddleware: () => (/* reexport safe */ _middlewares__WEBPACK_IMPORTED_MODULE_2__.createAbsoluteFillAtRuleMiddleware),
1964
1964
  /* harmony export */ createCenterAtRuleMiddleware: () => (/* reexport safe */ _middlewares__WEBPACK_IMPORTED_MODULE_2__.createCenterAtRuleMiddleware),
1965
+ /* harmony export */ createEllipsisAtRuleMiddleware: () => (/* reexport safe */ _middlewares__WEBPACK_IMPORTED_MODULE_2__.createEllipsisAtRuleMiddleware),
1965
1966
  /* harmony export */ createInlineAtRuleMiddleware: () => (/* reexport safe */ _middlewares__WEBPACK_IMPORTED_MODULE_2__.createInlineAtRuleMiddleware),
1966
1967
  /* harmony export */ createSpacingMiddleware: () => (/* reexport safe */ _middlewares__WEBPACK_IMPORTED_MODULE_2__.createSpacingMiddleware),
1967
1968
  /* harmony export */ createStackAtRuleMiddleware: () => (/* reexport safe */ _middlewares__WEBPACK_IMPORTED_MODULE_2__.createStackAtRuleMiddleware),
@@ -1999,7 +2000,10 @@ __webpack_require__.r(__webpack_exports__);
1999
2000
 
2000
2001
  const createAbsoluteFillAtRuleMiddleware = () => (0,_factory__WEBPACK_IMPORTED_MODULE_0__.createAtRuleMiddleware)({
2001
2002
  name: 'absolute-fill',
2002
- transform: () => 'position:absolute;top:0;right:0;bottom:0;left:0;',
2003
+ transform: () => {
2004
+ const declarations = ['position:absolute;', 'inset:0;'];
2005
+ return declarations.join('');
2006
+ },
2003
2007
  });
2004
2008
 
2005
2009
 
@@ -2019,7 +2023,56 @@ __webpack_require__.r(__webpack_exports__);
2019
2023
 
2020
2024
  const createCenterAtRuleMiddleware = () => (0,_factory__WEBPACK_IMPORTED_MODULE_0__.createAtRuleMiddleware)({
2021
2025
  name: 'center',
2022
- transform: () => 'display:flex;align-items:center;justify-content:center;',
2026
+ transform: (args = []) => {
2027
+ const declarations = [];
2028
+ switch (args[0]) {
2029
+ case 'horizontal':
2030
+ case 'x':
2031
+ declarations.push('display:flex;', 'justify-content:center;');
2032
+ break;
2033
+ case 'vertical':
2034
+ case 'y':
2035
+ declarations.push('display:flex;', 'align-items:center;');
2036
+ break;
2037
+ case 'block':
2038
+ declarations.push('display:block;', 'text-align:center;');
2039
+ break;
2040
+ case 'inline':
2041
+ declarations.push('display:inline-flex;', 'align-items:center;', 'justify-content:center;');
2042
+ break;
2043
+ default:
2044
+ declarations.push('display:flex;', 'align-items:center;', 'justify-content:center;');
2045
+ break;
2046
+ }
2047
+ return declarations.join('');
2048
+ },
2049
+ });
2050
+
2051
+
2052
+ /***/ }),
2053
+
2054
+ /***/ "./src/css/middlewares/ellipsis-at-rule.ts":
2055
+ /*!*************************************************!*\
2056
+ !*** ./src/css/middlewares/ellipsis-at-rule.ts ***!
2057
+ \*************************************************/
2058
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2059
+
2060
+ __webpack_require__.r(__webpack_exports__);
2061
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2062
+ /* harmony export */ createEllipsisAtRuleMiddleware: () => (/* binding */ createEllipsisAtRuleMiddleware)
2063
+ /* harmony export */ });
2064
+ /* harmony import */ var _factory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./factory */ "./src/css/middlewares/factory.ts");
2065
+
2066
+ const createEllipsisAtRuleMiddleware = () => (0,_factory__WEBPACK_IMPORTED_MODULE_0__.createAtRuleMiddleware)({
2067
+ name: 'ellipsis',
2068
+ transform: () => {
2069
+ const declarations = [
2070
+ 'white-space:nowrap;',
2071
+ 'overflow:hidden;',
2072
+ 'text-overflow:ellipsis;',
2073
+ ];
2074
+ return declarations.join('');
2075
+ },
2023
2076
  });
2024
2077
 
2025
2078
 
@@ -2039,20 +2092,42 @@ __webpack_require__.r(__webpack_exports__);
2039
2092
  /* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! stylis */ "./node_modules/stylis/src/Parser.js");
2040
2093
 
2041
2094
  /**
2042
- * Creates a Stylis middleware that transforms a custom @honey-* at-rule
2043
- * into standard CSS declarations. It supports optional arguments via parentheses
2044
- * and nested rule content.
2095
+ * Creates a Stylis middleware for transforming custom `@honey-*` at-rules into
2096
+ * regular CSS declarations.
2045
2097
  *
2046
- * @example
2047
- * // For @honey-stack(2) { gap: 1; }
2098
+ * This utility enables the definition of expressive, domain-specific at-rules
2099
+ * such as `@honey-stack`, `@honey-inline`, or `@honey-center`, which can then be
2100
+ * expanded into valid CSS at build time.
2101
+ *
2102
+ * Supports optional arguments passed via parentheses (e.g., `@honey-stack(2)`),
2103
+ * as well as nested rule bodies (e.g., `@honey-stack { .child { ... } }`).
2104
+ *
2105
+ * ---
2106
+ *
2107
+ * ### Example
2108
+ * ```ts
2048
2109
  * createAtRuleMiddleware({
2049
2110
  * name: 'stack',
2050
- * transform: args => `display:flex;gap:${parseFloat(args || '0') * 8}px;`
2111
+ * transform: args => {
2112
+ * const gap = parseFloat(args?.[0] ?? '0') * 8;
2113
+ *
2114
+ * return `display:flex;flex-direction:column;gap:${gap}px;`;
2115
+ * }
2051
2116
  * });
2117
+ * ```
2052
2118
  *
2053
- * @param options - Middleware creation options.
2119
+ * ---
2054
2120
  *
2055
- * @returns A Stylis middleware function.
2121
+ * ### Behavior
2122
+ * - Matches only rules of the form `@honey-${name}` inside standard CSS rules.
2123
+ * - Parses arguments from parentheses (e.g. `@honey-name (arg1 arg2)`).
2124
+ * - Serializes nested content (children) and appends it to the output.
2125
+ *
2126
+ * @param options - Options for configuring the middleware:
2127
+ * - `name`: the custom at-rule suffix, without the `@honey-` prefix.
2128
+ * - `transform`: a function to convert parsed args and the AST node into CSS declarations.
2129
+ *
2130
+ * @returns A Stylis `Middleware` function that replaces the matched at-rule with the generated CSS.
2056
2131
  */
2057
2132
  const createAtRuleMiddleware = ({ name, transform, }) => {
2058
2133
  return (element, _i, _children, callback) => {
@@ -2066,7 +2141,7 @@ const createAtRuleMiddleware = ({ name, transform, }) => {
2066
2141
  const argsMatch = element.value
2067
2142
  .trim()
2068
2143
  .match(new RegExp(`^${element.type}\\s*\\(\\s*([^)]+?)\\s*\\)\\s*;?$`, 'i'));
2069
- const args = argsMatch ? argsMatch[1].trim() : undefined;
2144
+ const args = argsMatch ? argsMatch[1].split(' ').filter(Boolean) : undefined;
2070
2145
  const transformedCSS = transform(args, element, name);
2071
2146
  const serializedChildren = Array.isArray(element.children)
2072
2147
  ? (0,stylis__WEBPACK_IMPORTED_MODULE_0__.serialize)(element.children, callback)
@@ -2089,6 +2164,7 @@ __webpack_require__.r(__webpack_exports__);
2089
2164
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2090
2165
  /* harmony export */ createAbsoluteFillAtRuleMiddleware: () => (/* reexport safe */ _absolute_fill_at_rule__WEBPACK_IMPORTED_MODULE_4__.createAbsoluteFillAtRuleMiddleware),
2091
2166
  /* harmony export */ createCenterAtRuleMiddleware: () => (/* reexport safe */ _center_at_rule__WEBPACK_IMPORTED_MODULE_3__.createCenterAtRuleMiddleware),
2167
+ /* harmony export */ createEllipsisAtRuleMiddleware: () => (/* reexport safe */ _ellipsis_at_rule__WEBPACK_IMPORTED_MODULE_5__.createEllipsisAtRuleMiddleware),
2092
2168
  /* harmony export */ createInlineAtRuleMiddleware: () => (/* reexport safe */ _inline_at_rule__WEBPACK_IMPORTED_MODULE_2__.createInlineAtRuleMiddleware),
2093
2169
  /* harmony export */ createSpacingMiddleware: () => (/* reexport safe */ _spacing__WEBPACK_IMPORTED_MODULE_0__.createSpacingMiddleware),
2094
2170
  /* harmony export */ createStackAtRuleMiddleware: () => (/* reexport safe */ _stack_at_rule__WEBPACK_IMPORTED_MODULE_1__.createStackAtRuleMiddleware)
@@ -2098,6 +2174,8 @@ __webpack_require__.r(__webpack_exports__);
2098
2174
  /* harmony import */ var _inline_at_rule__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./inline-at-rule */ "./src/css/middlewares/inline-at-rule.ts");
2099
2175
  /* harmony import */ var _center_at_rule__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./center-at-rule */ "./src/css/middlewares/center-at-rule.ts");
2100
2176
  /* harmony import */ var _absolute_fill_at_rule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./absolute-fill-at-rule */ "./src/css/middlewares/absolute-fill-at-rule.ts");
2177
+ /* harmony import */ var _ellipsis_at_rule__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ellipsis-at-rule */ "./src/css/middlewares/ellipsis-at-rule.ts");
2178
+
2101
2179
 
2102
2180
 
2103
2181
 
@@ -2123,9 +2201,9 @@ const createInlineAtRuleMiddleware = ({ spacingMultiplier = 0, } = {}) => (0,_fa
2123
2201
  name: 'inline',
2124
2202
  transform: args => {
2125
2203
  const declarations = ['display:flex;', 'align-items:center;'];
2126
- if (args) {
2127
- const isNumber = /^-?\d*\.?\d+$/.test(args);
2128
- const gap = isNumber ? `${parseFloat(args) * spacingMultiplier}px` : args;
2204
+ if (args?.length) {
2205
+ const isNumber = /^-?\d*\.?\d+$/.test(args[0]);
2206
+ const gap = isNumber ? `${parseFloat(args[0]) * spacingMultiplier}px` : args;
2129
2207
  declarations.push(`gap:${gap};`);
2130
2208
  }
2131
2209
  return declarations.join('');
@@ -2191,9 +2269,9 @@ const createStackAtRuleMiddleware = ({ spacingMultiplier = 0, }) => (0,_factory_
2191
2269
  name: 'stack',
2192
2270
  transform: args => {
2193
2271
  const declarations = ['display:flex;', 'flex-direction:column;'];
2194
- if (args) {
2195
- const isNumber = /^-?\d*\.?\d+$/.test(args);
2196
- const gap = isNumber ? `${parseFloat(args) * spacingMultiplier}px` : args;
2272
+ if (args?.length) {
2273
+ const isNumber = /^-?\d*\.?\d+$/.test(args[0]);
2274
+ const gap = isNumber ? `${parseFloat(args[0]) * spacingMultiplier}px` : args;
2197
2275
  declarations.push(`gap:${gap};`);
2198
2276
  }
2199
2277
  return declarations.join('');
@@ -2225,6 +2303,7 @@ const processCss = (rawCss, selector, { spacingMultiplier } = {}) => {
2225
2303
  (0,_middlewares__WEBPACK_IMPORTED_MODULE_0__.createStackAtRuleMiddleware)({ spacingMultiplier }),
2226
2304
  (0,_middlewares__WEBPACK_IMPORTED_MODULE_0__.createInlineAtRuleMiddleware)({ spacingMultiplier }),
2227
2305
  (0,_middlewares__WEBPACK_IMPORTED_MODULE_0__.createCenterAtRuleMiddleware)(),
2306
+ (0,_middlewares__WEBPACK_IMPORTED_MODULE_0__.createEllipsisAtRuleMiddleware)(),
2228
2307
  (0,_middlewares__WEBPACK_IMPORTED_MODULE_0__.createAbsoluteFillAtRuleMiddleware)(),
2229
2308
  (0,_middlewares__WEBPACK_IMPORTED_MODULE_0__.createSpacingMiddleware)({ spacingMultiplier }),
2230
2309
  stylis__WEBPACK_IMPORTED_MODULE_1__.stringify,
@@ -2994,6 +3073,7 @@ __webpack_require__.r(__webpack_exports__);
2994
3073
  /* harmony export */ convertHexToHexWithAlpha: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_8__.convertHexToHexWithAlpha),
2995
3074
  /* harmony export */ createAbsoluteFillAtRuleMiddleware: () => (/* reexport safe */ _css__WEBPACK_IMPORTED_MODULE_5__.createAbsoluteFillAtRuleMiddleware),
2996
3075
  /* harmony export */ createCenterAtRuleMiddleware: () => (/* reexport safe */ _css__WEBPACK_IMPORTED_MODULE_5__.createCenterAtRuleMiddleware),
3076
+ /* harmony export */ createEllipsisAtRuleMiddleware: () => (/* reexport safe */ _css__WEBPACK_IMPORTED_MODULE_5__.createEllipsisAtRuleMiddleware),
2997
3077
  /* harmony export */ createGlobalStyle: () => (/* reexport safe */ _global_style__WEBPACK_IMPORTED_MODULE_6__.createGlobalStyle),
2998
3078
  /* harmony export */ createInlineAtRuleMiddleware: () => (/* reexport safe */ _css__WEBPACK_IMPORTED_MODULE_5__.createInlineAtRuleMiddleware),
2999
3079
  /* harmony export */ createSpacingMiddleware: () => (/* reexport safe */ _css__WEBPACK_IMPORTED_MODULE_5__.createSpacingMiddleware),