@kaizen/components 1.68.2 → 1.68.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.
Files changed (140) hide show
  1. package/dist/cjs/Filter/FilterBar/context/FilterBarContext.cjs +13 -3
  2. package/dist/cjs/Filter/FilterBar/context/reducer/filterBarStateReducer.cjs +1 -1
  3. package/dist/cjs/Filter/FilterBar/context/reducer/setupFilterBarState.cjs +4 -0
  4. package/dist/cjs/Filter/FilterBar/context/utils/updateDependentFilters.cjs +1 -1
  5. package/dist/cjs/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.cjs +7 -2
  6. package/dist/cjs/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.module.scss.cjs +2 -1
  7. package/dist/cjs/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.cjs +3 -0
  8. package/dist/cjs/Tile/subcomponents/GenericTile/GenericTile.cjs +16 -3
  9. package/dist/esm/Filter/FilterBar/context/FilterBarContext.mjs +13 -3
  10. package/dist/esm/Filter/FilterBar/context/reducer/filterBarStateReducer.mjs +1 -1
  11. package/dist/esm/Filter/FilterBar/context/reducer/setupFilterBarState.mjs +4 -0
  12. package/dist/esm/Filter/FilterBar/context/utils/updateDependentFilters.mjs +1 -1
  13. package/dist/esm/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.mjs +6 -2
  14. package/dist/esm/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.module.scss.mjs +2 -1
  15. package/dist/esm/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.mjs +3 -0
  16. package/dist/esm/Tile/subcomponents/GenericTile/GenericTile.mjs +16 -3
  17. package/dist/styles.css +81 -77
  18. package/dist/types/Filter/FilterBar/context/FilterBarContext.d.ts +1 -0
  19. package/dist/types/Filter/FilterBar/context/types.d.ts +1 -0
  20. package/dist/types/Tile/subcomponents/GenericTile/GenericTile.d.ts +3 -1
  21. package/locales/en.json +8 -0
  22. package/package.json +1 -1
  23. package/src/Avatar/_docs/Avatar.stickersheet.stories.tsx +30 -32
  24. package/src/AvatarGroup/_docs/AvatarGroup.stickersheet.stories.tsx +14 -16
  25. package/src/Badge/_docs/Badge.stickersheet.stories.tsx +22 -22
  26. package/src/Brand/_docs/Brand.stickersheet.stories.tsx +24 -26
  27. package/src/BrandMoment/_docs/BrandMoment.stickersheet.stories.tsx +35 -39
  28. package/src/ButtonGroup/_docs/ButtonGroup.stickersheet.stories.tsx +117 -122
  29. package/src/Calendar/CalendarPopover/_docs/CalendarPopover.stickersheet.stories.tsx +4 -4
  30. package/src/Calendar/CalendarRange/_docs/CalendarRange.stickersheet.stories.tsx +22 -30
  31. package/src/Calendar/CalendarSingle/_docs/CalendarSingle.stickersheet.stories.tsx +58 -58
  32. package/src/Card/_docs/Card.stickersheet.stories.tsx +12 -16
  33. package/src/Checkbox/Checkbox/_docs/Checkbox.stickersheet.stories.tsx +24 -27
  34. package/src/Checkbox/CheckboxField/_docs/CheckboxField.stickersheet.stories.tsx +31 -34
  35. package/src/Checkbox/CheckboxGroup/_docs/CheckboxGroup.stickersheet.stories.tsx +25 -29
  36. package/src/ClearButton/_docs/ClearButton.stickersheet.stories.tsx +9 -9
  37. package/src/Collapsible/Collapsible/_docs/Collapsible.stickersheet.stories.tsx +56 -62
  38. package/src/Collapsible/CollapsibleGroup/_docs/CollapsibleGroup.stickersheet.stories.tsx +19 -21
  39. package/src/Collapsible/ExpertAdviceCollapsible/_docs/ExpertAdviceCollapsible.stickersheets.stories.tsx +6 -8
  40. package/src/DatePicker/_docs/DatePicker.stickersheet.stories.tsx +129 -144
  41. package/src/DatePicker/_docs/getLocale.stickersheet.stories.tsx +9 -11
  42. package/src/DateRangePicker/_docs/DateRangePicker.stickersheet.stories.tsx +26 -28
  43. package/src/Divider/_docs/Divider.stickersheet.stories.tsx +13 -10
  44. package/src/EmptyState/_docs/EmptyState.stickersheet.stories.tsx +7 -2
  45. package/src/ErrorPage/_docs/ErrorPage.stickersheet.stories.tsx +16 -20
  46. package/src/FieldGroup/_docs/FieldGroup.stickersheet.stories.tsx +5 -8
  47. package/src/FieldMessage/_docs/FieldMessage.stickersheet.stories.tsx +10 -20
  48. package/src/Filter/Filter/_docs/Filter.stickersheet.stories.tsx +13 -15
  49. package/src/Filter/FilterBar/FilterBar.spec.tsx +0 -64
  50. package/src/Filter/FilterBar/_docs/FilterBar.spec.stories.tsx +249 -0
  51. package/src/Filter/FilterBar/_docs/FilterBar.stickersheet.stories.tsx +34 -48
  52. package/src/Filter/FilterBar/_docs/FilterBar.stories.tsx +1 -1
  53. package/src/Filter/FilterBar/context/FilterBarContext.tsx +17 -5
  54. package/src/Filter/FilterBar/context/reducer/filterBarStateReducer.spec.ts +3 -0
  55. package/src/Filter/FilterBar/context/reducer/filterBarStateReducer.ts +1 -1
  56. package/src/Filter/FilterBar/context/reducer/setupFilterBarState.spec.tsx +40 -0
  57. package/src/Filter/FilterBar/context/reducer/setupFilterBarState.ts +5 -0
  58. package/src/Filter/FilterBar/context/reducer/updateSingleFilter.spec.ts +2 -0
  59. package/src/Filter/FilterBar/context/reducer/updateValues.spec.ts +5 -0
  60. package/src/Filter/FilterBar/context/types.ts +1 -0
  61. package/src/Filter/FilterBar/context/utils/checkShouldUpdateValues.spec.ts +1 -0
  62. package/src/Filter/FilterBar/context/utils/getInactiveFilters.spec.ts +2 -0
  63. package/src/Filter/FilterBar/context/utils/getIsUsableWhenArgs.spec.ts +1 -0
  64. package/src/Filter/FilterBar/context/utils/updateDependentFilters.spec.ts +8 -0
  65. package/src/Filter/FilterBar/context/utils/updateDependentFilters.ts +1 -1
  66. package/src/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.module.scss +4 -0
  67. package/src/Filter/FilterBar/subcomponents/ClearAllButton/ClearAllButton.tsx +5 -2
  68. package/src/Filter/FilterButton/_docs/filter-buttons.stickersheet.stories.tsx +45 -51
  69. package/src/Filter/FilterDatePicker/_docs/FilterDatePicker.stickersheet.stories.tsx +74 -93
  70. package/src/Filter/FilterDateRangePicker/_docs/FilterDateRangePicker.stickersheet.stories.tsx +110 -128
  71. package/src/Filter/FilterDateRangePicker/subcomponents/FilterDateRangePickerField/FilterDateRangePickerField.tsx +4 -0
  72. package/src/Filter/FilterSelect/_docs/FilterSelect.stickersheet.stories.tsx +239 -249
  73. package/src/GuidanceBlock/_docs/GuidanceBlock.stickersheet.stories.tsx +38 -40
  74. package/src/Heading/_docs/Heading.stickersheet.stories.tsx +101 -111
  75. package/src/Icon/_docs/Icon.stickersheet.stories.tsx +13 -19
  76. package/src/Illustration/Scene/BrandMomentCaptureIntro/_docs/BrandMomentCaptureIntro.stickersheet.stories.tsx +8 -8
  77. package/src/Illustration/Scene/_docs/Scene.stickersheet.stories.tsx +139 -185
  78. package/src/Illustration/subcomponents/VideoPlayer/VideoPlayer.stickersheet.stories.tsx +39 -41
  79. package/src/Input/Input/_docs/Input.stickersheet.stories.tsx +30 -33
  80. package/src/Input/InputRange/_docs/InputRange.stickersheet.stories.tsx +21 -20
  81. package/src/Input/InputSearch/_docs/InputSearch.stickersheet.stories.tsx +137 -144
  82. package/src/Label/_docs/Label.stickersheet.stories.tsx +78 -85
  83. package/src/LabelledMessage/_docs/LabelledMessage.stickersheet.stories.tsx +3 -5
  84. package/src/LikertScaleLegacy/_docs/LikertScaleLegacy.stickersheet.stories.tsx +82 -82
  85. package/src/Loading/LoadingGraphic/_docs/LoadingGraphic.stickersheet.stories.tsx +18 -20
  86. package/src/Loading/LoadingGraphic/_docs/LoadingGraphic.stories.tsx +46 -52
  87. package/src/Loading/LoadingHeading/_docs/LoadingHeading.stickersheet.stories.tsx +14 -18
  88. package/src/Loading/LoadingHeading/_docs/LoadingHeading.stories.tsx +7 -13
  89. package/src/Loading/LoadingParagraph/_docs/LoadingParagraph.stickersheet.stories.tsx +14 -16
  90. package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.stickersheet.stories.tsx +13 -15
  91. package/src/MultiSelect/_docs/MultiSelect.stickersheet.stories.tsx +69 -74
  92. package/src/MultiSelect/subcomponents/Checkbox/_docs/Checkbox.stickersheet.stories.tsx +22 -28
  93. package/src/MultiSelect/subcomponents/MultiSelectOptionField/_docs/MultiSelectOptionField.stickersheet.stories.tsx +62 -67
  94. package/src/MultiSelect/subcomponents/MultiSelectOptions/_docs/MultiSelectOptions.stickersheet.stories.tsx +21 -28
  95. package/src/MultiSelect/subcomponents/MultiSelectToggle/_docs/MultiSelectToggle.stickersheet.stories.tsx +69 -93
  96. package/src/Notification/GlobalNotification/_docs/GlobalNotification.stickersheet.stories.tsx +13 -16
  97. package/src/Notification/InlineNotification/_docs/InlineNotification.stickersheet.stories.tsx +13 -16
  98. package/src/Pagination/_docs/Pagination.stickersheet.stories.tsx +60 -74
  99. package/src/Pagination/subcomponents/DirectionalLink/_docs/DirectionalLink.stickersheet.stories.tsx +21 -23
  100. package/src/Pagination/subcomponents/PaginationLink/_docs/PaginationLink.stickersheet.stories.tsx +24 -28
  101. package/src/Popover/_docs/Popover.stickersheet.stories.tsx +33 -45
  102. package/src/ProgressBar/_docs/ProgressBar.stickersheet.stories.tsx +15 -26
  103. package/src/Radio/Radio/_docs/Radio.stickersheet.stories.tsx +46 -54
  104. package/src/Radio/RadioField/_docs/RadioField.stickersheet.stories.tsx +51 -54
  105. package/src/Radio/RadioGroup/_docs/RadioGroup.stickersheet.stories.tsx +80 -86
  106. package/src/RichTextEditor/EditableRichTextContent/_docs/EditableRichTextContent.stickersheet.stories.tsx +42 -58
  107. package/src/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/_docs/ToggleIconButton.stickersheet.stories.tsx +34 -57
  108. package/src/SearchField/_docs/SearchField.stickersheet.stories.tsx +32 -31
  109. package/src/Select/_docs/Select.stickersheet.stories.tsx +128 -127
  110. package/src/Slider/_docs/Slider.stickersheet.stories.tsx +85 -96
  111. package/src/SplitButton/_docs/SplitButton.stickersheet.stories.tsx +62 -68
  112. package/src/Tag/_docs/Tag.stickersheet.stories.tsx +49 -57
  113. package/src/Text/_docs/Text.stickersheet.stories.tsx +43 -47
  114. package/src/TextArea/_docs/TextArea.stickersheet.stories.tsx +28 -31
  115. package/src/TextAreaField/_docs/TextAreaField.stickersheet.stories.tsx +71 -89
  116. package/src/TextField/_docs/TextField.stickersheet.stories.tsx +47 -50
  117. package/src/Tile/InformationTile/_docs/InformationTile.mdx +4 -0
  118. package/src/Tile/InformationTile/_docs/InformationTile.stickersheet.stories.tsx +15 -21
  119. package/src/Tile/InformationTile/_docs/InformationTile.stories.tsx +7 -0
  120. package/src/Tile/MultiActionTile/_docs/MultiActionTile.stickersheet.stories.tsx +15 -21
  121. package/src/Tile/TileGrid/_docs/TileGrid.stickersheet.stories.tsx +91 -99
  122. package/src/Tile/subcomponents/GenericTile/GenericTile.spec.stories.tsx +65 -5
  123. package/src/Tile/subcomponents/GenericTile/GenericTile.tsx +20 -2
  124. package/src/Tile/subcomponents/GenericTile/_docs/GenericTile.stickersheet.stories.tsx +15 -21
  125. package/src/TimeField/_docs/TimeField.stickersheet.stories.tsx +74 -83
  126. package/src/TitleBlockZen/_docs/TitleBlockZen.stories.tsx +73 -75
  127. package/src/ToggleSwitch/ToggleSwitch/_docs/ToggleSwitch.stickersheet.stories.tsx +24 -27
  128. package/src/ToggleSwitch/ToggleSwitchField/_docs/ToggleSwitchField.stickersheet.stories.tsx +47 -50
  129. package/src/Well/_docs/Well.stickersheet.stories.tsx +31 -41
  130. package/src/__actions__/Button/v1/Button/_docs/Button.stickersheet.stories.tsx +107 -146
  131. package/src/__actions__/Button/v1/IconButton/_docs/IconButton.stickersheet.stories.tsx +26 -29
  132. package/src/__actions__/Button/v3/_docs/Button.stickersheet.stories.tsx +141 -159
  133. package/src/__actions__/Menu/v1/_docs/Menu.stickersheet.stories.tsx +33 -36
  134. package/src/__future__/Icon/_docs/Icon.docs.stories.tsx +17 -23
  135. package/src/__future__/Icon/_docs/Icon.stickersheet.stories.tsx +63 -72
  136. package/src/__future__/Select/_docs/Select.stickersheet.stories.tsx +287 -309
  137. package/src/__future__/Tag/RemovableTag/_docs/RemovableTag.stickersheet.stories.tsx +42 -46
  138. package/src/__future__/Tag/Tag/_docs/Tag.stickersheet.stories.tsx +14 -17
  139. package/src/__overlays__/Tooltip/v1/_docs/Tooltip.stickersheet.stories.tsx +101 -103
  140. package/src/__overlays__/Tooltip/v3/_docs/Tooltip.stickersheet.stories.tsx +3 -4
@@ -35,6 +35,18 @@ var FilterBarProvider = function (_a) {
35
35
  var _b = React.useReducer(filterBarStateReducer.filterBarStateReducer, setupFilterBarState.setupFilterBarState(filters, values)),
36
36
  state = _b[0],
37
37
  dispatch = _b[1];
38
+ var activeFilters = Array.from(state.activeFilterIds, function (id) {
39
+ return mappedFilters[id];
40
+ });
41
+ // Workaround for DateRangePicker populating the values object before the value is valid
42
+ // (it purposefully persists a state with a 'from' date but no 'to' date, but hides it on the filter button)
43
+ var isDraftDateRange = function (v) {
44
+ return v && v.from !== undefined && v.to === undefined;
45
+ };
46
+ var hasDraftDateRangeOnly = Object.values(values).every(isDraftDateRange);
47
+ var isClearable = Object.keys(values).length > 0 && !hasDraftDateRangeOnly || state.hasRemovableFilter && activeFilters.some(function (f) {
48
+ return f.isRemovable;
49
+ });
38
50
  var value = {
39
51
  getFilterState: function (id) {
40
52
  return tslib.__assign(tslib.__assign({}, state.filters[id]), {
@@ -42,6 +54,7 @@ var FilterBarProvider = function (_a) {
42
54
  value: values[id]
43
55
  });
44
56
  },
57
+ isClearable: isClearable,
45
58
  getActiveFilterValues: function () {
46
59
  return values;
47
60
  },
@@ -147,9 +160,6 @@ var FilterBarProvider = function (_a) {
147
160
  });
148
161
  }
149
162
  }, [filters]);
150
- var activeFilters = Array.from(state.activeFilterIds, function (id) {
151
- return mappedFilters[id];
152
- });
153
163
  return React__default.default.createElement(FilterBarContext.Provider
154
164
  // @note: Context object cannot be generic, thus the type-casting to a looser type
155
165
  , {
@@ -25,7 +25,7 @@ var filterBarStateReducer = function (state, action) {
25
25
  return tslib.__assign({}, updateDependentFilters.updateDependentFilters(state));
26
26
  case "deactivate_filter":
27
27
  state.activeFilterIds.delete(action.id);
28
- state.values[action.id] = undefined;
28
+ delete state.values[action.id];
29
29
  return tslib.__assign(tslib.__assign({}, updateDependentFilters.updateDependentFilters(state)), {
30
30
  hasUpdatedValues: true
31
31
  });
@@ -22,6 +22,9 @@ var setupFilterBarState = function (filters, values) {
22
22
  if (!isRemovable || values[id] !== undefined) {
23
23
  baseState.activeFilterIds.add(id);
24
24
  }
25
+ if (isRemovable) {
26
+ baseState.hasRemovableFilter = true;
27
+ }
25
28
  return baseState;
26
29
  }, {
27
30
  filters: {},
@@ -29,6 +32,7 @@ var setupFilterBarState = function (filters, values) {
29
32
  values: values,
30
33
  dependentFilterIds: new Set(),
31
34
  hasUpdatedValues: false,
35
+ hasRemovableFilter: false,
32
36
  focusId: undefined
33
37
  });
34
38
  return updateDependentFilters.updateDependentFilters(state);
@@ -13,7 +13,7 @@ var updateDependentFilters = function (state) {
13
13
  state.filters[id].isUsable = isUsable;
14
14
  if (!isUsable) {
15
15
  state.activeFilterIds.delete(id);
16
- state.values[id] = undefined;
16
+ delete state.values[id];
17
17
  state.hasUpdatedValues = true;
18
18
  return;
19
19
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var i18nReactIntl = require('@cultureamp/i18n-react-intl');
5
+ var classnames = require('classnames');
5
6
  var FilterBarContext = require('../../context/FilterBarContext.cjs');
6
7
  var ClearAllButton_module = require('./ClearAllButton.module.scss.cjs');
7
8
  var Button = require('../../../../__actions__/Button/v1/Button/Button.cjs');
@@ -11,7 +12,9 @@ function _interopDefault(e) {
11
12
  };
12
13
  }
13
14
  var React__default = /*#__PURE__*/_interopDefault(React);
15
+ var classnames__default = /*#__PURE__*/_interopDefault(classnames);
14
16
  var ClearAllButton = function () {
17
+ var _a;
15
18
  var formatMessage = i18nReactIntl.useIntl().formatMessage;
16
19
  var clearButtonLabel = formatMessage({
17
20
  id: "filterBar.clearAllButton.label",
@@ -23,11 +26,13 @@ var ClearAllButton = function () {
23
26
  defaultMessage: "Clear all filters",
24
27
  description: "Button aria-label to clear all values within the filter bar"
25
28
  });
26
- var clearAllFilters = FilterBarContext.useFilterBarContext().clearAllFilters;
29
+ var _b = FilterBarContext.useFilterBarContext(),
30
+ clearAllFilters = _b.clearAllFilters,
31
+ isClearable = _b.isClearable;
27
32
  return React__default.default.createElement(Button.Button, {
28
33
  label: clearButtonLabel,
29
34
  "aria-label": clearButtonAriaLabel,
30
- classNameOverride: ClearAllButton_module.clearAllButton,
35
+ classNameOverride: classnames__default.default(ClearAllButton_module.clearAllButton, (_a = {}, _a[ClearAllButton_module.hidden] = !isClearable, _a)),
31
36
  secondary: true,
32
37
  onClick: clearAllFilters
33
38
  });
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var styles = {
4
- "clearAllButton": "ClearAllButton-module_clearAllButton__XNkm2"
4
+ "clearAllButton": "ClearAllButton-module_clearAllButton__XNkm2",
5
+ "hidden": "ClearAllButton-module_hidden__-L2eA"
5
6
  };
6
7
  module.exports = styles;
@@ -184,6 +184,9 @@ var FilterDateRangePickerField = function (_a) {
184
184
  // Translations are loading
185
185
  return;
186
186
  }
187
+ if (state.inputStartValue === "" && state.inputEndValue === "") {
188
+ return;
189
+ }
187
190
  var newStartDate = validateStartDate(selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.from, state.inputStartValue);
188
191
  var newEndDate = validateEndDate(selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to, state.inputEndValue);
189
192
  if (newStartDate && !isValidRange.isValidRange(newStartDate, newEndDate)) {
@@ -2,6 +2,7 @@
2
2
 
3
3
  var tslib = require('tslib');
4
4
  var React = require('react');
5
+ var i18nReactIntl = require('@cultureamp/i18n-react-intl');
5
6
  var classnames = require('classnames');
6
7
  var Heading = require('../../../Heading/Heading.cjs');
7
8
  var Text = require('../../../Text/Text.cjs');
@@ -23,15 +24,22 @@ var GenericTile = function (_a) {
23
24
  titleTag = _b === void 0 ? "h3" : _b,
24
25
  metadata = _a.metadata,
25
26
  information = _a.information,
27
+ infoButtonLabel = _a.infoButtonLabel,
26
28
  mood = _a.mood,
27
29
  _c = _a.variant,
28
30
  variant = _c === void 0 ? "default" : _c,
29
31
  footer = _a.footer,
30
32
  classNameOverride = _a.classNameOverride,
31
- restProps = tslib.__rest(_a, ["children", "title", "titleTag", "metadata", "information", "mood", "variant", "footer", "classNameOverride"]);
33
+ restProps = tslib.__rest(_a, ["children", "title", "titleTag", "metadata", "information", "infoButtonLabel", "mood", "variant", "footer", "classNameOverride"]);
32
34
  var _d = React.useState(false),
33
35
  isFlipped = _d[0],
34
36
  setIsFlipped = _d[1];
37
+ var formatMessage = i18nReactIntl.useIntl().formatMessage;
38
+ var translatedInfoLabel = formatMessage({
39
+ id: "kzGenericTile.infoButtonLabel",
40
+ defaultMessage: "View more information:",
41
+ description: "Prompts user to interact with button to reveal more information"
42
+ });
35
43
  var renderTitle = function () {
36
44
  return React__default.default.createElement("div", {
37
45
  className: GenericTile_module.title
@@ -51,7 +59,7 @@ var GenericTile = function (_a) {
51
59
  }, information && React__default.default.createElement("div", {
52
60
  className: GenericTile_module.informationBtn
53
61
  }, React__default.default.createElement(IconButton.IconButton, {
54
- label: "Information",
62
+ label: infoButtonLabel || "".concat(translatedInfoLabel, " ").concat(title),
55
63
  icon: React__default.default.createElement(Icon.Icon, {
56
64
  name: "info",
57
65
  isPresentational: true,
@@ -87,12 +95,17 @@ var GenericTile = function (_a) {
87
95
  };
88
96
  var renderBack = function () {
89
97
  if (!information) return;
98
+ var returnButtonLabel = formatMessage({
99
+ id: "kzGenericTile.infoButtonReturnLabel",
100
+ defaultMessage: "Hide information:",
101
+ description: "Prompts user to interact with button to hide information"
102
+ });
90
103
  return React__default.default.createElement("div", {
91
104
  className: classnames__default.default(GenericTile_module.face, GenericTile_module.faceBack)
92
105
  }, React__default.default.createElement("div", {
93
106
  className: GenericTile_module.informationBtn
94
107
  }, React__default.default.createElement(IconButton.IconButton, {
95
- label: "Information",
108
+ label: "".concat(returnButtonLabel, " ").concat(title),
96
109
  icon: React__default.default.createElement(Icon.Icon, {
97
110
  name: "arrow_back",
98
111
  isPresentational: true
@@ -27,6 +27,18 @@ var FilterBarProvider = function (_a) {
27
27
  var _b = useReducer(filterBarStateReducer, setupFilterBarState(filters, values)),
28
28
  state = _b[0],
29
29
  dispatch = _b[1];
30
+ var activeFilters = Array.from(state.activeFilterIds, function (id) {
31
+ return mappedFilters[id];
32
+ });
33
+ // Workaround for DateRangePicker populating the values object before the value is valid
34
+ // (it purposefully persists a state with a 'from' date but no 'to' date, but hides it on the filter button)
35
+ var isDraftDateRange = function (v) {
36
+ return v && v.from !== undefined && v.to === undefined;
37
+ };
38
+ var hasDraftDateRangeOnly = Object.values(values).every(isDraftDateRange);
39
+ var isClearable = Object.keys(values).length > 0 && !hasDraftDateRangeOnly || state.hasRemovableFilter && activeFilters.some(function (f) {
40
+ return f.isRemovable;
41
+ });
30
42
  var value = {
31
43
  getFilterState: function (id) {
32
44
  return __assign(__assign({}, state.filters[id]), {
@@ -34,6 +46,7 @@ var FilterBarProvider = function (_a) {
34
46
  value: values[id]
35
47
  });
36
48
  },
49
+ isClearable: isClearable,
37
50
  getActiveFilterValues: function () {
38
51
  return values;
39
52
  },
@@ -139,9 +152,6 @@ var FilterBarProvider = function (_a) {
139
152
  });
140
153
  }
141
154
  }, [filters]);
142
- var activeFilters = Array.from(state.activeFilterIds, function (id) {
143
- return mappedFilters[id];
144
- });
145
155
  return /*#__PURE__*/React.createElement(FilterBarContext.Provider
146
156
  // @note: Context object cannot be generic, thus the type-casting to a looser type
147
157
  , {
@@ -23,7 +23,7 @@ var filterBarStateReducer = function (state, action) {
23
23
  return __assign({}, updateDependentFilters(state));
24
24
  case "deactivate_filter":
25
25
  state.activeFilterIds.delete(action.id);
26
- state.values[action.id] = undefined;
26
+ delete state.values[action.id];
27
27
  return __assign(__assign({}, updateDependentFilters(state)), {
28
28
  hasUpdatedValues: true
29
29
  });
@@ -20,6 +20,9 @@ var setupFilterBarState = function (filters, values) {
20
20
  if (!isRemovable || values[id] !== undefined) {
21
21
  baseState.activeFilterIds.add(id);
22
22
  }
23
+ if (isRemovable) {
24
+ baseState.hasRemovableFilter = true;
25
+ }
23
26
  return baseState;
24
27
  }, {
25
28
  filters: {},
@@ -27,6 +30,7 @@ var setupFilterBarState = function (filters, values) {
27
30
  values: values,
28
31
  dependentFilterIds: new Set(),
29
32
  hasUpdatedValues: false,
33
+ hasRemovableFilter: false,
30
34
  focusId: undefined
31
35
  });
32
36
  return updateDependentFilters(state);
@@ -11,7 +11,7 @@ var updateDependentFilters = function (state) {
11
11
  state.filters[id].isUsable = isUsable;
12
12
  if (!isUsable) {
13
13
  state.activeFilterIds.delete(id);
14
- state.values[id] = undefined;
14
+ delete state.values[id];
15
15
  state.hasUpdatedValues = true;
16
16
  return;
17
17
  }
@@ -1,10 +1,12 @@
1
1
  import React from 'react';
2
2
  import { useIntl } from '@cultureamp/i18n-react-intl';
3
+ import classnames from 'classnames';
3
4
  import { useFilterBarContext } from '../../context/FilterBarContext.mjs';
4
5
  import styles from './ClearAllButton.module.scss.mjs';
5
6
  import { Button } from '../../../../__actions__/Button/v1/Button/Button.mjs';
6
7
  const ClearAllButton = /*#__PURE__*/function () {
7
8
  const ClearAllButton = function () {
9
+ var _a;
8
10
  var formatMessage = useIntl().formatMessage;
9
11
  var clearButtonLabel = formatMessage({
10
12
  id: "filterBar.clearAllButton.label",
@@ -16,11 +18,13 @@ const ClearAllButton = /*#__PURE__*/function () {
16
18
  defaultMessage: "Clear all filters",
17
19
  description: "Button aria-label to clear all values within the filter bar"
18
20
  });
19
- var clearAllFilters = useFilterBarContext().clearAllFilters;
21
+ var _b = useFilterBarContext(),
22
+ clearAllFilters = _b.clearAllFilters,
23
+ isClearable = _b.isClearable;
20
24
  return /*#__PURE__*/React.createElement(Button, {
21
25
  label: clearButtonLabel,
22
26
  "aria-label": clearButtonAriaLabel,
23
- classNameOverride: styles.clearAllButton,
27
+ classNameOverride: classnames(styles.clearAllButton, (_a = {}, _a[styles.hidden] = !isClearable, _a)),
24
28
  secondary: true,
25
29
  onClick: clearAllFilters
26
30
  });
@@ -1,4 +1,5 @@
1
1
  var styles = {
2
- "clearAllButton": "ClearAllButton-module_clearAllButton__XNkm2"
2
+ "clearAllButton": "ClearAllButton-module_clearAllButton__XNkm2",
3
+ "hidden": "ClearAllButton-module_hidden__-L2eA"
3
4
  };
4
5
  export { styles as default };
@@ -176,6 +176,9 @@ const FilterDateRangePickerField = /*#__PURE__*/function () {
176
176
  // Translations are loading
177
177
  return;
178
178
  }
179
+ if (state.inputStartValue === "" && state.inputEndValue === "") {
180
+ return;
181
+ }
179
182
  var newStartDate = validateStartDate(selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.from, state.inputStartValue);
180
183
  var newEndDate = validateEndDate(selectedRange === null || selectedRange === void 0 ? void 0 : selectedRange.to, state.inputEndValue);
181
184
  if (newStartDate && !isValidRange(newStartDate, newEndDate)) {
@@ -1,5 +1,6 @@
1
1
  import { __rest, __assign } from 'tslib';
2
2
  import React, { useState } from 'react';
3
+ import { useIntl } from '@cultureamp/i18n-react-intl';
3
4
  import classnames from 'classnames';
4
5
  import { Heading } from '../../../Heading/Heading.mjs';
5
6
  import { Text } from '../../../Text/Text.mjs';
@@ -15,15 +16,22 @@ const GenericTile = /*#__PURE__*/function () {
15
16
  titleTag = _b === void 0 ? "h3" : _b,
16
17
  metadata = _a.metadata,
17
18
  information = _a.information,
19
+ infoButtonLabel = _a.infoButtonLabel,
18
20
  mood = _a.mood,
19
21
  _c = _a.variant,
20
22
  variant = _c === void 0 ? "default" : _c,
21
23
  footer = _a.footer,
22
24
  classNameOverride = _a.classNameOverride,
23
- restProps = __rest(_a, ["children", "title", "titleTag", "metadata", "information", "mood", "variant", "footer", "classNameOverride"]);
25
+ restProps = __rest(_a, ["children", "title", "titleTag", "metadata", "information", "infoButtonLabel", "mood", "variant", "footer", "classNameOverride"]);
24
26
  var _d = useState(false),
25
27
  isFlipped = _d[0],
26
28
  setIsFlipped = _d[1];
29
+ var formatMessage = useIntl().formatMessage;
30
+ var translatedInfoLabel = formatMessage({
31
+ id: "kzGenericTile.infoButtonLabel",
32
+ defaultMessage: "View more information:",
33
+ description: "Prompts user to interact with button to reveal more information"
34
+ });
27
35
  var renderTitle = function () {
28
36
  return /*#__PURE__*/React.createElement("div", {
29
37
  className: styles.title
@@ -43,7 +51,7 @@ const GenericTile = /*#__PURE__*/function () {
43
51
  }, information && ( /*#__PURE__*/React.createElement("div", {
44
52
  className: styles.informationBtn
45
53
  }, /*#__PURE__*/React.createElement(IconButton, {
46
- label: "Information",
54
+ label: infoButtonLabel || "".concat(translatedInfoLabel, " ").concat(title),
47
55
  icon: /*#__PURE__*/React.createElement(Icon, {
48
56
  name: "info",
49
57
  isPresentational: true,
@@ -79,12 +87,17 @@ const GenericTile = /*#__PURE__*/function () {
79
87
  };
80
88
  var renderBack = function () {
81
89
  if (!information) return;
90
+ var returnButtonLabel = formatMessage({
91
+ id: "kzGenericTile.infoButtonReturnLabel",
92
+ defaultMessage: "Hide information:",
93
+ description: "Prompts user to interact with button to hide information"
94
+ });
82
95
  return /*#__PURE__*/React.createElement("div", {
83
96
  className: classnames(styles.face, styles.faceBack)
84
97
  }, /*#__PURE__*/React.createElement("div", {
85
98
  className: styles.informationBtn
86
99
  }, /*#__PURE__*/React.createElement(IconButton, {
87
- label: "Information",
100
+ label: "".concat(returnButtonLabel, " ").concat(title),
88
101
  icon: /*#__PURE__*/React.createElement(Icon, {
89
102
  name: "arrow_back",
90
103
  isPresentational: true
package/dist/styles.css CHANGED
@@ -1,37 +1,4 @@
1
1
  @layer tokens, normalize, reset;@layer tokens{:root{--theme-key:heart;--animation-easing-function-ease-in-out:cubic-bezier(0.455,0.03,0.515,0.955);--animation-easing-function-ease-in:cubic-bezier(0.55,0.085,0.68,0.53);--animation-easing-function-ease-out:cubic-bezier(0.25,0.46,0.45,0.94);--animation-easing-function-linear:linear;--animation-easing-function-bounce-in:cubic-bezier(0.485,0.155,0.24,1.245);--animation-easing-function-bounce-out:cubic-bezier(0.485,0.155,0.515,0.845);--animation-easing-function-bounce-in-out:cubic-bezier(0.76,-0.245,0.24,1.245);--animation-duration-instant:0ms;--animation-duration-immediate:100ms;--animation-duration-rapid:200ms;--animation-duration-fast:300ms;--animation-duration-slow:400ms;--animation-duration-deliberate:700ms;--border-solid-border-width:2px;--border-solid-border-radius:7px;--border-solid-border-style:solid;--border-solid-border-color:#e1e2ea;--border-solid-border-color-rgb:225,226,234;--border-dashed-border-width:2px;--border-dashed-border-radius:7px;--border-dashed-border-style:dashed;--border-borderless-border-width:2px;--border-borderless-border-radius:7px;--border-borderless-border-style:solid;--border-borderless-border-color:transparent;--border-borderless-border-color-rgb:0,0,0;--border-focus-ring-border-width:2px;--border-focus-ring-border-radius:10px;--border-focus-ring-border-style:solid;--border-width-1:1px;--color-purple-100:#f4edf8;--color-purple-100-rgb:244,237,248;--color-purple-200:#dfc9ea;--color-purple-200-rgb:223,201,234;--color-purple-300:#c9a5dd;--color-purple-300-rgb:201,165,221;--color-purple-400:#ae67b1;--color-purple-400-rgb:174,103,177;--color-purple-500:#844587;--color-purple-500-rgb:132,69,135;--color-purple-600:#5f3361;--color-purple-600-rgb:95,51,97;--color-purple-700:#4a234d;--color-purple-700-rgb:74,35,77;--color-purple-800:#2f2438;--color-purple-800-rgb:47,36,56;--color-blue-100:#e6f6ff;--color-blue-100-rgb:230,246,255;--color-blue-200:#bde2f5;--color-blue-200-rgb:189,226,245;--color-blue-300:#73c0e8;--color-blue-300-rgb:115,192,232;--color-blue-400:#008bd6;--color-blue-400-rgb:0,139,214;--color-blue-500:#0168b3;--color-blue-500-rgb:1,104,179;--color-blue-600:#004970;--color-blue-600-rgb:0,73,112;--color-blue-700:#003157;--color-blue-700-rgb:0,49,87;--color-green-100:#e8f8f4;--color-green-100-rgb:232,248,244;--color-green-200:#c4ede2;--color-green-200-rgb:196,237,226;--color-green-300:#8fdbc7;--color-green-300-rgb:143,219,199;--color-green-400:#5dcaad;--color-green-400-rgb:93,202,173;--color-green-500:#3f9a86;--color-green-500-rgb:63,154,134;--color-green-600:#2c7d67;--color-green-600-rgb:44,125,103;--color-green-700:#22594a;--color-green-700-rgb:34,89,74;--color-yellow-100:#fff9e4;--color-yellow-100-rgb:255,249,228;--color-yellow-200:#ffeeb3;--color-yellow-200-rgb:255,238,179;--color-yellow-300:#ffe36e;--color-yellow-300-rgb:255,227,110;--color-yellow-400:#ffca4d;--color-yellow-400-rgb:255,202,77;--color-yellow-500:#ffb600;--color-yellow-500-rgb:255,182,0;--color-yellow-600:#c68600;--color-yellow-600-rgb:198,134,0;--color-yellow-700:#876400;--color-yellow-700-rgb:135,100,0;--color-red-100:#fdeaee;--color-red-100-rgb:253,234,238;--color-red-200:#f9c2cb;--color-red-200-rgb:249,194,203;--color-red-300:#f597a8;--color-red-300-rgb:245,151,168;--color-red-400:#e0707d;--color-red-400-rgb:224,112,125;--color-red-500:#c93b55;--color-red-500-rgb:201,59,85;--color-red-600:#a82433;--color-red-600-rgb:168,36,51;--color-red-700:#6c1e20;--color-red-700-rgb:108,30,32;--color-orange-100:#fff0e8;--color-orange-100-rgb:255,240,232;--color-orange-200:#ffd1b9;--color-orange-200-rgb:255,209,185;--color-orange-300:#ffb08a;--color-orange-300-rgb:255,176,138;--color-orange-400:#ff9461;--color-orange-400-rgb:255,148,97;--color-orange-500:#e96c2f;--color-orange-500-rgb:233,108,47;--color-orange-600:#b74302;--color-orange-600-rgb:183,67,2;--color-orange-700:#903c00;--color-orange-700-rgb:144,60,0;--color-gray-100:#f9f9f9;--color-gray-100-rgb:249,249,249;--color-gray-200:#f4f4f5;--color-gray-200-rgb:244,244,245;--color-gray-300:#eaeaec;--color-gray-300-rgb:234,234,236;--color-gray-400:#cdcdd0;--color-gray-400-rgb:205,205,208;--color-gray-500:#878792;--color-gray-500-rgb:135,135,146;--color-gray-600:#524e56;--color-gray-600-rgb:82,78,86;--color-white:#fff;--color-white-rgb:255,255,255;--color-black:#000;--color-black-rgb:0,0,0;--data-viz-favorable:#7dd5bd;--data-viz-favorable-rgb:125,213,189;--data-viz-unfavorable:#e68d97;--data-viz-unfavorable-rgb:230,141,151;--layout-content-max-width:1392px;--layout-content-max-width-with-sidebar:1080px;--layout-content-side-margin:72px;--layout-mobile-actions-drawer-height:60px;--layout-navigation-bar-height:72px;--layout-breakpoints-medium:768px;--layout-breakpoints-large:1080px;--shadow-small-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 3px 16px 0 rgba(0,0,0,.06);--shadow-large-box-shadow:0 3px 9px 0 rgba(0,0,0,.1),0 8px 40px 0 rgba(0,0,0,.08);--spacing-0:0;--spacing-1:.0625rem;--spacing-2:.125rem;--spacing-4:.25rem;--spacing-6:.375rem;--spacing-8:.5rem;--spacing-12:.75rem;--spacing-16:1rem;--spacing-20:1.25rem;--spacing-24:1.5rem;--spacing-32:2rem;--spacing-40:2.5rem;--spacing-48:3rem;--spacing-56:3.5rem;--spacing-64:4rem;--spacing-72:4.5rem;--spacing-80:5rem;--spacing-96:6rem;--spacing-112:7rem;--spacing-128:8rem;--spacing-160:10rem;--spacing-200:12.5rem;--spacing-240:15rem;--spacing-280:17.5rem;--spacing-320:20rem;--spacing-xs:0.375rem;--spacing-sm:0.75rem;--spacing-md:1.5rem;--spacing-lg:2.25rem;--spacing-xl:3rem;--spacing-xxl:3.75rem;--spacing-xxxl:4.5rem;--spacing-xxxxl:5.25rem;--spacing-xxxxxl:6rem;--typography-data-large-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-font-weight:700;--typography-data-large-font-size:5.25rem;--typography-data-large-line-height:5.25rem;--typography-data-large-letter-spacing:normal;--typography-data-large-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-units-font-weight:700;--typography-data-large-units-font-size:2.625rem;--typography-data-large-units-line-height:5.25rem;--typography-data-large-units-letter-spacing:normal;--typography-data-medium-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-font-weight:700;--typography-data-medium-font-size:3rem;--typography-data-medium-line-height:5rem;--typography-data-medium-letter-spacing:normal;--typography-data-medium-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-units-font-weight:700;--typography-data-medium-units-font-size:1.5rem;--typography-data-medium-units-line-height:5rem;--typography-data-medium-units-letter-spacing:normal;--typography-data-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-font-weight:700;--typography-data-small-font-size:1.5rem;--typography-data-small-line-height:1.5rem;--typography-data-small-letter-spacing:normal;--typography-data-small-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-units-font-weight:700;--typography-data-small-units-font-size:1.125rem;--typography-data-small-units-line-height:1.5rem;--typography-data-small-units-letter-spacing:normal;--typography-display-0-font-family:"Tiempos Headline",Georgia,serif;--typography-display-0-font-weight:800;--typography-display-0-font-size:4.5rem;--typography-display-0-line-height:5.25rem;--typography-display-0-letter-spacing:0em;--typography-heading-1-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-1-font-weight:500;--typography-heading-1-font-size:2.125rem;--typography-heading-1-line-height:2.625rem;--typography-heading-1-letter-spacing:normal;--typography-heading-2-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-2-font-weight:600;--typography-heading-2-font-size:1.75rem;--typography-heading-2-line-height:2.25rem;--typography-heading-2-letter-spacing:normal;--typography-heading-3-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-3-font-weight:600;--typography-heading-3-font-size:1.375rem;--typography-heading-3-line-height:1.875rem;--typography-heading-3-letter-spacing:normal;--typography-heading-4-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-4-font-weight:600;--typography-heading-4-font-size:1.125rem;--typography-heading-4-line-height:1.5rem;--typography-heading-4-letter-spacing:normal;--typography-heading-5-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-5-font-weight:600;--typography-heading-5-font-size:1rem;--typography-heading-5-line-height:1.5rem;--typography-heading-5-letter-spacing:normal;--typography-heading-6-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-6-font-weight:600;--typography-heading-6-font-size:0.875rem;--typography-heading-6-line-height:1.5rem;--typography-heading-6-letter-spacing:normal;--typography-paragraph-intro-lede-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-intro-lede-font-weight:400;--typography-paragraph-intro-lede-font-size:1.25rem;--typography-paragraph-intro-lede-line-height:1.875rem;--typography-paragraph-intro-lede-letter-spacing:0;--typography-paragraph-intro-lede-max-width:975px;--typography-paragraph-body-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-body-font-weight:400;--typography-paragraph-body-font-size:1rem;--typography-paragraph-body-line-height:1.5rem;--typography-paragraph-body-letter-spacing:normal;--typography-paragraph-body-max-width:780px;--typography-paragraph-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-small-font-weight:400;--typography-paragraph-small-font-size:0.875rem;--typography-paragraph-small-line-height:1.125rem;--typography-paragraph-small-letter-spacing:normal;--typography-paragraph-small-max-width:680px;--typography-paragraph-extra-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-extra-small-font-weight:400;--typography-paragraph-extra-small-font-size:0.75rem;--typography-paragraph-extra-small-line-height:1.125rem;--typography-paragraph-extra-small-letter-spacing:normal;--typography-paragraph-extra-small-max-width:600px;--typography-paragraph-bold-font-weight:600;--typography-button-primary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-primary-font-weight:500;--typography-button-primary-font-size:1.125rem;--typography-button-primary-line-height:1.5rem;--typography-button-primary-letter-spacing:normal;--typography-button-secondary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-secondary-font-weight:500;--typography-button-secondary-font-size:1rem;--typography-button-secondary-line-height:1.5rem;--typography-button-secondary-letter-spacing:normal}}@layer normalize{html{text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}}@layer reset{@font-face{font-family:Tiempos Headline;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff)}@font-face{font-family:Tiempos Headline;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff)}@font-face{font-family:Greycliff CF;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-light.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-regular.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-medium.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-demi-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-extra-bold.woff) format("woff")}@font-face{font-family:Inter;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff)}@font-face{font-family:Inter;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff)}@font-face{font-family:Inter;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff)}@font-face{font-family:Inter;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff)}@font-face{font-family:Inter;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff)}@font-face{font-family:Inter;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff)}@font-face{font-family:IBM Plex Mono;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff)}}@layer reset{*,:after,:before{border-color:var(--border-solid-border-color,"currentColor");border-style:solid;border-width:0}}
2
- .Menu-module_menu__AowD8 {
3
- background-color: var(--color-white);
4
- color: var(--color-purple-800);
5
- width: 248px;
6
- max-height: 22rem;
7
- overflow: auto;
8
- padding-block: var(--spacing-6);
9
- outline: none;
10
- border-radius: var(--border-solid-border-radius);
11
- box-shadow: var(--shadow-large-box-shadow);
12
- }
13
-
14
- .Menu-module_menu__AowD8 .react-aria-Header {
15
- font-family: var(--typography-heading-6-font-family);
16
- font-size: var(--typography-heading-6-font-size);
17
- letter-spacing: var(--typography-heading-6-letter-spacing);
18
- font-weight: var(--typography-heading-6-font-weight);
19
- line-height: var(--typography-heading-6-line-height);
20
- padding: var(--spacing-6) 10px;
21
- margin-inline: var(--spacing-6);
22
- }
23
-
24
- .Menu-module_menu__AowD8 section:not(:last-of-type) {
25
- &::after {
26
- width: 100%;
27
- height: 1px;
28
- background-color: var(--border-solid-border-color);
29
- content: "";
30
- display: block;
31
- margin-block: var(--spacing-6);
32
- }
33
- }
34
-
35
2
  .MenuItem-module_item__uImZI {
36
3
  display: block;
37
4
  font-family: var(--typography-paragraph-body-font-family);
@@ -80,6 +47,39 @@
80
47
  opacity: 0.3;
81
48
  }
82
49
 
50
+ .Menu-module_menu__AowD8 {
51
+ background-color: var(--color-white);
52
+ color: var(--color-purple-800);
53
+ width: 248px;
54
+ max-height: 22rem;
55
+ overflow: auto;
56
+ padding-block: var(--spacing-6);
57
+ outline: none;
58
+ border-radius: var(--border-solid-border-radius);
59
+ box-shadow: var(--shadow-large-box-shadow);
60
+ }
61
+
62
+ .Menu-module_menu__AowD8 .react-aria-Header {
63
+ font-family: var(--typography-heading-6-font-family);
64
+ font-size: var(--typography-heading-6-font-size);
65
+ letter-spacing: var(--typography-heading-6-letter-spacing);
66
+ font-weight: var(--typography-heading-6-font-weight);
67
+ line-height: var(--typography-heading-6-line-height);
68
+ padding: var(--spacing-6) 10px;
69
+ margin-inline: var(--spacing-6);
70
+ }
71
+
72
+ .Menu-module_menu__AowD8 section:not(:last-of-type) {
73
+ &::after {
74
+ width: 100%;
75
+ height: 1px;
76
+ background-color: var(--border-solid-border-color);
77
+ content: "";
78
+ display: block;
79
+ margin-block: var(--spacing-6);
80
+ }
81
+ }
82
+
83
83
  .Button-module_button__vlUCI {
84
84
  /* RESET */
85
85
  appearance: none;
@@ -316,23 +316,6 @@
316
316
  visibility: hidden;
317
317
  }
318
318
 
319
- .PendingContent-module_pendingContent__c4IFS {
320
- display: inline-flex;
321
- align-items: center;
322
- gap: var(--button-pending-content-gap, var(--spacing-6));
323
- }
324
-
325
- .PendingContent-module_large__ypTxk {
326
- --button-pending-content-gap: var(--spacing-8);
327
- }
328
-
329
- .PendingContent-module_centerSpinner__EYn7L {
330
- position: absolute;
331
- left: 50%;
332
- top: 50%;
333
- transform: translate(-50%, -50%);
334
- }
335
-
336
319
  .ButtonContent-module_buttonContent__v5mHZ {
337
320
  display: inline-flex;
338
321
  align-items: center;
@@ -353,37 +336,23 @@
353
336
  align-items: center;
354
337
  }
355
338
 
356
- .Focusable-module_focusableWrapper__NfuIi {
339
+ .PendingContent-module_pendingContent__c4IFS {
357
340
  display: inline-flex;
341
+ align-items: center;
342
+ gap: var(--button-pending-content-gap, var(--spacing-6));
358
343
  }
359
- /** THIS IS AN AUTOGENERATED FILE **/
360
- /** THIS IS AN AUTOGENERATED FILE **/
361
- .OverlayArrow-module_overlayArrow__hoDyK {
362
- display: flex;
363
- padding: 8px;
364
- }
365
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=top], .OverlayArrow-module_overlayArrow__hoDyK[data-placement=bottom] {
366
- padding: 0 8px;
367
- }
368
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=left], .OverlayArrow-module_overlayArrow__hoDyK[data-placement=right] {
369
- padding: 8px 0;
370
- }
371
- .OverlayArrow-module_overlayArrow__hoDyK path {
372
- fill: var(--color-purple-800, #2f2438);
373
- box-shadow: var(--shadow-small-box-shadow, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 3px 16px 0 rgba(0, 0, 0, 0.06));
374
- }
375
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=right] svg {
376
- transform: rotate(90deg);
377
- }
378
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=bottom] svg {
379
- transform: rotate(180deg);
380
- }
381
- .OverlayArrow-module_overlayArrow__hoDyK[data-placement=left] svg {
382
- transform: rotate(270deg);
344
+
345
+ .PendingContent-module_large__ypTxk {
346
+ --button-pending-content-gap: var(--spacing-8);
383
347
  }
384
- .OverlayArrow-module_overlayArrow__hoDyK.OverlayArrow-module_reversed__-WGcR path {
385
- fill: var(--color-white, #ffffff);
348
+
349
+ .PendingContent-module_centerSpinner__EYn7L {
350
+ position: absolute;
351
+ left: 50%;
352
+ top: 50%;
353
+ transform: translate(-50%, -50%);
386
354
  }
355
+
387
356
  /** THIS IS AN AUTOGENERATED FILE **/
388
357
  /** THIS IS AN AUTOGENERATED FILE **/
389
358
  /** THIS IS AN AUTOGENERATED FILE **/
@@ -440,6 +409,37 @@
440
409
  opacity: 1;
441
410
  }
442
411
  }
412
+ .Focusable-module_focusableWrapper__NfuIi {
413
+ display: inline-flex;
414
+ }
415
+ /** THIS IS AN AUTOGENERATED FILE **/
416
+ /** THIS IS AN AUTOGENERATED FILE **/
417
+ .OverlayArrow-module_overlayArrow__hoDyK {
418
+ display: flex;
419
+ padding: 8px;
420
+ }
421
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=top], .OverlayArrow-module_overlayArrow__hoDyK[data-placement=bottom] {
422
+ padding: 0 8px;
423
+ }
424
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=left], .OverlayArrow-module_overlayArrow__hoDyK[data-placement=right] {
425
+ padding: 8px 0;
426
+ }
427
+ .OverlayArrow-module_overlayArrow__hoDyK path {
428
+ fill: var(--color-purple-800, #2f2438);
429
+ box-shadow: var(--shadow-small-box-shadow, 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 3px 16px 0 rgba(0, 0, 0, 0.06));
430
+ }
431
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=right] svg {
432
+ transform: rotate(90deg);
433
+ }
434
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=bottom] svg {
435
+ transform: rotate(180deg);
436
+ }
437
+ .OverlayArrow-module_overlayArrow__hoDyK[data-placement=left] svg {
438
+ transform: rotate(270deg);
439
+ }
440
+ .OverlayArrow-module_overlayArrow__hoDyK.OverlayArrow-module_reversed__-WGcR path {
441
+ fill: var(--color-white, #ffffff);
442
+ }
443
443
  /*
444
444
  * This is taken from the Material Symbols CDN
445
445
  * font-weight & font-size removed as overridden in .icon
@@ -4809,6 +4809,10 @@ input[type=range].InputRange-module_ratingScaleRange__gI-rs::-ms-thumb:not(:disa
4809
4809
  .ClearAllButton-module_clearAllButton__XNkm2 {
4810
4810
  white-space: nowrap;
4811
4811
  }
4812
+
4813
+ .ClearAllButton-module_hidden__-L2eA {
4814
+ visibility: hidden;
4815
+ }
4812
4816
  .FilterBar-module_filterBar__JEVKL {
4813
4817
  display: flex;
4814
4818
  padding: var(--spacing-8);
@@ -2,6 +2,7 @@ import { FilterAttributes, FilterState, Filters, FiltersValues } from "../types"
2
2
  import { ActiveFiltersArray } from "./types";
3
3
  export type FilterBarContextValue<Value, ValuesMap extends FiltersValues = Record<string, Value>> = {
4
4
  getFilterState: <Id extends keyof ValuesMap>(id: Id) => FilterState<keyof ValuesMap, ValuesMap[Id]>;
5
+ isClearable: boolean;
5
6
  getActiveFilterValues: () => Partial<ValuesMap>;
6
7
  /**
7
8
  * @deprecated Use `setFilterOpenState` instead.
@@ -20,6 +20,7 @@ export type FilterBarStateFilters<ValuesMap extends FiltersValues> = {
20
20
  };
21
21
  export type FilterBarState<ValuesMap extends FiltersValues> = {
22
22
  hasUpdatedValues: boolean;
23
+ hasRemovableFilter: boolean;
23
24
  filters: FilterBarStateFilters<ValuesMap>;
24
25
  activeFilterIds: Set<keyof ValuesMap>;
25
26
  values: Partial<ValuesMap>;
@@ -14,6 +14,8 @@ export type GenericTileProps = {
14
14
  titleTag?: AllowedHeadingTags;
15
15
  metadata?: string;
16
16
  information?: TileInformation | React.ReactNode;
17
+ /** Provides accessible label for the title's info button @default "View more information: [title]" */
18
+ infoButtonLabel?: string;
17
19
  /** @deprecated Use `variant` instead */
18
20
  mood?: "positive" | "informative" | "cautionary" | "assertive" | "negative" | "prominent";
19
21
  /**
@@ -26,6 +28,6 @@ export type GenericTileProps = {
26
28
  footer: React.ReactNode;
27
29
  } & OverrideClassName<Omit<HTMLAttributes<HTMLDivElement>, "title">>;
28
30
  export declare const GenericTile: {
29
- ({ children, title, titleTag, metadata, information, mood, variant, footer, classNameOverride, ...restProps }: GenericTileProps): JSX.Element;
31
+ ({ children, title, titleTag, metadata, information, infoButtonLabel, mood, variant, footer, classNameOverride, ...restProps }: GenericTileProps): JSX.Element;
30
32
  displayName: string;
31
33
  };
package/locales/en.json CHANGED
@@ -165,6 +165,14 @@
165
165
  "description": "Home button label",
166
166
  "message": "Go to Home"
167
167
  },
168
+ "kzGenericTile.infoButtonLabel": {
169
+ "description": "Prompts user to interact with button to reveal more information",
170
+ "message": "View more information:"
171
+ },
172
+ "kzGenericTile.infoButtonReturnLabel": {
173
+ "description": "Prompts user to interact with button to hide information",
174
+ "message": "Hide information:"
175
+ },
168
176
  "splitButton.dropdownButton.label": {
169
177
  "description": "Label for a dropdown menu holding additional actions",
170
178
  "message": "Additional actions"