| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 "use strict"; 2 var wp; 3 (wp ||= {}).styleEngine = (() => { 4 var __defProp = Object.defineProperty; 5 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 6 var __getOwnPropNames = Object.getOwnPropertyNames; 7 var __hasOwnProp = Object.prototype.hasOwnProperty; 8 var __export = (target, all) => { 9 for (var name in all) 10 __defProp(target, name, { get: all[name], enumerable: true }); 11 }; 12 var __copyProps = (to, from, except, desc) => { 13 if (from && typeof from === "object" || typeof from === "function") { 14 for (let key of __getOwnPropNames(from)) 15 if (!__hasOwnProp.call(to, key) && key !== except) 16 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 17 } 18 return to; 19 }; 20 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); 21 22 // packages/style-engine/build-module/index.js 23 var index_exports = {}; 24 __export(index_exports, { 25 compileCSS: () => compileCSS, 26 getCSSRules: () => getCSSRules, 27 getCSSValueFromRawStyle: () => getCSSValueFromRawStyle 28 }); 29 30 // node_modules/tslib/tslib.es6.mjs 31 var __assign = function() { 32 __assign = Object.assign || function __assign2(t) { 33 for (var s, i = 1, n = arguments.length; i < n; i++) { 34 s = arguments[i]; 35 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; 36 } 37 return t; 38 }; 39 return __assign.apply(this, arguments); 40 }; 41 42 // node_modules/lower-case/dist.es2015/index.js 43 function lowerCase(str) { 44 return str.toLowerCase(); 45 } 46 47 // node_modules/no-case/dist.es2015/index.js 48 var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g]; 49 var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi; 50 function noCase(input, options) { 51 if (options === void 0) { 52 options = {}; 53 } 54 var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d; 55 var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0"); 56 var start = 0; 57 var end = result.length; 58 while (result.charAt(start) === "\0") 59 start++; 60 while (result.charAt(end - 1) === "\0") 61 end--; 62 return result.slice(start, end).split("\0").map(transform).join(delimiter); 63 } 64 function replace(input, re, value) { 65 if (re instanceof RegExp) 66 return input.replace(re, value); 67 return re.reduce(function(input2, re2) { 68 return input2.replace(re2, value); 69 }, input); 70 } 71 72 // node_modules/dot-case/dist.es2015/index.js 73 function dotCase(input, options) { 74 if (options === void 0) { 75 options = {}; 76 } 77 return noCase(input, __assign({ delimiter: "." }, options)); 78 } 79 80 // node_modules/param-case/dist.es2015/index.js 81 function paramCase(input, options) { 82 if (options === void 0) { 83 options = {}; 84 } 85 return dotCase(input, __assign({ delimiter: "-" }, options)); 86 } 87 88 // packages/style-engine/build-module/styles/constants.js 89 var VARIABLE_REFERENCE_PREFIX = "var:"; 90 var VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE = "|"; 91 var VARIABLE_PATH_SEPARATOR_TOKEN_STYLE = "--"; 92 93 // packages/style-engine/build-module/styles/utils.js 94 var getStyleValueByPath = (object, path) => { 95 let value = object; 96 path.forEach((fieldName) => { 97 value = value?.[fieldName]; 98 }); 99 return value; 100 }; 101 function generateRule(style, options, path, ruleKey) { 102 const styleValue = getStyleValueByPath(style, path); 103 return styleValue ? [ 104 { 105 selector: options?.selector, 106 key: ruleKey, 107 value: getCSSValueFromRawStyle(styleValue) 108 } 109 ] : []; 110 } 111 function generateBoxRules(style, options, path, ruleKeys, individualProperties = ["top", "right", "bottom", "left"]) { 112 const boxStyle = getStyleValueByPath( 113 style, 114 path 115 ); 116 if (!boxStyle) { 117 return []; 118 } 119 const rules = []; 120 if (typeof boxStyle === "string") { 121 rules.push({ 122 selector: options?.selector, 123 key: ruleKeys.default, 124 value: getCSSValueFromRawStyle(boxStyle) 125 }); 126 } else { 127 const sideRules = individualProperties.reduce( 128 (acc, side) => { 129 const value = getCSSValueFromRawStyle( 130 getStyleValueByPath(boxStyle, [side]) 131 ); 132 if (value) { 133 acc.push({ 134 selector: options?.selector, 135 key: ruleKeys?.individual.replace( 136 "%s", 137 upperFirst(side) 138 ), 139 value 140 }); 141 } 142 return acc; 143 }, 144 [] 145 ); 146 rules.push(...sideRules); 147 } 148 return rules; 149 } 150 function getCSSValueFromRawStyle(styleValue) { 151 if (typeof styleValue === "string" && styleValue.startsWith(VARIABLE_REFERENCE_PREFIX)) { 152 const variable = styleValue.slice(VARIABLE_REFERENCE_PREFIX.length).split(VARIABLE_PATH_SEPARATOR_TOKEN_ATTRIBUTE).map( 153 (presetVariable) => paramCase(presetVariable, { 154 splitRegexp: [ 155 /([a-z0-9])([A-Z])/g, 156 // fooBar => foo-bar, 3Bar => 3-bar 157 /([0-9])([a-z])/g, 158 // 3bar => 3-bar 159 /([A-Za-z])([0-9])/g, 160 // Foo3 => foo-3, foo3 => foo-3 161 /([A-Z])([A-Z][a-z])/g 162 // FOOBar => foo-bar 163 ] 164 }) 165 ).join(VARIABLE_PATH_SEPARATOR_TOKEN_STYLE); 166 return `var(--wp--$variable})`; 167 } 168 return styleValue; 169 } 170 function upperFirst(string) { 171 const [firstLetter, ...rest] = string; 172 return firstLetter.toUpperCase() + rest.join(""); 173 } 174 function camelCaseJoin(strings) { 175 const [firstItem, ...rest] = strings; 176 return firstItem.toLowerCase() + rest.map(upperFirst).join(""); 177 } 178 function safeDecodeURI(uri) { 179 try { 180 return decodeURI(uri); 181 } catch (uriError) { 182 return uri; 183 } 184 } 185 186 // packages/style-engine/build-module/styles/border/index.js 187 function createBorderGenerateFunction(path) { 188 return (style, options) => generateRule(style, options, path, camelCaseJoin(path)); 189 } 190 function createBorderEdgeGenerateFunction(edge) { 191 return (style, options) => { 192 return ["color", "style", "width"].flatMap((key) => { 193 const path = ["border", edge, key]; 194 return createBorderGenerateFunction(path)(style, options); 195 }); 196 }; 197 } 198 var color = { 199 name: "color", 200 generate: createBorderGenerateFunction(["border", "color"]) 201 }; 202 var radius = { 203 name: "radius", 204 generate: (style, options) => { 205 return generateBoxRules( 206 style, 207 options, 208 ["border", "radius"], 209 { 210 default: "borderRadius", 211 individual: "border%sRadius" 212 }, 213 ["topLeft", "topRight", "bottomLeft", "bottomRight"] 214 ); 215 } 216 }; 217 var borderStyle = { 218 name: "style", 219 generate: createBorderGenerateFunction(["border", "style"]) 220 }; 221 var width = { 222 name: "width", 223 generate: createBorderGenerateFunction(["border", "width"]) 224 }; 225 var borderTop = { 226 name: "borderTop", 227 generate: createBorderEdgeGenerateFunction("top") 228 }; 229 var borderRight = { 230 name: "borderRight", 231 generate: createBorderEdgeGenerateFunction("right") 232 }; 233 var borderBottom = { 234 name: "borderBottom", 235 generate: createBorderEdgeGenerateFunction("bottom") 236 }; 237 var borderLeft = { 238 name: "borderLeft", 239 generate: createBorderEdgeGenerateFunction("left") 240 }; 241 var border_default = [ 242 color, 243 borderStyle, 244 width, 245 radius, 246 borderTop, 247 borderRight, 248 borderBottom, 249 borderLeft 250 ]; 251 252 // packages/style-engine/build-module/styles/color/background.js 253 var background = { 254 name: "background", 255 generate: (style, options) => { 256 return generateRule( 257 style, 258 options, 259 ["color", "background"], 260 "backgroundColor" 261 ); 262 } 263 }; 264 var background_default = background; 265 266 // packages/style-engine/build-module/styles/color/gradient.js 267 var gradient = { 268 name: "gradient", 269 generate: (style, options) => { 270 return generateRule( 271 style, 272 options, 273 ["color", "gradient"], 274 "background" 275 ); 276 } 277 }; 278 var gradient_default = gradient; 279 280 // packages/style-engine/build-module/styles/color/text.js 281 var text = { 282 name: "text", 283 generate: (style, options) => { 284 return generateRule(style, options, ["color", "text"], "color"); 285 } 286 }; 287 var text_default = text; 288 289 // packages/style-engine/build-module/styles/color/index.js 290 var color_default = [text_default, gradient_default, background_default]; 291 292 // packages/style-engine/build-module/styles/dimensions/index.js 293 var height = { 294 name: "height", 295 generate: (style, options) => { 296 return generateRule( 297 style, 298 options, 299 ["dimensions", "height"], 300 "height" 301 ); 302 } 303 }; 304 var minHeight = { 305 name: "minHeight", 306 generate: (style, options) => { 307 return generateRule( 308 style, 309 options, 310 ["dimensions", "minHeight"], 311 "minHeight" 312 ); 313 } 314 }; 315 var aspectRatio = { 316 name: "aspectRatio", 317 generate: (style, options) => { 318 return generateRule( 319 style, 320 options, 321 ["dimensions", "aspectRatio"], 322 "aspectRatio" 323 ); 324 } 325 }; 326 var width2 = { 327 name: "width", 328 generate: (style, options) => { 329 return generateRule( 330 style, 331 options, 332 ["dimensions", "width"], 333 "width" 334 ); 335 } 336 }; 337 var dimensions_default = [height, minHeight, aspectRatio, width2]; 338 339 // packages/style-engine/build-module/styles/background/index.js 340 var backgroundImage = { 341 name: "backgroundImage", 342 generate: (style, options) => { 343 const _backgroundImage = style?.background?.backgroundImage; 344 if (typeof _backgroundImage === "object" && _backgroundImage?.url) { 345 return [ 346 { 347 selector: options.selector, 348 key: "backgroundImage", 349 // Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string. 350 value: `url( '$encodeURI( 351 safeDecodeURI(_backgroundImage.url) 352 )}' )` 353 } 354 ]; 355 } 356 return generateRule( 357 style, 358 options, 359 ["background", "backgroundImage"], 360 "backgroundImage" 361 ); 362 } 363 }; 364 var backgroundPosition = { 365 name: "backgroundPosition", 366 generate: (style, options) => { 367 return generateRule( 368 style, 369 options, 370 ["background", "backgroundPosition"], 371 "backgroundPosition" 372 ); 373 } 374 }; 375 var backgroundRepeat = { 376 name: "backgroundRepeat", 377 generate: (style, options) => { 378 return generateRule( 379 style, 380 options, 381 ["background", "backgroundRepeat"], 382 "backgroundRepeat" 383 ); 384 } 385 }; 386 var backgroundSize = { 387 name: "backgroundSize", 388 generate: (style, options) => { 389 return generateRule( 390 style, 391 options, 392 ["background", "backgroundSize"], 393 "backgroundSize" 394 ); 395 } 396 }; 397 var backgroundAttachment = { 398 name: "backgroundAttachment", 399 generate: (style, options) => { 400 return generateRule( 401 style, 402 options, 403 ["background", "backgroundAttachment"], 404 "backgroundAttachment" 405 ); 406 } 407 }; 408 var background_default2 = [ 409 backgroundImage, 410 backgroundPosition, 411 backgroundRepeat, 412 backgroundSize, 413 backgroundAttachment 414 ]; 415 416 // packages/style-engine/build-module/styles/shadow/index.js 417 var shadow = { 418 name: "shadow", 419 generate: (style, options) => { 420 return generateRule(style, options, ["shadow"], "boxShadow"); 421 } 422 }; 423 var shadow_default = [shadow]; 424 425 // packages/style-engine/build-module/styles/outline/index.js 426 var color2 = { 427 name: "color", 428 generate: (style, options, path = ["outline", "color"], ruleKey = "outlineColor") => { 429 return generateRule(style, options, path, ruleKey); 430 } 431 }; 432 var offset = { 433 name: "offset", 434 generate: (style, options, path = ["outline", "offset"], ruleKey = "outlineOffset") => { 435 return generateRule(style, options, path, ruleKey); 436 } 437 }; 438 var outlineStyle = { 439 name: "style", 440 generate: (style, options, path = ["outline", "style"], ruleKey = "outlineStyle") => { 441 return generateRule(style, options, path, ruleKey); 442 } 443 }; 444 var width3 = { 445 name: "width", 446 generate: (style, options, path = ["outline", "width"], ruleKey = "outlineWidth") => { 447 return generateRule(style, options, path, ruleKey); 448 } 449 }; 450 var outline_default = [color2, outlineStyle, offset, width3]; 451 452 // packages/style-engine/build-module/styles/spacing/padding.js 453 var padding = { 454 name: "padding", 455 generate: (style, options) => { 456 return generateBoxRules(style, options, ["spacing", "padding"], { 457 default: "padding", 458 individual: "padding%s" 459 }); 460 } 461 }; 462 var padding_default = padding; 463 464 // packages/style-engine/build-module/styles/spacing/margin.js 465 var margin = { 466 name: "margin", 467 generate: (style, options) => { 468 return generateBoxRules(style, options, ["spacing", "margin"], { 469 default: "margin", 470 individual: "margin%s" 471 }); 472 } 473 }; 474 var margin_default = margin; 475 476 // packages/style-engine/build-module/styles/spacing/index.js 477 var spacing_default = [margin_default, padding_default]; 478 479 // packages/style-engine/build-module/styles/typography/index.js 480 var fontSize = { 481 name: "fontSize", 482 generate: (style, options) => { 483 return generateRule( 484 style, 485 options, 486 ["typography", "fontSize"], 487 "fontSize" 488 ); 489 } 490 }; 491 var fontStyle = { 492 name: "fontStyle", 493 generate: (style, options) => { 494 return generateRule( 495 style, 496 options, 497 ["typography", "fontStyle"], 498 "fontStyle" 499 ); 500 } 501 }; 502 var fontWeight = { 503 name: "fontWeight", 504 generate: (style, options) => { 505 return generateRule( 506 style, 507 options, 508 ["typography", "fontWeight"], 509 "fontWeight" 510 ); 511 } 512 }; 513 var fontFamily = { 514 name: "fontFamily", 515 generate: (style, options) => { 516 return generateRule( 517 style, 518 options, 519 ["typography", "fontFamily"], 520 "fontFamily" 521 ); 522 } 523 }; 524 var letterSpacing = { 525 name: "letterSpacing", 526 generate: (style, options) => { 527 return generateRule( 528 style, 529 options, 530 ["typography", "letterSpacing"], 531 "letterSpacing" 532 ); 533 } 534 }; 535 var lineHeight = { 536 name: "lineHeight", 537 generate: (style, options) => { 538 return generateRule( 539 style, 540 options, 541 ["typography", "lineHeight"], 542 "lineHeight" 543 ); 544 } 545 }; 546 var textColumns = { 547 name: "textColumns", 548 generate: (style, options) => { 549 return generateRule( 550 style, 551 options, 552 ["typography", "textColumns"], 553 "columnCount" 554 ); 555 } 556 }; 557 var textDecoration = { 558 name: "textDecoration", 559 generate: (style, options) => { 560 return generateRule( 561 style, 562 options, 563 ["typography", "textDecoration"], 564 "textDecoration" 565 ); 566 } 567 }; 568 var textTransform = { 569 name: "textTransform", 570 generate: (style, options) => { 571 return generateRule( 572 style, 573 options, 574 ["typography", "textTransform"], 575 "textTransform" 576 ); 577 } 578 }; 579 var writingMode = { 580 name: "writingMode", 581 generate: (style, options) => { 582 return generateRule( 583 style, 584 options, 585 ["typography", "writingMode"], 586 "writingMode" 587 ); 588 } 589 }; 590 var typography_default = [ 591 fontFamily, 592 fontSize, 593 fontStyle, 594 fontWeight, 595 letterSpacing, 596 lineHeight, 597 textColumns, 598 textDecoration, 599 textTransform, 600 writingMode 601 ]; 602 603 // packages/style-engine/build-module/styles/index.js 604 var styleDefinitions = [ 605 ...border_default, 606 ...color_default, 607 ...dimensions_default, 608 ...outline_default, 609 ...spacing_default, 610 ...typography_default, 611 ...shadow_default, 612 ...background_default2 613 ]; 614 615 // packages/style-engine/build-module/index.js 616 function compileCSS(style, options = {}) { 617 const rules = getCSSRules(style, options); 618 if (!options?.selector) { 619 const inlineRules = []; 620 rules.forEach((rule) => { 621 inlineRules.push(`$paramCase(rule.key)}: $rule.value};`); 622 }); 623 return inlineRules.join(" "); 624 } 625 const groupedRules = rules.reduce( 626 (acc, rule) => { 627 const { selector } = rule; 628 if (!selector) { 629 return acc; 630 } 631 if (!acc[selector]) { 632 acc[selector] = []; 633 } 634 acc[selector].push(rule); 635 return acc; 636 }, 637 {} 638 ); 639 const selectorRules = Object.keys(groupedRules).reduce( 640 (acc, subSelector) => { 641 acc.push( 642 `$subSelector} { $groupedRules[subSelector].map( 643 (rule) => `$paramCase(rule.key)}: $rule.value};` 644 ).join(" ")} }` 645 ); 646 return acc; 647 }, 648 [] 649 ); 650 return selectorRules.join("\n"); 651 } 652 function getCSSRules(style, options = {}) { 653 const rules = []; 654 styleDefinitions.forEach((definition) => { 655 if (typeof definition.generate === "function") { 656 rules.push(...definition.generate(style, options)); 657 } 658 }); 659 return rules; 660 } 661 return __toCommonJS(index_exports); 662 })();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Fri Apr 10 08:20:08 2026 | Cross-referenced by PHPXref |