@oaknational/oak-components 0.0.37 → 0.1.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/types.d.ts DELETED
@@ -1,1387 +0,0 @@
1
- import * as styled_components from 'styled-components';
2
- import { CSSProperties as CSSProperties$1 } from 'styled-components';
3
- import * as React$1 from 'react';
4
- import React__default, { CSSProperties, MouseEventHandler, ElementType, ComponentPropsWithoutRef, FC, ComponentPropsWithRef, ReactNode, FocusEvent, DetailedHTMLProps, InputHTMLAttributes, ChangeEventHandler, ReactElement, ComponentProps } from 'react';
5
- import * as Image from 'next/image';
6
- import Image__default, { ImageProps as ImageProps$1 } from 'next/image';
7
- import * as next_dist_shared_lib_get_img_props from 'next/dist/shared/lib/get-img-props';
8
- import * as _cloudinary_util_url_loader_dist_schema_UX7RRFIR from '@cloudinary-util/url-loader/dist/schema-UX7RRFIR';
9
- import { CldImage } from 'next-cloudinary';
10
- import { UrlObject } from 'url';
11
-
12
- declare const oakColorTokens: {
13
- white: string;
14
- grey10: string;
15
- grey20: string;
16
- grey30: string;
17
- grey40: string;
18
- grey50: string;
19
- grey60: string;
20
- grey70: string;
21
- black: string;
22
- oakGreen: string;
23
- mint: string;
24
- mint30: string;
25
- mint50: string;
26
- mint110: string;
27
- aqua: string;
28
- aqua30: string;
29
- aqua50: string;
30
- aqua110: string;
31
- lavender: string;
32
- lavender30: string;
33
- lavender50: string;
34
- lavender110: string;
35
- pink: string;
36
- pink30: string;
37
- pink50: string;
38
- pink110: string;
39
- lemon: string;
40
- lemon30: string;
41
- lemon50: string;
42
- lemon110: string;
43
- amber: string;
44
- amber30: string;
45
- amber50: string;
46
- red: string;
47
- red30: string;
48
- red50: string;
49
- navy: string;
50
- navy110: string;
51
- navy120: string;
52
- blue: string;
53
- magenta: string;
54
- purple: string;
55
- teal: string;
56
- transparent: string;
57
- };
58
- type OakColorToken = keyof typeof oakColorTokens;
59
- declare const oakUiRoleTokens: readonly ["text-primary", "text-subdued", "text-error", "text-disabled", "text-link-active", "text-link-hover", "text-link-visited", "text-link-pressed", "text-inverted", "text-success", "text-warning", "bg-primary", "bg-neutral", "bg-neutral-stronger", "bg-btn-primary", "bg-btn-primary-hover", "bg-btn-primary-disabled", "bg-btn-secondary", "bg-btn-secondary-hover", "bg-btn-secondary-disabled", "bg-icon", "bg-icon-hover", "bg-decorative1-main", "bg-decorative1-subdued", "bg-decorative1-very-subdued", "bg-decorative2-main", "bg-decorative2-subdued", "bg-decorative2-very-subdued", "bg-decorative3-main", "bg-decorative3-subdued", "bg-decorative3-very-subdued", "bg-decorative4-main", "bg-decorative4-subdued", "bg-decorative4-very-subdued", "bg-decorative5-main", "bg-decorative5-subdued", "bg-decorative5-very-subdued", "bg-correct", "bg-incorrect", "icon-main", "icon-inverted", "icon-disabled", "icon-brand", "icon-success", "icon-error", "icon-warning", "border-primary", "border-inverted", "border-neutral", "border-brand", "border-success", "border-error", "border-warning", "border-decorative1", "border-decorative1-stronger", "border-decorative2", "border-decorative2-stronger", "border-decorative3", "border-decorative3-stronger", "border-decorative4", "border-decorative4-stronger", "border-decorative5", "border-decorative5-stronger", "border-decorative6", "border-decorative6-stronger", "transparent"];
60
- type OakUiRoleToken = (typeof oakUiRoleTokens)[number];
61
- type UiRoleMap = Record<OakUiRoleToken, OakColorToken | null | undefined>;
62
- type OakCombinedColorToken = OakColorToken | OakUiRoleToken;
63
-
64
- type OakTheme = {
65
- name: string;
66
- uiColors: UiRoleMap;
67
- };
68
-
69
- type ResponsiveValues<Value> = (Value | null) | (Value | null)[];
70
-
71
- declare const oakAllSpacingTokens: {
72
- "all-spacing-0": number;
73
- "all-spacing-1": number;
74
- "all-spacing-2": number;
75
- "all-spacing-3": number;
76
- "all-spacing-4": number;
77
- "all-spacing-5": number;
78
- "all-spacing-6": number;
79
- "all-spacing-7": number;
80
- "all-spacing-8": number;
81
- "all-spacing-9": number;
82
- "all-spacing-10": number;
83
- "all-spacing-11": number;
84
- "all-spacing-12": number;
85
- "all-spacing-13": number;
86
- "all-spacing-14": number;
87
- "all-spacing-15": number;
88
- "all-spacing-16": number;
89
- "all-spacing-17": number;
90
- "all-spacing-18": number;
91
- "all-spacing-19": number;
92
- "all-spacing-20": number;
93
- "all-spacing-21": number;
94
- "all-spacing-22": number;
95
- "all-spacing-23": number;
96
- "all-spacing-24": number;
97
- };
98
- type OakAllSpacingToken = keyof typeof oakAllSpacingTokens;
99
- declare const oakInnerPaddingTokens: {
100
- "inner-padding-none": string;
101
- "inner-padding-ssx": string;
102
- "inner-padding-xs": string;
103
- "inner-padding-s": string;
104
- "inner-padding-m": string;
105
- "inner-padding-l": string;
106
- "inner-padding-xl": string;
107
- };
108
- type OakInnerPaddingToken = keyof typeof oakInnerPaddingTokens;
109
- declare const oakSpaceBetweenTokens: {
110
- "space-between-none": string;
111
- "space-between-sssx": string;
112
- "space-between-ssx": string;
113
- "space-between-xs": string;
114
- "space-between-s": string;
115
- "space-between-m": string;
116
- "space-between-m2": string;
117
- "space-between-l": string;
118
- "space-between-xl": string;
119
- "space-between-xxl": string;
120
- "space-between-xxxl": string;
121
- };
122
- type OakSpaceBetweenToken = keyof typeof oakSpaceBetweenTokens;
123
- type AdditionalSpacingTypes = "100%" | 0 | "100vh" | "100vw" | "auto" | "fit-content" | "max-content" | "min-content" | "inherit" | "initial" | "unset";
124
- type OakCombinedSpacingToken = OakAllSpacingToken | OakInnerPaddingToken | OakSpaceBetweenToken | AdditionalSpacingTypes;
125
-
126
- type PaddingValues = ResponsiveValues<OakInnerPaddingToken | null | undefined>;
127
- type PaddingStyleProps = {
128
- $pa?: PaddingValues;
129
- $ph?: PaddingValues;
130
- $pv?: PaddingValues;
131
- $pl?: PaddingValues;
132
- $pr?: PaddingValues;
133
- $pt?: PaddingValues;
134
- $pb?: PaddingValues;
135
- };
136
- type MarginValue = "auto" | OakSpaceBetweenToken | null | undefined;
137
- type MarginValues = ResponsiveValues<MarginValue>;
138
- type MarginStyleProps = {
139
- $ma?: MarginValues;
140
- $mh?: MarginValues;
141
- $mv?: MarginValues;
142
- $ml?: MarginValues;
143
- $mr?: MarginValues;
144
- $mt?: MarginValues;
145
- $mb?: MarginValues;
146
- };
147
- type SpacingStyleProps = PaddingStyleProps & MarginStyleProps;
148
-
149
- type ColorToken = ResponsiveValues<OakCombinedColorToken | null>;
150
- type ColorStyleProps = {
151
- $color?: ColorToken;
152
- $background?: ColorToken;
153
- };
154
-
155
- type PositionSpacing = OakAllSpacingToken | OakSpaceBetweenToken | null | undefined;
156
- type PositionStyleProps = {
157
- $position?: ResponsiveValues<CSSProperties["position"]>;
158
- $top?: ResponsiveValues<PositionSpacing>;
159
- $right?: ResponsiveValues<PositionSpacing>;
160
- $bottom?: ResponsiveValues<PositionSpacing>;
161
- $left?: ResponsiveValues<PositionSpacing>;
162
- $inset?: ResponsiveValues<PositionSpacing>;
163
- $overflow?: ResponsiveValues<CSSProperties["overflow"]>;
164
- $overflowX?: ResponsiveValues<CSSProperties["overflowX"]>;
165
- $overflowY?: ResponsiveValues<CSSProperties["overflowY"]>;
166
- $objectFit?: ResponsiveValues<CSSProperties["objectFit"]>;
167
- $pointerEvents?: ResponsiveValues<CSSProperties["pointerEvents"]>;
168
- $visibility?: ResponsiveValues<CSSProperties["visibility"]>;
169
- };
170
-
171
- type SizeValues = ResponsiveValues<OakCombinedSpacingToken | null | undefined>;
172
- type SizeStyleProps = {
173
- $width?: SizeValues;
174
- $minWidth?: SizeValues;
175
- $maxWidth?: SizeValues;
176
- $height?: SizeValues;
177
- $minHeight?: SizeValues;
178
- $maxHeight?: SizeValues;
179
- };
180
-
181
- declare const oakBorderWidthTokens: {
182
- "border-solid-none": number;
183
- "border-solid-s": number;
184
- "border-solid-m": number;
185
- "border-solid-l": number;
186
- "border-solid-xl": number;
187
- };
188
- declare const oakBorderRadiusTokens: {
189
- "border-radius-square": number;
190
- "border-radius-xs": number;
191
- "border-radius-s": number;
192
- "border-radius-m": number;
193
- "border-radius-m2": number;
194
- "border-radius-l": number;
195
- "border-radius-xl": number;
196
- "border-radius-circle": number;
197
- };
198
- type OakBorderRadiusToken = keyof typeof oakBorderRadiusTokens;
199
- type OakBorderWidthToken = keyof typeof oakBorderWidthTokens;
200
-
201
- type BorderWidth = ResponsiveValues<OakBorderWidthToken>;
202
- type _BorderStyleProps = ResponsiveValues<CSSProperties$1["borderStyle"]>;
203
- type BorderColorProps = ResponsiveValues<OakUiRoleToken | OakColorToken>;
204
- type BorderRadiusProps = ResponsiveValues<OakBorderRadiusToken>;
205
- type BorderStyleProps = {
206
- $ba?: BorderWidth;
207
- $bt?: BorderWidth;
208
- $br?: BorderWidth;
209
- $bb?: BorderWidth;
210
- $bl?: BorderWidth;
211
- $bh?: BorderWidth;
212
- $bv?: BorderWidth;
213
- $borderStyle?: _BorderStyleProps;
214
- $borderColor?: BorderColorProps;
215
- $borderRadius?: BorderRadiusProps;
216
- $btlr?: BorderRadiusProps;
217
- $btrr?: BorderRadiusProps;
218
- $bblr?: BorderRadiusProps;
219
- $bbrr?: BorderRadiusProps;
220
- $btr?: BorderRadiusProps;
221
- $bbr?: BorderRadiusProps;
222
- };
223
-
224
- type DisplayStyleProps = {
225
- $display?: ResponsiveValues<CSSProperties["display"]>;
226
- };
227
-
228
- declare const oakDropShadowTokens: {
229
- "drop-shadow-standard": string;
230
- "drop-shadow-lemon": string;
231
- "drop-shadow-wide-lemon": string;
232
- "drop-shadow-centered-lemon": string;
233
- "drop-shadow-grey": string;
234
- "drop-shadow-centered-grey": string;
235
- };
236
- type OakDropShadowToken = keyof typeof oakDropShadowTokens;
237
-
238
- type DropShadowStyleProps = {
239
- $dropShadow?: ResponsiveValues<OakDropShadowToken>;
240
- };
241
-
242
- declare const oakOpacityTokens: {
243
- transparent: number;
244
- "semi-transparent": number;
245
- "semi-opaque": number;
246
- opaque: number;
247
- };
248
- type OakOpacityToken = keyof typeof oakOpacityTokens;
249
-
250
- type OpacityStyleProps = {
251
- $opacity?: ResponsiveValues<OakOpacityToken>;
252
- };
253
-
254
- type TransformStyleProps = {
255
- $transform?: ResponsiveValues<CSSProperties$1["transform"] | null>;
256
- $transformOrigin?: ResponsiveValues<CSSProperties$1["transformOrigin"] | null>;
257
- };
258
-
259
- declare const oakTransitionTokens: {
260
- "standard-ease": string;
261
- "standard-transform": string;
262
- };
263
- type OakTransitionToken = keyof typeof oakTransitionTokens;
264
-
265
- type Transition = OakTransitionToken;
266
- type TransitionStyleProps = {
267
- $transition?: ResponsiveValues<Transition>;
268
- };
269
-
270
- declare const oakFontSizeTokens: {
271
- "font-size-1": number;
272
- "font-size-2": number;
273
- "font-size-3": number;
274
- "font-size-4": number;
275
- "font-size-5": number;
276
- "font-size-6": number;
277
- "font-size-7": number;
278
- "font-size-8": number;
279
- "font-size-9": number;
280
- "font-size-10": number;
281
- };
282
- type OakFontSizeToken = keyof typeof oakFontSizeTokens;
283
- declare const fontWeights: readonly [300, 400, 600, 700];
284
- type FontWeight = (typeof fontWeights)[number];
285
- declare const lineHeights: readonly [16, 20, 24, 28, 32, 40, 48, 56, 64];
286
- type LineHeight = (typeof lineHeights)[number];
287
- declare const letterSpacings: readonly ["0.0115rem", "-0.005rem"];
288
- type LetterSpacing = (typeof letterSpacings)[number];
289
- type FontParameters = readonly [
290
- OakFontSizeToken,
291
- LineHeight,
292
- FontWeight,
293
- LetterSpacing
294
- ];
295
- declare const oakFontTokens: Record<string, FontParameters>;
296
- type OakFontToken = keyof typeof oakFontTokens;
297
- declare const oakTextDecorations: readonly ["underline", "overline", "line-through", "none"];
298
- declare const oakWhiteSpaces: readonly ["normal", "nowrap", "pre", "pre-wrap", "pre-line", "break-spaces"];
299
- declare const oakWordWraps: readonly ["normal", "break-word", "initial", "inherit"];
300
- declare const oakTextOverflows: readonly ["clip", "ellipsis"];
301
- type OakTextDecoration = (typeof oakTextDecorations)[number];
302
- type OakWhiteSpace = (typeof oakWhiteSpaces)[number];
303
- type OakWordWrap = (typeof oakWordWraps)[number];
304
- type OakTextOverflow = (typeof oakTextOverflows)[number];
305
-
306
- type TypographyStyleProps = {
307
- $font?: ResponsiveValues<OakFontToken>;
308
- $textDecoration?: ResponsiveValues<OakTextDecoration>;
309
- $textAlign?: ResponsiveValues<CSSProperties$1["textAlign"]>;
310
- $whiteSpace?: ResponsiveValues<OakWhiteSpace>;
311
- $wordWrap?: ResponsiveValues<OakWordWrap>;
312
- $textOverflow?: ResponsiveValues<OakTextOverflow>;
313
- };
314
-
315
- declare const oakZIndexTokens: {
316
- readonly behind: -1;
317
- readonly neutral: 0;
318
- readonly "in-front": 1;
319
- readonly "mobile-filters": 2;
320
- readonly "fixed-header": 100;
321
- readonly "modal-close-button": 150;
322
- readonly "modal-dialog": 300;
323
- };
324
- type OakZIndexToken = keyof typeof oakZIndexTokens | null;
325
-
326
- type ZIndexStyleProps = {
327
- $zIndex?: ResponsiveValues<OakZIndexToken>;
328
- };
329
-
330
- type HTMLProps$1 = {
331
- onClick?: MouseEventHandler;
332
- };
333
- type OakBoxProps = {
334
- children?: React.ReactNode;
335
- } & PositionStyleProps & SizeStyleProps & SpacingStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & HTMLProps$1;
336
- declare const oakBoxCss: styled_components.FlattenInterpolation<styled_components.ThemedStyledProps<OakBoxProps, styled_components.DefaultTheme>>;
337
- declare const OakBox: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
338
- children?: React.ReactNode;
339
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & HTMLProps$1, never>;
340
-
341
- type FlexStyleProps = {
342
- $flexDirection?: ResponsiveValues<CSSProperties["flexDirection"]>;
343
- $flexWrap?: ResponsiveValues<CSSProperties["flexWrap"]>;
344
- $alignItems?: ResponsiveValues<CSSProperties["alignItems"]>;
345
- $alignContent?: ResponsiveValues<CSSProperties["alignContent"]>;
346
- $justifyContent?: ResponsiveValues<CSSProperties["justifyContent"]>;
347
- $alignSelf?: ResponsiveValues<CSSProperties["alignSelf"]>;
348
- $flexGrow?: ResponsiveValues<CSSProperties["flexGrow"]>;
349
- $flexShrink?: ResponsiveValues<CSSProperties["flexShrink"]>;
350
- $order?: ResponsiveValues<CSSProperties["order"]>;
351
- $flexBasis?: ResponsiveValues<OakAllSpacingToken | OakSpaceBetweenToken | null | undefined>;
352
- $gap?: ResponsiveValues<OakAllSpacingToken | OakSpaceBetweenToken | null | undefined>;
353
- $columnGap?: ResponsiveValues<OakAllSpacingToken | OakSpaceBetweenToken | null | undefined>;
354
- $rowGap?: ResponsiveValues<OakAllSpacingToken | OakSpaceBetweenToken | null | undefined>;
355
- };
356
-
357
- type OakFlexProps = FlexStyleProps & OakBoxProps;
358
- /**
359
- * Flex sets `display: flex;` and exposes various flex props, along with Box
360
- * props.
361
- *
362
- * ## Usage
363
- * Before adding props to this component, think about whether it makes sense
364
- * to add it to Box instead, as this component extends that.
365
- */
366
- declare const OakFlex: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
367
- children?: React$1.ReactNode;
368
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
369
- onClick?: React$1.MouseEventHandler | undefined;
370
- } & FlexStyleProps, never>;
371
-
372
- type OakSpanProps = ColorStyleProps & OpacityStyleProps & MarginStyleProps & PaddingStyleProps & BorderStyleProps & TypographyStyleProps;
373
- /**
374
- * Span renders a `span` (inline text) component, exposing all the typography props.
375
- * ## Usage
376
- * Use this component when you want to apply styles to a piece of inline text.
377
- */
378
- declare const OakSpan: styled_components.StyledComponent<"span", styled_components.DefaultTheme, ColorStyleProps & OpacityStyleProps & MarginStyleProps & PaddingStyleProps & BorderStyleProps & TypographyStyleProps, never>;
379
-
380
- /**
381
- *
382
- * Inherit everything from OakBox, but change the element to a form.
383
- *
384
- */
385
- declare const OakForm: styled_components.StyledComponent<"form", styled_components.DefaultTheme, {
386
- children?: React$1.ReactNode;
387
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
388
- onClick?: React$1.MouseEventHandler | undefined;
389
- }, never>;
390
- type OakFormProps = OakBoxProps;
391
-
392
- type ColorFilterToken = ResponsiveValues<OakCombinedColorToken | null>;
393
- type ColorFilterStyleProps = {
394
- $colorFilter?: ColorFilterToken;
395
- };
396
-
397
- type HTMLProps = {
398
- onClick?: MouseEventHandler;
399
- };
400
- type OakImageProps<C extends ElementType = typeof Image__default> = Omit<ImageProps$1, "placeholder"> & OakBoxProps & ColorFilterStyleProps & HTMLProps & {
401
- as?: C;
402
- /**
403
- * The placeholder to use while the image is loading
404
- *
405
- * Defaults to `oak` which is a placeholder containing the Oak logo
406
- * also accepts the same options as next/image */
407
- placeholder?: ImageProps$1["placeholder"] | "oak";
408
- /**
409
- * Additional props forwarded to the underlying `Image` component `as`
410
- */
411
- imageProps?: Partial<ComponentPropsWithoutRef<C>>;
412
- };
413
- /**
414
- * OakImage is a wrapper round next/image which adds convenience style
415
- * props to the api
416
- */
417
- declare const OakImage: <C extends React__default.ElementType = React__default.ForwardRefExoticComponent<Omit<React__default.DetailedHTMLProps<React__default.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "ref" | "width" | "height" | "alt" | "src" | "loading" | "srcSet"> & {
418
- src: string | next_dist_shared_lib_get_img_props.StaticImport;
419
- alt: string;
420
- width?: number | `${number}` | undefined;
421
- height?: number | `${number}` | undefined;
422
- fill?: boolean | undefined;
423
- loader?: Image.ImageLoader | undefined;
424
- quality?: number | `${number}` | undefined;
425
- priority?: boolean | undefined;
426
- loading?: "eager" | "lazy" | undefined;
427
- placeholder?: next_dist_shared_lib_get_img_props.PlaceholderValue | undefined;
428
- blurDataURL?: string | undefined;
429
- unoptimized?: boolean | undefined;
430
- onLoadingComplete?: next_dist_shared_lib_get_img_props.OnLoadingComplete | undefined;
431
- layout?: string | undefined;
432
- objectFit?: string | undefined;
433
- objectPosition?: string | undefined;
434
- lazyBoundary?: string | undefined;
435
- lazyRoot?: string | undefined;
436
- } & React__default.RefAttributes<HTMLImageElement | null>>>({ ...props }: OakImageProps<C>) => React__default.JSX.Element;
437
-
438
- type OakTypographyProps = OakBoxProps & TypographyStyleProps;
439
- /**
440
- * The Typography component sets a typography style context from which children
441
- * inherit style properties through the cascade.
442
- * ## Usage
443
- * This should be the primary component to set a typography context.
444
- * Use this component whenever you want to style blocks of 'body' text.
445
- */
446
- declare const OakTypography: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
447
- children?: React$1.ReactNode;
448
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
449
- onClick?: React$1.MouseEventHandler | undefined;
450
- }, never>;
451
-
452
- declare const oakHeadingTags: readonly ["div", "h1", "h2", "h3", "h4", "h5", "h6"];
453
- type OakHeadingTag = (typeof oakHeadingTags)[number];
454
- type OakHeadingTagProps = {
455
- children?: React__default.ReactNode;
456
- id?: string;
457
- tag: OakHeadingTag;
458
- ariaLabel?: string;
459
- ariaHidden?: boolean;
460
- };
461
- declare const HeadingTagComponent: FC<OakHeadingTagProps>;
462
- type OakHeadingProps = TypographyStyleProps & OakHeadingTagProps & ColorStyleProps & OpacityStyleProps & MarginStyleProps;
463
- declare const OakHeading: styled_components.StyledComponent<React__default.FC<OakHeadingTagProps>, styled_components.DefaultTheme, TypographyStyleProps & OakHeadingTagProps & ColorStyleProps & OpacityStyleProps & MarginStyleProps, never>;
464
-
465
- type OakPProps = MarginStyleProps & TypographyStyleProps & ColorStyleProps;
466
- /**
467
- * Styled `p` (paragraph) component.
468
- * ## Usage
469
- * In general, using a `p` as a descendant of `<Body>` should suffice.
470
- * However, if you want different styles for a particular paragraph,
471
- * you can use this component to apply additional styles.
472
- */
473
- declare const OakP: styled_components.StyledComponent<"p", styled_components.DefaultTheme, MarginStyleProps & TypographyStyleProps & ColorStyleProps, never>;
474
-
475
- type OakULProps = OakBoxProps & {
476
- $reset?: boolean;
477
- };
478
- /**
479
- * Styled `ul` (unordered list) component.
480
- *
481
- * ## Usage
482
- *
483
- * Resets browser spacing and other styles, accepts BoxProps' style props.
484
- *
485
- * */
486
- declare const OakUL: styled_components.StyledComponent<"ul", styled_components.DefaultTheme, {
487
- children?: React$1.ReactNode;
488
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
489
- onClick?: React$1.MouseEventHandler | undefined;
490
- } & {
491
- $reset?: boolean | undefined;
492
- }, never>;
493
-
494
- type OakOLProps = MarginStyleProps & ColorStyleProps & TypographyStyleProps;
495
- /**
496
- * Styled `ol` (ordered list) component.
497
- *
498
- * ## Usage
499
- *
500
- * Use where we have an ordered list to ensure numbers are styled
501
- *
502
- * */
503
- declare const OakOL: styled_components.StyledComponent<"ol", styled_components.DefaultTheme, MarginStyleProps & ColorStyleProps & TypographyStyleProps, never>;
504
-
505
- type ListStyleProps = {
506
- $listStyle?: ResponsiveValues<CSSProperties$1["listStyle"]>;
507
- };
508
-
509
- type OakLIProps = OakFlexProps & TypographyStyleProps & ListStyleProps & DisplayStyleProps;
510
- /**
511
- * Styled `li` (list item) component.
512
- *
513
- * ## Usage
514
- *
515
- * Places where we directly want to style a list item
516
- *
517
- **/
518
- declare const OakLI: styled_components.StyledComponent<"li", styled_components.DefaultTheme, FlexStyleProps & {
519
- children?: React$1.ReactNode;
520
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
521
- onClick?: React$1.MouseEventHandler | undefined;
522
- } & ListStyleProps, never>;
523
-
524
- type OakLabelProps = TypographyStyleProps & ColorStyleProps;
525
- /**
526
- * Label renders a `label` element, exposing all the typography props.
527
- * ## Usage
528
- * Use this component when you want to apply styles to a label, likely within
529
- * a form.
530
- */
531
- declare const OakLabel: styled_components.StyledComponent<"label", styled_components.DefaultTheme, TypographyStyleProps & ColorStyleProps, never>;
532
-
533
- declare const icons: {
534
- readonly "question-mark": "v1706872277/icons/question-mark.svg";
535
- readonly home: "v1699887218/icons/gvqxjxcw07ei2kkmwnes.svg";
536
- readonly send: "v1699893673/icons/rmvytilpjgvh3pgwc8ph.svg";
537
- readonly rocket: "v1699894015/icons/u26xm5hteot875ozfnk9.svg";
538
- readonly edit: "v1699894149/icons/qxlunbg5tfrdherzsvlt.svg";
539
- readonly hamburger: "v1699895123/icons/jaqdnomtbhqvjcap962u.svg";
540
- readonly cross: "v1699895179/icons/xigimrbivcaxt4omxamp.svg";
541
- readonly bell: "v1699895207/icons/ecejtvqerx81prxyxh9b.svg";
542
- readonly twitter: "v1699895251/icons/bq6a50xtkvnzhltfggzz.svg";
543
- readonly worksheet: "v1699895300/icons/ez1s6mtpe5jkunnxzvlw.svg";
544
- readonly facebook: "v1699895330/icons/iojlvh3o5lshy2jupyph.svg";
545
- readonly share: "v1699895363/icons/agcmduftef3wcla6gzec.svg";
546
- readonly "arrow-right": "v1707149070/icons/fv0z57zerrioft52dd9n.svg";
547
- readonly "worksheet-3": "v1699895429/icons/bzhojpjxp9rukdvh7daz.svg";
548
- readonly "chevron-right": "v1707752509/icons/vk9xxxhnsltsickom6q9.svg";
549
- readonly save: "v1699895505/icons/rh1ahwwtbemvz0ihluew.svg";
550
- readonly "quiz-3": "v1699895534/icons/zoayhgtrotv32fad7d3k.svg";
551
- readonly "chevron-down": "v1699953557/icons/botfld6brychmttwtv6u.svg";
552
- readonly linkedin: "v1699953592/icons/leqneklorqqzb1zo6rf1.svg";
553
- readonly "magic-carpet": "v1699953622/icons/jifivg9xxm7sb0fjdilm.svg";
554
- readonly books: "v1699953657/icons/hz4l3iq6i68kazvkvorq.svg";
555
- readonly "supervision-level": "v1699953696/icons/cwqhknapp3maa4g0t3lj.svg";
556
- readonly "quiz-white": "v1699953730/icons/gpcehpgr9mqoumsa25xe.svg";
557
- readonly "arrow-left": "v1707149179/icons/ejrm9dpgpzb7ddbo8z2i.svg";
558
- readonly "additional-material": "v1699953798/icons/ntoq4tqvcm2uj1pajubt.svg";
559
- readonly "slide-deck-3": "v1699953830/icons/sm92moja9d5utu3cj16c.svg";
560
- readonly "sign-language": "v1699953861/icons/ns94ozvozzi22enxkx0x.svg";
561
- readonly external: "v1699953892/icons/hlxmejse3mcr4tqo6t8u.svg";
562
- readonly "equipment-required": "v1699953925/icons/pw22bdhj2vrzfv2ogi4e.svg";
563
- readonly "chevron-left": "v1707752509/icons/rbvzan0ozubmr4j0uqdn.svg";
564
- readonly download: "v1699953991/icons/dk0f6a6hdpzxftjosngn.svg";
565
- readonly search: "v1704901279/icons/canbi3fuz5fanzom2hvi.svg";
566
- readonly "chevron-up": "v1699954058/icons/pay71thmhhylj7z28sj1.svg";
567
- readonly go: "v1699954090/icons/vdzptyvmitylra8x4usy.svg";
568
- readonly copyright: "v1699954118/icons/boiod3rflocgsnfokyo8.svg";
569
- readonly "arrow-down": "v1699954152/icons/wpfmbmwpyfinipg0d61y.svg";
570
- readonly project: "v1699954186/icons/zofq5pheud6spnwjpewk.svg";
571
- readonly "slide-deck": "v1699954241/icons/sjjy5f3g4eciwcuxxr33.svg";
572
- readonly "content-guidance": "v1699954277/icons/tm3uhcqenaznq4fxys7j.svg";
573
- readonly tick: "v1699954310/icons/efd3esaor6zqk7seh6kt.svg";
574
- readonly instagram: "v1699954343/icons/ayfeljric0kkimdymvva.svg";
575
- readonly dot: "v1699954371/icons/knykdclphkm8lgff4u2g.svg";
576
- readonly "dot-png": "v1699954394/icons/qecbh291nzwmhcvqayqd.png";
577
- readonly warning: "v1704901279/icons/zzszodmk7fvxm9xzzg9s.svg";
578
- readonly "lightbulb-yellow": "v1705078631/icons/q2v4sqxouy1ngcajoavv.svg";
579
- readonly lightbulb: "v1705078631/icons/zldisxmbff36z68rwcef.svg";
580
- readonly quiz: "v1705416077/icons/kaaizjcudy0jfgfrrdel.svg";
581
- readonly video: "v1705416078/icons/wzey1zfxrvv3apeebbf5.svg";
582
- readonly intro: "v1705662092/icons/pl7bnmb13txese9yxkjv.svg";
583
- readonly "subject-art": "subject-icons/art.svg";
584
- readonly "subject-biology": "subject-icons/biology.svg";
585
- readonly "subject-chemistry": "subject-icons/chemistry.svg";
586
- readonly "subject-citizenship": "subject-icons/citizenship.svg";
587
- readonly "subject-combined-science": "subject-icons/science.svg";
588
- readonly "subject-communication-and-language": "subject-icons/communication-and-language.svg";
589
- readonly "subject-computing": "subject-icons/computing.svg";
590
- readonly "subject-computing-non-gcse": "subject-icons/computing.svg";
591
- readonly "subject-creative-arts": "subject-icons/creative-arts.svg";
592
- readonly "subject-design-technology": "subject-icons/design-technology.svg";
593
- readonly "subject-drama": "subject-icons/drama.svg";
594
- readonly "subject-english": "subject-icons/english.svg";
595
- readonly "subject-english-grammar": "subject-icons/english-grammar.svg";
596
- readonly "subject-english-reading-for-pleasure": "subject-icons/literature.svg";
597
- readonly "subject-english-spelling": "subject-icons/english-spelling.svg";
598
- readonly "subject-french": "subject-icons/french.svg";
599
- readonly "subject-geography": "subject-icons/geography.svg";
600
- readonly "subject-german": "subject-icons/german.svg";
601
- readonly "subject-history": "subject-icons/history.svg";
602
- readonly "subject-independent-living": "subject-icons/independent-living.svg";
603
- readonly "subject-latin": "subject-icons/latin.svg";
604
- readonly "subject-maths": "subject-icons/maths.svg";
605
- readonly "subject-music": "subject-icons/music-hollow.svg";
606
- readonly "subject-numeracy": "subject-icons/numeracy.svg";
607
- readonly "occupational-therapy": "subject-icons/therapy.svg";
608
- readonly "subject-physical-development": "subject-icons/physical-development.svg";
609
- readonly "subject-physical-education": "subject-icons/physical-education.svg";
610
- readonly "subject-physical-therapy": "subject-icons/physical-therapy.svg";
611
- readonly "subject-physics": "subject-icons/physics.svg";
612
- readonly "subject-religious-education": "subject-icons/religious-education.svg";
613
- readonly "subject-rshe-pshe": "subject-icons/rshe-pshe.svg";
614
- readonly "subject-science": "subject-icons/science.svg";
615
- readonly "subject-sensory-integration": "subject-icons/sensory-integration.svg";
616
- readonly "subject-spanish": "subject-icons/spanish.svg";
617
- readonly "subject-speech-and-language-therapy": "subject-icons/speech-and-language.svg";
618
- readonly "subject-therapy": "subject-icons/therapy.svg";
619
- readonly "subject-understanding-the-world": "subject-icons/understanding-the-world.svg";
620
- };
621
- type IconName = keyof typeof icons;
622
-
623
- declare const oakIconNames: ("search" | "video" | "download" | "question-mark" | "home" | "send" | "rocket" | "edit" | "hamburger" | "cross" | "bell" | "twitter" | "worksheet" | "facebook" | "share" | "arrow-right" | "worksheet-3" | "chevron-right" | "save" | "quiz-3" | "chevron-down" | "linkedin" | "magic-carpet" | "books" | "supervision-level" | "quiz-white" | "arrow-left" | "additional-material" | "slide-deck-3" | "sign-language" | "external" | "equipment-required" | "chevron-left" | "chevron-up" | "go" | "copyright" | "arrow-down" | "project" | "slide-deck" | "content-guidance" | "tick" | "instagram" | "dot" | "dot-png" | "warning" | "lightbulb-yellow" | "lightbulb" | "quiz" | "intro" | "subject-art" | "subject-biology" | "subject-chemistry" | "subject-citizenship" | "subject-combined-science" | "subject-communication-and-language" | "subject-computing" | "subject-computing-non-gcse" | "subject-creative-arts" | "subject-design-technology" | "subject-drama" | "subject-english" | "subject-english-grammar" | "subject-english-reading-for-pleasure" | "subject-english-spelling" | "subject-french" | "subject-geography" | "subject-german" | "subject-history" | "subject-independent-living" | "subject-latin" | "subject-maths" | "subject-music" | "subject-numeracy" | "occupational-therapy" | "subject-physical-development" | "subject-physical-education" | "subject-physical-therapy" | "subject-physics" | "subject-religious-education" | "subject-rshe-pshe" | "subject-science" | "subject-sensory-integration" | "subject-spanish" | "subject-speech-and-language-therapy" | "subject-therapy" | "subject-understanding-the-world")[];
624
- type OakIconName = IconName;
625
- type OakIconProps = Omit<OakImageProps, "alt" | "src"> & {
626
- iconName: OakIconName;
627
- alt?: string;
628
- };
629
- /**
630
- * returns true if the given string is a valid `OakIconName`
631
- */
632
- declare function isValidIconName(iconName: string): iconName is OakIconName;
633
- declare const OakIcon: (props: OakIconProps) => React__default.JSX.Element;
634
-
635
- declare const oakDefaultTheme: OakTheme;
636
-
637
- type OakGridProps = OakBoxProps & {
638
- $rg?: ResponsiveValues<OakCombinedSpacingToken>;
639
- $cg?: ResponsiveValues<OakCombinedSpacingToken>;
640
- $gridAutoRows?: ResponsiveValues<"1fr">;
641
- $gridTemplateAreas?: ResponsiveValues<string>;
642
- $gridTemplateColumns?: ResponsiveValues<string>;
643
- $gridTemplateRows?: ResponsiveValues<string>;
644
- };
645
- declare const OakGrid: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
646
- children?: React$1.ReactNode;
647
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
648
- onClick?: React$1.MouseEventHandler | undefined;
649
- } & {
650
- $rg?: ResponsiveValues<OakCombinedSpacingToken> | undefined;
651
- $cg?: ResponsiveValues<OakCombinedSpacingToken> | undefined;
652
- $gridAutoRows?: ResponsiveValues<"1fr"> | undefined;
653
- $gridTemplateAreas?: ResponsiveValues<string> | undefined;
654
- $gridTemplateColumns?: ResponsiveValues<string> | undefined;
655
- $gridTemplateRows?: ResponsiveValues<string> | undefined;
656
- }, never>;
657
-
658
- type ColRowSpan = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
659
- type OakGridAreaProps = {
660
- /**
661
- * Determines the number of columns the element should span.
662
- */
663
- $colSpan: ResponsiveValues<ColRowSpan>;
664
- /**
665
- * Determines the number of rows the element should span.
666
- */
667
- $rowSpan?: ResponsiveValues<ColRowSpan>;
668
- $order?: ResponsiveValues<number>;
669
- /**
670
- * The start column of the element.
671
- */
672
- $colStart?: ResponsiveValues<ColRowSpan>;
673
- $colEnd?: ResponsiveValues<ColRowSpan>;
674
- /**
675
- * The start row of the element.
676
- */
677
- $rowStart?: ResponsiveValues<ColRowSpan>;
678
- } & SpacingStyleProps;
679
- /**
680
- *
681
- * OakGridArea is a flex container that should be used inside OakGrid.
682
- *
683
- * - There is no nesting of OakGridAreas
684
- * - Column and row arrangements are achieved through $colSpan, $rowSpan, $colStart, $colEnd, $rowStart, $rowEnd
685
- *
686
- */
687
- declare const OakGridArea: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
688
- children?: React$1.ReactNode;
689
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
690
- onClick?: React$1.MouseEventHandler | undefined;
691
- } & FlexStyleProps & {
692
- /**
693
- * Determines the number of columns the element should span.
694
- */
695
- $colSpan: ResponsiveValues<ColRowSpan>;
696
- /**
697
- * Determines the number of rows the element should span.
698
- */
699
- $rowSpan?: ResponsiveValues<ColRowSpan> | undefined;
700
- $order?: ResponsiveValues<number> | undefined;
701
- /**
702
- * The start column of the element.
703
- */
704
- $colStart?: ResponsiveValues<ColRowSpan> | undefined;
705
- $colEnd?: ResponsiveValues<ColRowSpan> | undefined;
706
- /**
707
- * The start row of the element.
708
- */
709
- $rowStart?: ResponsiveValues<ColRowSpan> | undefined;
710
- }, never>;
711
-
712
- type OakThemeProviderProps = {
713
- theme: OakTheme;
714
- children: React__default.ReactNode;
715
- };
716
- declare const OakThemeProvider: ({ theme, children, }: OakThemeProviderProps) => React__default.JSX.Element;
717
-
718
- declare const OakMaxWidth: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
719
- children?: React$1.ReactNode;
720
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
721
- onClick?: React$1.MouseEventHandler | undefined;
722
- } & FlexStyleProps, never>;
723
-
724
- type OakCloudinaryImageProps = Omit<OakImageProps<typeof CldImage>, "src" | "imageProps"> & {
725
- /**
726
- * The cloudinary image id or the full cloudinary URL
727
- *
728
- * Usually in the format `v1234567890/image.jpg`
729
- */
730
- cloudinaryId: string;
731
- };
732
- /**
733
- * Provides a Cloudinary config to all descendent `OakCloudinaryImage` elements.
734
- *
735
- * See https://cloudinary.com/documentation/cloudinary_sdks#configuration_parameters
736
- * for documentation of the config object.
737
- */
738
- declare const OakCloudinaryConfigProvider: React__default.Provider<_cloudinary_util_url_loader_dist_schema_UX7RRFIR.g | undefined>;
739
- /**
740
- * OakCloudinaryImage wraps OakImage providing responsive images from Cloudinary
741
- * based on the `sizes` prop.
742
- *
743
- * Cloudinary cloud name can be set globally with `NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME` or a config
744
- * can be passed with `OakCloudinaryConfigProvider`.
745
- */
746
- declare const OakCloudinaryImage: ({ cloudinaryId, unoptimized, ...props }: OakCloudinaryImageProps) => React__default.JSX.Element;
747
-
748
- type OakFieldErrorProps = {
749
- children?: React__default.ReactNode;
750
- };
751
- declare const OakFieldError: (props: OakFieldErrorProps) => React__default.JSX.Element | null;
752
-
753
- type OakLoadingSpinnerProps = Pick<SizeStyleProps, "$width"> & ColorStyleProps & {
754
- loaderColor?: OakCombinedColorToken;
755
- };
756
- declare const OakLoadingSpinner: (props: OakLoadingSpinnerProps) => React__default.JSX.Element;
757
-
758
- type ElementProp<C extends ElementType> = {
759
- element?: C;
760
- };
761
- type PolymorphicRef<C extends React.ElementType> = ComponentPropsWithRef<C>["ref"];
762
- type PolymorphicPropsWithRef<C extends ElementType> = ElementProp<C> & ComponentPropsWithoutRef<C> & {
763
- ref?: PolymorphicRef<C>;
764
- };
765
-
766
- type StyledButtonProps = TypographyStyleProps & SpacingStyleProps & ColorStyleProps & DisplayStyleProps & BorderStyleProps & DropShadowStyleProps & {
767
- isLoading?: boolean;
768
- };
769
- type InternalButtonProps = StyledButtonProps & {
770
- onHovered?: (event: React__default.MouseEvent<HTMLButtonElement, MouseEvent>, duration: number) => void;
771
- };
772
-
773
- type InternalShadowRectButtonProps = Omit<InternalButtonProps, "$pa" | "$ph" | "$pv" | "$ba" | "$borderRadius" | "$borderColor" | "$background" | "$color"> & {
774
- iconName?: OakIconName;
775
- isTrailingIcon?: boolean;
776
- defaultTextColor: OakCombinedColorToken;
777
- defaultBackground: OakCombinedColorToken;
778
- defaultBorderColor: OakCombinedColorToken;
779
- hoverTextColor: OakCombinedColorToken;
780
- hoverBackground: OakCombinedColorToken;
781
- hoverBorderColor: OakCombinedColorToken;
782
- disabledBackground: OakCombinedColorToken;
783
- disabledBorderColor: OakCombinedColorToken;
784
- disabledTextColor: OakCombinedColorToken;
785
- width?: SizeStyleProps["$width"];
786
- maxWidth?: SizeStyleProps["$maxWidth"];
787
- hoverShadow?: OakDropShadowToken | null;
788
- } & PositionStyleProps;
789
-
790
- type OakPrimaryButtonProps = Omit<InternalShadowRectButtonProps, "defaultBorderColor" | "defaultBackground" | "defaultTextColor" | "hoverBackground" | "hoverBorderColor" | "hoverTextColor" | "disabledBackground" | "disabledBorderColor" | "disabledTextColor">;
791
- declare const OakPrimaryButton: <C extends React__default.ElementType = "button">({ element, ...rest }: OakPrimaryButtonProps & {
792
- element?: C | undefined;
793
- } & React__default.PropsWithoutRef<React__default.ComponentProps<C>>) => React__default.JSX.Element;
794
-
795
- /**
796
- *
797
- * A specific implementation of InternalRectButton
798
- *
799
- * The following callbacks are available for tracking focus events:
800
- *
801
- * ### onClick
802
- * `onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;`
803
- *
804
- * ### onHovered
805
- * `onHovered?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>, duration: number) => void;`<br>
806
- * called after a mouseEnter and mouseLeave event has happened
807
- */
808
- type OakPrimaryInvertedButtonProps = Omit<InternalShadowRectButtonProps, "defaultBorderColor" | "defaultBackground" | "defaultTextColor" | "hoverBackground" | "hoverBorderColor" | "hoverTextColor" | "disabledBackground" | "disabledBorderColor" | "disabledTextColor">;
809
- declare const OakPrimaryInvertedButton: <C extends React__default.ElementType = "button">({ element, ...rest }: OakPrimaryInvertedButtonProps & {
810
- element?: C | undefined;
811
- } & React__default.PropsWithoutRef<React__default.ComponentProps<C>>) => React__default.JSX.Element;
812
-
813
- type OakSecondaryButtonProps = Omit<InternalShadowRectButtonProps, "defaultBorderColor" | "defaultBackground" | "defaultTextColor" | "hoverBackground" | "hoverBorderColor" | "hoverTextColor" | "disabledBackground" | "disabledBorderColor" | "disabledTextColor">;
814
- declare const OakSecondaryButton: <C extends React__default.ElementType = "button">({ element, ...rest }: OakSecondaryButtonProps & {
815
- element?: C | undefined;
816
- } & React__default.PropsWithoutRef<React__default.ComponentProps<C>>) => React__default.JSX.Element;
817
-
818
- type ImageProps = OakImageProps & {
819
- iconName?: undefined;
820
- };
821
- type IconProps = OakIconProps & {
822
- src?: undefined;
823
- };
824
- type OakRoundIconProps = IconProps | ImageProps;
825
- /**
826
- * A wrapper around `OakIcon` which applies a rounded background.
827
- * Supports either an icon name or an image src
828
- */
829
- declare const OakRoundIcon: ({ $background, $borderRadius, $width, $height, $pa, className, ...rest }: OakRoundIconProps) => React__default.JSX.Element;
830
-
831
- /**
832
- * An implementation of InternalShadowRoundButton, its a subtle button with no border and a round icon.
833
- */
834
- declare const OakTertiaryButton: <C extends React__default.ElementType = "button">({ element, isTrailingIcon, iconName, children, ...props }: TypographyStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & DisplayStyleProps & BorderStyleProps & DropShadowStyleProps & {
835
- isLoading?: boolean | undefined;
836
- } & {
837
- onHovered?: ((event: React__default.MouseEvent<HTMLButtonElement, MouseEvent>, duration: number) => void) | undefined;
838
- } & {
839
- iconBackground?: OakRoundIconProps["$background"];
840
- iconColorFilter?: OakRoundIconProps["$colorFilter"];
841
- isTrailingIcon?: boolean | undefined;
842
- iconName?: "search" | "video" | "download" | "question-mark" | "home" | "send" | "rocket" | "edit" | "hamburger" | "cross" | "bell" | "twitter" | "worksheet" | "facebook" | "share" | "arrow-right" | "worksheet-3" | "chevron-right" | "save" | "quiz-3" | "chevron-down" | "linkedin" | "magic-carpet" | "books" | "supervision-level" | "quiz-white" | "arrow-left" | "additional-material" | "slide-deck-3" | "sign-language" | "external" | "equipment-required" | "chevron-left" | "chevron-up" | "go" | "copyright" | "arrow-down" | "project" | "slide-deck" | "content-guidance" | "tick" | "instagram" | "dot" | "dot-png" | "warning" | "lightbulb-yellow" | "lightbulb" | "quiz" | "intro" | "subject-art" | "subject-biology" | "subject-chemistry" | "subject-citizenship" | "subject-combined-science" | "subject-communication-and-language" | "subject-computing" | "subject-computing-non-gcse" | "subject-creative-arts" | "subject-design-technology" | "subject-drama" | "subject-english" | "subject-english-grammar" | "subject-english-reading-for-pleasure" | "subject-english-spelling" | "subject-french" | "subject-geography" | "subject-german" | "subject-history" | "subject-independent-living" | "subject-latin" | "subject-maths" | "subject-music" | "subject-numeracy" | "occupational-therapy" | "subject-physical-development" | "subject-physical-education" | "subject-physical-therapy" | "subject-physics" | "subject-religious-education" | "subject-rshe-pshe" | "subject-science" | "subject-sensory-integration" | "subject-spanish" | "subject-speech-and-language-therapy" | "subject-therapy" | "subject-understanding-the-world" | undefined;
843
- } & {
844
- element?: C | undefined;
845
- } & React__default.PropsWithoutRef<React__default.ComponentProps<C>>) => React__default.JSX.Element;
846
-
847
- type RadioButtonLabelProps = {
848
- $labelAlignItems?: FlexStyleProps["$alignItems"];
849
- $labelGap?: FlexStyleProps["$gap"];
850
- disabled?: boolean;
851
- } & OakLabelProps;
852
- type OakRadioButtonProps = {
853
- id: string;
854
- label: ReactNode;
855
- value: string;
856
- tabIndex?: number;
857
- "data-testid"?: string;
858
- disabled?: boolean;
859
- /**
860
- * Allows the focus ring to be disabled. This is useful when focus is indicated
861
- * by other means, such as a border or background color change.
862
- */
863
- disableFocusRing?: boolean;
864
- /**
865
- * Allows the size of the radio button to be customized.
866
- */
867
- radioOuterSize?: OakAllSpacingToken;
868
- /**
869
- * Allows the size of the inner "checked" circle of the radio button to be customized.
870
- */
871
- radioInnerSize?: OakAllSpacingToken;
872
- /**
873
- * Allows the width of the radio button border to be customized.
874
- */
875
- radioBorderWidth?: OakBorderWidthToken;
876
- /**
877
- * Allows the width of the radio button border to be customized when the radio button is checked.
878
- */
879
- checkedRadioBorderWidth?: OakBorderWidthToken;
880
- } & OakBoxProps & RadioButtonLabelProps;
881
- declare const OakRadioButton: React__default.ForwardRefExoticComponent<{
882
- id: string;
883
- label: ReactNode;
884
- value: string;
885
- tabIndex?: number | undefined;
886
- "data-testid"?: string | undefined;
887
- disabled?: boolean | undefined;
888
- /**
889
- * Allows the focus ring to be disabled. This is useful when focus is indicated
890
- * by other means, such as a border or background color change.
891
- */
892
- disableFocusRing?: boolean | undefined;
893
- /**
894
- * Allows the size of the radio button to be customized.
895
- */
896
- radioOuterSize?: "all-spacing-0" | "all-spacing-1" | "all-spacing-2" | "all-spacing-3" | "all-spacing-4" | "all-spacing-5" | "all-spacing-6" | "all-spacing-7" | "all-spacing-9" | "all-spacing-10" | "all-spacing-12" | "all-spacing-13" | "all-spacing-8" | "all-spacing-11" | "all-spacing-14" | "all-spacing-15" | "all-spacing-16" | "all-spacing-17" | "all-spacing-18" | "all-spacing-19" | "all-spacing-20" | "all-spacing-21" | "all-spacing-22" | "all-spacing-23" | "all-spacing-24" | undefined;
897
- /**
898
- * Allows the size of the inner "checked" circle of the radio button to be customized.
899
- */
900
- radioInnerSize?: "all-spacing-0" | "all-spacing-1" | "all-spacing-2" | "all-spacing-3" | "all-spacing-4" | "all-spacing-5" | "all-spacing-6" | "all-spacing-7" | "all-spacing-9" | "all-spacing-10" | "all-spacing-12" | "all-spacing-13" | "all-spacing-8" | "all-spacing-11" | "all-spacing-14" | "all-spacing-15" | "all-spacing-16" | "all-spacing-17" | "all-spacing-18" | "all-spacing-19" | "all-spacing-20" | "all-spacing-21" | "all-spacing-22" | "all-spacing-23" | "all-spacing-24" | undefined;
901
- /**
902
- * Allows the width of the radio button border to be customized.
903
- */
904
- radioBorderWidth?: "border-solid-none" | "border-solid-s" | "border-solid-m" | "border-solid-l" | "border-solid-xl" | undefined;
905
- /**
906
- * Allows the width of the radio button border to be customized when the radio button is checked.
907
- */
908
- checkedRadioBorderWidth?: "border-solid-none" | "border-solid-s" | "border-solid-m" | "border-solid-l" | "border-solid-xl" | undefined;
909
- } & {
910
- children?: React__default.ReactNode;
911
- } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
912
- onClick?: React__default.MouseEventHandler | undefined;
913
- } & {
914
- $labelAlignItems?: FlexStyleProps["$alignItems"];
915
- $labelGap?: FlexStyleProps["$gap"];
916
- disabled?: boolean | undefined;
917
- } & React__default.RefAttributes<HTMLInputElement>>;
918
-
919
- type OakRadioGroupProps = {
920
- label?: string;
921
- name: string;
922
- disabled?: boolean;
923
- children: React__default.ReactNode;
924
- onChange?: (event: React__default.ChangeEvent<HTMLInputElement>) => void;
925
- /**
926
- * Sets the value of the radio group
927
- * for use as a controlled component
928
- */
929
- value?: string;
930
- /**
931
- * Sets the initial value of the radio group
932
- * for use as an uncontrolled component
933
- */
934
- defaultValue?: string;
935
- } & Pick<TypographyStyleProps, "$font"> & ColorStyleProps & Pick<FlexStyleProps, "$flexDirection" | "$alignItems" | "$gap">;
936
- declare const OakRadioGroup: (props: OakRadioGroupProps) => React__default.JSX.Element;
937
-
938
- /**
939
- *
940
- * These components can be used with InternalCheckBoxWrapper which allows for customisable icons
941
- *
942
- * Several flavours of checkbox are created here:
943
- * - Default
944
- * - Hover decorations
945
- * - Focus decorations
946
- * - Hover + Focus decorations
947
- *
948
- * As they are styled components they can be further customised in implementation. Alternatively additional
949
- * components can be created here.
950
- *
951
- */
952
- type BaseCheckBoxProps = {
953
- id: string;
954
- disabled?: boolean;
955
- value: string;
956
- defaultChecked?: boolean;
957
- onHovered?: (value: string, id: string, duration: number) => void;
958
- onChange?: (event: React__default.ChangeEvent<HTMLInputElement>) => void;
959
- onFocus?: (event: React__default.FocusEvent<HTMLInputElement>) => void;
960
- onBlur?: (event: React__default.FocusEvent<HTMLInputElement>) => void;
961
- "data-testid"?: string;
962
- };
963
-
964
- type InternalCheckBoxLabelProps = {
965
- labelAlignItems?: FlexStyleProps["$alignItems"];
966
- labelGap?: FlexStyleProps["$gap"];
967
- disabled?: boolean;
968
- "data-testid"?: string;
969
- } & OakLabelProps;
970
-
971
- type OakCheckBoxProps = BaseCheckBoxProps & {
972
- checkboxSize?: OakAllSpacingToken;
973
- checkboxBorder?: OakBorderWidthToken;
974
- checkboxBorderRadius?: OakBorderRadiusToken;
975
- checkedIcon?: React__default.JSX.Element;
976
- checkedBackgroundFill?: boolean;
977
- hoverBorderRadius?: OakBorderRadiusToken;
978
- iconPadding?: OakInnerPaddingToken;
979
- defaultColor?: OakCombinedColorToken;
980
- disabledColor?: OakCombinedColorToken;
981
- displayValue?: string;
982
- } & InternalCheckBoxLabelProps;
983
- declare const OakCheckBox: (props: OakCheckBoxProps) => React__default.JSX.Element;
984
-
985
- type StyledInputProps = Omit<DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & SpacingStyleProps & SizeStyleProps;
986
- type InternalTextInputProps = Omit<StyledInputProps, "placeholder"> & {
987
- /**
988
- * A textual hint or example to display before a value has been entered
989
- */
990
- placeholder?: string;
991
- /**
992
- * Fired only when the input is focused for the first time
993
- */
994
- onInitialFocus?: (e: FocusEvent<HTMLInputElement>) => void;
995
- };
996
-
997
- type OakTextInputProps = {
998
- /**
999
- * Disables user input and updates the appearance accordingly.
1000
- */
1001
- disabled?: boolean;
1002
- /**
1003
- * Makes the input read-only. Preventing the user from changing the value.
1004
- */
1005
- readOnly?: boolean;
1006
- /**
1007
- * Sets the value. Use this in controlled components;
1008
- */
1009
- value?: string;
1010
- /**
1011
- * Sets the initial value. Use this for an uncontrolled component;
1012
- */
1013
- defaultValue?: string;
1014
- /**
1015
- * Used to target the input element in tests.
1016
- */
1017
- "data-testid"?: string;
1018
- onChange?: ChangeEventHandler<HTMLInputElement>;
1019
- /**
1020
- * Alters the appearance of the input field to indicate whether the input is valid or invalid.
1021
- */
1022
- validity?: "valid" | "invalid";
1023
- /**
1024
- * Adds an icon to the input
1025
- *
1026
- * Defaults to the start of the input
1027
- */
1028
- iconName?: OakIconName;
1029
- /**
1030
- * Position the icon at the end of the input
1031
- */
1032
- isTrailingIcon?: boolean;
1033
- iconColor?: OakCombinedColorToken;
1034
- validBorderColor?: OakCombinedColorToken;
1035
- invalidBorderColor?: OakCombinedColorToken;
1036
- validIconColor?: OakCombinedColorToken;
1037
- invalidIconColor?: OakCombinedColorToken;
1038
- color?: OakCombinedColorToken;
1039
- hoverBackground?: OakCombinedColorToken;
1040
- background?: OakCombinedColorToken;
1041
- borderColor?: OakCombinedColorToken;
1042
- focusRingDropShadows?: OakDropShadowToken[];
1043
- disabledBackgroundColor?: OakCombinedColorToken;
1044
- readOnlyBorderColor?: OakCombinedColorToken;
1045
- disabledColor?: OakCombinedColorToken;
1046
- readOnlyColor?: OakCombinedColorToken;
1047
- /**
1048
- * The width of the surrounding div - the input and icon will fill this
1049
- */
1050
- wrapperWidth?: SizeStyleProps["$width"];
1051
- wrapperMaxWidth?: SizeStyleProps["$maxWidth"];
1052
- iconAlt?: string;
1053
- } & InternalTextInputProps;
1054
- /**
1055
- * Default input which can be extended to create specialised inputs.
1056
- */
1057
- declare const OakTextInput: ({ type, borderColor, readOnlyBorderColor, focusRingDropShadows, background, hoverBackground, disabledBackgroundColor, color, disabledColor, readOnlyColor, validity, iconColor, validBorderColor, invalidBorderColor, validIconColor, invalidIconColor, iconName, iconAlt, isTrailingIcon, wrapperWidth, wrapperMaxWidth, ...props }: OakTextInputProps) => React__default.JSX.Element;
1058
-
1059
- type InternalTooltipProps = OakFlexProps & {
1060
- isOpen: boolean;
1061
- tooltip: ReactNode;
1062
- children?: ReactNode;
1063
- };
1064
-
1065
- /**
1066
- * A tooltip with oven-ready styling
1067
- */
1068
- declare const OakTooltip: ({ ...props }: Pick<InternalTooltipProps, "isOpen" | "tooltip" | "children">) => React__default.JSX.Element;
1069
-
1070
- type OakBackLinkProps<C extends ElementType> = {
1071
- as?: C;
1072
- label?: string;
1073
- } & ComponentPropsWithoutRef<C>;
1074
- /**
1075
- * Used to navigate the user back to the previous page in the app.
1076
- *
1077
- * Polymorphic rendering as any HTML element or component using `as` — defaults to `a`.
1078
- *
1079
- * E.g.
1080
- *
1081
- * * Default (Anchor) `<OakBackLink href="https://www.thenational.academy/" />`
1082
- * * Button `<OakBackLink as="button" onClick={() => goBack(-1)} />`
1083
- */
1084
- declare const OakBackLink: <C extends React__default.ElementType = "a">({ as, label, ...props }: OakBackLinkProps<C>) => React__default.JSX.Element;
1085
-
1086
- type OakBulletListProps = {
1087
- listItems: string[];
1088
- } & OakSpanProps;
1089
- declare const OakBulletList: (props: OakBulletListProps) => React__default.JSX.Element;
1090
-
1091
- type InternalCardProps = OakFlexProps;
1092
-
1093
- type InternalCardWithBackgroundElementProps = InternalCardProps & {
1094
- backgroundElement: ReactElement;
1095
- };
1096
-
1097
- type InternalStyledSvgProps = {
1098
- $fill?: ResponsiveValues<OakCombinedColorToken>;
1099
- $stroke?: ResponsiveValues<OakCombinedColorToken>;
1100
- $strokeWidth?: ResponsiveValues<OakBorderWidthToken>;
1101
- };
1102
-
1103
- type OakHandDrawnCardProps = Omit<InternalCardWithBackgroundElementProps, "backgroundElement"> & {
1104
- fill?: InternalStyledSvgProps["$fill"];
1105
- stroke?: InternalStyledSvgProps["$stroke"];
1106
- strokeWidth?: InternalStyledSvgProps["$strokeWidth"];
1107
- };
1108
- /**
1109
- * A flexed card with a hand-drawn filled background
1110
- *
1111
- * An optional `stroke` and `strokeWidth` can be applied to give the background a border
1112
- */
1113
- declare const OakHandDrawnCard: ({ $pa, fill, stroke, strokeWidth, $width, ...props }: OakHandDrawnCardProps) => React__default.JSX.Element;
1114
-
1115
- type OakHandDrawnBoxWithIconProps = Omit<OakHandDrawnCardProps, "children"> & {
1116
- iconName: OakIconProps["iconName"];
1117
- alt?: OakIconProps["alt"];
1118
- iconColor?: OakIconProps["$colorFilter"];
1119
- iconWidth?: OakIconProps["$width"];
1120
- iconHeight?: OakIconProps["$height"];
1121
- };
1122
- /**
1123
- * A hand-drawn card with an icon in the center
1124
- */
1125
- declare const OakHandDrawnCardWithIcon: ({ iconName, iconColor, iconWidth, iconHeight, alt, $width, $height, $alignItems, $justifyContent, ...props }: OakHandDrawnBoxWithIconProps) => React__default.JSX.Element;
1126
-
1127
- /**
1128
- * Renders a tag with the text "New"
1129
- */
1130
- declare const OakPromoTag: () => React__default.JSX.Element;
1131
-
1132
- type OakInfoCardProps = {
1133
- children: React__default.ReactNode;
1134
- };
1135
- type OakCardHeaderprops = {
1136
- iconName: OakIconName;
1137
- tag: OakHeadingTag;
1138
- children: string;
1139
- };
1140
- declare const OakCardHeader: (props: OakCardHeaderprops) => React__default.JSX.Element;
1141
- declare const OakLessonInfoCard: (props: OakInfoCardProps) => React__default.JSX.Element;
1142
- declare const OakStaticMessageCard: (props: OakInfoCardProps) => React__default.JSX.Element;
1143
-
1144
- type OakCollapsibleContentProps = ComponentProps<typeof OakFlex> & {
1145
- /**
1146
- * Whether the content is displayed or not
1147
- */
1148
- isOpen: boolean;
1149
- };
1150
- /**
1151
- * A filled scrollable box that can be hidden with the `isOpen` prop.
1152
- * Useful for hiding content that is not immediately relevant
1153
- */
1154
- declare const OakCollapsibleContent: ({ isOpen, children, id, ...rest }: OakCollapsibleContentProps) => React__default.JSX.Element;
1155
-
1156
- type OakLinkProps = {
1157
- iconName?: OakIconProps["iconName"];
1158
- isTrailingIcon?: boolean;
1159
- isLoading?: boolean;
1160
- };
1161
- type OakLinkComponent = <C extends React__default.ElementType = "a">(props: PolymorphicPropsWithRef<C> & OakLinkProps) => React__default.ReactNode;
1162
- /**
1163
- * A blue link with an optional icon and loading state.
1164
- *
1165
- * Defaulting to a `HTMLAnchorElement` this component is polymorphic and can be rendered as a button or any other element.
1166
- */
1167
- declare const OakLink: OakLinkComponent;
1168
-
1169
- type OakQuizCheckBoxProps = Omit<BaseCheckBoxProps, "defaultChecked"> & {
1170
- feedback?: "correct" | "incorrect" | null;
1171
- image?: React__default.JSX.Element;
1172
- innerRef?: React__default.RefObject<HTMLInputElement>;
1173
- displayValue?: string;
1174
- };
1175
- declare const OakQuizCheckBox: (props: OakQuizCheckBoxProps) => React__default.JSX.Element;
1176
-
1177
- type OakQuizTextInputProps = Omit<OakTextInputProps, "validity" | "iconName" | "iconAlt" | "isTrailingIcon"> & {
1178
- /**
1179
- * Alters the appearance of the input to indicate whether or not a correct answer was given.
1180
- * Also sets the input to read-only.
1181
- */
1182
- feedback?: "correct" | "incorrect" | null;
1183
- };
1184
- declare const OakQuizTextInput: ({ feedback, readOnly, ...props }: OakQuizTextInputProps) => React__default.JSX.Element;
1185
-
1186
- type OakQuizRadioButtonProps = OakRadioButtonProps & {
1187
- feedback?: "correct" | "incorrect" | null;
1188
- image?: JSX.Element;
1189
- };
1190
- declare const OakQuizRadioButton: (props: OakQuizRadioButtonProps) => React__default.JSX.Element;
1191
-
1192
- type OakQuizHintProps = {
1193
- /**
1194
- * Some content to give as a hint to answer a question
1195
- */
1196
- hint: ReactNode;
1197
- };
1198
- /**
1199
- * Presents a button which will show a hint when clicked
1200
- */
1201
- declare const OakQuizHint: ({ hint }: OakQuizHintProps) => React__default.JSX.Element;
1202
-
1203
- type OakQuizFeedbackProps = {
1204
- /**
1205
- * Feedback for an answer
1206
- * `partially-correct` can be used to feedback on a multi-answer MCQ where some
1207
- * correct options were not selected and/or some incorrect answers were selected
1208
- */
1209
- feedback: "correct" | "incorrect" | "partially-correct";
1210
- /**
1211
- * Some additional content to present with the feedback.
1212
- * This is likely the correct answer(s) to the question or some praise.
1213
- *
1214
- * Only displayed when `feedback` has been applied.
1215
- */
1216
- answerFeedback?: ReactNode;
1217
- };
1218
- /**
1219
- * Gives feedback after a question has been answered
1220
- */
1221
- declare const OakQuizFeedback: ({ feedback, answerFeedback, }: OakQuizFeedbackProps) => React__default.JSX.Element;
1222
-
1223
- type OakLessonBottomNavProps = {
1224
- children?: ReactNode;
1225
- feedback?: OakQuizFeedbackProps["feedback"] | null;
1226
- answerFeedback?: OakQuizFeedbackProps["answerFeedback"];
1227
- hint?: OakQuizHintProps["hint"];
1228
- };
1229
- /**
1230
- * Renders feedback for an answer and onward navigation buttons to continue the lesson
1231
- */
1232
- declare const OakLessonBottomNav: ({ hint, feedback, answerFeedback, children, }: OakLessonBottomNavProps) => React__default.JSX.Element;
1233
-
1234
- type LessonSectionName$1 = "intro" | "starter-quiz" | "video" | "exit-quiz";
1235
- type OakLessonTopNavProps = {
1236
- lessonSectionName: LessonSectionName$1;
1237
- /**
1238
- * Slot to render `OakBackLink` or similar
1239
- */
1240
- backLinkSlot: ReactNode;
1241
- heading: ReactNode;
1242
- /**
1243
- * Displayed at the mobile breakpoint where the counter is not rendered.
1244
- * Provides alternative content for the counter/progress in the lesson.
1245
- */
1246
- mobileSummary: ReactNode;
1247
- /**
1248
- * Slot to render `OakQuizCounter` or similar
1249
- */
1250
- counterSlot?: ReactNode;
1251
- };
1252
- /**
1253
- * Controls for navigating back and displaying progress in a lesson
1254
- */
1255
- declare const OakLessonTopNav: ({ lessonSectionName, backLinkSlot, counterSlot, heading, mobileSummary, }: OakLessonTopNavProps) => React__default.JSX.Element;
1256
-
1257
- type OakQuizCounterProps = {
1258
- counter: number;
1259
- total: number;
1260
- };
1261
- declare const OakQuizCounter: (props: OakQuizCounterProps) => React__default.JSX.Element;
1262
-
1263
- type LessonSectionName = "overview" | "intro" | "starter-quiz" | "video" | "exit-quiz" | "review";
1264
- type OakLessonLayoutProps = {
1265
- lessonSectionName: LessonSectionName;
1266
- topNavSlot: ReactNode;
1267
- bottomNavSlot: ReactNode;
1268
- children: ReactNode;
1269
- };
1270
- /**
1271
- * Provides overall page layout and colours for the sections of a lesson.
1272
- */
1273
- declare const OakLessonLayout: ({ lessonSectionName, topNavSlot, bottomNavSlot, children, }: OakLessonLayoutProps) => React__default.JSX.Element;
1274
-
1275
- type OakHintButtonProps = {
1276
- isOpen: boolean;
1277
- onClick?: MouseEventHandler;
1278
- isLoading?: boolean;
1279
- disabled?: boolean;
1280
- };
1281
- declare const OakHintButton: (props: OakHintButtonProps) => React__default.JSX.Element;
1282
-
1283
- type BaseOakLessonNavItemProps<C extends ElementType> = {
1284
- as?: C;
1285
- /**
1286
- * Disable the section preventing navigation to it.
1287
- */
1288
- disabled?: boolean;
1289
- } & ComponentPropsWithoutRef<C>;
1290
- type QuizSectionProps$1 = {
1291
- lessonSectionName: "starter-quiz" | "exit-quiz";
1292
- /**
1293
- * The number of questions in the quiz
1294
- */
1295
- numQuestions: number;
1296
- /**
1297
- * The number of questions answered correctly
1298
- */
1299
- grade: number;
1300
- };
1301
- type VideoSectionProps$1 = {
1302
- lessonSectionName: "video";
1303
- };
1304
- type IntroSectionProps$1 = {
1305
- lessonSectionName: "intro";
1306
- };
1307
- type SectionProps = {
1308
- /**
1309
- * Denotes the progress in the lesson section
1310
- */
1311
- progress: "not-started" | "in-progress" | "complete";
1312
- } & (IntroSectionProps$1 | QuizSectionProps$1 | VideoSectionProps$1);
1313
- type OakLessonNavItemProps<C extends ElementType> = BaseOakLessonNavItemProps<C> & SectionProps;
1314
- /**
1315
- * Enables navigation to the given section of a lesson as well as displaying current progress
1316
- */
1317
- declare const OakLessonNavItem: <C extends React__default.ElementType = "a">(props: OakLessonNavItemProps<C>) => React__default.JSX.Element;
1318
-
1319
- type BaseOakLessonReviewItemProps = {
1320
- completed: boolean;
1321
- };
1322
- type QuizSectionProps = {
1323
- lessonSectionName: "starter-quiz" | "exit-quiz";
1324
- /**
1325
- * The number of questions in the quiz
1326
- */
1327
- numQuestions: number;
1328
- /**
1329
- * The number of questions answered correctly
1330
- */
1331
- grade: number;
1332
- };
1333
- type VideoSectionProps = {
1334
- lessonSectionName: "video";
1335
- };
1336
- type IntroSectionProps = {
1337
- lessonSectionName: "intro";
1338
- };
1339
- type OakLessonReviewItemProps = BaseOakLessonReviewItemProps & (IntroSectionProps | QuizSectionProps | VideoSectionProps);
1340
- declare const OakLessonReviewItem: (props: OakLessonReviewItemProps) => React__default.JSX.Element;
1341
-
1342
- type OakSubjectIconProps = Pick<OakHandDrawnBoxWithIconProps, "iconName" | "fill" | "iconColor" | "alt"> & {
1343
- iconName: `subject-${string}`;
1344
- showPromoTag?: boolean;
1345
- };
1346
- /**
1347
- * A large illuminated hand-drawn box with a subject icon in the center
1348
- *
1349
- * Accepts an optional `showPromoTag` prop to display a "New" tag in the top left corner
1350
- */
1351
- declare const OakSubjectIcon: ({ showPromoTag, ...rest }: OakSubjectIconProps) => React__default.JSX.Element;
1352
-
1353
- type Url = string | UrlObject;
1354
- type OakPrimaryNavItemProps = {
1355
- href: Url;
1356
- isCurrent?: boolean;
1357
- shallow?: boolean;
1358
- children: ReactNode;
1359
- } & OakPrimaryButtonProps & OakPrimaryInvertedButtonProps;
1360
- declare const OakPrimaryNavItem: ({ href, isCurrent, shallow, children, }: OakPrimaryNavItemProps) => React__default.JSX.Element;
1361
-
1362
- type OakPrimaryNavProps = {
1363
- ariaLabel?: string;
1364
- navItems: OakPrimaryNavItemProps[];
1365
- };
1366
- declare const OakPrimaryNav: ({ ariaLabel, navItems }: OakPrimaryNavProps) => React__default.JSX.Element;
1367
-
1368
- type OakLessonVideoTranscriptProps = {
1369
- /**
1370
- * The transcript content
1371
- */
1372
- children: ReactNode;
1373
- /**
1374
- * The id of the collapsible content element. This is used to link the button to the content
1375
- */
1376
- id: string;
1377
- /**
1378
- * A control to toggle the video to display sign language
1379
- */
1380
- signLanguageControl?: ReactNode;
1381
- };
1382
- /**
1383
- * Display a togglable video transcript with a slot to display a sign language control
1384
- */
1385
- declare const OakLessonVideoTranscript: ({ children, id, signLanguageControl, }: OakLessonVideoTranscriptProps) => React__default.JSX.Element;
1386
-
1387
- export { HeadingTagComponent, type OakAllSpacingToken, OakBackLink, type OakBackLinkProps, type OakBorderRadiusToken, type OakBorderWidthToken, OakBox, type OakBoxProps, OakBulletList, type OakBulletListProps, OakCardHeader, type OakCardHeaderprops, OakCheckBox, type OakCheckBoxProps, OakCloudinaryConfigProvider, OakCloudinaryImage, type OakCloudinaryImageProps, OakCollapsibleContent, type OakCollapsibleContentProps, type OakColorToken, type OakCombinedColorToken, type OakCombinedSpacingToken, type OakDropShadowToken, OakFieldError, type OakFieldErrorProps, OakFlex, type OakFlexProps, type OakFontSizeToken, type OakFontToken, OakForm, type OakFormProps, OakGrid, OakGridArea, type OakGridAreaProps, type OakGridProps, type OakHandDrawnBoxWithIconProps, OakHandDrawnCard, type OakHandDrawnCardProps, OakHandDrawnCardWithIcon, OakHeading, type OakHeadingProps, type OakHeadingTag, OakHintButton, type OakHintButtonProps, OakIcon, type OakIconName, type OakIconProps, OakImage, type OakImageProps, type OakInfoCardProps, type OakInnerPaddingToken, OakLI, type OakLIProps, OakLabel, type OakLabelProps, OakLessonBottomNav, type OakLessonBottomNavProps, OakLessonInfoCard, OakLessonLayout, type OakLessonLayoutProps, OakLessonNavItem, type OakLessonNavItemProps, OakLessonReviewItem, type OakLessonReviewItemProps, OakLessonTopNav, type OakLessonTopNavProps, OakLessonVideoTranscript, OakLink, type OakLinkProps, OakLoadingSpinner, type OakLoadingSpinnerProps, OakMaxWidth, OakOL, type OakOLProps, type OakOpacityToken, OakP, type OakPProps, OakPrimaryButton, type OakPrimaryButtonProps, OakPrimaryInvertedButton, type OakPrimaryInvertedButtonProps, OakPrimaryNav, OakPrimaryNavItem, type OakPrimaryNavItemProps, type OakPrimaryNavProps, OakPromoTag, OakQuizCheckBox, type OakQuizCheckBoxProps, OakQuizCounter, type OakQuizCounterProps, OakQuizFeedback, type OakQuizFeedbackProps, OakQuizHint, type OakQuizHintProps, OakQuizRadioButton, type OakQuizRadioButtonProps, OakQuizTextInput, OakRadioButton, OakRadioGroup, OakRoundIcon, type OakRoundIconProps, OakSecondaryButton, type OakSecondaryButtonProps, type OakSpaceBetweenToken, OakSpan, type OakSpanProps, OakStaticMessageCard, OakSubjectIcon, type OakSubjectIconProps, OakTertiaryButton, OakTextInput, type OakTextInputProps, type OakTheme, OakThemeProvider, type OakThemeProviderProps, OakTooltip, type OakTransitionToken, OakTypography, type OakTypographyProps, OakUL, type OakULProps, type OakUiRoleToken, isValidIconName, oakAllSpacingTokens, oakBorderRadiusTokens, oakBorderWidthTokens, oakBoxCss, oakColorTokens, oakDefaultTheme, oakDropShadowTokens, oakFontSizeTokens, oakFontTokens, oakHeadingTags, oakIconNames, oakInnerPaddingTokens, oakOpacityTokens, oakSpaceBetweenTokens, oakTransitionTokens, oakUiRoleTokens };