@navikt/ds-react 6.5.0 → 6.6.1

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 (200) hide show
  1. package/cjs/collapsible/Collapsible.context.d.ts +48 -0
  2. package/cjs/collapsible/Collapsible.context.js +10 -0
  3. package/cjs/collapsible/Collapsible.context.js.map +1 -0
  4. package/cjs/collapsible/Collapsible.d.ts +48 -0
  5. package/cjs/collapsible/Collapsible.js +91 -0
  6. package/cjs/collapsible/Collapsible.js.map +1 -0
  7. package/cjs/collapsible/Collapsible.types.d.ts +19 -0
  8. package/cjs/collapsible/Collapsible.types.js +3 -0
  9. package/cjs/collapsible/Collapsible.types.js.map +1 -0
  10. package/cjs/collapsible/index.d.ts +3 -0
  11. package/cjs/collapsible/index.js +14 -0
  12. package/cjs/collapsible/index.js.map +1 -0
  13. package/cjs/collapsible/parts/Collapsible.Content.d.ts +10 -0
  14. package/cjs/collapsible/parts/Collapsible.Content.js +48 -0
  15. package/cjs/collapsible/parts/Collapsible.Content.js.map +1 -0
  16. package/cjs/collapsible/parts/Collapsible.Trigger.d.ts +10 -0
  17. package/cjs/collapsible/parts/Collapsible.Trigger.js +49 -0
  18. package/cjs/collapsible/parts/Collapsible.Trigger.js.map +1 -0
  19. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +2 -4
  20. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  21. package/cjs/form/combobox/Input/Input.js +6 -1
  22. package/cjs/form/combobox/Input/Input.js.map +1 -1
  23. package/cjs/form/form-summary/FormSummary.d.ts +82 -0
  24. package/cjs/form/form-summary/FormSummary.js +81 -0
  25. package/cjs/form/form-summary/FormSummary.js.map +1 -0
  26. package/cjs/form/form-summary/FormSummaryAnswer.d.ts +11 -0
  27. package/cjs/form/form-summary/FormSummaryAnswer.js +25 -0
  28. package/cjs/form/form-summary/FormSummaryAnswer.js.map +1 -0
  29. package/cjs/form/form-summary/FormSummaryAnswers.d.ts +9 -0
  30. package/cjs/form/form-summary/FormSummaryAnswers.js +48 -0
  31. package/cjs/form/form-summary/FormSummaryAnswers.js.map +1 -0
  32. package/cjs/form/form-summary/FormSummaryEditLink.d.ts +17 -0
  33. package/cjs/form/form-summary/FormSummaryEditLink.js +49 -0
  34. package/cjs/form/form-summary/FormSummaryEditLink.js.map +1 -0
  35. package/cjs/form/form-summary/FormSummaryHeader.d.ts +9 -0
  36. package/cjs/form/form-summary/FormSummaryHeader.js +48 -0
  37. package/cjs/form/form-summary/FormSummaryHeader.js.map +1 -0
  38. package/cjs/form/form-summary/FormSummaryHeading.d.ts +14 -0
  39. package/cjs/form/form-summary/FormSummaryHeading.js +31 -0
  40. package/cjs/form/form-summary/FormSummaryHeading.js.map +1 -0
  41. package/cjs/form/form-summary/FormSummaryLabel.d.ts +6 -0
  42. package/cjs/form/form-summary/FormSummaryLabel.js +45 -0
  43. package/cjs/form/form-summary/FormSummaryLabel.js.map +1 -0
  44. package/cjs/form/form-summary/FormSummaryValue.d.ts +6 -0
  45. package/cjs/form/form-summary/FormSummaryValue.js +49 -0
  46. package/cjs/form/form-summary/FormSummaryValue.js.map +1 -0
  47. package/cjs/form/form-summary/index.d.ts +8 -0
  48. package/cjs/form/form-summary/index.js +24 -0
  49. package/cjs/form/form-summary/index.js.map +1 -0
  50. package/cjs/index.d.ts +3 -2
  51. package/cjs/index.js +5 -3
  52. package/cjs/index.js.map +1 -1
  53. package/cjs/layout/stack/Spacer.js +1 -1
  54. package/cjs/layout/stack/Spacer.js.map +1 -1
  55. package/cjs/util/hooks/descendants/descendant.js +10 -1
  56. package/cjs/util/hooks/descendants/descendant.js.map +1 -1
  57. package/cjs/util/hooks/descendants/useDescendant.js +0 -5
  58. package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
  59. package/esm/collapsible/Collapsible.context.d.ts +48 -0
  60. package/esm/collapsible/Collapsible.context.js +6 -0
  61. package/esm/collapsible/Collapsible.context.js.map +1 -0
  62. package/esm/collapsible/Collapsible.d.ts +48 -0
  63. package/esm/collapsible/Collapsible.js +62 -0
  64. package/esm/collapsible/Collapsible.js.map +1 -0
  65. package/esm/collapsible/Collapsible.types.d.ts +19 -0
  66. package/esm/collapsible/Collapsible.types.js +2 -0
  67. package/esm/collapsible/Collapsible.types.js.map +1 -0
  68. package/esm/collapsible/index.d.ts +3 -0
  69. package/esm/collapsible/index.js +5 -0
  70. package/esm/collapsible/index.js.map +1 -0
  71. package/esm/collapsible/parts/Collapsible.Content.d.ts +10 -0
  72. package/esm/collapsible/parts/Collapsible.Content.js +22 -0
  73. package/esm/collapsible/parts/Collapsible.Content.js.map +1 -0
  74. package/esm/collapsible/parts/Collapsible.Trigger.d.ts +10 -0
  75. package/esm/collapsible/parts/Collapsible.Trigger.js +23 -0
  76. package/esm/collapsible/parts/Collapsible.Trigger.js.map +1 -0
  77. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +2 -4
  78. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  79. package/esm/form/combobox/Input/Input.js +6 -1
  80. package/esm/form/combobox/Input/Input.js.map +1 -1
  81. package/esm/form/form-summary/FormSummary.d.ts +82 -0
  82. package/esm/form/form-summary/FormSummary.js +52 -0
  83. package/esm/form/form-summary/FormSummary.js.map +1 -0
  84. package/esm/form/form-summary/FormSummaryAnswer.d.ts +11 -0
  85. package/esm/form/form-summary/FormSummaryAnswer.js +19 -0
  86. package/esm/form/form-summary/FormSummaryAnswer.js.map +1 -0
  87. package/esm/form/form-summary/FormSummaryAnswers.d.ts +9 -0
  88. package/esm/form/form-summary/FormSummaryAnswers.js +19 -0
  89. package/esm/form/form-summary/FormSummaryAnswers.js.map +1 -0
  90. package/esm/form/form-summary/FormSummaryEditLink.d.ts +17 -0
  91. package/esm/form/form-summary/FormSummaryEditLink.js +20 -0
  92. package/esm/form/form-summary/FormSummaryEditLink.js.map +1 -0
  93. package/esm/form/form-summary/FormSummaryHeader.d.ts +9 -0
  94. package/esm/form/form-summary/FormSummaryHeader.js +19 -0
  95. package/esm/form/form-summary/FormSummaryHeader.js.map +1 -0
  96. package/esm/form/form-summary/FormSummaryHeading.d.ts +14 -0
  97. package/esm/form/form-summary/FormSummaryHeading.js +5 -0
  98. package/esm/form/form-summary/FormSummaryHeading.js.map +1 -0
  99. package/esm/form/form-summary/FormSummaryLabel.d.ts +6 -0
  100. package/esm/form/form-summary/FormSummaryLabel.js +19 -0
  101. package/esm/form/form-summary/FormSummaryLabel.js.map +1 -0
  102. package/esm/form/form-summary/FormSummaryValue.d.ts +6 -0
  103. package/esm/form/form-summary/FormSummaryValue.js +20 -0
  104. package/esm/form/form-summary/FormSummaryValue.js.map +1 -0
  105. package/esm/form/form-summary/index.d.ts +8 -0
  106. package/esm/form/form-summary/index.js +10 -0
  107. package/esm/form/form-summary/index.js.map +1 -0
  108. package/esm/index.d.ts +3 -2
  109. package/esm/index.js +2 -1
  110. package/esm/index.js.map +1 -1
  111. package/esm/layout/stack/Spacer.js +1 -1
  112. package/esm/layout/stack/Spacer.js.map +1 -1
  113. package/esm/util/hooks/descendants/descendant.js +10 -1
  114. package/esm/util/hooks/descendants/descendant.js.map +1 -1
  115. package/esm/util/hooks/descendants/useDescendant.js +0 -5
  116. package/esm/util/hooks/descendants/useDescendant.js.map +1 -1
  117. package/package.json +15 -4
  118. package/src/collapsible/Collapsible.context.tsx +32 -0
  119. package/src/collapsible/Collapsible.tsx +100 -0
  120. package/src/collapsible/Collapsible.types.ts +19 -0
  121. package/src/collapsible/index.ts +10 -0
  122. package/src/collapsible/parts/Collapsible.Content.tsx +39 -0
  123. package/src/collapsible/parts/Collapsible.Trigger.tsx +42 -0
  124. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +9 -1
  125. package/src/form/combobox/Input/Input.tsx +5 -0
  126. package/src/form/form-summary/FormSummary.tsx +106 -0
  127. package/src/form/form-summary/FormSummaryAnswer.tsx +27 -0
  128. package/src/form/form-summary/FormSummaryAnswers.tsx +25 -0
  129. package/src/form/form-summary/FormSummaryEditLink.tsx +35 -0
  130. package/src/form/form-summary/FormSummaryHeader.tsx +25 -0
  131. package/src/form/form-summary/FormSummaryHeading.tsx +23 -0
  132. package/src/form/form-summary/FormSummaryLabel.tsx +17 -0
  133. package/src/form/form-summary/FormSummaryValue.tsx +24 -0
  134. package/src/form/form-summary/index.ts +30 -0
  135. package/src/index.ts +16 -15
  136. package/src/layout/stack/Spacer.tsx +1 -1
  137. package/src/util/hooks/descendants/descendant.ts +15 -1
  138. package/src/util/hooks/descendants/useDescendant.tsx +0 -5
  139. package/src/accordion/accordion.stories.tsx +0 -286
  140. package/src/alert/alert.stories.tsx +0 -306
  141. package/src/button/button.stories.tsx +0 -185
  142. package/src/chat/chat.stories.tsx +0 -341
  143. package/src/chips/chips.stories.tsx +0 -260
  144. package/src/copybutton/copy-button.stories.tsx +0 -261
  145. package/src/date/datepicker/datepicker.stories.tsx +0 -614
  146. package/src/date/monthpicker/monthpicker.stories.tsx +0 -221
  147. package/src/dropdown/dropdown.stories.tsx +0 -124
  148. package/src/expansion-card/expansion-card.stories.tsx +0 -282
  149. package/src/form/checkbox/checkbox.stories.tsx +0 -281
  150. package/src/form/combobox/combobox.stories.tsx +0 -626
  151. package/src/form/confirmation-panel/confirmation-panel.stories.tsx +0 -128
  152. package/src/form/error-summary/error-summary.stories.tsx +0 -81
  153. package/src/form/fieldset/fieldset.stories.tsx +0 -157
  154. package/src/form/file-upload/file-upload-dropzone.stories.tsx +0 -123
  155. package/src/form/file-upload/file-upload-item.stories.tsx +0 -148
  156. package/src/form/file-upload/file-upload.stories.tsx +0 -248
  157. package/src/form/radio/radio.stories.tsx +0 -230
  158. package/src/form/search/search.stories.tsx +0 -238
  159. package/src/form/select/select.stories.tsx +0 -172
  160. package/src/form/switch/switch.stories.tsx +0 -171
  161. package/src/form/textarea/textarea.stories.tsx +0 -254
  162. package/src/form/textfield/text-field.stories.tsx +0 -143
  163. package/src/guide-panel/guidepanel.stories.tsx +0 -90
  164. package/src/help-text/help-text.stories.tsx +0 -91
  165. package/src/internal-header/header.stories.tsx +0 -229
  166. package/src/layout/bleed/Bleed.stories.tsx +0 -395
  167. package/src/layout/box/Box.stories.tsx +0 -380
  168. package/src/layout/grid/h-grid.stories.tsx +0 -122
  169. package/src/layout/page/Page.stories.tsx +0 -271
  170. package/src/layout/responsive/hide.stories.tsx +0 -80
  171. package/src/layout/responsive/show.stories.tsx +0 -80
  172. package/src/layout/sidemal-test/navno-sidemal.stories.tsx +0 -69
  173. package/src/layout/stack/stack.stories.tsx +0 -183
  174. package/src/link/stories/link.stories.tsx +0 -304
  175. package/src/link-panel/link-panel.stories.tsx +0 -59
  176. package/src/list/list.stories.tsx +0 -280
  177. package/src/loader/loader.stories.tsx +0 -82
  178. package/src/modal/modal.stories.tsx +0 -391
  179. package/src/pagination/pagination.stories.tsx +0 -110
  180. package/src/popover/popover.stories.tsx +0 -113
  181. package/src/portal/Portal.stories.tsx +0 -102
  182. package/src/read-more/readmore.stories.tsx +0 -91
  183. package/src/skeleton/skeleton.stories.tsx +0 -130
  184. package/src/stepper/stepper.stories.tsx +0 -200
  185. package/src/table/stories/table-1.stories.tsx +0 -292
  186. package/src/table/stories/table-2-expandable.stories.tsx +0 -298
  187. package/src/table/stories/table-3-async.stories.tsx +0 -179
  188. package/src/table/stories/tests/table.stories.tsx +0 -102
  189. package/src/tabs/Tabs.stories.tsx +0 -311
  190. package/src/tag/tag.stories.tsx +0 -126
  191. package/src/timeline/timeline.stories.tsx +0 -445
  192. package/src/toggle-group/ToggleGroup.stories.tsx +0 -198
  193. package/src/tooltip/tooltip.stories.tsx +0 -101
  194. package/src/typography/stories/bodylong.stories.tsx +0 -209
  195. package/src/typography/stories/bodyshort.stories.tsx +0 -208
  196. package/src/typography/stories/detail.stories.tsx +0 -115
  197. package/src/typography/stories/error-message.stories.tsx +0 -122
  198. package/src/typography/stories/heading.stories.tsx +0 -169
  199. package/src/typography/stories/label.stories.tsx +0 -131
  200. package/src/util/hooks/descendants/descendant.stories.tsx +0 -147
@@ -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
- };
@@ -1,261 +0,0 @@
1
- import { Meta, StoryObj } from "@storybook/react";
2
- import { userEvent, within } from "@storybook/test";
3
- import React from "react";
4
- import { LinkIcon, ThumbUpIcon } from "@navikt/aksel-icons";
5
- import { CopyButton } from ".";
6
- import { Tooltip } from "../tooltip";
7
-
8
- const meta: Meta<typeof CopyButton> = {
9
- title: "ds-react/CopyButton",
10
- component: CopyButton,
11
- };
12
- export default meta;
13
-
14
- type Story = StoryObj<typeof CopyButton>;
15
-
16
- export const Default: Story = {
17
- render: (props) => <CopyButton {...props} />,
18
- argTypes: {
19
- size: {
20
- control: { type: "radio" },
21
- options: ["medium", "small", "xsmall"],
22
- },
23
- variant: {
24
- control: { type: "radio" },
25
- options: ["neutral", "action"],
26
- },
27
- },
28
- args: {
29
- size: "medium",
30
- activeDuration: 2000,
31
- copyText: "3.14",
32
- text: "",
33
- activeText: "",
34
- },
35
- parameters: {
36
- chromatic: { disable: true },
37
- },
38
- };
39
-
40
- export const Interaction: Story = {
41
- render: () => (
42
- <CopyButton
43
- copyText="3.14"
44
- variant="action"
45
- text="Kopier"
46
- data-testid="copy-button"
47
- />
48
- ),
49
- play: async ({ canvasElement }) => {
50
- const canvas = within(canvasElement);
51
-
52
- const button = canvas.getByTestId("copy-button");
53
-
54
- userEvent.click(button);
55
- },
56
- };
57
-
58
- export const Variants: Story = {
59
- render: () => (
60
- <div className="colgap">
61
- <CopyButton copyText="3.14" variant="action" text="Kopier" />
62
-
63
- <CopyButton copyText="3.14" variant="neutral" text="Kopier" />
64
- </div>
65
- ),
66
- };
67
-
68
- export const IconPosition: Story = {
69
- render: () => (
70
- <div className="colgap">
71
- <CopyButton copyText="3.14" iconPosition="left" text="Kopier" />
72
-
73
- <CopyButton copyText="3.14" iconPosition="right" text="Kopier" />
74
- </div>
75
- ),
76
- };
77
-
78
- export const Sizes: Story = {
79
- render: () => (
80
- <div className="colgap">
81
- <div className="rowgap">
82
- <CopyButton copyText="3.14" variant="action" />
83
- <CopyButton copyText="3.14" variant="neutral" />
84
- <CopyButton copyText="3.14" variant="action" text="Kopier" />
85
- <CopyButton copyText="3.14" variant="neutral" text="Kopier" />
86
- </div>
87
- <div className="rowgap">
88
- <CopyButton size="small" copyText="3.14" variant="action" />
89
- <CopyButton size="small" copyText="3.14" variant="neutral" />
90
- <CopyButton
91
- size="small"
92
- copyText="3.14"
93
- variant="action"
94
- text="Kopier"
95
- />
96
- <CopyButton
97
- size="small"
98
- copyText="3.14"
99
- variant="neutral"
100
- text="Kopier"
101
- />
102
- </div>
103
- <div className="rowgap">
104
- <CopyButton size="xsmall" copyText="3.14" variant="action" />
105
- <CopyButton size="xsmall" copyText="3.14" variant="neutral" />
106
- <CopyButton
107
- size="xsmall"
108
- copyText="3.14"
109
- variant="action"
110
- text="Kopier"
111
- />
112
- <CopyButton
113
- size="xsmall"
114
- copyText="3.14"
115
- variant="neutral"
116
- text="Kopier"
117
- />
118
- </div>
119
- </div>
120
- ),
121
- };
122
-
123
- export const Texts: Story = {
124
- render: () => (
125
- <div className="colgap">
126
- <div>
127
- <CopyButton
128
- copyText="3.14"
129
- text="Kopier XYZ"
130
- activeText="Kopierte XYZ"
131
- />
132
- </div>
133
- <div>
134
- <CopyButton
135
- copyText="3.14"
136
- size="small"
137
- text="Kopier XYZ"
138
- activeText="Kopierte XYZ"
139
- />
140
- </div>
141
- <div>
142
- <CopyButton
143
- copyText="3.14"
144
- size="xsmall"
145
- text="Kopier XYZ"
146
- activeText="Kopierte XYZ"
147
- />
148
- </div>
149
- </div>
150
- ),
151
- };
152
-
153
- export const Icons: Story = {
154
- render: () => (
155
- <div className="rowgap">
156
- <div>
157
- <CopyButton
158
- copyText="3.14"
159
- icon={<LinkIcon title="Kopier" />}
160
- activeIcon={<ThumbUpIcon title="Kopiert" />}
161
- />
162
- </div>
163
- <div>
164
- <CopyButton
165
- copyText="3.14"
166
- size="small"
167
- icon={<LinkIcon title="Kopier" />}
168
- activeIcon={<ThumbUpIcon title="Kopiert" />}
169
- />
170
- </div>
171
- <div>
172
- <CopyButton
173
- copyText="3.14"
174
- size="xsmall"
175
- icon={<LinkIcon title="Kopier" />}
176
- activeIcon={<ThumbUpIcon title="Kopiert" />}
177
- />
178
- </div>
179
- </div>
180
- ),
181
- };
182
-
183
- export const InlineDemo: Story = {
184
- render: () => (
185
- <div style={{ display: "flex", gap: "0.5rem", alignItems: "center" }}>
186
- <CopyButton size="small" copyText="3.14" /> Kopier dette feltet
187
- </div>
188
- ),
189
- };
190
-
191
- export const WithTooltip: Story = {
192
- render: () => {
193
- return (
194
- <div>
195
- <Tooltip content="Kopier fødselsnummer">
196
- <CopyButton copyText="3.14" />
197
- </Tooltip>
198
- </div>
199
- );
200
- },
201
- };
202
-
203
- export const Duration: Story = {
204
- render: () => <CopyButton copyText="3.14" activeDuration={300} />,
205
- };
206
-
207
- export const Disabled: Story = {
208
- render: () => (
209
- <div className="colgap">
210
- <CopyButton copyText="3.14" disabled />
211
- <CopyButton copyText="3.14" size="small" disabled />
212
- <CopyButton copyText="3.14" disabled variant="action" />
213
- </div>
214
- ),
215
- };
216
-
217
- export const Chromatic: Story = {
218
- render: (...props) => (
219
- <div>
220
- <div>
221
- <h2>Variants</h2>
222
- {Variants.render?.(...props)}
223
- </div>
224
- <div>
225
- <h2>IconPosition</h2>
226
- {IconPosition.render?.(...props)}
227
- </div>
228
- <div>
229
- <h2>Sizes</h2>
230
- {Sizes.render?.(...props)}
231
- </div>
232
- <div>
233
- <h2>Texts</h2>
234
- {Texts.render?.(...props)}
235
- </div>
236
- <div>
237
- <h2>Icons</h2>
238
- {Icons.render?.(...props)}
239
- </div>
240
- <div>
241
- <h2>InlineDemo</h2>
242
- {InlineDemo.render?.(...props)}
243
- </div>
244
- <div>
245
- <h2>WithTooltip</h2>
246
- {WithTooltip.render?.(...props)}
247
- </div>
248
- <div>
249
- <h2>Duration</h2>
250
- {Duration.render?.(...props)}
251
- </div>
252
- <div>
253
- <h2>Disabled</h2>
254
- {Disabled.render?.(...props)}
255
- </div>
256
- </div>
257
- ),
258
- parameters: {
259
- chromatic: { disable: false },
260
- },
261
- };