From 98db7328cbdf81fe5734a4bd4e3ec0a521c56bb2 Mon Sep 17 00:00:00 2001 From: P2Wdisabled Date: Fri, 15 May 2026 20:59:28 +0200 Subject: [PATCH] feat: add icon set with size variants Added icons: - Arrow2Icon - BinIcon - BurgerIcon - CalendarIcon - CheckIcon - CloseIcon - CodeIcon - CubeIcon - DownloadIcon - FilterIcon - HelpIcon - HomeIcon - LinkIcon - MinusIcon - MoreIcon - OverviewIcon - PlusIcon - ProfileIcon - SearchIcon - SettingsIcon - ShareIcon - ShieldIcon - SortIcon - StatsIcon - UploadIcon Available sizes: - 16px - 24px - 32px SortIcon variants: - default - ascend - descend Notes: - Added a dedicated icon grid preview in the design system page - Verified consistency across all supported sizes --- src/components/Icons/bin/bin.astro | 26 +++++ src/components/Icons/bin/svgs/bin-16.svg | 3 + src/components/Icons/bin/svgs/bin-24.svg | 3 + src/components/Icons/bin/svgs/bin-32.svg | 3 + src/components/Icons/burger/burger.astro | 26 +++++ .../Icons/burger/svgs/burger-16.svg | 3 + .../Icons/burger/svgs/burger-24.svg | 3 + .../Icons/burger/svgs/burger-32.svg | 3 + src/components/Icons/calendar/calendar.astro | 26 +++++ .../Icons/calendar/svgs/calendar-16.svg | 3 + .../Icons/calendar/svgs/calendar-24.svg | 3 + .../Icons/calendar/svgs/calendar-32.svg | 3 + src/components/Icons/check/check.astro | 26 +++++ src/components/Icons/check/svgs/check-16.svg | 3 + src/components/Icons/check/svgs/check-24.svg | 3 + src/components/Icons/check/svgs/check-32.svg | 3 + src/components/Icons/code/code.astro | 26 +++++ src/components/Icons/code/svgs/code-16.svg | 3 + src/components/Icons/code/svgs/code-24.svg | 3 + src/components/Icons/code/svgs/code-32.svg | 3 + src/components/Icons/cube/cube.astro | 26 +++++ src/components/Icons/cube/svgs/cube-16.svg | 3 + src/components/Icons/cube/svgs/cube-24.svg | 3 + src/components/Icons/cube/svgs/cube-32.svg | 3 + src/components/Icons/download/download.astro | 26 +++++ .../Icons/download/svgs/download-16.svg | 5 + .../Icons/download/svgs/download-24.svg | 4 + .../Icons/download/svgs/download-32.svg | 4 + src/components/Icons/filter/filter.astro | 26 +++++ .../Icons/filter/svgs/filter-16.svg | 3 + .../Icons/filter/svgs/filter-24.svg | 3 + .../Icons/filter/svgs/filter-32.svg | 3 + src/components/Icons/help/help.astro | 26 +++++ src/components/Icons/help/svgs/help-16.svg | 5 + src/components/Icons/help/svgs/help-24.svg | 5 + src/components/Icons/help/svgs/help-32.svg | 5 + src/components/Icons/home/home.astro | 26 +++++ src/components/Icons/home/svgs/home-16.svg | 3 + src/components/Icons/home/svgs/home-24.svg | 3 + src/components/Icons/home/svgs/home-32.svg | 3 + src/components/Icons/index.ts | 31 ++++- src/components/Icons/link/link.astro | 26 +++++ src/components/Icons/link/svgs/link-16.svg | 3 + src/components/Icons/link/svgs/link-24.svg | 3 + src/components/Icons/link/svgs/link-32.svg | 3 + src/components/Icons/minus/minus.astro | 26 +++++ src/components/Icons/minus/svgs/minus-16.svg | 3 + src/components/Icons/minus/svgs/minus-24.svg | 3 + src/components/Icons/minus/svgs/minus-32.svg | 3 + src/components/Icons/more/more.astro | 26 +++++ src/components/Icons/more/svgs/more-16.svg | 3 + src/components/Icons/more/svgs/more-24.svg | 3 + src/components/Icons/more/svgs/more-32.svg | 3 + src/components/Icons/overview/overview.astro | 26 +++++ .../Icons/overview/svgs/overview-16.svg | 3 + .../Icons/overview/svgs/overview-24.svg | 3 + .../Icons/overview/svgs/overview-32.svg | 3 + src/components/Icons/plus/plus.astro | 26 +++++ src/components/Icons/plus/svgs/plus-16.svg | 3 + src/components/Icons/plus/svgs/plus-24.svg | 3 + src/components/Icons/plus/svgs/plus-32.svg | 3 + src/components/Icons/settings/settings.astro | 26 +++++ .../Icons/settings/svgs/settings-16.svg | 3 + .../Icons/settings/svgs/settings-24.svg | 3 + .../Icons/settings/svgs/settings-32.svg | 3 + src/components/Icons/shield/shield.astro | 26 +++++ .../Icons/shield/svgs/shield-16.svg | 3 + .../Icons/shield/svgs/shield-24.svg | 3 + .../Icons/shield/svgs/shield-32.svg | 3 + src/components/Icons/sort/sort.astro | 39 +++++++ .../Icons/sort/svgs/sort-16-ascend.svg | 4 + .../Icons/sort/svgs/sort-16-default.svg | 3 + .../Icons/sort/svgs/sort-16-descend.svg | 4 + .../Icons/sort/svgs/sort-24-ascend.svg | 4 + .../Icons/sort/svgs/sort-24-default.svg | 3 + .../Icons/sort/svgs/sort-24-descend.svg | 4 + .../Icons/sort/svgs/sort-32-ascend.svg | 4 + .../Icons/sort/svgs/sort-32-default.svg | 3 + .../Icons/sort/svgs/sort-32-descend.svg | 4 + src/components/Icons/stats/stats.astro | 26 +++++ src/components/Icons/stats/svgs/stats-16.svg | 3 + src/components/Icons/stats/svgs/stats-24.svg | 3 + src/components/Icons/stats/svgs/stats-32.svg | 3 + src/pages/index.astro | 109 +++++++++++++++++- 84 files changed, 845 insertions(+), 7 deletions(-) create mode 100644 src/components/Icons/bin/bin.astro create mode 100644 src/components/Icons/bin/svgs/bin-16.svg create mode 100644 src/components/Icons/bin/svgs/bin-24.svg create mode 100644 src/components/Icons/bin/svgs/bin-32.svg create mode 100644 src/components/Icons/burger/burger.astro create mode 100644 src/components/Icons/burger/svgs/burger-16.svg create mode 100644 src/components/Icons/burger/svgs/burger-24.svg create mode 100644 src/components/Icons/burger/svgs/burger-32.svg create mode 100644 src/components/Icons/calendar/calendar.astro create mode 100644 src/components/Icons/calendar/svgs/calendar-16.svg create mode 100644 src/components/Icons/calendar/svgs/calendar-24.svg create mode 100644 src/components/Icons/calendar/svgs/calendar-32.svg create mode 100644 src/components/Icons/check/check.astro create mode 100644 src/components/Icons/check/svgs/check-16.svg create mode 100644 src/components/Icons/check/svgs/check-24.svg create mode 100644 src/components/Icons/check/svgs/check-32.svg create mode 100644 src/components/Icons/code/code.astro create mode 100644 src/components/Icons/code/svgs/code-16.svg create mode 100644 src/components/Icons/code/svgs/code-24.svg create mode 100644 src/components/Icons/code/svgs/code-32.svg create mode 100644 src/components/Icons/cube/cube.astro create mode 100644 src/components/Icons/cube/svgs/cube-16.svg create mode 100644 src/components/Icons/cube/svgs/cube-24.svg create mode 100644 src/components/Icons/cube/svgs/cube-32.svg create mode 100644 src/components/Icons/download/download.astro create mode 100644 src/components/Icons/download/svgs/download-16.svg create mode 100644 src/components/Icons/download/svgs/download-24.svg create mode 100644 src/components/Icons/download/svgs/download-32.svg create mode 100644 src/components/Icons/filter/filter.astro create mode 100644 src/components/Icons/filter/svgs/filter-16.svg create mode 100644 src/components/Icons/filter/svgs/filter-24.svg create mode 100644 src/components/Icons/filter/svgs/filter-32.svg create mode 100644 src/components/Icons/help/help.astro create mode 100644 src/components/Icons/help/svgs/help-16.svg create mode 100644 src/components/Icons/help/svgs/help-24.svg create mode 100644 src/components/Icons/help/svgs/help-32.svg create mode 100644 src/components/Icons/home/home.astro create mode 100644 src/components/Icons/home/svgs/home-16.svg create mode 100644 src/components/Icons/home/svgs/home-24.svg create mode 100644 src/components/Icons/home/svgs/home-32.svg create mode 100644 src/components/Icons/link/link.astro create mode 100644 src/components/Icons/link/svgs/link-16.svg create mode 100644 src/components/Icons/link/svgs/link-24.svg create mode 100644 src/components/Icons/link/svgs/link-32.svg create mode 100644 src/components/Icons/minus/minus.astro create mode 100644 src/components/Icons/minus/svgs/minus-16.svg create mode 100644 src/components/Icons/minus/svgs/minus-24.svg create mode 100644 src/components/Icons/minus/svgs/minus-32.svg create mode 100644 src/components/Icons/more/more.astro create mode 100644 src/components/Icons/more/svgs/more-16.svg create mode 100644 src/components/Icons/more/svgs/more-24.svg create mode 100644 src/components/Icons/more/svgs/more-32.svg create mode 100644 src/components/Icons/overview/overview.astro create mode 100644 src/components/Icons/overview/svgs/overview-16.svg create mode 100644 src/components/Icons/overview/svgs/overview-24.svg create mode 100644 src/components/Icons/overview/svgs/overview-32.svg create mode 100644 src/components/Icons/plus/plus.astro create mode 100644 src/components/Icons/plus/svgs/plus-16.svg create mode 100644 src/components/Icons/plus/svgs/plus-24.svg create mode 100644 src/components/Icons/plus/svgs/plus-32.svg create mode 100644 src/components/Icons/settings/settings.astro create mode 100644 src/components/Icons/settings/svgs/settings-16.svg create mode 100644 src/components/Icons/settings/svgs/settings-24.svg create mode 100644 src/components/Icons/settings/svgs/settings-32.svg create mode 100644 src/components/Icons/shield/shield.astro create mode 100644 src/components/Icons/shield/svgs/shield-16.svg create mode 100644 src/components/Icons/shield/svgs/shield-24.svg create mode 100644 src/components/Icons/shield/svgs/shield-32.svg create mode 100644 src/components/Icons/sort/sort.astro create mode 100644 src/components/Icons/sort/svgs/sort-16-ascend.svg create mode 100644 src/components/Icons/sort/svgs/sort-16-default.svg create mode 100644 src/components/Icons/sort/svgs/sort-16-descend.svg create mode 100644 src/components/Icons/sort/svgs/sort-24-ascend.svg create mode 100644 src/components/Icons/sort/svgs/sort-24-default.svg create mode 100644 src/components/Icons/sort/svgs/sort-24-descend.svg create mode 100644 src/components/Icons/sort/svgs/sort-32-ascend.svg create mode 100644 src/components/Icons/sort/svgs/sort-32-default.svg create mode 100644 src/components/Icons/sort/svgs/sort-32-descend.svg create mode 100644 src/components/Icons/stats/stats.astro create mode 100644 src/components/Icons/stats/svgs/stats-16.svg create mode 100644 src/components/Icons/stats/svgs/stats-24.svg create mode 100644 src/components/Icons/stats/svgs/stats-32.svg diff --git a/src/components/Icons/bin/bin.astro b/src/components/Icons/bin/bin.astro new file mode 100644 index 0000000..8490857 --- /dev/null +++ b/src/components/Icons/bin/bin.astro @@ -0,0 +1,26 @@ +--- +import bin16 from './svgs/bin-16.svg?raw'; +import bin24 from './svgs/bin-24.svg?raw'; +import bin32 from './svgs/bin-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = bin16; +else if (size === 24) raw = bin24; +else if (size === 32) raw = bin32; +else raw = ''; + +const classes = ['nds-icon-bin', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/bin/svgs/bin-16.svg b/src/components/Icons/bin/svgs/bin-16.svg new file mode 100644 index 0000000..9deaee9 --- /dev/null +++ b/src/components/Icons/bin/svgs/bin-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/bin/svgs/bin-24.svg b/src/components/Icons/bin/svgs/bin-24.svg new file mode 100644 index 0000000..c572eac --- /dev/null +++ b/src/components/Icons/bin/svgs/bin-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/bin/svgs/bin-32.svg b/src/components/Icons/bin/svgs/bin-32.svg new file mode 100644 index 0000000..559f28e --- /dev/null +++ b/src/components/Icons/bin/svgs/bin-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/burger/burger.astro b/src/components/Icons/burger/burger.astro new file mode 100644 index 0000000..e9a46b4 --- /dev/null +++ b/src/components/Icons/burger/burger.astro @@ -0,0 +1,26 @@ +--- +import burger16 from './svgs/burger-16.svg?raw'; +import burger24 from './svgs/burger-24.svg?raw'; +import burger32 from './svgs/burger-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = burger16; +else if (size === 24) raw = burger24; +else if (size === 32) raw = burger32; +else raw = ''; + +const classes = ['nds-icon-burger', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/burger/svgs/burger-16.svg b/src/components/Icons/burger/svgs/burger-16.svg new file mode 100644 index 0000000..da069d3 --- /dev/null +++ b/src/components/Icons/burger/svgs/burger-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/burger/svgs/burger-24.svg b/src/components/Icons/burger/svgs/burger-24.svg new file mode 100644 index 0000000..298e86d --- /dev/null +++ b/src/components/Icons/burger/svgs/burger-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/burger/svgs/burger-32.svg b/src/components/Icons/burger/svgs/burger-32.svg new file mode 100644 index 0000000..c62382d --- /dev/null +++ b/src/components/Icons/burger/svgs/burger-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/calendar/calendar.astro b/src/components/Icons/calendar/calendar.astro new file mode 100644 index 0000000..5079db2 --- /dev/null +++ b/src/components/Icons/calendar/calendar.astro @@ -0,0 +1,26 @@ +--- +import calendar16 from './svgs/calendar-16.svg?raw'; +import calendar24 from './svgs/calendar-24.svg?raw'; +import calendar32 from './svgs/calendar-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = calendar16; +else if (size === 24) raw = calendar24; +else if (size === 32) raw = calendar32; +else raw = ''; + +const classes = ['nds-icon-calendar', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/calendar/svgs/calendar-16.svg b/src/components/Icons/calendar/svgs/calendar-16.svg new file mode 100644 index 0000000..38126b1 --- /dev/null +++ b/src/components/Icons/calendar/svgs/calendar-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/calendar/svgs/calendar-24.svg b/src/components/Icons/calendar/svgs/calendar-24.svg new file mode 100644 index 0000000..37fdde6 --- /dev/null +++ b/src/components/Icons/calendar/svgs/calendar-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/calendar/svgs/calendar-32.svg b/src/components/Icons/calendar/svgs/calendar-32.svg new file mode 100644 index 0000000..5cb2ec7 --- /dev/null +++ b/src/components/Icons/calendar/svgs/calendar-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/check/check.astro b/src/components/Icons/check/check.astro new file mode 100644 index 0000000..3b3a234 --- /dev/null +++ b/src/components/Icons/check/check.astro @@ -0,0 +1,26 @@ +--- +import check16 from './svgs/check-16.svg?raw'; +import check24 from './svgs/check-24.svg?raw'; +import check32 from './svgs/check-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = check16; +else if (size === 24) raw = check24; +else if (size === 32) raw = check32; +else raw = ''; + +const classes = ['nds-icon-check', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/check/svgs/check-16.svg b/src/components/Icons/check/svgs/check-16.svg new file mode 100644 index 0000000..48c612e --- /dev/null +++ b/src/components/Icons/check/svgs/check-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/check/svgs/check-24.svg b/src/components/Icons/check/svgs/check-24.svg new file mode 100644 index 0000000..d2acd8b --- /dev/null +++ b/src/components/Icons/check/svgs/check-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/check/svgs/check-32.svg b/src/components/Icons/check/svgs/check-32.svg new file mode 100644 index 0000000..fe22306 --- /dev/null +++ b/src/components/Icons/check/svgs/check-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/code/code.astro b/src/components/Icons/code/code.astro new file mode 100644 index 0000000..0ee8b9c --- /dev/null +++ b/src/components/Icons/code/code.astro @@ -0,0 +1,26 @@ +--- +import code16 from './svgs/code-16.svg?raw'; +import code24 from './svgs/code-24.svg?raw'; +import code32 from './svgs/code-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = code16; +else if (size === 24) raw = code24; +else if (size === 32) raw = code32; +else raw = ''; + +const classes = ['nds-icon-code', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/code/svgs/code-16.svg b/src/components/Icons/code/svgs/code-16.svg new file mode 100644 index 0000000..de25b07 --- /dev/null +++ b/src/components/Icons/code/svgs/code-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/code/svgs/code-24.svg b/src/components/Icons/code/svgs/code-24.svg new file mode 100644 index 0000000..1c7aa56 --- /dev/null +++ b/src/components/Icons/code/svgs/code-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/code/svgs/code-32.svg b/src/components/Icons/code/svgs/code-32.svg new file mode 100644 index 0000000..6e7450f --- /dev/null +++ b/src/components/Icons/code/svgs/code-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/cube/cube.astro b/src/components/Icons/cube/cube.astro new file mode 100644 index 0000000..b061376 --- /dev/null +++ b/src/components/Icons/cube/cube.astro @@ -0,0 +1,26 @@ +--- +import cube16 from './svgs/cube-16.svg?raw'; +import cube24 from './svgs/cube-24.svg?raw'; +import cube32 from './svgs/cube-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = cube16; +else if (size === 24) raw = cube24; +else if (size === 32) raw = cube32; +else raw = ''; + +const classes = ['nds-icon-cube', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/cube/svgs/cube-16.svg b/src/components/Icons/cube/svgs/cube-16.svg new file mode 100644 index 0000000..a586aa3 --- /dev/null +++ b/src/components/Icons/cube/svgs/cube-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/cube/svgs/cube-24.svg b/src/components/Icons/cube/svgs/cube-24.svg new file mode 100644 index 0000000..c44a3d5 --- /dev/null +++ b/src/components/Icons/cube/svgs/cube-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/cube/svgs/cube-32.svg b/src/components/Icons/cube/svgs/cube-32.svg new file mode 100644 index 0000000..f6f50f6 --- /dev/null +++ b/src/components/Icons/cube/svgs/cube-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/download/download.astro b/src/components/Icons/download/download.astro new file mode 100644 index 0000000..7a296fc --- /dev/null +++ b/src/components/Icons/download/download.astro @@ -0,0 +1,26 @@ +--- +import download16 from './svgs/download-16.svg?raw'; +import download24 from './svgs/download-24.svg?raw'; +import download32 from './svgs/download-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = download16; +else if (size === 24) raw = download24; +else if (size === 32) raw = download32; +else raw = ''; + +const classes = ['nds-icon-download', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/download/svgs/download-16.svg b/src/components/Icons/download/svgs/download-16.svg new file mode 100644 index 0000000..45495a9 --- /dev/null +++ b/src/components/Icons/download/svgs/download-16.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/Icons/download/svgs/download-24.svg b/src/components/Icons/download/svgs/download-24.svg new file mode 100644 index 0000000..3c136d1 --- /dev/null +++ b/src/components/Icons/download/svgs/download-24.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/Icons/download/svgs/download-32.svg b/src/components/Icons/download/svgs/download-32.svg new file mode 100644 index 0000000..4529b10 --- /dev/null +++ b/src/components/Icons/download/svgs/download-32.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/Icons/filter/filter.astro b/src/components/Icons/filter/filter.astro new file mode 100644 index 0000000..1db2490 --- /dev/null +++ b/src/components/Icons/filter/filter.astro @@ -0,0 +1,26 @@ +--- +import filter16 from './svgs/filter-16.svg?raw'; +import filter24 from './svgs/filter-24.svg?raw'; +import filter32 from './svgs/filter-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = filter16; +else if (size === 24) raw = filter24; +else if (size === 32) raw = filter32; +else raw = ''; + +const classes = ['nds-icon-filter', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/filter/svgs/filter-16.svg b/src/components/Icons/filter/svgs/filter-16.svg new file mode 100644 index 0000000..82f22aa --- /dev/null +++ b/src/components/Icons/filter/svgs/filter-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/filter/svgs/filter-24.svg b/src/components/Icons/filter/svgs/filter-24.svg new file mode 100644 index 0000000..f4cf108 --- /dev/null +++ b/src/components/Icons/filter/svgs/filter-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/filter/svgs/filter-32.svg b/src/components/Icons/filter/svgs/filter-32.svg new file mode 100644 index 0000000..ff53e7e --- /dev/null +++ b/src/components/Icons/filter/svgs/filter-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/help/help.astro b/src/components/Icons/help/help.astro new file mode 100644 index 0000000..2cad781 --- /dev/null +++ b/src/components/Icons/help/help.astro @@ -0,0 +1,26 @@ +--- +import help16 from './svgs/help-16.svg?raw'; +import help24 from './svgs/help-24.svg?raw'; +import help32 from './svgs/help-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = help16; +else if (size === 24) raw = help24; +else if (size === 32) raw = help32; +else raw = ''; + +const classes = ['nds-icon-help', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/help/svgs/help-16.svg b/src/components/Icons/help/svgs/help-16.svg new file mode 100644 index 0000000..cc67d22 --- /dev/null +++ b/src/components/Icons/help/svgs/help-16.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/Icons/help/svgs/help-24.svg b/src/components/Icons/help/svgs/help-24.svg new file mode 100644 index 0000000..bf21f37 --- /dev/null +++ b/src/components/Icons/help/svgs/help-24.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/Icons/help/svgs/help-32.svg b/src/components/Icons/help/svgs/help-32.svg new file mode 100644 index 0000000..8fc9e5f --- /dev/null +++ b/src/components/Icons/help/svgs/help-32.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/Icons/home/home.astro b/src/components/Icons/home/home.astro new file mode 100644 index 0000000..e0cca17 --- /dev/null +++ b/src/components/Icons/home/home.astro @@ -0,0 +1,26 @@ +--- +import home16 from './svgs/home-16.svg?raw'; +import home24 from './svgs/home-24.svg?raw'; +import home32 from './svgs/home-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = home16; +else if (size === 24) raw = home24; +else if (size === 32) raw = home32; +else raw = ''; + +const classes = ['nds-icon-home', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/home/svgs/home-16.svg b/src/components/Icons/home/svgs/home-16.svg new file mode 100644 index 0000000..35fb4b3 --- /dev/null +++ b/src/components/Icons/home/svgs/home-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/home/svgs/home-24.svg b/src/components/Icons/home/svgs/home-24.svg new file mode 100644 index 0000000..5b20383 --- /dev/null +++ b/src/components/Icons/home/svgs/home-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/home/svgs/home-32.svg b/src/components/Icons/home/svgs/home-32.svg new file mode 100644 index 0000000..5a31466 --- /dev/null +++ b/src/components/Icons/home/svgs/home-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/index.ts b/src/components/Icons/index.ts index c4360ee..8bf50ba 100644 --- a/src/components/Icons/index.ts +++ b/src/components/Icons/index.ts @@ -1,6 +1,25 @@ -export { default as Arrow2Icon } from './Arrow2/Arrow2.astro'; -export { default as ProfileIcon } from './profile/profile.astro'; -export { default as ShareIcon } from './share/share.astro'; -export { default as SearchIcon } from './search/search.astro'; -export { default as CloseIcon } from './close/close.astro'; -export { default as UploadIcon } from './upload/upload.astro'; \ No newline at end of file +export { default as Arrow2Icon } from './Arrow2/Arrow2.astro'; +export { default as BinIcon } from './bin/bin.astro'; +export { default as BurgerIcon } from './burger/burger.astro'; +export { default as CalendarIcon } from './calendar/calendar.astro'; +export { default as CheckIcon } from './check/check.astro'; +export { default as CloseIcon } from './close/close.astro'; +export { default as CodeIcon } from './code/code.astro'; +export { default as CubeIcon } from './cube/cube.astro'; +export { default as DownloadIcon } from './download/download.astro'; +export { default as FilterIcon } from './filter/filter.astro'; +export { default as HelpIcon } from './help/help.astro'; +export { default as HomeIcon } from './home/home.astro'; +export { default as LinkIcon } from './link/link.astro'; +export { default as MinusIcon } from './minus/minus.astro'; +export { default as MoreIcon } from './more/more.astro'; +export { default as OverviewIcon } from './overview/overview.astro'; +export { default as PlusIcon } from './plus/plus.astro'; +export { default as ProfileIcon } from './profile/profile.astro'; +export { default as SearchIcon } from './search/search.astro'; +export { default as SettingsIcon } from './settings/settings.astro'; +export { default as ShareIcon } from './share/share.astro'; +export { default as ShieldIcon } from './shield/shield.astro'; +export { default as SortIcon } from './sort/sort.astro'; +export { default as StatsIcon } from './stats/stats.astro'; +export { default as UploadIcon } from './upload/upload.astro'; diff --git a/src/components/Icons/link/link.astro b/src/components/Icons/link/link.astro new file mode 100644 index 0000000..96207b9 --- /dev/null +++ b/src/components/Icons/link/link.astro @@ -0,0 +1,26 @@ +--- +import link16 from './svgs/link-16.svg?raw'; +import link24 from './svgs/link-24.svg?raw'; +import link32 from './svgs/link-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = link16; +else if (size === 24) raw = link24; +else if (size === 32) raw = link32; +else raw = ''; + +const classes = ['nds-icon-link', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/link/svgs/link-16.svg b/src/components/Icons/link/svgs/link-16.svg new file mode 100644 index 0000000..c671d47 --- /dev/null +++ b/src/components/Icons/link/svgs/link-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/link/svgs/link-24.svg b/src/components/Icons/link/svgs/link-24.svg new file mode 100644 index 0000000..638588e --- /dev/null +++ b/src/components/Icons/link/svgs/link-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/link/svgs/link-32.svg b/src/components/Icons/link/svgs/link-32.svg new file mode 100644 index 0000000..81472fe --- /dev/null +++ b/src/components/Icons/link/svgs/link-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/minus/minus.astro b/src/components/Icons/minus/minus.astro new file mode 100644 index 0000000..375c308 --- /dev/null +++ b/src/components/Icons/minus/minus.astro @@ -0,0 +1,26 @@ +--- +import minus16 from './svgs/minus-16.svg?raw'; +import minus24 from './svgs/minus-24.svg?raw'; +import minus32 from './svgs/minus-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = minus16; +else if (size === 24) raw = minus24; +else if (size === 32) raw = minus32; +else raw = ''; + +const classes = ['nds-icon-minus', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/minus/svgs/minus-16.svg b/src/components/Icons/minus/svgs/minus-16.svg new file mode 100644 index 0000000..6059b5f --- /dev/null +++ b/src/components/Icons/minus/svgs/minus-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/minus/svgs/minus-24.svg b/src/components/Icons/minus/svgs/minus-24.svg new file mode 100644 index 0000000..ea66d61 --- /dev/null +++ b/src/components/Icons/minus/svgs/minus-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/minus/svgs/minus-32.svg b/src/components/Icons/minus/svgs/minus-32.svg new file mode 100644 index 0000000..c4477d7 --- /dev/null +++ b/src/components/Icons/minus/svgs/minus-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/more/more.astro b/src/components/Icons/more/more.astro new file mode 100644 index 0000000..ff60dab --- /dev/null +++ b/src/components/Icons/more/more.astro @@ -0,0 +1,26 @@ +--- +import more16 from './svgs/more-16.svg?raw'; +import more24 from './svgs/more-24.svg?raw'; +import more32 from './svgs/more-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = more16; +else if (size === 24) raw = more24; +else if (size === 32) raw = more32; +else raw = ''; + +const classes = ['nds-icon-more', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/more/svgs/more-16.svg b/src/components/Icons/more/svgs/more-16.svg new file mode 100644 index 0000000..f96b639 --- /dev/null +++ b/src/components/Icons/more/svgs/more-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/more/svgs/more-24.svg b/src/components/Icons/more/svgs/more-24.svg new file mode 100644 index 0000000..60664c7 --- /dev/null +++ b/src/components/Icons/more/svgs/more-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/more/svgs/more-32.svg b/src/components/Icons/more/svgs/more-32.svg new file mode 100644 index 0000000..3dc82da --- /dev/null +++ b/src/components/Icons/more/svgs/more-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/overview/overview.astro b/src/components/Icons/overview/overview.astro new file mode 100644 index 0000000..c8001ae --- /dev/null +++ b/src/components/Icons/overview/overview.astro @@ -0,0 +1,26 @@ +--- +import overview16 from './svgs/overview-16.svg?raw'; +import overview24 from './svgs/overview-24.svg?raw'; +import overview32 from './svgs/overview-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = overview16; +else if (size === 24) raw = overview24; +else if (size === 32) raw = overview32; +else raw = ''; + +const classes = ['nds-icon-overview', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/overview/svgs/overview-16.svg b/src/components/Icons/overview/svgs/overview-16.svg new file mode 100644 index 0000000..7cdb428 --- /dev/null +++ b/src/components/Icons/overview/svgs/overview-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/overview/svgs/overview-24.svg b/src/components/Icons/overview/svgs/overview-24.svg new file mode 100644 index 0000000..0a4614e --- /dev/null +++ b/src/components/Icons/overview/svgs/overview-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/overview/svgs/overview-32.svg b/src/components/Icons/overview/svgs/overview-32.svg new file mode 100644 index 0000000..82e3a7a --- /dev/null +++ b/src/components/Icons/overview/svgs/overview-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/plus/plus.astro b/src/components/Icons/plus/plus.astro new file mode 100644 index 0000000..8612d8e --- /dev/null +++ b/src/components/Icons/plus/plus.astro @@ -0,0 +1,26 @@ +--- +import plus16 from './svgs/plus-16.svg?raw'; +import plus24 from './svgs/plus-24.svg?raw'; +import plus32 from './svgs/plus-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = plus16; +else if (size === 24) raw = plus24; +else if (size === 32) raw = plus32; +else raw = ''; + +const classes = ['nds-icon-plus', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/plus/svgs/plus-16.svg b/src/components/Icons/plus/svgs/plus-16.svg new file mode 100644 index 0000000..755b703 --- /dev/null +++ b/src/components/Icons/plus/svgs/plus-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/plus/svgs/plus-24.svg b/src/components/Icons/plus/svgs/plus-24.svg new file mode 100644 index 0000000..cdecb09 --- /dev/null +++ b/src/components/Icons/plus/svgs/plus-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/plus/svgs/plus-32.svg b/src/components/Icons/plus/svgs/plus-32.svg new file mode 100644 index 0000000..d16c010 --- /dev/null +++ b/src/components/Icons/plus/svgs/plus-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/settings/settings.astro b/src/components/Icons/settings/settings.astro new file mode 100644 index 0000000..4545c1e --- /dev/null +++ b/src/components/Icons/settings/settings.astro @@ -0,0 +1,26 @@ +--- +import settings16 from './svgs/settings-16.svg?raw'; +import settings24 from './svgs/settings-24.svg?raw'; +import settings32 from './svgs/settings-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = settings16; +else if (size === 24) raw = settings24; +else if (size === 32) raw = settings32; +else raw = ''; + +const classes = ['nds-icon-settings', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/settings/svgs/settings-16.svg b/src/components/Icons/settings/svgs/settings-16.svg new file mode 100644 index 0000000..5e95204 --- /dev/null +++ b/src/components/Icons/settings/svgs/settings-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/settings/svgs/settings-24.svg b/src/components/Icons/settings/svgs/settings-24.svg new file mode 100644 index 0000000..f121a19 --- /dev/null +++ b/src/components/Icons/settings/svgs/settings-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/settings/svgs/settings-32.svg b/src/components/Icons/settings/svgs/settings-32.svg new file mode 100644 index 0000000..39283cc --- /dev/null +++ b/src/components/Icons/settings/svgs/settings-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/shield/shield.astro b/src/components/Icons/shield/shield.astro new file mode 100644 index 0000000..608e46d --- /dev/null +++ b/src/components/Icons/shield/shield.astro @@ -0,0 +1,26 @@ +--- +import shield16 from './svgs/shield-16.svg?raw'; +import shield24 from './svgs/shield-24.svg?raw'; +import shield32 from './svgs/shield-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = shield16; +else if (size === 24) raw = shield24; +else if (size === 32) raw = shield32; +else raw = ''; + +const classes = ['nds-icon-shield', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/shield/svgs/shield-16.svg b/src/components/Icons/shield/svgs/shield-16.svg new file mode 100644 index 0000000..6c5b265 --- /dev/null +++ b/src/components/Icons/shield/svgs/shield-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/shield/svgs/shield-24.svg b/src/components/Icons/shield/svgs/shield-24.svg new file mode 100644 index 0000000..d43926e --- /dev/null +++ b/src/components/Icons/shield/svgs/shield-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/shield/svgs/shield-32.svg b/src/components/Icons/shield/svgs/shield-32.svg new file mode 100644 index 0000000..ec165a6 --- /dev/null +++ b/src/components/Icons/shield/svgs/shield-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/sort/sort.astro b/src/components/Icons/sort/sort.astro new file mode 100644 index 0000000..26774af --- /dev/null +++ b/src/components/Icons/sort/sort.astro @@ -0,0 +1,39 @@ +--- +import sort16ascend from './svgs/sort-16-ascend.svg?raw'; +import sort16default from './svgs/sort-16-default.svg?raw'; +import sort16descend from './svgs/sort-16-descend.svg?raw'; +import sort24ascend from './svgs/sort-24-ascend.svg?raw'; +import sort24default from './svgs/sort-24-default.svg?raw'; +import sort24descend from './svgs/sort-24-descend.svg?raw'; +import sort32ascend from './svgs/sort-32-ascend.svg?raw'; +import sort32default from './svgs/sort-32-default.svg?raw'; +import sort32descend from './svgs/sort-32-descend.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + variant: 'ascend' | 'default' | 'descend'; + label?: string; + class?: string; +} + +const { size = 24, variant = 'default', label, class: className } = Astro.props; + +let raw: string; +if (size === 16 && variant === 'ascend') raw = sort16ascend; +else if (size === 16 && variant === 'default') raw = sort16default; +else if (size === 16 && variant === 'descend') raw = sort16descend; +else if (size === 24 && variant === 'ascend') raw = sort24ascend; +else if (size === 24 && variant === 'default') raw = sort24default; +else if (size === 24 && variant === 'descend') raw = sort24descend; +else if (size === 32 && variant === 'ascend') raw = sort32ascend; +else if (size === 32 && variant === 'default') raw = sort32default; +else if (size === 32 && variant === 'descend') raw = sort32descend; +else raw = ''; + +const classes = ['nds-icon-sort', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/sort/svgs/sort-16-ascend.svg b/src/components/Icons/sort/svgs/sort-16-ascend.svg new file mode 100644 index 0000000..4ce50cb --- /dev/null +++ b/src/components/Icons/sort/svgs/sort-16-ascend.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/Icons/sort/svgs/sort-16-default.svg b/src/components/Icons/sort/svgs/sort-16-default.svg new file mode 100644 index 0000000..5c3107b --- /dev/null +++ b/src/components/Icons/sort/svgs/sort-16-default.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/sort/svgs/sort-16-descend.svg b/src/components/Icons/sort/svgs/sort-16-descend.svg new file mode 100644 index 0000000..bfd1469 --- /dev/null +++ b/src/components/Icons/sort/svgs/sort-16-descend.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/Icons/sort/svgs/sort-24-ascend.svg b/src/components/Icons/sort/svgs/sort-24-ascend.svg new file mode 100644 index 0000000..708fcfa --- /dev/null +++ b/src/components/Icons/sort/svgs/sort-24-ascend.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/Icons/sort/svgs/sort-24-default.svg b/src/components/Icons/sort/svgs/sort-24-default.svg new file mode 100644 index 0000000..f5d4cc7 --- /dev/null +++ b/src/components/Icons/sort/svgs/sort-24-default.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/sort/svgs/sort-24-descend.svg b/src/components/Icons/sort/svgs/sort-24-descend.svg new file mode 100644 index 0000000..092fe9c --- /dev/null +++ b/src/components/Icons/sort/svgs/sort-24-descend.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/Icons/sort/svgs/sort-32-ascend.svg b/src/components/Icons/sort/svgs/sort-32-ascend.svg new file mode 100644 index 0000000..5d067eb --- /dev/null +++ b/src/components/Icons/sort/svgs/sort-32-ascend.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/Icons/sort/svgs/sort-32-default.svg b/src/components/Icons/sort/svgs/sort-32-default.svg new file mode 100644 index 0000000..57e4b89 --- /dev/null +++ b/src/components/Icons/sort/svgs/sort-32-default.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/sort/svgs/sort-32-descend.svg b/src/components/Icons/sort/svgs/sort-32-descend.svg new file mode 100644 index 0000000..916fb74 --- /dev/null +++ b/src/components/Icons/sort/svgs/sort-32-descend.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/Icons/stats/stats.astro b/src/components/Icons/stats/stats.astro new file mode 100644 index 0000000..99e95e6 --- /dev/null +++ b/src/components/Icons/stats/stats.astro @@ -0,0 +1,26 @@ +--- +import stats16 from './svgs/stats-16.svg?raw'; +import stats24 from './svgs/stats-24.svg?raw'; +import stats32 from './svgs/stats-32.svg?raw'; + +export interface Props { + size: 16 | 24 | 32; + label?: string; + class?: string; +} + +const { size = 24, label, class: className } = Astro.props; + +let raw: string; +if (size === 16) raw = stats16; +else if (size === 24) raw = stats24; +else if (size === 32) raw = stats32; +else raw = ''; + +const classes = ['nds-icon-stats', className].filter(Boolean).join(' '); +const svg = raw + .replace(/fill="#[A-Fa-f0-9]{3,8}"/g, 'fill="currentColor"') + .replace(' diff --git a/src/components/Icons/stats/svgs/stats-16.svg b/src/components/Icons/stats/svgs/stats-16.svg new file mode 100644 index 0000000..f6a8e54 --- /dev/null +++ b/src/components/Icons/stats/svgs/stats-16.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/stats/svgs/stats-24.svg b/src/components/Icons/stats/svgs/stats-24.svg new file mode 100644 index 0000000..c5455ba --- /dev/null +++ b/src/components/Icons/stats/svgs/stats-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/Icons/stats/svgs/stats-32.svg b/src/components/Icons/stats/svgs/stats-32.svg new file mode 100644 index 0000000..dc0b06a --- /dev/null +++ b/src/components/Icons/stats/svgs/stats-32.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/pages/index.astro b/src/pages/index.astro index ca4c8b2..8eb774d 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,6 +1,12 @@ --- import Layout from '../layouts/Layout.astro'; -import { Arrow2Icon, ProfileIcon, ShareIcon, SearchIcon, CloseIcon, UploadIcon } from '../components/Icons/index.ts'; +import { + Arrow2Icon, BinIcon, BurgerIcon, CalendarIcon, CheckIcon, CloseIcon, + CodeIcon, CubeIcon, DownloadIcon, FilterIcon, HelpIcon, HomeIcon, + LinkIcon, MinusIcon, MoreIcon, OverviewIcon, PlusIcon, ProfileIcon, + SearchIcon, SettingsIcon, ShareIcon, ShieldIcon, SortIcon, StatsIcon, + UploadIcon, +} from '../components/Icons/index.ts'; --- @@ -52,6 +58,107 @@ import { Arrow2Icon, ProfileIcon, ShareIcon, SearchIcon, CloseIcon, UploadIcon } +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + + + + + + + +
+
+ + + +