@knocklabs/react 0.3.0-rc.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -5
- package/dist/cjs/index.css +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/modules/core/utils.js +2 -0
- package/dist/cjs/modules/core/utils.js.map +1 -0
- package/dist/cjs/modules/feed/components/NotificationCell/NotificationCell.js.map +1 -1
- package/dist/cjs/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.js +2 -0
- package/dist/cjs/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.js.map +1 -0
- package/dist/cjs/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.js +2 -0
- package/dist/cjs/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.js.map +1 -0
- package/dist/cjs/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.js +2 -0
- package/dist/cjs/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.js.map +1 -0
- package/dist/cjs/modules/slack/components/SlackAuthButton/SlackAuthButton.js +1 -1
- package/dist/cjs/modules/slack/components/SlackAuthButton/SlackAuthButton.js.map +1 -1
- package/dist/esm/index.mjs +38 -43
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/modules/core/utils.mjs +8 -0
- package/dist/esm/modules/core/utils.mjs.map +1 -0
- package/dist/esm/modules/feed/components/NotificationCell/NotificationCell.mjs.map +1 -1
- package/dist/esm/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.mjs +43 -0
- package/dist/esm/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.mjs.map +1 -0
- package/dist/esm/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.mjs +17 -0
- package/dist/esm/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.mjs.map +1 -0
- package/dist/esm/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.mjs +15 -0
- package/dist/esm/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.mjs.map +1 -0
- package/dist/esm/modules/slack/components/SlackAuthButton/SlackAuthButton.mjs +24 -26
- package/dist/esm/modules/slack/components/SlackAuthButton/SlackAuthButton.mjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/types/App.d.ts +0 -1
- package/dist/types/App.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/main.d.ts +0 -1
- package/dist/types/modules/core/components/Button/Button.d.ts +0 -1
- package/dist/types/modules/core/components/Button/ButtonGroup.d.ts +0 -1
- package/dist/types/modules/core/components/Button/ButtonSpinner.d.ts +0 -1
- package/dist/types/modules/core/components/Icons/Bell.d.ts +0 -1
- package/dist/types/modules/core/components/Icons/CheckmarkCircle.d.ts +0 -1
- package/dist/types/modules/core/components/Icons/ChevronDown.d.ts +0 -1
- package/dist/types/modules/core/components/Icons/CloseCircle.d.ts +0 -1
- package/dist/types/modules/core/components/Spinner/Spinner.d.ts +0 -1
- package/dist/types/modules/core/hooks/useOnBottomScroll.d.ts +0 -1
- package/dist/types/modules/core/hooks/useOutsideClick.d.ts +0 -1
- package/dist/types/modules/core/utils.d.ts +2 -0
- package/dist/types/modules/core/utils.d.ts.map +1 -0
- package/dist/types/modules/feed/components/EmptyFeed/EmptyFeed.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationCell/ArchiveButton.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationCell/Avatar.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationCell/NotificationCell.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationFeed/Dropdown.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationFeed/MarkAsRead.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationFeed/NotificationFeed.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationFeed/NotificationFeedHeader.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.d.ts +0 -1
- package/dist/types/modules/feed/components/NotificationIconButton/NotificationIconButton.d.ts +0 -1
- package/dist/types/modules/feed/components/UnseenBadge/UnseenBadge.d.ts +0 -1
- package/dist/types/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.d.ts +8 -0
- package/dist/types/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.d.ts.map +1 -0
- package/dist/types/modules/ms-teams/components/MsTeamsAuthButton/index.d.ts +2 -0
- package/dist/types/modules/ms-teams/components/MsTeamsAuthButton/index.d.ts.map +1 -0
- package/dist/types/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.d.ts +6 -0
- package/dist/types/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.d.ts.map +1 -0
- package/dist/types/modules/ms-teams/components/MsTeamsAuthContainer/index.d.ts +2 -0
- package/dist/types/modules/ms-teams/components/MsTeamsAuthContainer/index.d.ts.map +1 -0
- package/dist/types/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.d.ts +7 -0
- package/dist/types/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.d.ts.map +1 -0
- package/dist/types/modules/ms-teams/components/MsTeamsIcon/index.d.ts +2 -0
- package/dist/types/modules/ms-teams/components/MsTeamsIcon/index.d.ts.map +1 -0
- package/dist/types/modules/ms-teams/index.d.ts +3 -0
- package/dist/types/modules/ms-teams/index.d.ts.map +1 -0
- package/dist/types/modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackAuthButton/SlackAuthButton.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackAuthButton/SlackAuthButton.d.ts.map +1 -1
- package/dist/types/modules/slack/components/SlackAuthContainer/SlackAuthContainer.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/SlackChannelListBox.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/SlackChannelOption.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTag.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/SlackConnectedChannelTagList.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/SlackConnectionError.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/icons/CheckmarkIcon.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/icons/CloseIcon.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/icons/HashtagIcon.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/icons/InfoIcon.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/icons/LockIcon.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackChannelCombobox/icons/SearchIcon.d.ts +0 -1
- package/dist/types/modules/slack/components/SlackIcon/SlackIcon.d.ts +0 -1
- package/package.json +14 -18
- package/dist/cjs/modules/in-app-messages/components/Banner/Banner.js +0 -2
- package/dist/cjs/modules/in-app-messages/components/Banner/Banner.js.map +0 -1
- package/dist/cjs/modules/in-app-messages/components/Card/Card.js +0 -2
- package/dist/cjs/modules/in-app-messages/components/Card/Card.js.map +0 -1
- package/dist/cjs/modules/in-app-messages/components/Modal/Modal.js +0 -2
- package/dist/cjs/modules/in-app-messages/components/Modal/Modal.js.map +0 -1
- package/dist/esm/modules/in-app-messages/components/Banner/Banner.mjs +0 -97
- package/dist/esm/modules/in-app-messages/components/Banner/Banner.mjs.map +0 -1
- package/dist/esm/modules/in-app-messages/components/Card/Card.mjs +0 -109
- package/dist/esm/modules/in-app-messages/components/Card/Card.mjs.map +0 -1
- package/dist/esm/modules/in-app-messages/components/Modal/Modal.mjs +0 -113
- package/dist/esm/modules/in-app-messages/components/Modal/Modal.mjs.map +0 -1
- package/dist/types/modules/in-app-messages/components/Banner/Banner.d.ts +0 -52
- package/dist/types/modules/in-app-messages/components/Banner/Banner.d.ts.map +0 -1
- package/dist/types/modules/in-app-messages/components/Banner/index.d.ts +0 -2
- package/dist/types/modules/in-app-messages/components/Banner/index.d.ts.map +0 -1
- package/dist/types/modules/in-app-messages/components/Card/Card.d.ts +0 -57
- package/dist/types/modules/in-app-messages/components/Card/Card.d.ts.map +0 -1
- package/dist/types/modules/in-app-messages/components/Card/index.d.ts +0 -2
- package/dist/types/modules/in-app-messages/components/Card/index.d.ts.map +0 -1
- package/dist/types/modules/in-app-messages/components/Modal/Modal.d.ts +0 -70
- package/dist/types/modules/in-app-messages/components/Modal/Modal.d.ts.map +0 -1
- package/dist/types/modules/in-app-messages/components/Modal/index.d.ts +0 -2
- package/dist/types/modules/in-app-messages/components/Modal/index.d.ts.map +0 -1
- package/dist/types/modules/in-app-messages/components/index.d.ts +0 -4
- package/dist/types/modules/in-app-messages/components/index.d.ts.map +0 -1
- package/dist/types/modules/in-app-messages/components/types.d.ts +0 -5
- package/dist/types/modules/in-app-messages/components/types.d.ts.map +0 -1
- package/dist/types/modules/in-app-messages/index.d.ts +0 -2
- package/dist/types/modules/in-app-messages/index.d.ts.map +0 -1
@@ -4,7 +4,6 @@ import { GenericData } from '@knocklabs/types';
|
|
4
4
|
import { default as React, ReactNode } from 'react';
|
5
5
|
import { NotificationCellProps } from '../NotificationCell';
|
6
6
|
import { NotificationFeedHeaderProps } from './NotificationFeedHeader';
|
7
|
-
|
8
7
|
export type RenderItemProps<T = GenericData> = {
|
9
8
|
item: FeedItem<T>;
|
10
9
|
onItemClick?: NotificationCellProps["onItemClick"];
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { FeedItem } from '@knocklabs/client';
|
2
2
|
import { FilterStatus } from '@knocklabs/react-core';
|
3
3
|
import { default as React, SetStateAction } from 'react';
|
4
|
-
|
5
4
|
export type NotificationFeedHeaderProps = {
|
6
5
|
filterStatus: FilterStatus;
|
7
6
|
setFilterStatus: React.Dispatch<SetStateAction<FilterStatus>>;
|
package/dist/types/modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.d.ts
CHANGED
@@ -2,7 +2,6 @@ import { Feed, FeedStoreState } from '@knocklabs/client';
|
|
2
2
|
import { Placement } from '@popperjs/core';
|
3
3
|
import { default as React, RefObject } from 'react';
|
4
4
|
import { NotificationFeedProps } from '../NotificationFeed';
|
5
|
-
|
6
5
|
type OnOpenOptions = {
|
7
6
|
store: FeedStoreState;
|
8
7
|
feedClient: Feed;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { FunctionComponent } from 'react';
|
2
|
+
export interface MsTeamsAuthButtonProps {
|
3
|
+
msTeamsBotId: string;
|
4
|
+
redirectUrl?: string;
|
5
|
+
onAuthenticationComplete?: (authenticationResp: string) => void;
|
6
|
+
}
|
7
|
+
export declare const MsTeamsAuthButton: FunctionComponent<MsTeamsAuthButtonProps>;
|
8
|
+
//# sourceMappingURL=MsTeamsAuthButton.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MsTeamsAuthButton.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/ms-teams/components/MsTeamsAuthButton/MsTeamsAuthButton.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAa,MAAM,OAAO,CAAC;AAGrD,OAAO,iBAAiB,CAAC;AAGzB,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB,CAAC,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE;AAED,eAAO,MAAM,iBAAiB,EAAE,iBAAiB,CAAC,sBAAsB,CAkHvE,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/ms-teams/components/MsTeamsAuthButton/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { FunctionComponent } from 'react';
|
2
|
+
export interface MsTeamsAuthContainerProps {
|
3
|
+
actionButton: React.ReactElement;
|
4
|
+
}
|
5
|
+
export declare const MsTeamsAuthContainer: FunctionComponent<MsTeamsAuthContainerProps>;
|
6
|
+
//# sourceMappingURL=MsTeamsAuthContainer.d.ts.map
|
package/dist/types/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MsTeamsAuthContainer.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/ms-teams/components/MsTeamsAuthContainer/MsTeamsAuthContainer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,iBAAiB,CAAC;AAGzB,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;CAClC;AAED,eAAO,MAAM,oBAAoB,EAAE,iBAAiB,CAClD,yBAAyB,CAgB1B,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/ms-teams/components/MsTeamsAuthContainer/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"MsTeamsIcon.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/ms-teams/components/MsTeamsIcon/MsTeamsIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,WAAW,EAAE,iBAAiB,CAAC,gBAAgB,CA4E3D,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/ms-teams/components/MsTeamsIcon/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/ms-teams/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SlackAuthButton.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/slack/components/SlackAuthButton/SlackAuthButton.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"SlackAuthButton.d.ts","sourceRoot":"","sources":["../../../../../../src/modules/slack/components/SlackAuthButton/SlackAuthButton.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,iBAAiB,CAAC;AAGzB,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB,CAAC,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,oBAAoB,CAsHnE,CAAC"}
|
package/package.json
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
"name": "@knocklabs/react",
|
3
3
|
"description": "A set of React components to build notification experiences powered by Knock",
|
4
4
|
"author": "@knocklabs",
|
5
|
-
"version": "0.3.0
|
5
|
+
"version": "0.3.0",
|
6
6
|
"license": "MIT",
|
7
7
|
"main": "dist/cjs/index.js",
|
8
8
|
"module": "dist/esm/index.mjs",
|
@@ -33,7 +33,6 @@
|
|
33
33
|
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
34
34
|
"format": "prettier \"src/**/*.{js,ts,tsx}\" --write",
|
35
35
|
"format:check": "prettier \"src/**/*.{js,ts,tsx}\" --check",
|
36
|
-
"gen:tokens": "node ./scripts/generateCssTokens.js",
|
37
36
|
"test": "vitest run",
|
38
37
|
"test:watch": "vitest",
|
39
38
|
"type:check": "tsc --noEmit",
|
@@ -52,14 +51,11 @@
|
|
52
51
|
"react-dom": "^16.11.0 || ^17.0.0 || ^18.0.0"
|
53
52
|
},
|
54
53
|
"dependencies": {
|
55
|
-
"@knocklabs/client": "^0.11.0
|
56
|
-
"@knocklabs/react-core": "^0.3.0
|
54
|
+
"@knocklabs/client": "^0.11.0",
|
55
|
+
"@knocklabs/react-core": "^0.3.0",
|
57
56
|
"@popperjs/core": "^2.11.8",
|
58
|
-
"@radix-ui/react-
|
59
|
-
"@radix-ui/react-
|
60
|
-
"@radix-ui/react-visually-hidden": "^1.0.3",
|
61
|
-
"@telegraph/tokens": "^0.0.13",
|
62
|
-
"clsx": "^2.1.1",
|
57
|
+
"@radix-ui/react-popover": "1.0.7",
|
58
|
+
"@radix-ui/react-visually-hidden": "1.0.3",
|
63
59
|
"lodash.debounce": "^4.0.8",
|
64
60
|
"react-popper": "^2.3.0",
|
65
61
|
"react-popper-tooltip": "^4.4.2"
|
@@ -69,22 +65,22 @@
|
|
69
65
|
"@types/lodash.debounce": "^4.0.9",
|
70
66
|
"@types/react": "^18.3.6",
|
71
67
|
"@types/react-dom": "^18.2.15",
|
72
|
-
"@typescript-eslint/eslint-plugin": "^
|
73
|
-
"@typescript-eslint/parser": "^8.
|
74
|
-
"@vitejs/plugin-react": "^4.3.
|
68
|
+
"@typescript-eslint/eslint-plugin": "^8.19.1",
|
69
|
+
"@typescript-eslint/parser": "^8.16.0",
|
70
|
+
"@vitejs/plugin-react": "^4.3.4",
|
75
71
|
"babel-plugin-react-require": "^4.0.3",
|
76
72
|
"eslint": "^8.56.0",
|
77
|
-
"eslint-plugin-react-hooks": "^
|
78
|
-
"eslint-plugin-react-refresh": "^0.4.
|
79
|
-
"jsdom": "^
|
73
|
+
"eslint-plugin-react-hooks": "^5.0.0",
|
74
|
+
"eslint-plugin-react-refresh": "^0.4.14",
|
75
|
+
"jsdom": "^25.0.1",
|
80
76
|
"react": "^18.2.0",
|
81
77
|
"react-dom": "^18.2.0",
|
82
78
|
"rimraf": "^6.0.1",
|
83
79
|
"rollup-plugin-execute": "^1.1.1",
|
84
|
-
"typescript": "^5.6.
|
80
|
+
"typescript": "^5.6.3",
|
85
81
|
"vite": "^5.0.0",
|
86
|
-
"vite-plugin-dts": "^3.
|
82
|
+
"vite-plugin-dts": "^4.3.0",
|
87
83
|
"vite-plugin-no-bundle": "^4.0.0",
|
88
|
-
"vitest": "^2.
|
84
|
+
"vitest": "^2.1.4"
|
89
85
|
}
|
90
86
|
}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("@knocklabs/react-core"),w=require("clsx"),p=require("react");;/* empty css */const b=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},r=b(w),a=b(p),g="banner",s=({children:e,className:n,...t})=>a.default.createElement("div",{className:r.default("knock-iam-banner",n),...t},e);s.displayName="BannerView.Root";const c=({children:e,className:n,...t})=>a.default.createElement("div",{className:r.default("knock-iam-banner__message",n),...t},e);c.displayName="BannerView.Content";const i=({title:e,className:n,...t})=>a.default.createElement("div",{className:r.default("knock-iam-banner__title",n),...t},e);i.displayName="BannerView.Title";const o=({body:e,className:n,...t})=>a.default.createElement("div",{className:r.default("knock-iam-banner__body",n),...t},e);o.displayName="BannerView.Body";const d=({children:e,className:n,...t})=>a.default.createElement("div",{className:r.default("knock-iam-banner__actions",n),...t},e);d.displayName="BannerView.Actions";const u=({text:e,action:n,className:t,...l})=>a.default.createElement("a",{href:n,className:r.default("knock-iam-banner__action",t),...l},e);u.displayName="BannerView.PrimaryAction";const m=({text:e,action:n,className:t,...l})=>a.default.createElement("a",{href:n,className:r.default("knock-iam-banner__action knock-iam-banner__action--secondary",t),...l},e);m.displayName="BannerView.SecondaryAction";const f=({className:e,...n})=>a.default.createElement("button",{className:r.default("knock-iam-banner__close",e),...n},a.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",fill:"none"},a.default.createElement("g",{fill:"#60646C",fillRule:"evenodd",clipRule:"evenodd"},a.default.createElement("path",{d:"M14.03 3.97a.75.75 0 0 1 0 1.06l-9 9a.75.75 0 0 1-1.06-1.06l9-9a.75.75 0 0 1 1.06 0Z"}),a.default.createElement("path",{d:"M3.97 3.97a.75.75 0 0 1 1.06 0l9 9a.75.75 0 1 1-1.06 1.06l-9-9a.75.75 0 0 1 0-1.06Z"}))));f.displayName="BannerView.DismissButton";const _=({content:e,colorMode:n="light",onInteract:t,onDismiss:l})=>a.default.createElement(s,{"data-knock-color-mode":n,onClick:t},a.default.createElement(c,null,a.default.createElement(i,{title:e.title}),a.default.createElement(o,{body:e.body})),a.default.createElement(d,null,e.secondary_button&&a.default.createElement(m,{text:e.secondary_button.text,action:e.secondary_button.action}),e.primary_button&&a.default.createElement(u,{text:e.primary_button.text,action:e.primary_button.action}),e.dismissible&&a.default.createElement(f,{onClick:l})));_.displayName="BannerView.Default";const k=({filters:e})=>{const{colorMode:n}=y.useInAppMessagesChannel(),{message:t,inAppMessagesClient:l}=y.useInAppMessage(g,e);if(p.useEffect(()=>{!t||t.seen_at!==null||l.markAsSeen(t)},[t,l]),!t||t.archived_at)return null;const B=()=>{l.markAsArchived(t)},N=()=>{l.markAsInteracted(t)};return a.default.createElement(_,{content:t.content,colorMode:n,onDismiss:B,onInteract:N})};k.displayName="Banner";const E={};Object.assign(E,{Default:_,Root:s,Content:c,Title:i,Body:o,Actions:d,PrimaryAction:u,SecondaryAction:m,DismissButton:f});exports.Banner=k;exports.BannerView=E;
|
2
|
-
//# sourceMappingURL=Banner.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Banner.js","sources":["../../../../../../src/modules/in-app-messages/components/Banner/Banner.tsx"],"sourcesContent":["import {\n ColorMode,\n UseInAppMessageOptions,\n useInAppMessage,\n useInAppMessagesChannel,\n} from \"@knocklabs/react-core\";\nimport clsx from \"clsx\";\nimport React, { useEffect } from \"react\";\n\nimport { ActionContent } from \"../types\";\n\nimport \"./styles.css\";\n\nconst MESSAGE_TYPE = \"banner\";\n\nexport interface BannerProps {\n filters?: UseInAppMessageOptions;\n}\n\nexport interface BannerContent {\n title: string;\n body: string;\n primary_button?: {\n text: string;\n action: string;\n };\n secondary_button?: {\n text: string;\n action: string;\n };\n dismissible?: boolean;\n}\n\nconst Root: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-banner\", className)} {...props}>\n {children}\n </div>\n );\n};\nRoot.displayName = \"BannerView.Root\";\n\nconst Content: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-banner__message\", className)} {...props}>\n {children}\n </div>\n );\n};\nContent.displayName = \"BannerView.Content\";\n\nconst Title: React.FC<\n { title: string } & React.ComponentPropsWithRef<\"div\">\n> = ({ title, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-banner__title\", className)} {...props}>\n {title}\n </div>\n );\n};\nTitle.displayName = \"BannerView.Title\";\n\nconst Body: React.FC<{ body: string } & React.ComponentPropsWithRef<\"div\">> = ({\n body,\n className,\n ...props\n}) => {\n return (\n <div className={clsx(\"knock-iam-banner__body\", className)} {...props}>\n {body}\n </div>\n );\n};\nBody.displayName = \"BannerView.Body\";\n\nconst Actions: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-banner__actions\", className)} {...props}>\n {children}\n </div>\n );\n};\nActions.displayName = \"BannerView.Actions\";\n\nconst PrimaryAction: React.FC<\n ActionContent & React.ComponentPropsWithRef<\"a\">\n> = ({ text, action, className, ...props }) => {\n return (\n <a\n href={action}\n className={clsx(\"knock-iam-banner__action\", className)}\n {...props}\n >\n {text}\n </a>\n );\n};\nPrimaryAction.displayName = \"BannerView.PrimaryAction\";\n\nconst SecondaryAction: React.FC<\n ActionContent & React.ComponentPropsWithRef<\"a\">\n> = ({ text, action, className, ...props }) => {\n return (\n <a\n href={action}\n className={clsx(\n \"knock-iam-banner__action knock-iam-banner__action--secondary\",\n className,\n )}\n {...props}\n >\n {text}\n </a>\n );\n};\nSecondaryAction.displayName = \"BannerView.SecondaryAction\";\n\nconst DismissButton: React.FC<React.ComponentPropsWithRef<\"button\">> = ({\n className,\n ...props\n}) => {\n return (\n <button className={clsx(\"knock-iam-banner__close\", className)} {...props}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n >\n <g fill=\"#60646C\" fillRule=\"evenodd\" clipRule=\"evenodd\">\n <path d=\"M14.03 3.97a.75.75 0 0 1 0 1.06l-9 9a.75.75 0 0 1-1.06-1.06l9-9a.75.75 0 0 1 1.06 0Z\" />\n <path d=\"M3.97 3.97a.75.75 0 0 1 1.06 0l9 9a.75.75 0 1 1-1.06 1.06l-9-9a.75.75 0 0 1 0-1.06Z\" />\n </g>\n </svg>\n </button>\n );\n};\nDismissButton.displayName = \"BannerView.DismissButton\";\n\nconst DefaultView: React.FC<{\n content: BannerContent;\n colorMode?: ColorMode;\n onInteract?: () => void;\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({ content, colorMode = \"light\", onInteract, onDismiss }) => {\n return (\n <Root data-knock-color-mode={colorMode} onClick={onInteract}>\n <Content>\n <Title title={content.title} />\n <Body body={content.body} />\n </Content>\n <Actions>\n {content.secondary_button && (\n <SecondaryAction\n text={content.secondary_button.text}\n action={content.secondary_button.action}\n />\n )}\n\n {content.primary_button && (\n <PrimaryAction\n text={content.primary_button.text}\n action={content.primary_button.action}\n />\n )}\n\n {content.dismissible && <DismissButton onClick={onDismiss} />}\n </Actions>\n </Root>\n );\n};\nDefaultView.displayName = \"BannerView.Default\";\n\nconst Banner: React.FC<BannerProps> = ({ filters }) => {\n const { colorMode } = useInAppMessagesChannel();\n\n const { message, inAppMessagesClient } = useInAppMessage<BannerContent>(\n MESSAGE_TYPE,\n filters,\n );\n\n // Mark the message as seen on render\n useEffect(() => {\n if (!message || message.seen_at !== null) return;\n\n inAppMessagesClient.markAsSeen(message);\n }, [message, inAppMessagesClient]);\n\n // Exclude archived messages\n if (!message || message.archived_at) return null;\n\n const onDismiss = () => {\n inAppMessagesClient.markAsArchived(message);\n };\n\n const onInteract = () => {\n inAppMessagesClient.markAsInteracted(message);\n };\n\n return (\n <DefaultView\n content={message.content}\n colorMode={colorMode}\n onDismiss={onDismiss}\n onInteract={onInteract}\n />\n );\n};\nBanner.displayName = \"Banner\";\n\nconst BannerView = {} as {\n Default: typeof DefaultView;\n Root: typeof Root;\n Content: typeof Content;\n Title: typeof Title;\n Body: typeof Body;\n Actions: typeof Actions;\n PrimaryAction: typeof PrimaryAction;\n SecondaryAction: typeof SecondaryAction;\n DismissButton: typeof DismissButton;\n};\n\nObject.assign(BannerView, {\n Default: DefaultView,\n Root,\n Content,\n Title,\n Body,\n Actions,\n PrimaryAction,\n SecondaryAction,\n DismissButton,\n});\n\nexport { Banner, BannerView };\n"],"names":["MESSAGE_TYPE","Root","children","className","props","React","clsx","displayName","Content","Title","title","Body","body","Actions","PrimaryAction","text","action","SecondaryAction","DismissButton","DefaultView","content","colorMode","onInteract","onDismiss","secondary_button","primary_button","dismissible","Banner","filters","useInAppMessagesChannel","message","inAppMessagesClient","useInAppMessage","useEffect","seen_at","markAsSeen","archived_at","markAsArchived","markAsInteracted","BannerView","Object","assign","Default"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("@knocklabs/react-core"),g=require("clsx"),k=require("react");;/* empty css */const p=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},r=p(g),t=p(k),v="card",d=({children:e,className:l,...a})=>t.default.createElement("div",{className:r.default("knock-iam-card",l),...a},e);d.displayName="CardView.Root";const c=({children:e,className:l,...a})=>t.default.createElement("div",{className:r.default("knock-iam-card__message",l),...a},e);c.displayName="CardView.Content";const E=({children:e,className:l,...a})=>t.default.createElement("div",{className:r.default("knock-iam-card__header",l),...a},e);E.displayName="CardView.Header";const C=({headline:e,className:l,...a})=>t.default.createElement("div",{className:r.default("knock-iam-card__headline",l),...a},e);C.displayName="CardView.Headline";const i=({title:e,className:l,...a})=>t.default.createElement("div",{className:r.default("knock-iam-card__title",l),...a},e);i.displayName="CardView.Title";const s=({body:e,className:l,...a})=>t.default.createElement("div",{className:r.default("knock-iam-card__body",l),...a},e);s.displayName="CardView.Body";const o=({children:e,className:l,...a})=>t.default.createElement("div",{className:r.default("knock-iam-card__actions",l),...a},e);o.displayName="CardView.Actions";const u=({text:e,action:l,className:a,...n})=>t.default.createElement("a",{href:l,className:r.default("knock-iam-card__action",a),...n},e);u.displayName="CardView.PrimaryAction";const m=({text:e,action:l,className:a,...n})=>t.default.createElement("a",{href:l,className:r.default("knock-iam-card__action knock-iam-card__action--secondary",a),...n},e);m.displayName="CardView.SecondaryAction";const f=({className:e,...l})=>t.default.createElement("button",{className:r.default("knock-iam-card__close",e),...l},t.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",fill:"none"},t.default.createElement("g",{fill:"#60646C",fillRule:"evenodd",clipRule:"evenodd"},t.default.createElement("path",{d:"M14.03 3.97a.75.75 0 0 1 0 1.06l-9 9a.75.75 0 0 1-1.06-1.06l9-9a.75.75 0 0 1 1.06 0Z"}),t.default.createElement("path",{d:"M3.97 3.97a.75.75 0 0 1 1.06 0l9 9a.75.75 0 1 1-1.06 1.06l-9-9a.75.75 0 0 1 0-1.06Z"}))));f.displayName="CardView.DismissButton";const _=({content:e,colorMode:l="light",onInteract:a,onDismiss:n})=>t.default.createElement(d,{"data-knock-color-mode":l,onClick:a},t.default.createElement(c,null,t.default.createElement(E,null,t.default.createElement(C,{headline:e.headline}),e.dismissible&&t.default.createElement(f,{onClick:n})),t.default.createElement(i,{title:e.title}),t.default.createElement(s,{body:e.body})),t.default.createElement(o,null,e.primary_button&&t.default.createElement(u,{text:e.primary_button.text,action:e.primary_button.action}),e.secondary_button&&t.default.createElement(m,{text:e.secondary_button.text,action:e.secondary_button.action})));_.displayName="CardView.Default";const N=({filters:e})=>{const{colorMode:l}=y.useInAppMessagesChannel(),{message:a,inAppMessagesClient:n}=y.useInAppMessage(v,e);if(k.useEffect(()=>{!a||a.seen_at!==null||n.markAsSeen(a)},[a,n]),!a||a.archived_at)return null;const h=()=>{n.markAsArchived(a)},b=()=>{n.markAsInteracted(a)};return t.default.createElement(_,{content:a.content,colorMode:l,onDismiss:h,onInteract:b})};N.displayName="Card";const w={};Object.assign(w,{Default:_,Root:d,Content:c,Title:i,Body:s,Actions:o,PrimaryAction:u,SecondaryAction:m,DismissButton:f});exports.Card=N;exports.CardView=w;
|
2
|
-
//# sourceMappingURL=Card.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Card.js","sources":["../../../../../../src/modules/in-app-messages/components/Card/Card.tsx"],"sourcesContent":["import {\n ColorMode,\n UseInAppMessageOptions,\n useInAppMessage,\n useInAppMessagesChannel,\n} from \"@knocklabs/react-core\";\nimport clsx from \"clsx\";\nimport React, { useEffect } from \"react\";\n\nimport { ActionContent } from \"../types\";\n\nimport \"./styles.css\";\n\nconst MESSAGE_TYPE = \"card\";\n\nexport interface CardProps {\n filters?: UseInAppMessageOptions;\n}\n\nexport interface CardContent {\n headline: string;\n title: string;\n body: string;\n primary_button?: {\n text: string;\n action: string;\n };\n secondary_button?: {\n text: string;\n action: string;\n };\n dismissible?: boolean;\n}\n\nconst Root: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-card\", className)} {...props}>\n {children}\n </div>\n );\n};\nRoot.displayName = \"CardView.Root\";\n\nconst Content: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-card__message\", className)} {...props}>\n {children}\n </div>\n );\n};\nContent.displayName = \"CardView.Content\";\n\nconst Header: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-card__header\", className)} {...props}>\n {children}\n </div>\n );\n};\nHeader.displayName = \"CardView.Header\";\n\nconst Headline: React.FC<\n { headline: string } & React.ComponentPropsWithRef<\"div\">\n> = ({ headline, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-card__headline\", className)} {...props}>\n {headline}\n </div>\n );\n};\nHeadline.displayName = \"CardView.Headline\";\n\nconst Title: React.FC<\n { title: string } & React.ComponentPropsWithRef<\"div\">\n> = ({ title, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-card__title\", className)} {...props}>\n {title}\n </div>\n );\n};\nTitle.displayName = \"CardView.Title\";\n\nconst Body: React.FC<{ body: string } & React.ComponentPropsWithRef<\"div\">> = ({\n body,\n className,\n ...props\n}) => {\n return (\n <div className={clsx(\"knock-iam-card__body\", className)} {...props}>\n {body}\n </div>\n );\n};\nBody.displayName = \"CardView.Body\";\n\nconst Actions: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-card__actions\", className)} {...props}>\n {children}\n </div>\n );\n};\nActions.displayName = \"CardView.Actions\";\n\nconst PrimaryAction: React.FC<\n ActionContent & React.ComponentPropsWithRef<\"a\">\n> = ({ text, action, className, ...props }) => {\n return (\n <a\n href={action}\n className={clsx(\"knock-iam-card__action\", className)}\n {...props}\n >\n {text}\n </a>\n );\n};\nPrimaryAction.displayName = \"CardView.PrimaryAction\";\n\nconst SecondaryAction: React.FC<\n ActionContent & React.ComponentPropsWithRef<\"a\">\n> = ({ text, action, className, ...props }) => {\n return (\n <a\n href={action}\n className={clsx(\n \"knock-iam-card__action knock-iam-card__action--secondary\",\n className,\n )}\n {...props}\n >\n {text}\n </a>\n );\n};\nSecondaryAction.displayName = \"CardView.SecondaryAction\";\n\nconst DismissButton: React.FC<React.ComponentPropsWithRef<\"button\">> = ({\n className,\n ...props\n}) => {\n return (\n <button className={clsx(\"knock-iam-card__close\", className)} {...props}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n >\n <g fill=\"#60646C\" fillRule=\"evenodd\" clipRule=\"evenodd\">\n <path d=\"M14.03 3.97a.75.75 0 0 1 0 1.06l-9 9a.75.75 0 0 1-1.06-1.06l9-9a.75.75 0 0 1 1.06 0Z\" />\n <path d=\"M3.97 3.97a.75.75 0 0 1 1.06 0l9 9a.75.75 0 1 1-1.06 1.06l-9-9a.75.75 0 0 1 0-1.06Z\" />\n </g>\n </svg>\n </button>\n );\n};\nDismissButton.displayName = \"CardView.DismissButton\";\n\nconst DefaultView: React.FC<{\n content: CardContent;\n colorMode?: ColorMode;\n onInteract?: () => void;\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({ content, colorMode = \"light\", onInteract, onDismiss }) => {\n return (\n <Root data-knock-color-mode={colorMode} onClick={onInteract}>\n <Content>\n <Header>\n <Headline headline={content.headline} />\n {content.dismissible && <DismissButton onClick={onDismiss} />}\n </Header>\n\n <Title title={content.title} />\n <Body body={content.body} />\n </Content>\n <Actions>\n {content.primary_button && (\n <PrimaryAction\n text={content.primary_button.text}\n action={content.primary_button.action}\n />\n )}\n\n {content.secondary_button && (\n <SecondaryAction\n text={content.secondary_button.text}\n action={content.secondary_button.action}\n />\n )}\n </Actions>\n </Root>\n );\n};\nDefaultView.displayName = \"CardView.Default\";\n\nconst Card: React.FC<CardProps> = ({ filters }) => {\n const { colorMode } = useInAppMessagesChannel();\n const { message, inAppMessagesClient } = useInAppMessage<CardContent>(\n MESSAGE_TYPE,\n filters,\n );\n\n // Mark the message as seen on render\n useEffect(() => {\n if (!message || message.seen_at !== null) return;\n\n inAppMessagesClient.markAsSeen(message);\n }, [message, inAppMessagesClient]);\n\n // Exclude archived messages\n if (!message || message.archived_at) return null;\n\n const onDismiss = () => {\n inAppMessagesClient.markAsArchived(message);\n };\n\n const onInteract = () => {\n inAppMessagesClient.markAsInteracted(message);\n };\n\n return (\n <DefaultView\n content={message.content}\n colorMode={colorMode}\n onDismiss={onDismiss}\n onInteract={onInteract}\n />\n );\n};\nCard.displayName = \"Card\";\n\nconst CardView = {} as {\n Default: typeof DefaultView;\n Root: typeof Root;\n Content: typeof Content;\n Headline: typeof Headline;\n Title: typeof Title;\n Body: typeof Body;\n Actions: typeof Actions;\n PrimaryAction: typeof PrimaryAction;\n SecondaryAction: typeof SecondaryAction;\n DismissButton: typeof DismissButton;\n};\n\nObject.assign(CardView, {\n Default: DefaultView,\n Root,\n Content,\n Title,\n Body,\n Actions,\n PrimaryAction,\n SecondaryAction,\n DismissButton,\n});\n\nexport { Card, CardView };\n"],"names":["MESSAGE_TYPE","Root","children","className","props","React","clsx","displayName","Content","Header","Headline","headline","Title","title","Body","body","Actions","PrimaryAction","text","action","SecondaryAction","DismissButton","DefaultView","content","colorMode","onInteract","onDismiss","dismissible","primary_button","secondary_button","Card","filters","useInAppMessagesChannel","message","inAppMessagesClient","useInAppMessage","useEffect","seen_at","markAsSeen","archived_at","markAsArchived","markAsInteracted","CardView","Object","assign","Default"],"mappings":"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"}
|
@@ -1,2 +0,0 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("@knocklabs/react-core"),C=require("@radix-ui/react-dialog"),V=require("clsx"),M=require("react");;/* empty css */const w=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function O(e){if(e&&typeof e=="object"&&"default"in e)return e;const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(l,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return l.default=e,Object.freeze(l)}const r=O(C),o=w(V),a=w(M),D="modal",d=({children:e,onOpenChange:l,...t})=>a.default.createElement(r.Root,{defaultOpen:!0,onOpenChange:l,...t},a.default.createElement(r.Portal,null,e));d.displayName="ModalView.Root";const i=a.default.forwardRef(({className:e,...l},t)=>a.default.createElement(r.Overlay,{className:o.default("knock-iam-modal__overlay",e),ref:t,...l}));i.displayName="ModalView.Overlay";const s=a.default.forwardRef(({children:e,className:l,...t},n)=>a.default.createElement(r.Content,{className:o.default("knock-iam-modal",l),ref:n,...t},e));s.displayName="ModalView.Content";const N=({children:e,className:l,...t})=>a.default.createElement("div",{className:o.default("knock-iam-modal__header",l),...t},e);N.displayName="ModalView.Header";const u=({title:e,className:l,...t})=>a.default.createElement(r.Title,{className:o.default("knock-iam-modal__title",l),...t},e);u.displayName="ModalView.Title";const m=({body:e,className:l,...t})=>a.default.createElement(r.Description,{className:o.default("knock-iam-modal__body",l),...t},e);m.displayName="ModalView.Body";const f=({children:e,className:l,...t})=>a.default.createElement("div",{className:o.default("knock-iam-modal__actions",l),...t},e);f.displayName="ModalView.Actions";const p=({text:e,action:l,className:t,...n})=>a.default.createElement("a",{href:l,className:o.default("knock-iam-modal__action",t),...n},e);p.displayName="ModalView.PrimaryAction";const y=({text:e,action:l,className:t,...n})=>a.default.createElement("a",{href:l,className:o.default("knock-iam-modal__action knock-iam-modal__action--secondary",t),...n},e);y.displayName="ModalView.SecondaryAction";const _=({className:e,...l})=>a.default.createElement(r.Close,{className:o.default("knock-iam-modal__close",e),...l},a.default.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",fill:"none"},a.default.createElement("g",{fill:"#60646C",fillRule:"evenodd",clipRule:"evenodd"},a.default.createElement("path",{d:"M14.03 3.97a.75.75 0 0 1 0 1.06l-9 9a.75.75 0 0 1-1.06-1.06l9-9a.75.75 0 0 1 1.06 0Z"}),a.default.createElement("path",{d:"M3.97 3.97a.75.75 0 0 1 1.06 0l9 9a.75.75 0 1 1-1.06 1.06l-9-9a.75.75 0 0 1 0-1.06Z"}))));_.displayName="ModalView.Close";const E=({content:e,colorMode:l="light",onOpenChange:t,onInteract:n,onDismiss:c})=>a.default.createElement(d,{onOpenChange:t,onClick:n},a.default.createElement(i,null),a.default.createElement(s,{"data-knock-color-mode":l},a.default.createElement(N,null,a.default.createElement(u,{title:e.title}),e.dismissible&&a.default.createElement(_,{onClick:c})),a.default.createElement(m,{body:e.body}),a.default.createElement(f,null,e.secondary_button&&a.default.createElement(y,{text:e.secondary_button.text,action:e.secondary_button.action}),e.primary_button&&a.default.createElement(p,{text:e.primary_button.text,action:e.primary_button.action}))));E.displayName="ModalView.Default";const b=({filters:e})=>{const{colorMode:l}=k.useInAppMessagesChannel(),{message:t,inAppMessagesClient:n}=k.useInAppMessage(D,e);if(M.useEffect(()=>{!t||t.seen_at!==null||n.markAsSeen(t)},[t,n]),!t||t.archived_at)return null;const c=v=>{v||n.markAsArchived(t)},A=()=>{n.markAsArchived(t)},h=()=>{n.markAsInteracted(t)};return a.default.createElement(E,{content:t.content,colorMode:l,onOpenChange:c,onDismiss:A,onInteract:h})};b.displayName="Modal";const g={};Object.assign(g,{Default:E,Root:d,Overlay:i,Content:s,Title:u,Body:m,Actions:f,PrimaryAction:p,SecondaryAction:y,Close:_});exports.Modal=b;exports.ModalView=g;
|
2
|
-
//# sourceMappingURL=Modal.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Modal.js","sources":["../../../../../../src/modules/in-app-messages/components/Modal/Modal.tsx"],"sourcesContent":["import {\n ColorMode,\n UseInAppMessageOptions,\n useInAppMessage,\n useInAppMessagesChannel,\n} from \"@knocklabs/react-core\";\nimport * as Dialog from \"@radix-ui/react-dialog\";\nimport clsx from \"clsx\";\nimport React, { useEffect } from \"react\";\n\nimport { ActionContent } from \"../types\";\n\nimport \"./styles.css\";\n\nconst MESSAGE_TYPE = \"modal\";\n\nexport interface ModalProps {\n filters?: UseInAppMessageOptions;\n}\n\nexport interface ModalContent {\n title: string;\n body: string;\n primary_button?: {\n text: string;\n action: string;\n };\n secondary_button?: {\n text: string;\n action: string;\n };\n dismissible?: boolean;\n}\n\ntype RootProps = Omit<\n React.ComponentPropsWithoutRef<typeof Dialog.Root>,\n \"modal\"\n> &\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>;\n\nconst Root = ({ children, onOpenChange, ...props }: RootProps) => {\n return (\n <Dialog.Root defaultOpen onOpenChange={onOpenChange} {...props}>\n <Dialog.Portal>{children}</Dialog.Portal>\n </Dialog.Root>\n );\n};\nRoot.displayName = \"ModalView.Root\";\n\ntype OverlayProps = React.ComponentPropsWithoutRef<typeof Dialog.Overlay> &\n React.ComponentPropsWithRef<\"div\">;\ntype OverlayRef = React.ElementRef<\"div\">;\n\n// TODO: Causes layout shift...\nconst Overlay = React.forwardRef<OverlayRef, OverlayProps>(\n ({ className, ...props }, forwardedRef) => {\n return (\n <Dialog.Overlay\n className={clsx(\"knock-iam-modal__overlay\", className)}\n ref={forwardedRef}\n {...props}\n />\n );\n },\n);\nOverlay.displayName = \"ModalView.Overlay\";\n\ntype ContentProps = React.ComponentPropsWithoutRef<typeof Dialog.Content> &\n React.ComponentPropsWithRef<\"div\">;\ntype ContentRef = React.ElementRef<\"div\">;\n\nconst Content = React.forwardRef<ContentRef, ContentProps>(\n ({ children, className, ...props }, forwardedRef) => {\n return (\n <Dialog.Content\n className={clsx(\"knock-iam-modal\", className)}\n ref={forwardedRef}\n {...props}\n >\n {children}\n </Dialog.Content>\n );\n },\n);\nContent.displayName = \"ModalView.Content\";\n\nconst Header: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-modal__header\", className)} {...props}>\n {children}\n </div>\n );\n};\nHeader.displayName = \"ModalView.Header\";\n\ntype TitleProps = React.ComponentPropsWithoutRef<typeof Dialog.Title> &\n React.ComponentPropsWithRef<\"div\"> & {\n title: string;\n };\n\nconst Title = ({ title, className, ...props }: TitleProps) => {\n return (\n <Dialog.Title\n className={clsx(\"knock-iam-modal__title\", className)}\n {...props}\n >\n {title}\n </Dialog.Title>\n );\n};\nTitle.displayName = \"ModalView.Title\";\n\nconst Body: React.FC<{ body: string } & React.ComponentPropsWithRef<\"div\">> = ({\n body,\n className,\n ...props\n}) => {\n return (\n <Dialog.Description\n className={clsx(\"knock-iam-modal__body\", className)}\n {...props}\n >\n {body}\n </Dialog.Description>\n );\n};\nBody.displayName = \"ModalView.Body\";\n\nconst Actions: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-modal__actions\", className)} {...props}>\n {children}\n </div>\n );\n};\nActions.displayName = \"ModalView.Actions\";\n\nconst PrimaryAction: React.FC<\n ActionContent & React.ComponentPropsWithRef<\"a\">\n> = ({ text, action, className, ...props }) => {\n return (\n <a\n href={action}\n className={clsx(\"knock-iam-modal__action\", className)}\n {...props}\n >\n {text}\n </a>\n );\n};\nPrimaryAction.displayName = \"ModalView.PrimaryAction\";\n\nconst SecondaryAction: React.FC<\n ActionContent & React.ComponentPropsWithRef<\"a\">\n> = ({ text, action, className, ...props }) => {\n return (\n <a\n href={action}\n className={clsx(\n \"knock-iam-modal__action knock-iam-modal__action--secondary\",\n className,\n )}\n {...props}\n >\n {text}\n </a>\n );\n};\nSecondaryAction.displayName = \"ModalView.SecondaryAction\";\n\ntype CloseProps = React.ComponentPropsWithoutRef<typeof Dialog.Close> &\n React.ComponentPropsWithRef<\"button\">;\n\nconst Close = ({ className, ...props }: CloseProps) => {\n return (\n <Dialog.Close\n className={clsx(\"knock-iam-modal__close\", className)}\n {...props}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n >\n <g fill=\"#60646C\" fillRule=\"evenodd\" clipRule=\"evenodd\">\n <path d=\"M14.03 3.97a.75.75 0 0 1 0 1.06l-9 9a.75.75 0 0 1-1.06-1.06l9-9a.75.75 0 0 1 1.06 0Z\" />\n <path d=\"M3.97 3.97a.75.75 0 0 1 1.06 0l9 9a.75.75 0 1 1-1.06 1.06l-9-9a.75.75 0 0 1 0-1.06Z\" />\n </g>\n </svg>\n </Dialog.Close>\n );\n};\nClose.displayName = \"ModalView.Close\";\n\nconst DefaultView: React.FC<{\n content: ModalContent;\n colorMode?: ColorMode;\n onOpenChange?: (open: boolean) => void;\n onInteract?: () => void;\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({\n content,\n colorMode = \"light\",\n onOpenChange,\n onInteract,\n onDismiss,\n}) => {\n return (\n <Root onOpenChange={onOpenChange} onClick={onInteract}>\n <Overlay />\n {/* Must pass color mode to content for css variables to be set properly */}\n <Content data-knock-color-mode={colorMode}>\n <Header>\n <Title title={content.title} />\n {content.dismissible && <Close onClick={onDismiss} />}\n </Header>\n\n <Body body={content.body} />\n\n <Actions>\n {content.secondary_button && (\n <SecondaryAction\n text={content.secondary_button.text}\n action={content.secondary_button.action}\n />\n )}\n {content.primary_button && (\n <PrimaryAction\n text={content.primary_button.text}\n action={content.primary_button.action}\n />\n )}\n </Actions>\n </Content>\n </Root>\n );\n};\nDefaultView.displayName = \"ModalView.Default\";\n\nconst Modal: React.FC<ModalProps> = ({ filters }) => {\n const { colorMode } = useInAppMessagesChannel();\n const { message, inAppMessagesClient } = useInAppMessage<ModalContent>(\n MESSAGE_TYPE,\n filters,\n );\n\n // Mark the message as seen on render\n useEffect(() => {\n if (!message || message.seen_at !== null) return;\n\n inAppMessagesClient.markAsSeen(message);\n }, [message, inAppMessagesClient]);\n\n // Exclude archived messages\n if (!message || message.archived_at) return null;\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n inAppMessagesClient.markAsArchived(message);\n }\n };\n\n const onDismiss = () => {\n inAppMessagesClient.markAsArchived(message);\n };\n\n const onInteract = () => {\n inAppMessagesClient.markAsInteracted(message);\n };\n\n return (\n <DefaultView\n content={message.content}\n colorMode={colorMode}\n onOpenChange={onOpenChange}\n onDismiss={onDismiss}\n onInteract={onInteract}\n />\n );\n};\nModal.displayName = \"Modal\";\n\nconst ModalView = {} as {\n Default: typeof DefaultView;\n Root: typeof Root;\n Overlay: typeof Overlay;\n Content: typeof Content;\n Title: typeof Title;\n Body: typeof Body;\n Actions: typeof Actions;\n PrimaryAction: typeof PrimaryAction;\n SecondaryAction: typeof SecondaryAction;\n Close: typeof Close;\n};\n\nObject.assign(ModalView, {\n Default: DefaultView,\n Root,\n Overlay,\n Content,\n Title,\n Body,\n Actions,\n PrimaryAction,\n SecondaryAction,\n Close,\n});\n\nexport { Modal, ModalView };\n"],"names":["MESSAGE_TYPE","Root","children","onOpenChange","props","React","Dialog","displayName","Overlay","forwardRef","className","forwardedRef","clsx","Content","Header","Title","title","Body","body","Actions","PrimaryAction","text","action","SecondaryAction","Close","DefaultView","content","colorMode","onInteract","onDismiss","dismissible","secondary_button","primary_button","Modal","filters","useInAppMessagesChannel","message","inAppMessagesClient","useInAppMessage","useEffect","seen_at","markAsSeen","archived_at","open","markAsArchived","markAsInteracted","ModalView","Object","assign","Default"],"mappings":"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"}
|
@@ -1,97 +0,0 @@
|
|
1
|
-
import { useInAppMessagesChannel as E, useInAppMessage as b } from "@knocklabs/react-core";
|
2
|
-
import i from "clsx";
|
3
|
-
import a, { useEffect as N } from "react";
|
4
|
-
/* empty css */
|
5
|
-
const f = "banner", s = ({
|
6
|
-
children: e,
|
7
|
-
className: t,
|
8
|
-
...n
|
9
|
-
}) => /* @__PURE__ */ a.createElement("div", { className: i("knock-iam-banner", t), ...n }, e);
|
10
|
-
s.displayName = "BannerView.Root";
|
11
|
-
const c = ({
|
12
|
-
children: e,
|
13
|
-
className: t,
|
14
|
-
...n
|
15
|
-
}) => /* @__PURE__ */ a.createElement("div", { className: i("knock-iam-banner__message", t), ...n }, e);
|
16
|
-
c.displayName = "BannerView.Content";
|
17
|
-
const o = ({
|
18
|
-
title: e,
|
19
|
-
className: t,
|
20
|
-
...n
|
21
|
-
}) => /* @__PURE__ */ a.createElement("div", { className: i("knock-iam-banner__title", t), ...n }, e);
|
22
|
-
o.displayName = "BannerView.Title";
|
23
|
-
const l = ({
|
24
|
-
body: e,
|
25
|
-
className: t,
|
26
|
-
...n
|
27
|
-
}) => /* @__PURE__ */ a.createElement("div", { className: i("knock-iam-banner__body", t), ...n }, e);
|
28
|
-
l.displayName = "BannerView.Body";
|
29
|
-
const m = ({
|
30
|
-
children: e,
|
31
|
-
className: t,
|
32
|
-
...n
|
33
|
-
}) => /* @__PURE__ */ a.createElement("div", { className: i("knock-iam-banner__actions", t), ...n }, e);
|
34
|
-
m.displayName = "BannerView.Actions";
|
35
|
-
const d = ({
|
36
|
-
text: e,
|
37
|
-
action: t,
|
38
|
-
className: n,
|
39
|
-
...r
|
40
|
-
}) => /* @__PURE__ */ a.createElement("a", { href: t, className: i("knock-iam-banner__action", n), ...r }, e);
|
41
|
-
d.displayName = "BannerView.PrimaryAction";
|
42
|
-
const u = ({
|
43
|
-
text: e,
|
44
|
-
action: t,
|
45
|
-
className: n,
|
46
|
-
...r
|
47
|
-
}) => /* @__PURE__ */ a.createElement("a", { href: t, className: i("knock-iam-banner__action knock-iam-banner__action--secondary", n), ...r }, e);
|
48
|
-
u.displayName = "BannerView.SecondaryAction";
|
49
|
-
const p = ({
|
50
|
-
className: e,
|
51
|
-
...t
|
52
|
-
}) => /* @__PURE__ */ a.createElement("button", { className: i("knock-iam-banner__close", e), ...t }, /* @__PURE__ */ a.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", fill: "none" }, /* @__PURE__ */ a.createElement("g", { fill: "#60646C", fillRule: "evenodd", clipRule: "evenodd" }, /* @__PURE__ */ a.createElement("path", { d: "M14.03 3.97a.75.75 0 0 1 0 1.06l-9 9a.75.75 0 0 1-1.06-1.06l9-9a.75.75 0 0 1 1.06 0Z" }), /* @__PURE__ */ a.createElement("path", { d: "M3.97 3.97a.75.75 0 0 1 1.06 0l9 9a.75.75 0 1 1-1.06 1.06l-9-9a.75.75 0 0 1 0-1.06Z" }))));
|
53
|
-
p.displayName = "BannerView.DismissButton";
|
54
|
-
const _ = ({
|
55
|
-
content: e,
|
56
|
-
colorMode: t = "light",
|
57
|
-
onInteract: n,
|
58
|
-
onDismiss: r
|
59
|
-
}) => /* @__PURE__ */ a.createElement(s, { "data-knock-color-mode": t, onClick: n }, /* @__PURE__ */ a.createElement(c, null, /* @__PURE__ */ a.createElement(o, { title: e.title }), /* @__PURE__ */ a.createElement(l, { body: e.body })), /* @__PURE__ */ a.createElement(m, null, e.secondary_button && /* @__PURE__ */ a.createElement(u, { text: e.secondary_button.text, action: e.secondary_button.action }), e.primary_button && /* @__PURE__ */ a.createElement(d, { text: e.primary_button.text, action: e.primary_button.action }), e.dismissible && /* @__PURE__ */ a.createElement(p, { onClick: r })));
|
60
|
-
_.displayName = "BannerView.Default";
|
61
|
-
const w = ({
|
62
|
-
filters: e
|
63
|
-
}) => {
|
64
|
-
const {
|
65
|
-
colorMode: t
|
66
|
-
} = E(), {
|
67
|
-
message: n,
|
68
|
-
inAppMessagesClient: r
|
69
|
-
} = b(f, e);
|
70
|
-
if (N(() => {
|
71
|
-
!n || n.seen_at !== null || r.markAsSeen(n);
|
72
|
-
}, [n, r]), !n || n.archived_at) return null;
|
73
|
-
const y = () => {
|
74
|
-
r.markAsArchived(n);
|
75
|
-
}, k = () => {
|
76
|
-
r.markAsInteracted(n);
|
77
|
-
};
|
78
|
-
return /* @__PURE__ */ a.createElement(_, { content: n.content, colorMode: t, onDismiss: y, onInteract: k });
|
79
|
-
};
|
80
|
-
w.displayName = "Banner";
|
81
|
-
const B = {};
|
82
|
-
Object.assign(B, {
|
83
|
-
Default: _,
|
84
|
-
Root: s,
|
85
|
-
Content: c,
|
86
|
-
Title: o,
|
87
|
-
Body: l,
|
88
|
-
Actions: m,
|
89
|
-
PrimaryAction: d,
|
90
|
-
SecondaryAction: u,
|
91
|
-
DismissButton: p
|
92
|
-
});
|
93
|
-
export {
|
94
|
-
w as Banner,
|
95
|
-
B as BannerView
|
96
|
-
};
|
97
|
-
//# sourceMappingURL=Banner.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Banner.mjs","sources":["../../../../../../src/modules/in-app-messages/components/Banner/Banner.tsx"],"sourcesContent":["import {\n ColorMode,\n UseInAppMessageOptions,\n useInAppMessage,\n useInAppMessagesChannel,\n} from \"@knocklabs/react-core\";\nimport clsx from \"clsx\";\nimport React, { useEffect } from \"react\";\n\nimport { ActionContent } from \"../types\";\n\nimport \"./styles.css\";\n\nconst MESSAGE_TYPE = \"banner\";\n\nexport interface BannerProps {\n filters?: UseInAppMessageOptions;\n}\n\nexport interface BannerContent {\n title: string;\n body: string;\n primary_button?: {\n text: string;\n action: string;\n };\n secondary_button?: {\n text: string;\n action: string;\n };\n dismissible?: boolean;\n}\n\nconst Root: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-banner\", className)} {...props}>\n {children}\n </div>\n );\n};\nRoot.displayName = \"BannerView.Root\";\n\nconst Content: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-banner__message\", className)} {...props}>\n {children}\n </div>\n );\n};\nContent.displayName = \"BannerView.Content\";\n\nconst Title: React.FC<\n { title: string } & React.ComponentPropsWithRef<\"div\">\n> = ({ title, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-banner__title\", className)} {...props}>\n {title}\n </div>\n );\n};\nTitle.displayName = \"BannerView.Title\";\n\nconst Body: React.FC<{ body: string } & React.ComponentPropsWithRef<\"div\">> = ({\n body,\n className,\n ...props\n}) => {\n return (\n <div className={clsx(\"knock-iam-banner__body\", className)} {...props}>\n {body}\n </div>\n );\n};\nBody.displayName = \"BannerView.Body\";\n\nconst Actions: React.FC<\n React.PropsWithChildren<React.ComponentPropsWithRef<\"div\">>\n> = ({ children, className, ...props }) => {\n return (\n <div className={clsx(\"knock-iam-banner__actions\", className)} {...props}>\n {children}\n </div>\n );\n};\nActions.displayName = \"BannerView.Actions\";\n\nconst PrimaryAction: React.FC<\n ActionContent & React.ComponentPropsWithRef<\"a\">\n> = ({ text, action, className, ...props }) => {\n return (\n <a\n href={action}\n className={clsx(\"knock-iam-banner__action\", className)}\n {...props}\n >\n {text}\n </a>\n );\n};\nPrimaryAction.displayName = \"BannerView.PrimaryAction\";\n\nconst SecondaryAction: React.FC<\n ActionContent & React.ComponentPropsWithRef<\"a\">\n> = ({ text, action, className, ...props }) => {\n return (\n <a\n href={action}\n className={clsx(\n \"knock-iam-banner__action knock-iam-banner__action--secondary\",\n className,\n )}\n {...props}\n >\n {text}\n </a>\n );\n};\nSecondaryAction.displayName = \"BannerView.SecondaryAction\";\n\nconst DismissButton: React.FC<React.ComponentPropsWithRef<\"button\">> = ({\n className,\n ...props\n}) => {\n return (\n <button className={clsx(\"knock-iam-banner__close\", className)} {...props}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"18\"\n height=\"18\"\n fill=\"none\"\n >\n <g fill=\"#60646C\" fillRule=\"evenodd\" clipRule=\"evenodd\">\n <path d=\"M14.03 3.97a.75.75 0 0 1 0 1.06l-9 9a.75.75 0 0 1-1.06-1.06l9-9a.75.75 0 0 1 1.06 0Z\" />\n <path d=\"M3.97 3.97a.75.75 0 0 1 1.06 0l9 9a.75.75 0 1 1-1.06 1.06l-9-9a.75.75 0 0 1 0-1.06Z\" />\n </g>\n </svg>\n </button>\n );\n};\nDismissButton.displayName = \"BannerView.DismissButton\";\n\nconst DefaultView: React.FC<{\n content: BannerContent;\n colorMode?: ColorMode;\n onInteract?: () => void;\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({ content, colorMode = \"light\", onInteract, onDismiss }) => {\n return (\n <Root data-knock-color-mode={colorMode} onClick={onInteract}>\n <Content>\n <Title title={content.title} />\n <Body body={content.body} />\n </Content>\n <Actions>\n {content.secondary_button && (\n <SecondaryAction\n text={content.secondary_button.text}\n action={content.secondary_button.action}\n />\n )}\n\n {content.primary_button && (\n <PrimaryAction\n text={content.primary_button.text}\n action={content.primary_button.action}\n />\n )}\n\n {content.dismissible && <DismissButton onClick={onDismiss} />}\n </Actions>\n </Root>\n );\n};\nDefaultView.displayName = \"BannerView.Default\";\n\nconst Banner: React.FC<BannerProps> = ({ filters }) => {\n const { colorMode } = useInAppMessagesChannel();\n\n const { message, inAppMessagesClient } = useInAppMessage<BannerContent>(\n MESSAGE_TYPE,\n filters,\n );\n\n // Mark the message as seen on render\n useEffect(() => {\n if (!message || message.seen_at !== null) return;\n\n inAppMessagesClient.markAsSeen(message);\n }, [message, inAppMessagesClient]);\n\n // Exclude archived messages\n if (!message || message.archived_at) return null;\n\n const onDismiss = () => {\n inAppMessagesClient.markAsArchived(message);\n };\n\n const onInteract = () => {\n inAppMessagesClient.markAsInteracted(message);\n };\n\n return (\n <DefaultView\n content={message.content}\n colorMode={colorMode}\n onDismiss={onDismiss}\n onInteract={onInteract}\n />\n );\n};\nBanner.displayName = \"Banner\";\n\nconst BannerView = {} as {\n Default: typeof DefaultView;\n Root: typeof Root;\n Content: typeof Content;\n Title: typeof Title;\n Body: typeof Body;\n Actions: typeof Actions;\n PrimaryAction: typeof PrimaryAction;\n SecondaryAction: typeof SecondaryAction;\n DismissButton: typeof DismissButton;\n};\n\nObject.assign(BannerView, {\n Default: DefaultView,\n Root,\n Content,\n Title,\n Body,\n Actions,\n PrimaryAction,\n SecondaryAction,\n DismissButton,\n});\n\nexport { Banner, BannerView };\n"],"names":["MESSAGE_TYPE","Root","children","className","props","React","clsx","displayName","Content","Title","title","Body","body","Actions","PrimaryAction","text","action","SecondaryAction","DismissButton","DefaultView","content","colorMode","onInteract","onDismiss","secondary_button","primary_button","dismissible","Banner","filters","useInAppMessagesChannel","message","inAppMessagesClient","useInAppMessage","useEffect","seen_at","markAsSeen","archived_at","markAsArchived","markAsInteracted","BannerView","Object","assign","Default"],"mappings":"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"}
|