@connectid-tools/idp-selector-react 6.12.0 → 6.12.1-alpha.2

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/FullProcess.css CHANGED
@@ -5,37 +5,31 @@
5
5
  border: 1px solid var(--charcoal);
6
6
  margin-bottom: 20px;
7
7
  }
8
- .cid-idp-selector-full-process.open {
9
- border: 1px solid var(--charcoal);
10
- }
11
- .cid-idp-selector-full-process.close {
12
- border: 1px solid var(--charcoal50);
13
- }
14
-
15
- .cid-idp-selector-full-process.open.light {
8
+ .cid-idp-selector-full-process--light {
16
9
  border: 1px solid var(--charcoal10);
10
+ background-color: transparent;
17
11
  }
18
- .cid-idp-selector-full-process.close.light {
19
- border: 1px solid var(--charcoal50);
12
+ .cid-idp-selector-full-process-summary {
13
+ list-style: none;
14
+ padding: 0;
15
+ cursor: pointer;
20
16
  }
21
-
22
- .cid-idp-selector-full-process--light {
23
- border: 1px solid var(--charcoal50);
24
- background-color: transparent;
17
+ .cid-idp-selector-full-process-summary::-webkit-details-marker, .cid-idp-selector-full-process-summary::marker {
18
+ display: none;
25
19
  }
26
20
  .cid-idp-selector-full-process-title {
27
21
  font-size: 20px;
28
22
  color: var(--charcoal);
29
- margin-bottom: 0;
23
+ margin-bottom: 20px;
30
24
  display: flex;
31
25
  align-items: center;
32
26
  justify-content: space-between;
33
27
  }
34
- .cid-idp-selector-full-process--open .cid-idp-selector-full-process-title {
35
- margin-bottom: 20px;
28
+ .cid-idp-selector-full-process-summary .cid-idp-selector-full-process-title {
29
+ margin-bottom: 0;
36
30
  }
37
- .cid-idp-selector-full-process-toggle {
38
- cursor: pointer;
31
+ .cid-idp-selector-full-process[open] .cid-idp-selector-full-process-title {
32
+ margin-bottom: 20px;
39
33
  }
40
34
  .cid-idp-selector-full-process-toggle path {
41
35
  fill: var(--charcoal);
@@ -43,93 +37,12 @@
43
37
  .cid-idp-selector-full-process--light .cid-idp-selector-full-process-toggle path {
44
38
  fill: white;
45
39
  }
46
- .cid-idp-selector-full-process--open .cid-idp-selector-full-process-toggle {
40
+ .cid-idp-selector-full-process[open] .cid-idp-selector-full-process-toggle {
47
41
  transform: rotate(180deg);
48
42
  }
49
43
  .cid-idp-selector-full-process--light .cid-idp-selector-full-process-title {
50
44
  color: white;
51
45
  }
52
- .cid-idp-selector-full-process-step {
53
- display: flex;
54
- align-items: center;
55
- }
56
- .cid-idp-selector-full-process-dot {
57
- width: 11px;
58
- height: 11px;
59
- background-color: var(--mint);
60
- border-radius: 50%;
61
- border: 1px solid var(--charcoal);
62
- }
63
- .cid-idp-selector-full-process-dot-wrapper {
64
- width: 17px;
65
- height: 17px;
66
- background-color: white;
67
- border-radius: 50%;
68
- border: 1px solid var(--charcoal);
69
- display: flex;
70
- align-items: center;
71
- justify-content: center;
72
- flex-shrink: 0;
73
- }
74
- .cid-idp-selector-full-process-line {
75
- width: 100%;
76
- height: 1px;
77
- background-color: var(--charcoal);
78
- }
79
- .cid-idp-selector-full-process--light .cid-idp-selector-full-process-line {
80
- background-color: white;
81
- }
82
- .cid-idp-selector-full-process-grid {
83
- display: none;
84
- grid-template-columns: 1fr 1fr 132px;
85
- grid-row-gap: 8px;
86
- }
87
- .cid-idp-selector-full-process--open .cid-idp-selector-full-process-grid {
88
- display: grid;
89
- }
90
- .cid-idp-selector-full-process-subtitle {
91
- max-width: 132px;
92
- font-size: 14px;
93
- color: var(--charcoal);
94
- display: none;
95
- line-height: 130%;
96
- margin-right: 26px;
97
- }
98
- .cid-idp-selector-full-process--light .cid-idp-selector-full-process-subtitle {
99
- color: white;
100
- }
101
- .cid-idp-selector-full-process-subtitle.cid-idp-selector-full-process-subtitle--wide {
102
- display: block;
103
- }
104
-
105
- @media (max-width: 1280px) {
106
- .cid-idp-selector-full-process-grid {
107
- grid-template-columns: 1fr 1fr;
108
- }
109
- .cid-idp-selector-full-process-subtitle.cid-idp-selector-full-process-subtitle--wide {
110
- display: none;
111
- }
112
- .cid-idp-selector-full-process-subtitle {
113
- display: block;
114
- }
115
- .cid-idp-selector-full-process-line {
116
- width: 1px;
117
- height: 26px;
118
- background-color: var(--charcoal);
119
- }
120
- .cid-idp-selector-full-process-grid {
121
- grid-template-columns: 19px 1fr;
122
- column-gap: 8px;
123
- grid-row-gap: 0;
124
- }
125
- .cid-idp-selector-full-process-step {
126
- flex-direction: column;
127
- }
128
- .cid-idp-selector-full-process-subtitle {
129
- max-width: 100%;
130
- margin: 0;
131
- }
132
- }
133
46
 
134
47
  @media (max-width: 430px) {
135
48
  .cid-idp-selector-full-process-title {
@@ -142,9 +55,3 @@
142
55
  font-size: 16px;
143
56
  }
144
57
  }
145
-
146
- @media(max-width: 320px) {
147
- .cid-idp-selector-full-process-line {
148
- height: 35px;
149
- }
150
- }
package/FullProcess.js CHANGED
@@ -1,12 +1,14 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useContext, useState } from "react";
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
3
  import { ThemeContext } from "./ThemeContext.js";
4
4
  import "./FullProcess.css";
5
- // on a wide screen the layout is like this
5
+ import { FullProcessVerticalList } from "./FullProcessVerticalList.js";
6
+ import { FullProcessHorizontalList } from "./FullProcessHorizontalList.js";
7
+ // on a wide screen the layout is like this (FullProcessHorizontalList)
6
8
  // .----------.----------.
7
9
  // text text text
8
10
  //
9
- // however, when the screen is not wide, the layout is like this
11
+ // however, when the screen is not wide, the layout is like this (FullProcessVerticalList)
10
12
  // . text
11
13
  // |
12
14
  // |
@@ -16,20 +18,16 @@ import "./FullProcess.css";
16
18
  // . text
17
19
  export const FullProcess = ({ collapsible = false }) => {
18
20
  const theme = useContext(ThemeContext);
19
- const shouldOpen = collapsible ? false : true;
20
- const [open, setOpen] = useState(shouldOpen);
21
- const handleToggle = () => {
22
- if (!collapsible)
23
- return;
24
- setOpen(!open);
21
+ const listItems = [
22
+ "Select your trusted organisation",
23
+ "Log in to your existing account",
24
+ "Review your details and provide consent",
25
+ ];
26
+ const renderList = () => {
27
+ return (_jsxs(_Fragment, { children: [_jsx(FullProcessVerticalList, { items: listItems }), _jsx(FullProcessHorizontalList, { items: listItems })] }));
25
28
  };
26
- const colorChanged = () => {
27
- if (collapsible === false) {
28
- return true;
29
- }
30
- if (open === true) {
31
- return true;
32
- }
33
- };
34
- return (_jsxs("div", { className: `cid-idp-selector-full-process ${theme === "light" ? "cid-idp-selector-full-process--light" : ""} ${open ? "cid-idp-selector-full-process--open" : ""} ${colorChanged() ? "open" : "close"} ${theme === "light" ? "light" : ""}`, "data-testid": "full-process", children: [_jsxs("h3", { className: "cid-idp-selector-full-process-title", children: ["How it works", collapsible && (_jsx("svg", { className: "cid-idp-selector-full-process-toggle", width: "17", height: "17", viewBox: "0 0 17 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", onClick: handleToggle, "data-testid": "full-process-toggle", children: _jsx("path", { d: "M13.1684 5.3125L13.8125 5.9998L8.5 11.6875L3.1875 5.9998L3.82832 5.3125L8.5 10.3096L13.1684 5.3125Z" }) }))] }), _jsxs("div", { className: "cid-idp-selector-full-process-grid", "data-testid": "full-process-grid", children: [_jsxs("div", { className: "cid-idp-selector-full-process-step", children: [_jsx("div", { className: "cid-idp-selector-full-process-dot-wrapper", children: _jsx("div", { className: "cid-idp-selector-full-process-dot" }) }), _jsx("div", { className: "cid-idp-selector-full-process-line" })] }), _jsx("div", { className: "cid-idp-selector-full-process-subtitle", children: "Select your trusted organisation" }), _jsxs("div", { className: "cid-idp-selector-full-process-step", children: [_jsx("div", { className: "cid-idp-selector-full-process-dot-wrapper", children: _jsx("div", { className: "cid-idp-selector-full-process-dot" }) }), _jsx("div", { className: "cid-idp-selector-full-process-line" })] }), _jsx("div", { className: "cid-idp-selector-full-process-subtitle", children: "Log in to your existing account" }), _jsx("div", { className: "cid-idp-selector-full-process-step", children: _jsx("div", { className: "cid-idp-selector-full-process-dot-wrapper", children: _jsx("div", { className: "cid-idp-selector-full-process-dot" }) }) }), _jsx("div", { className: "cid-idp-selector-full-process-subtitle", children: "Review your details and provide consent" }), _jsx("div", { className: "cid-idp-selector-full-process-subtitle cid-idp-selector-full-process-subtitle--wide", children: "Select your trusted organisation" }), _jsx("div", { className: "cid-idp-selector-full-process-subtitle cid-idp-selector-full-process-subtitle--wide", children: "Log in to your existing account" }), _jsx("div", { className: "cid-idp-selector-full-process-subtitle cid-idp-selector-full-process-subtitle--wide", children: "Review your details and provide consent" })] })] }));
29
+ if (collapsible) {
30
+ return (_jsxs("details", { className: `cid-idp-selector-full-process ${theme === "light" ? "cid-idp-selector-full-process--light" : ""}`, "data-testid": "full-process", children: [_jsx("summary", { className: "cid-idp-selector-full-process-summary", "data-testid": "full-process-summary", children: _jsxs("h3", { className: "cid-idp-selector-full-process-title", "data-testid": "full-process-title", children: ["How it works", _jsx("svg", { className: "cid-idp-selector-full-process-toggle", width: "17", height: "17", viewBox: "0 0 17 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", "data-testid": "full-process-toggle", children: _jsx("path", { d: "M13.1684 5.3125L13.8125 5.9998L8.5 11.6875L3.1875 5.9998L3.82832 5.3125L8.5 10.3096L13.1684 5.3125Z" }) })] }) }), renderList()] }));
31
+ }
32
+ return (_jsxs("div", { className: `cid-idp-selector-full-process ${theme === "light" ? "cid-idp-selector-full-process--light" : ""}`, "data-testid": "full-process", children: [_jsx("h3", { className: "cid-idp-selector-full-process-title", "data-testid": "full-process-title", children: "How it works" }), renderList()] }));
35
33
  };
@@ -0,0 +1,20 @@
1
+ .cid-idp-selector-full-process-h-list {
2
+ display: none;
3
+ padding: 0;
4
+ margin: 0;
5
+ list-style-type: none;
6
+ grid-template-columns: 1fr 1fr 132px;
7
+ grid-row-gap: 8px;
8
+ }
9
+ .cid-idp-selector-full-process-h-item {
10
+ display: flex;
11
+ flex-direction: column;
12
+ align-items: flex-start;
13
+ gap: 8px;
14
+ }
15
+
16
+ @media (min-width: 1281px) {
17
+ .cid-idp-selector-full-process-h-list {
18
+ display: grid;
19
+ }
20
+ }
@@ -0,0 +1,6 @@
1
+ import './FullProcessHorizontalList.css';
2
+ type FullProcessHorizontalListProps = {
3
+ items: string[];
4
+ };
5
+ export declare const FullProcessHorizontalList: React.FC<FullProcessHorizontalListProps>;
6
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import "./FullProcessHorizontalList.css";
3
+ import { Step } from "./Step.js";
4
+ import { StepTitle } from "./StepTitle.js";
5
+ export const FullProcessHorizontalList = ({ items }) => {
6
+ return (_jsx("ol", { className: "cid-idp-selector-full-process-h-list", "data-testid": "full-process-h-list", children: items.map((item, index) => (_jsxs("li", { className: "cid-idp-selector-full-process-h-item", children: [_jsx(Step, { removeLine: index === items.length - 1 }), _jsx(StepTitle, { title: item })] }, index))) }));
7
+ };
@@ -0,0 +1,17 @@
1
+ .cid-idp-selector-full-process-v-list {
2
+ display: none;
3
+ padding: 0;
4
+ margin: 0;
5
+ list-style-type: none;
6
+ }
7
+ .cid-idp-selector-full-process-v-item {
8
+ display: grid;
9
+ grid-template-columns: 19px 1fr;
10
+ grid-column-gap: 8px;
11
+ }
12
+
13
+ @media (max-width: 1280px) {
14
+ .cid-idp-selector-full-process-v-list {
15
+ display: block;
16
+ }
17
+ }
@@ -0,0 +1,6 @@
1
+ import './FullProcessVerticalList.css';
2
+ type FullProcessVerticalListProps = {
3
+ items: string[];
4
+ };
5
+ export declare const FullProcessVerticalList: React.FC<FullProcessVerticalListProps>;
6
+ export {};
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import "./FullProcessVerticalList.css";
3
+ import { Step } from "./Step.js";
4
+ import { StepTitle } from "./StepTitle.js";
5
+ export const FullProcessVerticalList = ({ items }) => {
6
+ return (_jsx("ol", { className: "cid-idp-selector-full-process-v-list", "data-testid": "full-process-v-list", children: items.map((item, index) => (_jsxs("li", { className: "cid-idp-selector-full-process-v-item", children: [_jsx(Step, { removeLine: index === items.length - 1 }), _jsx(StepTitle, { title: item })] }, index))) }));
7
+ };
package/README.md CHANGED
@@ -260,6 +260,12 @@ The SVG image below the ConnectID button has either option dark or light mode. B
260
260
 
261
261
  ## 🚀 Release Notes
262
262
 
263
+ ### 6.12.1-alpha.2 (Aug 25, 2025)
264
+ - `full process` with `detail/summary`.
265
+
266
+ ### 6.12.1-alpha.1 (Aug 25, 2025)
267
+ - `full process` type as list(`ul/li`).
268
+
263
269
  ### 6.12.0 (Aug 14, 2025)
264
270
  - Update `cba_loyalty` claim label.
265
271
 
package/Step.css ADDED
@@ -0,0 +1,48 @@
1
+ .cid-idp-selector-step {
2
+ display: flex;
3
+ align-items: center;
4
+ flex-direction: column;
5
+ }
6
+ .cid-idp-selector-step-dot {
7
+ width: 11px;
8
+ height: 11px;
9
+ background-color: var(--mint);
10
+ border-radius: 50%;
11
+ border: 1px solid var(--charcoal);
12
+ }
13
+ .cid-idp-selector-step-dot-wrapper {
14
+ width: 17px;
15
+ height: 17px;
16
+ background-color: white;
17
+ border-radius: 50%;
18
+ border: 1px solid var(--charcoal);
19
+ display: flex;
20
+ align-items: center;
21
+ justify-content: center;
22
+ flex-shrink: 0;
23
+ }
24
+ .cid-idp-selector-step-line {
25
+ width: 1px;
26
+ height: 26px;
27
+ background-color: var(--charcoal);
28
+ }
29
+ .cid-idp-selector-step-line.cid-idp-selector-step-line--light {
30
+ background-color: white;
31
+ }
32
+
33
+ @media (max-width: 320px) {
34
+ .cid-idp-selector-step-line {
35
+ height: 35px;
36
+ }
37
+ }
38
+
39
+ @media (min-width: 1281px) {
40
+ .cid-idp-selector-step {
41
+ flex-direction: row;
42
+ width: 100%;
43
+ }
44
+ .cid-idp-selector-step-line {
45
+ width: 100%;
46
+ height: 1px;
47
+ }
48
+ }
package/Step.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import './Step.css';
2
+ type StepProps = {
3
+ removeLine?: boolean;
4
+ };
5
+ export declare const Step: React.FC<StepProps>;
6
+ export {};
package/Step.js ADDED
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
+ import "./Step.css";
4
+ import { ThemeContext } from "./ThemeContext.js";
5
+ export const Step = ({ removeLine = false }) => {
6
+ const theme = useContext(ThemeContext);
7
+ return (_jsxs("div", { className: "cid-idp-selector-step", "data-testid": "step", children: [_jsx("div", { className: "cid-idp-selector-step-dot-wrapper", children: _jsx("div", { className: "cid-idp-selector-step-dot" }) }), !removeLine && (_jsx("div", { className: `cid-idp-selector-step-line ${theme === "light" ? "cid-idp-selector-step-line--light" : ""}`, "data-testid": "step-line" }))] }));
8
+ };
package/StepTitle.css ADDED
@@ -0,0 +1,11 @@
1
+ .cid-idp-selector-step-title {
2
+ font-size: 14px;
3
+ color: var(--charcoal);
4
+ line-height: 130%;
5
+ max-width: 100%;
6
+ margin: 0;
7
+ margin-right: 26px;
8
+ }
9
+ .cid-idp-selector-step-title.cid-idp-selector-step-title--light {
10
+ color: white;
11
+ }
package/StepTitle.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import './StepTitle.css';
2
+ type StepTitleProps = {
3
+ title: string;
4
+ };
5
+ export declare const StepTitle: React.FC<StepTitleProps>;
6
+ export {};
package/StepTitle.js ADDED
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
+ import { ThemeContext } from "./ThemeContext.js";
4
+ import "./StepTitle.css";
5
+ export const StepTitle = ({ title }) => {
6
+ const theme = useContext(ThemeContext);
7
+ return (_jsx("div", { className: `cid-idp-selector-step-title ${theme === "light" ? "cid-idp-selector-step-title--light" : ""}`, "data-testid": "step-title", children: title }));
8
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@connectid-tools/idp-selector-react",
3
- "version": "6.12.0",
3
+ "version": "6.12.1-alpha.2",
4
4
  "description": "React component for IDP Selector.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -26,23 +26,23 @@
26
26
  "homepage": "https://github.com/connectid-tools/idp-selector-react",
27
27
  "devDependencies": {
28
28
  "@babel/preset-typescript": "^7.27.1",
29
- "@types/node": "^22.17.1",
30
- "@types/react": "^18.3.23",
29
+ "@types/node": "^22.18.0",
30
+ "@types/react": "^18.3.24",
31
31
  "@types/react-dom": "^18.3.7",
32
- "cypress": "^14.5.4",
33
- "jest-environment-jsdom": "^29.7.0",
32
+ "cypress": "^15.0.0",
33
+ "jest-environment-jsdom": "^30.0.5",
34
34
  "prettier": "^3.6.2",
35
35
  "react": "^18.3.1",
36
36
  "react-dom": "^18.3.1",
37
37
  "replace-in-file": "^8.3.0",
38
38
  "ts-add-js-extension": "^1.6.6",
39
- "tsx": "^4.20.4",
39
+ "tsx": "^4.20.5",
40
40
  "typescript": "^5.9.2"
41
41
  },
42
42
  "dependencies": {
43
43
  "detectincognitojs": "^1.6.1",
44
44
  "react-responsive": "^10.0.1",
45
45
  "swr": "^2.3.6",
46
- "vite": "^6.3.5"
46
+ "vite": "^7.1.3"
47
47
  }
48
48
  }