@leafygreen-ui/icon 11.10.1 → 11.11.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/dist/Icon.d.ts +7 -0
- package/dist/Icon.d.ts.map +1 -0
- package/dist/Relationship.js +2 -0
- package/dist/Relationship.js.map +1 -0
- package/dist/createGlyphComponent.d.ts +1 -1
- package/dist/createGlyphComponent.d.ts.map +1 -1
- package/dist/createIconComponent.d.ts +1 -2
- package/dist/createIconComponent.d.ts.map +1 -1
- package/dist/esm/Relationship.js +2 -0
- package/dist/esm/Relationship.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/generated/ActivityFeed.d.ts +0 -1
- package/dist/generated/ActivityFeed.d.ts.map +1 -1
- package/dist/generated/AddFile.d.ts +0 -1
- package/dist/generated/AddFile.d.ts.map +1 -1
- package/dist/generated/Apps.d.ts +0 -1
- package/dist/generated/Apps.d.ts.map +1 -1
- package/dist/generated/Array.d.ts +0 -1
- package/dist/generated/Array.d.ts.map +1 -1
- package/dist/generated/ArrowDown.d.ts +0 -1
- package/dist/generated/ArrowDown.d.ts.map +1 -1
- package/dist/generated/ArrowLeft.d.ts +0 -1
- package/dist/generated/ArrowLeft.d.ts.map +1 -1
- package/dist/generated/ArrowRight.d.ts +0 -1
- package/dist/generated/ArrowRight.d.ts.map +1 -1
- package/dist/generated/ArrowUp.d.ts +0 -1
- package/dist/generated/ArrowUp.d.ts.map +1 -1
- package/dist/generated/Beaker.d.ts +0 -1
- package/dist/generated/Beaker.d.ts.map +1 -1
- package/dist/generated/Bell.d.ts +0 -1
- package/dist/generated/Bell.d.ts.map +1 -1
- package/dist/generated/Building.d.ts +0 -1
- package/dist/generated/Building.d.ts.map +1 -1
- package/dist/generated/Bulb.d.ts +0 -1
- package/dist/generated/Bulb.d.ts.map +1 -1
- package/dist/generated/Calendar.d.ts +0 -1
- package/dist/generated/Calendar.d.ts.map +1 -1
- package/dist/generated/CaretDown.d.ts +0 -1
- package/dist/generated/CaretDown.d.ts.map +1 -1
- package/dist/generated/CaretLeft.d.ts +0 -1
- package/dist/generated/CaretLeft.d.ts.map +1 -1
- package/dist/generated/CaretRight.d.ts +0 -1
- package/dist/generated/CaretRight.d.ts.map +1 -1
- package/dist/generated/CaretUp.d.ts +0 -1
- package/dist/generated/CaretUp.d.ts.map +1 -1
- package/dist/generated/Charts.d.ts +0 -1
- package/dist/generated/Charts.d.ts.map +1 -1
- package/dist/generated/Checkmark.d.ts +0 -1
- package/dist/generated/Checkmark.d.ts.map +1 -1
- package/dist/generated/CheckmarkWithCircle.d.ts +0 -1
- package/dist/generated/CheckmarkWithCircle.d.ts.map +1 -1
- package/dist/generated/ChevronDown.d.ts +0 -1
- package/dist/generated/ChevronDown.d.ts.map +1 -1
- package/dist/generated/ChevronLeft.d.ts +0 -1
- package/dist/generated/ChevronLeft.d.ts.map +1 -1
- package/dist/generated/ChevronRight.d.ts +0 -1
- package/dist/generated/ChevronRight.d.ts.map +1 -1
- package/dist/generated/ChevronUp.d.ts +0 -1
- package/dist/generated/ChevronUp.d.ts.map +1 -1
- package/dist/generated/Clock.d.ts +0 -1
- package/dist/generated/Clock.d.ts.map +1 -1
- package/dist/generated/ClockWithArrow.d.ts +0 -1
- package/dist/generated/ClockWithArrow.d.ts.map +1 -1
- package/dist/generated/Clone.d.ts +0 -1
- package/dist/generated/Clone.d.ts.map +1 -1
- package/dist/generated/Cloud.d.ts +0 -1
- package/dist/generated/Cloud.d.ts.map +1 -1
- package/dist/generated/Code.d.ts +0 -1
- package/dist/generated/Code.d.ts.map +1 -1
- package/dist/generated/Connect.d.ts +0 -1
- package/dist/generated/Connect.d.ts.map +1 -1
- package/dist/generated/Copy.d.ts +0 -1
- package/dist/generated/Copy.d.ts.map +1 -1
- package/dist/generated/CreditCard.d.ts +0 -1
- package/dist/generated/CreditCard.d.ts.map +1 -1
- package/dist/generated/CurlyBraces.d.ts +0 -1
- package/dist/generated/CurlyBraces.d.ts.map +1 -1
- package/dist/generated/Cursor.d.ts +0 -1
- package/dist/generated/Cursor.d.ts.map +1 -1
- package/dist/generated/Database.d.ts +0 -1
- package/dist/generated/Database.d.ts.map +1 -1
- package/dist/generated/Diagram.d.ts +0 -1
- package/dist/generated/Diagram.d.ts.map +1 -1
- package/dist/generated/Diagram2.d.ts +0 -1
- package/dist/generated/Diagram2.d.ts.map +1 -1
- package/dist/generated/Diagram3.d.ts +0 -1
- package/dist/generated/Diagram3.d.ts.map +1 -1
- package/dist/generated/Disconnect.d.ts +0 -1
- package/dist/generated/Disconnect.d.ts.map +1 -1
- package/dist/generated/Download.d.ts +0 -1
- package/dist/generated/Download.d.ts.map +1 -1
- package/dist/generated/Edit.d.ts +0 -1
- package/dist/generated/Edit.d.ts.map +1 -1
- package/dist/generated/Ellipsis.d.ts +0 -1
- package/dist/generated/Ellipsis.d.ts.map +1 -1
- package/dist/generated/Export.d.ts +0 -1
- package/dist/generated/Export.d.ts.map +1 -1
- package/dist/generated/Favorite.d.ts +0 -1
- package/dist/generated/Favorite.d.ts.map +1 -1
- package/dist/generated/File.d.ts +0 -1
- package/dist/generated/File.d.ts.map +1 -1
- package/dist/generated/Filter.d.ts +0 -1
- package/dist/generated/Filter.d.ts.map +1 -1
- package/dist/generated/Folder.d.ts +0 -1
- package/dist/generated/Folder.d.ts.map +1 -1
- package/dist/generated/FullScreenEnter.d.ts +0 -1
- package/dist/generated/FullScreenEnter.d.ts.map +1 -1
- package/dist/generated/FullScreenExit.d.ts +0 -1
- package/dist/generated/FullScreenExit.d.ts.map +1 -1
- package/dist/generated/GlobeAmericas.d.ts +0 -1
- package/dist/generated/GlobeAmericas.d.ts.map +1 -1
- package/dist/generated/GovernmentBuilding.d.ts +0 -1
- package/dist/generated/GovernmentBuilding.d.ts.map +1 -1
- package/dist/generated/Home.d.ts +0 -1
- package/dist/generated/Home.d.ts.map +1 -1
- package/dist/generated/ImportantWithCircle.d.ts +0 -1
- package/dist/generated/ImportantWithCircle.d.ts.map +1 -1
- package/dist/generated/InfoWithCircle.d.ts +0 -1
- package/dist/generated/InfoWithCircle.d.ts.map +1 -1
- package/dist/generated/InviteUser.d.ts +0 -1
- package/dist/generated/InviteUser.d.ts.map +1 -1
- package/dist/generated/Key.d.ts +0 -1
- package/dist/generated/Key.d.ts.map +1 -1
- package/dist/generated/Laptop.d.ts +0 -1
- package/dist/generated/Laptop.d.ts.map +1 -1
- package/dist/generated/Link.d.ts +0 -1
- package/dist/generated/Link.d.ts.map +1 -1
- package/dist/generated/Lock.d.ts +0 -1
- package/dist/generated/Lock.d.ts.map +1 -1
- package/dist/generated/MagnifyingGlass.d.ts +0 -1
- package/dist/generated/MagnifyingGlass.d.ts.map +1 -1
- package/dist/generated/Megaphone.d.ts +0 -1
- package/dist/generated/Megaphone.d.ts.map +1 -1
- package/dist/generated/Menu.d.ts +0 -1
- package/dist/generated/Menu.d.ts.map +1 -1
- package/dist/generated/Minus.d.ts +0 -1
- package/dist/generated/Minus.d.ts.map +1 -1
- package/dist/generated/NotAllowed.d.ts +0 -1
- package/dist/generated/NotAllowed.d.ts.map +1 -1
- package/dist/generated/Note.d.ts +0 -1
- package/dist/generated/Note.d.ts.map +1 -1
- package/dist/generated/OpenNewTab.d.ts +0 -1
- package/dist/generated/OpenNewTab.d.ts.map +1 -1
- package/dist/generated/Pause.d.ts +0 -1
- package/dist/generated/Pause.d.ts.map +1 -1
- package/dist/generated/Person.d.ts +0 -1
- package/dist/generated/Person.d.ts.map +1 -1
- package/dist/generated/PersonGroup.d.ts +0 -1
- package/dist/generated/PersonGroup.d.ts.map +1 -1
- package/dist/generated/PersonWithLock.d.ts +0 -1
- package/dist/generated/PersonWithLock.d.ts.map +1 -1
- package/dist/generated/Play.d.ts +0 -1
- package/dist/generated/Play.d.ts.map +1 -1
- package/dist/generated/Plus.d.ts +0 -1
- package/dist/generated/Plus.d.ts.map +1 -1
- package/dist/generated/PlusWithCircle.d.ts +0 -1
- package/dist/generated/PlusWithCircle.d.ts.map +1 -1
- package/dist/generated/QuestionMarkWithCircle.d.ts +0 -1
- package/dist/generated/QuestionMarkWithCircle.d.ts.map +1 -1
- package/dist/generated/Redo.d.ts +0 -1
- package/dist/generated/Redo.d.ts.map +1 -1
- package/dist/generated/Refresh.d.ts +0 -1
- package/dist/generated/Refresh.d.ts.map +1 -1
- package/dist/generated/Relationship.d.ts +16 -0
- package/dist/generated/Relationship.d.ts.map +1 -0
- package/dist/generated/ReplicaSet.d.ts +0 -1
- package/dist/generated/ReplicaSet.d.ts.map +1 -1
- package/dist/generated/Serverless.d.ts +0 -1
- package/dist/generated/Serverless.d.ts.map +1 -1
- package/dist/generated/Settings.d.ts +0 -1
- package/dist/generated/Settings.d.ts.map +1 -1
- package/dist/generated/ShardedCluster.d.ts +0 -1
- package/dist/generated/ShardedCluster.d.ts.map +1 -1
- package/dist/generated/Shell.d.ts +0 -1
- package/dist/generated/Shell.d.ts.map +1 -1
- package/dist/generated/SortAscending.d.ts +0 -1
- package/dist/generated/SortAscending.d.ts.map +1 -1
- package/dist/generated/SortDescending.d.ts +0 -1
- package/dist/generated/SortDescending.d.ts.map +1 -1
- package/dist/generated/SplitHorizontal.d.ts +0 -1
- package/dist/generated/SplitHorizontal.d.ts.map +1 -1
- package/dist/generated/Stitch.d.ts +0 -1
- package/dist/generated/Stitch.d.ts.map +1 -1
- package/dist/generated/Support.d.ts +0 -1
- package/dist/generated/Support.d.ts.map +1 -1
- package/dist/generated/Trash.d.ts +0 -1
- package/dist/generated/Trash.d.ts.map +1 -1
- package/dist/glyphs/index.d.ts +1 -2
- package/dist/glyphs/index.d.ts.map +1 -1
- package/dist/index.d.ts +4 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/isComponentGlyph.d.ts +4 -1
- package/dist/isComponentGlyph.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/Icon.spec.tsx +1 -2
- package/src/Icon.tsx +4 -0
- package/src/createGlyphComponent.tsx +1 -1
- package/src/createIconComponent.tsx +3 -3
- package/src/generated/Relationship.tsx +66 -0
- package/src/glyphs/Relationship.svg +3 -0
- package/src/glyphs/index.ts +8 -8
- package/src/index.ts +4 -7
- package/src/isComponentGlyph.ts +4 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/tsdoc.json +11902 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/glyphCommon.ts","../src/createIconComponent.tsx","../src/createGlyphComponent.tsx","../src/glyphs/index.ts","../src/index.ts","../src/isComponentGlyph.ts"],"sourcesContent":["export const Size = {\n Small: 'small',\n Default: 'default',\n Large: 'large',\n XLarge: 'xlarge',\n} as const;\n\nexport type Size = typeof Size[keyof typeof Size];\n\nexport const sizeMap: Record<Size, number> = {\n small: 14,\n default: 16,\n large: 20,\n xlarge: 24,\n} as const;\n\ninterface AccessibleFunctionParams {\n 'aria-labelledby'?: string;\n 'aria-label'?: string;\n title?: string | null;\n}\n\ntype AccessibleFunctionReturnType =\n | AccessibleFunctionParams\n | { 'aria-hidden': true; alt: '' };\n\nexport function generateAccessibleProps(\n role: 'img' | 'presentation',\n glyphName: string,\n {\n ['aria-label']: ariaLabel,\n ['aria-labelledby']: ariaLabelledby,\n title,\n }: AccessibleFunctionParams,\n): AccessibleFunctionReturnType {\n switch (role) {\n case 'img':\n if (!ariaLabel && !ariaLabelledby && !title) {\n return { 'aria-label': getGlyphLabel(glyphName) };\n }\n\n return {\n ['aria-labelledby']: ariaLabelledby,\n ['aria-label']: ariaLabel,\n title,\n };\n\n case 'presentation':\n return { 'aria-hidden': true, alt: '' };\n }\n}\n\nexport function getGlyphLabel(name: string) {\n return `${name.replace(/([a-z])([A-Z])/g, '$1 $2')} Icon`;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { LGGlyph } from './types';\nimport { Size } from './glyphCommon';\n\n// We omit size here because we map string values for size to numbers in this component.\nexport interface IconProps extends Omit<LGGlyph.ComponentProps, 'size'> {\n glyph: string;\n size?: Size | number;\n}\n\ntype GlyphObject = Record<string, LGGlyph.Component>;\n\n/**\n * Returns a single component with a `glyph` prop to select the glyph\n * @param glyphs The set of glyphs\n * @returns Icon component\n */\nexport default function createIconComponent<\n G extends GlyphObject = GlyphObject,\n>(glyphs: G) {\n const Icon = ({ glyph, ...rest }: IconProps) => {\n const SVGComponent = glyphs[glyph];\n SVGComponent.isGlyph = true;\n return <SVGComponent {...rest} />;\n };\n\n Icon.displayName = 'Icon';\n\n Icon.isGlyph = true;\n\n Icon.propTypes = {\n glyph: PropTypes.oneOf(Object.keys(glyphs)).isRequired,\n size: PropTypes.oneOfType([\n PropTypes.oneOf(Object.values(Size)),\n PropTypes.number,\n ]),\n } as any;\n\n return Icon;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { SVGR, LGGlyph } from './types';\nimport { css, cx } from '@leafygreen-ui/emotion';\nimport { generateAccessibleProps, sizeMap, Size } from './glyphCommon';\n\n/**\n * Returns a single glyph component.\n * Process custom glyphs to ensure consistent behavior between custom and built-in icons\n * @param glyphName: string - the display name of the icon\n * @param Glyph: SVGR.Component - the SVG icon component\n * @returns LGGlyph.Component\n */\nexport default function createGlyphComponent(\n glyphName: string,\n Glyph: SVGR.Component,\n): LGGlyph.Component {\n const GlyphComponent: LGGlyph.Component = ({\n className,\n size = Size.Default,\n fill,\n title,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n role = 'img',\n ...rest\n }: LGGlyph.ComponentProps) => {\n const fillStyle = css`\n color: ${fill};\n `;\n\n const renderedSize = typeof size === 'number' ? size : sizeMap[size];\n\n if (!(role === 'img' || role === 'presentation')) {\n console.warn(\n \"Please provide a valid role to this component. Valid options are 'img' and 'presentation'. If you'd like the Icon to be accessible to screen readers please use 'img', otherwise set the role to 'presentation'.\",\n );\n }\n\n return (\n <Glyph\n className={cx(\n {\n [fillStyle]: fill != null,\n },\n className,\n )}\n height={renderedSize}\n width={renderedSize}\n role={role}\n {...generateAccessibleProps(role, glyphName, {\n title,\n ['aria-label']: ariaLabel,\n ['aria-labelledby']: ariaLabelledby,\n })}\n {...rest}\n />\n );\n };\n\n GlyphComponent.displayName = glyphName;\n\n GlyphComponent.isGlyph = true;\n\n GlyphComponent.propTypes = {\n fill: PropTypes.string,\n size: PropTypes.oneOfType([\n PropTypes.oneOf(Object.values(Size)),\n PropTypes.number,\n ]),\n className: PropTypes.string,\n };\n\n return GlyphComponent;\n}\n","import createGlyphComponent from '../createGlyphComponent';\nimport { LGGlyph } from '../types';\n\n// Glyphs\nimport ActivityFeed from './ActivityFeed.svg';\nimport AddFile from './AddFile.svg';\nimport Apps from './Apps.svg';\nimport Array from './Array.svg';\nimport ArrowDown from './ArrowDown.svg';\nimport ArrowLeft from './ArrowLeft.svg';\nimport ArrowRight from './ArrowRight.svg';\nimport ArrowUp from './ArrowUp.svg';\nimport Beaker from './Beaker.svg';\nimport Bell from './Bell.svg';\nimport Building from './Building.svg';\nimport Bulb from './Bulb.svg';\nimport Calendar from './Calendar.svg';\nimport CaretDown from './CaretDown.svg';\nimport CaretLeft from './CaretLeft.svg';\nimport CaretRight from './CaretRight.svg';\nimport CaretUp from './CaretUp.svg';\nimport Charts from './Charts.svg';\nimport Checkmark from './Checkmark.svg';\nimport CheckmarkWithCircle from './CheckmarkWithCircle.svg';\nimport ChevronDown from './ChevronDown.svg';\nimport ChevronLeft from './ChevronLeft.svg';\nimport ChevronRight from './ChevronRight.svg';\nimport ChevronUp from './ChevronUp.svg';\nimport Clock from './Clock.svg';\nimport ClockWithArrow from './ClockWithArrow.svg';\nimport Clone from './Clone.svg';\nimport Cloud from './Cloud.svg';\nimport Code from './Code.svg';\nimport Connect from './Connect.svg';\nimport Copy from './Copy.svg';\nimport CreditCard from './CreditCard.svg';\nimport CurlyBraces from './CurlyBraces.svg';\nimport Cursor from './Cursor.svg';\nimport Database from './Database.svg';\nimport Diagram from './Diagram.svg';\nimport Diagram2 from './Diagram2.svg';\nimport Diagram3 from './Diagram3.svg';\nimport Disconnect from './Disconnect.svg';\nimport Download from './Download.svg';\nimport Edit from './Edit.svg';\nimport Ellipsis from './Ellipsis.svg';\nimport Export from './Export.svg';\nimport Favorite from './Favorite.svg';\nimport File from './File.svg';\nimport Filter from './Filter.svg';\nimport FullScreenEnter from './FullScreenEnter.svg';\nimport FullScreenExit from './FullScreenExit.svg';\nimport Folder from './Folder.svg';\nimport GlobeAmericas from './GlobeAmericas.svg';\nimport GovernmentBuilding from './GovernmentBuilding.svg';\nimport Home from './Home.svg';\nimport ImportantWithCircle from './ImportantWithCircle.svg';\nimport InfoWithCircle from './InfoWithCircle.svg';\nimport InviteUser from './InviteUser.svg';\nimport Key from './Key.svg';\nimport Laptop from './Laptop.svg';\nimport Link from './Link.svg';\nimport Lock from './Lock.svg';\nimport MagnifyingGlass from './MagnifyingGlass.svg';\nimport Megaphone from './Megaphone.svg';\nimport Menu from './Menu.svg';\nimport Minus from './Minus.svg';\nimport NotAllowed from './NotAllowed.svg';\nimport Note from './Note.svg';\nimport OpenNewTab from './OpenNewTab.svg';\nimport Pause from './Pause.svg';\nimport Person from './Person.svg';\nimport PersonGroup from './PersonGroup.svg';\nimport PersonWithLock from './PersonWithLock.svg';\nimport Play from './Play.svg';\nimport Plus from './Plus.svg';\nimport PlusWithCircle from './PlusWithCircle.svg';\nimport QuestionMarkWithCircle from './QuestionMarkWithCircle.svg';\nimport Redo from './Redo.svg';\nimport Refresh from './Refresh.svg';\nimport ReplicaSet from './ReplicaSet.svg';\nimport Save from './Save.svg';\nimport Serverless from './Serverless.svg';\nimport ShardedCluster from './ShardedCluster.svg';\nimport Settings from './Settings.svg';\nimport Shell from './Shell.svg';\nimport SortAscending from './SortAscending.svg';\nimport SortDescending from './SortDescending.svg';\nimport SplitHorizontal from './SplitHorizontal.svg';\nimport SplitVertical from './SplitVertical.svg';\nimport Stitch from './Stitch.svg';\nimport Support from './Support.svg';\nimport Sweep from './Sweep.svg';\nimport Table from './Table.svg';\nimport TimeSeries from './TimeSeries.svg';\nimport Trash from './Trash.svg';\nimport Undo from './Undo.svg';\nimport University from './University.svg';\nimport Unlock from './Unlock.svg';\nimport Unsorted from './Unsorted.svg';\nimport UpDownCarets from './UpDownCarets.svg';\nimport Upload from './Upload.svg';\nimport VerticalEllipsis from './VerticalEllipsis.svg';\nimport Visibility from './Visibility.svg';\nimport VisibilityOff from './VisibilityOff.svg';\nimport Warning from './Warning.svg';\nimport X from './X.svg';\nimport XWithCircle from './XWithCircle.svg';\n\nconst glyphs = {\n ActivityFeed,\n AddFile,\n Apps,\n Array,\n ArrowDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n Beaker,\n Bell,\n Building,\n Bulb,\n Calendar,\n CaretDown,\n CaretLeft,\n CaretRight,\n CaretUp,\n Charts,\n Checkmark,\n CheckmarkWithCircle,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n Clock,\n ClockWithArrow,\n Clone,\n Cloud,\n Code,\n Connect,\n Copy,\n CreditCard,\n CurlyBraces,\n Cursor,\n Database,\n Diagram,\n Diagram2,\n Diagram3,\n Disconnect,\n Download,\n Edit,\n Ellipsis,\n Export,\n Favorite,\n File,\n Filter,\n FullScreenEnter,\n FullScreenExit,\n Folder,\n GlobeAmericas,\n GovernmentBuilding,\n Home,\n ImportantWithCircle,\n InfoWithCircle,\n InviteUser,\n Key,\n Laptop,\n Link,\n Lock,\n MagnifyingGlass,\n Megaphone,\n Menu,\n Minus,\n NotAllowed,\n Note,\n OpenNewTab,\n Pause,\n Person,\n PersonGroup,\n PersonWithLock,\n Play,\n Plus,\n PlusWithCircle,\n QuestionMarkWithCircle,\n Redo,\n Refresh,\n ReplicaSet,\n Save,\n Serverless,\n ShardedCluster,\n Settings,\n Shell,\n SortAscending,\n SortDescending,\n SplitHorizontal,\n SplitVertical,\n Stitch,\n Support,\n Sweep,\n Table,\n TimeSeries,\n Trash,\n Undo,\n University,\n Unlock,\n Unsorted,\n UpDownCarets,\n Upload,\n VerticalEllipsis,\n Visibility,\n VisibilityOff,\n Warning,\n X,\n XWithCircle,\n} as const;\n\ntype GlyphName = keyof typeof glyphs;\n\nconst glyphKeys = Object.keys(glyphs) as Array<GlyphName>;\n\nconst processedGlyphs = glyphKeys.reduce((acc, name) => {\n acc[name] = createGlyphComponent(name, glyphs[name]);\n\n return acc;\n}, {} as Record<GlyphName, LGGlyph.Component>);\n\nexport default processedGlyphs;\n","import createIconComponent from './createIconComponent';\nimport glyphs from './glyphs';\n\nexport { LGGlyph } from './types';\nexport { Size } from './glyphCommon';\nexport { default as createIconComponent } from './createIconComponent';\nexport { default as createGlyphComponent } from './createGlyphComponent';\nexport { default as glyphs } from './glyphs';\nexport { isComponentGlyph } from './isComponentGlyph';\nexport default createIconComponent(glyphs);\n","import { ComponentType, isValidElement, ReactNode } from 'react';\nimport { LGGlyph } from './types';\n\ntype ExtendedComponentType = ComponentType<any> & {\n [key: string]: any;\n};\n/** Helper type to check if element is a LeafyGreen UI Glyph */\nfunction isComponentGlyph(node: ReactNode): node is LGGlyph.Element;\nfunction isComponentGlyph(\n component: ExtendedComponentType,\n): component is LGGlyph.Component;\nfunction isComponentGlyph(\n child: ReactNode | ExtendedComponentType,\n): child is LGGlyph.Element | LGGlyph.Component {\n // If we're received a rendered component (i.e. ReactNode)\n if (isValidElement(child)) {\n return (\n child != null &&\n typeof child === 'object' &&\n 'type' in child &&\n (child.type as any).isGlyph === true\n );\n }\n\n // If we've recieved a component function\n return (\n child != null &&\n typeof child === 'function' &&\n 'isGlyph' in child &&\n child.isGlyph === true\n );\n}\n\nexport { isComponentGlyph };\n"],"names":["Size","Small","Default","Large","XLarge","sizeMap","small","default","large","xlarge","_templateObject","_excluded","createIconComponent","glyphs","Icon","_ref","glyph","rest","_objectWithoutProperties","SVGComponent","isGlyph","___EmotionJSX","jsx","displayName","propTypes","PropTypes","oneOf","Object","keys","isRequired","size","oneOfType","values","number","createGlyphComponent","glyphName","Glyph","GlyphComponent","_generateAccessiblePr","className","_ref$size","fill","title","ariaLabelledby","ariaLabel","_ref$role","role","fillStyle","css","renderedSize","console","warn","_extends","cx","_defineProperty","height","width","_ref2","name","concat","replace","alt","generateAccessibleProps","string","ActivityFeed","AddFile","Apps","Array","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Beaker","Bell","Building","Bulb","Calendar","CaretDown","CaretLeft","CaretRight","CaretUp","Charts","Checkmark","CheckmarkWithCircle","ChevronDown","ChevronLeft","ChevronRight","ChevronUp","Clock","ClockWithArrow","Clone","Cloud","Code","Connect","Copy","CreditCard","CurlyBraces","Cursor","Database","Diagram","Diagram2","Diagram3","Disconnect","Download","Edit","Ellipsis","Export","Favorite","File","Filter","FullScreenEnter","FullScreenExit","Folder","GlobeAmericas","GovernmentBuilding","Home","ImportantWithCircle","InfoWithCircle","InviteUser","Key","Laptop","Link","Lock","MagnifyingGlass","Megaphone","Menu","Minus","NotAllowed","Note","OpenNewTab","Pause","Person","PersonGroup","PersonWithLock","Play","Plus","PlusWithCircle","QuestionMarkWithCircle","Redo","Refresh","ReplicaSet","Save","Serverless","ShardedCluster","Settings","Shell","SortAscending","SortDescending","SplitHorizontal","SplitVertical","Stitch","Support","Sweep","Table","TimeSeries","Trash","Undo","University","Unlock","Unsorted","UpDownCarets","Upload","VerticalEllipsis","Visibility","VisibilityOff","Warning","X","XWithCircle","processedGlyphs","reduce","acc","index","child","isValidElement","_typeof","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/glyphCommon.ts","../src/createIconComponent.tsx","../src/createGlyphComponent.tsx","../src/glyphs/index.ts","../src/Icon.tsx","../src/isComponentGlyph.ts"],"sourcesContent":["export const Size = {\n Small: 'small',\n Default: 'default',\n Large: 'large',\n XLarge: 'xlarge',\n} as const;\n\nexport type Size = typeof Size[keyof typeof Size];\n\nexport const sizeMap: Record<Size, number> = {\n small: 14,\n default: 16,\n large: 20,\n xlarge: 24,\n} as const;\n\ninterface AccessibleFunctionParams {\n 'aria-labelledby'?: string;\n 'aria-label'?: string;\n title?: string | null;\n}\n\ntype AccessibleFunctionReturnType =\n | AccessibleFunctionParams\n | { 'aria-hidden': true; alt: '' };\n\nexport function generateAccessibleProps(\n role: 'img' | 'presentation',\n glyphName: string,\n {\n ['aria-label']: ariaLabel,\n ['aria-labelledby']: ariaLabelledby,\n title,\n }: AccessibleFunctionParams,\n): AccessibleFunctionReturnType {\n switch (role) {\n case 'img':\n if (!ariaLabel && !ariaLabelledby && !title) {\n return { 'aria-label': getGlyphLabel(glyphName) };\n }\n\n return {\n ['aria-labelledby']: ariaLabelledby,\n ['aria-label']: ariaLabel,\n title,\n };\n\n case 'presentation':\n return { 'aria-hidden': true, alt: '' };\n }\n}\n\nexport function getGlyphLabel(name: string) {\n return `${name.replace(/([a-z])([A-Z])/g, '$1 $2')} Icon`;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { LGGlyph } from './types';\nimport { Size } from './glyphCommon';\n\n// We omit size here because we map string values for size to numbers in this component.\nexport interface IconProps extends Omit<LGGlyph.ComponentProps, 'size'> {\n glyph: string;\n size?: Size | number;\n}\n\ntype GlyphObject = Record<string, LGGlyph.Component>;\n\n/**\n * Returns a single component with a `glyph` prop to select the glyph\n * @param glyphs The set of glyphs\n * @returns Icon component\n */\nexport function createIconComponent<G extends GlyphObject = GlyphObject>(\n glyphs: G,\n) {\n const Icon = ({ glyph, ...rest }: IconProps) => {\n const SVGComponent = glyphs[glyph];\n SVGComponent.isGlyph = true;\n return <SVGComponent {...rest} />;\n };\n\n Icon.displayName = 'Icon';\n\n Icon.isGlyph = true;\n\n Icon.propTypes = {\n glyph: PropTypes.oneOf(Object.keys(glyphs)).isRequired,\n size: PropTypes.oneOfType([\n PropTypes.oneOf(Object.values(Size)),\n PropTypes.number,\n ]),\n } as any;\n\n return Icon;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { SVGR, LGGlyph } from './types';\nimport { css, cx } from '@leafygreen-ui/emotion';\nimport { generateAccessibleProps, sizeMap, Size } from './glyphCommon';\n\n/**\n * Returns a single glyph component.\n * Process custom glyphs to ensure consistent behavior between custom and built-in icons\n * @param glyphName: string - the display name of the icon\n * @param Glyph: SVGR.Component - the SVG icon component\n * @returns LGGlyph.Component\n */\nexport function createGlyphComponent(\n glyphName: string,\n Glyph: SVGR.Component,\n): LGGlyph.Component {\n const GlyphComponent: LGGlyph.Component = ({\n className,\n size = Size.Default,\n fill,\n title,\n 'aria-labelledby': ariaLabelledby,\n 'aria-label': ariaLabel,\n role = 'img',\n ...rest\n }: LGGlyph.ComponentProps) => {\n const fillStyle = css`\n color: ${fill};\n `;\n\n const renderedSize = typeof size === 'number' ? size : sizeMap[size];\n\n if (!(role === 'img' || role === 'presentation')) {\n console.warn(\n \"Please provide a valid role to this component. Valid options are 'img' and 'presentation'. If you'd like the Icon to be accessible to screen readers please use 'img', otherwise set the role to 'presentation'.\",\n );\n }\n\n return (\n <Glyph\n className={cx(\n {\n [fillStyle]: fill != null,\n },\n className,\n )}\n height={renderedSize}\n width={renderedSize}\n role={role}\n {...generateAccessibleProps(role, glyphName, {\n title,\n ['aria-label']: ariaLabel,\n ['aria-labelledby']: ariaLabelledby,\n })}\n {...rest}\n />\n );\n };\n\n GlyphComponent.displayName = glyphName;\n\n GlyphComponent.isGlyph = true;\n\n GlyphComponent.propTypes = {\n fill: PropTypes.string,\n size: PropTypes.oneOfType([\n PropTypes.oneOf(Object.values(Size)),\n PropTypes.number,\n ]),\n className: PropTypes.string,\n };\n\n return GlyphComponent;\n}\n","import { createGlyphComponent } from '../createGlyphComponent';\nimport { LGGlyph } from '../types';\n\n// Glyphs\nimport ActivityFeed from './ActivityFeed.svg';\nimport AddFile from './AddFile.svg';\nimport Apps from './Apps.svg';\nimport Array from './Array.svg';\nimport ArrowDown from './ArrowDown.svg';\nimport ArrowLeft from './ArrowLeft.svg';\nimport ArrowRight from './ArrowRight.svg';\nimport ArrowUp from './ArrowUp.svg';\nimport Beaker from './Beaker.svg';\nimport Bell from './Bell.svg';\nimport Building from './Building.svg';\nimport Bulb from './Bulb.svg';\nimport Calendar from './Calendar.svg';\nimport CaretDown from './CaretDown.svg';\nimport CaretLeft from './CaretLeft.svg';\nimport CaretRight from './CaretRight.svg';\nimport CaretUp from './CaretUp.svg';\nimport Charts from './Charts.svg';\nimport Checkmark from './Checkmark.svg';\nimport CheckmarkWithCircle from './CheckmarkWithCircle.svg';\nimport ChevronDown from './ChevronDown.svg';\nimport ChevronLeft from './ChevronLeft.svg';\nimport ChevronRight from './ChevronRight.svg';\nimport ChevronUp from './ChevronUp.svg';\nimport Clock from './Clock.svg';\nimport ClockWithArrow from './ClockWithArrow.svg';\nimport Clone from './Clone.svg';\nimport Cloud from './Cloud.svg';\nimport Code from './Code.svg';\nimport Connect from './Connect.svg';\nimport Copy from './Copy.svg';\nimport CreditCard from './CreditCard.svg';\nimport CurlyBraces from './CurlyBraces.svg';\nimport Cursor from './Cursor.svg';\nimport Database from './Database.svg';\nimport Diagram from './Diagram.svg';\nimport Diagram2 from './Diagram2.svg';\nimport Diagram3 from './Diagram3.svg';\nimport Disconnect from './Disconnect.svg';\nimport Download from './Download.svg';\nimport Edit from './Edit.svg';\nimport Ellipsis from './Ellipsis.svg';\nimport Export from './Export.svg';\nimport Favorite from './Favorite.svg';\nimport File from './File.svg';\nimport Filter from './Filter.svg';\nimport FullScreenEnter from './FullScreenEnter.svg';\nimport FullScreenExit from './FullScreenExit.svg';\nimport Folder from './Folder.svg';\nimport GlobeAmericas from './GlobeAmericas.svg';\nimport GovernmentBuilding from './GovernmentBuilding.svg';\nimport Home from './Home.svg';\nimport ImportantWithCircle from './ImportantWithCircle.svg';\nimport InfoWithCircle from './InfoWithCircle.svg';\nimport InviteUser from './InviteUser.svg';\nimport Key from './Key.svg';\nimport Laptop from './Laptop.svg';\nimport Link from './Link.svg';\nimport Lock from './Lock.svg';\nimport MagnifyingGlass from './MagnifyingGlass.svg';\nimport Megaphone from './Megaphone.svg';\nimport Menu from './Menu.svg';\nimport Minus from './Minus.svg';\nimport NotAllowed from './NotAllowed.svg';\nimport Note from './Note.svg';\nimport OpenNewTab from './OpenNewTab.svg';\nimport Pause from './Pause.svg';\nimport Person from './Person.svg';\nimport PersonGroup from './PersonGroup.svg';\nimport PersonWithLock from './PersonWithLock.svg';\nimport Play from './Play.svg';\nimport Plus from './Plus.svg';\nimport PlusWithCircle from './PlusWithCircle.svg';\nimport QuestionMarkWithCircle from './QuestionMarkWithCircle.svg';\nimport Redo from './Redo.svg';\nimport Refresh from './Refresh.svg';\nimport Relationship from './Relationship.svg';\nimport ReplicaSet from './ReplicaSet.svg';\nimport Save from './Save.svg';\nimport Serverless from './Serverless.svg';\nimport ShardedCluster from './ShardedCluster.svg';\nimport Settings from './Settings.svg';\nimport Shell from './Shell.svg';\nimport SortAscending from './SortAscending.svg';\nimport SortDescending from './SortDescending.svg';\nimport SplitHorizontal from './SplitHorizontal.svg';\nimport SplitVertical from './SplitVertical.svg';\nimport Stitch from './Stitch.svg';\nimport Support from './Support.svg';\nimport Sweep from './Sweep.svg';\nimport Table from './Table.svg';\nimport TimeSeries from './TimeSeries.svg';\nimport Trash from './Trash.svg';\nimport Undo from './Undo.svg';\nimport University from './University.svg';\nimport Unlock from './Unlock.svg';\nimport Unsorted from './Unsorted.svg';\nimport UpDownCarets from './UpDownCarets.svg';\nimport Upload from './Upload.svg';\nimport VerticalEllipsis from './VerticalEllipsis.svg';\nimport Visibility from './Visibility.svg';\nimport VisibilityOff from './VisibilityOff.svg';\nimport Warning from './Warning.svg';\nimport X from './X.svg';\nimport XWithCircle from './XWithCircle.svg';\n\nconst _glyphs = {\n ActivityFeed,\n AddFile,\n Apps,\n Array,\n ArrowDown,\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n Beaker,\n Bell,\n Building,\n Bulb,\n Calendar,\n CaretDown,\n CaretLeft,\n CaretRight,\n CaretUp,\n Charts,\n Checkmark,\n CheckmarkWithCircle,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n Clock,\n ClockWithArrow,\n Clone,\n Cloud,\n Code,\n Connect,\n Copy,\n CreditCard,\n CurlyBraces,\n Cursor,\n Database,\n Diagram,\n Diagram2,\n Diagram3,\n Disconnect,\n Download,\n Edit,\n Ellipsis,\n Export,\n Favorite,\n File,\n Filter,\n FullScreenEnter,\n FullScreenExit,\n Folder,\n GlobeAmericas,\n GovernmentBuilding,\n Home,\n ImportantWithCircle,\n InfoWithCircle,\n InviteUser,\n Key,\n Laptop,\n Link,\n Lock,\n MagnifyingGlass,\n Megaphone,\n Menu,\n Minus,\n NotAllowed,\n Note,\n OpenNewTab,\n Pause,\n Person,\n PersonGroup,\n PersonWithLock,\n Play,\n Plus,\n PlusWithCircle,\n QuestionMarkWithCircle,\n Redo,\n Refresh,\n Relationship,\n ReplicaSet,\n Save,\n Serverless,\n ShardedCluster,\n Settings,\n Shell,\n SortAscending,\n SortDescending,\n SplitHorizontal,\n SplitVertical,\n Stitch,\n Support,\n Sweep,\n Table,\n TimeSeries,\n Trash,\n Undo,\n University,\n Unlock,\n Unsorted,\n UpDownCarets,\n Upload,\n VerticalEllipsis,\n Visibility,\n VisibilityOff,\n Warning,\n X,\n XWithCircle,\n} as const;\n\ntype GlyphName = keyof typeof _glyphs;\n\nconst glyphKeys = Object.keys(_glyphs) as Array<GlyphName>;\n\nexport const glyphs = glyphKeys.reduce((acc, name) => {\n acc[name] = createGlyphComponent(name, _glyphs[name]);\n\n return acc;\n}, {} as Record<GlyphName, LGGlyph.Component>);\n","import { createIconComponent } from './createIconComponent';\nimport { glyphs } from './glyphs';\n\nexport const Icon = createIconComponent(glyphs);\n","import { ComponentType, isValidElement, ReactNode } from 'react';\nimport { LGGlyph } from './types';\n\ntype ExtendedComponentType = ComponentType<any> & {\n [key: string]: any;\n};\n/**\n * Helper type to check if element is a LeafyGreen UI Glyph\n * @internal\n */\nfunction isComponentGlyph(node: ReactNode): node is LGGlyph.Element;\nfunction isComponentGlyph(\n component: ExtendedComponentType,\n): component is LGGlyph.Component;\nfunction isComponentGlyph(\n child: ReactNode | ExtendedComponentType,\n): child is LGGlyph.Element | LGGlyph.Component {\n // If we're received a rendered component (i.e. ReactNode)\n if (isValidElement(child)) {\n return (\n child != null &&\n typeof child === 'object' &&\n 'type' in child &&\n (child.type as any).isGlyph === true\n );\n }\n\n // If we've recieved a component function\n return (\n child != null &&\n typeof child === 'function' &&\n 'isGlyph' in child &&\n child.isGlyph === true\n );\n}\n\nexport { isComponentGlyph };\n"],"names":["Size","Small","Default","Large","XLarge","sizeMap","small","default","large","xlarge","_templateObject","_excluded","createIconComponent","glyphs","Icon","_ref","glyph","rest","_objectWithoutProperties","SVGComponent","isGlyph","___EmotionJSX","jsx","displayName","propTypes","PropTypes","oneOf","Object","keys","isRequired","size","oneOfType","values","number","createGlyphComponent","glyphName","Glyph","GlyphComponent","_generateAccessiblePr","className","_ref$size","fill","title","ariaLabelledby","ariaLabel","_ref$role","role","fillStyle","css","renderedSize","console","warn","_extends","cx","_defineProperty","height","width","_ref2","name","concat","replace","alt","generateAccessibleProps","string","_glyphs","ActivityFeed","AddFile","Apps","Array","ArrowDown","ArrowLeft","ArrowRight","ArrowUp","Beaker","Bell","Building","Bulb","Calendar","CaretDown","CaretLeft","CaretRight","CaretUp","Charts","Checkmark","CheckmarkWithCircle","ChevronDown","ChevronLeft","ChevronRight","ChevronUp","Clock","ClockWithArrow","Clone","Cloud","Code","Connect","Copy","CreditCard","CurlyBraces","Cursor","Database","Diagram","Diagram2","Diagram3","Disconnect","Download","Edit","Ellipsis","Export","Favorite","File","Filter","FullScreenEnter","FullScreenExit","Folder","GlobeAmericas","GovernmentBuilding","Home","ImportantWithCircle","InfoWithCircle","InviteUser","Key","Laptop","Link","Lock","MagnifyingGlass","Megaphone","Menu","Minus","NotAllowed","Note","OpenNewTab","Pause","Person","PersonGroup","PersonWithLock","Play","Plus","PlusWithCircle","QuestionMarkWithCircle","Redo","Refresh","Relationship","ReplicaSet","Save","Serverless","ShardedCluster","Settings","Shell","SortAscending","SortDescending","SplitHorizontal","SplitVertical","Stitch","Support","Sweep","Table","TimeSeries","Trash","Undo","University","Unlock","Unsorted","UpDownCarets","Upload","VerticalEllipsis","Visibility","VisibilityOff","Warning","X","XWithCircle","reduce","acc","child","isValidElement","_typeof","type"],"mappings":"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"}
|
|
@@ -3,7 +3,10 @@ import { LGGlyph } from './types';
|
|
|
3
3
|
declare type ExtendedComponentType = ComponentType<any> & {
|
|
4
4
|
[key: string]: any;
|
|
5
5
|
};
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Helper type to check if element is a LeafyGreen UI Glyph
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
7
10
|
declare function isComponentGlyph(node: ReactNode): node is LGGlyph.Element;
|
|
8
11
|
declare function isComponentGlyph(component: ExtendedComponentType): component is LGGlyph.Component;
|
|
9
12
|
export { isComponentGlyph };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isComponentGlyph.d.ts","sourceRoot":"","sources":["../src/isComponentGlyph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,aAAK,qBAAqB,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AACF
|
|
1
|
+
{"version":3,"file":"isComponentGlyph.d.ts","sourceRoot":"","sources":["../src/isComponentGlyph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,SAAS,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,aAAK,qBAAqB,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AACF;;;GAGG;AACH,iBAAS,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;AACpE,iBAAS,gBAAgB,CACvB,SAAS,EAAE,qBAAqB,GAC/B,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;AAuBlC,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leafygreen-ui/icon",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.11.0-next.0",
|
|
4
4
|
"description": "LeafyGreen UI Kit Icons",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"xml2json": "^0.11.2"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@leafygreen-ui/lib": "^9.
|
|
27
|
+
"@leafygreen-ui/lib": "^9.5.0-next.0"
|
|
28
28
|
},
|
|
29
29
|
"gitHead": "dd71a2d404218ccec2e657df9c0263dc1c15b9e0",
|
|
30
30
|
"homepage": "https://github.com/mongodb/leafygreen-ui/tree/main/packages/icon",
|
package/src/Icon.spec.tsx
CHANGED
|
@@ -7,8 +7,7 @@ import { render, screen } from '@testing-library/react';
|
|
|
7
7
|
import { axe } from 'jest-axe';
|
|
8
8
|
import { typeIs } from '@leafygreen-ui/lib';
|
|
9
9
|
import { SVGR } from './types';
|
|
10
|
-
import { createIconComponent, glyphs } from '.';
|
|
11
|
-
import createGlyphComponent from './createGlyphComponent';
|
|
10
|
+
import { createGlyphComponent, createIconComponent, glyphs } from '.';
|
|
12
11
|
import EditIcon from '@leafygreen-ui/icon/dist/Edit';
|
|
13
12
|
import { Size } from './glyphCommon';
|
|
14
13
|
import { isComponentGlyph } from './isComponentGlyph';
|
package/src/Icon.tsx
ADDED
|
@@ -11,7 +11,7 @@ import { generateAccessibleProps, sizeMap, Size } from './glyphCommon';
|
|
|
11
11
|
* @param Glyph: SVGR.Component - the SVG icon component
|
|
12
12
|
* @returns LGGlyph.Component
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
14
|
+
export function createGlyphComponent(
|
|
15
15
|
glyphName: string,
|
|
16
16
|
Glyph: SVGR.Component,
|
|
17
17
|
): LGGlyph.Component {
|
|
@@ -16,9 +16,9 @@ type GlyphObject = Record<string, LGGlyph.Component>;
|
|
|
16
16
|
* @param glyphs The set of glyphs
|
|
17
17
|
* @returns Icon component
|
|
18
18
|
*/
|
|
19
|
-
export
|
|
20
|
-
G
|
|
21
|
-
|
|
19
|
+
export function createIconComponent<G extends GlyphObject = GlyphObject>(
|
|
20
|
+
glyphs: G,
|
|
21
|
+
) {
|
|
22
22
|
const Icon = ({ glyph, ...rest }: IconProps) => {
|
|
23
23
|
const SVGComponent = glyphs[glyph];
|
|
24
24
|
SVGComponent.isGlyph = true;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is a generated file. Do not modify it manually.
|
|
3
|
+
*
|
|
4
|
+
* @script ./node_modules/.bin/ts-node packages/icon/scripts/build.ts
|
|
5
|
+
* @checksum 2e86b84e6912939cc6e356b19936e56c
|
|
6
|
+
*/
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import { css, cx } from '@leafygreen-ui/emotion';
|
|
10
|
+
import { generateAccessibleProps, sizeMap } from '../glyphCommon';
|
|
11
|
+
import { LGGlyph } from '../types';
|
|
12
|
+
export interface RelationshipProps extends LGGlyph.ComponentProps {}
|
|
13
|
+
|
|
14
|
+
const Relationship = ({
|
|
15
|
+
className,
|
|
16
|
+
size = 16,
|
|
17
|
+
title,
|
|
18
|
+
['aria-label']: ariaLabel,
|
|
19
|
+
['aria-labelledby']: ariaLabelledby,
|
|
20
|
+
fill,
|
|
21
|
+
role = 'img',
|
|
22
|
+
...props
|
|
23
|
+
}: RelationshipProps) => {
|
|
24
|
+
const fillStyle = css`
|
|
25
|
+
color: ${fill};
|
|
26
|
+
`;
|
|
27
|
+
const noFlexShrink = css`
|
|
28
|
+
flex-shrink: 0;
|
|
29
|
+
`;
|
|
30
|
+
const accessibleProps = generateAccessibleProps(role, 'Relationship', {
|
|
31
|
+
title,
|
|
32
|
+
['aria-label']: ariaLabel,
|
|
33
|
+
['aria-labelledby']: ariaLabelledby,
|
|
34
|
+
});
|
|
35
|
+
return (
|
|
36
|
+
<svg
|
|
37
|
+
className={cx(
|
|
38
|
+
{
|
|
39
|
+
[fillStyle]: fill != null,
|
|
40
|
+
},
|
|
41
|
+
noFlexShrink,
|
|
42
|
+
className,
|
|
43
|
+
)}
|
|
44
|
+
height={typeof size === 'number' ? size : sizeMap[size]}
|
|
45
|
+
width={typeof size === 'number' ? size : sizeMap[size]}
|
|
46
|
+
role={role}
|
|
47
|
+
{...accessibleProps}
|
|
48
|
+
{...props}
|
|
49
|
+
viewBox="0 0 16 16"
|
|
50
|
+
>
|
|
51
|
+
<path
|
|
52
|
+
d="M0.5 2C0.5 1.44772 0.947715 1 1.5 1H3.5C4.05228 1 4.5 1.44772 4.5 2V3H5.99999C7.3807 3 8.49998 4.11929 8.49998 5.5V10.5C8.49998 11.3284 9.17156 12 9.99999 12H11.5V11C11.5 10.4477 11.9477 10 12.5 10H14.5C15.0523 10 15.5 10.4477 15.5 11V14C15.5 14.5523 15.0523 15 14.5 15H12.5C11.9477 15 11.5 14.5523 11.5 14V13H9.99999C8.61928 13 7.49998 11.8807 7.49998 10.5V5.5C7.49998 4.67157 6.82841 4 5.99999 4H4.5V5C4.5 5.55228 4.05228 6 3.5 6H1.5C0.947715 6 0.5 5.55228 0.5 5V2Z"
|
|
53
|
+
fill={'currentColor'}
|
|
54
|
+
/>
|
|
55
|
+
</svg>
|
|
56
|
+
);
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
Relationship.displayName = 'Relationship';
|
|
60
|
+
Relationship.isGlyph = true;
|
|
61
|
+
Relationship.propTypes = {
|
|
62
|
+
fill: PropTypes.string,
|
|
63
|
+
size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
64
|
+
className: PropTypes.string,
|
|
65
|
+
};
|
|
66
|
+
export default Relationship;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M0.5 2C0.5 1.44772 0.947715 1 1.5 1H3.5C4.05228 1 4.5 1.44772 4.5 2V3H5.99999C7.3807 3 8.49998 4.11929 8.49998 5.5V10.5C8.49998 11.3284 9.17156 12 9.99999 12H11.5V11C11.5 10.4477 11.9477 10 12.5 10H14.5C15.0523 10 15.5 10.4477 15.5 11V14C15.5 14.5523 15.0523 15 14.5 15H12.5C11.9477 15 11.5 14.5523 11.5 14V13H9.99999C8.61928 13 7.49998 11.8807 7.49998 10.5V5.5C7.49998 4.67157 6.82841 4 5.99999 4H4.5V5C4.5 5.55228 4.05228 6 3.5 6H1.5C0.947715 6 0.5 5.55228 0.5 5V2Z" fill="#000000"/>
|
|
3
|
+
</svg>
|
package/src/glyphs/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import createGlyphComponent from '../createGlyphComponent';
|
|
1
|
+
import { createGlyphComponent } from '../createGlyphComponent';
|
|
2
2
|
import { LGGlyph } from '../types';
|
|
3
3
|
|
|
4
4
|
// Glyphs
|
|
@@ -78,6 +78,7 @@ import PlusWithCircle from './PlusWithCircle.svg';
|
|
|
78
78
|
import QuestionMarkWithCircle from './QuestionMarkWithCircle.svg';
|
|
79
79
|
import Redo from './Redo.svg';
|
|
80
80
|
import Refresh from './Refresh.svg';
|
|
81
|
+
import Relationship from './Relationship.svg';
|
|
81
82
|
import ReplicaSet from './ReplicaSet.svg';
|
|
82
83
|
import Save from './Save.svg';
|
|
83
84
|
import Serverless from './Serverless.svg';
|
|
@@ -107,7 +108,7 @@ import Warning from './Warning.svg';
|
|
|
107
108
|
import X from './X.svg';
|
|
108
109
|
import XWithCircle from './XWithCircle.svg';
|
|
109
110
|
|
|
110
|
-
const
|
|
111
|
+
const _glyphs = {
|
|
111
112
|
ActivityFeed,
|
|
112
113
|
AddFile,
|
|
113
114
|
Apps,
|
|
@@ -184,6 +185,7 @@ const glyphs = {
|
|
|
184
185
|
QuestionMarkWithCircle,
|
|
185
186
|
Redo,
|
|
186
187
|
Refresh,
|
|
188
|
+
Relationship,
|
|
187
189
|
ReplicaSet,
|
|
188
190
|
Save,
|
|
189
191
|
Serverless,
|
|
@@ -214,14 +216,12 @@ const glyphs = {
|
|
|
214
216
|
XWithCircle,
|
|
215
217
|
} as const;
|
|
216
218
|
|
|
217
|
-
type GlyphName = keyof typeof
|
|
219
|
+
type GlyphName = keyof typeof _glyphs;
|
|
218
220
|
|
|
219
|
-
const glyphKeys = Object.keys(
|
|
221
|
+
const glyphKeys = Object.keys(_glyphs) as Array<GlyphName>;
|
|
220
222
|
|
|
221
|
-
const
|
|
222
|
-
acc[name] = createGlyphComponent(name,
|
|
223
|
+
export const glyphs = glyphKeys.reduce((acc, name) => {
|
|
224
|
+
acc[name] = createGlyphComponent(name, _glyphs[name]);
|
|
223
225
|
|
|
224
226
|
return acc;
|
|
225
227
|
}, {} as Record<GlyphName, LGGlyph.Component>);
|
|
226
|
-
|
|
227
|
-
export default processedGlyphs;
|
package/src/index.ts
CHANGED
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import createIconComponent from './createIconComponent';
|
|
2
|
-
import glyphs from './glyphs';
|
|
3
|
-
|
|
4
1
|
export { LGGlyph } from './types';
|
|
5
2
|
export { Size } from './glyphCommon';
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
3
|
+
export { createIconComponent } from './createIconComponent';
|
|
4
|
+
export { createGlyphComponent } from './createGlyphComponent';
|
|
5
|
+
export { glyphs } from './glyphs';
|
|
9
6
|
export { isComponentGlyph } from './isComponentGlyph';
|
|
10
|
-
export default
|
|
7
|
+
export { Icon as default } from './Icon';
|
package/src/isComponentGlyph.ts
CHANGED
|
@@ -4,7 +4,10 @@ import { LGGlyph } from './types';
|
|
|
4
4
|
type ExtendedComponentType = ComponentType<any> & {
|
|
5
5
|
[key: string]: any;
|
|
6
6
|
};
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Helper type to check if element is a LeafyGreen UI Glyph
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
8
11
|
function isComponentGlyph(node: ReactNode): node is LGGlyph.Element;
|
|
9
12
|
function isComponentGlyph(
|
|
10
13
|
component: ExtendedComponentType,
|