Skip to content

Commit 14902dd

Browse files
authored
postcss-normalize-display-values (#1759)
1 parent 5801fce commit 14902dd

8 files changed

Lines changed: 26 additions & 2 deletions

File tree

plugins/postcss-normalize-display-values/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changes to PostCSS Normalize Display Values
22

3+
### Unreleased (patch)
4+
5+
- Add `inline block` support
6+
37
### 4.0.0
48

59
_August 3, 2024_
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
"use strict";var e=require("postcss-value-parser"),l=new Map([["block,flex","flex"],["block,flow","block"],["block,flow-root","flow-root"],["block,grid","grid"],["block,table","table"],["inline,flex","inline-flex"],["inline,flow","inline"],["inline,flow,list-item","inline list-item"],["inline,flow-root","inline-block"],["inline,grid","inline-grid"],["inline,ruby","ruby"],["inline,table","inline-table"],["list-item,block,flow","list-item"],["ruby-base,flow","ruby-base"],["ruby-text,flow","ruby-text"],["run-in,flow","run-in"],["table-caption,flow","table-caption"],["table-cell,flow","table-cell"]]);function transform(n){if(!n.trim())return n;const{nodes:i}=e(n);if(i.length<=1)return n;const t=i.filter(e=>"word"===e.type).map(e=>e.value.toLowerCase());if(t.length<=1)return n;const o=l.get(t.join(","));return o||n}const n=/^display$/i,creator=e=>{const l=!("preserve"in Object(e))||Boolean(e?.preserve);return{postcssPlugin:"postcss-normalize-display-values",Declaration(e){if(!n.test(e.prop))return;const i=e.value;if(!i)return;const t=transform(i);e.value!==t&&(e.cloneBefore({value:t}),l||e.remove())}}};creator.postcss=!0,module.exports=creator;
1+
"use strict";var e=require("postcss-value-parser"),l=new Map([["block,flex","flex"],["block,flow","block"],["block,flow-root","flow-root"],["block,grid","grid"],["block,table","table"],["inline,block","inline-block"],["inline,flex","inline-flex"],["inline,flow","inline"],["inline,flow,list-item","inline list-item"],["inline,flow-root","inline-block"],["inline,grid","inline-grid"],["inline,ruby","ruby"],["inline,table","inline-table"],["list-item,block,flow","list-item"],["ruby-base,flow","ruby-base"],["ruby-text,flow","ruby-text"],["run-in,flow","run-in"],["table-caption,flow","table-caption"],["table-cell,flow","table-cell"]]);function transform(n){if(!n.trim())return n;const{nodes:i}=e(n);if(i.length<=1)return n;const t=i.filter(e=>"word"===e.type).map(e=>e.value.toLowerCase());if(t.length<=1)return n;const o=l.get(t.join(","));return o||n}const n=/^display$/i,i=/\b\s\b/,creator=e=>{const l=!("preserve"in Object(e))||Boolean(e?.preserve);return{postcssPlugin:"postcss-normalize-display-values",Declaration(e){if(!n.test(e.prop))return;const t=e.value;if(!t)return;if(!i.test(t))return;const o=transform(t);e.value!==o&&(e.cloneBefore({value:o}),l||e.remove())}}};creator.postcss=!0,module.exports=creator;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
import e from"postcss-value-parser";var l=new Map([["block,flex","flex"],["block,flow","block"],["block,flow-root","flow-root"],["block,grid","grid"],["block,table","table"],["inline,flex","inline-flex"],["inline,flow","inline"],["inline,flow,list-item","inline list-item"],["inline,flow-root","inline-block"],["inline,grid","inline-grid"],["inline,ruby","ruby"],["inline,table","inline-table"],["list-item,block,flow","list-item"],["ruby-base,flow","ruby-base"],["ruby-text,flow","ruby-text"],["run-in,flow","run-in"],["table-caption,flow","table-caption"],["table-cell,flow","table-cell"]]);function transform(n){if(!n.trim())return n;const{nodes:t}=e(n);if(t.length<=1)return n;const i=t.filter(e=>"word"===e.type).map(e=>e.value.toLowerCase());if(i.length<=1)return n;const o=l.get(i.join(","));return o||n}const n=/^display$/i,creator=e=>{const l=!("preserve"in Object(e))||Boolean(e?.preserve);return{postcssPlugin:"postcss-normalize-display-values",Declaration(e){if(!n.test(e.prop))return;const t=e.value;if(!t)return;const i=transform(t);e.value!==i&&(e.cloneBefore({value:i}),l||e.remove())}}};creator.postcss=!0;export{creator as default};
1+
import e from"postcss-value-parser";var l=new Map([["block,flex","flex"],["block,flow","block"],["block,flow-root","flow-root"],["block,grid","grid"],["block,table","table"],["inline,block","inline-block"],["inline,flex","inline-flex"],["inline,flow","inline"],["inline,flow,list-item","inline list-item"],["inline,flow-root","inline-block"],["inline,grid","inline-grid"],["inline,ruby","ruby"],["inline,table","inline-table"],["list-item,block,flow","list-item"],["ruby-base,flow","ruby-base"],["ruby-text,flow","ruby-text"],["run-in,flow","run-in"],["table-caption,flow","table-caption"],["table-cell,flow","table-cell"]]);function transform(n){if(!n.trim())return n;const{nodes:i}=e(n);if(i.length<=1)return n;const t=i.filter(e=>"word"===e.type).map(e=>e.value.toLowerCase());if(t.length<=1)return n;const o=l.get(t.join(","));return o||n}const n=/^display$/i,i=/\b\s\b/,creator=e=>{const l=!("preserve"in Object(e))||Boolean(e?.preserve);return{postcssPlugin:"postcss-normalize-display-values",Declaration(e){if(!n.test(e.prop))return;const t=e.value;if(!t)return;if(!i.test(t))return;const o=transform(t);e.value!==o&&(e.cloneBefore({value:o}),l||e.remove())}}};creator.postcss=!0;export{creator as default};

plugins/postcss-normalize-display-values/src/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ function transform(value: string): string {
3232

3333
const IS_DISPLAY_REGEX = /^display$/i;
3434

35+
const IS_MAYBE_MULTI_KEYWORD = /\b\s\b/;
36+
3537
/** postcss-normalize-display-values plugin options */
3638
export type pluginOptions = {
3739
/** Preserve the original notation. default: true */
@@ -53,6 +55,10 @@ const creator: PluginCreator<pluginOptions> = (opts?: pluginOptions) => {
5355
return;
5456
}
5557

58+
if (!IS_MAYBE_MULTI_KEYWORD.test(value)) {
59+
return;
60+
}
61+
5662
const result = transform(value);
5763
if (decl.value === result) {
5864
return;

plugins/postcss-normalize-display-values/src/mappings.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default new Map([
77
['block,flow-root', 'flow-root'],
88
['block,grid', 'grid'],
99
['block,table', 'table'],
10+
['inline,block', 'inline-block'],
1011
['inline,flex', 'inline-flex'],
1112
['inline,flow', 'inline'],
1213
['inline,flow,list-item', 'inline list-item'],

plugins/postcss-normalize-display-values/test/basic.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@
3434
display: inline flex;
3535
}
3636

37+
.inline-block {
38+
display: inline block;
39+
}
40+
3741
.block-grid {
3842
display: block grid;
3943
}

plugins/postcss-normalize-display-values/test/basic.expect.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@
4343
display: inline flex;
4444
}
4545

46+
.inline-block {
47+
display: inline-block;
48+
display: inline block;
49+
}
50+
4651
.block-grid {
4752
display: grid;
4853
display: block grid;

plugins/postcss-normalize-display-values/test/basic.preserve-false.expect.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@
3434
display: inline-flex;
3535
}
3636

37+
.inline-block {
38+
display: inline-block;
39+
}
40+
3741
.block-grid {
3842
display: grid;
3943
}

0 commit comments

Comments
 (0)