@omni-design/components 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/OmniDesignProvider.esm.js +1 -1
  2. package/dist/OmniDesignProvider.esm.js.map +1 -1
  3. package/dist/OmniDesignProvider.js +1 -1
  4. package/dist/OmniDesignProvider.js.map +1 -1
  5. package/dist/index.esm.js +8 -3
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +8 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/types/components/BackgroundPicker.d.ts +1 -1
  10. package/dist/types/components/BrandIcon/BrandIcon.d.ts +20 -0
  11. package/dist/types/components/BrandIcon/index.d.ts +1 -0
  12. package/dist/types/components/Charts/tokens.d.ts +1 -1
  13. package/dist/types/components/Footer/Footer.d.ts +3 -1
  14. package/dist/types/components/Foundations/FoundationTopic.d.ts +4 -0
  15. package/dist/types/components/Foundations/HowToSlot.d.ts +16 -0
  16. package/dist/types/components/Foundations/TokenRoles.d.ts +19 -0
  17. package/dist/types/components/Foundations/TypographySummary.d.ts +2 -0
  18. package/dist/types/components/ShowcaseHeader.d.ts +5 -0
  19. package/dist/types/components/TextField/TextField.d.ts +1 -1
  20. package/dist/types/components/Typography/Typography.d.ts +54 -1
  21. package/dist/types/components/Typography/index.d.ts +1 -1
  22. package/dist/types/components/_states.d.ts +1 -1
  23. package/dist/types/components/a11yPanel.d.ts +37 -0
  24. package/dist/types/components/index.d.ts +3 -2
  25. package/dist/types/docs/DocPanels.d.ts +0 -14
  26. package/dist/types/docs/components.d.ts +8 -0
  27. package/dist/types/docs/componentsSurfaces.d.ts +100 -10
  28. package/dist/types/docs/examples.d.ts +11 -0
  29. package/dist/types/docs/figmaHowTo.d.ts +28 -0
  30. package/dist/types/docs/figmaLinks.d.ts +58 -0
  31. package/dist/types/docs/foundations.d.ts +12 -0
  32. package/package.json +4 -2
  33. package/public/styles/Dark-Mode.css +6 -0
  34. package/public/styles/Light-Mode.css +6 -0
  35. package/public/styles/base.css +23 -0
  36. package/public/styles/core.css +94 -15
  37. package/public/styles/foundation.css +18 -0
  38. package/public/styles/typography-tokens.css +262 -13
  39. package/dist/types/theme/useThemeMode.d.ts +0 -4
@@ -1,5 +1,5 @@
1
1
  export function BackgroundPicker({ theme, onThemeChange, surface, onSurfaceChange, surfaces, size, }: {
2
- theme?: any;
2
+ theme?: string;
3
3
  onThemeChange: any;
4
4
  surface?: string;
5
5
  onSurfaceChange: any;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @param name lowercase, hyphenated, as Figma's text layer holds it:
3
+ * 'github', 'x-twitter', 'linkedin', 'dribbble', 'instagram'
4
+ * @param icon a Font Awesome icon object, if you would rather import it
5
+ * yourself. Takes precedence over `name`.
6
+ * @param size any CSS length. Defaults to 1em so it rides the text beside it.
7
+ * @param color any CSS color or token. Defaults to currentColor.
8
+ * @param title accessible name. Omit for decoration beside a visible label —
9
+ * the icon is then aria-hidden, which is the common case in a
10
+ * footer where the link text already says "GitHub".
11
+ */
12
+ export function BrandIcon({ name, icon, size, color, title, ...props }: {
13
+ [x: string]: any;
14
+ name: any;
15
+ icon: any;
16
+ size?: string;
17
+ color?: string;
18
+ title: any;
19
+ }): JSX.Element;
20
+ export default BrandIcon;
@@ -0,0 +1 @@
1
+ export { BrandIcon, default } from "./BrandIcon";
@@ -16,7 +16,7 @@ export namespace CHART_TOKENS {
16
16
  *
17
17
  * Brand accents lead, because a category has no inherent meaning and should
18
18
  * not borrow one — a green wedge next to a red one reads as pass/fail whether
19
- * or not that is what the data says. The state colours are still available for
19
+ * or not that is what the data says. The state colors are still available for
20
20
  * charts with more categories than accents, and a caller can pass its own
21
21
  * subset (or reorder it) via the `colors` prop when the categories DO carry
22
22
  * semantics: `colors={['Success', 'Warning', 'Error']}`.
@@ -1,10 +1,12 @@
1
- export function Footer({ color, brand, address, columns, socialLinks, subscribe, copyrightName, copyrightYear, className, style, ...rest }: {
1
+ export function Footer({ color, brand, address, columns, socialLinks, copyright, children, subscribe, copyrightName, copyrightYear, className, style, ...rest }: {
2
2
  [x: string]: any;
3
3
  color?: string;
4
4
  brand: any;
5
5
  address: any;
6
6
  columns?: any[];
7
7
  socialLinks?: any[];
8
+ copyright?: boolean;
9
+ children: any;
8
10
  subscribe: any;
9
11
  copyrightName: any;
10
12
  copyrightYear: any;
@@ -0,0 +1,4 @@
1
+ export function FoundationTopic({ topic }: {
2
+ topic: any;
3
+ }): JSX.Element;
4
+ export default FoundationTopic;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @param src path under public/, e.g. "/images/figma-surface-mode.png".
3
+ * Omit it to render the placeholder. A .mp4/.mov/.webm plays.
4
+ * @param title what the shot should show, in a few words.
5
+ * @param shows one line on what the viewer should come away knowing.
6
+ * @param aspect placeholder shape. Panel crops are tall; default suits them.
7
+ * @param maxWidth cap in px. Panel crops are narrow, so the default is too.
8
+ */
9
+ export function HowToSlot({ src, title, shows, aspect, maxWidth }: {
10
+ src: any;
11
+ title: any;
12
+ shows: any;
13
+ aspect?: string;
14
+ maxWidth?: number;
15
+ }): JSX.Element;
16
+ export default HowToSlot;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * One swatch per role, painted from the token itself.
3
+ *
4
+ * The chip renders the REAL variable rather than a copy of its value, so it
5
+ * re-resolves with the theme and surface pickers above — which is the only way
6
+ * to show that these are roles and not colors.
7
+ */
8
+ export function RoleSwatches({ title, note, roles, tokenFor }: {
9
+ title: any;
10
+ note: any;
11
+ roles: any;
12
+ tokenFor: any;
13
+ }): JSX.Element;
14
+ export function StyleTable({ styles, tokensFor, defaultColorFor, render }: {
15
+ styles: any;
16
+ tokensFor: any;
17
+ defaultColorFor: any;
18
+ render: any;
19
+ }): JSX.Element;
@@ -0,0 +1,2 @@
1
+ export function TypographySummary(): JSX.Element;
2
+ export default TypographySummary;
@@ -0,0 +1,5 @@
1
+ export function ShowcaseHeader({ title, component }: {
2
+ title: any;
3
+ component: any;
4
+ }): JSX.Element;
5
+ export default ShowcaseHeader;
@@ -92,7 +92,7 @@ export function URLTextField({ label, placeholder, ...props }: {
92
92
  * - error / errorMessage where Input has validation / validationMessage, so
93
93
  * the same state was spelled two ways depending on which control you
94
94
  * reached for.
95
- * - No size, no variant, no colour, no adornments, no floating label.
95
+ * - No size, no variant, no color, no adornments, no floating label.
96
96
  *
97
97
  * Input already takes multiline / rows / maxRows and renders a <textarea>, so
98
98
  * there was never a second thing to build — only a second thing to maintain.
@@ -1,8 +1,9 @@
1
- export function Typography({ children, textStyle, color, width, component, noWrap, gutterBottom, className, sx, ...props }: {
1
+ export function Typography({ children, textStyle, color, altMode, width, component, noWrap, gutterBottom, className, sx, ...props }: {
2
2
  [x: string]: any;
3
3
  children: any;
4
4
  textStyle?: string;
5
5
  color: any;
6
+ altMode: any;
6
7
  width: any;
7
8
  component: any;
8
9
  noWrap?: boolean;
@@ -11,6 +12,39 @@ export function Typography({ children, textStyle, color, width, component, noWra
11
12
  sx?: {};
12
13
  }): JSX.Element;
13
14
  export const STYLE_MAP: {
15
+ 'alt-display-large': {
16
+ component: string;
17
+ fontFamily: string;
18
+ fontSize: string;
19
+ fontWeight: string;
20
+ lineHeight: string;
21
+ letterSpacing: string;
22
+ defaultColor: string;
23
+ defaultWidth: string;
24
+ altDisplay: boolean;
25
+ };
26
+ 'alt-display-medium': {
27
+ component: string;
28
+ fontFamily: string;
29
+ fontSize: string;
30
+ fontWeight: string;
31
+ lineHeight: string;
32
+ letterSpacing: string;
33
+ defaultColor: string;
34
+ defaultWidth: string;
35
+ altDisplay: boolean;
36
+ };
37
+ 'alt-display-small': {
38
+ component: string;
39
+ fontFamily: string;
40
+ fontSize: string;
41
+ fontWeight: string;
42
+ lineHeight: string;
43
+ letterSpacing: string;
44
+ defaultColor: string;
45
+ defaultWidth: string;
46
+ altDisplay: boolean;
47
+ };
14
48
  'display-large': {
15
49
  component: string;
16
50
  fontFamily: string;
@@ -427,6 +461,22 @@ export const STYLE_ALIASES: {
427
461
  'subtitle-medium': string;
428
462
  };
429
463
  export const TYPOGRAPHY_STYLES: string[];
464
+ /**
465
+ * Every CSS variable each style reads, derived from the style's own config.
466
+ *
467
+ * Generated rather than listed, because a hand-kept table is a second source
468
+ * of truth that drifts the first time someone adds a style — and the docs in
469
+ * this repo have been wrong about bindings often enough today to make that a
470
+ * real cost rather than a theoretical one. The config strings already contain
471
+ * the token names; this just reads them back out.
472
+ */
473
+ export const STYLE_TOKENS: {
474
+ [k: string]: string[];
475
+ };
476
+ /** 'header' or 'standard' — which color role a style takes by default. */
477
+ export const STYLE_DEFAULT_COLOR: {
478
+ [k: string]: string;
479
+ };
430
480
  export const HEADER_COLORS: string[];
431
481
  export const TEXT_COLORS: string[];
432
482
  export const CAP_HEIGHT_TRIM: {
@@ -440,6 +490,9 @@ export const CAP_HEIGHT_TRIM: {
440
490
  export function DisplayLarge(p: any): JSX.Element;
441
491
  export function DisplayMedium(p: any): JSX.Element;
442
492
  export function DisplaySmall(p: any): JSX.Element;
493
+ export function AltDisplayLarge(p: any): JSX.Element;
494
+ export function AltDisplayMedium(p: any): JSX.Element;
495
+ export function AltDisplaySmall(p: any): JSX.Element;
443
496
  export function H1(p: any): JSX.Element;
444
497
  export function H2(p: any): JSX.Element;
445
498
  export function H3(p: any): JSX.Element;
@@ -1,2 +1,2 @@
1
1
  export { TypographyShowcase } from "./TypographyShowcase";
2
- export { Typography, TYPOGRAPHY_STYLES, CAP_HEIGHT_TRIM, H1, H2, H3, H4, H5, H6, Heading, DisplayLarge, DisplayMedium, DisplaySmall, Subtitle, SubtitleSmall, SubtitleMedium, SubtitleLarge, Subtitle1, Subtitle2, Body, BodySmall, BodyLarge, BodySemibold, BodyBold, BodySmallSemibold, BodySmallBold, BodyLargeSemibold, BodyLargeBold, Body1, Body2, Label, LabelSmall, LabelLarge, LabelExtraSmall, Caption, CaptionBold, Legal, LegalSemibold, Button, ButtonSmall, ButtonExtraSmall, Eyebrow, EyebrowSmall, EyebrowMedium, EyebrowLarge, Overline, OverlineSmall, OverlineMedium, OverlineLarge, NumberLarge, NumberMedium, NumberSmall, default } from "./Typography";
2
+ export { TEXT_COLORS, HEADER_COLORS, Typography, TYPOGRAPHY_STYLES, STYLE_TOKENS, STYLE_DEFAULT_COLOR, CAP_HEIGHT_TRIM, H1, H2, H3, H4, H5, H6, Heading, DisplayLarge, DisplayMedium, DisplaySmall, AltDisplayLarge, AltDisplayMedium, AltDisplaySmall, Subtitle, SubtitleSmall, SubtitleMedium, SubtitleLarge, Subtitle1, Subtitle2, Body, BodySmall, BodyLarge, BodySemibold, BodyBold, BodySmallSemibold, BodySmallBold, BodyLargeSemibold, BodyLargeBold, Body1, Body2, Label, LabelSmall, LabelLarge, LabelExtraSmall, Caption, CaptionBold, Legal, LegalSemibold, Button, ButtonSmall, ButtonExtraSmall, Eyebrow, EyebrowSmall, EyebrowMedium, EyebrowLarge, Overline, OverlineSmall, OverlineMedium, OverlineLarge, NumberLarge, NumberMedium, NumberSmall, default } from "./Typography";
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * @param {object} [opts]
5
5
  * @param {string} [opts.selectedBg] resting fill when selected
6
- * @param {string} [opts.selectedText] text colour when selected
6
+ * @param {string} [opts.selectedText] text color when selected
7
7
  * @param {string} [opts.selectedHover] fill on hover while selected
8
8
  * @param {string} [opts.selectedPressed] fill on press while selected
9
9
  * @param {string} [opts.muiPrefix] 'Mui' to use MUI's class-based
@@ -0,0 +1,37 @@
1
+ export function ContrastBadge({ ratio, threshold }: {
2
+ ratio: any;
3
+ threshold?: number;
4
+ }): JSX.Element;
5
+ export function A11yRow({ label, ratio, threshold, note }: {
6
+ label: any;
7
+ ratio: any;
8
+ threshold: any;
9
+ note: any;
10
+ }): JSX.Element;
11
+ export function A11yCheckRow({ label, pass, detail, note }: {
12
+ label: any;
13
+ pass: any;
14
+ detail: any;
15
+ note: any;
16
+ }): JSX.Element;
17
+ /**
18
+ * Read resolved CSS custom properties off a mounted element.
19
+ *
20
+ * Deferred with setTimeout and NOT requestAnimationFrame: rAF does not fire in
21
+ * a background or hidden tab, so a page opened in one measured nothing, and
22
+ * because the deps do not change afterwards it never retried — every row read
23
+ * "--" forever, even once the tab was focused.
24
+ *
25
+ * It also RETRIES, because the element can mount later than the effect: the
26
+ * preview often lives inside the Playground tab while the landing tab is
27
+ * Summary, so on first paint there is nothing to measure. Returning early used
28
+ * to end it permanently. Forty tries at 50ms, then stop, so a component with no
29
+ * preview does not poll forever.
30
+ *
31
+ * @param ref ref to the element whose computed style is read
32
+ * @param read (v) => data, where v(name) resolves one custom property
33
+ * @param deps re-measure when these change
34
+ */
35
+ export function useMeasuredTokens(ref: any, read: any, deps: any): {};
36
+ export { getContrast };
37
+ import { getContrast } from './contrast';
@@ -1,5 +1,6 @@
1
1
  export { Colors } from "./Colors";
2
2
  export { Spacing } from "./Spacing";
3
+ export { BrandIcon } from "./BrandIcon";
3
4
  export { Swatch } from "./Swatch";
4
5
  export { MiniSwatch } from "./MiniSwatch";
5
6
  export { IconBadge } from "./IconBadge";
@@ -29,7 +30,7 @@ export { OmniStack as DynoStack } from "./Stack/Stack";
29
30
  export { OmniTreeView as DynoTreeView } from "./TreeView/TreeView";
30
31
  export * as chartGeometry from "./Charts/geometry";
31
32
  export { StateMessage } from "./StateMessage";
32
- export { Typography, CAP_HEIGHT_TRIM, Heading, DisplayLarge, DisplayMedium, DisplaySmall, H1, H2, H3, H4, H5, H6, Body, Body1, Body2, BodySemibold, BodyBold, BodySmall, BodySmallSemibold, BodySmallBold, BodyLarge, BodyLargeSemibold, BodyLargeBold, Caption, CaptionBold, Subtitle, Subtitle1, Subtitle2, SubtitleSmall, SubtitleMedium, SubtitleLarge, Legal, LegalSemibold, Label, LabelExtraSmall, LabelSmall, LabelLarge, Eyebrow, EyebrowSmall, EyebrowMedium, EyebrowLarge, Overline, OverlineSmall, OverlineMedium, OverlineLarge, NumberSmall, NumberMedium, NumberLarge, Button as ButtonText, ButtonSmall } from "./Typography";
33
+ export { Typography, CAP_HEIGHT_TRIM, Heading, DisplayLarge, DisplayMedium, AltDisplayLarge, AltDisplayMedium, AltDisplaySmall, DisplaySmall, H1, H2, H3, H4, H5, H6, Body, Body1, Body2, BodySemibold, BodyBold, BodySmall, BodySmallSemibold, BodySmallBold, BodyLarge, BodyLargeSemibold, BodyLargeBold, Caption, CaptionBold, Subtitle, Subtitle1, Subtitle2, SubtitleSmall, SubtitleMedium, SubtitleLarge, Legal, LegalSemibold, Label, LabelExtraSmall, LabelSmall, LabelLarge, Eyebrow, EyebrowSmall, EyebrowMedium, EyebrowLarge, Overline, OverlineSmall, OverlineMedium, OverlineLarge, NumberSmall, NumberMedium, NumberLarge, Button as ButtonText, ButtonSmall } from "./Typography";
33
34
  export { Icon, IconShowcase } from "./Icon";
34
35
  export { Fab, FabShowcase } from "./Fab";
35
36
  export { Rail, RailShowcase } from "./Rail";
@@ -79,4 +80,4 @@ export { OmniDesignProvider, useOmniDesign, ThemedZone, Surfaced } from "../Omni
79
80
  export { CodeBlock, CopyButton } from "./CodeBlock/CodeBlock";
80
81
  export { BarChart, LineChart, PieChart, CHART_TOKENS, CHART_LABEL_TYPE } from "./Charts";
81
82
  export { Ghost, useGhost, ghostBlockSx } from "./_ghost";
82
- export { COMPONENT_DOCS, FOUNDATIONS, renderFoundations, renderColourSystem, renderComponentDoc, COLOUR_COLLECTIONS, docsSlug, componentDocsUrl, componentDocsIndexUrl, DOCS_ORIGIN, EXAMPLES, hasExample } from "../docs";
83
+ export { COMPONENT_DOCS, FOUNDATIONS, renderFoundations, renderColorSystem, renderColorSystem as renderColourSystem, renderComponentDoc, COLOR_COLLECTIONS, COLOR_COLLECTIONS as COLOUR_COLLECTIONS, docsSlug, componentDocsUrl, componentDocsIndexUrl, DOCS_ORIGIN, EXAMPLES, hasExample } from "../docs";
@@ -14,20 +14,6 @@ export function docFor(component: any): {
14
14
  accessibility: any;
15
15
  gotchas: any;
16
16
  };
17
- /**
18
- * Everything written about the component, in reading order — led by ONE live
19
- * example.
20
- *
21
- * The example is here because a page of prose gives no recognition: you cannot
22
- * tell what a component IS from its prop table. It renders in the theme and
23
- * surface currently selected, so the picture matches the pickers rather than
24
- * showing some other configuration. It is the default instance and is not
25
- * interactive — the Playground tab is where you change things.
26
- *
27
- * Components that need state or a portal to be shown honestly (Modal, Drawer,
28
- * Snackbar) have no example, and simply lead with the summary instead of
29
- * rendering a half-working one.
30
- */
31
17
  export function DocSummary({ component, theme, surface }: {
32
18
  component: any;
33
19
  theme?: any;
@@ -7,6 +7,8 @@ export namespace BUTTON_DOC {
7
7
  }[];
8
8
  let props: ({
9
9
  name: string;
10
+ label: string;
11
+ sample: string;
10
12
  type: string;
11
13
  default: string;
12
14
  values: string[];
@@ -16,17 +18,23 @@ export namespace BUTTON_DOC {
16
18
  type: string;
17
19
  values: string[];
18
20
  default: string;
21
+ label?: undefined;
22
+ sample?: undefined;
19
23
  note?: undefined;
20
24
  } | {
21
25
  name: string;
22
26
  type: string;
23
27
  default: string;
24
28
  note: string;
29
+ label?: undefined;
30
+ sample?: undefined;
25
31
  values?: undefined;
26
32
  } | {
27
33
  name: string;
28
34
  type: string;
29
35
  default: string;
36
+ label?: undefined;
37
+ sample?: undefined;
30
38
  values?: undefined;
31
39
  note?: undefined;
32
40
  })[];
@@ -79,6 +79,12 @@ export namespace FAB_DOC {
79
79
  values: string[];
80
80
  default: string;
81
81
  note?: undefined;
82
+ } | {
83
+ name: string;
84
+ type: string;
85
+ values: string[];
86
+ default: string;
87
+ note: string;
82
88
  })[];
83
89
  export { props_1 as props };
84
90
  let states_1: ({
@@ -235,6 +241,52 @@ export namespace ACCORDION_DOC {
235
241
  let gotchas_3: string[];
236
242
  export { gotchas_3 as gotchas };
237
243
  }
244
+ export namespace BRANDICON_DOC {
245
+ let name_4: string;
246
+ export { name_4 as name };
247
+ let summary_4: string;
248
+ export { summary_4 as summary };
249
+ let insteadUse_4: {
250
+ when: string;
251
+ use: string;
252
+ }[];
253
+ export { insteadUse_4 as insteadUse };
254
+ let props_4: {
255
+ name: string;
256
+ type: string;
257
+ default: string;
258
+ note: string;
259
+ }[];
260
+ export { props_4 as props };
261
+ let states_4: {
262
+ state: string;
263
+ setBy: string;
264
+ note: string;
265
+ }[];
266
+ export { states_4 as states };
267
+ let theming_4: {
268
+ collection: string;
269
+ inCode: string;
270
+ inFigma: string;
271
+ }[];
272
+ export { theming_4 as theming };
273
+ let themingNotes_3: string[];
274
+ export { themingNotes_3 as themingNotes };
275
+ let tokens_4: {
276
+ name: string;
277
+ sets: string;
278
+ variesWith: string;
279
+ figma: string;
280
+ }[];
281
+ export { tokens_4 as tokens };
282
+ let composition_4: string[];
283
+ export { composition_4 as composition };
284
+ let accessibility_4: string[];
285
+ export { accessibility_4 as accessibility };
286
+ let gotchas_4: string[];
287
+ export { gotchas_4 as gotchas };
288
+ export let changes: any[];
289
+ }
238
290
  export const SURFACE_DOCS: ({
239
291
  name: string;
240
292
  summary: string;
@@ -246,14 +298,8 @@ export const SURFACE_DOCS: ({
246
298
  name: string;
247
299
  type: string;
248
300
  default: string;
249
- values: string[];
250
- note: string;
251
- } | {
252
- name: string;
253
- type: string;
254
- values: string[];
255
- default: string;
256
301
  note?: undefined;
302
+ values?: undefined;
257
303
  } | {
258
304
  name: string;
259
305
  type: string;
@@ -263,15 +309,25 @@ export const SURFACE_DOCS: ({
263
309
  } | {
264
310
  name: string;
265
311
  type: string;
312
+ values: string[];
266
313
  default: string;
267
- values?: undefined;
268
314
  note?: undefined;
315
+ } | {
316
+ name: string;
317
+ type: string;
318
+ values: string[];
319
+ default: string;
320
+ note: string;
269
321
  })[];
270
- states: {
322
+ states: ({
271
323
  state: string;
272
324
  setBy: string;
273
325
  note: string;
274
- }[];
326
+ } | {
327
+ state: string;
328
+ setBy: string;
329
+ note?: undefined;
330
+ })[];
275
331
  theming: {
276
332
  collection: string;
277
333
  inCode: string;
@@ -336,4 +392,38 @@ export const SURFACE_DOCS: ({
336
392
  composition: string[];
337
393
  accessibility: string[];
338
394
  gotchas: string[];
395
+ } | {
396
+ name: string;
397
+ summary: string;
398
+ insteadUse: {
399
+ when: string;
400
+ use: string;
401
+ }[];
402
+ props: {
403
+ name: string;
404
+ type: string;
405
+ default: string;
406
+ note: string;
407
+ }[];
408
+ states: {
409
+ state: string;
410
+ setBy: string;
411
+ note: string;
412
+ }[];
413
+ theming: {
414
+ collection: string;
415
+ inCode: string;
416
+ inFigma: string;
417
+ }[];
418
+ themingNotes: string[];
419
+ tokens: {
420
+ name: string;
421
+ sets: string;
422
+ variesWith: string;
423
+ figma: string;
424
+ }[];
425
+ composition: string[];
426
+ accessibility: string[];
427
+ gotchas: string[];
428
+ changes: any[];
339
429
  })[];
@@ -3,6 +3,8 @@ export function hasExample(component: any): boolean;
3
3
  export function hasPropExample(component: any, prop: any): boolean;
4
4
  export namespace EXAMPLES {
5
5
  function Button(): JSX.Element;
6
+ function BrandIcon(): JSX.Element;
7
+ function Fab(): JSX.Element;
6
8
  function ButtonGroup(): JSX.Element;
7
9
  function Chip(): JSX.Element;
8
10
  function Badge(): JSX.Element;
@@ -24,9 +26,18 @@ export namespace EXAMPLES {
24
26
  function Tabs(): JSX.Element;
25
27
  }
26
28
  export namespace PROP_EXAMPLES {
29
+ export namespace Fab_1 {
30
+ function size(): JSX.Element;
31
+ function color(): JSX.Element;
32
+ function extended(): JSX.Element;
33
+ function animate(): JSX.Element;
34
+ function disabled(): JSX.Element;
35
+ }
36
+ export { Fab_1 as Fab };
27
37
  let Button_1: {
28
38
  variant: () => JSX.Element;
29
39
  size: () => JSX.Element;
40
+ variantColor: () => JSX.Element;
30
41
  disabled: () => JSX.Element;
31
42
  'startDecorator / endDecorator': () => JSX.Element;
32
43
  iconOnly: () => JSX.Element;
@@ -0,0 +1,28 @@
1
+ export namespace FIGMA_HOWTO {
2
+ namespace Fab {
3
+ let title: string;
4
+ let after: string;
5
+ let node: string;
6
+ let collection: string;
7
+ let body: string;
8
+ let shot: string;
9
+ let caveat: string;
10
+ }
11
+ namespace Button {
12
+ let title_1: string;
13
+ export { title_1 as title };
14
+ let after_1: string;
15
+ export { after_1 as after };
16
+ let node_1: string;
17
+ export { node_1 as node };
18
+ let collection_1: string;
19
+ export { collection_1 as collection };
20
+ let body_1: string;
21
+ export { body_1 as body };
22
+ let shot_1: string;
23
+ export { shot_1 as shot };
24
+ let caveat_1: string;
25
+ export { caveat_1 as caveat };
26
+ }
27
+ }
28
+ export function howToFor(component: any): any;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * A link to the component in Figma, or null when it is not drawn.
3
+ *
4
+ * Null rather than a link to the file root: a component with no design is a
5
+ * real answer, and sending someone to the front page to hunt for it is not.
6
+ */
7
+ export function figmaUrlFor(component: any): string;
8
+ export const FIGMA_FILE_KEY: "Qv2dqF7mYoAGY77EkdrwTv";
9
+ export const FIGMA_FILE_NAME: "Omni-Designs-Aug12";
10
+ export namespace FIGMA_PAGES {
11
+ let Typography: string;
12
+ let Accordion: string;
13
+ let Alert: string;
14
+ let AppBar: string;
15
+ let Avatar: string;
16
+ let Badge: string;
17
+ let Box: string;
18
+ let Breadcrumbs: string;
19
+ let Button: string;
20
+ let ButtonGroup: string;
21
+ let Card: string;
22
+ let Checkbox: string;
23
+ let Chip: string;
24
+ let CodeBlock: string;
25
+ let Dialog: string;
26
+ let Divider: string;
27
+ let Drawer: string;
28
+ let Fab: string;
29
+ let Icon: string;
30
+ let IconBadge: string;
31
+ let Input: string;
32
+ let Link: string;
33
+ let List: string;
34
+ let Loader: string;
35
+ let Menu: string;
36
+ let Modal: string;
37
+ let NumberField: string;
38
+ let Pagination: string;
39
+ let Radio: string;
40
+ let Rail: string;
41
+ let Ratio: string;
42
+ let Rating: string;
43
+ let SearchField: string;
44
+ let Select: string;
45
+ let Sheet: string;
46
+ let Slider: string;
47
+ let Snackbar: string;
48
+ let Stepper: string;
49
+ let SwitchInput: string;
50
+ let Table: string;
51
+ let Tabs: string;
52
+ let Tag: string;
53
+ let TextField: string;
54
+ let Toolbar: string;
55
+ let Tooltip: string;
56
+ let TreeView: string;
57
+ let BottomNavigation: string;
58
+ }
@@ -18,11 +18,23 @@ export const FOUNDATIONS: ({
18
18
  head: string[];
19
19
  rows: string[][];
20
20
  };
21
+ body2: any[];
21
22
  trap: string;
23
+ } | {
24
+ title: string;
25
+ lede: string;
26
+ body: string[];
27
+ table: {
28
+ head: string[];
29
+ rows: string[][];
30
+ };
31
+ trap: string;
32
+ body2?: undefined;
22
33
  } | {
23
34
  title: string;
24
35
  lede: string;
25
36
  body: string[];
26
37
  trap: string;
27
38
  table?: undefined;
39
+ body2?: undefined;
28
40
  })[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omni-design/components",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "DynoDesign adaptive component library — token-driven React components with customizable CSS theming",
5
5
  "author": "Lise Noble",
6
6
  "license": "Apache-2.0",
@@ -107,7 +107,9 @@
107
107
  "type": "git",
108
108
  "url": "https://github.com/lwnoble/omni-design"
109
109
  },
110
- "dependencies": {},
110
+ "dependencies": {
111
+ "@fortawesome/free-brands-svg-icons": "^7.3.1"
112
+ },
111
113
  "homepage": "/",
112
114
  "browserslist": {
113
115
  "production": [