@oaknational/oak-components 0.2.0 → 0.2.1

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.
@@ -0,0 +1,2254 @@
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, ReactNode, ComponentPropsWithRef, FocusEvent, DetailedHTMLProps, InputHTMLAttributes, ChangeEventHandler, ReactElement, ComponentProps } from 'react';
5
+ import * as csstype from 'csstype';
6
+ import * as Image from 'next/image';
7
+ import Image__default, { ImageProps as ImageProps$1 } from 'next/image';
8
+ import * as next_dist_shared_lib_get_img_props from 'next/dist/shared/lib/get-img-props';
9
+ import * as _cloudinary_util_url_loader_dist_schema_UX7RRFIR from '@cloudinary-util/url-loader/dist/schema-UX7RRFIR';
10
+ import { CldImage } from 'next-cloudinary';
11
+ import { DndContextProps } from '@dnd-kit/core';
12
+ import { UrlObject } from 'url';
13
+
14
+ declare const oakColorTokens: {
15
+ white: string;
16
+ grey10: string;
17
+ grey20: string;
18
+ grey30: string;
19
+ grey40: string;
20
+ grey50: string;
21
+ grey60: string;
22
+ grey70: string;
23
+ black: string;
24
+ oakGreen: string;
25
+ mint: string;
26
+ mint30: string;
27
+ mint50: string;
28
+ mint110: string;
29
+ aqua: string;
30
+ aqua30: string;
31
+ aqua50: string;
32
+ aqua110: string;
33
+ lavender: string;
34
+ lavender30: string;
35
+ lavender50: string;
36
+ lavender110: string;
37
+ pink: string;
38
+ pink30: string;
39
+ pink50: string;
40
+ pink110: string;
41
+ lemon: string;
42
+ lemon30: string;
43
+ lemon50: string;
44
+ lemon110: string;
45
+ amber: string;
46
+ amber30: string;
47
+ amber50: string;
48
+ red: string;
49
+ red30: string;
50
+ red50: string;
51
+ navy: string;
52
+ navy110: string;
53
+ navy120: string;
54
+ blue: string;
55
+ magenta: string;
56
+ purple: string;
57
+ teal: string;
58
+ transparent: string;
59
+ };
60
+ type OakColorToken = keyof typeof oakColorTokens;
61
+ /**
62
+ *
63
+ * Use this tool to convert Hex to color filter values https://codepen.io/sosuke/pen/Pjoqqp
64
+ *
65
+ */
66
+ declare const oakColorFilterTokens: {
67
+ black: string;
68
+ red: string;
69
+ oakGreen: string;
70
+ white: string;
71
+ grey40: string;
72
+ grey50: string;
73
+ navy: string;
74
+ navy110: string;
75
+ navy120: string;
76
+ };
77
+ type OakColorFilterToken = keyof typeof oakColorFilterTokens;
78
+ 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"];
79
+ type OakUiRoleToken = (typeof oakUiRoleTokens)[number];
80
+ type UiRoleMap = Record<OakUiRoleToken, OakColorToken | null | undefined>;
81
+ type OakCombinedColorToken = OakColorToken | OakUiRoleToken;
82
+
83
+ type OakTheme = {
84
+ name: string;
85
+ uiColors: UiRoleMap;
86
+ };
87
+
88
+ type ResponsiveValues<Value> = (Value | null) | (Value | null)[];
89
+
90
+ declare const oakAllSpacingTokens: {
91
+ "all-spacing-0": number;
92
+ "all-spacing-1": number;
93
+ "all-spacing-2": number;
94
+ "all-spacing-3": number;
95
+ "all-spacing-4": number;
96
+ "all-spacing-5": number;
97
+ "all-spacing-6": number;
98
+ "all-spacing-7": number;
99
+ "all-spacing-8": number;
100
+ "all-spacing-9": number;
101
+ "all-spacing-10": number;
102
+ "all-spacing-11": number;
103
+ "all-spacing-12": number;
104
+ "all-spacing-13": number;
105
+ "all-spacing-14": number;
106
+ "all-spacing-15": number;
107
+ "all-spacing-16": number;
108
+ "all-spacing-17": number;
109
+ "all-spacing-18": number;
110
+ "all-spacing-19": number;
111
+ "all-spacing-20": number;
112
+ "all-spacing-21": number;
113
+ "all-spacing-22": number;
114
+ "all-spacing-23": number;
115
+ "all-spacing-24": number;
116
+ };
117
+ type OakAllSpacingToken = keyof typeof oakAllSpacingTokens;
118
+ declare const oakInnerPaddingTokens: {
119
+ "inner-padding-none": string;
120
+ "inner-padding-ssx": string;
121
+ "inner-padding-xs": string;
122
+ "inner-padding-s": string;
123
+ "inner-padding-m": string;
124
+ "inner-padding-l": string;
125
+ "inner-padding-xl": string;
126
+ };
127
+ type OakInnerPaddingToken = keyof typeof oakInnerPaddingTokens;
128
+ declare const oakSpaceBetweenTokens: {
129
+ "space-between-none": string;
130
+ "space-between-sssx": string;
131
+ "space-between-ssx": string;
132
+ "space-between-xs": string;
133
+ "space-between-s": string;
134
+ "space-between-m": string;
135
+ "space-between-m2": string;
136
+ "space-between-l": string;
137
+ "space-between-xl": string;
138
+ "space-between-xxl": string;
139
+ "space-between-xxxl": string;
140
+ };
141
+ type OakSpaceBetweenToken = keyof typeof oakSpaceBetweenTokens;
142
+ type AdditionalSpacingTypes = "100%" | 0 | "100vh" | "100vw" | "auto" | "fit-content" | "max-content" | "min-content" | "inherit" | "initial" | "unset";
143
+ type OakCombinedSpacingToken = OakAllSpacingToken | OakInnerPaddingToken | OakSpaceBetweenToken | AdditionalSpacingTypes;
144
+
145
+ type PaddingValues = ResponsiveValues<OakInnerPaddingToken | null | undefined>;
146
+ type PaddingStyleProps = {
147
+ /**
148
+ * Applies `padding` to all sides of the element
149
+ *
150
+ * Accepts an inner padding token or a responsive array of inner padding tokens. Can be nulled.
151
+ */
152
+ $pa?: PaddingValues;
153
+ /**
154
+ * Applies `padding` to the left and right of the element
155
+ *
156
+ * Accepts an inner padding token or a responsive array of inner padding tokens. Can be nulled.
157
+ */
158
+ $ph?: PaddingValues;
159
+ /**
160
+ * Applies `padding` to the top and bottom of the element
161
+ *
162
+ * Accepts an inner padding token or a responsive array of inner padding tokens. Can be nulled.
163
+ */
164
+ $pv?: PaddingValues;
165
+ /**
166
+ * Applies `padding` to the left of the element
167
+ *
168
+ * Accepts an inner padding token or a responsive array of inner padding tokens. Can be nulled.
169
+ */
170
+ $pl?: PaddingValues;
171
+ /**
172
+ * Applies `padding` to the right of the element
173
+ *
174
+ * Accepts an inner padding token or a responsive array of inner padding tokens. Can be nulled.
175
+ */
176
+ $pr?: PaddingValues;
177
+ /**
178
+ * Applies `padding` to the top of the element
179
+ *
180
+ * Accepts an inner padding token or a responsive array of inner padding tokens. Can be nulled.
181
+ */
182
+ $pt?: PaddingValues;
183
+ /**
184
+ * Applies `padding` to the bottom of the element
185
+ *
186
+ * Accepts an inner padding token or a responsive array of inner padding tokens. Can be nulled.
187
+ */
188
+ $pb?: PaddingValues;
189
+ };
190
+ type MarginValue = "auto" | OakSpaceBetweenToken | null | undefined;
191
+ type MarginValues = ResponsiveValues<MarginValue>;
192
+ type MarginStyleProps = {
193
+ /**
194
+ * Applies `margin` to all sides of the element
195
+ *
196
+ * Accepts a space between token or a responsive array of space between tokens. Can be nulled.
197
+ */
198
+ $ma?: MarginValues;
199
+ /**
200
+ * Applies `margin` to the left and right of the element
201
+ *
202
+ * Accepts a space between token or a responsive array of space between tokens. Can be nulled.
203
+ */
204
+ $mh?: MarginValues;
205
+ /**
206
+ * Applies `margin` to the top and bottom of the element
207
+ *
208
+ * Accepts a space between token or a responsive array of space between tokens. Can be nulled.
209
+ */
210
+ $mv?: MarginValues;
211
+ /**
212
+ * Applies `margin` to the left of the element
213
+ *
214
+ * Accepts a space between token or a responsive array of space between tokens. Can be nulled.
215
+ */
216
+ $ml?: MarginValues;
217
+ /**
218
+ * Applies `margin` to the right of the element
219
+ *
220
+ * Accepts a space between token or a responsive array of space between tokens. Can be nulled.
221
+ */
222
+ $mr?: MarginValues;
223
+ /**
224
+ * Applies `margin` to the top of the element
225
+ *
226
+ * Accepts a space between token or a responsive array of space between tokens. Can be nulled.
227
+ */
228
+ $mt?: MarginValues;
229
+ /**
230
+ * Applies `margin` to the bottom of the element
231
+ *
232
+ * Accepts a space between token or a responsive array of space between tokens. Can be nulled.
233
+ */
234
+ $mb?: MarginValues;
235
+ };
236
+ type SpacingStyleProps = PaddingStyleProps & MarginStyleProps;
237
+
238
+ /**
239
+ * Color token!
240
+ */
241
+ type ColorToken = ResponsiveValues<OakCombinedColorToken | null>;
242
+ type ColorStyleProps = {
243
+ /**
244
+ * Sets the `color` of the element.
245
+ *
246
+ * Accepts a color token or a responsive array of color tokens.
247
+ */
248
+ $color?: ColorToken;
249
+ /**
250
+ * Sets the `background-color` of the element.
251
+ *
252
+ * Accepts a color token or a responsive array of color tokens.
253
+ */
254
+ $background?: ColorToken;
255
+ };
256
+
257
+ type PositionSpacing = OakAllSpacingToken | OakSpaceBetweenToken | null | undefined;
258
+ type PositionStyleProps = {
259
+ /**
260
+ * Sets the `position` CSS property of the element.
261
+ *
262
+ * Accepts a `position` value or a responsive array of `position` values. Can be nulled.
263
+ */
264
+ $position?: ResponsiveValues<CSSProperties["position"]>;
265
+ /**
266
+ * Sets the `top` CSS property of the element.
267
+ *
268
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
269
+ */
270
+ $top?: ResponsiveValues<PositionSpacing>;
271
+ /**
272
+ * Sets the `right` CSS property of the element.
273
+ *
274
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
275
+ */
276
+ $right?: ResponsiveValues<PositionSpacing>;
277
+ /**
278
+ * Sets the `bottom` CSS property of the element.
279
+ *
280
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
281
+ */
282
+ $bottom?: ResponsiveValues<PositionSpacing>;
283
+ /**
284
+ * Sets the `left` CSS property of the element.
285
+ *
286
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
287
+ */
288
+ $left?: ResponsiveValues<PositionSpacing>;
289
+ /**
290
+ * Sets the `inset` CSS property of the element.
291
+ *
292
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
293
+ */
294
+ $inset?: ResponsiveValues<PositionSpacing>;
295
+ /**
296
+ * Sets the `overflow` CSS property of the element.
297
+ *
298
+ * Accepts an `overflow` value or a responsive array of `overflow` values.
299
+ */
300
+ $overflow?: ResponsiveValues<CSSProperties["overflow"]>;
301
+ /**
302
+ * Sets the `overflow-x` CSS property of the element.
303
+ *
304
+ * Accepts an `overflow-x` value or a responsive array of `overflow-x` values.
305
+ */
306
+ $overflowX?: ResponsiveValues<CSSProperties["overflowX"]>;
307
+ /**
308
+ * Sets the `overflow-y` CSS property of the element.
309
+ *
310
+ * Accepts an `overflow-y` value or a responsive array of `overflow-y` values.
311
+ */
312
+ $overflowY?: ResponsiveValues<CSSProperties["overflowY"]>;
313
+ /**
314
+ * Sets the `object-fit` CSS property of the element.
315
+ *
316
+ * Accepts an `object-fit` value or a responsive array of `object-fit` values.
317
+ */
318
+ $objectFit?: ResponsiveValues<CSSProperties["objectFit"]>;
319
+ /**
320
+ * Sets the `pointer-events` CSS property of the element.
321
+ *
322
+ * Accepts a `pointer-events` value or a responsive array of `pointer-events` values.
323
+ */
324
+ $pointerEvents?: ResponsiveValues<CSSProperties["pointerEvents"]>;
325
+ /**
326
+ * Sets the `visibility` CSS property of the element.
327
+ *
328
+ * Accepts a `visibility` value or a responsive array of `visibility` values.
329
+ */
330
+ $visibility?: ResponsiveValues<CSSProperties["visibility"]>;
331
+ };
332
+
333
+ type SizeValues = ResponsiveValues<OakCombinedSpacingToken | null | undefined>;
334
+ type SizeStyleProps = {
335
+ /**
336
+ * Sets the `width` CSS property of the element.
337
+ *
338
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
339
+ */
340
+ $width?: SizeValues;
341
+ /**
342
+ * Sets the `min-width` CSS property of the element.
343
+ *
344
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
345
+ */
346
+ $minWidth?: SizeValues;
347
+ /**
348
+ * Sets the `max-width` CSS property of the element.
349
+ *
350
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
351
+ */
352
+ $maxWidth?: SizeValues;
353
+ /**
354
+ * Sets the `height` CSS property of the element.
355
+ *
356
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
357
+ */
358
+ $height?: SizeValues;
359
+ /**
360
+ * Sets the `min-height` CSS property of the element.
361
+ *
362
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
363
+ */
364
+ $minHeight?: SizeValues;
365
+ /**
366
+ * Sets the `max-height` CSS property of the element.
367
+ *
368
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
369
+ */
370
+ $maxHeight?: SizeValues;
371
+ /**
372
+ * Sets the `aspect-ratio` CSS property of the element.
373
+ *
374
+ * Accepts an `aspect-ratio` value or a responsive array of `aspect-ratio` values.
375
+ */
376
+ $aspectRatio?: ResponsiveValues<CSSProperties$1["aspectRatio"]>;
377
+ /**
378
+ * Sets the `box-sizing` CSS property of the element.
379
+ *
380
+ * Accepts a `box-sizing` value or a responsive array of `box-sizing` values.
381
+ */
382
+ $boxSizing?: ResponsiveValues<CSSProperties$1["boxSizing"]>;
383
+ };
384
+
385
+ declare const oakBorderWidthTokens: {
386
+ "border-solid-none": number;
387
+ "border-solid-s": number;
388
+ "border-solid-m": number;
389
+ "border-solid-l": number;
390
+ "border-solid-xl": number;
391
+ };
392
+ declare const oakBorderRadiusTokens: {
393
+ "border-radius-square": number;
394
+ "border-radius-xs": number;
395
+ "border-radius-s": number;
396
+ "border-radius-m": number;
397
+ "border-radius-m2": number;
398
+ "border-radius-l": number;
399
+ "border-radius-xl": number;
400
+ "border-radius-circle": number;
401
+ };
402
+ type OakBorderRadiusToken = keyof typeof oakBorderRadiusTokens;
403
+ type OakBorderWidthToken = keyof typeof oakBorderWidthTokens;
404
+
405
+ type BorderWidth = ResponsiveValues<OakBorderWidthToken>;
406
+ type _BorderStyleProps = ResponsiveValues<CSSProperties$1["borderStyle"]>;
407
+ type BorderColorProps = ResponsiveValues<OakCombinedColorToken>;
408
+ type BorderRadiusProps = ResponsiveValues<OakBorderRadiusToken>;
409
+ type BorderStyleProps = {
410
+ /**
411
+ * Apply border on all sides
412
+ *
413
+ * Accepts a border-width token or a responsive array of border-width tokens
414
+ */
415
+ $ba?: BorderWidth;
416
+ /**
417
+ * Apply border to the top
418
+ *
419
+ * Accepts a border-width token or a responsive array of border-width tokens
420
+ */
421
+ $bt?: BorderWidth;
422
+ /**
423
+ * Apply border to the right
424
+ *
425
+ * Accepts a border-width token or a responsive array of border-width tokens
426
+ */
427
+ $br?: BorderWidth;
428
+ /**
429
+ * Apply border to the bottom
430
+ *
431
+ * Accepts a border-width token or a responsive array of border-width tokens
432
+ */
433
+ $bb?: BorderWidth;
434
+ /**
435
+ * Apply border to the left
436
+ *
437
+ * Accepts a border-width token or a responsive array of border-width tokens
438
+ */
439
+ $bl?: BorderWidth;
440
+ /**
441
+ * Apply border to the left and right
442
+ *
443
+ * Accepts a border-width token or a responsive array of border-width tokens
444
+ */
445
+ $bh?: BorderWidth;
446
+ /**
447
+ * Apply border to the top and bottom
448
+ *
449
+ * Accepts a border-width token or a responsive array of border-width tokens
450
+ */
451
+ $bv?: BorderWidth;
452
+ /**
453
+ * Apply `border-style` to the element
454
+ *
455
+ * Accepts a single value or a responsive array of values.
456
+ */
457
+ $borderStyle?: _BorderStyleProps;
458
+ /**
459
+ * Apply a border color to all sides of the element
460
+ *
461
+ * Accepts a color token or a responsive array of color tokens.
462
+ */
463
+ $borderColor?: BorderColorProps;
464
+ $borderRadius?: BorderRadiusProps;
465
+ /**
466
+ * Apply border radius to the top left
467
+ *
468
+ * Accepts an `OakBorderRadiusToken` or a responsive array of `OakBorderRadiusToken`s.
469
+ */
470
+ $btlr?: BorderRadiusProps;
471
+ /**
472
+ * Apply border radius to the top right
473
+ *
474
+ * Accepts a border-radius token or a responsive array of border-radius tokens.
475
+ */
476
+ $btrr?: BorderRadiusProps;
477
+ /**
478
+ * Apply border radius to the bottom left
479
+ *
480
+ * Accepts a border-radius token or a responsive array of border-radius tokens.
481
+ */
482
+ $bblr?: BorderRadiusProps;
483
+ /**
484
+ * Apply border radius to the bottom right
485
+ *
486
+ * Accepts a border-radius token or a responsive array of border-radius tokens.
487
+ */
488
+ $bbrr?: BorderRadiusProps;
489
+ /**
490
+ * Apply border radius to the top right and top left
491
+ *
492
+ * Accepts a border-radius token or a responsive array of border-radius tokens.
493
+ */
494
+ $btr?: BorderRadiusProps;
495
+ /**
496
+ * Apply border radius to the bottom right and bottom left
497
+ *
498
+ * Accepts a border-radius token or a responsive array of border-radius tokens
499
+ */
500
+ $bbr?: BorderRadiusProps;
501
+ };
502
+
503
+ type DisplayStyleProps = {
504
+ /**
505
+ * Sets the `display` CSS property of the element.
506
+ *
507
+ * Accepts a `display` value or a responsive array of `display` values.
508
+ */
509
+ $display?: ResponsiveValues<CSSProperties["display"]>;
510
+ };
511
+
512
+ declare const oakDropShadowTokens: {
513
+ "drop-shadow-standard": string;
514
+ "drop-shadow-lemon": string;
515
+ "drop-shadow-wide-lemon": string;
516
+ "drop-shadow-centered-lemon": string;
517
+ "drop-shadow-grey": string;
518
+ "drop-shadow-centered-grey": string;
519
+ };
520
+ type OakDropShadowToken = keyof typeof oakDropShadowTokens;
521
+
522
+ type DropShadowStyleProps = {
523
+ /**
524
+ * Applies a drop-shadow to the element.
525
+ *
526
+ * Accepts a drop-shadow token or a responsive array of drop-shadow tokens.
527
+ */
528
+ $dropShadow?: ResponsiveValues<OakDropShadowToken>;
529
+ };
530
+
531
+ declare const oakOpacityTokens: {
532
+ transparent: number;
533
+ "semi-transparent": number;
534
+ "semi-opaque": number;
535
+ opaque: number;
536
+ };
537
+ type OakOpacityToken = keyof typeof oakOpacityTokens;
538
+
539
+ type OpacityStyleProps = {
540
+ /**
541
+ * Sets the `opacity` CSS property of the element.
542
+ *
543
+ * Accepts an opacity token or a responsive array of opacity tokens.
544
+ */
545
+ $opacity?: ResponsiveValues<OakOpacityToken>;
546
+ };
547
+
548
+ type TransformStyleProps = {
549
+ /**
550
+ * Sets the `transform` CSS property of the element.
551
+ *
552
+ * Accepts a `transform` value or a responsive array of `transform` values. Can be nulled.
553
+ */
554
+ $transform?: ResponsiveValues<CSSProperties$1["transform"] | null>;
555
+ /**
556
+ * Sets the `transform-origin` CSS property of the element.
557
+ *
558
+ * Accepts a `transform-origin` value or a responsive array of `transform-origin` values. Can be nulled.
559
+ */
560
+ $transformOrigin?: ResponsiveValues<CSSProperties$1["transformOrigin"] | null>;
561
+ };
562
+
563
+ declare const oakTransitionTokens: {
564
+ "standard-ease": string;
565
+ "standard-transform": string;
566
+ };
567
+ type OakTransitionToken = keyof typeof oakTransitionTokens;
568
+
569
+ type Transition = OakTransitionToken;
570
+ type TransitionStyleProps = {
571
+ /**
572
+ * Sets the `transition` CSS property of the element.
573
+ *
574
+ * Accepts a transition token or a responsive array of transition tokens.
575
+ */
576
+ $transition?: ResponsiveValues<Transition>;
577
+ };
578
+
579
+ declare const oakFontSizeTokens: {
580
+ "font-size-1": number;
581
+ "font-size-2": number;
582
+ "font-size-3": number;
583
+ "font-size-4": number;
584
+ "font-size-5": number;
585
+ "font-size-6": number;
586
+ "font-size-7": number;
587
+ "font-size-8": number;
588
+ "font-size-9": number;
589
+ "font-size-10": number;
590
+ };
591
+ type OakFontSizeToken = keyof typeof oakFontSizeTokens;
592
+ declare const oakFontTokens: {
593
+ "heading-1": ["font-size-10", 64, 600, "0.0115rem"];
594
+ "heading-2": ["font-size-9", 56, 600, "0.0115rem"];
595
+ "heading-3": ["font-size-8", 48, 600, "0.0115rem"];
596
+ "heading-4": ["font-size-7", 40, 600, "0.0115rem"];
597
+ "heading-5": ["font-size-6", 32, 600, "0.0115rem"];
598
+ "heading-6": ["font-size-5", 24, 600, "0.0115rem"];
599
+ "heading-7": ["font-size-3", 20, 600, "0.0115rem"];
600
+ "heading-light-1": ["font-size-10", 64, 400, "0.0115rem"];
601
+ "heading-light-2": ["font-size-9", 56, 400, "0.0115rem"];
602
+ "heading-light-3": ["font-size-8", 48, 400, "0.0115rem"];
603
+ "heading-light-4": ["font-size-7", 40, 400, "0.0115rem"];
604
+ "heading-light-5": ["font-size-6", 32, 400, "0.0115rem"];
605
+ "heading-light-6": ["font-size-5", 24, 400, "0.0115rem"];
606
+ "heading-light-7": ["font-size-3", 20, 400, "0.0115rem"];
607
+ "body-1": ["font-size-4", 28, 300, "-0.005rem"];
608
+ "body-2": ["font-size-3", 24, 300, "-0.005rem"];
609
+ "body-3": ["font-size-2", 20, 300, "-0.005rem"];
610
+ "body-4": ["font-size-1", 16, 300, "-0.005rem"];
611
+ "body-1-bold": ["font-size-4", 28, 700, "-0.005rem"];
612
+ "body-2-bold": ["font-size-3", 24, 700, "-0.005rem"];
613
+ "body-3-bold": ["font-size-2", 20, 700, "-0.005rem"];
614
+ "list-item-1": ["font-size-4", 32, 300, "-0.005rem"];
615
+ "list-item-2": ["font-size-3", 24, 300, "-0.005rem"];
616
+ };
617
+ type OakFontToken = keyof typeof oakFontTokens;
618
+ declare const oakTextDecorations: readonly ["underline", "overline", "line-through", "none"];
619
+ declare const oakWhiteSpaces: readonly ["normal", "nowrap", "pre", "pre-wrap", "pre-line", "break-spaces"];
620
+ declare const oakWordWraps: readonly ["normal", "break-word", "initial", "inherit"];
621
+ declare const oakTextOverflows: readonly ["clip", "ellipsis"];
622
+ type OakTextDecoration = (typeof oakTextDecorations)[number];
623
+ type OakWhiteSpace = (typeof oakWhiteSpaces)[number];
624
+ type OakWordWrap = (typeof oakWordWraps)[number];
625
+ type OakTextOverflow = (typeof oakTextOverflows)[number];
626
+
627
+ type TypographyStyleProps = {
628
+ /**
629
+ * Sets the `font-size`, `line-height`, `font-weight` and `letter-spacing` of the element.
630
+ *
631
+ * Accepts a font token or a responsive array of font tokens.
632
+ */
633
+ $font?: ResponsiveValues<OakFontToken>;
634
+ /**
635
+ * Sets the `text-decoration` CSS property of the element.
636
+ *
637
+ * Accepts a text-decoration token or a responsive array of text-decoration tokens.
638
+ */
639
+ $textDecoration?: ResponsiveValues<OakTextDecoration>;
640
+ /**
641
+ * Sets the `text-align` CSS property of the element.
642
+ *
643
+ * Accepts a `text-align` value or a responsive array of `text-align` values.
644
+ */
645
+ $textAlign?: ResponsiveValues<CSSProperties$1["textAlign"]>;
646
+ /**
647
+ * Sets the `white-space` CSS property of the element.
648
+ *
649
+ * Accepts a white-space token or a responsive array of white-space tokens.
650
+ */
651
+ $whiteSpace?: ResponsiveValues<OakWhiteSpace>;
652
+ /**
653
+ * Sets the `word-wrap` CSS property of the element.
654
+ *
655
+ * Accepts a word-wrap token or a responsive array of word-wrap tokens.
656
+ */
657
+ $wordWrap?: ResponsiveValues<OakWordWrap>;
658
+ /**
659
+ * Sets the `text-overflow` CSS property of the element.
660
+ *
661
+ * Accepts a text-overflow token or a responsive array of text-overflow tokens.
662
+ */
663
+ $textOverflow?: ResponsiveValues<OakTextOverflow>;
664
+ };
665
+
666
+ declare const oakZIndexTokens: {
667
+ readonly behind: -1;
668
+ readonly neutral: 0;
669
+ readonly "in-front": 1;
670
+ readonly "mobile-filters": 2;
671
+ readonly "fixed-header": 100;
672
+ readonly "modal-close-button": 150;
673
+ readonly "modal-dialog": 300;
674
+ };
675
+ type OakZIndexToken = keyof typeof oakZIndexTokens | null;
676
+
677
+ type ZIndexStyleProps = {
678
+ /**
679
+ * Sets the `z-index` CSS property of the element.
680
+ *
681
+ * Accepts a z-index token or a responsive array of z-index tokens.
682
+ */
683
+ $zIndex?: ResponsiveValues<OakZIndexToken>;
684
+ };
685
+
686
+ type HTMLProps$1 = {
687
+ onClick?: MouseEventHandler;
688
+ };
689
+ type OakBoxProps = {
690
+ children?: React.ReactNode;
691
+ } & PositionStyleProps & SizeStyleProps & SpacingStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & HTMLProps$1;
692
+ declare const oakBoxCss: styled_components.FlattenInterpolation<styled_components.ThemedStyledProps<OakBoxProps, styled_components.DefaultTheme>>;
693
+ /**
694
+ * OakBox exposes all the styles that are available styles on a div tag. These include:
695
+ * - color
696
+ * - size
697
+ * - display
698
+ * - spacing
699
+ * - position
700
+ * - border
701
+ * - opacity
702
+ * - z-index
703
+ * - typography
704
+ * - transition
705
+ * - transform
706
+ * - drop-shadow
707
+ *
708
+ */
709
+ declare const OakBox: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
710
+ children?: React.ReactNode;
711
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & HTMLProps$1, never>;
712
+
713
+ type FlexStyleProps = DisplayStyleProps & {
714
+ /**
715
+ * Sets the `flex-direction` CSS property of the element.
716
+ *
717
+ * Accepts a `flex-direction` value or a responsive array of flex-direction values.
718
+ */
719
+ $flexDirection?: ResponsiveValues<CSSProperties["flexDirection"]>;
720
+ /**
721
+ * Sets the `flex-wrap` CSS property of the element.
722
+ *
723
+ * Accepts a `flex-wrap` value or a responsive array of flex-wrap values.
724
+ */
725
+ $flexWrap?: ResponsiveValues<CSSProperties["flexWrap"]>;
726
+ /**
727
+ * Sets the `align-items` CSS property of the element.
728
+ *
729
+ * Accepts an `align-items` value or a responsive array of `align-items` values.
730
+ */
731
+ $alignItems?: ResponsiveValues<CSSProperties["alignItems"]>;
732
+ /**
733
+ * Sets the `align-content` CSS property of the element.
734
+ *
735
+ * Accepts an `align-content` value or a responsive array of `align-content` values.
736
+ */
737
+ $alignContent?: ResponsiveValues<CSSProperties["alignContent"]>;
738
+ /**
739
+ * Sets the `justify-content` CSS property of the element.
740
+ *
741
+ * Accepts a `justify-content` value or a responsive array of `justify-content` values.
742
+ */
743
+ $justifyContent?: ResponsiveValues<CSSProperties["justifyContent"]>;
744
+ /**
745
+ * Sets the `align-self` CSS property of the element.
746
+ *
747
+ * Accepts an `align-self` value or a responsive array of `align-self` values.
748
+ */
749
+ $alignSelf?: ResponsiveValues<CSSProperties["alignSelf"]>;
750
+ /**
751
+ * Sets the `flex-grow` CSS property of the element.
752
+ *
753
+ * Accepts a `flex-grow` value or a responsive array of `flex-grow` values.
754
+ */
755
+ $flexGrow?: ResponsiveValues<CSSProperties["flexGrow"]>;
756
+ /**
757
+ * Sets the `flex-shrink` CSS property of the element.
758
+ *
759
+ * Accepts a `flex-shrink` value or a responsive array of `flex-shrink` values.
760
+ */
761
+ $flexShrink?: ResponsiveValues<CSSProperties["flexShrink"]>;
762
+ /**
763
+ * Sets the `order` CSS property of the element.
764
+ *
765
+ * Accepts an `order` value or a responsive array of `order` values.
766
+ */
767
+ $order?: ResponsiveValues<CSSProperties["order"]>;
768
+ /**
769
+ * Sets the `flex-basis` CSS property of the element.
770
+ *
771
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
772
+ */
773
+ $flexBasis?: ResponsiveValues<OakAllSpacingToken | OakSpaceBetweenToken | null | undefined>;
774
+ /**
775
+ * Sets the `gap` CSS property of the element.
776
+ *
777
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
778
+ */
779
+ $gap?: ResponsiveValues<OakAllSpacingToken | OakSpaceBetweenToken | null | undefined>;
780
+ /**
781
+ * Sets the `column-gap` CSS property of the element.
782
+ *
783
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
784
+ */
785
+ $columnGap?: ResponsiveValues<OakAllSpacingToken | OakSpaceBetweenToken | null | undefined>;
786
+ /**
787
+ * Sets the `row-gap` CSS property of the element.
788
+ *
789
+ * Accepts a spacing token or a responsive array of spacing tokens. Can be nulled.
790
+ */
791
+ $rowGap?: ResponsiveValues<OakAllSpacingToken | OakSpaceBetweenToken | null | undefined>;
792
+ };
793
+
794
+ type OakFlexProps = FlexStyleProps & OakBoxProps;
795
+ /**
796
+ * Flex sets `display: flex;` and exposes various flex props, along with Box
797
+ * props.
798
+ *
799
+ * ## Usage
800
+ * Before adding props to this component, think about whether it makes sense
801
+ * to add it to Box instead, as this component extends that.
802
+ */
803
+ declare const OakFlex: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
804
+ children?: React$1.ReactNode;
805
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
806
+ onClick?: React$1.MouseEventHandler | undefined;
807
+ } & {
808
+ $flexDirection?: ResponsiveValues<csstype.Property.FlexDirection | undefined>;
809
+ $flexWrap?: ResponsiveValues<csstype.Property.FlexWrap | undefined>;
810
+ $alignItems?: ResponsiveValues<csstype.Property.AlignItems | undefined>;
811
+ $alignContent?: ResponsiveValues<csstype.Property.AlignContent | undefined>;
812
+ $justifyContent?: ResponsiveValues<csstype.Property.JustifyContent | undefined>;
813
+ $alignSelf?: ResponsiveValues<csstype.Property.AlignSelf | undefined>;
814
+ $flexGrow?: ResponsiveValues<csstype.Property.FlexGrow | undefined>;
815
+ $flexShrink?: ResponsiveValues<csstype.Property.FlexShrink | undefined>;
816
+ $order?: ResponsiveValues<csstype.Property.Order | undefined>;
817
+ $flexBasis?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
818
+ $gap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
819
+ $columnGap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
820
+ $rowGap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
821
+ }, never>;
822
+
823
+ type OakSpanProps = ColorStyleProps & OpacityStyleProps & MarginStyleProps & PaddingStyleProps & BorderStyleProps & TypographyStyleProps;
824
+ /**
825
+ * Span renders a `span` (inline text) component, exposing all the typography props.
826
+ * ## Usage
827
+ * Use this component when you want to apply styles to a piece of inline text.
828
+ */
829
+ declare const OakSpan: styled_components.StyledComponent<"span", styled_components.DefaultTheme, ColorStyleProps & OpacityStyleProps & MarginStyleProps & PaddingStyleProps & BorderStyleProps & TypographyStyleProps, never>;
830
+
831
+ /**
832
+ *
833
+ * Inherit everything from OakBox, but change the element to a form.
834
+ *
835
+ * @deprecated Use `<OakBox as="form">` instead
836
+ */
837
+ declare const OakForm: styled_components.StyledComponent<"form", styled_components.DefaultTheme, {
838
+ children?: React$1.ReactNode;
839
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
840
+ onClick?: React$1.MouseEventHandler | undefined;
841
+ }, never>;
842
+ type OakFormProps = OakBoxProps;
843
+
844
+ type ColorFilterToken = ResponsiveValues<OakCombinedColorToken | null>;
845
+ type ColorFilterStyleProps = {
846
+ /**
847
+ * Applies a color-filter to the element.
848
+ *
849
+ * Accepts a color filter token or a responsive array of color tokens.
850
+ */
851
+ $colorFilter?: ColorFilterToken;
852
+ };
853
+
854
+ type HTMLProps = {
855
+ onClick?: MouseEventHandler;
856
+ };
857
+ type OakImageProps<C extends ElementType = typeof Image__default> = Omit<ImageProps$1, "placeholder"> & OakBoxProps & ColorFilterStyleProps & HTMLProps & {
858
+ as?: C;
859
+ /**
860
+ * The placeholder to use while the image is loading
861
+ *
862
+ * Defaults to `oak` which is a placeholder containing the Oak logo
863
+ * also accepts the same options as next/image */
864
+ placeholder?: ImageProps$1["placeholder"] | "oak";
865
+ /**
866
+ * Additional props forwarded to the underlying `Image` component `as`
867
+ */
868
+ imageProps?: Partial<ComponentPropsWithoutRef<C>>;
869
+ };
870
+ /**
871
+ * A wrapper for NextJs's Image component.
872
+ *
873
+ * Use this for all image types as well as icons.
874
+ * Can accept remote urls provided they are whitelisted in next.config.js and relative urls for local images provided they begin with a "/".
875
+ * Set the width and height of the image through the `$width` and `$height` props when the aspect ratio is not known. This will letterbox the image to avoid stretching.
876
+ * Alternatively pass `width` and `height` props when the aspect ratio is known and use $minWidth to set the rendered width, avoiding letter-boxing.
877
+ * NB. for letterboxed images, $background controls the color of the letterbox not the image.
878
+ * `positionStyle` and `spacingStyle` props are also exposed for container.
879
+ * sizes is exposed for further optimisation read Next docs for more info.
880
+ *
881
+ */
882
+ 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"> & {
883
+ src: string | next_dist_shared_lib_get_img_props.StaticImport;
884
+ alt: string;
885
+ width?: number | `${number}` | undefined;
886
+ height?: number | `${number}` | undefined;
887
+ fill?: boolean | undefined;
888
+ loader?: Image.ImageLoader | undefined;
889
+ quality?: number | `${number}` | undefined;
890
+ priority?: boolean | undefined;
891
+ loading?: "eager" | "lazy" | undefined;
892
+ placeholder?: next_dist_shared_lib_get_img_props.PlaceholderValue | undefined;
893
+ blurDataURL?: string | undefined;
894
+ unoptimized?: boolean | undefined;
895
+ onLoadingComplete?: next_dist_shared_lib_get_img_props.OnLoadingComplete | undefined;
896
+ layout?: string | undefined;
897
+ objectFit?: string | undefined;
898
+ objectPosition?: string | undefined;
899
+ lazyBoundary?: string | undefined;
900
+ lazyRoot?: string | undefined;
901
+ } & React__default.RefAttributes<HTMLImageElement | null>>>({ ...props }: OakImageProps<C>) => React__default.JSX.Element;
902
+
903
+ type OakTypographyProps = OakBoxProps & TypographyStyleProps;
904
+ /**
905
+ * The Typography component sets a typography style context from which children
906
+ * inherit style properties through the cascade.
907
+ * ## Usage
908
+ * This should be the primary component to set a typography context.
909
+ * Use this component whenever you want to style blocks of 'body' text.
910
+ */
911
+ declare const OakTypography: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
912
+ children?: React$1.ReactNode;
913
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
914
+ onClick?: React$1.MouseEventHandler | undefined;
915
+ }, never>;
916
+
917
+ declare const oakHeadingTags: readonly ["div", "h1", "h2", "h3", "h4", "h5", "h6"];
918
+ type OakHeadingTag = (typeof oakHeadingTags)[number];
919
+ type OakHeadingTagProps = {
920
+ children?: React__default.ReactNode;
921
+ id?: string;
922
+ /**
923
+ * HTML tag to be used for the heading
924
+ *
925
+ * Accepts a heading tag token
926
+ */
927
+ tag: OakHeadingTag;
928
+ ariaLabel?: string;
929
+ ariaHidden?: boolean;
930
+ };
931
+ declare const HeadingTagComponent: FC<OakHeadingTagProps>;
932
+ type OakHeadingProps = TypographyStyleProps & OakHeadingTagProps & ColorStyleProps & OpacityStyleProps & MarginStyleProps;
933
+ /**
934
+ *
935
+ * OakHeading can be one of the following style tags dependant on its role: "div" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6".
936
+ * Use the controls to view different font styles.
937
+ *
938
+ */
939
+ declare const OakHeading: styled_components.StyledComponent<React__default.FC<OakHeadingTagProps>, styled_components.DefaultTheme, TypographyStyleProps & OakHeadingTagProps & ColorStyleProps & OpacityStyleProps & MarginStyleProps, never>;
940
+
941
+ type OakPProps = MarginStyleProps & TypographyStyleProps & ColorStyleProps;
942
+ /**
943
+ * Styled `p` (paragraph) component.
944
+ * ## Usage
945
+ * In general, using a `p` as a descendant of `<Body>` should suffice.
946
+ * However, if you want different styles for a particular paragraph,
947
+ * you can use this component to apply additional styles.
948
+ */
949
+ declare const OakP: styled_components.StyledComponent<"p", styled_components.DefaultTheme, MarginStyleProps & TypographyStyleProps & ColorStyleProps, never>;
950
+
951
+ type OakULProps = OakBoxProps & {
952
+ $reset?: boolean;
953
+ };
954
+ /**
955
+ * Styled `ul` (unordered list) component.
956
+ *
957
+ * ## Usage
958
+ *
959
+ * Resets browser spacing and other styles, accepts BoxProps' style props.
960
+ *
961
+ * */
962
+ declare const OakUL: styled_components.StyledComponent<"ul", styled_components.DefaultTheme, {
963
+ children?: React$1.ReactNode;
964
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
965
+ onClick?: React$1.MouseEventHandler | undefined;
966
+ } & {
967
+ $reset?: boolean | undefined;
968
+ }, never>;
969
+
970
+ type OakOLProps = MarginStyleProps & ColorStyleProps & TypographyStyleProps;
971
+ /**
972
+ * Styled `ol` (ordered list) component.
973
+ *
974
+ * ## Usage
975
+ *
976
+ * Use where we have an ordered list to ensure numbers are styled
977
+ *
978
+ * */
979
+ declare const OakOL: styled_components.StyledComponent<"ol", styled_components.DefaultTheme, MarginStyleProps & ColorStyleProps & TypographyStyleProps, never>;
980
+
981
+ type ListStyleProps = {
982
+ /**
983
+ * Sets the `list-style` CSS property of the element.
984
+ *
985
+ * Accepts a `list-style` value or a responsive array of `list-style` values.
986
+ */
987
+ $listStyle?: ResponsiveValues<CSSProperties$1["listStyle"]>;
988
+ };
989
+
990
+ type OakLIProps = OakFlexProps & TypographyStyleProps & ListStyleProps & DisplayStyleProps;
991
+ /**
992
+ * Styled `li` (list item) component.
993
+ *
994
+ * ## Usage
995
+ *
996
+ * Places where we directly want to style a list item
997
+ *
998
+ **/
999
+ declare const OakLI: styled_components.StyledComponent<"li", styled_components.DefaultTheme, DisplayStyleProps & {
1000
+ $flexDirection?: ResponsiveValues<csstype.Property.FlexDirection | undefined>;
1001
+ $flexWrap?: ResponsiveValues<csstype.Property.FlexWrap | undefined>;
1002
+ $alignItems?: ResponsiveValues<csstype.Property.AlignItems | undefined>;
1003
+ $alignContent?: ResponsiveValues<csstype.Property.AlignContent | undefined>;
1004
+ $justifyContent?: ResponsiveValues<csstype.Property.JustifyContent | undefined>;
1005
+ $alignSelf?: ResponsiveValues<csstype.Property.AlignSelf | undefined>;
1006
+ $flexGrow?: ResponsiveValues<csstype.Property.FlexGrow | undefined>;
1007
+ $flexShrink?: ResponsiveValues<csstype.Property.FlexShrink | undefined>;
1008
+ $order?: ResponsiveValues<csstype.Property.Order | undefined>;
1009
+ $flexBasis?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1010
+ $gap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1011
+ $columnGap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1012
+ $rowGap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1013
+ } & {
1014
+ children?: React$1.ReactNode;
1015
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
1016
+ onClick?: React$1.MouseEventHandler | undefined;
1017
+ } & ListStyleProps, never>;
1018
+
1019
+ type OakLabelProps = TypographyStyleProps & ColorStyleProps;
1020
+ /**
1021
+ * Label renders a `label` element, exposing all the typography props.
1022
+ * ## Usage
1023
+ * Use this component when you want to apply styles to a label, likely within
1024
+ * a form.
1025
+ */
1026
+ declare const OakLabel: styled_components.StyledComponent<"label", styled_components.DefaultTheme, TypographyStyleProps & ColorStyleProps, never>;
1027
+
1028
+ declare const icons: {
1029
+ readonly "question-mark": "v1706872277/icons/question-mark.svg";
1030
+ readonly home: "v1699887218/icons/gvqxjxcw07ei2kkmwnes.svg";
1031
+ readonly send: "v1699893673/icons/rmvytilpjgvh3pgwc8ph.svg";
1032
+ readonly rocket: "v1699894015/icons/u26xm5hteot875ozfnk9.svg";
1033
+ readonly edit: "v1699894149/icons/qxlunbg5tfrdherzsvlt.svg";
1034
+ readonly hamburger: "v1699895123/icons/jaqdnomtbhqvjcap962u.svg";
1035
+ readonly cross: "v1699895179/icons/xigimrbivcaxt4omxamp.svg";
1036
+ readonly bell: "v1699895207/icons/ecejtvqerx81prxyxh9b.svg";
1037
+ readonly twitter: "v1699895251/icons/bq6a50xtkvnzhltfggzz.svg";
1038
+ readonly worksheet: "v1699895300/icons/ez1s6mtpe5jkunnxzvlw.svg";
1039
+ readonly facebook: "v1699895330/icons/iojlvh3o5lshy2jupyph.svg";
1040
+ readonly share: "v1699895363/icons/agcmduftef3wcla6gzec.svg";
1041
+ readonly "arrow-right": "v1707149070/icons/fv0z57zerrioft52dd9n.svg";
1042
+ readonly "worksheet-3": "v1699895429/icons/bzhojpjxp9rukdvh7daz.svg";
1043
+ readonly "chevron-right": "v1707752509/icons/vk9xxxhnsltsickom6q9.svg";
1044
+ readonly save: "v1699895505/icons/rh1ahwwtbemvz0ihluew.svg";
1045
+ readonly "quiz-3": "v1699895534/icons/zoayhgtrotv32fad7d3k.svg";
1046
+ readonly "chevron-down": "v1699953557/icons/botfld6brychmttwtv6u.svg";
1047
+ readonly linkedin: "v1699953592/icons/leqneklorqqzb1zo6rf1.svg";
1048
+ readonly "magic-carpet": "v1699953622/icons/jifivg9xxm7sb0fjdilm.svg";
1049
+ readonly books: "v1699953657/icons/hz4l3iq6i68kazvkvorq.svg";
1050
+ readonly "supervision-level": "v1699953696/icons/cwqhknapp3maa4g0t3lj.svg";
1051
+ readonly "quiz-white": "v1699953730/icons/gpcehpgr9mqoumsa25xe.svg";
1052
+ readonly "arrow-left": "v1707149179/icons/ejrm9dpgpzb7ddbo8z2i.svg";
1053
+ readonly "additional-material": "v1699953798/icons/ntoq4tqvcm2uj1pajubt.svg";
1054
+ readonly "slide-deck-3": "v1699953830/icons/sm92moja9d5utu3cj16c.svg";
1055
+ readonly "sign-language": "v1699953861/icons/ns94ozvozzi22enxkx0x.svg";
1056
+ readonly external: "v1699953892/icons/hlxmejse3mcr4tqo6t8u.svg";
1057
+ readonly "equipment-required": "v1699953925/icons/pw22bdhj2vrzfv2ogi4e.svg";
1058
+ readonly "chevron-left": "v1707752509/icons/rbvzan0ozubmr4j0uqdn.svg";
1059
+ readonly download: "v1699953991/icons/dk0f6a6hdpzxftjosngn.svg";
1060
+ readonly search: "v1704901279/icons/canbi3fuz5fanzom2hvi.svg";
1061
+ readonly "chevron-up": "v1699954058/icons/pay71thmhhylj7z28sj1.svg";
1062
+ readonly go: "v1699954090/icons/vdzptyvmitylra8x4usy.svg";
1063
+ readonly copyright: "v1699954118/icons/boiod3rflocgsnfokyo8.svg";
1064
+ readonly "arrow-down": "v1699954152/icons/wpfmbmwpyfinipg0d61y.svg";
1065
+ readonly project: "v1699954186/icons/zofq5pheud6spnwjpewk.svg";
1066
+ readonly "slide-deck": "v1699954241/icons/sjjy5f3g4eciwcuxxr33.svg";
1067
+ readonly "content-guidance": "v1699954277/icons/tm3uhcqenaznq4fxys7j.svg";
1068
+ readonly tick: "v1699954310/icons/efd3esaor6zqk7seh6kt.svg";
1069
+ readonly instagram: "v1699954343/icons/ayfeljric0kkimdymvva.svg";
1070
+ readonly dot: "v1699954371/icons/knykdclphkm8lgff4u2g.svg";
1071
+ readonly "dot-png": "v1699954394/icons/qecbh291nzwmhcvqayqd.png";
1072
+ readonly warning: "v1704901279/icons/zzszodmk7fvxm9xzzg9s.svg";
1073
+ readonly "lightbulb-yellow": "v1705078631/icons/q2v4sqxouy1ngcajoavv.svg";
1074
+ readonly lightbulb: "v1705078631/icons/zldisxmbff36z68rwcef.svg";
1075
+ readonly quiz: "v1705416077/icons/kaaizjcudy0jfgfrrdel.svg";
1076
+ readonly video: "v1705416078/icons/wzey1zfxrvv3apeebbf5.svg";
1077
+ readonly intro: "v1705662092/icons/pl7bnmb13txese9yxkjv.svg";
1078
+ readonly "move-arrows": "v1709052869/icons/hoddjsgpzkszgvnmn91q.svg";
1079
+ readonly "subject-art": "subject-icons/art.svg";
1080
+ readonly "subject-biology": "subject-icons/biology.svg";
1081
+ readonly "subject-chemistry": "subject-icons/chemistry.svg";
1082
+ readonly "subject-citizenship": "subject-icons/citizenship.svg";
1083
+ readonly "subject-combined-science": "subject-icons/science.svg";
1084
+ readonly "subject-communication-and-language": "subject-icons/communication-and-language.svg";
1085
+ readonly "subject-computing": "subject-icons/computing.svg";
1086
+ readonly "subject-computing-non-gcse": "subject-icons/computing.svg";
1087
+ readonly "subject-creative-arts": "subject-icons/creative-arts.svg";
1088
+ readonly "subject-design-technology": "subject-icons/design-technology.svg";
1089
+ readonly "subject-drama": "subject-icons/drama.svg";
1090
+ readonly "subject-english": "subject-icons/english.svg";
1091
+ readonly "subject-english-grammar": "subject-icons/english-grammar.svg";
1092
+ readonly "subject-english-reading-for-pleasure": "subject-icons/literature.svg";
1093
+ readonly "subject-english-spelling": "subject-icons/english-spelling.svg";
1094
+ readonly "subject-french": "subject-icons/french.svg";
1095
+ readonly "subject-geography": "subject-icons/geography.svg";
1096
+ readonly "subject-german": "subject-icons/german.svg";
1097
+ readonly "subject-history": "subject-icons/history.svg";
1098
+ readonly "subject-independent-living": "subject-icons/independent-living.svg";
1099
+ readonly "subject-latin": "subject-icons/latin.svg";
1100
+ readonly "subject-maths": "subject-icons/maths.svg";
1101
+ readonly "subject-music": "subject-icons/music-hollow.svg";
1102
+ readonly "subject-numeracy": "subject-icons/numeracy.svg";
1103
+ readonly "occupational-therapy": "subject-icons/therapy.svg";
1104
+ readonly "subject-physical-development": "subject-icons/physical-development.svg";
1105
+ readonly "subject-physical-education": "subject-icons/physical-education.svg";
1106
+ readonly "subject-physical-therapy": "subject-icons/physical-therapy.svg";
1107
+ readonly "subject-physics": "subject-icons/physics.svg";
1108
+ readonly "subject-religious-education": "subject-icons/religious-education.svg";
1109
+ readonly "subject-rshe-pshe": "subject-icons/rshe-pshe.svg";
1110
+ readonly "subject-science": "subject-icons/science.svg";
1111
+ readonly "subject-sensory-integration": "subject-icons/sensory-integration.svg";
1112
+ readonly "subject-spanish": "subject-icons/spanish.svg";
1113
+ readonly "subject-speech-and-language-therapy": "subject-icons/speech-and-language.svg";
1114
+ readonly "subject-therapy": "subject-icons/therapy.svg";
1115
+ readonly "subject-understanding-the-world": "subject-icons/understanding-the-world.svg";
1116
+ };
1117
+ type IconName = keyof typeof icons;
1118
+
1119
+ 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" | "move-arrows" | "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")[];
1120
+ type OakIconName = IconName;
1121
+ type OakIconProps = Omit<OakImageProps, "alt" | "src"> & {
1122
+ /**
1123
+ * The name of the icon to display
1124
+ *
1125
+ * Accepts an icon name token
1126
+ */
1127
+ iconName: OakIconName;
1128
+ alt?: string;
1129
+ };
1130
+ /**
1131
+ * returns true if the given string is a valid `OakIconName`
1132
+ */
1133
+ declare function isValidIconName(iconName: string): iconName is OakIconName;
1134
+ /**
1135
+ * A wrapper around OakImage which uses the image-map.json file to map icon names to image paths.
1136
+ */
1137
+ declare const OakIcon: (props: OakIconProps) => React__default.JSX.Element;
1138
+
1139
+ declare const oakDefaultTheme: OakTheme;
1140
+
1141
+ type OakGridProps = OakBoxProps & {
1142
+ /**
1143
+ * Applies `row-gap` to the grid
1144
+ *
1145
+ * Accepts a spacing token or a responsive array of spacing tokens.
1146
+ */
1147
+ $rg?: ResponsiveValues<OakCombinedSpacingToken>;
1148
+ /**
1149
+ * Applies `column-gap` to the grid
1150
+ *
1151
+ * Accepts a spacing token or a responsive array of spacing tokens.
1152
+ */
1153
+ $cg?: ResponsiveValues<OakCombinedSpacingToken>;
1154
+ /**
1155
+ * Applies `grid-auto-rows` to the grid
1156
+ *
1157
+ * Accepts a `grid-auto-rows` value or a responsive array of `grid-auto-rows` values.
1158
+ */
1159
+ $gridAutoRows?: ResponsiveValues<CSSProperties$1["gridAutoRows"]>;
1160
+ /**
1161
+ * Applies `grid-template-areas` to the grid
1162
+ *
1163
+ * Accepts a `grid-template-areas` value or a responsive array of `grid-template-areas` values.
1164
+ */
1165
+ $gridTemplateAreas?: ResponsiveValues<CSSProperties$1["gridTemplateAreas"]>;
1166
+ /**
1167
+ * Applies `grid-template-columns` to the grid
1168
+ *
1169
+ * Accepts a `grid-template-columns` value or a responsive array of `grid-template-columns` values.
1170
+ */
1171
+ $gridTemplateColumns?: ResponsiveValues<CSSProperties$1["gridTemplateColumns"]>;
1172
+ /**
1173
+ * Applies `grid-template-rows` to the grid
1174
+ *
1175
+ * Accepts a `grid-template-rows` value or a responsive array of `grid-template-rows` values.
1176
+ */
1177
+ $gridTemplateRows?: ResponsiveValues<CSSProperties$1["gridTemplateRows"]>;
1178
+ };
1179
+ /**
1180
+ * Creates a grid layout
1181
+ *
1182
+ * Defaults to a 12 column grid
1183
+ */
1184
+ declare const OakGrid: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
1185
+ children?: React$1.ReactNode;
1186
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
1187
+ onClick?: React$1.MouseEventHandler | undefined;
1188
+ } & {
1189
+ /**
1190
+ * Applies `row-gap` to the grid
1191
+ *
1192
+ * Accepts a spacing token or a responsive array of spacing tokens.
1193
+ */
1194
+ $rg?: ResponsiveValues<OakCombinedSpacingToken> | undefined;
1195
+ /**
1196
+ * Applies `column-gap` to the grid
1197
+ *
1198
+ * Accepts a spacing token or a responsive array of spacing tokens.
1199
+ */
1200
+ $cg?: ResponsiveValues<OakCombinedSpacingToken> | undefined;
1201
+ /**
1202
+ * Applies `grid-auto-rows` to the grid
1203
+ *
1204
+ * Accepts a `grid-auto-rows` value or a responsive array of `grid-auto-rows` values.
1205
+ */
1206
+ $gridAutoRows?: ResponsiveValues<CSSProperties$1["gridAutoRows"]>;
1207
+ /**
1208
+ * Applies `grid-template-areas` to the grid
1209
+ *
1210
+ * Accepts a `grid-template-areas` value or a responsive array of `grid-template-areas` values.
1211
+ */
1212
+ $gridTemplateAreas?: ResponsiveValues<CSSProperties$1["gridTemplateAreas"]>;
1213
+ /**
1214
+ * Applies `grid-template-columns` to the grid
1215
+ *
1216
+ * Accepts a `grid-template-columns` value or a responsive array of `grid-template-columns` values.
1217
+ */
1218
+ $gridTemplateColumns?: ResponsiveValues<CSSProperties$1["gridTemplateColumns"]>;
1219
+ /**
1220
+ * Applies `grid-template-rows` to the grid
1221
+ *
1222
+ * Accepts a `grid-template-rows` value or a responsive array of `grid-template-rows` values.
1223
+ */
1224
+ $gridTemplateRows?: ResponsiveValues<CSSProperties$1["gridTemplateRows"]>;
1225
+ }, never>;
1226
+
1227
+ type ColRowSpan = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
1228
+ type OakGridAreaProps = {
1229
+ /**
1230
+ * Determines the number of columns the element should span.
1231
+ *
1232
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1233
+ */
1234
+ $colSpan: ResponsiveValues<ColRowSpan>;
1235
+ /**
1236
+ * Determines the number of rows the element should span.
1237
+ *
1238
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1239
+ */
1240
+ $rowSpan?: ResponsiveValues<ColRowSpan>;
1241
+ /**
1242
+ * Sets the order of the element.
1243
+ *
1244
+ * Accepts a number or a responsive array of numbers.
1245
+ */
1246
+ $order?: ResponsiveValues<CSSProperties$1["order"]>;
1247
+ /**
1248
+ * The start column of the element.
1249
+ *
1250
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1251
+ */
1252
+ $colStart?: ResponsiveValues<ColRowSpan>;
1253
+ /**
1254
+ * The end column of the element.
1255
+ *
1256
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1257
+ */
1258
+ $colEnd?: ResponsiveValues<ColRowSpan>;
1259
+ /**
1260
+ * The start row of the element.
1261
+ *
1262
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1263
+ */
1264
+ $rowStart?: ResponsiveValues<ColRowSpan>;
1265
+ } & SpacingStyleProps;
1266
+ /**
1267
+ *
1268
+ * OakGridArea is a flex container that should be used inside OakGrid.
1269
+ *
1270
+ * - There is no nesting of OakGridAreas
1271
+ * - Column and row arrangements are achieved through $colSpan, $rowSpan, $colStart, $colEnd, $rowStart, $rowEnd
1272
+ *
1273
+ */
1274
+ declare const OakGridArea: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
1275
+ children?: React$1.ReactNode;
1276
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
1277
+ onClick?: React$1.MouseEventHandler | undefined;
1278
+ } & {
1279
+ $flexDirection?: ResponsiveValues<csstype.Property.FlexDirection | undefined>;
1280
+ $flexWrap?: ResponsiveValues<csstype.Property.FlexWrap | undefined>;
1281
+ $alignItems?: ResponsiveValues<csstype.Property.AlignItems | undefined>;
1282
+ $alignContent?: ResponsiveValues<csstype.Property.AlignContent | undefined>;
1283
+ $justifyContent?: ResponsiveValues<csstype.Property.JustifyContent | undefined>;
1284
+ $alignSelf?: ResponsiveValues<csstype.Property.AlignSelf | undefined>;
1285
+ $flexGrow?: ResponsiveValues<csstype.Property.FlexGrow | undefined>;
1286
+ $flexShrink?: ResponsiveValues<csstype.Property.FlexShrink | undefined>;
1287
+ $order?: ResponsiveValues<csstype.Property.Order | undefined>;
1288
+ $flexBasis?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1289
+ $gap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1290
+ $columnGap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1291
+ $rowGap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>; /**
1292
+ *
1293
+ * OakGridArea is a flex container that should be used inside OakGrid.
1294
+ *
1295
+ * - There is no nesting of OakGridAreas
1296
+ * - Column and row arrangements are achieved through $colSpan, $rowSpan, $colStart, $colEnd, $rowStart, $rowEnd
1297
+ *
1298
+ */
1299
+ } & {
1300
+ /**
1301
+ * Determines the number of columns the element should span.
1302
+ *
1303
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1304
+ */
1305
+ $colSpan: ResponsiveValues<ColRowSpan>;
1306
+ /**
1307
+ * Determines the number of rows the element should span.
1308
+ *
1309
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1310
+ */
1311
+ $rowSpan?: ResponsiveValues<ColRowSpan> | undefined;
1312
+ /**
1313
+ * Sets the order of the element.
1314
+ *
1315
+ * Accepts a number or a responsive array of numbers.
1316
+ */
1317
+ $order?: ResponsiveValues<CSSProperties$1["order"]>;
1318
+ /**
1319
+ * The start column of the element.
1320
+ *
1321
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1322
+ */
1323
+ $colStart?: ResponsiveValues<ColRowSpan> | undefined;
1324
+ /**
1325
+ * The end column of the element.
1326
+ *
1327
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1328
+ */
1329
+ $colEnd?: ResponsiveValues<ColRowSpan> | undefined;
1330
+ /**
1331
+ * The start row of the element.
1332
+ *
1333
+ * Accepts a value from 0-12 or a responsive value of 0-12.
1334
+ */
1335
+ $rowStart?: ResponsiveValues<ColRowSpan> | undefined;
1336
+ }, never>;
1337
+
1338
+ type OakThemeProviderProps = {
1339
+ theme: OakTheme;
1340
+ children: React__default.ReactNode;
1341
+ };
1342
+ /**
1343
+ *
1344
+ * OakThemeProvider wraps Styled Components ThemeProvider allowing the use of the custom type OakTheme.
1345
+ *
1346
+ */
1347
+ declare const OakThemeProvider: ({ theme, children, }: OakThemeProviderProps) => React__default.JSX.Element;
1348
+
1349
+ /**
1350
+ * This component will provide a default maxWidth and ph value, it take Flex props.
1351
+ * ## Usage
1352
+ * Use this component on pages to limit the max-width to a specific container.
1353
+ * This will make it easier to create full browser width or custom width containers on the same page
1354
+ * with different background colors / image url.
1355
+ */
1356
+ declare const OakMaxWidth: styled_components.StyledComponent<"div", styled_components.DefaultTheme, {
1357
+ children?: React$1.ReactNode;
1358
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
1359
+ onClick?: React$1.MouseEventHandler | undefined;
1360
+ } & {
1361
+ $flexDirection?: ResponsiveValues<csstype.Property.FlexDirection | undefined>;
1362
+ $flexWrap?: ResponsiveValues<csstype.Property.FlexWrap | undefined>;
1363
+ $alignItems?: ResponsiveValues<csstype.Property.AlignItems | undefined>;
1364
+ $alignContent?: ResponsiveValues<csstype.Property.AlignContent | undefined>;
1365
+ $justifyContent?: ResponsiveValues<csstype.Property.JustifyContent | undefined>;
1366
+ $alignSelf?: ResponsiveValues<csstype.Property.AlignSelf | undefined>;
1367
+ $flexGrow?: ResponsiveValues<csstype.Property.FlexGrow | undefined>;
1368
+ $flexShrink?: ResponsiveValues<csstype.Property.FlexShrink | undefined>;
1369
+ $order?: ResponsiveValues<csstype.Property.Order | undefined>;
1370
+ $flexBasis?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1371
+ $gap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1372
+ $columnGap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1373
+ $rowGap?: ResponsiveValues<"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" | "space-between-none" | "space-between-sssx" | "space-between-ssx" | "space-between-xs" | "space-between-s" | "space-between-m" | "space-between-m2" | "space-between-l" | "space-between-xl" | "space-between-xxl" | "space-between-xxxl" | null | undefined>;
1374
+ }, never>;
1375
+
1376
+ type OakCloudinaryImageProps = Omit<OakImageProps<typeof CldImage>, "src" | "imageProps"> & {
1377
+ /**
1378
+ * The cloudinary image id or the full cloudinary URL
1379
+ *
1380
+ * Usually in the format `v1234567890/image.jpg`
1381
+ */
1382
+ cloudinaryId: string;
1383
+ };
1384
+ /**
1385
+ * Provides a Cloudinary config to all descendent `OakCloudinaryImage` elements.
1386
+ *
1387
+ * See https://cloudinary.com/documentation/cloudinary_sdks#configuration_parameters
1388
+ * for documentation of the config object.
1389
+ */
1390
+ declare const OakCloudinaryConfigProvider: React__default.Provider<_cloudinary_util_url_loader_dist_schema_UX7RRFIR.g | undefined>;
1391
+ /**
1392
+ * OakCloudinaryImage wraps OakImage providing responsive images from Cloudinary
1393
+ * based on the `sizes` prop.
1394
+ *
1395
+ * Cloudinary cloud name can be set globally with `NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME` or a config
1396
+ * can be passed with `OakCloudinaryConfigProvider`.
1397
+ */
1398
+ declare const OakCloudinaryImage: ({ cloudinaryId, unoptimized, ...props }: OakCloudinaryImageProps) => React__default.JSX.Element;
1399
+
1400
+ type OakKbdProps = {
1401
+ children: ReactNode;
1402
+ };
1403
+ /**
1404
+ * Represents textual user input from a keyboard, voice input, or any other text entry device.
1405
+ * */
1406
+ declare const OakKbd: ({ children }: OakKbdProps) => React__default.JSX.Element;
1407
+
1408
+ type OakFieldErrorProps = {
1409
+ children?: React__default.ReactNode;
1410
+ };
1411
+ /**
1412
+ *
1413
+ * OakFieldError renders a error message when passed children.
1414
+ *
1415
+ */
1416
+ declare const OakFieldError: (props: OakFieldErrorProps) => React__default.JSX.Element | null;
1417
+
1418
+ type OakLoadingSpinnerProps = Pick<SizeStyleProps, "$width"> & ColorStyleProps & {
1419
+ loaderColor?: OakCombinedColorToken;
1420
+ };
1421
+ /**
1422
+ *
1423
+ * A loading spinner of variable size.
1424
+ *
1425
+ */
1426
+ declare const OakLoadingSpinner: (props: OakLoadingSpinnerProps) => React__default.JSX.Element;
1427
+
1428
+ type ElementProp<C extends ElementType> = {
1429
+ element?: C;
1430
+ };
1431
+ type PolymorphicRef<C extends React.ElementType> = ComponentPropsWithRef<C>["ref"];
1432
+ type PolymorphicPropsWithRef<C extends ElementType> = ElementProp<C> & ComponentPropsWithoutRef<C> & {
1433
+ ref?: PolymorphicRef<C>;
1434
+ };
1435
+
1436
+ type StyledButtonProps = TypographyStyleProps & SpacingStyleProps & ColorStyleProps & DisplayStyleProps & BorderStyleProps & DropShadowStyleProps & {
1437
+ isLoading?: boolean;
1438
+ };
1439
+ type InternalButtonProps = StyledButtonProps & {
1440
+ onHovered?: (event: React__default.MouseEvent<HTMLButtonElement, MouseEvent>, duration: number) => void;
1441
+ };
1442
+
1443
+ type InternalShadowRectButtonProps = Omit<InternalButtonProps, "$pa" | "$ph" | "$pv" | "$ba" | "$borderRadius" | "$borderColor" | "$background" | "$color"> & {
1444
+ iconName?: OakIconName;
1445
+ isTrailingIcon?: boolean;
1446
+ defaultTextColor: OakCombinedColorToken;
1447
+ defaultBackground: OakCombinedColorToken;
1448
+ defaultBorderColor: OakCombinedColorToken;
1449
+ hoverTextColor: OakCombinedColorToken;
1450
+ hoverBackground: OakCombinedColorToken;
1451
+ hoverBorderColor: OakCombinedColorToken;
1452
+ disabledBackground: OakCombinedColorToken;
1453
+ disabledBorderColor: OakCombinedColorToken;
1454
+ disabledTextColor: OakCombinedColorToken;
1455
+ width?: SizeStyleProps["$width"];
1456
+ maxWidth?: SizeStyleProps["$maxWidth"];
1457
+ hoverShadow?: OakDropShadowToken | null;
1458
+ } & PositionStyleProps;
1459
+
1460
+ type OakPrimaryButtonProps = Omit<InternalShadowRectButtonProps, "defaultBorderColor" | "defaultBackground" | "defaultTextColor" | "hoverBackground" | "hoverBorderColor" | "hoverTextColor" | "disabledBackground" | "disabledBorderColor" | "disabledTextColor">;
1461
+ /**
1462
+ *
1463
+ * A specific implementation of InternalRectButton
1464
+ *
1465
+ * The following callbacks are available for tracking focus events:
1466
+ *
1467
+ * ### onClick
1468
+ * `onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;`
1469
+ *
1470
+ * ### onHovered
1471
+ * `onHovered?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>, duration: number) => void;`<br>
1472
+ * called after a mouseEnter and mouseLeave event has happened
1473
+ */
1474
+ declare const OakPrimaryButton: <C extends React__default.ElementType = "button">({ element, ...rest }: OakPrimaryButtonProps & {
1475
+ element?: C | undefined;
1476
+ } & React__default.PropsWithoutRef<React__default.ComponentProps<C>>) => React__default.JSX.Element;
1477
+
1478
+ type OakPrimaryInvertedButtonProps = Omit<InternalShadowRectButtonProps, "defaultBorderColor" | "defaultBackground" | "defaultTextColor" | "hoverBackground" | "hoverBorderColor" | "hoverTextColor" | "disabledBackground" | "disabledBorderColor" | "disabledTextColor">;
1479
+ /**
1480
+ *
1481
+ * A specific implementation of InternalRectButton
1482
+ *
1483
+ * The following callbacks are available for tracking focus events:
1484
+ *
1485
+ * ### onClick
1486
+ * `onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;`
1487
+ *
1488
+ * ### onHovered
1489
+ * `onHovered?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>, duration: number) => void;`<br>
1490
+ * called after a mouseEnter and mouseLeave event has happened
1491
+ */
1492
+ declare const OakPrimaryInvertedButton: <C extends React__default.ElementType = "button">({ element, ...rest }: OakPrimaryInvertedButtonProps & {
1493
+ element?: C | undefined;
1494
+ } & React__default.PropsWithoutRef<React__default.ComponentProps<C>>) => React__default.JSX.Element;
1495
+
1496
+ type OakSecondaryButtonProps = Omit<InternalShadowRectButtonProps, "defaultBorderColor" | "defaultBackground" | "defaultTextColor" | "hoverBackground" | "hoverBorderColor" | "hoverTextColor" | "disabledBackground" | "disabledBorderColor" | "disabledTextColor">;
1497
+ /**
1498
+ *
1499
+ * A specific implementation of InternalRectButton
1500
+ *
1501
+ * The following callbacks are available for tracking focus events:
1502
+ *
1503
+ * ### onClick
1504
+ * `onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;`
1505
+ *
1506
+ * ### onHovered
1507
+ * `onHovered?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>, duration: number) => void;`<br>
1508
+ * called after a mouseEnter and mouseLeave event has happened
1509
+ */
1510
+ declare const OakSecondaryButton: <C extends React__default.ElementType = "button">({ element, ...rest }: OakSecondaryButtonProps & {
1511
+ element?: C | undefined;
1512
+ } & React__default.PropsWithoutRef<React__default.ComponentProps<C>>) => React__default.JSX.Element;
1513
+
1514
+ type ImageProps = OakImageProps & {
1515
+ iconName?: undefined;
1516
+ };
1517
+ type IconProps = OakIconProps & {
1518
+ src?: undefined;
1519
+ };
1520
+ type OakRoundIconProps = IconProps | ImageProps;
1521
+ /**
1522
+ * A wrapper around `OakIcon` which applies a rounded background.
1523
+ * Supports either an icon name or an image src
1524
+ */
1525
+ declare const OakRoundIcon: ({ $background, $borderRadius, $width, $height, $pa, className, ...rest }: OakRoundIconProps) => React__default.JSX.Element;
1526
+
1527
+ /**
1528
+ * An implementation of InternalShadowRoundButton, its a subtle button with no border and a round icon.
1529
+ */
1530
+ declare const OakTertiaryButton: <C extends React__default.ElementType = "button">({ element, isTrailingIcon, iconName, children, ...props }: TypographyStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & DisplayStyleProps & BorderStyleProps & DropShadowStyleProps & {
1531
+ isLoading?: boolean | undefined;
1532
+ } & {
1533
+ onHovered?: ((event: React__default.MouseEvent<HTMLButtonElement, MouseEvent>, duration: number) => void) | undefined;
1534
+ } & {
1535
+ iconBackground?: OakRoundIconProps["$background"];
1536
+ iconColorFilter?: OakRoundIconProps["$colorFilter"];
1537
+ isTrailingIcon?: boolean | undefined;
1538
+ 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" | "move-arrows" | "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;
1539
+ } & {
1540
+ element?: C | undefined;
1541
+ } & React__default.PropsWithoutRef<React__default.ComponentProps<C>>) => React__default.JSX.Element;
1542
+
1543
+ type RadioButtonLabelProps = {
1544
+ $labelAlignItems?: FlexStyleProps["$alignItems"];
1545
+ $labelGap?: FlexStyleProps["$gap"];
1546
+ disabled?: boolean;
1547
+ } & OakLabelProps;
1548
+ type OakRadioButtonProps = {
1549
+ id: string;
1550
+ label: ReactNode;
1551
+ value: string;
1552
+ tabIndex?: number;
1553
+ "data-testid"?: string;
1554
+ disabled?: boolean;
1555
+ /**
1556
+ * Allows the focus ring to be disabled. This is useful when focus is indicated
1557
+ * by other means, such as a border or background color change.
1558
+ */
1559
+ disableFocusRing?: boolean;
1560
+ /**
1561
+ * Allows the size of the radio button to be customized.
1562
+ */
1563
+ radioOuterSize?: OakAllSpacingToken;
1564
+ /**
1565
+ * Allows the size of the inner "checked" circle of the radio button to be customized.
1566
+ */
1567
+ radioInnerSize?: OakAllSpacingToken;
1568
+ /**
1569
+ * Allows the width of the radio button border to be customized.
1570
+ */
1571
+ radioBorderWidth?: OakBorderWidthToken;
1572
+ /**
1573
+ * Allows the width of the radio button border to be customized when the radio button is checked.
1574
+ */
1575
+ checkedRadioBorderWidth?: OakBorderWidthToken;
1576
+ } & OakBoxProps & RadioButtonLabelProps;
1577
+ /**
1578
+ * A radio button component.
1579
+ *
1580
+ * Use within `OakRadioGroup` component.
1581
+ */
1582
+ declare const OakRadioButton: React__default.ForwardRefExoticComponent<{
1583
+ id: string;
1584
+ label: ReactNode;
1585
+ value: string;
1586
+ tabIndex?: number | undefined;
1587
+ "data-testid"?: string | undefined;
1588
+ disabled?: boolean | undefined;
1589
+ /**
1590
+ * Allows the focus ring to be disabled. This is useful when focus is indicated
1591
+ * by other means, such as a border or background color change.
1592
+ */
1593
+ disableFocusRing?: boolean | undefined;
1594
+ /**
1595
+ * Allows the size of the radio button to be customized.
1596
+ */
1597
+ 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;
1598
+ /**
1599
+ * Allows the size of the inner "checked" circle of the radio button to be customized.
1600
+ */
1601
+ 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;
1602
+ /**
1603
+ * Allows the width of the radio button border to be customized.
1604
+ */
1605
+ radioBorderWidth?: "border-solid-none" | "border-solid-s" | "border-solid-m" | "border-solid-l" | "border-solid-xl" | undefined;
1606
+ /**
1607
+ * Allows the width of the radio button border to be customized when the radio button is checked.
1608
+ */
1609
+ checkedRadioBorderWidth?: "border-solid-none" | "border-solid-s" | "border-solid-m" | "border-solid-l" | "border-solid-xl" | undefined;
1610
+ } & {
1611
+ children?: React__default.ReactNode;
1612
+ } & PositionStyleProps & SizeStyleProps & PaddingStyleProps & MarginStyleProps & ColorStyleProps & BorderStyleProps & DisplayStyleProps & DropShadowStyleProps & OpacityStyleProps & TransformStyleProps & TransitionStyleProps & TypographyStyleProps & ZIndexStyleProps & {
1613
+ onClick?: React__default.MouseEventHandler | undefined;
1614
+ } & {
1615
+ $labelAlignItems?: FlexStyleProps["$alignItems"];
1616
+ $labelGap?: FlexStyleProps["$gap"];
1617
+ disabled?: boolean | undefined;
1618
+ } & React__default.RefAttributes<HTMLInputElement>>;
1619
+
1620
+ type OakRadioGroupProps = {
1621
+ label?: string;
1622
+ name: string;
1623
+ disabled?: boolean;
1624
+ children: React__default.ReactNode;
1625
+ onChange?: (event: React__default.ChangeEvent<HTMLInputElement>) => void;
1626
+ /**
1627
+ * Sets the value of the radio group
1628
+ * for use as a controlled component
1629
+ */
1630
+ value?: string;
1631
+ /**
1632
+ * Sets the initial value of the radio group
1633
+ * for use as an uncontrolled component
1634
+ */
1635
+ defaultValue?: string;
1636
+ } & Pick<TypographyStyleProps, "$font"> & ColorStyleProps & Pick<FlexStyleProps, "$flexDirection" | "$alignItems" | "$gap">;
1637
+ /**
1638
+ *
1639
+ * OakRadioGroup allow users to select a single item from a list of mutually exclusive options .
1640
+ * OakRadioGroup consists of a set of OakRadioButtons, and a label. Each radio includes a label and a visual selection indicator. A single radio button within the group can be selected at a time. Users may click or touch a radio button to select it, or use the Tab key to navigate to the group, the arrow keys to navigate within the group, and the Space key to select an option.
1641
+ * ## Usage
1642
+ *
1643
+ * use the callback onChange to get the value of the selected radio button.
1644
+ *
1645
+ */
1646
+ declare const OakRadioGroup: (props: OakRadioGroupProps) => React__default.JSX.Element;
1647
+
1648
+ /**
1649
+ *
1650
+ * These components can be used with InternalCheckBoxWrapper which allows for customisable icons
1651
+ *
1652
+ * Several flavours of checkbox are created here:
1653
+ * - Default
1654
+ * - Hover decorations
1655
+ * - Focus decorations
1656
+ * - Hover + Focus decorations
1657
+ *
1658
+ * As they are styled components they can be further customised in implementation. Alternatively additional
1659
+ * components can be created here.
1660
+ *
1661
+ */
1662
+ type BaseCheckBoxProps = {
1663
+ id: string;
1664
+ disabled?: boolean;
1665
+ value: string;
1666
+ defaultChecked?: boolean;
1667
+ onHovered?: (value: string, id: string, duration: number) => void;
1668
+ onChange?: (event: React__default.ChangeEvent<HTMLInputElement>) => void;
1669
+ onFocus?: (event: React__default.FocusEvent<HTMLInputElement>) => void;
1670
+ onBlur?: (event: React__default.FocusEvent<HTMLInputElement>) => void;
1671
+ "data-testid"?: string;
1672
+ };
1673
+
1674
+ type InternalCheckBoxLabelProps = {
1675
+ labelAlignItems?: FlexStyleProps["$alignItems"];
1676
+ labelGap?: FlexStyleProps["$gap"];
1677
+ disabled?: boolean;
1678
+ "data-testid"?: string;
1679
+ } & OakLabelProps;
1680
+
1681
+ type OakCheckBoxProps = BaseCheckBoxProps & {
1682
+ checkboxSize?: OakAllSpacingToken;
1683
+ checkboxBorder?: OakBorderWidthToken;
1684
+ checkboxBorderRadius?: OakBorderRadiusToken;
1685
+ checkedIcon?: React__default.JSX.Element;
1686
+ checkedBackgroundFill?: boolean;
1687
+ hoverBorderRadius?: OakBorderRadiusToken;
1688
+ iconPadding?: OakInnerPaddingToken;
1689
+ defaultColor?: OakCombinedColorToken;
1690
+ disabledColor?: OakCombinedColorToken;
1691
+ displayValue?: string;
1692
+ } & InternalCheckBoxLabelProps;
1693
+ /**
1694
+ *
1695
+ * Default checkbox which can be extended to create specialised checkboxes.
1696
+ * - if provided, displayValue is used to display a different value to the value prop.
1697
+ *
1698
+ *
1699
+ * ## Events
1700
+ * The following callbacks are available for tracking focus events:
1701
+ *
1702
+ * ### onChange
1703
+ * onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
1704
+ *
1705
+ * ### onFocus
1706
+ * onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
1707
+ *
1708
+ * ### onBlur
1709
+ * onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
1710
+ *
1711
+ * ### onHovered
1712
+ * `onHovered?: (id, value, duration: number) => void;`<br>
1713
+ * called after a mouseEnter and mouseLeave event has happened
1714
+ *
1715
+ *
1716
+ */
1717
+ declare const OakCheckBox: (props: OakCheckBoxProps) => React__default.JSX.Element;
1718
+
1719
+ type StyledInputProps = Omit<DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref"> & SpacingStyleProps & SizeStyleProps;
1720
+ type InternalTextInputProps = Omit<StyledInputProps, "placeholder"> & {
1721
+ /**
1722
+ * A textual hint or example to display before a value has been entered
1723
+ */
1724
+ placeholder?: string;
1725
+ /**
1726
+ * Fired only when the input is focused for the first time
1727
+ */
1728
+ onInitialFocus?: (e: FocusEvent<HTMLInputElement>) => void;
1729
+ };
1730
+
1731
+ type OakTextInputProps = {
1732
+ /**
1733
+ * Disables user input and updates the appearance accordingly.
1734
+ */
1735
+ disabled?: boolean;
1736
+ /**
1737
+ * Makes the input read-only. Preventing the user from changing the value.
1738
+ */
1739
+ readOnly?: boolean;
1740
+ /**
1741
+ * Sets the value. Use this in controlled components;
1742
+ */
1743
+ value?: string;
1744
+ /**
1745
+ * Sets the initial value. Use this for an uncontrolled component;
1746
+ */
1747
+ defaultValue?: string;
1748
+ /**
1749
+ * Used to target the input element in tests.
1750
+ */
1751
+ "data-testid"?: string;
1752
+ onChange?: ChangeEventHandler<HTMLInputElement>;
1753
+ /**
1754
+ * Alters the appearance of the input field to indicate whether the input is valid or invalid.
1755
+ */
1756
+ validity?: "valid" | "invalid";
1757
+ /**
1758
+ * Adds an icon to the input
1759
+ *
1760
+ * Defaults to the start of the input
1761
+ */
1762
+ iconName?: OakIconName;
1763
+ /**
1764
+ * Position the icon at the end of the input
1765
+ */
1766
+ isTrailingIcon?: boolean;
1767
+ iconColor?: OakCombinedColorToken;
1768
+ validBorderColor?: OakCombinedColorToken;
1769
+ invalidBorderColor?: OakCombinedColorToken;
1770
+ validIconColor?: OakCombinedColorToken;
1771
+ invalidIconColor?: OakCombinedColorToken;
1772
+ color?: OakCombinedColorToken;
1773
+ hoverBackground?: OakCombinedColorToken;
1774
+ background?: OakCombinedColorToken;
1775
+ borderColor?: OakCombinedColorToken;
1776
+ focusRingDropShadows?: OakDropShadowToken[];
1777
+ disabledBackgroundColor?: OakCombinedColorToken;
1778
+ readOnlyBorderColor?: OakCombinedColorToken;
1779
+ disabledColor?: OakCombinedColorToken;
1780
+ readOnlyColor?: OakCombinedColorToken;
1781
+ /**
1782
+ * The width of the surrounding div - the input and icon will fill this
1783
+ */
1784
+ wrapperWidth?: SizeStyleProps["$width"];
1785
+ wrapperMaxWidth?: SizeStyleProps["$maxWidth"];
1786
+ iconAlt?: string;
1787
+ } & InternalTextInputProps;
1788
+ /**
1789
+ * Default input which can be extended to create specialised inputs.
1790
+ */
1791
+ 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;
1792
+
1793
+ type InternalTooltipProps = OakFlexProps & {
1794
+ isOpen: boolean;
1795
+ tooltip: ReactNode;
1796
+ children?: ReactNode;
1797
+ };
1798
+
1799
+ /**
1800
+ * A tooltip with oven-ready styling
1801
+ */
1802
+ declare const OakTooltip: ({ ...props }: Pick<InternalTooltipProps, "isOpen" | "tooltip" | "children">) => React__default.JSX.Element;
1803
+
1804
+ type OakBackLinkProps<C extends ElementType> = {
1805
+ as?: C;
1806
+ label?: string;
1807
+ } & ComponentPropsWithoutRef<C>;
1808
+ /**
1809
+ * Used to navigate the user back to the previous page in the app.
1810
+ *
1811
+ * Polymorphic rendering as any HTML element or component using `as` — defaults to `a`.
1812
+ *
1813
+ * E.g.
1814
+ *
1815
+ * * Default (Anchor) `<OakBackLink href="https://www.thenational.academy/" />`
1816
+ * * Button `<OakBackLink as="button" onClick={() => goBack(-1)} />`
1817
+ */
1818
+ declare const OakBackLink: <C extends React__default.ElementType = "a">({ as, label, ...props }: OakBackLinkProps<C>) => React__default.JSX.Element;
1819
+
1820
+ type OakBulletListProps = {
1821
+ listItems: string[];
1822
+ } & OakSpanProps;
1823
+ /**
1824
+ * An inline bulleted list
1825
+ */
1826
+ declare const OakBulletList: (props: OakBulletListProps) => React__default.JSX.Element;
1827
+
1828
+ type InternalCardProps = OakFlexProps;
1829
+
1830
+ type InternalCardWithBackgroundElementProps = InternalCardProps & {
1831
+ backgroundElement: ReactElement;
1832
+ };
1833
+
1834
+ type InternalStyledSvgProps = {
1835
+ $fill?: ResponsiveValues<OakCombinedColorToken>;
1836
+ $stroke?: ResponsiveValues<OakCombinedColorToken>;
1837
+ $strokeWidth?: ResponsiveValues<OakBorderWidthToken>;
1838
+ };
1839
+
1840
+ type OakHandDrawnCardProps = Omit<InternalCardWithBackgroundElementProps, "backgroundElement"> & {
1841
+ fill?: InternalStyledSvgProps["$fill"];
1842
+ stroke?: InternalStyledSvgProps["$stroke"];
1843
+ strokeWidth?: InternalStyledSvgProps["$strokeWidth"];
1844
+ };
1845
+ /**
1846
+ * A flexed card with a hand-drawn filled background
1847
+ *
1848
+ * An optional `stroke` and `strokeWidth` can be applied to give the background a border
1849
+ */
1850
+ declare const OakHandDrawnCard: ({ $pa, fill, stroke, strokeWidth, $width, ...props }: OakHandDrawnCardProps) => React__default.JSX.Element;
1851
+
1852
+ type OakHandDrawnBoxWithIconProps = Omit<OakHandDrawnCardProps, "children"> & {
1853
+ iconName: OakIconProps["iconName"];
1854
+ alt?: OakIconProps["alt"];
1855
+ iconColor?: OakIconProps["$colorFilter"];
1856
+ iconWidth?: OakIconProps["$width"];
1857
+ iconHeight?: OakIconProps["$height"];
1858
+ };
1859
+ /**
1860
+ * A hand-drawn card with an icon in the center
1861
+ */
1862
+ declare const OakHandDrawnCardWithIcon: ({ iconName, iconColor, iconWidth, iconHeight, alt, $width, $height, $alignItems, $justifyContent, ...props }: OakHandDrawnBoxWithIconProps) => React__default.JSX.Element;
1863
+
1864
+ /**
1865
+ * Renders a tag with the text "New"
1866
+ */
1867
+ declare const OakPromoTag: () => React__default.JSX.Element;
1868
+
1869
+ type OakInfoCardProps = {
1870
+ children: React__default.ReactNode;
1871
+ };
1872
+ type OakCardHeaderprops = {
1873
+ iconName: OakIconName;
1874
+ tag: OakHeadingTag;
1875
+ children: string;
1876
+ };
1877
+ declare const OakCardHeader: (props: OakCardHeaderprops) => React__default.JSX.Element;
1878
+ /**
1879
+ *
1880
+ * OakLessonInfoCards are created using the custom card either oakLessoninfoCard or oakStaticMessageCard and the content is added as children. And use the oakCardHeader to create the header of the card.
1881
+ *
1882
+ */
1883
+ declare const OakLessonInfoCard: (props: OakInfoCardProps) => React__default.JSX.Element;
1884
+ declare const OakStaticMessageCard: (props: OakInfoCardProps) => React__default.JSX.Element;
1885
+
1886
+ type OakCollapsibleContentProps = ComponentProps<typeof OakFlex> & {
1887
+ /**
1888
+ * Whether the content is displayed or not
1889
+ */
1890
+ isOpen: boolean;
1891
+ };
1892
+ /**
1893
+ * A filled scrollable box that can be hidden with the `isOpen` prop.
1894
+ * Useful for hiding content that is not immediately relevant
1895
+ */
1896
+ declare const OakCollapsibleContent: ({ isOpen, children, id, ...rest }: OakCollapsibleContentProps) => React__default.JSX.Element;
1897
+
1898
+ type OakLinkProps = {
1899
+ iconName?: OakIconProps["iconName"];
1900
+ isTrailingIcon?: boolean;
1901
+ isLoading?: boolean;
1902
+ };
1903
+ type OakLinkComponent = <C extends React__default.ElementType = "a">(props: PolymorphicPropsWithRef<C> & OakLinkProps) => React__default.ReactNode;
1904
+ /**
1905
+ * A blue link with an optional icon and loading state.
1906
+ *
1907
+ * Defaulting to a `HTMLAnchorElement` this component is polymorphic and can be rendered as a button or any other element.
1908
+ */
1909
+ declare const OakLink: OakLinkComponent;
1910
+
1911
+ /**
1912
+ * Displays different instructions for drag and drop functionality
1913
+ * depending on the user's primary input device
1914
+ */
1915
+ declare const OakDragAndDropInstructions: (props: ComponentPropsWithoutRef<typeof OakFlex>) => React__default.JSX.Element;
1916
+
1917
+ type OakDraggableProps = {
1918
+ /**
1919
+ * Whether the item is currently being dragged
1920
+ */
1921
+ isDragging?: boolean;
1922
+ /**
1923
+ * Present the element in a subdued state with hover effects disabled
1924
+ */
1925
+ isDisabled?: boolean;
1926
+ /**
1927
+ * Read only
1928
+ *
1929
+ * Disables hover effects
1930
+ */
1931
+ isReadOnly?: boolean;
1932
+ /**
1933
+ * Icon to display
1934
+ */
1935
+ iconName?: IconName;
1936
+ /**
1937
+ * Icon color
1938
+ */
1939
+ iconColor?: OakColorFilterToken;
1940
+ };
1941
+ /**
1942
+ * The component has no intrinsic draggable functionality.
1943
+ * It is intended to be used with `useDraggable` from `@dnd-kit/core`
1944
+ */
1945
+ declare const OakDraggable: FC<ComponentPropsWithRef<OakDraggableProps & typeof OakBox>>;
1946
+
1947
+ type OakDroppableProps = {
1948
+ /**
1949
+ * Indicates whether a draggable is currently being dragged over the droppable
1950
+ */
1951
+ isOver?: boolean;
1952
+ children?: ReactNode;
1953
+ };
1954
+ /**
1955
+ * A drop zone for a draggable
1956
+ *
1957
+ * Has no intrinsic drop functionality.
1958
+ * It is intended to be used with `useDraggable` from `@dnd-kit/core`
1959
+ */
1960
+ declare const OakDroppable: FC<OakDroppableProps & ComponentPropsWithRef<typeof OakBox>>;
1961
+
1962
+ type OakDraggableFeedbackProps = ComponentPropsWithoutRef<typeof OakDraggable> & {
1963
+ /**
1964
+ * Alters the appearance of the element to indicate whether or not it is in a correct state
1965
+ */
1966
+ feedback: "correct" | "incorrect";
1967
+ };
1968
+ /**
1969
+ * A draggable element that visually indicates whether or not its state is correct or not
1970
+ */
1971
+ declare const OakDraggableFeedback: ({ feedback, ...props }: OakDraggableFeedbackProps) => React__default.JSX.Element;
1972
+
1973
+ type OakQuizCheckBoxProps = Omit<BaseCheckBoxProps, "defaultChecked"> & {
1974
+ feedback?: "correct" | "incorrect" | null;
1975
+ image?: React__default.JSX.Element;
1976
+ innerRef?: React__default.RefObject<HTMLInputElement>;
1977
+ displayValue?: string;
1978
+ };
1979
+ /**
1980
+ * A checkbox representing the options in a multiple choice question.
1981
+ */
1982
+ declare const OakQuizCheckBox: (props: OakQuizCheckBoxProps) => React__default.JSX.Element;
1983
+
1984
+ type OakQuizTextInputProps = Omit<OakTextInputProps, "validity" | "iconName" | "iconAlt" | "isTrailingIcon"> & {
1985
+ /**
1986
+ * Alters the appearance of the input to indicate whether or not a correct answer was given.
1987
+ * Also sets the input to read-only.
1988
+ */
1989
+ feedback?: "correct" | "incorrect" | null;
1990
+ };
1991
+ /**
1992
+ * A text input for a free-text question in a quiz
1993
+ */
1994
+ declare const OakQuizTextInput: ({ feedback, readOnly, ...props }: OakQuizTextInputProps) => React__default.JSX.Element;
1995
+
1996
+ type OakQuizRadioButtonProps = OakRadioButtonProps & {
1997
+ feedback?: "correct" | "incorrect" | null;
1998
+ image?: JSX.Element;
1999
+ };
2000
+ /**
2001
+ * A radio button representing the options in a multiple choice question.
2002
+ *
2003
+ * Use with `OakRadioGroup` to create a group of radio buttons.
2004
+ */
2005
+ declare const OakQuizRadioButton: (props: OakQuizRadioButtonProps) => React__default.JSX.Element;
2006
+
2007
+ type OakQuizHintProps = {
2008
+ /**
2009
+ * Some content to give as a hint to answer a question
2010
+ */
2011
+ hint: ReactNode;
2012
+ };
2013
+ /**
2014
+ * Presents a button which will show a hint when clicked
2015
+ */
2016
+ declare const OakQuizHint: ({ hint }: OakQuizHintProps) => React__default.JSX.Element;
2017
+
2018
+ type OakQuizFeedbackProps = {
2019
+ /**
2020
+ * Feedback for an answer
2021
+ * `partially-correct` can be used to feedback on a multi-answer MCQ where some
2022
+ * correct options were not selected and/or some incorrect answers were selected
2023
+ */
2024
+ feedback: "correct" | "incorrect" | "partially-correct";
2025
+ /**
2026
+ * Some additional content to present with the feedback.
2027
+ * This is likely the correct answer(s) to the question or some praise.
2028
+ *
2029
+ * Only displayed when `feedback` has been applied.
2030
+ */
2031
+ answerFeedback?: ReactNode;
2032
+ };
2033
+ /**
2034
+ * Gives feedback after a question has been answered
2035
+ */
2036
+ declare const OakQuizFeedback: ({ feedback, answerFeedback, }: OakQuizFeedbackProps) => React__default.JSX.Element;
2037
+
2038
+ type OakLessonBottomNavProps = {
2039
+ children?: ReactNode;
2040
+ feedback?: OakQuizFeedbackProps["feedback"] | null;
2041
+ answerFeedback?: OakQuizFeedbackProps["answerFeedback"];
2042
+ hint?: OakQuizHintProps["hint"];
2043
+ };
2044
+ /**
2045
+ * Renders feedback for an answer and onward navigation buttons to continue the lesson
2046
+ */
2047
+ declare const OakLessonBottomNav: ({ hint, feedback, answerFeedback, children, }: OakLessonBottomNavProps) => React__default.JSX.Element;
2048
+
2049
+ type LessonSectionName$1 = "intro" | "starter-quiz" | "video" | "exit-quiz";
2050
+ type OakLessonTopNavProps = {
2051
+ lessonSectionName: LessonSectionName$1;
2052
+ /**
2053
+ * Slot to render `OakBackLink` or similar
2054
+ */
2055
+ backLinkSlot: ReactNode;
2056
+ heading: ReactNode;
2057
+ /**
2058
+ * Displayed at the mobile breakpoint where the counter is not rendered.
2059
+ * Provides alternative content for the counter/progress in the lesson.
2060
+ */
2061
+ mobileSummary: ReactNode;
2062
+ /**
2063
+ * Slot to render `OakQuizCounter` or similar
2064
+ */
2065
+ counterSlot?: ReactNode;
2066
+ };
2067
+ /**
2068
+ * Controls for navigating back and displaying progress in a lesson
2069
+ */
2070
+ declare const OakLessonTopNav: ({ lessonSectionName, backLinkSlot, counterSlot, heading, mobileSummary, }: OakLessonTopNavProps) => React__default.JSX.Element;
2071
+
2072
+ type OakQuizCounterProps = {
2073
+ counter: number;
2074
+ total: number;
2075
+ };
2076
+ /**
2077
+ * A counter representing progress through the questions in a quiz
2078
+ */
2079
+ declare const OakQuizCounter: (props: OakQuizCounterProps) => React__default.JSX.Element;
2080
+
2081
+ type LessonSectionName = "overview" | "intro" | "starter-quiz" | "video" | "exit-quiz" | "review";
2082
+ type OakLessonLayoutProps = {
2083
+ lessonSectionName: LessonSectionName;
2084
+ topNavSlot: ReactNode;
2085
+ bottomNavSlot: ReactNode;
2086
+ children: ReactNode;
2087
+ };
2088
+ /**
2089
+ * Provides overall page layout and colours for the sections of a lesson.
2090
+ */
2091
+ declare const OakLessonLayout: ({ lessonSectionName, topNavSlot, bottomNavSlot, children, }: OakLessonLayoutProps) => React__default.JSX.Element;
2092
+
2093
+ type OakHintButtonProps = {
2094
+ isOpen: boolean;
2095
+ onClick?: MouseEventHandler;
2096
+ isLoading?: boolean;
2097
+ disabled?: boolean;
2098
+ };
2099
+ /**
2100
+ *
2101
+ * A specific implementation of InternalShadowRoundButton
2102
+ *
2103
+ * The following callbacks are available for tracking focus events:
2104
+ *
2105
+ * ### onClick
2106
+ * `onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;`
2107
+ *
2108
+ * ### onHovered
2109
+ * `onHovered?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>, duration: number) => void;`<br>
2110
+ * called after a mouseEnter and mouseLeave event has happened
2111
+ */
2112
+ declare const OakHintButton: (props: OakHintButtonProps) => React__default.JSX.Element;
2113
+
2114
+ type BaseOakLessonNavItemProps<C extends ElementType> = {
2115
+ as?: C;
2116
+ /**
2117
+ * Disable the section preventing navigation to it.
2118
+ */
2119
+ disabled?: boolean;
2120
+ } & ComponentPropsWithoutRef<C>;
2121
+ type QuizSectionProps$1 = {
2122
+ lessonSectionName: "starter-quiz" | "exit-quiz";
2123
+ /**
2124
+ * The number of questions in the quiz
2125
+ */
2126
+ numQuestions: number;
2127
+ /**
2128
+ * The number of questions answered correctly
2129
+ */
2130
+ grade: number;
2131
+ };
2132
+ type VideoSectionProps$1 = {
2133
+ lessonSectionName: "video";
2134
+ };
2135
+ type IntroSectionProps$1 = {
2136
+ lessonSectionName: "intro";
2137
+ };
2138
+ type SectionProps = {
2139
+ /**
2140
+ * Denotes the progress in the lesson section
2141
+ */
2142
+ progress: "not-started" | "in-progress" | "complete";
2143
+ } & (IntroSectionProps$1 | QuizSectionProps$1 | VideoSectionProps$1);
2144
+ type OakLessonNavItemProps<C extends ElementType> = BaseOakLessonNavItemProps<C> & SectionProps;
2145
+ /**
2146
+ * Enables navigation to the given section of a lesson as well as displaying current progress
2147
+ */
2148
+ declare const OakLessonNavItem: <C extends React__default.ElementType = "a">(props: OakLessonNavItemProps<C>) => React__default.JSX.Element;
2149
+
2150
+ type BaseOakLessonReviewItemProps = {
2151
+ completed: boolean;
2152
+ };
2153
+ type QuizSectionProps = {
2154
+ lessonSectionName: "starter-quiz" | "exit-quiz";
2155
+ /**
2156
+ * The number of questions in the quiz
2157
+ */
2158
+ numQuestions: number;
2159
+ /**
2160
+ * The number of questions answered correctly
2161
+ */
2162
+ grade: number;
2163
+ };
2164
+ type VideoSectionProps = {
2165
+ lessonSectionName: "video";
2166
+ };
2167
+ type IntroSectionProps = {
2168
+ lessonSectionName: "intro";
2169
+ };
2170
+ type OakLessonReviewItemProps = BaseOakLessonReviewItemProps & (IntroSectionProps | QuizSectionProps | VideoSectionProps);
2171
+ declare const OakLessonReviewItem: (props: OakLessonReviewItemProps) => React__default.JSX.Element;
2172
+
2173
+ type OakLessonVideoTranscriptProps = {
2174
+ /**
2175
+ * The transcript content
2176
+ */
2177
+ children: ReactNode;
2178
+ /**
2179
+ * The id of the collapsible content element. This is used to link the button to the content
2180
+ */
2181
+ id: string;
2182
+ /**
2183
+ * A control to toggle the video to display sign language
2184
+ */
2185
+ signLanguageControl?: ReactNode;
2186
+ };
2187
+ /**
2188
+ * Display a togglable video transcript with a slot to display a sign language control
2189
+ */
2190
+ declare const OakLessonVideoTranscript: ({ children, id, signLanguageControl, }: OakLessonVideoTranscriptProps) => React__default.JSX.Element;
2191
+
2192
+ type OakQuizOrderItem = {
2193
+ id: string;
2194
+ label: string;
2195
+ };
2196
+ type OakQuizOrderProps = {
2197
+ /**
2198
+ * The initial order of items
2199
+ *
2200
+ * this cannot be updated on subsequent renders
2201
+ */
2202
+ initialItems: OakQuizOrderItem[];
2203
+ /**
2204
+ * Notified the consumer when the order of items has changed
2205
+ */
2206
+ onChange?: (items: OakQuizOrderItem[]) => void;
2207
+ };
2208
+ /**
2209
+ * Facilitates DI for the DndContext
2210
+ */
2211
+ declare const injectDndContext: React__default.Context<React__default.FC<DndContextProps>>;
2212
+ /**
2213
+ * A sortable list of items with drag and drop functionality. Items can be dragged over named slots to re-arrange them
2214
+ *
2215
+ * Keyboard navigation is supported with the `tab`, `space` and `arrow` keys
2216
+ */
2217
+ declare const OakQuizOrder: ({ initialItems, onChange }: OakQuizOrderProps) => React__default.JSX.Element;
2218
+
2219
+ type OakSubjectIconProps = Pick<OakHandDrawnBoxWithIconProps, "iconName" | "fill" | "iconColor" | "alt"> & {
2220
+ iconName: `subject-${string}`;
2221
+ showPromoTag?: boolean;
2222
+ };
2223
+ /**
2224
+ * A large illuminated hand-drawn box with a subject icon in the center
2225
+ *
2226
+ * Accepts an optional `showPromoTag` prop to display a "New" tag in the top left corner
2227
+ */
2228
+ declare const OakSubjectIcon: ({ showPromoTag, ...rest }: OakSubjectIconProps) => React__default.JSX.Element;
2229
+
2230
+ type Url = string | UrlObject;
2231
+ type OakPrimaryNavItemProps = {
2232
+ href: Url;
2233
+ isCurrent?: boolean;
2234
+ shallow?: boolean;
2235
+ children: ReactNode;
2236
+ } & OakPrimaryButtonProps & OakPrimaryInvertedButtonProps;
2237
+ /**
2238
+ *
2239
+ * A specific implementation of OakPrimaryButton and OakPrimaryInvertedButton rendering
2240
+ * relevant view depending on isCurrent prop
2241
+ *
2242
+ */
2243
+ declare const OakPrimaryNavItem: ({ href, isCurrent, shallow, children, }: OakPrimaryNavItemProps) => React__default.JSX.Element;
2244
+
2245
+ type OakPrimaryNavProps = {
2246
+ ariaLabel?: string;
2247
+ navItems: OakPrimaryNavItemProps[];
2248
+ };
2249
+ /**
2250
+ * A row of buttons for navigating between different sections
2251
+ */
2252
+ declare const OakPrimaryNav: ({ ariaLabel, navItems }: OakPrimaryNavProps) => React__default.JSX.Element;
2253
+
2254
+ 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, OakDragAndDropInstructions, OakDraggable, OakDraggableFeedback, type OakDropShadowToken, OakDroppable, type OakDroppableProps, 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, OakKbd, type OakKbdProps, 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, OakQuizOrder, type OakQuizOrderProps, 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, injectDndContext, isValidIconName, oakAllSpacingTokens, oakBorderRadiusTokens, oakBorderWidthTokens, oakBoxCss, oakColorTokens, oakDefaultTheme, oakDropShadowTokens, oakFontSizeTokens, oakFontTokens, oakHeadingTags, oakIconNames, oakInnerPaddingTokens, oakOpacityTokens, oakSpaceBetweenTokens, oakTransitionTokens, oakUiRoleTokens };