| [ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 "use strict"; 2 var wp; 3 (wp ||= {}).preferences = (() => { 4 var __create = Object.create; 5 var __defProp = Object.defineProperty; 6 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 7 var __getOwnPropNames = Object.getOwnPropertyNames; 8 var __getProtoOf = Object.getPrototypeOf; 9 var __hasOwnProp = Object.prototype.hasOwnProperty; 10 var __commonJS = (cb, mod) => function __require() { 11 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 12 }; 13 var __export = (target, all) => { 14 for (var name in all) 15 __defProp(target, name, { get: all[name], enumerable: true }); 16 }; 17 var __copyProps = (to, from, except, desc) => { 18 if (from && typeof from === "object" || typeof from === "function") { 19 for (let key of __getOwnPropNames(from)) 20 if (!__hasOwnProp.call(to, key) && key !== except) 21 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 22 } 23 return to; 24 }; 25 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 26 // If the importer is in node compatibility mode or this is not an ESM 27 // file that has been converted to a CommonJS file using a Babel- 28 // compatible transform (i.e. "__esModule" has not been set), then set 29 // "default" to the CommonJS "module.exports" for node compatibility. 30 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 31 mod 32 )); 33 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); 34 35 // package-external:@wordpress/data 36 var require_data = __commonJS({ 37 "package-external:@wordpress/data"(exports, module) { 38 module.exports = window.wp.data; 39 } 40 }); 41 42 // package-external:@wordpress/components 43 var require_components = __commonJS({ 44 "package-external:@wordpress/components"(exports, module) { 45 module.exports = window.wp.components; 46 } 47 }); 48 49 // package-external:@wordpress/i18n 50 var require_i18n = __commonJS({ 51 "package-external:@wordpress/i18n"(exports, module) { 52 module.exports = window.wp.i18n; 53 } 54 }); 55 56 // package-external:@wordpress/element 57 var require_element = __commonJS({ 58 "package-external:@wordpress/element"(exports, module) { 59 module.exports = window.wp.element; 60 } 61 }); 62 63 // package-external:@wordpress/primitives 64 var require_primitives = __commonJS({ 65 "package-external:@wordpress/primitives"(exports, module) { 66 module.exports = window.wp.primitives; 67 } 68 }); 69 70 // vendor-external:react/jsx-runtime 71 var require_jsx_runtime = __commonJS({ 72 "vendor-external:react/jsx-runtime"(exports, module) { 73 module.exports = window.ReactJSXRuntime; 74 } 75 }); 76 77 // package-external:@wordpress/a11y 78 var require_a11y = __commonJS({ 79 "package-external:@wordpress/a11y"(exports, module) { 80 module.exports = window.wp.a11y; 81 } 82 }); 83 84 // package-external:@wordpress/deprecated 85 var require_deprecated = __commonJS({ 86 "package-external:@wordpress/deprecated"(exports, module) { 87 module.exports = window.wp.deprecated; 88 } 89 }); 90 91 // package-external:@wordpress/compose 92 var require_compose = __commonJS({ 93 "package-external:@wordpress/compose"(exports, module) { 94 module.exports = window.wp.compose; 95 } 96 }); 97 98 // package-external:@wordpress/private-apis 99 var require_private_apis = __commonJS({ 100 "package-external:@wordpress/private-apis"(exports, module) { 101 module.exports = window.wp.privateApis; 102 } 103 }); 104 105 // packages/preferences/build-module/index.js 106 var index_exports = {}; 107 __export(index_exports, { 108 PreferenceToggleMenuItem: () => PreferenceToggleMenuItem, 109 privateApis: () => privateApis, 110 store: () => store 111 }); 112 113 // packages/preferences/build-module/components/preference-toggle-menu-item/index.js 114 var import_data3 = __toESM(require_data()); 115 var import_components = __toESM(require_components()); 116 var import_i18n = __toESM(require_i18n()); 117 118 // packages/icons/build-module/icon/index.js 119 var import_element = __toESM(require_element()); 120 var icon_default = (0, import_element.forwardRef)( 121 ({ icon, size = 24, ...props }, ref) => { 122 return (0, import_element.cloneElement)(icon, { 123 width: size, 124 height: size, 125 ...props, 126 ref 127 }); 128 } 129 ); 130 131 // packages/icons/build-module/library/check.js 132 var import_primitives = __toESM(require_primitives()); 133 var import_jsx_runtime = __toESM(require_jsx_runtime()); 134 var check_default = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_primitives.Path, { d: "M16.5 7.5 10 13.9l-2.5-2.4-1 1 3.5 3.6 7.5-7.6z" }) }); 135 136 // packages/icons/build-module/library/chevron-left.js 137 var import_primitives2 = __toESM(require_primitives()); 138 var import_jsx_runtime2 = __toESM(require_jsx_runtime()); 139 var chevron_left_default = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_primitives2.Path, { d: "M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z" }) }); 140 141 // packages/icons/build-module/library/chevron-right.js 142 var import_primitives3 = __toESM(require_primitives()); 143 var import_jsx_runtime3 = __toESM(require_jsx_runtime()); 144 var chevron_right_default = /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.SVG, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_primitives3.Path, { d: "M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z" }) }); 145 146 // packages/preferences/build-module/components/preference-toggle-menu-item/index.js 147 var import_a11y = __toESM(require_a11y()); 148 149 // packages/preferences/build-module/store/index.js 150 var import_data2 = __toESM(require_data()); 151 152 // packages/preferences/build-module/store/reducer.js 153 var import_data = __toESM(require_data()); 154 function defaults(state = {}, action) { 155 if (action.type === "SET_PREFERENCE_DEFAULTS") { 156 const { scope, defaults: values } = action; 157 return { 158 ...state, 159 [scope]: { 160 ...state[scope], 161 ...values 162 } 163 }; 164 } 165 return state; 166 } 167 function withPersistenceLayer(reducer) { 168 let persistenceLayer; 169 return (state, action) => { 170 if (action.type === "SET_PERSISTENCE_LAYER") { 171 const { persistenceLayer: persistence, persistedData } = action; 172 persistenceLayer = persistence; 173 return persistedData; 174 } 175 const nextState = reducer(state, action); 176 if (action.type === "SET_PREFERENCE_VALUE") { 177 persistenceLayer?.set(nextState); 178 } 179 return nextState; 180 }; 181 } 182 var preferences = withPersistenceLayer((state = {}, action) => { 183 if (action.type === "SET_PREFERENCE_VALUE") { 184 const { scope, name, value } = action; 185 return { 186 ...state, 187 [scope]: { 188 ...state[scope], 189 [name]: value 190 } 191 }; 192 } 193 return state; 194 }); 195 var reducer_default = (0, import_data.combineReducers)({ 196 defaults, 197 preferences 198 }); 199 200 // packages/preferences/build-module/store/actions.js 201 var actions_exports = {}; 202 __export(actions_exports, { 203 set: () => set, 204 setDefaults: () => setDefaults, 205 setPersistenceLayer: () => setPersistenceLayer, 206 toggle: () => toggle 207 }); 208 function toggle(scope, name) { 209 return function({ select, dispatch }) { 210 const currentValue = select.get(scope, name); 211 dispatch.set(scope, name, !currentValue); 212 }; 213 } 214 function set(scope, name, value) { 215 return { 216 type: "SET_PREFERENCE_VALUE", 217 scope, 218 name, 219 value 220 }; 221 } 222 function setDefaults(scope, defaults2) { 223 return { 224 type: "SET_PREFERENCE_DEFAULTS", 225 scope, 226 defaults: defaults2 227 }; 228 } 229 async function setPersistenceLayer(persistenceLayer) { 230 const persistedData = await persistenceLayer.get(); 231 return { 232 type: "SET_PERSISTENCE_LAYER", 233 persistenceLayer, 234 persistedData 235 }; 236 } 237 238 // packages/preferences/build-module/store/selectors.js 239 var selectors_exports = {}; 240 __export(selectors_exports, { 241 get: () => get 242 }); 243 var import_deprecated = __toESM(require_deprecated()); 244 var withDeprecatedKeys = (originalGet) => (state, scope, name) => { 245 const settingsToMoveToCore = [ 246 "allowRightClickOverrides", 247 "distractionFree", 248 "editorMode", 249 "fixedToolbar", 250 "focusMode", 251 "hiddenBlockTypes", 252 "inactivePanels", 253 "keepCaretInsideBlock", 254 "mostUsedBlocks", 255 "openPanels", 256 "showBlockBreadcrumbs", 257 "showIconLabels", 258 "showListViewByDefault", 259 "isPublishSidebarEnabled", 260 "isComplementaryAreaVisible", 261 "pinnedItems" 262 ]; 263 if (settingsToMoveToCore.includes(name) && ["core/edit-post", "core/edit-site"].includes(scope)) { 264 (0, import_deprecated.default)( 265 `wp.data.select( 'core/preferences' ).get( '$scope}', '$name}' )`, 266 { 267 since: "6.5", 268 alternative: `wp.data.select( 'core/preferences' ).get( 'core', '$name}' )` 269 } 270 ); 271 return originalGet(state, "core", name); 272 } 273 return originalGet(state, scope, name); 274 }; 275 var get = withDeprecatedKeys( 276 (state, scope, name) => { 277 const value = state.preferences[scope]?.[name]; 278 return value !== void 0 ? value : state.defaults[scope]?.[name]; 279 } 280 ); 281 282 // packages/preferences/build-module/store/constants.js 283 var STORE_NAME = "core/preferences"; 284 285 // packages/preferences/build-module/store/index.js 286 var store = (0, import_data2.createReduxStore)(STORE_NAME, { 287 reducer: reducer_default, 288 actions: actions_exports, 289 selectors: selectors_exports 290 }); 291 (0, import_data2.register)(store); 292 293 // packages/preferences/build-module/components/preference-toggle-menu-item/index.js 294 var import_jsx_runtime4 = __toESM(require_jsx_runtime()); 295 function PreferenceToggleMenuItem({ 296 scope, 297 name, 298 label, 299 info, 300 messageActivated, 301 messageDeactivated, 302 shortcut, 303 handleToggling = true, 304 onToggle = () => null, 305 disabled = false 306 }) { 307 const isActive = (0, import_data3.useSelect)( 308 (select) => !!select(store).get(scope, name), 309 [scope, name] 310 ); 311 const { toggle: toggle2 } = (0, import_data3.useDispatch)(store); 312 const speakMessage = () => { 313 if (isActive) { 314 const message = messageDeactivated || (0, import_i18n.sprintf)( 315 /* translators: %s: preference name, e.g. 'Fullscreen mode' */ 316 (0, import_i18n.__)("Preference deactivated - %s"), 317 label 318 ); 319 (0, import_a11y.speak)(message); 320 } else { 321 const message = messageActivated || (0, import_i18n.sprintf)( 322 /* translators: %s: preference name, e.g. 'Fullscreen mode' */ 323 (0, import_i18n.__)("Preference activated - %s"), 324 label 325 ); 326 (0, import_a11y.speak)(message); 327 } 328 }; 329 return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)( 330 import_components.MenuItem, 331 { 332 icon: isActive ? check_default : null, 333 isSelected: isActive, 334 onClick: () => { 335 onToggle(); 336 if (handleToggling) { 337 toggle2(scope, name); 338 } 339 speakMessage(); 340 }, 341 role: "menuitemcheckbox", 342 info, 343 shortcut, 344 disabled, 345 children: label 346 } 347 ); 348 } 349 350 // packages/preferences/build-module/components/preference-base-option/index.js 351 var import_components2 = __toESM(require_components()); 352 var import_jsx_runtime5 = __toESM(require_jsx_runtime()); 353 function BaseOption({ 354 help, 355 label, 356 isChecked, 357 onChange, 358 children 359 }) { 360 return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "preference-base-option", children: [ 361 /* @__PURE__ */ (0, import_jsx_runtime5.jsx)( 362 import_components2.ToggleControl, 363 { 364 help, 365 label, 366 checked: isChecked, 367 onChange 368 } 369 ), 370 children 371 ] }); 372 } 373 var preference_base_option_default = BaseOption; 374 375 // packages/preferences/build-module/components/preference-toggle-control/index.js 376 var import_data4 = __toESM(require_data()); 377 var import_jsx_runtime6 = __toESM(require_jsx_runtime()); 378 function PreferenceToggleControl(props) { 379 const { 380 scope, 381 featureName, 382 onToggle = () => { 383 }, 384 ...remainingProps 385 } = props; 386 const isChecked = (0, import_data4.useSelect)( 387 (select) => !!select(store).get(scope, featureName), 388 [scope, featureName] 389 ); 390 const { toggle: toggle2 } = (0, import_data4.useDispatch)(store); 391 const onChange = () => { 392 onToggle(); 393 toggle2(scope, featureName); 394 }; 395 return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)( 396 preference_base_option_default, 397 { 398 ...remainingProps, 399 onChange, 400 isChecked 401 } 402 ); 403 } 404 var preference_toggle_control_default = PreferenceToggleControl; 405 406 // packages/preferences/build-module/components/preferences-modal/index.js 407 var import_components3 = __toESM(require_components()); 408 var import_i18n2 = __toESM(require_i18n()); 409 var import_jsx_runtime7 = __toESM(require_jsx_runtime()); 410 function PreferencesModal({ 411 closeModal, 412 children 413 }) { 414 return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)( 415 import_components3.Modal, 416 { 417 className: "preferences-modal", 418 title: (0, import_i18n2.__)("Preferences"), 419 onRequestClose: closeModal, 420 children 421 } 422 ); 423 } 424 425 // packages/preferences/build-module/components/preferences-modal-section/index.js 426 var import_jsx_runtime8 = __toESM(require_jsx_runtime()); 427 var Section = ({ description, title, children }) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("fieldset", { className: "preferences-modal__section", children: [ 428 /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("legend", { className: "preferences-modal__section-legend", children: [ 429 /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h2", { className: "preferences-modal__section-title", children: title }), 430 description && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "preferences-modal__section-description", children: description }) 431 ] }), 432 /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "preferences-modal__section-content", children }) 433 ] }); 434 var preferences_modal_section_default = Section; 435 436 // packages/preferences/build-module/components/preferences-modal-tabs/index.js 437 var import_compose = __toESM(require_compose()); 438 var import_components4 = __toESM(require_components()); 439 var import_element2 = __toESM(require_element()); 440 var import_i18n3 = __toESM(require_i18n()); 441 442 // packages/preferences/build-module/lock-unlock.js 443 var import_private_apis = __toESM(require_private_apis()); 444 var { lock, unlock } = (0, import_private_apis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)( 445 "I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.", 446 "@wordpress/preferences" 447 ); 448 449 // packages/preferences/build-module/components/preferences-modal-tabs/index.js 450 var import_jsx_runtime9 = __toESM(require_jsx_runtime()); 451 var { Tabs } = unlock(import_components4.privateApis); 452 var PREFERENCES_MENU = "preferences-menu"; 453 function PreferencesModalTabs({ 454 sections 455 }) { 456 const isLargeViewport = (0, import_compose.useViewportMatch)("medium"); 457 const [activeMenu, setActiveMenu] = (0, import_element2.useState)(PREFERENCES_MENU); 458 const { tabs, sectionsContentMap } = (0, import_element2.useMemo)(() => { 459 let mappedTabs = { 460 tabs: [], 461 sectionsContentMap: {} 462 }; 463 if (sections.length) { 464 mappedTabs = sections.reduce( 465 (accumulator, { name, tabLabel: title, content }) => { 466 accumulator.tabs.push({ name, title }); 467 accumulator.sectionsContentMap[name] = content; 468 return accumulator; 469 }, 470 { tabs: [], sectionsContentMap: {} } 471 ); 472 } 473 return mappedTabs; 474 }, [sections]); 475 let modalContent; 476 if (isLargeViewport) { 477 modalContent = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "preferences__tabs", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)( 478 Tabs, 479 { 480 defaultTabId: activeMenu !== PREFERENCES_MENU ? activeMenu : void 0, 481 onSelect: setActiveMenu, 482 orientation: "vertical", 483 children: [ 484 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Tabs.TabList, { className: "preferences__tabs-tablist", children: tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( 485 Tabs.Tab, 486 { 487 tabId: tab.name, 488 className: "preferences__tabs-tab", 489 children: tab.title 490 }, 491 tab.name 492 )) }), 493 tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( 494 Tabs.TabPanel, 495 { 496 tabId: tab.name, 497 className: "preferences__tabs-tabpanel", 498 focusable: false, 499 children: sectionsContentMap[tab.name] || null 500 }, 501 tab.name 502 )) 503 ] 504 } 505 ) }); 506 } else { 507 modalContent = /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_components4.Navigator, { initialPath: "/", className: "preferences__provider", children: [ 508 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.Navigator.Screen, { path: "/", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.Card, { isBorderless: true, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.CardBody, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.__experimentalItemGroup, { children: tabs.map((tab) => { 509 return ( 510 // @ts-expect-error: Navigator.Button is currently typed in a way that prevents Item from being passed in 511 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( 512 import_components4.Navigator.Button, 513 { 514 path: `/$tab.name}`, 515 as: import_components4.__experimentalItem, 516 isAction: true, 517 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_components4.__experimentalHStack, { justify: "space-between", children: [ 518 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.FlexItem, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.__experimentalTruncate, { children: tab.title }) }), 519 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.FlexItem, { children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( 520 icon_default, 521 { 522 icon: (0, import_i18n3.isRTL)() ? chevron_left_default : chevron_right_default 523 } 524 ) }) 525 ] }) 526 }, 527 tab.name 528 ) 529 ); 530 }) }) }) }) }), 531 sections.length && sections.map((section) => { 532 return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( 533 import_components4.Navigator.Screen, 534 { 535 path: `/$section.name}`, 536 children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_components4.Card, { isBorderless: true, size: "large", children: [ 537 /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)( 538 import_components4.CardHeader, 539 { 540 isBorderless: false, 541 justify: "left", 542 size: "small", 543 gap: "6", 544 as: "div", 545 children: [ 546 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)( 547 import_components4.Navigator.BackButton, 548 { 549 icon: (0, import_i18n3.isRTL)() ? chevron_right_default : chevron_left_default, 550 label: (0, import_i18n3.__)("Back") 551 } 552 ), 553 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.__experimentalText, { size: "16", children: section.tabLabel }) 554 ] 555 } 556 ), 557 /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_components4.CardBody, { children: section.content }) 558 ] }) 559 }, 560 `$section.name}-menu` 561 ); 562 }) 563 ] }); 564 } 565 return modalContent; 566 } 567 568 // packages/preferences/build-module/private-apis.js 569 var privateApis = {}; 570 lock(privateApis, { 571 PreferenceBaseOption: preference_base_option_default, 572 PreferenceToggleControl: preference_toggle_control_default, 573 PreferencesModal, 574 PreferencesModalSection: preferences_modal_section_default, 575 PreferencesModalTabs 576 }); 577 return __toCommonJS(index_exports); 578 })();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated : Sun Apr 19 08:20:11 2026 | Cross-referenced by PHPXref |