@capillarytech/blaze-ui 5.20.0 → 5.22.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/CapAskAira/CapAiMediaGeneration/saga.js +1446 -0
- package/CapAskAira/CapAiMediaGeneration/saga.js.map +1 -0
- package/CapCollapsibleLeftNavigation/saga.js +1441 -0
- package/CapCollapsibleLeftNavigation/saga.js.map +1 -0
- package/CapLanguageProvider/actions.js +125 -0
- package/CapLanguageProvider/actions.js.map +1 -0
- package/CapLanguageProvider/constants.js +37 -0
- package/CapLanguageProvider/constants.js.map +1 -0
- package/CapLanguageProvider/reducer.js +130 -0
- package/CapLanguageProvider/reducer.js.map +1 -0
- package/CapLanguageProvider/saga.js +1457 -0
- package/CapLanguageProvider/saga.js.map +1 -0
- package/CapLanguageProvider/selector.js +186 -0
- package/CapLanguageProvider/selector.js.map +1 -0
- package/CapSupportVideosWrapper/utils.js +34 -0
- package/CapSupportVideosWrapper/utils.js.map +1 -0
- package/package.json +1 -1
- package/CapActionBar/README.md +0 -11
- package/CapAdvancedIcon/README.md +0 -185
- package/CapAdvancedIcon/use-cases.md +0 -44
- package/CapAlert/README.md +0 -144
- package/CapAppNotEnabled/README.md +0 -84
- package/CapAskAira/README.md +0 -328
- package/CapBanner/README.md +0 -4
- package/CapBlock/README.md +0 -175
- package/CapBorderedBox/Status.md +0 -40
- package/CapCSVFileUploader/README.md +0 -124
- package/CapCSVFileUploader/Status.md +0 -47
- package/CapCard/README.md +0 -85
- package/CapCard/Status.md +0 -41
- package/CapCardBox/README.md +0 -169
- package/CapCardBox/Status.md +0 -52
- package/CapCarousel/README.md +0 -190
- package/CapCarousel/Status.md +0 -73
- package/CapCheckbox/README.md +0 -254
- package/CapCheckbox/Status.md +0 -41
- package/CapColorPicker/README.md +0 -112
- package/CapColorPicker/Status.md +0 -52
- package/CapColorPicker/tests/USE_CASES_ANALYSIS.md +0 -92
- package/CapColoredTag/README.md +0 -167
- package/CapColoredTag/Status.md +0 -49
- package/CapConditionPreview/MIGRATION_ANALYSIS.md +0 -70
- package/CapConditionPreview/README.md +0 -40
- package/CapConditionPreview/tests/USE_CASES_CapConditionPreview.md +0 -65
- package/CapCustomCard/README.md +0 -182
- package/CapCustomCard/Status.md +0 -40
- package/CapCustomCarousel/Status.md +0 -69
- package/CapCustomCheckboxList/README.md +0 -178
- package/CapCustomCheckboxList/Status.md +0 -52
- package/CapCustomCheckboxList/tests/USE_CASES_ANALYSIS.md +0 -174
- package/CapCustomList/README.md +0 -117
- package/CapCustomList/Status.md +0 -77
- package/CapCustomList/tests/USE_CASES_ANALYSIS.md +0 -124
- package/CapCustomSelect/README.md +0 -38
- package/CapDatePicker/README.md +0 -139
- package/CapDateRangePicker/README.md +0 -159
- package/CapDateTimePicker/README.md +0 -136
- package/CapDateTimeRangePicker/README.md +0 -243
- package/CapDivider/README.md +0 -122
- package/CapDrawer/README.md +0 -207
- package/CapDrawer/Status.md +0 -52
- package/CapDrawer/tests/MISSING_USE_CASES.md +0 -170
- package/CapDropdown/README.md +0 -515
- package/CapDropdown/Status.md +0 -45
- package/CapDropdown/tests/USE_CASES_ANALYSIS.md +0 -137
- package/CapError/README.md +0 -88
- package/CapErrorBoundary/CapErrorBoundary-use-cases.md +0 -89
- package/CapErrorBoundary/README.md +0 -150
- package/CapErrorStateIllustration/README.md +0 -222
- package/CapErrorStateIllustration/USE_CASES.md +0 -33
- package/CapExpressionEditor/README.md +0 -32
- package/CapForm/README.md +0 -132
- package/CapForm/Status.md +0 -40
- package/CapForm/tests/PHASE1_UNFULFILLED_USE_CASES.md +0 -113
- package/CapForm/tests/USE_CASES_ANALYSIS.md +0 -119
- package/CapFormItem/README.md +0 -320
- package/CapFormItem/Status.md +0 -73
- package/CapFormItem/tests/USE_CASES_ANALYSIS.md +0 -84
- package/CapGraph/README.md +0 -69
- package/CapGraph/USE_CASES.md +0 -66
- package/CapHamburgerMenu/README.md +0 -234
- package/CapHamburgerMenu/USE_CASES.md +0 -48
- package/CapHeader/Status.md +0 -41
- package/CapHeading/README.md +0 -220
- package/CapHeading/Status.md +0 -41
- package/CapIcon/README.md +0 -207
- package/CapIllustration/Status.md +0 -41
- package/CapImage/README.md +0 -50
- package/CapImportMFEComponent/README.md +0 -121
- package/CapInfoNote/Status.md +0 -40
- package/CapInfoNote/tests/USE_CASES_ANALYSIS.md +0 -114
- package/CapInput/README.md +0 -196
- package/CapInput/Status.md +0 -123
- package/CapInput/tests/USE_CASES_ANALYSIS.md +0 -169
- package/CapLanguageProvider/CapLanguageProvider-use-cases.md +0 -56
- package/CapLanguageProvider/README.md +0 -206
- package/CapLevelGraphRenderer/CapLevelGraphRenderer-test-cases.md +0 -50
- package/CapLevelGraphRenderer/README.md +0 -123
- package/CapLevelGraphRenderer/Tooltip_MIGRATION_ANALYSIS.md +0 -120
- package/CapLink/README.md +0 -203
- package/CapLink/Status.md +0 -32
- package/CapLink/tests/CapLink.missingUseCases.md +0 -95
- package/CapList/README.md +0 -129
- package/CapList/Status.md +0 -69
- package/CapListLayout/README.md +0 -7
- package/CapLogin/README.md +0 -7
- package/CapMenu/README.md +0 -86
- package/CapModal/README.md +0 -357
- package/CapModal/Status.md +0 -52
- package/CapModal/tests/USE_CASES_GAPS.md +0 -207
- package/CapMultiSelect/README.md +0 -170
- package/CapMultiSelect/tests/USE_CASES_ANALYSIS.md +0 -29
- package/CapMultiSelectDatePicker/README.md +0 -11
- package/CapNavigation/README.md +0 -72
- package/CapNotification/README.md +0 -228
- package/CapNotificationDropdown/README.md +0 -5
- package/CapPopover/README.md +0 -234
- package/CapProgress/Status.md +0 -40
- package/CapRadio/Status.md +0 -54
- package/CapRadioButton/README.md +0 -152
- package/CapRadioButton/Status.md +0 -70
- package/CapRadioButton/tests/USE_CASES_ANALYSIS.md +0 -120
- package/CapRadioCard/README.md +0 -161
- package/CapRadioCard/Status.md +0 -78
- package/CapRadioGroup/README.md +0 -141
- package/CapRadioGroup/Status.md +0 -59
- package/CapReorderComponent/README.md +0 -179
- package/CapReorderComponent/Status.md +0 -41
- package/CapRoadMap/README.md +0 -126
- package/CapRoadMap/Status.md +0 -53
- package/CapRoadMap/tests/USE_CASE_GAPS.md +0 -92
- package/CapRow/README.md +0 -424
- package/CapSKUUploader/README.md +0 -189
- package/CapSKUUploader/Status.md +0 -66
- package/CapSecondaryTopBar/README.md +0 -7
- package/CapSelect/README.md +0 -243
- package/CapSelectFilter/README.md +0 -121
- package/CapShape/README.md +0 -96
- package/CapShape/Status.md +0 -36
- package/CapShape/tests/USE_CASES_ANALYSIS.md +0 -120
- package/CapSideBar/README.md +0 -298
- package/CapSideBar/Status.md +0 -5
- package/CapSlideBox/README.md +0 -68
- package/CapSlider/README.md +0 -423
- package/CapSlider/Status.md +0 -48
- package/CapSlider/tests/TEST_COVERAGE.md +0 -118
- package/CapSnackBar/README.md +0 -222
- package/CapSnackBar/Status.md +0 -41
- package/CapSomethingWentWrong/README.md +0 -97
- package/CapSplit/README.md +0 -19
- package/CapStatisticCard/README.md +0 -138
- package/CapStatus/README.md +0 -148
- package/CapStatus/Status.md +0 -40
- package/CapSteps/Status.md +0 -40
- package/CapStepsAccordian/README.md +0 -305
- package/CapStepsAccordian/Status.md +0 -48
- package/CapSupportVideosWrapper/README.md +0 -14
- package/CapSwitch/README.md +0 -351
- package/CapTab/README.md +0 -406
- package/CapTab/Status.md +0 -104
- package/CapTab/tests/USE_CASE_GAPS.md +0 -143
- package/CapTabV3/ANALYSIS.md +0 -60
- package/CapTabV3/README.md +0 -156
- package/CapTabV3/Status.md +0 -52
- package/CapTabV3/tests/USE_CASE_GAPS.md +0 -149
- package/CapTable/README.md +0 -160
- package/CapTable/Status.md +0 -41
- package/CapTag/README.md +0 -16
- package/CapTagDropdown/README.md +0 -171
- package/CapTagDropdown/Status.md +0 -55
- package/CapTimePicker/README.md +0 -170
- package/CapTooltip/README.md +0 -336
- package/CapTooltipWithInfo/Status.md +0 -75
- package/CapTopBar/README.md +0 -146
- package/CapTree/README.md +0 -124
- package/CapTree/Status.md +0 -48
- package/CapTree/tests/STATUS.md +0 -154
- package/CapTreeSelect/README.md +0 -217
- package/CapTreeSelect/Status.md +0 -52
- package/CapTruncateList/README.md +0 -13
- package/CapUnifiedSelect/README.md +0 -40
- package/CapUploader/README.md +0 -313
- package/CapUploader/Status.md +0 -76
- package/CapUploader/tests/USE_CASES_ANALYSIS.md +0 -225
- package/CapUserProfile/README.md +0 -105
- package/CapUserProfile/Status.md +0 -95
- package/CapVirtualList/README.md +0 -162
- package/CapVirtualList/Status.md +0 -71
- package/assets/HOCs/ComponentWithLabelHOC/README.md +0 -230
package/CapCustomCard/README.md
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
# CapCustomCard
|
|
2
|
-
|
|
3
|
-
A custom Card component wrapper around Ant Design's Card component that provides specialized styling and content rendering for various communication channel types (SMS, Email, Mobile Push, WeChat, etc.).
|
|
4
|
-
|
|
5
|
-
## Migration from Ant Design v3 to v6
|
|
6
|
-
|
|
7
|
-
This component has been migrated from Ant Design v3 to v6 with the following changes:
|
|
8
|
-
|
|
9
|
-
### Breaking Changes
|
|
10
|
-
|
|
11
|
-
#### 1. API Changes
|
|
12
|
-
|
|
13
|
-
| v3 API | v6 API | Status | Migration Guide |
|
|
14
|
-
|--------|--------|--------|-----------------|
|
|
15
|
-
| `Avatar icon="user"` | `Avatar icon={<UserOutlined />}` | Breaking | Import `UserOutlined` from `@ant-design/icons` and use as React component |
|
|
16
|
-
|
|
17
|
-
**Example Migration:**
|
|
18
|
-
|
|
19
|
-
```tsx
|
|
20
|
-
// ❌ v3 (deprecated)
|
|
21
|
-
import { Avatar } from 'antd';
|
|
22
|
-
<Avatar icon="user" />
|
|
23
|
-
|
|
24
|
-
// ✅ v6 (current)
|
|
25
|
-
import { Avatar } from 'antd-v5';
|
|
26
|
-
import { UserOutlined } from '@ant-design/icons';
|
|
27
|
-
<Avatar icon={<UserOutlined />} />
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Deprecated Props
|
|
31
|
-
|
|
32
|
-
**No deprecated props exposed to consumers** - This component doesn't expose any deprecated Ant Design props to consumers. All Ant Design Card props passed via `{...rest}` are supported and passed through to the underlying Card component.
|
|
33
|
-
|
|
34
|
-
#### Internal Changes
|
|
35
|
-
|
|
36
|
-
The component uses Ant Design v6 APIs internally:
|
|
37
|
-
- **Avatar icon prop**: Updated from string (`icon="user"`) to React component (`icon={<UserOutlined />}`)
|
|
38
|
-
- **Note**: This change is internal to the component. Consumers don't need to change their code.
|
|
39
|
-
|
|
40
|
-
### Backward Compatibility
|
|
41
|
-
|
|
42
|
-
**Full backward compatibility** - All existing code using CapCustomCard will continue to work without changes. The component maintains the same API surface area and behavior as the v3 version.
|
|
43
|
-
|
|
44
|
-
### Style Changes
|
|
45
|
-
|
|
46
|
-
**Approach**: The component uses `:global()` wrapper in SCSS (nested inside component classes) to target Ant Design's internal Card component structure. All styling has been preserved from the v3 version.
|
|
47
|
-
|
|
48
|
-
### Code Improvements
|
|
49
|
-
|
|
50
|
-
1. **TypeScript Migration**: Converted from PropTypes to TypeScript interfaces
|
|
51
|
-
2. **Functional Component**: Converted CapCustomCardList from class component to functional component
|
|
52
|
-
3. **Icon Updates**: Updated Avatar icon prop to use React component instead of string
|
|
53
|
-
4. **Type Safety**: Added proper TypeScript types for all helper functions and props
|
|
54
|
-
5. **Import Updates**: Updated imports to use `antd-v5` instead of `antd`
|
|
55
|
-
6. **CSS Modules**: Updated to use CSS modules with `import * as styles`
|
|
56
|
-
|
|
57
|
-
### What Stayed the Same
|
|
58
|
-
|
|
59
|
-
- All card types and channel-specific rendering logic
|
|
60
|
-
- All styling and visual appearance
|
|
61
|
-
- Component API surface area
|
|
62
|
-
- Static method `getRichMediaPreview`
|
|
63
|
-
- `CapCustomCardList` subcomponent access via `CapCustomCard.CapCustomCardList`
|
|
64
|
-
- DOM structure (no wrapper divs added)
|
|
65
|
-
|
|
66
|
-
### What Changed
|
|
67
|
-
|
|
68
|
-
- **Removed**: PropTypes dependency
|
|
69
|
-
- **Updated**: Ant Design imports from `antd` to `antd-v5`
|
|
70
|
-
- **Updated**: Avatar icon prop from string to React component (internal change)
|
|
71
|
-
- **Added**: TypeScript type definitions in `types.ts`
|
|
72
|
-
- **Updated**: CapCustomCardList converted to functional component with TypeScript
|
|
73
|
-
|
|
74
|
-
### Props
|
|
75
|
-
|
|
76
|
-
CapCustomCard accepts all props from Ant Design's [Card component](https://ant.design/components/card) plus:
|
|
77
|
-
|
|
78
|
-
| Prop | Type | Default | Description |
|
|
79
|
-
|------|------|---------|-------------|
|
|
80
|
-
| `className` | `string` | - | Additional CSS class name |
|
|
81
|
-
| `type` | `string` | - | Card type/channel (SMS, EMAIL, MOBILEPUSH, WECHAT, etc.) |
|
|
82
|
-
| `content` | `React.ReactNode` | - | Card content to display |
|
|
83
|
-
| `hoverOption` | `React.ReactNode` | - | Content to show on hover |
|
|
84
|
-
| `url` | `string` | - | Image URL for card |
|
|
85
|
-
| `width` | `number \| string` | - | Image width |
|
|
86
|
-
| `height` | `number \| string` | - | Image height |
|
|
87
|
-
| `cardTop` | `React.ReactNode` | - | Content to render above the card |
|
|
88
|
-
| `FBDynamicComponent` | `React.ComponentType` | - | Dynamic component for Facebook card type |
|
|
89
|
-
| `buttonText` | `React.ReactNode` | - | Button text for Viber card type |
|
|
90
|
-
| `fbType` | `string` | - | Facebook card type ('list' or default) |
|
|
91
|
-
| `mediaContent` | `React.ReactNode` | - | Custom media content for Viber |
|
|
92
|
-
| `isNewMobilePush` | `boolean` | - | Whether to use new mobile push format |
|
|
93
|
-
|
|
94
|
-
### Usage
|
|
95
|
-
|
|
96
|
-
```tsx
|
|
97
|
-
import { CapCustomCard } from '@capillarytech/blaze-ui';
|
|
98
|
-
|
|
99
|
-
// Basic usage
|
|
100
|
-
<CapCustomCard type="SMS" content="Hello world" />
|
|
101
|
-
|
|
102
|
-
// With image
|
|
103
|
-
<CapCustomCard
|
|
104
|
-
type="EMAIL"
|
|
105
|
-
url="/path/to/image.jpg"
|
|
106
|
-
width={244}
|
|
107
|
-
height={279}
|
|
108
|
-
/>
|
|
109
|
-
|
|
110
|
-
// With hover option
|
|
111
|
-
<CapCustomCard
|
|
112
|
-
type="MOBILEPUSH"
|
|
113
|
-
content={previewContent}
|
|
114
|
-
hoverOption={<button>Edit</button>}
|
|
115
|
-
/>
|
|
116
|
-
|
|
117
|
-
// Using CapCustomCardList
|
|
118
|
-
import CapCustomCard from '@capillarytech/blaze-ui/components/CapCustomCard';
|
|
119
|
-
|
|
120
|
-
<CapCustomCard.CapCustomCardList
|
|
121
|
-
cardList={[
|
|
122
|
-
{ type: 'SMS', content: 'Message 1', key: '1' },
|
|
123
|
-
{ type: 'EMAIL', content: 'Message 2', key: '2' },
|
|
124
|
-
]}
|
|
125
|
-
type="SMS"
|
|
126
|
-
/>
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Import Examples
|
|
130
|
-
|
|
131
|
-
```tsx
|
|
132
|
-
// Default import
|
|
133
|
-
import CapCustomCard from '@capillarytech/blaze-ui/components/CapCustomCard';
|
|
134
|
-
|
|
135
|
-
// Named import
|
|
136
|
-
import { CapCustomCard } from '@capillarytech/blaze-ui';
|
|
137
|
-
|
|
138
|
-
// Type import
|
|
139
|
-
import type { CapCustomCardProps, CapCustomCardListProps } from '@capillarytech/blaze-ui';
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### Supported Channel Types
|
|
143
|
-
|
|
144
|
-
The component supports the following channel types with specialized rendering:
|
|
145
|
-
|
|
146
|
-
- `SMS` - Text message preview
|
|
147
|
-
- `EMAIL` - Email template preview with image support
|
|
148
|
-
- `MOBILEPUSH` / `MPUSH` - Mobile push notification preview
|
|
149
|
-
- `WECHAT` - WeChat message preview with rich media support
|
|
150
|
-
- `FACEBOOK` - Facebook post preview
|
|
151
|
-
- `VIBER` - Viber message preview
|
|
152
|
-
- `WHATSAPP` - WhatsApp message preview
|
|
153
|
-
- `RCS` - RCS message preview
|
|
154
|
-
- `ZALO` - Zalo message preview
|
|
155
|
-
- `INAPP` - In-app message preview
|
|
156
|
-
- `LINE` - LINE message preview
|
|
157
|
-
- `CALL_TASK` - Call task preview
|
|
158
|
-
|
|
159
|
-
### Static Methods
|
|
160
|
-
|
|
161
|
-
#### `getRichMediaPreview`
|
|
162
|
-
|
|
163
|
-
Static method to generate rich media preview content:
|
|
164
|
-
|
|
165
|
-
```tsx
|
|
166
|
-
import CapCustomCard from '@capillarytech/blaze-ui/components/CapCustomCard';
|
|
167
|
-
|
|
168
|
-
const preview = CapCustomCard.getRichMediaPreview(contentDetails);
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Styling
|
|
172
|
-
|
|
173
|
-
The component uses SCSS with CSS modules. Key classes:
|
|
174
|
-
|
|
175
|
-
- `.cap-custom-card` - Applied to the Ant Design Card component
|
|
176
|
-
- `.hover-content` - Content shown on hover
|
|
177
|
-
- `.app-name` - App name header for mobile push/in-app cards
|
|
178
|
-
- `.ios-action-buttons` - iOS action buttons container
|
|
179
|
-
- `.wechat-card-body` - WeChat card body container
|
|
180
|
-
- `.richmedia-template` - Rich media template container
|
|
181
|
-
|
|
182
|
-
Custom styling can be applied via the `className` prop or by overriding the SCSS classes.
|
package/CapCustomCard/Status.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Migration Status: CapCustomCard
|
|
2
|
-
|
|
3
|
-
**Last Updated**: 2026-02-12 11:35:43
|
|
4
|
-
|
|
5
|
-
## Migration Steps
|
|
6
|
-
|
|
7
|
-
- [x] **Step 0**: Setup branch and remote tracking
|
|
8
|
-
- [x] **Step 1**: Migration Prompt 1 (Main migration)
|
|
9
|
-
- [x] **Step 2**: Migration Prompt 2 (Storybook support)
|
|
10
|
-
- [x] **Step 3**: Migration Prompt 3 (Unit tests)
|
|
11
|
-
- [x] **Step 4**: Migration Prompt 4 (Visual test cases)
|
|
12
|
-
- [x] **Step 5**: Linting (ESLint)
|
|
13
|
-
- [x] **Step 6**: Pre-build Validation
|
|
14
|
-
- [ ] **Step 7**: Build blaze-ui
|
|
15
|
-
- [ ] **Step 8**: Visual Testing
|
|
16
|
-
- [ ] **Step 9**: CSS Analysis (if mismatches found)
|
|
17
|
-
- [ ] **Step 9.5**: CSS Analysis Completed
|
|
18
|
-
- [ ] **Step 10**: Git Commit & Push to branch (pre-commit hook will run tests)
|
|
19
|
-
- [ ] **Step 11**: Create Pull Request
|
|
20
|
-
|
|
21
|
-
## Visual Testing Results
|
|
22
|
-
|
|
23
|
-
**Last Test**: 2026-02-12 11:35:43
|
|
24
|
-
**Maximum Mismatch**: 0%
|
|
25
|
-
|
|
26
|
-
### Mismatched Variants:
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
## CSS Fixes Applied
|
|
31
|
-
|
|
32
|
-
**Date**: 2026-01-29 09:37:38
|
|
33
|
-
**Summary**: CSS fixes applied based on visual testing analysis.
|
|
34
|
-
|
|
35
|
-
_See full analysis in: `/Users/sarahkhader/repos/migration/blaze-ui/tools/visual-testing/report/CapCustomCard/css-fix-analysis.md`_
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
## Notes
|
|
39
|
-
|
|
40
|
-
_No notes yet._
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# Migration Status: CapCustomCarousel
|
|
2
|
-
|
|
3
|
-
**Last Updated**: 2026-02-21 19:00:00
|
|
4
|
-
|
|
5
|
-
## Migration Steps
|
|
6
|
-
|
|
7
|
-
- [x] **Step 0**: Setup branch and remote tracking
|
|
8
|
-
- [x] **Step 1**: Migration Prompt 1 (Main migration)
|
|
9
|
-
- [x] **Step 1.5**: Export component in blaze-ui/components/index.ts
|
|
10
|
-
- [x] **Step 2**: Migration Prompt 2 (Storybook support)
|
|
11
|
-
- [x] **Step 2.5**: Verify deprecated props and prop changes (REQUIRED - enforced)
|
|
12
|
-
- [x] **Step 3**: Migration Prompt 3 (Unit tests)
|
|
13
|
-
- [x] **Step 4**: Migration Prompt 4 (Visual test cases)
|
|
14
|
-
- [x] **Step 5**: Linting (ESLint)
|
|
15
|
-
- [x] **Step 6**: Pre-build Validation
|
|
16
|
-
- [x] **Step 7**: Build blaze-ui
|
|
17
|
-
- [x] **Step 8**: Visual Testing
|
|
18
|
-
- [x] **Step 8.1**: Pre-visual-test check (agent verification)
|
|
19
|
-
- [x] **Step 8.2**: Visual comparison
|
|
20
|
-
- [x] **Step 8.3**: Visual diff analysis (agent analysis)
|
|
21
|
-
- [x] **Step 9**: CSS Analysis (if mismatches found)
|
|
22
|
-
- [x] **Step 9.5**: CSS Analysis Completed
|
|
23
|
-
- [ ] **Step 10**: Git Commit & Push to branch (pre-commit hook will run tests)
|
|
24
|
-
- [ ] **Step 11**: Create Pull Request
|
|
25
|
-
|
|
26
|
-
## Deprecated Props Verification
|
|
27
|
-
|
|
28
|
-
_No deprecated props verification results yet._
|
|
29
|
-
|
|
30
|
-
**Note**: Step 2.5 is REQUIRED and enforced.
|
|
31
|
-
- Focus: **Ant Design component prop changes** (e.g., Dropdown, Input, Alert, Tooltip, etc.)
|
|
32
|
-
- Reference: MIGRATION_CHANGELOG_TEMPLATE.md for format, ANTD_V6_MIGRATION.md for Ant Design deprecated APIs
|
|
33
|
-
- Skip: If original component doesn't exist in cap-ui-library
|
|
34
|
-
- All deprecated Ant Design props and prop changes must be documented before proceeding.
|
|
35
|
-
|
|
36
|
-
## Visual Testing Results
|
|
37
|
-
|
|
38
|
-
All 8 variants passed (threshold: 1.5%):
|
|
39
|
-
|
|
40
|
-
| Variant | Diff % | Status |
|
|
41
|
-
|---------|--------|--------|
|
|
42
|
-
| default | 0.34% | ✓ Pass |
|
|
43
|
-
| custom-gap | 0.35% | ✓ Pass |
|
|
44
|
-
| no-heading | 0.27% | ✓ Pass |
|
|
45
|
-
| long-list | 0.34% | ✓ Pass |
|
|
46
|
-
| single-card | 0.42% | ✓ Pass |
|
|
47
|
-
| empty-data | 0.18% | ✓ Pass |
|
|
48
|
-
| second-slide-selected | 0.34% | ✓ Pass |
|
|
49
|
-
| third-slide-selected | 0.34% | ✓ Pass |
|
|
50
|
-
|
|
51
|
-
Screenshots confirmed:
|
|
52
|
-
- `second-slide-selected`: Slide 2 tab selected (bold + underline), Card 2 visible — click switching WORKING ✓
|
|
53
|
-
- `third-slide-selected`: Slide 2 tab selected (bold + underline), Card 2 and Card 3 visible — click switching WORKING ✓
|
|
54
|
-
|
|
55
|
-
Minor diffs (0.34–0.42%) are from antd v3→v6 styling differences (Row/Col flex layout). Not regressions.
|
|
56
|
-
|
|
57
|
-
## CSS Fixes Applied
|
|
58
|
-
|
|
59
|
-
1. **Card shrinking (antd v6 flex)**: Added `style={{ flexShrink: 0 }}` inline to the card item CapRow in `index.tsx`. antd v5 `Row` renders as `display: flex` with default `flex-shrink: 1`, causing cards to shrink. Inline style overrides any CSS-in-JS conflicts.
|
|
60
|
-
|
|
61
|
-
## Notes
|
|
62
|
-
|
|
63
|
-
- Fixed `carouselId` to use `useRef` so it remains stable across re-renders (was `Math.random()` outside any hook, causing a new ID on every state update)
|
|
64
|
-
- Fixed `handleSlidesOnAction` to directly call `setCarouselItemIndex(index)` so the selected tab indicator updates immediately on click (previously relied solely on scroll event which may not fire in all cases)
|
|
65
|
-
- Added `second-slide-selected` and `third-slide-selected` interaction test cases to both consumer testCases.js to verify click/switching behavior visually
|
|
66
|
-
- Used `type: 'evaluate'` interactions with `.cap-custom-carousel-header-item:nth-child(N)` selectors (avoid `]` chars in scripts due to test-case-loader.js regex limitation)
|
|
67
|
-
- Fixed `image-utils.js` to handle `evaluate` interaction type (runs arbitrary JS in page context)
|
|
68
|
-
- Fixed `test-case-loader.js` fallback parser to extract `script` property from `evaluate` interactions
|
|
69
|
-
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
# CapCustomCheckboxList Component
|
|
2
|
-
|
|
3
|
-
A component that renders a horizontal list of custom checkbox items, each with an icon, title, and optional inductive text.
|
|
4
|
-
|
|
5
|
-
## Migration from Ant Design v3 to v6
|
|
6
|
-
|
|
7
|
-
This component has been migrated from Ant Design v3 to v6 with the following changes:
|
|
8
|
-
|
|
9
|
-
### Breaking Changes
|
|
10
|
-
|
|
11
|
-
**No breaking changes** - The component maintains full backward compatibility.
|
|
12
|
-
|
|
13
|
-
The component uses `CapCheckbox.Group` which is already migrated to Ant Design v6. The Checkbox.Group API is stable across v3→v6 with no deprecated props.
|
|
14
|
-
|
|
15
|
-
### Deprecated Props
|
|
16
|
-
|
|
17
|
-
**No deprecated Ant Design props** - The component uses `Checkbox.Group` from Ant Design v6, which has no deprecated props in the v3→v6 migration.
|
|
18
|
-
|
|
19
|
-
**Ant Design Component Used:**
|
|
20
|
-
- **Checkbox.Group** (`antd-v5` package) - Used via `CapCheckbox.Group`
|
|
21
|
-
|
|
22
|
-
**Verification:**
|
|
23
|
-
According to the [Ant Design v6 Migration Guide](https://ant.design/docs/react/migration-v6) and the project's `ANTD_V6_MIGRATION.md`, `Checkbox.Group` is not listed among components with deprecated props. The Checkbox.Group API remains stable across Ant Design v3→v6 with no prop changes required.
|
|
24
|
-
|
|
25
|
-
**Note:** If you encounter any deprecated prop warnings related to Checkbox.Group in the future, please report them as they would indicate a change in Ant Design's API.
|
|
26
|
-
|
|
27
|
-
### Backward Compatibility
|
|
28
|
-
|
|
29
|
-
All props remain backward compatible. The component maintains the same API and behavior as before.
|
|
30
|
-
|
|
31
|
-
### Style Changes
|
|
32
|
-
|
|
33
|
-
**Approach**: The component uses custom SCSS classes with no Ant Design style overrides. All styling is handled through component-specific classes and SCSS variables.
|
|
34
|
-
|
|
35
|
-
### Code Improvements
|
|
36
|
-
|
|
37
|
-
1. **TypeScript Conversion**: Converted from JavaScript with PropTypes to TypeScript with proper type definitions
|
|
38
|
-
2. **Type Safety**: Added comprehensive TypeScript interfaces in `types.ts`
|
|
39
|
-
3. **Modern React Patterns**: Uses functional component with React.FC
|
|
40
|
-
4. **Improved Code Quality**: Uses `classnames` library (consistent with codebase), proper type exports
|
|
41
|
-
|
|
42
|
-
### What Stayed the Same
|
|
43
|
-
|
|
44
|
-
- Component API (`paneList`, `className`, and all Checkbox.Group props)
|
|
45
|
-
- Visual appearance and styling
|
|
46
|
-
- Behavior and functionality
|
|
47
|
-
- Class names for backward compatibility
|
|
48
|
-
|
|
49
|
-
### What Changed
|
|
50
|
-
|
|
51
|
-
- **Added**: TypeScript types and interfaces
|
|
52
|
-
- **Added**: Proper type exports
|
|
53
|
-
- **Improved**: Code structure and maintainability
|
|
54
|
-
- **Updated**: Dependencies (uses `classnames` instead of `classNames` require)
|
|
55
|
-
|
|
56
|
-
## Props
|
|
57
|
-
|
|
58
|
-
| Prop Name | Type | Default | Description |
|
|
59
|
-
|-----------|------|---------|-------------|
|
|
60
|
-
| `paneList` | `PaneListItem[]` | **Required** | Array of checkbox items to render |
|
|
61
|
-
| `className` | `string` | `undefined` | Additional CSS class name |
|
|
62
|
-
| `value` | `(string \| number)[]` | `undefined` | Controlled value (Checkbox.Group prop) |
|
|
63
|
-
| `defaultValue` | `(string \| number)[]` | `undefined` | Default value (Checkbox.Group prop) |
|
|
64
|
-
| `onChange` | `(checkedValue: (string \| number)[]) => void` | `undefined` | Callback when selection changes (Checkbox.Group prop) |
|
|
65
|
-
| `disabled` | `boolean` | `undefined` | Whether all checkboxes are disabled (Checkbox.Group prop) |
|
|
66
|
-
| `...rest` | `CheckboxGroupProps` | - | All other Ant Design Checkbox.Group props are supported |
|
|
67
|
-
|
|
68
|
-
### PaneListItem Interface
|
|
69
|
-
|
|
70
|
-
| Prop Name | Type | Default | Description |
|
|
71
|
-
|-----------|------|---------|-------------|
|
|
72
|
-
| `key` | `string \| number` | `undefined` | Unique key for React (falls back to index if not provided) |
|
|
73
|
-
| `title` | `string` | **Required** | Title text displayed as the checkbox label |
|
|
74
|
-
| `inductiveText` | `string` | `undefined` | Optional inductive text displayed below the title |
|
|
75
|
-
| `iconProps` | `CapIconProps` | `undefined` | Optional props for the icon component |
|
|
76
|
-
| `...rest` | `CapCheckboxProps` | - | All other CapCheckbox props are supported (e.g., `value`, `checked`, `disabled`) |
|
|
77
|
-
|
|
78
|
-
## Usage
|
|
79
|
-
|
|
80
|
-
### Basic Example
|
|
81
|
-
|
|
82
|
-
```tsx
|
|
83
|
-
import { CapCustomCheckboxList } from '@capillarytech/blaze-ui';
|
|
84
|
-
import type { PaneListItem } from '@capillarytech/blaze-ui';
|
|
85
|
-
|
|
86
|
-
const items: PaneListItem[] = [
|
|
87
|
-
{
|
|
88
|
-
key: '1',
|
|
89
|
-
title: 'Option 1',
|
|
90
|
-
value: 'option1',
|
|
91
|
-
iconProps: { type: 'check' },
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
key: '2',
|
|
95
|
-
title: 'Option 2',
|
|
96
|
-
value: 'option2',
|
|
97
|
-
iconProps: { type: 'star' },
|
|
98
|
-
inductiveText: 'Additional information',
|
|
99
|
-
},
|
|
100
|
-
];
|
|
101
|
-
|
|
102
|
-
function MyComponent() {
|
|
103
|
-
return <CapCustomCheckboxList paneList={items} />;
|
|
104
|
-
}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Controlled Example
|
|
108
|
-
|
|
109
|
-
```tsx
|
|
110
|
-
import { useState } from 'react';
|
|
111
|
-
import { CapCustomCheckboxList } from '@capillarytech/blaze-ui';
|
|
112
|
-
|
|
113
|
-
function Form() {
|
|
114
|
-
const [selectedValues, setSelectedValues] = useState<string[]>([]);
|
|
115
|
-
|
|
116
|
-
const items = [
|
|
117
|
-
{ key: '1', title: 'Option 1', value: 'option1', iconProps: { type: 'check' } },
|
|
118
|
-
{ key: '2', title: 'Option 2', value: 'option2', iconProps: { type: 'star' } },
|
|
119
|
-
];
|
|
120
|
-
|
|
121
|
-
return (
|
|
122
|
-
<CapCustomCheckboxList
|
|
123
|
-
paneList={items}
|
|
124
|
-
value={selectedValues}
|
|
125
|
-
onChange={(values) => setSelectedValues(values as string[])}
|
|
126
|
-
/>
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### With All Checkbox.Group Props
|
|
132
|
-
|
|
133
|
-
```tsx
|
|
134
|
-
<CapCustomCheckboxList
|
|
135
|
-
paneList={items}
|
|
136
|
-
defaultValue={['option1']}
|
|
137
|
-
disabled={false}
|
|
138
|
-
onChange={(values) => console.log(values)}
|
|
139
|
-
/>
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Styling
|
|
143
|
-
|
|
144
|
-
The component uses SCSS with the following class structure:
|
|
145
|
-
|
|
146
|
-
- `.cap-customCheckboxList-v2` - Main container for each checkbox item
|
|
147
|
-
- `.div-icon` - Icon container
|
|
148
|
-
- `.customCheckbox-icon` - Icon styling
|
|
149
|
-
- `.customCheckbox-inductive-text` - Inductive text styling
|
|
150
|
-
- `.customCheckbox` - Checkbox wrapper styling
|
|
151
|
-
|
|
152
|
-
All styles use SCSS variables from `components/styles/_variables.scss` for consistency.
|
|
153
|
-
|
|
154
|
-
## TypeScript
|
|
155
|
-
|
|
156
|
-
```typescript
|
|
157
|
-
import type { CapCustomCheckboxListProps, PaneListItem } from '@capillarytech/blaze-ui';
|
|
158
|
-
|
|
159
|
-
const items: PaneListItem[] = [
|
|
160
|
-
{
|
|
161
|
-
key: '1',
|
|
162
|
-
title: 'Option 1',
|
|
163
|
-
value: 'option1',
|
|
164
|
-
iconProps: { type: 'check' },
|
|
165
|
-
},
|
|
166
|
-
];
|
|
167
|
-
|
|
168
|
-
const MyComponent: React.FC = () => {
|
|
169
|
-
return <CapCustomCheckboxList paneList={items} />;
|
|
170
|
-
};
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
## Notes
|
|
174
|
-
|
|
175
|
-
- Each item in `paneList` should have a unique `key` prop for optimal React performance. If not provided, the array index is used as fallback.
|
|
176
|
-
- The component renders items horizontally using flexbox (`display: flex`).
|
|
177
|
-
- All Ant Design Checkbox.Group props are supported through prop spreading.
|
|
178
|
-
- The component maintains backward compatibility with existing class names and structure.
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Migration Status: CapCustomCheckboxList
|
|
2
|
-
|
|
3
|
-
**Last Updated**: 2026-02-06 09:53:16
|
|
4
|
-
|
|
5
|
-
## Migration Steps
|
|
6
|
-
|
|
7
|
-
- [x] **Step 0**: Setup branch and remote tracking
|
|
8
|
-
- [x] **Step 1**: Migration Prompt 1 (Main migration)
|
|
9
|
-
- [x] **Step 1.5**: Export component in blaze-ui/components/index.ts
|
|
10
|
-
- [x] **Step 2**: Migration Prompt 2 (Storybook support)
|
|
11
|
-
- [x] **Step 2.5**: Verify deprecated props and prop changes (REQUIRED - enforced)
|
|
12
|
-
- [x] **Step 3**: Migration Prompt 3 (Unit tests)
|
|
13
|
-
- [x] **Step 4**: Migration Prompt 4 (Visual test cases)
|
|
14
|
-
- [x] **Step 5**: Linting (ESLint)
|
|
15
|
-
- [x] **Step 6**: Pre-build Validation
|
|
16
|
-
- [x] **Step 7**: Build blaze-ui
|
|
17
|
-
- [x] **Step 8**: Visual Testing
|
|
18
|
-
- [x] **Step 9**: CSS Analysis (if mismatches found)
|
|
19
|
-
- [x] **Step 9.5**: CSS Analysis Completed
|
|
20
|
-
- [x] **Step 10**: Git Commit & Push to branch (pre-commit hook will run tests)
|
|
21
|
-
- [x] **Step 11**: Create Pull Request
|
|
22
|
-
|
|
23
|
-
## Deprecated Props Verification
|
|
24
|
-
|
|
25
|
-
_No deprecated props verification results yet._
|
|
26
|
-
|
|
27
|
-
**Note**: Step 2.5 is REQUIRED and enforced.
|
|
28
|
-
- Focus: **Ant Design component prop changes** (e.g., Dropdown, Input, Alert, Tooltip, etc.)
|
|
29
|
-
- Reference: MIGRATION_CHANGELOG_TEMPLATE.md for format, ANTD_V6_MIGRATION.md for Ant Design deprecated APIs
|
|
30
|
-
- Skip: If original component doesn't exist in cap-ui-library
|
|
31
|
-
- All deprecated Ant Design props and prop changes must be documented before proceeding.
|
|
32
|
-
|
|
33
|
-
## Visual Testing Results
|
|
34
|
-
|
|
35
|
-
**Last Test**: 2026-02-06 09:53:16
|
|
36
|
-
**Maximum Mismatch**: 4.47%
|
|
37
|
-
|
|
38
|
-
### Mismatched Variants:
|
|
39
|
-
- long-content:4.47%
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
## CSS Fixes Applied
|
|
43
|
-
|
|
44
|
-
**Date**: 2026-02-01 01:37:16
|
|
45
|
-
**Summary**: CSS fixes applied based on visual testing analysis.
|
|
46
|
-
|
|
47
|
-
_See full analysis in: `/Users/sarahkhader/repos/migration/blaze-ui/tools/visual-testing/report/CapCustomCheckboxList/css-fix-analysis.md`_
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
## Notes
|
|
51
|
-
|
|
52
|
-
_No notes yet._
|