@royaloperahouse/chord 2.8.0 → 2.8.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## [2.8.1]
2
+ - SignUpForm component: Add dropdown on mobile screen
3
+
1
4
  ## [2.8.0]
2
5
  - Add new SignUpForm component
3
6
 
@@ -6217,7 +6217,8 @@ var Dropdown = function Dropdown(_ref) {
6217
6217
  _ref$withIcon = _ref.withIcon,
6218
6218
  withIcon = _ref$withIcon === void 0 ? 'right' : _ref$withIcon,
6219
6219
  _ref$colorPrimary = _ref.colorPrimary,
6220
- colorPrimary = _ref$colorPrimary === void 0 ? 'primary' : _ref$colorPrimary;
6220
+ colorPrimary = _ref$colorPrimary === void 0 ? 'primary' : _ref$colorPrimary,
6221
+ className = _ref.className;
6221
6222
  var node = React.useRef();
6222
6223
 
6223
6224
  var _useState = React.useState(false),
@@ -6371,7 +6372,8 @@ var Dropdown = function Dropdown(_ref) {
6371
6372
  ref: node,
6372
6373
  onClick: function onClick() {
6373
6374
  return clickMobileHandler();
6374
- }
6375
+ },
6376
+ className: className
6375
6377
  }, renderTab()) : /*#__PURE__*/React__default.createElement(TabContainer, {
6376
6378
  ref: node,
6377
6379
  onMouseEnter: function onMouseEnter() {
@@ -6379,7 +6381,8 @@ var Dropdown = function Dropdown(_ref) {
6379
6381
  },
6380
6382
  onMouseLeave: function onMouseLeave() {
6381
6383
  return onMouseHandler(false);
6382
- }
6384
+ },
6385
+ className: className
6383
6386
  }, renderTab()));
6384
6387
  };
6385
6388
 
@@ -11222,7 +11225,7 @@ var Table = function Table(_ref) {
11222
11225
  }))))))));
11223
11226
  };
11224
11227
 
11225
- var _templateObject$1k, _templateObject2$Z, _templateObject3$P, _templateObject4$E, _templateObject5$x, _templateObject6$p, _templateObject7$h, _templateObject8$d, _templateObject9$8, _templateObject10$8, _templateObject11$4;
11228
+ var _templateObject$1k, _templateObject2$Z, _templateObject3$P, _templateObject4$E, _templateObject5$x, _templateObject6$p, _templateObject7$h, _templateObject8$d, _templateObject9$8, _templateObject10$8, _templateObject11$4, _templateObject12$2, _templateObject13$2, _templateObject14$2, _templateObject15$1;
11226
11229
  var Wrapper$8 = /*#__PURE__*/styled__default('div')(_templateObject$1k || (_templateObject$1k = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n border-top: 4px solid ", ";\n border-bottom: 4px solid ", ";\n"])), function (_ref) {
11227
11230
  var theme = _ref.theme;
11228
11231
  return "var(--base-color-" + theme + ")";
@@ -11234,12 +11237,20 @@ var SignUpFormWrapper = /*#__PURE__*/styled__default(Grid)(_templateObject2$Z ||
11234
11237
  var SignUpTitleWrapper = /*#__PURE__*/styled__default('div')(_templateObject3$P || (_templateObject3$P = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n text-align: left;\n position: relative;\n top: -25px;\n left: -20px;\n height: 52px;\n background: var(--base-color-white);\n display: inline-block;\n padding: 0 20px;\n\n @media ", " {\n top: -18px;\n height: 37px;\n padding: 0 13px;\n left: -13px;\n }\n"])), devices.mobile);
11235
11238
  var Error$1 = /*#__PURE__*/styled__default.div(_templateObject4$E || (_templateObject4$E = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-top: 20px;\n color: var(--base-color-errorstate);\n a {\n text-decoration: underline;\n color: inherit;\n }\n"])));
11236
11239
  var Form = /*#__PURE__*/styled__default.form(_templateObject5$x || (_templateObject5$x = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-top: 32px;\n align-items: center;\n ", " {\n margin-top: -20px;\n }\n a[href] {\n color: inherit;\n }\n"])), Error$1);
11237
- var FormFooterWrapper = /*#__PURE__*/styled__default.div(_templateObject6$p || (_templateObject6$p = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-top: 32px;\n display: flex;\n gap: 28px;\n align-items: center;\n\n @media ", " {\n flex-direction: column-reverse;\n align-items: flex-start;\n }\n"])), devices.mobile);
11240
+ var FormFooterWrapper = /*#__PURE__*/styled__default.div(_templateObject6$p || (_templateObject6$p = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-top: 32px;\n display: flex;\n gap: 28px;\n align-items: center;\n\n @media ", " {\n flex-direction: column;\n align-items: flex-start;\n }\n"])), devices.mobile);
11238
11241
  var ServerError = /*#__PURE__*/styled__default.div(_templateObject7$h || (_templateObject7$h = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n text-align: left;\n color: var(--base-color-errorstate);\n"])));
11239
11242
  var CTALinkWrapper = /*#__PURE__*/styled__default.a(_templateObject8$d || (_templateObject8$d = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n color: var(--base-color-black);\n div {\n text-decoration: underline;\n }\n"])));
11240
11243
  var ButtonWrapper$3 = /*#__PURE__*/styled__default.button(_templateObject9$8 || (_templateObject9$8 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n all: unset;\n width: fit-content;\n\n @media ", " {\n width: 100%;\n }\n &:focus {\n outline: 3px solid var(--base-color-lapislazuli);\n }\n"])), devices.mobile);
11241
11244
  var FieldsWrapper = /*#__PURE__*/styled__default.div(_templateObject10$8 || (_templateObject10$8 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 36px;\n\n @media ", " {\n grid-template-columns: 1fr;\n gap: 20px;\n }\n"])), devices.mobile);
11242
11245
  var MessageWrapper$1 = /*#__PURE__*/styled__default.div(_templateObject11$4 || (_templateObject11$4 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n div > p {\n margin: 0;\n }\n"])));
11246
+ var DropdownAreaWrapper = /*#__PURE__*/styled__default.div(_templateObject12$2 || (_templateObject12$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n grid-column: 1 / -1;\n display: grid;\n grid-template-columns: var(--grid-template-columns);\n gap: var(--grid-column-gap);\n cursor: pointer;\n"])));
11247
+ var DropdownWrapper = /*#__PURE__*/styled__default.div(_templateObject13$2 || (_templateObject13$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n width: fit-content;\n transform: rotate(", ");\n .dropdown-icon > div {\n border-bottom: none;\n color: var(--base-color-black);\n margin: 0;\n }\n"])), function (_ref3) {
11248
+ var _ref3$isOpen = _ref3.isOpen,
11249
+ isOpen = _ref3$isOpen === void 0 ? false : _ref3$isOpen;
11250
+ return isOpen ? '180deg' : '0deg';
11251
+ });
11252
+ var HiddenInstructions = /*#__PURE__*/styled__default.div(_templateObject14$2 || (_templateObject14$2 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n"])));
11253
+ var SignUpHeader = /*#__PURE__*/styled__default(Grid)(_templateObject15$1 || (_templateObject15$1 = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n grid-column: 1 / -1;\n row-gap: 0;\n"])));
11243
11254
 
11244
11255
  var regex = {
11245
11256
  signInEmail: /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
@@ -11305,32 +11316,55 @@ var themeToColor = function themeToColor(theme) {
11305
11316
  }
11306
11317
  };
11307
11318
 
11308
- var SignUpForm = function SignUpForm(_ref) {
11309
- var initialState = _ref.initialState,
11310
- submittedState = _ref.submittedState,
11311
- ctaPrivacy = _ref.ctaPrivacy,
11312
- theme = _ref.theme,
11313
- errorMessage = _ref.errorMessage,
11314
- _ref$isLoggedIn = _ref.isLoggedIn,
11315
- isLoggedIn = _ref$isLoggedIn === void 0 ? false : _ref$isLoggedIn,
11316
- submitHandler = _ref.submitHandler;
11317
- var isMobile = useMobile();
11318
-
11319
- var _useState = React.useState({
11320
- firstName: '',
11321
- lastName: '',
11322
- email: ''
11323
- }),
11324
- formValues = _useState[0],
11325
- setFormValues = _useState[1];
11319
+ var SignUpTitle = function SignUpTitle(_ref) {
11320
+ var title = _ref.title,
11321
+ _ref$isMobile = _ref.isMobile,
11322
+ isMobile = _ref$isMobile === void 0 ? false : _ref$isMobile;
11323
+ return /*#__PURE__*/React__default.createElement(GridItem, {
11324
+ columnStartDesktop: 3,
11325
+ columnSpanDesktop: 10,
11326
+ columnStartDevice: 2,
11327
+ columnSpanDevice: 12
11328
+ }, /*#__PURE__*/React__default.createElement(SignUpTitleWrapper, null, /*#__PURE__*/React__default.createElement(AltHeader, {
11329
+ level: isMobile ? 3 : 4
11330
+ }, title)));
11331
+ };
11326
11332
 
11327
- var _useState2 = React.useState({}),
11328
- errors = _useState2[0],
11329
- setErrors = _useState2[1];
11333
+ var SignUpMessage = function SignUpMessage(_ref2) {
11334
+ var message = _ref2.message,
11335
+ _ref2$withDropdown = _ref2.withDropdown,
11336
+ withDropdown = _ref2$withDropdown === void 0 ? false : _ref2$withDropdown;
11337
+ return /*#__PURE__*/React__default.createElement(GridItem, {
11338
+ columnStartDesktop: 3,
11339
+ columnSpanDesktop: 10,
11340
+ columnStartDevice: 2,
11341
+ columnSpanDevice: withDropdown ? 11 : 12
11342
+ }, /*#__PURE__*/React__default.createElement(MessageWrapper$1, null, /*#__PURE__*/React__default.createElement(AltHeader, {
11343
+ level: 6
11344
+ }, /*#__PURE__*/React__default.createElement("div", {
11345
+ dangerouslySetInnerHTML: {
11346
+ __html: message
11347
+ }
11348
+ }))));
11349
+ };
11330
11350
 
11331
- var _useState3 = React.useState(false),
11332
- isSuccess = _useState3[0],
11333
- setIsSuccess = _useState3[1];
11351
+ var SignUpForm = function SignUpForm(_ref3) {
11352
+ var submitHandler = _ref3.submitHandler,
11353
+ errorMessage = _ref3.errorMessage,
11354
+ ctaPrivacy = _ref3.ctaPrivacy,
11355
+ theme = _ref3.theme,
11356
+ isSuccess = _ref3.isSuccess,
11357
+ setIsSuccess = _ref3.setIsSuccess,
11358
+ formValues = _ref3.formValues,
11359
+ setFormValues = _ref3.setFormValues,
11360
+ _ref3$isLoggedIn = _ref3.isLoggedIn,
11361
+ isLoggedIn = _ref3$isLoggedIn === void 0 ? false : _ref3$isLoggedIn,
11362
+ _ref3$isMobile = _ref3.isMobile,
11363
+ isMobile = _ref3$isMobile === void 0 ? false : _ref3$isMobile;
11364
+
11365
+ var _useState = React.useState({}),
11366
+ errors = _useState[0],
11367
+ setErrors = _useState[1];
11334
11368
 
11335
11369
  var handleChange = function handleChange(field) {
11336
11370
  return function (e) {
@@ -11364,7 +11398,7 @@ var SignUpForm = function SignUpForm(_ref) {
11364
11398
  };
11365
11399
 
11366
11400
  var handleFormSubmit = /*#__PURE__*/function () {
11367
- var _ref2 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(e) {
11401
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(e) {
11368
11402
  var formErrors, response;
11369
11403
  return runtime_1.wrap(function _callee$(_context) {
11370
11404
  while (1) {
@@ -11434,31 +11468,11 @@ var SignUpForm = function SignUpForm(_ref) {
11434
11468
  }));
11435
11469
 
11436
11470
  return function handleFormSubmit(_x) {
11437
- return _ref2.apply(this, arguments);
11471
+ return _ref4.apply(this, arguments);
11438
11472
  };
11439
11473
  }();
11440
11474
 
11441
- return /*#__PURE__*/React__default.createElement(Wrapper$8, {
11442
- theme: themeToColor(theme)
11443
- }, /*#__PURE__*/React__default.createElement(SignUpFormWrapper, null, /*#__PURE__*/React__default.createElement(GridItem, {
11444
- columnStartDesktop: 3,
11445
- columnSpanDesktop: 10,
11446
- columnStartDevice: 2,
11447
- columnSpanDevice: 12
11448
- }, /*#__PURE__*/React__default.createElement(SignUpTitleWrapper, null, /*#__PURE__*/React__default.createElement(AltHeader, {
11449
- level: isMobile ? 3 : 4
11450
- }, isSuccess ? submittedState.title : initialState.title))), /*#__PURE__*/React__default.createElement(GridItem, {
11451
- columnStartDesktop: 3,
11452
- columnSpanDesktop: 10,
11453
- columnStartDevice: 2,
11454
- columnSpanDevice: 12
11455
- }, /*#__PURE__*/React__default.createElement(MessageWrapper$1, null, /*#__PURE__*/React__default.createElement(AltHeader, {
11456
- level: 6
11457
- }, /*#__PURE__*/React__default.createElement("div", {
11458
- dangerouslySetInnerHTML: {
11459
- __html: isSuccess ? submittedState.message : initialState.message
11460
- }
11461
- })))), !isSuccess && /*#__PURE__*/React__default.createElement(GridItem, {
11475
+ return /*#__PURE__*/React__default.createElement(GridItem, {
11462
11476
  columnStartDesktop: 3,
11463
11477
  columnSpanDesktop: 12,
11464
11478
  columnStartDevice: 2,
@@ -11514,7 +11528,15 @@ var SignUpForm = function SignUpForm(_ref) {
11514
11528
  "aria-live": "assertive"
11515
11529
  }, /*#__PURE__*/React__default.createElement(AltHeader, {
11516
11530
  level: 6
11517
- }, errors.serverError))), /*#__PURE__*/React__default.createElement(FormFooterWrapper, null, /*#__PURE__*/React__default.createElement(ButtonWrapper$3, {
11531
+ }, errors.serverError))), !isLoggedIn && isMobile ? /*#__PURE__*/React__default.createElement(FormFooterWrapper, null, /*#__PURE__*/React__default.createElement(CTALinkWrapper, {
11532
+ href: ctaPrivacy.link
11533
+ }, /*#__PURE__*/React__default.createElement(BodyText, {
11534
+ level: 1
11535
+ }, ctaPrivacy.text)), /*#__PURE__*/React__default.createElement(ButtonWrapper$3, {
11536
+ type: "submit"
11537
+ }, /*#__PURE__*/React__default.createElement(PrimaryButton, {
11538
+ bgColor: themeToColor(theme)
11539
+ }, "Sign up"))) : /*#__PURE__*/React__default.createElement(FormFooterWrapper, null, /*#__PURE__*/React__default.createElement(ButtonWrapper$3, {
11518
11540
  type: "submit"
11519
11541
  }, /*#__PURE__*/React__default.createElement(PrimaryButton, {
11520
11542
  bgColor: themeToColor(theme)
@@ -11522,7 +11544,111 @@ var SignUpForm = function SignUpForm(_ref) {
11522
11544
  href: ctaPrivacy.link
11523
11545
  }, /*#__PURE__*/React__default.createElement(BodyText, {
11524
11546
  level: 1
11525
- }, ctaPrivacy.text)))))));
11547
+ }, ctaPrivacy.text)))));
11548
+ };
11549
+
11550
+ var SignUpFormComponent = function SignUpFormComponent(_ref5) {
11551
+ var initialState = _ref5.initialState,
11552
+ submittedState = _ref5.submittedState,
11553
+ ctaPrivacy = _ref5.ctaPrivacy,
11554
+ theme = _ref5.theme,
11555
+ errorMessage = _ref5.errorMessage,
11556
+ _ref5$isLoggedIn = _ref5.isLoggedIn,
11557
+ isLoggedIn = _ref5$isLoggedIn === void 0 ? false : _ref5$isLoggedIn,
11558
+ submitHandler = _ref5.submitHandler;
11559
+ var signUpHeaderId = 'signup-header';
11560
+ var signUpInstructionsId = 'sign-up-instructions';
11561
+ var isMobile = useMobile();
11562
+
11563
+ var _useState2 = React.useState(false),
11564
+ isSuccess = _useState2[0],
11565
+ setIsSuccess = _useState2[1];
11566
+
11567
+ var _useState3 = React.useState(false),
11568
+ dropdownOpen = _useState3[0],
11569
+ setDropdownOpen = _useState3[1];
11570
+
11571
+ var successRef = React.useRef(null);
11572
+
11573
+ var _useState4 = React.useState({
11574
+ firstName: '',
11575
+ lastName: '',
11576
+ email: ''
11577
+ }),
11578
+ formValues = _useState4[0],
11579
+ setFormValues = _useState4[1];
11580
+
11581
+ React.useEffect(function () {
11582
+ if (isMobile && !isLoggedIn && isSuccess && successRef.current) {
11583
+ successRef.current.scrollIntoView({
11584
+ behavior: 'smooth',
11585
+ block: 'center'
11586
+ });
11587
+ }
11588
+ }, [isSuccess]);
11589
+ return /*#__PURE__*/React__default.createElement(Wrapper$8, {
11590
+ theme: themeToColor(theme)
11591
+ }, /*#__PURE__*/React__default.createElement(SignUpFormWrapper, null, isMobile && !isLoggedIn && !isSuccess ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(HiddenInstructions, {
11592
+ id: signUpInstructionsId,
11593
+ "aria-hidden": "true"
11594
+ }, dropdownOpen ? 'Collapse content. Use the arrow key or tap to collapse.' : 'Expand content. Use the arrow key or tap to expand.'), /*#__PURE__*/React__default.createElement(DropdownAreaWrapper, {
11595
+ role: "button",
11596
+ onClick: function onClick() {
11597
+ return setDropdownOpen(function (prev) {
11598
+ return !prev;
11599
+ });
11600
+ },
11601
+ tabIndex: 0,
11602
+ "aria-labelledby": signUpHeaderId,
11603
+ "aria-describedby": signUpInstructionsId,
11604
+ "aria-expanded": dropdownOpen
11605
+ }, /*#__PURE__*/React__default.createElement(SignUpHeader, {
11606
+ id: signUpHeaderId
11607
+ }, /*#__PURE__*/React__default.createElement(SignUpTitle, {
11608
+ title: isSuccess ? submittedState.title : initialState.title,
11609
+ isMobile: isMobile
11610
+ }), /*#__PURE__*/React__default.createElement(SignUpMessage, {
11611
+ message: isSuccess ? submittedState.message : initialState.message,
11612
+ withDropdown: isMobile
11613
+ }), /*#__PURE__*/React__default.createElement(DropdownWrapper, {
11614
+ "data-testid": "dropdown",
11615
+ isOpen: dropdownOpen,
11616
+ "aria-hidden": "true"
11617
+ }, /*#__PURE__*/React__default.createElement(Dropdown, {
11618
+ className: "dropdown-icon",
11619
+ colorPrimary: exports.Colors.Black,
11620
+ isMobileBehaviour: isMobile,
11621
+ withIcon: "left"
11622
+ })))), dropdownOpen && /*#__PURE__*/React__default.createElement(SignUpForm, {
11623
+ submitHandler: submitHandler,
11624
+ errorMessage: errorMessage,
11625
+ ctaPrivacy: ctaPrivacy,
11626
+ theme: theme,
11627
+ isSuccess: isSuccess,
11628
+ setIsSuccess: setIsSuccess,
11629
+ isLoggedIn: isLoggedIn,
11630
+ isMobile: isMobile,
11631
+ formValues: formValues,
11632
+ setFormValues: setFormValues
11633
+ })) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SignUpHeader, {
11634
+ ref: successRef
11635
+ }, /*#__PURE__*/React__default.createElement(SignUpTitle, {
11636
+ title: isSuccess ? submittedState.title : initialState.title,
11637
+ isMobile: isMobile
11638
+ }), /*#__PURE__*/React__default.createElement(SignUpMessage, {
11639
+ message: isSuccess ? submittedState.message : initialState.message
11640
+ })), !isSuccess && /*#__PURE__*/React__default.createElement(SignUpForm, {
11641
+ submitHandler: submitHandler,
11642
+ errorMessage: errorMessage,
11643
+ ctaPrivacy: ctaPrivacy,
11644
+ theme: theme,
11645
+ isSuccess: isSuccess,
11646
+ setIsSuccess: setIsSuccess,
11647
+ isLoggedIn: isLoggedIn,
11648
+ isMobile: isMobile,
11649
+ formValues: formValues,
11650
+ setFormValues: setFormValues
11651
+ }))));
11526
11652
  };
11527
11653
 
11528
11654
  var UpsellSection = function UpsellSection(_ref) {
@@ -12781,7 +12907,7 @@ exports.SectionTitle = SectionTitle;
12781
12907
  exports.Select = Select;
12782
12908
  exports.Select2 = SelectComponent;
12783
12909
  exports.Select2Async = SelectComponent$1;
12784
- exports.SignUpForm = SignUpForm;
12910
+ exports.SignUpForm = SignUpFormComponent;
12785
12911
  exports.Sponsorship = Sponsorship;
12786
12912
  exports.StatusBanner = StatusBanner;
12787
12913
  exports.Stepper = Component;