-
-
Notifications
You must be signed in to change notification settings - Fork 267
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(Editable): add documentation for the editable field
- Loading branch information
Showing
7 changed files
with
298 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<script setup lang="ts"> | ||
import { EditableArea, EditableCancelTrigger, EditableEditTrigger, EditableInput, EditablePreview, EditableRoot, EditableSubmitTrigger } from 'radix-vue' | ||
import './styles.css' | ||
</script> | ||
|
||
<template> | ||
<EditableRoot v-slot="{ isEditing }" placeholder="Enter text..." class="EditableRoot"> | ||
<EditableArea class="EditableArea"> | ||
<EditablePreview /> | ||
<EditableInput /> | ||
</EditableArea> | ||
<EditableEditTrigger | ||
v-if="!isEditing" | ||
class="EditableTrigger" | ||
/> | ||
<div v-else class="EditableWrapper"> | ||
<EditableSubmitTrigger | ||
class="EditableSubmitTrigger" | ||
/> | ||
<EditableCancelTrigger | ||
class="EditableTrigger" | ||
/> | ||
</div> | ||
</EditableRoot> | ||
</template> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
.EditableRoot { | ||
display: flex; | ||
flex-direction: column; | ||
gap: 1rem; | ||
} | ||
|
||
.EditableArea { | ||
color: var(--white); | ||
} | ||
|
||
.EditableWrapper { | ||
display: flex; | ||
gap: 1rem; | ||
} | ||
|
||
.EditableSubmitTrigger { | ||
display: inline-flex; | ||
align-items: center; | ||
justify-content: center; | ||
border-radius: 0.25rem; | ||
font-weight: 500; | ||
font-size: 0.9375rem; | ||
padding: 0.9375rem 1.25rem; | ||
height: 2.1875rem; | ||
background-color: var(--grass8); | ||
color: var(--white); | ||
box-shadow: 0px 2px 1.25rem rgba(0, 0, 0, 0.07), 0px 2px 1.25rem rgba(0, 0, 0, 0.07); | ||
outline: none; | ||
transition: background-color 0.2s, box-shadow 0.2s; | ||
} | ||
|
||
|
||
.EditableTrigger { | ||
display: inline-flex; | ||
align-items: center; | ||
justify-content: center; | ||
border-radius: 0.25rem; | ||
font-weight: 500; | ||
font-size: 0.9375rem; | ||
padding: 0.9375rem 1.25rem; | ||
height: 2.1875rem; | ||
background-color: var(--white); | ||
color: var(--grass11); | ||
box-shadow: 0px 2px 1.25rem rgba(0, 0, 0, 0.07), 0px 2px 1.25rem rgba(0, 0, 0, 0.07); | ||
outline: none; | ||
transition: background-color 0.2s, box-shadow 0.2s; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
<script setup lang="ts"> | ||
import { EditableArea, EditableCancelTrigger, EditableEditTrigger, EditableInput, EditablePreview, EditableRoot, EditableSubmitTrigger } from 'radix-vue' | ||
</script> | ||
|
||
<template> | ||
<EditableRoot v-slot="{ isEditing }" placeholder="Enter text..." class="flex flex-col gap-4"> | ||
<EditableArea class="text-white"> | ||
<EditablePreview /> | ||
<EditableInput class="placeholder:text-white" /> | ||
</EditableArea> | ||
<EditableEditTrigger | ||
v-if="!isEditing" | ||
class="inline-flex items-center justify-center rounded font-medium text-[15px] px-[15px] leading-[35px] h-[35px] bg-white text-grass11 shadow-[0_2px_10px] shadow-blackA7 outline-none hover:bg-mauve3 focus:shadow-[0_0_0_2px] focus:shadow-black" | ||
/> | ||
<div v-else class="flex gap-4"> | ||
<EditableSubmitTrigger | ||
class="inline-flex items-center justify-center rounded font-medium text-[15px] px-[15px] leading-[35px] h-[35px] bg-grass9 text-white shadow-[0_2px_10px] shadow-blackA7 outline-none hover:bg-grass8 focus:shadow-[0_0_0_2px] focus:shadow-black" | ||
/> | ||
<EditableCancelTrigger | ||
class="inline-flex items-center justify-center rounded font-medium text-[15px] px-[15px] leading-[35px] h-[35px] bg-white text-grass11 shadow-[0_2px_10px] shadow-blackA7 outline-none hover:bg-mauve3 focus:shadow-[0_0_0_2px] focus:shadow-black" | ||
/> | ||
</div> | ||
</EditableRoot> | ||
</template> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
const { blackA, grass, green } = require('@radix-ui/colors') | ||
|
||
/** @type {import('tailwindcss').Config} */ | ||
module.exports = { | ||
content: ['./**/*.vue'], | ||
theme: { | ||
extend: { | ||
colors: { | ||
...blackA, | ||
...grass, | ||
...green, | ||
}, | ||
}, | ||
}, | ||
plugins: [], | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
--- | ||
title: Editable | ||
description: Displays an input field used for editing a single line of text, rendering as static text on load. | ||
name: editable | ||
--- | ||
|
||
# Editable | ||
|
||
<Badge>Alpha</Badge> | ||
|
||
<Description> | ||
Displays an input field used for editing a single line of text, rendering as static text on load. It transforms into a text input field when the edit interaction is triggered. | ||
</Description> | ||
|
||
<ComponentPreview name="Editable" /> | ||
|
||
## Features | ||
|
||
<Highlights | ||
:features="[ | ||
'Full keyboard navigation', | ||
'Can be controlled or uncontrolled', | ||
'Focus is fully managed' | ||
]" | ||
/> | ||
|
||
## Installation | ||
|
||
Install the component from your command line. | ||
|
||
<InstallationTabs value="radix-vue" /> | ||
|
||
## Anatomy | ||
|
||
Import all parts and piece them together. | ||
|
||
```vue | ||
<script setup> | ||
import { | ||
EditableArea, | ||
EditableCancelTrigger, | ||
EditableEditTrigger, | ||
EditableInput, | ||
EditablePreview, | ||
EditableRoot, | ||
EditableSubmitTrigger | ||
} from 'radix-vue' | ||
</script> | ||
<template> | ||
<EditableRoot> | ||
<EditableArea> | ||
<EditablePreview /> | ||
<EditableInput /> | ||
</EditableArea> | ||
<EditableEditTrigger /> | ||
<EditableSubmitTrigger /> | ||
<EditableCancelTrigger /> | ||
</EditableRoot> | ||
</template> | ||
``` | ||
|
||
## API Reference | ||
|
||
### Root | ||
|
||
Contains all the parts of an editable component. | ||
|
||
<!-- @include: @/meta/EditableRoot.md --> | ||
|
||
### Area | ||
|
||
Contains the text parts of an editable component. | ||
|
||
<!-- @include: @/meta/EditableArea.md --> | ||
|
||
<DataAttributesTable | ||
:data="[ | ||
{ | ||
attribute: '[data-readonly]', | ||
values: 'Present when readonly', | ||
}, | ||
{ | ||
attribute: '[data-disabled]', | ||
values: 'Present when disabled', | ||
}, | ||
{ | ||
attribute: '[data-placeholder-shown]', | ||
values: 'Present when preview is shown', | ||
}, | ||
{ | ||
attribute: '[data-empty]', | ||
values: 'Present when the input is empty', | ||
}, | ||
{ | ||
attribute: '[data-focus]', | ||
values: 'Present when the editable field is focused', | ||
} | ||
]" | ||
/> | ||
|
||
### Input | ||
|
||
Contains the input of an editable component. | ||
|
||
<!-- @include: @/meta/EditableInput.md --> | ||
|
||
<DataAttributesTable | ||
:data="[ | ||
{ | ||
attribute: '[data-readonly]', | ||
values: 'Present when readonly', | ||
}, | ||
{ | ||
attribute: '[data-disabled]', | ||
values: 'Present when disabled', | ||
} | ||
]" | ||
/> | ||
|
||
|
||
### Preview | ||
|
||
Contains the preview of the editable component. | ||
|
||
<!-- @include: @/meta/EditablePreview.md --> | ||
|
||
### Edit Trigger | ||
|
||
Contains the edit trigger of the editable component. | ||
|
||
<!-- @include: @/meta/EditableEditTrigger.md --> | ||
|
||
### Submit Trigger | ||
|
||
Contains the submit trigger of the editable component. | ||
|
||
<!-- @include: @/meta/EditableSubmitTrigger.md --> | ||
|
||
### Cancel Trigger | ||
|
||
Contains the cancel trigger of the editable component. | ||
|
||
<!-- @include: @/meta/EditableCancelTrigger.md --> | ||
|
||
|
||
## Accessibility | ||
|
||
### Keyboard Interactions | ||
|
||
<KeyboardTable | ||
:data="[ | ||
{ | ||
keys: ['Tab'], | ||
description: `<span>When focus moves onto the editable field, switches into the editable mode if the <Code>activation-mode</Code> is set to focus.</span>` | ||
}, | ||
{ | ||
keys: ['Space'], | ||
description:` | ||
<span> | ||
If the <Code>submit-mode</Code> is set to <Code>enter</Code> or <Code>both</Code>, it submits the changes. | ||
</span> | ||
` , | ||
}, | ||
{ | ||
keys: ['Enter'], | ||
description:` | ||
<span> | ||
If the <Code>submit-mode</Code> is set to <Code>enter</Code> or <Code>both</Code>, it submits the changes. | ||
</span> | ||
` , | ||
}, | ||
{ | ||
keys: ['Escape'], | ||
description: | ||
` | ||
When the focus is on the editable field, it cancels the changes. | ||
` | ||
} | ||
]" | ||
/> |