@primitiv-ui/icons 0.1.0 → 0.1.2

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 (46) hide show
  1. package/LICENSE +21 -0
  2. package/package.json +2 -1
  3. package/src/IconBase.tsx +10 -3
  4. package/src/icons/ArrowLeft.tsx +15 -3
  5. package/src/icons/ArrowRight.tsx +15 -3
  6. package/src/icons/Bell.tsx +15 -3
  7. package/src/icons/Calendar.tsx +15 -3
  8. package/src/icons/Check.tsx +15 -3
  9. package/src/icons/ChevronDown.tsx +15 -3
  10. package/src/icons/ChevronLeft.tsx +15 -3
  11. package/src/icons/ChevronRight.tsx +15 -3
  12. package/src/icons/ChevronUp.tsx +15 -3
  13. package/src/icons/Close.tsx +15 -3
  14. package/src/icons/Copy.tsx +15 -3
  15. package/src/icons/Delete.tsx +15 -3
  16. package/src/icons/Download.tsx +15 -3
  17. package/src/icons/Edit.tsx +15 -3
  18. package/src/icons/Error.tsx +15 -3
  19. package/src/icons/ExternalLink.tsx +15 -3
  20. package/src/icons/Eye.tsx +15 -3
  21. package/src/icons/EyeOff.tsx +15 -3
  22. package/src/icons/File.tsx +15 -3
  23. package/src/icons/Filter.tsx +15 -3
  24. package/src/icons/Folder.tsx +15 -3
  25. package/src/icons/Grid.tsx +15 -3
  26. package/src/icons/Home.tsx +15 -3
  27. package/src/icons/Image.tsx +15 -3
  28. package/src/icons/Info.tsx +15 -3
  29. package/src/icons/Link.tsx +15 -3
  30. package/src/icons/List.tsx +15 -3
  31. package/src/icons/Mail.tsx +15 -3
  32. package/src/icons/Menu.tsx +15 -3
  33. package/src/icons/Minus.tsx +15 -3
  34. package/src/icons/Moon.tsx +15 -3
  35. package/src/icons/Plus.tsx +15 -3
  36. package/src/icons/Search.tsx +15 -3
  37. package/src/icons/Settings.tsx +15 -3
  38. package/src/icons/Share.tsx +15 -3
  39. package/src/icons/Sort.tsx +15 -3
  40. package/src/icons/Success.tsx +15 -3
  41. package/src/icons/Sun.tsx +15 -3
  42. package/src/icons/Upload.tsx +15 -3
  43. package/src/icons/User.tsx +15 -3
  44. package/src/icons/Warning.tsx +15 -3
  45. package/src/index.ts +3 -3
  46. package/src/types.ts +9 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Simon Revill
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@primitiv-ui/icons",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
+ "description": "Fill-based SVG icon library for the Primitiv ecosystem. Icons inherit currentColor, scale via a size prop, accept all native SVG attributes, and tree-shake cleanly.",
4
5
  "type": "module",
5
6
  "main": "./src/index.ts",
6
7
  "types": "./src/index.ts",
package/src/IconBase.tsx CHANGED
@@ -1,16 +1,23 @@
1
- import type { Ref } from 'react'
2
- import type { IconProps } from './types'
1
+ import type { Ref, ReactElement } from 'react'
2
+ import type { IconProps } from './types.ts'
3
3
 
4
4
  interface IconBaseProps extends IconProps {
5
5
  ref?: Ref<SVGSVGElement>
6
6
  }
7
7
 
8
+ /**
9
+ * The shared SVG wrapper every Primitiv icon renders through. Sets up the
10
+ * `viewBox`, `currentColor` fill, and `size`-driven width/height, forwards
11
+ * a ref to the `<svg>`, and marks the icon `aria-hidden` unless an
12
+ * `aria-label` is provided. Generated icon components pass their paths as
13
+ * `children`; you rarely render this directly.
14
+ */
8
15
  export const IconBase = ({
9
16
  size = 24,
10
17
  ref,
11
18
  children,
12
19
  ...props
13
- }: IconBaseProps) => (
20
+ }: IconBaseProps): ReactElement => (
14
21
  <svg
15
22
  xmlns="http://www.w3.org/2000/svg"
16
23
  width={size}
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const ArrowLeft = (props: IconProps) => (
5
+ /**
6
+ * The ArrowLeft icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <ArrowLeft size={20} aria-label="ArrowLeft" />
14
+ * ```
15
+ */
16
+ export const ArrowLeft = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.75 11.25v1.5H3.908v-1.5z"/><path d="m12.06 5-7 7 7 7L11 20.06 2.94 12 11 3.94z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const ArrowRight = (props: IconProps) => (
5
+ /**
6
+ * The ArrowRight icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <ArrowRight size={20} aria-label="ArrowRight" />
14
+ * ```
15
+ */
16
+ export const ArrowRight = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M19.75 11.25v1.5H3.25v-1.5z"/><path d="M21.06 12 13 20.06 11.94 19l7-7-7-7L13 3.94z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Bell = (props: IconProps) => (
5
+ /**
6
+ * The Bell icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Bell size={20} aria-label="Bell" />
14
+ * ```
15
+ */
16
+ export const Bell = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M17.25 11c0-3.662-2.737-6.25-5.25-6.25S6.75 7.338 6.75 11v5.31l-.94.94h12.38l-.94-.94zm1.5 4.69 3.06 3.06H2.19l3.06-3.06V11c0-4.338 3.263-7.75 6.75-7.75s6.75 3.412 6.75 7.75zm-4 4.56v1.5h-5.5v-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Calendar = (props: IconProps) => (
5
+ /**
6
+ * The Calendar icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Calendar size={20} aria-label="Calendar" />
14
+ * ```
15
+ */
16
+ export const Calendar = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M21.75 4.25v17.5H2.25V4.25zm-18 16h16.5V5.75H3.75z"/><path d="M21.75 9.25v1.5H2.25v-1.5zm-14.5-7h1.5v5.5h-1.5zm8 0h1.5v5.5h-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Check = (props: IconProps) => (
5
+ /**
6
+ * The Check icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Check size={20} aria-label="Check" />
14
+ * ```
15
+ */
16
+ export const Check = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M21.057 5.904 10.05 19.111 2.939 12 4 10.94l5.95 5.949 9.954-11.946z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const ChevronDown = (props: IconProps) => (
5
+ /**
6
+ * The ChevronDown icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <ChevronDown size={20} aria-label="ChevronDown" />
14
+ * ```
15
+ */
16
+ export const ChevronDown = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.06 9 12 17.06 3.94 9 5 7.94l7 7 7-7z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const ChevronLeft = (props: IconProps) => (
5
+ /**
6
+ * The ChevronLeft icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <ChevronLeft size={20} aria-label="ChevronLeft" />
14
+ * ```
15
+ */
16
+ export const ChevronLeft = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="m16.06 5-7 7 7 7L15 20.06 6.94 12 15 3.94z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const ChevronRight = (props: IconProps) => (
5
+ /**
6
+ * The ChevronRight icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <ChevronRight size={20} aria-label="ChevronRight" />
14
+ * ```
15
+ */
16
+ export const ChevronRight = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M17.06 12 9 20.06 7.94 19l7-7-7-7L9 3.94z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const ChevronUp = (props: IconProps) => (
5
+ /**
6
+ * The ChevronUp icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <ChevronUp size={20} aria-label="ChevronUp" />
14
+ * ```
15
+ */
16
+ export const ChevronUp = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.06 15 19 16.06l-7-7-7 7L3.94 15 12 6.94z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Close = (props: IconProps) => (
5
+ /**
6
+ * The Close icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Close size={20} aria-label="Close" />
14
+ * ```
15
+ */
16
+ export const Close = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.06 19 19 20.06 3.94 5 5 3.94z"/><path d="M20.06 5 5 20.06 3.94 19 19 3.94z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Copy = (props: IconProps) => (
5
+ /**
6
+ * The Copy icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Copy size={20} aria-label="Copy" />
14
+ * ```
15
+ */
16
+ export const Copy = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.75 7.25v13.5H7.25V7.25zm-12 12h10.5V8.75H8.75z"/><path d="M15.25 4.75H4.75v10.5h4v1.5h-5.5V3.25h13.5v5.5h-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Delete = (props: IconProps) => (
5
+ /**
6
+ * The Delete icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Delete size={20} aria-label="Delete" />
14
+ * ```
15
+ */
16
+ export const Delete = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.75 6.25v1.5H3.25v-1.5z"/><path d="M18.81 7.314 17.69 20.75H6.31L5.19 7.314l1.496-.124 1.003 12.06h8.622l1.003-12.06z"/><path d="M14.25 4.75h-4.5v3h-1.5v-4.5h7.5v4.5h-1.5zm-5 5.5h1.5v7.5h-1.5zm4 0h1.5v7.5h-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Download = (props: IconProps) => (
5
+ /**
6
+ * The Download icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Download size={20} aria-label="Download" />
14
+ * ```
15
+ */
16
+ export const Download = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M11 3h1.5v13H11z"/><path d="m18.81 10.75-7.06 7.06-7.06-7.06 1.06-1.06 6 6 6-6zM20.5 19v1.5H3V19z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Edit = (props: IconProps) => (
5
+ /**
6
+ * The Edit icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Edit size={20} aria-label="Edit" />
14
+ * ```
15
+ */
16
+ export const Edit = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M21.06 8 8.31 20.75H3.25v-5.06L16 2.94zM4.75 16.31v2.94h2.94L18.94 8 16 5.06z"/><path d="M18.06 11 17 12.06 11.94 7 13 5.94z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Error = (props: IconProps) => (
5
+ /**
6
+ * The Error icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Error size={20} aria-label="Error" />
14
+ * ```
15
+ */
16
+ export const Error = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.25 12a8.25 8.25 0 1 0-16.5 0 8.25 8.25 0 0 0 16.5 0m1.5 0c0 5.385-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12 6.615 2.25 12 2.25s9.75 4.365 9.75 9.75"/><path d="M17.06 16 16 17.06 6.94 8 8 6.94z"/><path d="M17.06 8 8 17.06 6.94 16 16 6.94z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const ExternalLink = (props: IconProps) => (
5
+ /**
6
+ * The ExternalLink icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <ExternalLink size={20} aria-label="ExternalLink" />
14
+ * ```
15
+ */
16
+ export const ExternalLink = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M19.25 4.75h-6v-1.5h7.5v7.5h-1.5z"/><path d="M20.06 5 11 14.06 9.94 13 19 3.94z"/><path d="M10.75 5.25v1.5h-6v12.5h12.5v-6h1.5v7.5H3.25V5.25z"/>
7
19
  </IconBase>
package/src/icons/Eye.tsx CHANGED
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Eye = (props: IconProps) => (
5
+ /**
6
+ * The Eye icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Eye size={20} aria-label="Eye" />
14
+ * ```
15
+ */
16
+ export const Eye = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M12 4.25c2.06 0 3.972.256 5.769 1.361 1.789 1.101 3.368 2.987 4.902 6.054l.168.335-.168.335c-1.534 3.067-3.113 4.953-4.902 6.054-1.797 1.105-3.71 1.361-5.769 1.361s-3.972-.256-5.769-1.361c-1.789-1.101-3.368-2.987-4.902-6.054L1.161 12l.168-.335c1.534-3.067 3.113-4.953 4.902-6.054C8.028 4.506 9.941 4.25 12 4.25m0 1.5c-1.94 0-3.528.244-4.981 1.139-1.405.864-2.77 2.39-4.176 5.111 1.406 2.721 2.771 4.247 4.176 5.111 1.453.895 3.04 1.139 4.981 1.139s3.528-.244 4.981-1.139c1.404-.864 2.77-2.39 4.175-5.111-1.406-2.721-2.77-4.247-4.175-5.111C15.528 5.994 13.941 5.75 12 5.75"/><path d="M14.25 12a2.25 2.25 0 1 0-4.5 0 2.25 2.25 0 0 0 4.5 0m1.5 0a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const EyeOff = (props: IconProps) => (
5
+ /**
6
+ * The EyeOff icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <EyeOff size={20} aria-label="EyeOff" />
14
+ * ```
15
+ */
16
+ export const EyeOff = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="m22.059 19.938-.997 1.12L1.942 4.064l.996-1.122 19.12 16.996Z"/><path d="m7.06 7-.53.53c-.956.956-1.678 1.917-2.295 2.78-.461.647-.899 1.29-1.332 1.807 1.385 2.648 2.732 4.143 4.116 4.994 1.453.895 3.04 1.139 4.981 1.139 1.432 0 2.832-.19 4.222-.746l.696-.278.557 1.392-.697.279c-1.61.644-3.21.853-4.778.853-2.06 0-3.972-.256-5.769-1.361-1.789-1.101-3.368-2.987-4.902-6.054l-.241-.483.382-.382c.442-.443.89-1.114 1.545-2.03.633-.887 1.41-1.926 2.455-2.97L6 5.94zM12 4.25c2.06 0 3.972.256 5.769 1.361 1.789 1.101 3.368 2.987 4.902 6.054l.155.31-.137.32a19.5 19.5 0 0 1-2.182 3.847l-.442.606-1.213-.883.441-.606a18 18 0 0 0 1.875-3.236c-1.41-2.736-2.779-4.268-4.187-5.134C15.528 5.994 13.941 5.75 12 5.75c-.262 0-.553.103-.944.305-.331.17-.84.477-1.292.647l-.702.264-.528-1.404.702-.264c.347-.13.64-.323 1.133-.577.434-.224.993-.471 1.631-.471"/><path d="M8.25 12c0-.697.276-1.335.606-1.886l.387-.643 1.286.772-.385.643c-.27.45-.394.81-.394 1.114 0 1.286.964 2.25 2.25 2.25.303 0 .665-.124 1.114-.394l.643-.385.772 1.286-.643.387c-.55.33-1.19.606-1.886.606-2.114 0-3.75-1.636-3.75-3.75"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const File = (props: IconProps) => (
5
+ /**
6
+ * The File icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <File size={20} aria-label="File" />
14
+ * ```
15
+ */
16
+ export const File = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="m14.31 2.25 5.44 5.44v14.06H4.25V2.25zm-8.56 18h12.5V8.31l-4.56-4.56H5.75z"/><path d="M13.25 2.75h1.5v4.5h4.5v1.5h-6z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Filter = (props: IconProps) => (
5
+ /**
6
+ * The Filter icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Filter size={20} aria-label="Filter" />
14
+ * ```
15
+ */
16
+ export const Filter = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M22.533 3.25 14.75 13.257v7.493h-5.5v-7.493L1.467 3.25zM10.75 12.742v6.508h2.5v-6.508l6.217-7.992H4.533z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Folder = (props: IconProps) => (
5
+ /**
6
+ * The Folder icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Folder size={20} aria-label="Folder" />
14
+ * ```
15
+ */
16
+ export const Folder = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="m10.31 5.25 2 2h9.44v12.5H2.25V5.25zm-6.56 13h16.5v-9.5h-8.56l-2-2H3.75z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Grid = (props: IconProps) => (
5
+ /**
6
+ * The Grid icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Grid size={20} aria-label="Grid" />
14
+ * ```
15
+ */
16
+ export const Grid = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M11.75 2.25v9.5h-9.5v-9.5zm-8 8h6.5v-6.5h-6.5zm18-8v9.5h-9.5v-9.5zm-8 8h6.5v-6.5h-6.5zm-2 2v9.5h-9.5v-9.5zm-8 8h6.5v-6.5h-6.5zm18-8v9.5h-9.5v-9.5zm-8 8h6.5v-6.5h-6.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Home = (props: IconProps) => (
5
+ /**
6
+ * The Home icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Home size={20} aria-label="Home" />
14
+ * ```
15
+ */
16
+ export const Home = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="m22.059 10.938-.997 1.12L12 4.004 2.937 12.06l-.996-1.121L12 1.995l10.059 8.941Z"/><path d="M4.25 9.25h1.5v10h12.5v-10h1.5v11.5H4.25z"/><path d="M13.25 14.75h-2.5v6h-1.5v-7.5h5.5v7.5h-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Image = (props: IconProps) => (
5
+ /**
6
+ * The Image icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Image size={20} aria-label="Image" />
14
+ * ```
15
+ */
16
+ export const Image = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M21.75 3.25v17.5H2.25V3.25zm-18 16h16.5V4.75H3.75z"/><path d="M10.25 9a1.25 1.25 0 1 0-2.5 0 1.25 1.25 0 0 0 2.5 0m1.5 0a2.75 2.75 0 1 1-5.5 0 2.75 2.75 0 0 1 5.5 0"/><path d="m21.56 11.042-7.525 6.946-5.057-4.045-5.643 4.105-.883-1.213 6.57-4.778 4.943 3.954 6.577-6.07z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Info = (props: IconProps) => (
5
+ /**
6
+ * The Info icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Info size={20} aria-label="Info" />
14
+ * ```
15
+ */
16
+ export const Info = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.25 12a8.25 8.25 0 1 0-16.5 0 8.25 8.25 0 0 0 16.5 0m1.5 0c0 5.385-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12 6.615 2.25 12 2.25s9.75 4.365 9.75 9.75"/><path d="M11.25 10.25h1.5v7.5h-1.5zm0-4h1.5v2.5h-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Link = (props: IconProps) => (
5
+ /**
6
+ * The Link icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Link size={20} aria-label="Link" />
14
+ * ```
15
+ */
16
+ export const Link = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M10.75 7.25v1.5H4c-.053 0-.233.029-.44.492-.194.438-.31 1.076-.31 1.758s.116 1.32.31 1.758c.207.463.387.492.44.492h6.75v1.5H4c-.947 0-1.517-.721-1.81-1.383-.306-.687-.44-1.549-.44-2.367s.134-1.68.44-2.367C2.482 7.97 3.052 7.25 4 7.25zm9.25 2c.947 0 1.517.721 1.81 1.383.306.687.44 1.549.44 2.367s-.134 1.68-.44 2.367c-.293.662-.863 1.383-1.81 1.383h-6.75v-1.5H20c.053 0 .233-.029.44-.492.194-.438.31-1.076.31-1.758s-.116-1.32-.31-1.758c-.207-.463-.387-.492-.44-.492h-6.75v-1.5z"/><path d="M16.75 11.25v1.5h-9.5v-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const List = (props: IconProps) => (
5
+ /**
6
+ * The List icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <List size={20} aria-label="List" />
14
+ * ```
15
+ */
16
+ export const List = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M21.75 5.25v1.5H7.25v-1.5zm0 6v1.5H7.25v-1.5zm0 6v1.5H7.25v-1.5zm-17-12v1.5h-2.5v-1.5zm0 6v1.5h-2.5v-1.5zm0 6v1.5h-2.5v-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Mail = (props: IconProps) => (
5
+ /**
6
+ * The Mail icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Mail size={20} aria-label="Mail" />
14
+ * ```
15
+ */
16
+ export const Mail = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M21.75 4.25v15.5H2.25V4.25zm-18 14h16.5V5.75H3.75z"/><path d="m20.542 5.406.86 1.232L12 13.95 2.673 6.696 3.577 5.5 12 12.049z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Menu = (props: IconProps) => (
5
+ /**
6
+ * The Menu icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Menu size={20} aria-label="Menu" />
14
+ * ```
15
+ */
16
+ export const Menu = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M21.75 6.25v1.5H2.25v-1.5zm0 5v1.5H2.25v-1.5zm0 5v1.5H2.25v-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Minus = (props: IconProps) => (
5
+ /**
6
+ * The Minus icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Minus size={20} aria-label="Minus" />
14
+ * ```
15
+ */
16
+ export const Minus = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.75 11.25v1.5H3.25v-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Moon = (props: IconProps) => (
5
+ /**
6
+ * The Moon icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Moon size={20} aria-label="Moon" />
14
+ * ```
15
+ */
16
+ export const Moon = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path fillRule="evenodd" d="M8.41 3.745a8.7 8.7 0 0 0 11.844 11.842A9 9 0 1 1 8.41 3.745M5.806 7.771a7.5 7.5 0 0 0 10.422 10.422c-.076.002-.152.007-.228.007-5.633 0-10.2-4.567-10.2-10.2q.001-.114.006-.229" clipRule="evenodd"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Plus = (props: IconProps) => (
5
+ /**
6
+ * The Plus icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Plus size={20} aria-label="Plus" />
14
+ * ```
15
+ */
16
+ export const Plus = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M11.25 3.25h1.5v17.5h-1.5z"/><path d="M20.75 11.25v1.5H3.25v-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Search = (props: IconProps) => (
5
+ /**
6
+ * The Search icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Search size={20} aria-label="Search" />
14
+ * ```
15
+ */
16
+ export const Search = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M16.25 10.5a5.75 5.75 0 1 0-11.5 0 5.75 5.75 0 0 0 11.5 0m1.5 0a7.25 7.25 0 1 1-14.5 0 7.25 7.25 0 0 1 14.5 0"/><path d="M21.06 20 20 21.06l-5.56-5.56 1.06-1.06z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Settings = (props: IconProps) => (
5
+ /**
6
+ * The Settings icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Settings size={20} aria-label="Settings" />
14
+ * ```
15
+ */
16
+ export const Settings = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M14.25 12a2.25 2.25 0 1 0-4.5 0 2.25 2.25 0 0 0 4.5 0m1.5 0a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0"/><path d="m13.335 3.993 2-.999 1.129 2.256h2.286v2.286l2.256 1.129-1 2L22.676 12l-2.67 1.335 1 2-2.256 1.128v2.287h-2.286l-1.129 2.256-2-1L12 22.676l-1.336-2.67-1.999 1-1.129-2.256H5.25v-2.287l-2.256-1.128 1-2L1.323 12l2.67-1.336-1-1.999L5.25 7.536V5.25h2.286l1.129-2.256 2 1L12 1.323zm-2 2.013-2-1-.871 1.744H6.75v1.714l-1.744.871 1 2-1.33.665 1.33.665-1 2 1.329.664.415.207v1.714h1.714l.871 1.743 2-.999.665 1.33.665-1.33 2 1 .664-1.329.207-.415h1.714v-1.714l.415-.207 1.328-.665-.999-1.999 1.33-.665-1.33-.665 1-2-1.744-.871V6.75h-1.714l-.207-.415-.665-1.33-1.999 1L12 4.678z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Share = (props: IconProps) => (
5
+ /**
6
+ * The Share icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Share size={20} aria-label="Share" />
14
+ * ```
15
+ */
16
+ export const Share = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M8.25 12a2.25 2.25 0 1 0-4.5 0 2.25 2.25 0 0 0 4.5 0m1.5 0a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0m10.5-6a2.25 2.25 0 1 0-4.5 0 2.25 2.25 0 0 0 4.5 0m1.5 0a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0m-1.5 12a2.25 2.25 0 1 0-4.5 0 2.25 2.25 0 0 0 4.5 0m1.5 0a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0"/><path d="m15.91 7.335-7.414 4.17-.596-1.34 7.414-4.17zm0 9.33-.596 1.34-7.414-4.17.596-1.34z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Sort = (props: IconProps) => (
5
+ /**
6
+ * The Sort icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Sort size={20} aria-label="Sort" />
14
+ * ```
15
+ */
16
+ export const Sort = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M5.25 4.25h1.5v16.5h-1.5z"/><path d="M10.06 7 9 8.06l-3-3-3 3L1.94 7 6 2.94zm7.19-3.75h1.5v16.5h-1.5z"/><path d="M22.06 17 18 21.06 13.94 17 15 15.94l3 3 3-3z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Success = (props: IconProps) => (
5
+ /**
6
+ * The Success icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Success size={20} aria-label="Success" />
14
+ * ```
15
+ */
16
+ export const Success = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M20.25 12a8.25 8.25 0 1 0-16.5 0 8.25 8.25 0 0 0 16.5 0m1.5 0c0 5.385-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12 6.615 2.25 12 2.25s9.75 4.365 9.75 9.75"/><path d="m18.058 8.919-7.016 8.183L5.939 12 7 10.94l3.957 3.957 5.962-6.955z"/>
7
19
  </IconBase>
package/src/icons/Sun.tsx CHANGED
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Sun = (props: IconProps) => (
5
+ /**
6
+ * The Sun icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Sun size={20} aria-label="Sun" />
14
+ * ```
15
+ */
16
+ export const Sun = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path fillRule="evenodd" d="M12.75 21.5h-1.5v-3h1.5zm-4.82-4.37-2.12 2.12-1.06-1.06 2.12-2.12zm11.32 1.06-1.06 1.06-2.12-2.12 1.06-1.06zM12 7.5a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6m-6.5 3.75h-3v-1.5h3zm16 0h-3v-1.5h3zM7.93 6.87 6.87 7.93 4.75 5.81l1.06-1.06zm11.32-1.06-2.12 2.12-1.06-1.06 2.12-2.12zm-6.5-.31h-1.5v-3h1.5z" clipRule="evenodd"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Upload = (props: IconProps) => (
5
+ /**
6
+ * The Upload icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Upload size={20} aria-label="Upload" />
14
+ * ```
15
+ */
16
+ export const Upload = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M12.5 17.81H11v-13h1.5z"/><path d="M4.69 10.06 11.75 3l7.06 7.06-1.06 1.061-6-6-6 6zM20.5 19v1.5H3V19z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const User = (props: IconProps) => (
5
+ /**
6
+ * The User icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <User size={20} aria-label="User" />
14
+ * ```
15
+ */
16
+ export const User = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M15.25 8a3.25 3.25 0 1 0-6.5 0 3.25 3.25 0 0 0 6.5 0m1.5 0a4.75 4.75 0 1 1-9.5 0 4.75 4.75 0 0 1 9.5 0"/><path d="M19.25 21c0-4.526-3.601-7.25-7.25-7.25S4.75 16.474 4.75 21v.75h-1.5V21c0-5.474 4.399-8.75 8.75-8.75s8.75 3.276 8.75 8.75v.75h-1.5z"/>
7
19
  </IconBase>
@@ -1,7 +1,19 @@
1
- import type { IconProps } from '../types'
2
- import { IconBase } from '../IconBase'
1
+ import type { ReactElement } from 'react'
2
+ import type { IconProps } from '../types.ts'
3
+ import { IconBase } from '../IconBase.tsx'
3
4
 
4
- export const Warning = (props: IconProps) => (
5
+ /**
6
+ * The Warning icon.
7
+ *
8
+ * A fill-based SVG that inherits `currentColor` and scales via the
9
+ * `size` prop. Accepts all native `<svg>` attributes (see {@link IconProps}).
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Warning size={20} aria-label="Warning" />
14
+ * ```
15
+ */
16
+ export const Warning = (props: IconProps): ReactElement => (
5
17
  <IconBase {...props}>
6
18
  <path d="M23.311 20.75H.688L12 1.52zm-20-1.5H20.69L12 4.479z"/><path d="M11.25 8.25h1.5v6.5h-1.5zm0 7.5h1.5v2.5h-1.5z"/>
7
19
  </IconBase>
package/src/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- export type { IconProps } from './types'
2
- export { IconBase } from './IconBase'
3
- export * from './icons/index'
1
+ export type { IconProps } from './types.ts'
2
+ export { IconBase } from './IconBase.tsx'
3
+ export * from './icons/index.ts'
package/src/types.ts CHANGED
@@ -1,5 +1,14 @@
1
1
  import type { SVGProps } from 'react'
2
2
 
3
+ /**
4
+ * Props accepted by every Primitiv icon. Extends all native `<svg>`
5
+ * attributes, so `className`, `style`, `onClick`, `aria-*`, etc. pass
6
+ * straight through to the rendered element.
7
+ */
3
8
  export interface IconProps extends SVGProps<SVGSVGElement> {
9
+ /**
10
+ * Width and height of the icon, in pixels (number) or any CSS length
11
+ * (string). Defaults to `24`.
12
+ */
4
13
  size?: number | string
5
14
  }