Skip to content

Commit 544ac9b

Browse files
github-actions[bot]prosdev
authored andcommitted
chore: release packages
1 parent 91e8c94 commit 544ac9b

File tree

5 files changed

+247
-109
lines changed

5 files changed

+247
-109
lines changed

.changeset/phase-2-presentation-layer.md

Lines changed: 0 additions & 107 deletions
This file was deleted.

packages/core/CHANGELOG.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,130 @@
11
# @prosdevlab/experience-sdk
22

3+
## 0.3.0
4+
5+
### Minor Changes
6+
7+
- 2fc279c: **Phase 2: Presentation Layer - Modal & Inline Plugins**
8+
9+
This release introduces two powerful new rendering plugins with built-in form support, completing the presentation layer for the Experience SDK.
10+
11+
## 🎉 New Features
12+
13+
### Modal Plugin
14+
15+
- **Rich Content Modals**: Display announcements, promotions, and interactive content
16+
- **Built-in Forms**: Email capture, surveys, and feedback forms with validation
17+
- **Size Variants**: Small, medium, large, and extra-large sizes
18+
- **Hero Images**: Full-width images for visual impact
19+
- **Responsive Design**: Mobile fullscreen mode for optimal UX
20+
- **Keyboard Navigation**: Focus trap, Escape key, Tab navigation
21+
- **Animations**: Smooth fade-in/fade-out transitions
22+
- **Form States**: Success, error, and loading states
23+
- **API Methods**: `show()`, `remove()`, `isShowing()`, `showFormState()`, `resetForm()`, `getFormData()`
24+
25+
### Inline Plugin
26+
27+
- **DOM Insertion**: Embed content anywhere in your page
28+
- **5 Insertion Methods**: `replace`, `append`, `prepend`, `before`, `after`
29+
- **CSS Selector Targeting**: Use any valid selector to target elements
30+
- **Dismissal with Persistence**: Users can dismiss and it persists in localStorage
31+
- **No Layout Disruption**: Seamlessly integrates with existing page structure
32+
- **API Methods**: `show()`, `remove()`, `isShowing()`
33+
34+
### Forms (Built into Modal)
35+
36+
- **Field Types**: text, email, url, tel, number, textarea, select, checkbox, radio
37+
- **Validation**: Required, email, URL, pattern, custom validation, min/max length
38+
- **Real-time Feedback**: Validates on blur, shows errors inline
39+
- **Submission Handling**: Emits `experiences:modal:form:submit` event
40+
- **Success/Error States**: Built-in UI for post-submission states
41+
- **Pure Functions**: Validation and rendering logic easily extractable
42+
43+
## 🎨 Theming & Customization
44+
45+
### CSS Variables
46+
47+
All plugins now support CSS variable theming:
48+
49+
- **Modal**: `--xp-modal-*` variables for backdrop, dialog, title, content, buttons
50+
- **Forms**: `--xp-form-*` variables for inputs, labels, errors, submit button
51+
- **Banner**: `--xp-banner-*` variables (refactored from inline styles)
52+
- **Inline**: `--xp-inline-*` variables for custom styling
53+
54+
See the [Theming Guide](https://prosdevlab.github.io/experience-sdk/guides/theming) for full reference.
55+
56+
## 🔧 API Improvements
57+
58+
### Runtime
59+
60+
- **Auto-registration**: Modal and inline plugins are automatically registered
61+
- **Plugin API Access**: Expose plugin APIs via singleton (`experiences.modal.show()`)
62+
- **Trigger Event Handling**: Explicit listeners for each trigger type (exit intent, scroll depth, time delay)
63+
64+
### Display Conditions
65+
66+
Seamless integration with existing display condition plugins:
67+
68+
- **Exit Intent + Modal**: Capture emails before users leave
69+
- **Scroll Depth + Inline**: Progressive feature discovery
70+
- **Time Delay + Modal**: Time-sensitive promotions
71+
- **Page Visits + Banner**: Returning user messages
72+
73+
## 📦 Bundle Size
74+
75+
- **Core SDK**: 13.4 KB gzipped (under 15 KB target ✅)
76+
- **All Plugins**: ~26 KB gzipped total (smaller than competitors like Pathfora at ~47 KB)
77+
- **Excellent Compression**: CSS-in-JS with CSS variables maintains small footprint
78+
79+
## 🧪 Testing
80+
81+
- **432 tests passing** (unit, integration, browser tests)
82+
- **Modal Plugin**: 56 tests for core functionality, forms, keyboard nav, accessibility
83+
- **Inline Plugin**: 24 tests for DOM insertion, dismissal, persistence
84+
- **Form Validation**: 35 tests for all field types and edge cases
85+
- **Integration Tests**: 10 tests for plugin interactions
86+
- **Exit Intent**: 21 tests with timing and sensitivity validation
87+
88+
## 📚 Documentation
89+
90+
- **Modal Plugin Reference**: Complete API docs with examples
91+
- **Inline Plugin Reference**: Full insertion method documentation
92+
- **Theming Guide**: CSS variable reference with examples
93+
- **Use Case Examples**: 4 complete implementation guides in playground
94+
95+
## 🚀 Playground Enhancements
96+
97+
- **Layout Gallery Hub**: Visual directory for banner, modal, and inline layouts
98+
- **Navigation System**: Breadcrumbs and sub-navigation tabs
99+
- **Use Case Examples**:
100+
- Exit Intent Email Capture (exit intent + modal forms)
101+
- Feature Discovery Journey (scroll depth + inline + modal)
102+
- Time-Delayed Promotions (time delay + hero image modal)
103+
- Promotions & Announcements (banner examples)
104+
- **Interactive Demos**: Live examples with SDK integration
105+
106+
## ⚠️ Breaking Changes
107+
108+
None. This is a **minor** release with backward compatibility.
109+
110+
## 🔜 Next Steps (Phase 3+)
111+
112+
- Browser tests for form focus management
113+
- Composable form plugin (separate from modal)
114+
- Additional layout plugins (tooltip, slideout, sticky bar)
115+
- Multi-instance support with `instanceId` tracking
116+
117+
***
118+
119+
**Migration Guide**: No migration needed. Simply upgrade and start using the new plugins!
120+
121+
**Full Changelog**: See [Phase 2 Spec](https://github.com/prosdevlab/experience-sdk/blob/main/specs/phase-2-presentation-layer/spec.md)
122+
123+
### Patch Changes
124+
125+
- Updated dependencies [2fc279c]
126+
- @prosdevlab/experience-sdk-plugins@0.3.0
127+
3128
## 0.2.0
4129

5130
### Minor Changes

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@prosdevlab/experience-sdk",
3-
"version": "0.2.0",
3+
"version": "0.3.0",
44
"description": "A lightweight, explainable client-side experience runtime",
55
"private": false,
66
"type": "module",

packages/plugins/CHANGELOG.md

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,125 @@
11
# @prosdevlab/experience-sdk-plugins
22

3+
## 0.3.0
4+
5+
### Minor Changes
6+
7+
- 2fc279c: **Phase 2: Presentation Layer - Modal & Inline Plugins**
8+
9+
This release introduces two powerful new rendering plugins with built-in form support, completing the presentation layer for the Experience SDK.
10+
11+
## 🎉 New Features
12+
13+
### Modal Plugin
14+
15+
- **Rich Content Modals**: Display announcements, promotions, and interactive content
16+
- **Built-in Forms**: Email capture, surveys, and feedback forms with validation
17+
- **Size Variants**: Small, medium, large, and extra-large sizes
18+
- **Hero Images**: Full-width images for visual impact
19+
- **Responsive Design**: Mobile fullscreen mode for optimal UX
20+
- **Keyboard Navigation**: Focus trap, Escape key, Tab navigation
21+
- **Animations**: Smooth fade-in/fade-out transitions
22+
- **Form States**: Success, error, and loading states
23+
- **API Methods**: `show()`, `remove()`, `isShowing()`, `showFormState()`, `resetForm()`, `getFormData()`
24+
25+
### Inline Plugin
26+
27+
- **DOM Insertion**: Embed content anywhere in your page
28+
- **5 Insertion Methods**: `replace`, `append`, `prepend`, `before`, `after`
29+
- **CSS Selector Targeting**: Use any valid selector to target elements
30+
- **Dismissal with Persistence**: Users can dismiss and it persists in localStorage
31+
- **No Layout Disruption**: Seamlessly integrates with existing page structure
32+
- **API Methods**: `show()`, `remove()`, `isShowing()`
33+
34+
### Forms (Built into Modal)
35+
36+
- **Field Types**: text, email, url, tel, number, textarea, select, checkbox, radio
37+
- **Validation**: Required, email, URL, pattern, custom validation, min/max length
38+
- **Real-time Feedback**: Validates on blur, shows errors inline
39+
- **Submission Handling**: Emits `experiences:modal:form:submit` event
40+
- **Success/Error States**: Built-in UI for post-submission states
41+
- **Pure Functions**: Validation and rendering logic easily extractable
42+
43+
## 🎨 Theming & Customization
44+
45+
### CSS Variables
46+
47+
All plugins now support CSS variable theming:
48+
49+
- **Modal**: `--xp-modal-*` variables for backdrop, dialog, title, content, buttons
50+
- **Forms**: `--xp-form-*` variables for inputs, labels, errors, submit button
51+
- **Banner**: `--xp-banner-*` variables (refactored from inline styles)
52+
- **Inline**: `--xp-inline-*` variables for custom styling
53+
54+
See the [Theming Guide](https://prosdevlab.github.io/experience-sdk/guides/theming) for full reference.
55+
56+
## 🔧 API Improvements
57+
58+
### Runtime
59+
60+
- **Auto-registration**: Modal and inline plugins are automatically registered
61+
- **Plugin API Access**: Expose plugin APIs via singleton (`experiences.modal.show()`)
62+
- **Trigger Event Handling**: Explicit listeners for each trigger type (exit intent, scroll depth, time delay)
63+
64+
### Display Conditions
65+
66+
Seamless integration with existing display condition plugins:
67+
68+
- **Exit Intent + Modal**: Capture emails before users leave
69+
- **Scroll Depth + Inline**: Progressive feature discovery
70+
- **Time Delay + Modal**: Time-sensitive promotions
71+
- **Page Visits + Banner**: Returning user messages
72+
73+
## 📦 Bundle Size
74+
75+
- **Core SDK**: 13.4 KB gzipped (under 15 KB target ✅)
76+
- **All Plugins**: ~26 KB gzipped total (smaller than competitors like Pathfora at ~47 KB)
77+
- **Excellent Compression**: CSS-in-JS with CSS variables maintains small footprint
78+
79+
## 🧪 Testing
80+
81+
- **432 tests passing** (unit, integration, browser tests)
82+
- **Modal Plugin**: 56 tests for core functionality, forms, keyboard nav, accessibility
83+
- **Inline Plugin**: 24 tests for DOM insertion, dismissal, persistence
84+
- **Form Validation**: 35 tests for all field types and edge cases
85+
- **Integration Tests**: 10 tests for plugin interactions
86+
- **Exit Intent**: 21 tests with timing and sensitivity validation
87+
88+
## 📚 Documentation
89+
90+
- **Modal Plugin Reference**: Complete API docs with examples
91+
- **Inline Plugin Reference**: Full insertion method documentation
92+
- **Theming Guide**: CSS variable reference with examples
93+
- **Use Case Examples**: 4 complete implementation guides in playground
94+
95+
## 🚀 Playground Enhancements
96+
97+
- **Layout Gallery Hub**: Visual directory for banner, modal, and inline layouts
98+
- **Navigation System**: Breadcrumbs and sub-navigation tabs
99+
- **Use Case Examples**:
100+
- Exit Intent Email Capture (exit intent + modal forms)
101+
- Feature Discovery Journey (scroll depth + inline + modal)
102+
- Time-Delayed Promotions (time delay + hero image modal)
103+
- Promotions & Announcements (banner examples)
104+
- **Interactive Demos**: Live examples with SDK integration
105+
106+
## ⚠️ Breaking Changes
107+
108+
None. This is a **minor** release with backward compatibility.
109+
110+
## 🔜 Next Steps (Phase 3+)
111+
112+
- Browser tests for form focus management
113+
- Composable form plugin (separate from modal)
114+
- Additional layout plugins (tooltip, slideout, sticky bar)
115+
- Multi-instance support with `instanceId` tracking
116+
117+
***
118+
119+
**Migration Guide**: No migration needed. Simply upgrade and start using the new plugins!
120+
121+
**Full Changelog**: See [Phase 2 Spec](https://github.com/prosdevlab/experience-sdk/blob/main/specs/phase-2-presentation-layer/spec.md)
122+
3123
## 0.2.0
4124

5125
### Minor Changes

packages/plugins/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@prosdevlab/experience-sdk-plugins",
3-
"version": "0.2.0",
3+
"version": "0.3.0",
44
"description": "Official plugins for Experience SDK",
55
"private": false,
66
"type": "module",

0 commit comments

Comments
 (0)