react-led-digit 0.0.16 → 0.0.18
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/lib/Blinker/Blinker.d.ts +1 -1
- package/lib/Blinker/Blinker.js +2 -2
- package/lib/BlinkingDigit/BlinkingDigit.js +1 -1
- package/lib/Digit/Digit.js +1 -1
- package/lib/Digit/Digit.stories.d.ts +1 -0
- package/lib/Digit/Digit.stories.js +43 -20
- package/lib/Digit/UnstyledDigit.d.ts +1 -1
- package/lib/Digit/UnstyledDigit.js +3 -2
- package/lib/Digit/UnstyledDigit.stories.js +0 -1
- package/lib/Digit/components/AmpmSegments.js +1 -1
- package/lib/Digit/components/ColonSegments.js +1 -1
- package/lib/Digit/components/DigitSegments.js +1 -1
- package/lib/Digit/components/DotSegments.js +1 -1
- package/lib/Digit/digit.css +31 -5
- package/lib/Digit/digit.css.generated.js +32 -6
- package/lib/Digit/useStyleInjector.js +4 -10
- package/package.json +5 -1
package/lib/Blinker/Blinker.d.ts
CHANGED
package/lib/Blinker/Blinker.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Switches
|
|
3
|
+
* Switches internal state periodically (visible), calling subscribers each time.
|
|
4
4
|
*/
|
|
5
5
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
6
6
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
@@ -81,7 +81,7 @@ class Blinker {
|
|
|
81
81
|
}
|
|
82
82
|
start(visible = __classPrivateFieldGet(this, _Blinker_state, "f").visible) {
|
|
83
83
|
if (__classPrivateFieldGet(this, _Blinker_state, "f").timeout)
|
|
84
|
-
|
|
84
|
+
this.stop(); // restart with new params
|
|
85
85
|
visible ? __classPrivateFieldGet(this, _Blinker_instances, "m", _Blinker_on).call(this) : __classPrivateFieldGet(this, _Blinker_instances, "m", _Blinker_off).call(this); // start blinking
|
|
86
86
|
}
|
|
87
87
|
stop() {
|
|
@@ -67,7 +67,7 @@ exports.BlinkingDigit = react_1.default.memo((_a) => {
|
|
|
67
67
|
}, [blinkOptions === null || blinkOptions === void 0 ? void 0 : blinkOptions.period, blinkOptions === null || blinkOptions === void 0 ? void 0 : blinkOptions.ratio, blinkOptions === null || blinkOptions === void 0 ? void 0 : blinkOptions.sync]);
|
|
68
68
|
if ((blinkOptions === null || blinkOptions === void 0 ? void 0 : blinkOptions.period) === 0 ||
|
|
69
69
|
(blinkOptions === null || blinkOptions === void 0 ? void 0 : blinkOptions.ratio) === 0 ||
|
|
70
|
-
typeof
|
|
70
|
+
typeof rest.off === 'boolean')
|
|
71
71
|
return (0, jsx_runtime_1.jsx)(Digit_1.Digit, Object.assign({}, rest, { className: (0, clsx_1.default)('blinking', className) })); // no blinker required
|
|
72
72
|
return ((0, jsx_runtime_1.jsx)(Digit_1.Digit, Object.assign({}, rest, { className: (0, clsx_1.default)('blinking', className), off: rest.off || !visible })));
|
|
73
73
|
});
|
package/lib/Digit/Digit.js
CHANGED
|
@@ -24,7 +24,7 @@ const Digit = (_a) => {
|
|
|
24
24
|
const scopeAttribute = (0, useStyleInjector_1.default)(digit_css_generated_js_1.default.content, [], {
|
|
25
25
|
scopeID: digit_css_generated_js_1.default.hash,
|
|
26
26
|
});
|
|
27
|
-
if (Object.
|
|
27
|
+
if (Object.values(scopeAttribute).some(v => v === true))
|
|
28
28
|
return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, scopeAttribute, { style: { display: 'contents' }, children: (0, jsx_runtime_1.jsx)(UnstyledDigit_1.Digit, Object.assign({}, rest)) })));
|
|
29
29
|
return (0, jsx_runtime_1.jsx)(UnstyledDigit_1.Digit, Object.assign({}, rest));
|
|
30
30
|
};
|
|
@@ -58,25 +58,26 @@ const DigitTest = () => {
|
|
|
58
58
|
} })] })] }));
|
|
59
59
|
};
|
|
60
60
|
const charset = new Set(Object.keys(_1.charToSevenSegments));
|
|
61
|
-
function
|
|
62
|
-
if (index
|
|
61
|
+
function removeCharAt(str, index) {
|
|
62
|
+
if (index < 0 || index >= str.length)
|
|
63
63
|
return str;
|
|
64
|
-
return str.
|
|
64
|
+
return str.substring(0, index) + str.substring(index + 1);
|
|
65
65
|
}
|
|
66
66
|
const BlinkingDigitTest = () => {
|
|
67
67
|
const input = (0, react_1.useRef)(null);
|
|
68
68
|
const [dgts, setDgts] = (0, react_1.useState)('');
|
|
69
69
|
const addDigit = () => {
|
|
70
|
-
|
|
70
|
+
var _a;
|
|
71
|
+
if ((_a = input.current) === null || _a === void 0 ? void 0 : _a.value) {
|
|
71
72
|
setDgts(prev => prev + input.current.value);
|
|
72
73
|
}
|
|
73
74
|
};
|
|
74
75
|
const removeDigit = (idx) => {
|
|
75
|
-
const next =
|
|
76
|
+
const next = removeCharAt(dgts, idx);
|
|
76
77
|
setDgts(next);
|
|
77
78
|
};
|
|
78
79
|
const handleChange = () => {
|
|
79
|
-
if (!charset.has(input.current.value)) {
|
|
80
|
+
if (input.current && !charset.has(input.current.value)) {
|
|
80
81
|
input.current.value = '';
|
|
81
82
|
}
|
|
82
83
|
};
|
|
@@ -118,11 +119,12 @@ const getDigits = (str) => {
|
|
|
118
119
|
return result;
|
|
119
120
|
};
|
|
120
121
|
const Display = (_a) => {
|
|
121
|
-
var { scale = 1, value } = _a, rest = __rest(_a, ["scale", "value"]);
|
|
122
|
+
var { scale = 1, shape, value } = _a, rest = __rest(_a, ["scale", "shape", "value"]);
|
|
122
123
|
const digits = getDigits(value);
|
|
123
124
|
return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, rest, { children: digits.map((digit, idx) => {
|
|
124
125
|
const props = {
|
|
125
126
|
value: digit,
|
|
127
|
+
shape,
|
|
126
128
|
style: {
|
|
127
129
|
fontSize: `${scale * 100}%`,
|
|
128
130
|
},
|
|
@@ -140,17 +142,17 @@ const Display = (_a) => {
|
|
|
140
142
|
}) })));
|
|
141
143
|
};
|
|
142
144
|
const getTime = () => new Date().toLocaleTimeString();
|
|
143
|
-
const SimpleClock = () => {
|
|
145
|
+
const SimpleClock = (args) => {
|
|
144
146
|
const [time, setTime] = (0, react_1.useState)(getTime());
|
|
145
|
-
const blinker = new __1.Blinker();
|
|
146
|
-
blinker.period = 2000;
|
|
147
|
-
blinker.ratio = 1;
|
|
148
|
-
const handleBlinkerChange = () => setTime(getTime());
|
|
149
147
|
(0, react_1.useEffect)(() => {
|
|
148
|
+
const blinker = new __1.Blinker();
|
|
149
|
+
blinker.period = 2000;
|
|
150
|
+
blinker.ratio = 1;
|
|
151
|
+
const handleBlinkerChange = () => setTime(getTime());
|
|
150
152
|
blinker.subscribe(handleBlinkerChange);
|
|
151
153
|
return () => blinker.unsubscribe(handleBlinkerChange);
|
|
152
154
|
}, []);
|
|
153
|
-
return (0, jsx_runtime_1.jsx)(Display, { scale: 2, style: grid, value: time });
|
|
155
|
+
return ((0, jsx_runtime_1.jsx)(Display, { scale: 2, shape: args.shape, style: Object.assign(Object.assign({}, grid), { fontSize: `${args.fontSize}px` }), value: time }));
|
|
154
156
|
};
|
|
155
157
|
const FirefoxSubpixelTest = () => {
|
|
156
158
|
const DigitFF = (props) => ((0, jsx_runtime_1.jsx)(__1.Digit, { value: props.v || 8, segmentStyle: {
|
|
@@ -161,19 +163,28 @@ const FirefoxSubpixelTest = () => {
|
|
|
161
163
|
} }));
|
|
162
164
|
return ((0, jsx_runtime_1.jsxs)("div", { style: Object.assign({}, grid), children: [(0, jsx_runtime_1.jsx)(DigitFF, { v: 2 }), (0, jsx_runtime_1.jsx)(DigitFF, {}), (0, jsx_runtime_1.jsx)(DigitFF, { v: ":" }), (0, jsx_runtime_1.jsx)(DigitFF, {}), (0, jsx_runtime_1.jsx)(DigitFF, {})] }));
|
|
163
165
|
};
|
|
164
|
-
const SegmentShapeTest = () => {
|
|
166
|
+
const SegmentShapeTest = (args) => {
|
|
165
167
|
const Dgt = ({ shape }) => ((0, jsx_runtime_1.jsx)(__1.Digit, { value: 'F', shape: shape, segmentStyle: {
|
|
166
168
|
color: 'green',
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
spacing:
|
|
170
|
-
|
|
169
|
+
length: `${args.length}em`,
|
|
170
|
+
thickness: `${args.thickness}em`,
|
|
171
|
+
spacing: `${args.spacing}em`,
|
|
172
|
+
shiftAD: `${args.shiftAD}em`,
|
|
173
|
+
cornerShift: `${args.cornerShift}em`,
|
|
171
174
|
} }));
|
|
172
175
|
return ((0, jsx_runtime_1.jsxs)("div", { style: Object.assign({}, grid), children: [(0, jsx_runtime_1.jsx)(Dgt, { shape: 'default' }), (0, jsx_runtime_1.jsx)(Dgt, { shape: 'rect' }), (0, jsx_runtime_1.jsx)(Dgt, { shape: 'round' }), (0, jsx_runtime_1.jsx)(Dgt, { shape: 'pill' }), (0, jsx_runtime_1.jsx)(Dgt, { shape: 'calculator' })] }));
|
|
173
176
|
};
|
|
174
177
|
exports.Clock = {
|
|
175
178
|
args: {
|
|
176
|
-
|
|
179
|
+
shape: 'default',
|
|
180
|
+
fontSize: 16,
|
|
181
|
+
},
|
|
182
|
+
argTypes: {
|
|
183
|
+
shape: {
|
|
184
|
+
control: 'radio',
|
|
185
|
+
options: ['default', 'rect', 'round', 'pill', 'calculator'],
|
|
186
|
+
},
|
|
187
|
+
fontSize: { control: { type: 'range', min: 8, max: 64, step: 1 } },
|
|
177
188
|
},
|
|
178
189
|
render: SimpleClock,
|
|
179
190
|
};
|
|
@@ -197,7 +208,19 @@ exports.Firefox = {
|
|
|
197
208
|
};
|
|
198
209
|
exports.Shape = {
|
|
199
210
|
args: {
|
|
200
|
-
value: '
|
|
211
|
+
value: 'F',
|
|
212
|
+
length: 5,
|
|
213
|
+
thickness: 2,
|
|
214
|
+
spacing: 0.1,
|
|
215
|
+
shiftAD: 0,
|
|
216
|
+
cornerShift: 0,
|
|
217
|
+
},
|
|
218
|
+
argTypes: {
|
|
219
|
+
length: { control: { type: 'range', min: 1, max: 20, step: 0.5 } },
|
|
220
|
+
thickness: { control: { type: 'range', min: 0.5, max: 10, step: 0.25 } },
|
|
221
|
+
spacing: { control: { type: 'range', min: -0.5, max: 2, step: 0.05 } },
|
|
222
|
+
shiftAD: { control: { type: 'range', min: -1, max: 1, step: 0.05 } },
|
|
223
|
+
cornerShift: { control: { type: 'range', min: -5, max: 5, step: 0.1 } },
|
|
201
224
|
},
|
|
202
225
|
render: SegmentShapeTest,
|
|
203
226
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
2
|
import { SevenSegmentsValue } from './charToSevenSegments';
|
|
3
3
|
type NumValue = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
|
|
4
4
|
type DigitValue = NumValue | SevenSegmentsValue | 'am' | 'pm' | ':' | '.';
|
|
@@ -33,7 +33,7 @@ const Digit = (_a) => {
|
|
|
33
33
|
return (0, jsx_runtime_1.jsx)(components_1.AmpmSegments, Object.assign({ "aria-label": v }, rest, segments, { style: sx }));
|
|
34
34
|
if (type === 'dot')
|
|
35
35
|
return (0, jsx_runtime_1.jsx)(components_1.DotSegments, Object.assign({ "aria-label": v }, rest, segments, { style: sx }));
|
|
36
|
-
console.warn(`(at
|
|
36
|
+
console.warn(`(at UnstyledDigit.tsx) incompatible value: ${value.toString()}`);
|
|
37
37
|
return ((0, jsx_runtime_1.jsx)("div", Object.assign({ "aria-label": v }, rest, { className: (0, clsx_1.default)('digit unknown', rest.className) })));
|
|
38
38
|
};
|
|
39
39
|
exports.Digit = Digit;
|
|
@@ -51,7 +51,8 @@ function valueToType(v) {
|
|
|
51
51
|
return undefined;
|
|
52
52
|
}
|
|
53
53
|
function valueToSegments(v) {
|
|
54
|
-
|
|
54
|
+
var _a;
|
|
55
|
+
const str = (_a = v === null || v === void 0 ? void 0 : v.toString()) !== null && _a !== void 0 ? _a : '';
|
|
55
56
|
if (str.toLowerCase() === 'am')
|
|
56
57
|
return { AM: true };
|
|
57
58
|
if (str.toLowerCase() === 'pm')
|
|
@@ -14,7 +14,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
14
14
|
exports.UnstyledDigits = void 0;
|
|
15
15
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
16
|
const __1 = require("..");
|
|
17
|
-
//import './digit.css';
|
|
18
17
|
const meta = {
|
|
19
18
|
title: 'Example/UnstyledDigit',
|
|
20
19
|
component: __1.UnstyledDigit,
|
|
@@ -20,6 +20,6 @@ const clsx_1 = __importDefault(require("clsx"));
|
|
|
20
20
|
const utils_1 = require("./utils");
|
|
21
21
|
const AmpmSegments = (_a) => {
|
|
22
22
|
var { className, off, shape = 'default', AM, PM } = _a, rest = __rest(_a, ["className", "off", "shape", "AM", "PM"]);
|
|
23
|
-
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('digit ampm', (0, utils_1.shapeCx)(shape), className) }, rest, { children: [(0, jsx_runtime_1.jsx)("code", { className: "aria-label", children: rest['aria-label'] }), (0, jsx_runtime_1.jsxs)("div", { className: "opacity-wrapper off", children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment AM', (0, utils_1.onOffCx)(AM, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment PM', (0, utils_1.onOffCx)(PM, off)) })] }), (0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.default)('opacity-wrapper on', off && 'off'), children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment AM', (0, utils_1.onOffCx)(AM, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment PM', (0, utils_1.onOffCx)(PM, off)) })] })] })));
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('digit ampm', (0, utils_1.shapeCx)(shape), className) }, rest, { children: [(0, jsx_runtime_1.jsx)("code", { className: "aria-label", "aria-hidden": "true", children: rest['aria-label'] }), (0, jsx_runtime_1.jsxs)("div", { className: "opacity-wrapper off", children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment AM', (0, utils_1.onOffCx)(AM, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment PM', (0, utils_1.onOffCx)(PM, off)) })] }), (0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.default)('opacity-wrapper on', off && 'off'), children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment AM', (0, utils_1.onOffCx)(AM, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment PM', (0, utils_1.onOffCx)(PM, off)) })] })] })));
|
|
24
24
|
};
|
|
25
25
|
exports.AmpmSegments = AmpmSegments;
|
|
@@ -20,6 +20,6 @@ const clsx_1 = __importDefault(require("clsx"));
|
|
|
20
20
|
const utils_1 = require("./utils");
|
|
21
21
|
const ColonSegments = (_a) => {
|
|
22
22
|
var { className, off, shape = 'default', D1, D2 } = _a, rest = __rest(_a, ["className", "off", "shape", "D1", "D2"]);
|
|
23
|
-
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('digit colon', (0, utils_1.shapeCx)(shape), className) }, rest, { children: [(0, jsx_runtime_1.jsx)("code", { className: "aria-label", children: rest['aria-label'] }), (0, jsx_runtime_1.jsxs)("div", { className: "opacity-wrapper off", children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D1', (0, utils_1.onOffCx)(D1, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D2', (0, utils_1.onOffCx)(D2, off)) })] }), (0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.default)('opacity-wrapper on', off && 'off'), children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D1', (0, utils_1.onOffCx)(D1, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D2', (0, utils_1.onOffCx)(D2, off)) })] })] })));
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('digit colon', (0, utils_1.shapeCx)(shape), className) }, rest, { children: [(0, jsx_runtime_1.jsx)("code", { className: "aria-label", "aria-hidden": "true", children: rest['aria-label'] }), (0, jsx_runtime_1.jsxs)("div", { className: "opacity-wrapper off", children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D1', (0, utils_1.onOffCx)(D1, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D2', (0, utils_1.onOffCx)(D2, off)) })] }), (0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.default)('opacity-wrapper on', off && 'off'), children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D1', (0, utils_1.onOffCx)(D1, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D2', (0, utils_1.onOffCx)(D2, off)) })] })] })));
|
|
24
24
|
};
|
|
25
25
|
exports.ColonSegments = ColonSegments;
|
|
@@ -20,6 +20,6 @@ const clsx_1 = __importDefault(require("clsx"));
|
|
|
20
20
|
const utils_1 = require("./utils");
|
|
21
21
|
const DigitSegments = (_a) => {
|
|
22
22
|
var { className, off, shape = 'default', A, B, C, D, E, F, G } = _a, rest = __rest(_a, ["className", "off", "shape", "A", "B", "C", "D", "E", "F", "G"]);
|
|
23
|
-
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('digit', (0, utils_1.shapeCx)(shape), className) }, rest, { children: [(0, jsx_runtime_1.jsx)("code", { className: "aria-label", children: rest['aria-label'] }), (0, jsx_runtime_1.jsxs)("div", { className: "opacity-wrapper off", children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment A horizontal', (0, utils_1.onOffCx)(A, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment B vertical', (0, utils_1.onOffCx)(B, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment C vertical', (0, utils_1.onOffCx)(C, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D horizontal', (0, utils_1.onOffCx)(D, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment E vertical', (0, utils_1.onOffCx)(E, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment F vertical', (0, utils_1.onOffCx)(F, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment G horizontal', (0, utils_1.onOffCx)(G, off)) })] }), (0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.default)('opacity-wrapper on', off && 'off'), children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment A horizontal', (0, utils_1.onOffCx)(A, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment B vertical', (0, utils_1.onOffCx)(B, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment C vertical', (0, utils_1.onOffCx)(C, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D horizontal', (0, utils_1.onOffCx)(D, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment E vertical', (0, utils_1.onOffCx)(E, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment F vertical', (0, utils_1.onOffCx)(F, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment G horizontal', (0, utils_1.onOffCx)(G, off)) })] })] })));
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('digit', (0, utils_1.shapeCx)(shape), className) }, rest, { children: [(0, jsx_runtime_1.jsx)("code", { className: "aria-label", "aria-hidden": "true", children: rest['aria-label'] }), (0, jsx_runtime_1.jsxs)("div", { className: "opacity-wrapper off", children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment A horizontal', (0, utils_1.onOffCx)(A, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment B vertical', (0, utils_1.onOffCx)(B, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment C vertical', (0, utils_1.onOffCx)(C, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D horizontal', (0, utils_1.onOffCx)(D, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment E vertical', (0, utils_1.onOffCx)(E, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment F vertical', (0, utils_1.onOffCx)(F, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment G horizontal', (0, utils_1.onOffCx)(G, off)) })] }), (0, jsx_runtime_1.jsxs)("div", { className: (0, clsx_1.default)('opacity-wrapper on', off && 'off'), children: [(0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment A horizontal', (0, utils_1.onOffCx)(A, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment B vertical', (0, utils_1.onOffCx)(B, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment C vertical', (0, utils_1.onOffCx)(C, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment D horizontal', (0, utils_1.onOffCx)(D, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment E vertical', (0, utils_1.onOffCx)(E, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment F vertical', (0, utils_1.onOffCx)(F, off)) }), (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment G horizontal', (0, utils_1.onOffCx)(G, off)) })] })] })));
|
|
24
24
|
};
|
|
25
25
|
exports.DigitSegments = DigitSegments;
|
|
@@ -20,6 +20,6 @@ const clsx_1 = __importDefault(require("clsx"));
|
|
|
20
20
|
const utils_1 = require("./utils");
|
|
21
21
|
const DotSegments = (_a) => {
|
|
22
22
|
var { className, off, shape = 'default', DP } = _a, rest = __rest(_a, ["className", "off", "shape", "DP"]);
|
|
23
|
-
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('digit dot', (0, utils_1.shapeCx)(shape), className) }, rest, { children: [(0, jsx_runtime_1.jsx)("code", { className: "aria-label", children: rest['aria-label'] }), (0, jsx_runtime_1.jsx)("div", { className: "opacity-wrapper off", children: (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment DP', (0, utils_1.onOffCx)(DP, off)) }) }), (0, jsx_runtime_1.jsx)("div", { className: (0, clsx_1.default)('opacity-wrapper on', off && 'off'), children: (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment DP', (0, utils_1.onOffCx)(DP, off)) }) })] })));
|
|
23
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: (0, clsx_1.default)('digit dot', (0, utils_1.shapeCx)(shape), className) }, rest, { children: [(0, jsx_runtime_1.jsx)("code", { className: "aria-label", "aria-hidden": "true", children: rest['aria-label'] }), (0, jsx_runtime_1.jsx)("div", { className: "opacity-wrapper off", children: (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment DP', (0, utils_1.onOffCx)(DP, off)) }) }), (0, jsx_runtime_1.jsx)("div", { className: (0, clsx_1.default)('opacity-wrapper on', off && 'off'), children: (0, jsx_runtime_1.jsx)("i", { className: (0, clsx_1.default)('segment DP', (0, utils_1.onOffCx)(DP, off)) }) })] })));
|
|
24
24
|
};
|
|
25
25
|
exports.DotSegments = DotSegments;
|
package/lib/Digit/digit.css
CHANGED
|
@@ -31,12 +31,9 @@
|
|
|
31
31
|
/* computed values */
|
|
32
32
|
--len: var(--length);
|
|
33
33
|
--thk: var(--thickness);
|
|
34
|
-
--thk-minus: calc(var(--thk) * -1);
|
|
35
34
|
--thk-half: calc(var(--thk) / 2);
|
|
36
|
-
--thk-half-minus: calc(var(--thk) / -2);
|
|
37
35
|
|
|
38
36
|
--spc: calc(var(--spacing) / 1.4142); /* divided by sqrt(2) */
|
|
39
|
-
--spc-minus: calc(var(--spc) * -1);
|
|
40
37
|
--crn: var(--corner-shift);
|
|
41
38
|
|
|
42
39
|
--radius-round: calc(var(--thk) * 0.33);
|
|
@@ -270,8 +267,37 @@
|
|
|
270
267
|
border-radius: var(--radius-pill);
|
|
271
268
|
}
|
|
272
269
|
&.shape-calculator {
|
|
273
|
-
|
|
274
|
-
|
|
270
|
+
--r: calc(var(--thk) * 1.2);
|
|
271
|
+
}
|
|
272
|
+
& {
|
|
273
|
+
--r: calc(var(--thk) * 0);
|
|
274
|
+
|
|
275
|
+
clip-path: polygon(
|
|
276
|
+
/* top-left corner */ 0px var(--r),
|
|
277
|
+
calc(var(--r) * 0.0495) calc(var(--r) * 0.691),
|
|
278
|
+
calc(var(--r) * 0.191) calc(var(--r) * 0.4045),
|
|
279
|
+
calc(var(--r) * 0.4045) calc(var(--r) * 0.191),
|
|
280
|
+
calc(var(--r) * 0.691) calc(var(--r) * 0.0495),
|
|
281
|
+
var(--r) 0px,
|
|
282
|
+
/* top-right corner */ calc(var(--dw) - var(--r)) 0px,
|
|
283
|
+
calc(var(--dw) - var(--r) * 0.691) calc(var(--r) * 0.0495),
|
|
284
|
+
calc(var(--dw) - var(--r) * 0.4045) calc(var(--r) * 0.191),
|
|
285
|
+
calc(var(--dw) - var(--r) * 0.191) calc(var(--r) * 0.4045),
|
|
286
|
+
calc(var(--dw) - var(--r) * 0.0495) calc(var(--r) * 0.691),
|
|
287
|
+
var(--dw) var(--r),
|
|
288
|
+
/* bottom-right corner */ var(--dw) calc(var(--dh) - var(--r)),
|
|
289
|
+
calc(var(--dw) - var(--r) * 0.0495) calc(var(--dh) - var(--r) * 0.691),
|
|
290
|
+
calc(var(--dw) - var(--r) * 0.191) calc(var(--dh) - var(--r) * 0.4045),
|
|
291
|
+
calc(var(--dw) - var(--r) * 0.4045) calc(var(--dh) - var(--r) * 0.191),
|
|
292
|
+
calc(var(--dw) - var(--r) * 0.691) calc(var(--dh) - var(--r) * 0.0495),
|
|
293
|
+
calc(var(--dw) - var(--r)) var(--dh),
|
|
294
|
+
/* bottom-left corner */ var(--r) var(--dh),
|
|
295
|
+
calc(var(--r) * 0.691) calc(var(--dh) - var(--r) * 0.0495),
|
|
296
|
+
calc(var(--r) * 0.4045) calc(var(--dh) - var(--r) * 0.191),
|
|
297
|
+
calc(var(--r) * 0.191) calc(var(--dh) - var(--r) * 0.4045),
|
|
298
|
+
calc(var(--r) * 0.0495) calc(var(--dh) - var(--r) * 0.691),
|
|
299
|
+
0px calc(var(--dh) - var(--r))
|
|
300
|
+
);
|
|
275
301
|
|
|
276
302
|
.segment.segment {
|
|
277
303
|
--crn: var(--thk);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const css = {
|
|
4
4
|
src: `src/Digit/digit.css`,
|
|
5
|
-
hash: `
|
|
5
|
+
hash: `27bilryv8nf`,
|
|
6
6
|
content: `
|
|
7
7
|
/**
|
|
8
8
|
* A
|
|
@@ -37,12 +37,9 @@ const css = {
|
|
|
37
37
|
/* computed values */
|
|
38
38
|
--len: var(--length);
|
|
39
39
|
--thk: var(--thickness);
|
|
40
|
-
--thk-minus: calc(var(--thk) * -1);
|
|
41
40
|
--thk-half: calc(var(--thk) / 2);
|
|
42
|
-
--thk-half-minus: calc(var(--thk) / -2);
|
|
43
41
|
|
|
44
42
|
--spc: calc(var(--spacing) / 1.4142); /* divided by sqrt(2) */
|
|
45
|
-
--spc-minus: calc(var(--spc) * -1);
|
|
46
43
|
--crn: var(--corner-shift);
|
|
47
44
|
|
|
48
45
|
--radius-round: calc(var(--thk) * 0.33);
|
|
@@ -276,8 +273,37 @@ const css = {
|
|
|
276
273
|
border-radius: var(--radius-pill);
|
|
277
274
|
}
|
|
278
275
|
&.shape-calculator {
|
|
279
|
-
|
|
280
|
-
|
|
276
|
+
--r: calc(var(--thk) * 1.2);
|
|
277
|
+
}
|
|
278
|
+
& {
|
|
279
|
+
--r: calc(var(--thk) * 0);
|
|
280
|
+
|
|
281
|
+
clip-path: polygon(
|
|
282
|
+
/* top-left corner */ 0px var(--r),
|
|
283
|
+
calc(var(--r) * 0.0495) calc(var(--r) * 0.691),
|
|
284
|
+
calc(var(--r) * 0.191) calc(var(--r) * 0.4045),
|
|
285
|
+
calc(var(--r) * 0.4045) calc(var(--r) * 0.191),
|
|
286
|
+
calc(var(--r) * 0.691) calc(var(--r) * 0.0495),
|
|
287
|
+
var(--r) 0px,
|
|
288
|
+
/* top-right corner */ calc(var(--dw) - var(--r)) 0px,
|
|
289
|
+
calc(var(--dw) - var(--r) * 0.691) calc(var(--r) * 0.0495),
|
|
290
|
+
calc(var(--dw) - var(--r) * 0.4045) calc(var(--r) * 0.191),
|
|
291
|
+
calc(var(--dw) - var(--r) * 0.191) calc(var(--r) * 0.4045),
|
|
292
|
+
calc(var(--dw) - var(--r) * 0.0495) calc(var(--r) * 0.691),
|
|
293
|
+
var(--dw) var(--r),
|
|
294
|
+
/* bottom-right corner */ var(--dw) calc(var(--dh) - var(--r)),
|
|
295
|
+
calc(var(--dw) - var(--r) * 0.0495) calc(var(--dh) - var(--r) * 0.691),
|
|
296
|
+
calc(var(--dw) - var(--r) * 0.191) calc(var(--dh) - var(--r) * 0.4045),
|
|
297
|
+
calc(var(--dw) - var(--r) * 0.4045) calc(var(--dh) - var(--r) * 0.191),
|
|
298
|
+
calc(var(--dw) - var(--r) * 0.691) calc(var(--dh) - var(--r) * 0.0495),
|
|
299
|
+
calc(var(--dw) - var(--r)) var(--dh),
|
|
300
|
+
/* bottom-left corner */ var(--r) var(--dh),
|
|
301
|
+
calc(var(--r) * 0.691) calc(var(--dh) - var(--r) * 0.0495),
|
|
302
|
+
calc(var(--r) * 0.4045) calc(var(--dh) - var(--r) * 0.191),
|
|
303
|
+
calc(var(--r) * 0.191) calc(var(--dh) - var(--r) * 0.4045),
|
|
304
|
+
calc(var(--r) * 0.0495) calc(var(--dh) - var(--r) * 0.691),
|
|
305
|
+
0px calc(var(--dh) - var(--r))
|
|
306
|
+
);
|
|
281
307
|
|
|
282
308
|
.segment.segment {
|
|
283
309
|
--crn: var(--thk);
|
|
@@ -41,7 +41,7 @@ class StyleInjector {
|
|
|
41
41
|
return StyleInjector.instance; // singleton
|
|
42
42
|
}
|
|
43
43
|
increase(s) {
|
|
44
|
-
if (this.count(s) === 0)
|
|
44
|
+
if (this.count(s) === 0 && typeof document !== 'undefined')
|
|
45
45
|
document.head.appendChild(createStyleElement(s));
|
|
46
46
|
if (this.count(s) >= 0)
|
|
47
47
|
__classPrivateFieldGet(this, _StyleInjector_styles, "f").set(s.id, this.count(s) + 1);
|
|
@@ -50,7 +50,7 @@ class StyleInjector {
|
|
|
50
50
|
var _a;
|
|
51
51
|
if (this.count(s) > 0)
|
|
52
52
|
__classPrivateFieldGet(this, _StyleInjector_styles, "f").set(s.id, this.count(s) - 1);
|
|
53
|
-
if (this.count(s) === 0)
|
|
53
|
+
if (this.count(s) === 0 && typeof document !== 'undefined')
|
|
54
54
|
(_a = document.head.querySelector(`#${s.id}`)) === null || _a === void 0 ? void 0 : _a.remove();
|
|
55
55
|
}
|
|
56
56
|
count(s) {
|
|
@@ -69,16 +69,10 @@ const createStyleElement = (style) => {
|
|
|
69
69
|
return el;
|
|
70
70
|
};
|
|
71
71
|
const wrapWithScope = (css, scopeAttribute) => {
|
|
72
|
-
|
|
73
|
-
`@scope ([${scopeAttribute}]) {` +
|
|
74
|
-
`:scope { display: contents; }` +
|
|
75
|
-
`${css}` +
|
|
76
|
-
`}`;
|
|
77
|
-
const isolated = `[${scopeAttribute}] { display: contents; }` +
|
|
72
|
+
return (`[${scopeAttribute}] { display: contents; }` +
|
|
78
73
|
`[${scopeAttribute}] {` +
|
|
79
74
|
`${css}` +
|
|
80
|
-
`}
|
|
81
|
-
return isolated;
|
|
75
|
+
`}`);
|
|
82
76
|
};
|
|
83
77
|
// https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript
|
|
84
78
|
const cyrb53string = (str, seed = 0) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-led-digit",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.18",
|
|
4
4
|
"description": "react component for 7-segment display (digit), includes dot, colon and am-pm digits",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"files": [
|
|
@@ -36,6 +36,10 @@
|
|
|
36
36
|
"engines": {
|
|
37
37
|
"node": ">=12.0"
|
|
38
38
|
},
|
|
39
|
+
"peerDependencies": {
|
|
40
|
+
"react": ">=16.8.0",
|
|
41
|
+
"react-dom": ">=16.8.0"
|
|
42
|
+
},
|
|
39
43
|
"dependencies": {
|
|
40
44
|
"clsx": "^2.1.1"
|
|
41
45
|
},
|