@openameba/spindle-ui 3.1.3 → 3.1.4
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 3.1.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#1613](https://github.com/openameba/spindle/pull/1613) [`9663434`](https://github.com/openameba/spindle/commit/966343454ae60c783acc0e0e50d8563c0c2098fe) Thanks [@herablog](https://github.com/herablog)! - Fix DropDown disabled state styling to match the appearance when a selected option is disabled
|
|
8
|
+
|
|
3
9
|
## 3.1.3
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropDown.d.ts","sourceRoot":"","sources":["../../../src/Form/DropDown/DropDown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAKvE,UAAU,KACR,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IACxE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;CACxD;AAID,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"DropDown.d.ts","sourceRoot":"","sources":["../../../src/Form/DropDown/DropDown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAKvE,UAAU,KACR,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IACxE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;CACxD;AAID,eAAO,MAAM,QAAQ,iFAgEnB,CAAC"}
|
|
@@ -64,17 +64,17 @@ var use_callback_ref_1 = require("use-callback-ref");
|
|
|
64
64
|
var ChevronDownBold_1 = __importDefault(require("../../Icon/ChevronDownBold"));
|
|
65
65
|
var BLOCK_NAME = 'spui-DropDown';
|
|
66
66
|
exports.DropDown = (0, react_1.forwardRef)(function DropDown(_a, ref) {
|
|
67
|
-
var children = _a.children, _b = _a.hasError, hasError = _b === void 0 ? false : _b, onChange = _a.onChange, rest = __rest(_a, ["children", "hasError", "onChange"]);
|
|
67
|
+
var children = _a.children, _b = _a.hasError, hasError = _b === void 0 ? false : _b, onChange = _a.onChange, selectDisabled = _a.disabled, rest = __rest(_a, ["children", "hasError", "onChange", "disabled"]);
|
|
68
68
|
var selectEl = (0, react_1.useRef)(null);
|
|
69
69
|
var _c = (0, react_1.useState)(''), text = _c[0], setText = _c[1];
|
|
70
|
-
var _d = (0, react_1.useState)(false),
|
|
70
|
+
var _d = (0, react_1.useState)(false), optionDisabled = _d[0], setOptionDisabled = _d[1];
|
|
71
71
|
var update = function () {
|
|
72
72
|
if (selectEl === null || selectEl === void 0 ? void 0 : selectEl.current) {
|
|
73
73
|
var selectedEl = selectEl.current.options[selectEl.current.selectedIndex];
|
|
74
74
|
var value = selectedEl.text;
|
|
75
|
-
var
|
|
75
|
+
var disabled = selectedEl.disabled;
|
|
76
76
|
setText(value);
|
|
77
|
-
|
|
77
|
+
setOptionDisabled(disabled);
|
|
78
78
|
}
|
|
79
79
|
};
|
|
80
80
|
var handleChange = function (event) {
|
|
@@ -85,9 +85,10 @@ exports.DropDown = (0, react_1.forwardRef)(function DropDown(_a, ref) {
|
|
|
85
85
|
};
|
|
86
86
|
// Update text once
|
|
87
87
|
(0, react_1.useEffect)(update, []);
|
|
88
|
+
var isActive = !selectDisabled && !optionDisabled;
|
|
88
89
|
return (react_1.default.createElement("label", { className: [
|
|
89
90
|
"".concat(BLOCK_NAME, "-label"),
|
|
90
|
-
|
|
91
|
+
isActive ? 'is-active' : '',
|
|
91
92
|
hasError ? 'is-error' : '',
|
|
92
93
|
]
|
|
93
94
|
.filter(Boolean)
|
|
@@ -95,7 +96,7 @@ exports.DropDown = (0, react_1.forwardRef)(function DropDown(_a, ref) {
|
|
|
95
96
|
react_1.default.createElement("span", { className: "".concat(BLOCK_NAME, "-visual") }, text),
|
|
96
97
|
react_1.default.createElement("span", { className: "".concat(BLOCK_NAME, "-icon") },
|
|
97
98
|
react_1.default.createElement(ChevronDownBold_1.default, { "aria-hidden": "true" })),
|
|
98
|
-
react_1.default.createElement("select", __assign({ className: "".concat(BLOCK_NAME, "-select"), ref: (0, use_callback_ref_1.useMergeRefs)([selectEl, ref]), onChange: handleChange }, rest), children),
|
|
99
|
+
react_1.default.createElement("select", __assign({ className: "".concat(BLOCK_NAME, "-select"), ref: (0, use_callback_ref_1.useMergeRefs)([selectEl, ref]), onChange: handleChange, disabled: selectDisabled }, rest), children),
|
|
99
100
|
react_1.default.createElement("span", { className: "".concat(BLOCK_NAME, "-outline") })));
|
|
100
101
|
});
|
|
101
102
|
//# sourceMappingURL=DropDown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropDown.js","sourceRoot":"","sources":["../../../src/Form/DropDown/DropDown.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAuE;AACvE,qDAAgD;AAEhD,+EAAyD;AASzD,IAAM,UAAU,GAAG,eAAe,CAAC;AAEtB,QAAA,QAAQ,GAAG,IAAA,kBAAU,EAA2B,SAAS,QAAQ,CAC5E,
|
|
1
|
+
{"version":3,"file":"DropDown.js","sourceRoot":"","sources":["../../../src/Form/DropDown/DropDown.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAuE;AACvE,qDAAgD;AAEhD,+EAAyD;AASzD,IAAM,UAAU,GAAG,eAAe,CAAC;AAEtB,QAAA,QAAQ,GAAG,IAAA,kBAAU,EAA2B,SAAS,QAAQ,CAC5E,EAMQ,EACR,GAAG;IAND,IAAA,QAAQ,cAAA,EACR,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA,EAChB,QAAQ,cAAA,EACE,cAAc,cAAA,EACrB,IAAI,cALT,gDAMC,CADQ;IAIT,IAAM,QAAQ,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IAE3C,IAAA,KAAkB,IAAA,gBAAQ,EAAC,EAAE,CAAC,EAA7B,IAAI,QAAA,EAAE,OAAO,QAAgB,CAAC;IAC/B,IAAA,KAAsC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAApD,cAAc,QAAA,EAAE,iBAAiB,QAAmB,CAAC;IAE5D,IAAM,MAAM,GAAG;QACb,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE,CAAC;YACtB,IAAM,UAAU,GACd,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAC3D,IAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;YAC9B,IAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,KAA2C;QAC/D,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;YACnC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,CAAC;IACX,CAAC,CAAC;IAEF,mBAAmB;IACnB,IAAA,iBAAS,EAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEtB,IAAM,QAAQ,GAAG,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC;IAEpD,OAAO,CACL,yCACE,SAAS,EAAE;YACT,UAAG,UAAU,WAAQ;YACrB,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YAC3B,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;SAC3B;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC;QAEZ,wCAAM,SAAS,EAAE,UAAG,UAAU,YAAS,IAAG,IAAI,CAAQ;QACtD,wCAAM,SAAS,EAAE,UAAG,UAAU,UAAO;YACnC,8BAAC,yBAAe,mBAAa,MAAM,GAAG,CACjC;QACP,mDACE,SAAS,EAAE,UAAG,UAAU,YAAS,EACjC,GAAG,EAAE,IAAA,+BAAY,EAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAClC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,cAAc,IACpB,IAAI,GAEP,QAAQ,CACF;QACT,wCAAM,SAAS,EAAE,UAAG,UAAU,aAAU,GAAS,CAC3C,CACT,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -2,17 +2,17 @@ import React, { forwardRef, useEffect, useRef, useState } from 'react';
|
|
|
2
2
|
import { useMergeRefs } from 'use-callback-ref';
|
|
3
3
|
import ChevronDownBold from "../../Icon/ChevronDownBold.mjs";
|
|
4
4
|
const BLOCK_NAME = 'spui-DropDown';
|
|
5
|
-
export const DropDown = forwardRef(function DropDown({ children, hasError = false, onChange, ...rest }, ref) {
|
|
5
|
+
export const DropDown = forwardRef(function DropDown({ children, hasError = false, onChange, disabled: selectDisabled, ...rest }, ref) {
|
|
6
6
|
const selectEl = useRef(null);
|
|
7
7
|
const [text, setText] = useState('');
|
|
8
|
-
const [
|
|
8
|
+
const [optionDisabled, setOptionDisabled] = useState(false);
|
|
9
9
|
const update = () => {
|
|
10
10
|
if (selectEl?.current) {
|
|
11
11
|
const selectedEl = selectEl.current.options[selectEl.current.selectedIndex];
|
|
12
12
|
const value = selectedEl.text;
|
|
13
13
|
const disabled = selectedEl.disabled;
|
|
14
14
|
setText(value);
|
|
15
|
-
|
|
15
|
+
setOptionDisabled(disabled);
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
const handleChange = (event) => {
|
|
@@ -23,9 +23,10 @@ export const DropDown = forwardRef(function DropDown({ children, hasError = fals
|
|
|
23
23
|
};
|
|
24
24
|
// Update text once
|
|
25
25
|
useEffect(update, []);
|
|
26
|
+
const isActive = !selectDisabled && !optionDisabled;
|
|
26
27
|
return (React.createElement("label", { className: [
|
|
27
28
|
`${BLOCK_NAME}-label`,
|
|
28
|
-
|
|
29
|
+
isActive ? 'is-active' : '',
|
|
29
30
|
hasError ? 'is-error' : '',
|
|
30
31
|
]
|
|
31
32
|
.filter(Boolean)
|
|
@@ -33,6 +34,6 @@ export const DropDown = forwardRef(function DropDown({ children, hasError = fals
|
|
|
33
34
|
React.createElement("span", { className: `${BLOCK_NAME}-visual` }, text),
|
|
34
35
|
React.createElement("span", { className: `${BLOCK_NAME}-icon` },
|
|
35
36
|
React.createElement(ChevronDownBold, { "aria-hidden": "true" })),
|
|
36
|
-
React.createElement("select", { className: `${BLOCK_NAME}-select`, ref: useMergeRefs([selectEl, ref]), onChange: handleChange, ...rest }, children),
|
|
37
|
+
React.createElement("select", { className: `${BLOCK_NAME}-select`, ref: useMergeRefs([selectEl, ref]), onChange: handleChange, disabled: selectDisabled, ...rest }, children),
|
|
37
38
|
React.createElement("span", { className: `${BLOCK_NAME}-outline` })));
|
|
38
39
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openameba/spindle-ui",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.4",
|
|
4
4
|
"main": "./index.js",
|
|
5
5
|
"module": "./index.mjs",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -10,10 +10,7 @@
|
|
|
10
10
|
],
|
|
11
11
|
"scripts": {
|
|
12
12
|
"generate": "scaffdog generate",
|
|
13
|
-
"test": "run-p size
|
|
14
|
-
"lint": "yarn lint:style",
|
|
15
|
-
"lint:style": "stylelint '**/*.css'",
|
|
16
|
-
"fix": "yarn lint:style --fix",
|
|
13
|
+
"test": "run-p size test:interaction",
|
|
17
14
|
"test:interaction": "jest",
|
|
18
15
|
"presize": "yarn build",
|
|
19
16
|
"size": "bundlewatch --config .bundlewatch.config.js",
|
|
@@ -66,13 +63,13 @@
|
|
|
66
63
|
},
|
|
67
64
|
"devDependencies": {
|
|
68
65
|
"@figma/code-connect": "1.3.8",
|
|
69
|
-
"@storybook/addon-a11y": "10.0.
|
|
70
|
-
"@storybook/addon-docs": "10.0.
|
|
66
|
+
"@storybook/addon-a11y": "10.0.6",
|
|
67
|
+
"@storybook/addon-docs": "10.0.6",
|
|
71
68
|
"@storybook/addon-webpack5-compiler-swc": "4.0.1",
|
|
72
|
-
"@storybook/react": "10.0.
|
|
73
|
-
"@storybook/react-webpack5": "10.0.
|
|
69
|
+
"@storybook/react": "10.0.6",
|
|
70
|
+
"@storybook/react-webpack5": "10.0.6",
|
|
74
71
|
"@svgr/cli": "8.1.0",
|
|
75
|
-
"@swc/core": "1.
|
|
72
|
+
"@swc/core": "1.15.1",
|
|
76
73
|
"@swc/jest": "0.2.39",
|
|
77
74
|
"@testing-library/dom": "10.4.1",
|
|
78
75
|
"@testing-library/jest-dom": "6.9.1",
|
|
@@ -86,7 +83,7 @@
|
|
|
86
83
|
"dialog-polyfill": "0.5.6",
|
|
87
84
|
"dotenv": "17.2.3",
|
|
88
85
|
"figma-api": "1.12.0",
|
|
89
|
-
"firebase-tools": "14.
|
|
86
|
+
"firebase-tools": "14.24.1",
|
|
90
87
|
"jest": "30.2.0",
|
|
91
88
|
"jest-environment-jsdom": "30.2.0",
|
|
92
89
|
"postcss": "8.5.6",
|
|
@@ -99,10 +96,6 @@
|
|
|
99
96
|
"reg-publish-gcs-plugin": "0.14.4",
|
|
100
97
|
"reg-suit": "0.14.5",
|
|
101
98
|
"scaffdog": "4.1.0",
|
|
102
|
-
"storybook": "10.0.
|
|
103
|
-
"stylelint": "16.25.0",
|
|
104
|
-
"stylelint-config-standard": "39.0.1",
|
|
105
|
-
"stylelint-order": "7.0.0",
|
|
106
|
-
"stylelint-selector-bem-pattern": "4.0.1"
|
|
99
|
+
"storybook": "10.0.6"
|
|
107
100
|
}
|
|
108
101
|
}
|