Skip to content

Commit 9220945

Browse files
authored
fix(Select): rename from nativeselect (#2404)
Fixes #2399
1 parent f3abcda commit 9220945

File tree

18 files changed

+125
-135
lines changed

18 files changed

+125
-135
lines changed

.changeset/odd-hornets-sleep.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@digdir/designsystemet-css": patch
3+
"@digdir/designsystemet-react": patch
4+
---
5+
6+
Select: Rename from `NativeSelect`

apps/storefront/app/komponenter/component-list.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,9 @@ export const data = [
9595
url: 'https://storybook.designsystemet.no/?path=/docs/komponenter-modal--docs',
9696
},
9797
{
98-
title: 'Native Select',
98+
title: 'Select',
9999
image: 'Select.svg',
100-
url: 'https://storybook.designsystemet.no/?path=/docs/komponenter-nativeselect--docs',
100+
url: 'https://storybook.designsystemet.no/?path=/docs/komponenter-select--docs',
101101
},
102102
{
103103
title: 'Pagination',

apps/theme/components/Previews/Components/Components.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ import {
1111
Heading,
1212
HelpText,
1313
Link,
14-
NativeSelect,
1514
Pagination,
1615
Paragraph,
1716
Radio,
1817
Search,
18+
Select,
1919
Skeleton,
2020
Spinner,
2121
Switch,
@@ -86,12 +86,12 @@ export const Components = () => {
8686
</Heading>
8787
<div className={classes.tableHeader}>
8888
<div className={classes.tableAction}>
89-
<NativeSelect label='Velg handling' size='sm' hideLabel>
89+
<Select label='Velg handling' size='sm' hideLabel>
9090
<option value='blank'>Velg handling</option>
9191
<option value='everest'>Dupliser</option>
9292
<option value='aconcagua'>Slett</option>
9393
<option value='denali'>Oppdater</option>
94-
</NativeSelect>
94+
</Select>
9595
<Button className={classes.tableBtn} size='sm'>
9696
Utfør
9797
</Button>

apps/theme/components/ThemeToolbar/ThemeToolbar.tsx

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { CssColor } from '@adobe/leonardo-contrast-colors';
2-
import { Button, NativeSelect, Tooltip } from '@digdir/designsystemet-react';
2+
import { Button, Select, Tooltip } from '@digdir/designsystemet-react';
33
import type {
44
ColorError,
55
ContrastMode,
@@ -107,7 +107,7 @@ export const ThemeToolbar = ({
107107
/>
108108

109109
<div className={classes.dropdown}>
110-
<NativeSelect
110+
<Select
111111
label='Kontrastnivå'
112112
size='md'
113113
className={classes.contrastSelect}
@@ -118,10 +118,10 @@ export const ThemeToolbar = ({
118118
>
119119
<option value='aa'>AA</option>
120120
<option value='aaa'>AAA (WIP)</option>
121-
</NativeSelect>
121+
</Select>
122122
</div>
123123
<div className={classes.borderRadii}>
124-
<NativeSelect
124+
<Select
125125
label='Border radius'
126126
size='md'
127127
className={classes.borderRadiiSelect}
@@ -142,7 +142,7 @@ export const ThemeToolbar = ({
142142
{key}
143143
</option>
144144
))}
145-
</NativeSelect>
145+
</Select>
146146
</div>
147147
<Tooltip content={toolTipText} portal={false}>
148148
<Button

packages/css/index.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
@import url('./checkbox.css') layer(ds.components);
1919
@import url('./radio.css') layer(ds.components);
2020
@import url('./search.css') layer(ds.components);
21-
@import url('./native-select.css') layer(ds.components);
21+
@import url('./select.css') layer(ds.components);
2222
@import url('./textfield.css') layer(ds.components);
2323
@import url('./textarea.css') layer(ds.components);
2424
@import url('./helptext.css') layer(ds.components);
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
1-
.ds-native-select__wrapper {
1+
.ds-select__wrapper {
22
position: relative;
33
display: grid;
44
flex: 0 1 auto;
5-
}
65

7-
/* chevron for native select */
8-
.ds-native-select__wrapper::after {
9-
content: '';
10-
position: absolute;
11-
background-color: var(--ds-color-neutral-text-default);
12-
pointer-events: none;
13-
top: 50%;
14-
right: var(--ds-spacing-2);
15-
transform: translateY(-50%);
16-
width: 1.5em;
17-
height: 1.5em;
18-
mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMWVtJyBoZWlnaHQ9JzFlbScgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZvY3VzYWJsZT0nZmFsc2UnIHJvbGU9J2ltZyc+PHBhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J001Ljk3IDkuNDdhLjc1Ljc1IDAgMCAxIDEuMDYgMEwxMiAxNC40NGw0Ljk3LTQuOTdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNS41IDUuNWEuNzUuNzUgMCAwIDEtMS4wNiAwbC01LjUtNS41YS43NS43NSAwIDAgMSAwLTEuMDZaJyBmaWxsPSdjdXJyZW50Q29sb3InPjwvcGF0aD48L3N2Zz4=');
19-
mask-size: contain;
6+
/* chevron for native select */
7+
&::after {
8+
content: '';
9+
position: absolute;
10+
background-color: var(--ds-color-neutral-text-default);
11+
pointer-events: none;
12+
top: 50%;
13+
right: var(--ds-spacing-2);
14+
transform: translateY(-50%);
15+
width: 1.5em;
16+
height: 1.5em;
17+
mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMWVtJyBoZWlnaHQ9JzFlbScgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZvY3VzYWJsZT0nZmFsc2UnIHJvbGU9J2ltZyc+PHBhdGggZmlsbC1ydWxlPSdldmVub2RkJyBjbGlwLXJ1bGU9J2V2ZW5vZGQnIGQ9J001Ljk3IDkuNDdhLjc1Ljc1IDAgMCAxIDEuMDYgMEwxMiAxNC40NGw0Ljk3LTQuOTdhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtNS41IDUuNWEuNzUuNzUgMCAwIDEtMS4wNiAwbC01LjUtNS41YS43NS43NSAwIDAgMSAwLTEuMDZaJyBmaWxsPSdjdXJyZW50Q29sb3InPjwvcGF0aD48L3N2Zz4=');
18+
mask-size: contain;
19+
}
2020
}
2121

22-
.ds-native-select {
22+
.ds-select {
2323
position: relative;
2424
font-family: inherit;
2525
box-sizing: border-box;
@@ -32,75 +32,75 @@
3232
}
3333

3434
@media (hover: hover) and (pointer: fine) {
35-
.ds-native-select:not(:focus-visible, :disabled, [aria-disabled]):hover {
35+
.ds-select:not(:focus-visible, :disabled, [aria-disabled]):hover {
3636
border-color: var(--ds-color-accent-border-strong);
3737
box-shadow: inset 0 0 0 1px var(--ds-color-accent-border-strong);
3838
}
3939
}
4040

41-
.ds-native-select.ds-native-select--multiple {
41+
.ds-select.ds-select--multiple {
4242
background-image: none;
4343
}
4444

45-
.ds-native-select--sm {
45+
.ds-select--sm {
4646
padding: 0 var(--ds-spacing-2);
4747
padding-right: var(--ds-spacing-8);
4848
height: var(--ds-sizing-10);
4949
}
5050

51-
.ds-native-select--md {
51+
.ds-select--md {
5252
padding: 0 var(--ds-spacing-3);
5353
padding-right: var(--ds-spacing-10);
5454
height: var(--ds-sizing-12);
5555
}
5656

57-
.ds-native-select--lg {
57+
.ds-select--lg {
5858
padding: 0 var(--ds-spacing-4);
5959
padding-right: var(--ds-spacing-12);
6060
height: var(--ds-sizing-14);
6161
}
6262

63-
.ds-native-select--container {
63+
.ds-select--container {
6464
display: grid;
6565
gap: var(--ds-spacing-2);
6666
}
6767

68-
.ds-native-select--container:has(.ds-native-select:disabled) {
68+
.ds-select--container:has(.ds-select:disabled) {
6969
opacity: var(--ds-disabled-opacity);
7070
}
7171

72-
.ds-native-select:disabled {
72+
.ds-select:disabled {
7373
cursor: not-allowed;
7474
}
7575

76-
.ds-native-select--readonly .ds-native-select {
76+
.ds-select--readonly .ds-select {
7777
background: var(--ds-color-neutral-background-subtle);
7878
border-color: var(--ds-color-neutral-border-strong);
7979
}
8080

81-
.ds-native-select--error > .ds-native-select:not(:focus-visible) {
81+
.ds-select--error > .ds-select:not(:focus-visible) {
8282
border-color: var(--ds-color-danger-border-default);
8383
box-shadow: inset 0 0 0 1px var(--ds-color-danger-border-default);
8484
}
8585

86-
.ds-native-select__readonly__icon {
86+
.ds-select__readonly__icon {
8787
height: 1.2em;
8888
width: 1.2em;
8989
}
9090

91-
.ds-native-select__error-message:empty {
91+
.ds-select__error-message:empty {
9292
display: none;
9393
}
9494

95-
.ds-native-select__label {
95+
.ds-select__label {
9696
min-width: min-content;
9797
display: inline-flex;
9898
flex-direction: row;
9999
gap: var(--ds-spacing-1);
100100
align-items: center;
101101
}
102102

103-
.ds-native-select__description {
103+
.ds-select__description {
104104
color: var(--ds-color-neutral-text-subtle);
105105
margin-top: calc(var(--ds-spacing-2) * -1);
106106
}

packages/react/src/components/Card/Card.stories.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { Button } from '../Button';
1111
import { Divider } from '../Divider';
1212
import { Link } from '../Link';
1313
import { Heading, Paragraph } from '../Typography';
14-
import { NativeSelect } from '../form/NativeSelect';
14+
import { Select } from '../form/Select';
1515
import { Textfield } from '../form/Textfield';
1616

1717
import { Card } from '.';
@@ -287,13 +287,13 @@ export const Composed: Story = () => (
287287
</Card.Header>
288288
<Divider color='subtle' />
289289
<Card.Content>
290-
<NativeSelect label='Velg rolle'>
290+
<Select label='Velg rolle'>
291291
{options.map(({ value, label }, index) => (
292292
<option key={index} value={value}>
293293
{label}
294294
</option>
295295
))}
296-
</NativeSelect>
296+
</Select>
297297
<Textfield label='Fødsels- eller d-nummer' />
298298
<Textfield label='Etternavn' />
299299
</Card.Content>

packages/react/src/components/form/Checkbox/Checkbox.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ Unngå deaktiverte tilstander om du kan. De har lav fargekontrast som er problem
8383

8484
## Retningslinjer for checkbox
8585

86-
Hvis det er flere enn 7 svaralternativer, bruk [`NativeSelect`](/docs/komponenter-nativeselect--docs) eller [`Combobox`](/docs/komponenter-combobox--docs) istedenfor.
86+
Hvis det er flere enn 7 svaralternativer, bruk [`Select`](/docs/komponenter-select--docs) eller [`Combobox`](/docs/komponenter-combobox--docs) istedenfor.
8787

8888
### Sortering
8989

packages/react/src/components/form/NativeSelect/index.ts

-2
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Meta, Canvas, Controls, Primary } from '@storybook/blocks';
22

3-
import * as NativeSelectStories from './NativeSelect.stories';
3+
import * as SelectStories from './Select.stories';
44

5-
<Meta of={NativeSelectStories} />
5+
<Meta of={SelectStories} />
66

7-
# NativeSelect
7+
# Select
88

9-
`NativeSelect` er en enkel nedtrekksliste som lar brukeren velge ett eller flere alternativer fra et statisk utvalg.
9+
`Select` er en enkel nedtrekksliste som lar brukeren velge ett eller flere alternativer fra et statisk utvalg.
1010
Komponenten er bygget på HTML-elementet `select`, som benytter seg av operativsystemets standarder (derav "native").
1111
Dette sikrer forutsigbarhet og tilgjengelighet, men det setter noen begrensninger på hvordan komponenten kan tilpasses.
1212
For eksempel er det ikke mulig å overstyre formateringen av alternativene.
@@ -19,25 +19,25 @@ For eksempel er det ikke mulig å overstyre formateringen av alternativene.
1919
## Bruk
2020

2121
```tsx
22-
import { NativeSelect } from '@digdir/designsystemet-react';
22+
import { Select } from '@digdir/designsystemet-react';
2323

24-
<NativeSelect label='Ta et valg'>
24+
<Select label='Ta et valg'>
2525
<option value='1'>Alternativ 1</option>
2626
<option value='2'>Alternativ 2</option>
2727
<option value='3'>Alternativ 3</option>
28-
</NativeSelect>;
28+
</Select>;
2929
```
3030

3131
## Eksempler
3232

3333
### Deaktivert
3434

35-
<Canvas of={NativeSelectStories.Disabled} />
35+
<Canvas of={SelectStories.Disabled} />
3636

3737
### Med feil
3838

39-
<Canvas of={NativeSelectStories.WithError} />
39+
<Canvas of={SelectStories.WithError} />
4040

4141
### Flervalg
4242

43-
<Canvas of={NativeSelectStories.Multiple} />
43+
<Canvas of={SelectStories.Multiple} />

0 commit comments

Comments
 (0)