@stack-spot/portal-components 2.28.0 → 2.28.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/components/Placeholder.d.ts.map +1 -1
  3. package/dist/components/Placeholder.js +2 -2
  4. package/dist/components/Placeholder.js.map +1 -1
  5. package/dist/components/form/SearchInput.d.ts.map +1 -1
  6. package/dist/components/form/SearchInput.js +8 -9
  7. package/dist/components/form/SearchInput.js.map +1 -1
  8. package/dist/components/notification/NotificationList.d.ts.map +1 -1
  9. package/dist/components/notification/NotificationList.js +24 -4
  10. package/dist/components/notification/NotificationList.js.map +1 -1
  11. package/dist/containers/NotificationsPage.d.ts.map +1 -1
  12. package/dist/containers/NotificationsPage.js +2 -1
  13. package/dist/containers/NotificationsPage.js.map +1 -1
  14. package/dist/context/notification/hooks.d.ts.map +1 -1
  15. package/dist/context/notification/hooks.js +13 -1
  16. package/dist/context/notification/hooks.js.map +1 -1
  17. package/dist/svg/GenericPlaceholderCentered.d.ts +7 -0
  18. package/dist/svg/GenericPlaceholderCentered.d.ts.map +1 -0
  19. package/dist/svg/GenericPlaceholderCentered.js +4 -0
  20. package/dist/svg/GenericPlaceholderCentered.js.map +1 -0
  21. package/dist/svg/index.d.ts +1 -0
  22. package/dist/svg/index.d.ts.map +1 -1
  23. package/dist/svg/index.js +2 -0
  24. package/dist/svg/index.js.map +1 -1
  25. package/package.dev.json +3 -0
  26. package/package.json +4 -2
  27. package/package.stg.json +3 -0
  28. package/src/components/Placeholder.tsx +3 -4
  29. package/src/components/form/SearchInput.tsx +13 -10
  30. package/src/components/notification/NotificationList.tsx +33 -11
  31. package/src/containers/NotificationsPage.tsx +2 -1
  32. package/src/context/notification/hooks.ts +18 -1
  33. package/src/svg/GenericPlaceholderCentered.tsx +16 -0
  34. package/src/svg/index.ts +3 -0
  35. package/dist/components/notification/NotificationPlaceholder.d.ts +0 -13
  36. package/dist/components/notification/NotificationPlaceholder.d.ts.map +0 -1
  37. package/dist/components/notification/NotificationPlaceholder.js +0 -34
  38. package/dist/components/notification/NotificationPlaceholder.js.map +0 -1
  39. package/src/components/notification/NotificationPlaceholder.tsx +0 -60
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.28.1](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.28.0...portal-components@v2.28.1) (2026-02-09)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * notification modal accessibility issues and placeholder layout ([#2010](https://github.com/stack-spot/portal-commons/issues/2010)) ([b32bd26](https://github.com/stack-spot/portal-commons/commit/b32bd26818c6a017760b27198021f5d9d0fda57c))
9
+
3
10
  ## [2.28.0](https://github.com/stack-spot/portal-commons/compare/portal-components@v2.27.6...portal-components@v2.28.0) (2025-12-15)
4
11
 
5
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"Placeholder.d.ts","sourceRoot":"","sources":["../../src/components/Placeholder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAKnD,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAC1C,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAkB,SAAQ,KAAK;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;CACH;AAED,eAAO,MAAM,WAAW,GAAI,4EAAmF,KAAK,mDAuBnH,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,sIAcrC,iBAAiB,mDAgCnB,CAAA;AAGD,eAAO,MAAM,8BAA8B,GAAI,wBAAwB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAAC,4CAQ1G,CAAA"}
1
+ {"version":3,"file":"Placeholder.d.ts","sourceRoot":"","sources":["../../src/components/Placeholder.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAKnD,UAAU,KAAK;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAC1C,GAAG,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAkB,SAAQ,KAAK;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;CACH;AAED,eAAO,MAAM,WAAW,GAAI,4EAAmF,KAAK,mDAuBnH,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,sIAcrC,iBAAiB,mDA+BnB,CAAA;AAGD,eAAO,MAAM,8BAA8B,GAAI,wBAAwB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAAC,4CAQ1G,CAAA"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Flex, Text } from '@citric/core';
3
3
  import { Card, CardContent } from '@citric/ui';
4
4
  import { useTranslate } from '@stack-spot/portal-translate';
5
- import { GenericPlaceholder } from '../svg/index.js';
5
+ import { GenericPlaceholder, GenericPlaceholderCentered } from '../svg/index.js';
6
6
  export const Placeholder = ({ title, description, button, img, fullWidth, show = true, sx, style, className }) => {
7
7
  if (!show) {
8
8
  return null;
@@ -13,7 +13,7 @@ export const PlaceholderCallToAction = ({ title, description, subDescription, im
13
13
  if (!show) {
14
14
  return null;
15
15
  }
16
- return (_jsx(Card, { sx: { w: fullWidth ? '100%' : 'auto', bg: 'transparent', ...sxCard }, style: style, className: className, children: _jsxs(CardContent, { as: Flex, py: 15, sx: { flexDirection: 'column', justifyContent: 'center', alignItems: 'center', gap: '92px', ...sx }, children: [_jsx(Box, { sx: { justifySelf: 'end' }, children: img ?? _jsx(GenericPlaceholder, { ...placeholderImageConfig }) }), _jsxs(Box, { children: [title && _jsx(Text, { as: titleAs, appearance: "h4", mb: "3", "aria-live": "assertive", children: title }), _jsx(Text, { mb: "3", appearance: "body2", colorScheme: "light.700", children: description }), _jsx(Text, { mb: "3", appearance: "body2", colorScheme: "light.700", children: subDescription }), button] })] }) }));
16
+ return (_jsx(Card, { sx: { w: fullWidth ? '100%' : 'auto', bg: 'transparent', ...sxCard }, style: style, className: className, children: _jsxs(CardContent, { as: Flex, sx: { justifyContent: 'center', alignItems: 'center', gap: '16px', ...sx }, children: [_jsx(Box, { children: img ?? _jsx(GenericPlaceholderCentered, { ...placeholderImageConfig }) }), _jsxs(Box, { children: [title && _jsx(Text, { as: titleAs, appearance: "h4", mb: "3", "aria-live": "assertive", children: title }), _jsx(Text, { mb: "3", appearance: "body2", colorScheme: "light.700", children: description }), _jsx(Text, { mb: "3", appearance: "body2", colorScheme: "light.700", children: subDescription }), button] })] }) }));
17
17
  };
18
18
  export const PlaceholderResourceEmptySearch = ({ title, description }) => {
19
19
  const t = useTranslate(dictionary);
@@ -1 +1 @@
1
- {"version":3,"file":"Placeholder.js","sourceRoot":"","sources":["../../src/components/Placeholder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Placeholder.js","sourceRoot":"","sources":["../../src/components/Placeholder.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAA;AAyBvE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAS,EAAE,EAAE;IACtH,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,KAAC,IAAI,IAAC,EAAE,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,YACnF,MAAC,IAAI,IAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,QAAQ,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,aAClF,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,YAAG,GAAG,IAAI,KAAC,kBAAkB,KAAG,GAAO,EACtE,MAAC,GAAG,eACD,KAAK,IAAI,KAAC,IAAI,IAAC,EAAE,EAAC,OAAO,EAAC,UAAU,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAE,CAAC,YACpD,KAAK,GACD,EAEP,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,UAAU,EAAC,OAAO,EAAC,WAAW,EAAC,WAAW,YACpD,WAAW,GACP,EAEN,MAAM,IACH,IACD,GACF,CACR,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,KAAK,EACL,WAAW,EACX,cAAc,EACd,GAAG,EACH,MAAM,EACN,SAAS,EACT,IAAI,GAAG,IAAI,EACX,EAAE,EACF,MAAM,EACN,KAAK,EACL,SAAS,EACT,OAAO,EACP,sBAAsB,GACJ,EAAE,EAAE;IACtB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,KAAC,IAAI,IAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,YAC5G,MAAC,WAAW,IACV,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,aAE1E,KAAC,GAAG,cAAE,GAAG,IAAI,KAAC,0BAA0B,OAAK,sBAAsB,GAAI,GAAO,EAE9E,MAAC,GAAG,eACD,KAAK,IAAI,KAAC,IAAI,IAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,eAAW,WAAW,YACtE,KAAK,GACD,EAEP,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,UAAU,EAAC,OAAO,EAAC,WAAW,EAAC,WAAW,YACpD,WAAW,GACP,EAEP,KAAC,IAAI,IAAC,EAAE,EAAC,GAAG,EAAC,UAAU,EAAC,OAAO,EAAC,WAAW,EAAC,WAAW,YACpD,cAAc,GACV,EAEN,MAAM,IACH,IACM,GACT,CACR,CAAA;AACH,CAAC,CAAA;AAGD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAwC,EAAE,EAAE;IAC7G,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAElC,OAAO,CACL,KAAC,uBAAuB,IAAC,SAAS,EAAE,IAAI,EACtC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,IAAI,CAAC,CAAC,WAAW,GAClE,CACH,CAAA;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,KAAK,EAAE,+CAA+C;QACtD,WAAW,EAAE,2CAA2C;KACzD;IACD,EAAE,EAAE;QACF,KAAK,EAAE,qDAAqD;QAC5D,WAAW,EAAE,gDAAgD;KAC9D;CACmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/form/SearchInput.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,GAAI,qEAOzB;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,4CAsCA,CAAA"}
1
+ {"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/form/SearchInput.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,WAAW,GAAI,qEAOzB;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,4CAwCA,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box, IconBox, Input } from '@citric/core';
2
+ import { Box, IconBox } from '@citric/core';
3
+ import { Input } from '@stack-spot/citric-react';
3
4
  import { Filter, Times } from '@citric/icons';
4
5
  import { FieldAddon, FieldGroup, IconButton } from '@citric/ui';
5
6
  import { useTranslate } from '@stack-spot/portal-translate';
@@ -7,15 +8,13 @@ import { debounce } from 'lodash';
7
8
  import { useCallback, useState } from 'react';
8
9
  export const SearchInput = ({ searchText, defaultValue, disabled = false, onChange, style, className, }) => {
9
10
  const [value, setValue] = useState(defaultValue);
10
- const runOnChange = useCallback(debounce(onChange, 800), [onChange]);
11
11
  const t = useTranslate(dictionary);
12
- return (_jsxs(Box, { sx: { position: 'relative' }, style: style, className: className, children: [_jsxs(FieldGroup, { children: [_jsx(FieldAddon, { children: _jsx(IconBox, { size: "xs", colorIcon: "light.700", children: _jsx(Filter, {}) }) }), _jsx(Input, { value: value, placeholder: searchText, onChange: (e) => {
13
- setValue(e.target.value);
14
- runOnChange(e.target.value);
15
- }, disabled: disabled, maxLength: 255 })] }), !!value && (_jsx(IconButton, { sx: { position: 'absolute', right: '20px', top: '50%', transform: 'translate(50%, -50%)' }, onClick: () => {
16
- setValue('');
17
- runOnChange('');
18
- }, "aria-label": t.ariaClearField, children: _jsx(Times, {}) }))] }));
12
+ const debouncedOnChange = useCallback(debounce((nextValue) => onChange(nextValue), 800), [onChange]);
13
+ const handleInputOnChange = (nextValue) => {
14
+ setValue(nextValue);
15
+ debouncedOnChange(nextValue);
16
+ };
17
+ return (_jsxs(Box, { sx: { position: 'relative' }, style: style, className: className, children: [_jsxs(FieldGroup, { children: [_jsx(FieldAddon, { children: _jsx(IconBox, { size: "xs", colorIcon: "light.700", children: _jsx(Filter, {}) }) }), _jsx(Input, { style: { width: '100%' }, value: value, placeholder: searchText, onChange: handleInputOnChange, disabled: disabled, maxLength: 255 })] }), !!value && (_jsx(IconButton, { sx: { position: 'absolute', right: '20px', top: '50%', transform: 'translate(50%, -50%)' }, onClick: () => handleInputOnChange(''), "aria-label": t.ariaClearField, children: _jsx(Times, {}) }))] }));
19
18
  };
20
19
  const dictionary = {
21
20
  en: {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/form/SearchInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,UAAU,EACV,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,KAAK,EACL,SAAS,GAQV,EAAE,EAAE;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;IAChD,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACpE,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAElC,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,aACnE,MAAC,UAAU,eACT,KAAC,UAAU,cACT,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,WAAW,YACtC,KAAC,MAAM,KAAG,GACF,GACC,EACb,KAAC,KAAK,IACJ,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,UAAU,EACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;4BACd,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;4BACxB,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;wBAC7B,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,GAAG,GACd,IACS,EACZ,CAAC,CAAC,KAAK,IAAI,CACV,KAAC,UAAU,IACT,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAC1F,OAAO,EAAE,GAAG,EAAE;oBACZ,QAAQ,CAAC,EAAE,CAAC,CAAA;oBACZ,WAAW,CAAC,EAAE,CAAC,CAAA;gBACjB,CAAC,gBACW,CAAC,CAAC,cAAc,YAE5B,KAAC,KAAK,KAAG,GACE,CACd,IACG,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,cAAc,EAAE,aAAa;KAC9B;IACD,EAAE,EAAE;QACF,cAAc,EAAE,cAAc;KAC/B;CACmB,CAAA"}
1
+ {"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/form/SearchInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,UAAU,EACV,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,KAAK,EACL,SAAS,GAQV,EAAE,EAAE;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAA;IAChD,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAClC,MAAM,iBAAiB,GAAG,WAAW,CACnC,QAAQ,CAAC,CAAC,SAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAC1D,CAAC,QAAQ,CAAC,CACX,CAAA;IACD,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAChD,QAAQ,CAAC,SAAS,CAAC,CAAA;QACnB,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC,CAAA;IAED,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,aACnE,MAAC,UAAU,eACT,KAAC,UAAU,cACT,KAAC,OAAO,IAAC,IAAI,EAAC,IAAI,EAAC,SAAS,EAAC,WAAW,YACtC,KAAC,MAAM,KAAG,GACF,GACC,EACb,KAAC,KAAK,IACJ,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,UAAU,EACvB,QAAQ,EAAE,mBAAmB,EAC7B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,GAAG,GACd,IACS,EACZ,CAAC,CAAC,KAAK,IAAI,CACV,KAAC,UAAU,IACT,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,sBAAsB,EAAE,EAC1F,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,gBAC1B,CAAC,CAAC,cAAc,YAE5B,KAAC,KAAK,KAAG,GACE,CACd,IACG,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,cAAc,EAAE,aAAa;KAC9B;IACD,EAAE,EAAE;QACF,cAAc,EAAE,cAAc;KAC/B;CACmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationList.d.ts","sourceRoot":"","sources":["../../../src/components/notification/NotificationList.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9E,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;QAEI;IACH,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC;;OAEG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC;;OAEG;IACH,KAAK,EAAE,8BAA8B,EAAE,CAAC;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuED,eAAO,MAAM,gBAAgB,GAC3B,8IACgE,qBAAqB,oDAwDtF,CAAA"}
1
+ {"version":3,"file":"NotificationList.d.ts","sourceRoot":"","sources":["../../../src/components/notification/NotificationList.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9E,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC;;QAEI;IACH,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC;;OAEG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC;;OAEG;IACH,KAAK,EAAE,8BAA8B,EAAE,CAAC;IACxC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2ED,eAAO,MAAM,gBAAgB,GAC3B,8IACgE,qBAAqB,oDA2DtF,CAAA"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Flex } from '@citric/core';
3
3
  import { listToClass } from '@stack-spot/portal-theme';
4
+ import { useTranslate } from '@stack-spot/portal-translate';
4
5
  import { last } from 'lodash';
5
6
  import { useMemo } from 'react';
6
7
  import { styled } from 'styled-components';
7
8
  import { InfiniteScroll } from '../InfiniteScroll.js';
9
+ import { PlaceholderCallToAction } from '../Placeholder.js';
8
10
  import { TimelineSection } from '../TimelineSection.js';
9
11
  import { NotificationItem } from './NotificationItem.js';
10
- import { NotificationPlaceholder } from './NotificationPlaceholder.js';
11
12
  const StyledBox = styled(Box) `
12
13
  width: 100%;
13
14
  position: relative;
@@ -36,16 +37,20 @@ const StyledBox = styled(Box) `
36
37
  }
37
38
 
38
39
  .placeholder.compact {
40
+ min-height: 400px;
41
+ padding: 0px;
42
+
39
43
  & > div {
40
- padding-block: 0;
41
44
  gap: 16px;
45
+ align-content: flex-start;
46
+
42
47
  & > div {
43
48
  text-align: center;
44
49
  h4 {
45
50
  margin-bottom: 10px;
46
51
  }
47
52
  p {
48
- margin: 0;
53
+ max-width: 220px;
49
54
  }
50
55
  }
51
56
  }
@@ -70,6 +75,7 @@ function groupNotificationsByDate(notifications) {
70
75
  }
71
76
  export const NotificationList = ({ items, compact = false, onCommit, onUncommit, onClickAction, onClickViewNotification, infiniteScroll, loading, showEmptySearch, style, className }) => {
72
77
  const groups = useMemo(() => compact ? [{ day: 0, month: 0, year: 0, items }] : groupNotificationsByDate(items), [compact, items]);
78
+ const t = useTranslate(dictionary);
73
79
  const renderNotifications = (notifications, key) => (_jsx(Flex, { sx: { gap: '4px' }, flexDirection: "column", children: notifications?.map((item) => (_jsx(NotificationItem, { id: key ? '' : `notification-item-${item.id}`, notification: item, isSummary: compact, onClickViewNotification: onClickViewNotification, onCommit: () => onCommit(item.id), onUncommit: () => onUncommit(item.id), onClickAction: () => onClickAction?.(item.id) }, item.id))) }, key));
74
80
  return infiniteScroll?.scrollableTarget !== null && (_jsxs(StyledBox, { style: style, className: listToClass([className, loading && 'loading']), children: [items.length ? (_jsx(InfiniteScroll, { dataLength: items.length || 0, next: infiniteScroll?.loadMore ?? (() => { }), hasMore: infiniteScroll?.hasMore ?? false,
75
81
  // @ts-ignore: the library is wrongly typed and abandoned, meaning, it will never be fixed. The source code clearly accepts
@@ -77,6 +83,20 @@ export const NotificationList = ({ items, compact = false, onCommit, onUncommit,
77
83
  // https://github.com/ankeetmaini/react-infinite-scroll-component/blob/master/src/index.tsx#L168
78
84
  scrollableTarget: infiniteScroll?.scrollableTarget, children: _jsx(Flex, { sx: { gap: '24px' }, flexDirection: "column", children: groups.map((group) => compact
79
85
  ? renderNotifications(group.items, 'compact')
80
- : (_jsx(TimelineSection, { month: group.month, day: group.day, children: renderNotifications(group.items) }, `${group.day}-${group.month}-${group.year}`))) }) })) : _jsx(NotificationPlaceholder, { isSearch: showEmptySearch, className: listToClass(['placeholder', compact && 'compact']), titleAs: "p", sx: { minHeight: '350px' } }), _jsx("div", { className: "loading-mask" })] }));
86
+ : (_jsx(TimelineSection, { month: group.month, day: group.day, children: renderNotifications(group.items) }, `${group.day}-${group.month}-${group.year}`))) }) })) : (_jsx(PlaceholderCallToAction, { title: showEmptySearch ? t.searchTitle : t.defaultTitle, description: showEmptySearch ? t.searchDescription : t.defaultDescription, className: listToClass(['placeholder', compact && 'compact']), titleAs: "p" })), _jsx("div", { className: "loading-mask" })] }));
87
+ };
88
+ const dictionary = {
89
+ en: {
90
+ defaultTitle: 'You don’t have any notifications yet.',
91
+ defaultDescription: 'Relevant updates will show up here as soon as they’re available.',
92
+ searchTitle: 'No notifications match your filters.',
93
+ searchDescription: 'Try changing the filters to see more results.',
94
+ },
95
+ pt: {
96
+ defaultTitle: 'Você ainda não tem notificações.',
97
+ defaultDescription: 'Quando houver alguma atualização relevante, ela será exibida aqui.',
98
+ searchTitle: 'Nenhuma notificação corresponde aos filtros',
99
+ searchDescription: 'Experimente mudar os filtros para encontrar mais notificações.',
100
+ },
81
101
  };
82
102
  //# sourceMappingURL=NotificationList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationList.js","sourceRoot":"","sources":["../../../src/components/notification/NotificationList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotificationList.js","sourceRoot":"","sources":["../../../src/components/notification/NotificationList.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationsPage.d.ts","sourceRoot":"","sources":["../../src/containers/NotificationsPage.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,iBAAiB,+CAkD7B,CAAA"}
1
+ {"version":3,"file":"NotificationsPage.d.ts","sourceRoot":"","sources":["../../src/containers/NotificationsPage.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,iBAAiB,+CAmD7B,CAAA"}
@@ -26,7 +26,8 @@ export const NotificationsPage = () => {
26
26
  const t = useTranslate(dictionary);
27
27
  const controller = useNotificationController();
28
28
  const { hasMore, items, loadMore, applyFilters, filters, status, error } = useNotificationList();
29
- return (_jsxs(_Fragment, { children: [_jsx("header", { children: _jsx(Text, { appearance: "h2", as: "h1", children: t.title }) }), _jsx(Text, { appearance: "body2", colorScheme: "light.700", children: t.description }), _jsxs(FilterBox, { children: [_jsx(SearchInput, { searchText: t.filter, defaultValue: filters.search, onChange: search => applyFilters({ search }) }), _jsx(Select, { value: filters.createdSince, options: times, onChange: createdSince => applyFilters({ createdSince }), emptyOption: t.anyTime, renderLabel: o => t[`time.${o}`] }), _jsx(Select, { value: filters.criticality, options: criticalities, onChange: criticality => applyFilters({ criticality }), emptyOption: t.allCriticalities, renderLabel: o => t[`criticality.${o}`] }), _jsx(Select, { value: filters.context, options: contexts, onChange: context => applyFilters({ context }), emptyOption: t.allContexts, renderLabel: o => t[`context.${o}`] })] }), _jsx(AsyncContent, { error: error, loading: status === 'startup', errorDetails: { errorComponent: () => _jsx(ErrorFeedback, { code: error.code }), reportError: () => { } }, children: _jsx(NotificationList, { items: items, loading: status === 'loading', onCommit: id => controller.markAsCommitted(id), onUncommit: id => controller.markAsUncommitted(id), infiniteScroll: { hasMore, loadMore }, onClickAction: controller.config.onClickAction, showEmptySearch: true }) })] }));
29
+ const hasFilters = Object.entries(filters).length > 0;
30
+ return (_jsxs(_Fragment, { children: [_jsx("header", { children: _jsx(Text, { appearance: "h2", as: "h1", children: t.title }) }), _jsx(Text, { appearance: "body2", colorScheme: "light.700", children: t.description }), _jsxs(FilterBox, { children: [_jsx(SearchInput, { searchText: t.filter, defaultValue: filters.search, onChange: search => applyFilters({ search }) }), _jsx(Select, { value: filters.createdSince, options: times, onChange: createdSince => applyFilters({ createdSince }), emptyOption: t.anyTime, renderLabel: o => t[`time.${o}`] }), _jsx(Select, { value: filters.criticality, options: criticalities, onChange: criticality => applyFilters({ criticality }), emptyOption: t.allCriticalities, renderLabel: o => t[`criticality.${o}`] }), _jsx(Select, { value: filters.context, options: contexts, onChange: context => applyFilters({ context }), emptyOption: t.allContexts, renderLabel: o => t[`context.${o}`] })] }), _jsx(AsyncContent, { error: error, loading: status === 'startup', errorDetails: { errorComponent: () => _jsx(ErrorFeedback, { code: error.code }), reportError: () => { } }, children: _jsx(NotificationList, { items: items, loading: status === 'loading', onCommit: id => controller.markAsCommitted(id), onUncommit: id => controller.markAsUncommitted(id), infiniteScroll: { hasMore, loadMore }, onClickAction: controller.config.onClickAction, showEmptySearch: hasFilters }) })] }));
30
31
  };
31
32
  const dictionary = {
32
33
  en: {
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationsPage.js","sourceRoot":"","sources":["../../src/containers/NotificationsPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotificationsPage.js","sourceRoot":"","sources":["../../src/containers/NotificationsPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAEnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAA;AAE5D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;CAS3B,CAAA;AAED,MAAM,aAAa,GAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACvE,MAAM,QAAQ,GAA0B,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;AAE1E,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,yBAAyB,EAAE,CAAA;IAC9C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,EAAE,CAAA;IAChG,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAErD,OAAO,CAAC,8BACN,2BAAQ,KAAC,IAAI,IAAC,UAAU,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,YAAE,CAAC,CAAC,KAAK,GAAQ,GAAS,EAC/D,KAAC,IAAI,IAAC,UAAU,EAAC,OAAO,EAAC,WAAW,EAAC,WAAW,YAC7C,CAAC,CAAC,WAAW,GACT,EACP,MAAC,SAAS,eACR,KAAC,WAAW,IAAC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,GAAI,EACjH,KAAC,MAAM,IACL,KAAK,EAAE,OAAO,CAAC,YAAY,EAC3B,OAAO,EAAE,KAAK,EACd,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC,EACxD,WAAW,EAAE,CAAC,CAAC,OAAO,EACtB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAa,CAAC,GAC3C,EACF,KAAC,MAAM,IACL,KAAK,EAAE,OAAO,CAAC,WAAW,EAC1B,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,EACtD,WAAW,EAAE,CAAC,CAAC,gBAAgB,EAC/B,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,GACvC,EACF,KAAC,MAAM,IACL,KAAK,EAAE,OAAO,CAAC,OAAO,EACtB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAC9C,WAAW,EAAE,CAAC,CAAC,WAAW,EAC1B,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,GACnC,IACQ,EACZ,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,KAAK,SAAS,EAC7B,YAAY,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,KAAC,aAAa,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAI,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,YAEnG,KAAC,gBAAgB,IACf,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,MAAM,KAAK,SAAS,EAC7B,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC,EAC9C,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAClD,cAAc,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EACrC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,EAC9C,eAAe,EAAE,UAAU,GAC3B,GACW,IACd,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,oDAAoD;QACjE,MAAM,EAAE,QAAQ;QAChB,gBAAgB,EAAE,gBAAgB;QAClC,kBAAkB,EAAE,MAAM;QAC1B,oBAAoB,EAAE,QAAQ;QAC9B,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,cAAc;QAC3B,iBAAiB,EAAE,SAAS;QAC5B,gBAAgB,EAAE,QAAQ;QAC1B,mBAAmB,EAAE,WAAW;QAChC,SAAS,EAAE,UAAU;QACrB,QAAQ,EAAE,eAAe;QACzB,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,cAAc;QACzB,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,gBAAgB;KAC7B;IACD,EAAE,EAAE;QACF,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,qDAAqD;QAClE,MAAM,EAAE,SAAS;QACjB,gBAAgB,EAAE,uBAAuB;QACzC,kBAAkB,EAAE,MAAM;QAC1B,oBAAoB,EAAE,OAAO;QAC7B,iBAAiB,EAAE,OAAO;QAC1B,WAAW,EAAE,oBAAoB;QACjC,iBAAiB,EAAE,OAAO;QAC1B,gBAAgB,EAAE,SAAS;QAC3B,mBAAmB,EAAE,WAAW;QAChC,SAAS,EAAE,mBAAmB;QAC9B,QAAQ,EAAE,kBAAkB;QAC5B,QAAQ,EAAE,gBAAgB;QAC1B,SAAS,EAAE,iBAAiB;QAC5B,SAAS,EAAE,iBAAiB;QAC5B,UAAU,EAAE,kBAAkB;KAC/B;CACmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/context/notification/hooks.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAElD,wBAAgB,mBAAmB,CAAC,cAAc,GAAE,wBAA6B;;;;;;+BA0B3B,wBAAwB;;;EAuC7E;AAED,wBAAgB,qCAAqC,CAAC,EAAE,OAAO,EAAE,EAAE,8BAA8B;;;EAQhG;AAED,wBAAgB,sBAAsB,YAWrC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/context/notification/hooks.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAiBlD,wBAAgB,mBAAmB,CAAC,cAAc,GAAE,wBAA6B;;;;;;+BA0B3B,wBAAwB;;;EAyC7E;AAED,wBAAgB,qCAAqC,CAAC,EAAE,OAAO,EAAE,EAAE,8BAA8B;;;EAQhG;AAED,wBAAgB,sBAAsB,YAWrC"}
@@ -3,6 +3,17 @@ import { useCallback, useRef, useState } from 'react';
3
3
  import { useManualRender } from '../../hooks/manual-render.js';
4
4
  import { useEffectOnce } from '../../hooks/use-effect-once.js';
5
5
  import { useNotificationController } from './context.js';
6
+ function cleanFilters(filters) {
7
+ const cleaned = { ...filters };
8
+ const keys = Object.keys(cleaned);
9
+ keys.forEach((key) => {
10
+ const value = cleaned[key];
11
+ if (value === undefined || value === null || value === '') {
12
+ delete cleaned[key];
13
+ }
14
+ });
15
+ return cleaned;
16
+ }
6
17
  export function useNotificationList(initialFilters = {}) {
7
18
  const { repaint } = useManualRender();
8
19
  const [status, setStatus] = useState('startup');
@@ -39,7 +50,8 @@ export function useNotificationList(initialFilters = {}) {
39
50
  const { next, prev } = await new Promise((resolve) => {
40
51
  setFilters((filters) => {
41
52
  const prev = filters;
42
- const next = { ...filters, ...newFilters };
53
+ const merged = { ...filters, ...newFilters };
54
+ const next = cleanFilters(merged);
43
55
  resolve({ prev, next });
44
56
  return next;
45
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/context/notification/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/context/notification/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAIrD,SAAS,YAAY,CAAoC,OAAU;IACjE,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAA;IAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAgB,CAAA;IAChD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACnB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAE1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,iBAA2C,EAAE;IAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAA;IACrC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAA2C,SAAS,CAAC,CAAA;IACzF,MAAM,KAAK,GAAG,MAAM,EAAO,CAAA;IAC3B,MAAM,UAAU,GAAG,yBAAyB,EAAE,CAAA;IAC9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,MAAM,EAAoC,CAAA;IAEvD,aAAa,CAAC,GAAG,EAAE;QACjB,KAAK,UAAU,KAAK;YAClB,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAA;YACpE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC/B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAA;gBAC9B,SAAS,CAAC,MAAM,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,CAAC,OAAO,CAAC,CAAA;gBAClB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAA;QACP,OAAO,GAAG,EAAE;YACV,IAAI,IAAI,CAAC,OAAO;gBAAE,UAAU,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC3E,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,UAAoC,EAAE,EAAE;QAC9E,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAM;QACzB,SAAS,CAAC,SAAS,CAAC,CAAA;QACpB,mIAAmI;QACnI,qIAAqI;QACrI,iFAAiF;QACjF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,OAAO,CAAqE,CAAC,OAAO,EAAE,EAAE;YACvH,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE;gBACrB,MAAM,IAAI,GAAG,OAAO,CAAA;gBACpB,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;gBAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;gBAEjC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBACvB,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QACF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YACrC,SAAS,CAAC,MAAM,CAAC,CAAA;YACjB,KAAK,CAAC,OAAO,GAAG,SAAS,CAAA;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAC,IAAI,CAAC,CAAA;YAChB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,KAAK,CAAC,OAAO,GAAG,CAAC,CAAA;gBACjB,SAAS,CAAC,OAAO,CAAC,CAAA;YACpB,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,MAAM,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;QACL,MAAM;QACN,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAChC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,KAAK;QACzC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE;QACxC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;QACpC,YAAY;QACZ,OAAO;QACP,KAAK,EAAE,KAAK,CAAC,OAAO;KACrB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,EAAE,OAAO,EAAkC;IAC/F,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,EAAE,IAAI,EAAE,CAAA;IAEvE,OAAO;QACL,KAAK;QACL,WAAW;KACZ,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,yBAAyB,EAAE,CAAA;IAE9C,aAAa,CAAC,GAAG,EAAE;QACjB,MAAM,WAAW,GAAG,UAAU,CAAC,0BAA0B,CAAC,sBAAsB,CAAC,CAAA;QACjF,UAAU,CAAC,WAAW,EAAE,CAAA;QACxB,OAAO,WAAW,CAAA;IACpB,CAAC,CAAC,CAAA;IAEF,OAAO,sBAAsB,CAAA;AAC/B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const GenericPlaceholderCentered: ({ className, width, height, style }: {
2
+ className?: string;
3
+ width?: string;
4
+ height?: string;
5
+ style?: React.CSSProperties;
6
+ }) => import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=GenericPlaceholderCentered.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericPlaceholderCentered.d.ts","sourceRoot":"","sources":["../../src/svg/GenericPlaceholderCentered.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,0BAA0B,GAAI,qCAAqC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAAE,4CAanK,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /* eslint-disable max-len */
3
+ export const GenericPlaceholderCentered = ({ className, width, height, style }) => (_jsxs("svg", { width: width ?? '220', height: height ?? '220', viewBox: "0 0 220 220", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: style, className: className, children: [_jsx("g", { opacity: "0.16", children: _jsx("path", { d: "M132.171 110.295C134.614 110.295 136.591 108.317 136.591 105.875C136.591 103.432 134.614 101.455 132.171 101.455C129.728 101.455 127.751 103.432 127.751 105.875C127.751 108.317 129.728 110.295 132.171 110.295ZM132.171 127.98C129.728 127.98 127.751 129.957 127.751 132.4C127.751 134.843 129.728 136.82 132.171 136.82C134.614 136.82 136.591 134.843 136.591 132.4C136.591 129.957 134.614 127.98 132.171 127.98ZM109.772 141.24C107.33 141.24 105.352 143.217 105.352 145.66C105.352 148.102 107.33 150.079 109.772 150.079C112.215 150.079 114.192 148.102 114.192 145.66C114.192 143.217 112.215 141.24 109.772 141.24ZM130.621 123.273C132.311 123.905 134.301 123.465 135.558 121.985C137.057 120.206 136.891 117.489 135.188 115.901C133.931 114.733 132.184 114.434 130.672 114.982C129.537 115.39 128.287 115.295 127.247 114.682C126.202 114.064 125.525 112.992 125.334 111.793C125.143 110.639 124.499 109.561 123.453 108.853C122.247 108.037 120.787 107.896 119.511 108.349C118.363 108.751 117.1 108.681 116.048 108.062C114.996 107.444 114.326 106.366 114.128 105.16C113.931 103.98 113.261 102.883 112.177 102.176C110.251 100.925 107.61 101.397 106.239 103.234C104.715 105.269 105.218 108.139 107.298 109.548C108.503 110.365 109.964 110.505 111.239 110.052C112.387 109.65 113.65 109.72 114.702 110.339C115.748 110.958 116.424 112.029 116.622 113.235C116.813 114.389 117.458 115.467 118.503 116.175C119.709 116.991 121.169 117.132 122.445 116.679C122.528 116.647 123.791 116.066 124.435 116.066C126.131 116.066 127.509 117.444 127.509 119.141C127.509 120.837 126.131 122.215 124.435 122.215C123.791 122.215 122.534 121.628 122.451 121.602C121.195 121.156 119.76 121.283 118.561 122.068C117.477 122.776 116.82 123.879 116.628 125.066C116.431 126.258 115.761 127.33 114.709 127.955C113.663 128.573 112.4 128.65 111.246 128.242C109.97 127.795 108.509 127.936 107.304 128.746C105.225 130.155 104.721 133.025 106.245 135.06C107.623 136.896 110.257 137.368 112.183 136.118C113.274 135.41 113.943 134.313 114.135 133.133C114.332 131.928 115.002 130.857 116.054 130.232C117.1 129.613 118.663 129.728 119.505 129.932C120.799 130.244 122.196 130.251 123.395 129.466C124.479 128.758 125.143 127.655 125.334 126.469C125.525 125.276 126.202 124.211 127.247 123.592C128.268 122.986 129.512 122.852 130.621 123.273ZM108.229 123.273C109.919 123.905 111.909 123.465 113.165 121.985C114.664 120.206 114.498 117.489 112.795 115.901C111.539 114.733 109.791 114.434 108.28 114.982C107.145 115.39 105.895 115.295 104.855 114.682C103.809 114.064 103.133 112.992 102.942 111.793C102.935 111.736 102.17 108.1 98.5791 108.1C96.1364 108.1 94.1593 110.078 94.1593 112.52C94.1593 114.963 96.1364 116.94 98.5791 116.94C99.3062 116.94 99.9886 116.762 100.595 116.449C101.041 116.277 101.647 116.066 102.036 116.066C103.732 116.066 105.11 117.444 105.11 119.141C105.11 120.837 103.732 122.215 102.036 122.215C101.609 122.215 100.92 121.96 100.473 121.781C100.327 121.724 99.3381 121.347 98.5728 121.347C96.1301 121.347 94.1529 123.324 94.1529 125.767C94.1529 128.21 96.1301 130.187 98.5728 130.187C100.754 130.187 102.565 128.605 102.922 126.52C102.922 126.501 102.935 126.481 102.942 126.462C103.133 125.27 103.809 124.205 104.855 123.586C105.875 122.98 107.119 122.846 108.229 123.267V123.273ZM120.972 134.607C118.529 134.607 116.552 136.584 116.552 139.027C116.552 141.469 118.529 143.446 120.972 143.446C123.414 143.446 125.392 141.469 125.392 139.027C125.392 136.584 123.414 134.607 120.972 134.607ZM109.772 97.035C112.215 97.035 114.192 95.0579 114.192 92.6152C114.192 90.1725 112.215 88.1953 109.772 88.1953C107.33 88.1953 105.352 90.1725 105.352 92.6152C105.352 95.0579 107.33 97.035 109.772 97.035ZM98.5791 134.607C96.1364 134.607 94.1593 136.584 94.1593 139.027C94.1593 141.469 96.1364 143.446 98.5791 143.446C101.022 143.446 102.999 141.469 102.999 139.027C102.999 136.584 101.022 134.607 98.5791 134.607ZM120.972 103.668C123.414 103.668 125.392 101.691 125.392 99.2481C125.392 96.8054 123.414 94.8283 120.972 94.8283C118.529 94.8283 116.552 96.8054 116.552 99.2481C116.552 101.691 118.529 103.668 120.972 103.668ZM98.5791 103.668C101.022 103.668 102.999 101.691 102.999 99.2481C102.999 96.8054 101.022 94.8283 98.5791 94.8283C96.1364 94.8283 94.1593 96.8054 94.1593 99.2481C94.1593 101.691 96.1364 103.668 98.5791 103.668ZM87.3797 101.455C84.937 101.455 82.9598 103.432 82.9598 105.875C82.9598 108.317 84.937 110.295 87.3797 110.295C89.8224 110.295 91.7995 108.317 91.7995 105.875C91.7995 103.432 89.8224 101.455 87.3797 101.455ZM87.3797 127.98C84.937 127.98 82.9598 129.957 82.9598 132.4C82.9598 134.843 84.937 136.82 87.3797 136.82C89.8224 136.82 91.7995 134.843 91.7995 132.4C91.7995 129.957 89.8224 127.98 87.3797 127.98ZM87.3797 114.714C84.937 114.714 82.9598 116.691 82.9598 119.134C82.9598 121.577 84.937 123.554 87.3797 123.554C89.8224 123.554 91.7995 121.577 91.7995 119.134C91.7995 116.691 89.8224 114.714 87.3797 114.714Z", fill: "#A0A0A0" }) }), _jsx("path", { opacity: "0.32", d: "M201.559 149.24C201.559 98.5544 160.471 57.4658 109.786 57.4658C59.1003 57.4658 18.0117 98.5544 18.0117 149.24", stroke: "url(#paint0_linear_12643_1371)", strokeWidth: "2.5731", strokeLinecap: "round" }), _jsx("defs", { children: _jsxs("linearGradient", { id: "paint0_linear_12643_1371", x1: "109.786", y1: "57.4658", x2: "109.786", y2: "149.24", gradientUnits: "userSpaceOnUse", children: [_jsx("stop", { stopColor: "#A0A0A0" }), _jsx("stop", { offset: "0.889706", stopColor: "#A0A0A0", stopOpacity: "0" })] }) })] }));
4
+ //# sourceMappingURL=GenericPlaceholderCentered.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericPlaceholderCentered.js","sourceRoot":"","sources":["../../src/svg/GenericPlaceholderCentered.tsx"],"names":[],"mappings":";AAAA,4BAA4B;AAE5B,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAwF,EAAE,EAAE,CAAC,CACvK,eAAK,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,EAAE,OAAO,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,aAC1J,YAAG,OAAO,EAAC,MAAM,YACf,eAAM,CAAC,EAAC,myJAAmyJ,EAAC,IAAI,EAAC,SAAS,GAAE,GAC1zJ,EACJ,eAAM,OAAO,EAAC,MAAM,EAAC,CAAC,EAAC,gHAAgH,EAAC,MAAM,EAAC,gCAAgC,EAAC,WAAW,EAAC,QAAQ,EAAC,aAAa,EAAC,OAAO,GAAE,EAC5N,yBACE,0BAAgB,EAAE,EAAC,0BAA0B,EAAC,EAAE,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS,EAAC,EAAE,EAAC,QAAQ,EAAC,aAAa,EAAC,gBAAgB,aAC7H,eAAM,SAAS,EAAC,SAAS,GAAE,EAC3B,eAAM,MAAM,EAAC,UAAU,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,GAAE,IAC9C,GACZ,IACH,CACP,CAAA"}
@@ -3,6 +3,7 @@ export { CS } from './CS.js';
3
3
  export { EDP } from './EDP.js';
4
4
  export { Forbidden } from './Forbidden.js';
5
5
  export { GenericPlaceholder } from './GenericPlaceholder.js';
6
+ export { GenericPlaceholderCentered } from './GenericPlaceholderCentered.js';
6
7
  export { HUB } from './HUB.js';
7
8
  export { Logo } from './Logo.js';
8
9
  export { MiniLogo } from './MiniLogo.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/svg/index.js CHANGED
@@ -3,6 +3,8 @@ export { CS } from './CS.js';
3
3
  export { EDP } from './EDP.js';
4
4
  export { Forbidden } from './Forbidden.js';
5
5
  export { GenericPlaceholder } from './GenericPlaceholder.js';
6
+ //! both versions kept to avoid breaking changes
7
+ export { GenericPlaceholderCentered } from './GenericPlaceholderCentered.js';
6
8
  export { HUB } from './HUB.js';
7
9
  export { Logo } from './Logo.js';
8
10
  export { MiniLogo } from './MiniLogo.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,gDAAgD;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "version": "1.0.0-dev.{timestamp}"
3
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stack-spot/portal-components",
3
- "version": "2.28.0",
3
+ "version": "2.28.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -31,7 +31,7 @@
31
31
  "./Form": "./dist/components/form/Form/index.js"
32
32
  },
33
33
  "scripts": {
34
- "build": "rimraf dist && tsc && tsc-esm-fix --target='dist'",
34
+ "build": "pnpm package-override --revert=false && rimraf dist && tsc && tsc-esm-fix --target='dist'",
35
35
  "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
36
36
  "check-tree-shaking": "agadoo"
37
37
  },
@@ -45,6 +45,8 @@
45
45
  "react-dom": "^18.2.0"
46
46
  },
47
47
  "devDependencies": {
48
+ "@stack-spot/build-tools": "^1.2.4",
49
+ "@stack-spot/citric-react": "^0.41.2",
48
50
  "@types/lodash": "^4.14.202",
49
51
  "@types/react": "^18.2.37",
50
52
  "@types/react-dom": "^18.2.15",
@@ -0,0 +1,3 @@
1
+ {
2
+ "version": "1.0.0-stg.{timestamp}"
3
+ }
@@ -3,7 +3,7 @@ import { AsProp } from '@citric/core/dist/forward-ref-as'
3
3
  import { SxProperties } from '@citric/core/dist/sx'
4
4
  import { Card, CardContent } from '@citric/ui'
5
5
  import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
6
- import { GenericPlaceholder } from '../svg'
6
+ import { GenericPlaceholder, GenericPlaceholderCentered } from '../svg'
7
7
 
8
8
  interface Props {
9
9
  title?: string | React.ReactElement,
@@ -76,10 +76,9 @@ export const PlaceholderCallToAction = ({
76
76
  <Card sx={{ w: fullWidth ? '100%' : 'auto', bg: 'transparent', ...sxCard }} style={style} className={className}>
77
77
  <CardContent
78
78
  as={Flex}
79
- py={15}
80
- sx={{ flexDirection: 'column', justifyContent: 'center', alignItems: 'center', gap: '92px', ...sx }}
79
+ sx={{ justifyContent: 'center', alignItems: 'center', gap: '16px', ...sx }}
81
80
  >
82
- <Box sx={{ justifySelf: 'end' }}>{img ?? <GenericPlaceholder {...placeholderImageConfig} />}</Box>
81
+ <Box>{img ?? <GenericPlaceholderCentered {...placeholderImageConfig} />}</Box>
83
82
 
84
83
  <Box>
85
84
  {title && <Text as={titleAs} appearance="h4" mb="3" aria-live="assertive">
@@ -1,4 +1,5 @@
1
- import { Box, IconBox, Input } from '@citric/core'
1
+ import { Box, IconBox } from '@citric/core'
2
+ import { Input } from '@stack-spot/citric-react'
2
3
  import { Filter, Times } from '@citric/icons'
3
4
  import { FieldAddon, FieldGroup, IconButton } from '@citric/ui'
4
5
  import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
@@ -21,8 +22,15 @@ export const SearchInput = ({
21
22
  className?: string,
22
23
  }) => {
23
24
  const [value, setValue] = useState(defaultValue)
24
- const runOnChange = useCallback(debounce(onChange, 800), [onChange])
25
25
  const t = useTranslate(dictionary)
26
+ const debouncedOnChange = useCallback(
27
+ debounce((nextValue?: string) => onChange(nextValue), 800),
28
+ [onChange],
29
+ )
30
+ const handleInputOnChange = (nextValue: string) => {
31
+ setValue(nextValue)
32
+ debouncedOnChange(nextValue)
33
+ }
26
34
 
27
35
  return (
28
36
  <Box sx={{ position: 'relative' }} style={style} className={className}>
@@ -33,12 +41,10 @@ export const SearchInput = ({
33
41
  </IconBox>
34
42
  </FieldAddon>
35
43
  <Input
44
+ style={{ width: '100%' }}
36
45
  value={value}
37
46
  placeholder={searchText}
38
- onChange={(e) => {
39
- setValue(e.target.value)
40
- runOnChange(e.target.value)
41
- }}
47
+ onChange={handleInputOnChange}
42
48
  disabled={disabled}
43
49
  maxLength={255}
44
50
  />
@@ -46,10 +52,7 @@ export const SearchInput = ({
46
52
  {!!value && (
47
53
  <IconButton
48
54
  sx={{ position: 'absolute', right: '20px', top: '50%', transform: 'translate(50%, -50%)' }}
49
- onClick={() => {
50
- setValue('')
51
- runOnChange('')
52
- }}
55
+ onClick={() => handleInputOnChange('')}
53
56
  aria-label={t.ariaClearField}
54
57
  >
55
58
  <Times />
@@ -1,15 +1,14 @@
1
1
  import { Box, Flex } from '@citric/core'
2
2
  import { listToClass } from '@stack-spot/portal-theme'
3
- import { Month } from '@stack-spot/portal-translate'
3
+ import { Dictionary, Month, useTranslate } from '@stack-spot/portal-translate'
4
4
  import { last } from 'lodash'
5
5
  import { useMemo } from 'react'
6
6
  import { styled } from 'styled-components'
7
7
  import { InfiniteScroll } from '../InfiniteScroll'
8
+ import { PlaceholderCallToAction } from '../Placeholder'
8
9
  import { TimelineSection } from '../TimelineSection'
9
10
  import { NotificationItem } from './NotificationItem'
10
- import { NotificationPlaceholder } from './NotificationPlaceholder'
11
11
  import { GetTenantNotificationsResponse, InfiniteScrollConfig } from './types'
12
-
13
12
  export interface NotificationListProps {
14
13
  /**
15
14
  * Function to call when the message is marked as read (committed).
@@ -90,16 +89,20 @@ const StyledBox = styled(Box)`
90
89
  }
91
90
 
92
91
  .placeholder.compact {
92
+ min-height: 400px;
93
+ padding: 0px;
94
+
93
95
  & > div {
94
- padding-block: 0;
95
96
  gap: 16px;
97
+ align-content: flex-start;
98
+
96
99
  & > div {
97
100
  text-align: center;
98
101
  h4 {
99
102
  margin-bottom: 10px;
100
103
  }
101
104
  p {
102
- margin: 0;
105
+ max-width: 220px;
103
106
  }
104
107
  }
105
108
  }
@@ -132,6 +135,7 @@ export const NotificationList = (
132
135
  () => compact ? [{ day: 0, month: 0, year: 0, items }] : groupNotificationsByDate(items),
133
136
  [compact, items],
134
137
  )
138
+ const t = useTranslate(dictionary)
135
139
 
136
140
  const renderNotifications = (notifications: GetTenantNotificationsResponse[], key?: string) => (
137
141
  <Flex sx={{ gap: '4px' }} flexDirection="column" key={key}>
@@ -173,13 +177,31 @@ export const NotificationList = (
173
177
  )}
174
178
  </Flex>
175
179
  </InfiniteScroll>
176
- ) : <NotificationPlaceholder
177
- isSearch={showEmptySearch}
178
- className={listToClass(['placeholder', compact && 'compact'])}
179
- titleAs="p"
180
- sx={{ minHeight: '350px' }}
181
- />}
180
+ ) : (
181
+ <PlaceholderCallToAction
182
+ title={ showEmptySearch ? t.searchTitle : t.defaultTitle }
183
+ description={ showEmptySearch ? t.searchDescription : t.defaultDescription}
184
+ className={listToClass(['placeholder', compact && 'compact'])}
185
+ titleAs="p"
186
+ />
187
+ )}
182
188
  <div className="loading-mask"></div>
183
189
  </StyledBox>
184
190
  )
185
191
  }
192
+
193
+ const dictionary = {
194
+ en: {
195
+ defaultTitle: 'You don’t have any notifications yet.',
196
+ defaultDescription: 'Relevant updates will show up here as soon as they’re available.',
197
+ searchTitle: 'No notifications match your filters.',
198
+ searchDescription: 'Try changing the filters to see more results.',
199
+ },
200
+ pt: {
201
+ defaultTitle: 'Você ainda não tem notificações.',
202
+ defaultDescription: 'Quando houver alguma atualização relevante, ela será exibida aqui.',
203
+ searchTitle: 'Nenhuma notificação corresponde aos filtros',
204
+ searchDescription: 'Experimente mudar os filtros para encontrar mais notificações.',
205
+ },
206
+ } satisfies Dictionary
207
+
@@ -30,6 +30,7 @@ export const NotificationsPage = () => {
30
30
  const t = useTranslate(dictionary)
31
31
  const controller = useNotificationController()
32
32
  const { hasMore, items, loadMore, applyFilters, filters, status, error } = useNotificationList()
33
+ const hasFilters = Object.entries(filters).length > 0
33
34
 
34
35
  return (<>
35
36
  <header><Text appearance="h2" as="h1">{t.title}</Text></header>
@@ -72,7 +73,7 @@ export const NotificationsPage = () => {
72
73
  onUncommit={id => controller.markAsUncommitted(id)}
73
74
  infiniteScroll={{ hasMore, loadMore }}
74
75
  onClickAction={controller.config.onClickAction}
75
- showEmptySearch
76
+ showEmptySearch={hasFilters}
76
77
  />
77
78
  </AsyncContent>
78
79
  </>)
@@ -7,6 +7,21 @@ import { useNotificationController } from './context'
7
7
  import { LazyNotificationList } from './LazyNotificationList'
8
8
  import { LoadNotificationsFilters } from './types'
9
9
 
10
+ function cleanFilters<T extends Record<string, unknown>>(filters: T): T {
11
+ const cleaned = { ...filters }
12
+
13
+ const keys = Object.keys(cleaned) as (keyof T)[]
14
+ keys.forEach((key) => {
15
+ const value = cleaned[key]
16
+
17
+ if (value === undefined || value === null || value === '') {
18
+ delete cleaned[key]
19
+ }
20
+ })
21
+
22
+ return cleaned
23
+ }
24
+
10
25
  export function useNotificationList(initialFilters: LoadNotificationsFilters = {}) {
11
26
  const { repaint } = useManualRender()
12
27
  const [status, setStatus] = useState<'startup' | 'idle' | 'error' | 'loading'>('startup')
@@ -42,7 +57,9 @@ export function useNotificationList(initialFilters: LoadNotificationsFilters = {
42
57
  const { next, prev } = await new Promise<{ next: LoadNotificationsFilters, prev: LoadNotificationsFilters }>((resolve) => {
43
58
  setFilters((filters) => {
44
59
  const prev = filters
45
- const next = { ...filters, ...newFilters }
60
+ const merged = { ...filters, ...newFilters }
61
+ const next = cleanFilters(merged)
62
+
46
63
  resolve({ prev, next })
47
64
  return next
48
65
  })
@@ -0,0 +1,16 @@
1
+ /* eslint-disable max-len */
2
+
3
+ export const GenericPlaceholderCentered = ({ className, width, height, style }: { className?: string, width?: string, height?: string, style?: React.CSSProperties }) => (
4
+ <svg width={width ?? '220'} height={height ?? '220'} viewBox="0 0 220 220" fill="none" xmlns="http://www.w3.org/2000/svg" style={style} className={className}>
5
+ <g opacity="0.16">
6
+ <path d="M132.171 110.295C134.614 110.295 136.591 108.317 136.591 105.875C136.591 103.432 134.614 101.455 132.171 101.455C129.728 101.455 127.751 103.432 127.751 105.875C127.751 108.317 129.728 110.295 132.171 110.295ZM132.171 127.98C129.728 127.98 127.751 129.957 127.751 132.4C127.751 134.843 129.728 136.82 132.171 136.82C134.614 136.82 136.591 134.843 136.591 132.4C136.591 129.957 134.614 127.98 132.171 127.98ZM109.772 141.24C107.33 141.24 105.352 143.217 105.352 145.66C105.352 148.102 107.33 150.079 109.772 150.079C112.215 150.079 114.192 148.102 114.192 145.66C114.192 143.217 112.215 141.24 109.772 141.24ZM130.621 123.273C132.311 123.905 134.301 123.465 135.558 121.985C137.057 120.206 136.891 117.489 135.188 115.901C133.931 114.733 132.184 114.434 130.672 114.982C129.537 115.39 128.287 115.295 127.247 114.682C126.202 114.064 125.525 112.992 125.334 111.793C125.143 110.639 124.499 109.561 123.453 108.853C122.247 108.037 120.787 107.896 119.511 108.349C118.363 108.751 117.1 108.681 116.048 108.062C114.996 107.444 114.326 106.366 114.128 105.16C113.931 103.98 113.261 102.883 112.177 102.176C110.251 100.925 107.61 101.397 106.239 103.234C104.715 105.269 105.218 108.139 107.298 109.548C108.503 110.365 109.964 110.505 111.239 110.052C112.387 109.65 113.65 109.72 114.702 110.339C115.748 110.958 116.424 112.029 116.622 113.235C116.813 114.389 117.458 115.467 118.503 116.175C119.709 116.991 121.169 117.132 122.445 116.679C122.528 116.647 123.791 116.066 124.435 116.066C126.131 116.066 127.509 117.444 127.509 119.141C127.509 120.837 126.131 122.215 124.435 122.215C123.791 122.215 122.534 121.628 122.451 121.602C121.195 121.156 119.76 121.283 118.561 122.068C117.477 122.776 116.82 123.879 116.628 125.066C116.431 126.258 115.761 127.33 114.709 127.955C113.663 128.573 112.4 128.65 111.246 128.242C109.97 127.795 108.509 127.936 107.304 128.746C105.225 130.155 104.721 133.025 106.245 135.06C107.623 136.896 110.257 137.368 112.183 136.118C113.274 135.41 113.943 134.313 114.135 133.133C114.332 131.928 115.002 130.857 116.054 130.232C117.1 129.613 118.663 129.728 119.505 129.932C120.799 130.244 122.196 130.251 123.395 129.466C124.479 128.758 125.143 127.655 125.334 126.469C125.525 125.276 126.202 124.211 127.247 123.592C128.268 122.986 129.512 122.852 130.621 123.273ZM108.229 123.273C109.919 123.905 111.909 123.465 113.165 121.985C114.664 120.206 114.498 117.489 112.795 115.901C111.539 114.733 109.791 114.434 108.28 114.982C107.145 115.39 105.895 115.295 104.855 114.682C103.809 114.064 103.133 112.992 102.942 111.793C102.935 111.736 102.17 108.1 98.5791 108.1C96.1364 108.1 94.1593 110.078 94.1593 112.52C94.1593 114.963 96.1364 116.94 98.5791 116.94C99.3062 116.94 99.9886 116.762 100.595 116.449C101.041 116.277 101.647 116.066 102.036 116.066C103.732 116.066 105.11 117.444 105.11 119.141C105.11 120.837 103.732 122.215 102.036 122.215C101.609 122.215 100.92 121.96 100.473 121.781C100.327 121.724 99.3381 121.347 98.5728 121.347C96.1301 121.347 94.1529 123.324 94.1529 125.767C94.1529 128.21 96.1301 130.187 98.5728 130.187C100.754 130.187 102.565 128.605 102.922 126.52C102.922 126.501 102.935 126.481 102.942 126.462C103.133 125.27 103.809 124.205 104.855 123.586C105.875 122.98 107.119 122.846 108.229 123.267V123.273ZM120.972 134.607C118.529 134.607 116.552 136.584 116.552 139.027C116.552 141.469 118.529 143.446 120.972 143.446C123.414 143.446 125.392 141.469 125.392 139.027C125.392 136.584 123.414 134.607 120.972 134.607ZM109.772 97.035C112.215 97.035 114.192 95.0579 114.192 92.6152C114.192 90.1725 112.215 88.1953 109.772 88.1953C107.33 88.1953 105.352 90.1725 105.352 92.6152C105.352 95.0579 107.33 97.035 109.772 97.035ZM98.5791 134.607C96.1364 134.607 94.1593 136.584 94.1593 139.027C94.1593 141.469 96.1364 143.446 98.5791 143.446C101.022 143.446 102.999 141.469 102.999 139.027C102.999 136.584 101.022 134.607 98.5791 134.607ZM120.972 103.668C123.414 103.668 125.392 101.691 125.392 99.2481C125.392 96.8054 123.414 94.8283 120.972 94.8283C118.529 94.8283 116.552 96.8054 116.552 99.2481C116.552 101.691 118.529 103.668 120.972 103.668ZM98.5791 103.668C101.022 103.668 102.999 101.691 102.999 99.2481C102.999 96.8054 101.022 94.8283 98.5791 94.8283C96.1364 94.8283 94.1593 96.8054 94.1593 99.2481C94.1593 101.691 96.1364 103.668 98.5791 103.668ZM87.3797 101.455C84.937 101.455 82.9598 103.432 82.9598 105.875C82.9598 108.317 84.937 110.295 87.3797 110.295C89.8224 110.295 91.7995 108.317 91.7995 105.875C91.7995 103.432 89.8224 101.455 87.3797 101.455ZM87.3797 127.98C84.937 127.98 82.9598 129.957 82.9598 132.4C82.9598 134.843 84.937 136.82 87.3797 136.82C89.8224 136.82 91.7995 134.843 91.7995 132.4C91.7995 129.957 89.8224 127.98 87.3797 127.98ZM87.3797 114.714C84.937 114.714 82.9598 116.691 82.9598 119.134C82.9598 121.577 84.937 123.554 87.3797 123.554C89.8224 123.554 91.7995 121.577 91.7995 119.134C91.7995 116.691 89.8224 114.714 87.3797 114.714Z" fill="#A0A0A0"/>
7
+ </g>
8
+ <path opacity="0.32" d="M201.559 149.24C201.559 98.5544 160.471 57.4658 109.786 57.4658C59.1003 57.4658 18.0117 98.5544 18.0117 149.24" stroke="url(#paint0_linear_12643_1371)" strokeWidth="2.5731" strokeLinecap="round"/>
9
+ <defs>
10
+ <linearGradient id="paint0_linear_12643_1371" x1="109.786" y1="57.4658" x2="109.786" y2="149.24" gradientUnits="userSpaceOnUse">
11
+ <stop stopColor="#A0A0A0"/>
12
+ <stop offset="0.889706" stopColor="#A0A0A0" stopOpacity="0"/>
13
+ </linearGradient>
14
+ </defs>
15
+ </svg>
16
+ )
package/src/svg/index.ts CHANGED
@@ -3,9 +3,12 @@ export { CS } from './CS'
3
3
  export { EDP } from './EDP'
4
4
  export { Forbidden } from './Forbidden'
5
5
  export { GenericPlaceholder } from './GenericPlaceholder'
6
+ //! both versions kept to avoid breaking changes
7
+ export { GenericPlaceholderCentered } from './GenericPlaceholderCentered'
6
8
  export { HUB } from './HUB'
7
9
  export { Logo } from './Logo'
8
10
  export { MiniLogo } from './MiniLogo'
9
11
  export { NotFound } from './NotFound'
10
12
  export { ServerError } from './ServerError'
11
13
  export { Unauthenticated } from './Unauthenticated'
14
+
@@ -1,13 +0,0 @@
1
- import { AsProp } from '@citric/core/dist/forward-ref-as.js';
2
- import { SxProperties } from '@citric/core/dist/sx.js';
3
- interface Props {
4
- isSearch?: boolean;
5
- style?: React.CSSProperties;
6
- className?: string;
7
- sx?: SxProperties;
8
- sxCard?: SxProperties;
9
- titleAs?: AsProp;
10
- }
11
- export declare const NotificationPlaceholder: ({ isSearch, sx, sxCard, className, style, titleAs }: Props) => import("react/jsx-runtime").JSX.Element;
12
- export {};
13
- //# sourceMappingURL=NotificationPlaceholder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationPlaceholder.d.ts","sourceRoot":"","sources":["../../../src/components/notification/NotificationPlaceholder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAInD,UAAU,KAAK;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,uBAAuB,GAAI,qDAAqD,KAAK,4CAsBjG,CAAA"}
@@ -1,34 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useTranslate } from '@stack-spot/portal-translate';
3
- import { PlaceholderCallToAction } from '../Placeholder.js';
4
- export const NotificationPlaceholder = ({ isSearch, sx, sxCard, className, style, titleAs }) => {
5
- const t = useTranslate(dictionary);
6
- return _jsx(PlaceholderCallToAction, { title: isSearch
7
- ? (_jsxs(_Fragment, { children: [t.placeholderSearchTitle, _jsx("br", {}), t.placeholderSearchSubTitle] }))
8
- : (_jsxs(_Fragment, { children: [t.placeholderTitle, _jsx("br", {}), t.placeholderSubTitle] })), description: isSearch
9
- ? (_jsxs(_Fragment, { children: [t.placeholderSearchDescription, _jsx("br", {}), t.placeholderSearchSubDescription] }))
10
- : (_jsxs(_Fragment, { children: [t.placeholderDescription, _jsx("br", {}), t.placeholderSubDescription] })), fullWidth: true, sx: sx, sxCard: sxCard, className: className, style: style, titleAs: titleAs, placeholderImageConfig: { width: '200', height: '200' } });
11
- };
12
- const dictionary = {
13
- en: {
14
- placeholderTitle: 'You don’t have',
15
- placeholderSubTitle: 'any notifications yet.',
16
- placeholderDescription: 'Relevant updates will show up here',
17
- placeholderSubDescription: 'as soon as they’re available.',
18
- placeholderSearchTitle: 'No notifications',
19
- placeholderSearchSubTitle: 'match your filters.',
20
- placeholderSearchDescription: 'Try changing the filters',
21
- placeholderSearchSubDescription: 'to see more results.',
22
- },
23
- pt: {
24
- placeholderTitle: 'Você ainda não tem',
25
- placeholderSubTitle: 'notificações.',
26
- placeholderDescription: 'Quando houver alguma atualização relevante,',
27
- placeholderSubDescription: 'ela será exibida aqui.',
28
- placeholderSearchTitle: 'Nenhuma notificação',
29
- placeholderSearchSubTitle: 'corresponde aos filtros',
30
- placeholderSearchDescription: 'Experimente mudar os filtros',
31
- placeholderSearchSubDescription: 'para encontrar mais notificações.',
32
- },
33
- };
34
- //# sourceMappingURL=NotificationPlaceholder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationPlaceholder.js","sourceRoot":"","sources":["../../../src/components/notification/NotificationPlaceholder.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAc,YAAY,EAAE,MAAM,8BAA8B,CAAA;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAWxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAS,EAAE,EAAE;IACpG,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;IAElC,OAAO,KAAC,uBAAuB,IAC7B,KAAK,EACH,QAAQ;YACN,CAAC,CAAC,CAAC,8BAAG,CAAC,CAAC,sBAAsB,EAAC,cAAM,EAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC;YACtE,CAAC,CAAC,CAAC,8BAAG,CAAC,CAAC,gBAAgB,EAAC,cAAM,EAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,EAE9D,WAAW,EACT,QAAQ;YACN,CAAC,CAAC,CAAC,8BAAG,CAAC,CAAC,4BAA4B,EAAC,cAAM,EAAC,CAAC,CAAC,+BAA+B,IAAI,CAAC;YAClF,CAAC,CAAC,CAAC,8BAAG,CAAC,CAAC,sBAAsB,EAAC,cAAM,EAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,EAE1E,SAAS,QACT,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,sBAAsB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GACvD,CAAA;AACJ,CAAC,CAAA;AAED,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE;QACF,gBAAgB,EAAE,gBAAgB;QAClC,mBAAmB,EAAE,wBAAwB;QAC7C,sBAAsB,EAAE,oCAAoC;QAC5D,yBAAyB,EAAE,+BAA+B;QAC1D,sBAAsB,EAAE,kBAAkB;QAC1C,yBAAyB,EAAE,qBAAqB;QAChD,4BAA4B,EAAE,0BAA0B;QACxD,+BAA+B,EAAE,sBAAsB;KACxD;IACD,EAAE,EAAE;QACF,gBAAgB,EAAE,oBAAoB;QACtC,mBAAmB,EAAE,eAAe;QACpC,sBAAsB,EAAE,6CAA6C;QACrE,yBAAyB,EAAE,wBAAwB;QACnD,sBAAsB,EAAE,qBAAqB;QAC7C,yBAAyB,EAAE,yBAAyB;QACpD,4BAA4B,EAAE,8BAA8B;QAC5D,+BAA+B,EAAE,mCAAmC;KACrE;CACmB,CAAA"}
@@ -1,60 +0,0 @@
1
- import { AsProp } from '@citric/core/dist/forward-ref-as'
2
- import { SxProperties } from '@citric/core/dist/sx'
3
- import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
4
- import { PlaceholderCallToAction } from '../Placeholder'
5
-
6
- interface Props {
7
- isSearch?: boolean,
8
- style?: React.CSSProperties,
9
- className?: string,
10
- sx?: SxProperties,
11
- sxCard?: SxProperties,
12
- titleAs?: AsProp,
13
- }
14
-
15
- export const NotificationPlaceholder = ({ isSearch, sx, sxCard, className, style, titleAs }: Props) => {
16
- const t = useTranslate(dictionary)
17
-
18
- return <PlaceholderCallToAction
19
- title={
20
- isSearch
21
- ? (<>{t.placeholderSearchTitle}<br />{t.placeholderSearchSubTitle}</>)
22
- : (<>{t.placeholderTitle}<br />{t.placeholderSubTitle}</>)
23
- }
24
- description={
25
- isSearch
26
- ? (<>{t.placeholderSearchDescription}<br />{t.placeholderSearchSubDescription}</>)
27
- : (<>{t.placeholderDescription}<br />{t.placeholderSubDescription}</>)
28
- }
29
- fullWidth
30
- sx={sx}
31
- sxCard={sxCard}
32
- className={className}
33
- style={style}
34
- titleAs={titleAs}
35
- placeholderImageConfig={{ width: '200', height: '200' }}
36
- />
37
- }
38
-
39
- const dictionary = {
40
- en: {
41
- placeholderTitle: 'You don’t have',
42
- placeholderSubTitle: 'any notifications yet.',
43
- placeholderDescription: 'Relevant updates will show up here',
44
- placeholderSubDescription: 'as soon as they’re available.',
45
- placeholderSearchTitle: 'No notifications',
46
- placeholderSearchSubTitle: 'match your filters.',
47
- placeholderSearchDescription: 'Try changing the filters',
48
- placeholderSearchSubDescription: 'to see more results.',
49
- },
50
- pt: {
51
- placeholderTitle: 'Você ainda não tem',
52
- placeholderSubTitle: 'notificações.',
53
- placeholderDescription: 'Quando houver alguma atualização relevante,',
54
- placeholderSubDescription: 'ela será exibida aqui.',
55
- placeholderSearchTitle: 'Nenhuma notificação',
56
- placeholderSearchSubTitle: 'corresponde aos filtros',
57
- placeholderSearchDescription: 'Experimente mudar os filtros',
58
- placeholderSearchSubDescription: 'para encontrar mais notificações.',
59
- },
60
- } satisfies Dictionary