@codecademy/gamut 72.2.3-alpha.4b4cab.0 → 72.2.3-alpha.500e59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/Alert/elements.d.ts +2 -2
  2. package/dist/Anchor/index.d.ts +9 -19
  3. package/dist/Anchor/index.js +6 -9
  4. package/dist/BarChart/BarRow/elements.d.ts +45 -47
  5. package/dist/BarChart/utils/hooks.d.ts +2 -2
  6. package/dist/BarChart/utils/hooks.js +1 -3
  7. package/dist/Box/GridBox.d.ts +0 -1
  8. package/dist/Box/GridBox.js +1 -1
  9. package/dist/Box/props.d.ts +1 -1
  10. package/dist/Breadcrumbs/index.d.ts +5 -5
  11. package/dist/Breadcrumbs/index.js +2 -2
  12. package/dist/Button/CTAButton.d.ts +2 -2
  13. package/dist/Button/FillButton.d.ts +4 -4
  14. package/dist/Button/IconButton.d.ts +4 -4
  15. package/dist/Button/StrokeButton.d.ts +4 -4
  16. package/dist/Button/TextButton.d.ts +4 -4
  17. package/dist/Button/shared/InlineIconButton.d.ts +2 -2
  18. package/dist/Button/shared/styles.d.ts +3 -3
  19. package/dist/Button/shared/types.d.ts +1 -1
  20. package/dist/ButtonBase/ButtonBase.d.ts +4 -9
  21. package/dist/ButtonBase/ButtonBase.js +4 -11
  22. package/dist/Card/elements.d.ts +103 -109
  23. package/dist/Card/styles.d.ts +8 -8
  24. package/dist/Coachmark/index.d.ts +1 -1
  25. package/dist/ConnectedForm/ConnectedForm.d.ts +1 -1
  26. package/dist/ConnectedForm/ConnectedFormGroup.js +2 -3
  27. package/dist/ConnectedForm/utils.d.ts +1 -1
  28. package/dist/ConnectedForm/utils.js +1 -1
  29. package/dist/DatePicker/DatePickerCalendar/Calendar/CalendarBody.js +1 -0
  30. package/dist/DatePicker/DatePickerInput/index.d.ts +1 -1
  31. package/dist/DatePicker/DatePickerInput/index.js +11 -12
  32. package/dist/DatePicker/utils/translations.d.ts +2 -0
  33. package/dist/DatePicker/utils/translations.js +1 -0
  34. package/dist/Disclosure/elements.d.ts +12 -18
  35. package/dist/FeatureShimmer/index.js +1 -1
  36. package/dist/Form/SelectDropdown/SelectDropdown.js +1 -1
  37. package/dist/Form/SelectDropdown/elements/containers.js +1 -1
  38. package/dist/Form/SelectDropdown/elements/controls.js +2 -2
  39. package/dist/Form/SelectDropdown/elements/multi-value.js +2 -2
  40. package/dist/Form/SelectDropdown/types/internal.d.ts +2 -2
  41. package/dist/Form/SelectDropdown/utils.js +1 -2
  42. package/dist/Form/elements/Form.d.ts +15 -15
  43. package/dist/Form/elements/FormGroup.d.ts +1 -1
  44. package/dist/Form/styles/Checkbox-styles.d.ts +1 -1
  45. package/dist/GridForm/GridFormButtons/index.d.ts +4 -4
  46. package/dist/List/ListProvider.d.ts +1 -1
  47. package/dist/List/elements.d.ts +42 -44
  48. package/dist/Menu/MenuItem.js +6 -10
  49. package/dist/Menu/elements.d.ts +2 -2
  50. package/dist/Modals/Dialog.js +2 -6
  51. package/dist/Modals/Modal.js +2 -5
  52. package/dist/Modals/elements.d.ts +1 -1
  53. package/dist/Pagination/AnimatedPaginationButtons.d.ts +29 -31
  54. package/dist/Pagination/EllipsisButton.d.ts +2 -2
  55. package/dist/Pagination/PaginationButton.d.ts +6 -6
  56. package/dist/Pagination/utils.d.ts +29 -31
  57. package/dist/Pagination/utils.js +11 -14
  58. package/dist/Popover/Popover.js +6 -6
  59. package/dist/Popover/types.d.ts +3 -4
  60. package/dist/PopoverContainer/PopoverContainer.js +9 -9
  61. package/dist/PopoverContainer/hooks.d.ts +4 -16
  62. package/dist/PopoverContainer/hooks.js +27 -50
  63. package/dist/PopoverContainer/types.d.ts +1 -2
  64. package/dist/Tabs/TabButton.d.ts +2 -2
  65. package/dist/Tabs/TabNavLink.d.ts +2 -2
  66. package/dist/Tag/elements.d.ts +8 -14
  67. package/dist/Tag/index.js +1 -1
  68. package/dist/Tip/InfoTip/InfoTipButton.d.ts +4 -4
  69. package/dist/Tip/PreviewTip/elements.d.ts +6 -12
  70. package/dist/Tip/__tests__/helpers.d.ts +1 -1
  71. package/dist/Tip/shared/FloatingTip.js +2 -2
  72. package/dist/Tip/shared/types.d.ts +2 -2
  73. package/dist/Tip/shared/utils.js +1 -1
  74. package/dist/Video/lib/VidstackPlayer.d.ts +1 -1
  75. package/dist/Video/lib/VidstackPlayer.js +2 -4
  76. package/dist/Video/styles/vds_base_theme.scss +101 -0
  77. package/dist/utils/react.js +2 -4
  78. package/package.json +10 -10
  79. package/dist/Video/styles.d.ts +0 -1
  80. package/dist/Video/styles.js +0 -10
  81. package/dist/Video/vidstack-vendor.css +0 -3
  82. package/dist/utils/nullish.d.ts +0 -10
  83. package/dist/utils/nullish.js +0 -11
@@ -9,14 +9,14 @@ export declare const patternFadeInOut: {
9
9
  opacity: number;
10
10
  transition: {
11
11
  duration: number;
12
- ease: "easeOut";
12
+ ease: string;
13
13
  };
14
14
  };
15
15
  animate: {
16
16
  opacity: number;
17
17
  transition: {
18
18
  duration: number;
19
- ease: "easeIn";
19
+ ease: string;
20
20
  };
21
21
  };
22
22
  };
@@ -26,7 +26,7 @@ export declare const hoverShadowLeft: (borderRadius?: string) => {
26
26
  borderRadius: string | undefined;
27
27
  transition: {
28
28
  duration: number;
29
- ease: "easeOut";
29
+ ease: string;
30
30
  };
31
31
  };
32
32
  initialOutline: {
@@ -34,7 +34,7 @@ export declare const hoverShadowLeft: (borderRadius?: string) => {
34
34
  borderRadius: string | undefined;
35
35
  transition: {
36
36
  duration: number;
37
- ease: "easeOut";
37
+ ease: string;
38
38
  };
39
39
  };
40
40
  animate: {
@@ -43,7 +43,7 @@ export declare const hoverShadowLeft: (borderRadius?: string) => {
43
43
  borderRadius: string | undefined;
44
44
  transition: {
45
45
  duration: number;
46
- ease: "easeIn";
46
+ ease: string;
47
47
  };
48
48
  };
49
49
  animateOutline: {
@@ -52,7 +52,7 @@ export declare const hoverShadowLeft: (borderRadius?: string) => {
52
52
  borderRadius: string | undefined;
53
53
  transition: {
54
54
  duration: number;
55
- ease: "easeIn";
55
+ ease: string;
56
56
  };
57
57
  };
58
58
  };
@@ -62,7 +62,7 @@ export declare const hoverShadowRight: (borderRadius?: string) => {
62
62
  borderRadius: string | undefined;
63
63
  transition: {
64
64
  duration: number;
65
- ease: "easeOut";
65
+ ease: string;
66
66
  };
67
67
  };
68
68
  animate: {
@@ -71,7 +71,7 @@ export declare const hoverShadowRight: (borderRadius?: string) => {
71
71
  borderRadius: string | undefined;
72
72
  transition: {
73
73
  duration: number;
74
- ease: "easeIn";
74
+ ease: string;
75
75
  };
76
76
  };
77
77
  };
@@ -21,7 +21,7 @@ export type CoachmarkProps = PopoverFocusProps & {
21
21
  /**
22
22
  * Function that returns the contents of the coachmark.
23
23
  */
24
- renderPopover: (onDismiss?: () => void) => React.JSX.Element;
24
+ renderPopover: (onDismiss?: () => void) => JSX.Element;
25
25
  /**
26
26
  * Props to be passed into the popover component.
27
27
  */
@@ -62,4 +62,4 @@ export interface ConnectedFormProps<Values extends {}> extends Omit<FormContextP
62
62
  }
63
63
  export type FormProviderCustomProps = FormProviderProps & FormContextProps;
64
64
  export declare const FormPropsContext: React.Context<Partial<FormContextProps>>;
65
- export declare const ConnectedForm: <Values extends FormValues<Values>>(props: React.PropsWithoutRef<ConnectedFormProps<Values>> & React.RefAttributes<HTMLFormElement>) => React.ReactElement;
65
+ export declare const ConnectedForm: <Values extends FormValues<Values>>(props: ConnectedFormProps<Values>, ref: React.ForwardedRef<HTMLFormElement>) => React.ReactElement;
@@ -13,7 +13,7 @@ const ErrorAnchor = /*#__PURE__*/_styled(Anchor, {
13
13
  label: "ErrorAnchor"
14
14
  })(css({
15
15
  color: 'feedback-error'
16
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db25uZWN0ZWRGb3JtL0Nvbm5lY3RlZEZvcm1Hcm91cC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY29CIiwiZmlsZSI6Ii4uLy4uL3NyYy9Db25uZWN0ZWRGb3JtL0Nvbm5lY3RlZEZvcm1Hcm91cC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VJZCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFJlZ2lzdGVyT3B0aW9ucyB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5cbmltcG9ydCB7IEZvcm1FcnJvciwgRm9ybUdyb3VwLCBGb3JtR3JvdXBMYWJlbCwgRm9ybUdyb3VwUHJvcHMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBBbmNob3IgfSBmcm9tICcuLi9BbmNob3InO1xuaW1wb3J0IHsgTWFya2Rvd24gfSBmcm9tICcuLi9NYXJrZG93bic7XG5pbXBvcnQgeyBJbmZvVGlwU3ViQ29tcG9uZW50UHJvcHMgfSBmcm9tICcuLi9UaXAvSW5mb1RpcC90eXBlLXV0aWxzJztcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IENvbm5lY3RlZEZpZWxkLCBGaWVsZFByb3BzLCBTdWJtaXRDb250ZXh0UHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGdldEVycm9yTWVzc2FnZSwgdXNlRmllbGQgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgRXJyb3JBbmNob3IgPSBzdHlsZWQoQW5jaG9yKShcbiAgY3NzKHtcbiAgICBjb2xvcjogJ2ZlZWRiYWNrLWVycm9yJyxcbiAgfSlcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGVkRm9ybUdyb3VwQmFzZVByb3BzXG4gIGV4dGVuZHMgT21pdDxcbiAgICBGb3JtR3JvdXBQcm9wcyxcbiAgICAnbGFiZWwnIHwgJ2Rpc2FibGVkJyB8ICdkZXNjcmlwdGlvbicgfCAnaHRtbEZvcidcbiAgPiB7XG4gIGN1c3RvbUVycm9yPzogc3RyaW5nO1xuICBlcnJvclR5cGU/OiAnaW5pdGlhbCcgfCAnYWJzb2x1dGUnO1xuICBoaWRlTGFiZWw/OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBSZWFjdC5SZWFjdE5vZGU7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZm9UaXAgdG8gZGlzcGxheSBuZXh0IHRvIHRoZSBmaWVsZCBsYWJlbC4gVGhlIEluZm9UaXAgYnV0dG9uIGlzXG4gICAqIGF1dG9tYXRpY2FsbHkgbGFiZWxsZWQgYnkgdGhlIGZpZWxkIGxhYmVsLiBUbyBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLFxuICAgKiBwcm92aWRlIGBhcmlhTGFiZWxgIG9yIGBhcmlhTGFiZWxsZWRieWAuXG4gICAqL1xuICBpbmZvdGlwPzogSW5mb1RpcFN1YkNvbXBvbmVudFByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RlZEZvcm1Hcm91cFByb3BzPFQgZXh0ZW5kcyBDb25uZWN0ZWRGaWVsZD5cbiAgZXh0ZW5kcyBTdWJtaXRDb250ZXh0UHJvcHMsXG4gICAgQ29ubmVjdGVkRm9ybUdyb3VwQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIEFuIG9iamVjdCBjb25zaXN0aW5nIG9mIGEgYGNvbXBvbmVudGAga2V5IHRvIHNwZWNpZnkgd2hhdCBDb25uZWN0ZWRGb3JtSW5wdXQgdG8gcmVuZGVyIC0gdGhlIHJlbWFpbmluZyBrZXkvdmFsdWUgcGFpcnMgYXJlIHRoYXQgY29tcG9uZW50cyBkZXNpcmVkIHByb3BzLlxuICAgKi9cbiAgZmllbGQ6IE9taXQ8UmVhY3QuQ29tcG9uZW50UHJvcHM8VD4sICduYW1lJyB8ICdkaXNhYmxlZCc+ICZcbiAgICBGaWVsZFByb3BzPFQ+ICYge1xuICAgICAgY3VzdG9tVmFsaWRhdGlvbnM/OiBSZWdpc3Rlck9wdGlvbnM7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENvbm5lY3RlZEZvcm1Hcm91cDxUIGV4dGVuZHMgQ29ubmVjdGVkRmllbGQ+KHtcbiAgY3VzdG9tRXJyb3IsXG4gIGNoaWxkcmVuLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvclR5cGUgPSAnYWJzb2x1dGUnLFxuICBmaWVsZCxcbiAgaGlkZUxhYmVsLFxuICBpZCxcbiAgbGFiZWwsXG4gIG5hbWUsXG4gIGxhYmVsU2l6ZSxcbiAgc3BhY2luZyA9ICdmaXQnLFxuICBpc1NvbG9GaWVsZCxcbiAgaW5mb3RpcCxcbn06IENvbm5lY3RlZEZvcm1Hcm91cFByb3BzPFQ+KSB7XG4gIGNvbnN0IHsgY29tcG9uZW50OiBDb21wb25lbnQsIGN1c3RvbVZhbGlkYXRpb25zLCAuLi5yZXN0IH0gPSBmaWVsZDtcbiAgY29uc3QgeyBlcnJvciwgaXNGaXJzdEVycm9yLCBpc0Rpc2FibGVkLCBzZXRFcnJvciwgdmFsaWRhdGlvbiB9ID0gdXNlRmllbGQoe1xuICAgIG5hbWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY3VzdG9tVmFsaWRhdGlvbnMsXG4gIH0pO1xuICBjb25zdCB1bmlxdWVJZFN1ZmZpeCA9IHVzZUlkKCk7XG4gIGNvbnN0IGh0bWxGb3JJZCA9IGAke25hbWV9LSR7dW5pcXVlSWRTdWZmaXh9YDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjdXN0b21FcnJvcikge1xuICAgICAgc2V0RXJyb3IobmFtZSwge1xuICAgICAgICB0eXBlOiAnbWFudWFsJyxcbiAgICAgICAgbWVzc2FnZTogY3VzdG9tRXJyb3IsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtjdXN0b21FcnJvciwgbmFtZSwgc2V0RXJyb3JdKTtcblxuICBjb25zdCBmaWVsZElkID0gdHlwZW9mIGlkID09PSAnc3RyaW5nJyA/IGlkIDogbmFtZTtcblxuICBjb25zdCByZW5kZXJlZExhYmVsID0gKFxuICAgIDxGb3JtR3JvdXBMYWJlbFxuICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBodG1sRm9yPXtpZCB8fCBodG1sRm9ySWR9XG4gICAgICBpbmZvdGlwPXtpbmZvdGlwfVxuICAgICAgaXNTb2xvRmllbGQ9e2lzU29sb0ZpZWxkfVxuICAgICAgcmVxdWlyZWQ9e0Jvb2xlYW4odmFsaWRhdGlvbj8ucmVxdWlyZWQpfVxuICAgICAgc2l6ZT17bGFiZWxTaXplfVxuICAgID5cbiAgICAgIHtsYWJlbH1cbiAgICA8L0Zvcm1Hcm91cExhYmVsPlxuICApO1xuXG4gIGNvbnN0IHRleHRFcnJvciA9IGN1c3RvbUVycm9yIHx8IGdldEVycm9yTWVzc2FnZShlcnJvcik7XG4gIGNvbnN0IHNob3dFcnJvciA9ICEhKHRleHRFcnJvciAmJiAhaGlkZUxhYmVsKTtcbiAgY29uc3QgZXJyb3JJZCA9IHNob3dFcnJvciA/IGAke2ZpZWxkSWR9X2Vycm9yYCA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gKFxuICAgIDxGb3JtR3JvdXAgc3BhY2luZz17aGlkZUxhYmVsID8gJ3RpZ2h0JyA6IHNwYWNpbmd9PlxuICAgICAge2hpZGVMYWJlbCA/IDxUZXh0IHNjcmVlbnJlYWRlcj57cmVuZGVyZWRMYWJlbH08L1RleHQ+IDogcmVuZGVyZWRMYWJlbH1cbiAgICAgIDxDb21wb25lbnRcbiAgICAgICAgey4uLihyZXN0IGFzIGFueSl9XG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2Vycm9ySWR9XG4gICAgICAgIGFyaWEtaW52YWxpZD17c2hvd0Vycm9yfVxuICAgICAgICBjdXN0b21WYWxpZGF0aW9ucz17Y3VzdG9tVmFsaWRhdGlvbnN9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgaHRtbEZvcj17aHRtbEZvcklkfVxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgLz5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtzaG93RXJyb3IgJiYgKFxuICAgICAgICA8Rm9ybUVycm9yXG4gICAgICAgICAgYXJpYS1saXZlPXtpc0ZpcnN0RXJyb3IgPyAnYXNzZXJ0aXZlJyA6ICdvZmYnfVxuICAgICAgICAgIGlkPXtlcnJvcklkfVxuICAgICAgICAgIHJvbGU9e2lzRmlyc3RFcnJvciA/ICdhbGVydCcgOiAnc3RhdHVzJ31cbiAgICAgICAgICB2YXJpYW50PXtlcnJvclR5cGV9XG4gICAgICAgID5cbiAgICAgICAgICA8TWFya2Rvd25cbiAgICAgICAgICAgIGlubGluZVxuICAgICAgICAgICAgb3ZlcnJpZGVzPXt7XG4gICAgICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgICAgICBhbGxvd2VkQXR0cmlidXRlczogWydocmVmJywgJ3RhcmdldCddLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRXJyb3JBbmNob3IsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc05vZGU6IChcbiAgICAgICAgICAgICAgICAgIG5vZGU6IHVua25vd24sXG4gICAgICAgICAgICAgICAgICBwcm9wczogeyBvbkNsaWNrPzogKCkgPT4gdm9pZCB9XG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCB7IGtleTogZWxlbWVudEtleSwgLi4ucmVzdCB9ID1cbiAgICAgICAgICAgICAgICAgICAgcHJvcHMgYXMgUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEVycm9yQW5jaG9yPiAmIHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk/OiBSZWFjdC5LZXk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPEVycm9yQW5jaG9yIGtleT17ZWxlbWVudEtleX0gey4uLnJlc3R9IC8+O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgc2tpcERlZmF1bHRPdmVycmlkZXM9e3sgYTogdHJ1ZSB9fVxuICAgICAgICAgICAgc3BhY2luZz1cIm5vbmVcIlxuICAgICAgICAgICAgdGV4dD17dGV4dEVycm9yfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRm9ybUVycm9yPlxuICAgICAgKX1cbiAgICA8L0Zvcm1Hcm91cD5cbiAgKTtcbn1cbiJdfQ== */");
16
+ }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db25uZWN0ZWRGb3JtL0Nvbm5lY3RlZEZvcm1Hcm91cC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY29CIiwiZmlsZSI6Ii4uLy4uL3NyYy9Db25uZWN0ZWRGb3JtL0Nvbm5lY3RlZEZvcm1Hcm91cC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VJZCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFJlZ2lzdGVyT3B0aW9ucyB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5cbmltcG9ydCB7IEZvcm1FcnJvciwgRm9ybUdyb3VwLCBGb3JtR3JvdXBMYWJlbCwgRm9ybUdyb3VwUHJvcHMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBBbmNob3IgfSBmcm9tICcuLi9BbmNob3InO1xuaW1wb3J0IHsgTWFya2Rvd24gfSBmcm9tICcuLi9NYXJrZG93bic7XG5pbXBvcnQgeyBJbmZvVGlwU3ViQ29tcG9uZW50UHJvcHMgfSBmcm9tICcuLi9UaXAvSW5mb1RpcC90eXBlLXV0aWxzJztcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IENvbm5lY3RlZEZpZWxkLCBGaWVsZFByb3BzLCBTdWJtaXRDb250ZXh0UHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGdldEVycm9yTWVzc2FnZSwgdXNlRmllbGQgfSBmcm9tICcuL3V0aWxzJztcblxuY29uc3QgRXJyb3JBbmNob3IgPSBzdHlsZWQoQW5jaG9yKShcbiAgY3NzKHtcbiAgICBjb2xvcjogJ2ZlZWRiYWNrLWVycm9yJyxcbiAgfSlcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29ubmVjdGVkRm9ybUdyb3VwQmFzZVByb3BzXG4gIGV4dGVuZHMgT21pdDxcbiAgICBGb3JtR3JvdXBQcm9wcyxcbiAgICAnbGFiZWwnIHwgJ2Rpc2FibGVkJyB8ICdkZXNjcmlwdGlvbicgfCAnaHRtbEZvcidcbiAgPiB7XG4gIGN1c3RvbUVycm9yPzogc3RyaW5nO1xuICBlcnJvclR5cGU/OiAnaW5pdGlhbCcgfCAnYWJzb2x1dGUnO1xuICBoaWRlTGFiZWw/OiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsOiBSZWFjdC5SZWFjdE5vZGU7XG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEluZm9UaXAgdG8gZGlzcGxheSBuZXh0IHRvIHRoZSBmaWVsZCBsYWJlbC4gVGhlIEluZm9UaXAgYnV0dG9uIGlzXG4gICAqIGF1dG9tYXRpY2FsbHkgbGFiZWxsZWQgYnkgdGhlIGZpZWxkIGxhYmVsLiBUbyBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLFxuICAgKiBwcm92aWRlIGBhcmlhTGFiZWxgIG9yIGBhcmlhTGFiZWxsZWRieWAuXG4gICAqL1xuICBpbmZvdGlwPzogSW5mb1RpcFN1YkNvbXBvbmVudFByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3RlZEZvcm1Hcm91cFByb3BzPFQgZXh0ZW5kcyBDb25uZWN0ZWRGaWVsZD5cbiAgZXh0ZW5kcyBTdWJtaXRDb250ZXh0UHJvcHMsXG4gICAgQ29ubmVjdGVkRm9ybUdyb3VwQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIEFuIG9iamVjdCBjb25zaXN0aW5nIG9mIGEgYGNvbXBvbmVudGAga2V5IHRvIHNwZWNpZnkgd2hhdCBDb25uZWN0ZWRGb3JtSW5wdXQgdG8gcmVuZGVyIC0gdGhlIHJlbWFpbmluZyBrZXkvdmFsdWUgcGFpcnMgYXJlIHRoYXQgY29tcG9uZW50cyBkZXNpcmVkIHByb3BzLlxuICAgKi9cbiAgZmllbGQ6IE9taXQ8UmVhY3QuQ29tcG9uZW50UHJvcHM8VD4sICduYW1lJyB8ICdkaXNhYmxlZCc+ICZcbiAgICBGaWVsZFByb3BzPFQ+ICYge1xuICAgICAgY3VzdG9tVmFsaWRhdGlvbnM/OiBSZWdpc3Rlck9wdGlvbnM7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENvbm5lY3RlZEZvcm1Hcm91cDxUIGV4dGVuZHMgQ29ubmVjdGVkRmllbGQ+KHtcbiAgY3VzdG9tRXJyb3IsXG4gIGNoaWxkcmVuLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBlcnJvclR5cGUgPSAnYWJzb2x1dGUnLFxuICBmaWVsZCxcbiAgaGlkZUxhYmVsLFxuICBpZCxcbiAgbGFiZWwsXG4gIG5hbWUsXG4gIGxhYmVsU2l6ZSxcbiAgc3BhY2luZyA9ICdmaXQnLFxuICBpc1NvbG9GaWVsZCxcbiAgaW5mb3RpcCxcbn06IENvbm5lY3RlZEZvcm1Hcm91cFByb3BzPFQ+KSB7XG4gIGNvbnN0IHsgY29tcG9uZW50OiBDb21wb25lbnQsIGN1c3RvbVZhbGlkYXRpb25zLCAuLi5yZXN0IH0gPSBmaWVsZDtcbiAgY29uc3QgeyBlcnJvciwgaXNGaXJzdEVycm9yLCBpc0Rpc2FibGVkLCBzZXRFcnJvciwgdmFsaWRhdGlvbiB9ID0gdXNlRmllbGQoe1xuICAgIG5hbWUsXG4gICAgZGlzYWJsZWQsXG4gICAgY3VzdG9tVmFsaWRhdGlvbnMsXG4gIH0pO1xuICBjb25zdCB1bmlxdWVJZFN1ZmZpeCA9IHVzZUlkKCk7XG4gIGNvbnN0IGh0bWxGb3JJZCA9IGAke25hbWV9LSR7dW5pcXVlSWRTdWZmaXh9YDtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjdXN0b21FcnJvcikge1xuICAgICAgc2V0RXJyb3IobmFtZSwge1xuICAgICAgICB0eXBlOiAnbWFudWFsJyxcbiAgICAgICAgbWVzc2FnZTogY3VzdG9tRXJyb3IsXG4gICAgICB9KTtcbiAgICB9XG4gIH0sIFtjdXN0b21FcnJvciwgbmFtZSwgc2V0RXJyb3JdKTtcblxuICBjb25zdCByZW5kZXJlZExhYmVsID0gKFxuICAgIDxGb3JtR3JvdXBMYWJlbFxuICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICBodG1sRm9yPXtpZCB8fCBodG1sRm9ySWR9XG4gICAgICBpbmZvdGlwPXtpbmZvdGlwfVxuICAgICAgaXNTb2xvRmllbGQ9e2lzU29sb0ZpZWxkfVxuICAgICAgcmVxdWlyZWQ9e0Jvb2xlYW4odmFsaWRhdGlvbj8ucmVxdWlyZWQpfVxuICAgICAgc2l6ZT17bGFiZWxTaXplfVxuICAgID5cbiAgICAgIHtsYWJlbH1cbiAgICA8L0Zvcm1Hcm91cExhYmVsPlxuICApO1xuXG4gIGNvbnN0IHRleHRFcnJvciA9IGN1c3RvbUVycm9yIHx8IGdldEVycm9yTWVzc2FnZShlcnJvcik7XG4gIGNvbnN0IHNob3dFcnJvciA9ICEhKHRleHRFcnJvciAmJiAhaGlkZUxhYmVsKTtcbiAgY29uc3QgZXJyb3JJZCA9IHNob3dFcnJvciA/IGAke2lkIHx8IG5hbWV9X2Vycm9yYCA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gKFxuICAgIDxGb3JtR3JvdXAgc3BhY2luZz17aGlkZUxhYmVsID8gJ3RpZ2h0JyA6IHNwYWNpbmd9PlxuICAgICAge2hpZGVMYWJlbCA/IDxUZXh0IHNjcmVlbnJlYWRlcj57cmVuZGVyZWRMYWJlbH08L1RleHQ+IDogcmVuZGVyZWRMYWJlbH1cbiAgICAgIDxDb21wb25lbnRcbiAgICAgICAgey4uLihyZXN0IGFzIGFueSl9XG4gICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2Vycm9ySWR9XG4gICAgICAgIGFyaWEtaW52YWxpZD17c2hvd0Vycm9yfVxuICAgICAgICBjdXN0b21WYWxpZGF0aW9ucz17Y3VzdG9tVmFsaWRhdGlvbnN9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgaHRtbEZvcj17aHRtbEZvcklkfVxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgLz5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtzaG93RXJyb3IgJiYgKFxuICAgICAgICA8Rm9ybUVycm9yXG4gICAgICAgICAgYXJpYS1saXZlPXtpc0ZpcnN0RXJyb3IgPyAnYXNzZXJ0aXZlJyA6ICdvZmYnfVxuICAgICAgICAgIGlkPXtlcnJvcklkfVxuICAgICAgICAgIHJvbGU9e2lzRmlyc3RFcnJvciA/ICdhbGVydCcgOiAnc3RhdHVzJ31cbiAgICAgICAgICB2YXJpYW50PXtlcnJvclR5cGV9XG4gICAgICAgID5cbiAgICAgICAgICA8TWFya2Rvd25cbiAgICAgICAgICAgIGlubGluZVxuICAgICAgICAgICAgb3ZlcnJpZGVzPXt7XG4gICAgICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgICAgICBhbGxvd2VkQXR0cmlidXRlczogWydocmVmJywgJ3RhcmdldCddLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRXJyb3JBbmNob3IsXG4gICAgICAgICAgICAgICAgcHJvY2Vzc05vZGU6IChcbiAgICAgICAgICAgICAgICAgIG5vZGU6IHVua25vd24sXG4gICAgICAgICAgICAgICAgICBwcm9wczogeyBvbkNsaWNrPzogKCkgPT4gdm9pZCB9XG4gICAgICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCB7IGtleTogZWxlbWVudEtleSwgLi4ucmVzdCB9ID1cbiAgICAgICAgICAgICAgICAgICAgcHJvcHMgYXMgUmVhY3QuQ29tcG9uZW50UHJvcHM8dHlwZW9mIEVycm9yQW5jaG9yPiAmIHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk/OiBSZWFjdC5LZXk7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICByZXR1cm4gPEVycm9yQW5jaG9yIGtleT17ZWxlbWVudEtleX0gey4uLnJlc3R9IC8+O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgc2tpcERlZmF1bHRPdmVycmlkZXM9e3sgYTogdHJ1ZSB9fVxuICAgICAgICAgICAgc3BhY2luZz1cIm5vbmVcIlxuICAgICAgICAgICAgdGV4dD17dGV4dEVycm9yfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRm9ybUVycm9yPlxuICAgICAgKX1cbiAgICA8L0Zvcm1Hcm91cD5cbiAgKTtcbn1cbiJdfQ== */");
17
17
  export function ConnectedFormGroup({
18
18
  customError,
19
19
  children,
@@ -55,7 +55,6 @@ export function ConnectedFormGroup({
55
55
  });
56
56
  }
57
57
  }, [customError, name, setError]);
58
- const fieldId = typeof id === 'string' ? id : name;
59
58
  const renderedLabel = /*#__PURE__*/_jsx(FormGroupLabel, {
60
59
  disabled: isDisabled,
61
60
  htmlFor: id || htmlForId,
@@ -67,7 +66,7 @@ export function ConnectedFormGroup({
67
66
  });
68
67
  const textError = customError || getErrorMessage(error);
69
68
  const showError = !!(textError && !hideLabel);
70
- const errorId = showError ? `${fieldId}_error` : undefined;
69
+ const errorId = showError ? `${id || name}_error` : undefined;
71
70
  return /*#__PURE__*/_jsxs(FormGroup, {
72
71
  spacing: hideLabel ? 'tight' : spacing,
73
72
  children: [hideLabel ? /*#__PURE__*/_jsx(Text, {
@@ -112,7 +112,7 @@ export declare const USE_DEBOUNCED_FIELD_DIRTY_KEY = "";
112
112
  * for something that I think could be modified to make this better
113
113
  * but I couldn't get it to work
114
114
  */
115
- type InputTypes = Extract<HTMLInputTypeAttribute, 'number' | 'color' | 'date' | 'datetime-local' | 'time' | 'image' | 'checkbox' | 'text' | 'hidden' | 'password' | 'radio' | 'range' | 'email' | 'search' | 'month' | 'tel' | 'url' | 'week'> | 'textarea' | 'select';
115
+ type InputTypes = Extract<HTMLInputTypeAttribute, 'number' | 'color' | 'date' | 'datetime-local' | 'time' | 'image' | 'checkbox' | 'text' | 'hidden' | 'password' | 'radio' | 'range' | 'email' | 'search' | 'month' | 'tel' | 'time' | 'url' | 'week'> | 'textarea' | 'select';
116
116
  type DebouncedFieldProps<T extends InputTypes> = Omit<GetInitialFormValueProps, 'setLocalValue' | 'defaultValue'> & Pick<useFieldProps, 'loading' | 'disabled' | 'name' | 'customValidations'> & {
117
117
  type: T;
118
118
  shouldDirtyOnChange?: boolean;
@@ -102,7 +102,7 @@ export const useField = ({
102
102
  disabled: disabled || formStateDisabled,
103
103
  loading
104
104
  });
105
- const formValidation = validationRules?.[name];
105
+ const formValidation = (validationRules && validationRules[name]) ?? undefined;
106
106
  const validation = useMemo(() => formValidation || customValidations ? {
107
107
  ...formValidation,
108
108
  ...customValidations
@@ -126,6 +126,7 @@ export const CalendarBody = ({
126
126
  children: /*#__PURE__*/_jsx("tr", {
127
127
  children: weekdayLabels.map((label, i) => /*#__PURE__*/_jsx(TableHeader, {
128
128
  abbr: weekdayFullNames[i],
129
+ "aria-label": weekdayFullNames[i],
129
130
  scope: "col",
130
131
  children: label
131
132
  }, label))
@@ -3,7 +3,7 @@ export type DatePickerInputProps = Omit<InputWrapperProps, 'className' | 'type'
3
3
  /** In range mode: which part of the range this input edits. Omit for single-date or combined display. */
4
4
  rangePart?: 'start' | 'end';
5
5
  };
6
- export declare const DatePickerInput: import("react").ForwardRefExoticComponent<Omit<InputWrapperProps, "color" | "className" | "onChange" | "type" | "value" | "icon"> & {
6
+ export declare const DatePickerInput: import("react").ForwardRefExoticComponent<Omit<InputWrapperProps, "color" | "className" | "onChange" | "type" | "icon" | "value"> & {
7
7
  /** In range mode: which part of the range this input edits. Omit for single-date or combined display. */
8
8
  rangePart?: "start" | "end";
9
9
  } & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,6 +1,7 @@
1
1
  import { MiniCalendarIcon } from '@codecademy/gamut-icons';
2
2
  import { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
3
3
  import { FlexBox } from '../../Box';
4
+ import { IconButton } from '../../Button';
4
5
  import { FormGroup } from '../../Form/elements/FormGroup';
5
6
  import { isSameDay } from '../DatePickerCalendar/Calendar/utils/dateGrid';
6
7
  import { handleDateSelectRange } from '../DatePickerCalendar/utils/dateSelect';
@@ -57,6 +58,7 @@ export const DatePickerInput = /*#__PURE__*/forwardRef(({
57
58
  const hiddenValue = parsedForHidden ? formatDateISO8601DateOnly(parsedForHidden) : '';
58
59
  const isInputFocusedRef = useRef(false);
59
60
  const containerRef = useRef(null);
61
+ const buttonRef = useRef(null);
60
62
  const segmentElRefs = useRef({});
61
63
  const assignSegmentRef = useCallback((field, el) => {
62
64
  segmentElRefs.current[field] = el;
@@ -144,7 +146,7 @@ export const DatePickerInput = /*#__PURE__*/forwardRef(({
144
146
  focusCalendar();
145
147
  }, [isCalendarOpen, openCalendar, focusCalendar]);
146
148
  return /*#__PURE__*/_jsx(FormGroup, {
147
- htmlFor: inputId,
149
+ id: inputId,
148
150
  isSoloField: true,
149
151
  label: label ?? defaultLabel,
150
152
  mb: 0,
@@ -152,7 +154,7 @@ export const DatePickerInput = /*#__PURE__*/forwardRef(({
152
154
  spacing: "tight",
153
155
  width: "fit-content",
154
156
  children: /*#__PURE__*/_jsxs(SegmentedShell, {
155
- id: inputId,
157
+ "aria-labelledby": inputId,
156
158
  inputSize: size,
157
159
  ref: shellRef,
158
160
  role: "group",
@@ -199,16 +201,13 @@ export const DatePickerInput = /*#__PURE__*/forwardRef(({
199
201
  tabIndex: -1,
200
202
  type: "hidden",
201
203
  value: hiddenValue
202
- }), /*#__PURE__*/_jsx(FlexBox, {
203
- alignItems: "center",
204
- justifyContent: "center",
205
- pl: 16,
206
- pr: 8,
207
- role: "presentation",
208
- children: /*#__PURE__*/_jsx(MiniCalendarIcon, {
209
- "aria-hidden": true,
210
- size: 16
211
- })
204
+ }), /*#__PURE__*/_jsx(IconButton, {
205
+ mx: 4,
206
+ icon: MiniCalendarIcon,
207
+ size: "small",
208
+ tip: translations.openCalendarLabel,
209
+ ref: buttonRef,
210
+ onClick: () => buttonRef.current?.blur()
212
211
  })]
213
212
  })
214
213
  });
@@ -9,6 +9,8 @@ export interface DatePickerTranslations {
9
9
  endDateLabel?: string;
10
10
  /** aria-label for the calendar dialog (default: "Choose date"). */
11
11
  calendarDialogAriaLabel?: string;
12
+ /** aria-label for the calendar icon trigger (default: "Open calendar"). */
13
+ openCalendarLabel?: string;
12
14
  /** Label for the last 7 days quick action (default: "Last 7 days"). */
13
15
  last7DaysDisplayText?: string;
14
16
  /** Label for the last 30 days quick action (default: "Last 30 days"). */
@@ -4,6 +4,7 @@ export const DEFAULT_DATE_PICKER_TRANSLATIONS = {
4
4
  startDateLabel: 'Start date',
5
5
  endDateLabel: 'End date',
6
6
  calendarDialogAriaLabel: 'Choose date',
7
+ openCalendarLabel: 'Open calendar',
7
8
  last7DaysDisplayText: 'Last 7 days',
8
9
  last30DaysDisplayText: 'Last 30 days',
9
10
  last90DaysDisplayText: 'Last 90 days'