@navikt/ds-react 6.5.0 → 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +2 -4
  2. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  3. package/cjs/form/combobox/Input/Input.js +6 -1
  4. package/cjs/form/combobox/Input/Input.js.map +1 -1
  5. package/cjs/form/form-summary/FormSummary.d.ts +82 -0
  6. package/cjs/form/form-summary/FormSummary.js +81 -0
  7. package/cjs/form/form-summary/FormSummary.js.map +1 -0
  8. package/cjs/form/form-summary/FormSummaryAnswer.d.ts +11 -0
  9. package/cjs/form/form-summary/FormSummaryAnswer.js +25 -0
  10. package/cjs/form/form-summary/FormSummaryAnswer.js.map +1 -0
  11. package/cjs/form/form-summary/FormSummaryAnswers.d.ts +9 -0
  12. package/cjs/form/form-summary/FormSummaryAnswers.js +48 -0
  13. package/cjs/form/form-summary/FormSummaryAnswers.js.map +1 -0
  14. package/cjs/form/form-summary/FormSummaryEditLink.d.ts +17 -0
  15. package/cjs/form/form-summary/FormSummaryEditLink.js +49 -0
  16. package/cjs/form/form-summary/FormSummaryEditLink.js.map +1 -0
  17. package/cjs/form/form-summary/FormSummaryHeader.d.ts +9 -0
  18. package/cjs/form/form-summary/FormSummaryHeader.js +48 -0
  19. package/cjs/form/form-summary/FormSummaryHeader.js.map +1 -0
  20. package/cjs/form/form-summary/FormSummaryHeading.d.ts +14 -0
  21. package/cjs/form/form-summary/FormSummaryHeading.js +31 -0
  22. package/cjs/form/form-summary/FormSummaryHeading.js.map +1 -0
  23. package/cjs/form/form-summary/FormSummaryLabel.d.ts +6 -0
  24. package/cjs/form/form-summary/FormSummaryLabel.js +45 -0
  25. package/cjs/form/form-summary/FormSummaryLabel.js.map +1 -0
  26. package/cjs/form/form-summary/FormSummaryValue.d.ts +6 -0
  27. package/cjs/form/form-summary/FormSummaryValue.js +49 -0
  28. package/cjs/form/form-summary/FormSummaryValue.js.map +1 -0
  29. package/cjs/form/form-summary/index.d.ts +8 -0
  30. package/cjs/form/form-summary/index.js +24 -0
  31. package/cjs/form/form-summary/index.js.map +1 -0
  32. package/cjs/index.d.ts +3 -2
  33. package/cjs/index.js +5 -3
  34. package/cjs/index.js.map +1 -1
  35. package/cjs/util/hooks/descendants/descendant.js +10 -1
  36. package/cjs/util/hooks/descendants/descendant.js.map +1 -1
  37. package/cjs/util/hooks/descendants/useDescendant.js +0 -5
  38. package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
  39. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +2 -4
  40. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  41. package/esm/form/combobox/Input/Input.js +6 -1
  42. package/esm/form/combobox/Input/Input.js.map +1 -1
  43. package/esm/form/form-summary/FormSummary.d.ts +82 -0
  44. package/esm/form/form-summary/FormSummary.js +52 -0
  45. package/esm/form/form-summary/FormSummary.js.map +1 -0
  46. package/esm/form/form-summary/FormSummaryAnswer.d.ts +11 -0
  47. package/esm/form/form-summary/FormSummaryAnswer.js +19 -0
  48. package/esm/form/form-summary/FormSummaryAnswer.js.map +1 -0
  49. package/esm/form/form-summary/FormSummaryAnswers.d.ts +9 -0
  50. package/esm/form/form-summary/FormSummaryAnswers.js +19 -0
  51. package/esm/form/form-summary/FormSummaryAnswers.js.map +1 -0
  52. package/esm/form/form-summary/FormSummaryEditLink.d.ts +17 -0
  53. package/esm/form/form-summary/FormSummaryEditLink.js +20 -0
  54. package/esm/form/form-summary/FormSummaryEditLink.js.map +1 -0
  55. package/esm/form/form-summary/FormSummaryHeader.d.ts +9 -0
  56. package/esm/form/form-summary/FormSummaryHeader.js +19 -0
  57. package/esm/form/form-summary/FormSummaryHeader.js.map +1 -0
  58. package/esm/form/form-summary/FormSummaryHeading.d.ts +14 -0
  59. package/esm/form/form-summary/FormSummaryHeading.js +5 -0
  60. package/esm/form/form-summary/FormSummaryHeading.js.map +1 -0
  61. package/esm/form/form-summary/FormSummaryLabel.d.ts +6 -0
  62. package/esm/form/form-summary/FormSummaryLabel.js +19 -0
  63. package/esm/form/form-summary/FormSummaryLabel.js.map +1 -0
  64. package/esm/form/form-summary/FormSummaryValue.d.ts +6 -0
  65. package/esm/form/form-summary/FormSummaryValue.js +20 -0
  66. package/esm/form/form-summary/FormSummaryValue.js.map +1 -0
  67. package/esm/form/form-summary/index.d.ts +8 -0
  68. package/esm/form/form-summary/index.js +10 -0
  69. package/esm/form/form-summary/index.js.map +1 -0
  70. package/esm/index.d.ts +3 -2
  71. package/esm/index.js +2 -1
  72. package/esm/index.js.map +1 -1
  73. package/esm/util/hooks/descendants/descendant.js +10 -1
  74. package/esm/util/hooks/descendants/descendant.js.map +1 -1
  75. package/esm/util/hooks/descendants/useDescendant.js +0 -5
  76. package/esm/util/hooks/descendants/useDescendant.js.map +1 -1
  77. package/package.json +15 -4
  78. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +9 -1
  79. package/src/form/combobox/Input/Input.tsx +5 -0
  80. package/src/form/form-summary/FormSummary.tsx +106 -0
  81. package/src/form/form-summary/FormSummaryAnswer.tsx +27 -0
  82. package/src/form/form-summary/FormSummaryAnswers.tsx +25 -0
  83. package/src/form/form-summary/FormSummaryEditLink.tsx +35 -0
  84. package/src/form/form-summary/FormSummaryHeader.tsx +25 -0
  85. package/src/form/form-summary/FormSummaryHeading.tsx +23 -0
  86. package/src/form/form-summary/FormSummaryLabel.tsx +17 -0
  87. package/src/form/form-summary/FormSummaryValue.tsx +24 -0
  88. package/src/form/form-summary/index.ts +30 -0
  89. package/src/index.ts +16 -15
  90. package/src/util/hooks/descendants/descendant.ts +15 -1
  91. package/src/util/hooks/descendants/useDescendant.tsx +0 -5
  92. package/src/accordion/accordion.stories.tsx +0 -286
  93. package/src/alert/alert.stories.tsx +0 -306
  94. package/src/button/button.stories.tsx +0 -185
  95. package/src/chat/chat.stories.tsx +0 -341
  96. package/src/chips/chips.stories.tsx +0 -260
  97. package/src/copybutton/copy-button.stories.tsx +0 -261
  98. package/src/date/datepicker/datepicker.stories.tsx +0 -614
  99. package/src/date/monthpicker/monthpicker.stories.tsx +0 -221
  100. package/src/dropdown/dropdown.stories.tsx +0 -124
  101. package/src/expansion-card/expansion-card.stories.tsx +0 -282
  102. package/src/form/checkbox/checkbox.stories.tsx +0 -281
  103. package/src/form/combobox/combobox.stories.tsx +0 -626
  104. package/src/form/confirmation-panel/confirmation-panel.stories.tsx +0 -128
  105. package/src/form/error-summary/error-summary.stories.tsx +0 -81
  106. package/src/form/fieldset/fieldset.stories.tsx +0 -157
  107. package/src/form/file-upload/file-upload-dropzone.stories.tsx +0 -123
  108. package/src/form/file-upload/file-upload-item.stories.tsx +0 -148
  109. package/src/form/file-upload/file-upload.stories.tsx +0 -248
  110. package/src/form/radio/radio.stories.tsx +0 -230
  111. package/src/form/search/search.stories.tsx +0 -238
  112. package/src/form/select/select.stories.tsx +0 -172
  113. package/src/form/switch/switch.stories.tsx +0 -171
  114. package/src/form/textarea/textarea.stories.tsx +0 -254
  115. package/src/form/textfield/text-field.stories.tsx +0 -143
  116. package/src/guide-panel/guidepanel.stories.tsx +0 -90
  117. package/src/help-text/help-text.stories.tsx +0 -91
  118. package/src/internal-header/header.stories.tsx +0 -229
  119. package/src/layout/bleed/Bleed.stories.tsx +0 -395
  120. package/src/layout/box/Box.stories.tsx +0 -380
  121. package/src/layout/grid/h-grid.stories.tsx +0 -122
  122. package/src/layout/page/Page.stories.tsx +0 -271
  123. package/src/layout/responsive/hide.stories.tsx +0 -80
  124. package/src/layout/responsive/show.stories.tsx +0 -80
  125. package/src/layout/sidemal-test/navno-sidemal.stories.tsx +0 -69
  126. package/src/layout/stack/stack.stories.tsx +0 -183
  127. package/src/link/stories/link.stories.tsx +0 -304
  128. package/src/link-panel/link-panel.stories.tsx +0 -59
  129. package/src/list/list.stories.tsx +0 -280
  130. package/src/loader/loader.stories.tsx +0 -82
  131. package/src/modal/modal.stories.tsx +0 -391
  132. package/src/pagination/pagination.stories.tsx +0 -110
  133. package/src/popover/popover.stories.tsx +0 -113
  134. package/src/portal/Portal.stories.tsx +0 -102
  135. package/src/read-more/readmore.stories.tsx +0 -91
  136. package/src/skeleton/skeleton.stories.tsx +0 -130
  137. package/src/stepper/stepper.stories.tsx +0 -200
  138. package/src/table/stories/table-1.stories.tsx +0 -292
  139. package/src/table/stories/table-2-expandable.stories.tsx +0 -298
  140. package/src/table/stories/table-3-async.stories.tsx +0 -179
  141. package/src/table/stories/tests/table.stories.tsx +0 -102
  142. package/src/tabs/Tabs.stories.tsx +0 -311
  143. package/src/tag/tag.stories.tsx +0 -126
  144. package/src/timeline/timeline.stories.tsx +0 -445
  145. package/src/toggle-group/ToggleGroup.stories.tsx +0 -198
  146. package/src/tooltip/tooltip.stories.tsx +0 -101
  147. package/src/typography/stories/bodylong.stories.tsx +0 -209
  148. package/src/typography/stories/bodyshort.stories.tsx +0 -208
  149. package/src/typography/stories/detail.stories.tsx +0 -115
  150. package/src/typography/stories/error-message.stories.tsx +0 -122
  151. package/src/typography/stories/heading.stories.tsx +0 -169
  152. package/src/typography/stories/label.stories.tsx +0 -131
  153. package/src/util/hooks/descendants/descendant.stories.tsx +0 -147
@@ -1,341 +0,0 @@
1
- import { Meta, StoryObj } from "@storybook/react";
2
- import React from "react";
3
- import { VStack } from "../layout/stack";
4
- import Chat, { POSITIONS, SIZES } from "./Chat";
5
-
6
- export default {
7
- title: "ds-react/Chat",
8
- component: Chat,
9
- argTypes: {
10
- position: {
11
- control: { type: "radio" },
12
- options: POSITIONS,
13
- },
14
- toptextPosition: {
15
- control: { type: "radio" },
16
- options: POSITIONS,
17
- },
18
- size: {
19
- control: { type: "radio" },
20
- options: SIZES,
21
- },
22
- },
23
- parameters: {
24
- chromatic: { disable: true },
25
- },
26
- } satisfies Meta<typeof Chat>;
27
-
28
- type Story = StoryObj<typeof Chat>;
29
-
30
- export const Controls: Story = {
31
- render: (props) => {
32
- return (
33
- <Chat {...props}>
34
- <Chat.Bubble>
35
- Aute minim nisi sunt mollit duis sunt nulla minim non proident.
36
- </Chat.Bubble>
37
- <Chat.Bubble>Tempor fugiat amet eu sint in in ullamco.</Chat.Bubble>
38
- <Chat.Bubble>
39
- Adipisicing laborum est eu laborum est sit in commodo enim sint
40
- laboris labore nisi ut.
41
- </Chat.Bubble>
42
- </Chat>
43
- );
44
- },
45
-
46
- args: {
47
- name: "Ola Normann",
48
- timestamp: "01.01.21 14:00",
49
- avatar: "ON",
50
- },
51
- };
52
-
53
- export const Size: Story = {
54
- render: () => (
55
- <VStack gap="4">
56
- <h3>Medium</h3>
57
- <Chat
58
- avatar="ON"
59
- name="Ola Normann"
60
- timestamp="01.01.21 14:00"
61
- size="medium"
62
- >
63
- <Chat.Bubble>
64
- Aute minim nisi sunt mollit duis sunt nulla minim non proident.
65
- </Chat.Bubble>
66
- <Chat.Bubble>Tempor fugiat amet eu sint in in ullamco.</Chat.Bubble>
67
- <Chat.Bubble>
68
- Adipisicing laborum est eu laborum est sit in commodo enim sint
69
- laboris labore nisi ut.
70
- </Chat.Bubble>
71
- </Chat>
72
- <h3>Small</h3>
73
- <Chat
74
- avatar="ON"
75
- name="Ola Normann"
76
- timestamp="01.01.21 14:00"
77
- size="small"
78
- >
79
- <Chat.Bubble>
80
- Aute minim nisi sunt mollit duis sunt nulla minim non proident.
81
- </Chat.Bubble>
82
- <Chat.Bubble>Tempor fugiat amet eu sint in in ullamco.</Chat.Bubble>
83
- <Chat.Bubble>
84
- Adipisicing laborum est eu laborum est sit in commodo enim sint
85
- laboris labore nisi ut.
86
- </Chat.Bubble>
87
- </Chat>
88
- </VStack>
89
- ),
90
- };
91
-
92
- export const Variants: Story = {
93
- render: () => (
94
- <VStack gap="4">
95
- <h3>Info</h3>
96
- <Chat avatar="NAV" name="NAV" timestamp="01.01.21 14:00" variant="info">
97
- <Chat.Bubble>
98
- Aute minim nisi sunt mollit duis sunt nulla minim non proident.
99
- </Chat.Bubble>
100
- </Chat>
101
- <h3>Neutral</h3>
102
- <Chat
103
- avatar="KN"
104
- name="Kari Nordmann"
105
- timestamp="01.01.21 14:03"
106
- variant="neutral"
107
- position="right"
108
- >
109
- <Chat.Bubble>Tempor fugiat amet eu sint in in ullamco.</Chat.Bubble>
110
- </Chat>
111
- <h3>Subtle</h3>
112
- <Chat
113
- avatar="ON"
114
- name="Ola Nordmann"
115
- timestamp="01.01.21 14:07"
116
- variant="subtle"
117
- position="right"
118
- >
119
- <Chat.Bubble>
120
- Adipisicing laborum est eu laborum est sit in commodo enim sint
121
- laboris labore nisi ut.
122
- </Chat.Bubble>
123
- </Chat>
124
- </VStack>
125
- ),
126
- };
127
-
128
- export const Position: Story = {
129
- render: () => (
130
- <VStack gap="4">
131
- <h3>Default</h3>
132
- <Chat avatar="ON" name="Ola Normann" timestamp="01.01.21 14:00">
133
- <Chat.Bubble>
134
- Adipisicing laborum est eu laborum est sit in commodo enim sint
135
- laboris labore nisi ut.
136
- </Chat.Bubble>
137
- </Chat>
138
- <h3>Right</h3>
139
- <Chat
140
- avatar="KH"
141
- name="Kari Høyli"
142
- timestamp="01.01.21 14:32"
143
- position="right"
144
- variant="info"
145
- >
146
- <Chat.Bubble>
147
- Reprehenderit pariatur officia exercitation laboris.
148
- </Chat.Bubble>
149
- <Chat.Bubble>
150
- Enim velit deserunt do quis. Eu fugiat magna esse dolore ad sunt sit
151
- est dolore incididunt. Occaecat cupidatat magna.
152
- </Chat.Bubble>
153
- </Chat>
154
- <h3>Left</h3>
155
- <Chat
156
- position="left"
157
- avatar="ON"
158
- name="Ola Normann"
159
- timestamp="01.01.21 15:00"
160
- >
161
- <Chat.Bubble>
162
- Exercitation irure Lorem cupidatat culpa anim cillum esse ullamco qui
163
- dolore laborum et Lorem. Labore sunt duis id Lorem voluptate commodo
164
- ea esse. Dolore esse aliqua proident ea ad commodo ut dolore voluptate
165
- labore sunt aute.
166
- </Chat.Bubble>
167
- </Chat>
168
- </VStack>
169
- ),
170
- };
171
-
172
- export const ToptextPosition: Story = {
173
- render: () => (
174
- <VStack gap="4">
175
- <h3>Right</h3>
176
- <Chat
177
- avatar="ON"
178
- name="Ola Normann"
179
- timestamp="01.01.21 14:00"
180
- toptextPosition="right"
181
- >
182
- <Chat.Bubble>
183
- Adipisicing laborum est eu laborum est sit in commodo enim sint
184
- laboris labore nisi ut.
185
- </Chat.Bubble>
186
- </Chat>
187
- <h3>Left</h3>
188
- <Chat avatar="ON" name="Ola Normann" timestamp="01.01.21 15:00">
189
- <Chat.Bubble toptextPosition="left">
190
- Exercitation irure Lorem cupidatat culpa anim cillum esse ullamco qui
191
- dolore laborum et Lorem. Labore sunt duis id Lorem voluptate commodo
192
- ea esse. Dolore esse aliqua proident ea ad commodo ut dolore voluptate
193
- labore sunt aute.
194
- </Chat.Bubble>
195
- </Chat>
196
- <h3>Left</h3>
197
- <Chat
198
- name="Kari Høyli"
199
- timestamp="01.01.21 14:32"
200
- position="right"
201
- toptextPosition="left"
202
- >
203
- <Chat.Bubble>
204
- Reprehenderit pariatur officia exercitation laboris.
205
- </Chat.Bubble>
206
- <Chat.Bubble>
207
- Enim velit deserunt do quis. Eu fugiat magna esse dolore ad sunt sit
208
- est dolore incididunt. Occaecat cupidatat magna.
209
- </Chat.Bubble>
210
- </Chat>
211
- <h3>Right</h3>
212
- <Chat
213
- name="Kari Høyli"
214
- timestamp="01.01.21 14:32"
215
- position="right"
216
- toptextPosition="right"
217
- >
218
- <Chat.Bubble>
219
- Reprehenderit pariatur officia exercitation laboris.
220
- </Chat.Bubble>
221
- <Chat.Bubble>
222
- Enim velit deserunt do quis. Eu fugiat magna esse dolore ad sunt sit
223
- est dolore incididunt. Occaecat cupidatat magna.
224
- </Chat.Bubble>
225
- </Chat>
226
- </VStack>
227
- ),
228
- };
229
-
230
- export const Avatar: Story = {
231
- render: () => (
232
- <Chat avatar={<Illustration />}>
233
- <Chat.Bubble>
234
- Aute minim nisi sunt mollit duis sunt nulla minim non proident.
235
- </Chat.Bubble>
236
- <Chat.Bubble>Tempor fugiat amet eu sint in in ullamco.</Chat.Bubble>
237
- <Chat.Bubble>
238
- Adipisicing laborum est eu laborum est sit in commodo enim sint laboris
239
- labore nisi ut.
240
- </Chat.Bubble>
241
- </Chat>
242
- ),
243
- };
244
-
245
- function Illustration() {
246
- return (
247
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 54 93">
248
- <path
249
- fill="#e7e5e2"
250
- d="M14 50.7C15 52.3 17.9 81 26.5 81S39 51.8 39 50.3c-13.2-7.6-25 .4-25 .4z"
251
- />
252
- <path
253
- fill="#5c4378"
254
- d="M38.7 50.2c6 2.9 15.3 10.9 15.3 18.3V93H0V68.5c0-7.1 8.5-14.8 14.5-18-.3.2-.5.3-.5.3 1 1.7 3.8 9.2 12.4 9.2C35 60 39 51.9 39 50.4c-.1-.1-.2-.2-.3-.2z"
255
- />
256
- <path
257
- fill="#d2242a"
258
- d="M46.7 76H31.2c-.7 0-1.3-.6-1.2-1.3v-8.5c0-.7.6-1.3 1.3-1.3h15.5c.7 0 1.3.6 1.3 1.3v8.5c-.1.7-.7 1.3-1.4 1.3"
259
- />
260
- <path
261
- fill="#fff"
262
- d="M42.9 71c0 2.1-1.7 3.8-3.8 3.8-2.1 0-3.8-1.7-3.8-3.8s1.7-3.8 3.8-3.8c2.1 0 3.8 1.7 3.8 3.8m-8.7 1.7h-.7l.8-1.9h.7l-.8 1.9zm9.3 0H43l.8-1.9h.5l-.8 1.9zm1.2 0h-.2l.8-1.9h.2l-.8 1.9z"
263
- />
264
- <path
265
- fill="#c52d35"
266
- d="M36.2 72.7h.6s.1 0 .1-.1v-1.8s0-.1-.1-.1h-.6s-.1 0-.1.1l-.2.6v.1h.2l.1 1.2c0-.1 0 0 0 0"
267
- />
268
- <path
269
- fill="#c52d35"
270
- d="M37.5 72.7h.6s.1 0 .1-.1v-1.8s0-.1-.1-.1h-.9s-.1 0-.1.1l-.2.6-.1.1h.5c.1 0 .2.1.2.2v1c-.1-.1-.1 0 0 0m2.6-1.9h-.6s-.1 0-.1.1v1.8s0 .1.1.1h.6s.1 0 .1-.1l.2-.6V72h-.2l-.1-1.2"
271
- />
272
- <path
273
- fill="#c52d35"
274
- d="M37.7 72.7h.4s.1 0 .1-.1l.2-.6v-.1h-.2c0 .1-.5.8-.5.8zm3.9-1.9h.7s.1 0 0 .1l-.7 1.8H41l.6-1.9"
275
- />
276
- <path
277
- fill="#c52d35"
278
- d="M40.8 70.8h-1c-.1 0 .3.1.3.1l.7 1.7s0 .1.1.1h.6l-.7-1.9m-1.3.6v.4s-.1-.4-.3-.4c-.3 0-.3.2-.3.3 0 .1.1.3.2.3h.5l-.3.7H39c-.2 0-.9-.3-.9-.9 0-.6.5-1 .9-1 .2-.1.5.2.5.6 0-.1 0-.1 0 0z"
279
- />
280
- <path
281
- fill="#5a1f57"
282
- d="M39.9 66.7h-1.6c-.1 0-.2-.1-.2-.2v-.3c0-.1.1-.2.2-.2h1.6c.1 0 .2.1.2.2v.3c0 .2-.1.2-.2.2"
283
- />
284
- <path fill="#c2b5cf" d="M38.7 66.5h.9V64h-.9v2.5z" />
285
- <path
286
- fill="#e7e5e2"
287
- d="M47.2 35.3C44.7 45.6 36.6 53.1 27 53.1S9.3 45.6 6.8 35.3c-.2.1-.5.1-.8.1-1.1 0-2-.8-2-1.7v-7c0-1 .9-1.7 2-1.7h.2C7.7 13.1 16.4 4 27 4c10.6 0 19.3 9.1 20.8 21h.2c1.1 0 2 .8 2 1.7v7c0 1-.9 1.7-2 1.7-.3 0-.5 0-.8-.1z"
288
- />
289
- <path
290
- fill="#635e59"
291
- d="M19 27.6c-1.4.1-1.9-2-1.4-3.4.1-.3.6-1.5 1.4-1.5.8 0 1.2.7 1.3.8.6 1.4.3 4-1.3 4.1m16.2 0c1.4.1 1.9-2 1.4-3.4-.1-.3-.6-1.5-1.4-1.5-.8 0-1.2.7-1.3.8-.6 1.4-.3 4 1.3 4.1"
292
- />
293
- <path
294
- fill="#d1bfa3"
295
- d="M26.8 34.6c-.4 0-.7-.1-1-.2-.3-.1-.4-.4-.3-.7.1-.3.4-.4.7-.3.5.2 1.5.1 2.2-.4.7-.4 1.1-1 1.2-1.5.1-.4-.1-.9-.4-1.3-.2-.2-.8-.2-1.6-.1-.3 0-.5-.1-.6-.4 0-.3.1-.5.4-.6 1.2-.2 2.1 0 2.6.6.5.7.8 1.4.6 2.1-.1.8-.7 1.6-1.7 2.2-.6.3-1.4.6-2.1.6z"
296
- />
297
- <path
298
- fill="#593a32"
299
- d="M27.1 42.1h-.3c-5.3-.2-7.3-4.1-7.4-4.3-.1-.3 0-.6.2-.7.2-.1.6 0 .7.2.1.1 1.9 3.6 6.6 3.8 4.7.2 6.4-3.7 6.4-3.7.1-.3.4-.4.7-.3.3.1.4.4.3.7-.1 0-2.1 4.3-7.2 4.3z"
300
- />
301
- <path
302
- fill="#f6b873"
303
- d="M6.6 30.7c.1-.1.1-.2.1-.3v-2c-.1-5.6 1.8-8.1 3.4-10.1 0 0-1 4.3-.3 3.4 3.8-5 21.4-1.6 25-8.1.5 3.6-4.1 4.6-4.1 4.6 3.7.7 6.9-.8 7.7-2.5.3 1.4-.6 2.4-1.9 3.4 4.5-.9 4.6-4 4.6-4 .6 4.1 5.3 2.5 5.3 9.3v6c0 .3.2.6.5.6h.5c.3 0 .5-.3.5-.6V26c.3-15.6-8.5-26-20.6-26C15.9 0 5 10.4 5 24.1v6.3c0 .4.2.6.5.6h.6c.2 0 .3-.1.5-.3"
304
- />
305
- <path
306
- fill="#f6b873"
307
- d="M25.9 43.4c-4.4 0-8-1.4-8-3.2s3.6-3.2 8-3.2 8 1.4 8 3.2c0 1.8-3.6 3.2-8 3.2m.8-9.4c-2.9 0-4.7.7-8.8 2.1-12.7 4.6-11.6-14-11.6-14C3.4 46 18.6 52 26.5 52c8.1 0 24.1-8.1 21-30 0 0 .4 17.1-12.9 13.8-3.7-.9-5-1.8-7.9-1.8z"
308
- />
309
- </svg>
310
- );
311
- }
312
-
313
- export const Chromatic: Story = {
314
- render: (...props) => (
315
- <div>
316
- <div>
317
- <h2>Size</h2>
318
- {Size.render?.(...props)}
319
- </div>
320
- <div>
321
- <h2>Variants</h2>
322
- {Variants.render?.(...props)}
323
- </div>
324
- <div>
325
- <h2>Position</h2>
326
- {Position.render?.(...props)}
327
- </div>
328
- <div>
329
- <h2>Toptext</h2>
330
- {ToptextPosition.render?.(...props)}
331
- </div>
332
- <div>
333
- <h2>Avatar</h2>
334
- {Avatar.render?.(...props)}
335
- </div>
336
- </div>
337
- ),
338
- parameters: {
339
- chromatic: { disable: false },
340
- },
341
- };
@@ -1,260 +0,0 @@
1
- import { Meta, StoryObj } from "@storybook/react";
2
- import React, { useState } from "react";
3
- import { Chips } from ".";
4
-
5
- const meta: Meta<typeof Chips> = {
6
- title: "ds-react/Chips",
7
- component: Chips,
8
- parameters: {
9
- chromatic: { disable: true },
10
- },
11
- };
12
- export default meta;
13
-
14
- type Story = StoryObj<typeof Chips>;
15
-
16
- const options = ["Norsk", "Dansk", "Svensk", "Tysk", "Spansk"];
17
-
18
- export const Default = (props) => {
19
- const [selected, setSelected] = useState(["Dansk", "Svensk"]);
20
- const [filter, setFilter] = useState(options);
21
-
22
- if (props.type === "toggle") {
23
- return (
24
- <Chips size={props.size ?? "medium"}>
25
- {options.map((c) => (
26
- <Chips.Toggle
27
- selected={selected.includes(c)}
28
- key={c}
29
- onClick={() =>
30
- setSelected(
31
- selected.includes(c)
32
- ? selected.filter((x) => x !== c)
33
- : [...selected, c],
34
- )
35
- }
36
- >
37
- {c}
38
- </Chips.Toggle>
39
- ))}
40
- </Chips>
41
- );
42
- }
43
-
44
- return (
45
- <Chips size={props.size ?? "medium"}>
46
- {filter.map((c) => (
47
- <Chips.Removable
48
- key={c}
49
- onClick={() => setFilter((x) => x.filter((y) => y !== c))}
50
- >
51
- {c}
52
- </Chips.Removable>
53
- ))}
54
- </Chips>
55
- );
56
- };
57
- Default.argTypes = {
58
- type: {
59
- control: { type: "radio" },
60
- options: ["toggle", "removable"],
61
- },
62
- size: {
63
- control: { type: "radio" },
64
- options: ["medium", "small"],
65
- },
66
- };
67
-
68
- export const Toggle = ({ size }) => {
69
- const [selected, setSelected] = useState<number[]>([2, 4]);
70
- return (
71
- <div className="colgap">
72
- <Chips size={size}>
73
- {options.map((c, y) => (
74
- <Chips.Toggle
75
- selected={selected.includes(y)}
76
- onClick={() =>
77
- setSelected(
78
- selected.includes(y)
79
- ? selected.filter((x) => x !== y)
80
- : [...selected, y],
81
- )
82
- }
83
- key={y}
84
- >
85
- {c}
86
- </Chips.Toggle>
87
- ))}
88
- </Chips>
89
- <Chips size={size}>
90
- {options.map((c, y) => (
91
- <Chips.Toggle
92
- variant="neutral"
93
- selected={selected.includes(y)}
94
- onClick={() =>
95
- setSelected(
96
- selected.includes(y)
97
- ? selected.filter((x) => x !== y)
98
- : [...selected, y],
99
- )
100
- }
101
- key={y}
102
- >
103
- {c}
104
- </Chips.Toggle>
105
- ))}
106
- </Chips>
107
- </div>
108
- );
109
- };
110
- Toggle.argTypes = {
111
- size: {
112
- control: { type: "radio" },
113
- options: ["medium", "small"],
114
- },
115
- };
116
-
117
- export const ToggleNoCheckmark = () => {
118
- const [selected, setSelected] = useState<number>(2);
119
- return (
120
- <div className="colgap">
121
- <Chips>
122
- {options.map((c, y) => (
123
- <Chips.Toggle
124
- selected={selected === y}
125
- checkmark={false}
126
- onClick={() => setSelected(y)}
127
- key={y}
128
- >
129
- {c}
130
- </Chips.Toggle>
131
- ))}
132
- </Chips>
133
- <Chips>
134
- {options.map((c, y) => (
135
- <Chips.Toggle
136
- variant="neutral"
137
- selected={selected === y}
138
- checkmark={false}
139
- onClick={() => setSelected(y)}
140
- key={y}
141
- >
142
- {c}
143
- </Chips.Toggle>
144
- ))}
145
- </Chips>
146
- </div>
147
- );
148
- };
149
-
150
- export const Removable = () => {
151
- return (
152
- <div className="colgap">
153
- <Chips>
154
- {options.map((c, y) => (
155
- <Chips.Removable key={y}>{c}</Chips.Removable>
156
- ))}
157
- </Chips>
158
- <Chips>
159
- {options.map((c, y) => (
160
- <Chips.Removable variant="neutral" key={y}>
161
- {c}
162
- </Chips.Removable>
163
- ))}
164
- </Chips>
165
- </div>
166
- );
167
- };
168
-
169
- export const Regular = () => {
170
- const [selected, setSelected] = useState<number[]>([2]);
171
- return (
172
- <div className="colgap">
173
- <Chips>
174
- {options.map((c, y) => (
175
- <Chips.Removable key={y}>{c}</Chips.Removable>
176
- ))}
177
- </Chips>
178
- <Chips>
179
- {options.map((c, y) => (
180
- <Chips.Toggle
181
- selected={selected.includes(y)}
182
- onClick={() =>
183
- setSelected(
184
- selected.includes(y)
185
- ? selected.filter((x) => x !== y)
186
- : [...selected, y],
187
- )
188
- }
189
- key={y}
190
- >
191
- {c}
192
- </Chips.Toggle>
193
- ))}
194
- </Chips>
195
- </div>
196
- );
197
- };
198
-
199
- export const Small = () => {
200
- const [selected, setSelected] = useState<number[]>([2, 4]);
201
- return (
202
- <div className="colgap">
203
- <Chips size="small">
204
- {options.map((c, y) => (
205
- <Chips.Removable key={y}>{c}</Chips.Removable>
206
- ))}
207
- </Chips>
208
- <Chips size="small">
209
- {options.map((c, y) => (
210
- <Chips.Toggle
211
- selected={selected.includes(y)}
212
- onClick={() =>
213
- setSelected(
214
- selected.includes(y)
215
- ? selected.filter((x) => x !== y)
216
- : [...selected, y],
217
- )
218
- }
219
- key={y}
220
- >
221
- {c}
222
- </Chips.Toggle>
223
- ))}
224
- </Chips>
225
- </div>
226
- );
227
- };
228
-
229
- export const Chromatic: Story = {
230
- render: () => (
231
- <div>
232
- <div>
233
- <h2>Default</h2>
234
- <Default />
235
- </div>
236
- <div>
237
- <h2>Toggle</h2>
238
- <h3>Medium</h3>
239
- <Toggle size="medium" />
240
- <h3>Small</h3>
241
- <Toggle size="small" />
242
- </div>
243
- <div>
244
- <h2>Removable</h2>
245
- <Removable />
246
- </div>
247
- <div>
248
- <h2>Regular</h2>
249
- <Regular />
250
- </div>
251
- <div>
252
- <h2>Small</h2>
253
- <Small />
254
- </div>
255
- </div>
256
- ),
257
- parameters: {
258
- chromatic: { disable: false },
259
- },
260
- };