summaryrefslogtreecommitdiff
path: root/node_modules/@csstools/postcss-logical-resize
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@csstools/postcss-logical-resize')
-rw-r--r--node_modules/@csstools/postcss-logical-resize/CHANGELOG.md19
-rw-r--r--node_modules/@csstools/postcss-logical-resize/LICENSE.md18
-rw-r--r--node_modules/@csstools/postcss-logical-resize/README.md108
-rw-r--r--node_modules/@csstools/postcss-logical-resize/dist/index.cjs1
-rw-r--r--node_modules/@csstools/postcss-logical-resize/dist/index.d.ts11
-rw-r--r--node_modules/@csstools/postcss-logical-resize/dist/index.mjs1
-rw-r--r--node_modules/@csstools/postcss-logical-resize/dist/lib/clone-declaration.d.ts2
-rw-r--r--node_modules/@csstools/postcss-logical-resize/dist/lib/transform-resize.d.ts3
-rw-r--r--node_modules/@csstools/postcss-logical-resize/dist/lib/types.d.ts31
-rw-r--r--node_modules/@csstools/postcss-logical-resize/dist/utils/direction-flow-to-axes.d.ts2
-rw-r--r--node_modules/@csstools/postcss-logical-resize/package.json89
11 files changed, 285 insertions, 0 deletions
diff --git a/node_modules/@csstools/postcss-logical-resize/CHANGELOG.md b/node_modules/@csstools/postcss-logical-resize/CHANGELOG.md
new file mode 100644
index 00000000..5d9ea88f
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/CHANGELOG.md
@@ -0,0 +1,19 @@
+# Changes to PostCSS Logical Resize
+
+### 2.0.0
+
+_July 3, 2023_
+
+- Change license to `MIT-0` ([read more about this change in the blog post](https://preset-env.cssdb.org/blog/license-change/))
+
+### 1.0.1
+
+_January 28, 2023_
+
+- Improve `types` declaration in `package.json`
+
+### 1.0.0
+
+_January 21, 20223_
+
+- Initial version
diff --git a/node_modules/@csstools/postcss-logical-resize/LICENSE.md b/node_modules/@csstools/postcss-logical-resize/LICENSE.md
new file mode 100644
index 00000000..e8ae93b9
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/LICENSE.md
@@ -0,0 +1,18 @@
+MIT No Attribution (MIT-0)
+
+Copyright © CSSTools Contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the “Software”), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/node_modules/@csstools/postcss-logical-resize/README.md b/node_modules/@csstools/postcss-logical-resize/README.md
new file mode 100644
index 00000000..3e0d3a24
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/README.md
@@ -0,0 +1,108 @@
+# PostCSS Logical Resize [<img src="https://postcss.github.io/postcss/logo.svg" alt="PostCSS Logo" width="90" height="90" align="right">][PostCSS]
+
+[<img alt="npm version" src="https://img.shields.io/npm/v/@csstools/postcss-logical-resize.svg" height="20">][npm-url] [<img alt="CSS Standard Status" src="https://cssdb.org/images/badges/logical-resize.svg" height="20">][css-url] [<img alt="Build Status" src="https://github.com/csstools/postcss-plugins/workflows/test/badge.svg" height="20">][cli-url] [<img alt="Discord" src="https://shields.io/badge/Discord-5865F2?logo=discord&logoColor=white">][discord]
+
+[PostCSS Logical Resize] lets you use logical, rather than physical, values for `resize`, following the [CSS Logical Properties and Values] specification.
+
+```pcss
+.resize-block {
+ resize: block;
+}
+
+.resize-inline {
+ resize: inline;
+}
+
+/* becomes */
+
+.resize-block {
+ resize: vertical;
+}
+
+.resize-inline {
+ resize: horizontal;
+}
+```
+
+## Usage
+
+Add [PostCSS Logical Resize] to your project:
+
+```bash
+npm install postcss @csstools/postcss-logical-resize --save-dev
+```
+
+Use it as a [PostCSS] plugin:
+
+```js
+const postcss = require('postcss');
+const postcssLogicalResize = require('@csstools/postcss-logical-resize');
+
+postcss([
+ postcssLogicalResize(/* pluginOptions */)
+]).process(YOUR_CSS /*, processOptions */);
+```
+
+[PostCSS Logical Resize] runs in all Node environments, with special
+instructions for:
+
+- [Node](INSTALL.md#node)
+- [PostCSS CLI](INSTALL.md#postcss-cli)
+- [PostCSS Load Config](INSTALL.md#postcss-load-config)
+- [Webpack](INSTALL.md#webpack)
+- [Next.js](INSTALL.md#nextjs)
+- [Gulp](INSTALL.md#gulp)
+- [Grunt](INSTALL.md#grunt)
+
+## Options
+
+### blockDirection & inlineDirection
+
+The `blockDirection` and `inlineDirection` options allow you to specify the direction of the block and inline axes. The default values are `top-to-bottom` and `left-to-right` respectively which would match any latin language.
+
+You might want to tweak these values if you are using a different writing system, such as Arabic, Hebrew or Chinese for example.
+
+```js
+postcssLogicalResize({
+ blockDirection: 'right-to-left',
+ inlineDirection: 'top-to-bottom'
+})
+```
+
+```pcss
+.resize-block {
+ resize: block;
+}
+
+.resize-inline {
+ resize: inline;
+}
+
+/* becomes */
+
+.resize-block {
+ resize: horizontal;
+}
+
+.resize-inline {
+ resize: vertical;
+}
+```
+
+Each direction must be one of the following:
+
+- `top-to-bottom`
+- `bottom-to-top`
+- `left-to-right`
+- `right-to-left`
+
+You can't mix two vertical directions or two horizontal directions so for example `top-to-bottom` and `right-to-left` are valid, but `top-to-bottom` and `bottom-to-top` are not.
+
+[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test
+[css-url]: https://cssdb.org/#logical-resize
+[discord]: https://discord.gg/bUadyRwkJS
+[npm-url]: https://www.npmjs.com/package/@csstools/postcss-logical-resize
+
+[PostCSS]: https://github.com/postcss/postcss
+[PostCSS Logical Resize]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-resize
+[CSS Logical Properties and Values]: https://www.w3.org/TR/css-logical-1/
diff --git a/node_modules/@csstools/postcss-logical-resize/dist/index.cjs b/node_modules/@csstools/postcss-logical-resize/dist/index.cjs
new file mode 100644
index 00000000..6c1aaad1
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/dist/index.cjs
@@ -0,0 +1 @@
+"use strict";var o,t,e,i,n=require("postcss-value-parser");function cloneDeclaration(o,t,e){o.parent&&o.parent.some((o=>"decl"==o.type&&o.prop===e&&o.value===t))||o.cloneBefore({value:t,prop:e})}function transformResize(o){return t=>{const{prop:e,value:i}=t,r=n(i),c=o.inlineIsHorizontal?"horizontal":"vertical",s=o.inlineIsHorizontal?"vertical":"horizontal";r.nodes.forEach((o=>{if("word"===o.type){const t=o.value.toLowerCase();if("inline"===t)return void(o.value=c);"block"===t&&(o.value=s)}}));const l=r.toString();return l!==i&&(cloneDeclaration(t,l,e),!0)}}function directionFlowToAxes(o){switch(o){case e.TopToBottom:return[i.Top,i.Bottom];case e.BottomToTop:return[i.Bottom,i.Top];case e.RightToLeft:return[i.Right,i.Left];case e.LeftToRight:return[i.Left,i.Right]}}!function(o){o.Block="block",o.Inline="inline"}(o||(o={})),function(o){o.Start="start",o.End="end"}(t||(t={})),function(o){o.TopToBottom="top-to-bottom",o.BottomToTop="bottom-to-top",o.RightToLeft="right-to-left",o.LeftToRight="left-to-right"}(e||(e={})),function(o){o.Top="top",o.Right="right",o.Bottom="bottom",o.Left="left"}(i||(i={}));const creator=o=>{const t=Object.assign({blockDirection:e.TopToBottom,inlineDirection:e.LeftToRight},o),n=Object.values(e);if(!n.includes(t.blockDirection))throw new Error(`[postcss-logical-resize] "blockDirection" must be one of ${n.join(", ")}`);if(!n.includes(t.inlineDirection))throw new Error(`[postcss-logical-resize] "inlineDirection" must be one of ${n.join(", ")}`);const[r,c]=directionFlowToAxes(t.blockDirection),[s,l]=directionFlowToAxes(t.inlineDirection);if(!Object.values(i).every((o=>[r,c,s,l].includes(o))))throw new Error('[postcss-logical-resize] "blockDirection" and "inlineDirection" must be on separate axes');const a={block:[r,c],inline:[s,l],inlineIsHorizontal:[e.LeftToRight,e.RightToLeft].includes(t.inlineDirection)};return{postcssPlugin:"postcss-logical-resize",Declaration:{resize:(u=transformResize(a),(o,{result:t})=>{if(!u)return;let e=!1;try{e=u(o)}catch(e){return void o.warn(t,e.message)}e&&o.remove()})}};var u};creator.postcss=!0,module.exports=creator;
diff --git a/node_modules/@csstools/postcss-logical-resize/dist/index.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/index.d.ts
new file mode 100644
index 00000000..0cac31d0
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/dist/index.d.ts
@@ -0,0 +1,11 @@
+import type { PluginCreator } from 'postcss';
+import { DirectionFlow } from './lib/types';
+/** postcss-logical-resize plugin options */
+export type pluginOptions = {
+ /** Sets the direction for block. default: top-to-bottom */
+ blockDirection?: DirectionFlow;
+ /** Sets the direction for inline. default: left-to-right */
+ inlineDirection?: DirectionFlow;
+};
+declare const creator: PluginCreator<pluginOptions>;
+export default creator;
diff --git a/node_modules/@csstools/postcss-logical-resize/dist/index.mjs b/node_modules/@csstools/postcss-logical-resize/dist/index.mjs
new file mode 100644
index 00000000..5cffc5e7
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/dist/index.mjs
@@ -0,0 +1 @@
+import o from"postcss-value-parser";var t,e,i,n;function cloneDeclaration(o,t,e){o.parent&&o.parent.some((o=>"decl"==o.type&&o.prop===e&&o.value===t))||o.cloneBefore({value:t,prop:e})}function transformResize(t){return e=>{const{prop:i,value:n}=e,r=o(n),c=t.inlineIsHorizontal?"horizontal":"vertical",s=t.inlineIsHorizontal?"vertical":"horizontal";r.nodes.forEach((o=>{if("word"===o.type){const t=o.value.toLowerCase();if("inline"===t)return void(o.value=c);"block"===t&&(o.value=s)}}));const l=r.toString();return l!==n&&(cloneDeclaration(e,l,i),!0)}}function directionFlowToAxes(o){switch(o){case i.TopToBottom:return[n.Top,n.Bottom];case i.BottomToTop:return[n.Bottom,n.Top];case i.RightToLeft:return[n.Right,n.Left];case i.LeftToRight:return[n.Left,n.Right]}}!function(o){o.Block="block",o.Inline="inline"}(t||(t={})),function(o){o.Start="start",o.End="end"}(e||(e={})),function(o){o.TopToBottom="top-to-bottom",o.BottomToTop="bottom-to-top",o.RightToLeft="right-to-left",o.LeftToRight="left-to-right"}(i||(i={})),function(o){o.Top="top",o.Right="right",o.Bottom="bottom",o.Left="left"}(n||(n={}));const creator=o=>{const t=Object.assign({blockDirection:i.TopToBottom,inlineDirection:i.LeftToRight},o),e=Object.values(i);if(!e.includes(t.blockDirection))throw new Error(`[postcss-logical-resize] "blockDirection" must be one of ${e.join(", ")}`);if(!e.includes(t.inlineDirection))throw new Error(`[postcss-logical-resize] "inlineDirection" must be one of ${e.join(", ")}`);const[r,c]=directionFlowToAxes(t.blockDirection),[s,l]=directionFlowToAxes(t.inlineDirection);if(!Object.values(n).every((o=>[r,c,s,l].includes(o))))throw new Error('[postcss-logical-resize] "blockDirection" and "inlineDirection" must be on separate axes');const a={block:[r,c],inline:[s,l],inlineIsHorizontal:[i.LeftToRight,i.RightToLeft].includes(t.inlineDirection)};return{postcssPlugin:"postcss-logical-resize",Declaration:{resize:(u=transformResize(a),(o,{result:t})=>{if(!u)return;let e=!1;try{e=u(o)}catch(e){return void o.warn(t,e.message)}e&&o.remove()})}};var u};creator.postcss=!0;export{creator as default};
diff --git a/node_modules/@csstools/postcss-logical-resize/dist/lib/clone-declaration.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/lib/clone-declaration.d.ts
new file mode 100644
index 00000000..1503bf6f
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/dist/lib/clone-declaration.d.ts
@@ -0,0 +1,2 @@
+import type { Declaration } from 'postcss';
+export declare function cloneDeclaration(declaration: Declaration, value: string, prop: string): void;
diff --git a/node_modules/@csstools/postcss-logical-resize/dist/lib/transform-resize.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/lib/transform-resize.d.ts
new file mode 100644
index 00000000..12100551
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/dist/lib/transform-resize.d.ts
@@ -0,0 +1,3 @@
+import type { Declaration } from 'postcss';
+import { DirectionConfig } from './types';
+export declare function transformResize(directionConfig: DirectionConfig): (declaration: Declaration) => boolean;
diff --git a/node_modules/@csstools/postcss-logical-resize/dist/lib/types.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/lib/types.d.ts
new file mode 100644
index 00000000..7f27fd46
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/dist/lib/types.d.ts
@@ -0,0 +1,31 @@
+export declare enum Direction {
+ Block = "block",
+ Inline = "inline"
+}
+export declare enum DirectionValue {
+ Start = "start",
+ End = "end"
+}
+export declare const DirectionValues: {
+ BlockStart: string;
+ BlockEnd: string;
+ InlineStart: string;
+ InlineEnd: string;
+};
+export declare enum DirectionFlow {
+ TopToBottom = "top-to-bottom",
+ BottomToTop = "bottom-to-top",
+ RightToLeft = "right-to-left",
+ LeftToRight = "left-to-right"
+}
+export declare enum Axes {
+ Top = "top",
+ Right = "right",
+ Bottom = "bottom",
+ Left = "left"
+}
+export type DirectionConfig = {
+ [Direction.Block]: [Axes, Axes];
+ [Direction.Inline]: [Axes, Axes];
+ inlineIsHorizontal: boolean;
+};
diff --git a/node_modules/@csstools/postcss-logical-resize/dist/utils/direction-flow-to-axes.d.ts b/node_modules/@csstools/postcss-logical-resize/dist/utils/direction-flow-to-axes.d.ts
new file mode 100644
index 00000000..2652d71d
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/dist/utils/direction-flow-to-axes.d.ts
@@ -0,0 +1,2 @@
+import { DirectionFlow, Axes } from '../lib/types';
+export declare function directionFlowToAxes(directionFlow: DirectionFlow): [Axes, Axes];
diff --git a/node_modules/@csstools/postcss-logical-resize/package.json b/node_modules/@csstools/postcss-logical-resize/package.json
new file mode 100644
index 00000000..9fa60ff6
--- /dev/null
+++ b/node_modules/@csstools/postcss-logical-resize/package.json
@@ -0,0 +1,89 @@
+{
+ "name": "@csstools/postcss-logical-resize",
+ "description": "Use logical values in the resize property",
+ "version": "2.0.0",
+ "contributors": [
+ {
+ "name": "Antonio Laguna",
+ "email": "antonio@laguna.es",
+ "url": "https://antonio.laguna.es"
+ },
+ {
+ "name": "Romain Menke",
+ "email": "romainmenke@gmail.com"
+ }
+ ],
+ "license": "MIT-0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ },
+ "main": "dist/index.cjs",
+ "module": "dist/index.mjs",
+ "types": "dist/index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.mjs",
+ "require": "./dist/index.cjs",
+ "default": "./dist/index.mjs"
+ }
+ },
+ "files": [
+ "CHANGELOG.md",
+ "LICENSE.md",
+ "README.md",
+ "dist"
+ ],
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ },
+ "devDependencies": {
+ "@csstools/postcss-tape": "*"
+ },
+ "scripts": {
+ "build": "rollup -c ../../rollup/default.mjs",
+ "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs",
+ "lint": "node ../../.github/bin/format-package-json.mjs",
+ "prepublishOnly": "npm run build && npm run test",
+ "test": "node .tape.mjs && node ./test/_import.mjs && node ./test/_require.cjs",
+ "test:rewrite-expects": "REWRITE_EXPECTS=true node .tape.mjs"
+ },
+ "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-resize#readme",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/csstools/postcss-plugins.git",
+ "directory": "plugins/postcss-logical-resize"
+ },
+ "bugs": "https://github.com/csstools/postcss-plugins/issues",
+ "keywords": [
+ "block",
+ "css",
+ "inline",
+ "logical",
+ "postcss",
+ "postcss-plugin",
+ "resize"
+ ],
+ "csstools": {
+ "cssdbId": "logical-resize",
+ "exportName": "postcssLogicalResize",
+ "humanReadableName": "PostCSS Logical Resize",
+ "specUrl": "https://www.w3.org/TR/css-logical-1/"
+ },
+ "volta": {
+ "extends": "../../package.json"
+ }
+}