Skip to content

Commit 0b0864f

Browse files
authored
UI field description (#1363)
1 parent 0d69577 commit 0b0864f

File tree

8 files changed

+33
-18
lines changed

8 files changed

+33
-18
lines changed

.changeset/seven-mugs-retire.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@keystatic/core': patch
3+
'@keystar/ui': patch
4+
---
5+
6+
Expose `FieldDescription` from "@keystar/ui/field" package.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { DOMProps } from '@react-types/shared';
2+
import { PropsWithChildren } from 'react';
3+
4+
import { Text } from '@keystar/ui/typography';
5+
6+
type FieldDescriptionProps = PropsWithChildren<DOMProps>;
7+
8+
export const FieldDescription = (props: FieldDescriptionProps) => {
9+
return <Text size="small" color="neutralSecondary" {...props} />;
10+
};

design-system/pkg/src/field/FieldPrimitive.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { Flex } from '@keystar/ui/layout';
22
import { css, tokenSchema, useStyleProps } from '@keystar/ui/style';
3-
import { Text } from '@keystar/ui/typography';
43
import {
54
forwardRef,
65
ForwardRefExoticComponent,
@@ -9,6 +8,7 @@ import {
98
useMemo,
109
} from 'react';
1110

11+
import { FieldDescription } from './FieldDescription';
1212
import { FieldLabel } from './FieldLabel';
1313
import { FieldMessage } from './FieldMessage';
1414
import { FieldPrimitiveProps } from './types';
@@ -95,9 +95,9 @@ export const FieldPrimitive: ForwardRefExoticComponent<
9595
})()}
9696

9797
{description && (
98-
<Text {...descriptionProps} size="small" color="neutralSecondary">
98+
<FieldDescription {...descriptionProps}>
9999
{description}
100-
</Text>
100+
</FieldDescription>
101101
)}
102102

103103
{children}

design-system/pkg/src/field/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use client';
22

33
export { Field } from './Field';
4+
export { FieldDescription } from './FieldDescription';
45
export { FieldLabel } from './FieldLabel';
56
export { FieldMessage } from './FieldMessage';
67
export { FieldPrimitive } from './FieldPrimitive';

packages/keystatic/src/form/fields/array/ui.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ActionButton, Button, ButtonGroup } from '@keystar/ui/button';
22
import { Dialog, DialogContainer } from '@keystar/ui/dialog';
33
import { ItemDropTarget, useDragAndDrop } from '@keystar/ui/drag-and-drop';
4-
import { FieldLabel, FieldMessage } from '@keystar/ui/field';
4+
import { FieldDescription, FieldLabel, FieldMessage } from '@keystar/ui/field';
55
import { Icon } from '@keystar/ui/icon';
66
import { trash2Icon } from '@keystar/ui/icon/icons/trash2Icon';
77
import { VStack } from '@keystar/ui/layout';
@@ -66,9 +66,9 @@ export function ArrayFieldInput<Element extends ComponentSchema>(
6666
{props.schema.label}
6767
</FieldLabel>
6868
{props.schema.description && (
69-
<Text size="small" color="neutralSecondary" {...descriptionProps}>
69+
<FieldDescription {...descriptionProps}>
7070
{props.schema.description}
71-
</Text>
71+
</FieldDescription>
7272
)}
7373
<ActionButton
7474
autoFocus={props.autoFocus}

packages/keystatic/src/form/fields/blocks/ui.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import {
44
Dialog,
55
useDialogContainer,
66
} from '@keystar/ui/dialog';
7-
import { FieldLabel, FieldMessage } from '@keystar/ui/field';
7+
import { FieldDescription, FieldLabel, FieldMessage } from '@keystar/ui/field';
88
import { VStack } from '@keystar/ui/layout';
99
import { MenuTrigger, Menu, Item } from '@keystar/ui/menu';
1010
import { Content } from '@keystar/ui/slots';
11-
import { Heading, Text } from '@keystar/ui/typography';
11+
import { Heading } from '@keystar/ui/typography';
1212
import { useLocalizedStringFormatter } from '@react-aria/i18n';
1313
import { useField } from '@react-aria/label';
1414
import { useId, useState, useMemo } from 'react';
@@ -88,9 +88,9 @@ export function BlocksFieldInput(
8888
{props.schema.label}
8989
</FieldLabel>
9090
{props.schema.description && (
91-
<Text size="small" color="neutralSecondary" {...descriptionProps}>
91+
<FieldDescription {...descriptionProps}>
9292
{props.schema.description}
93-
</Text>
93+
</FieldDescription>
9494
)}
9595
<MenuTrigger>
9696
<ActionButton alignSelf="start">Add</ActionButton>

packages/keystatic/src/form/fields/file/ui.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { ButtonGroup, ActionButton, Button } from '@keystar/ui/button';
2-
import { FieldLabel, FieldMessage } from '@keystar/ui/field';
2+
import { FieldDescription, FieldLabel, FieldMessage } from '@keystar/ui/field';
33
import { Flex } from '@keystar/ui/layout';
44
import { TextField } from '@keystar/ui/text-field';
5-
import { Text } from '@keystar/ui/typography';
65

76
import { useIsInDocumentEditor } from '../document/DocumentEditor';
87
import { useId, useReducer } from 'react';
@@ -44,9 +43,9 @@ export function FileFieldInput(
4443
{props.label}
4544
</FieldLabel>
4645
{props.description && (
47-
<Text size="small" color="neutralSecondary" id={descriptionId}>
46+
<FieldDescription id={descriptionId}>
4847
{props.description}
49-
</Text>
48+
</FieldDescription>
5049
)}
5150
<ButtonGroup>
5251
<ActionButton

packages/keystatic/src/form/fields/image/ui.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import { ButtonGroup, ActionButton } from '@keystar/ui/button';
2-
import { FieldLabel, FieldMessage } from '@keystar/ui/field';
2+
import { FieldDescription, FieldLabel, FieldMessage } from '@keystar/ui/field';
33
import { Flex, Box } from '@keystar/ui/layout';
44
import { tokenSchema } from '@keystar/ui/style';
55
import { TextField } from '@keystar/ui/text-field';
6-
import { Text } from '@keystar/ui/typography';
76

87
import { useIsInDocumentEditor } from '../document/DocumentEditor';
98
import { useState, useEffect, useReducer, useId } from 'react';
@@ -100,9 +99,9 @@ export function ImageFieldInput(
10099
{props.label}
101100
</FieldLabel>
102101
{props.description && (
103-
<Text size="small" color="neutralSecondary" id={descriptionId}>
102+
<FieldDescription id={descriptionId}>
104103
{props.description}
105-
</Text>
104+
</FieldDescription>
106105
)}
107106
<ButtonGroup>
108107
<ActionButton

0 commit comments

Comments
 (0)