@codecademy/gamut 72.2.3-alpha.4a7ed2.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.
- package/dist/Alert/elements.d.ts +2 -2
- package/dist/Anchor/index.d.ts +9 -19
- package/dist/Anchor/index.js +6 -9
- package/dist/BarChart/BarRow/elements.d.ts +45 -47
- package/dist/BarChart/utils/hooks.d.ts +2 -2
- package/dist/BarChart/utils/hooks.js +1 -3
- package/dist/Box/GridBox.d.ts +0 -1
- package/dist/Box/GridBox.js +1 -1
- package/dist/Box/props.d.ts +1 -1
- package/dist/Breadcrumbs/index.d.ts +5 -5
- package/dist/Breadcrumbs/index.js +2 -2
- package/dist/Button/CTAButton.d.ts +2 -2
- package/dist/Button/FillButton.d.ts +4 -4
- package/dist/Button/IconButton.d.ts +4 -4
- package/dist/Button/StrokeButton.d.ts +4 -4
- package/dist/Button/TextButton.d.ts +4 -4
- package/dist/Button/shared/InlineIconButton.d.ts +2 -2
- package/dist/Button/shared/styles.d.ts +3 -3
- package/dist/Button/shared/types.d.ts +1 -1
- package/dist/ButtonBase/ButtonBase.d.ts +4 -9
- package/dist/ButtonBase/ButtonBase.js +4 -11
- package/dist/Card/elements.d.ts +103 -109
- package/dist/Card/styles.d.ts +8 -8
- package/dist/Coachmark/index.d.ts +1 -1
- package/dist/ConnectedForm/ConnectedForm.d.ts +1 -1
- package/dist/ConnectedForm/ConnectedFormGroup.js +2 -3
- package/dist/ConnectedForm/utils.d.ts +1 -1
- package/dist/ConnectedForm/utils.js +1 -1
- package/dist/DatePicker/DatePickerCalendar/Calendar/CalendarBody.js +1 -0
- package/dist/DatePicker/DatePickerInput/index.d.ts +1 -1
- package/dist/DatePicker/DatePickerInput/index.js +11 -12
- package/dist/DatePicker/utils/translations.d.ts +2 -0
- package/dist/DatePicker/utils/translations.js +1 -0
- package/dist/Disclosure/elements.d.ts +12 -18
- package/dist/FeatureShimmer/index.js +1 -1
- package/dist/Form/SelectDropdown/SelectDropdown.js +1 -1
- package/dist/Form/SelectDropdown/elements/containers.js +1 -1
- package/dist/Form/SelectDropdown/elements/controls.js +2 -2
- package/dist/Form/SelectDropdown/elements/multi-value.js +2 -2
- package/dist/Form/SelectDropdown/types/internal.d.ts +2 -2
- package/dist/Form/SelectDropdown/utils.js +1 -2
- package/dist/Form/elements/Form.d.ts +15 -15
- package/dist/Form/elements/FormGroup.d.ts +1 -1
- package/dist/Form/styles/Checkbox-styles.d.ts +1 -1
- package/dist/GridForm/GridFormButtons/index.d.ts +4 -4
- package/dist/List/ListProvider.d.ts +1 -1
- package/dist/List/elements.d.ts +42 -44
- package/dist/Menu/MenuItem.js +6 -10
- package/dist/Menu/elements.d.ts +2 -2
- package/dist/Modals/Dialog.js +2 -6
- package/dist/Modals/Modal.js +2 -5
- package/dist/Modals/elements.d.ts +1 -1
- package/dist/Pagination/AnimatedPaginationButtons.d.ts +29 -31
- package/dist/Pagination/EllipsisButton.d.ts +2 -2
- package/dist/Pagination/PaginationButton.d.ts +6 -6
- package/dist/Pagination/utils.d.ts +29 -31
- package/dist/Pagination/utils.js +11 -14
- package/dist/Popover/Popover.js +6 -6
- package/dist/Popover/types.d.ts +3 -4
- package/dist/PopoverContainer/PopoverContainer.js +9 -9
- package/dist/PopoverContainer/hooks.d.ts +4 -16
- package/dist/PopoverContainer/hooks.js +27 -50
- package/dist/PopoverContainer/types.d.ts +1 -2
- package/dist/Tabs/TabButton.d.ts +2 -2
- package/dist/Tabs/TabNavLink.d.ts +2 -2
- package/dist/Tag/elements.d.ts +8 -14
- package/dist/Tag/index.js +1 -1
- package/dist/Tip/InfoTip/InfoTipButton.d.ts +4 -4
- package/dist/Tip/PreviewTip/elements.d.ts +6 -12
- package/dist/Tip/__tests__/helpers.d.ts +1 -1
- package/dist/Tip/shared/FloatingTip.js +2 -2
- package/dist/Tip/shared/types.d.ts +2 -2
- package/dist/Tip/shared/utils.js +1 -1
- package/dist/Video/lib/VidstackPlayer.d.ts +1 -1
- package/dist/Video/lib/VidstackPlayer.js +2 -4
- package/dist/Video/styles/vds_base_theme.scss +101 -0
- package/dist/utils/react.js +2 -4
- package/package.json +10 -10
- package/dist/Video/styles.d.ts +0 -1
- package/dist/Video/styles.js +0 -10
- package/dist/Video/vidstack-vendor.css +0 -3
- package/dist/utils/nullish.d.ts +0 -10
- package/dist/utils/nullish.js +0 -11
package/dist/Card/styles.d.ts
CHANGED
|
@@ -9,14 +9,14 @@ export declare const patternFadeInOut: {
|
|
|
9
9
|
opacity: number;
|
|
10
10
|
transition: {
|
|
11
11
|
duration: number;
|
|
12
|
-
ease:
|
|
12
|
+
ease: string;
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
animate: {
|
|
16
16
|
opacity: number;
|
|
17
17
|
transition: {
|
|
18
18
|
duration: number;
|
|
19
|
-
ease:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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) =>
|
|
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:
|
|
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+
|
|
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 ? `${
|
|
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
|
|
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" | "
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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'
|