@nypl/design-system-react-components 1.4.2 → 1.5.0-rc2

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 (65) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  3. package/dist/components/Header/components/HeaderSearchButton.d.ts +2 -2
  4. package/dist/components/Notification/Notification.d.ts +8 -7
  5. package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +1 -1
  6. package/dist/design-system-react-components.cjs.development.js +1227 -205
  7. package/dist/design-system-react-components.cjs.development.js.map +1 -1
  8. package/dist/design-system-react-components.cjs.production.min.js +1 -1
  9. package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
  10. package/dist/design-system-react-components.esm.js +1230 -208
  11. package/dist/design-system-react-components.esm.js.map +1 -1
  12. package/dist/styles.css +1 -1
  13. package/dist/theme/components/accordion.d.ts +14 -0
  14. package/dist/theme/components/audioPlayer.d.ts +7 -0
  15. package/dist/theme/components/breadcrumb.d.ts +33 -0
  16. package/dist/theme/components/button.d.ts +12 -0
  17. package/dist/theme/components/card.d.ts +40 -0
  18. package/dist/theme/components/checkbox.d.ts +67 -0
  19. package/dist/theme/components/customTable.d.ts +103 -2
  20. package/dist/theme/components/feedbackBox.d.ts +22 -0
  21. package/dist/theme/components/fieldset.d.ts +3 -0
  22. package/dist/theme/components/filterBar.d.ts +16 -0
  23. package/dist/theme/components/footer.d.ts +18 -0
  24. package/dist/theme/components/global.d.ts +46 -0
  25. package/dist/theme/components/header/header.d.ts +5 -0
  26. package/dist/theme/components/header/headerLogin.d.ts +35 -0
  27. package/dist/theme/components/header/headerLoginButton.d.ts +15 -0
  28. package/dist/theme/components/header/headerLowerNav.d.ts +32 -0
  29. package/dist/theme/components/header/headerMobileIconNav.d.ts +5 -0
  30. package/dist/theme/components/header/headerMobileNav.d.ts +7 -0
  31. package/dist/theme/components/header/headerMobileNavButton.d.ts +6 -0
  32. package/dist/theme/components/header/headerSearchButton.d.ts +27 -0
  33. package/dist/theme/components/header/headerSearchForm.d.ts +10 -0
  34. package/dist/theme/components/header/headerSitewideAlerts.d.ts +15 -0
  35. package/dist/theme/components/header/headerUpperNav.d.ts +15 -0
  36. package/dist/theme/components/heading.d.ts +9 -0
  37. package/dist/theme/components/helperErrorText.d.ts +3 -0
  38. package/dist/theme/components/hero.d.ts +43 -6
  39. package/dist/theme/components/horizontalRule.d.ts +3 -0
  40. package/dist/theme/components/image.d.ts +54 -0
  41. package/dist/theme/components/label.d.ts +3 -0
  42. package/dist/theme/components/link.d.ts +20 -4
  43. package/dist/theme/components/list.d.ts +46 -0
  44. package/dist/theme/components/modal.d.ts +21 -0
  45. package/dist/theme/components/multiSelectMenuButton.d.ts +23 -0
  46. package/dist/theme/components/notification.d.ts +62 -21
  47. package/dist/theme/components/progressIndicator.d.ts +16 -0
  48. package/dist/theme/components/radio.d.ts +63 -0
  49. package/dist/theme/components/searchBar.d.ts +11 -1
  50. package/dist/theme/components/select.d.ts +39 -0
  51. package/dist/theme/components/skeletonLoader.d.ts +4 -1
  52. package/dist/theme/components/skipNavigation.d.ts +3 -0
  53. package/dist/theme/components/slider.d.ts +21 -2
  54. package/dist/theme/components/statusBadge.d.ts +12 -0
  55. package/dist/theme/components/structuredContent.d.ts +63 -4
  56. package/dist/theme/components/styledList.d.ts +10 -0
  57. package/dist/theme/components/tabs.d.ts +37 -1
  58. package/dist/theme/components/tagSet.d.ts +39 -0
  59. package/dist/theme/components/template.d.ts +3 -0
  60. package/dist/theme/components/textInput.d.ts +194 -0
  61. package/dist/theme/components/toggle.d.ts +39 -3
  62. package/dist/theme/components/tooltip.d.ts +6 -1
  63. package/dist/theme/components/videoPlayer.d.ts +7 -0
  64. package/dist/theme/foundations/global.d.ts +10 -0
  65. package/package.json +1 -1
@@ -1415,7 +1415,7 @@ var _excluded$R = ["accordionData", "id", "isDefaultOpen", "isAlwaysRendered", "
1415
1415
  * Get the minus or plus icon depending on whether the accordion
1416
1416
  * is open or closed.
1417
1417
  */
1418
- var getIcon = function getIcon(isExpanded, index, id) {
1418
+ var getIcon = function getIcon(isExpanded, index, id, iconColor) {
1419
1419
  if (isExpanded === void 0) {
1420
1420
  isExpanded = false;
1421
1421
  }
@@ -1423,7 +1423,8 @@ var getIcon = function getIcon(isExpanded, index, id) {
1423
1423
  return React__default.createElement(Icon, {
1424
1424
  id: "accordion-" + id + "-icon-" + index,
1425
1425
  name: iconName,
1426
- size: "small"
1426
+ size: "small",
1427
+ color: iconColor
1427
1428
  });
1428
1429
  };
1429
1430
  /**
@@ -1431,7 +1432,7 @@ var getIcon = function getIcon(isExpanded, index, id) {
1431
1432
  * array. This automatically creates the `AccordionButton` and `AccordionPanel`
1432
1433
  * combination that is required for the Chakra `Accordion` component.
1433
1434
  */
1434
- var getElementsFromData = function getElementsFromData(data, id, isAlwaysRendered, panelMaxHeight) {
1435
+ var getElementsFromData = function getElementsFromData(data, id, isAlwaysRendered, isDarkMode, panelMaxHeight) {
1435
1436
  var _data, _data2;
1436
1437
  if (data === void 0) {
1437
1438
  data = [];
@@ -1439,7 +1440,11 @@ var getElementsFromData = function getElementsFromData(data, id, isAlwaysRendere
1439
1440
  if (isAlwaysRendered === void 0) {
1440
1441
  isAlwaysRendered = false;
1441
1442
  }
1442
- var colorMap = {
1443
+ var colorMap = isDarkMode ? {
1444
+ "default": "ui.white",
1445
+ warning: "ui.status.primary",
1446
+ error: "dark.ui.error.primary"
1447
+ } : {
1443
1448
  "default": "ui.white",
1444
1449
  warning: "ui.status.primary",
1445
1450
  error: "ui.status.secondary"
@@ -1472,7 +1477,7 @@ var getElementsFromData = function getElementsFromData(data, id, isAlwaysRendere
1472
1477
  var bgColorByAccordionType = colorMap[content.accordionType];
1473
1478
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(react.AccordionButton, {
1474
1479
  id: id + "-button-" + index,
1475
- borderColor: "ui.gray.medium",
1480
+ borderColor: isDarkMode ? "dark.ui.border.default" : "ui.gray.medium",
1476
1481
  padding: multiplePadding,
1477
1482
  bg: !content.accordionType ? colorMap["default"] : bgColorByAccordionType,
1478
1483
  _expanded: {
@@ -1481,13 +1486,22 @@ var getElementsFromData = function getElementsFromData(data, id, isAlwaysRendere
1481
1486
  _hover: {
1482
1487
  bg: !content.accordionType || content.accordionType === "default" ? "transparent" : bgColorByAccordionType,
1483
1488
  borderColor: "ui.gray.dark"
1489
+ },
1490
+ _dark: {
1491
+ _expanded: {
1492
+ bg: "dark.ui.bg.active"
1493
+ },
1494
+ bg: "dark.ui.bg.default",
1495
+ color: "dark.ui.typography.heading",
1496
+ borderLeft: "4px solid",
1497
+ borderLeftColor: !content.accordionType || content.accordionType === "default" ? "dark.ui.border.hover" : bgColorByAccordionType
1484
1498
  }
1485
1499
  }, React__default.createElement(react.Box, {
1486
1500
  as: "span",
1487
1501
  flex: "1",
1488
1502
  fontSize: multipleFontSize,
1489
1503
  textAlign: "left"
1490
- }, content.label), getIcon(isExpanded, index, id)), (isAlwaysRendered || isExpanded) && panel);
1504
+ }, content.label), getIcon(isExpanded, index, id, isDarkMode ? "dark.ui.typography.heading" : "ui.black")), (isAlwaysRendered || isExpanded) && panel);
1491
1505
  });
1492
1506
  });
1493
1507
  };
@@ -1504,6 +1518,7 @@ var Accordion = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(functio
1504
1518
  isAlwaysRendered = _props$isAlwaysRender === void 0 ? false : _props$isAlwaysRender,
1505
1519
  panelMaxHeight = props.panelMaxHeight,
1506
1520
  rest = _objectWithoutPropertiesLoose(props, _excluded$R);
1521
+ var isDarkMode = react.useColorMode().colorMode === "dark";
1507
1522
  // Pass `0` to open the first accordion in the 0-index based array.
1508
1523
  var openFirstAccordion = isDefaultOpen ? [0] : undefined;
1509
1524
  return React__default.createElement(react.Accordion, Object.assign({
@@ -1511,7 +1526,7 @@ var Accordion = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(functio
1511
1526
  defaultIndex: openFirstAccordion,
1512
1527
  id: id,
1513
1528
  ref: ref
1514
- }, rest), getElementsFromData(accordionData, id, isAlwaysRendered, panelMaxHeight));
1529
+ }, rest), getElementsFromData(accordionData, id, isAlwaysRendered, isDarkMode, panelMaxHeight));
1515
1530
  }));
1516
1531
 
1517
1532
  var _excluded$S = ["buttonType", "children", "className", "id", "isDisabled", "mouseDown", "onClick", "size", "type"];
@@ -2028,13 +2043,15 @@ var AlphabetFilter = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(fu
2028
2043
  setSelectedLetter(clickedLetter);
2029
2044
  onClick && onClick(clickedLetter);
2030
2045
  };
2046
+ // Set the color of the border of the selected letter based on the color mode.
2047
+ var selectedLetterBorderColor = react.useColorModeValue("ui.gray.dark", "ui.gray.medium");
2031
2048
  var getButtonElement = function getButtonElement(item) {
2032
2049
  var isSelectedLetter = selectedLetter === item.value && item.value !== "showAll";
2033
2050
  var isShowAll = item.value === "showAll";
2034
2051
  var isButtonDisabled = isDisabled || activeLetters && !activeLetters.includes(item.value) && !isShowAll;
2035
2052
  var buttonStyles = isSelectedLetter ? _extends({}, styles.button, {
2036
2053
  border: "1px solid",
2037
- borderColor: "ui.border.hover"
2054
+ borderColor: selectedLetterBorderColor
2038
2055
  }) : _extends({}, styles.button, {
2039
2056
  border: "1px solid transparent"
2040
2057
  });
@@ -4166,8 +4183,11 @@ var activeFocus = function activeFocus(darkMode) {
4166
4183
  boxShadow: "none",
4167
4184
  outline: "2px solid",
4168
4185
  outlineOffset: "2px",
4169
- outlineColor: darkMode ? "ui.white" : "ui.focus",
4170
- zIndex: "9999"
4186
+ outlineColor: darkMode ? "dark.ui.focus" : "ui.focus",
4187
+ zIndex: "9999",
4188
+ _dark: {
4189
+ outlineColor: "dark.ui.focus"
4190
+ }
4171
4191
  };
4172
4192
  };
4173
4193
  // Used in `Checkbox` and `Radio`.
@@ -4184,6 +4204,14 @@ var checkboxRadioLabelStyles = {
4184
4204
  },
4185
4205
  _invalid: {
4186
4206
  color: "ui.error.primary"
4207
+ },
4208
+ _dark: {
4209
+ _disabled: {
4210
+ color: "dark.ui.disabled.primary"
4211
+ },
4212
+ _invalid: {
4213
+ color: "dark.ui.error.primary"
4214
+ }
4187
4215
  }
4188
4216
  };
4189
4217
  // Custom values not in the spacing theme.
@@ -4216,6 +4244,22 @@ var checkboxRadioHoverStyles = {
4216
4244
  _invalid: {
4217
4245
  borderColor: "ui.error.primary"
4218
4246
  }
4247
+ },
4248
+ _dark: {
4249
+ span: {
4250
+ _first: {
4251
+ borderColor: "ui.gray.dark"
4252
+ },
4253
+ _checked: {
4254
+ borderColor: "dark.ui.focus"
4255
+ },
4256
+ _disabled: {
4257
+ borderColor: "dark.ui.disabled.primary"
4258
+ },
4259
+ _invalid: {
4260
+ borderColor: "dark.ui.error.primary"
4261
+ }
4262
+ }
4219
4263
  }
4220
4264
  }
4221
4265
  };
@@ -4245,6 +4289,9 @@ var labelLegendText = {
4245
4289
  width: "100%",
4246
4290
  span: {
4247
4291
  fontWeight: "regular"
4292
+ },
4293
+ _dark: {
4294
+ color: "dark.ui.typography.heading"
4248
4295
  }
4249
4296
  };
4250
4297
  // Used for the disabled state of Select and TextInput
@@ -4252,11 +4299,19 @@ var selectTextInputDisabledStyles = {
4252
4299
  bg: "ui.disabled.secondary",
4253
4300
  borderColor: "ui.disabled.primary",
4254
4301
  color: "ui.gray.dark",
4255
- opacity: "1"
4302
+ opacity: "1",
4303
+ _dark: {
4304
+ bg: "dark.ui.bg.default",
4305
+ borderColor: "dark.ui.disabled.secondary",
4306
+ color: "dark.ui.disabled.primary"
4307
+ }
4256
4308
  };
4257
4309
  // Used for the focus state of Select and TextInput
4258
4310
  var selectTextInputFocusStyles = /*#__PURE__*/_extends({}, /*#__PURE__*/activeFocus(), {
4259
- borderColor: "ui.focus"
4311
+ borderColor: "ui.focus",
4312
+ _dark: /*#__PURE__*/_extends({}, /*#__PURE__*/activeFocus(true), {
4313
+ borderColor: "dark.ui.focus"
4314
+ })
4260
4315
  });
4261
4316
  // Used for p, ul, and ol
4262
4317
  var textMargin = {
@@ -4278,7 +4333,11 @@ var global = {
4278
4333
  fontSize: "text.default",
4279
4334
  fontWeight: "text.default",
4280
4335
  lineHeight: "1.5",
4281
- overflowX: "hidden"
4336
+ overflowX: "hidden",
4337
+ _dark: {
4338
+ bg: "dark.ui.bg.page",
4339
+ color: "dark.ui.typography.body"
4340
+ }
4282
4341
  },
4283
4342
  // styles for the `a` element
4284
4343
  a: {
@@ -4360,9 +4419,86 @@ var linkPrimary = "#0576D3";
4360
4419
  var linkSecondary = "#004B98";
4361
4420
  var brandPrimary = "#C60917";
4362
4421
  var brandSecondary = "#760000";
4422
+ var blogsPrimary = grayLightCool;
4423
+ var blogsSecondary = grayMedium;
4424
+ var educationPrimary = "#1D62E6";
4425
+ var educationSecondary = "#2540A4";
4426
+ var researchPrimary = "#00838A";
4427
+ var researchSecondary = "#006166";
4428
+ var researchLibraryLpa = "#005D53";
4429
+ var researchLibrarySchomburg = "#A03E31";
4430
+ var researchLibrarySchwartzman = brandSecondary;
4431
+ var whatsOnPrimary = "#242424";
4432
+ var whatsOnSecondary = black;
4363
4433
  var brandObj = {
4364
- primary: brandPrimary,
4365
- secondary: brandSecondary
4434
+ light: {
4435
+ primary: brandPrimary,
4436
+ secondary: brandSecondary
4437
+ },
4438
+ dark: {
4439
+ primary: /*#__PURE__*/hexToRGB(brandPrimary, 0.2),
4440
+ secondary: /*#__PURE__*/hexToRGB(brandSecondary, 0.2)
4441
+ }
4442
+ };
4443
+ var blogsObj = {
4444
+ light: {
4445
+ primary: blogsPrimary,
4446
+ secondary: blogsSecondary
4447
+ },
4448
+ dark: {
4449
+ primary: /*#__PURE__*/hexToRGB(blogsPrimary, 0.2),
4450
+ secondary: /*#__PURE__*/hexToRGB(blogsSecondary, 0.2)
4451
+ }
4452
+ };
4453
+ var booksAndMoreObj = {
4454
+ light: brandObj.light,
4455
+ dark: brandObj.dark
4456
+ };
4457
+ var educationObj = {
4458
+ light: {
4459
+ primary: educationPrimary,
4460
+ secondary: educationSecondary
4461
+ },
4462
+ dark: {
4463
+ primary: /*#__PURE__*/hexToRGB(educationPrimary, 0.2),
4464
+ secondary: /*#__PURE__*/hexToRGB(educationSecondary, 0.2)
4465
+ }
4466
+ };
4467
+ var locationsObj = {
4468
+ light: brandObj.light,
4469
+ dark: brandObj.dark
4470
+ };
4471
+ var researchObj = {
4472
+ light: {
4473
+ primary: researchPrimary,
4474
+ secondary: researchSecondary
4475
+ },
4476
+ dark: {
4477
+ primary: /*#__PURE__*/hexToRGB(researchPrimary, 0.2),
4478
+ secondary: /*#__PURE__*/hexToRGB(researchSecondary, 0.2)
4479
+ }
4480
+ };
4481
+ var researchLibraryObj = {
4482
+ light: {
4483
+ lpa: researchLibraryLpa,
4484
+ schomburg: researchLibrarySchomburg,
4485
+ schwatzman: researchLibrarySchwartzman
4486
+ },
4487
+ dark: {
4488
+ lpa: /*#__PURE__*/hexToRGB(researchLibraryLpa, 0.2),
4489
+ schomburg: /*#__PURE__*/hexToRGB(researchLibrarySchomburg, 0.2),
4490
+ schwatzman: /*#__PURE__*/hexToRGB(researchLibrarySchwartzman, 0.2)
4491
+ }
4492
+ };
4493
+ var whatsOnObj = {
4494
+ light: {
4495
+ primary: whatsOnPrimary,
4496
+ secondary: whatsOnSecondary
4497
+ },
4498
+ dark: {
4499
+ primary: /*#__PURE__*/hexToRGB(grayLightCool, 0.2),
4500
+ secondary: /*#__PURE__*/hexToRGB(white, 0.05)
4501
+ }
4366
4502
  };
4367
4503
  var colors = {
4368
4504
  transparent: "transparent",
@@ -4400,7 +4536,6 @@ var colors = {
4400
4536
  },
4401
4537
  // Semantic colors
4402
4538
  bg: {
4403
- page: white,
4404
4539
  "default": grayxLightCool,
4405
4540
  hover: grayLightCool,
4406
4541
  active: grayMedium
@@ -4433,12 +4568,22 @@ var colors = {
4433
4568
  "x-light-warm": "#F8F8F7"
4434
4569
  }
4435
4570
  },
4436
- // dark mode ui fills
4571
+ // dark mode fills
4437
4572
  dark: {
4573
+ brand: brandObj.dark,
4574
+ section: {
4575
+ blogs: blogsObj.dark,
4576
+ "books-and-more": booksAndMoreObj.dark,
4577
+ education: educationObj.dark,
4578
+ locations: locationsObj.dark,
4579
+ research: researchObj.dark,
4580
+ "research-library": researchLibraryObj.dark,
4581
+ "whats-on": whatsOnObj.dark
4582
+ },
4438
4583
  ui: {
4439
4584
  /// State and link utilities
4440
4585
  disabled: {
4441
- primary: grayxDark,
4586
+ primary: grayDark,
4442
4587
  secondary: grayxxDark
4443
4588
  },
4444
4589
  error: {
@@ -4448,6 +4593,8 @@ var colors = {
4448
4593
  focus: "#6090E3",
4449
4594
  link: {
4450
4595
  primary: "#79B7EB",
4596
+ "primary-05": /*#__PURE__*/hexToRGB("#79B7EB", 0.05),
4597
+ "primary-10": /*#__PURE__*/hexToRGB("#79B7EB", 0.1),
4451
4598
  secondary: "#95CFFF"
4452
4599
  },
4453
4600
  status: {
@@ -4478,49 +4625,33 @@ var colors = {
4478
4625
  heading: grayLightCool,
4479
4626
  body: grayMedium,
4480
4627
  inverse: {
4481
- heading: grayxxDark,
4482
- body: grayxxDark
4628
+ heading: grayxxxDark,
4629
+ body: grayxxxDark
4483
4630
  }
4484
4631
  }
4485
4632
  }
4486
4633
  },
4487
4634
  /** Brand fills are the NYPL primary and secondary colors. */
4488
- brand: brandObj,
4635
+ brand: brandObj.light,
4489
4636
  /** Brand fills for sections on NYPL pages. */
4490
4637
  section: {
4491
4638
  /** Blogs is used for the Blogs section. */
4492
- blogs: {
4493
- primary: grayLightCool,
4494
- secondary: grayMedium
4495
- },
4639
+ blogs: blogsObj.light,
4496
4640
  /** Books and More is used for the Catalog, Staff Picks, Recommendations,
4497
4641
  * New Arrivals, and E-Book Central. */
4498
- "books-and-more": brandObj,
4642
+ "books-and-more": booksAndMoreObj.light,
4499
4643
  /** Education is used for the Education section front and associated
4500
4644
  * sub-sections. */
4501
- education: {
4502
- primary: "#1D62E6",
4503
- secondary: "#2540A4"
4504
- },
4645
+ education: educationObj.light,
4505
4646
  /** Locations is used for Location Finder and all branch pages with
4506
4647
  * the exceptions of some research libraries. */
4507
- locations: brandObj,
4648
+ locations: locationsObj.light,
4508
4649
  /** Research is used for the Research Catalog and SCC. */
4509
- research: {
4510
- primary: "#00838A",
4511
- secondary: "#006166"
4512
- },
4650
+ research: researchObj.light,
4513
4651
  /** Research libraries with specific brand colors to adhere to. */
4514
- "research-library": {
4515
- lpa: "#005D53",
4516
- schomburg: "#A03E31",
4517
- schwartzman: brandSecondary
4518
- },
4652
+ "research-library": researchLibraryObj.light,
4519
4653
  /** What's On is used for Exhibitions & Events. */
4520
- "whats-on": {
4521
- primary: "#242424",
4522
- secondary: black
4523
- }
4654
+ "whats-on": whatsOnObj.light
4524
4655
  },
4525
4656
  /**
4526
4657
  * The following color scales are useful for color edge cases where a
@@ -4726,17 +4857,31 @@ var typography = {
4726
4857
 
4727
4858
  var containerStyles = {
4728
4859
  border: "none",
4729
- width: "100%"
4860
+ width: "100%",
4861
+ _dark: {
4862
+ bg: "dark.ui.bg.default",
4863
+ color: "dark.ui.typography.heading",
4864
+ borderColor: "dark.ui.border.default"
4865
+ }
4730
4866
  };
4731
4867
  var buttonStyles = {
4732
4868
  borderWidth: "1px",
4733
- fontWeight: "medium"
4869
+ fontWeight: "medium",
4870
+ _dark: {
4871
+ bg: "dark.ui.bg.default",
4872
+ color: "dark.ui.typography.heading"
4873
+ }
4734
4874
  };
4735
4875
  var panelStyles = {
4736
4876
  padding: "s",
4737
4877
  borderLeftWidth: "1px",
4738
4878
  borderRightWidth: "1px",
4739
- borderBottomWidth: "1px"
4879
+ borderBottomWidth: "1px",
4880
+ _dark: {
4881
+ bg: "dark.ui.bg.default",
4882
+ color: "dark.ui.typography.body",
4883
+ borderColor: "dark.ui.border.default"
4884
+ }
4740
4885
  };
4741
4886
  var Accordion$1 = {
4742
4887
  parts: ["container", "button", "panel"],
@@ -4784,7 +4929,14 @@ var AudioPlayer$1 = {
4784
4929
  baseStyle: {
4785
4930
  invalid: {
4786
4931
  backgroundColor: "ui.bg.default",
4787
- padding: "s"
4932
+ border: "1px solid",
4933
+ borderColor: "ui.border.default",
4934
+ padding: "s",
4935
+ _dark: {
4936
+ bg: "dark.ui.bg.default",
4937
+ border: "1px solid",
4938
+ borderColor: "dark.ui.border.default"
4939
+ }
4788
4940
  }
4789
4941
  }
4790
4942
  };
@@ -4793,9 +4945,17 @@ var AudioPlayer$1 = {
4793
4945
  var blogs = {
4794
4946
  bg: "section.blogs.secondary",
4795
4947
  color: "ui.black",
4948
+ _dark: {
4949
+ bg: "dark.section.blogs.secondary"
4950
+ },
4796
4951
  a: {
4797
4952
  _hover: {
4798
- color: "ui.gray.x-dark"
4953
+ color: "ui.gray.xx-dark"
4954
+ },
4955
+ _dark: {
4956
+ _hover: {
4957
+ color: "dark.ui.typography.heading"
4958
+ }
4799
4959
  }
4800
4960
  },
4801
4961
  svg: {
@@ -4803,19 +4963,40 @@ var blogs = {
4803
4963
  }
4804
4964
  };
4805
4965
  var booksAndMore = {
4806
- bg: "section.books-and-more.secondary"
4966
+ bg: "section.books-and-more.secondary",
4967
+ _dark: {
4968
+ bg: "dark.section.books-and-more.secondary"
4969
+ }
4970
+ };
4971
+ var brand = {
4972
+ bg: "brand.secondary",
4973
+ _dark: {
4974
+ bg: "dark.brand.secondary"
4975
+ }
4807
4976
  };
4808
4977
  var education = {
4809
- bg: "section.education.secondary"
4978
+ bg: "section.education.secondary",
4979
+ _dark: {
4980
+ bg: "dark.section.education.secondary"
4981
+ }
4810
4982
  };
4811
4983
  var locations = {
4812
- bg: "section.locations.primary"
4984
+ bg: "section.locations.primary",
4985
+ _dark: {
4986
+ bg: "dark.section.locations.primary"
4987
+ }
4813
4988
  };
4814
4989
  var research = {
4815
- bg: "section.research.secondary"
4990
+ bg: "section.research.secondary",
4991
+ _dark: {
4992
+ bg: "dark.section.research.secondary"
4993
+ }
4816
4994
  };
4817
4995
  var whatsOn = {
4818
- bg: "section.whats-on.secondary"
4996
+ bg: "section.whats-on.secondary",
4997
+ _dark: {
4998
+ bg: "dark.section.whats-on.secondary"
4999
+ }
4819
5000
  };
4820
5001
  var Breadcrumb = {
4821
5002
  baseStyle: {
@@ -4825,6 +5006,10 @@ var Breadcrumb = {
4825
5006
  fontWeight: "breadcrumbs.default",
4826
5007
  paddingBottom: "xs",
4827
5008
  paddingTop: "xs",
5009
+ _dark: {
5010
+ bg: "dark.ui.bg.hover",
5011
+ color: "dark.ui.typography.heading"
5012
+ },
4828
5013
  ol: {
4829
5014
  alignItems: {
4830
5015
  base: "center",
@@ -4895,6 +5080,7 @@ var Breadcrumb = {
4895
5080
  variants: {
4896
5081
  blogs: blogs,
4897
5082
  booksAndMore: booksAndMore,
5083
+ brand: brand,
4898
5084
  education: education,
4899
5085
  locations: locations,
4900
5086
  research: research,
@@ -4928,6 +5114,26 @@ var buttonBaseStyle = {
4928
5114
  color: "ui.gray.dark",
4929
5115
  opacity: "1",
4930
5116
  pointerEvents: "none"
5117
+ },
5118
+ _dark: {
5119
+ _disabled: {
5120
+ bg: "dark.ui.disabled.secondary",
5121
+ color: "dark.ui.disabled.primary"
5122
+ }
5123
+ }
5124
+ };
5125
+ var ghostDarkStyles = {
5126
+ bg: "transparent",
5127
+ borderColor: "dark.ui.link.primary",
5128
+ color: "dark.ui.link.primary",
5129
+ _hover: {
5130
+ bg: "dark.ui.link.primary-10",
5131
+ borderColor: "dark.ui.link.secondary",
5132
+ color: "dark.ui.link.secondary"
5133
+ },
5134
+ _disabled: {
5135
+ bg: "dark.ui.bg.default",
5136
+ borderColor: "dark.ui.disabled.primary"
4931
5137
  }
4932
5138
  };
4933
5139
  var generalSizeValues = function generalSizeValues(size, isPill) {
@@ -4972,7 +5178,16 @@ var primary = function primary(_ref) {
4972
5178
  buttonSize = _ref$buttonSize === void 0 ? "medium" : _ref$buttonSize;
4973
5179
  return _extends({
4974
5180
  bg: "ui.link.primary"
4975
- }, generalSizeValues(buttonSize));
5181
+ }, generalSizeValues(buttonSize), {
5182
+ _dark: {
5183
+ bg: "dark.ui.link.primary",
5184
+ color: "ui.gray.xxx-dark",
5185
+ _hover: {
5186
+ bg: "dark.ui.link.secondary",
5187
+ color: "ui.gray.xxx-dark"
5188
+ }
5189
+ }
5190
+ });
4976
5191
  };
4977
5192
  var secondary = function secondary(_ref2) {
4978
5193
  var _ref2$buttonSize = _ref2.buttonSize,
@@ -4992,7 +5207,8 @@ var secondary = function secondary(_ref2) {
4992
5207
  bg: "transparent",
4993
5208
  borderColor: "ui.disabled.primary",
4994
5209
  color: "ui.disabled.primary"
4995
- }
5210
+ },
5211
+ _dark: _extends({}, ghostDarkStyles)
4996
5212
  });
4997
5213
  };
4998
5214
  // The "link" type is deprecated but we still want to style
@@ -5011,6 +5227,15 @@ var link = function link(_ref3) {
5011
5227
  _hover: {
5012
5228
  bg: "transparent",
5013
5229
  color: "ui.link.secondary"
5230
+ },
5231
+ _dark: {
5232
+ color: "dark.ui.link.primary",
5233
+ _disabled: {
5234
+ bg: "transparent"
5235
+ },
5236
+ _hover: {
5237
+ color: "dark.ui.link.secondary"
5238
+ }
5014
5239
  }
5015
5240
  });
5016
5241
  };
@@ -5027,6 +5252,15 @@ var text = function text(_ref4) {
5027
5252
  _hover: {
5028
5253
  bg: "ui.link.primary-05",
5029
5254
  color: "ui.link.secondary"
5255
+ },
5256
+ _dark: {
5257
+ color: "dark.ui.link.primary",
5258
+ _disabled: {
5259
+ bg: "transparent"
5260
+ },
5261
+ _hover: {
5262
+ color: "dark.ui.link.secondary"
5263
+ }
5030
5264
  }
5031
5265
  });
5032
5266
  };
@@ -5036,7 +5270,7 @@ var pill = function pill(_ref5) {
5036
5270
  return _extends({
5037
5271
  bg: "ui.white",
5038
5272
  border: "1px solid",
5039
- borderColor: "ui.gray.light-cool",
5273
+ borderColor: "ui.border.default",
5040
5274
  borderRadius: "button.pill",
5041
5275
  color: "inherit"
5042
5276
  }, generalSizeValues(buttonSize, true), {
@@ -5046,6 +5280,16 @@ var pill = function pill(_ref5) {
5046
5280
  },
5047
5281
  _disabled: {
5048
5282
  bg: "ui.gray.x-light-cool"
5283
+ },
5284
+ _dark: {
5285
+ background: "transparent",
5286
+ borderColor: "dark.ui.border.default",
5287
+ color: "dark.ui.typography.heading",
5288
+ _hover: {
5289
+ background: "dark.ui.bg.hover",
5290
+ borderColor: "dark.ui.border.hover",
5291
+ color: "dark.ui.typography.heading"
5292
+ }
5049
5293
  }
5050
5294
  });
5051
5295
  };
@@ -5064,7 +5308,8 @@ var iconOnly = function iconOnly(_ref6) {
5064
5308
  bg: "ui.link.primary-05",
5065
5309
  borderColor: "ui.link.secondary",
5066
5310
  color: "ui.link.secondary"
5067
- }
5311
+ },
5312
+ _dark: _extends({}, ghostDarkStyles)
5068
5313
  });
5069
5314
  };
5070
5315
  var callout = function callout(_ref7) {
@@ -5078,6 +5323,14 @@ var callout = function callout(_ref7) {
5078
5323
  },
5079
5324
  _active: {
5080
5325
  bg: "brand.secondary"
5326
+ },
5327
+ _dark: {
5328
+ bg: "brand.primary",
5329
+ color: "ui.white",
5330
+ _hover: {
5331
+ bg: "brand.secondary",
5332
+ color: "ui.white"
5333
+ }
5081
5334
  }
5082
5335
  });
5083
5336
  };
@@ -5090,6 +5343,14 @@ var noBrand = function noBrand(_ref8) {
5090
5343
  }, generalSizeValues(buttonSize), {
5091
5344
  _hover: {
5092
5345
  bg: "ui.gray.x-dark"
5346
+ },
5347
+ _dark: {
5348
+ bg: "ui.gray.x-dark",
5349
+ color: "ui.white",
5350
+ _hover: {
5351
+ bg: "ui.gray.dark",
5352
+ color: "ui.white"
5353
+ }
5093
5354
  }
5094
5355
  });
5095
5356
  };
@@ -5207,7 +5468,10 @@ var Card$1 = {
5207
5468
  } : {};
5208
5469
  var baseBorderStyles = isBordered ? {
5209
5470
  border: "1px solid",
5210
- borderColor: "ui.gray.medium"
5471
+ borderColor: "ui.border.default",
5472
+ _dark: {
5473
+ borderColor: "dark.ui.border.default"
5474
+ }
5211
5475
  } : {};
5212
5476
  var bodyPadding = getBodyPaddingStyles({
5213
5477
  isBordered: isBordered,
@@ -5266,8 +5530,13 @@ var Card$1 = {
5266
5530
  heading: {
5267
5531
  marginBottom: "xs",
5268
5532
  a: mainActionLink ? {
5269
- color: "ui.black"
5270
- } : null
5533
+ color: "ui.typography.heading"
5534
+ } : null,
5535
+ _dark: {
5536
+ a: mainActionLink ? {
5537
+ color: "dark.ui.typography.heading"
5538
+ } : null
5539
+ }
5271
5540
  }
5272
5541
  }, baseBorderStyles, layoutStyles);
5273
5542
  }
@@ -5302,7 +5571,10 @@ var CardActions$1 = {
5302
5571
  }
5303
5572
  }, topBorderStyles, bottomBorderStyles, {
5304
5573
  justifyContent: justifyContent,
5305
- borderColor: "ui.gray.medium"
5574
+ borderColor: "ui.border.default",
5575
+ _dark: {
5576
+ borderColor: "dark.ui.border.default"
5577
+ }
5306
5578
  });
5307
5579
  }
5308
5580
  };
@@ -5411,6 +5683,49 @@ var baseStyleControl = {
5411
5683
  _invalid: {
5412
5684
  borderColor: "ui.error.primary",
5413
5685
  color: "ui.error.primary"
5686
+ },
5687
+ _dark: {
5688
+ borderColor: "dark.ui.border.default",
5689
+ backgroundColor: "dark.ui.bg.default",
5690
+ color: "dark.ui.typography.body",
5691
+ _checked: {
5692
+ borderColor: "dark.ui.focus",
5693
+ color: "dark.ui.focus",
5694
+ _disabled: {
5695
+ backgroundColor: "dark.ui.bg.default",
5696
+ borderColor: "dark.ui.disabled.secondary",
5697
+ svg: {
5698
+ color: "dark.ui.disabled.secondary"
5699
+ }
5700
+ },
5701
+ _indeterminate: {
5702
+ color: "dark.ui.focus",
5703
+ borderColor: "dark.ui.focus"
5704
+ },
5705
+ _invalid: {
5706
+ borderColor: "dark.ui.error.primary",
5707
+ color: "dark.ui.error.primary"
5708
+ }
5709
+ },
5710
+ _indeterminate: {
5711
+ color: "dark.ui.focus",
5712
+ borderColor: "dark.ui.focus"
5713
+ },
5714
+ _disabled: {
5715
+ backgroundColor: "dark.ui.bg.default",
5716
+ borderColor: "dark.ui.disabled.secondary",
5717
+ svg: {
5718
+ color: "dark.ui.disabled.secondary"
5719
+ }
5720
+ },
5721
+ _focus: {
5722
+ boxShadow: "none",
5723
+ outlineColor: "dark.ui.focus"
5724
+ },
5725
+ _invalid: {
5726
+ borderColor: "dark.ui.error.primary",
5727
+ color: "dark.ui.error.primary"
5728
+ }
5414
5729
  }
5415
5730
  };
5416
5731
  // Style object for the Checkbox's label
@@ -5540,8 +5855,11 @@ var CustomImage = {
5540
5855
  width: "100%"
5541
5856
  }, imageSizes$1[size], {
5542
5857
  img: {
5543
- backgroundColor: "ui.gray.x-light-cool",
5544
- marginBottom: "xxs"
5858
+ backgroundColor: "ui.bg.default",
5859
+ marginBottom: "xxs",
5860
+ _dark: {
5861
+ backgroundColor: "dark.ui.bg.default"
5862
+ }
5545
5863
  }
5546
5864
  }),
5547
5865
  figcaption: {
@@ -5550,12 +5868,16 @@ var CustomImage = {
5550
5868
  },
5551
5869
  img: _extends({
5552
5870
  display: "block",
5553
- backgroundColor: "ui.gray.x-light-cool",
5871
+ backgroundColor: "ui.bg.default",
5554
5872
  boxSizing: "border-box",
5555
5873
  objectFit: "cover",
5556
5874
  position: "relative",
5557
5875
  width: "100%"
5558
- }, imageSizes$1[size]),
5876
+ }, imageSizes$1[size], {
5877
+ _dark: {
5878
+ backgroundColor: "dark.ui.bg.default"
5879
+ }
5880
+ }),
5559
5881
  captionWrappers: {
5560
5882
  marginTop: "xxs"
5561
5883
  }
@@ -5576,13 +5898,16 @@ var CustomImageWrapper = {
5576
5898
  }, imageSizes$1[size], {
5577
5899
  crop: _extends({}, imageRatios[ratio]),
5578
5900
  img: {
5579
- backgroundColor: "ui.gray.x-light-cool",
5901
+ backgroundColor: "ui.bg.default",
5580
5902
  height: "100%",
5581
5903
  left: "0",
5582
5904
  maxWidth: "100%",
5583
5905
  position: "absolute",
5584
5906
  top: "0",
5585
- width: "100%"
5907
+ width: "100%",
5908
+ _dark: {
5909
+ backgroundColor: "dark.ui.bg.default"
5910
+ }
5586
5911
  }
5587
5912
  });
5588
5913
  }
@@ -5617,7 +5942,19 @@ var select = {
5617
5942
  _invalid: {
5618
5943
  border: "1px solid",
5619
5944
  borderColor: "ui.error.primary",
5620
- boxShadow: "none"
5945
+ boxShadow: "none",
5946
+ color: "ui.error.primary"
5947
+ },
5948
+ _dark: {
5949
+ backgroundColor: "dark.ui.bg.default",
5950
+ borderColor: "dark.ui.border.default",
5951
+ _hover: {
5952
+ borderColor: "dark.ui.border.hover"
5953
+ },
5954
+ _invalid: {
5955
+ borderColor: "dark.ui.error.primary",
5956
+ color: "dark.ui.error.primary"
5957
+ }
5621
5958
  }
5622
5959
  };
5623
5960
  var Select = {
@@ -5689,11 +6026,25 @@ var FeedbackBox = {
5689
6026
  p: "0",
5690
6027
  position: "absolute",
5691
6028
  span: /*#__PURE__*/screenreaderOnly(),
5692
- top: "xs"
6029
+ top: "xs",
6030
+ _dark: {
6031
+ svg: {
6032
+ fill: "dark.ui.typography.heading"
6033
+ }
6034
+ }
5693
6035
  },
5694
6036
  drawerBody: {
6037
+ borderLeft: {
6038
+ base: undefined,
6039
+ md: "1px solid"
6040
+ },
6041
+ borderColor: "ui.border.default",
5695
6042
  paddingTop: "m",
5696
- paddingBottom: "m"
6043
+ paddingBottom: "m",
6044
+ _dark: {
6045
+ background: "dark.ui.bg.page",
6046
+ borderColor: "dark.ui.border.default"
6047
+ }
5697
6048
  },
5698
6049
  drawerContent: {
5699
6050
  marginStart: "auto",
@@ -5706,6 +6057,11 @@ var FeedbackBox = {
5706
6057
  alignItems: "baseline",
5707
6058
  background: "ui.gray.light-cool",
5708
6059
  borderBottomWidth: "1px",
6060
+ borderLeftWidth: {
6061
+ base: undefined,
6062
+ md: "1px"
6063
+ },
6064
+ borderTopWidth: "1px",
5709
6065
  display: "flex",
5710
6066
  fontSize: "text.default",
5711
6067
  px: "m",
@@ -5713,6 +6069,9 @@ var FeedbackBox = {
5713
6069
  paddingBottom: "s",
5714
6070
  p: {
5715
6071
  marginBottom: "0"
6072
+ },
6073
+ _dark: {
6074
+ background: "dark.ui.bg.hover"
5716
6075
  }
5717
6076
  },
5718
6077
  openButton: {
@@ -5749,16 +6108,32 @@ var filterBarWidth = {
5749
6108
  }
5750
6109
  };
5751
6110
  var FilterBar = {
5752
- parts: ["modalHeader", "modalFooter", "modalCloseButton", "globalButtonGroup", "globalButtonGroupWrapper"],
6111
+ parts: ["modalBody", "modalHeader", "modalFooter", "modalCloseButton", "globalButtonGroup", "globalButtonGroupWrapper"],
5753
6112
  baseStyle: function baseStyle(_ref) {
5754
6113
  var width = _ref.width;
5755
6114
  return {
5756
6115
  width: "full",
6116
+ modalBody: {
6117
+ _dark: {
6118
+ background: "dark.ui.bg.page"
6119
+ }
6120
+ },
5757
6121
  modalHeader: {
5758
- bg: "ui.gray.x-light-cool"
6122
+ bg: "ui.bg.default",
6123
+ _dark: {
6124
+ background: "dark.ui.bg.default",
6125
+ borderBottom: "1px solid",
6126
+ borderColor: "dark.ui.border.default"
6127
+ }
5759
6128
  },
5760
6129
  modalFooter: {
5761
- bg: "ui.gray.x-light-cool"
6130
+ bg: "ui.bg.default",
6131
+ _dark: {
6132
+ background: "dark.ui.bg.default",
6133
+ borderTop: "1px solid",
6134
+ borderColor: "dark.ui.border.default",
6135
+ color: "dark.ui.typography.heading"
6136
+ }
5762
6137
  },
5763
6138
  modalCloseButton: {
5764
6139
  mt: "8px"
@@ -5782,6 +6157,9 @@ var Footer = {
5782
6157
  lg: "30px 0"
5783
6158
  },
5784
6159
  position: "relative",
6160
+ _dark: {
6161
+ backgroundColor: "dark.ui.bg.default"
6162
+ },
5785
6163
  // The two main lists.
5786
6164
  listsContainer: {
5787
6165
  display: "flex",
@@ -5895,7 +6273,10 @@ var Footer = {
5895
6273
  textDecoration: "none",
5896
6274
  svg: {
5897
6275
  width: "36px",
5898
- height: "36px"
6276
+ height: "36px",
6277
+ _dark: {
6278
+ fill: "dark.ui.typography.body"
6279
+ }
5899
6280
  }
5900
6281
  }
5901
6282
  }
@@ -5914,11 +6295,17 @@ var Footer = {
5914
6295
  backgroundColor: footerGray,
5915
6296
  outline: "solid 2px",
5916
6297
  outlineColor: "ui.white"
6298
+ },
6299
+ _dark: {
6300
+ color: "dark.ui.typography.body"
5917
6301
  }
5918
6302
  },
5919
6303
  // All SVGs in the footer.
5920
6304
  svg: {
5921
- fill: "ui.white"
6305
+ fill: "ui.white",
6306
+ _dark: {
6307
+ color: "dark.ui.typography.body"
6308
+ }
5922
6309
  },
5923
6310
  // For the floating NYPL logo.
5924
6311
  logoContainer: {
@@ -5958,10 +6345,16 @@ var Footer = {
5958
6345
  width: {
5959
6346
  md: "400px"
5960
6347
  },
6348
+ _dark: {
6349
+ color: "dark.ui.typography.body"
6350
+ },
5961
6351
  img: {
5962
6352
  bg: "transparent",
5963
6353
  height: "auto",
5964
- width: "100%"
6354
+ width: "100%",
6355
+ _dark: {
6356
+ opacity: "0.8"
6357
+ }
5965
6358
  }
5966
6359
  },
5967
6360
  copyright: {
@@ -5986,6 +6379,7 @@ var headerDarkBlue = "#135772";
5986
6379
  var headerFocusColor = "#0F465C";
5987
6380
  var headerLightBlue = "#78CCED";
5988
6381
  var headerRed = "#ED1C24";
6382
+ var headerRedDarkMode = "dark.ui.error.primary";
5989
6383
  var headerRedDonate = "#E32B31";
5990
6384
  var headerYellow = "#FEE34A";
5991
6385
  var headerFocus = {
@@ -6014,7 +6408,10 @@ var Header = {
6014
6408
  horizontalRule: {
6015
6409
  bg: headerRed,
6016
6410
  marginTop: "0",
6017
- marginBottom: "0"
6411
+ marginBottom: "0",
6412
+ _dark: {
6413
+ backgroundColor: "dark.brand.primary"
6414
+ }
6018
6415
  },
6019
6416
  logo: {
6020
6417
  padding: {
@@ -6201,7 +6598,33 @@ var HeaderLogin = {
6201
6598
  base: "0",
6202
6599
  md: "28px"
6203
6600
  }
6204
- })
6601
+ }),
6602
+ _dark: {
6603
+ bgColor: {
6604
+ base: "brand.secondary",
6605
+ md: "dark.ui.link.primary"
6606
+ },
6607
+ color: {
6608
+ base: "ui.white",
6609
+ md: "ui.gray.xx-dark"
6610
+ },
6611
+ svg: {
6612
+ fill: {
6613
+ base: "ui.white",
6614
+ md: "ui.gray.xx-dark"
6615
+ }
6616
+ },
6617
+ _hover: {
6618
+ bgColor: {
6619
+ base: "brand.primary",
6620
+ md: "dark.ui.link.secondary"
6621
+ },
6622
+ color: {
6623
+ base: "ui.white",
6624
+ md: "ui.gray.xx-dark"
6625
+ }
6626
+ }
6627
+ }
6205
6628
  },
6206
6629
  patronGreeting: {
6207
6630
  alignSelf: "flex-start",
@@ -6298,7 +6721,16 @@ var HeaderLogin = {
6298
6721
  base: "0",
6299
6722
  md: "28px !important"
6300
6723
  }
6301
- })
6724
+ }),
6725
+ _dark: {
6726
+ color: "ui.gray.xx-dark",
6727
+ svg: {
6728
+ fill: "ui.gray.xx-dark"
6729
+ },
6730
+ _hover: {
6731
+ color: "ui.gray.xx-dark"
6732
+ }
6733
+ }
6302
6734
  }
6303
6735
  };
6304
6736
  }
@@ -6348,7 +6780,22 @@ var HeaderLoginButton = {
6348
6780
  },
6349
6781
  textDecoration: "none"
6350
6782
  },
6351
- _focus: headerFocus
6783
+ _focus: headerFocus,
6784
+ _dark: {
6785
+ bg: {
6786
+ base: isOpen ? headerBlack : "transparent",
6787
+ md: isOpen ? headerDarkBlue : "transparent"
6788
+ },
6789
+ color: "dark.ui.typography.heading",
6790
+ svg: {
6791
+ fill: isOpen ? "dark.ui.typography.heading" : null
6792
+ },
6793
+ _hover: {
6794
+ svg: {
6795
+ fill: "dark.ui.typography.heading"
6796
+ }
6797
+ }
6798
+ }
6352
6799
  };
6353
6800
  }
6354
6801
  };
@@ -6357,7 +6804,10 @@ var linkFocusHoverStyles = {
6357
6804
  borderBottom: "3px solid",
6358
6805
  color: headerRed,
6359
6806
  paddingBottom: "2px",
6360
- textDecoration: "none"
6807
+ textDecoration: "none",
6808
+ _dark: {
6809
+ color: headerRedDarkMode
6810
+ }
6361
6811
  };
6362
6812
  var HeaderLowerNav = {
6363
6813
  baseStyle: {
@@ -6377,7 +6827,12 @@ var HeaderLowerNav = {
6377
6827
  fontWeight: "medium",
6378
6828
  textDecoration: "none",
6379
6829
  _hover: linkFocusHoverStyles,
6380
- _focus: /*#__PURE__*/_extends({}, headerFocus, linkFocusHoverStyles)
6830
+ _focus: /*#__PURE__*/_extends({}, headerFocus, linkFocusHoverStyles),
6831
+ _dark: {
6832
+ color: "dark.ui.typography.heading",
6833
+ _hover: linkFocusHoverStyles,
6834
+ _focus: /*#__PURE__*/_extends({}, headerFocus, linkFocusHoverStyles)
6835
+ }
6381
6836
  }
6382
6837
  }
6383
6838
  };
@@ -6395,6 +6850,11 @@ var HeaderMobileIconNav = {
6395
6850
  minHeight: "60px",
6396
6851
  minWidth: "60px",
6397
6852
  _focus: headerFocus
6853
+ },
6854
+ _dark: {
6855
+ svg: {
6856
+ fill: "dark.ui.typography.heading"
6857
+ }
6398
6858
  }
6399
6859
  }
6400
6860
  };
@@ -6463,6 +6923,13 @@ var HeaderMobileNav = {
6463
6923
  backgroundColor: headerRedDonate,
6464
6924
  _hover: {
6465
6925
  backgroundColor: headerRedDonate
6926
+ },
6927
+ _dark: {
6928
+ bgColor: "brand.secondary",
6929
+ color: "ui.white",
6930
+ _hover: {
6931
+ bgColor: "brand.primary"
6932
+ }
6466
6933
  }
6467
6934
  }
6468
6935
  }
@@ -6489,7 +6956,13 @@ var HeaderMobileNavButton = {
6489
6956
  fill: isOpen ? "ui.white" : "ui.black"
6490
6957
  }
6491
6958
  },
6492
- _focus: headerFocus
6959
+ _focus: headerFocus,
6960
+ _dark: {
6961
+ backgroundColor: isOpen ? headerBlack : "transparent",
6962
+ svg: {
6963
+ fill: "dark.ui.typography.heading"
6964
+ }
6965
+ }
6493
6966
  };
6494
6967
  }
6495
6968
  };
@@ -6565,7 +7038,10 @@ var HeaderSearchForm = {
6565
7038
  fontStyle: "normal"
6566
7039
  },
6567
7040
  _focus: headerFocus,
6568
- _hover: headerFocus
7041
+ _hover: headerFocus,
7042
+ _dark: {
7043
+ color: "dark.ui.typography.body"
7044
+ }
6569
7045
  }
6570
7046
  },
6571
7047
  searchBtn: {
@@ -6632,6 +7108,13 @@ var HeaderSearchForm = {
6632
7108
  backgroundColor: headerBlue
6633
7109
  },
6634
7110
  _focus: headerFocus
7111
+ },
7112
+ _dark: {
7113
+ bgColor: "section.research.secondary",
7114
+ color: "ui.white",
7115
+ label: {
7116
+ color: "ui.white"
7117
+ }
6635
7118
  }
6636
7119
  }
6637
7120
  };
@@ -6653,13 +7136,25 @@ var HeaderSearchButton = {
6653
7136
  md: "80px"
6654
7137
  },
6655
7138
  textDecoration: "none",
7139
+ _dark: {
7140
+ bgColor: isOpen ? "section.research.secondary" : "transparent",
7141
+ color: isOpen ? "ui.white" : "dark.ui.link.primary"
7142
+ },
6656
7143
  span: {
6657
7144
  alignItems: "center",
6658
7145
  borderBottom: {
6659
7146
  md: "3px solid #1B7FA7"
6660
7147
  },
6661
7148
  display: "inline-flex",
6662
- lineHeight: "1.3"
7149
+ lineHeight: "1.3",
7150
+ _dark: {
7151
+ borderBottom: isOpen ? "0" : {
7152
+ md: "3px solid"
7153
+ },
7154
+ borderColor: {
7155
+ md: "dark.ui.link.primary"
7156
+ }
7157
+ }
6663
7158
  },
6664
7159
  svg: {
6665
7160
  marginLeft: {
@@ -6669,6 +7164,12 @@ var HeaderSearchButton = {
6669
7164
  fill: {
6670
7165
  base: isOpen ? "ui.white" : "ui.black",
6671
7166
  md: isOpen ? "ui.white" : "ui.link.primary"
7167
+ },
7168
+ _dark: {
7169
+ fill: {
7170
+ base: isOpen ? "ui.white" : "dark.ui.typography.heading",
7171
+ md: isOpen ? "ui.white" : "dark.ui.link.primary"
7172
+ }
6672
7173
  }
6673
7174
  },
6674
7175
  _hover: {
@@ -6680,6 +7181,15 @@ var HeaderSearchButton = {
6680
7181
  base: isOpen ? "ui.white" : "ui.black",
6681
7182
  md: isOpen ? "ui.white" : "ui.link.primary"
6682
7183
  }
7184
+ },
7185
+ _dark: {
7186
+ color: isOpen ? "ui.white" : "dark.ui.link.primary",
7187
+ svg: {
7188
+ fill: {
7189
+ base: isOpen ? "ui.white" : "dark.ui.typography.heading",
7190
+ md: isOpen ? "ui.white" : "dark.ui.link.primary"
7191
+ }
7192
+ }
6683
7193
  }
6684
7194
  },
6685
7195
  _focus: headerFocus
@@ -6711,7 +7221,22 @@ var SitewideAlerts = {
6711
7221
  },
6712
7222
  p: {
6713
7223
  marginBottom: "0"
7224
+ },
7225
+ _dark: {
7226
+ color: "dark.ui.typography.heading",
7227
+ a: {
7228
+ color: "dark.ui.typography.heading",
7229
+ _hover: {
7230
+ color: "dark.ui.typography.heading"
7231
+ }
7232
+ }
6714
7233
  }
7234
+ },
7235
+ _dark: {
7236
+ backgroundColor: "dark.ui.bg.active",
7237
+ borderBottom: "1px solid",
7238
+ borderColor: "dark.ui.status.primary",
7239
+ color: "dark.ui.typography.heading"
6715
7240
  }
6716
7241
  }
6717
7242
  };
@@ -6742,10 +7267,19 @@ var HeaderUpperNav = {
6742
7267
  color: "ui.black",
6743
7268
  textDecoration: "none"
6744
7269
  },
6745
- _focus: headerFocus
7270
+ _focus: headerFocus,
7271
+ _dark: {
7272
+ color: "dark.ui.typography.heading",
7273
+ _hover: {
7274
+ color: "dark.ui.typography.heading"
7275
+ }
7276
+ }
6746
7277
  },
6747
7278
  svg: {
6748
- marginTop: "0"
7279
+ marginTop: "0",
7280
+ _dark: {
7281
+ fill: "white"
7282
+ }
6749
7283
  },
6750
7284
  emailUpdatesLink: {
6751
7285
  display: "flex",
@@ -6762,6 +7296,12 @@ var HeaderUpperNav = {
6762
7296
  width: "85px",
6763
7297
  _hover: {
6764
7298
  bg: headerRed
7299
+ },
7300
+ _dark: {
7301
+ bgColor: "brand.secondary",
7302
+ _hover: {
7303
+ bgColor: "brand.primary"
7304
+ }
6765
7305
  }
6766
7306
  }
6767
7307
  }
@@ -6770,8 +7310,14 @@ var HeaderUpperNav = {
6770
7310
  var baseLinkStyles = {
6771
7311
  color: "ui.link.primary",
6772
7312
  textDecoration: "underline",
7313
+ _dark: {
7314
+ color: "dark.ui.link.primary"
7315
+ },
6773
7316
  _hover: {
6774
- color: "ui.link.secondary"
7317
+ color: "ui.link.secondary",
7318
+ _dark: {
7319
+ color: "dark.ui.link.secondary"
7320
+ }
6775
7321
  }
6776
7322
  };
6777
7323
  var baseButtonLinkStyles = /*#__PURE__*/_extends({}, buttonBaseStyle, {
@@ -6791,10 +7337,6 @@ var variants = {
6791
7337
  width: "s",
6792
7338
  textDecoration: "none",
6793
7339
  fill: "currentColor"
6794
- },
6795
- _hover: {
6796
- color: "ui.link.secondary",
6797
- textDecoration: "underline"
6798
7340
  }
6799
7341
  },
6800
7342
  // The "button" variant is deprecated.
@@ -6811,10 +7353,18 @@ var variants = {
6811
7353
  textDecoration: "none",
6812
7354
  fontWeight: "button.default",
6813
7355
  bg: "ui.link.primary",
7356
+ _dark: {
7357
+ color: "ui.gray.xxx-dark",
7358
+ bg: "dark.ui.link.primary"
7359
+ },
6814
7360
  _hover: {
6815
7361
  color: "ui.white",
6816
7362
  bg: "ui.link.secondary",
6817
- textDecoration: "none"
7363
+ textDecoration: "underline",
7364
+ _dark: {
7365
+ color: "ui.gray.xxx-dark",
7366
+ bg: "dark.ui.link.secondary"
7367
+ }
6818
7368
  }
6819
7369
  },
6820
7370
  buttonPrimary: /*#__PURE__*/_extends({}, baseButtonLinkStyles, /*#__PURE__*/primary({})),
@@ -6837,6 +7387,10 @@ var variants = {
6837
7387
  pointerEvents: "none",
6838
7388
  _visited: {
6839
7389
  color: "ui.gray.dark"
7390
+ },
7391
+ _dark: {
7392
+ bg: "dark.ui.disabled.secondary",
7393
+ color: "dark.ui.disabled.primary"
6840
7394
  }
6841
7395
  })
6842
7396
  };
@@ -6925,7 +7479,10 @@ var Heading$1 = {
6925
7479
  // passed as children to the Heading component.
6926
7480
  a: baseLinkStyles,
6927
7481
  marginBottom: noSpace ? "0" : "s",
6928
- textTransform: isCapitalized ? "capitalize" : isUppercase ? "uppercase" : isLowercase ? "lowercase" : null
7482
+ textTransform: isCapitalized ? "capitalize" : isUppercase ? "uppercase" : isLowercase ? "lowercase" : null,
7483
+ _dark: {
7484
+ color: "dark.ui.typography.heading"
7485
+ }
6929
7486
  };
6930
7487
  },
6931
7488
  // Available variants:
@@ -6944,7 +7501,10 @@ var helperErrorText = {
6944
7501
  marginTop: "xxs",
6945
7502
  marginBottom: "0",
6946
7503
  fontSize: "helper.default",
6947
- color: isInvalid ? "ui.error.primary" : "ui.black"
7504
+ color: isInvalid ? "ui.error.primary" : null,
7505
+ _dark: {
7506
+ color: isInvalid ? "dark.ui.error.primary" : null
7507
+ }
6948
7508
  };
6949
7509
  }
6950
7510
  };
@@ -7017,20 +7577,31 @@ var secondaryHeadingBase = {
7017
7577
  position: "absolute",
7018
7578
  width: "4000px",
7019
7579
  zIndex: "-1"
7580
+ },
7581
+ _dark: {
7582
+ color: "dark.ui.typography.heading"
7020
7583
  }
7021
7584
  };
7022
7585
  // Get all the styles for the specific Secondary variant but
7023
7586
  // update the background color.
7024
7587
  var getSecondaryVariantStyles = function getSecondaryVariantStyles(bgColor) {
7025
7588
  if (bgColor === void 0) {
7026
- bgColor = "ui.black";
7589
+ bgColor = "";
7027
7590
  }
7591
+ var finalBgColor = {
7592
+ light: bgColor ? bgColor : "ui.black",
7593
+ dark: bgColor ? "dark." + bgColor : "dark.ui.bg.active"
7594
+ };
7028
7595
  return _extends({}, secondaryBase, {
7029
7596
  heading: _extends({}, secondaryHeadingBase, {
7030
- bg: bgColor,
7031
7597
  _before: _extends({}, secondaryHeadingBase["_before"], {
7032
- bg: bgColor
7033
- })
7598
+ bg: finalBgColor.light
7599
+ }),
7600
+ _dark: {
7601
+ _before: {
7602
+ bg: finalBgColor.dark
7603
+ }
7604
+ }
7034
7605
  })
7035
7606
  });
7036
7607
  };
@@ -7069,6 +7640,10 @@ var primary$1 = {
7069
7640
  },
7070
7641
  bodyText: {
7071
7642
  marginBottom: "0"
7643
+ },
7644
+ _dark: {
7645
+ bgColor: "dark.ui.bg.default",
7646
+ color: "dark.ui.typography.body"
7072
7647
  }
7073
7648
  }
7074
7649
  };
@@ -7094,6 +7669,9 @@ var tertiary = {
7094
7669
  base: "xxs",
7095
7670
  xl: "xs"
7096
7671
  }
7672
+ },
7673
+ _dark: {
7674
+ color: "dark.ui.typography.body"
7097
7675
  }
7098
7676
  }),
7099
7677
  heading: {
@@ -7104,6 +7682,9 @@ var tertiary = {
7104
7682
  },
7105
7683
  p: {
7106
7684
  marginBottom: "0"
7685
+ },
7686
+ _dark: {
7687
+ bg: "dark.ui.bg.default"
7107
7688
  }
7108
7689
  };
7109
7690
  var campaign = {
@@ -7141,6 +7722,10 @@ var campaign = {
7141
7722
  },
7142
7723
  top: {
7143
7724
  md: "xxl"
7725
+ },
7726
+ _dark: {
7727
+ bg: "dark.ui.bg.default",
7728
+ color: "dark.ui.typography.body"
7144
7729
  }
7145
7730
  },
7146
7731
  a: {
@@ -7205,7 +7790,10 @@ var fiftyFifty = {
7205
7790
  };
7206
7791
  var Hero = {
7207
7792
  baseStyle: {
7208
- bg: "ui.gray.x-light-cool"
7793
+ bgColor: "ui.gray.x-light-cool",
7794
+ _dark: {
7795
+ bgColor: "dark.ui.bg.default"
7796
+ }
7209
7797
  },
7210
7798
  // Available variants:
7211
7799
  variants: {
@@ -7225,13 +7813,16 @@ var HorizontalRule = {
7225
7813
  baseStyle: function baseStyle(_ref) {
7226
7814
  var align = _ref.align;
7227
7815
  return {
7228
- bg: "ui.gray.light-cool",
7816
+ bg: "ui.bg.hover",
7229
7817
  border: "0",
7230
7818
  height: "2px",
7231
7819
  marginBottom: "s",
7232
7820
  marginTop: "s",
7233
7821
  marginStart: align === "left" ? 0 : "auto",
7234
- marginEnd: align === "right" ? 0 : "auto"
7822
+ marginEnd: align === "right" ? 0 : "auto",
7823
+ _dark: {
7824
+ bg: "dark.ui.bg.active"
7825
+ }
7235
7826
  };
7236
7827
  }
7237
7828
  };
@@ -7372,6 +7963,11 @@ var baseUnorderedStyles = function baseUnorderedStyles(noStyling) {
7372
7963
  lineHeight: "0.9",
7373
7964
  marginStart: "-1rem",
7374
7965
  width: "1rem"
7966
+ },
7967
+ _dark: {
7968
+ _before: {
7969
+ color: "dark.ui.bg.active"
7970
+ }
7375
7971
  }
7376
7972
  }
7377
7973
  });
@@ -7382,9 +7978,15 @@ var baseSectionDescriptionStyles = {
7382
7978
  paddingStart: "0",
7383
7979
  h2: {
7384
7980
  borderTop: "3px solid",
7385
- borderColor: "ui.gray.medium",
7981
+ borderColor: "ui.border.default",
7386
7982
  margin: "0",
7387
- padding: "var(--nypl-space-xs) 0 0"
7983
+ padding: "var(--nypl-space-xs) 0 0",
7984
+ _dark: {
7985
+ borderColor: "dark.ui.border.default"
7986
+ }
7987
+ },
7988
+ _dark: {
7989
+ borderColor: "dark.ui.border.default"
7388
7990
  }
7389
7991
  };
7390
7992
  var baseDescriptionStyles = /*#__PURE__*/_extends({}, baseSectionDescriptionStyles, {
@@ -7399,7 +8001,7 @@ var baseDescriptionStyles = /*#__PURE__*/_extends({}, baseSectionDescriptionStyl
7399
8001
  },
7400
8002
  dt: {
7401
8003
  borderTop: "1px solid",
7402
- borderColor: "ui.gray.light-cool",
8004
+ borderColor: "ui.border.default",
7403
8005
  fontWeight: "label.default",
7404
8006
  paddingBottom: {
7405
8007
  base: "0",
@@ -7408,6 +8010,10 @@ var baseDescriptionStyles = /*#__PURE__*/_extends({}, baseSectionDescriptionStyl
7408
8010
  paddingTop: "s",
7409
8011
  paddingEnd: {
7410
8012
  md: "table.column"
8013
+ },
8014
+ _dark: {
8015
+ borderColor: "dark.ui.border.default",
8016
+ color: "dark.ui.typography.heading"
7411
8017
  }
7412
8018
  },
7413
8019
  dd: {
@@ -7418,10 +8024,15 @@ var baseDescriptionStyles = /*#__PURE__*/_extends({}, baseSectionDescriptionStyl
7418
8024
  md: "1px solid"
7419
8025
  },
7420
8026
  borderColor: {
7421
- md: "ui.gray.light-cool"
8027
+ md: "ui.border.default"
7422
8028
  },
7423
8029
  paddingTop: {
7424
8030
  md: "s"
8031
+ },
8032
+ _dark: {
8033
+ borderColor: {
8034
+ md: "dark.ui.border.default"
8035
+ }
7425
8036
  }
7426
8037
  }
7427
8038
  });
@@ -7488,6 +8099,27 @@ var Logo = {
7488
8099
  }
7489
8100
  };
7490
8101
 
8102
+ var Modal = {
8103
+ parts: ["header", "overlay", "dialogContainer", "dialog", "closeButton", "body", "footer"],
8104
+ baseStyle: {
8105
+ dialog: {
8106
+ _dark: {
8107
+ bg: "dark.ui.bg.default"
8108
+ }
8109
+ },
8110
+ header: {
8111
+ _dark: {
8112
+ color: "dark.ui.typography.heading"
8113
+ }
8114
+ },
8115
+ body: {
8116
+ _dark: {
8117
+ color: "dark.ui.typography.body"
8118
+ }
8119
+ }
8120
+ }
8121
+ };
8122
+
7491
8123
  var multiSelectWidths = {
7492
8124
  "default": {
7493
8125
  width: {
@@ -7582,6 +8214,19 @@ var MultiSelect = {
7582
8214
  }
7583
8215
  }
7584
8216
  }
8217
+ },
8218
+ _dark: {
8219
+ background: "dark.ui.bg.default",
8220
+ borderColor: "dark.ui.border.hover",
8221
+ ul: {
8222
+ li: {
8223
+ div: {
8224
+ _hover: {
8225
+ bg: "dark.ui.bg.hover"
8226
+ }
8227
+ }
8228
+ }
8229
+ }
7585
8230
  }
7586
8231
  }),
7587
8232
  menu: {
@@ -7599,6 +8244,9 @@ var MultiSelect = {
7599
8244
  },
7600
8245
  _focus: {
7601
8246
  outline: "0px !important"
8247
+ },
8248
+ _dark: {
8249
+ colorScheme: "dark"
7602
8250
  }
7603
8251
  },
7604
8252
  menuChildren: {
@@ -7632,7 +8280,7 @@ var MultiSelectMenuButton = {
7632
8280
  backgroundColor: isOpen ? "ui.bg.active" : "ui.white",
7633
8281
  borderBottomLeftRadius: isOpen ? "0" : "button.default",
7634
8282
  borderBottomRightRadius: isOpen ? "0" : "button.default",
7635
- borderColor: isOpen ? "ui.gray.dark" : "ui.gray.medium",
8283
+ borderColor: isOpen ? "ui.border.hover" : "ui.border.default",
7636
8284
  borderRadius: "button.default",
7637
8285
  borderWidth: "1px",
7638
8286
  fontSize: "button.default",
@@ -7651,6 +8299,19 @@ var MultiSelectMenuButton = {
7651
8299
  },
7652
8300
  svg: {
7653
8301
  marginTop: "0"
8302
+ },
8303
+ _dark: {
8304
+ backgroundColor: isOpen ? "dark.ui.bg.active" : "dark.ui.bg.default",
8305
+ borderBottomLeftRadius: isOpen ? "0" : "button.default",
8306
+ borderBottomRightRadius: isOpen ? "0" : "button.default",
8307
+ borderColor: isOpen ? "dark.ui.border.hover" : "dark.ui.border.default",
8308
+ svg: {
8309
+ fill: "dark.ui.typography.heading"
8310
+ },
8311
+ _hover: {
8312
+ backgroundColor: isOpen ? "dark.ui.bg.active" : "dark.ui.bg.default",
8313
+ borderColor: "dark.ui.border.hover"
8314
+ }
7654
8315
  }
7655
8316
  },
7656
8317
  selectedItemsCountButton: {
@@ -7678,6 +8339,16 @@ var MultiSelectMenuButton = {
7678
8339
  marginLeft: "xxs",
7679
8340
  marginRight: "6px",
7680
8341
  marginTop: "0"
8342
+ },
8343
+ _dark: {
8344
+ backgroundColor: "dark.ui.bg.hover",
8345
+ borderColor: isOpen ? "dark.ui.border.hover" : "dark.ui.border.default",
8346
+ svg: {
8347
+ fill: "dark.ui.typography.heading"
8348
+ },
8349
+ _hover: {
8350
+ borderColor: isOpen ? "ui.white" : "dark.ui.border.hover"
8351
+ }
7681
8352
  }
7682
8353
  }
7683
8354
  };
@@ -7687,9 +8358,9 @@ var MultiSelectMenuButton = {
7687
8358
  var Notification = {
7688
8359
  parts: ["container", "dismissibleButton", "icon"],
7689
8360
  baseStyle: function baseStyle(_ref) {
7690
- var dismissible = _ref.dismissible,
7691
- isCentered = _ref.isCentered,
8361
+ var isCentered = _ref.isCentered,
7692
8362
  noMargin = _ref.noMargin,
8363
+ notificationHeading = _ref.notificationHeading,
7693
8364
  notificationType = _ref.notificationType;
7694
8365
  var bg = "ui.status.primary";
7695
8366
  if (notificationType === "announcement" || notificationType === "warning") {
@@ -7697,19 +8368,24 @@ var Notification = {
7697
8368
  }
7698
8369
  return {
7699
8370
  bg: bg,
8371
+ borderRadius: noMargin ? "0" : "4px",
7700
8372
  display: "flex",
7701
8373
  fontSize: "text.caption",
8374
+ m: noMargin ? "0" : "s",
7702
8375
  position: "relative",
8376
+ p: "inset.default",
7703
8377
  textAlign: isCentered ? "center" : null,
7704
- borderRadius: noMargin ? "0" : "4px",
7705
- margin: noMargin ? "0" : "s",
8378
+ _dark: {
8379
+ bg: "dark.ui.bg.hover"
8380
+ },
7706
8381
  container: {
7707
- margin: "auto",
8382
+ display: "flex",
8383
+ flexDirection: isCentered || notificationHeading ? "column" : "row",
8384
+ m: "auto",
7708
8385
  maxWidth: "var(--nypl-breakpoint-xl)",
7709
- padding: "inset.default",
7710
- paddingEnd: dismissible ? "l" : null,
7711
- paddingStart: isCentered && dismissible ? "l" : null,
7712
- width: "100%"
8386
+ paddingEnd: "s",
8387
+ paddingStart: "s",
8388
+ w: "100%"
7713
8389
  },
7714
8390
  dismissibleButton: {
7715
8391
  border: "none",
@@ -7717,8 +8393,8 @@ var Notification = {
7717
8393
  alignItems: "center",
7718
8394
  color: "ui.black",
7719
8395
  display: "flex",
7720
- height: "32px",
7721
- width: "32px",
8396
+ h: "32px",
8397
+ w: "32px",
7722
8398
  minWidth: "0",
7723
8399
  position: "absolute",
7724
8400
  right: "0",
@@ -7726,13 +8402,12 @@ var Notification = {
7726
8402
  svg: {
7727
8403
  marginTop: "0"
7728
8404
  },
8405
+ _dark: {
8406
+ color: "dark.ui.typography.body"
8407
+ },
7729
8408
  _hover: {
7730
8409
  bg: "inherit"
7731
8410
  }
7732
- },
7733
- icon: {
7734
- flexShrink: "0",
7735
- marginEnd: "xs"
7736
8411
  }
7737
8412
  };
7738
8413
  }
@@ -7740,22 +8415,38 @@ var Notification = {
7740
8415
  var NotificationContent = {
7741
8416
  parts: ["content"],
7742
8417
  baseStyle: function baseStyle(_ref2) {
7743
- var alignText = _ref2.alignText,
7744
- icon = _ref2.icon,
7745
- notificationType = _ref2.notificationType;
8418
+ var isCentered = _ref2.isCentered,
8419
+ notificationHeading = _ref2.notificationHeading,
8420
+ notificationType = _ref2.notificationType,
8421
+ showIcon = _ref2.showIcon;
7746
8422
  return {
7747
8423
  display: "flex",
7748
8424
  justifyContent: "center",
7749
8425
  content: {
7750
8426
  color: notificationType === "warning" ? "brand.primary" : "currentColor",
7751
- marginTop: icon ? "xxxs" : "0",
7752
- paddingStart: alignText ? "calc(var(--nypl-space-s) + var(--nypl-space-s))" : null,
7753
- width: "100%",
7754
- // Links should always be black and underlined.
8427
+ marginTop: showIcon ? "xxxs" : "0",
8428
+ paddingStart: !isCentered && showIcon ? notificationHeading ? "l" : "xs" : "0",
8429
+ pt: !isCentered && notificationHeading ? "xxs" : "0",
8430
+ w: "100%",
8431
+ _dark: {
8432
+ borderLeftColor: notificationType === "standard" ? "ui.status.primary" : notificationType === "announcement" ? "dark.ui.success.primary" : "dark.ui.error.primary",
8433
+ borderLeftStyle: !isCentered ? "solid" : "none",
8434
+ borderLeftWidth: "2px",
8435
+ marginTop: "0",
8436
+ paddingStart: !isCentered ? "xs" : "0",
8437
+ color: "dark.ui.typography.body",
8438
+ ml: !isCentered && showIcon ? notificationHeading ? "l" : "xs" : "0"
8439
+ },
8440
+ // Links should always be underlined, and always be black if the
8441
+ // color mode is light.
7755
8442
  a: {
7756
8443
  color: "ui.black",
7757
- _hover: {
7758
- color: "ui.black"
8444
+ textDecoration: "underline",
8445
+ _dark: {
8446
+ color: "dark.ui.link.primary",
8447
+ _hover: {
8448
+ color: "dark.ui.link.secondary"
8449
+ }
7759
8450
  }
7760
8451
  }
7761
8452
  }
@@ -7776,12 +8467,32 @@ var NotificationHeading = {
7776
8467
  }
7777
8468
  return {
7778
8469
  display: "flex",
7779
- marginBottom: "xxs",
7780
- justifyContent: isCentered ? "center" : null,
8470
+ flexDirection: isCentered ? "column" : "row",
8471
+ m: isCentered ? "auto" : "null",
8472
+ mb: isCentered ? "xs" : "0",
8473
+ px: isCentered ? "s" : "0",
8474
+ w: "fit-content",
8475
+ _dark: {
8476
+ borderBottomColor: notificationType === "standard" ? "ui.status.primary" : notificationType === "announcement" ? "dark.ui.success.primary" : "dark.ui.error.primary",
8477
+ borderBottomStyle: isCentered ? "solid" : "none",
8478
+ borderBottomWidth: "2px",
8479
+ color: "dark.ui.typography.heading",
8480
+ paddingBottom: isCentered ? "xs" : "0"
8481
+ },
7781
8482
  heading: {
7782
- marginBottom: "0",
7783
- marginTop: icon ? "xxxs" : "0",
7784
- color: color
8483
+ color: color,
8484
+ ml: icon && !isCentered ? "xs" : "0",
8485
+ mt: icon ? "xxxs" : "0",
8486
+ _dark: {
8487
+ borderLeftColor: notificationType === "standard" ? "ui.status.primary" : notificationType === "announcement" ? "dark.ui.success.primary" : "dark.ui.error.primary",
8488
+ borderLeftStyle: !isCentered ? "solid" : "none",
8489
+ borderLeftWidth: "2px",
8490
+ paddingLeft: !isCentered ? "xs" : "0"
8491
+ }
8492
+ },
8493
+ svg: {
8494
+ mx: isCentered ? "auto" : "",
8495
+ mb: isCentered ? "xxs" : "0"
7785
8496
  }
7786
8497
  };
7787
8498
  }
@@ -7815,6 +8526,9 @@ var ProgressIndicator = {
7815
8526
  size = _ref.size;
7816
8527
  return {
7817
8528
  color: darkMode ? "ui.white" : "ui.black",
8529
+ _dark: {
8530
+ color: "dark.ui.typography.heading"
8531
+ },
7818
8532
  circular: {
7819
8533
  // Note: we have to target the SVG HTMl elements in order
7820
8534
  // to override the default styles.
@@ -7824,10 +8538,16 @@ var ProgressIndicator = {
7824
8538
  display: "block",
7825
8539
  circle: {
7826
8540
  _first: {
7827
- stroke: darkMode ? "ui.gray.dark" : "ui.gray.light-cool"
8541
+ stroke: darkMode ? "ui.gray.dark" : "ui.gray.light-cool",
8542
+ _dark: {
8543
+ stroke: "dark.ui.bg.hover"
8544
+ }
7828
8545
  },
7829
8546
  _last: {
7830
- stroke: darkMode ? "ui.white" : "ui.link.primary"
8547
+ stroke: darkMode ? "ui.white" : "ui.link.primary",
8548
+ _dark: {
8549
+ stroke: "dark.ui.link.primary"
8550
+ }
7831
8551
  }
7832
8552
  }
7833
8553
  }
@@ -7842,13 +8562,20 @@ var ProgressIndicator = {
7842
8562
  // Hard to target this specific element without using
7843
8563
  // "Progress" as the key name in index.ts
7844
8564
  "> div": {
7845
- bg: darkMode ? "ui.white" : "ui.link.primary"
8565
+ bg: darkMode ? "ui.white" : "ui.link.primary",
8566
+ _dark: {
8567
+ bg: "dark.ui.link.primary"
8568
+ }
7846
8569
  },
7847
8570
  flex: 25,
7848
8571
  bg: darkMode ? "ui.gray.dark" : "ui.gray.light-cool",
7849
8572
  height: {
7850
8573
  base: "4px",
7851
8574
  md: size === "default" ? "8px" : "4px"
8575
+ },
8576
+ _dark: {
8577
+ bg: "dark.ui.bg.hover",
8578
+ color: "dark.ui.typography.heading"
7852
8579
  }
7853
8580
  },
7854
8581
  linearContainer: {
@@ -7916,6 +8643,42 @@ var baseStyleControl$1 = {
7916
8643
  }),
7917
8644
  _invalid: {
7918
8645
  borderColor: "ui.error.primary"
8646
+ },
8647
+ _dark: {
8648
+ borderColor: "dark.ui.border.default",
8649
+ backgroundColor: "dark.ui.bg.default",
8650
+ _checked: {
8651
+ borderColor: "dark.ui.focus",
8652
+ _disabled: {
8653
+ borderColor: "dark.ui.disabled.secondary",
8654
+ _before: {
8655
+ bg: "dark.ui.disabled.secondary"
8656
+ }
8657
+ },
8658
+ _invalid: {
8659
+ borderColor: "dark.ui.error.primary",
8660
+ _before: {
8661
+ borderColor: "dark.ui.error.primary",
8662
+ bg: "dark.ui.error.primary"
8663
+ }
8664
+ }
8665
+ },
8666
+ _disabled: {
8667
+ borderColor: "dark.ui.disabled.secondary",
8668
+ _before: {
8669
+ bg: "dark.ui.disabled.secondary"
8670
+ }
8671
+ },
8672
+ _focus: {
8673
+ boxShadow: "none",
8674
+ outlineColor: "dark.ui.focus"
8675
+ },
8676
+ _invalid: {
8677
+ borderColor: "dark.ui.error.primary"
8678
+ },
8679
+ _before: {
8680
+ bg: "dark.ui.focus"
8681
+ }
7919
8682
  }
7920
8683
  };
7921
8684
  // Style object for the Radio's label
@@ -7979,12 +8742,22 @@ var SearchBar = {
7979
8742
  },
7980
8743
  select: {
7981
8744
  flexShrink: "0",
7982
- marginBottom: "0",
8745
+ marginBottom: {
8746
+ base: "-1px",
8747
+ md: "0"
8748
+ },
7983
8749
  maxWidth: {
7984
8750
  base: undefined,
7985
8751
  md: "255px"
7986
8752
  },
7987
- textOverflow: "ellipsis"
8753
+ textOverflow: "ellipsis",
8754
+ marginRight: {
8755
+ base: undefined,
8756
+ md: "-1px"
8757
+ },
8758
+ _hover: {
8759
+ zIndex: "10"
8760
+ }
7988
8761
  }
7989
8762
  }
7990
8763
  };
@@ -7996,8 +8769,11 @@ var element = {
7996
8769
  };
7997
8770
  var borderRules = {
7998
8771
  border: "1px solid",
7999
- borderColor: "ui.gray.light-cool",
8000
- padding: "s"
8772
+ borderColor: "ui.gray.x-light-cool",
8773
+ padding: "s",
8774
+ _dark: {
8775
+ borderColor: "ui.gray.xx-dark"
8776
+ }
8001
8777
  };
8002
8778
  var imagePaddingBottomStyles = {
8003
8779
  landscape: "50%",
@@ -8114,8 +8890,11 @@ var fade = function fade() {
8114
8890
  var Skeleton = {
8115
8891
  baseStyle: {
8116
8892
  borderRadius: "2px",
8117
- background: "ui.gray.light-cool",
8118
- animation: /*#__PURE__*/fade() + " 1000ms cubic-bezier(0.25, -0.5, 1, 0) infinite"
8893
+ bg: "ui.gray.light-cool",
8894
+ animation: /*#__PURE__*/fade() + " 1000ms cubic-bezier(0.25, -0.5, 1, 0) infinite",
8895
+ _dark: {
8896
+ bg: "dark.ui.bg.hover"
8897
+ }
8119
8898
  }
8120
8899
  };
8121
8900
 
@@ -8137,10 +8916,13 @@ var SkipNavigation = {
8137
8916
  _focus: {
8138
8917
  height: "auto",
8139
8918
  left: "1rem",
8140
- paddingX: "inset.extranarrow",
8919
+ paddingX: "inset.narrow",
8141
8920
  paddingY: "inset.extranarrow",
8142
8921
  top: "1rem",
8143
8922
  width: "auto"
8923
+ },
8924
+ _dark: {
8925
+ backgroundColor: "dark.ui.bg.page"
8144
8926
  }
8145
8927
  }
8146
8928
  }
@@ -8156,15 +8938,17 @@ var staticValues = {
8156
8938
  var CustomSlider = {
8157
8939
  parts: ["container", "leftValue", "rightValue", "textInput", "sliderContainer", "filledTrack", "track", "thumb"],
8158
8940
  baseStyle: function baseStyle(_ref) {
8159
- var isDisabled = _ref.isDisabled,
8941
+ var isDarkMode = _ref.isDarkMode,
8942
+ isDisabled = _ref.isDisabled,
8160
8943
  isInvalid = _ref.isInvalid,
8161
8944
  showBoxes = _ref.showBoxes,
8162
8945
  showValues = _ref.showValues;
8163
- var baseColor = "ui.link.primary";
8946
+ var prefix = isDarkMode ? "dark." : "";
8947
+ var baseColor = prefix + "ui.link.primary";
8164
8948
  if (isInvalid) {
8165
- baseColor = "ui.error.primary";
8949
+ baseColor = prefix + "ui.error.primary";
8166
8950
  } else if (isDisabled) {
8167
- baseColor = "ui.disabled.primary";
8951
+ baseColor = prefix + "ui.disabled.primary";
8168
8952
  }
8169
8953
  return {
8170
8954
  container: {
@@ -8172,20 +8956,25 @@ var CustomSlider = {
8172
8956
  alignItems: "center"
8173
8957
  },
8174
8958
  leftValue: _extends({}, staticValues, {
8175
- color: isDisabled ? "ui.gray.dark" : null
8959
+ color: isDisabled ? "ui.disabled.primary" : null,
8960
+ _dark: {
8961
+ color: isDisabled ? "dark.ui.disabled.primary" : null
8962
+ }
8176
8963
  }),
8177
8964
  rightValue: _extends({}, staticValues, {
8178
8965
  marginStart: "s",
8179
8966
  // If the text input boxes are shown, then there already is
8180
8967
  // a margin, so we can set this static value to "0".
8181
8968
  marginEnd: showBoxes ? "0" : "s",
8182
- color: isDisabled ? "ui.gray.dark" : null
8969
+ color: isDisabled ? "ui.disabled.primary" : null,
8970
+ _dark: {
8971
+ color: isDisabled ? "dark.ui.disabled.primary" : null
8972
+ }
8183
8973
  }),
8184
8974
  textInput: {
8185
8975
  // Allows for three or more digits present in the
8186
8976
  // min or max value text input.
8187
- minWidth: "65px",
8188
- color: isInvalid ? "ui.error.primary" : "ui.black"
8977
+ minWidth: "65px"
8189
8978
  },
8190
8979
  // This is added to the container so that the slider thumbs don't
8191
8980
  // overflow past the container when the value boxes or min/max values
@@ -8203,10 +8992,16 @@ var CustomSlider = {
8203
8992
  bgColor: "ui.gray.light-cool",
8204
8993
  _disabled: {
8205
8994
  bgColor: "ui.disabled.primary"
8995
+ },
8996
+ _dark: {
8997
+ bgColor: "dark.ui.bg.active",
8998
+ _disabled: {
8999
+ bgColor: "dark.ui.disabled.primary"
9000
+ }
8206
9001
  }
8207
9002
  },
8208
9003
  thumb: {
8209
- border: "1px solid",
9004
+ border: "2px solid",
8210
9005
  // Thumb doesn't have an _invalid state...
8211
9006
  // so we manually do it through the props.
8212
9007
  borderColor: baseColor,
@@ -8217,6 +9012,13 @@ var CustomSlider = {
8217
9012
  _disabled: {
8218
9013
  bgColor: "ui.disabled.secondary",
8219
9014
  borderColor: "ui.disabled.primary"
9015
+ },
9016
+ _dark: {
9017
+ bgColor: "dark.ui.bg.default",
9018
+ _disabled: {
9019
+ bgColor: "dark.ui.disabled.secondary",
9020
+ borderColor: "dark.ui.disabled.primary"
9021
+ }
8220
9022
  }
8221
9023
  }
8222
9024
  };
@@ -8233,24 +9035,42 @@ var StatusBadge = {
8233
9035
  py: "inset.extranarrow",
8234
9036
  px: "inset.narrow",
8235
9037
  textAlign: "center",
8236
- width: "fit-content"
9038
+ width: "fit-content",
9039
+ _dark: {
9040
+ backgroundColor: "dark.ui.bg.active",
9041
+ borderLeft: "4px solid",
9042
+ borderColor: "ui.gray.medium",
9043
+ color: "dark.ui.typography.heading"
9044
+ }
8237
9045
  },
8238
9046
  variants: {
8239
9047
  low: {
8240
9048
  bg: "ui.gray.light-cool"
8241
9049
  },
8242
9050
  medium: {
8243
- bg: "ui.status.primary"
9051
+ bg: "ui.status.primary",
9052
+ _dark: {
9053
+ borderColor: "ui.status.primary"
9054
+ }
8244
9055
  },
8245
9056
  high: {
8246
- bg: "ui.status.secondary"
9057
+ bg: "ui.status.secondary",
9058
+ _dark: {
9059
+ borderColor: "dark.ui.error.primary"
9060
+ }
8247
9061
  }
8248
9062
  }
8249
9063
  };
8250
9064
 
8251
- var cellBorderColorStyles = {
8252
- base: "ui.gray.light-cool",
8253
- md: "ui.gray.medium"
9065
+ var CellBorderColorStyles = function CellBorderColorStyles() {
9066
+ var colorValues = react.useColorModeValue({
9067
+ base: "ui.gray.light-cool",
9068
+ md: "ui.border.default"
9069
+ }, {
9070
+ base: "ui.gray.xx-dark",
9071
+ md: "dark.ui.border.default"
9072
+ });
9073
+ return colorValues;
8254
9074
  };
8255
9075
  var baseTRStyles = function baseTRStyles(columnHeadersBackgroundColor, showRowDividers, useRowHeaders) {
8256
9076
  if (columnHeadersBackgroundColor === void 0) {
@@ -8286,6 +9106,9 @@ var baseTRStyles = function baseTRStyles(columnHeadersBackgroundColor, showRowDi
8286
9106
  md: "0"
8287
9107
  },
8288
9108
  borderColor: "ui.gray.medium"
9109
+ },
9110
+ _dark: {
9111
+ borderColor: "dark.ui.border.default"
8289
9112
  }
8290
9113
  };
8291
9114
  };
@@ -8305,7 +9128,7 @@ var baseCellStyles = function baseCellStyles(columnHeadersBackgroundColor, colum
8305
9128
  return {
8306
9129
  border: showRowDividers ? undefined : "none",
8307
9130
  borderBottom: showRowDividers ? "1px solid" : "0",
8308
- borderColor: cellBorderColorStyles,
9131
+ borderColor: CellBorderColorStyles(),
8309
9132
  display: {
8310
9133
  base: "flex",
8311
9134
  md: "table-cell"
@@ -8346,7 +9169,7 @@ var baseCellStyles = function baseCellStyles(columnHeadersBackgroundColor, colum
8346
9169
  md: "m"
8347
9170
  } : null,
8348
9171
  borderBottom: showRowDividers ? "1px solid" : "none",
8349
- borderColor: cellBorderColorStyles
9172
+ borderColor: CellBorderColorStyles()
8350
9173
  },
8351
9174
  "> span": {
8352
9175
  flexBasis: "50%",
@@ -8363,7 +9186,10 @@ var baseCellStyles = function baseCellStyles(columnHeadersBackgroundColor, colum
8363
9186
  bg: columnHeadersBackgroundColor ? columnHeadersBackgroundColor : undefined,
8364
9187
  color: columnHeadersTextColor ? columnHeadersTextColor : "ui.black",
8365
9188
  fontWeight: "medium",
8366
- paddingStart: columnHeadersBackgroundColor || showRowDividers || useRowHeaders ? "s" : undefined
9189
+ paddingStart: columnHeadersBackgroundColor || showRowDividers || useRowHeaders ? "s" : undefined,
9190
+ _dark: {
9191
+ color: columnHeadersTextColor ? columnHeadersTextColor : "dark.ui.typography.heading"
9192
+ }
8367
9193
  }
8368
9194
  }
8369
9195
  };
@@ -8393,6 +9219,9 @@ var baseTHStyles = function baseTHStyles(columnHeadersBackgroundColor, columnHea
8393
9219
  base: "0",
8394
9220
  md: undefined
8395
9221
  }
9222
+ },
9223
+ _dark: {
9224
+ color: columnHeadersTextColor ? columnHeadersTextColor : "dark.ui.typography.heading"
8396
9225
  }
8397
9226
  });
8398
9227
  };
@@ -8430,7 +9259,7 @@ var baseTDStyles = function baseTDStyles(columnHeadersBackgroundColor, columnHea
8430
9259
  base: 0,
8431
9260
  md: undefined
8432
9261
  },
8433
- borderColor: cellBorderColorStyles
9262
+ borderColor: CellBorderColorStyles()
8434
9263
  }
8435
9264
  });
8436
9265
  };
@@ -8443,15 +9272,23 @@ var baseStyle$2 = function baseStyle(_ref) {
8443
9272
  // Headers `th` can be rendered as the first cell in every row through the
8444
9273
  // `useRowHeaders`. Whereas the header `th` in the `thead` can be rendered
8445
9274
  // with a custom color, the row header `th` in the `tbody` should always
8446
- // have text color black.
9275
+ // have text color black for light color mode and `dark.ui.typography.heading`
9276
+ // for dark color mode.
8447
9277
  tbody: {
8448
9278
  th: {
8449
- color: "ui.black",
8450
9279
  backgroundColor: useRowHeaders ? {
8451
9280
  base: "ui.gray.x-light-cool",
8452
9281
  md: "unset"
8453
9282
  } : undefined,
8454
- verticalAlign: "top"
9283
+ color: "ui.black",
9284
+ verticalAlign: "top",
9285
+ _dark: {
9286
+ backgroundColor: useRowHeaders ? {
9287
+ base: "dark.ui.bg.default",
9288
+ md: "unset"
9289
+ } : undefined,
9290
+ color: "dark.ui.typography.heading"
9291
+ }
8455
9292
  },
8456
9293
  td: {
8457
9294
  verticalAlign: "top"
@@ -8476,7 +9313,10 @@ var baseStyle$2 = function baseStyle(_ref) {
8476
9313
  marginEnd: "0",
8477
9314
  marginTop: "0",
8478
9315
  padding: "0",
8479
- textAlign: "left"
9316
+ textAlign: "left",
9317
+ _dark: {
9318
+ color: "dark.ui.typography.heading"
9319
+ }
8480
9320
  }
8481
9321
  };
8482
9322
  };
@@ -8583,6 +9423,11 @@ var StyledList = {
8583
9423
  borderColor: "ui.border.default",
8584
9424
  my: "xs",
8585
9425
  px: "xs"
9426
+ },
9427
+ _dark: {
9428
+ li: {
9429
+ borderColor: "dark.ui.border.default"
9430
+ }
8586
9431
  }
8587
9432
  }
8588
9433
  }
@@ -8592,7 +9437,6 @@ var tablist = {
8592
9437
  borderColor: "ui.black"
8593
9438
  };
8594
9439
  var tab = {
8595
- color: "black !important",
8596
9440
  paddingInlineStart: "s",
8597
9441
  paddingStart: "s",
8598
9442
  background: "transparent",
@@ -8629,10 +9473,27 @@ var tab = {
8629
9473
  },
8630
9474
  _focus: {
8631
9475
  boxShadow: "0"
9476
+ },
9477
+ _dark: {
9478
+ color: "dark.ui.typography.heading",
9479
+ border: "1px solid transparent",
9480
+ borderBottom: "1px solid",
9481
+ borderBottomColor: "dark.ui.border.hover",
9482
+ _hover: {
9483
+ bg: "dark.ui.bg.hover"
9484
+ },
9485
+ _selected: {
9486
+ color: "dark.ui.typography.heading",
9487
+ border: "0",
9488
+ bg: "dark.ui.bg.active",
9489
+ borderBottom: "3px solid"
9490
+ }
8632
9491
  }
8633
9492
  };
8634
9493
  // Only display the previous/next arrow buttons on mobile.
8635
9494
  var buttonArrows = {
9495
+ bg: "transparent",
9496
+ color: "black",
8636
9497
  border: "0",
8637
9498
  borderRadius: "0",
8638
9499
  display: {
@@ -8647,7 +9508,21 @@ var buttonArrows = {
8647
9508
  // Code from https://codesandbox.io/s/fxjeo for the mobile carousel
8648
9509
  pos: "absolute",
8649
9510
  transition: "0.6s ease",
8650
- zIndex: "9999"
9511
+ zIndex: "9999",
9512
+ _hover: {
9513
+ bg: "unset",
9514
+ color: "unset",
9515
+ borderColor: "unset"
9516
+ },
9517
+ _disabled: {
9518
+ color: "ui.disabled.primary"
9519
+ },
9520
+ _dark: {
9521
+ color: "dark.ui.typography.heading",
9522
+ _disabled: {
9523
+ color: "dark.ui.disabled.primary"
9524
+ }
9525
+ }
8651
9526
  };
8652
9527
  var tablistWrapper = {
8653
9528
  display: "flex",
@@ -8681,7 +9556,10 @@ var tablistWrapper = {
8681
9556
  base: "4px",
8682
9557
  md: "0"
8683
9558
  },
8684
- position: "relative"
9559
+ position: "relative",
9560
+ _dark: {
9561
+ borderColor: "dark.ui.border.hover"
9562
+ }
8685
9563
  };
8686
9564
  var tabpanels = {
8687
9565
  paddingTop: "2px"
@@ -8735,6 +9613,9 @@ var CustomTabs = {
8735
9613
  tablistWrapper: tablistWrapper,
8736
9614
  tabpanels: tabpanels,
8737
9615
  carouselParent: carouselParent
9616
+ },
9617
+ defaultProps: {
9618
+ colorScheme: "ui.black"
8738
9619
  }
8739
9620
  };
8740
9621
 
@@ -8746,9 +9627,9 @@ var TagSetFilter = {
8746
9627
  display: "flex",
8747
9628
  alignItems: "center",
8748
9629
  justifyContent: "center",
8749
- bg: "ui.gray.x-light-cool",
9630
+ bg: "ui.bg.default",
8750
9631
  border: "1px solid",
8751
- borderColor: "ui.gray.medium",
9632
+ borderColor: "ui.border.default",
8752
9633
  borderRadius: "pill",
8753
9634
  color: "ui.black",
8754
9635
  cursor: isDismissible ? "pointer" : "auto",
@@ -8772,7 +9653,17 @@ var TagSetFilter = {
8772
9653
  whiteSpace: "nowrap"
8773
9654
  },
8774
9655
  _hover: {
8775
- bg: isDismissible ? "ui.gray.light-cool" : "ui.gray.x-light-cool"
9656
+ bg: isDismissible ? "ui.bg.hover" : "ui.bg.default",
9657
+ borderColor: isDismissible ? "ui.border.hover" : "ui.border.default"
9658
+ },
9659
+ _dark: {
9660
+ bg: "dark.ui.bg.default",
9661
+ borderColor: "dark.ui.border.default",
9662
+ color: "dark.ui.typography.body",
9663
+ _hover: {
9664
+ bg: isDismissible ? "dark.ui.bg.hover" : "dark.ui.bg.default",
9665
+ borderColor: isDismissible ? "dark.ui.border.hover" : "dark.ui.border.default"
9666
+ }
8776
9667
  },
8777
9668
  clearAll: {
8778
9669
  color: "ui.black",
@@ -8781,7 +9672,10 @@ var TagSetFilter = {
8781
9672
  md: "22px"
8782
9673
  },
8783
9674
  fontSize: "text.tag",
8784
- minHeight: "22px"
9675
+ minHeight: "22px",
9676
+ _dark: {
9677
+ color: "dark.ui.typography.heading"
9678
+ }
8785
9679
  }
8786
9680
  };
8787
9681
  }
@@ -8835,6 +9729,29 @@ var TagSetExplore = {
8835
9729
  "> span": {
8836
9730
  color: "ui.white"
8837
9731
  }
9732
+ },
9733
+ _dark: {
9734
+ bg: "dark.ui.bg.default",
9735
+ borderColor: "dark.ui.link.primary",
9736
+ color: "dark.ui.link.primary",
9737
+ a: {
9738
+ color: "dark.ui.link.primary"
9739
+ },
9740
+ svg: {
9741
+ fill: "dark.ui.link.primary"
9742
+ },
9743
+ _hover: {
9744
+ bg: "dark.ui.link.primary",
9745
+ a: {
9746
+ color: "ui.gray.xxx-dark"
9747
+ },
9748
+ svg: {
9749
+ fill: "ui.gray.xxx-dark"
9750
+ },
9751
+ "> span": {
9752
+ color: "ui.gray.xxx-dark"
9753
+ }
9754
+ }
8838
9755
  }
8839
9756
  }
8840
9757
  };
@@ -8862,7 +9779,10 @@ var Template = {
8862
9779
  color: "ui.black",
8863
9780
  display: "grid",
8864
9781
  gridTemplateColumns: "\n 1fr\n min(1280px, 100%)\n 1fr",
8865
- rowGap: "grid.l"
9782
+ rowGap: "grid.l",
9783
+ _dark: {
9784
+ color: "dark.ui.typography.body"
9785
+ }
8866
9786
  },
8867
9787
  sizes: {},
8868
9788
  defaultProps: {}
@@ -9014,7 +9934,32 @@ var input = {
9014
9934
  _invalid: {
9015
9935
  border: "1px solid",
9016
9936
  borderColor: "ui.error.primary",
9017
- boxShadow: "none"
9937
+ boxShadow: "none",
9938
+ color: "ui.error.primary",
9939
+ _focus: {
9940
+ borderColor: "ui.focus"
9941
+ }
9942
+ },
9943
+ _dark: {
9944
+ bgColor: "dark.ui.bg.default",
9945
+ borderColor: "dark.ui.border.default",
9946
+ _hover: {
9947
+ borderColor: "dark.ui.border.hover"
9948
+ },
9949
+ _disabled: /*#__PURE__*/_extends({}, selectTextInputDisabledStyles, {
9950
+ _placeholder: {
9951
+ color: "ui.gray.x-dark"
9952
+ }
9953
+ }),
9954
+ _active: selectTextInputFocusStyles,
9955
+ _focus: selectTextInputFocusStyles,
9956
+ _placeholder: {
9957
+ color: "ui.gray.dark"
9958
+ },
9959
+ _invalid: {
9960
+ borderColor: "dark.ui.error.primary",
9961
+ color: "dark.ui.error.primary"
9962
+ }
9018
9963
  }
9019
9964
  };
9020
9965
  var TextInput$1 = {
@@ -9091,7 +10036,6 @@ var Switch = {
9091
10036
  var size = _ref2.size;
9092
10037
  return {
9093
10038
  alignItems: "start",
9094
- opacity: 0.4,
9095
10039
  track: {
9096
10040
  backgroundColor: "ui.gray.medium",
9097
10041
  border: "1px solid",
@@ -9121,6 +10065,33 @@ var Switch = {
9121
10065
  outlineColor: "ui.focus",
9122
10066
  outlineOffset: "2px",
9123
10067
  zIndex: "9999"
10068
+ },
10069
+ _dark: {
10070
+ bgColor: "ui.gray.dark",
10071
+ borderColor: "ui.gray.dark",
10072
+ _checked: {
10073
+ bg: "dark.ui.link.primary",
10074
+ borderColor: "dark.ui.link.primary"
10075
+ },
10076
+ _invalid: {
10077
+ bg: "inherit",
10078
+ borderColor: "dark.ui.error.primary",
10079
+ "> span": {
10080
+ bg: "dark.ui.error.primary"
10081
+ }
10082
+ },
10083
+ _disabled: {
10084
+ bg: "dark.ui.disabled.secondary",
10085
+ borderColor: "dark.ui.disabled.secondary",
10086
+ opacity: 1,
10087
+ // These are styles for the thumb. _isDisabled was not working within the `thumb` part.
10088
+ ".chakra-switch__thumb": {
10089
+ bgColor: "dark.ui.disabled.primary"
10090
+ }
10091
+ },
10092
+ _focus: {
10093
+ outlineColor: "dark.ui.focus"
10094
+ }
9124
10095
  }
9125
10096
  },
9126
10097
  label: {
@@ -9130,11 +10101,22 @@ var Switch = {
9130
10101
  _disabled: {
9131
10102
  color: "ui.gray.dark",
9132
10103
  fontStyle: "italic"
10104
+ },
10105
+ _invalid: {
10106
+ color: "ui.error.primary"
10107
+ },
10108
+ _dark: {
10109
+ _disabled: {
10110
+ color: "dark.ui.disabled.primary"
10111
+ },
10112
+ _invalid: {
10113
+ color: "dark.ui.error.primary"
10114
+ }
9133
10115
  }
9134
10116
  },
9135
10117
  thumb: {
9136
- _disabled: {
9137
- bg: "ui.error.primary"
10118
+ _dark: {
10119
+ bgColor: "dark.ui.bg.default"
9138
10120
  }
9139
10121
  }
9140
10122
  };
@@ -9164,10 +10146,10 @@ var Toggle$1 = {
9164
10146
  Switch: Switch
9165
10147
  };
9166
10148
 
9167
- var _baseStyle;
10149
+ var _dark, _baseStyle;
9168
10150
  var $bg = /*#__PURE__*/themeTools.cssVar("tooltip-bg");
9169
10151
  var Tooltip$1 = {
9170
- baseStyle: (_baseStyle = {}, _baseStyle[$bg.variable] = "colors.ui.gray.xx-dark", _baseStyle.borderRadius = "4px", _baseStyle.boxShadow = "none", _baseStyle.color = "ui.white", _baseStyle.fontSize = "text.tag", _baseStyle.marginBottom = "xxs", _baseStyle.maxWidth = "240px", _baseStyle.px = "s", _baseStyle.py = "xs", _baseStyle)
10152
+ baseStyle: (_baseStyle = {}, _baseStyle[$bg.variable] = "colors.ui.gray.xx-dark", _baseStyle.borderRadius = "4px", _baseStyle.boxShadow = "none", _baseStyle.color = "ui.white", _baseStyle.fontSize = "text.tag", _baseStyle.marginBottom = "xxs", _baseStyle.maxWidth = "240px", _baseStyle.px = "s", _baseStyle.py = "xs", _baseStyle._dark = (_dark = {}, _dark[$bg.variable] = "colors.ui.gray.x-dark", _dark), _baseStyle)
9171
10153
  };
9172
10154
 
9173
10155
  var fourByThree = {
@@ -9182,8 +10164,15 @@ var square = {
9182
10164
  };
9183
10165
  var invalid = {
9184
10166
  backgroundColor: "ui.gray.light-cool",
10167
+ border: "1px solid",
10168
+ borderColor: "ui.border.default",
9185
10169
  height: "auto",
9186
- padding: "s"
10170
+ padding: "s",
10171
+ _dark: {
10172
+ bg: "dark.ui.bg.default",
10173
+ border: "1px solid",
10174
+ borderColor: "dark.ui.border.default"
10175
+ }
9187
10176
  };
9188
10177
  var VideoPlayer = {
9189
10178
  baseStyle: {
@@ -9284,6 +10273,7 @@ var theme = /*#__PURE__*/react.extendTheme( /*#__PURE__*/_extends({
9284
10273
  Link: Link$1,
9285
10274
  List: List,
9286
10275
  Logo: Logo,
10276
+ Modal: Modal,
9287
10277
  MultiSelect: MultiSelect,
9288
10278
  MultiSelectMenuButton: MultiSelectMenuButton
9289
10279
  }, NotificationStyles, {
@@ -9332,7 +10322,7 @@ var DSProvider = function DSProvider(_ref) {
9332
10322
  };
9333
10323
 
9334
10324
  var _excluded$1c = ["children", "icon", "id", "isCentered", "notificationType"],
9335
- _excluded2$5 = ["alignText", "children", "icon", "notificationType"],
10325
+ _excluded2$5 = ["alignText", "children", "isCentered", "notificationHeading", "notificationType", "showIcon"],
9336
10326
  _excluded3$3 = ["ariaLabel", "className", "dismissible", "icon", "id", "isCentered", "noMargin", "notificationContent", "notificationHeading", "notificationType", "showIcon"];
9337
10327
  /**
9338
10328
  * NotificationHeading child-component.
@@ -9352,9 +10342,10 @@ var NotificationHeading$1 = /*#__PURE__*/react.chakra(function (props) {
9352
10342
  return React__default.createElement(react.Box, Object.assign({
9353
10343
  as: "header",
9354
10344
  __css: styles
9355
- }, rest), icon, React__default.createElement(Heading, {
10345
+ }, rest), icon, children && React__default.createElement(Heading, {
9356
10346
  id: id + "-heading",
9357
10347
  level: "four",
10348
+ noSpace: true,
9358
10349
  __css: styles.heading
9359
10350
  }, children));
9360
10351
  });
@@ -9364,17 +10355,21 @@ var NotificationHeading$1 = /*#__PURE__*/react.chakra(function (props) {
9364
10355
  var NotificationContent$1 = /*#__PURE__*/react.chakra(function (props) {
9365
10356
  var alignText = props.alignText,
9366
10357
  children = props.children,
9367
- icon = props.icon,
10358
+ isCentered = props.isCentered,
10359
+ notificationHeading = props.notificationHeading,
9368
10360
  notificationType = props.notificationType,
10361
+ showIcon = props.showIcon,
9369
10362
  rest = _objectWithoutPropertiesLoose(props, _excluded2$5);
9370
10363
  var styles = react.useMultiStyleConfig("NotificationContent", {
9371
10364
  alignText: alignText,
9372
- icon: icon,
9373
- notificationType: notificationType
10365
+ isCentered: isCentered,
10366
+ notificationHeading: notificationHeading,
10367
+ notificationType: notificationType,
10368
+ showIcon: showIcon
9374
10369
  });
9375
10370
  return React__default.createElement(react.Box, Object.assign({
9376
10371
  __css: styles
9377
- }, rest), icon, React__default.createElement(react.Box, {
10372
+ }, rest), children && React__default.createElement(react.Box, {
9378
10373
  __css: styles.content
9379
10374
  }, children));
9380
10375
  });
@@ -9403,14 +10398,17 @@ var Notification$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(fu
9403
10398
  var _useState = React.useState(true),
9404
10399
  isOpen = _useState[0],
9405
10400
  setIsOpen = _useState[1];
10401
+ var _useColorMode = react.useColorMode(),
10402
+ colorMode = _useColorMode.colorMode;
9406
10403
  var handleClose = function handleClose() {
9407
10404
  return setIsOpen(false);
9408
10405
  };
9409
10406
  var styles = react.useMultiStyleConfig("Notification", {
9410
- dismissible: dismissible,
9411
10407
  isCentered: isCentered,
9412
10408
  noMargin: noMargin,
9413
- notificationType: notificationType
10409
+ notificationHeading: notificationHeading,
10410
+ notificationType: notificationType,
10411
+ showIcon: showIcon
9414
10412
  });
9415
10413
  var iconElement = function iconElement() {
9416
10414
  var baseIconProps = {
@@ -9427,25 +10425,29 @@ var Notification$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(fu
9427
10425
  }, baseIconProps));
9428
10426
  var iconProps = {
9429
10427
  announcement: {
9430
- color: "section.research.secondary",
10428
+ color: colorMode === "dark" ? "dark.ui.success.primary" : "section.research.secondary",
9431
10429
  name: "speakerNotes",
9432
10430
  title: "Notification announcement icon"
9433
10431
  },
9434
10432
  standard: {
9435
- color: "ui.black",
10433
+ color: colorMode === "dark" ? "ui.status.primary" : "ui.black",
9436
10434
  name: "alertNotificationImportant",
9437
10435
  title: "Notification standard icon"
9438
10436
  },
9439
10437
  warning: {
9440
- color: "brand.primary",
10438
+ color: colorMode === "dark" ? "dark.ui.error.primary" : "brand.primary",
9441
10439
  name: "errorFilled",
9442
10440
  title: "Notification warning icon"
9443
10441
  }
9444
10442
  };
9445
10443
  return React__default.createElement(Icon, Object.assign({
10444
+ className: "notification-icon",
9446
10445
  id: id + "-notification-icon"
9447
10446
  }, iconProps[notificationType], baseIconProps));
9448
10447
  };
10448
+ /** Setting the icon color in the styles is not working, so we need to
10449
+ * explicitly override the icon color directly on the component. */
10450
+ var dismissibleButtonIconColor = react.useColorModeValue("ui.black", "dark.ui.typography.heading");
9449
10451
  var dismissibleButton = dismissible && React__default.createElement(Button, {
9450
10452
  "aria-label": "Close the notification",
9451
10453
  buttonType: "text",
@@ -9453,13 +10455,14 @@ var Notification$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(fu
9453
10455
  onClick: handleClose,
9454
10456
  __css: styles.dismissibleButton
9455
10457
  }, React__default.createElement(Icon, {
10458
+ fill: dismissibleButtonIconColor,
9456
10459
  id: id + "-dismissible-notification-icon",
9457
10460
  name: "close",
9458
10461
  size: "large",
9459
10462
  title: "Notification close icon"
9460
10463
  }));
9461
10464
  var iconElem = iconElement();
9462
- var childHeading = notificationHeading && React__default.createElement(NotificationHeading$1, {
10465
+ var childHeading = (notificationHeading || showIcon) && React__default.createElement(NotificationHeading$1, {
9463
10466
  icon: iconElem,
9464
10467
  id: id,
9465
10468
  isCentered: isCentered,
@@ -9469,8 +10472,10 @@ var Notification$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(fu
9469
10472
  var alignText = !!(childHeading && showIcon && (!!icon || !isCentered));
9470
10473
  var childContent = React__default.createElement(NotificationContent$1, {
9471
10474
  alignText: alignText,
9472
- icon: !childHeading ? iconElem : undefined,
9473
- notificationType: notificationType
10475
+ isCentered: isCentered,
10476
+ notificationHeading: notificationHeading,
10477
+ notificationType: notificationType,
10478
+ showIcon: showIcon
9474
10479
  }, notificationContent);
9475
10480
  // If the `Notification` is closed, don't render anything.
9476
10481
  if (!isOpen) {
@@ -9803,6 +10808,7 @@ var FeedbackBox$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(fun
9803
10808
  var maxCommentCharacters = 500;
9804
10809
  var initMinHeight = 165;
9805
10810
  var initTemplateRows = "auto 1fr";
10811
+ var iconColor = react.useColorModeValue(null, "dark.ui.typography.body");
9806
10812
  var minHeightWithCategory = 235;
9807
10813
  var minHeightWithEmail = 275;
9808
10814
  var minHeightWithCategoryAndEmail = 345;
@@ -9828,6 +10834,7 @@ var FeedbackBox$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(fun
9828
10834
  noMargin: true,
9829
10835
  notificationContent: notificationText,
9830
10836
  showIcon: false,
10837
+ p: "0",
9831
10838
  sx: {
9832
10839
  // The padding of the Notification is smaller than
9833
10840
  // the initial one.
@@ -10040,6 +11047,7 @@ var FeedbackBox$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(fun
10040
11047
  textAlign: "center",
10041
11048
  ref: focusRef
10042
11049
  }, React__default.createElement(Icon, {
11050
+ color: iconColor,
10043
11051
  name: "actionCheckCircleFilled",
10044
11052
  size: "large"
10045
11053
  }), React__default.createElement(Text, {
@@ -10787,7 +11795,9 @@ var FilterBar$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(funct
10787
11795
  sx: styles.modalHeader
10788
11796
  }, "Filter Criteria"), React__default.createElement(react.ModalCloseButton, {
10789
11797
  sx: styles.modalCloseButton
10790
- }), React__default.createElement(react.ModalBody, null, newChildren), React__default.createElement(react.ModalFooter, {
11798
+ }), React__default.createElement(react.ModalBody, {
11799
+ sx: styles.modalBody
11800
+ }, newChildren), React__default.createElement(react.ModalFooter, {
10791
11801
  sx: styles.modalFooter
10792
11802
  }, React__default.createElement(ButtonGroup, {
10793
11803
  layout: "row",
@@ -13931,8 +14941,8 @@ var HeaderSearchForm$1 = /*#__PURE__*/react.chakra(function (_ref) {
13931
14941
  });
13932
14942
 
13933
14943
  /**
13934
- * This is the button that will render the search form when it is clicked
13935
- * and keep focus trapped within the menu.
14944
+ * This is the button that will render the search form when it is clicked and
14945
+ * keep focus trapped within the menu.
13936
14946
  */
13937
14947
  var HeaderSearchButton$1 = /*#__PURE__*/react.chakra(function (_ref) {
13938
14948
  var _ref$isMobile = _ref.isMobile,
@@ -14445,7 +15455,7 @@ var Header$1 = /*#__PURE__*/react.chakra(function (_ref) {
14445
15455
  __css: styles.logo
14446
15456
  }, React__default.createElement(Logo$1, {
14447
15457
  "aria-label": "NYPL Header Logo",
14448
- name: isLargerThanLarge ? "nyplFullBlack" : "nyplLionBlack",
15458
+ name: isLargerThanLarge ? react.useColorModeValue("nyplFullBlack", "nyplFullWhite") : react.useColorModeValue("nyplLionBlack", "nyplLionWhite"),
14449
15459
  size: isLargerThanMobile ? "large" : "small",
14450
15460
  title: "NYPL Header Logo"
14451
15461
  })), React__default.createElement(react.Spacer, null), isLargerThanMobile ? React__default.createElement(react.VStack, {
@@ -14731,7 +15741,10 @@ var Pagination$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(func
14731
15741
  // The current page link has different styles.
14732
15742
  var currentStyles = isSelectedPage ? {
14733
15743
  color: "ui.black",
14734
- pointerEvent: "none"
15744
+ pointerEvent: "none",
15745
+ _dark: {
15746
+ color: "dark.ui.typography.body"
15747
+ }
14735
15748
  } : {};
14736
15749
  var allAttrs = {
14737
15750
  items: {
@@ -14996,6 +16009,8 @@ var Select$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(function
14996
16009
  // The number of pixels between the label and select elements
14997
16010
  // when the labelPosition is inline (equivalent to --nypl-space-xs).
14998
16011
  var labelSelectGap = 8;
16012
+ // Set the color of the dropdown arrow based on the color mode.
16013
+ var arrowColor = react.useColorModeValue(isInvalid ? "ui.error.primary" : "ui.black", isInvalid ? "dark.ui.error.primary" : "dark.ui.typography.body");
14999
16014
  if (!id) {
15000
16015
  console.warn("NYPL Reservoir Select: This component's required `id` prop was not passed.");
15001
16016
  }
@@ -15043,6 +16058,7 @@ var Select$1 = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(function
15043
16058
  ref: ref
15044
16059
  }, controlledProps, ariaAttributes, {
15045
16060
  icon: React__default.createElement(Icon, {
16061
+ color: arrowColor,
15046
16062
  id: id + "-icon",
15047
16063
  name: "arrow",
15048
16064
  size: "medium"
@@ -15313,6 +16329,7 @@ var Slider = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(function (
15313
16329
  var _useStateWithDependen = useStateWithDependencies(value),
15314
16330
  currentValue = _useStateWithDependen[0],
15315
16331
  setCurrentValue = _useStateWithDependen[1];
16332
+ var isDarkMode = react.useColorMode().colorMode === "dark";
15316
16333
  var finalIsInvalid = isInvalid;
15317
16334
  // In the Range Slider, if the first value is bigger than the second value,
15318
16335
  // then set the invalid state.
@@ -15325,6 +16342,7 @@ var Slider = /*#__PURE__*/react.chakra( /*#__PURE__*/React.forwardRef(function (
15325
16342
  console.warn("NYPL Reservoir Slider: The `min` prop is greater than the `max` prop.");
15326
16343
  }
15327
16344
  var styles = react.useMultiStyleConfig("CustomSlider", {
16345
+ isDarkMode: isDarkMode,
15328
16346
  isDisabled: isDisabled,
15329
16347
  isInvalid: finalIsInvalid,
15330
16348
  showBoxes: showBoxes,
@@ -15936,6 +16954,9 @@ var TagSetFilter$1 = /*#__PURE__*/react.chakra(function (props) {
15936
16954
  var finalOnClick = function finalOnClick(tagLabel) {
15937
16955
  onClick && onClick(tagLabel);
15938
16956
  };
16957
+ // Set element colors based on color mode
16958
+ var dismissButtonColor = react.useColorModeValue("ui.gray.x-dark", "dark.ui.typography.body");
16959
+ var iconColor = react.useColorModeValue("ui.black", "dark.ui.typography.body");
15939
16960
  // This expects that the consuming app passes in a new set of data
15940
16961
  // whenever the current list of tags needs to be updated.
15941
16962
  React.useEffect(function () {
@@ -15961,6 +16982,7 @@ var TagSetFilter$1 = /*#__PURE__*/react.chakra(function (props) {
15961
16982
  sx: styles
15962
16983
  }, !isDismissible && tagSet.iconName ? React__default.createElement(Icon, {
15963
16984
  align: "left",
16985
+ color: iconColor,
15964
16986
  "data-testid": "ts-icon",
15965
16987
  name: tagSet.iconName,
15966
16988
  size: "small"
@@ -15969,7 +16991,7 @@ var TagSetFilter$1 = /*#__PURE__*/react.chakra(function (props) {
15969
16991
  align: "right",
15970
16992
  name: "close",
15971
16993
  size: "small",
15972
- color: "ui.gray.x-dark",
16994
+ color: dismissButtonColor,
15973
16995
  width: "12px"
15974
16996
  }) : null));
15975
16997
  }), filters.length > 1 && isDismissible ? React__default.createElement(Button, {