File tree Expand file tree Collapse file tree 9 files changed +71
-0
lines changed
react/src/components/clipboard
solid/src/components/clipboard
svelte/src/lib/components/clipboard
vue/src/components/clipboard
website/src/content/pages/components Expand file tree Collapse file tree 9 files changed +71
-0
lines changed Original file line number Diff line number Diff line change @@ -10,5 +10,6 @@ export { Basic } from './examples/basic'
10
10
export { Context } from './examples/context'
11
11
export { Controlled } from './examples/controlled'
12
12
export { CustomTimeout } from './examples/custom-timeout'
13
+ export { Programmatic } from './examples/programmatic'
13
14
export { RootProvider } from './examples/root-provider'
14
15
export { ValueText } from './examples/value-text'
Original file line number Diff line number Diff line change
1
+ import { Clipboard } from '@ark-ui/react/clipboard'
2
+
3
+ export const Programmatic = ( ) => {
4
+ return (
5
+ < Clipboard . Root value = "https://ark-ui.com" >
6
+ < Clipboard . Context >
7
+ { ( clipboard ) => < button onClick = { ( ) => clipboard . copy ( ) } > { clipboard . copied ? 'Copied!' : 'Copy URL' } </ button > }
8
+ </ Clipboard . Context >
9
+ </ Clipboard . Root >
10
+ )
11
+ }
Original file line number Diff line number Diff line change @@ -10,5 +10,6 @@ export { Basic } from './examples/basic'
10
10
export { Context } from './examples/context'
11
11
export { Controlled } from './examples/controlled'
12
12
export { CustomTimeout } from './examples/custom-timeout'
13
+ export { Programmatic } from './examples/programmatic'
13
14
export { RootProvider } from './examples/root-provider'
14
15
export { ValueText } from './examples/value-text'
Original file line number Diff line number Diff line change
1
+ import { Clipboard } from '@ark-ui/solid/clipboard'
2
+
3
+ export const Programmatic = ( ) => {
4
+ return (
5
+ < Clipboard . Root value = "https://ark-ui.com" >
6
+ < Clipboard . Context >
7
+ { ( clipboard ) => (
8
+ < button onClick = { ( ) => clipboard ( ) . copy ( ) } > { clipboard ( ) . copied ? 'Copied!' : 'Copy URL' } </ button >
9
+ ) }
10
+ </ Clipboard . Context >
11
+ </ Clipboard . Root >
12
+ )
13
+ }
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import BasicExample from './examples/basic.svelte'
3
3
import ContextExample from './examples/context.svelte'
4
4
import ControlledExample from './examples/controlled.svelte'
5
5
import CustomTimeoutExample from './examples/custom-timeout.svelte'
6
+ import ProgrammaticExample from './examples/programmatic.svelte'
6
7
import RootProviderExample from './examples/root-provider.svelte'
7
8
import ValueTextExample from './examples/value-text.svelte'
8
9
@@ -36,6 +37,12 @@ export const CustomTimeout = {
36
37
} ) ,
37
38
}
38
39
40
+ export const Programmatic = {
41
+ render : ( ) => ( {
42
+ Component : ProgrammaticExample ,
43
+ } ) ,
44
+ }
45
+
39
46
export const RootProvider = {
40
47
render : ( ) => ( {
41
48
Component : RootProviderExample ,
Original file line number Diff line number Diff line change
1
+ <script lang =" ts" >
2
+ import { Clipboard } from ' @ark-ui/svelte/clipboard'
3
+ </script >
4
+
5
+ <Clipboard .Root value =" https://ark-ui.com" >
6
+ <Clipboard .Context >
7
+ {#snippet render (clipboard )}
8
+ <button onclick ={() => clipboard ().copy ()}>
9
+ {clipboard ().copied ? ' Copied!' : ' Copy URL' }
10
+ </button >
11
+ {/ snippet }
12
+ </Clipboard .Context >
13
+ </Clipboard .Root >
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import Basic from './examples/basic.vue'
3
3
import Context from ' ./examples/context.vue'
4
4
import Controlled from ' ./examples/controlled.vue'
5
5
import CustomTimeout from ' ./examples/custom-timeout.vue'
6
+ import Programmatic from ' ./examples/programmatic.vue'
6
7
import RootProvider from ' ./examples/root-provider.vue'
7
8
import ValueText from ' ./examples/value-text.vue'
8
9
</script >
@@ -20,6 +21,9 @@ import ValueText from './examples/value-text.vue'
20
21
<Variant title =" CustomTimeout" >
21
22
<CustomTimeout />
22
23
</Variant >
24
+ <Variant title =" Programmatic" >
25
+ <Programmatic />
26
+ </Variant >
23
27
<Variant title =" RootProvider" >
24
28
<RootProvider />
25
29
</Variant >
Original file line number Diff line number Diff line change
1
+ <script setup lang="ts">
2
+ import { Clipboard } from ' @ark-ui/vue/clipboard'
3
+ </script >
4
+
5
+ <template >
6
+ <Clipboard .Root default-value =" https://ark-ui.com" >
7
+ <Clipboard .Context v-slot =" clipboard" >
8
+ <button @click =" clipboard.copy()" >
9
+ {{ clipboard.copied ? 'Copied!' : 'Copy URL' }}
10
+ </button >
11
+ </Clipboard .Context >
12
+ </Clipboard .Root >
13
+ </template >
Original file line number Diff line number Diff line change @@ -25,6 +25,8 @@ Learn how to use the `Clipboard` component in your project. Let's take a look at
25
25
Access the clipboard state and methods using ` Clipboard.Context ` . This provides access to properties like ` copied ` ,
26
26
` value ` , and ` setValue `
27
27
28
+ > Alternatively, you can use the ` useClipboardContext ` hook to access the clipboard context.
29
+
28
30
<Example id = " context" />
29
31
30
32
### Controlled
@@ -48,6 +50,12 @@ Configure the copy status timeout duration using the `timeout` prop. Default is
48
50
49
51
<Example id = " custom-timeout" />
50
52
53
+ ### Programmatic Copy
54
+
55
+ Trigger copy operations programmatically using the context's ` copy() ` method.
56
+
57
+ <Example id = " programmatic" />
58
+
51
59
### Value Text
52
60
53
61
Use ` Clipboard.ValueText ` to display the current clipboard value.
You can’t perform that action at this time.
0 commit comments