@kaizen/components 1.4.26 → 1.5.1
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 +19 -0
- package/dist/ButtonGroup/index.d.ts +5 -0
- package/dist/ButtonGroup/index.js +7 -0
- package/dist/ButtonGroup-b1e541fe.d.ts +14 -0
- package/dist/ButtonGroup.module-NQDV3763.scss +73 -0
- package/dist/Filter/components/FilterContents/index.d.ts +3 -0
- package/dist/Filter/components/FilterContents/index.js +6 -0
- package/dist/Filter/components/FilterPopover/index.d.ts +15 -0
- package/dist/Filter/components/FilterPopover/index.js +6 -0
- package/dist/Filter/index.d.ts +5 -0
- package/dist/Filter/index.js +12 -0
- package/dist/Filter/types.d.ts +5 -0
- package/dist/Filter/types.js +1 -0
- package/dist/Filter-15d87e2c.d.ts +21 -0
- package/dist/FilterButton/FilterButton/index.d.ts +5 -0
- package/dist/FilterButton/FilterButton/index.js +8 -0
- package/dist/FilterButton/FilterButtonRemovable/index.d.ts +8 -0
- package/dist/FilterButton/FilterButtonRemovable/index.js +10 -0
- package/dist/FilterButton/components/FilterButtonBase/index.d.ts +3 -0
- package/dist/FilterButton/components/FilterButtonBase/index.js +6 -0
- package/dist/FilterButton/index.d.ts +8 -0
- package/dist/FilterButton/index.js +13 -0
- package/dist/FilterButton-e44e4bf8.d.ts +12 -0
- package/dist/FilterButton.module-HA7A5HIZ.scss +22 -0
- package/dist/FilterButtonBase-4004361e.d.ts +9 -0
- package/dist/FilterButtonBase.module-KNRAMYSJ.scss +65 -0
- package/dist/FilterButtonRemovable-d3bc8f61.d.ts +19 -0
- package/dist/FilterContents-8d959c14.d.ts +12 -0
- package/dist/FilterContents.module-VKPAJKDG.scss +5 -0
- package/dist/FilterPopover.module-2NVOPVIT.scss +11 -0
- package/dist/KaizenProvider/ThemeProvider/index.d.ts +1 -1
- package/dist/KaizenProvider/ThemeProvider/index.js +3 -3
- package/dist/KaizenProvider/ThemeProvider/themes/index.js +1 -1
- package/dist/KaizenProvider/index.d.ts +2 -2
- package/dist/KaizenProvider/index.js +3 -3
- package/dist/{KaizenProvider-af031107.d.ts → KaizenProvider-44a90581.d.ts} +2 -2
- package/dist/{ThemeProvider-7786826c.d.ts → ThemeProvider-9852214a.d.ts} +2 -2
- package/dist/chunk-24HHXM6U.js +29 -0
- package/dist/chunk-3VEH3HNR.js +6 -0
- package/dist/chunk-DR7ZJ6Z3.js +38 -0
- package/dist/chunk-FMXGTI6W.js +1 -0
- package/dist/chunk-GTXIOS6D.js +51 -0
- package/dist/chunk-J5NCLDC5.js +55 -0
- package/dist/chunk-SBUK4XZM.js +18 -0
- package/dist/chunk-TGN3Y4NF.js +51 -0
- package/dist/chunk-Y6BQRSGB.js +21 -0
- package/dist/esm/ButtonGroup/index.js +7 -0
- package/dist/esm/ButtonGroup.module-NQDV3763.scss +73 -0
- package/dist/esm/Filter/components/FilterContents/index.js +6 -0
- package/dist/esm/Filter/components/FilterPopover/index.js +6 -0
- package/dist/esm/Filter/index.js +12 -0
- package/dist/esm/Filter/types.js +1 -0
- package/dist/esm/FilterButton/FilterButton/index.js +8 -0
- package/dist/esm/FilterButton/FilterButtonRemovable/index.js +10 -0
- package/dist/esm/FilterButton/components/FilterButtonBase/index.js +6 -0
- package/dist/esm/FilterButton/index.js +13 -0
- package/dist/esm/FilterButton.module-HA7A5HIZ.scss +22 -0
- package/dist/esm/FilterButtonBase.module-KNRAMYSJ.scss +65 -0
- package/dist/esm/FilterContents.module-VKPAJKDG.scss +5 -0
- package/dist/esm/FilterPopover.module-2NVOPVIT.scss +11 -0
- package/dist/esm/KaizenProvider/ThemeProvider/index.js +3 -3
- package/dist/esm/KaizenProvider/ThemeProvider/themes/index.js +1 -1
- package/dist/esm/KaizenProvider/index.js +3 -3
- package/dist/esm/chunk-24HHXM6U.js +29 -0
- package/dist/esm/chunk-3VEH3HNR.js +6 -0
- package/dist/esm/chunk-DR7ZJ6Z3.js +38 -0
- package/dist/esm/chunk-FMXGTI6W.js +0 -0
- package/dist/esm/chunk-GTXIOS6D.js +51 -0
- package/dist/esm/chunk-J5NCLDC5.js +55 -0
- package/dist/esm/chunk-SBUK4XZM.js +18 -0
- package/dist/esm/chunk-TGN3Y4NF.js +51 -0
- package/dist/esm/chunk-Y6BQRSGB.js +21 -0
- package/dist/esm/index.js +13 -3
- package/dist/esm/types.js +0 -0
- package/dist/esm/utils/isRefObject.js +6 -0
- package/dist/iife/ButtonGroup/index.js +33555 -0
- package/dist/iife/ButtonGroup.module-NQDV3763.scss +73 -0
- package/dist/iife/Filter/components/FilterContents/index.js +2317 -0
- package/dist/iife/Filter/components/FilterPopover/index.js +33202 -0
- package/dist/iife/Filter/index.js +36349 -0
- package/dist/iife/Filter/types.js +3 -0
- package/dist/iife/FilterButton/FilterButton/index.js +2417 -0
- package/dist/iife/FilterButton/FilterButtonRemovable/index.js +33673 -0
- package/dist/iife/FilterButton/components/FilterButtonBase/index.js +2314 -0
- package/dist/iife/FilterButton/index.js +33671 -0
- package/dist/iife/FilterButton.module-HA7A5HIZ.scss +22 -0
- package/dist/iife/FilterButtonBase.module-KNRAMYSJ.scss +65 -0
- package/dist/iife/FilterContents.module-VKPAJKDG.scss +5 -0
- package/dist/iife/FilterPopover.module-2NVOPVIT.scss +11 -0
- package/dist/iife/Icon.module-VD7NKLAR.scss +72 -0
- package/dist/iife/Tooltip.module-YU7VOTNZ.scss +184 -0
- package/dist/iife/chevron-down.icon-COG3GAYR.svg +17 -0
- package/dist/iife/chevron-up.icon-O5VRF5BX.svg +17 -0
- package/dist/iife/clear.icon-OD6PWTJH.svg +17 -0
- package/dist/iife/index.js +34501 -386
- package/dist/iife/types.js +3 -0
- package/dist/iife/utils/isRefObject.js +5 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +12 -2
- package/dist/styles.css +16 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.js +1 -0
- package/dist/utils/isRefObject.d.ts +5 -0
- package/dist/utils/isRefObject.js +6 -0
- package/package.json +9 -4
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
|
+
|
|
3
|
+
var _chunkSBUK4XZMjs = require('./chunk-SBUK4XZM.js');
|
|
4
|
+
|
|
5
|
+
// src/ButtonGroup/ButtonGroup.tsx
|
|
6
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
7
|
+
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
8
|
+
var _drafttooltip = require('@kaizen/draft-tooltip');
|
|
9
|
+
var _ButtonGroupmoduleNQDV3763scss = require('./ButtonGroup.module-NQDV3763.scss'); var _ButtonGroupmoduleNQDV3763scss2 = _interopRequireDefault(_ButtonGroupmoduleNQDV3763scss);
|
|
10
|
+
var isFilterButton = (node) => _react2.default.isValidElement(node) && node.type === _chunkSBUK4XZMjs.FilterButtonBase;
|
|
11
|
+
var ButtonGroup = ({
|
|
12
|
+
children,
|
|
13
|
+
classNameOverride,
|
|
14
|
+
...restProps
|
|
15
|
+
}) => {
|
|
16
|
+
const childCount = _react2.default.Children.count(children);
|
|
17
|
+
const containerProps = {
|
|
18
|
+
role: "group",
|
|
19
|
+
className: _classnames2.default.call(void 0, _ButtonGroupmoduleNQDV3763scss2.default.buttonGroup, classNameOverride),
|
|
20
|
+
...restProps
|
|
21
|
+
};
|
|
22
|
+
if (childCount === 1)
|
|
23
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { ...containerProps }, children);
|
|
24
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { ...containerProps }, _react2.default.Children.map(children, (child, index) => {
|
|
25
|
+
const buttonClassNames = _classnames2.default.call(void 0,
|
|
26
|
+
_ButtonGroupmoduleNQDV3763scss2.default.child,
|
|
27
|
+
index === 0 && _ButtonGroupmoduleNQDV3763scss2.default.firstChild,
|
|
28
|
+
index === childCount - 1 && _ButtonGroupmoduleNQDV3763scss2.default.lastChild,
|
|
29
|
+
child.props.classNameOverride
|
|
30
|
+
);
|
|
31
|
+
if (child.type === _drafttooltip.Tooltip) {
|
|
32
|
+
const button = child.props.children;
|
|
33
|
+
if (isFilterButton(button)) {
|
|
34
|
+
return _react2.default.cloneElement(child, {
|
|
35
|
+
children: _react2.default.cloneElement(button, {
|
|
36
|
+
classNameOverride: buttonClassNames
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return child;
|
|
41
|
+
}
|
|
42
|
+
return _react2.default.cloneElement(child, {
|
|
43
|
+
classNameOverride: buttonClassNames
|
|
44
|
+
});
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
47
|
+
ButtonGroup.displayName = "ButtonGroup";
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
exports.ButtonGroup = ButtonGroup;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
+
|
|
3
|
+
var _chunkTGN3Y4NFjs = require('./chunk-TGN3Y4NF.js');
|
|
4
|
+
|
|
5
|
+
// src/Filter/Filter.tsx
|
|
6
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
7
|
+
var _reactfocuson = require('react-focus-on');
|
|
8
|
+
var Filter = ({
|
|
9
|
+
children,
|
|
10
|
+
isOpen,
|
|
11
|
+
setIsOpen,
|
|
12
|
+
renderTrigger,
|
|
13
|
+
classNameOverride,
|
|
14
|
+
...restProps
|
|
15
|
+
}) => {
|
|
16
|
+
var _a, _b, _c, _d;
|
|
17
|
+
const [isRefLoaded, setIsRefLoaded] = _react.useState.call(void 0, false);
|
|
18
|
+
const trigger = renderTrigger({
|
|
19
|
+
onClick: () => setIsOpen(!isOpen),
|
|
20
|
+
isOpen
|
|
21
|
+
});
|
|
22
|
+
const inbuiltButtonRef = _react.useRef.call(void 0, null);
|
|
23
|
+
const inbuiltRef = _react.useRef.call(void 0, {
|
|
24
|
+
triggerRef: inbuiltButtonRef
|
|
25
|
+
});
|
|
26
|
+
const filterButtonRef = _nullishCoalesce(trigger.ref, () => ( inbuiltRef));
|
|
27
|
+
_react.useEffect.call(void 0, () => {
|
|
28
|
+
var _a2, _b2;
|
|
29
|
+
if ((_b2 = (_a2 = filterButtonRef.current) == null ? void 0 : _a2.triggerRef) == null ? void 0 : _b2.current) {
|
|
30
|
+
setIsRefLoaded(true);
|
|
31
|
+
}
|
|
32
|
+
}, [(_b = (_a = filterButtonRef.current) == null ? void 0 : _a.triggerRef) == null ? void 0 : _b.current]);
|
|
33
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: classNameOverride, ...restProps }, _react2.default.cloneElement(trigger, {
|
|
34
|
+
ref: filterButtonRef
|
|
35
|
+
}), isRefLoaded && isOpen && /* @__PURE__ */ _react2.default.createElement(
|
|
36
|
+
_reactfocuson.FocusOn,
|
|
37
|
+
{
|
|
38
|
+
scrollLock: false,
|
|
39
|
+
onClickOutside: () => setIsOpen(false),
|
|
40
|
+
onEscapeKey: () => setIsOpen(false)
|
|
41
|
+
},
|
|
42
|
+
/* @__PURE__ */ _react2.default.createElement(
|
|
43
|
+
_chunkTGN3Y4NFjs.FilterPopover,
|
|
44
|
+
{
|
|
45
|
+
referenceElement: ((_d = (_c = filterButtonRef.current) == null ? void 0 : _c.triggerRef) == null ? void 0 : _d.current) || null
|
|
46
|
+
},
|
|
47
|
+
children
|
|
48
|
+
)
|
|
49
|
+
));
|
|
50
|
+
};
|
|
51
|
+
Filter.displayName = "Filter";
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
exports.Filter = Filter;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/FilterButton/components/FilterButtonBase/FilterButtonBase.tsx
|
|
2
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
3
|
+
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
4
|
+
var _FilterButtonBasemoduleKNRAMYSJscss = require('./FilterButtonBase.module-KNRAMYSJ.scss'); var _FilterButtonBasemoduleKNRAMYSJscss2 = _interopRequireDefault(_FilterButtonBasemoduleKNRAMYSJscss);
|
|
5
|
+
var FilterButtonBase = _react.forwardRef.call(void 0, ({ children, classNameOverride, ...restProps }, ref) => /* @__PURE__ */ _react2.default.createElement(
|
|
6
|
+
"button",
|
|
7
|
+
{
|
|
8
|
+
ref,
|
|
9
|
+
className: _classnames2.default.call(void 0, _FilterButtonBasemoduleKNRAMYSJscss2.default.filterButtonBase, classNameOverride),
|
|
10
|
+
...restProps
|
|
11
|
+
},
|
|
12
|
+
children
|
|
13
|
+
));
|
|
14
|
+
FilterButtonBase.displayName = "FilterButtonBase";
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
exports.FilterButtonBase = FilterButtonBase;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/Filter/components/FilterPopover/FilterPopover.tsx
|
|
2
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
3
|
+
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
4
|
+
var _reactpopper = require('react-popper');
|
|
5
|
+
var _FilterPopovermodule2NVOPVITscss = require('./FilterPopover.module-2NVOPVIT.scss'); var _FilterPopovermodule2NVOPVITscss2 = _interopRequireDefault(_FilterPopovermodule2NVOPVITscss);
|
|
6
|
+
var FilterPopover = ({
|
|
7
|
+
children,
|
|
8
|
+
referenceElement,
|
|
9
|
+
popperOptions,
|
|
10
|
+
classNameOverride,
|
|
11
|
+
...restProps
|
|
12
|
+
}) => {
|
|
13
|
+
const [popperElement, setPopperElement] = _react.useState.call(void 0,
|
|
14
|
+
null
|
|
15
|
+
);
|
|
16
|
+
const { styles: popperStyles, attributes: popperAttributes } = _reactpopper.usePopper.call(void 0,
|
|
17
|
+
referenceElement,
|
|
18
|
+
popperElement,
|
|
19
|
+
{
|
|
20
|
+
modifiers: [
|
|
21
|
+
{
|
|
22
|
+
name: "offset",
|
|
23
|
+
options: {
|
|
24
|
+
offset: [0, 15]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
placement: "bottom-start",
|
|
29
|
+
strategy: "fixed",
|
|
30
|
+
...popperOptions
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
return /* @__PURE__ */ _react2.default.createElement(
|
|
34
|
+
"div",
|
|
35
|
+
{
|
|
36
|
+
ref: setPopperElement,
|
|
37
|
+
style: popperStyles == null ? void 0 : popperStyles.popper,
|
|
38
|
+
...popperAttributes == null ? void 0 : popperAttributes.popper,
|
|
39
|
+
className: _classnames2.default.call(void 0, _FilterPopovermodule2NVOPVITscss2.default.filterPopover, classNameOverride),
|
|
40
|
+
role: "dialog",
|
|
41
|
+
"aria-modal": "true",
|
|
42
|
+
...restProps
|
|
43
|
+
},
|
|
44
|
+
children
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
FilterPopover.displayName = "FilterPopover";
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
exports.FilterPopover = FilterPopover;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/Filter/components/FilterContents/FilterContents.tsx
|
|
2
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
3
|
+
var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames);
|
|
4
|
+
var _FilterContentsmoduleVKPAJKDGscss = require('./FilterContents.module-VKPAJKDG.scss'); var _FilterContentsmoduleVKPAJKDGscss2 = _interopRequireDefault(_FilterContentsmoduleVKPAJKDGscss);
|
|
5
|
+
var FilterContents = ({
|
|
6
|
+
children,
|
|
7
|
+
classNameOverride,
|
|
8
|
+
...restProps
|
|
9
|
+
}) => /* @__PURE__ */ _react2.default.createElement(
|
|
10
|
+
"div",
|
|
11
|
+
{
|
|
12
|
+
className: _classnames2.default.call(void 0, _FilterContentsmoduleVKPAJKDGscss2.default.filterContents, classNameOverride),
|
|
13
|
+
...restProps
|
|
14
|
+
},
|
|
15
|
+
children
|
|
16
|
+
);
|
|
17
|
+
FilterContents.displayName = "FilterContents";
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
exports.FilterContents = FilterContents;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
@import "~@kaizen/design-tokens/sass/border";
|
|
2
|
+
@import "~@kaizen/design-tokens/sass/color";
|
|
3
|
+
|
|
4
|
+
$focus-ring-offset: 1px;
|
|
5
|
+
$focus-ring-offset-inner: calc(-1 * #{$focus-ring-offset});
|
|
6
|
+
|
|
7
|
+
// Polyfill
|
|
8
|
+
$polyfill--focus-visible: ":global(.js-focus-visible) &:global(.focus-visible)";
|
|
9
|
+
|
|
10
|
+
// Classnames to simulate pseudo states in storybook
|
|
11
|
+
$story-className--button-group--focus: ":global(.story__button-group--focus)";
|
|
12
|
+
|
|
13
|
+
// Combined pseudo state classes
|
|
14
|
+
$selectors--button-group--focus: "&:focus-visible, #{$polyfill--focus-visible}, &#{$story-className--button-group--focus}";
|
|
15
|
+
|
|
16
|
+
%firstChildBorders {
|
|
17
|
+
border-start-start-radius: $border-focus-ring-border-radius;
|
|
18
|
+
border-end-start-radius: $border-focus-ring-border-radius;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
%lastChildBorders {
|
|
22
|
+
border-start-end-radius: $border-focus-ring-border-radius;
|
|
23
|
+
border-end-end-radius: $border-focus-ring-border-radius;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.buttonGroup {
|
|
27
|
+
display: inline-flex;
|
|
28
|
+
|
|
29
|
+
.child {
|
|
30
|
+
border-radius: 0;
|
|
31
|
+
|
|
32
|
+
#{$selectors--button-group--focus} {
|
|
33
|
+
&::after {
|
|
34
|
+
border-radius: 0;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&.firstChild {
|
|
39
|
+
@extend %firstChildBorders;
|
|
40
|
+
|
|
41
|
+
#{$selectors--button-group--focus} {
|
|
42
|
+
&::after {
|
|
43
|
+
@extend %firstChildBorders;
|
|
44
|
+
inset-inline-end: $focus-ring-offset-inner;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&:not(.firstChild) {
|
|
50
|
+
border-inline-start: 1px solid $color-blue-300;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&:not(.firstChild):not(.lastChild) {
|
|
54
|
+
#{$selectors--button-group--focus} {
|
|
55
|
+
&::after {
|
|
56
|
+
inset-inline-start: $focus-ring-offset-inner;
|
|
57
|
+
inset-inline-end: $focus-ring-offset-inner;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
&.lastChild {
|
|
63
|
+
@extend %lastChildBorders;
|
|
64
|
+
|
|
65
|
+
#{$selectors--button-group--focus} {
|
|
66
|
+
&::after {
|
|
67
|
+
@extend %lastChildBorders;
|
|
68
|
+
inset-inline-start: $focus-ring-offset-inner;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "../chunk-FMXGTI6W.js";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FilterButtonRemovable
|
|
3
|
+
} from "../chunk-24HHXM6U.js";
|
|
4
|
+
import {
|
|
5
|
+
FilterButton
|
|
6
|
+
} from "../chunk-DR7ZJ6Z3.js";
|
|
7
|
+
import "../chunk-3VEH3HNR.js";
|
|
8
|
+
import "../chunk-GTXIOS6D.js";
|
|
9
|
+
import "../chunk-SBUK4XZM.js";
|
|
10
|
+
export {
|
|
11
|
+
FilterButton,
|
|
12
|
+
FilterButtonRemovable
|
|
13
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
@import "~@kaizen/design-tokens/sass/spacing";
|
|
2
|
+
@import "~@kaizen/design-tokens/sass/typography";
|
|
3
|
+
|
|
4
|
+
.filterButton {
|
|
5
|
+
gap: $spacing-xs;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.labelContainer {
|
|
9
|
+
display: inline-flex;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.hasSelectedValues {
|
|
13
|
+
font-weight: $typography-button-primary-font-weight;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.labelSeparator {
|
|
17
|
+
margin-inline-end: $spacing-xs;
|
|
18
|
+
|
|
19
|
+
[dir="ltr"] [dir="rtl"] & {
|
|
20
|
+
margin-right: 0;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
@import "~@kaizen/design-tokens/sass/border";
|
|
2
|
+
@import "~@kaizen/design-tokens/sass/color";
|
|
3
|
+
@import "~@kaizen/design-tokens/sass/typography";
|
|
4
|
+
@import "~@kaizen/design-tokens/sass/spacing";
|
|
5
|
+
@import "../../../_mixins/button-reset";
|
|
6
|
+
@import "./variables";
|
|
7
|
+
|
|
8
|
+
.filterButtonBase {
|
|
9
|
+
@include button-reset;
|
|
10
|
+
|
|
11
|
+
-webkit-font-smoothing: antialiased;
|
|
12
|
+
-moz-osx-font-smoothing: grayscale;
|
|
13
|
+
|
|
14
|
+
position: relative;
|
|
15
|
+
display: inline-flex;
|
|
16
|
+
align-items: center;
|
|
17
|
+
|
|
18
|
+
height: 3rem; // 48px
|
|
19
|
+
padding: $spacing-sm;
|
|
20
|
+
|
|
21
|
+
border-width: 0;
|
|
22
|
+
border-radius: $border-solid-border-radius;
|
|
23
|
+
|
|
24
|
+
background-color: $color-blue-100;
|
|
25
|
+
|
|
26
|
+
font-family: $typography-button-secondary-font-family;
|
|
27
|
+
font-weight: $typography-button-secondary-font-weight;
|
|
28
|
+
font-size: $typography-button-secondary-font-size;
|
|
29
|
+
line-height: $typography-button-secondary-line-height;
|
|
30
|
+
letter-spacing: $typography-button-secondary-letter-spacing;
|
|
31
|
+
color: $color-blue-500;
|
|
32
|
+
white-space: nowrap;
|
|
33
|
+
|
|
34
|
+
#{$selectors--filter-button-base--hover},
|
|
35
|
+
#{$selectors--filter-button-base--active} {
|
|
36
|
+
z-index: 2;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
#{$selectors--filter-button-base--hover},
|
|
40
|
+
#{$selectors--filter-button-base--active},
|
|
41
|
+
#{$selectors--filter-button-base--focus} {
|
|
42
|
+
background-color: $color-blue-200;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&:focus {
|
|
46
|
+
outline: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
#{$selectors--filter-button-base--focus} {
|
|
50
|
+
outline: none;
|
|
51
|
+
|
|
52
|
+
&::after {
|
|
53
|
+
content: "";
|
|
54
|
+
z-index: 3;
|
|
55
|
+
position: absolute;
|
|
56
|
+
top: $focus-ring-offset-outer;
|
|
57
|
+
bottom: $focus-ring-offset-outer;
|
|
58
|
+
left: $focus-ring-offset-outer;
|
|
59
|
+
right: $focus-ring-offset-outer;
|
|
60
|
+
border-radius: $border-focus-ring-border-radius;
|
|
61
|
+
border: $border-focus-ring-border-width $border-focus-ring-border-style
|
|
62
|
+
$color-blue-500;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
@import "~@kaizen/design-tokens/sass/border";
|
|
2
|
+
@import "~@kaizen/design-tokens/sass/color";
|
|
3
|
+
@import "~@kaizen/design-tokens/sass/shadow";
|
|
4
|
+
|
|
5
|
+
.filterPopover {
|
|
6
|
+
background-color: $color-white;
|
|
7
|
+
z-index: 1010;
|
|
8
|
+
box-shadow: $shadow-large-box-shadow;
|
|
9
|
+
border-radius: $border-borderless-border-radius;
|
|
10
|
+
display: inline-flex;
|
|
11
|
+
}
|
|
@@ -6,13 +6,13 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
defaultTheme
|
|
8
8
|
} from "../../chunk-WDAFEOSV.js";
|
|
9
|
+
import {
|
|
10
|
+
heartTheme
|
|
11
|
+
} from "../../chunk-7T4E5A7M.js";
|
|
9
12
|
import "../../chunk-FBL47PXS.js";
|
|
10
13
|
import {
|
|
11
14
|
ThemeManager
|
|
12
15
|
} from "../../chunk-J42JQYBY.js";
|
|
13
|
-
import {
|
|
14
|
-
heartTheme
|
|
15
|
-
} from "../../chunk-7T4E5A7M.js";
|
|
16
16
|
export {
|
|
17
17
|
ThemeContext,
|
|
18
18
|
ThemeManager,
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
import {
|
|
10
10
|
defaultTheme
|
|
11
11
|
} from "../chunk-WDAFEOSV.js";
|
|
12
|
+
import {
|
|
13
|
+
heartTheme
|
|
14
|
+
} from "../chunk-7T4E5A7M.js";
|
|
12
15
|
import "../chunk-FBL47PXS.js";
|
|
13
16
|
import {
|
|
14
17
|
ThemeManager
|
|
15
18
|
} from "../chunk-J42JQYBY.js";
|
|
16
|
-
import {
|
|
17
|
-
heartTheme
|
|
18
|
-
} from "../chunk-7T4E5A7M.js";
|
|
19
19
|
export {
|
|
20
20
|
KaizenProvider,
|
|
21
21
|
ThemeContext,
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FilterButton
|
|
3
|
+
} from "./chunk-DR7ZJ6Z3.js";
|
|
4
|
+
import {
|
|
5
|
+
isRefObject
|
|
6
|
+
} from "./chunk-3VEH3HNR.js";
|
|
7
|
+
import {
|
|
8
|
+
ButtonGroup
|
|
9
|
+
} from "./chunk-GTXIOS6D.js";
|
|
10
|
+
import {
|
|
11
|
+
FilterButtonBase
|
|
12
|
+
} from "./chunk-SBUK4XZM.js";
|
|
13
|
+
|
|
14
|
+
// src/FilterButton/FilterButtonRemovable/FilterButtonRemovable.tsx
|
|
15
|
+
import React, { forwardRef } from "react";
|
|
16
|
+
import { Icon } from "@kaizen/component-library";
|
|
17
|
+
import iconClear from "@kaizen/component-library/icons/clear.icon.svg";
|
|
18
|
+
import { Tooltip } from "@kaizen/draft-tooltip";
|
|
19
|
+
var FilterButtonRemovable = forwardRef(({ triggerButtonProps, removeButtonProps, ...restProps }, ref) => {
|
|
20
|
+
const customRefObject = isRefObject(ref) ? ref.current : null;
|
|
21
|
+
const removeButtonRef = customRefObject == null ? void 0 : customRefObject.removeButtonRef;
|
|
22
|
+
const removeButtonLabel = (removeButtonProps == null ? void 0 : removeButtonProps.tooltipText) ?? `Remove filter - ${triggerButtonProps == null ? void 0 : triggerButtonProps.label}`;
|
|
23
|
+
return /* @__PURE__ */ React.createElement(ButtonGroup, { ...restProps }, /* @__PURE__ */ React.createElement(FilterButton, { ref, ...triggerButtonProps }), /* @__PURE__ */ React.createElement(Tooltip, { text: removeButtonLabel, display: "inline-block", position: "below" }, /* @__PURE__ */ React.createElement(FilterButtonBase, { ref: removeButtonRef, ...removeButtonProps }, /* @__PURE__ */ React.createElement(Icon, { icon: iconClear, title: removeButtonLabel }))));
|
|
24
|
+
});
|
|
25
|
+
FilterButtonRemovable.displayName = "FilterButtonRemovable";
|
|
26
|
+
|
|
27
|
+
export {
|
|
28
|
+
FilterButtonRemovable
|
|
29
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
isRefObject
|
|
3
|
+
} from "./chunk-3VEH3HNR.js";
|
|
4
|
+
import {
|
|
5
|
+
FilterButtonBase
|
|
6
|
+
} from "./chunk-SBUK4XZM.js";
|
|
7
|
+
|
|
8
|
+
// src/FilterButton/FilterButton/FilterButton.tsx
|
|
9
|
+
import React, { forwardRef } from "react";
|
|
10
|
+
import classnames from "classnames";
|
|
11
|
+
import { Icon } from "@kaizen/component-library";
|
|
12
|
+
import chevronDown from "@kaizen/component-library/icons/chevron-down.icon.svg";
|
|
13
|
+
import chevronUp from "@kaizen/component-library/icons/chevron-up.icon.svg";
|
|
14
|
+
import styles from "./FilterButton.module-HA7A5HIZ.scss";
|
|
15
|
+
var FilterButton = forwardRef(
|
|
16
|
+
({ label, selectedValue, isOpen = false, classNameOverride, ...restProps }, ref) => {
|
|
17
|
+
const customRefObject = isRefObject(ref) ? ref.current : null;
|
|
18
|
+
const triggerRef = customRefObject == null ? void 0 : customRefObject.triggerRef;
|
|
19
|
+
const selectedValuesLabel = selectedValue;
|
|
20
|
+
return /* @__PURE__ */ React.createElement(
|
|
21
|
+
FilterButtonBase,
|
|
22
|
+
{
|
|
23
|
+
ref: triggerRef,
|
|
24
|
+
classNameOverride: classnames(styles.filterButton, classNameOverride),
|
|
25
|
+
"aria-haspopup": "true",
|
|
26
|
+
"aria-expanded": isOpen,
|
|
27
|
+
...restProps
|
|
28
|
+
},
|
|
29
|
+
/* @__PURE__ */ React.createElement("span", { className: styles.labelContainer }, selectedValuesLabel ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { className: styles.hasSelectedValues }, /* @__PURE__ */ React.createElement("span", null, label), /* @__PURE__ */ React.createElement("span", { className: styles.labelSeparator }, ":")), /* @__PURE__ */ React.createElement("span", null, selectedValuesLabel)) : label),
|
|
30
|
+
/* @__PURE__ */ React.createElement(Icon, { icon: isOpen ? chevronUp : chevronDown, role: "presentation" })
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
FilterButton.displayName = "FilterButton";
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
FilterButton
|
|
38
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FilterButtonBase
|
|
3
|
+
} from "./chunk-SBUK4XZM.js";
|
|
4
|
+
|
|
5
|
+
// src/ButtonGroup/ButtonGroup.tsx
|
|
6
|
+
import React from "react";
|
|
7
|
+
import classnames from "classnames";
|
|
8
|
+
import { Tooltip } from "@kaizen/draft-tooltip";
|
|
9
|
+
import styles from "./ButtonGroup.module-NQDV3763.scss";
|
|
10
|
+
var isFilterButton = (node) => React.isValidElement(node) && node.type === FilterButtonBase;
|
|
11
|
+
var ButtonGroup = ({
|
|
12
|
+
children,
|
|
13
|
+
classNameOverride,
|
|
14
|
+
...restProps
|
|
15
|
+
}) => {
|
|
16
|
+
const childCount = React.Children.count(children);
|
|
17
|
+
const containerProps = {
|
|
18
|
+
role: "group",
|
|
19
|
+
className: classnames(styles.buttonGroup, classNameOverride),
|
|
20
|
+
...restProps
|
|
21
|
+
};
|
|
22
|
+
if (childCount === 1)
|
|
23
|
+
return /* @__PURE__ */ React.createElement("div", { ...containerProps }, children);
|
|
24
|
+
return /* @__PURE__ */ React.createElement("div", { ...containerProps }, React.Children.map(children, (child, index) => {
|
|
25
|
+
const buttonClassNames = classnames(
|
|
26
|
+
styles.child,
|
|
27
|
+
index === 0 && styles.firstChild,
|
|
28
|
+
index === childCount - 1 && styles.lastChild,
|
|
29
|
+
child.props.classNameOverride
|
|
30
|
+
);
|
|
31
|
+
if (child.type === Tooltip) {
|
|
32
|
+
const button = child.props.children;
|
|
33
|
+
if (isFilterButton(button)) {
|
|
34
|
+
return React.cloneElement(child, {
|
|
35
|
+
children: React.cloneElement(button, {
|
|
36
|
+
classNameOverride: buttonClassNames
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return child;
|
|
41
|
+
}
|
|
42
|
+
return React.cloneElement(child, {
|
|
43
|
+
classNameOverride: buttonClassNames
|
|
44
|
+
});
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
47
|
+
ButtonGroup.displayName = "ButtonGroup";
|
|
48
|
+
|
|
49
|
+
export {
|
|
50
|
+
ButtonGroup
|
|
51
|
+
};
|