css-calipers 0.0.0 → 0.3.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.
- package/LICENSE.txt +1 -1
- package/README.md +298 -0
- package/RELEASING.md +62 -0
- package/dist/cjs/core.js +279 -0
- package/dist/cjs/index.js +30 -0
- package/dist/cjs/internal/errors.js +17 -0
- package/dist/cjs/unitDefinitions.js +67 -0
- package/dist/cjs/units/absolute.js +11 -0
- package/dist/cjs/units/angle.js +8 -0
- package/dist/cjs/units/container.js +10 -0
- package/dist/cjs/units/font-relative.js +16 -0
- package/dist/cjs/units/frequency.js +6 -0
- package/dist/cjs/units/grid.js +5 -0
- package/dist/cjs/units/percent.js +7 -0
- package/dist/cjs/units/resolution.js +7 -0
- package/dist/cjs/units/time.js +6 -0
- package/dist/cjs/units/viewport-dynamic.js +10 -0
- package/dist/cjs/units/viewport-large.js +10 -0
- package/dist/cjs/units/viewport-small.js +10 -0
- package/dist/cjs/units/viewport.js +10 -0
- package/dist/esm/core.d.ts +307 -0
- package/dist/esm/core.d.ts.map +1 -0
- package/dist/esm/core.js +264 -0
- package/dist/esm/index.d.ts +15 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/internal/errors.d.ts +28 -0
- package/dist/esm/internal/errors.d.ts.map +1 -0
- package/dist/esm/internal/errors.js +12 -0
- package/dist/esm/unitDefinitions.d.ts +259 -0
- package/dist/esm/unitDefinitions.d.ts.map +1 -0
- package/dist/esm/unitDefinitions.js +64 -0
- package/dist/esm/units/absolute.d.ts +16 -0
- package/dist/esm/units/absolute.d.ts.map +1 -0
- package/dist/esm/units/absolute.js +8 -0
- package/dist/esm/units/angle.d.ts +10 -0
- package/dist/esm/units/angle.d.ts.map +1 -0
- package/dist/esm/units/angle.js +5 -0
- package/dist/esm/units/container.d.ts +14 -0
- package/dist/esm/units/container.d.ts.map +1 -0
- package/dist/esm/units/container.js +7 -0
- package/dist/esm/units/font-relative.d.ts +26 -0
- package/dist/esm/units/font-relative.d.ts.map +1 -0
- package/dist/esm/units/font-relative.js +13 -0
- package/dist/esm/units/frequency.d.ts +6 -0
- package/dist/esm/units/frequency.d.ts.map +1 -0
- package/dist/esm/units/frequency.js +3 -0
- package/dist/esm/units/grid.d.ts +4 -0
- package/dist/esm/units/grid.d.ts.map +1 -0
- package/dist/esm/units/grid.js +2 -0
- package/dist/esm/units/percent.d.ts +6 -0
- package/dist/esm/units/percent.d.ts.map +1 -0
- package/dist/esm/units/percent.js +4 -0
- package/dist/esm/units/resolution.d.ts +8 -0
- package/dist/esm/units/resolution.d.ts.map +1 -0
- package/dist/esm/units/resolution.js +4 -0
- package/dist/esm/units/time.d.ts +6 -0
- package/dist/esm/units/time.d.ts.map +1 -0
- package/dist/esm/units/time.js +3 -0
- package/dist/esm/units/viewport-dynamic.d.ts +14 -0
- package/dist/esm/units/viewport-dynamic.d.ts.map +1 -0
- package/dist/esm/units/viewport-dynamic.js +7 -0
- package/dist/esm/units/viewport-large.d.ts +14 -0
- package/dist/esm/units/viewport-large.d.ts.map +1 -0
- package/dist/esm/units/viewport-large.js +7 -0
- package/dist/esm/units/viewport-small.d.ts +14 -0
- package/dist/esm/units/viewport-small.d.ts.map +1 -0
- package/dist/esm/units/viewport-small.js +7 -0
- package/dist/esm/units/viewport.d.ts +14 -0
- package/dist/esm/units/viewport.d.ts.map +1 -0
- package/dist/esm/units/viewport.js +7 -0
- package/package.json +47 -7
- package/README.txt +0 -21
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.throwHelperError = exports.throwMeasurementMethodError = void 0;
|
|
4
|
+
const formatErrorMessage = (operation, message, context) => {
|
|
5
|
+
const core = `${operation}: ${message}`;
|
|
6
|
+
return context ? `${context}: ${core}` : core;
|
|
7
|
+
};
|
|
8
|
+
/** Throw an Error for a Measurement instance method using a structured context. */
|
|
9
|
+
const throwMeasurementMethodError = (ctx) => {
|
|
10
|
+
throw new Error(formatErrorMessage(ctx.operation, ctx.message, ctx.context));
|
|
11
|
+
};
|
|
12
|
+
exports.throwMeasurementMethodError = throwMeasurementMethodError;
|
|
13
|
+
/** Throw an Error for a helper/free function using a structured context. */
|
|
14
|
+
const throwHelperError = (ctx) => {
|
|
15
|
+
throw new Error(formatErrorMessage(ctx.operation, ctx.message, ctx.context));
|
|
16
|
+
};
|
|
17
|
+
exports.throwHelperError = throwHelperError;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UNIT_DEFINITIONS = void 0;
|
|
4
|
+
exports.UNIT_DEFINITIONS = {
|
|
5
|
+
mPercent: { unit: '%', category: 'percent' },
|
|
6
|
+
mPx: { unit: 'px', category: 'length-absolute' },
|
|
7
|
+
mCm: { unit: 'cm', category: 'length-absolute' },
|
|
8
|
+
mMm: { unit: 'mm', category: 'length-absolute' },
|
|
9
|
+
mQ: { unit: 'q', category: 'length-absolute' },
|
|
10
|
+
mIn: { unit: 'in', category: 'length-absolute' },
|
|
11
|
+
mPc: { unit: 'pc', category: 'length-absolute' },
|
|
12
|
+
mPt: { unit: 'pt', category: 'length-absolute' },
|
|
13
|
+
mEm: { unit: 'em', category: 'length-font-relative' },
|
|
14
|
+
mRem: { unit: 'rem', category: 'length-font-relative' },
|
|
15
|
+
mEx: { unit: 'ex', category: 'length-font-relative' },
|
|
16
|
+
mRex: { unit: 'rex', category: 'length-font-relative' },
|
|
17
|
+
mCh: { unit: 'ch', category: 'length-font-relative' },
|
|
18
|
+
mRch: { unit: 'rch', category: 'length-font-relative' },
|
|
19
|
+
mCap: { unit: 'cap', category: 'length-font-relative' },
|
|
20
|
+
mRcap: { unit: 'rcap', category: 'length-font-relative' },
|
|
21
|
+
mIc: { unit: 'ic', category: 'length-font-relative' },
|
|
22
|
+
mRic: { unit: 'ric', category: 'length-font-relative' },
|
|
23
|
+
mLh: { unit: 'lh', category: 'length-font-relative' },
|
|
24
|
+
mRlh: { unit: 'rlh', category: 'length-font-relative' },
|
|
25
|
+
mVw: { unit: 'vw', category: 'length-viewport' },
|
|
26
|
+
mVh: { unit: 'vh', category: 'length-viewport' },
|
|
27
|
+
mVi: { unit: 'vi', category: 'length-viewport' },
|
|
28
|
+
mVb: { unit: 'vb', category: 'length-viewport' },
|
|
29
|
+
mVmin: { unit: 'vmin', category: 'length-viewport' },
|
|
30
|
+
mVmax: { unit: 'vmax', category: 'length-viewport' },
|
|
31
|
+
mSvw: { unit: 'svw', category: 'length-viewport-small' },
|
|
32
|
+
mSvh: { unit: 'svh', category: 'length-viewport-small' },
|
|
33
|
+
mSvi: { unit: 'svi', category: 'length-viewport-small' },
|
|
34
|
+
mSvb: { unit: 'svb', category: 'length-viewport-small' },
|
|
35
|
+
mSvmin: { unit: 'svmin', category: 'length-viewport-small' },
|
|
36
|
+
mSvmax: { unit: 'svmax', category: 'length-viewport-small' },
|
|
37
|
+
mLvw: { unit: 'lvw', category: 'length-viewport-large' },
|
|
38
|
+
mLvh: { unit: 'lvh', category: 'length-viewport-large' },
|
|
39
|
+
mLvi: { unit: 'lvi', category: 'length-viewport-large' },
|
|
40
|
+
mLvb: { unit: 'lvb', category: 'length-viewport-large' },
|
|
41
|
+
mLvmin: { unit: 'lvmin', category: 'length-viewport-large' },
|
|
42
|
+
mLvmax: { unit: 'lvmax', category: 'length-viewport-large' },
|
|
43
|
+
mDvw: { unit: 'dvw', category: 'length-viewport-dynamic' },
|
|
44
|
+
mDvh: { unit: 'dvh', category: 'length-viewport-dynamic' },
|
|
45
|
+
mDvi: { unit: 'dvi', category: 'length-viewport-dynamic' },
|
|
46
|
+
mDvb: { unit: 'dvb', category: 'length-viewport-dynamic' },
|
|
47
|
+
mDvmin: { unit: 'dvmin', category: 'length-viewport-dynamic' },
|
|
48
|
+
mDvmax: { unit: 'dvmax', category: 'length-viewport-dynamic' },
|
|
49
|
+
mCqw: { unit: 'cqw', category: 'length-container' },
|
|
50
|
+
mCqh: { unit: 'cqh', category: 'length-container' },
|
|
51
|
+
mCqi: { unit: 'cqi', category: 'length-container' },
|
|
52
|
+
mCqb: { unit: 'cqb', category: 'length-container' },
|
|
53
|
+
mCqmin: { unit: 'cqmin', category: 'length-container' },
|
|
54
|
+
mCqmax: { unit: 'cqmax', category: 'length-container' },
|
|
55
|
+
mDeg: { unit: 'deg', category: 'angle' },
|
|
56
|
+
mRad: { unit: 'rad', category: 'angle' },
|
|
57
|
+
mGrad: { unit: 'grad', category: 'angle' },
|
|
58
|
+
mTurn: { unit: 'turn', category: 'angle' },
|
|
59
|
+
mS: { unit: 's', category: 'time' },
|
|
60
|
+
mMs: { unit: 'ms', category: 'time' },
|
|
61
|
+
mHz: { unit: 'hz', category: 'frequency' },
|
|
62
|
+
mKhz: { unit: 'khz', category: 'frequency' },
|
|
63
|
+
mDpi: { unit: 'dpi', category: 'resolution' },
|
|
64
|
+
mDpcm: { unit: 'dpcm', category: 'resolution' },
|
|
65
|
+
mDppx: { unit: 'dppx', category: 'resolution' },
|
|
66
|
+
mFr: { unit: 'fr', category: 'flex' },
|
|
67
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mPt = exports.mPc = exports.mIn = exports.mQ = exports.mMm = exports.mCm = exports.mPx = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mPx = (0, core_1.makeUnitHelperFromDefinition)('mPx');
|
|
6
|
+
exports.mCm = (0, core_1.makeUnitHelperFromDefinition)('mCm');
|
|
7
|
+
exports.mMm = (0, core_1.makeUnitHelperFromDefinition)('mMm');
|
|
8
|
+
exports.mQ = (0, core_1.makeUnitHelperFromDefinition)('mQ');
|
|
9
|
+
exports.mIn = (0, core_1.makeUnitHelperFromDefinition)('mIn');
|
|
10
|
+
exports.mPc = (0, core_1.makeUnitHelperFromDefinition)('mPc');
|
|
11
|
+
exports.mPt = (0, core_1.makeUnitHelperFromDefinition)('mPt');
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mTurn = exports.mGrad = exports.mRad = exports.mDeg = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mDeg = (0, core_1.makeUnitHelperFromDefinition)('mDeg');
|
|
6
|
+
exports.mRad = (0, core_1.makeUnitHelperFromDefinition)('mRad');
|
|
7
|
+
exports.mGrad = (0, core_1.makeUnitHelperFromDefinition)('mGrad');
|
|
8
|
+
exports.mTurn = (0, core_1.makeUnitHelperFromDefinition)('mTurn');
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mCqmax = exports.mCqmin = exports.mCqb = exports.mCqi = exports.mCqh = exports.mCqw = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mCqw = (0, core_1.makeUnitHelperFromDefinition)('mCqw');
|
|
6
|
+
exports.mCqh = (0, core_1.makeUnitHelperFromDefinition)('mCqh');
|
|
7
|
+
exports.mCqi = (0, core_1.makeUnitHelperFromDefinition)('mCqi');
|
|
8
|
+
exports.mCqb = (0, core_1.makeUnitHelperFromDefinition)('mCqb');
|
|
9
|
+
exports.mCqmin = (0, core_1.makeUnitHelperFromDefinition)('mCqmin');
|
|
10
|
+
exports.mCqmax = (0, core_1.makeUnitHelperFromDefinition)('mCqmax');
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mRlh = exports.mLh = exports.mRic = exports.mIc = exports.mRcap = exports.mCap = exports.mRch = exports.mCh = exports.mRex = exports.mEx = exports.mRem = exports.mEm = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mEm = (0, core_1.makeUnitHelperFromDefinition)('mEm');
|
|
6
|
+
exports.mRem = (0, core_1.makeUnitHelperFromDefinition)('mRem');
|
|
7
|
+
exports.mEx = (0, core_1.makeUnitHelperFromDefinition)('mEx');
|
|
8
|
+
exports.mRex = (0, core_1.makeUnitHelperFromDefinition)('mRex');
|
|
9
|
+
exports.mCh = (0, core_1.makeUnitHelperFromDefinition)('mCh');
|
|
10
|
+
exports.mRch = (0, core_1.makeUnitHelperFromDefinition)('mRch');
|
|
11
|
+
exports.mCap = (0, core_1.makeUnitHelperFromDefinition)('mCap');
|
|
12
|
+
exports.mRcap = (0, core_1.makeUnitHelperFromDefinition)('mRcap');
|
|
13
|
+
exports.mIc = (0, core_1.makeUnitHelperFromDefinition)('mIc');
|
|
14
|
+
exports.mRic = (0, core_1.makeUnitHelperFromDefinition)('mRic');
|
|
15
|
+
exports.mLh = (0, core_1.makeUnitHelperFromDefinition)('mLh');
|
|
16
|
+
exports.mRlh = (0, core_1.makeUnitHelperFromDefinition)('mRlh');
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mKhz = exports.mHz = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mHz = (0, core_1.makeUnitHelperFromDefinition)('mHz');
|
|
6
|
+
exports.mKhz = (0, core_1.makeUnitHelperFromDefinition)('mKhz');
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertPercentMeasurement = exports.isPercentMeasurement = exports.mPercent = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mPercent = (0, core_1.makeUnitHelperFromDefinition)('mPercent');
|
|
6
|
+
exports.isPercentMeasurement = (0, core_1.makeUnitGuard)(exports.mPercent);
|
|
7
|
+
exports.assertPercentMeasurement = (0, core_1.makeUnitAssert)(exports.mPercent);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mDppx = exports.mDpcm = exports.mDpi = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mDpi = (0, core_1.makeUnitHelperFromDefinition)('mDpi');
|
|
6
|
+
exports.mDpcm = (0, core_1.makeUnitHelperFromDefinition)('mDpcm');
|
|
7
|
+
exports.mDppx = (0, core_1.makeUnitHelperFromDefinition)('mDppx');
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mMs = exports.mS = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mS = (0, core_1.makeUnitHelperFromDefinition)('mS');
|
|
6
|
+
exports.mMs = (0, core_1.makeUnitHelperFromDefinition)('mMs');
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mDvmax = exports.mDvmin = exports.mDvb = exports.mDvi = exports.mDvh = exports.mDvw = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mDvw = (0, core_1.makeUnitHelperFromDefinition)('mDvw');
|
|
6
|
+
exports.mDvh = (0, core_1.makeUnitHelperFromDefinition)('mDvh');
|
|
7
|
+
exports.mDvi = (0, core_1.makeUnitHelperFromDefinition)('mDvi');
|
|
8
|
+
exports.mDvb = (0, core_1.makeUnitHelperFromDefinition)('mDvb');
|
|
9
|
+
exports.mDvmin = (0, core_1.makeUnitHelperFromDefinition)('mDvmin');
|
|
10
|
+
exports.mDvmax = (0, core_1.makeUnitHelperFromDefinition)('mDvmax');
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mLvmax = exports.mLvmin = exports.mLvb = exports.mLvi = exports.mLvh = exports.mLvw = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mLvw = (0, core_1.makeUnitHelperFromDefinition)('mLvw');
|
|
6
|
+
exports.mLvh = (0, core_1.makeUnitHelperFromDefinition)('mLvh');
|
|
7
|
+
exports.mLvi = (0, core_1.makeUnitHelperFromDefinition)('mLvi');
|
|
8
|
+
exports.mLvb = (0, core_1.makeUnitHelperFromDefinition)('mLvb');
|
|
9
|
+
exports.mLvmin = (0, core_1.makeUnitHelperFromDefinition)('mLvmin');
|
|
10
|
+
exports.mLvmax = (0, core_1.makeUnitHelperFromDefinition)('mLvmax');
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mSvmax = exports.mSvmin = exports.mSvb = exports.mSvi = exports.mSvh = exports.mSvw = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mSvw = (0, core_1.makeUnitHelperFromDefinition)('mSvw');
|
|
6
|
+
exports.mSvh = (0, core_1.makeUnitHelperFromDefinition)('mSvh');
|
|
7
|
+
exports.mSvi = (0, core_1.makeUnitHelperFromDefinition)('mSvi');
|
|
8
|
+
exports.mSvb = (0, core_1.makeUnitHelperFromDefinition)('mSvb');
|
|
9
|
+
exports.mSvmin = (0, core_1.makeUnitHelperFromDefinition)('mSvmin');
|
|
10
|
+
exports.mSvmax = (0, core_1.makeUnitHelperFromDefinition)('mSvmax');
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mVmax = exports.mVmin = exports.mVb = exports.mVi = exports.mVh = exports.mVw = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
exports.mVw = (0, core_1.makeUnitHelperFromDefinition)('mVw');
|
|
6
|
+
exports.mVh = (0, core_1.makeUnitHelperFromDefinition)('mVh');
|
|
7
|
+
exports.mVi = (0, core_1.makeUnitHelperFromDefinition)('mVi');
|
|
8
|
+
exports.mVb = (0, core_1.makeUnitHelperFromDefinition)('mVb');
|
|
9
|
+
exports.mVmin = (0, core_1.makeUnitHelperFromDefinition)('mVmin');
|
|
10
|
+
exports.mVmax = (0, core_1.makeUnitHelperFromDefinition)('mVmax');
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { type UnitCategory, type UnitDefinition, type UnitDefinitionRecord, type UnitHelperName } from './unitDefinitions';
|
|
2
|
+
type UnitSymbol = UnitDefinitionRecord[keyof UnitDefinitionRecord]['unit'];
|
|
3
|
+
export type MeasurementString<Unit extends string = UnitSymbol> = `${number}${Unit}`;
|
|
4
|
+
type UnitBrand<Unit extends string> = {
|
|
5
|
+
readonly __unitBrand: Unit;
|
|
6
|
+
};
|
|
7
|
+
export interface IMeasurement<Unit extends string = string> {
|
|
8
|
+
css: () => string;
|
|
9
|
+
toString: () => string;
|
|
10
|
+
getUnit: () => Unit;
|
|
11
|
+
getValue: () => number;
|
|
12
|
+
valueOf: () => number;
|
|
13
|
+
[Symbol.toPrimitive]: (hint: string) => string | number;
|
|
14
|
+
isUnit: (unit: string) => boolean;
|
|
15
|
+
assertUnit: (unit: string, context?: string) => void;
|
|
16
|
+
assert: (predicate: (measurement: IMeasurement<Unit>) => boolean, message: string) => void;
|
|
17
|
+
equals: (other: IMeasurement<string>) => boolean;
|
|
18
|
+
compare: (other: IMeasurement<string>) => number;
|
|
19
|
+
add: (delta: DeltaInput) => IMeasurement<Unit>;
|
|
20
|
+
subtract: (delta: DeltaInput) => IMeasurement<Unit>;
|
|
21
|
+
multiply: (factor: number) => IMeasurement<Unit>;
|
|
22
|
+
divide: (divisor: number) => IMeasurement<Unit>;
|
|
23
|
+
double: () => IMeasurement<Unit>;
|
|
24
|
+
half: () => IMeasurement<Unit>;
|
|
25
|
+
negation: (shouldNegate?: boolean) => IMeasurement<Unit>;
|
|
26
|
+
absolute: () => IMeasurement<Unit>;
|
|
27
|
+
round: (precision?: number) => IMeasurement<Unit>;
|
|
28
|
+
floor: () => IMeasurement<Unit>;
|
|
29
|
+
ceil: () => IMeasurement<Unit>;
|
|
30
|
+
clamp: (min: IMeasurement<string>, max: IMeasurement<string>) => IMeasurement<Unit>;
|
|
31
|
+
}
|
|
32
|
+
type DeltaInput = number | IMeasurement<string>;
|
|
33
|
+
export declare function assertMatchingUnits<Unit extends string>(left: IMeasurement<Unit>, right: IMeasurement<Unit>, context: string): void;
|
|
34
|
+
export declare const isMeasurement: (x: unknown) => x is IMeasurement<string>;
|
|
35
|
+
export declare const m: <Unit extends string>(value: number, unit?: Unit) => IMeasurement<Lowercase<Unit>> & UnitBrand<Lowercase<Unit>>;
|
|
36
|
+
export type BrandedMeasurement<Unit extends string> = IMeasurement<Unit> & UnitBrand<Unit>;
|
|
37
|
+
export type UnitHelper<Unit extends string = string> = ((value: number) => BrandedMeasurement<Unit>) & {
|
|
38
|
+
unit: Unit;
|
|
39
|
+
};
|
|
40
|
+
export declare const makeUnitHelper: <Unit extends string>(unit: Unit) => UnitHelper<Unit>;
|
|
41
|
+
export declare const makeUnitHelperFromDefinition: <Name extends UnitHelperName>(name: Name) => UnitHelper<UnitDefinitionRecord[Name]["unit"]>;
|
|
42
|
+
export declare const measurementUnitMetadata: {
|
|
43
|
+
readonly mPercent: {
|
|
44
|
+
readonly unit: "%";
|
|
45
|
+
readonly category: "percent";
|
|
46
|
+
};
|
|
47
|
+
readonly mPx: {
|
|
48
|
+
readonly unit: "px";
|
|
49
|
+
readonly category: "length-absolute";
|
|
50
|
+
};
|
|
51
|
+
readonly mCm: {
|
|
52
|
+
readonly unit: "cm";
|
|
53
|
+
readonly category: "length-absolute";
|
|
54
|
+
};
|
|
55
|
+
readonly mMm: {
|
|
56
|
+
readonly unit: "mm";
|
|
57
|
+
readonly category: "length-absolute";
|
|
58
|
+
};
|
|
59
|
+
readonly mQ: {
|
|
60
|
+
readonly unit: "q";
|
|
61
|
+
readonly category: "length-absolute";
|
|
62
|
+
};
|
|
63
|
+
readonly mIn: {
|
|
64
|
+
readonly unit: "in";
|
|
65
|
+
readonly category: "length-absolute";
|
|
66
|
+
};
|
|
67
|
+
readonly mPc: {
|
|
68
|
+
readonly unit: "pc";
|
|
69
|
+
readonly category: "length-absolute";
|
|
70
|
+
};
|
|
71
|
+
readonly mPt: {
|
|
72
|
+
readonly unit: "pt";
|
|
73
|
+
readonly category: "length-absolute";
|
|
74
|
+
};
|
|
75
|
+
readonly mEm: {
|
|
76
|
+
readonly unit: "em";
|
|
77
|
+
readonly category: "length-font-relative";
|
|
78
|
+
};
|
|
79
|
+
readonly mRem: {
|
|
80
|
+
readonly unit: "rem";
|
|
81
|
+
readonly category: "length-font-relative";
|
|
82
|
+
};
|
|
83
|
+
readonly mEx: {
|
|
84
|
+
readonly unit: "ex";
|
|
85
|
+
readonly category: "length-font-relative";
|
|
86
|
+
};
|
|
87
|
+
readonly mRex: {
|
|
88
|
+
readonly unit: "rex";
|
|
89
|
+
readonly category: "length-font-relative";
|
|
90
|
+
};
|
|
91
|
+
readonly mCh: {
|
|
92
|
+
readonly unit: "ch";
|
|
93
|
+
readonly category: "length-font-relative";
|
|
94
|
+
};
|
|
95
|
+
readonly mRch: {
|
|
96
|
+
readonly unit: "rch";
|
|
97
|
+
readonly category: "length-font-relative";
|
|
98
|
+
};
|
|
99
|
+
readonly mCap: {
|
|
100
|
+
readonly unit: "cap";
|
|
101
|
+
readonly category: "length-font-relative";
|
|
102
|
+
};
|
|
103
|
+
readonly mRcap: {
|
|
104
|
+
readonly unit: "rcap";
|
|
105
|
+
readonly category: "length-font-relative";
|
|
106
|
+
};
|
|
107
|
+
readonly mIc: {
|
|
108
|
+
readonly unit: "ic";
|
|
109
|
+
readonly category: "length-font-relative";
|
|
110
|
+
};
|
|
111
|
+
readonly mRic: {
|
|
112
|
+
readonly unit: "ric";
|
|
113
|
+
readonly category: "length-font-relative";
|
|
114
|
+
};
|
|
115
|
+
readonly mLh: {
|
|
116
|
+
readonly unit: "lh";
|
|
117
|
+
readonly category: "length-font-relative";
|
|
118
|
+
};
|
|
119
|
+
readonly mRlh: {
|
|
120
|
+
readonly unit: "rlh";
|
|
121
|
+
readonly category: "length-font-relative";
|
|
122
|
+
};
|
|
123
|
+
readonly mVw: {
|
|
124
|
+
readonly unit: "vw";
|
|
125
|
+
readonly category: "length-viewport";
|
|
126
|
+
};
|
|
127
|
+
readonly mVh: {
|
|
128
|
+
readonly unit: "vh";
|
|
129
|
+
readonly category: "length-viewport";
|
|
130
|
+
};
|
|
131
|
+
readonly mVi: {
|
|
132
|
+
readonly unit: "vi";
|
|
133
|
+
readonly category: "length-viewport";
|
|
134
|
+
};
|
|
135
|
+
readonly mVb: {
|
|
136
|
+
readonly unit: "vb";
|
|
137
|
+
readonly category: "length-viewport";
|
|
138
|
+
};
|
|
139
|
+
readonly mVmin: {
|
|
140
|
+
readonly unit: "vmin";
|
|
141
|
+
readonly category: "length-viewport";
|
|
142
|
+
};
|
|
143
|
+
readonly mVmax: {
|
|
144
|
+
readonly unit: "vmax";
|
|
145
|
+
readonly category: "length-viewport";
|
|
146
|
+
};
|
|
147
|
+
readonly mSvw: {
|
|
148
|
+
readonly unit: "svw";
|
|
149
|
+
readonly category: "length-viewport-small";
|
|
150
|
+
};
|
|
151
|
+
readonly mSvh: {
|
|
152
|
+
readonly unit: "svh";
|
|
153
|
+
readonly category: "length-viewport-small";
|
|
154
|
+
};
|
|
155
|
+
readonly mSvi: {
|
|
156
|
+
readonly unit: "svi";
|
|
157
|
+
readonly category: "length-viewport-small";
|
|
158
|
+
};
|
|
159
|
+
readonly mSvb: {
|
|
160
|
+
readonly unit: "svb";
|
|
161
|
+
readonly category: "length-viewport-small";
|
|
162
|
+
};
|
|
163
|
+
readonly mSvmin: {
|
|
164
|
+
readonly unit: "svmin";
|
|
165
|
+
readonly category: "length-viewport-small";
|
|
166
|
+
};
|
|
167
|
+
readonly mSvmax: {
|
|
168
|
+
readonly unit: "svmax";
|
|
169
|
+
readonly category: "length-viewport-small";
|
|
170
|
+
};
|
|
171
|
+
readonly mLvw: {
|
|
172
|
+
readonly unit: "lvw";
|
|
173
|
+
readonly category: "length-viewport-large";
|
|
174
|
+
};
|
|
175
|
+
readonly mLvh: {
|
|
176
|
+
readonly unit: "lvh";
|
|
177
|
+
readonly category: "length-viewport-large";
|
|
178
|
+
};
|
|
179
|
+
readonly mLvi: {
|
|
180
|
+
readonly unit: "lvi";
|
|
181
|
+
readonly category: "length-viewport-large";
|
|
182
|
+
};
|
|
183
|
+
readonly mLvb: {
|
|
184
|
+
readonly unit: "lvb";
|
|
185
|
+
readonly category: "length-viewport-large";
|
|
186
|
+
};
|
|
187
|
+
readonly mLvmin: {
|
|
188
|
+
readonly unit: "lvmin";
|
|
189
|
+
readonly category: "length-viewport-large";
|
|
190
|
+
};
|
|
191
|
+
readonly mLvmax: {
|
|
192
|
+
readonly unit: "lvmax";
|
|
193
|
+
readonly category: "length-viewport-large";
|
|
194
|
+
};
|
|
195
|
+
readonly mDvw: {
|
|
196
|
+
readonly unit: "dvw";
|
|
197
|
+
readonly category: "length-viewport-dynamic";
|
|
198
|
+
};
|
|
199
|
+
readonly mDvh: {
|
|
200
|
+
readonly unit: "dvh";
|
|
201
|
+
readonly category: "length-viewport-dynamic";
|
|
202
|
+
};
|
|
203
|
+
readonly mDvi: {
|
|
204
|
+
readonly unit: "dvi";
|
|
205
|
+
readonly category: "length-viewport-dynamic";
|
|
206
|
+
};
|
|
207
|
+
readonly mDvb: {
|
|
208
|
+
readonly unit: "dvb";
|
|
209
|
+
readonly category: "length-viewport-dynamic";
|
|
210
|
+
};
|
|
211
|
+
readonly mDvmin: {
|
|
212
|
+
readonly unit: "dvmin";
|
|
213
|
+
readonly category: "length-viewport-dynamic";
|
|
214
|
+
};
|
|
215
|
+
readonly mDvmax: {
|
|
216
|
+
readonly unit: "dvmax";
|
|
217
|
+
readonly category: "length-viewport-dynamic";
|
|
218
|
+
};
|
|
219
|
+
readonly mCqw: {
|
|
220
|
+
readonly unit: "cqw";
|
|
221
|
+
readonly category: "length-container";
|
|
222
|
+
};
|
|
223
|
+
readonly mCqh: {
|
|
224
|
+
readonly unit: "cqh";
|
|
225
|
+
readonly category: "length-container";
|
|
226
|
+
};
|
|
227
|
+
readonly mCqi: {
|
|
228
|
+
readonly unit: "cqi";
|
|
229
|
+
readonly category: "length-container";
|
|
230
|
+
};
|
|
231
|
+
readonly mCqb: {
|
|
232
|
+
readonly unit: "cqb";
|
|
233
|
+
readonly category: "length-container";
|
|
234
|
+
};
|
|
235
|
+
readonly mCqmin: {
|
|
236
|
+
readonly unit: "cqmin";
|
|
237
|
+
readonly category: "length-container";
|
|
238
|
+
};
|
|
239
|
+
readonly mCqmax: {
|
|
240
|
+
readonly unit: "cqmax";
|
|
241
|
+
readonly category: "length-container";
|
|
242
|
+
};
|
|
243
|
+
readonly mDeg: {
|
|
244
|
+
readonly unit: "deg";
|
|
245
|
+
readonly category: "angle";
|
|
246
|
+
};
|
|
247
|
+
readonly mRad: {
|
|
248
|
+
readonly unit: "rad";
|
|
249
|
+
readonly category: "angle";
|
|
250
|
+
};
|
|
251
|
+
readonly mGrad: {
|
|
252
|
+
readonly unit: "grad";
|
|
253
|
+
readonly category: "angle";
|
|
254
|
+
};
|
|
255
|
+
readonly mTurn: {
|
|
256
|
+
readonly unit: "turn";
|
|
257
|
+
readonly category: "angle";
|
|
258
|
+
};
|
|
259
|
+
readonly mS: {
|
|
260
|
+
readonly unit: "s";
|
|
261
|
+
readonly category: "time";
|
|
262
|
+
};
|
|
263
|
+
readonly mMs: {
|
|
264
|
+
readonly unit: "ms";
|
|
265
|
+
readonly category: "time";
|
|
266
|
+
};
|
|
267
|
+
readonly mHz: {
|
|
268
|
+
readonly unit: "hz";
|
|
269
|
+
readonly category: "frequency";
|
|
270
|
+
};
|
|
271
|
+
readonly mKhz: {
|
|
272
|
+
readonly unit: "khz";
|
|
273
|
+
readonly category: "frequency";
|
|
274
|
+
};
|
|
275
|
+
readonly mDpi: {
|
|
276
|
+
readonly unit: "dpi";
|
|
277
|
+
readonly category: "resolution";
|
|
278
|
+
};
|
|
279
|
+
readonly mDpcm: {
|
|
280
|
+
readonly unit: "dpcm";
|
|
281
|
+
readonly category: "resolution";
|
|
282
|
+
};
|
|
283
|
+
readonly mDppx: {
|
|
284
|
+
readonly unit: "dppx";
|
|
285
|
+
readonly category: "resolution";
|
|
286
|
+
};
|
|
287
|
+
readonly mFr: {
|
|
288
|
+
readonly unit: "fr";
|
|
289
|
+
readonly category: "flex";
|
|
290
|
+
};
|
|
291
|
+
};
|
|
292
|
+
export type MeasurementUnitDefinition = UnitDefinition;
|
|
293
|
+
export type MeasurementUnitCategory = UnitCategory;
|
|
294
|
+
export type MeasurementOf<T extends UnitHelper> = ReturnType<T>;
|
|
295
|
+
export type UnitGuard<T extends UnitHelper> = (value: unknown) => value is MeasurementOf<T>;
|
|
296
|
+
export type UnitAssertion<T extends UnitHelper> = (value: unknown, context?: string) => asserts value is MeasurementOf<T>;
|
|
297
|
+
export declare const makeUnitGuard: <T extends UnitHelper>(helper: T) => UnitGuard<T>;
|
|
298
|
+
export declare const makeUnitAssert: <T extends UnitHelper>(helper: T) => UnitAssertion<T>;
|
|
299
|
+
export declare const hasCssMethod: (x: unknown) => x is {
|
|
300
|
+
css: () => string;
|
|
301
|
+
};
|
|
302
|
+
export declare const measurementMin: <Unit extends string>(a: IMeasurement<Unit>, b: IMeasurement<Unit>) => IMeasurement<Unit>;
|
|
303
|
+
export declare const measurementMax: <Unit extends string>(a: IMeasurement<Unit>, b: IMeasurement<Unit>) => IMeasurement<Unit>;
|
|
304
|
+
export declare const assertUnit: <Unit extends string>(measurement: IMeasurement<Unit>, expectedUnit: string, context?: string) => void;
|
|
305
|
+
export declare const assertCondition: (condition: boolean | (() => boolean), message: string) => void;
|
|
306
|
+
export {};
|
|
307
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/core.ts"],"names":[],"mappings":"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"}
|