@wordpress/components 29.8.0 → 29.10.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 (97) hide show
  1. package/.stylelintrc.js +1 -1
  2. package/CHANGELOG.md +31 -1
  3. package/build/color-picker/color-copy-button.js +3 -2
  4. package/build/color-picker/color-copy-button.js.map +1 -1
  5. package/build/guide/index.js +4 -2
  6. package/build/guide/index.js.map +1 -1
  7. package/build/guide/types.js.map +1 -1
  8. package/build/item-group/styles.js +10 -10
  9. package/build/item-group/styles.js.map +1 -1
  10. package/build/notice/types.js.map +1 -1
  11. package/build/popover/index.js +9 -1
  12. package/build/popover/index.js.map +1 -1
  13. package/build/popover/types.js.map +1 -1
  14. package/build/snackbar/index.js +16 -11
  15. package/build/snackbar/index.js.map +1 -1
  16. package/build/snackbar/types.js.map +1 -1
  17. package/build/spinner/index.js +5 -5
  18. package/build/spinner/index.js.map +1 -1
  19. package/build/textarea-control/styles/textarea-control-styles.js +3 -3
  20. package/build/textarea-control/styles/textarea-control-styles.js.map +1 -1
  21. package/build/toggle-group-control/toggle-group-control/component.js +1 -1
  22. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  23. package/build/unit-control/utils.js +9 -8
  24. package/build/unit-control/utils.js.map +1 -1
  25. package/build/utils/with-ignore-ime-events.js +5 -5
  26. package/build/utils/with-ignore-ime-events.js.map +1 -1
  27. package/build-module/color-picker/color-copy-button.js +4 -3
  28. package/build-module/color-picker/color-copy-button.js.map +1 -1
  29. package/build-module/guide/index.js +4 -2
  30. package/build-module/guide/index.js.map +1 -1
  31. package/build-module/guide/types.js.map +1 -1
  32. package/build-module/item-group/styles.js +10 -10
  33. package/build-module/item-group/styles.js.map +1 -1
  34. package/build-module/notice/types.js.map +1 -1
  35. package/build-module/popover/index.js +9 -1
  36. package/build-module/popover/index.js.map +1 -1
  37. package/build-module/popover/types.js.map +1 -1
  38. package/build-module/snackbar/index.js +16 -11
  39. package/build-module/snackbar/index.js.map +1 -1
  40. package/build-module/snackbar/types.js.map +1 -1
  41. package/build-module/spinner/index.js +5 -5
  42. package/build-module/spinner/index.js.map +1 -1
  43. package/build-module/textarea-control/styles/textarea-control-styles.js +3 -3
  44. package/build-module/textarea-control/styles/textarea-control-styles.js.map +1 -1
  45. package/build-module/toggle-group-control/toggle-group-control/component.js +1 -1
  46. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  47. package/build-module/unit-control/utils.js +9 -8
  48. package/build-module/unit-control/utils.js.map +1 -1
  49. package/build-module/utils/with-ignore-ime-events.js +5 -5
  50. package/build-module/utils/with-ignore-ime-events.js.map +1 -1
  51. package/build-style/style-rtl.css +78 -64
  52. package/build-style/style.css +78 -64
  53. package/build-types/guide/index.d.ts +1 -1
  54. package/build-types/guide/index.d.ts.map +1 -1
  55. package/build-types/guide/stories/index.story.d.ts.map +1 -1
  56. package/build-types/guide/types.d.ts +12 -0
  57. package/build-types/guide/types.d.ts.map +1 -1
  58. package/build-types/notice/types.d.ts +3 -1
  59. package/build-types/notice/types.d.ts.map +1 -1
  60. package/build-types/popover/index.d.ts.map +1 -1
  61. package/build-types/popover/types.d.ts +4 -0
  62. package/build-types/popover/types.d.ts.map +1 -1
  63. package/build-types/snackbar/index.d.ts +1 -1
  64. package/build-types/snackbar/index.d.ts.map +1 -1
  65. package/build-types/snackbar/types.d.ts +1 -1
  66. package/build-types/snackbar/types.d.ts.map +1 -1
  67. package/build-types/spinner/index.d.ts +5 -5
  68. package/build-types/textarea-control/styles/textarea-control-styles.d.ts.map +1 -1
  69. package/build-types/unit-control/utils.d.ts.map +1 -1
  70. package/build-types/utils/with-ignore-ime-events.d.ts +4 -4
  71. package/build-types/utils/with-ignore-ime-events.d.ts.map +1 -1
  72. package/package.json +19 -19
  73. package/src/color-picker/color-copy-button.tsx +4 -4
  74. package/src/color-picker/test/index.tsx +103 -26
  75. package/src/duotone-picker/style.scss +4 -0
  76. package/src/guide/README.md +16 -0
  77. package/src/guide/index.tsx +4 -2
  78. package/src/guide/stories/index.story.tsx +2 -0
  79. package/src/guide/types.ts +12 -0
  80. package/src/item-group/styles.ts +1 -1
  81. package/src/item-group/test/__snapshots__/index.js.snap +1 -1
  82. package/src/notice/README.md +3 -2
  83. package/src/notice/types.ts +3 -1
  84. package/src/popover/README.md +11 -0
  85. package/src/popover/index.tsx +12 -1
  86. package/src/popover/types.ts +4 -0
  87. package/src/snackbar/index.tsx +30 -17
  88. package/src/snackbar/style.scss +2 -1
  89. package/src/snackbar/types.ts +4 -1
  90. package/src/spinner/index.tsx +5 -5
  91. package/src/text-control/style.scss +3 -1
  92. package/src/textarea-control/styles/textarea-control-styles.ts +2 -0
  93. package/src/toggle-group-control/toggle-group-control/component.tsx +1 -1
  94. package/src/unit-control/test/utils.ts +36 -0
  95. package/src/unit-control/utils.ts +8 -11
  96. package/src/utils/with-ignore-ime-events.ts +5 -5
  97. package/tsconfig.tsbuildinfo +1 -1
@@ -358,15 +358,16 @@ export const useCustomUnits = ({
358
358
  defaultValues
359
359
  }) => {
360
360
  const customUnitsToReturn = filterUnitsWithSettings(availableUnits, units);
361
- if (defaultValues) {
362
- customUnitsToReturn.forEach((unit, i) => {
363
- if (defaultValues[unit.value]) {
364
- const [parsedDefaultValue] = parseQuantityAndUnitFromRawValue(defaultValues[unit.value]);
365
- customUnitsToReturn[i].default = parsedDefaultValue;
366
- }
367
- });
361
+ if (!defaultValues) {
362
+ return customUnitsToReturn;
368
363
  }
369
- return customUnitsToReturn;
364
+ return customUnitsToReturn.map(unit => {
365
+ const [defaultValue] = defaultValues[unit.value] ? parseQuantityAndUnitFromRawValue(defaultValues[unit.value]) : [];
366
+ return {
367
+ ...unit,
368
+ default: defaultValue
369
+ };
370
+ });
370
371
  };
371
372
 
372
373
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["__","_x","Platform","isWeb","OS","allUnits","px","value","label","a11yLabel","step","em","rem","vw","vh","vmin","vmax","ch","ex","cm","mm","in","pc","pt","svw","svh","svi","svb","svmin","lvw","lvh","lvi","lvb","lvmin","dvw","dvh","dvi","dvb","dvmin","dvmax","svmax","lvmax","ALL_CSS_UNITS","Object","values","CSS_UNITS","DEFAULT_UNIT","getParsedQuantityAndUnit","rawValue","fallbackUnit","allowedUnits","initialValue","parseQuantityAndUnitFromRawValue","hasUnits","units","Array","isArray","length","trimmedValue","quantityToReturn","trim","parsedQuantity","parseFloat","isFinite","undefined","unitMatch","match","matchedUnit","toLowerCase","unitToReturn","find","item","getValidParsedQuantityAndUnit","fallbackQuantity","parsedUnit","getAccessibleLabelForUnit","unit","filterUnitsWithSettings","allowedUnitValues","availableUnits","filter","includes","useCustomUnits","defaultValues","customUnitsToReturn","forEach","i","parsedDefaultValue","default","getUnitsWithCurrentUnit","legacyUnit","unitsToReturn","currentUnit","some","unshift"],"sources":["@wordpress/components/src/unit-control/utils.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WPUnitControlUnit } from './types';\n\nconst isWeb = Platform.OS === 'web';\n\nconst allUnits: Record< string, WPUnitControlUnit > = {\n\tpx: {\n\t\tvalue: 'px',\n\t\tlabel: isWeb ? 'px' : __( 'Pixels (px)' ),\n\t\ta11yLabel: __( 'Pixels (px)' ),\n\t\tstep: 1,\n\t},\n\t'%': {\n\t\tvalue: '%',\n\t\tlabel: isWeb ? '%' : __( 'Percentage (%)' ),\n\t\ta11yLabel: __( 'Percent (%)' ),\n\t\tstep: 0.1,\n\t},\n\tem: {\n\t\tvalue: 'em',\n\t\tlabel: isWeb ? 'em' : __( 'Relative to parent font size (em)' ),\n\t\ta11yLabel: _x( 'ems', 'Relative to parent font size (em)' ),\n\t\tstep: 0.01,\n\t},\n\trem: {\n\t\tvalue: 'rem',\n\t\tlabel: isWeb ? 'rem' : __( 'Relative to root font size (rem)' ),\n\t\ta11yLabel: _x( 'rems', 'Relative to root font size (rem)' ),\n\t\tstep: 0.01,\n\t},\n\tvw: {\n\t\tvalue: 'vw',\n\t\tlabel: isWeb ? 'vw' : __( 'Viewport width (vw)' ),\n\t\ta11yLabel: __( 'Viewport width (vw)' ),\n\t\tstep: 0.1,\n\t},\n\tvh: {\n\t\tvalue: 'vh',\n\t\tlabel: isWeb ? 'vh' : __( 'Viewport height (vh)' ),\n\t\ta11yLabel: __( 'Viewport height (vh)' ),\n\t\tstep: 0.1,\n\t},\n\tvmin: {\n\t\tvalue: 'vmin',\n\t\tlabel: isWeb ? 'vmin' : __( 'Viewport smallest dimension (vmin)' ),\n\t\ta11yLabel: __( 'Viewport smallest dimension (vmin)' ),\n\t\tstep: 0.1,\n\t},\n\tvmax: {\n\t\tvalue: 'vmax',\n\t\tlabel: isWeb ? 'vmax' : __( 'Viewport largest dimension (vmax)' ),\n\t\ta11yLabel: __( 'Viewport largest dimension (vmax)' ),\n\t\tstep: 0.1,\n\t},\n\tch: {\n\t\tvalue: 'ch',\n\t\tlabel: isWeb ? 'ch' : __( 'Width of the zero (0) character (ch)' ),\n\t\ta11yLabel: __( 'Width of the zero (0) character (ch)' ),\n\t\tstep: 0.01,\n\t},\n\tex: {\n\t\tvalue: 'ex',\n\t\tlabel: isWeb ? 'ex' : __( 'x-height of the font (ex)' ),\n\t\ta11yLabel: __( 'x-height of the font (ex)' ),\n\t\tstep: 0.01,\n\t},\n\tcm: {\n\t\tvalue: 'cm',\n\t\tlabel: isWeb ? 'cm' : __( 'Centimeters (cm)' ),\n\t\ta11yLabel: __( 'Centimeters (cm)' ),\n\t\tstep: 0.001,\n\t},\n\tmm: {\n\t\tvalue: 'mm',\n\t\tlabel: isWeb ? 'mm' : __( 'Millimeters (mm)' ),\n\t\ta11yLabel: __( 'Millimeters (mm)' ),\n\t\tstep: 0.1,\n\t},\n\tin: {\n\t\tvalue: 'in',\n\t\tlabel: isWeb ? 'in' : __( 'Inches (in)' ),\n\t\ta11yLabel: __( 'Inches (in)' ),\n\t\tstep: 0.001,\n\t},\n\tpc: {\n\t\tvalue: 'pc',\n\t\tlabel: isWeb ? 'pc' : __( 'Picas (pc)' ),\n\t\ta11yLabel: __( 'Picas (pc)' ),\n\t\tstep: 1,\n\t},\n\tpt: {\n\t\tvalue: 'pt',\n\t\tlabel: isWeb ? 'pt' : __( 'Points (pt)' ),\n\t\ta11yLabel: __( 'Points (pt)' ),\n\t\tstep: 1,\n\t},\n\tsvw: {\n\t\tvalue: 'svw',\n\t\tlabel: isWeb ? 'svw' : __( 'Small viewport width (svw)' ),\n\t\ta11yLabel: __( 'Small viewport width (svw)' ),\n\t\tstep: 0.1,\n\t},\n\tsvh: {\n\t\tvalue: 'svh',\n\t\tlabel: isWeb ? 'svh' : __( 'Small viewport height (svh)' ),\n\t\ta11yLabel: __( 'Small viewport height (svh)' ),\n\t\tstep: 0.1,\n\t},\n\tsvi: {\n\t\tvalue: 'svi',\n\t\tlabel: isWeb\n\t\t\t? 'svi'\n\t\t\t: __( 'Viewport smallest size in the inline direction (svi)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svi)' ),\n\t\tstep: 0.1,\n\t},\n\tsvb: {\n\t\tvalue: 'svb',\n\t\tlabel: isWeb\n\t\t\t? 'svb'\n\t\t\t: __( 'Viewport smallest size in the block direction (svb)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svb)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmin: {\n\t\tvalue: 'svmin',\n\t\tlabel: isWeb\n\t\t\t? 'svmin'\n\t\t\t: __( 'Small viewport smallest dimension (svmin)' ),\n\t\ta11yLabel: __( 'Small viewport smallest dimension (svmin)' ),\n\t\tstep: 0.1,\n\t},\n\tlvw: {\n\t\tvalue: 'lvw',\n\t\tlabel: isWeb ? 'lvw' : __( 'Large viewport width (lvw)' ),\n\t\ta11yLabel: __( 'Large viewport width (lvw)' ),\n\t\tstep: 0.1,\n\t},\n\tlvh: {\n\t\tvalue: 'lvh',\n\t\tlabel: isWeb ? 'lvh' : __( 'Large viewport height (lvh)' ),\n\t\ta11yLabel: __( 'Large viewport height (lvh)' ),\n\t\tstep: 0.1,\n\t},\n\tlvi: {\n\t\tvalue: 'lvi',\n\t\tlabel: isWeb ? 'lvi' : __( 'Large viewport width or height (lvi)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvi)' ),\n\t\tstep: 0.1,\n\t},\n\tlvb: {\n\t\tvalue: 'lvb',\n\t\tlabel: isWeb ? 'lvb' : __( 'Large viewport width or height (lvb)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvb)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmin: {\n\t\tvalue: 'lvmin',\n\t\tlabel: isWeb\n\t\t\t? 'lvmin'\n\t\t\t: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\ta11yLabel: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvw: {\n\t\tvalue: 'dvw',\n\t\tlabel: isWeb ? 'dvw' : __( 'Dynamic viewport width (dvw)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width (dvw)' ),\n\t\tstep: 0.1,\n\t},\n\tdvh: {\n\t\tvalue: 'dvh',\n\t\tlabel: isWeb ? 'dvh' : __( 'Dynamic viewport height (dvh)' ),\n\t\ta11yLabel: __( 'Dynamic viewport height (dvh)' ),\n\t\tstep: 0.1,\n\t},\n\tdvi: {\n\t\tvalue: 'dvi',\n\t\tlabel: isWeb ? 'dvi' : __( 'Dynamic viewport width or height (dvi)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvi)' ),\n\t\tstep: 0.1,\n\t},\n\tdvb: {\n\t\tvalue: 'dvb',\n\t\tlabel: isWeb ? 'dvb' : __( 'Dynamic viewport width or height (dvb)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvb)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmin: {\n\t\tvalue: 'dvmin',\n\t\tlabel: isWeb\n\t\t\t? 'dvmin'\n\t\t\t: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\ta11yLabel: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmax: {\n\t\tvalue: 'dvmax',\n\t\tlabel: isWeb\n\t\t\t? 'dvmax'\n\t\t\t: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\ta11yLabel: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmax: {\n\t\tvalue: 'svmax',\n\t\tlabel: isWeb\n\t\t\t? 'svmax'\n\t\t\t: __( 'Small viewport largest dimension (svmax)' ),\n\t\ta11yLabel: __( 'Small viewport largest dimension (svmax)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmax: {\n\t\tvalue: 'lvmax',\n\t\tlabel: isWeb\n\t\t\t? 'lvmax'\n\t\t\t: __( 'Large viewport largest dimension (lvmax)' ),\n\t\ta11yLabel: __( 'Large viewport largest dimension (lvmax)' ),\n\t\tstep: 0.1,\n\t},\n};\n\n/**\n * An array of all available CSS length units.\n */\nexport const ALL_CSS_UNITS = Object.values( allUnits );\n\n/**\n * Units of measurements. `a11yLabel` is used by screenreaders.\n */\nexport const CSS_UNITS = [\n\tallUnits.px,\n\tallUnits[ '%' ],\n\tallUnits.em,\n\tallUnits.rem,\n\tallUnits.vw,\n\tallUnits.vh,\n];\n\nexport const DEFAULT_UNIT = allUnits.px;\n\n/**\n * Handles legacy value + unit handling.\n * This component use to manage both incoming value and units separately.\n *\n * Moving forward, ideally the value should be a string that contains both\n * the value and unit, example: '10px'\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param fallbackUnit The unit used as a fallback, if not unit is detected in the `value`\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parse\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function getParsedQuantityAndUnit(\n\trawValue?: string | number,\n\tfallbackUnit?: string,\n\tallowedUnits?: WPUnitControlUnit[]\n): [ number | undefined, string | undefined ] {\n\tconst initialValue = fallbackUnit\n\t\t? `${ rawValue ?? '' }${ fallbackUnit }`\n\t\t: rawValue;\n\n\treturn parseQuantityAndUnitFromRawValue( initialValue, allowedUnits );\n}\n\n/**\n * Checks if units are defined.\n *\n * @param units List of units.\n * @return Whether the list actually contains any units.\n */\nexport function hasUnits(\n\tunits?: WPUnitControlUnit[]\n): units is WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( units ) && !! units.length;\n}\n\n/**\n * Parses a quantity and unit from a raw string value, given a list of allowed\n * units and otherwise falling back to the default unit.\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parsed\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function parseQuantityAndUnitFromRawValue(\n\trawValue?: string | number,\n\tallowedUnits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): [ number | undefined, string | undefined ] {\n\tlet trimmedValue;\n\tlet quantityToReturn;\n\n\tif ( typeof rawValue !== 'undefined' || rawValue === null ) {\n\t\ttrimmedValue = `${ rawValue }`.trim();\n\t\tconst parsedQuantity = parseFloat( trimmedValue );\n\t\tquantityToReturn = ! isFinite( parsedQuantity )\n\t\t\t? undefined\n\t\t\t: parsedQuantity;\n\t}\n\n\tconst unitMatch = trimmedValue?.match( /[\\d.\\-\\+]*\\s*(.*)/ );\n\tconst matchedUnit = unitMatch?.[ 1 ]?.toLowerCase();\n\tlet unitToReturn: string | undefined;\n\tif ( hasUnits( allowedUnits ) ) {\n\t\tconst match = allowedUnits.find(\n\t\t\t( item ) => item.value === matchedUnit\n\t\t);\n\t\tunitToReturn = match?.value;\n\t} else {\n\t\tunitToReturn = DEFAULT_UNIT.value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Parses quantity and unit from a raw value. Validates parsed value, using fallback\n * value if invalid.\n *\n * @param rawValue The next value.\n * @param allowedUnits Units to derive from.\n * @param fallbackQuantity The fallback quantity, used in case it's not possible to parse a valid quantity from the raw value.\n * @param fallbackUnit The fallback unit, used in case it's not possible to parse a valid unit from the raw value.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly, and the `fallbackQuantity` was also `undefined`. The\n * unit can be `undefined` only if the unit parsed from the raw value could not be matched against\n * the list of allowed units, the `fallbackQuantity` is also `undefined` and the list of\n * `allowedUnits` is passed empty.\n */\nexport function getValidParsedQuantityAndUnit(\n\trawValue: string | number,\n\tallowedUnits?: WPUnitControlUnit[],\n\tfallbackQuantity?: number,\n\tfallbackUnit?: string\n): [ number | undefined, string | undefined ] {\n\tconst [ parsedQuantity, parsedUnit ] = parseQuantityAndUnitFromRawValue(\n\t\trawValue,\n\t\tallowedUnits\n\t);\n\n\t// The parsed value from `parseQuantityAndUnitFromRawValue` should now be\n\t// either a real number or undefined. If undefined, use the fallback value.\n\tconst quantityToReturn = parsedQuantity ?? fallbackQuantity;\n\n\t// If no unit is parsed from the raw value, or if the fallback unit is not\n\t// defined, use the first value from the list of allowed units as fallback.\n\tlet unitToReturn = parsedUnit || fallbackUnit;\n\n\tif ( ! unitToReturn && hasUnits( allowedUnits ) ) {\n\t\tunitToReturn = allowedUnits[ 0 ].value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Takes a unit value and finds the matching accessibility label for the\n * unit abbreviation.\n *\n * @param unit Unit value (example: `px`)\n * @return a11y label for the unit abbreviation\n */\nexport function getAccessibleLabelForUnit( unit: string ): string | undefined {\n\tconst match = ALL_CSS_UNITS.find( ( item ) => item.value === unit );\n\treturn match?.a11yLabel ? match?.a11yLabel : match?.value;\n}\n\n/**\n * Filters available units based on values defined a list of allowed unit values.\n *\n * @param allowedUnitValues Collection of allowed unit value strings.\n * @param availableUnits Collection of available unit objects.\n * @return Filtered units.\n */\nexport function filterUnitsWithSettings(\n\tallowedUnitValues: string[] = [],\n\tavailableUnits: WPUnitControlUnit[]\n): WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( availableUnits )\n\t\t? availableUnits.filter( ( unit ) =>\n\t\t\t\tallowedUnitValues.includes( unit.value )\n\t\t )\n\t\t: [];\n}\n\n/**\n * Custom hook to retrieve and consolidate units setting from add_theme_support().\n * TODO: ideally this hook shouldn't be needed\n * https://github.com/WordPress/gutenberg/pull/31822#discussion_r633280823\n *\n * @param args An object containing units, settingPath & defaultUnits.\n * @param args.units Collection of all potentially available units.\n * @param args.availableUnits Collection of unit value strings for filtering available units.\n * @param args.defaultValues Collection of default values for defined units. Example: `{ px: 350, em: 15 }`.\n *\n * @return Filtered list of units, with their default values updated following the `defaultValues`\n * argument's property.\n */\nexport const useCustomUnits = ( {\n\tunits = ALL_CSS_UNITS,\n\tavailableUnits = [],\n\tdefaultValues,\n}: {\n\tunits?: WPUnitControlUnit[];\n\tavailableUnits?: string[];\n\tdefaultValues?: Record< string, number >;\n} ): WPUnitControlUnit[] => {\n\tconst customUnitsToReturn = filterUnitsWithSettings(\n\t\tavailableUnits,\n\t\tunits\n\t);\n\n\tif ( defaultValues ) {\n\t\tcustomUnitsToReturn.forEach( ( unit, i ) => {\n\t\t\tif ( defaultValues[ unit.value ] ) {\n\t\t\t\tconst [ parsedDefaultValue ] = parseQuantityAndUnitFromRawValue(\n\t\t\t\t\tdefaultValues[ unit.value ]\n\t\t\t\t);\n\n\t\t\t\tcustomUnitsToReturn[ i ].default = parsedDefaultValue;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn customUnitsToReturn;\n};\n\n/**\n * Get available units with the unit for the currently selected value\n * prepended if it is not available in the list of units.\n *\n * This is useful to ensure that the current value's unit is always\n * accurately displayed in the UI, even if the intention is to hide\n * the availability of that unit.\n *\n * @param rawValue Selected value to parse.\n * @param legacyUnit Legacy unit value, if rawValue needs it appended.\n * @param units List of available units.\n *\n * @return A collection of units containing the unit for the current value.\n */\nexport function getUnitsWithCurrentUnit(\n\trawValue?: string | number,\n\tlegacyUnit?: string,\n\tunits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): WPUnitControlUnit[] {\n\tconst unitsToReturn = Array.isArray( units ) ? [ ...units ] : [];\n\tconst [ , currentUnit ] = getParsedQuantityAndUnit(\n\t\trawValue,\n\t\tlegacyUnit,\n\t\tALL_CSS_UNITS\n\t);\n\n\tif (\n\t\tcurrentUnit &&\n\t\t! unitsToReturn.some( ( unit ) => unit.value === currentUnit )\n\t) {\n\t\tif ( allUnits[ currentUnit ] ) {\n\t\t\tunitsToReturn.unshift( allUnits[ currentUnit ] );\n\t\t}\n\t}\n\n\treturn unitsToReturn;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__","_x","Platform","isWeb","OS","allUnits","px","value","label","a11yLabel","step","em","rem","vw","vh","vmin","vmax","ch","ex","cm","mm","in","pc","pt","svw","svh","svi","svb","svmin","lvw","lvh","lvi","lvb","lvmin","dvw","dvh","dvi","dvb","dvmin","dvmax","svmax","lvmax","ALL_CSS_UNITS","Object","values","CSS_UNITS","DEFAULT_UNIT","getParsedQuantityAndUnit","rawValue","fallbackUnit","allowedUnits","initialValue","parseQuantityAndUnitFromRawValue","hasUnits","units","Array","isArray","length","trimmedValue","quantityToReturn","trim","parsedQuantity","parseFloat","isFinite","undefined","unitMatch","match","matchedUnit","toLowerCase","unitToReturn","find","item","getValidParsedQuantityAndUnit","fallbackQuantity","parsedUnit","getAccessibleLabelForUnit","unit","filterUnitsWithSettings","allowedUnitValues","availableUnits","filter","includes","useCustomUnits","defaultValues","customUnitsToReturn","map","defaultValue","default","getUnitsWithCurrentUnit","legacyUnit","unitsToReturn","currentUnit","some","unshift"],"sources":["@wordpress/components/src/unit-control/utils.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WPUnitControlUnit } from './types';\n\nconst isWeb = Platform.OS === 'web';\n\nconst allUnits: Record< string, WPUnitControlUnit > = {\n\tpx: {\n\t\tvalue: 'px',\n\t\tlabel: isWeb ? 'px' : __( 'Pixels (px)' ),\n\t\ta11yLabel: __( 'Pixels (px)' ),\n\t\tstep: 1,\n\t},\n\t'%': {\n\t\tvalue: '%',\n\t\tlabel: isWeb ? '%' : __( 'Percentage (%)' ),\n\t\ta11yLabel: __( 'Percent (%)' ),\n\t\tstep: 0.1,\n\t},\n\tem: {\n\t\tvalue: 'em',\n\t\tlabel: isWeb ? 'em' : __( 'Relative to parent font size (em)' ),\n\t\ta11yLabel: _x( 'ems', 'Relative to parent font size (em)' ),\n\t\tstep: 0.01,\n\t},\n\trem: {\n\t\tvalue: 'rem',\n\t\tlabel: isWeb ? 'rem' : __( 'Relative to root font size (rem)' ),\n\t\ta11yLabel: _x( 'rems', 'Relative to root font size (rem)' ),\n\t\tstep: 0.01,\n\t},\n\tvw: {\n\t\tvalue: 'vw',\n\t\tlabel: isWeb ? 'vw' : __( 'Viewport width (vw)' ),\n\t\ta11yLabel: __( 'Viewport width (vw)' ),\n\t\tstep: 0.1,\n\t},\n\tvh: {\n\t\tvalue: 'vh',\n\t\tlabel: isWeb ? 'vh' : __( 'Viewport height (vh)' ),\n\t\ta11yLabel: __( 'Viewport height (vh)' ),\n\t\tstep: 0.1,\n\t},\n\tvmin: {\n\t\tvalue: 'vmin',\n\t\tlabel: isWeb ? 'vmin' : __( 'Viewport smallest dimension (vmin)' ),\n\t\ta11yLabel: __( 'Viewport smallest dimension (vmin)' ),\n\t\tstep: 0.1,\n\t},\n\tvmax: {\n\t\tvalue: 'vmax',\n\t\tlabel: isWeb ? 'vmax' : __( 'Viewport largest dimension (vmax)' ),\n\t\ta11yLabel: __( 'Viewport largest dimension (vmax)' ),\n\t\tstep: 0.1,\n\t},\n\tch: {\n\t\tvalue: 'ch',\n\t\tlabel: isWeb ? 'ch' : __( 'Width of the zero (0) character (ch)' ),\n\t\ta11yLabel: __( 'Width of the zero (0) character (ch)' ),\n\t\tstep: 0.01,\n\t},\n\tex: {\n\t\tvalue: 'ex',\n\t\tlabel: isWeb ? 'ex' : __( 'x-height of the font (ex)' ),\n\t\ta11yLabel: __( 'x-height of the font (ex)' ),\n\t\tstep: 0.01,\n\t},\n\tcm: {\n\t\tvalue: 'cm',\n\t\tlabel: isWeb ? 'cm' : __( 'Centimeters (cm)' ),\n\t\ta11yLabel: __( 'Centimeters (cm)' ),\n\t\tstep: 0.001,\n\t},\n\tmm: {\n\t\tvalue: 'mm',\n\t\tlabel: isWeb ? 'mm' : __( 'Millimeters (mm)' ),\n\t\ta11yLabel: __( 'Millimeters (mm)' ),\n\t\tstep: 0.1,\n\t},\n\tin: {\n\t\tvalue: 'in',\n\t\tlabel: isWeb ? 'in' : __( 'Inches (in)' ),\n\t\ta11yLabel: __( 'Inches (in)' ),\n\t\tstep: 0.001,\n\t},\n\tpc: {\n\t\tvalue: 'pc',\n\t\tlabel: isWeb ? 'pc' : __( 'Picas (pc)' ),\n\t\ta11yLabel: __( 'Picas (pc)' ),\n\t\tstep: 1,\n\t},\n\tpt: {\n\t\tvalue: 'pt',\n\t\tlabel: isWeb ? 'pt' : __( 'Points (pt)' ),\n\t\ta11yLabel: __( 'Points (pt)' ),\n\t\tstep: 1,\n\t},\n\tsvw: {\n\t\tvalue: 'svw',\n\t\tlabel: isWeb ? 'svw' : __( 'Small viewport width (svw)' ),\n\t\ta11yLabel: __( 'Small viewport width (svw)' ),\n\t\tstep: 0.1,\n\t},\n\tsvh: {\n\t\tvalue: 'svh',\n\t\tlabel: isWeb ? 'svh' : __( 'Small viewport height (svh)' ),\n\t\ta11yLabel: __( 'Small viewport height (svh)' ),\n\t\tstep: 0.1,\n\t},\n\tsvi: {\n\t\tvalue: 'svi',\n\t\tlabel: isWeb\n\t\t\t? 'svi'\n\t\t\t: __( 'Viewport smallest size in the inline direction (svi)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svi)' ),\n\t\tstep: 0.1,\n\t},\n\tsvb: {\n\t\tvalue: 'svb',\n\t\tlabel: isWeb\n\t\t\t? 'svb'\n\t\t\t: __( 'Viewport smallest size in the block direction (svb)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svb)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmin: {\n\t\tvalue: 'svmin',\n\t\tlabel: isWeb\n\t\t\t? 'svmin'\n\t\t\t: __( 'Small viewport smallest dimension (svmin)' ),\n\t\ta11yLabel: __( 'Small viewport smallest dimension (svmin)' ),\n\t\tstep: 0.1,\n\t},\n\tlvw: {\n\t\tvalue: 'lvw',\n\t\tlabel: isWeb ? 'lvw' : __( 'Large viewport width (lvw)' ),\n\t\ta11yLabel: __( 'Large viewport width (lvw)' ),\n\t\tstep: 0.1,\n\t},\n\tlvh: {\n\t\tvalue: 'lvh',\n\t\tlabel: isWeb ? 'lvh' : __( 'Large viewport height (lvh)' ),\n\t\ta11yLabel: __( 'Large viewport height (lvh)' ),\n\t\tstep: 0.1,\n\t},\n\tlvi: {\n\t\tvalue: 'lvi',\n\t\tlabel: isWeb ? 'lvi' : __( 'Large viewport width or height (lvi)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvi)' ),\n\t\tstep: 0.1,\n\t},\n\tlvb: {\n\t\tvalue: 'lvb',\n\t\tlabel: isWeb ? 'lvb' : __( 'Large viewport width or height (lvb)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvb)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmin: {\n\t\tvalue: 'lvmin',\n\t\tlabel: isWeb\n\t\t\t? 'lvmin'\n\t\t\t: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\ta11yLabel: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvw: {\n\t\tvalue: 'dvw',\n\t\tlabel: isWeb ? 'dvw' : __( 'Dynamic viewport width (dvw)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width (dvw)' ),\n\t\tstep: 0.1,\n\t},\n\tdvh: {\n\t\tvalue: 'dvh',\n\t\tlabel: isWeb ? 'dvh' : __( 'Dynamic viewport height (dvh)' ),\n\t\ta11yLabel: __( 'Dynamic viewport height (dvh)' ),\n\t\tstep: 0.1,\n\t},\n\tdvi: {\n\t\tvalue: 'dvi',\n\t\tlabel: isWeb ? 'dvi' : __( 'Dynamic viewport width or height (dvi)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvi)' ),\n\t\tstep: 0.1,\n\t},\n\tdvb: {\n\t\tvalue: 'dvb',\n\t\tlabel: isWeb ? 'dvb' : __( 'Dynamic viewport width or height (dvb)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvb)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmin: {\n\t\tvalue: 'dvmin',\n\t\tlabel: isWeb\n\t\t\t? 'dvmin'\n\t\t\t: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\ta11yLabel: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmax: {\n\t\tvalue: 'dvmax',\n\t\tlabel: isWeb\n\t\t\t? 'dvmax'\n\t\t\t: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\ta11yLabel: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmax: {\n\t\tvalue: 'svmax',\n\t\tlabel: isWeb\n\t\t\t? 'svmax'\n\t\t\t: __( 'Small viewport largest dimension (svmax)' ),\n\t\ta11yLabel: __( 'Small viewport largest dimension (svmax)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmax: {\n\t\tvalue: 'lvmax',\n\t\tlabel: isWeb\n\t\t\t? 'lvmax'\n\t\t\t: __( 'Large viewport largest dimension (lvmax)' ),\n\t\ta11yLabel: __( 'Large viewport largest dimension (lvmax)' ),\n\t\tstep: 0.1,\n\t},\n};\n\n/**\n * An array of all available CSS length units.\n */\nexport const ALL_CSS_UNITS = Object.values( allUnits );\n\n/**\n * Units of measurements. `a11yLabel` is used by screenreaders.\n */\nexport const CSS_UNITS = [\n\tallUnits.px,\n\tallUnits[ '%' ],\n\tallUnits.em,\n\tallUnits.rem,\n\tallUnits.vw,\n\tallUnits.vh,\n];\n\nexport const DEFAULT_UNIT = allUnits.px;\n\n/**\n * Handles legacy value + unit handling.\n * This component use to manage both incoming value and units separately.\n *\n * Moving forward, ideally the value should be a string that contains both\n * the value and unit, example: '10px'\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param fallbackUnit The unit used as a fallback, if not unit is detected in the `value`\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parse\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function getParsedQuantityAndUnit(\n\trawValue?: string | number,\n\tfallbackUnit?: string,\n\tallowedUnits?: WPUnitControlUnit[]\n): [ number | undefined, string | undefined ] {\n\tconst initialValue = fallbackUnit\n\t\t? `${ rawValue ?? '' }${ fallbackUnit }`\n\t\t: rawValue;\n\n\treturn parseQuantityAndUnitFromRawValue( initialValue, allowedUnits );\n}\n\n/**\n * Checks if units are defined.\n *\n * @param units List of units.\n * @return Whether the list actually contains any units.\n */\nexport function hasUnits(\n\tunits?: WPUnitControlUnit[]\n): units is WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( units ) && !! units.length;\n}\n\n/**\n * Parses a quantity and unit from a raw string value, given a list of allowed\n * units and otherwise falling back to the default unit.\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parsed\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function parseQuantityAndUnitFromRawValue(\n\trawValue?: string | number,\n\tallowedUnits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): [ number | undefined, string | undefined ] {\n\tlet trimmedValue;\n\tlet quantityToReturn;\n\n\tif ( typeof rawValue !== 'undefined' || rawValue === null ) {\n\t\ttrimmedValue = `${ rawValue }`.trim();\n\t\tconst parsedQuantity = parseFloat( trimmedValue );\n\t\tquantityToReturn = ! isFinite( parsedQuantity )\n\t\t\t? undefined\n\t\t\t: parsedQuantity;\n\t}\n\n\tconst unitMatch = trimmedValue?.match( /[\\d.\\-\\+]*\\s*(.*)/ );\n\tconst matchedUnit = unitMatch?.[ 1 ]?.toLowerCase();\n\tlet unitToReturn: string | undefined;\n\tif ( hasUnits( allowedUnits ) ) {\n\t\tconst match = allowedUnits.find(\n\t\t\t( item ) => item.value === matchedUnit\n\t\t);\n\t\tunitToReturn = match?.value;\n\t} else {\n\t\tunitToReturn = DEFAULT_UNIT.value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Parses quantity and unit from a raw value. Validates parsed value, using fallback\n * value if invalid.\n *\n * @param rawValue The next value.\n * @param allowedUnits Units to derive from.\n * @param fallbackQuantity The fallback quantity, used in case it's not possible to parse a valid quantity from the raw value.\n * @param fallbackUnit The fallback unit, used in case it's not possible to parse a valid unit from the raw value.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly, and the `fallbackQuantity` was also `undefined`. The\n * unit can be `undefined` only if the unit parsed from the raw value could not be matched against\n * the list of allowed units, the `fallbackQuantity` is also `undefined` and the list of\n * `allowedUnits` is passed empty.\n */\nexport function getValidParsedQuantityAndUnit(\n\trawValue: string | number,\n\tallowedUnits?: WPUnitControlUnit[],\n\tfallbackQuantity?: number,\n\tfallbackUnit?: string\n): [ number | undefined, string | undefined ] {\n\tconst [ parsedQuantity, parsedUnit ] = parseQuantityAndUnitFromRawValue(\n\t\trawValue,\n\t\tallowedUnits\n\t);\n\n\t// The parsed value from `parseQuantityAndUnitFromRawValue` should now be\n\t// either a real number or undefined. If undefined, use the fallback value.\n\tconst quantityToReturn = parsedQuantity ?? fallbackQuantity;\n\n\t// If no unit is parsed from the raw value, or if the fallback unit is not\n\t// defined, use the first value from the list of allowed units as fallback.\n\tlet unitToReturn = parsedUnit || fallbackUnit;\n\n\tif ( ! unitToReturn && hasUnits( allowedUnits ) ) {\n\t\tunitToReturn = allowedUnits[ 0 ].value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Takes a unit value and finds the matching accessibility label for the\n * unit abbreviation.\n *\n * @param unit Unit value (example: `px`)\n * @return a11y label for the unit abbreviation\n */\nexport function getAccessibleLabelForUnit( unit: string ): string | undefined {\n\tconst match = ALL_CSS_UNITS.find( ( item ) => item.value === unit );\n\treturn match?.a11yLabel ? match?.a11yLabel : match?.value;\n}\n\n/**\n * Filters available units based on values defined a list of allowed unit values.\n *\n * @param allowedUnitValues Collection of allowed unit value strings.\n * @param availableUnits Collection of available unit objects.\n * @return Filtered units.\n */\nexport function filterUnitsWithSettings(\n\tallowedUnitValues: string[] = [],\n\tavailableUnits: WPUnitControlUnit[]\n): WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( availableUnits )\n\t\t? availableUnits.filter( ( unit ) =>\n\t\t\t\tallowedUnitValues.includes( unit.value )\n\t\t )\n\t\t: [];\n}\n\n/**\n * Custom hook to retrieve and consolidate units setting from add_theme_support().\n * TODO: ideally this hook shouldn't be needed\n * https://github.com/WordPress/gutenberg/pull/31822#discussion_r633280823\n *\n * @param args An object containing units, settingPath & defaultUnits.\n * @param args.units Collection of all potentially available units.\n * @param args.availableUnits Collection of unit value strings for filtering available units.\n * @param args.defaultValues Collection of default values for defined units. Example: `{ px: 350, em: 15 }`.\n *\n * @return Filtered list of units, with their default values updated following the `defaultValues`\n * argument's property.\n */\nexport const useCustomUnits = ( {\n\tunits = ALL_CSS_UNITS,\n\tavailableUnits = [],\n\tdefaultValues,\n}: {\n\tunits?: WPUnitControlUnit[];\n\tavailableUnits?: string[];\n\tdefaultValues?: Record< string, number >;\n} ): WPUnitControlUnit[] => {\n\tconst customUnitsToReturn = filterUnitsWithSettings(\n\t\tavailableUnits,\n\t\tunits\n\t);\n\n\tif ( ! defaultValues ) {\n\t\treturn customUnitsToReturn;\n\t}\n\n\treturn customUnitsToReturn.map( ( unit ) => {\n\t\tconst [ defaultValue ] = defaultValues[ unit.value ]\n\t\t\t? parseQuantityAndUnitFromRawValue( defaultValues[ unit.value ] )\n\t\t\t: [];\n\t\treturn { ...unit, default: defaultValue };\n\t} );\n};\n\n/**\n * Get available units with the unit for the currently selected value\n * prepended if it is not available in the list of units.\n *\n * This is useful to ensure that the current value's unit is always\n * accurately displayed in the UI, even if the intention is to hide\n * the availability of that unit.\n *\n * @param rawValue Selected value to parse.\n * @param legacyUnit Legacy unit value, if rawValue needs it appended.\n * @param units List of available units.\n *\n * @return A collection of units containing the unit for the current value.\n */\nexport function getUnitsWithCurrentUnit(\n\trawValue?: string | number,\n\tlegacyUnit?: string,\n\tunits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): WPUnitControlUnit[] {\n\tconst unitsToReturn = Array.isArray( units ) ? [ ...units ] : [];\n\tconst [ , currentUnit ] = getParsedQuantityAndUnit(\n\t\trawValue,\n\t\tlegacyUnit,\n\t\tALL_CSS_UNITS\n\t);\n\n\tif (\n\t\tcurrentUnit &&\n\t\t! unitsToReturn.some( ( unit ) => unit.value === currentUnit )\n\t) {\n\t\tif ( allUnits[ currentUnit ] ) {\n\t\t\tunitsToReturn.unshift( allUnits[ currentUnit ] );\n\t\t}\n\t}\n\n\treturn unitsToReturn;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,16 @@
1
1
  /**
2
- * A higher-order function that wraps a keydown event handler to ensure it is not an IME event.
2
+ * A higher-order function that wraps a keyboard event handler to ensure it is not an IME event.
3
3
  *
4
4
  * In CJK languages, an IME (Input Method Editor) is used to input complex characters.
5
- * During an IME composition, keydown events (e.g. Enter or Escape) can be fired
5
+ * During an IME composition, keyboard events (e.g. Enter or Escape) can be fired
6
6
  * which are intended to control the IME and not the application.
7
7
  * These events should be ignored by any application logic.
8
8
  *
9
- * @param keydownHandler The keydown event handler to execute after ensuring it was not an IME event.
9
+ * @param handler The keyboard event handler to execute after ensuring it was not an IME event.
10
10
  *
11
11
  * @return A wrapped version of the given event handler that ignores IME events.
12
12
  */
13
- export function withIgnoreIMEEvents(keydownHandler) {
13
+ export function withIgnoreIMEEvents(handler) {
14
14
  return event => {
15
15
  const {
16
16
  isComposing
@@ -22,7 +22,7 @@ export function withIgnoreIMEEvents(keydownHandler) {
22
22
  event.keyCode === 229) {
23
23
  return;
24
24
  }
25
- keydownHandler(event);
25
+ handler(event);
26
26
  };
27
27
  }
28
28
  //# sourceMappingURL=with-ignore-ime-events.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["withIgnoreIMEEvents","keydownHandler","event","isComposing","nativeEvent","keyCode"],"sources":["@wordpress/components/src/utils/with-ignore-ime-events.ts"],"sourcesContent":["/**\n * A higher-order function that wraps a keydown event handler to ensure it is not an IME event.\n *\n * In CJK languages, an IME (Input Method Editor) is used to input complex characters.\n * During an IME composition, keydown events (e.g. Enter or Escape) can be fired\n * which are intended to control the IME and not the application.\n * These events should be ignored by any application logic.\n *\n * @param keydownHandler The keydown event handler to execute after ensuring it was not an IME event.\n *\n * @return A wrapped version of the given event handler that ignores IME events.\n */\nexport function withIgnoreIMEEvents<\n\tE extends React.KeyboardEvent | KeyboardEvent,\n>( keydownHandler: ( event: E ) => void ) {\n\treturn ( event: E ) => {\n\t\tconst { isComposing } =\n\t\t\t'nativeEvent' in event ? event.nativeEvent : event;\n\n\t\tif (\n\t\t\tisComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tkeydownHandler( event );\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CAEhCC,cAAoC,EAAG;EACzC,OAASC,KAAQ,IAAM;IACtB,MAAM;MAAEC;IAAY,CAAC,GACpB,aAAa,IAAID,KAAK,GAAGA,KAAK,CAACE,WAAW,GAAGF,KAAK;IAEnD,IACCC,WAAW;IACX;IACA;IACA;IACAD,KAAK,CAACG,OAAO,KAAK,GAAG,EACpB;MACD;IACD;IAEAJ,cAAc,CAAEC,KAAM,CAAC;EACxB,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["withIgnoreIMEEvents","handler","event","isComposing","nativeEvent","keyCode"],"sources":["@wordpress/components/src/utils/with-ignore-ime-events.ts"],"sourcesContent":["/**\n * A higher-order function that wraps a keyboard event handler to ensure it is not an IME event.\n *\n * In CJK languages, an IME (Input Method Editor) is used to input complex characters.\n * During an IME composition, keyboard events (e.g. Enter or Escape) can be fired\n * which are intended to control the IME and not the application.\n * These events should be ignored by any application logic.\n *\n * @param handler The keyboard event handler to execute after ensuring it was not an IME event.\n *\n * @return A wrapped version of the given event handler that ignores IME events.\n */\nexport function withIgnoreIMEEvents<\n\tE extends React.KeyboardEvent | KeyboardEvent,\n>( handler: ( event: E ) => void ) {\n\treturn ( event: E ) => {\n\t\tconst { isComposing } =\n\t\t\t'nativeEvent' in event ? event.nativeEvent : event;\n\n\t\tif (\n\t\t\tisComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\thandler( event );\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,mBAAmBA,CAEhCC,OAA6B,EAAG;EAClC,OAASC,KAAQ,IAAM;IACtB,MAAM;MAAEC;IAAY,CAAC,GACpB,aAAa,IAAID,KAAK,GAAGA,KAAK,CAACE,WAAW,GAAGF,KAAK;IAEnD,IACCC,WAAW;IACX;IACA;IACA;IACAD,KAAK,CAACG,OAAO,KAAK,GAAG,EACpB;MACD;IACD;IAEAJ,OAAO,CAAEC,KAAM,CAAC;EACjB,CAAC;AACF","ignoreList":[]}
@@ -1,16 +1,13 @@
1
1
  @charset "UTF-8";
2
- /**
3
- * Converts a hex value into the rgb equivalent.
4
- *
5
- * @param {string} hex - the hexadecimal value to convert
6
- * @return {string} comma separated rgb values
7
- */
8
2
  /**
9
3
  * Colors
10
4
  */
11
5
  /**
12
6
  * Breakpoints & Media Queries
13
7
  */
8
+ /**
9
+ * Colors
10
+ */
14
11
  /**
15
12
  * SCSS Variables.
16
13
  *
@@ -19,14 +16,50 @@
19
16
  * For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
20
17
  */
21
18
  /**
22
- * Converts a hex value into the rgb equivalent.
23
- *
24
- * @param {string} hex - the hexadecimal value to convert
25
- * @return {string} comma separated rgb values
26
- */
19
+ * Fonts & basic variables.
20
+ */
21
+ /**
22
+ * Typography
23
+ */
24
+ /**
25
+ * Grid System.
26
+ * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/
27
+ */
28
+ /**
29
+ * Radius scale.
30
+ */
31
+ /**
32
+ * Elevation scale.
33
+ */
34
+ /**
35
+ * Dimensions.
36
+ */
37
+ /**
38
+ * Mobile specific styles
39
+ */
40
+ /**
41
+ * Editor styles.
42
+ */
43
+ /**
44
+ * Block & Editor UI.
45
+ */
46
+ /**
47
+ * Block paddings.
48
+ */
49
+ /**
50
+ * React Native specific.
51
+ * These variables do not appear to be used anywhere else.
52
+ */
27
53
  /**
28
54
  * Colors
29
55
  */
56
+ /**
57
+ * SCSS Variables.
58
+ *
59
+ * Please use variables from this sheet to ensure consistency across the UI.
60
+ * Don't add to this sheet unless you're pretty sure the value will be reused in many places.
61
+ * For example, don't add rules to this sheet that affect block visuals. It's purely for UI.
62
+ */
30
63
  /**
31
64
  * Fonts & basic variables.
32
65
  */
@@ -62,6 +95,9 @@
62
95
  * React Native specific.
63
96
  * These variables do not appear to be used anywhere else.
64
97
  */
98
+ /**
99
+ * Breakpoints & Media Queries
100
+ */
65
101
  /**
66
102
  * Converts a hex value into the rgb equivalent.
67
103
  *
@@ -569,19 +605,19 @@ p + .components-button.is-tertiary {
569
605
  }
570
606
 
571
607
  .components-checkbox-control__input[type=checkbox] {
608
+ border: 1px solid #1e1e1e;
609
+ margin-left: 12px;
610
+ transition: none;
611
+ border-radius: 2px;
572
612
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
573
613
  padding: 6px 8px;
574
- box-shadow: 0 0 0 transparent;
575
- border-radius: 2px;
576
- border: 1px solid #949494;
577
614
  /* Fonts smaller than 16px causes mobile safari to zoom. */
578
615
  font-size: 16px;
579
616
  /* Override core line-height. To be reviewed. */
580
617
  line-height: normal;
581
- border: 1px solid #1e1e1e;
582
- margin-left: 12px;
583
- transition: none;
618
+ box-shadow: 0 0 0 transparent;
584
619
  border-radius: 2px;
620
+ border: 1px solid #949494;
585
621
  background: #fff;
586
622
  color: #1e1e1e;
587
623
  clear: none;
@@ -910,13 +946,13 @@ input.components-combobox-control__input[type=text]:focus {
910
946
  .components-combobox-control__suggestions-container {
911
947
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
912
948
  padding: 6px 8px;
913
- box-shadow: 0 0 0 transparent;
914
- border-radius: 2px;
915
- border: 1px solid #949494;
916
949
  /* Fonts smaller than 16px causes mobile safari to zoom. */
917
950
  font-size: 16px;
918
951
  /* Override core line-height. To be reviewed. */
919
952
  line-height: normal;
953
+ box-shadow: 0 0 0 transparent;
954
+ border-radius: 2px;
955
+ border: 1px solid #949494;
920
956
  display: flex;
921
957
  flex-wrap: wrap;
922
958
  align-items: flex-start;
@@ -1298,6 +1334,9 @@ body.is-dragging-components-draggable {
1298
1334
  background: linear-gradient(45deg, transparent 48%, #ddd 48%, #ddd 52%, transparent 52%);
1299
1335
  color: transparent;
1300
1336
  }
1337
+ .components-duotone-picker__color-indicator > .components-button:hover:not(:disabled):not([aria-disabled=true]) {
1338
+ color: transparent;
1339
+ }
1301
1340
  .components-duotone-picker__color-indicator > .components-button:not([aria-disabled=true]):active {
1302
1341
  color: transparent;
1303
1342
  }
@@ -1428,13 +1467,13 @@ body.is-dragging-components-draggable {
1428
1467
  .components-form-token-field__input-container {
1429
1468
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
1430
1469
  padding: 6px 8px;
1431
- box-shadow: 0 0 0 transparent;
1432
- border-radius: 2px;
1433
- border: 1px solid #949494;
1434
1470
  /* Fonts smaller than 16px causes mobile safari to zoom. */
1435
1471
  font-size: 16px;
1436
1472
  /* Override core line-height. To be reviewed. */
1437
1473
  line-height: normal;
1474
+ box-shadow: 0 0 0 transparent;
1475
+ border-radius: 2px;
1476
+ border: 1px solid #949494;
1438
1477
  width: 100%;
1439
1478
  padding: 0;
1440
1479
  cursor: text;
@@ -2379,13 +2418,13 @@ body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right
2379
2418
  .components-placeholder__input[type=url] {
2380
2419
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
2381
2420
  padding: 6px 8px;
2382
- box-shadow: 0 0 0 transparent;
2383
- border-radius: 2px;
2384
- border: 1px solid #949494;
2385
2421
  /* Fonts smaller than 16px causes mobile safari to zoom. */
2386
2422
  font-size: 16px;
2387
2423
  /* Override core line-height. To be reviewed. */
2388
2424
  line-height: normal;
2425
+ box-shadow: 0 0 0 transparent;
2426
+ border-radius: 2px;
2427
+ border: 1px solid #949494;
2389
2428
  flex: 1 1 auto;
2390
2429
  }
2391
2430
  @media not (prefers-reduced-motion) {
@@ -2659,15 +2698,6 @@ body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right
2659
2698
  .components-radio-control__input[type=radio] {
2660
2699
  grid-column: 1;
2661
2700
  grid-row: 1;
2662
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
2663
- padding: 6px 8px;
2664
- box-shadow: 0 0 0 transparent;
2665
- border-radius: 2px;
2666
- border: 1px solid #949494;
2667
- /* Fonts smaller than 16px causes mobile safari to zoom. */
2668
- font-size: 16px;
2669
- /* Override core line-height. To be reviewed. */
2670
- line-height: normal;
2671
2701
  border: 1px solid #1e1e1e;
2672
2702
  margin-left: 12px;
2673
2703
  transition: none;
@@ -2688,27 +2718,6 @@ body.rtl .components-panel__body-toggle.components-button .dashicons-arrow-right
2688
2718
  transition: box-shadow 0.1s linear;
2689
2719
  }
2690
2720
  }
2691
- @media (min-width: 600px) {
2692
- .components-radio-control__input[type=radio] {
2693
- font-size: 13px;
2694
- /* Override core line-height. To be reviewed. */
2695
- line-height: normal;
2696
- }
2697
- }
2698
- .components-radio-control__input[type=radio]:focus {
2699
- border-color: var(--wp-admin-theme-color);
2700
- box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);
2701
- outline: 2px solid transparent;
2702
- }
2703
- .components-radio-control__input[type=radio]::-webkit-input-placeholder {
2704
- color: rgba(30, 30, 30, 0.62);
2705
- }
2706
- .components-radio-control__input[type=radio]::-moz-placeholder {
2707
- color: rgba(30, 30, 30, 0.62);
2708
- }
2709
- .components-radio-control__input[type=radio]:-ms-input-placeholder {
2710
- color: rgba(30, 30, 30, 0.62);
2711
- }
2712
2721
  @media (min-width: 600px) {
2713
2722
  .components-radio-control__input[type=radio] {
2714
2723
  height: 16px;
@@ -3013,16 +3022,19 @@ body.lockscroll {
3013
3022
  cursor: pointer;
3014
3023
  }
3015
3024
 
3016
- .components-snackbar__action.components-button {
3025
+ .components-snackbar__action.components-button,
3026
+ .components-snackbar__action.components-external-link {
3017
3027
  margin-right: 32px;
3018
3028
  color: #fff;
3019
3029
  flex-shrink: 0;
3020
3030
  }
3021
- .components-snackbar__action.components-button:focus {
3031
+ .components-snackbar__action.components-button:focus,
3032
+ .components-snackbar__action.components-external-link:focus {
3022
3033
  box-shadow: none;
3023
3034
  outline: 1px dotted #fff;
3024
3035
  }
3025
- .components-snackbar__action.components-button:hover {
3036
+ .components-snackbar__action.components-button:hover,
3037
+ .components-snackbar__action.components-external-link:hover {
3026
3038
  text-decoration: none;
3027
3039
  color: currentColor;
3028
3040
  }
@@ -3142,15 +3154,17 @@ body.lockscroll {
3142
3154
  width: 100%;
3143
3155
  height: 32px;
3144
3156
  margin: 0;
3157
+ background: var(--wp-components-color-background, #fff);
3158
+ color: var(--wp-components-color-foreground, #1e1e1e);
3145
3159
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
3146
3160
  padding: 6px 8px;
3147
- box-shadow: 0 0 0 transparent;
3148
- border-radius: 2px;
3149
- border: 1px solid #949494;
3150
3161
  /* Fonts smaller than 16px causes mobile safari to zoom. */
3151
3162
  font-size: 16px;
3152
3163
  /* Override core line-height. To be reviewed. */
3153
3164
  line-height: normal;
3165
+ box-shadow: 0 0 0 transparent;
3166
+ border-radius: 2px;
3167
+ border: 1px solid #949494;
3154
3168
  }
3155
3169
  @media not (prefers-reduced-motion) {
3156
3170
  .components-text-control__input,
@@ -3204,8 +3218,8 @@ body.lockscroll {
3204
3218
  .components-text-control__input[type=email]:focus,
3205
3219
  .components-text-control__input[type=month]:focus,
3206
3220
  .components-text-control__input[type=number]:focus {
3207
- border-color: var(--wp-admin-theme-color);
3208
- box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);
3221
+ border-color: var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
3222
+ box-shadow: 0 0 0 0.5px var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
3209
3223
  outline: 2px solid transparent;
3210
3224
  }
3211
3225
  .components-text-control__input::-webkit-input-placeholder,