@codecademy/brand 5.8.1-alpha.eb4ad4236.0 → 5.9.0-alpha.10aaf123e.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/Accordion/index.d.ts +271 -0
- package/dist/Accordion/index.js +130 -0
- package/dist/AccordionAreaDeprecated/index.d.ts +20 -0
- package/dist/AccordionAreaDeprecated/index.js +60 -0
- package/dist/AccordionButtonDeprecated/ButtonDeprecated/index.d.ts +93 -0
- package/dist/AccordionButtonDeprecated/ButtonDeprecated/index.js +65 -0
- package/dist/AccordionButtonDeprecated/ButtonDeprecated/styles/index.module.scss +104 -0
- package/dist/AccordionButtonDeprecated/ButtonDeprecated/styles/mixins.scss +109 -0
- package/dist/AccordionButtonDeprecated/ButtonDeprecated/styles/variables.scss +54 -0
- package/dist/AccordionButtonDeprecated/ButtonDeprecatedBase/index.d.ts +43 -0
- package/dist/AccordionButtonDeprecated/ButtonDeprecatedBase/index.js +71 -0
- package/dist/AccordionButtonDeprecated/ButtonDeprecatedBase/styles.module.scss +74 -0
- package/dist/AccordionButtonDeprecated/index.d.ts +25 -0
- package/dist/AccordionButtonDeprecated/index.js +65 -0
- package/dist/AccordionButtonDeprecated/styles.module.scss +62 -0
- package/dist/AccordionDeprecated/index.d.ts +39 -0
- package/dist/AccordionDeprecated/index.js +39 -0
- package/dist/LayoutMenu/AccordionMenu.js +23 -49
- package/dist/LayoutMenuVariant/AccordionMenu.js +20 -60
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/stories/Molecules/Accordion.stories.js +122 -0
- package/dist/stories/Molecules/AccordionDeprecated.stories.js +19 -0
- package/dist/typings/react.d.ts +7 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/omitProps.d.ts +10 -0
- package/dist/utils/omitProps.js +18 -0
- package/package.json +5 -1
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { StyleProps } from '@codecademy/variance';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export type AccordionProps = {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
/**
|
|
6
|
+
* Whether the accordion starts expanded. Ignored when `expanded` is provided.
|
|
7
|
+
*/
|
|
8
|
+
initiallyExpanded?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Controlled expanded state. When provided, the accordion does not manage its own state.
|
|
11
|
+
*/
|
|
12
|
+
expanded?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Called when the trigger is clicked, with the next expanded value.
|
|
15
|
+
*/
|
|
16
|
+
onClick?: (nextExpanded: boolean) => void;
|
|
17
|
+
};
|
|
18
|
+
export declare const Accordion: React.FC<AccordionProps>;
|
|
19
|
+
declare const triggerSystemProps: import("@codecademy/variance/dist/types/config").Parser<import("@codecademy/variance/dist/types/config").Compose<[import("@codecademy/variance/dist/types/config").Parser<import("@codecademy/variance/dist/types/config").TransformerMap<{
|
|
20
|
+
readonly p: {
|
|
21
|
+
readonly property: "padding";
|
|
22
|
+
readonly scale: "spacing";
|
|
23
|
+
};
|
|
24
|
+
readonly px: {
|
|
25
|
+
readonly property: "padding";
|
|
26
|
+
readonly properties: {
|
|
27
|
+
readonly physical: readonly ["paddingLeft", "paddingRight"];
|
|
28
|
+
readonly logical: readonly ["paddingInlineStart", "paddingInlineEnd"];
|
|
29
|
+
};
|
|
30
|
+
readonly scale: "spacing";
|
|
31
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
32
|
+
};
|
|
33
|
+
readonly py: {
|
|
34
|
+
readonly property: "padding";
|
|
35
|
+
readonly properties: {
|
|
36
|
+
readonly physical: readonly ["paddingTop", "paddingBottom"];
|
|
37
|
+
readonly logical: readonly ["paddingBlockStart", "paddingBlockEnd"];
|
|
38
|
+
};
|
|
39
|
+
readonly scale: "spacing";
|
|
40
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
41
|
+
};
|
|
42
|
+
readonly pt: {
|
|
43
|
+
readonly property: {
|
|
44
|
+
readonly physical: "paddingTop";
|
|
45
|
+
readonly logical: "paddingBlockStart";
|
|
46
|
+
};
|
|
47
|
+
readonly scale: "spacing";
|
|
48
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
49
|
+
};
|
|
50
|
+
readonly pb: {
|
|
51
|
+
readonly property: {
|
|
52
|
+
readonly physical: "paddingBottom";
|
|
53
|
+
readonly logical: "paddingBlockEnd";
|
|
54
|
+
};
|
|
55
|
+
readonly scale: "spacing";
|
|
56
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
57
|
+
};
|
|
58
|
+
readonly pr: {
|
|
59
|
+
readonly property: {
|
|
60
|
+
readonly physical: "paddingRight";
|
|
61
|
+
readonly logical: "paddingInlineEnd";
|
|
62
|
+
};
|
|
63
|
+
readonly scale: "spacing";
|
|
64
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
65
|
+
};
|
|
66
|
+
readonly pl: {
|
|
67
|
+
readonly property: {
|
|
68
|
+
readonly physical: "paddingLeft";
|
|
69
|
+
readonly logical: "paddingInlineStart";
|
|
70
|
+
};
|
|
71
|
+
readonly scale: "spacing";
|
|
72
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
73
|
+
};
|
|
74
|
+
readonly m: {
|
|
75
|
+
readonly property: "margin";
|
|
76
|
+
readonly scale: "spacing";
|
|
77
|
+
};
|
|
78
|
+
readonly mx: {
|
|
79
|
+
readonly property: "margin";
|
|
80
|
+
readonly properties: {
|
|
81
|
+
readonly physical: readonly ["marginLeft", "marginRight"];
|
|
82
|
+
readonly logical: readonly ["marginInlineStart", "marginInlineEnd"];
|
|
83
|
+
};
|
|
84
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
85
|
+
readonly scale: "spacing";
|
|
86
|
+
};
|
|
87
|
+
readonly my: {
|
|
88
|
+
readonly property: "margin";
|
|
89
|
+
readonly properties: {
|
|
90
|
+
readonly physical: readonly ["marginTop", "marginBottom"];
|
|
91
|
+
readonly logical: readonly ["marginBlockStart", "marginBlockEnd"];
|
|
92
|
+
};
|
|
93
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
94
|
+
readonly scale: "spacing";
|
|
95
|
+
};
|
|
96
|
+
readonly mt: {
|
|
97
|
+
readonly property: {
|
|
98
|
+
readonly physical: "marginTop";
|
|
99
|
+
readonly logical: "marginBlockStart";
|
|
100
|
+
};
|
|
101
|
+
readonly scale: "spacing";
|
|
102
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
103
|
+
};
|
|
104
|
+
readonly mb: {
|
|
105
|
+
readonly property: {
|
|
106
|
+
readonly physical: "marginBottom";
|
|
107
|
+
readonly logical: "marginBlockEnd";
|
|
108
|
+
};
|
|
109
|
+
readonly scale: "spacing";
|
|
110
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
111
|
+
};
|
|
112
|
+
readonly mr: {
|
|
113
|
+
readonly property: {
|
|
114
|
+
readonly physical: "marginRight";
|
|
115
|
+
readonly logical: "marginInlineEnd";
|
|
116
|
+
};
|
|
117
|
+
readonly scale: "spacing";
|
|
118
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
119
|
+
};
|
|
120
|
+
readonly ml: {
|
|
121
|
+
readonly property: {
|
|
122
|
+
readonly physical: "marginLeft";
|
|
123
|
+
readonly logical: "marginInlineStart";
|
|
124
|
+
};
|
|
125
|
+
readonly scale: "spacing";
|
|
126
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
127
|
+
};
|
|
128
|
+
}>>, import("@codecademy/variance/dist/types/config").Parser<import("@codecademy/variance/dist/types/config").TransformerMap<{
|
|
129
|
+
readonly flexBasis: {
|
|
130
|
+
readonly property: "flexBasis";
|
|
131
|
+
};
|
|
132
|
+
readonly flexShrink: {
|
|
133
|
+
readonly property: "flexShrink";
|
|
134
|
+
};
|
|
135
|
+
readonly flexGrow: {
|
|
136
|
+
readonly property: "flexGrow";
|
|
137
|
+
};
|
|
138
|
+
readonly order: {
|
|
139
|
+
readonly property: "order";
|
|
140
|
+
};
|
|
141
|
+
readonly gridColumn: {
|
|
142
|
+
readonly property: "gridColumn";
|
|
143
|
+
};
|
|
144
|
+
readonly gridRow: {
|
|
145
|
+
readonly property: "gridRow";
|
|
146
|
+
};
|
|
147
|
+
readonly gridColumnStart: {
|
|
148
|
+
readonly property: "gridColumnStart";
|
|
149
|
+
};
|
|
150
|
+
readonly gridRowStart: {
|
|
151
|
+
readonly property: "gridRowStart";
|
|
152
|
+
};
|
|
153
|
+
readonly gridColumnEnd: {
|
|
154
|
+
readonly property: "gridColumnEnd";
|
|
155
|
+
};
|
|
156
|
+
readonly gridRowEnd: {
|
|
157
|
+
readonly property: "gridRowEnd";
|
|
158
|
+
};
|
|
159
|
+
readonly justifySelf: {
|
|
160
|
+
readonly property: "justifySelf";
|
|
161
|
+
};
|
|
162
|
+
readonly alignSelf: {
|
|
163
|
+
readonly property: "alignSelf";
|
|
164
|
+
};
|
|
165
|
+
readonly gridArea: {
|
|
166
|
+
readonly property: "gridArea";
|
|
167
|
+
};
|
|
168
|
+
readonly containerType: {
|
|
169
|
+
readonly property: "containerType";
|
|
170
|
+
};
|
|
171
|
+
readonly display: {
|
|
172
|
+
readonly property: "display";
|
|
173
|
+
};
|
|
174
|
+
readonly overflow: {
|
|
175
|
+
readonly property: "overflow";
|
|
176
|
+
};
|
|
177
|
+
readonly overflowX: {
|
|
178
|
+
readonly property: {
|
|
179
|
+
readonly physical: "overflowX";
|
|
180
|
+
readonly logical: "overflowInline";
|
|
181
|
+
};
|
|
182
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
183
|
+
};
|
|
184
|
+
readonly overflowY: {
|
|
185
|
+
readonly property: {
|
|
186
|
+
readonly physical: "overflowY";
|
|
187
|
+
readonly logical: "overflowBlock";
|
|
188
|
+
};
|
|
189
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
190
|
+
};
|
|
191
|
+
readonly dimensions: {
|
|
192
|
+
readonly property: "width";
|
|
193
|
+
readonly properties: {
|
|
194
|
+
readonly physical: readonly ["width", "height"];
|
|
195
|
+
readonly logical: readonly ["inlineSize", "blockSize"];
|
|
196
|
+
};
|
|
197
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
198
|
+
readonly transform: (value: string | number) => string | 0;
|
|
199
|
+
};
|
|
200
|
+
readonly width: {
|
|
201
|
+
readonly property: {
|
|
202
|
+
readonly physical: "width";
|
|
203
|
+
readonly logical: "inlineSize";
|
|
204
|
+
};
|
|
205
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
206
|
+
readonly transform: (value: string | number) => string | 0;
|
|
207
|
+
};
|
|
208
|
+
readonly minWidth: {
|
|
209
|
+
readonly property: {
|
|
210
|
+
readonly physical: "minWidth";
|
|
211
|
+
readonly logical: "minInlineSize";
|
|
212
|
+
};
|
|
213
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
214
|
+
readonly transform: (value: string | number) => string | 0;
|
|
215
|
+
};
|
|
216
|
+
readonly maxWidth: {
|
|
217
|
+
readonly property: {
|
|
218
|
+
readonly physical: "maxWidth";
|
|
219
|
+
readonly logical: "maxInlineSize";
|
|
220
|
+
};
|
|
221
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
222
|
+
readonly transform: (value: string | number) => string | 0;
|
|
223
|
+
};
|
|
224
|
+
readonly height: {
|
|
225
|
+
readonly property: {
|
|
226
|
+
readonly physical: "height";
|
|
227
|
+
readonly logical: "blockSize";
|
|
228
|
+
};
|
|
229
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
230
|
+
readonly transform: (value: string | number) => string | 0;
|
|
231
|
+
};
|
|
232
|
+
readonly minHeight: {
|
|
233
|
+
readonly property: {
|
|
234
|
+
readonly physical: "minHeight";
|
|
235
|
+
readonly logical: "minBlockSize";
|
|
236
|
+
};
|
|
237
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
238
|
+
readonly transform: (value: string | number) => string | 0;
|
|
239
|
+
};
|
|
240
|
+
readonly maxHeight: {
|
|
241
|
+
readonly property: {
|
|
242
|
+
readonly physical: "maxHeight";
|
|
243
|
+
readonly logical: "maxBlockSize";
|
|
244
|
+
};
|
|
245
|
+
readonly resolveProperty: (useLogicalProperties: boolean) => import("@codecademy/variance/dist/types/properties").PropertyMode;
|
|
246
|
+
readonly transform: (value: string | number) => string | 0;
|
|
247
|
+
};
|
|
248
|
+
readonly verticalAlign: {
|
|
249
|
+
readonly property: "verticalAlign";
|
|
250
|
+
};
|
|
251
|
+
readonly direction: {
|
|
252
|
+
readonly property: "direction";
|
|
253
|
+
};
|
|
254
|
+
}>>]>>;
|
|
255
|
+
export type AccordionTriggerProps = StyleProps<typeof triggerSystemProps> & {
|
|
256
|
+
children: React.ReactNode;
|
|
257
|
+
/**
|
|
258
|
+
* Optional additional click handler called alongside the internal toggle.
|
|
259
|
+
*/
|
|
260
|
+
onClick?: () => void;
|
|
261
|
+
};
|
|
262
|
+
export declare const AccordionTrigger: React.FC<AccordionTriggerProps>;
|
|
263
|
+
declare const BodyWrapper: import("@emotion/styled").StyledComponent<{
|
|
264
|
+
theme?: import("@emotion/react").Theme;
|
|
265
|
+
as?: React.ElementType;
|
|
266
|
+
} & import("@codecademy/gamut").BoxProps & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "content" | "translate" | "property" | "hidden" | "slot" | "style" | "title" | "suppressHydrationWarning" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "dir" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "draggable" | "enterKeyHint" | "nonce" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "exportparts" | "part" | keyof React.ClassAttributes<HTMLDivElement>> & {
|
|
267
|
+
theme?: import("@emotion/react").Theme;
|
|
268
|
+
}, {}, {}>;
|
|
269
|
+
export type AccordionBodyProps = React.ComponentProps<typeof BodyWrapper>;
|
|
270
|
+
export declare const AccordionBody: React.FC<AccordionBodyProps>;
|
|
271
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
3
|
+
import { Anchor, Box, Rotation } from '@codecademy/gamut';
|
|
4
|
+
import { MiniChevronDownIcon } from '@codecademy/gamut-icons';
|
|
5
|
+
import { css, system, timingValues } from '@codecademy/gamut-styles';
|
|
6
|
+
import { variance } from '@codecademy/variance';
|
|
7
|
+
import { motion } from 'framer-motion';
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
import { createContext, useContext, useState } from 'react';
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const AccordionContext = /*#__PURE__*/createContext(undefined);
|
|
12
|
+
const useAccordionContext = () => {
|
|
13
|
+
const ctx = useContext(AccordionContext);
|
|
14
|
+
if (!ctx) {
|
|
15
|
+
throw new Error('AccordionTrigger and AccordionBody must be used inside an Accordion');
|
|
16
|
+
}
|
|
17
|
+
return ctx;
|
|
18
|
+
};
|
|
19
|
+
export const Accordion = ({
|
|
20
|
+
children,
|
|
21
|
+
initiallyExpanded = false,
|
|
22
|
+
expanded: controlledExpanded,
|
|
23
|
+
onClick
|
|
24
|
+
}) => {
|
|
25
|
+
const isControlled = controlledExpanded !== undefined;
|
|
26
|
+
const [uncontrolledExpanded, setUncontrolledExpanded] = useState(initiallyExpanded);
|
|
27
|
+
const isExpanded = isControlled ? controlledExpanded : uncontrolledExpanded;
|
|
28
|
+
const toggle = () => {
|
|
29
|
+
const next = !isExpanded;
|
|
30
|
+
if (!isControlled) setUncontrolledExpanded(next);
|
|
31
|
+
onClick?.(next);
|
|
32
|
+
};
|
|
33
|
+
return /*#__PURE__*/_jsx(AccordionContext.Provider, {
|
|
34
|
+
value: {
|
|
35
|
+
isExpanded,
|
|
36
|
+
toggle
|
|
37
|
+
},
|
|
38
|
+
children: children
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const triggerSystemProps = variance.compose(system.space, system.layout);
|
|
42
|
+
const TriggerAnchor = /*#__PURE__*/_styled(Anchor, {
|
|
43
|
+
target: "e10h3y562",
|
|
44
|
+
label: "TriggerAnchor"
|
|
45
|
+
})(css({
|
|
46
|
+
display: 'inline-flex',
|
|
47
|
+
justifyContent: 'space-between',
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
fontWeight: 'bold',
|
|
50
|
+
'&:hover': {
|
|
51
|
+
color: 'inherit'
|
|
52
|
+
},
|
|
53
|
+
'&:focus-visible': {
|
|
54
|
+
color: 'inherit'
|
|
55
|
+
}
|
|
56
|
+
}), triggerSystemProps, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY2NvcmRpb24vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNFc0IiLCJmaWxlIjoiLi4vLi4vc3JjL0FjY29yZGlvbi9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNob3IsIEJveCwgUm90YXRpb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBNaW5pQ2hldnJvbkRvd25JY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCBzeXN0ZW0sIHRpbWluZ1ZhbHVlcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBTdHlsZVByb3BzLCB2YXJpYW5jZSB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IG1vdGlvbiB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbnR5cGUgQWNjb3JkaW9uQ29udGV4dFZhbHVlID0ge1xuICBpc0V4cGFuZGVkOiBib29sZWFuO1xuICB0b2dnbGU6ICgpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBBY2NvcmRpb25Db250ZXh0ID0gY3JlYXRlQ29udGV4dDxBY2NvcmRpb25Db250ZXh0VmFsdWUgfCB1bmRlZmluZWQ+KFxuICB1bmRlZmluZWRcbik7XG5cbmNvbnN0IHVzZUFjY29yZGlvbkNvbnRleHQgPSAoKTogQWNjb3JkaW9uQ29udGV4dFZhbHVlID0+IHtcbiAgY29uc3QgY3R4ID0gdXNlQ29udGV4dChBY2NvcmRpb25Db250ZXh0KTtcbiAgaWYgKCFjdHgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQWNjb3JkaW9uVHJpZ2dlciBhbmQgQWNjb3JkaW9uQm9keSBtdXN0IGJlIHVzZWQgaW5zaWRlIGFuIEFjY29yZGlvbidcbiAgICApO1xuICB9XG4gIHJldHVybiBjdHg7XG59O1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25Qcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjY29yZGlvbiBzdGFydHMgZXhwYW5kZWQuIElnbm9yZWQgd2hlbiBgZXhwYW5kZWRgIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgaW5pdGlhbGx5RXhwYW5kZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29udHJvbGxlZCBleHBhbmRlZCBzdGF0ZS4gV2hlbiBwcm92aWRlZCwgdGhlIGFjY29yZGlvbiBkb2VzIG5vdCBtYW5hZ2UgaXRzIG93biBzdGF0ZS5cbiAgICovXG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSB0cmlnZ2VyIGlzIGNsaWNrZWQsIHdpdGggdGhlIG5leHQgZXhwYW5kZWQgdmFsdWUuXG4gICAqL1xuICBvbkNsaWNrPzogKG5leHRFeHBhbmRlZDogYm9vbGVhbikgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb246IFJlYWN0LkZDPEFjY29yZGlvblByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBpbml0aWFsbHlFeHBhbmRlZCA9IGZhbHNlLFxuICBleHBhbmRlZDogY29udHJvbGxlZEV4cGFuZGVkLFxuICBvbkNsaWNrLFxufSkgPT4ge1xuICBjb25zdCBpc0NvbnRyb2xsZWQgPSBjb250cm9sbGVkRXhwYW5kZWQgIT09IHVuZGVmaW5lZDtcbiAgY29uc3QgW3VuY29udHJvbGxlZEV4cGFuZGVkLCBzZXRVbmNvbnRyb2xsZWRFeHBhbmRlZF0gPVxuICAgIHVzZVN0YXRlKGluaXRpYWxseUV4cGFuZGVkKTtcbiAgY29uc3QgaXNFeHBhbmRlZCA9IGlzQ29udHJvbGxlZCA/IGNvbnRyb2xsZWRFeHBhbmRlZCA6IHVuY29udHJvbGxlZEV4cGFuZGVkO1xuXG4gIGNvbnN0IHRvZ2dsZSA9ICgpID0+IHtcbiAgICBjb25zdCBuZXh0ID0gIWlzRXhwYW5kZWQ7XG4gICAgaWYgKCFpc0NvbnRyb2xsZWQpIHNldFVuY29udHJvbGxlZEV4cGFuZGVkKG5leHQpO1xuICAgIG9uQ2xpY2s/LihuZXh0KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxBY2NvcmRpb25Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXt7IGlzRXhwYW5kZWQsIHRvZ2dsZSB9fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FjY29yZGlvbkNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5jb25zdCB0cmlnZ2VyU3lzdGVtUHJvcHMgPSB2YXJpYW5jZS5jb21wb3NlKHN5c3RlbS5zcGFjZSwgc3lzdGVtLmxheW91dCk7XG5cbmNvbnN0IFRyaWdnZXJBbmNob3IgPSBzdHlsZWQoQW5jaG9yKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICcmOmhvdmVyJzogeyBjb2xvcjogJ2luaGVyaXQnIH0sXG4gICAgJyY6Zm9jdXMtdmlzaWJsZSc6IHsgY29sb3I6ICdpbmhlcml0JyB9LFxuICB9KSxcbiAgdHJpZ2dlclN5c3RlbVByb3BzXG4pO1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25UcmlnZ2VyUHJvcHMgPSBTdHlsZVByb3BzPHR5cGVvZiB0cmlnZ2VyU3lzdGVtUHJvcHM+ICYge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogT3B0aW9uYWwgYWRkaXRpb25hbCBjbGljayBoYW5kbGVyIGNhbGxlZCBhbG9uZ3NpZGUgdGhlIGludGVybmFsIHRvZ2dsZS5cbiAgICovXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IEFjY29yZGlvblRyaWdnZXI6IFJlYWN0LkZDPEFjY29yZGlvblRyaWdnZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgb25DbGljayxcbiAgLi4uc3lzdGVtUHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyBpc0V4cGFuZGVkLCB0b2dnbGUgfSA9IHVzZUFjY29yZGlvbkNvbnRleHQoKTtcblxuICByZXR1cm4gKFxuICAgIDxUcmlnZ2VyQW5jaG9yXG4gICAgICBhcmlhLWV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICBvbkNsaWNrPy4oKTtcbiAgICAgIH19XG4gICAgICB7Li4uc3lzdGVtUHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEJveCBtbD17MTJ9PlxuICAgICAgICA8Um90YXRpb24gYXJpYS1oaWRkZW4gcm90YXRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgICAgPE1pbmlDaGV2cm9uRG93bkljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgIDwvUm90YXRpb24+XG4gICAgICA8L0JveD5cbiAgICA8L1RyaWdnZXJBbmNob3I+XG4gICk7XG59O1xuXG5jb25zdCBCb2R5V3JhcHBlciA9IHN0eWxlZChCb3gpKGNzcyh7IHA6IDAgfSkpO1xuXG5jb25zdCBBbmltYXRlZEJvZHkgPSBzdHlsZWQobW90aW9uLmRpdikoeyBvdmVyZmxvdzogJ2hpZGRlbicgfSk7XG5cbmV4cG9ydCB0eXBlIEFjY29yZGlvbkJvZHlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBCb2R5V3JhcHBlcj47XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb25Cb2R5OiBSZWFjdC5GQzxBY2NvcmRpb25Cb2R5UHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnN5c3RlbVByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgaXNFeHBhbmRlZCB9ID0gdXNlQWNjb3JkaW9uQ29udGV4dCgpO1xuXG4gIHJldHVybiAoXG4gICAgPEFuaW1hdGVkQm9keVxuICAgICAgYW5pbWF0ZT17aXNFeHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ31cbiAgICAgIGluaXRpYWw9e2lzRXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCd9XG4gICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiB0aW1pbmdWYWx1ZXMubWVkaXVtIC8gMTAwMCwgZWFzZTogJ2Vhc2VJbk91dCcgfX1cbiAgICAgIHZhcmlhbnRzPXt7IGV4cGFuZGVkOiB7IGhlaWdodDogJ2F1dG8nIH0sIGNvbGxhcHNlZDogeyBoZWlnaHQ6IDAgfSB9fVxuICAgID5cbiAgICAgIDxCb2R5V3JhcHBlciB7Li4uc3lzdGVtUHJvcHN9PntjaGlsZHJlbn08L0JvZHlXcmFwcGVyPlxuICAgIDwvQW5pbWF0ZWRCb2R5PlxuICApO1xufTtcbiJdfQ== */");
|
|
57
|
+
export const AccordionTrigger = ({
|
|
58
|
+
children,
|
|
59
|
+
onClick,
|
|
60
|
+
...systemProps
|
|
61
|
+
}) => {
|
|
62
|
+
const {
|
|
63
|
+
isExpanded,
|
|
64
|
+
toggle
|
|
65
|
+
} = useAccordionContext();
|
|
66
|
+
return /*#__PURE__*/_jsxs(TriggerAnchor, {
|
|
67
|
+
"aria-expanded": isExpanded,
|
|
68
|
+
variant: "interface",
|
|
69
|
+
onClick: () => {
|
|
70
|
+
toggle();
|
|
71
|
+
onClick?.();
|
|
72
|
+
},
|
|
73
|
+
...systemProps,
|
|
74
|
+
children: [children, /*#__PURE__*/_jsx(Box, {
|
|
75
|
+
ml: 12,
|
|
76
|
+
children: /*#__PURE__*/_jsx(Rotation, {
|
|
77
|
+
"aria-hidden": true,
|
|
78
|
+
rotated: isExpanded,
|
|
79
|
+
children: /*#__PURE__*/_jsx(MiniChevronDownIcon, {
|
|
80
|
+
size: 16
|
|
81
|
+
})
|
|
82
|
+
})
|
|
83
|
+
})]
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
const BodyWrapper = /*#__PURE__*/_styled(Box, {
|
|
87
|
+
target: "e10h3y561",
|
|
88
|
+
label: "BodyWrapper"
|
|
89
|
+
})(css({
|
|
90
|
+
p: 0
|
|
91
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY2NvcmRpb24vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFIb0IiLCJmaWxlIjoiLi4vLi4vc3JjL0FjY29yZGlvbi9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNob3IsIEJveCwgUm90YXRpb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBNaW5pQ2hldnJvbkRvd25JY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCBzeXN0ZW0sIHRpbWluZ1ZhbHVlcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBTdHlsZVByb3BzLCB2YXJpYW5jZSB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IG1vdGlvbiB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbnR5cGUgQWNjb3JkaW9uQ29udGV4dFZhbHVlID0ge1xuICBpc0V4cGFuZGVkOiBib29sZWFuO1xuICB0b2dnbGU6ICgpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBBY2NvcmRpb25Db250ZXh0ID0gY3JlYXRlQ29udGV4dDxBY2NvcmRpb25Db250ZXh0VmFsdWUgfCB1bmRlZmluZWQ+KFxuICB1bmRlZmluZWRcbik7XG5cbmNvbnN0IHVzZUFjY29yZGlvbkNvbnRleHQgPSAoKTogQWNjb3JkaW9uQ29udGV4dFZhbHVlID0+IHtcbiAgY29uc3QgY3R4ID0gdXNlQ29udGV4dChBY2NvcmRpb25Db250ZXh0KTtcbiAgaWYgKCFjdHgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQWNjb3JkaW9uVHJpZ2dlciBhbmQgQWNjb3JkaW9uQm9keSBtdXN0IGJlIHVzZWQgaW5zaWRlIGFuIEFjY29yZGlvbidcbiAgICApO1xuICB9XG4gIHJldHVybiBjdHg7XG59O1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25Qcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjY29yZGlvbiBzdGFydHMgZXhwYW5kZWQuIElnbm9yZWQgd2hlbiBgZXhwYW5kZWRgIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgaW5pdGlhbGx5RXhwYW5kZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29udHJvbGxlZCBleHBhbmRlZCBzdGF0ZS4gV2hlbiBwcm92aWRlZCwgdGhlIGFjY29yZGlvbiBkb2VzIG5vdCBtYW5hZ2UgaXRzIG93biBzdGF0ZS5cbiAgICovXG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSB0cmlnZ2VyIGlzIGNsaWNrZWQsIHdpdGggdGhlIG5leHQgZXhwYW5kZWQgdmFsdWUuXG4gICAqL1xuICBvbkNsaWNrPzogKG5leHRFeHBhbmRlZDogYm9vbGVhbikgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb246IFJlYWN0LkZDPEFjY29yZGlvblByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBpbml0aWFsbHlFeHBhbmRlZCA9IGZhbHNlLFxuICBleHBhbmRlZDogY29udHJvbGxlZEV4cGFuZGVkLFxuICBvbkNsaWNrLFxufSkgPT4ge1xuICBjb25zdCBpc0NvbnRyb2xsZWQgPSBjb250cm9sbGVkRXhwYW5kZWQgIT09IHVuZGVmaW5lZDtcbiAgY29uc3QgW3VuY29udHJvbGxlZEV4cGFuZGVkLCBzZXRVbmNvbnRyb2xsZWRFeHBhbmRlZF0gPVxuICAgIHVzZVN0YXRlKGluaXRpYWxseUV4cGFuZGVkKTtcbiAgY29uc3QgaXNFeHBhbmRlZCA9IGlzQ29udHJvbGxlZCA/IGNvbnRyb2xsZWRFeHBhbmRlZCA6IHVuY29udHJvbGxlZEV4cGFuZGVkO1xuXG4gIGNvbnN0IHRvZ2dsZSA9ICgpID0+IHtcbiAgICBjb25zdCBuZXh0ID0gIWlzRXhwYW5kZWQ7XG4gICAgaWYgKCFpc0NvbnRyb2xsZWQpIHNldFVuY29udHJvbGxlZEV4cGFuZGVkKG5leHQpO1xuICAgIG9uQ2xpY2s/LihuZXh0KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxBY2NvcmRpb25Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXt7IGlzRXhwYW5kZWQsIHRvZ2dsZSB9fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FjY29yZGlvbkNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5jb25zdCB0cmlnZ2VyU3lzdGVtUHJvcHMgPSB2YXJpYW5jZS5jb21wb3NlKHN5c3RlbS5zcGFjZSwgc3lzdGVtLmxheW91dCk7XG5cbmNvbnN0IFRyaWdnZXJBbmNob3IgPSBzdHlsZWQoQW5jaG9yKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICcmOmhvdmVyJzogeyBjb2xvcjogJ2luaGVyaXQnIH0sXG4gICAgJyY6Zm9jdXMtdmlzaWJsZSc6IHsgY29sb3I6ICdpbmhlcml0JyB9LFxuICB9KSxcbiAgdHJpZ2dlclN5c3RlbVByb3BzXG4pO1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25UcmlnZ2VyUHJvcHMgPSBTdHlsZVByb3BzPHR5cGVvZiB0cmlnZ2VyU3lzdGVtUHJvcHM+ICYge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogT3B0aW9uYWwgYWRkaXRpb25hbCBjbGljayBoYW5kbGVyIGNhbGxlZCBhbG9uZ3NpZGUgdGhlIGludGVybmFsIHRvZ2dsZS5cbiAgICovXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IEFjY29yZGlvblRyaWdnZXI6IFJlYWN0LkZDPEFjY29yZGlvblRyaWdnZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgb25DbGljayxcbiAgLi4uc3lzdGVtUHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyBpc0V4cGFuZGVkLCB0b2dnbGUgfSA9IHVzZUFjY29yZGlvbkNvbnRleHQoKTtcblxuICByZXR1cm4gKFxuICAgIDxUcmlnZ2VyQW5jaG9yXG4gICAgICBhcmlhLWV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICBvbkNsaWNrPy4oKTtcbiAgICAgIH19XG4gICAgICB7Li4uc3lzdGVtUHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEJveCBtbD17MTJ9PlxuICAgICAgICA8Um90YXRpb24gYXJpYS1oaWRkZW4gcm90YXRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgICAgPE1pbmlDaGV2cm9uRG93bkljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgIDwvUm90YXRpb24+XG4gICAgICA8L0JveD5cbiAgICA8L1RyaWdnZXJBbmNob3I+XG4gICk7XG59O1xuXG5jb25zdCBCb2R5V3JhcHBlciA9IHN0eWxlZChCb3gpKGNzcyh7IHA6IDAgfSkpO1xuXG5jb25zdCBBbmltYXRlZEJvZHkgPSBzdHlsZWQobW90aW9uLmRpdikoeyBvdmVyZmxvdzogJ2hpZGRlbicgfSk7XG5cbmV4cG9ydCB0eXBlIEFjY29yZGlvbkJvZHlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBCb2R5V3JhcHBlcj47XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb25Cb2R5OiBSZWFjdC5GQzxBY2NvcmRpb25Cb2R5UHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnN5c3RlbVByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgaXNFeHBhbmRlZCB9ID0gdXNlQWNjb3JkaW9uQ29udGV4dCgpO1xuXG4gIHJldHVybiAoXG4gICAgPEFuaW1hdGVkQm9keVxuICAgICAgYW5pbWF0ZT17aXNFeHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ31cbiAgICAgIGluaXRpYWw9e2lzRXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCd9XG4gICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiB0aW1pbmdWYWx1ZXMubWVkaXVtIC8gMTAwMCwgZWFzZTogJ2Vhc2VJbk91dCcgfX1cbiAgICAgIHZhcmlhbnRzPXt7IGV4cGFuZGVkOiB7IGhlaWdodDogJ2F1dG8nIH0sIGNvbGxhcHNlZDogeyBoZWlnaHQ6IDAgfSB9fVxuICAgID5cbiAgICAgIDxCb2R5V3JhcHBlciB7Li4uc3lzdGVtUHJvcHN9PntjaGlsZHJlbn08L0JvZHlXcmFwcGVyPlxuICAgIDwvQW5pbWF0ZWRCb2R5PlxuICApO1xufTtcbiJdfQ== */");
|
|
92
|
+
const AnimatedBody = /*#__PURE__*/_styled(motion.div, {
|
|
93
|
+
target: "e10h3y560",
|
|
94
|
+
label: "AnimatedBody"
|
|
95
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
96
|
+
name: "d3v9zr",
|
|
97
|
+
styles: "overflow:hidden"
|
|
98
|
+
} : {
|
|
99
|
+
name: "d3v9zr",
|
|
100
|
+
styles: "overflow:hidden/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY2NvcmRpb24vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVIcUIiLCJmaWxlIjoiLi4vLi4vc3JjL0FjY29yZGlvbi9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNob3IsIEJveCwgUm90YXRpb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBNaW5pQ2hldnJvbkRvd25JY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCBzeXN0ZW0sIHRpbWluZ1ZhbHVlcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBTdHlsZVByb3BzLCB2YXJpYW5jZSB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IG1vdGlvbiB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbnR5cGUgQWNjb3JkaW9uQ29udGV4dFZhbHVlID0ge1xuICBpc0V4cGFuZGVkOiBib29sZWFuO1xuICB0b2dnbGU6ICgpID0+IHZvaWQ7XG59O1xuXG5jb25zdCBBY2NvcmRpb25Db250ZXh0ID0gY3JlYXRlQ29udGV4dDxBY2NvcmRpb25Db250ZXh0VmFsdWUgfCB1bmRlZmluZWQ+KFxuICB1bmRlZmluZWRcbik7XG5cbmNvbnN0IHVzZUFjY29yZGlvbkNvbnRleHQgPSAoKTogQWNjb3JkaW9uQ29udGV4dFZhbHVlID0+IHtcbiAgY29uc3QgY3R4ID0gdXNlQ29udGV4dChBY2NvcmRpb25Db250ZXh0KTtcbiAgaWYgKCFjdHgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQWNjb3JkaW9uVHJpZ2dlciBhbmQgQWNjb3JkaW9uQm9keSBtdXN0IGJlIHVzZWQgaW5zaWRlIGFuIEFjY29yZGlvbidcbiAgICApO1xuICB9XG4gIHJldHVybiBjdHg7XG59O1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25Qcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjY29yZGlvbiBzdGFydHMgZXhwYW5kZWQuIElnbm9yZWQgd2hlbiBgZXhwYW5kZWRgIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgaW5pdGlhbGx5RXhwYW5kZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogQ29udHJvbGxlZCBleHBhbmRlZCBzdGF0ZS4gV2hlbiBwcm92aWRlZCwgdGhlIGFjY29yZGlvbiBkb2VzIG5vdCBtYW5hZ2UgaXRzIG93biBzdGF0ZS5cbiAgICovXG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSB0cmlnZ2VyIGlzIGNsaWNrZWQsIHdpdGggdGhlIG5leHQgZXhwYW5kZWQgdmFsdWUuXG4gICAqL1xuICBvbkNsaWNrPzogKG5leHRFeHBhbmRlZDogYm9vbGVhbikgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb246IFJlYWN0LkZDPEFjY29yZGlvblByb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICBpbml0aWFsbHlFeHBhbmRlZCA9IGZhbHNlLFxuICBleHBhbmRlZDogY29udHJvbGxlZEV4cGFuZGVkLFxuICBvbkNsaWNrLFxufSkgPT4ge1xuICBjb25zdCBpc0NvbnRyb2xsZWQgPSBjb250cm9sbGVkRXhwYW5kZWQgIT09IHVuZGVmaW5lZDtcbiAgY29uc3QgW3VuY29udHJvbGxlZEV4cGFuZGVkLCBzZXRVbmNvbnRyb2xsZWRFeHBhbmRlZF0gPVxuICAgIHVzZVN0YXRlKGluaXRpYWxseUV4cGFuZGVkKTtcbiAgY29uc3QgaXNFeHBhbmRlZCA9IGlzQ29udHJvbGxlZCA/IGNvbnRyb2xsZWRFeHBhbmRlZCA6IHVuY29udHJvbGxlZEV4cGFuZGVkO1xuXG4gIGNvbnN0IHRvZ2dsZSA9ICgpID0+IHtcbiAgICBjb25zdCBuZXh0ID0gIWlzRXhwYW5kZWQ7XG4gICAgaWYgKCFpc0NvbnRyb2xsZWQpIHNldFVuY29udHJvbGxlZEV4cGFuZGVkKG5leHQpO1xuICAgIG9uQ2xpY2s/LihuZXh0KTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxBY2NvcmRpb25Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXt7IGlzRXhwYW5kZWQsIHRvZ2dsZSB9fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0FjY29yZGlvbkNvbnRleHQuUHJvdmlkZXI+XG4gICk7XG59O1xuXG5jb25zdCB0cmlnZ2VyU3lzdGVtUHJvcHMgPSB2YXJpYW5jZS5jb21wb3NlKHN5c3RlbS5zcGFjZSwgc3lzdGVtLmxheW91dCk7XG5cbmNvbnN0IFRyaWdnZXJBbmNob3IgPSBzdHlsZWQoQW5jaG9yKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnc3BhY2UtYmV0d2VlbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICcmOmhvdmVyJzogeyBjb2xvcjogJ2luaGVyaXQnIH0sXG4gICAgJyY6Zm9jdXMtdmlzaWJsZSc6IHsgY29sb3I6ICdpbmhlcml0JyB9LFxuICB9KSxcbiAgdHJpZ2dlclN5c3RlbVByb3BzXG4pO1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25UcmlnZ2VyUHJvcHMgPSBTdHlsZVByb3BzPHR5cGVvZiB0cmlnZ2VyU3lzdGVtUHJvcHM+ICYge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICAvKipcbiAgICogT3B0aW9uYWwgYWRkaXRpb25hbCBjbGljayBoYW5kbGVyIGNhbGxlZCBhbG9uZ3NpZGUgdGhlIGludGVybmFsIHRvZ2dsZS5cbiAgICovXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IEFjY29yZGlvblRyaWdnZXI6IFJlYWN0LkZDPEFjY29yZGlvblRyaWdnZXJQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgb25DbGljayxcbiAgLi4uc3lzdGVtUHJvcHNcbn0pID0+IHtcbiAgY29uc3QgeyBpc0V4cGFuZGVkLCB0b2dnbGUgfSA9IHVzZUFjY29yZGlvbkNvbnRleHQoKTtcblxuICByZXR1cm4gKFxuICAgIDxUcmlnZ2VyQW5jaG9yXG4gICAgICBhcmlhLWV4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICBvbkNsaWNrPy4oKTtcbiAgICAgIH19XG4gICAgICB7Li4uc3lzdGVtUHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAgPEJveCBtbD17MTJ9PlxuICAgICAgICA8Um90YXRpb24gYXJpYS1oaWRkZW4gcm90YXRlZD17aXNFeHBhbmRlZH0+XG4gICAgICAgICAgPE1pbmlDaGV2cm9uRG93bkljb24gc2l6ZT17MTZ9IC8+XG4gICAgICAgIDwvUm90YXRpb24+XG4gICAgICA8L0JveD5cbiAgICA8L1RyaWdnZXJBbmNob3I+XG4gICk7XG59O1xuXG5jb25zdCBCb2R5V3JhcHBlciA9IHN0eWxlZChCb3gpKGNzcyh7IHA6IDAgfSkpO1xuXG5jb25zdCBBbmltYXRlZEJvZHkgPSBzdHlsZWQobW90aW9uLmRpdikoeyBvdmVyZmxvdzogJ2hpZGRlbicgfSk7XG5cbmV4cG9ydCB0eXBlIEFjY29yZGlvbkJvZHlQcm9wcyA9IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBCb2R5V3JhcHBlcj47XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb25Cb2R5OiBSZWFjdC5GQzxBY2NvcmRpb25Cb2R5UHJvcHM+ID0gKHtcbiAgY2hpbGRyZW4sXG4gIC4uLnN5c3RlbVByb3BzXG59KSA9PiB7XG4gIGNvbnN0IHsgaXNFeHBhbmRlZCB9ID0gdXNlQWNjb3JkaW9uQ29udGV4dCgpO1xuXG4gIHJldHVybiAoXG4gICAgPEFuaW1hdGVkQm9keVxuICAgICAgYW5pbWF0ZT17aXNFeHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnY29sbGFwc2VkJ31cbiAgICAgIGluaXRpYWw9e2lzRXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCd9XG4gICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiB0aW1pbmdWYWx1ZXMubWVkaXVtIC8gMTAwMCwgZWFzZTogJ2Vhc2VJbk91dCcgfX1cbiAgICAgIHZhcmlhbnRzPXt7IGV4cGFuZGVkOiB7IGhlaWdodDogJ2F1dG8nIH0sIGNvbGxhcHNlZDogeyBoZWlnaHQ6IDAgfSB9fVxuICAgID5cbiAgICAgIDxCb2R5V3JhcHBlciB7Li4uc3lzdGVtUHJvcHN9PntjaGlsZHJlbn08L0JvZHlXcmFwcGVyPlxuICAgIDwvQW5pbWF0ZWRCb2R5PlxuICApO1xufTtcbiJdfQ== */",
|
|
101
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
102
|
+
});
|
|
103
|
+
export const AccordionBody = ({
|
|
104
|
+
children,
|
|
105
|
+
...systemProps
|
|
106
|
+
}) => {
|
|
107
|
+
const {
|
|
108
|
+
isExpanded
|
|
109
|
+
} = useAccordionContext();
|
|
110
|
+
return /*#__PURE__*/_jsx(AnimatedBody, {
|
|
111
|
+
animate: isExpanded ? 'expanded' : 'collapsed',
|
|
112
|
+
initial: isExpanded ? 'expanded' : 'collapsed',
|
|
113
|
+
transition: {
|
|
114
|
+
duration: timingValues.medium / 1000,
|
|
115
|
+
ease: 'easeInOut'
|
|
116
|
+
},
|
|
117
|
+
variants: {
|
|
118
|
+
expanded: {
|
|
119
|
+
height: 'auto'
|
|
120
|
+
},
|
|
121
|
+
collapsed: {
|
|
122
|
+
height: 0
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
children: /*#__PURE__*/_jsx(BodyWrapper, {
|
|
126
|
+
...systemProps,
|
|
127
|
+
children: children
|
|
128
|
+
})
|
|
129
|
+
});
|
|
130
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export type AccordionAreaDeprecatedProps = {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
/**
|
|
6
|
+
* Whether the accordion is visually expanded to show its contents.
|
|
7
|
+
*/
|
|
8
|
+
expanded?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Contents of the clickable header button.
|
|
11
|
+
*/
|
|
12
|
+
top: React.ReactNode;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated
|
|
16
|
+
* This component is in the old visual identity and will be updated soon.
|
|
17
|
+
*
|
|
18
|
+
* Check the [Gamut Board](https://www.notion.so/codecademy/Gamut-Status-Timeline-dd3c135d3848464ea6eb1b48e68fbb1d) for component status
|
|
19
|
+
*/
|
|
20
|
+
export declare const AccordionAreaDeprecated: React.FC<AccordionAreaDeprecatedProps>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
3
|
+
import { motion } from 'framer-motion';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { useIsomorphicLayoutEffect } from 'react-use';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const transitionDuration = 0.2;
|
|
9
|
+
const variants = {
|
|
10
|
+
expanded: {
|
|
11
|
+
height: 'auto'
|
|
12
|
+
},
|
|
13
|
+
folded: {
|
|
14
|
+
height: '0'
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated
|
|
20
|
+
* This component is in the old visual identity and will be updated soon.
|
|
21
|
+
*
|
|
22
|
+
* Check the [Gamut Board](https://www.notion.so/codecademy/Gamut-Status-Timeline-dd3c135d3848464ea6eb1b48e68fbb1d) for component status
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
export const AccordionAreaDeprecated = ({
|
|
26
|
+
children,
|
|
27
|
+
className,
|
|
28
|
+
expanded,
|
|
29
|
+
top
|
|
30
|
+
}) => {
|
|
31
|
+
const [delayExpanded, setDelayExpanded] = useState(expanded);
|
|
32
|
+
useIsomorphicLayoutEffect(() => {
|
|
33
|
+
const handle = setTimeout(() => setDelayExpanded(expanded), transitionDuration * 1000);
|
|
34
|
+
return () => clearTimeout(handle);
|
|
35
|
+
}, [expanded]);
|
|
36
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
37
|
+
className: className,
|
|
38
|
+
children: [top, /*#__PURE__*/_jsx(StyledAccordionBody, {
|
|
39
|
+
animate: expanded ? 'expanded' : 'folded',
|
|
40
|
+
initial: expanded ? 'expanded' : 'folded',
|
|
41
|
+
transition: {
|
|
42
|
+
duration: 0.2,
|
|
43
|
+
ease: 'easeInOut'
|
|
44
|
+
},
|
|
45
|
+
variants: variants,
|
|
46
|
+
children: (expanded || delayExpanded) && children
|
|
47
|
+
})]
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const StyledAccordionBody = /*#__PURE__*/_styled(motion.div, {
|
|
51
|
+
target: "e1rvyab20",
|
|
52
|
+
label: "StyledAccordionBody"
|
|
53
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
54
|
+
name: "d3v9zr",
|
|
55
|
+
styles: "overflow:hidden"
|
|
56
|
+
} : {
|
|
57
|
+
name: "d3v9zr",
|
|
58
|
+
styles: "overflow:hidden/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY2NvcmRpb25BcmVhRGVwcmVjYXRlZC9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUU4QyIsImZpbGUiOiIuLi8uLi9zcmMvQWNjb3JkaW9uQXJlYURlcHJlY2F0ZWQvaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnZnJhbWVyLW1vdGlvbic7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgfSBmcm9tICdyZWFjdC11c2UnO1xuXG5leHBvcnQgdHlwZSBBY2NvcmRpb25BcmVhRGVwcmVjYXRlZFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuXG4gIGNsYXNzTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWNjb3JkaW9uIGlzIHZpc3VhbGx5IGV4cGFuZGVkIHRvIHNob3cgaXRzIGNvbnRlbnRzLlxuICAgKi9cbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb250ZW50cyBvZiB0aGUgY2xpY2thYmxlIGhlYWRlciBidXR0b24uXG4gICAqL1xuICB0b3A6IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IHRyYW5zaXRpb25EdXJhdGlvbiA9IDAuMjtcblxuY29uc3QgdmFyaWFudHMgPSB7XG4gIGV4cGFuZGVkOiB7IGhlaWdodDogJ2F1dG8nIH0sXG4gIGZvbGRlZDogeyBoZWlnaHQ6ICcwJyB9LFxufTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVGhpcyBjb21wb25lbnQgaXMgaW4gdGhlIG9sZCB2aXN1YWwgaWRlbnRpdHkgYW5kIHdpbGwgYmUgdXBkYXRlZCBzb29uLlxuICpcbiAqIENoZWNrIHRoZSBbR2FtdXQgQm9hcmRdKGh0dHBzOi8vd3d3Lm5vdGlvbi5zby9jb2RlY2FkZW15L0dhbXV0LVN0YXR1cy1UaW1lbGluZS1kZDNjMTM1ZDM4NDg0NjRlYTZlYjFiNDhlNjhmYmIxZCkgZm9yIGNvbXBvbmVudCBzdGF0dXNcbiAqL1xuXG5leHBvcnQgY29uc3QgQWNjb3JkaW9uQXJlYURlcHJlY2F0ZWQ6IFJlYWN0LkZDPFxuICBBY2NvcmRpb25BcmVhRGVwcmVjYXRlZFByb3BzXG4+ID0gKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSwgZXhwYW5kZWQsIHRvcCB9KSA9PiB7XG4gIGNvbnN0IFtkZWxheUV4cGFuZGVkLCBzZXREZWxheUV4cGFuZGVkXSA9IHVzZVN0YXRlKGV4cGFuZGVkKTtcblxuICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGUgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gc2V0RGVsYXlFeHBhbmRlZChleHBhbmRlZCksXG4gICAgICB0cmFuc2l0aW9uRHVyYXRpb24gKiAxMDAwXG4gICAgKTtcblxuICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQoaGFuZGxlKTtcbiAgfSwgW2V4cGFuZGVkXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIHt0b3B9XG4gICAgICA8U3R5bGVkQWNjb3JkaW9uQm9keVxuICAgICAgICBhbmltYXRlPXtleHBhbmRlZCA/ICdleHBhbmRlZCcgOiAnZm9sZGVkJ31cbiAgICAgICAgaW5pdGlhbD17ZXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJ2ZvbGRlZCd9XG4gICAgICAgIHRyYW5zaXRpb249e3sgZHVyYXRpb246IDAuMiwgZWFzZTogJ2Vhc2VJbk91dCcgfX1cbiAgICAgICAgdmFyaWFudHM9e3ZhcmlhbnRzfVxuICAgICAgPlxuICAgICAgICB7KGV4cGFuZGVkIHx8IGRlbGF5RXhwYW5kZWQpICYmIGNoaWxkcmVufVxuICAgICAgPC9TdHlsZWRBY2NvcmRpb25Cb2R5PlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgU3R5bGVkQWNjb3JkaW9uQm9keSA9IHN0eWxlZChtb3Rpb24uZGl2KWBcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbmA7XG4iXX0= */",
|
|
59
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
60
|
+
});
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { ButtonDeprecatedBaseProps } from '../ButtonDeprecatedBase';
|
|
4
|
+
export declare const buttonPresetThemes: {
|
|
5
|
+
readonly secondary: "mint";
|
|
6
|
+
readonly platform: "greyblue";
|
|
7
|
+
readonly lantern: "darkmint";
|
|
8
|
+
readonly royalblue: "brand-purple";
|
|
9
|
+
};
|
|
10
|
+
declare const themes: readonly ["hyper", "navy", "red", "white", "brand-red", "brand-yellow", "brand-purple", "brand-dark-blue", "brand-blue", "mint", "darkmint", "grey", "greyblue"];
|
|
11
|
+
export type ButtonDeprecatedThemes = keyof typeof buttonPresetThemes | (typeof themes)[number];
|
|
12
|
+
export type ButtonDeprecatedProps = ButtonDeprecatedBaseProps & {
|
|
13
|
+
/**
|
|
14
|
+
* Whether button should behave like a block element or inline.
|
|
15
|
+
*/
|
|
16
|
+
block?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Capitalize the text of the button.
|
|
19
|
+
*/
|
|
20
|
+
caps?: boolean;
|
|
21
|
+
children: ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Disables the button and adds visual indicators to show it is not interactive.
|
|
24
|
+
*/
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Variant that displays the button as flat.
|
|
28
|
+
*/
|
|
29
|
+
flat?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Adds a pulsing animation to the button
|
|
32
|
+
*/
|
|
33
|
+
go?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Changes the button to a link with no visual indication
|
|
36
|
+
*/
|
|
37
|
+
href?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Link relationship property to be used with `href`
|
|
40
|
+
*/
|
|
41
|
+
rel?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Link target property to be used with `href`
|
|
44
|
+
*/
|
|
45
|
+
target?: string;
|
|
46
|
+
id?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Variant that displays the button as an inline link element, but maintains its semantic meaning as a button.
|
|
49
|
+
*/
|
|
50
|
+
link?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Variant the displays the button as a button that is outlined instead of solid.
|
|
53
|
+
*/
|
|
54
|
+
outline?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Variant that rounds the corners of the button
|
|
57
|
+
*/
|
|
58
|
+
round?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Variant that determines the size of the button
|
|
61
|
+
*/
|
|
62
|
+
size?: 'small' | 'large';
|
|
63
|
+
/**
|
|
64
|
+
* Variant that displays the button as a square
|
|
65
|
+
*/
|
|
66
|
+
square?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Variant that controls the background and text color of the button
|
|
69
|
+
* */
|
|
70
|
+
theme?: ButtonDeprecatedThemes;
|
|
71
|
+
type?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Variant that underlines the text of the button.
|
|
74
|
+
*/
|
|
75
|
+
underline?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Determines whether button dimensions should be determined by the content
|
|
78
|
+
*/
|
|
79
|
+
fitText?: boolean;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* @deprecated
|
|
83
|
+
* This component is deprecated and is no longer supported.
|
|
84
|
+
*
|
|
85
|
+
* See [FillButon](https://gamut.codecademy.com/storybook/?path=/docs/atoms-button--fill-button#fill-button)
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* import { FillButton } fom '@codecademy/gamut';
|
|
89
|
+
*
|
|
90
|
+
* <FillButton variant="primary" />
|
|
91
|
+
*/
|
|
92
|
+
export declare const ButtonDeprecated: React.FC<ButtonDeprecatedProps>;
|
|
93
|
+
export {};
|