@pushwoosh/dumb-components 1.1.29 → 1.1.31

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 (118) hide show
  1. package/Chip/Chip.d.ts +1 -0
  2. package/Chip/Chip.js +2 -0
  3. package/Chip/Chip.types.d.ts +1 -0
  4. package/Chip/styles.d.ts +1 -0
  5. package/Chip/styles.js +16 -4
  6. package/FrequencyCapping/FrequencyCappingEdit.d.ts +3 -0
  7. package/FrequencyCapping/FrequencyCappingEdit.js +90 -0
  8. package/FrequencyCapping/FrequencyCappingReadonly.d.ts +3 -0
  9. package/FrequencyCapping/FrequencyCappingReadonly.js +35 -0
  10. package/FrequencyCapping/components/Condition/index.d.ts +8 -0
  11. package/FrequencyCapping/components/Condition/index.js +29 -0
  12. package/FrequencyCapping/components/Condition/styles.d.ts +1 -0
  13. package/FrequencyCapping/components/Condition/styles.js +5 -0
  14. package/FrequencyCapping/components/Description/index.d.ts +10 -0
  15. package/FrequencyCapping/components/Description/index.js +27 -0
  16. package/FrequencyCapping/components/Settings/index.d.ts +8 -0
  17. package/FrequencyCapping/components/Settings/index.js +34 -0
  18. package/FrequencyCapping/helpers/getCappingOption.d.ts +6 -0
  19. package/FrequencyCapping/helpers/getCappingOption.js +20 -0
  20. package/FrequencyCapping/helpers/getReadonlyCappingHelpers.d.ts +7 -0
  21. package/FrequencyCapping/helpers/getReadonlyCappingHelpers.js +79 -0
  22. package/FrequencyCapping/index.d.ts +3 -0
  23. package/FrequencyCapping/index.js +2 -0
  24. package/FrequencyCapping/styles.d.ts +113 -0
  25. package/FrequencyCapping/styles.js +15 -0
  26. package/FrequencyCapping/types.d.ts +32 -0
  27. package/FrequencyCapping/types.js +6 -0
  28. package/SendRate/SendRateEdit.d.ts +14 -0
  29. package/SendRate/SendRateEdit.js +77 -0
  30. package/SendRate/SendRateReadonly.d.ts +11 -0
  31. package/SendRate/SendRateReadonly.js +35 -0
  32. package/SendRate/components/Condition/index.d.ts +7 -0
  33. package/SendRate/components/Condition/index.js +12 -0
  34. package/SendRate/components/Condition/styles.d.ts +1 -0
  35. package/SendRate/components/Condition/styles.js +5 -0
  36. package/SendRate/components/Description/index.d.ts +10 -0
  37. package/SendRate/components/Description/index.js +25 -0
  38. package/SendRate/components/Settings/index.d.ts +9 -0
  39. package/SendRate/components/Settings/index.js +27 -0
  40. package/SendRate/helpers/getReadonlySendRateHelpers.d.ts +7 -0
  41. package/SendRate/helpers/getReadonlySendRateHelpers.js +78 -0
  42. package/SendRate/helpers/getSendRateOptions.d.ts +2 -0
  43. package/SendRate/helpers/getSendRateOptions.js +10 -0
  44. package/SendRate/index.d.ts +2 -0
  45. package/SendRate/index.js +2 -0
  46. package/SendRate/styles.d.ts +113 -0
  47. package/SendRate/styles.js +15 -0
  48. package/SendRate/types.d.ts +9 -0
  49. package/index.d.ts +2 -1
  50. package/index.js +2 -1
  51. package/package.json +1 -3
  52. package/Table/assets/box.svg +0 -1
  53. package/Table/assets/error.svg +0 -1
  54. package/Table/assets/notfound.svg +0 -1
  55. package/Table/components/DataTable/DataTable.d.ts +0 -4
  56. package/Table/components/DataTable/DataTable.js +0 -79
  57. package/Table/components/DataTable/index.d.ts +0 -1
  58. package/Table/components/DataTable/index.js +0 -1
  59. package/Table/components/DataTable/types.d.ts +0 -26
  60. package/Table/components/DataTableGetContext/DataTableGetContext.d.ts +0 -4
  61. package/Table/components/DataTableGetContext/DataTableGetContext.js +0 -8
  62. package/Table/components/DataTableGetContext/index.d.ts +0 -1
  63. package/Table/components/DataTableGetContext/index.js +0 -1
  64. package/Table/components/DataTableGetContext/types.d.ts +0 -5
  65. package/Table/components/DataTableGetContext/types.js +0 -1
  66. package/Table/components/DataTableList/DataTableList.d.ts +0 -3
  67. package/Table/components/DataTableList/DataTableList.js +0 -80
  68. package/Table/components/DataTableList/index.d.ts +0 -1
  69. package/Table/components/DataTableList/index.js +0 -1
  70. package/Table/components/DataTableList/types.d.ts +0 -4
  71. package/Table/components/DataTableList/types.js +0 -1
  72. package/Table/components/DataTablePagination/DataTablePagination.d.ts +0 -3
  73. package/Table/components/DataTablePagination/DataTablePagination.js +0 -35
  74. package/Table/components/DataTablePagination/index.d.ts +0 -1
  75. package/Table/components/DataTablePagination/index.js +0 -1
  76. package/Table/components/DataTablePagination/types.d.ts +0 -5
  77. package/Table/components/DataTablePagination/types.js +0 -1
  78. package/Table/components/DataTableSearchInput/DataTableSearchInput.d.ts +0 -3
  79. package/Table/components/DataTableSearchInput/DataTableSearchInput.js +0 -40
  80. package/Table/components/DataTableSearchInput/index.d.ts +0 -1
  81. package/Table/components/DataTableSearchInput/index.js +0 -1
  82. package/Table/components/DataTableSearchInput/types.d.ts +0 -3
  83. package/Table/components/DataTableSearchInput/types.js +0 -1
  84. package/Table/components/DataTableSortableCell/DataTableSortableCell.d.ts +0 -3
  85. package/Table/components/DataTableSortableCell/DataTableSortableCell.js +0 -25
  86. package/Table/components/DataTableSortableCell/index.d.ts +0 -1
  87. package/Table/components/DataTableSortableCell/index.js +0 -1
  88. package/Table/components/DataTableSortableCell/types.d.ts +0 -4
  89. package/Table/components/DataTableSortableCell/types.js +0 -1
  90. package/Table/components/Loading/Loading.d.ts +0 -2
  91. package/Table/components/Loading/Loading.js +0 -20
  92. package/Table/components/Loading/index.d.ts +0 -1
  93. package/Table/components/Loading/index.js +0 -1
  94. package/Table/components/Loading/styles.d.ts +0 -1
  95. package/Table/components/Loading/styles.js +0 -6
  96. package/Table/components/TablePagination/TablePagination.d.ts +0 -3
  97. package/Table/components/TablePagination/TablePagination.js +0 -39
  98. package/Table/components/TablePagination/index.d.ts +0 -1
  99. package/Table/components/TablePagination/index.js +0 -1
  100. package/Table/components/TablePagination/types.d.ts +0 -10
  101. package/Table/components/TablePagination/types.js +0 -1
  102. package/Table/context.d.ts +0 -2
  103. package/Table/context.js +0 -2
  104. package/Table/hooks/helpers.d.ts +0 -2
  105. package/Table/hooks/helpers.js +0 -6
  106. package/Table/hooks/index.d.ts +0 -2
  107. package/Table/hooks/index.js +0 -2
  108. package/Table/hooks/useDataTableContext.d.ts +0 -11
  109. package/Table/hooks/useDataTableContext.js +0 -23
  110. package/Table/hooks/useDataTableGetParams.d.ts +0 -11
  111. package/Table/hooks/useDataTableGetParams.js +0 -53
  112. package/Table/index.d.ts +0 -10
  113. package/Table/index.js +0 -9
  114. package/Table/styles.d.ts +0 -247
  115. package/Table/styles.js +0 -62
  116. package/Table/types.d.ts +0 -20
  117. package/Table/types.js +0 -1
  118. /package/{Table/components/DataTable → SendRate}/types.js +0 -0
@@ -0,0 +1,77 @@
1
+ import React from 'react';
2
+ import { Color } from '@pushwoosh/kit-constants';
3
+ import { Vertical } from '@pushwoosh/kit-helpers';
4
+ import { OpenIcon } from '@pushwoosh/kit-icons';
5
+ import { Description } from './components/Description';
6
+ import { EditSendRateSettings } from './components/Settings';
7
+ import { getSendRateOptions } from './helpers/getSendRateOptions';
8
+ import { FieldBox } from '../FieldBox';
9
+ import { Link } from '../Link';
10
+ import { Select } from '../Select';
11
+ import { Container, LinkWrapper } from './styles';
12
+ export function SendRateEdit({
13
+ sendRate,
14
+ globalSendRate,
15
+ onChange,
16
+ applicationCode,
17
+ minValue,
18
+ maxValue
19
+ }) {
20
+ const {
21
+ sendRate: count,
22
+ policy
23
+ } = sendRate;
24
+ const isGlobalSendRateDisabled = globalSendRate.count === 0 && globalSendRate.count === 0;
25
+ const globalSendRateLinkText = isGlobalSendRateDisabled ? 'Set up' : 'Settings';
26
+ const sendRateOptions = getSendRateOptions(isGlobalSendRateDisabled);
27
+ const onChangeSendRate = React.useCallback(value => {
28
+ if (value === 'CUSTOM') {
29
+ onChange({
30
+ ...sendRate,
31
+ policy: value,
32
+ sendRate: minValue
33
+ });
34
+ } else {
35
+ onChange({
36
+ ...sendRate,
37
+ policy: value
38
+ });
39
+ }
40
+ }, [onChange, sendRate, minValue]);
41
+ const onSettingsChange = React.useCallback(count => {
42
+ onChange({
43
+ ...sendRate,
44
+ sendRate: count
45
+ });
46
+ }, [sendRate, onChange]);
47
+ return React.createElement(Container, {
48
+ "$padding": 16,
49
+ "$bgColor": Color.SOFT_LIGHT,
50
+ "$borderRadius": 8
51
+ }, React.createElement(Vertical, {
52
+ "$gap": 12
53
+ }, React.createElement(FieldBox, {
54
+ title: "Send rate"
55
+ }, React.createElement(Select, {
56
+ name: "sendRateOption",
57
+ options: sendRateOptions,
58
+ value: sendRateOptions.find(option => option.value === policy),
59
+ onChange: newValue => onChangeSendRate(newValue.value)
60
+ })), React.createElement(Description, {
61
+ sendRateOption: policy,
62
+ messages: globalSendRate.count,
63
+ seconds: globalSendRate.seconds
64
+ }, policy === 'GLOBAL' && React.createElement(Link, {
65
+ href: `/applications/${applicationCode}/message-delivery-settings?tab=sendRate`,
66
+ title: globalSendRateLinkText
67
+ }, React.createElement(LinkWrapper, null, globalSendRateLinkText, React.createElement(OpenIcon, {
68
+ size: "small",
69
+ view: "lined",
70
+ as: "span"
71
+ })))), policy === 'CUSTOM' && React.createElement(EditSendRateSettings, {
72
+ messages: count,
73
+ onChange: onSettingsChange,
74
+ minValue: minValue,
75
+ maxValue: maxValue
76
+ })));
77
+ }
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { type SendRateBase } from './types';
3
+ export type SendRateReadonlyProps<T extends SendRateBase> = {
4
+ sendRate: T;
5
+ globalSendRate: {
6
+ count: number;
7
+ seconds: number;
8
+ };
9
+ applicationCode: string;
10
+ };
11
+ export declare function SendRateReadonly<T extends SendRateBase>({ sendRate, globalSendRate, applicationCode }: SendRateReadonlyProps<T>): React.JSX.Element;
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { Horizontal, Vertical } from '@pushwoosh/kit-helpers';
3
+ import { OpenIcon } from '@pushwoosh/kit-icons';
4
+ import { Link } from '../Link';
5
+ import { getReadonlySendRateIcon, getReadonlySendRateLabel } from './helpers/getReadonlySendRateHelpers';
6
+ export function SendRateReadonly({
7
+ sendRate,
8
+ globalSendRate,
9
+ applicationCode
10
+ }) {
11
+ const {
12
+ policy
13
+ } = sendRate;
14
+ const isGlobalSendRateDisabled = globalSendRate.count === 0 && globalSendRate.seconds === 0;
15
+ const globalSendRateLinkText = isGlobalSendRateDisabled ? 'Set up' : 'Settings';
16
+ const label = getReadonlySendRateLabel(sendRate, isGlobalSendRateDisabled, globalSendRate);
17
+ const checkIcon = getReadonlySendRateIcon(policy, isGlobalSendRateDisabled);
18
+ return React.createElement(Vertical, {
19
+ "$gap": 24
20
+ }, React.createElement(Horizontal, {
21
+ "$gap": 8,
22
+ "$justifyContent": "start",
23
+ "$alignItems": "center"
24
+ }, checkIcon, label, policy === 'GLOBAL' && React.createElement(Link, {
25
+ href: `/applications/${applicationCode}/message-delivery-settings?tab=sendRate`,
26
+ title: globalSendRateLinkText
27
+ }, React.createElement(Horizontal, {
28
+ "$gap": 4,
29
+ "$justifyContent": "start",
30
+ "$alignItems": "center"
31
+ }, globalSendRateLinkText, React.createElement(OpenIcon, {
32
+ size: "small",
33
+ view: "lined"
34
+ })))));
35
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ type ConditionProps = {
3
+ messages: number;
4
+ tooltip?: string;
5
+ };
6
+ export declare function Condition({ messages }: ConditionProps): React.JSX.Element;
7
+ export {};
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { ChipWithinTextContainer } from './styles';
3
+ import { Chip } from '../../../Chip';
4
+ export function Condition({
5
+ messages
6
+ }) {
7
+ return React.createElement(ChipWithinTextContainer, null, React.createElement(Chip, {
8
+ "$variant": "primary",
9
+ "$readOnly": true,
10
+ as: "span"
11
+ }, `${messages} messages per 1 sec`));
12
+ }
@@ -0,0 +1 @@
1
+ export declare const ChipWithinTextContainer: import("styled-components").StyledComponent<"span", any, {}, never>;
@@ -0,0 +1,5 @@
1
+ import styled from 'styled-components';
2
+ export const ChipWithinTextContainer = styled.span.withConfig({
3
+ displayName: "ChipWithinTextContainer",
4
+ componentId: "sc-1emj3bf-0"
5
+ })(["margin:0 8px;span{line-height:1;}"]);
@@ -0,0 +1,10 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type SendRatePolicy } from '../../types';
3
+ type DescriptionProps = {
4
+ sendRateOption: SendRatePolicy;
5
+ messages: number;
6
+ seconds: number;
7
+ children?: ReactNode;
8
+ };
9
+ export declare function Description(props: DescriptionProps): React.JSX.Element | undefined;
10
+ export {};
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { Paragraph } from '@pushwoosh/kit-typography';
3
+ import { Condition } from '../Condition';
4
+ export function Description(props) {
5
+ const {
6
+ sendRateOption,
7
+ messages,
8
+ seconds,
9
+ children
10
+ } = props;
11
+ if (sendRateOption === 'GLOBAL') {
12
+ if (messages === 0 && seconds === 0) {
13
+ return React.createElement(Paragraph, null, "To ensure you don\u2019t overload your systems or backend during high-volume campaigns, consider setting up Global send rate control.", ' ', children);
14
+ }
15
+ return React.createElement(Paragraph, null, "This message will use the Global send rate limit of", React.createElement(Condition, {
16
+ messages: messages
17
+ }), "to help reduce backend load.", ' ', children);
18
+ }
19
+ if (sendRateOption === 'CUSTOM') {
20
+ return React.createElement(Paragraph, null, "Instead of using the Global send rate, a custom delivery speed will be applied. Messages will be sent at the rate defined below.", ' ', children);
21
+ }
22
+ if (sendRateOption === 'IGNORE') {
23
+ return React.createElement(Paragraph, null, "This message will be sent as fast as possible, regardless of any Global send rate limits. Use with caution to avoid overloading your backend or creating delivery spikes.", ' ', children);
24
+ }
25
+ }
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ type Props = {
3
+ messages: number;
4
+ onChange: (messages: number) => void;
5
+ minValue: number;
6
+ maxValue: number;
7
+ };
8
+ export declare function EditSendRateSettings(props: Props): React.JSX.Element;
9
+ export {};
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { Horizontal } from '@pushwoosh/kit-helpers';
3
+ import { Paragraph } from '@pushwoosh/kit-typography';
4
+ import { NumberPicker } from '../../../NumberPicker';
5
+ export function EditSendRateSettings(props) {
6
+ const {
7
+ messages,
8
+ onChange,
9
+ minValue,
10
+ maxValue
11
+ } = props;
12
+ const onMessagesChange = React.useCallback(value => {
13
+ onChange(value);
14
+ }, [onChange]);
15
+ return React.createElement(Horizontal, {
16
+ "$gap": 12,
17
+ "$alignItems": "center",
18
+ style: {
19
+ gridTemplateColumns: '145px 70px 150px'
20
+ }
21
+ }, React.createElement(Paragraph, null, "Limit to a maximum of"), React.createElement(NumberPicker, {
22
+ onChange: value => onMessagesChange(value),
23
+ value: messages,
24
+ minValue: minValue,
25
+ maxValue: maxValue
26
+ }), React.createElement(Paragraph, null, "messages per 1 sec"));
27
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { type SendRateBase, type SendRatePolicy } from '../types';
3
+ export declare function getReadonlySendRateIcon(sendRateOption: SendRatePolicy, isGlobalSendRateDisabled: boolean): React.JSX.Element;
4
+ export declare function getReadonlySendRateLabel<T extends SendRateBase>(sendRateOption: T, isGlobalSendRateDisabled: boolean, globalSendRate: {
5
+ count: number;
6
+ seconds: number;
7
+ }): React.JSX.Element;
@@ -0,0 +1,78 @@
1
+ import React from 'react';
2
+ import { Color } from '@pushwoosh/kit-constants';
3
+ import { Horizontal } from '@pushwoosh/kit-helpers';
4
+ import { CheckRoundIcon, CloseRoundIcon, HelpRoundIcon } from '@pushwoosh/kit-icons';
5
+ import { Paragraph } from '@pushwoosh/kit-typography';
6
+ import { Tooltip } from '../../Tooltip';
7
+ import { Condition } from '../components/Condition';
8
+ import { IconWrapper } from '../styles';
9
+ export function getReadonlySendRateIcon(sendRateOption, isGlobalSendRateDisabled) {
10
+ if (sendRateOption === 'GLOBAL' && isGlobalSendRateDisabled) {
11
+ return React.createElement(CloseRoundIcon, {
12
+ size: "small",
13
+ view: "filled",
14
+ color: Color.LOCKED
15
+ });
16
+ ;
17
+ }
18
+ return React.createElement(CheckRoundIcon, {
19
+ size: "small",
20
+ view: "filled",
21
+ type: "fill",
22
+ color: Color.BRIGHT
23
+ });
24
+ }
25
+ export function getReadonlySendRateLabel(sendRateOption, isGlobalSendRateDisabled, globalSendRate) {
26
+ const {
27
+ policy,
28
+ sendRate
29
+ } = sendRateOption;
30
+ const tooltip = getReadonlyTooltip(policy, isGlobalSendRateDisabled);
31
+ if (policy === 'CUSTOM') {
32
+ return React.createElement(Paragraph, null, "Custom send rate for this message:", React.createElement(Condition, {
33
+ messages: sendRate
34
+ }));
35
+ }
36
+ if (policy === 'IGNORE') {
37
+ return React.createElement(Horizontal, {
38
+ "$alignItems": "center",
39
+ "$gap": 4,
40
+ "$justifyContent": "start"
41
+ }, "Send messages without send rate", React.createElement(Tooltip, {
42
+ content: tooltip,
43
+ position: "top-middle"
44
+ }, React.createElement(IconWrapper, {
45
+ "$padding": "4px 0"
46
+ }, React.createElement(HelpRoundIcon, {
47
+ size: "small",
48
+ view: "lined"
49
+ }))));
50
+ }
51
+ return isGlobalSendRateDisabled ? React.createElement(Horizontal, {
52
+ "$alignItems": "center",
53
+ "$gap": 4,
54
+ "$justifyContent": "start"
55
+ }, "Global send rate is not active for this channel", React.createElement(Tooltip, {
56
+ content: tooltip,
57
+ position: "top-middle"
58
+ }, React.createElement(IconWrapper, {
59
+ "$padding": "4px 0"
60
+ }, React.createElement(HelpRoundIcon, {
61
+ size: "small",
62
+ view: "lined"
63
+ })))) : React.createElement(Paragraph, null, "Global send rate:", React.createElement(Condition, {
64
+ messages: globalSendRate.count
65
+ }));
66
+ }
67
+ function getReadonlyTooltip(sendRateOption, isGlobalSendRateDisabled) {
68
+ if (sendRateOption === 'CUSTOM') {
69
+ return '';
70
+ }
71
+ if (sendRateOption === 'IGNORE') {
72
+ return 'Messages will be sent without rate limits, if possible, because no send rate is applied to this message';
73
+ }
74
+ if (isGlobalSendRateDisabled) {
75
+ return 'Messages will be sent as fast as possible because the global send rate limit is currently not active for this channel';
76
+ }
77
+ return '';
78
+ }
@@ -0,0 +1,2 @@
1
+ import { type SendRateOption } from '../types';
2
+ export declare const getSendRateOptions: (isGlobalSendRateDisabled: boolean) => SendRateOption[];
@@ -0,0 +1,10 @@
1
+ export const getSendRateOptions = isGlobalSendRateDisabled => [{
2
+ value: 'GLOBAL',
3
+ label: `Use global send rate settings${isGlobalSendRateDisabled ? ' (currently inactive)' : ''}`
4
+ }, {
5
+ value: 'IGNORE',
6
+ label: 'Send messages without send rate'
7
+ }, {
8
+ value: 'CUSTOM',
9
+ label: 'Use custom send rate'
10
+ }];
@@ -0,0 +1,2 @@
1
+ export { SendRateEdit, type SendRateEditProps } from './SendRateEdit';
2
+ export { SendRateReadonly, type SendRateReadonlyProps } from './SendRateReadonly';
@@ -0,0 +1,2 @@
1
+ export { SendRateEdit } from './SendRateEdit';
2
+ export { SendRateReadonly } from './SendRateReadonly';
@@ -0,0 +1,113 @@
1
+ export declare const Container: import("styled-components").StyledComponent<"div", any, {
2
+ $alignContent?: "end" | "start" | "center" | "space-between" | "space-around" | "space-evenly" | "stretch" | undefined;
3
+ $alignItems?: "end" | "start" | "center" | "stretch" | "baseline" | undefined;
4
+ $bgColor?: string | undefined;
5
+ $border?: string | ({
6
+ top?: string | undefined;
7
+ right?: string | undefined;
8
+ bottom?: string | undefined;
9
+ left?: string | undefined;
10
+ } | {
11
+ horizontal: string;
12
+ top?: string | undefined;
13
+ bottom?: string | undefined;
14
+ } | {
15
+ vertical: string;
16
+ right?: string | undefined;
17
+ left?: string | undefined;
18
+ }) | undefined;
19
+ $borderRadius?: (string | number) | undefined;
20
+ $boxShadow?: string | undefined;
21
+ $gap?: (string | number) | undefined;
22
+ $gridAutoFlow?: "row" | "column" | "dense" | "row dense" | "column dense" | undefined;
23
+ $justifyContent?: "end" | "start" | "center" | "space-between" | "space-around" | "space-evenly" | "stretch" | undefined;
24
+ $justifyItems?: "end" | "start" | "center" | "stretch" | "baseline" | undefined;
25
+ $margin?: (string | number) | ({
26
+ top?: (string | number) | undefined;
27
+ right?: (string | number) | undefined;
28
+ bottom?: (string | number) | undefined;
29
+ left?: (string | number) | undefined;
30
+ } | {
31
+ horizontal: string | number;
32
+ top?: (string | number) | undefined;
33
+ bottom?: (string | number) | undefined;
34
+ } | {
35
+ vertical: string | number;
36
+ right?: (string | number) | undefined;
37
+ left?: (string | number) | undefined;
38
+ }) | undefined;
39
+ $padding?: (string | number) | ({
40
+ top?: (string | number) | undefined;
41
+ right?: (string | number) | undefined;
42
+ bottom?: (string | number) | undefined;
43
+ left?: (string | number) | undefined;
44
+ } | {
45
+ horizontal: string | number;
46
+ top?: (string | number) | undefined;
47
+ bottom?: (string | number) | undefined;
48
+ } | {
49
+ vertical: string | number;
50
+ right?: (string | number) | undefined;
51
+ left?: (string | number) | undefined;
52
+ }) | undefined;
53
+ $placeItems?: "end" | "start" | "center" | "stretch" | undefined;
54
+ } & {
55
+ $gridAutoFlow: string;
56
+ }, "$gridAutoFlow">;
57
+ export declare const IconWrapper: import("styled-components").StyledComponent<"div", any, {
58
+ $alignContent?: "end" | "start" | "center" | "space-between" | "space-around" | "space-evenly" | "stretch" | undefined;
59
+ $alignItems?: "end" | "start" | "center" | "stretch" | "baseline" | undefined;
60
+ $bgColor?: string | undefined;
61
+ $border?: string | ({
62
+ top?: string | undefined;
63
+ right?: string | undefined;
64
+ bottom?: string | undefined;
65
+ left?: string | undefined;
66
+ } | {
67
+ horizontal: string;
68
+ top?: string | undefined;
69
+ bottom?: string | undefined;
70
+ } | {
71
+ vertical: string;
72
+ right?: string | undefined;
73
+ left?: string | undefined;
74
+ }) | undefined;
75
+ $borderRadius?: (string | number) | undefined;
76
+ $boxShadow?: string | undefined;
77
+ $gap?: (string | number) | undefined;
78
+ $gridAutoFlow?: "row" | "column" | "dense" | "row dense" | "column dense" | undefined;
79
+ $justifyContent?: "end" | "start" | "center" | "space-between" | "space-around" | "space-evenly" | "stretch" | undefined;
80
+ $justifyItems?: "end" | "start" | "center" | "stretch" | "baseline" | undefined;
81
+ $margin?: (string | number) | ({
82
+ top?: (string | number) | undefined;
83
+ right?: (string | number) | undefined;
84
+ bottom?: (string | number) | undefined;
85
+ left?: (string | number) | undefined;
86
+ } | {
87
+ horizontal: string | number;
88
+ top?: (string | number) | undefined;
89
+ bottom?: (string | number) | undefined;
90
+ } | {
91
+ vertical: string | number;
92
+ right?: (string | number) | undefined;
93
+ left?: (string | number) | undefined;
94
+ }) | undefined;
95
+ $padding?: (string | number) | ({
96
+ top?: (string | number) | undefined;
97
+ right?: (string | number) | undefined;
98
+ bottom?: (string | number) | undefined;
99
+ left?: (string | number) | undefined;
100
+ } | {
101
+ horizontal: string | number;
102
+ top?: (string | number) | undefined;
103
+ bottom?: (string | number) | undefined;
104
+ } | {
105
+ vertical: string | number;
106
+ right?: (string | number) | undefined;
107
+ left?: (string | number) | undefined;
108
+ }) | undefined;
109
+ $placeItems?: "end" | "start" | "center" | "stretch" | undefined;
110
+ } & {
111
+ $gridAutoFlow: string;
112
+ }, "$gridAutoFlow">;
113
+ export declare const LinkWrapper: import("styled-components").StyledComponent<"span", any, {}, never>;
@@ -0,0 +1,15 @@
1
+ import styled from 'styled-components';
2
+ import { Color } from '@pushwoosh/kit-constants';
3
+ import { Horizontal, Vertical } from '@pushwoosh/kit-helpers';
4
+ export const Container = styled(Vertical).withConfig({
5
+ displayName: "Container",
6
+ componentId: "sc-18un4me-0"
7
+ })(["max-width:560px;"]);
8
+ export const IconWrapper = styled(Horizontal).withConfig({
9
+ displayName: "IconWrapper",
10
+ componentId: "sc-18un4me-1"
11
+ })(["color:", ";&:hover{color:", ";cursor:pointer;}"], Color.PHANTOM, Color.PRIMARY_HOVER);
12
+ export const LinkWrapper = styled.span.withConfig({
13
+ displayName: "LinkWrapper",
14
+ componentId: "sc-18un4me-2"
15
+ })(["display:inline-flex;gap:4px;align-items:center;justify-content:start;text-decoration:none;"]);
@@ -0,0 +1,9 @@
1
+ export type SendRatePolicy = 'UNKNOWN' | 'GLOBAL' | 'CUSTOM' | 'IGNORE';
2
+ export type SendRateBase<K extends SendRatePolicy = SendRatePolicy> = {
3
+ sendRate: number;
4
+ policy: K;
5
+ };
6
+ export type SendRateOption = {
7
+ label: string;
8
+ value: SendRatePolicy;
9
+ };
package/index.d.ts CHANGED
@@ -27,7 +27,6 @@ export { StatisticCard } from './StatisticCard';
27
27
  export { EmailTemplatePreview, NoEmailTemplatePreview } from './EmailTemplatePreview';
28
28
  export { PushPreview } from './PushPreview';
29
29
  export { Toast, ToastProvider, useToast } from './Toast';
30
- export { DataTable, DataTableGetContext, DataTablePagination, DataTableSearchInput, DataTableSortableCell, Loading, TablePagination, useDataTableContext, useDataTableGetParams, Table, Td, Tr, Th, ElementHover, ItemDetailLink, ItemName, LockedText, Description, type DataTableParams, type DataTableData, type DataTableContextType, } from './Table';
31
30
  export { AutosizeInput, PageHeader, PageHeaderEditable } from './PageHeader';
32
31
  export { ExportResult } from './ExportResult';
33
32
  export { NativeInput, NativeTextarea, NativeSelect } from './native';
@@ -37,4 +36,6 @@ export { CodeEditor } from './CodeEditor';
37
36
  export { EnhancedInput, SearchInput } from './EnhancedInput';
38
37
  export { Chip } from './Chip';
39
38
  export { RichMessageEditor, RichMessageViewer, type DynamicContent } from './RichMessageEditor';
39
+ export { FrequencyCappingEdit, FrequencyCappingReadonly, type LocalCapping } from './FrequencyCapping';
40
+ export { SendRateEdit, SendRateReadonly } from './SendRate';
40
41
  export { Alert } from './Alert';
package/index.js CHANGED
@@ -27,7 +27,6 @@ export { StatisticCard } from './StatisticCard';
27
27
  export { EmailTemplatePreview, NoEmailTemplatePreview } from './EmailTemplatePreview';
28
28
  export { PushPreview } from './PushPreview';
29
29
  export { Toast, ToastProvider, useToast } from './Toast';
30
- export { DataTable, DataTableGetContext, DataTablePagination, DataTableSearchInput, DataTableSortableCell, Loading, TablePagination, useDataTableContext, useDataTableGetParams, Table, Td, Tr, Th, ElementHover, ItemDetailLink, ItemName, LockedText, Description } from './Table';
31
30
  export { AutosizeInput, PageHeader, PageHeaderEditable } from './PageHeader';
32
31
  export { ExportResult } from './ExportResult';
33
32
  export { NativeInput, NativeTextarea, NativeSelect } from './native';
@@ -37,4 +36,6 @@ export { CodeEditor } from './CodeEditor';
37
36
  export { EnhancedInput, SearchInput } from './EnhancedInput';
38
37
  export { Chip } from './Chip';
39
38
  export { RichMessageEditor, RichMessageViewer } from './RichMessageEditor';
39
+ export { FrequencyCappingEdit, FrequencyCappingReadonly } from './FrequencyCapping';
40
+ export { SendRateEdit, SendRateReadonly } from './SendRate';
40
41
  export { Alert } from './Alert';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushwoosh/dumb-components",
3
- "version": "1.1.29",
3
+ "version": "1.1.31",
4
4
  "description": "React components to build Pushwoosh products",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
@@ -24,7 +24,6 @@
24
24
  "@types/lodash": "^4.17.13",
25
25
  "@types/react": "^18.2.69",
26
26
  "@types/react-dom": "^18.2.22",
27
- "@types/react-router-dom": "^5.3.3",
28
27
  "@types/react-transition-group": "^4.4.12",
29
28
  "@types/styled-components": "^5.1.34",
30
29
  "pre-commit": "^1.2.2",
@@ -57,7 +56,6 @@
57
56
  },
58
57
  "peerDependencies": {
59
58
  "react": ">= 16.14.0",
60
- "react-router-dom": "^5.3.4",
61
59
  "styled-components": "^5.3.3 || ^6.0.0"
62
60
  }
63
61
  }
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" fill="none"><path fill="#969CA3" d="M63.29 49.642c-1.28-1.08-2.87-2.423-4.35-2.727-1.175-.24-2.245.605-3.36.8-1.04.18-2.057-.32-3.08-.583-3.426-.88-6.886.914-10.286 1.893-2.054.592-4.18.89-6.298 1.186L25.258 51.7c-2.496.348-5.397.205-7.82.772-2.33.545-2.535 3.033-1.76 5.073.942 2.487 3.44 4.035 5.606 5.345a258 258 0 0 0 10.202 5.865c3.014 1.641 6.204 4.036 9.76 3.907 1.786-.065 3.51-.64 5.188-1.249 7.326-2.648 14.794-6.346 18.867-12.98.781-1.274 1.44-2.726 1.27-4.211-.181-1.609-1.304-2.96-2.56-3.98a42 42 0 0 1-.721-.6"/><path fill="#969CA3" d="M63.48 49.45c-.778-.672-1.56-1.351-2.42-1.92-.758-.5-1.68-1.004-2.617-.987-.968.016-1.801.56-2.72.781-1.12.27-2.203-.328-3.266-.584-2.117-.509-4.295-.044-6.33.589-2.182.68-4.295 1.47-6.548 1.898-2.337.444-4.709.72-7.065 1.05-2.4.335-4.805.676-7.208 1.006-2.165.298-4.362.246-6.529.536-.868.116-1.827.226-2.565.74a3.1 3.1 0 0 0-1.191 1.692c-.438 1.508.018 3.252.819 4.56.95 1.55 2.444 2.676 3.951 3.644 3.868 2.484 7.935 4.65 11.938 6.904 1.765.988 3.47 2.096 5.353 2.868 1.96.8 3.958 1.03 6.04.61 2.056-.414 4.05-1.231 5.993-2.007a56 56 0 0 0 5.244-2.392c3.337-1.751 6.509-3.94 9.022-6.772 1.264-1.424 2.475-3.04 3.181-4.823.383-.965.553-2.008.36-3.04-.17-.904-.628-1.728-1.194-2.441-.62-.783-1.391-1.375-2.16-2-.384-.31-.936.216-.553.553 1.371 1.204 2.99 2.48 3.162 4.443.172 1.984-1.13 3.882-2.252 5.404-2.137 2.893-5.01 5.16-8.097 6.96-3.175 1.853-6.597 3.274-10.06 4.492-1.99.7-4.1 1.304-6.223.906-1.883-.353-3.596-1.27-5.239-2.217-3.796-2.18-7.644-4.272-11.404-6.516-2.848-1.701-6.63-3.574-7.17-7.228-.195-1.332.182-2.8 1.6-3.232.956-.29 1.994-.368 2.985-.445 1.048-.08 2.098-.12 3.146-.193 2.184-.154 4.356-.538 6.522-.842 2.264-.32 4.527-.63 6.79-.952 2.203-.313 4.384-.695 6.505-1.384 1.967-.64 3.914-1.45 5.974-1.744 1.04-.148 2.117-.138 3.143.12 1 .252 1.98.72 3.04.603.923-.102 1.71-.64 2.608-.83.967-.203 1.908.308 2.704.805.833.52 1.593 1.146 2.35 1.77.26.216.647-.155.382-.384"/><path fill="#EBF0F5" d="M15.653 29.45c-.575 1.076-.67 2.413-.654 3.96l.114 10.86c.02 1.8.154 3.641.058 5.44-.08 1.433-.466 2.89-.044 4.325.254.864 1.343 1.388 2.217 1.893l2.71 1.564 5.417 3.128c3.53 2.038 7.073 4.055 10.59 6.115 1.073.627 1.126.623 2.22.024.911-.5 1.803-1.04 2.704-1.562l5.41-3.12 10.573-6.111c.517-.299 1.29-.578 1.72-.994.95-.92.655-2.566.606-3.74-.073-1.798-.036-3.6-.036-5.399V34.528c0-1.303.51-3.914-.01-5.085-.462-1.04-2.68-1.83-3.7-2.418-2.846-1.644-5.671-3.338-8.546-4.934l-6.128-3.538c-1.234-.713-2.886-2.213-4.232-1.806-1.364.414-2.814 1.625-4.044 2.336l-6.215 3.588c-2.863 1.65-5.735 3.5-8.708 4.933-.99.477-1.622 1.098-2.022 1.847"/><path fill="#EBF0F5" d="M37.375 41.218c1.859 2.332 4.284 6.415 5.957 8.88a2.06 2.06 0 0 0 2.807.569 125 125 0 0 0 5.321-3.6c4.21-3.015 8.22-6.286 12.226-9.555.499-.406 1.659-1.544 1.712-2.179.058-.686-.47-1.27-.96-1.76l-4.447-4.445m-43.396-.845c-1.606 1.486-4.515 5.148-5.715 6.979-.178.272-.355.555-.416.874-.198 1.04.845 1.857 1.728 2.447 5.785 3.868 10.72 9.496 17.389 11.484.264.08.545.15.812.08.324-.08.56-.35.78-.604 1.626-1.9 4.58-5.28 6.205-7.182"/><path fill="#EBF0F5" d="M37.788 16.768c-2.5-.934-6.125-2.246-8.706-2.932-.553-.147-1.12-.29-1.69-.24-.8.075-1.514.527-2.19.967-1.364.887-2.73 1.775-4.056 2.72-1.3.928-2.565 1.91-3.928 2.742-1.134.693-2.33 1.28-3.476 1.951-1.334.785-3.981 2.039-4.467 3.632-.393 1.29 1.2 1.408 2.103 1.76 1.91.745 3.816 1.52 5.768 2.151"/><path fill="#EBF0F5" d="M37.789 15.897c1.111-1.368 2.654-2.32 3.981-3.48.294-.256 1.52-.52 1.898-.615.516-.128 1.05.085 1.532.311 1.88.88 3.631 2.008 5.376 3.132l12.352 7.958c.64.413 1.295.837 1.909 1.304a1.382 1.382 0 0 1-.139 2.296c-1.994 1.159-4.672 2.64-6.245 2.97 0 0-24.448-9.22-20.664-13.876"/><path fill="#EBF0F5" d="M36.183 41.906a2.15 2.15 0 0 0 1.63.422q.311-.048.589-.197c6.552-3.447 14.745-8.463 20.831-12.679l.012-.012c-.465-1.04-2.68-1.826-3.7-2.415-2.846-1.644-5.671-3.338-8.546-4.934l-6.128-3.538c-1.234-.713-2.886-2.213-4.232-1.806-1.364.414-2.814 1.625-4.044 2.336L26.38 22.67c-2.86 1.65-5.732 3.5-8.705 4.933-.744.359-1.287.8-1.68 1.315 6.813 3.522 14.021 8.65 20.188 12.987"/><path fill="#969CA3" d="m47.115 37.212-5.464-3.154c-1.234-.713-2.886-2.214-4.232-1.806-1.364.415-2.814 1.625-4.044 2.335l-4.206 2.428c2.428 1.659 4.789 3.326 7.013 4.89a2.15 2.15 0 0 0 1.63.423q.312-.048.59-.197c2.712-1.427 5.704-3.122 8.713-4.919"/><path fill="#fff" d="M36.4 18.656c-.314 2.31-1.223 4.58-2.207 6.677a58 58 0 0 1-3.743 6.689c-.7 1.086-1.45 2.138-2.155 3.22-.21.32.298.73.542.418 1.502-1.92 2.794-4.036 4-6.15 1.271-2.232 2.42-4.551 3.246-6.987a19.5 19.5 0 0 0 .864-3.793c.039-.308-.505-.384-.546-.075"/><path fill="#fff" d="M36.459 18.441c.667 5.836 1.155 11.693 1.396 17.563.065 1.577.095 3.154.128 4.732.01.428.663.43.665 0 .027-5.885-.387-11.81-1.011-17.66a106 106 0 0 0-.61-4.712c-.048-.32-.605-.248-.569.08z"/><path fill="#fff" d="M36.671 18.514c1.787 5.006 4.226 9.809 7.09 14.283a61 61 0 0 0 2.548 3.697c.311.415 1.02.016.708-.414a81 81 0 0 1-8.035-13.6 77 77 0 0 1-1.765-4.119c-.131-.333-.671-.198-.547.151z"/><path fill="#fff" d="M36.385 19.315c-.08 2.587-.39 5.18-.766 7.74a77 77 0 0 1-1.61 8.092 54 54 0 0 1-1.19 3.977c-.156.46.547.636.72.198.941-2.415 1.55-4.975 2.056-7.52a73 73 0 0 0 1.184-8.276c.116-1.4.16-2.807.164-4.211 0-.36-.547-.36-.56 0z"/><path fill="#fff" d="M30.655 32.667q.401-.019.8.025l.217.025c.072.009-.058-.009.024 0l.05.007.137.022q.242.04.484.098.237.057.465.139l.106.04c.012 0 .05.021-.006 0l.05.022a2 2 0 0 1 .264.145c.024.016.076.058.024.014.042.035.08.091.125.121.028.018-.037-.06-.01-.014l.038.056q.049.073.091.148.088.149.16.305c.208.45.32.971.407 1.468a.285.285 0 0 0 .273.208.29.29 0 0 0 .272-.208q.081-.209.213-.39c.032-.047.016-.022.008-.012l.037-.045a2 2 0 0 1 .273-.26 3 3 0 0 1 .157-.104c.06-.036.16-.086.197-.104a2 2 0 0 1 .324-.097l.058-.01c.049-.008-.005 0 .025 0q.083-.005.165 0c.072 0-.041-.01.032 0l.098.022q.099.026.194.06l.047.019c-.039-.018.04.015 0 0l.106.049q.208.102.4.232.181.117.344.26a4 4 0 0 1 .432.431c.011.014.073.094.035.044q.062.084.117.173c.1.172.392.196.487 0q.195-.407.45-.78a4.3 4.3 0 0 1 .702-.798l.09-.08.036-.028.025-.02q.171-.133.359-.24.393-.22.83-.331.52-.17 1.064-.23.19-.015.38 0c.064.006-.008-.006-.01 0a3 3 0 0 1 .18.033q.314.07.617.173.169.055.335.117l.16.063.08.032.046.02c.05.02-.017-.008.013.005q.354.146.686.339l.135.084.068.047c.026.02.058.047.011.007l.094.08.041.045c-.039-.057.04.04 0 0a.29.29 0 0 0 .387.102.285.285 0 0 0 .101-.387c-.24-.346-.673-.549-1.044-.72a8.5 8.5 0 0 0-1.44-.518q-.274-.075-.56-.09c-.4.002-.8.06-1.184.172q-.541.13-1.05.355a3.7 3.7 0 0 0-.8.535c-.549.47-.971 1.086-1.285 1.733h.487a3 3 0 0 0-.62-.72 4.2 4.2 0 0 0-.879-.61c-.282-.142-.61-.27-.932-.248a2.1 2.1 0 0 0-1.068.39c-.368.262-.647.63-.8 1.054h.545a6.7 6.7 0 0 0-.38-1.409c-.154-.373-.34-.76-.675-1a2.8 2.8 0 0 0-.884-.382 7 7 0 0 0-1.063-.201 5.3 5.3 0 0 0-.969-.044.29.29 0 0 0-.282.282.285.285 0 0 0 .282.282zm2.431-4.062q.654.029 1.285.204c.567.173.696.785.874 1.3a.383.383 0 0 0 .69.09c.361-.572 1.111-.553 1.461.018.103.168.372.277.547.144 1.027-.777 2.43-1.833 3.766-1.128.458.24.866-.454.407-.696-1.64-.86-3.273.145-4.576 1.133l.547.144a1.64 1.64 0 0 0-2.805 0l.69.09c-.224-.652-.456-1.43-1.16-1.692-.537-.199-1.16-.23-1.726-.21-.388.014-.384.575 0 .6zm1.673-3.898c.183.142.368.192.579.276.33.133.474.456.61.767a.3.3 0 0 0 .408.107c.251-.177.574-.266.83-.046a.307.307 0 0 0 .503-.132c.107-.303.594-.416.868-.447.468-.052.921.067 1.26.404.26.261.658-.138.405-.405-.476-.5-1.158-.69-1.832-.585-.525.08-1.096.34-1.28.873l.503-.133c-.456-.391-1.066-.393-1.556-.045l.408.107c-.16-.358-.358-.72-.71-.925-.205-.117-.449-.135-.64-.28-.263-.203-.623.258-.357.464"/><path fill="#969CA3" d="M43.303 24.982c-.08-.1-.037-.358-.03-.471q.005-.128.024-.254.014-.087.034-.172.038-.128-.035.02l-.264.11h.067l-.265-.108c.085.088.06.443.062.56a3 3 0 0 1-.055.588l.726-.095c.03.066-.019.059.032.015.05-.043.08-.08.12-.122.041-.042.264-.166.274-.187.016-.037-.068-.067-.069-.066.02 0-.066.063-.055.059a.8.8 0 0 1-.378.039l.296.52a.196.196 0 0 1 .227-.144c.54.12.771-.714.23-.83-.56-.123-1.12.182-1.273.75-.066.252.13.55.408.534.439-.025.912-.037 1.19-.436.24-.347.23-.868-.16-1.109-.39-.24-.832-.073-1.157.209-.363.32-.589.697-.372 1.17.139.3.669.232.727-.095.08-.47.236-2.146-.625-1.99-.4.075-.41.595-.425.92-.018.37.014.769.291 1.04.303.296.704-.138.454-.454zm-10.845-.697c-.207-.225-.586-.286-.81-.046a.498.498 0 0 0 .513.823.5.5 0 0 0 .226-.167.52.52 0 0 0 .07-.488.54.54 0 0 0-.355-.366.433.433 0 0 0-.528.573q.03.076.088.133a.42.42 0 0 0 .514.048.4.4 0 0 0 .17-.23v-.01l-.106.181.006-.005-.181.105h.009l-.11.015h.01l-.11-.015.012.004-.098-.041.024.012-.084-.064a.1.1 0 0 1 .02.02l-.064-.084.022.043-.042-.098a.3.3 0 0 1 .02.067l-.015-.11a.1.1 0 0 1 0 .033l.021-.111-.004.015.042-.098a.1.1 0 0 1-.016.027l.064-.08-.01.01.08-.065-.012.008.098-.042-.024.006.109-.014h-.026l.108.014-.026-.008.098.042-.024-.014.08.064-.02-.019.064.08-.014-.023.041.095-.004-.013.014.107a.1.1 0 0 1 0-.034l-.014.107a.1.1 0 0 1 .01-.032l-.04.094a.1.1 0 0 1 .018-.029l-.061.08.022-.026q-.086.06-.035.03l-.09.04a.2.2 0 0 1 .055-.014l-.098.012h.04l-.096-.013c.017 0 .033.009.05.011.037 0-.075-.037-.016-.007a.339.339 0 0 0 .41-.531zm.096-1.667c.488 0 .488-.758 0-.758-.49 0-.49.758 0 .758"/><path fill="#969CA3" d="M31.94 24.319a1.4 1.4 0 0 0-.854-.27.39.39 0 0 0-.381.38c-.012.305.229.537.512.6a.85.85 0 0 0 .444-.036c.154-.05.337-.084.445-.213.148-.177.147-.452-.074-.577s-.376-.045-.58.032l-.096.032c.037-.012-.005.016-.018 0 .007.008.053.016.067.026a.25.25 0 0 1 .061.135l-.38.381c.179-.02.36.003.528.067a.324.324 0 0 0 .327-.56z"/><path fill="#969CA3" d="M32.07 24.275q-.025-.052-.007-.021l-.019-.065c-.005-.021-.017-.065-.023-.098 0-.006-.02-.116-.007-.037-.01-.066-.015-.133-.03-.198l-.464.467q.06.018-.016-.013l.047.026q-.061-.052-.016-.01-.045-.064-.01-.013a.377.377 0 0 0 .65-.38.68.68 0 0 0-.453-.341.39.39 0 0 0-.37.097.37.37 0 0 0-.097.369c.075.19.2.344.299.52a.304.304 0 0 0 .412.109.31.31 0 0 0 .108-.412zm-3.723 5.411c.015.027 0 .049 0 .074 0 .026-.006.012.01-.015a.12.12 0 0 1-.122.066l-.308-.308-.054.605c-.02.227.221.4.426.37.244-.034.343-.247.313-.47l-.07-.505c-.024-.182-.179-.372-.39-.297-.314.11-.5.473-.314.777.198.32.696.033.508-.297z"/><path fill="#fff" d="M22.831 29.467c-.27-.358-.407-.83-.097-1.218.264-.33.868-.413 1.172-.087.179.193.582.115.629-.166.124-.758.672-1.435 1.465-1.551.77-.113 1.568.389 1.84 1.107.17.449.898.255.727-.2-.4-1.053-1.459-1.799-2.607-1.665-1.148.135-2.027 1.083-2.164 2.21l.567-.326c-.665-.392-1.533-.417-2.066.223-.46.553-.44 1.51.131 1.984.205.17.594-.061.404-.311"/><path fill="#969CA3" d="M37.34 48.1c-.063 2.932-.166 5.864-.226 8.795s-.193 5.872-.106 8.796c.014.492.734.489.76 0 .16-2.921.099-5.87.11-8.796s-.02-5.863-.011-8.795c0-.339-.52-.338-.527 0m.56-5.565a109 109 0 0 1 3.26 4.668q.804 1.224 1.576 2.464c.357.573.729 1.17 1.28 1.575.647.474 1.383.469 2.107.174q1.142-.486 2.184-1.156c1.495-.93 2.88-2.035 4.248-3.138a247 247 0 0 0 8.671-7.306 38 38 0 0 1 1.974-1.653c.62-.48 1.243-.96 1.766-1.546.408-.46.8-.96.759-1.61-.036-.579-.338-1.1-.68-1.551-.413-.55-.911-1.03-1.417-1.492-.64-.587-1.248-1.206-1.893-1.787-.625-.56-1.341-1.111-2.192-1.257-.945-.16-1.731.4-2.65.39-.449-.006-.447.678 0 .696.76.029 1.44-.387 2.188-.385.747.003 1.392.458 1.93.92.595.514 1.145 1.082 1.717 1.622.383.362.778.71 1.144 1.09.383.4.783.84.99 1.36.232.583-.004.971-.392 1.415-.972 1.113-2.28 1.904-3.384 2.88a237 237 0 0 1-8.068 6.817c-1.24.999-2.448 2.038-3.734 2.978q-.968.714-2.004 1.324-.512.3-1.045.56c-.37.18-.783.388-1.207.341-.745-.08-1.234-.847-1.6-1.421a106 106 0 0 0-5.051-7.25c-.209-.276-.683-.01-.472.275zM27.703 13.633c2.49.565 4.684 1.973 7.156 2.593.363.091.825.11 1.15.306.188.11.093.148-.08.244-.188.108-.4.183-.591.279a445 445 0 0 0-3.658 1.83 52 52 0 0 0-3.513 1.94c-1.169.713-2.285 1.51-3.42 2.274-1.107.746-2.229 1.468-3.393 2.12-1.104.618-2.232 1.192-3.3 1.868-2.148 1.36-3.71 3.25-5.313 5.188-.754.91-1.646 1.781-2.16 2.86-.474.996-.654 2.21.337 2.937.493.362 1.04.661 1.543 1.006q.801.55 1.577 1.133c1.07.804 2.11 1.648 3.156 2.485 2.03 1.627 4.11 3.178 6.308 4.57a39 39 0 0 0 3.424 1.954q.873.436 1.77.816c.469.196.96.364 1.48.328.922-.063 1.552-.72 2.085-1.41.804-1.04 1.554-2.132 2.296-3.22q.59-.866 1.16-1.744c.271-.417-.395-.8-.665-.389a100 100 0 0 1-2.32 3.397c-.367.514-.731 1.032-1.12 1.53-.26.333-.548.684-.923.894s-.783.2-1.183.087c-.62-.173-1.218-.487-1.796-.766a37 37 0 0 1-3.385-1.872c-2.22-1.373-4.32-2.91-6.362-4.538-1.977-1.578-3.933-3.2-6.08-4.546-.578-.364-1.024-.61-.917-1.383.08-.587.361-1.12.69-1.605.67-.987 1.524-1.87 2.28-2.791.777-.95 1.566-1.897 2.465-2.736.916-.855 1.96-1.538 3.04-2.16 1.108-.64 2.245-1.22 3.337-1.885 1.13-.69 2.221-1.44 3.312-2.184a58 58 0 0 1 6.792-4c1.11-.56 2.24-1.084 3.338-1.668.32-.168.602-.432.56-.82s-.38-.59-.725-.71c-.4-.14-.827-.19-1.235-.298a16 16 0 0 1-1.722-.567c-1.155-.442-2.276-.969-3.44-1.389a14.5 14.5 0 0 0-1.806-.527c-.37-.08-.53.484-.16.57z"/><path fill="#fff" d="m16.372 53.192.267-3.84 4.143 2.017c.12.059.25.127.302.249.031.097.036.2.014.3a136 136 0 0 1-.424 2.86c-.023.149-.061.32-.193.39-.147.08-.327 0-.475-.08l-2.816-1.562"/><path fill="#969CA3" d="M16.693 53.192c.143-1.275.214-2.56.284-3.84l-.51.292c.85.48 1.74.9 2.615 1.336q.64.32 1.28.635c.228.112.334.099.32.344-.013.246-.07.506-.105.754q-.098.674-.2 1.354c-.032.21-.038.445-.102.647-.054.168.038.102-.064.02a2 2 0 0 0-.268-.148c-.847-.471-1.686-.977-2.56-1.393-.44-.209-.8.39-.385.658.538.344 1.106.64 1.664.952.468.258 1 .676 1.528.78.489.097.789-.263.875-.7.117-.595.188-1.204.276-1.804q.067-.451.13-.904c.03-.22.08-.45.006-.667-.164-.472-.8-.64-1.204-.837-1.172-.56-2.343-1.15-3.544-1.647-.221-.092-.413.134-.43.327-.107 1.28-.214 2.56-.249 3.84-.011.423.6.4.64 0zm15.333 5.489c.593.231 1.182.507 1.802.657.327.08.568-.407.24-.567-.6-.291-1.25-.463-1.882-.67-.373-.124-.514.443-.16.58m-.276 1.763c.474.188.912.443 1.372.656.424.196.76-.363.368-.63-.467-.32-1.025-.509-1.563-.667-.419-.123-.56.486-.177.64m.29 1.952c.44 0 .441-.686 0-.686-.442 0-.442.686 0 .686m18.34-47.142c3.172 2.686 6.917 4.543 10.34 6.865.86.582 1.697 1.196 2.494 1.86.376.314.746.64 1.101.975.168.16.36.335.4.575.067.376-.271.72-.525.95-.441.4-.974.704-1.498.981-1.057.56-2.222.933-3.256 1.53-.4.235-.038.862.367.627.973-.56 2.07-.918 3.07-1.433.914-.471 2.282-1.158 2.539-2.266.118-.505-.097-.971-.442-1.334-.736-.774-1.62-1.44-2.48-2.08-1.76-1.306-3.65-2.421-5.533-3.535-2.135-1.261-4.275-2.539-6.221-4.084-.256-.203-.623.148-.366.366zm-8.78-1.996a12.7 12.7 0 0 1 2.726-.845c.298-.06.225-.525-.07-.522a5.7 5.7 0 0 0-2.93.897c-.3.195-.04.61.274.47m-3.34 4.953c5.205 3.56 10.629 6.837 15.44 10.938.34.29.855.692.88 1.182.018.462-.464.874-.758 1.18a19 19 0 0 1-2.381 2.062c-2.001 1.49-4.148 2.775-6.296 4.023-2.337 1.36-4.733 2.64-6.992 4.134-.466.307-.04 1.054.44.754 4.353-2.727 9.017-4.994 13.144-8.07.894-.668 1.77-1.373 2.55-2.175.733-.754 1.52-1.672.852-2.737-.293-.47-.735-.824-1.161-1.166-.593-.476-1.17-.972-1.768-1.44-1.28-1.005-2.62-1.938-3.977-2.84a543 543 0 0 0-9.708-6.3c-.289-.183-.543.266-.266.455"/><path fill="#969CA3" d="M19.227 29.747c2.296 1.76 4.611 3.497 6.899 5.27q1.74 1.348 3.45 2.736c1.16.949 2.274 1.954 3.464 2.867 1.466 1.12 3.127 2.16 4.96 2.521.543.107.778-.692.231-.84-3.147-.848-5.458-3.065-7.933-5.056-2.303-1.858-4.698-3.604-7.086-5.349a298 298 0 0 0-3.697-2.64c-.304-.216-.572.275-.288.492zM9.16 26.058c.17.597.662 1.098 1.289 1.187.37.054.545-.486.16-.578-.405-.096-.758-.359-.893-.762-.117-.349-.658-.207-.555.153zM22.178 9.23a3.14 3.14 0 0 0 1.084 1.711c.185.146.45-.103.266-.266a3.17 3.17 0 0 1-.994-1.542c-.064-.229-.415-.133-.356.098m5.474-1.616a5.7 5.7 0 0 0 .165 1.778c.061.226.395.13.35-.096a7 7 0 0 1-.15-1.68c.01-.24-.352-.234-.365 0zm5.845.272q-.163.863-.316 1.73c-.035.209.283.302.32.088.113-.575.215-1.152.32-1.729.038-.212-.286-.304-.326-.09zm-15.49 4.583 1.252.797c.2.126.385-.192.184-.316l-1.26-.78c-.191-.118-.363.18-.176.3m23.038-3.845c-.267.416-.535.831-.79 1.255-.102.169.154.312.262.153.278-.41.542-.827.808-1.244.112-.178-.168-.34-.28-.16zm23.235 36.49c-.583-.818-.895-1.968-.567-2.95.072-.217.201-.48.416-.592.32-.16.56.14.716.371q.453.696.822 1.44c.068.131.294.14.358 0 .228-.49.515-1.157 1.108-1.274.29-.058.659.023.757.343.107.346-.147.72-.32 1.002-.135.219.16.406.336.26.694-.575 1.76-.793 2.459-.105.61.599.46 1.821-.515 1.93-.272.03-.285.452 0 .437.756-.04 1.572.132 2.104.71.501.545.625 1.45.128 2.04-.181.214.128.525.31.31.586-.694.573-1.712.049-2.442-.584-.815-1.63-1.108-2.59-1.055v.437c1.19-.135 1.703-1.53 1.002-2.462-.816-1.088-2.303-.888-3.25-.104l.337.26c.24-.389.495-.86.362-1.33a.95.95 0 0 0-.783-.655c-.969-.16-1.506.736-1.852 1.489h.358c-.37-.705-1.444-2.948-2.419-1.6-.761 1.053-.306 2.75.39 3.706.123.169.408.007.285-.166m4.085 4.792c.016-.305.439-.57.7-.358a.18.18 0 0 0 .264-.023.18.18 0 0 0-.045-.261c-.468-.36-1.28.041-1.229.64a.156.156 0 0 0 .31 0zM11 47.98c-.469-1.208-1.707-2.464-3.1-2.4-.54.019-1.1.31-1.127.908-.021.427.185.88.344 1.264q.26.63.617 1.212l.29-.29c-.903-.4-2.064-.026-2.454.92-.39.945.172 2.034 1.096 2.386l-.097-.366c-.339.292-.928.052-1.332.098a1.76 1.76 0 0 0-.867.354 2.35 2.35 0 0 0-.9 1.805c-.028 1.616 1.66 2.597 3.103 2.618l-.062-.454c-.868.262-1.41 1.286-1.025 2.14.386.853 1.513 1.132 2.274.638.235-.154.022-.526-.222-.38-.536.32-1.346.156-1.622-.44-.276-.598.116-1.326.718-1.512.248-.076.204-.452-.061-.455-1.316-.013-2.934-.983-2.619-2.498.126-.594.545-1.181 1.15-1.341s1.24.205 1.775-.259c.137-.117.045-.313-.097-.367-.683-.26-1.09-1.105-.81-1.794s1.166-1.015 1.84-.72c.18.08.413-.092.291-.29a7.7 7.7 0 0 1-.833-1.791c-.107-.347-.148-.71.219-.892.233-.1.49-.13.74-.086 1.099.147 2.064 1.094 2.48 2.08.075.177.367.105.295-.08zm.534 5.622c-.621-.282-1.413-.105-1.76.515s-.094 1.43.508 1.782c.212.123.386-.188.19-.325-.386-.27-.583-.823-.365-1.26.219-.438.817-.62 1.26-.425.193.086.362-.198.167-.287m-2.326-9.838c-.56-1.41-1.12-2.824-1.69-4.23-.327-.805-.817-1.947-1.812-2.08a.674.674 0 0 0-.77.553c-.105.49.146.998.32 1.44a44 44 0 0 0 1.766 3.952l.182-.32c-.8.008-1.732-.52-2.476.008-.442.313-.567.996-.15 1.38l.15-.36c-.64.005-1.238.423-1.393 1.056-.155.634.196 1.29.767 1.569.24.118.453-.24.212-.363-.908-.474-.64-1.818.414-1.828.18 0 .295-.24.154-.37-.187-.17-.16-.433-.008-.621.181-.223.494-.26.763-.252.53.014 1.027.228 1.564.213a.213.213 0 0 0 .181-.32 34 34 0 0 1-1.462-3.136c-.195-.48-.426-.966-.56-1.465-.048-.185-.104-.454.01-.624.197-.294.65-.01.847.148.73.592 1.017 1.704 1.36 2.537q.656 1.6 1.32 3.2c.08.188.387.108.31-.086"/><path fill="#969CA3" d="M68.153 43.81c1.546-2.235 3.115-4.456 4.62-6.72.119-.177-.16-.335-.283-.165-1.565 2.22-3.07 4.485-4.596 6.734-.11.16.15.309.259.15z"/><path fill="#969CA3" d="M71.171 40.02a.36.36 0 0 1 .487.125c.139.203.022.435-.16.56-.377.267-.815-.029-1.046-.342-.134-.181-.43-.022-.31.181.384.64 1.4.95 1.83.167.32-.587-.353-1.337-.946-.944-.152.102-.015.344.146.25zm-.284-.768a1.64 1.64 0 0 0-.45-1.533.19.19 0 0 0-.262 0c-.48.523-.394 1.38.195 1.782.175.12.393-.16.228-.295-.358-.3-.47-.845-.16-1.225h-.262a1.24 1.24 0 0 1 .414 1.188c-.037.193.255.278.298.08zm1.598-.993a.455.455 0 0 1 .474.276v-.171a.166.166 0 0 1-.21.04c-.206-.117-.39.199-.185.315a.51.51 0 0 0 .474.02c.135-.063.29-.217.216-.375-.142-.3-.497-.438-.81-.4-.16.021-.126.305.04.29zM67.853 68.4c-.712-.623-1.815-1.635-1.144-2.659.284-.433.85-.663 1.232-.201.295.358.32.89.33 1.331.007.28.435.281.434 0 0-.653.653-1.28 1.325-1.061.572.186.846.855.655 1.4-.053.151.117.329.27.27.743-.28 1.76-.57 2.466-.044.48.355.745 1.256.176 1.652-.23.16-.01.544.223.381.72-.501.652-1.512.126-2.138-.766-.91-2.14-.64-3.108-.275l.27.27c.283-.8-.215-1.771-1.06-1.964-.916-.21-1.786.61-1.778 1.51h.436c-.028-.598-.099-1.324-.584-1.743-.441-.38-1.049-.32-1.47.056a1.63 1.63 0 0 0-.465 1.68c.228.747.847 1.29 1.422 1.778.168.141.412-.096.24-.24zm-2.888.124a1.4 1.4 0 0 0-1.12 1.353c0 .219.328.217.337 0a1.104 1.104 0 0 1 .87-1.03c.21-.045.12-.365-.09-.32z"/></svg>