Skip to content

Commit 29df8eb

Browse files
authored
feat: component flags (#5761)
1 parent 440d5bb commit 29df8eb

25 files changed

+414
-0
lines changed

.changeset/sharp-books-sing.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@ultraviolet/icons": minor
3+
---
4+
5+
New component `Flags`

packages/icons/package.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,18 @@
9090
"require": "./dist/components/Logo/__generated__/*.cjs",
9191
"import": "./dist/components/Logo/__generated__/*.js",
9292
"default": "./dist/components/Logo/__generated__/*.js"
93+
},
94+
"./flags": {
95+
"types": "./dist/components/Flags/index.d.ts",
96+
"require": "./dist/components/Flags/index.cjs",
97+
"import": "./dist/components/Flags/index.js",
98+
"default": "./dist/components/Flags/index.js"
99+
},
100+
"./flags/*": {
101+
"types": "./dist/components/Flags/__generated__/*.d.ts",
102+
"require": "./dist/components/Flags/__generated__/*.cjs",
103+
"import": "./dist/components/Flags/__generated__/*.js",
104+
"default": "./dist/components/Flags/__generated__/*.js"
93105
}
94106
},
95107
"size-limit": [
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
'use client'
2+
3+
import type { ReactNode } from 'react'
4+
import type { SIZES } from './constant'
5+
import { flag } from './style.css'
6+
7+
export type IconProps = {
8+
size?: keyof typeof SIZES
9+
className?: string
10+
children: ReactNode
11+
}
12+
13+
/**
14+
* Logo component is used to render a set of flags. Their style cannot be changed
15+
*/
16+
export const Icon = ({ size = 'medium', className, children }: IconProps) => (
17+
<svg
18+
className={`${className ? `${className} ` : ''}${flag[size]}`}
19+
viewBox="0 0 24 24"
20+
>
21+
{children}
22+
</svg>
23+
)

packages/icons/src/components/Flags/__generated__/FranceFlag.tsx

Lines changed: 34 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/icons/src/components/Flags/__generated__/ItalyFlag.tsx

Lines changed: 34 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/icons/src/components/Flags/__generated__/NetherlandsFlag.tsx

Lines changed: 34 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/icons/src/components/Flags/__generated__/PolandFlag.tsx

Lines changed: 30 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/icons/src/components/Flags/__generated__/SwedenFlag.tsx

Lines changed: 34 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/icons/src/components/Flags/__generated__/index.ts

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
The Flags component is a collection of flags designed for use within Ultraviolet's components in particular cases, such region selectors in `SelectInput`.
2+
3+
## + How to add a new one?
4+
5+
1. Add the `.svg` file into `packages/icons/src/components/Flags/assets`
6+
2. Then run the following command:
7+
`pnpm run icons:update` at root of the project. The icons component will be generated automatically using this command.
8+
<br />
9+
<br />
10+
**IMPORTANT:** Make sure that the icon name is unique, otherwise it will override the existing one.
11+
The name of the svg should be snake-case.

0 commit comments

Comments
 (0)