@wordpress/editor 14.43.1-next.v.202604091042.0 → 14.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/collab-sidebar/index.cjs.map +2 -2
  3. package/build/components/post-revisions-panel/index.cjs +44 -42
  4. package/build/components/post-revisions-panel/index.cjs.map +2 -2
  5. package/build/components/sidebar/index.cjs +7 -1
  6. package/build/components/sidebar/index.cjs.map +2 -2
  7. package/build/components/sidebar/post-revision-summary.cjs +11 -2
  8. package/build/components/sidebar/post-revision-summary.cjs.map +2 -2
  9. package/build/components/sidebar/post-summary.cjs +0 -18
  10. package/build/components/sidebar/post-summary.cjs.map +2 -2
  11. package/build/components/style-book/categories.cjs.map +2 -2
  12. package/build/components/style-book/examples.cjs +1 -1
  13. package/build/components/style-book/examples.cjs.map +2 -2
  14. package/build/components/style-book/types.cjs.map +1 -1
  15. package/build/components/sync-connection-error-modal/index.cjs +10 -1
  16. package/build/components/sync-connection-error-modal/index.cjs.map +2 -2
  17. package/build-module/components/collab-sidebar/index.mjs.map +2 -2
  18. package/build-module/components/post-revisions-panel/index.mjs +44 -42
  19. package/build-module/components/post-revisions-panel/index.mjs.map +2 -2
  20. package/build-module/components/sidebar/index.mjs +7 -1
  21. package/build-module/components/sidebar/index.mjs.map +2 -2
  22. package/build-module/components/sidebar/post-revision-summary.mjs +15 -3
  23. package/build-module/components/sidebar/post-revision-summary.mjs.map +2 -2
  24. package/build-module/components/sidebar/post-summary.mjs +1 -18
  25. package/build-module/components/sidebar/post-summary.mjs.map +2 -2
  26. package/build-module/components/style-book/categories.mjs.map +2 -2
  27. package/build-module/components/style-book/examples.mjs +1 -1
  28. package/build-module/components/style-book/examples.mjs.map +2 -2
  29. package/build-module/components/sync-connection-error-modal/index.mjs +10 -1
  30. package/build-module/components/sync-connection-error-modal/index.mjs.map +2 -2
  31. package/build-style/style-rtl.css +27 -28
  32. package/build-style/style.css +27 -28
  33. package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
  34. package/build-types/components/post-revisions-panel/index.d.ts.map +1 -1
  35. package/build-types/components/sidebar/index.d.ts.map +1 -1
  36. package/build-types/components/sidebar/post-revision-summary.d.ts.map +1 -1
  37. package/build-types/components/sidebar/post-summary.d.ts +0 -3
  38. package/build-types/components/sidebar/post-summary.d.ts.map +1 -1
  39. package/build-types/components/style-book/categories.d.ts.map +1 -1
  40. package/build-types/components/style-book/examples.d.ts.map +1 -1
  41. package/build-types/components/style-book/types.d.ts +1 -13
  42. package/build-types/components/style-book/types.d.ts.map +1 -1
  43. package/build-types/components/sync-connection-error-modal/index.d.ts.map +1 -1
  44. package/build-types/hooks/custom-sources-backwards-compatibility.d.ts +1 -1
  45. package/build-types/hooks/custom-sources-backwards-compatibility.d.ts.map +1 -1
  46. package/build-types/hooks/pattern-overrides.d.ts +1 -1
  47. package/build-types/hooks/pattern-overrides.d.ts.map +1 -1
  48. package/package.json +45 -45
  49. package/src/components/collab-sidebar/index.js +1 -0
  50. package/src/components/post-revisions-panel/index.js +46 -44
  51. package/src/components/sidebar/index.js +7 -1
  52. package/src/components/sidebar/post-revision-summary.js +13 -3
  53. package/src/components/sidebar/post-summary.js +1 -18
  54. package/src/components/style-book/categories.ts +0 -1
  55. package/src/components/style-book/examples.tsx +6 -12
  56. package/src/components/style-book/types.ts +1 -18
  57. package/src/components/sync-connection-error-modal/index.tsx +24 -9
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/style-book/categories.ts"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\n// @wordpress/blocks imports are not typed.\n// @ts-expect-error\nimport { getCategories } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tBlockExample,\n\tStyleBookCategory,\n\tCategoryExamples,\n} from './types';\nimport {\n\tSTYLE_BOOK_CATEGORIES,\n\tSTYLE_BOOK_THEME_SUBCATEGORIES,\n} from './constants';\n\n/**\n * Returns category examples for a given category definition and list of examples.\n * @param {StyleBookCategory} categoryDefinition The category definition.\n * @param {BlockExample[]} examples An array of block examples.\n * @return {CategoryExamples|undefined} An object containing the category examples.\n */\nexport function getExamplesByCategory(\n\tcategoryDefinition: StyleBookCategory,\n\texamples: BlockExample[]\n): CategoryExamples | undefined {\n\tif ( ! categoryDefinition?.slug || ! examples?.length ) {\n\t\treturn;\n\t}\n\tconst categories: CategoryExamples[] =\n\t\tcategoryDefinition?.subcategories ?? [];\n\tif ( categories.length ) {\n\t\treturn categories.reduce(\n\t\t\t( acc, subcategoryDefinition ) => {\n\t\t\t\tconst subcategoryExamples = getExamplesByCategory(\n\t\t\t\t\tsubcategoryDefinition,\n\t\t\t\t\texamples\n\t\t\t\t);\n\t\t\t\tif ( subcategoryExamples ) {\n\t\t\t\t\tif ( ! acc.subcategories ) {\n\t\t\t\t\t\tacc.subcategories = [];\n\t\t\t\t\t}\n\t\t\t\t\tacc.subcategories = [\n\t\t\t\t\t\t...acc.subcategories,\n\t\t\t\t\t\tsubcategoryExamples,\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: categoryDefinition.title,\n\t\t\t\tslug: categoryDefinition.slug,\n\t\t\t}\n\t\t);\n\t}\n\n\tconst blocksToInclude = categoryDefinition?.blocks || [];\n\tconst blocksToExclude = categoryDefinition?.exclude || [];\n\tconst categoryExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\t! blocksToExclude.includes( example.name ) &&\n\t\t\t( example.category === categoryDefinition.slug ||\n\t\t\t\tblocksToInclude.includes( example.name ) )\n\t\t);\n\t} );\n\n\tif ( ! categoryExamples.length ) {\n\t\treturn;\n\t}\n\n\treturn {\n\t\ttitle: categoryDefinition.title,\n\t\tslug: categoryDefinition.slug,\n\t\texamples: categoryExamples,\n\t};\n}\n\n/**\n * Returns category examples for a given category definition and list of examples.\n *\n * @return {StyleBookCategory[]} An array of top-level category definitions.\n */\nexport function getTopLevelStyleBookCategories(): StyleBookCategory[] {\n\tconst reservedCategories = [\n\t\t...STYLE_BOOK_THEME_SUBCATEGORIES,\n\t\t...STYLE_BOOK_CATEGORIES,\n\t].map( ( { slug } ) => slug );\n\tconst extraCategories: StyleBookCategory[] = getCategories();\n\tconst extraCategoriesFiltered = extraCategories.filter(\n\t\t( { slug } ) => ! reservedCategories.includes( slug )\n\t);\n\treturn [ ...STYLE_BOOK_CATEGORIES, ...extraCategoriesFiltered ];\n}\n"],
5
- "mappings": ";AAKA,SAAS,qBAAqB;AAU9B;AAAA,EACC;AAAA,EACA;AAAA,OACM;AAQA,SAAS,sBACf,oBACA,UAC+B;AAC/B,MAAK,CAAE,oBAAoB,QAAQ,CAAE,UAAU,QAAS;AACvD;AAAA,EACD;AACA,QAAM,aACL,oBAAoB,iBAAiB,CAAC;AACvC,MAAK,WAAW,QAAS;AACxB,WAAO,WAAW;AAAA,MACjB,CAAE,KAAK,0BAA2B;AACjC,cAAM,sBAAsB;AAAA,UAC3B;AAAA,UACA;AAAA,QACD;AACA,YAAK,qBAAsB;AAC1B,cAAK,CAAE,IAAI,eAAgB;AAC1B,gBAAI,gBAAgB,CAAC;AAAA,UACtB;AACA,cAAI,gBAAgB;AAAA,YACnB,GAAG,IAAI;AAAA,YACP;AAAA,UACD;AAAA,QACD;AACA,eAAO;AAAA,MACR;AAAA,MACA;AAAA,QACC,OAAO,mBAAmB;AAAA,QAC1B,MAAM,mBAAmB;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AAEA,QAAM,kBAAkB,oBAAoB,UAAU,CAAC;AACvD,QAAM,kBAAkB,oBAAoB,WAAW,CAAC;AACxD,QAAM,mBAAmB,SAAS,OAAQ,CAAE,YAAa;AACxD,WACC,CAAE,gBAAgB,SAAU,QAAQ,IAAK,MACvC,QAAQ,aAAa,mBAAmB,QACzC,gBAAgB,SAAU,QAAQ,IAAK;AAAA,EAE1C,CAAE;AAEF,MAAK,CAAE,iBAAiB,QAAS;AAChC;AAAA,EACD;AAEA,SAAO;AAAA,IACN,OAAO,mBAAmB;AAAA,IAC1B,MAAM,mBAAmB;AAAA,IACzB,UAAU;AAAA,EACX;AACD;AAOO,SAAS,iCAAsD;AACrE,QAAM,qBAAqB;AAAA,IAC1B,GAAG;AAAA,IACH,GAAG;AAAA,EACJ,EAAE,IAAK,CAAE,EAAE,KAAK,MAAO,IAAK;AAC5B,QAAM,kBAAuC,cAAc;AAC3D,QAAM,0BAA0B,gBAAgB;AAAA,IAC/C,CAAE,EAAE,KAAK,MAAO,CAAE,mBAAmB,SAAU,IAAK;AAAA,EACrD;AACA,SAAO,CAAE,GAAG,uBAAuB,GAAG,uBAAwB;AAC/D;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\n// @wordpress/blocks imports are not typed.\nimport { getCategories } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tBlockExample,\n\tStyleBookCategory,\n\tCategoryExamples,\n} from './types';\nimport {\n\tSTYLE_BOOK_CATEGORIES,\n\tSTYLE_BOOK_THEME_SUBCATEGORIES,\n} from './constants';\n\n/**\n * Returns category examples for a given category definition and list of examples.\n * @param {StyleBookCategory} categoryDefinition The category definition.\n * @param {BlockExample[]} examples An array of block examples.\n * @return {CategoryExamples|undefined} An object containing the category examples.\n */\nexport function getExamplesByCategory(\n\tcategoryDefinition: StyleBookCategory,\n\texamples: BlockExample[]\n): CategoryExamples | undefined {\n\tif ( ! categoryDefinition?.slug || ! examples?.length ) {\n\t\treturn;\n\t}\n\tconst categories: CategoryExamples[] =\n\t\tcategoryDefinition?.subcategories ?? [];\n\tif ( categories.length ) {\n\t\treturn categories.reduce(\n\t\t\t( acc, subcategoryDefinition ) => {\n\t\t\t\tconst subcategoryExamples = getExamplesByCategory(\n\t\t\t\t\tsubcategoryDefinition,\n\t\t\t\t\texamples\n\t\t\t\t);\n\t\t\t\tif ( subcategoryExamples ) {\n\t\t\t\t\tif ( ! acc.subcategories ) {\n\t\t\t\t\t\tacc.subcategories = [];\n\t\t\t\t\t}\n\t\t\t\t\tacc.subcategories = [\n\t\t\t\t\t\t...acc.subcategories,\n\t\t\t\t\t\tsubcategoryExamples,\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: categoryDefinition.title,\n\t\t\t\tslug: categoryDefinition.slug,\n\t\t\t}\n\t\t);\n\t}\n\n\tconst blocksToInclude = categoryDefinition?.blocks || [];\n\tconst blocksToExclude = categoryDefinition?.exclude || [];\n\tconst categoryExamples = examples.filter( ( example ) => {\n\t\treturn (\n\t\t\t! blocksToExclude.includes( example.name ) &&\n\t\t\t( example.category === categoryDefinition.slug ||\n\t\t\t\tblocksToInclude.includes( example.name ) )\n\t\t);\n\t} );\n\n\tif ( ! categoryExamples.length ) {\n\t\treturn;\n\t}\n\n\treturn {\n\t\ttitle: categoryDefinition.title,\n\t\tslug: categoryDefinition.slug,\n\t\texamples: categoryExamples,\n\t};\n}\n\n/**\n * Returns category examples for a given category definition and list of examples.\n *\n * @return {StyleBookCategory[]} An array of top-level category definitions.\n */\nexport function getTopLevelStyleBookCategories(): StyleBookCategory[] {\n\tconst reservedCategories = [\n\t\t...STYLE_BOOK_THEME_SUBCATEGORIES,\n\t\t...STYLE_BOOK_CATEGORIES,\n\t].map( ( { slug } ) => slug );\n\tconst extraCategories: StyleBookCategory[] = getCategories();\n\tconst extraCategoriesFiltered = extraCategories.filter(\n\t\t( { slug } ) => ! reservedCategories.includes( slug )\n\t);\n\treturn [ ...STYLE_BOOK_CATEGORIES, ...extraCategoriesFiltered ];\n}\n"],
5
+ "mappings": ";AAIA,SAAS,qBAAqB;AAU9B;AAAA,EACC;AAAA,EACA;AAAA,OACM;AAQA,SAAS,sBACf,oBACA,UAC+B;AAC/B,MAAK,CAAE,oBAAoB,QAAQ,CAAE,UAAU,QAAS;AACvD;AAAA,EACD;AACA,QAAM,aACL,oBAAoB,iBAAiB,CAAC;AACvC,MAAK,WAAW,QAAS;AACxB,WAAO,WAAW;AAAA,MACjB,CAAE,KAAK,0BAA2B;AACjC,cAAM,sBAAsB;AAAA,UAC3B;AAAA,UACA;AAAA,QACD;AACA,YAAK,qBAAsB;AAC1B,cAAK,CAAE,IAAI,eAAgB;AAC1B,gBAAI,gBAAgB,CAAC;AAAA,UACtB;AACA,cAAI,gBAAgB;AAAA,YACnB,GAAG,IAAI;AAAA,YACP;AAAA,UACD;AAAA,QACD;AACA,eAAO;AAAA,MACR;AAAA,MACA;AAAA,QACC,OAAO,mBAAmB;AAAA,QAC1B,MAAM,mBAAmB;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AAEA,QAAM,kBAAkB,oBAAoB,UAAU,CAAC;AACvD,QAAM,kBAAkB,oBAAoB,WAAW,CAAC;AACxD,QAAM,mBAAmB,SAAS,OAAQ,CAAE,YAAa;AACxD,WACC,CAAE,gBAAgB,SAAU,QAAQ,IAAK,MACvC,QAAQ,aAAa,mBAAmB,QACzC,gBAAgB,SAAU,QAAQ,IAAK;AAAA,EAE1C,CAAE;AAEF,MAAK,CAAE,iBAAiB,QAAS;AAChC;AAAA,EACD;AAEA,SAAO;AAAA,IACN,OAAO,mBAAmB;AAAA,IAC1B,MAAM,mBAAmB;AAAA,IACzB,UAAU;AAAA,EACX;AACD;AAOO,SAAS,iCAAsD;AACrE,QAAM,qBAAqB;AAAA,IAC1B,GAAG;AAAA,IACH,GAAG;AAAA,EACJ,EAAE,IAAK,CAAE,EAAE,KAAK,MAAO,IAAK;AAC5B,QAAM,kBAAuC,cAAc;AAC3D,QAAM,0BAA0B,gBAAgB;AAAA,IAC/C,CAAE,EAAE,KAAK,MAAO,CAAE,mBAAmB,SAAU,IAAK;AAAA,EACrD;AACA,SAAO,CAAE,GAAG,uBAAuB,GAAG,uBAAwB;AAC/D;",
6
6
  "names": []
7
7
  }
@@ -170,7 +170,7 @@ function getExamples(colors) {
170
170
  blocks: getBlockFromExample(blockType.name, {
171
171
  ...blockType.example,
172
172
  attributes: {
173
- ...blockType.example.attributes,
173
+ ...blockType.example?.attributes,
174
174
  style: void 0
175
175
  }
176
176
  })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/style-book/examples.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n\t// @wordpress/blocks imports are not typed.\n\t// @ts-expect-error\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tBlockExample,\n\tColorOrigin,\n\tMultiOriginPalettes,\n\tBlockType,\n} from './types';\nimport ColorExamples from './color-examples';\nimport DuotoneExamples from './duotone-examples';\nimport { STYLE_BOOK_COLOR_GROUPS } from './constants';\n\n/**\n * Returns examples color examples for each origin\n * e.g. Core (Default), Theme, and User.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of color block examples.\n */\nfunction getColorExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tif ( ! colors ) {\n\t\treturn [];\n\t}\n\n\tconst examples: BlockExample[] = [];\n\n\tSTYLE_BOOK_COLOR_GROUPS.forEach( ( group ) => {\n\t\tconst palette = colors[ group.type as keyof MultiOriginPalettes ];\n\t\tconst paletteFiltered = Array.isArray( palette )\n\t\t\t? palette.find(\n\t\t\t\t\t( origin: ColorOrigin ) => origin.slug === group.origin\n\t\t\t )\n\t\t\t: undefined;\n\n\t\tif ( paletteFiltered?.[ group.type ] ) {\n\t\t\tconst example: BlockExample = {\n\t\t\t\tname: group.slug,\n\t\t\t\ttitle: group.title,\n\t\t\t\tcategory: 'colors',\n\t\t\t};\n\t\t\tif ( group.type === 'duotones' ) {\n\t\t\t\texample.content = (\n\t\t\t\t\t<DuotoneExamples\n\t\t\t\t\t\tduotones={ paletteFiltered[ group.type ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t} else {\n\t\t\t\texample.content = (\n\t\t\t\t\t<ColorExamples\n\t\t\t\t\t\tcolors={ paletteFiltered[ group.type ] }\n\t\t\t\t\t\ttype={ group.type }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns examples for the overview page.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of block examples.\n */\nfunction getOverviewBlockExamples(\n\tcolors: MultiOriginPalettes\n): BlockExample[] {\n\tconst examples: BlockExample[] = [];\n\n\t// Get theme palette from colors if they exist.\n\tconst themePalette = Array.isArray( colors?.colors )\n\t\t? colors.colors.find(\n\t\t\t\t( origin: ColorOrigin ) => origin.slug === 'theme'\n\t\t )\n\t\t: undefined;\n\n\tif ( themePalette ) {\n\t\tconst themeColorexample: BlockExample = {\n\t\t\tname: 'theme-colors',\n\t\t\ttitle: __( 'Colors' ),\n\t\t\tcategory: 'overview',\n\t\t\tcontent: (\n\t\t\t\t<ColorExamples\n\t\t\t\t\tcolors={ themePalette.colors }\n\t\t\t\t\ttype=\"colors\"\n\t\t\t\t\ttemplateColumns=\"repeat(auto-fill, minmax( 200px, 1fr ))\"\n\t\t\t\t\titemHeight=\"32px\"\n\t\t\t\t/>\n\t\t\t),\n\t\t};\n\n\t\texamples.push( themeColorexample );\n\t}\n\n\t// Get examples for typography blocks.\n\tconst typographyBlockExamples: BlockType[] = [];\n\n\tif ( getBlockType( 'core/heading' ) ) {\n\t\tconst headingBlock = createBlock( 'core/heading', {\n\t\t\t// translators: Typography example. Your local alphabet, numbers and some common special characters.\n\t\t\tcontent: __(\n\t\t\t\t`AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789X{(\u2026)},.-<>?!*&:/A@HELFO\u2122\u00A9`\n\t\t\t),\n\t\t\tlevel: 1,\n\t\t} );\n\t\ttypographyBlockExamples.push( headingBlock );\n\t}\n\n\tif ( getBlockType( 'core/paragraph' ) ) {\n\t\tconst firstParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`A paragraph in a website refers to a distinct block of text that is used to present and organize information. It is a fundamental unit of content in web design and is typically composed of a group of related sentences or thoughts focused on a particular topic or idea. Paragraphs play a crucial role in improving the readability and user experience of a website. They break down the text into smaller, manageable chunks, allowing readers to scan the content more easily.`\n\t\t\t),\n\t\t} );\n\t\tconst secondParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`Additionally, paragraphs help structure the flow of information and provide logical breaks between different concepts or pieces of information. In terms of formatting, paragraphs in websites are commonly denoted by a vertical gap or indentation between each block of text. This visual separation helps visually distinguish one paragraph from another, creating a clear and organized layout that guides the reader through the content smoothly.`\n\t\t\t),\n\t\t} );\n\n\t\tif ( getBlockType( 'core/group' ) ) {\n\t\t\tconst groupBlock = createBlock(\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\tcolumnCount: 2,\n\t\t\t\t\t\tminimumColumnWidth: '12rem',\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\tblockGap: '1.5rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[ firstParagraphBlock, secondParagraphBlock ]\n\t\t\t);\n\t\t\ttypographyBlockExamples.push( groupBlock );\n\t\t} else {\n\t\t\ttypographyBlockExamples.push( firstParagraphBlock );\n\t\t}\n\t}\n\n\tif ( !! typographyBlockExamples.length ) {\n\t\texamples.push( {\n\t\t\tname: 'typography',\n\t\t\ttitle: __( 'Typography' ),\n\t\t\tcategory: 'overview',\n\t\t\tblocks: typographyBlockExamples,\n\t\t} );\n\t}\n\n\tconst otherBlockExamples = [\n\t\t'core/image',\n\t\t'core/separator',\n\t\t'core/buttons',\n\t\t'core/pullquote',\n\t\t'core/search',\n\t];\n\n\t// Get examples for other blocks and put them in order of above array.\n\totherBlockExamples.forEach( ( blockName ) => {\n\t\tconst blockType = getBlockType( blockName );\n\t\tif ( blockType && blockType.example ) {\n\t\t\tconst blockExample: BlockExample = {\n\t\t\t\tname: blockName,\n\t\t\t\ttitle: blockType.title,\n\t\t\t\tcategory: 'overview',\n\t\t\t\t/*\n\t\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t\t * demonstrates changes to global styles.\n\t\t\t\t */\n\t\t\t\tblocks: getBlockFromExample( blockName, {\n\t\t\t\t\t...blockType.example,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...blockType.example.attributes,\n\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t\t};\n\t\t\texamples.push( blockExample );\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns a list of examples for registered block types.\n *\n * @param {MultiOriginPalettes} colors Global styles colors grouped by origin e.g. Core, Theme, and User.\n * @return {BlockExample[]} An array of block examples.\n */\nexport function getExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tconst nonHeadingBlockExamples = getBlockTypes()\n\t\t.filter( ( blockType: BlockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports?.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType: BlockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\t/*\n\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t * demonstrates changes to global styles.\n\t\t\t */\n\t\t\tblocks: getBlockFromExample( blockType.name, {\n\t\t\t\t...blockType.example,\n\t\t\t\tattributes: {\n\t\t\t\t\t...blockType.example.attributes,\n\t\t\t\t\tstyle: undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} ) );\n\tconst isHeadingBlockRegistered = !! getBlockType( 'core/heading' );\n\n\tif ( ! isHeadingBlockRegistered ) {\n\t\treturn nonHeadingBlockExamples;\n\t}\n\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [ 1, 2, 3, 4, 5, 6 ].map( ( level ) => {\n\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\tcontent: sprintf(\n\t\t\t\t\t// translators: %d: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\t\t\t__( 'Heading %d' ),\n\t\t\t\t\tlevel\n\t\t\t\t),\n\t\t\t\tlevel,\n\t\t\t} );\n\t\t} ),\n\t};\n\tconst colorExamples = getColorExamples( colors );\n\n\tconst overviewBlockExamples = getOverviewBlockExamples( colors );\n\n\treturn [\n\t\theadingsExample,\n\t\t...colorExamples,\n\t\t...nonHeadingBlockExamples,\n\t\t...overviewBlockExamples,\n\t];\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport type { Block } from '@wordpress/blocks';\nimport {\n\tgetBlockType,\n\tgetBlockTypes,\n\tgetBlockFromExample,\n\tcreateBlock,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport type { BlockExample, ColorOrigin, MultiOriginPalettes } from './types';\nimport ColorExamples from './color-examples';\nimport DuotoneExamples from './duotone-examples';\nimport { STYLE_BOOK_COLOR_GROUPS } from './constants';\n\n/**\n * Returns examples color examples for each origin\n * e.g. Core (Default), Theme, and User.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of color block examples.\n */\nfunction getColorExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tif ( ! colors ) {\n\t\treturn [];\n\t}\n\n\tconst examples: BlockExample[] = [];\n\n\tSTYLE_BOOK_COLOR_GROUPS.forEach( ( group ) => {\n\t\tconst palette = colors[ group.type as keyof MultiOriginPalettes ];\n\t\tconst paletteFiltered = Array.isArray( palette )\n\t\t\t? palette.find(\n\t\t\t\t\t( origin: ColorOrigin ) => origin.slug === group.origin\n\t\t\t )\n\t\t\t: undefined;\n\n\t\tif ( paletteFiltered?.[ group.type ] ) {\n\t\t\tconst example: BlockExample = {\n\t\t\t\tname: group.slug,\n\t\t\t\ttitle: group.title,\n\t\t\t\tcategory: 'colors',\n\t\t\t};\n\t\t\tif ( group.type === 'duotones' ) {\n\t\t\t\texample.content = (\n\t\t\t\t\t<DuotoneExamples\n\t\t\t\t\t\tduotones={ paletteFiltered[ group.type ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t} else {\n\t\t\t\texample.content = (\n\t\t\t\t\t<ColorExamples\n\t\t\t\t\t\tcolors={ paletteFiltered[ group.type ] }\n\t\t\t\t\t\ttype={ group.type }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t\texamples.push( example );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns examples for the overview page.\n *\n * @param {MultiOriginPalettes} colors Global Styles color palettes per origin.\n * @return {BlockExample[]} An array of block examples.\n */\nfunction getOverviewBlockExamples(\n\tcolors: MultiOriginPalettes\n): BlockExample[] {\n\tconst examples: BlockExample[] = [];\n\n\t// Get theme palette from colors if they exist.\n\tconst themePalette = Array.isArray( colors?.colors )\n\t\t? colors.colors.find(\n\t\t\t\t( origin: ColorOrigin ) => origin.slug === 'theme'\n\t\t )\n\t\t: undefined;\n\n\tif ( themePalette ) {\n\t\tconst themeColorexample: BlockExample = {\n\t\t\tname: 'theme-colors',\n\t\t\ttitle: __( 'Colors' ),\n\t\t\tcategory: 'overview',\n\t\t\tcontent: (\n\t\t\t\t<ColorExamples\n\t\t\t\t\tcolors={ themePalette.colors }\n\t\t\t\t\ttype=\"colors\"\n\t\t\t\t\ttemplateColumns=\"repeat(auto-fill, minmax( 200px, 1fr ))\"\n\t\t\t\t\titemHeight=\"32px\"\n\t\t\t\t/>\n\t\t\t),\n\t\t};\n\n\t\texamples.push( themeColorexample );\n\t}\n\n\t// Get examples for typography blocks.\n\tconst typographyBlockExamples: Block[] = [];\n\n\tif ( getBlockType( 'core/heading' ) ) {\n\t\tconst headingBlock = createBlock( 'core/heading', {\n\t\t\t// translators: Typography example. Your local alphabet, numbers and some common special characters.\n\t\t\tcontent: __(\n\t\t\t\t`AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789X{(\u2026)},.-<>?!*&:/A@HELFO\u2122\u00A9`\n\t\t\t),\n\t\t\tlevel: 1,\n\t\t} );\n\t\ttypographyBlockExamples.push( headingBlock );\n\t}\n\n\tif ( getBlockType( 'core/paragraph' ) ) {\n\t\tconst firstParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`A paragraph in a website refers to a distinct block of text that is used to present and organize information. It is a fundamental unit of content in web design and is typically composed of a group of related sentences or thoughts focused on a particular topic or idea. Paragraphs play a crucial role in improving the readability and user experience of a website. They break down the text into smaller, manageable chunks, allowing readers to scan the content more easily.`\n\t\t\t),\n\t\t} );\n\t\tconst secondParagraphBlock = createBlock( 'core/paragraph', {\n\t\t\tcontent: __(\n\t\t\t\t`Additionally, paragraphs help structure the flow of information and provide logical breaks between different concepts or pieces of information. In terms of formatting, paragraphs in websites are commonly denoted by a vertical gap or indentation between each block of text. This visual separation helps visually distinguish one paragraph from another, creating a clear and organized layout that guides the reader through the content smoothly.`\n\t\t\t),\n\t\t} );\n\n\t\tif ( getBlockType( 'core/group' ) ) {\n\t\t\tconst groupBlock = createBlock(\n\t\t\t\t'core/group',\n\t\t\t\t{\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\ttype: 'grid',\n\t\t\t\t\t\tcolumnCount: 2,\n\t\t\t\t\t\tminimumColumnWidth: '12rem',\n\t\t\t\t\t},\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\tblockGap: '1.5rem',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t[ firstParagraphBlock, secondParagraphBlock ]\n\t\t\t);\n\t\t\ttypographyBlockExamples.push( groupBlock );\n\t\t} else {\n\t\t\ttypographyBlockExamples.push( firstParagraphBlock );\n\t\t}\n\t}\n\n\tif ( !! typographyBlockExamples.length ) {\n\t\texamples.push( {\n\t\t\tname: 'typography',\n\t\t\ttitle: __( 'Typography' ),\n\t\t\tcategory: 'overview',\n\t\t\tblocks: typographyBlockExamples,\n\t\t} );\n\t}\n\n\tconst otherBlockExamples = [\n\t\t'core/image',\n\t\t'core/separator',\n\t\t'core/buttons',\n\t\t'core/pullquote',\n\t\t'core/search',\n\t];\n\n\t// Get examples for other blocks and put them in order of above array.\n\totherBlockExamples.forEach( ( blockName ) => {\n\t\tconst blockType = getBlockType( blockName );\n\t\tif ( blockType && blockType.example ) {\n\t\t\tconst blockExample: BlockExample = {\n\t\t\t\tname: blockName,\n\t\t\t\ttitle: blockType.title,\n\t\t\t\tcategory: 'overview',\n\t\t\t\t/*\n\t\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t\t * demonstrates changes to global styles.\n\t\t\t\t */\n\t\t\t\tblocks: getBlockFromExample( blockName, {\n\t\t\t\t\t...blockType.example,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...blockType.example.attributes,\n\t\t\t\t\t\tstyle: undefined,\n\t\t\t\t\t},\n\t\t\t\t} ),\n\t\t\t};\n\t\t\texamples.push( blockExample );\n\t\t}\n\t} );\n\n\treturn examples;\n}\n\n/**\n * Returns a list of examples for registered block types.\n *\n * @param {MultiOriginPalettes} colors Global styles colors grouped by origin e.g. Core, Theme, and User.\n * @return {BlockExample[]} An array of block examples.\n */\nexport function getExamples( colors: MultiOriginPalettes ): BlockExample[] {\n\tconst nonHeadingBlockExamples = getBlockTypes()\n\t\t.filter( ( blockType ) => {\n\t\t\tconst { name, example, supports } = blockType;\n\t\t\treturn (\n\t\t\t\tname !== 'core/heading' &&\n\t\t\t\t!! example &&\n\t\t\t\tsupports?.inserter !== false\n\t\t\t);\n\t\t} )\n\t\t.map( ( blockType ) => ( {\n\t\t\tname: blockType.name,\n\t\t\ttitle: blockType.title,\n\t\t\tcategory: blockType.category,\n\t\t\t/*\n\t\t\t * CSS generated from style attributes will take precedence over global styles CSS,\n\t\t\t * so remove the style attribute from the example to ensure the example\n\t\t\t * demonstrates changes to global styles.\n\t\t\t */\n\t\t\tblocks: getBlockFromExample( blockType.name, {\n\t\t\t\t...blockType.example,\n\t\t\t\tattributes: {\n\t\t\t\t\t...blockType.example?.attributes,\n\t\t\t\t\tstyle: undefined,\n\t\t\t\t},\n\t\t\t} ),\n\t\t} ) );\n\tconst isHeadingBlockRegistered = !! getBlockType( 'core/heading' );\n\n\tif ( ! isHeadingBlockRegistered ) {\n\t\treturn nonHeadingBlockExamples;\n\t}\n\n\t// Use our own example for the Heading block so that we can show multiple\n\t// heading levels.\n\tconst headingsExample = {\n\t\tname: 'core/heading',\n\t\ttitle: __( 'Headings' ),\n\t\tcategory: 'text',\n\t\tblocks: [ 1, 2, 3, 4, 5, 6 ].map( ( level ) => {\n\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\tcontent: sprintf(\n\t\t\t\t\t// translators: %d: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\t\t\t__( 'Heading %d' ),\n\t\t\t\t\tlevel\n\t\t\t\t),\n\t\t\t\tlevel,\n\t\t\t} );\n\t\t} ),\n\t};\n\tconst colorExamples = getColorExamples( colors );\n\n\tconst overviewBlockExamples = getOverviewBlockExamples( colors );\n\n\treturn [\n\t\theadingsExample,\n\t\t...colorExamples,\n\t\t...nonHeadingBlockExamples,\n\t\t...overviewBlockExamples,\n\t];\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -27,6 +27,7 @@ var INITIAL_DISCONNECTED_DEBOUNCE_MS = 2e4;
27
27
  function SyncConnectionErrorModal() {
28
28
  const [hasInitialized, setHasInitialized] = useState(false);
29
29
  const [showModal, setShowModal] = useState(false);
30
+ const [isManualRetryAvailable, setIsManualRetryAvailable] = useState(false);
30
31
  const { connectionStatus, isCollaborationEnabled, postType } = useSelect(
31
32
  (selectFn) => {
32
33
  const currentPostType = selectFn(editorStore).getCurrentPostType();
@@ -51,6 +52,14 @@ function SyncConnectionErrorModal() {
51
52
  }, INITIAL_DISCONNECTED_DEBOUNCE_MS);
52
53
  return () => clearTimeout(timeout);
53
54
  }, []);
55
+ useEffect(() => {
56
+ if ("connecting" === connectionStatus?.status) {
57
+ return;
58
+ }
59
+ setIsManualRetryAvailable(
60
+ connectionStatus !== null && "canManuallyRetry" in connectionStatus && connectionStatus.canManuallyRetry === true
61
+ );
62
+ }, [connectionStatus]);
54
63
  const canRetry = connectionStatus && "disconnected" === connectionStatus.status && (connectionStatus.canManuallyRetry || connectionStatus.willAutoRetryInMs);
55
64
  useEffect(() => {
56
65
  if ("connected" === connectionStatus?.status) {
@@ -72,7 +81,7 @@ function SyncConnectionErrorModal() {
72
81
  ) !== false) {
73
82
  return null;
74
83
  }
75
- const manualRetry = connectionStatus && "canManuallyRetry" in connectionStatus && connectionStatus.canManuallyRetry ? () => {
84
+ const manualRetry = isManualRetryAvailable ? () => {
76
85
  onManualRetry();
77
86
  retrySyncConnection();
78
87
  } : void 0;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/sync-connection-error-modal/index.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, select } from '@wordpress/data';\nimport { useCopyToClipboard } from '@wordpress/compose';\n// @ts-ignore No exported types.\nimport { serialize } from '@wordpress/blocks';\nimport {\n\tstore as coreDataStore,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\n// @ts-expect-error - No type declarations available for @wordpress/block-editor\n// prettier-ignore\nimport { privateApis, store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { applyFilters } from '@wordpress/hooks';\nimport { useState, useEffect } from '@wordpress/element';\nimport { __, sprintf, _n } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getSyncErrorMessages } from '../../utils/sync-error-messages';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useRetryCountdown } from './use-retry-countdown';\n\nconst { BlockCanvasCover } = unlock( privateApis );\nconst { retrySyncConnection } = unlock( coreDataPrivateApis );\n\n// Debounce time for initial disconnected status to allow connection to establish.\nconst INITIAL_DISCONNECTED_DEBOUNCE_MS = 20000;\n\n/**\n * Sync connection modal that displays when any entity reports a disconnection.\n * Uses BlockCanvasCover.Fill to render in the block canvas.\n *\n * @return The modal component or null if not disconnected.\n */\nexport function SyncConnectionErrorModal() {\n\tconst [ hasInitialized, setHasInitialized ] = useState( false );\n\tconst [ showModal, setShowModal ] = useState( false );\n\n\tconst { connectionStatus, isCollaborationEnabled, postType } = useSelect(\n\t\t( selectFn ) => {\n\t\t\tconst currentPostType =\n\t\t\t\tselectFn( editorStore ).getCurrentPostType();\n\t\t\treturn {\n\t\t\t\tconnectionStatus:\n\t\t\t\t\tselectFn( coreDataStore ).getSyncConnectionStatus() || null,\n\t\t\t\tisCollaborationEnabled:\n\t\t\t\t\tselectFn(\n\t\t\t\t\t\teditorStore\n\t\t\t\t\t).isCollaborationEnabledForCurrentPost(),\n\t\t\t\tpostType: currentPostType\n\t\t\t\t\t? selectFn( coreDataStore ).getPostType( currentPostType )\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { onManualRetry, secondsRemaining } =\n\t\tuseRetryCountdown( connectionStatus );\n\n\tconst copyButtonRef = useCopyToClipboard( () => {\n\t\tconst blocks = select( blockEditorStore ).getBlocks();\n\t\treturn serialize( blocks );\n\t} );\n\n\t// Set hasInitialized after a debounce to give extra time on initial load.\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tsetHasInitialized( true );\n\t\t}, INITIAL_DISCONNECTED_DEBOUNCE_MS );\n\n\t\treturn () => clearTimeout( timeout );\n\t}, [] );\n\n\t// Show the modal when disconnected and either retries are exhausted or\n\t// no retry is available (unrecoverable error). Hide on reconnect.\n\t// The 'connecting' state is ignored so the modal preserves its current\n\t// visibility during active retry attempts.\n\tconst canRetry =\n\t\tconnectionStatus &&\n\t\t'disconnected' === connectionStatus.status &&\n\t\t( connectionStatus.canManuallyRetry ||\n\t\t\tconnectionStatus.willAutoRetryInMs );\n\n\tuseEffect( () => {\n\t\tif ( 'connected' === connectionStatus?.status ) {\n\t\t\tsetShowModal( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tconnectionStatus?.status &&\n\t\t\t'connecting' !== connectionStatus.status &&\n\t\t\t( ! canRetry || connectionStatus.backgroundRetriesFailed )\n\t\t) {\n\t\t\tsetShowModal( true );\n\t\t}\n\t}, [ connectionStatus, canRetry ] );\n\n\tif ( ! isCollaborationEnabled || ! hasInitialized || ! showModal ) {\n\t\treturn null;\n\t}\n\n\tconst error =\n\t\tconnectionStatus && 'error' in connectionStatus\n\t\t\t? connectionStatus?.error\n\t\t\t: undefined;\n\n\t// For unrecoverable errors (no retry available), allow plugins to handle\n\t// the error themselves. If a plugin returns a value other than false, it\n\t// signals that it has taken over error display and the default modal is\n\t// suppressed.\n\t//\n\t// @example\n\t// ```js\n\t// wp.hooks.addFilter(\n\t// 'editor.isSyncConnectionErrorHandled',\n\t// 'my-plugin/handle-sync-error',\n\t// ( isHandled, errorCode ) => {\n\t// if ( errorCode === 'connection-limit-exceeded' ) {\n\t// return true; // Plugin handles this error via its own UI.\n\t// }\n\t// return isHandled;\n\t// }\n\t// );\n\t// ```\n\tif (\n\t\t! canRetry &&\n\t\tapplyFilters(\n\t\t\t'editor.isSyncConnectionErrorHandled',\n\t\t\tfalse,\n\t\t\terror?.code\n\t\t) !== false\n\t) {\n\t\treturn null;\n\t}\n\n\tconst manualRetry =\n\t\tconnectionStatus &&\n\t\t'canManuallyRetry' in connectionStatus &&\n\t\tconnectionStatus.canManuallyRetry\n\t\t\t? () => {\n\t\t\t\t\tonManualRetry();\n\t\t\t\t\tretrySyncConnection();\n\t\t\t }\n\t\t\t: undefined;\n\n\tconst messages = getSyncErrorMessages( error );\n\n\tlet retryCountdownText: string = '';\n\tlet isRetrying = false;\n\tif ( secondsRemaining && secondsRemaining > 0 ) {\n\t\tretryCountdownText = sprintf(\n\t\t\t/* translators: %d: number of seconds until retry */\n\t\t\t_n(\n\t\t\t\t'Retrying connection in %d second\\u2026',\n\t\t\t\t'Retrying connection in %d seconds\\u2026',\n\t\t\t\tsecondsRemaining\n\t\t\t),\n\t\t\tsecondsRemaining\n\t\t);\n\t} else if ( 0 === secondsRemaining ) {\n\t\tisRetrying = true;\n\t\tretryCountdownText = __( 'Retrying\\u2026' );\n\t}\n\n\tlet editPostHref = 'edit.php';\n\tif ( postType?.slug ) {\n\t\teditPostHref = `edit.php?post_type=${ postType.slug }`;\n\t}\n\n\treturn (\n\t\t<BlockCanvasCover.Fill>\n\t\t\t<Modal\n\t\t\t\toverlayClassName=\"editor-sync-connection-error-modal\"\n\t\t\t\tisDismissible={ false }\n\t\t\t\tonRequestClose={ () => {} }\n\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\tshouldCloseOnEsc={ false }\n\t\t\t\tsize=\"medium\"\n\t\t\t\ttitle={ messages.title }\n\t\t\t>\n\t\t\t\t<VStack spacing={ 6 }>\n\t\t\t\t\t<p>{ messages.description }</p>\n\t\t\t\t\t{ retryCountdownText && (\n\t\t\t\t\t\t<p className=\"editor-sync-connection-error-modal__retry-countdown\">\n\t\t\t\t\t\t\t{ retryCountdownText }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t) }\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\thref={ editPostHref }\n\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: Post type name (e.g., \"Posts\", \"Pages\"). */\n\t\t\t\t\t\t\t\t__( 'Back to %s' ),\n\t\t\t\t\t\t\t\tpostType?.labels?.name ?? __( 'Posts' )\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tref={ copyButtonRef }\n\t\t\t\t\t\t\tvariant={ manualRetry ? 'secondary' : 'primary' }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Copy Post Content' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ manualRetry && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\taria-disabled={ isRetrying }\n\t\t\t\t\t\t\t\tdisabled={ isRetrying }\n\t\t\t\t\t\t\t\tisBusy={ isRetrying }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ manualRetry }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Retry' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</Modal>\n\t\t</BlockCanvasCover.Fill>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useSelect, select } from '@wordpress/data';\nimport { useCopyToClipboard } from '@wordpress/compose';\n// @ts-ignore No exported types.\nimport { serialize } from '@wordpress/blocks';\nimport {\n\tstore as coreDataStore,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\n// @ts-expect-error - No type declarations available for @wordpress/block-editor\n// prettier-ignore\nimport { privateApis, store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { applyFilters } from '@wordpress/hooks';\nimport { useState, useEffect } from '@wordpress/element';\nimport { __, sprintf, _n } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { getSyncErrorMessages } from '../../utils/sync-error-messages';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\nimport { useRetryCountdown } from './use-retry-countdown';\n\nconst { BlockCanvasCover } = unlock( privateApis );\nconst { retrySyncConnection } = unlock( coreDataPrivateApis );\n\n// Debounce time for initial disconnected status to allow connection to establish.\nconst INITIAL_DISCONNECTED_DEBOUNCE_MS = 20000;\n\n/**\n * Sync connection modal that displays when any entity reports a disconnection.\n * Uses BlockCanvasCover.Fill to render in the block canvas.\n *\n * @return The modal component or null if not disconnected.\n */\nexport function SyncConnectionErrorModal() {\n\tconst [ hasInitialized, setHasInitialized ] = useState( false );\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst [ isManualRetryAvailable, setIsManualRetryAvailable ] =\n\t\tuseState( false );\n\n\tconst { connectionStatus, isCollaborationEnabled, postType } = useSelect(\n\t\t( selectFn ) => {\n\t\t\tconst currentPostType =\n\t\t\t\tselectFn( editorStore ).getCurrentPostType();\n\t\t\treturn {\n\t\t\t\tconnectionStatus:\n\t\t\t\t\tselectFn( coreDataStore ).getSyncConnectionStatus() || null,\n\t\t\t\tisCollaborationEnabled:\n\t\t\t\t\tselectFn(\n\t\t\t\t\t\teditorStore\n\t\t\t\t\t).isCollaborationEnabledForCurrentPost(),\n\t\t\t\tpostType: currentPostType\n\t\t\t\t\t? selectFn( coreDataStore ).getPostType( currentPostType )\n\t\t\t\t\t: null,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { onManualRetry, secondsRemaining } =\n\t\tuseRetryCountdown( connectionStatus );\n\n\tconst copyButtonRef = useCopyToClipboard( () => {\n\t\tconst blocks = select( blockEditorStore ).getBlocks();\n\t\treturn serialize( blocks );\n\t} );\n\n\t// Set hasInitialized after a debounce to give extra time on initial load.\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tsetHasInitialized( true );\n\t\t}, INITIAL_DISCONNECTED_DEBOUNCE_MS );\n\n\t\treturn () => clearTimeout( timeout );\n\t}, [] );\n\n\t// Track retry availability separately from the raw connection status.\n\t// The polling manager briefly emits `{ status: 'connecting' }` without\n\t// `canManuallyRetry` when a retry is kicked off, which would otherwise\n\t// unmount the Retry button briefly.\n\tuseEffect( () => {\n\t\tif ( 'connecting' === connectionStatus?.status ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetIsManualRetryAvailable(\n\t\t\tconnectionStatus !== null &&\n\t\t\t\t'canManuallyRetry' in connectionStatus &&\n\t\t\t\tconnectionStatus.canManuallyRetry === true\n\t\t);\n\t}, [ connectionStatus ] );\n\n\t// Show the modal when disconnected and either retries are exhausted or\n\t// no retry is available (unrecoverable error). Hide on reconnect.\n\t// The 'connecting' state is ignored so the modal preserves its current\n\t// visibility during active retry attempts.\n\tconst canRetry =\n\t\tconnectionStatus &&\n\t\t'disconnected' === connectionStatus.status &&\n\t\t( connectionStatus.canManuallyRetry ||\n\t\t\tconnectionStatus.willAutoRetryInMs );\n\n\tuseEffect( () => {\n\t\tif ( 'connected' === connectionStatus?.status ) {\n\t\t\tsetShowModal( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tconnectionStatus?.status &&\n\t\t\t'connecting' !== connectionStatus.status &&\n\t\t\t( ! canRetry || connectionStatus.backgroundRetriesFailed )\n\t\t) {\n\t\t\tsetShowModal( true );\n\t\t}\n\t}, [ connectionStatus, canRetry ] );\n\n\tif ( ! isCollaborationEnabled || ! hasInitialized || ! showModal ) {\n\t\treturn null;\n\t}\n\n\tconst error =\n\t\tconnectionStatus && 'error' in connectionStatus\n\t\t\t? connectionStatus?.error\n\t\t\t: undefined;\n\n\t// For unrecoverable errors (no retry available), allow plugins to handle\n\t// the error themselves. If a plugin returns a value other than false, it\n\t// signals that it has taken over error display and the default modal is\n\t// suppressed.\n\t//\n\t// @example\n\t// ```js\n\t// wp.hooks.addFilter(\n\t// 'editor.isSyncConnectionErrorHandled',\n\t// 'my-plugin/handle-sync-error',\n\t// ( isHandled, errorCode ) => {\n\t// if ( errorCode === 'connection-limit-exceeded' ) {\n\t// return true; // Plugin handles this error via its own UI.\n\t// }\n\t// return isHandled;\n\t// }\n\t// );\n\t// ```\n\tif (\n\t\t! canRetry &&\n\t\tapplyFilters(\n\t\t\t'editor.isSyncConnectionErrorHandled',\n\t\t\tfalse,\n\t\t\terror?.code\n\t\t) !== false\n\t) {\n\t\treturn null;\n\t}\n\n\tconst manualRetry = isManualRetryAvailable\n\t\t? () => {\n\t\t\t\tonManualRetry();\n\t\t\t\tretrySyncConnection();\n\t\t }\n\t\t: undefined;\n\n\tconst messages = getSyncErrorMessages( error );\n\n\tlet retryCountdownText: string = '';\n\tlet isRetrying = false;\n\tif ( secondsRemaining && secondsRemaining > 0 ) {\n\t\tretryCountdownText = sprintf(\n\t\t\t/* translators: %d: number of seconds until retry */\n\t\t\t_n(\n\t\t\t\t'Retrying connection in %d second\\u2026',\n\t\t\t\t'Retrying connection in %d seconds\\u2026',\n\t\t\t\tsecondsRemaining\n\t\t\t),\n\t\t\tsecondsRemaining\n\t\t);\n\t} else if ( 0 === secondsRemaining ) {\n\t\tisRetrying = true;\n\t\tretryCountdownText = __( 'Retrying\\u2026' );\n\t}\n\n\tlet editPostHref = 'edit.php';\n\tif ( postType?.slug ) {\n\t\teditPostHref = `edit.php?post_type=${ postType.slug }`;\n\t}\n\n\treturn (\n\t\t<BlockCanvasCover.Fill>\n\t\t\t<Modal\n\t\t\t\toverlayClassName=\"editor-sync-connection-error-modal\"\n\t\t\t\tisDismissible={ false }\n\t\t\t\tonRequestClose={ () => {} }\n\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\tshouldCloseOnEsc={ false }\n\t\t\t\tsize=\"medium\"\n\t\t\t\ttitle={ messages.title }\n\t\t\t>\n\t\t\t\t<VStack spacing={ 6 }>\n\t\t\t\t\t<p>{ messages.description }</p>\n\t\t\t\t\t{ retryCountdownText && (\n\t\t\t\t\t\t<p className=\"editor-sync-connection-error-modal__retry-countdown\">\n\t\t\t\t\t\t\t{ retryCountdownText }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t) }\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\thref={ editPostHref }\n\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: Post type name (e.g., \"Posts\", \"Pages\"). */\n\t\t\t\t\t\t\t\t__( 'Back to %s' ),\n\t\t\t\t\t\t\t\tpostType?.labels?.name ?? __( 'Posts' )\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tref={ copyButtonRef }\n\t\t\t\t\t\t\tvariant={ manualRetry ? 'secondary' : 'primary' }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Copy Post Content' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t{ manualRetry && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\taria-disabled={ isRetrying }\n\t\t\t\t\t\t\t\tdisabled={ isRetrying }\n\t\t\t\t\t\t\t\tisBusy={ isRetrying }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ manualRetry }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Retry' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</Modal>\n\t\t</BlockCanvasCover.Fill>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -110,7 +110,7 @@
110
110
  .admin-ui-page {
111
111
  display: flex;
112
112
  height: 100%;
113
- background-color: var(--wpds-color-bg-surface-neutral-strong, #ffffff);
113
+ background-color: var(--wpds-color-bg-surface-neutral, #fcfcfc);
114
114
  color: var(--wpds-color-fg-content-neutral, #1e1e1e);
115
115
  position: relative;
116
116
  z-index: 1;
@@ -119,8 +119,8 @@
119
119
  }
120
120
 
121
121
  .admin-ui-page__header {
122
- padding: var(--wpds-dimension-padding-md, 12px) var(--wpds-dimension-padding-2xl, 24px);
123
- border-bottom: var(--wpds-border-width-xs, 1px) solid var(--wpds-color-stroke-surface-neutral-weak, #e0e0e0);
122
+ padding: var(--wpds-dimension-padding-lg, 16px) var(--wpds-dimension-padding-2xl, 24px);
123
+ border-bottom: var(--wpds-border-width-xs, 1px) solid var(--wpds-color-stroke-surface-neutral-weak, #e4e4e4);
124
124
  background: var(--wpds-color-bg-surface-neutral-strong, #ffffff);
125
125
  position: sticky;
126
126
  top: 0;
@@ -128,10 +128,10 @@
128
128
  }
129
129
 
130
130
  .admin-ui-page__header-title {
131
- font-family: var(--wpds-font-family-heading, -apple-system, system-ui, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif);
132
- font-size: var(--wpds-font-size-lg, 15px);
133
- font-weight: var(--wpds-font-weight-medium, 499);
134
- line-height: var(--wpds-font-line-height-lg, 28px);
131
+ font-family: var(--wpds-typography-font-family-heading, -apple-system, system-ui, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif);
132
+ font-size: var(--wpds-typography-font-size-lg, 15px);
133
+ font-weight: var(--wpds-typography-font-weight-medium, 499);
134
+ line-height: var(--wpds-typography-line-height-lg, 28px);
135
135
  margin: 0;
136
136
  overflow: hidden;
137
137
  text-overflow: ellipsis;
@@ -144,9 +144,9 @@
144
144
 
145
145
  .admin-ui-page__header-subtitle {
146
146
  padding-block-end: var(--wpds-dimension-padding-xs, 4px);
147
- color: var(--wpds-color-fg-content-neutral-weak, #6d6d6d);
148
- font-size: var(--wpds-font-size-md, 13px);
149
- line-height: var(--wpds-font-line-height-md, 24px);
147
+ color: var(--wpds-color-fg-content-neutral-weak, #707070);
148
+ font-size: var(--wpds-typography-font-size-md, 13px);
149
+ line-height: var(--wpds-typography-line-height-md, 24px);
150
150
  margin: 0;
151
151
  }
152
152
 
@@ -172,7 +172,7 @@
172
172
 
173
173
  .show-icon-labels .admin-ui-page__header-actions .components-button.has-icon::after {
174
174
  content: attr(aria-label);
175
- font-size: var(--wpds-font-size-sm, 12px);
175
+ font-size: var(--wpds-typography-font-size-sm, 12px);
176
176
  }
177
177
 
178
178
  /**
@@ -221,10 +221,10 @@
221
221
  * These variables do not appear to be used anywhere else.
222
222
  */
223
223
  .admin-ui-breadcrumbs__list {
224
- font-family: var(--wpds-font-family-heading, -apple-system, system-ui, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif);
225
- font-size: var(--wpds-font-size-lg, 15px);
226
- font-weight: var(--wpds-font-weight-medium, 499);
227
- line-height: var(--wpds-font-line-height-lg, 28px);
224
+ font-family: var(--wpds-typography-font-family-heading, -apple-system, system-ui, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif);
225
+ font-size: var(--wpds-typography-font-size-lg, 15px);
226
+ font-weight: var(--wpds-typography-font-weight-medium, 499);
227
+ line-height: var(--wpds-typography-line-height-lg, 28px);
228
228
  list-style: none;
229
229
  padding: 0;
230
230
  margin: 0;
@@ -1652,7 +1652,7 @@ button.font-library__upload-area {
1652
1652
  }
1653
1653
 
1654
1654
  .dataviews-title-field--clickable {
1655
- cursor: pointer;
1655
+ cursor: var(--wpds-cursor-control, pointer);
1656
1656
  color: #2f2f2f;
1657
1657
  }
1658
1658
 
@@ -1758,7 +1758,7 @@ button.font-library__upload-area {
1758
1758
  .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip {
1759
1759
  border-radius: 16px;
1760
1760
  border: 1px solid transparent;
1761
- cursor: pointer;
1761
+ cursor: var(--wpds-cursor-control, pointer);
1762
1762
  padding: 4px 12px;
1763
1763
  min-height: 32px;
1764
1764
  background: #f0f0f0;
@@ -1814,7 +1814,7 @@ button.font-library__upload-area {
1814
1814
  align-items: center;
1815
1815
  justify-content: center;
1816
1816
  background: transparent;
1817
- cursor: pointer;
1817
+ cursor: var(--wpds-cursor-control, pointer);
1818
1818
  }
1819
1819
 
1820
1820
  .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove svg {
@@ -2722,7 +2722,7 @@ button.font-library__upload-area {
2722
2722
  }
2723
2723
 
2724
2724
  .dataviews-view-grid__media--clickable {
2725
- cursor: pointer;
2725
+ cursor: var(--wpds-cursor-control, pointer);
2726
2726
  }
2727
2727
 
2728
2728
  .dataviews-view-grid__group-header {
@@ -2868,7 +2868,7 @@ div.dataviews-view-list {
2868
2868
  border: none;
2869
2869
  background: none;
2870
2870
  padding: 0;
2871
- cursor: pointer;
2871
+ cursor: var(--wpds-cursor-control, pointer);
2872
2872
  }
2873
2873
 
2874
2874
  .dataviews-view-list .dataviews-view-list__item:focus-visible {
@@ -3482,7 +3482,7 @@ div.dataviews-view-list {
3482
3482
  }
3483
3483
 
3484
3484
  .dataviews-view-picker-grid__media--clickable {
3485
- cursor: pointer;
3485
+ cursor: var(--wpds-cursor-control, pointer);
3486
3486
  }
3487
3487
 
3488
3488
  .dataviews-view-picker-grid-group__header {
@@ -3515,7 +3515,7 @@ div.dataviews-view-list {
3515
3515
  }
3516
3516
 
3517
3517
  .dataviews-view-picker-table .dataviews-view-table__row {
3518
- cursor: pointer;
3518
+ cursor: var(--wpds-cursor-control, pointer);
3519
3519
  }
3520
3520
 
3521
3521
  .dataviews-view-picker-table .dataviews-view-table__row.is-selected {
@@ -3566,7 +3566,7 @@ div.dataviews-view-list {
3566
3566
  }
3567
3567
 
3568
3568
  .dataviews-view-activity .dataviews-view-activity__item-content .dataviews-view-activity__item-title--clickable {
3569
- cursor: pointer;
3569
+ cursor: var(--wpds-cursor-control, pointer);
3570
3570
  }
3571
3571
 
3572
3572
  .dataviews-view-activity .dataviews-view-activity__item-content .dataviews-view-activity__item-title--clickable:focus-visible {
@@ -3787,7 +3787,7 @@ div.dataviews-view-list {
3787
3787
  display: flex;
3788
3788
  width: 100%;
3789
3789
  min-height: 24px;
3790
- cursor: pointer;
3790
+ cursor: var(--wpds-cursor-control, pointer);
3791
3791
  align-items: flex-start;
3792
3792
  border-radius: 2px;
3793
3793
  isolation: isolate;
@@ -3825,7 +3825,7 @@ div.dataviews-view-list {
3825
3825
 
3826
3826
  .dataforms-layouts-panel__field-trigger.is-disabled .dataforms-layouts-panel__field-control {
3827
3827
  color: #757575;
3828
- font-weight: var(--wpds-font-weight-regular, 400);
3828
+ font-weight: var(--wpds-typography-font-weight-regular, 400);
3829
3829
  }
3830
3830
 
3831
3831
  .dataforms-layouts-panel__field-trigger--edit-always .dataforms-layouts-panel__field-trigger-icon {
@@ -3867,7 +3867,6 @@ div.dataviews-view-list {
3867
3867
  line-height: 20px;
3868
3868
  hyphens: auto;
3869
3869
  color: #757575;
3870
- text-transform: capitalize;
3871
3870
  }
3872
3871
 
3873
3872
  .dataforms-layouts-panel__field-label .components-base-control__label {
@@ -3899,12 +3898,12 @@ div.dataviews-view-list {
3899
3898
  flex-grow: 1;
3900
3899
  min-width: 0;
3901
3900
  min-height: 24px;
3902
- line-height: var(--wpds-font-line-height-md, 24px);
3901
+ line-height: var(--wpds-typography-line-height-md, 24px);
3903
3902
  display: flex;
3904
3903
  align-items: center;
3905
3904
  overflow: hidden;
3906
3905
  word-break: break-word;
3907
- font-weight: var(--wpds-font-weight-medium, 499);
3906
+ font-weight: var(--wpds-typography-font-weight-medium, 499);
3908
3907
  }
3909
3908
 
3910
3909
  .dataforms-layouts-panel__field-control > * {
@@ -110,7 +110,7 @@
110
110
  .admin-ui-page {
111
111
  display: flex;
112
112
  height: 100%;
113
- background-color: var(--wpds-color-bg-surface-neutral-strong, #ffffff);
113
+ background-color: var(--wpds-color-bg-surface-neutral, #fcfcfc);
114
114
  color: var(--wpds-color-fg-content-neutral, #1e1e1e);
115
115
  position: relative;
116
116
  z-index: 1;
@@ -119,8 +119,8 @@
119
119
  }
120
120
 
121
121
  .admin-ui-page__header {
122
- padding: var(--wpds-dimension-padding-md, 12px) var(--wpds-dimension-padding-2xl, 24px);
123
- border-bottom: var(--wpds-border-width-xs, 1px) solid var(--wpds-color-stroke-surface-neutral-weak, #e0e0e0);
122
+ padding: var(--wpds-dimension-padding-lg, 16px) var(--wpds-dimension-padding-2xl, 24px);
123
+ border-bottom: var(--wpds-border-width-xs, 1px) solid var(--wpds-color-stroke-surface-neutral-weak, #e4e4e4);
124
124
  background: var(--wpds-color-bg-surface-neutral-strong, #ffffff);
125
125
  position: sticky;
126
126
  top: 0;
@@ -128,10 +128,10 @@
128
128
  }
129
129
 
130
130
  .admin-ui-page__header-title {
131
- font-family: var(--wpds-font-family-heading, -apple-system, system-ui, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif);
132
- font-size: var(--wpds-font-size-lg, 15px);
133
- font-weight: var(--wpds-font-weight-medium, 499);
134
- line-height: var(--wpds-font-line-height-lg, 28px);
131
+ font-family: var(--wpds-typography-font-family-heading, -apple-system, system-ui, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif);
132
+ font-size: var(--wpds-typography-font-size-lg, 15px);
133
+ font-weight: var(--wpds-typography-font-weight-medium, 499);
134
+ line-height: var(--wpds-typography-line-height-lg, 28px);
135
135
  margin: 0;
136
136
  overflow: hidden;
137
137
  text-overflow: ellipsis;
@@ -144,9 +144,9 @@
144
144
 
145
145
  .admin-ui-page__header-subtitle {
146
146
  padding-block-end: var(--wpds-dimension-padding-xs, 4px);
147
- color: var(--wpds-color-fg-content-neutral-weak, #6d6d6d);
148
- font-size: var(--wpds-font-size-md, 13px);
149
- line-height: var(--wpds-font-line-height-md, 24px);
147
+ color: var(--wpds-color-fg-content-neutral-weak, #707070);
148
+ font-size: var(--wpds-typography-font-size-md, 13px);
149
+ line-height: var(--wpds-typography-line-height-md, 24px);
150
150
  margin: 0;
151
151
  }
152
152
 
@@ -172,7 +172,7 @@
172
172
 
173
173
  .show-icon-labels .admin-ui-page__header-actions .components-button.has-icon::after {
174
174
  content: attr(aria-label);
175
- font-size: var(--wpds-font-size-sm, 12px);
175
+ font-size: var(--wpds-typography-font-size-sm, 12px);
176
176
  }
177
177
 
178
178
  /**
@@ -221,10 +221,10 @@
221
221
  * These variables do not appear to be used anywhere else.
222
222
  */
223
223
  .admin-ui-breadcrumbs__list {
224
- font-family: var(--wpds-font-family-heading, -apple-system, system-ui, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif);
225
- font-size: var(--wpds-font-size-lg, 15px);
226
- font-weight: var(--wpds-font-weight-medium, 499);
227
- line-height: var(--wpds-font-line-height-lg, 28px);
224
+ font-family: var(--wpds-typography-font-family-heading, -apple-system, system-ui, "Segoe UI", "Roboto", "Oxygen-Sans", "Ubuntu", "Cantarell", "Helvetica Neue", sans-serif);
225
+ font-size: var(--wpds-typography-font-size-lg, 15px);
226
+ font-weight: var(--wpds-typography-font-weight-medium, 499);
227
+ line-height: var(--wpds-typography-line-height-lg, 28px);
228
228
  list-style: none;
229
229
  padding: 0;
230
230
  margin: 0;
@@ -1655,7 +1655,7 @@ button.font-library__upload-area {
1655
1655
  }
1656
1656
 
1657
1657
  .dataviews-title-field--clickable {
1658
- cursor: pointer;
1658
+ cursor: var(--wpds-cursor-control, pointer);
1659
1659
  color: #2f2f2f;
1660
1660
  }
1661
1661
 
@@ -1761,7 +1761,7 @@ button.font-library__upload-area {
1761
1761
  .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip {
1762
1762
  border-radius: 16px;
1763
1763
  border: 1px solid transparent;
1764
- cursor: pointer;
1764
+ cursor: var(--wpds-cursor-control, pointer);
1765
1765
  padding: 4px 12px;
1766
1766
  min-height: 32px;
1767
1767
  background: #f0f0f0;
@@ -1817,7 +1817,7 @@ button.font-library__upload-area {
1817
1817
  align-items: center;
1818
1818
  justify-content: center;
1819
1819
  background: transparent;
1820
- cursor: pointer;
1820
+ cursor: var(--wpds-cursor-control, pointer);
1821
1821
  }
1822
1822
 
1823
1823
  .dataviews-filters__summary-chip-container .dataviews-filters__summary-chip-remove svg {
@@ -2725,7 +2725,7 @@ button.font-library__upload-area {
2725
2725
  }
2726
2726
 
2727
2727
  .dataviews-view-grid__media--clickable {
2728
- cursor: pointer;
2728
+ cursor: var(--wpds-cursor-control, pointer);
2729
2729
  }
2730
2730
 
2731
2731
  .dataviews-view-grid__group-header {
@@ -2871,7 +2871,7 @@ div.dataviews-view-list {
2871
2871
  border: none;
2872
2872
  background: none;
2873
2873
  padding: 0;
2874
- cursor: pointer;
2874
+ cursor: var(--wpds-cursor-control, pointer);
2875
2875
  }
2876
2876
 
2877
2877
  .dataviews-view-list .dataviews-view-list__item:focus-visible {
@@ -3485,7 +3485,7 @@ div.dataviews-view-list {
3485
3485
  }
3486
3486
 
3487
3487
  .dataviews-view-picker-grid__media--clickable {
3488
- cursor: pointer;
3488
+ cursor: var(--wpds-cursor-control, pointer);
3489
3489
  }
3490
3490
 
3491
3491
  .dataviews-view-picker-grid-group__header {
@@ -3518,7 +3518,7 @@ div.dataviews-view-list {
3518
3518
  }
3519
3519
 
3520
3520
  .dataviews-view-picker-table .dataviews-view-table__row {
3521
- cursor: pointer;
3521
+ cursor: var(--wpds-cursor-control, pointer);
3522
3522
  }
3523
3523
 
3524
3524
  .dataviews-view-picker-table .dataviews-view-table__row.is-selected {
@@ -3569,7 +3569,7 @@ div.dataviews-view-list {
3569
3569
  }
3570
3570
 
3571
3571
  .dataviews-view-activity .dataviews-view-activity__item-content .dataviews-view-activity__item-title--clickable {
3572
- cursor: pointer;
3572
+ cursor: var(--wpds-cursor-control, pointer);
3573
3573
  }
3574
3574
 
3575
3575
  .dataviews-view-activity .dataviews-view-activity__item-content .dataviews-view-activity__item-title--clickable:focus-visible {
@@ -3790,7 +3790,7 @@ div.dataviews-view-list {
3790
3790
  display: flex;
3791
3791
  width: 100%;
3792
3792
  min-height: 24px;
3793
- cursor: pointer;
3793
+ cursor: var(--wpds-cursor-control, pointer);
3794
3794
  align-items: flex-start;
3795
3795
  border-radius: 2px;
3796
3796
  isolation: isolate;
@@ -3828,7 +3828,7 @@ div.dataviews-view-list {
3828
3828
 
3829
3829
  .dataforms-layouts-panel__field-trigger.is-disabled .dataforms-layouts-panel__field-control {
3830
3830
  color: #757575;
3831
- font-weight: var(--wpds-font-weight-regular, 400);
3831
+ font-weight: var(--wpds-typography-font-weight-regular, 400);
3832
3832
  }
3833
3833
 
3834
3834
  .dataforms-layouts-panel__field-trigger--edit-always .dataforms-layouts-panel__field-trigger-icon {
@@ -3870,7 +3870,6 @@ div.dataviews-view-list {
3870
3870
  line-height: 20px;
3871
3871
  hyphens: auto;
3872
3872
  color: #757575;
3873
- text-transform: capitalize;
3874
3873
  }
3875
3874
 
3876
3875
  .dataforms-layouts-panel__field-label .components-base-control__label {
@@ -3902,12 +3901,12 @@ div.dataviews-view-list {
3902
3901
  flex-grow: 1;
3903
3902
  min-width: 0;
3904
3903
  min-height: 24px;
3905
- line-height: var(--wpds-font-line-height-md, 24px);
3904
+ line-height: var(--wpds-typography-line-height-md, 24px);
3906
3905
  display: flex;
3907
3906
  align-items: center;
3908
3907
  overflow: hidden;
3909
3908
  word-break: break-word;
3910
- font-weight: var(--wpds-font-weight-medium, 499);
3909
+ font-weight: var(--wpds-typography-font-weight-medium, 499);
3911
3910
  }
3912
3911
 
3913
3912
  .dataforms-layouts-panel__field-control > * {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/collab-sidebar/index.js"],"names":[],"mappings":"AA6PA,oFA0BC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/collab-sidebar/index.js"],"names":[],"mappings":"AA8PA,oFA0BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/post-revisions-panel/index.js"],"names":[],"mappings":"AAgJA,0EAMC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/post-revisions-panel/index.js"],"names":[],"mappings":"AAkJA,0EAMC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/index.js"],"names":[],"mappings":";AAsKA;;;gCAkEC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/index.js"],"names":[],"mappings":";AA4KA;;;gCAkEC"}
@@ -1 +1 @@
1
- {"version":3,"file":"post-revision-summary.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/post-revision-summary.js"],"names":[],"mappings":"AAmBA,kFA8BC"}
1
+ {"version":3,"file":"post-revision-summary.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/post-revision-summary.js"],"names":[],"mappings":"AAuBA,kFAoCC"}
@@ -1,6 +1,3 @@
1
- export function OpenRevisionsClassicScreen({ revisionId }: {
2
- revisionId: any;
3
- }): import("react").JSX.Element;
4
1
  export default function PostSummary({ onActionPerformed }: {
5
2
  onActionPerformed: any;
6
3
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"post-summary.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/post-summary.js"],"names":[],"mappings":"AA2CA;;gCAUC;AAED;;gCAYC"}
1
+ {"version":3,"file":"post-summary.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/post-summary.js"],"names":[],"mappings":"AAsCA;;gCAYC"}
@@ -1 +1 @@
1
- {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../src/components/style-book/categories.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,SAAS,CAAC;AAMjB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACpC,kBAAkB,EAAE,iBAAiB,EACrC,QAAQ,EAAE,YAAY,EAAE,GACtB,gBAAgB,GAAG,SAAS,CAkD9B;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,iBAAiB,EAAE,CAUpE"}
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../src/components/style-book/categories.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,OAAO,KAAK,EACX,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,MAAM,SAAS,CAAC;AAMjB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACpC,kBAAkB,EAAE,iBAAiB,EACrC,QAAQ,EAAE,YAAY,EAAE,GACtB,gBAAgB,GAAG,SAAS,CAkD9B;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,iBAAiB,EAAE,CAUpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../../../src/components/style-book/examples.tsx"],"names":[],"mappings":"AAaA;;GAEG;AACH,OAAO,KAAK,EACX,YAAY,EAEZ,mBAAmB,EAEnB,MAAM,SAAS,CAAC;AAyLjB;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAAE,mBAAmB,GAAI,YAAY,EAAE,CA4DzE"}
1
+ {"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../../../src/components/style-book/examples.tsx"],"names":[],"mappings":"AAYA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAe,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAyL9E;;;;;GAKG;AACH,wBAAgB,WAAW,CAAE,MAAM,EAAE,mBAAmB,GAAI,YAAY,EAAE,CA4DzE"}
@@ -1,8 +1,4 @@
1
- export type Block = {
2
- name: string;
3
- attributes: Record<string, unknown>;
4
- innerBlocks?: Block[];
5
- };
1
+ import type { Block } from '@wordpress/blocks';
6
2
  export type StyleBookCategory = {
7
3
  title: string;
8
4
  slug: string;
@@ -61,12 +57,4 @@ export type MultiOriginPalettes = {
61
57
  duotones: Omit<ColorOrigin, 'colors' | 'gradients'>;
62
58
  gradients: Omit<ColorOrigin, 'colors' | 'duotones'>;
63
59
  };
64
- export type BlockType = {
65
- name: string;
66
- title: string;
67
- category: string;
68
- example: BlockType;
69
- attributes: Record<string, unknown>;
70
- supports: Record<string, unknown>;
71
- };
72
60
  //# sourceMappingURL=types.d.ts.map