summit-registration-lite 6.0.9 → 7.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/.claude/rules/summit-registration-lite-component-props.md +95 -0
  2. package/.claude/rules/summit-registration-lite-i18n.md +62 -0
  3. package/.claude/rules/summit-registration-lite-payment-providers.md +69 -0
  4. package/.claude/rules/summit-registration-lite-project.md +80 -0
  5. package/.claude/rules/summit-registration-lite-redux-actions.md +65 -0
  6. package/.claude/rules/summit-registration-lite-step-flow.md +77 -0
  7. package/.claude/rules/summit-registration-lite-testing.md +97 -0
  8. package/.claude/rules/summit-registration-lite-utils.md +71 -0
  9. package/.claude/skills/summit-registration-lite-add-provider/SKILL.md +155 -0
  10. package/.claude/skills/summit-registration-lite-dev-setup/SKILL.md +67 -0
  11. package/.claude/skills/summit-registration-lite-publish/SKILL.md +64 -0
  12. package/.claude/skills/summit-registration-lite-scaffold-component/SKILL.md +152 -0
  13. package/dist/components/index.css +34 -0
  14. package/dist/components/index.css.map +1 -0
  15. package/dist/components/index.js +4907 -0
  16. package/dist/components/index.js.map +1 -0
  17. package/dist/components/registration-form.css +32 -0
  18. package/dist/components/registration-form.css.map +1 -0
  19. package/dist/components/registration-form.js +4726 -0
  20. package/dist/components/registration-form.js.map +1 -0
  21. package/dist/components/registration-modal.css +34 -0
  22. package/dist/components/registration-modal.css.map +1 -0
  23. package/dist/components/registration-modal.js +4870 -0
  24. package/dist/components/registration-modal.js.map +1 -0
  25. package/dist/index.css +2 -2
  26. package/dist/index.css.map +1 -1
  27. package/dist/index.js +4127 -3892
  28. package/dist/index.js.map +1 -1
  29. package/index.js +2 -0
  30. package/package.json +1 -1
  31. package/.cert/cert.pem +0 -26
  32. package/.cert/key.pem +0 -28
  33. package/ca.cer +0 -0
@@ -0,0 +1,155 @@
1
+ ---
2
+ name: summit-registration-lite-add-provider
3
+ version: 1.0.0
4
+ description: Scaffold new payment provider with factory registration
5
+ triggers:
6
+ - add payment provider
7
+ - new payment gateway
8
+ - integrate payment
9
+ ---
10
+
11
+ # Add Payment Provider Workflow
12
+
13
+ Scaffolds a new payment provider class with factory registration, error handling, and test template.
14
+
15
+ ## Steps
16
+
17
+ 1. **Ask for provider details**
18
+ - Provider name (e.g., "PayPal", "Square")
19
+ - Provider constant (e.g., "PAYMENT_PROVIDER_PAYPAL")
20
+ - Gateway-specific fields needed (API keys, client IDs, etc.)
21
+
22
+ 2. **Add constant to utils/constants.js**
23
+ ```javascript
24
+ export const PAYMENT_PROVIDER_NEWNAME = 'new_provider_name';
25
+ ```
26
+
27
+ 3. **Create provider class**
28
+ File: `src/utils/payment-providers/{name}-provider.js`
29
+
30
+ Use StripeProvider as template:
31
+ - Constructor receives: `{ reservation, summitId, userProfile, access_token, apiBaseUrl, dispatch }`
32
+ - Implement `payTicket` method with signature:
33
+ ```javascript
34
+ payTicket = ({ /* gateway-specific params */, onError = () => {} }) => async (dispatch) => {
35
+ // Implementation
36
+ }
37
+ ```
38
+ - Handle free/prepaid orders (skip gateway, call `/checkout` directly)
39
+ - Custom error handler for HTTP status codes (404 → VALIDATION, 500 → ERROR)
40
+ - Success flow: checkout → CLEAR_RESERVATION → changeStep(STEP_COMPLETE)
41
+ - Failure flow: removeReservedTicket → changeStep(STEP_PERSONAL_INFO)
42
+
43
+ 4. **Register in factory**
44
+ File: `src/utils/payment-providers/payment-provider-factory.js`
45
+
46
+ Add import and case:
47
+ ```javascript
48
+ import { NewProvider } from './new-provider';
49
+
50
+ case PAYMENT_PROVIDER_NEWNAME: {
51
+ currentProvider = new NewProvider({...params});
52
+ break;
53
+ }
54
+ ```
55
+
56
+ 5. **Add provider component** (if custom UI needed)
57
+ File: `src/components/{name}-component/index.js`
58
+
59
+ Handles gateway-specific UI (payment form, buttons, etc.).
60
+
61
+ 6. **Create test file**
62
+ File: `src/utils/payment-providers/__tests__/{name}-provider.test.js`
63
+
64
+ Mock patterns:
65
+ - Mock API calls (putRequest)
66
+ - Mock gateway SDK (if any)
67
+ - Test free/prepaid flow
68
+ - Test error handling
69
+
70
+ 7. **Update PaymentComponent**
71
+ File: `src/components/payment/index.js`
72
+
73
+ Add conditional rendering for new provider UI.
74
+
75
+ ## Provider Template
76
+
77
+ ```javascript
78
+ import { createAction, putRequest, authErrorHandler } from 'openstack-uicore-foundation/lib/utils/actions';
79
+ import { CLEAR_RESERVATION, PAY_RESERVATION } from '../../actions';
80
+ import { changeStep, removeReservedTicket, startWidgetLoading, stopWidgetLoading } from '../../actions';
81
+ import { isFreeOrder, isPrePaidOrder } from '../utils';
82
+ import { ERROR_TYPE_ERROR, ERROR_TYPE_VALIDATION, STEP_COMPLETE, STEP_PERSONAL_INFO } from '../constants';
83
+
84
+ export class NewProvider {
85
+ constructor({ reservation, summitId, userProfile, access_token, apiBaseUrl, dispatch }) {
86
+ this.reservation = reservation;
87
+ this.summitId = summitId;
88
+ this.userProfile = userProfile;
89
+ this.access_token = access_token;
90
+ this.apiBaseUrl = apiBaseUrl;
91
+ this.dispatch = dispatch;
92
+ }
93
+
94
+ payTicket = ({ /* custom params */, onError = () => {} }) => async (dispatch) => {
95
+ const errorHandler = (err, res) => (dispatch, state) => {
96
+ let code = err.status;
97
+ switch (code) {
98
+ case 404: onError({type: ERROR_TYPE_VALIDATION, msg: res.body.message, exception: null}); break;
99
+ case 500: onError({type: ERROR_TYPE_ERROR, msg: res.body.message, exception: null}); break;
100
+ default: authErrorHandler(err, res)(dispatch, state); break;
101
+ }
102
+ };
103
+
104
+ const normalizedEntity = {
105
+ billing_address_1: this.userProfile?.address1 || '',
106
+ billing_address_2: this.userProfile?.address2 || '',
107
+ billing_address_city: this.userProfile?.locality || '',
108
+ billing_address_state: this.userProfile?.region || '',
109
+ billing_address_country: this.userProfile?.country || ''
110
+ };
111
+
112
+ dispatch(startWidgetLoading());
113
+
114
+ // Free/prepaid orders
115
+ if (isFreeOrder(this.reservation) || isPrePaidOrder(this.reservation)) {
116
+ return this.checkout(normalizedEntity, errorHandler, onError);
117
+ }
118
+
119
+ // Gateway-specific payment flow here
120
+ // Then call this.checkout() on success
121
+ };
122
+
123
+ checkout = (normalizedEntity, errorHandler, onError) => {
124
+ const params = { access_token: this.access_token, expand: 'tickets,tickets.owner,...' };
125
+
126
+ return putRequest(
127
+ null,
128
+ createAction(PAY_RESERVATION),
129
+ `${this.apiBaseUrl}/api/v1/summits/${this.summitId}/orders/${this.reservation.hash}/checkout`,
130
+ normalizedEntity,
131
+ errorHandler
132
+ )(params)(this.dispatch)
133
+ .then((payload) => {
134
+ this.dispatch(stopWidgetLoading());
135
+ this.dispatch(createAction(CLEAR_RESERVATION)({}));
136
+ this.dispatch(changeStep(STEP_COMPLETE));
137
+ return payload;
138
+ })
139
+ .catch(e => {
140
+ this.dispatch(stopWidgetLoading());
141
+ this.dispatch(removeReservedTicket());
142
+ this.dispatch(changeStep(STEP_PERSONAL_INFO));
143
+ onError({type: ERROR_TYPE_ERROR, msg: e?.message, exception: e});
144
+ return e;
145
+ });
146
+ };
147
+ }
148
+ ```
149
+
150
+ ## Testing
151
+
152
+ Run provider tests:
153
+ ```bash
154
+ yarn test payment-providers
155
+ ```
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: summit-registration-lite-dev-setup
3
+ version: 1.0.0
4
+ description: Clean install and start development server
5
+ triggers:
6
+ - setup dev environment
7
+ - start dev server
8
+ - clean install
9
+ ---
10
+
11
+ # Development Setup Workflow
12
+
13
+ Cleans existing installation and starts fresh development environment.
14
+
15
+ ## Steps
16
+
17
+ ### Option 1: Clean Setup (Recommended for Issues)
18
+
19
+ 1. **Clean all build artifacts and dependencies**
20
+ ```bash
21
+ yarn clean
22
+ ```
23
+ Removes `dist/` and `node_modules/`, then reinstalls with `yarn`.
24
+
25
+ 2. **Start dev server**
26
+ ```bash
27
+ yarn serve
28
+ ```
29
+ Starts webpack-dev-server on default port (usually 8080). Opens browser automatically.
30
+
31
+ ### Option 2: Quick Start (No Clean)
32
+
33
+ 1. **Install dependencies** (if `node_modules/` missing)
34
+ ```bash
35
+ yarn
36
+ ```
37
+
38
+ 2. **Start dev server**
39
+ ```bash
40
+ yarn serve
41
+ ```
42
+
43
+ ## Development Configuration
44
+
45
+ - **Webpack config:** `webpack.dev.js` (extends `webpack.common.js`)
46
+ - **Environment variables:**
47
+ - `API_BASE_URL` - API endpoint for development
48
+ - `ACCESS_TOKEN` - Auth token for standalone testing (stored in localStorage)
49
+
50
+ Set these in shell or `.env` file:
51
+ ```bash
52
+ export API_BASE_URL=https://api.dev.example.com
53
+ export ACCESS_TOKEN=your_dev_token
54
+ ```
55
+
56
+ ## Standalone Testing
57
+
58
+ The widget supports standalone mode in development. Set environment variables before running `yarn serve` to test without parent app.
59
+
60
+ ## Troubleshooting
61
+
62
+ | Issue | Solution |
63
+ |-------|----------|
64
+ | Port already in use | Kill process: `lsof -ti:8080 | xargs kill` or change port in webpack.dev.js |
65
+ | Stale cache | Run `yarn clean` |
66
+ | Module not found | Delete `node_modules/` and `yarn.lock`, then `yarn` |
67
+ | Hot reload not working | Check webpack-dev-server config, ensure `watchFiles` configured |
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: summit-registration-lite-publish
3
+ version: 1.0.0
4
+ description: Build and publish package to NPM registry
5
+ triggers:
6
+ - publish to npm
7
+ - release package
8
+ - deploy widget
9
+ ---
10
+
11
+ # Package Publishing Workflow
12
+
13
+ Builds the production bundle and publishes to NPM registry.
14
+
15
+ ## Steps
16
+
17
+ 1. **Verify clean state**
18
+ ```bash
19
+ git status
20
+ ```
21
+ Ensure no uncommitted changes. If changes exist, ask user to commit or stash first.
22
+
23
+ 2. **Verify version**
24
+ ```bash
25
+ cat package.json | grep '"version"'
26
+ ```
27
+ Confirm version with user before publishing. Ask if version should be bumped (patch/minor/major).
28
+
29
+ 3. **Build production bundle**
30
+ ```bash
31
+ yarn build
32
+ ```
33
+ Compiles with webpack.prod.js. Output goes to `dist/`.
34
+
35
+ 4. **Verify build output**
36
+ ```bash
37
+ ls -lh dist/
38
+ ```
39
+ Check that `index.js` and `index.css` exist.
40
+
41
+ 5. **Publish to NPM**
42
+ ```bash
43
+ yarn publish
44
+ ```
45
+ Prompts for new version (if not already updated). Requires NPM authentication.
46
+
47
+ ## Alternative: Combined Command
48
+
49
+ The `yarn publish-package` script combines build and publish:
50
+ ```bash
51
+ yarn publish-package
52
+ ```
53
+
54
+ ## Prerequisites
55
+
56
+ - NPM authentication configured (`npm login`)
57
+ - Write access to `summit-registration-lite` package on NPM
58
+ - Clean git working directory (or committed changes)
59
+
60
+ ## Post-Publish
61
+
62
+ - Tag the release in git: `git tag v{version}`
63
+ - Push tag: `git push origin v{version}`
64
+ - Update CHANGELOG.md with release notes
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: summit-registration-lite-scaffold-component
3
+ version: 1.0.0
4
+ description: Create new component with folder structure, test file, and SCSS module
5
+ triggers:
6
+ - create new component
7
+ - scaffold component
8
+ - add component
9
+ ---
10
+
11
+ # Component Scaffolding Workflow
12
+
13
+ Creates a new React component with proper folder structure, SCSS module, and test boilerplate.
14
+
15
+ ## Steps
16
+
17
+ 1. **Ask for component details**
18
+ - Component name (PascalCase, e.g., "TicketSelector")
19
+ - Purpose/description
20
+ - Key props (if known)
21
+
22
+ 2. **Create directory structure**
23
+ ```
24
+ src/components/{component-name}/
25
+ ├── index.js
26
+ ├── {component-name}.module.scss
27
+ └── __tests__/
28
+ └── {component-name}.test.js
29
+ ```
30
+
31
+ 3. **Generate component file**
32
+ File: `src/components/{component-name}/index.js`
33
+
34
+ Template:
35
+ ```javascript
36
+ import React from 'react';
37
+ import PropTypes from 'prop-types';
38
+ import styles from './{component-name}.module.scss';
39
+
40
+ const ComponentName = ({ prop1, prop2 }) => {
41
+ return (
42
+ <div className={styles.container}>
43
+ {/* Component content */}
44
+ </div>
45
+ );
46
+ };
47
+
48
+ ComponentName.propTypes = {
49
+ prop1: PropTypes.string.isRequired,
50
+ prop2: PropTypes.func,
51
+ };
52
+
53
+ ComponentName.defaultProps = {
54
+ prop2: () => {},
55
+ };
56
+
57
+ export default ComponentName;
58
+ ```
59
+
60
+ 4. **Generate SCSS module**
61
+ File: `src/components/{component-name}/{component-name}.module.scss`
62
+
63
+ Template:
64
+ ```scss
65
+ .container {
66
+ // Component styles
67
+ }
68
+ ```
69
+
70
+ 5. **Generate test file**
71
+ File: `src/components/{component-name}/__tests__/{component-name}.test.js`
72
+
73
+ Template:
74
+ ```javascript
75
+ import React from 'react';
76
+ import { render, fireEvent, screen } from '@testing-library/react';
77
+ import '@testing-library/jest-dom';
78
+ import ComponentName from '..';
79
+
80
+ const mockCallback = jest.fn();
81
+
82
+ afterEach(() => {
83
+ jest.clearAllMocks();
84
+ });
85
+
86
+ describe('ComponentName', () => {
87
+ it('renders without crashing', () => {
88
+ const { getByTestId } = render(
89
+ <ComponentName prop1="test" prop2={mockCallback} />
90
+ );
91
+ expect(getByTestId('component-container')).toBeInTheDocument();
92
+ });
93
+
94
+ it('calls callback on interaction', () => {
95
+ const { getByTestId } = render(
96
+ <ComponentName prop1="test" prop2={mockCallback} />
97
+ );
98
+ fireEvent.click(getByTestId('test-button'));
99
+ expect(mockCallback).toHaveBeenCalled();
100
+ });
101
+ });
102
+ ```
103
+
104
+ 6. **Add data-testid attributes**
105
+ Remind user to add `data-testid` attributes to key elements for testing.
106
+
107
+ ## Component Conventions
108
+
109
+ - **Props:** Use PropTypes for validation, provide defaultProps for optional props
110
+ - **Styles:** Use CSS modules (`.module.scss`) for scoped styles
111
+ - **Testing:** Use `data-testid` for reliable element selection
112
+ - **Exports:** Default export for component, named exports for sub-components/utils if needed
113
+
114
+ ## Redux-Connected Components
115
+
116
+ For components that need Redux state, use `connect`:
117
+
118
+ ```javascript
119
+ import { connect } from 'react-redux';
120
+ import { someAction } from '../../actions';
121
+
122
+ const ComponentName = ({ stateValue, someAction }) => {
123
+ // Component implementation
124
+ };
125
+
126
+ const mapStateToProps = ({ registration }) => ({
127
+ stateValue: registration.stateValue,
128
+ });
129
+
130
+ export default connect(mapStateToProps, { someAction })(ComponentName);
131
+ ```
132
+
133
+ ## Testing Redux Components
134
+
135
+ Wrap in Provider for testing:
136
+ ```javascript
137
+ import { Provider } from 'react-redux';
138
+ import { getStore } from '../../store';
139
+
140
+ const renderWithStore = (component) => {
141
+ const store = getStore('test-client', 'http://api.test', () => 'mock-token');
142
+ return render(<Provider store={store}>{component}</Provider>);
143
+ };
144
+ ```
145
+
146
+ ## Next Steps After Scaffolding
147
+
148
+ 1. Implement component logic
149
+ 2. Add styles
150
+ 3. Write tests (aim for key interactions)
151
+ 4. Import and use in parent component
152
+ 5. Verify in dev server
@@ -0,0 +1,34 @@
1
+ .loginWrapper___sxUEn{display:flex;justify-content:center;font-weight:bold;text-align:center;padding:20px 0 30px}.innerWrapper___GQRkq{display:flex;flex-direction:column;justify-content:center;width:300px}.innerWrapper___GQRkq span{margin:10px 0}.button___QMZPu{padding:10px 30px;font-weight:normal;display:inline-flex;justify-content:center;margin:5px 0;border-radius:5px;cursor:pointer;background-position:12px center;background-repeat:no-repeat;background-size:16px;line-height:1.4;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12)}.button___QMZPu:hover{box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}.title___NnwWR{padding:15px 0 0 0}.loginCode___dDBup{margin-bottom:10px;font-size:15px}.loginCode___dDBup>div{margin-top:10px}.loginCode___dDBup span{display:inline-block;font-weight:normal;font-size:14px}.loginCode___dDBup .error___aCF7E{color:#e5424d;font-size:14px;font-weight:bold}.loginCode___dDBup .error___aCF7E a{color:#e5424d;text-decoration:underline}.primaryEmailButton___gH1fC{background-color:var(--color_input_background_color);border:1px solid var(--color_input_border_color);color:var(--color_input_text_color)}.buttonDisabled___T9tkn{background-color:var(--color_secondary_contrast);color:var(--color_input_text_color_disabled)}.pointerDisabled___qt_HK{pointer-events:none}.email_login_button___seiLi{display:flex;justify-content:space-between;padding:10px 9px;width:100%}.email_login_button___seiLi span{padding:0 0 0 8px;margin:0}.h2Styled___rfIKD{color:var(--color_gray_darker) !important;font-size:18px !important;font-weight:800 !important;display:flex;flex-direction:row}.h2Styled___rfIKD::before,.h2Styled___rfIKD::after{content:"";flex:1 1;border-bottom:1px solid var(--color_gray_dark);margin:auto}.h2Styled___rfIKD::before{margin-right:10px}.h2Styled___rfIKD::after{margin-left:10px}.input___QR9sA{display:flex;height:40px;margin-top:5px}.input___QR9sA input{border:1px solid var(--color_input_border_color);color:var(--color_input_text_color);background-color:var(--color_input_background_color);border-radius:5px;padding:5px;width:100%}.input___QR9sA input::placeholder{color:var(--color_text_input_hints)}.input___QR9sA button{margin-left:5px;background-color:var(--color_input_background_color);padding:0px 15px;border:1px solid var(--color_input_border_color);color:var(--color_text_dark);box-shadow:none;text-align:center;white-space:nowrap;font-weight:bold;border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center}
2
+
3
+ .passwordlessWrapper___BRQ_s{height:450px;display:flex;justify-content:center;align-items:center;flex-direction:column}.passwordlessWrapper___BRQ_s .codeSent___NzYb_{margin-top:10px;color:#e5424d;font-weight:bold;font-size:14px}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi{text-align:center;font-weight:bold;height:100%;width:300px;display:flex;flex-direction:column;justify-content:center}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .logo___qNVrv{width:175px;align-self:center}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .logo___qNVrv.logoDark___VVYee{display:none}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .digits___Vu5iy{margin-top:15px;display:inline-block}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .codeInput___LnTZe{margin-top:20px;display:flex;justify-content:center}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .codeInput___LnTZe input{font-family:"Monaco", monospace, "OpenSans", Helvetica;height:56px;width:56px;font-size:42px;color:var(--color_input_text_color);background-color:var(--color_input_background_color);border:1px solid var(--color_input_border_color);border-radius:5px;padding:5px;display:inline-flex;text-transform:uppercase;text-align:center;margin:0 5px}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .error___wZflZ{margin-top:10px;color:#e5424d;font-size:14px}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .verify___IBgMl{margin-top:10px}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .verify___IBgMl .button___nBhtQ{padding:10px 30px;font-weight:normal;justify-content:center;margin:5px 0;border-radius:5px;cursor:pointer;color:var(--color_input_text_color);background-color:var(--color_input_background_color);border:1px solid var(--color_input_border_color);width:100%;font-size:1em}.passwordlessWrapper___BRQ_s .innerWrapper___nRLDi .verify___IBgMl .link___f6fDT{color:var(--color_text_dark);text-decoration:underline;cursor:pointer}.passwordlessWrapper___BRQ_s .resend___Nma1U{margin:auto 0 0 0;font-weight:normal;font-size:14px}.passwordlessWrapper___BRQ_s .resend___Nma1U button{color:var(--color_text_dark);text-decoration:underline;cursor:pointer;display:inline;border:none;background-color:transparent;padding:0}.passwordlessWrapper___BRQ_s .resend___Nma1U .disabled___fMnzY{color:var(--color_text_med);cursor:not-allowed}html[data-theme='DARK'] .logoLight___vSbn_{display:none}html[data-theme='DARK'] .logoDark___VVYee{display:block !important}html[data-theme='LIGHT'] .logoDark___VVYee{display:none}html[data-theme='LIGHT'] .logoLight___vSbn_{display:block !important}
4
+
5
+ .step-wrapper{padding:10px;margin:10px;border:1px solid var(--color_input_border_color);border-radius:5px}.summit-registration-lite{color:var(--color_text_dark);font-size:15px;font-smooth:auto !important;-moz-osx-font-smoothing:auto !important;-webkit-font-smoothing:auto !important}.summit-registration-lite input:-moz-placeholder,.summit-registration-lite input::-moz-placeholder{opacity:1}input{outline:none}.registration_company_dll .registration_company_dll_prefix__control{border:1px solid var(--color_primary) !important;border-radius:5px !important}
6
+
7
+ .title___LksVm{font-weight:bold;cursor:pointer}.form___v5GIx{display:flex;flex-wrap:wrap;justify-content:space-between;margin:10px 0}.form___v5GIx div.fieldWrapper___Eoe61{width:48%;border-radius:5px;color:var(--color_input_text_color);border:1px solid var(--color_input_border_color);background-color:var(--color_input_background_color);height:36px;padding:5px 10px;display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.form___v5GIx div.fieldWrapper___Eoe61:first-of-type{width:100%}.form___v5GIx div.fieldWrapper___Eoe61 input{width:100%;background-color:transparent;border:none}.form___v5GIx div.fieldWrapper___Eoe61 input:focus-visible{outline:none}.form___v5GIx div.fieldWrapper___Eoe61 i{position:relative}.form___v5GIx div.fieldWrapper___Eoe61>div{width:100%}.form___v5GIx div.fieldWrapper___Eoe61>div:first-of-type{width:95%}.form___v5GIx input{width:48%;border-radius:5px;color:var(--color_input_text_color);border:1px solid var(--color_input_border_color);background-color:var(--color_input_background_color);font-size:16px;height:36px;padding:5px 10px;display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;font-weight:bold}.form___v5GIx input::placeholder{color:var(--color_text_input_hints)}
8
+
9
+ .form___zXb7s{display:flex;flex-wrap:wrap;justify-content:space-between;margin:10px 0}.form___zXb7s div.fieldWrapper___G4Wqw{width:100%;margin-bottom:5px}.form___zXb7s div.fieldWrapper___G4Wqw:first-of-type div.inputWrapper___Yz5zB{width:100%}.form___zXb7s div.fieldWrapper___G4Wqw .fieldRow___NfZdJ{justify-content:space-between;display:flex}.form___zXb7s div.fieldWrapper___G4Wqw div.inputWrapper___Yz5zB{width:48%}.form___zXb7s div.fieldWrapper___G4Wqw div.inputWrapper___Yz5zB.addressField___vmAQh{width:100%}.form___zXb7s div.lawpayWrapper___hpUBf{height:36px}.form___zXb7s div.dateWrapper___XDfqs{display:flex;justify-content:space-between}.form___zXb7s div.dateWrapper___XDfqs>div{width:48%}.form___zXb7s div.dateWrapper___XDfqs>div .dropdown___l3_bk{width:100%}.form___zXb7s div.dateWrapper___XDfqs>div .dropdown___l3_bk>div{border:1px solid var(--color_primary);width:100%}.form___zXb7s div.inputWrapper___Yz5zB{display:flex;border-radius:5px;border:1px solid var(--color_primary);height:36px;padding:5px 10px;justify-content:space-between;align-items:center}.form___zXb7s div.inputWrapper___Yz5zB iframe{height:inherit;width:inherit}.form___zXb7s div.inputWrapper___Yz5zB input{width:100%;background-color:transparent;border:none;padding:0;font-size:16px;display:flex;justify-content:space-between;align-items:center}.form___zXb7s div.inputWrapper___Yz5zB input::placeholder{color:var(--color_text_input_hints);font-size:16px}.form___zXb7s div.inputWrapper___Yz5zB input:focus-visible{outline:none}.form___zXb7s div.inputWrapper___Yz5zB i{position:relative}.form___zXb7s div.inputWrapper___Yz5zB>div{width:100%}.form___zXb7s div.inputWrapper___Yz5zB>div:first-of-type{width:95%}.form___zXb7s div.fieldError___Igq3U{margin-top:5px;margin-bottom:5px;color:#e5424d;font-size:14px;line-height:1.5}.form___zXb7s div.fieldError___Igq3U::before{font-family:FontAwesome;content:'\f071';margin-right:5px}
10
+
11
+ .form___DoT3x{display:flex;flex-wrap:wrap;flex-direction:column;justify-content:space-between;margin:10px 0}.form___DoT3x div.fieldWrapper___wa1Ks{margin-top:15px}.form___DoT3x div.fieldWrapper___wa1Ks:first-of-type{width:100%}.form___DoT3x div.inputWrapper___CbXhF{display:flex;border-radius:5px;border:1px solid var(--color_input_border_color);background-color:var(--color_input_background_color);height:44.4px;padding:5px 10px;justify-content:space-between;align-items:center;box-shadow:0px 1px 1px rgba(0,0,0,0.03),0px 3px 6px rgba(0,0,0,0.02)}.form___DoT3x div.inputWrapper___CbXhF input{width:100%;color:var(--color_input_text_color);background-color:var(--color_input_background_color);border:none;padding:0;font-size:16px;display:flex;justify-content:space-between;align-items:center}.form___DoT3x div.inputWrapper___CbXhF input::placeholder{color:var(--color_text_input_hints);font-size:16px}.form___DoT3x div.inputWrapper___CbXhF input:-webkit-autofill,.form___DoT3x div.inputWrapper___CbXhF input :-webkit-autofill:focus{color:var(--color_input_text_color) !important;background-color:var(--color_input_background_color) !important;-webkit-box-shadow:0 0 0px 1000px var(--color_input_background_color) inset;-webkit-text-fill-color:var(--color_input_text_color)}.form___DoT3x div.inputWrapper___CbXhF input:focus-visible{outline:none}.form___DoT3x div.inputWrapper___CbXhF i{position:relative}.form___DoT3x div.inputWrapper___CbXhF>div{width:100%}.form___DoT3x div.inputWrapper___CbXhF>div:first-of-type{width:95%}.form___DoT3x div.fieldError___QrMYW{margin-top:5px;margin-bottom:5px;color:#e5424d;font-size:14px;line-height:1.5}.form___DoT3x div.fieldError___QrMYW::before{font-family:FontAwesome;content:'\f071';margin-right:5px}
12
+
13
+ .title___ECoNz{font-weight:bold;cursor:pointer;display:flex;justify-content:space-between}.title___ECoNz div{font-weight:normal}.form___lDFka{display:flex;flex-wrap:wrap;justify-content:space-between;margin:10px 0 0}.form___lDFka div.fieldWrapper___Mi_nL{width:48%;margin-bottom:5px}.form___lDFka div.fieldWrapperRadio___x18VG{width:100%;margin-bottom:10px}.form___lDFka div.fieldWrapperRadio___x18VG label{display:inline-block;margin-bottom:5px}.form___lDFka div.fieldWrapperRadio___x18VG>div>div{padding-left:0px !important}.form___lDFka div.inputWrapper___PEQFR{display:flex;border-radius:5px;border:1px solid var(--color_input_border_color);background-color:var(--color_input_background_color);height:36px;padding:5px 10px;justify-content:space-between;align-items:center}.form___lDFka div.inputWrapper___PEQFR input{width:100%;background-color:transparent;color:var(--color_input_text_color);border:none;padding:0;font-size:16px;display:flex;justify-content:space-between;align-items:center}.form___lDFka div.inputWrapper___PEQFR input::placeholder{color:var(--color_text_input_hints);font-size:16px}.form___lDFka div.inputWrapper___PEQFR input:focus-visible{outline:none}.form___lDFka div.inputWrapper___PEQFR .readOnly___WRazF{opacity:0.6;cursor:default}.form___lDFka div.fieldError___ksJVe{margin-top:5px;margin-bottom:5px;color:#e5424d;font-size:14px;line-height:1.5;justify-content:left !important}.form___lDFka div.fieldError___ksJVe::before{font-family:FontAwesome;content:'\f071';margin-right:5px}.form___lDFka .fieldWrapperRadio___x18VG>div{display:flex;flex-direction:row}.moreInfo___cQYdZ{display:inline-block;margin-top:10px}.moreInfoTooltip___lslgT{max-width:280px}.ticketQuantityNotice___L6gis{margin:10px 0 0 !important}.formErrors___dQQMe{margin-top:10px}.formErrors___dQQMe div+div{margin-top:10px}
14
+
15
+ .title___DNZyl{font-weight:bold;cursor:pointer;display:flex;justify-content:space-between}.summary___quWdZ{text-align:right}.promoCode___bqTCw{display:inline-flex}.promoCode___bqTCw abbr{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:10ch}.crossOut___QZ7dy{text-decoration:line-through}.discount___sEK_Q{color:red}.promocodeError___oxk4p{margin-top:10px;color:red}.promocodeError___oxk4p::before{font-family:FontAwesome;content:'\f071';margin-right:5px}.taxes___fe8oJ{display:inline-flex}.taxes___fe8oJ abbr{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:15ch}.promo___F8lPO{font-weight:bold;display:flex;justify-content:flex-end}.form___aoo7w{display:flex;gap:10px;margin-top:10px}.dropdown____HWg0{flex:1 1 auto;min-width:0}.quantity___SIEQZ{flex-shrink:0}.quantity___SIEQZ input,.quantity___SIEQZ button{height:36px;text-align:center;border:1px solid var(--color_input_border_color)}.quantity___SIEQZ input{padding:0 8px;width:48px !important}.quantity___SIEQZ input,.quantity___SIEQZ input:read-only{border:1px solid var(--color_input_border_color);color:var(--color_input_text_color);background-color:var(--color_input_background_color)}.quantity___SIEQZ button{display:flex;align-items:center}.quantity___SIEQZ button:disabled,.quantity___SIEQZ button:disabled:hover{opacity:0.65;background:#dedede;border-color:#bebebe}.soldOut___Hatfr{height:36px;padding:0 16px;line-height:34px;font-weight:700px;background:#dedede;border:solid 1px #bebebe;border-radius:5px;opacity:0.65;font-weight:700;flex-shrink:0}.moreInfo___LmwOe{display:inline-block;margin-top:10px}.moreInfoTooltip___nOBf1{max-width:280px}.inPersonDisclaimer___PXGTz{margin-top:15px;padding-right:10px;max-height:150px;overflow-y:auto}
16
+
17
+ .placeholder___pcdCn{border-radius:5px;width:100%;border:1px solid var(--color_input_border_color);background-color:var(--color_input_background_color);padding:5px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;height:36px}.placeholder___pcdCn i{padding:2px 5px;border-left:1px solid var(--color_primary)}.placeholder___pcdCn .selectedTicket___qkbpH{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inPersonDisclaimer___z_DzO{padding:4px}.dropdown___mfbPG{margin-top:10px;border-radius:5px;width:100%;border:1px solid var(--color_input_border_color);color:var(--color_input_text_color);background-color:var(--color_input_background_color);cursor:pointer}.dropdown___mfbPG div{padding:5px}.dropdown___mfbPG div:hover{border-radius:5px;background-color:var(--color_primary50);color:var(--color_input_text_color)}.soldOut___rBLC0,.soldOut___rBLC0:hover,.soldOut___rBLC0:focus{color:inherit !important;background-color:#dedede !important;opacity:0.65;cursor:not-allowed}
18
+
19
+ .promoCodeWrapper___aw3Zx{padding-top:16px;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:15px}.promoCodeWrapper___aw3Zx span{color:var(--color_text_dark);font-size:14px;font-weight:600;line-height:140%;width:30%}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET{display:flex;align-items:center;position:relative;flex:1;height:33px;width:50%;min-width:220px}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET input{display:inline-flex;padding:13px 8px;width:70%;height:100%;color:var(--color_input_text_color);background-color:var(--color_input_background_color);border:1.5px solid var(--color_input_border_color);border-radius:4px 0px 0px 4px}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET input.promoCodeActive___j7xnn{padding-right:25px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .codeButtonWrapper___jVZh5{display:flex;align-items:center;width:30%;height:100%;background-color:#818181;border-radius:0px 4px 4px 0px}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .codeButtonWrapper___jVZh5.noCode___YUmVy{background-color:#CFCFCF;cursor:not-allowed}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .codeButtonWrapper___jVZh5 button{color:#fff;font-size:14px;font-style:normal;font-weight:600;line-height:120%;letter-spacing:-0.14px;width:100%;height:100%;border:none;background-color:transparent}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .appliedCodeIcon___pa3B4{position:absolute;left:60%}.promoCodeWrapper___aw3Zx .moreInfo___Ru3Rv{display:inline-block}@media screen and (max-width: 540px){.promoCodeWrapper___aw3Zx span{width:100%}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET{width:100%}.promoCodeWrapper___aw3Zx .moreInfo___Ru3Rv{width:100%}}.moreInfoTooltip___eaYWm{max-width:280px}
20
+
21
+ .button___MZBIY{font-weight:bold !important;font-size:1em !important;cursor:pointer !important;border:1px solid var(--color_input_border_color) !important;color:var(--color_input_text_color) !important;background-color:var(--color_input_background_color) !important}.button___MZBIY[disabled]{background-color:var(--color_secondary_contrast) !important}.button___MZBIY:hover{color:var(--color_input_text_color) !important}.button___MZBIY:active,.button___MZBIY:focus{color:var(--color_input_text_color) !important}.outerWrapper___XRnaq{padding:10px 0px 10px 10px;margin:10px}.outerWrapper___XRnaq .innerWrapper___LFsOH{display:flex;justify-content:space-between;align-items:center}.outerWrapper___XRnaq .innerWrapper___LFsOH span{font-size:14px}.outerWrapper___XRnaq .innerWrapper___LFsOH .registration___jdf6T{cursor:pointer;color:var(--color_primary);text-decoration:underline}.outerWrapper___XRnaq .innerWrapper___LFsOH .actions___Gsf0y{display:flex}.outerWrapper___XRnaq .innerWrapper___LFsOH .actions___Gsf0y button{margin-left:10px}
22
+
23
+ .button___XMN8a{font-weight:bold !important;font-size:1em !important;cursor:pointer !important;border:1px solid var(--color_input_border_color) !important;color:var(--color_input_text_color) !important;background-color:var(--color_input_background_color) !important}.button___XMN8a[disabled]{background-color:var(--color_secondary_contrast) !important}.button___XMN8a:hover{color:var(--color_input_text_color) !important}.button___XMN8a:active,.button___XMN8a:focus{color:var(--color_input_text_color) !important}.wrapper___Jd5Xg{height:370px;display:flex;flex-direction:column;align-items:center;justify-content:space-around;margin:15px 0;padding:15px;border-radius:5px;border:1px solid var(--color_input_border_color);text-align:center}.wrapper___Jd5Xg .circle___lcN86{margin-bottom:10px;background-color:var(--color_input_background_color);border-radius:50px;border:1px solid var(--color_text_dark);padding:10px}.wrapper___Jd5Xg .circle___lcN86 i{font-size:36px;color:var(--color_text_dark)}.wrapper___Jd5Xg .complete___HAHzl{font-weight:bold;font-size:20px}.wrapper___Jd5Xg .actions___jJdPX{display:flex}.wrapper___Jd5Xg button{margin:10px 5px 0 5px;background-color:var(--color_button_background_color) !important;color:var(--color_button_color) !important}.wrapper___Jd5Xg span{font-size:14px}.wrapper___Jd5Xg a{color:var(--color_text_dark);text-decoration:underline}.wrapper___Jd5Xg .footer___FL9TW{font-size:14px;font-weight:normal}
24
+
25
+ .ticketOwnedWrapper___nhkDY{margin:10px}.ticketOwnedWrapper___nhkDY span{display:block}.alert___c49oP{margin:0 !important}
26
+
27
+ .noAllowedWrapper___k52of{margin:10px}.alert___McKm0{margin:0 !important}
28
+
29
+ .ticketTaxesErrorWrapper___ldztd{margin:10px;min-height:150px;display:flex;flex-direction:column}.ticketTaxesErrorWrapper___ldztd button{width:100px;align-self:center;margin:10px 5px 0 5px}.alert___AM17V{margin:0 !important;text-align:center;padding:30px}
30
+
31
+ #modal___G3Cmq{padding:100px 0;overflow-y:auto}.modalContent___lIaqw{overflow:initial}@media screen and (min-width: 769px){.modalContent___lIaqw{width:720px}}.outerWrapper___OWXyi{border:1px solid var(--color_input_border_color);background-color:var(--color_background_light);border-radius:5px}.innerWrapper___mIrBF{padding:10px}.title___Tbvkl{display:flex;justify-content:center;align-items:center;border-bottom:1px solid var(--color_input_border_color);margin:0px -10px;padding:0px 15px 5px}.title___Tbvkl i{cursor:pointer;margin-left:auto}.title___Tbvkl span{width:100%;font-weight:bold;font-size:18px;text-align:center;color:var(--color_text_dark)}
32
+
33
+
34
+ /*# sourceMappingURL=index.css.map*/
@@ -0,0 +1 @@
1
+ {"version":3,"file":"./components/index.css","mappings":";;;;AAAA,cACE,YAAa,CACb,WAAY,CACZ,gDAAiD,CACjD,iBAAkB,CACnB,0BAGC,4BAA6B,CAC7B,cAAe,CAIf,2BAA4B,CAC5B,uCAAwC,CACxC,sCAAuC,CARzC,mGAYI,SAAU,CACX,MAID,YAAa,CACd,oEAIG,gDAAiD,CACjD,4BAA6B","sources":["webpack://summit-registration-lite/./src/styles/styles.scss"],"sourcesContent":[".step-wrapper {\n padding: 10px;\n margin: 10px;\n border: 1px solid var(--color_input_border_color);\n border-radius: 5px;\n}\n\n.summit-registration-lite {\n color: var(--color_text_dark);\n font-size: 15px;\n\n // Font smoothing is deprecated, so let's disable it.\n // This also helps w/ consistent font rendering between our app and the Stripe elements.\n font-smooth: auto !important;\n -moz-osx-font-smoothing: auto !important;\n -webkit-font-smoothing: auto !important;\n\n input:-moz-placeholder,\n input::-moz-placeholder {\n opacity: 1;\n }\n}\n\ninput {\n outline: none;\n}\n\n.registration_company_dll {\n .registration_company_dll_prefix__control {\n border: 1px solid var(--color_primary) !important;\n border-radius: 5px !important;;\n }\n}\n"],"names":[],"sourceRoot":""}