@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.
Files changed (209) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/Icon.d.ts +7 -0
  3. package/dist/Icon.d.ts.map +1 -0
  4. package/dist/Relationship.js +2 -0
  5. package/dist/Relationship.js.map +1 -0
  6. package/dist/createGlyphComponent.d.ts +1 -1
  7. package/dist/createGlyphComponent.d.ts.map +1 -1
  8. package/dist/createIconComponent.d.ts +1 -2
  9. package/dist/createIconComponent.d.ts.map +1 -1
  10. package/dist/esm/Relationship.js +2 -0
  11. package/dist/esm/Relationship.js.map +1 -0
  12. package/dist/esm/index.js +1 -1
  13. package/dist/esm/index.js.map +1 -1
  14. package/dist/generated/ActivityFeed.d.ts +0 -1
  15. package/dist/generated/ActivityFeed.d.ts.map +1 -1
  16. package/dist/generated/AddFile.d.ts +0 -1
  17. package/dist/generated/AddFile.d.ts.map +1 -1
  18. package/dist/generated/Apps.d.ts +0 -1
  19. package/dist/generated/Apps.d.ts.map +1 -1
  20. package/dist/generated/Array.d.ts +0 -1
  21. package/dist/generated/Array.d.ts.map +1 -1
  22. package/dist/generated/ArrowDown.d.ts +0 -1
  23. package/dist/generated/ArrowDown.d.ts.map +1 -1
  24. package/dist/generated/ArrowLeft.d.ts +0 -1
  25. package/dist/generated/ArrowLeft.d.ts.map +1 -1
  26. package/dist/generated/ArrowRight.d.ts +0 -1
  27. package/dist/generated/ArrowRight.d.ts.map +1 -1
  28. package/dist/generated/ArrowUp.d.ts +0 -1
  29. package/dist/generated/ArrowUp.d.ts.map +1 -1
  30. package/dist/generated/Beaker.d.ts +0 -1
  31. package/dist/generated/Beaker.d.ts.map +1 -1
  32. package/dist/generated/Bell.d.ts +0 -1
  33. package/dist/generated/Bell.d.ts.map +1 -1
  34. package/dist/generated/Building.d.ts +0 -1
  35. package/dist/generated/Building.d.ts.map +1 -1
  36. package/dist/generated/Bulb.d.ts +0 -1
  37. package/dist/generated/Bulb.d.ts.map +1 -1
  38. package/dist/generated/Calendar.d.ts +0 -1
  39. package/dist/generated/Calendar.d.ts.map +1 -1
  40. package/dist/generated/CaretDown.d.ts +0 -1
  41. package/dist/generated/CaretDown.d.ts.map +1 -1
  42. package/dist/generated/CaretLeft.d.ts +0 -1
  43. package/dist/generated/CaretLeft.d.ts.map +1 -1
  44. package/dist/generated/CaretRight.d.ts +0 -1
  45. package/dist/generated/CaretRight.d.ts.map +1 -1
  46. package/dist/generated/CaretUp.d.ts +0 -1
  47. package/dist/generated/CaretUp.d.ts.map +1 -1
  48. package/dist/generated/Charts.d.ts +0 -1
  49. package/dist/generated/Charts.d.ts.map +1 -1
  50. package/dist/generated/Checkmark.d.ts +0 -1
  51. package/dist/generated/Checkmark.d.ts.map +1 -1
  52. package/dist/generated/CheckmarkWithCircle.d.ts +0 -1
  53. package/dist/generated/CheckmarkWithCircle.d.ts.map +1 -1
  54. package/dist/generated/ChevronDown.d.ts +0 -1
  55. package/dist/generated/ChevronDown.d.ts.map +1 -1
  56. package/dist/generated/ChevronLeft.d.ts +0 -1
  57. package/dist/generated/ChevronLeft.d.ts.map +1 -1
  58. package/dist/generated/ChevronRight.d.ts +0 -1
  59. package/dist/generated/ChevronRight.d.ts.map +1 -1
  60. package/dist/generated/ChevronUp.d.ts +0 -1
  61. package/dist/generated/ChevronUp.d.ts.map +1 -1
  62. package/dist/generated/Clock.d.ts +0 -1
  63. package/dist/generated/Clock.d.ts.map +1 -1
  64. package/dist/generated/ClockWithArrow.d.ts +0 -1
  65. package/dist/generated/ClockWithArrow.d.ts.map +1 -1
  66. package/dist/generated/Clone.d.ts +0 -1
  67. package/dist/generated/Clone.d.ts.map +1 -1
  68. package/dist/generated/Cloud.d.ts +0 -1
  69. package/dist/generated/Cloud.d.ts.map +1 -1
  70. package/dist/generated/Code.d.ts +0 -1
  71. package/dist/generated/Code.d.ts.map +1 -1
  72. package/dist/generated/Connect.d.ts +0 -1
  73. package/dist/generated/Connect.d.ts.map +1 -1
  74. package/dist/generated/Copy.d.ts +0 -1
  75. package/dist/generated/Copy.d.ts.map +1 -1
  76. package/dist/generated/CreditCard.d.ts +0 -1
  77. package/dist/generated/CreditCard.d.ts.map +1 -1
  78. package/dist/generated/CurlyBraces.d.ts +0 -1
  79. package/dist/generated/CurlyBraces.d.ts.map +1 -1
  80. package/dist/generated/Cursor.d.ts +0 -1
  81. package/dist/generated/Cursor.d.ts.map +1 -1
  82. package/dist/generated/Database.d.ts +0 -1
  83. package/dist/generated/Database.d.ts.map +1 -1
  84. package/dist/generated/Diagram.d.ts +0 -1
  85. package/dist/generated/Diagram.d.ts.map +1 -1
  86. package/dist/generated/Diagram2.d.ts +0 -1
  87. package/dist/generated/Diagram2.d.ts.map +1 -1
  88. package/dist/generated/Diagram3.d.ts +0 -1
  89. package/dist/generated/Diagram3.d.ts.map +1 -1
  90. package/dist/generated/Disconnect.d.ts +0 -1
  91. package/dist/generated/Disconnect.d.ts.map +1 -1
  92. package/dist/generated/Download.d.ts +0 -1
  93. package/dist/generated/Download.d.ts.map +1 -1
  94. package/dist/generated/Edit.d.ts +0 -1
  95. package/dist/generated/Edit.d.ts.map +1 -1
  96. package/dist/generated/Ellipsis.d.ts +0 -1
  97. package/dist/generated/Ellipsis.d.ts.map +1 -1
  98. package/dist/generated/Export.d.ts +0 -1
  99. package/dist/generated/Export.d.ts.map +1 -1
  100. package/dist/generated/Favorite.d.ts +0 -1
  101. package/dist/generated/Favorite.d.ts.map +1 -1
  102. package/dist/generated/File.d.ts +0 -1
  103. package/dist/generated/File.d.ts.map +1 -1
  104. package/dist/generated/Filter.d.ts +0 -1
  105. package/dist/generated/Filter.d.ts.map +1 -1
  106. package/dist/generated/Folder.d.ts +0 -1
  107. package/dist/generated/Folder.d.ts.map +1 -1
  108. package/dist/generated/FullScreenEnter.d.ts +0 -1
  109. package/dist/generated/FullScreenEnter.d.ts.map +1 -1
  110. package/dist/generated/FullScreenExit.d.ts +0 -1
  111. package/dist/generated/FullScreenExit.d.ts.map +1 -1
  112. package/dist/generated/GlobeAmericas.d.ts +0 -1
  113. package/dist/generated/GlobeAmericas.d.ts.map +1 -1
  114. package/dist/generated/GovernmentBuilding.d.ts +0 -1
  115. package/dist/generated/GovernmentBuilding.d.ts.map +1 -1
  116. package/dist/generated/Home.d.ts +0 -1
  117. package/dist/generated/Home.d.ts.map +1 -1
  118. package/dist/generated/ImportantWithCircle.d.ts +0 -1
  119. package/dist/generated/ImportantWithCircle.d.ts.map +1 -1
  120. package/dist/generated/InfoWithCircle.d.ts +0 -1
  121. package/dist/generated/InfoWithCircle.d.ts.map +1 -1
  122. package/dist/generated/InviteUser.d.ts +0 -1
  123. package/dist/generated/InviteUser.d.ts.map +1 -1
  124. package/dist/generated/Key.d.ts +0 -1
  125. package/dist/generated/Key.d.ts.map +1 -1
  126. package/dist/generated/Laptop.d.ts +0 -1
  127. package/dist/generated/Laptop.d.ts.map +1 -1
  128. package/dist/generated/Link.d.ts +0 -1
  129. package/dist/generated/Link.d.ts.map +1 -1
  130. package/dist/generated/Lock.d.ts +0 -1
  131. package/dist/generated/Lock.d.ts.map +1 -1
  132. package/dist/generated/MagnifyingGlass.d.ts +0 -1
  133. package/dist/generated/MagnifyingGlass.d.ts.map +1 -1
  134. package/dist/generated/Megaphone.d.ts +0 -1
  135. package/dist/generated/Megaphone.d.ts.map +1 -1
  136. package/dist/generated/Menu.d.ts +0 -1
  137. package/dist/generated/Menu.d.ts.map +1 -1
  138. package/dist/generated/Minus.d.ts +0 -1
  139. package/dist/generated/Minus.d.ts.map +1 -1
  140. package/dist/generated/NotAllowed.d.ts +0 -1
  141. package/dist/generated/NotAllowed.d.ts.map +1 -1
  142. package/dist/generated/Note.d.ts +0 -1
  143. package/dist/generated/Note.d.ts.map +1 -1
  144. package/dist/generated/OpenNewTab.d.ts +0 -1
  145. package/dist/generated/OpenNewTab.d.ts.map +1 -1
  146. package/dist/generated/Pause.d.ts +0 -1
  147. package/dist/generated/Pause.d.ts.map +1 -1
  148. package/dist/generated/Person.d.ts +0 -1
  149. package/dist/generated/Person.d.ts.map +1 -1
  150. package/dist/generated/PersonGroup.d.ts +0 -1
  151. package/dist/generated/PersonGroup.d.ts.map +1 -1
  152. package/dist/generated/PersonWithLock.d.ts +0 -1
  153. package/dist/generated/PersonWithLock.d.ts.map +1 -1
  154. package/dist/generated/Play.d.ts +0 -1
  155. package/dist/generated/Play.d.ts.map +1 -1
  156. package/dist/generated/Plus.d.ts +0 -1
  157. package/dist/generated/Plus.d.ts.map +1 -1
  158. package/dist/generated/PlusWithCircle.d.ts +0 -1
  159. package/dist/generated/PlusWithCircle.d.ts.map +1 -1
  160. package/dist/generated/QuestionMarkWithCircle.d.ts +0 -1
  161. package/dist/generated/QuestionMarkWithCircle.d.ts.map +1 -1
  162. package/dist/generated/Redo.d.ts +0 -1
  163. package/dist/generated/Redo.d.ts.map +1 -1
  164. package/dist/generated/Refresh.d.ts +0 -1
  165. package/dist/generated/Refresh.d.ts.map +1 -1
  166. package/dist/generated/Relationship.d.ts +16 -0
  167. package/dist/generated/Relationship.d.ts.map +1 -0
  168. package/dist/generated/ReplicaSet.d.ts +0 -1
  169. package/dist/generated/ReplicaSet.d.ts.map +1 -1
  170. package/dist/generated/Serverless.d.ts +0 -1
  171. package/dist/generated/Serverless.d.ts.map +1 -1
  172. package/dist/generated/Settings.d.ts +0 -1
  173. package/dist/generated/Settings.d.ts.map +1 -1
  174. package/dist/generated/ShardedCluster.d.ts +0 -1
  175. package/dist/generated/ShardedCluster.d.ts.map +1 -1
  176. package/dist/generated/Shell.d.ts +0 -1
  177. package/dist/generated/Shell.d.ts.map +1 -1
  178. package/dist/generated/SortAscending.d.ts +0 -1
  179. package/dist/generated/SortAscending.d.ts.map +1 -1
  180. package/dist/generated/SortDescending.d.ts +0 -1
  181. package/dist/generated/SortDescending.d.ts.map +1 -1
  182. package/dist/generated/SplitHorizontal.d.ts +0 -1
  183. package/dist/generated/SplitHorizontal.d.ts.map +1 -1
  184. package/dist/generated/Stitch.d.ts +0 -1
  185. package/dist/generated/Stitch.d.ts.map +1 -1
  186. package/dist/generated/Support.d.ts +0 -1
  187. package/dist/generated/Support.d.ts.map +1 -1
  188. package/dist/generated/Trash.d.ts +0 -1
  189. package/dist/generated/Trash.d.ts.map +1 -1
  190. package/dist/glyphs/index.d.ts +1 -2
  191. package/dist/glyphs/index.d.ts.map +1 -1
  192. package/dist/index.d.ts +4 -11
  193. package/dist/index.d.ts.map +1 -1
  194. package/dist/index.js +1 -1
  195. package/dist/index.js.map +1 -1
  196. package/dist/isComponentGlyph.d.ts +4 -1
  197. package/dist/isComponentGlyph.d.ts.map +1 -1
  198. package/package.json +2 -2
  199. package/src/Icon.spec.tsx +1 -2
  200. package/src/Icon.tsx +4 -0
  201. package/src/createGlyphComponent.tsx +1 -1
  202. package/src/createIconComponent.tsx +3 -3
  203. package/src/generated/Relationship.tsx +66 -0
  204. package/src/glyphs/Relationship.svg +3 -0
  205. package/src/glyphs/index.ts +8 -8
  206. package/src/index.ts +4 -7
  207. package/src/isComponentGlyph.ts +4 -1
  208. package/tsconfig.tsbuildinfo +1 -1
  209. 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
- /** Helper type to check if element is a LeafyGreen UI Glyph */
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,gEAAgE;AAChE,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"}
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.10.1",
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.2.0"
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
@@ -0,0 +1,4 @@
1
+ import { createIconComponent } from './createIconComponent';
2
+ import { glyphs } from './glyphs';
3
+
4
+ export const Icon = createIconComponent(glyphs);
@@ -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 default function createGlyphComponent(
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 default function createIconComponent<
20
- G extends GlyphObject = GlyphObject,
21
- >(glyphs: G) {
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>
@@ -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 glyphs = {
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 glyphs;
219
+ type GlyphName = keyof typeof _glyphs;
218
220
 
219
- const glyphKeys = Object.keys(glyphs) as Array<GlyphName>;
221
+ const glyphKeys = Object.keys(_glyphs) as Array<GlyphName>;
220
222
 
221
- const processedGlyphs = glyphKeys.reduce((acc, name) => {
222
- acc[name] = createGlyphComponent(name, glyphs[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 { default as createIconComponent } from './createIconComponent';
7
- export { default as createGlyphComponent } from './createGlyphComponent';
8
- export { default as glyphs } from './glyphs';
3
+ export { createIconComponent } from './createIconComponent';
4
+ export { createGlyphComponent } from './createGlyphComponent';
5
+ export { glyphs } from './glyphs';
9
6
  export { isComponentGlyph } from './isComponentGlyph';
10
- export default createIconComponent(glyphs);
7
+ export { Icon as default } from './Icon';
@@ -4,7 +4,10 @@ import { LGGlyph } from './types';
4
4
  type ExtendedComponentType = ComponentType<any> & {
5
5
  [key: string]: any;
6
6
  };
7
- /** Helper type to check if element is a LeafyGreen UI Glyph */
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,