newspack-components 4.7.0 → 4.8.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/CHANGELOG.md +20 -0
- package/DEVELOPMENT.md +42 -21
- package/dist/cjs/_mixins.scss +13 -0
- package/dist/cjs/_variables.scss +12 -0
- package/dist/cjs/action-card/index.js +18 -10
- package/dist/cjs/action-card/index.test.js +91 -0
- package/dist/cjs/action-card/style.scss +2 -40
- package/dist/cjs/button/index.js +8 -3
- package/dist/cjs/button/index.test.js +61 -5
- package/dist/cjs/card/core-card.js +0 -2
- package/dist/cjs/card/style-core.scss +7 -5
- package/dist/cjs/card-feature/index.js +75 -61
- package/dist/cjs/card-feature/index.test.js +396 -54
- package/dist/cjs/card-feature/style.scss +20 -31
- package/dist/cjs/card-form/index.js +5 -5
- package/dist/cjs/card-sortable-list/index.js +5 -3
- package/dist/cjs/card-sortable-list/index.test.js +50 -0
- package/dist/cjs/collapsible-group/context.js +19 -0
- package/dist/cjs/collapsible-group/index.js +24 -0
- package/dist/cjs/collapsible-group/index.test.js +215 -0
- package/dist/cjs/collapsible-group/item.js +61 -0
- package/dist/cjs/collapsible-group/root.js +62 -0
- package/dist/cjs/collapsible-group/style.scss +47 -0
- package/dist/cjs/collapsible-group/types.js +5 -0
- package/dist/cjs/empty-state/actions.js +45 -0
- package/dist/cjs/empty-state/context.js +41 -0
- package/dist/cjs/empty-state/header.js +66 -0
- package/dist/cjs/empty-state/index.js +31 -0
- package/dist/cjs/empty-state/index.test.js +303 -0
- package/dist/cjs/empty-state/root.js +56 -0
- package/dist/cjs/empty-state/style.scss +51 -0
- package/dist/cjs/empty-state/types.js +5 -0
- package/dist/cjs/index.js +34 -20
- package/dist/cjs/info-button/index.js +59 -43
- package/dist/cjs/info-button/index.test.js +199 -0
- package/dist/cjs/info-button/style.scss +41 -9
- package/dist/cjs/modal/style.scss +12 -12
- package/dist/cjs/newspack-icon/style.scss +4 -4
- package/dist/cjs/notice/style.scss +3 -3
- package/dist/cjs/page/style.scss +16 -16
- package/dist/cjs/plugin-installer/index.js +5 -9
- package/dist/cjs/plugin-installer/style.scss +3 -14
- package/dist/cjs/section-header/index.js +31 -18
- package/dist/cjs/section-header/index.test.js +40 -0
- package/dist/cjs/section-header/style.scss +22 -6
- package/dist/cjs/settings/DateRangeSetting.js +309 -0
- package/dist/cjs/settings/SettingsSection.js +19 -5
- package/dist/cjs/settings/SettingsSection.test.js +49 -0
- package/dist/cjs/settings/index.js +3 -1
- package/dist/cjs/settings/style.scss +40 -7
- package/dist/cjs/stat-card/body.js +41 -0
- package/dist/cjs/stat-card/constants.js +11 -0
- package/dist/cjs/stat-card/context.js +54 -0
- package/dist/cjs/stat-card/delta.js +91 -0
- package/dist/cjs/stat-card/footer.js +72 -0
- package/dist/cjs/stat-card/index.js +47 -0
- package/dist/cjs/stat-card/index.test.js +938 -0
- package/dist/cjs/stat-card/label.js +66 -0
- package/dist/cjs/stat-card/root.js +69 -0
- package/dist/cjs/stat-card/secondary.js +38 -0
- package/dist/cjs/stat-card/style.scss +89 -0
- package/dist/cjs/stat-card/types.js +5 -0
- package/dist/cjs/stat-card/value.js +78 -0
- package/dist/cjs/status-indicator/index.js +66 -0
- package/dist/cjs/status-indicator/index.test.js +101 -0
- package/dist/cjs/status-indicator/statuses.js +39 -0
- package/dist/cjs/status-indicator/style.scss +9 -0
- package/dist/cjs/status-indicator/types.js +5 -0
- package/dist/cjs/style.scss +9 -9
- package/dist/cjs/tabbed-navigation/style.scss +6 -4
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/web-preview/style.scss +11 -11
- package/dist/cjs/with-wizard/style.scss +10 -10
- package/dist/cjs/with-wizard-screen/style.scss +9 -9
- package/dist/cjs/wizard/index.js +33 -4
- package/dist/cjs/wizard/store/index.js +23 -1
- package/dist/esm/_mixins.scss +13 -0
- package/dist/esm/_variables.scss +12 -0
- package/dist/esm/action-card/index.js +18 -10
- package/dist/esm/action-card/index.test.js +89 -0
- package/dist/esm/action-card/style.scss +2 -40
- package/dist/esm/button/index.js +9 -4
- package/dist/esm/button/index.test.js +63 -5
- package/dist/esm/card/core-card.js +0 -2
- package/dist/esm/card/style-core.scss +7 -5
- package/dist/esm/card-feature/index.js +78 -62
- package/dist/esm/card-feature/index.test.js +397 -55
- package/dist/esm/card-feature/style.scss +20 -31
- package/dist/esm/card-form/index.js +5 -5
- package/dist/esm/card-sortable-list/index.js +6 -4
- package/dist/esm/card-sortable-list/index.test.js +46 -0
- package/dist/esm/collapsible-group/context.js +13 -0
- package/dist/esm/collapsible-group/index.js +17 -0
- package/dist/esm/collapsible-group/index.test.js +215 -0
- package/dist/esm/collapsible-group/item.js +53 -0
- package/dist/esm/collapsible-group/root.js +54 -0
- package/dist/esm/collapsible-group/style.scss +47 -0
- package/dist/esm/collapsible-group/types.js +1 -0
- package/dist/esm/empty-state/actions.js +37 -0
- package/dist/esm/empty-state/context.js +35 -0
- package/dist/esm/empty-state/header.js +58 -0
- package/dist/esm/empty-state/index.js +23 -0
- package/dist/esm/empty-state/index.test.js +299 -0
- package/dist/esm/empty-state/root.js +56 -0
- package/dist/esm/empty-state/style.scss +51 -0
- package/dist/esm/empty-state/types.js +1 -0
- package/dist/esm/index.js +4 -2
- package/dist/esm/info-button/index.js +54 -43
- package/dist/esm/info-button/index.test.js +195 -0
- package/dist/esm/info-button/style.scss +41 -9
- package/dist/esm/modal/style.scss +12 -12
- package/dist/esm/newspack-icon/style.scss +4 -4
- package/dist/esm/notice/style.scss +3 -3
- package/dist/esm/page/style.scss +16 -16
- package/dist/esm/plugin-installer/index.js +5 -9
- package/dist/esm/plugin-installer/style.scss +3 -14
- package/dist/esm/section-header/index.js +27 -14
- package/dist/esm/section-header/index.test.js +36 -0
- package/dist/esm/section-header/style.scss +22 -6
- package/dist/esm/settings/DateRangeSetting.js +304 -0
- package/dist/esm/settings/SettingsSection.js +16 -3
- package/dist/esm/settings/SettingsSection.test.js +45 -0
- package/dist/esm/settings/index.js +3 -1
- package/dist/esm/settings/style.scss +40 -7
- package/dist/esm/stat-card/body.js +36 -0
- package/dist/esm/stat-card/constants.js +5 -0
- package/dist/esm/stat-card/context.js +48 -0
- package/dist/esm/stat-card/delta.js +86 -0
- package/dist/esm/stat-card/footer.js +67 -0
- package/dist/esm/stat-card/index.js +33 -0
- package/dist/esm/stat-card/index.test.js +939 -0
- package/dist/esm/stat-card/label.js +61 -0
- package/dist/esm/stat-card/root.js +64 -0
- package/dist/esm/stat-card/secondary.js +33 -0
- package/dist/esm/stat-card/style.scss +89 -0
- package/dist/esm/stat-card/types.js +1 -0
- package/dist/esm/stat-card/value.js +73 -0
- package/dist/esm/status-indicator/index.js +52 -0
- package/dist/esm/status-indicator/index.test.js +96 -0
- package/dist/esm/status-indicator/statuses.js +33 -0
- package/dist/esm/status-indicator/style.scss +9 -0
- package/dist/esm/status-indicator/types.js +1 -0
- package/dist/esm/style.scss +9 -9
- package/dist/esm/tabbed-navigation/style.scss +6 -4
- package/dist/esm/types.js +1 -0
- package/dist/esm/web-preview/style.scss +11 -11
- package/dist/esm/with-wizard/style.scss +10 -10
- package/dist/esm/with-wizard-screen/style.scss +9 -9
- package/dist/esm/wizard/index.js +38 -7
- package/dist/esm/wizard/store/index.js +23 -1
- package/package.json +1 -1
- package/src/_mixins.scss +13 -0
- package/src/_variables.scss +12 -0
- package/src/action-card/action-card.d.ts +3 -2
- package/src/action-card/index.js +12 -12
- package/src/action-card/index.test.js +56 -0
- package/src/action-card/style.scss +2 -40
- package/src/button/index.test.js +52 -5
- package/src/button/index.tsx +9 -4
- package/src/card/core-card.js +0 -2
- package/src/card/style-core.scss +7 -5
- package/src/card-feature/README.md +68 -27
- package/src/card-feature/index.test.js +242 -27
- package/src/card-feature/index.tsx +77 -67
- package/src/card-feature/style.scss +20 -31
- package/src/card-form/README.md +10 -10
- package/src/card-form/index.tsx +4 -8
- package/src/card-sortable-list/README.md +4 -5
- package/src/card-sortable-list/index.test.js +29 -0
- package/src/card-sortable-list/index.tsx +7 -4
- package/src/collapsible-group/README.md +50 -0
- package/src/collapsible-group/context.ts +13 -0
- package/src/collapsible-group/index.test.js +168 -0
- package/src/collapsible-group/index.tsx +17 -0
- package/src/collapsible-group/item.tsx +42 -0
- package/src/collapsible-group/root.tsx +42 -0
- package/src/collapsible-group/style.scss +47 -0
- package/src/collapsible-group/types.ts +22 -0
- package/src/drawer/README.md +2 -2
- package/src/empty-state/README.md +165 -0
- package/src/empty-state/actions.tsx +37 -0
- package/src/empty-state/context.ts +40 -0
- package/src/empty-state/header.tsx +48 -0
- package/src/empty-state/index.test.js +247 -0
- package/src/empty-state/index.tsx +22 -0
- package/src/empty-state/root.tsx +39 -0
- package/src/empty-state/style.scss +51 -0
- package/src/empty-state/types.ts +33 -0
- package/src/index.js +4 -2
- package/src/info-button/README.md +115 -0
- package/src/info-button/index.test.js +163 -0
- package/src/info-button/index.tsx +64 -0
- package/src/info-button/style.scss +41 -9
- package/src/modal/style.scss +12 -12
- package/src/newspack-icon/style.scss +4 -4
- package/src/notice/style.scss +3 -3
- package/src/page/style.scss +16 -16
- package/src/plugin-installer/index.js +3 -9
- package/src/plugin-installer/style.scss +3 -14
- package/src/section-header/index.js +27 -14
- package/src/section-header/index.test.js +28 -0
- package/src/section-header/style.scss +22 -6
- package/src/settings/DateRangeSetting.js +266 -0
- package/src/settings/SettingsSection.js +24 -4
- package/src/settings/SettingsSection.test.js +45 -0
- package/src/settings/index.js +2 -0
- package/src/settings/style.scss +40 -7
- package/src/stat-card/README.md +434 -0
- package/src/stat-card/body.tsx +28 -0
- package/src/stat-card/constants.ts +5 -0
- package/src/stat-card/context.ts +53 -0
- package/src/stat-card/delta.tsx +88 -0
- package/src/stat-card/footer.tsx +68 -0
- package/src/stat-card/index.test.js +818 -0
- package/src/stat-card/index.tsx +48 -0
- package/src/stat-card/label.tsx +61 -0
- package/src/stat-card/root.tsx +40 -0
- package/src/stat-card/secondary.tsx +27 -0
- package/src/stat-card/style.scss +89 -0
- package/src/stat-card/types.ts +84 -0
- package/src/stat-card/value.tsx +72 -0
- package/src/status-indicator/README.md +123 -0
- package/src/status-indicator/index.test.js +70 -0
- package/src/status-indicator/index.tsx +39 -0
- package/src/status-indicator/statuses.ts +35 -0
- package/src/status-indicator/style.scss +9 -0
- package/src/status-indicator/types.ts +28 -0
- package/src/style.scss +9 -9
- package/src/tabbed-navigation/style.scss +6 -4
- package/src/types.ts +25 -0
- package/src/web-preview/style.scss +11 -11
- package/src/with-wizard/style.scss +10 -10
- package/src/with-wizard-screen/style.scss +9 -9
- package/src/wizard/index.js +49 -7
- package/src/wizard/store/index.js +26 -1
- package/dist/cjs/accordion/index.js +0 -72
- package/dist/cjs/accordion/index.test.js +0 -80
- package/dist/cjs/accordion/style.scss +0 -35
- package/dist/cjs/badge/index.js +0 -32
- package/dist/cjs/badge/style.scss +0 -36
- package/dist/esm/accordion/index.js +0 -63
- package/dist/esm/accordion/index.test.js +0 -79
- package/dist/esm/accordion/style.scss +0 -35
- package/dist/esm/badge/index.js +0 -24
- package/dist/esm/badge/style.scss +0 -36
- package/src/accordion/index.js +0 -46
- package/src/accordion/index.test.js +0 -62
- package/src/accordion/style.scss +0 -35
- package/src/badge/index.tsx +0 -26
- package/src/badge/style.scss +0 -36
- package/src/info-button/index.js +0 -38
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
var _ui = require("@wordpress/ui");
|
|
12
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
+
var _context = require("./context");
|
|
14
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
|
+
var _excluded = ["suffix", "heading", "className", "children"];
|
|
16
|
+
/**
|
|
17
|
+
* WordPress dependencies.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* External dependencies.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* Internal dependencies.
|
|
24
|
+
*/
|
|
25
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
26
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
27
|
+
var headings = {
|
|
28
|
+
2: 'h2',
|
|
29
|
+
3: 'h3',
|
|
30
|
+
4: 'h4',
|
|
31
|
+
5: 'h5',
|
|
32
|
+
6: 'h6'
|
|
33
|
+
};
|
|
34
|
+
var Label = (0, _element.forwardRef)(function Label(_ref, ref) {
|
|
35
|
+
var suffix = _ref.suffix,
|
|
36
|
+
heading = _ref.heading,
|
|
37
|
+
className = _ref.className,
|
|
38
|
+
children = _ref.children,
|
|
39
|
+
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
40
|
+
var context = (0, _context.useStatCardContext)();
|
|
41
|
+
var level = heading !== null && heading !== void 0 ? heading : context.heading;
|
|
42
|
+
// Consumers are largely untyped JS, where an out-of-range level would
|
|
43
|
+
// otherwise render an <h7>, which carries no heading role at all.
|
|
44
|
+
var Heading = headings[level] || headings[3];
|
|
45
|
+
(0, _element.useEffect)(function () {
|
|
46
|
+
if ('production' === process.env.NODE_ENV || headings[level]) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
// eslint-disable-next-line no-console
|
|
50
|
+
console.warn("StatCard: unknown heading level \"".concat(level, "\", falling back to 3. Set `heading` on StatCard.Root or StatCard.Label to one of ").concat(Object.keys(headings).join(', '), "."));
|
|
51
|
+
}, [level]);
|
|
52
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ui.Stack, _objectSpread(_objectSpread({
|
|
53
|
+
ref: ref,
|
|
54
|
+
direction: "row",
|
|
55
|
+
align: "flex-start",
|
|
56
|
+
justify: "space-between",
|
|
57
|
+
gap: "sm",
|
|
58
|
+
className: (0, _classnames["default"])('newspack-stat-card__label', className)
|
|
59
|
+
}, props), {}, {
|
|
60
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Heading, {
|
|
61
|
+
className: "newspack-stat-card__label-text",
|
|
62
|
+
children: children
|
|
63
|
+
}), suffix]
|
|
64
|
+
}));
|
|
65
|
+
});
|
|
66
|
+
var _default = exports["default"] = Label;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
var _ui = require("@wordpress/ui");
|
|
12
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
+
var _context = require("./context");
|
|
14
|
+
require("./style.scss");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
var _excluded = ["heading", "labels", "className", "children"];
|
|
17
|
+
/**
|
|
18
|
+
* WordPress dependencies.
|
|
19
|
+
*/
|
|
20
|
+
// Aliased: this package exports a different `Card` of its own.
|
|
21
|
+
/**
|
|
22
|
+
* External dependencies.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Internal dependencies.
|
|
26
|
+
*/
|
|
27
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
28
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
29
|
+
var Root = (0, _element.forwardRef)(function Root(_ref, ref) {
|
|
30
|
+
var _ref$heading = _ref.heading,
|
|
31
|
+
heading = _ref$heading === void 0 ? 3 : _ref$heading,
|
|
32
|
+
labels = _ref.labels,
|
|
33
|
+
className = _ref.className,
|
|
34
|
+
children = _ref.children,
|
|
35
|
+
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
36
|
+
// Keyed on the strings rather than the object: a caller writing `labels` inline
|
|
37
|
+
// hands over a fresh object each render, which would defeat the memo entirely.
|
|
38
|
+
var _ref2 = labels !== null && labels !== void 0 ? labels : {},
|
|
39
|
+
notApplicable = _ref2.notApplicable,
|
|
40
|
+
up = _ref2.up,
|
|
41
|
+
down = _ref2.down;
|
|
42
|
+
var context = (0, _element.useMemo)(function () {
|
|
43
|
+
return {
|
|
44
|
+
heading: heading,
|
|
45
|
+
labels: (0, _context.resolveStatCardLabels)({
|
|
46
|
+
notApplicable: notApplicable,
|
|
47
|
+
up: up,
|
|
48
|
+
down: down
|
|
49
|
+
})
|
|
50
|
+
};
|
|
51
|
+
}, [heading, notApplicable, up, down]);
|
|
52
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_context.StatCardContext.Provider, {
|
|
53
|
+
value: context,
|
|
54
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ui.Card.Root, _objectSpread(_objectSpread({
|
|
55
|
+
ref: ref,
|
|
56
|
+
className: (0, _classnames["default"])('newspack-stat-card', className)
|
|
57
|
+
}, props), {}, {
|
|
58
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ui.Card.Content, {
|
|
59
|
+
render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ui.Stack, {
|
|
60
|
+
direction: "column",
|
|
61
|
+
gap: "sm"
|
|
62
|
+
}),
|
|
63
|
+
className: "newspack-stat-card__content",
|
|
64
|
+
children: children
|
|
65
|
+
})
|
|
66
|
+
}))
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
var _default = exports["default"] = Root;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
12
|
+
var _context = require("./context");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
var _excluded = ["className", "children"];
|
|
15
|
+
/**
|
|
16
|
+
* WordPress dependencies.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* External dependencies.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Internal dependencies.
|
|
23
|
+
*/
|
|
24
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26
|
+
var Secondary = (0, _element.forwardRef)(function Secondary(_ref, ref) {
|
|
27
|
+
var className = _ref.className,
|
|
28
|
+
children = _ref.children,
|
|
29
|
+
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
30
|
+
(0, _context.useStatCardContext)();
|
|
31
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({
|
|
32
|
+
ref: ref,
|
|
33
|
+
className: (0, _classnames["default"])('newspack-stat-card__secondary', className)
|
|
34
|
+
}, props), {}, {
|
|
35
|
+
children: children
|
|
36
|
+
}));
|
|
37
|
+
});
|
|
38
|
+
var _default = exports["default"] = Secondary;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
@use "~@wordpress/base-styles/colors" as wp-colors;
|
|
2
|
+
@use "~@wordpress/base-styles/variables" as wp-vars;
|
|
3
|
+
@use "~@wordpress/base-styles/mixins" as wp-mixins;
|
|
4
|
+
@use "../../../colors/colors.module" as colors;
|
|
5
|
+
@use "../variables" as np-vars;
|
|
6
|
+
|
|
7
|
+
$stat-card-min-height: wp-vars.$grid-unit * 21;
|
|
8
|
+
|
|
9
|
+
.newspack-stat-card {
|
|
10
|
+
--wp-admin-theme-color: #{colors.$primary-600};
|
|
11
|
+
--wp-admin-theme-color--rgb: #{colors.$primary-600--rgb};
|
|
12
|
+
--wp-admin-theme-color-darker-10: #{colors.$primary-700};
|
|
13
|
+
--wp-admin-theme-color-darker-10--rgb: #{colors.$primary-700--rgb};
|
|
14
|
+
--wp-admin-theme-color-darker-20: #{colors.$primary-800};
|
|
15
|
+
--wp-admin-theme-color-darker-20--rgb: #{colors.$primary-800--rgb};
|
|
16
|
+
--wp-admin-theme-color-lighter-10: #{colors.$primary-000};
|
|
17
|
+
--wp-admin-theme-color-lighter-10--rgb: #{colors.$primary-000--rgb};
|
|
18
|
+
|
|
19
|
+
container-type: inline-size;
|
|
20
|
+
display: flex;
|
|
21
|
+
flex-direction: column;
|
|
22
|
+
min-height: $stat-card-min-height;
|
|
23
|
+
|
|
24
|
+
&__content {
|
|
25
|
+
flex: 1;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
&__label .newspack-info-button {
|
|
29
|
+
margin-block: calc((#{wp-vars.$font-line-height-small} - #{wp-vars.$button-size-small}) / 2);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&__label-text {
|
|
33
|
+
@include wp-mixins.heading-large();
|
|
34
|
+
color: wp-colors.$gray-900;
|
|
35
|
+
margin: 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&__body {
|
|
39
|
+
flex: 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&__value {
|
|
43
|
+
color: var(--wp-admin-theme-color);
|
|
44
|
+
font-size: np-vars.$font-size-3x-large;
|
|
45
|
+
font-size: clamp(#{wp-vars.$font-size-x-large}, 14cqi, #{np-vars.$font-size-3x-large});
|
|
46
|
+
font-variant-numeric: tabular-nums;
|
|
47
|
+
font-weight: wp-vars.$font-weight-medium;
|
|
48
|
+
line-height: np-vars.$font-line-height-3x-large;
|
|
49
|
+
|
|
50
|
+
&--text {
|
|
51
|
+
font-size: wp-vars.$font-size-x-large;
|
|
52
|
+
line-height: wp-vars.$font-line-height-x-large;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&__delta {
|
|
57
|
+
@include wp-mixins.heading-medium();
|
|
58
|
+
color: wp-colors.$gray-700;
|
|
59
|
+
|
|
60
|
+
&--positive {
|
|
61
|
+
color: colors.$success-600;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&--negative {
|
|
65
|
+
color: colors.$error-600;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&__action,
|
|
70
|
+
&__action.components-button {
|
|
71
|
+
font-size: wp-vars.$helptext-font-size;
|
|
72
|
+
line-height: wp-vars.$font-line-height-x-small;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&__secondary {
|
|
76
|
+
@include wp-mixins.heading-medium();
|
|
77
|
+
color: var(--wp-admin-theme-color);
|
|
78
|
+
margin: 0;
|
|
79
|
+
text-wrap: balance;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
&__description {
|
|
83
|
+
color: wp-colors.$gray-700;
|
|
84
|
+
font-size: wp-vars.$helptext-font-size;
|
|
85
|
+
line-height: wp-vars.$font-line-height-x-small;
|
|
86
|
+
margin: 0;
|
|
87
|
+
text-wrap: balance;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
var _ui = require("@wordpress/ui");
|
|
12
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
+
var _constants = require("./constants");
|
|
14
|
+
var _context = require("./context");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
var _excluded = ["value", "valueLabel", "variant", "suffix", "className"];
|
|
17
|
+
/**
|
|
18
|
+
* WordPress dependencies.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* External dependencies.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Internal dependencies.
|
|
25
|
+
*/
|
|
26
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
27
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
28
|
+
var variants = ['figure', 'text'];
|
|
29
|
+
var Value = (0, _element.forwardRef)(function Value(_ref, ref) {
|
|
30
|
+
var value = _ref.value,
|
|
31
|
+
valueLabel = _ref.valueLabel,
|
|
32
|
+
_ref$variant = _ref.variant,
|
|
33
|
+
variant = _ref$variant === void 0 ? 'figure' : _ref$variant,
|
|
34
|
+
suffix = _ref.suffix,
|
|
35
|
+
className = _ref.className,
|
|
36
|
+
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
37
|
+
var _useStatCardContext = (0, _context.useStatCardContext)(),
|
|
38
|
+
labels = _useStatCardContext.labels;
|
|
39
|
+
(0, _element.useEffect)(function () {
|
|
40
|
+
if ('production' === process.env.NODE_ENV || variants.includes(variant)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// eslint-disable-next-line no-console
|
|
44
|
+
console.warn("StatCard.Value: unknown variant \"".concat(variant, "\", falling back to figure. Use one of ").concat(variants.join(', '), "."));
|
|
45
|
+
}, [variant]);
|
|
46
|
+
|
|
47
|
+
// A blank string is a missing figure too, and an empty hero would read as one
|
|
48
|
+
// that never loaded. A zero is a figure, so it stays out of this.
|
|
49
|
+
var isNull = null === value || undefined === value || 'string' === typeof value && '' === value.trim();
|
|
50
|
+
var shown = isNull ? _constants.STAT_CARD_NULL_GLYPH : value;
|
|
51
|
+
// Trimmed, and `||` not `??`: a blank label is a missing one, and the glyph must never be left unnamed.
|
|
52
|
+
var spoken = (valueLabel === null || valueLabel === void 0 ? void 0 : valueLabel.trim()) || (isNull ? labels.notApplicable : undefined);
|
|
53
|
+
var figure = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", _objectSpread(_objectSpread({
|
|
54
|
+
ref: ref,
|
|
55
|
+
className: (0, _classnames["default"])('newspack-stat-card__value', 'text' === variant && 'newspack-stat-card__value--text', className)
|
|
56
|
+
}, props), {}, {
|
|
57
|
+
children: spoken ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
58
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
59
|
+
"aria-hidden": "true",
|
|
60
|
+
children: shown
|
|
61
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ui.VisuallyHidden, {
|
|
62
|
+
render: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}),
|
|
63
|
+
children: spoken
|
|
64
|
+
})]
|
|
65
|
+
}) : shown
|
|
66
|
+
}));
|
|
67
|
+
if (!suffix) {
|
|
68
|
+
return figure;
|
|
69
|
+
}
|
|
70
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ui.Stack, {
|
|
71
|
+
direction: "row",
|
|
72
|
+
align: "baseline",
|
|
73
|
+
gap: "sm",
|
|
74
|
+
className: "newspack-stat-card__figure",
|
|
75
|
+
children: [figure, suffix]
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
var _default = exports["default"] = Value;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "STATUS_NAMES", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _statuses.STATUS_NAMES;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
exports["default"] = void 0;
|
|
14
|
+
Object.defineProperty(exports, "statusGlyph", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _statuses.statusGlyph;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
22
|
+
var _components = require("@wordpress/components");
|
|
23
|
+
var _element = require("@wordpress/element");
|
|
24
|
+
var _ui = require("@wordpress/ui");
|
|
25
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
26
|
+
var _statuses = require("./statuses");
|
|
27
|
+
require("./style.scss");
|
|
28
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
|
+
var _excluded = ["status", "icon", "className", "children"];
|
|
30
|
+
/**
|
|
31
|
+
* StatusIndicator
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* WordPress dependencies.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* External dependencies.
|
|
38
|
+
*/
|
|
39
|
+
/**
|
|
40
|
+
* Internal dependencies.
|
|
41
|
+
*/
|
|
42
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
43
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
44
|
+
var StatusIndicator = (0, _element.forwardRef)(function StatusIndicator(_ref, ref) {
|
|
45
|
+
var status = _ref.status,
|
|
46
|
+
icon = _ref.icon,
|
|
47
|
+
className = _ref.className,
|
|
48
|
+
children = _ref.children,
|
|
49
|
+
props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
50
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ui.Stack, _objectSpread(_objectSpread({
|
|
51
|
+
ref: ref,
|
|
52
|
+
direction: "row",
|
|
53
|
+
align: "center",
|
|
54
|
+
gap: "sm",
|
|
55
|
+
className: (0, _classnames["default"])('newspack-status-indicator', className)
|
|
56
|
+
}, props), {}, {
|
|
57
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
|
|
58
|
+
className: "newspack-status-indicator__icon",
|
|
59
|
+
icon: status ? (0, _statuses.statusGlyph)(status) : icon,
|
|
60
|
+
size: 24
|
|
61
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
62
|
+
children: children
|
|
63
|
+
})]
|
|
64
|
+
}));
|
|
65
|
+
});
|
|
66
|
+
var _default = exports["default"] = StatusIndicator;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
5
|
+
var _react = require("@testing-library/react");
|
|
6
|
+
var _icons = require("@wordpress/icons");
|
|
7
|
+
var _ = _interopRequireWildcard(require("."));
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
10
|
+
/**
|
|
11
|
+
* External dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* WordPress dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Internal dependencies
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
describe('StatusIndicator', function () {
|
|
23
|
+
it('renders the glyph alongside the label', function () {
|
|
24
|
+
var _render = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_["default"], {
|
|
25
|
+
status: "active",
|
|
26
|
+
children: "Active"
|
|
27
|
+
})),
|
|
28
|
+
container = _render.container;
|
|
29
|
+
expect(_react.screen.getByText('Active')).toBeInTheDocument();
|
|
30
|
+
expect(container.querySelector('svg.newspack-status-indicator__icon')).toBeInTheDocument();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// The trim is what makes the 8px gap measure 8px, so it is styled through a
|
|
34
|
+
// class rather than left to the consumer.
|
|
35
|
+
it('carries the class the icon trim is scoped to', function () {
|
|
36
|
+
var _render2 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_["default"], {
|
|
37
|
+
status: "active",
|
|
38
|
+
children: "Active"
|
|
39
|
+
})),
|
|
40
|
+
container = _render2.container;
|
|
41
|
+
expect(container.querySelector('.newspack-status-indicator')).toBeInTheDocument();
|
|
42
|
+
expect(container.querySelector('.newspack-status-indicator__icon')).toBeInTheDocument();
|
|
43
|
+
});
|
|
44
|
+
it('draws a named status the way the vocabulary says', function () {
|
|
45
|
+
var _render3 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_["default"], {
|
|
46
|
+
status: "draft",
|
|
47
|
+
children: "Draft"
|
|
48
|
+
})),
|
|
49
|
+
named = _render3.container;
|
|
50
|
+
var _render4 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_["default"], {
|
|
51
|
+
icon: _icons.drafts,
|
|
52
|
+
children: "Draft"
|
|
53
|
+
})),
|
|
54
|
+
given = _render4.container;
|
|
55
|
+
expect(named.querySelector('svg').innerHTML).toBe(given.querySelector('svg').innerHTML);
|
|
56
|
+
});
|
|
57
|
+
it('draws the glyph it is given when there is no name for it', function () {
|
|
58
|
+
var _render5 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_["default"], {
|
|
59
|
+
icon: _icons.gift,
|
|
60
|
+
children: "Free"
|
|
61
|
+
})),
|
|
62
|
+
free = _render5.container;
|
|
63
|
+
var _render6 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_["default"], {
|
|
64
|
+
icon: _icons.published,
|
|
65
|
+
children: "Active"
|
|
66
|
+
})),
|
|
67
|
+
active = _render6.container;
|
|
68
|
+
expect(free.querySelector('svg').innerHTML).not.toBe(active.querySelector('svg').innerHTML);
|
|
69
|
+
});
|
|
70
|
+
it('keeps the consumer class and passes the rest through', function () {
|
|
71
|
+
var _render7 = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_["default"], {
|
|
72
|
+
className: "custom",
|
|
73
|
+
"data-testid": "status",
|
|
74
|
+
status: "active",
|
|
75
|
+
children: "Active"
|
|
76
|
+
})),
|
|
77
|
+
container = _render7.container;
|
|
78
|
+
var root = container.querySelector('.newspack-status-indicator');
|
|
79
|
+
expect(root).toHaveClass('custom');
|
|
80
|
+
expect(root).toHaveAttribute('data-testid', 'status');
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
describe('statusGlyph', function () {
|
|
84
|
+
it('draws every name in the vocabulary', function () {
|
|
85
|
+
_.STATUS_NAMES.forEach(function (name) {
|
|
86
|
+
return expect((0, _.statusGlyph)(name)).toBeTruthy();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// Pinning the complete list is what lets a column assert its own distinctness:
|
|
91
|
+
// any pair not named here reads apart.
|
|
92
|
+
it('shares a mark only where two names mean the same to a reader', function () {
|
|
93
|
+
var byGlyph = new Map();
|
|
94
|
+
_.STATUS_NAMES.forEach(function (name) {
|
|
95
|
+
return byGlyph.set((0, _.statusGlyph)(name), [].concat((0, _toConsumableArray2["default"])(byGlyph.get((0, _.statusGlyph)(name)) || []), [name]));
|
|
96
|
+
});
|
|
97
|
+
expect((0, _toConsumableArray2["default"])(byGlyph.values()).filter(function (names) {
|
|
98
|
+
return names.length > 1;
|
|
99
|
+
})).toEqual([['active', 'done'], ['cancelled', 'ended']]);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.statusGlyph = exports.STATUS_NAMES = void 0;
|
|
7
|
+
var _icons = require("@wordpress/icons");
|
|
8
|
+
/**
|
|
9
|
+
* WordPress dependencies.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The glyph for each status a list can report.
|
|
14
|
+
*
|
|
15
|
+
* Two names may resolve to the same glyph where they read differently at the call
|
|
16
|
+
* site but mean the same to a reader: a sent newsletter is finished rather than
|
|
17
|
+
* live, and an ad that expired was not cancelled. Splitting them leaves room to
|
|
18
|
+
* draw them apart later without touching a consumer, and it means the rule a
|
|
19
|
+
* Status column keeps is about glyphs rather than names. `statusGlyph` is
|
|
20
|
+
* exported so a column's own test can assert it.
|
|
21
|
+
*/
|
|
22
|
+
var STATUS_GLYPHS = {
|
|
23
|
+
active: _icons.published,
|
|
24
|
+
done: _icons.published,
|
|
25
|
+
scheduled: _icons.scheduled,
|
|
26
|
+
draft: _icons.drafts,
|
|
27
|
+
pending: _icons.pending,
|
|
28
|
+
attention: _icons.caution,
|
|
29
|
+
error: _icons.error,
|
|
30
|
+
progress: _icons.update,
|
|
31
|
+
cancelled: _icons.notAllowed,
|
|
32
|
+
ended: _icons.notAllowed,
|
|
33
|
+
"private": _icons.lock,
|
|
34
|
+
trash: _icons.trash
|
|
35
|
+
};
|
|
36
|
+
var statusGlyph = exports.statusGlyph = function statusGlyph(status) {
|
|
37
|
+
return STATUS_GLYPHS[status];
|
|
38
|
+
};
|
|
39
|
+
var STATUS_NAMES = exports.STATUS_NAMES = Object.freeze(Object.keys(STATUS_GLYPHS));
|
package/dist/cjs/style.scss
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
@use "~@wordpress/base-styles/colors" as wp-colors;
|
|
2
|
-
@use "../../colors/colors.module" as colors;
|
|
2
|
+
@use "../../colors/colors.module" as np-colors;
|
|
3
3
|
|
|
4
4
|
:root {
|
|
5
5
|
// WP Admin
|
|
6
|
-
--wp-admin-theme-color: #{colors.$primary-600};
|
|
7
|
-
--wp-admin-theme-color--rgb: #{colors.$primary-600--rgb};
|
|
8
|
-
--wp-admin-theme-color-darker-10: #{colors.$primary-700};
|
|
9
|
-
--wp-admin-theme-color-darker-10--rgb: #{colors.$primary-700--rgb};
|
|
10
|
-
--wp-admin-theme-color-darker-20: #{colors.$primary-800};
|
|
11
|
-
--wp-admin-theme-color-darker-20--rgb: #{colors.$primary-800--rgb};
|
|
12
|
-
--wp-admin-theme-color-lighter-10: #{colors.$primary-000};
|
|
13
|
-
--wp-admin-theme-color-lighter-10--rgb: #{colors.$primary-000--rgb};
|
|
6
|
+
--wp-admin-theme-color: #{np-colors.$primary-600};
|
|
7
|
+
--wp-admin-theme-color--rgb: #{np-colors.$primary-600--rgb};
|
|
8
|
+
--wp-admin-theme-color-darker-10: #{np-colors.$primary-700};
|
|
9
|
+
--wp-admin-theme-color-darker-10--rgb: #{np-colors.$primary-700--rgb};
|
|
10
|
+
--wp-admin-theme-color-darker-20: #{np-colors.$primary-800};
|
|
11
|
+
--wp-admin-theme-color-darker-20--rgb: #{np-colors.$primary-800--rgb};
|
|
12
|
+
--wp-admin-theme-color-lighter-10: #{np-colors.$primary-000};
|
|
13
|
+
--wp-admin-theme-color-lighter-10--rgb: #{np-colors.$primary-000--rgb};
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
// Buttons Card
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* Tabbed Navigation
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
@use "../../../colors/colors.module" as colors;
|
|
5
|
+
@use "../../../colors/colors.module" as np-colors;
|
|
6
|
+
@use "../mixins" as mixins;
|
|
6
7
|
@use "~@wordpress/base-styles/colors" as wp-colors;
|
|
7
8
|
@use "~@wordpress/base-styles/variables" as wp-vars;
|
|
8
9
|
|
|
@@ -18,7 +19,7 @@
|
|
|
18
19
|
width: 100%;
|
|
19
20
|
|
|
20
21
|
/* stylelint-disable-next-line plugin-wpds/no-setting-wpds-custom-properties -- deliberate Newspack brand override of the indicator token. */
|
|
21
|
-
--wpds-color-stroke-interactive-neutral-strong: #{colors.$primary-600};
|
|
22
|
+
--wpds-color-stroke-interactive-neutral-strong: #{np-colors.$primary-600};
|
|
22
23
|
|
|
23
24
|
a[role="tab"] {
|
|
24
25
|
text-decoration: none;
|
|
@@ -53,6 +54,7 @@
|
|
|
53
54
|
|
|
54
55
|
&[data-disabled],
|
|
55
56
|
&[aria-disabled="true"] {
|
|
57
|
+
/* stylelint-disable-next-line plugin-wpds/no-unknown-ds-tokens -- the plugin's token list lags the prebuilt design-tokens.css names. */
|
|
56
58
|
color: var( --wpds-color-foreground-interactive-neutral-disabled, #{wp-colors.$gray-600} );
|
|
57
59
|
pointer-events: none;
|
|
58
60
|
}
|
|
@@ -91,12 +93,12 @@
|
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
&:focus-visible {
|
|
94
|
-
|
|
96
|
+
@include mixins.wpds-focus-ring;
|
|
95
97
|
outline-offset: calc( var( --wpds-dimension-padding-md, #{wp-vars.$grid-unit-15} ) * -1 );
|
|
96
98
|
}
|
|
97
99
|
|
|
98
100
|
&[aria-current="page"] {
|
|
99
|
-
box-shadow: inset 0 calc( var( --wpds-border-width-focus, #{wp-vars.$border-width-focus-fallback} ) * -1 ) 0 var( --wpds-color-stroke-interactive-neutral-strong, #{colors.$primary-600} );
|
|
101
|
+
box-shadow: inset 0 calc( var( --wpds-border-width-focus, #{wp-vars.$border-width-focus-fallback} ) * -1 ) 0 var( --wpds-color-stroke-interactive-neutral-strong, #{np-colors.$primary-600} );
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
}
|