diff --git a/packages/web-kitchensink-reactnext/src/base/selectcontrol/index.ts b/packages/web-kitchensink-reactnext/src/base/selectcontrol/index.ts
index bc0c7da..949e6fc 100644
--- a/packages/web-kitchensink-reactnext/src/base/selectcontrol/index.ts
+++ b/packages/web-kitchensink-reactnext/src/base/selectcontrol/index.ts
@@ -1,4 +1,6 @@
-export interface SelectOption {
+export type SelectOption = string | number | SelectOptionObject;
+
+interface SelectOptionObject {
label: string;
value?: string | number;
children?: SelectOption[];
diff --git a/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/MaskedTextInput/index.tsx b/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/MaskedTextInput/index.tsx
index ee81171..3115a2a 100644
--- a/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/MaskedTextInput/index.tsx
+++ b/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/MaskedTextInput/index.tsx
@@ -111,7 +111,7 @@ export const MaskedTextInput = React.forwardRef
{
label && (
-
+
+
)
}
{hint && (
diff --git a/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/MultilineTextInput/index.tsx b/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/MultilineTextInput/index.tsx
index f947c6e..6e749be 100644
--- a/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/MultilineTextInput/index.tsx
+++ b/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/MultilineTextInput/index.tsx
@@ -126,7 +126,7 @@ export const MultilineTextInput = React.forwardRef
{
label && (
-
+
+
)
}
{hint && (
diff --git a/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/TextInput/index.tsx b/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/TextInput/index.tsx
index 8ec5271..e01877b 100644
--- a/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/TextInput/index.tsx
+++ b/packages/web-kitchensink-reactnext/src/categories/freeform/react/components/TextInput/index.tsx
@@ -118,7 +118,7 @@ export const TextInput = React.forwardRef
{
label && (
-
+
+
)
}
{hint && (
diff --git a/packages/web-kitchensink-reactnext/src/categories/number/react/components/Slider/index.tsx b/packages/web-kitchensink-reactnext/src/categories/number/react/components/Slider/index.tsx
index 64c4860..f1e6de5 100644
--- a/packages/web-kitchensink-reactnext/src/categories/number/react/components/Slider/index.tsx
+++ b/packages/web-kitchensink-reactnext/src/categories/number/react/components/Slider/index.tsx
@@ -1,102 +1,27 @@
import * as React from 'react';
+import * as SelectControlBase from '@tesseract-design/web-base-selectcontrol';
+import {RenderOptions} from '@tesseract-design/web-option-react';
import clsx from 'clsx';
import styles from './style.module.css';
-import * as SelectControlBase from '@tesseract-design/web-base-selectcontrol';
-
-type SliderOrientation = 'horizontal' | 'vertical';
-interface RenderOptionsProps {
- options: (number | SelectControlBase.SelectOption)[],
- optionComponent?: React.ElementType,
- optgroupComponent?: React.ElementType,
- level?: number,
-}
-
-const RenderOptions: React.FC = ({
- options,
- optionComponent: Option = 'option',
- optgroupComponent: Optgroup = 'optgroup',
- level = 0,
-}: RenderOptionsProps) => (
- <>
- {
- options.map((o) => {
- if (typeof o === 'number') {
- return (
-
- )
- }
-
- if (typeof o.value !== 'undefined') {
- return (
-
- );
- }
-
- if (typeof o.children !== 'undefined') {
- if (level === 0) {
- return (
-
- );
- }
- return (
-
-
-
-
- );
- }
-
- return null;
- })
- }
- >
-);
+export type SliderOrientation = 'horizontal' | 'vertical';
type SliderDerivedElement = HTMLInputElement;
export interface SliderProps extends Omit, 'type'> {
orient?: SliderOrientation;
- tickMarks?: (number | SelectControlBase.SelectOption)[];
+ children?: React.ReactNode;
length?: React.CSSProperties['width'];
}
export const Slider = React.forwardRef(({
className,
style,
- tickMarks = [],
+ children,
orient = 'horizontal',
length,
+ min = 0,
+ max = 100,
...etcProps
}, forwardedRef) => {
const [browser, setBrowser] = React.useState();
@@ -115,39 +40,53 @@ export const Slider = React.forwardRef(({
const tickMarkId = React.useId();
React.useEffect(() => {
- if (!(typeof ref === 'object' && ref.current)) {
+ if (!(typeof ref === 'object' && ref)) {
return;
}
-
const {current: slider} = ref;
+ if (!slider) {
+ return;
+ }
+
const isFirefox = browser === 'firefox';
- const parent = slider?.parentElement as HTMLElement;
+ const wrapper = slider?.parentElement as HTMLElement;
+ const parent = wrapper?.parentElement as HTMLElement;
const grandParent = parent?.parentElement as HTMLElement;
if (isFirefox) {
slider.setAttribute('orient', orient);
- slider.removeAttribute('data-orient');
+ wrapper.dataset[browser] = orient;
+ wrapper.removeAttribute('data-orient');
grandParent.style.width = '0px';
}
return () => {
if (slider && isFirefox) {
grandParent.style.width = 'auto';
- slider.dataset.orient = slider.getAttribute(orient) ?? undefined;
+ wrapper.removeAttribute(`data-${browser}`);
+ wrapper.dataset.orient = slider.getAttribute(orient) ?? undefined;
slider.removeAttribute('orient');
}
};
}, [ref, orient, browser]);
React.useEffect(() => {
- if (!(typeof ref === 'object' && ref.current)) {
+ if (!(typeof ref === 'object' && ref)) {
return;
}
-
const {current: slider} = ref;
- const parent = slider?.parentElement as HTMLElement;
+ if (!slider) {
+ return;
+ }
+
+ const wrapper = slider?.parentElement as HTMLElement;
+ const parent = wrapper?.parentElement as HTMLElement;
const grandParent = parent?.parentElement as HTMLElement;
const isNotFirefox = typeof browser === 'string' && browser !== 'firefox';
+ if (isNotFirefox) {
+ wrapper.dataset[browser] = orient;
+ }
+
const shouldEffectExecute = isNotFirefox && orient === 'vertical' && slider && parent && grandParent;
if (shouldEffectExecute) {
const trueHeight = parent.clientWidth;
@@ -166,22 +105,52 @@ export const Slider = React.forwardRef(({
grandParent.removeAttribute('data-height');
grandParent.removeAttribute('data-width');
}
+ wrapper.removeAttribute(`data-${browser}`);
};
}, [ref, orient, browser]);
+ React.useEffect(() => {
+ if (!(typeof ref === 'object' && ref)) {
+ return;
+ }
+ const {current: slider} = ref;
+ if (!slider) {
+ return;
+ }
+
+ const isFirefox = browser === 'firefox';
+ const isNotFirefox = typeof browser === 'string' && browser !== 'firefox';
+ const tickMarkContainer = slider.nextElementSibling;
+ if (tickMarkContainer) {
+ const tickMarks = tickMarkContainer.children[0].children;
+ Array.from(tickMarks).forEach((tickMarkRaw) => {
+ const tickMark = tickMarkRaw as HTMLElement;
+ const offset = tickMark.dataset.offset as string;
+ if (isNotFirefox) {
+ tickMark.style.left = offset;
+ tickMark.style.bottom = '';
+ } else if (isFirefox && orient === 'horizontal') {
+ tickMark.style.left = offset;
+ tickMark.style.bottom = '';
+ } else {
+ tickMark.style.bottom = offset;
+ tickMark.style.left = '';
+ }
+ });
+ }
+ }, [ref, orient, browser]);
+
const block = typeof length === 'string' && length.trim() === '100%';
return (
<>
{
- tickMarks.length > 0
+ children
&& (
)
}
@@ -203,18 +172,59 @@ export const Slider = React.forwardRef(({
position: 'relative',
}}
>
-
+
+ {Array.isArray(children) && (
+
+
+ {children.map((c) => (
+
+ {/* TODO fix translateX */}
+
+
+ ))}
+
+
)}
- />
+
>
diff --git a/packages/web-kitchensink-reactnext/src/categories/number/react/components/Slider/style.module.css b/packages/web-kitchensink-reactnext/src/categories/number/react/components/Slider/style.module.css
index da4ee42..f8e20cc 100644
--- a/packages/web-kitchensink-reactnext/src/categories/number/react/components/Slider/style.module.css
+++ b/packages/web-kitchensink-reactnext/src/categories/number/react/components/Slider/style.module.css
@@ -11,12 +11,14 @@
.slider::-webkit-slider-container {
width: 100%;
height: 100%;
+ min-block-size: 0;
background-color: rgb(var(--color-primary) / 50%);
border-radius: 9999px;
display: block;
box-sizing: border-box;
background-clip: content-box;
padding: 0.25em;
+ appearance: none;
}
.slider::-webkit-slider-runnable-track {
@@ -32,7 +34,7 @@
.slider::-webkit-slider-thumb {
width: 1em;
- height: 200%;
+ height: 1em;
margin: -0.25em 0 0 0;
border-radius: 9999px;
@@ -60,7 +62,20 @@
box-shadow: -100000.5em 0 0 100000em rgb(var(--color-tertiary) / 50%);
}
-.slider[data-orient='vertical'] {
+.slider-wrapper[data-orient='horizontal'] {
+ flex-direction: column;
+}
+
+.slider-wrapper[data-firefox] {
+ flex-direction: column;
+}
+
+.slider-wrapper[data-firefox='vertical'] {
+ flex-direction: row;
+}
+
+.slider-wrapper[data-orient='vertical'] {
+ flex-direction: column;
rotate: -90deg;
translate: calc(-100% + 0.5em * 2);
transform-origin: calc(100% - 0.5em) 0.5em;
@@ -125,3 +140,22 @@
.slider[orient='vertical']:active::-moz-range-thumb {
box-shadow: 0 100000.5em 0 100000em rgb(var(--color-tertiary) / 50%);
}
+
+.slider[orient='vertical'] + .tick-mark-container {
+ flex-direction: row;
+}
+
+.slider-wrapper[data-chrome] > input + * {
+ padding: 0 0.5em;
+ height: 1.5em;
+}
+
+.slider-wrapper[data-firefox='horizontal'] > input + * {
+ padding: 0 0.5em;
+ height: 1.5em;
+}
+
+.slider-wrapper[data-firefox='vertical'] > input + * {
+ padding: 0.5em 0;
+ width: 1.5em;
+}
diff --git a/packages/web-kitchensink-reactnext/src/categories/number/react/components/Spinner/index.tsx b/packages/web-kitchensink-reactnext/src/categories/number/react/components/Spinner/index.tsx
index b1d1185..de5cf65 100644
--- a/packages/web-kitchensink-reactnext/src/categories/number/react/components/Spinner/index.tsx
+++ b/packages/web-kitchensink-reactnext/src/categories/number/react/components/Spinner/index.tsx
@@ -113,7 +113,7 @@ export const Spinner = React.forwardRef(
/>
{
label && (
- (
},
)}
>
-
+
{label}
-
-
+
+
)
}
{hint && (
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/ComboBox/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/ComboBox/index.tsx
new file mode 100644
index 0000000..48ff03d
--- /dev/null
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/ComboBox/index.tsx
@@ -0,0 +1,203 @@
+import * as React from 'react';
+import * as TextControlBase from '@tesseract-design/web-base-textcontrol';
+import clsx from 'clsx';
+
+type ComboBoxDerivedElement = HTMLInputElement;
+
+export interface ComboBoxProps extends Omit, 'size' | 'type' | 'style' | 'label' | 'list'> {
+ /**
+ * Short textual description indicating the nature of the component's value.
+ */
+ label?: React.ReactNode,
+ /**
+ * Short textual description as guidelines for valid input values.
+ */
+ hint?: React.ReactNode,
+ /**
+ * Size of the component.
+ */
+ size?: TextControlBase.TextControlSize,
+ /**
+ * Additional description, usually graphical, indicating the nature of the component's value.
+ */
+ indicator?: React.ReactNode,
+ /**
+ * Should the component display a border?
+ */
+ border?: boolean,
+ /**
+ * Should the component occupy the whole width of its parent?
+ */
+ block?: boolean,
+ /**
+ * Type of the component value.
+ */
+ type?: TextControlBase.TextControlInputType,
+ /**
+ * Style of the component.
+ */
+ variant?: TextControlBase.TextControlVariant,
+ /**
+ * Is the label hidden?
+ */
+ hiddenLabel?: boolean,
+}
+
+/**
+ * Component for inputting textual values.
+ *
+ * This component supports multiline input and adjusts its layout accordingly.
+ */
+export const ComboBox = React.forwardRef(
+ (
+ {
+ label = '',
+ hint = '',
+ indicator,
+ size = 'medium' as const,
+ border = false,
+ block = false,
+ type = 'text' as const,
+ variant = 'default' as const,
+ hiddenLabel = false,
+ className,
+ ...etcProps
+ }: ComboBoxProps,
+ ref,
+ ) => {
+ const labelId = React.useId();
+
+ return (
+
+
+ {
+ label && (
+
+ )
+ }
+ {hint && (
+
+ )}
+ {indicator && (
+
+ {indicator}
+
+ )}
+ {
+ border && (
+
+ )
+ }
+
+ );
+ }
+);
+
+ComboBox.displayName = 'ComboBox';
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/DropdownSelect/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/DropdownSelect/index.tsx
index 723f94c..ab835c8 100644
--- a/packages/web-kitchensink-reactnext/src/categories/option/react/components/DropdownSelect/index.tsx
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/DropdownSelect/index.tsx
@@ -1,5 +1,210 @@
-export const DropdownSelect = () => {
- return (
-
- )
-};
+import * as React from 'react';
+import * as TextControlBase from '@tesseract-design/web-base-textcontrol';
+import * as SelectControlBase from '@tesseract-design/web-base-selectcontrol';
+import clsx from 'clsx';
+import {RenderOptions} from '@/categories/option/react';
+
+type DropdownSelectDerivedElement = HTMLSelectElement;
+
+export interface DropdownSelectProps extends Omit, 'size' | 'type' | 'style' | 'label' | 'list'> {
+ /**
+ * Short textual description indicating the nature of the component's value.
+ */
+ label?: React.ReactNode,
+ /**
+ * Short textual description as guidelines for valid input values.
+ */
+ hint?: React.ReactNode,
+ /**
+ * Size of the component.
+ */
+ size?: TextControlBase.TextControlSize,
+ /**
+ * Additional description, usually graphical, indicating the nature of the component's value.
+ */
+ indicator?: React.ReactNode,
+ /**
+ * Should the component display a border?
+ */
+ border?: boolean,
+ /**
+ * Should the component occupy the whole width of its parent?
+ */
+ block?: boolean,
+ /**
+ * Type of the component value.
+ */
+ type?: TextControlBase.TextControlInputType,
+ /**
+ * Style of the component.
+ */
+ variant?: TextControlBase.TextControlVariant,
+ /**
+ * Is the label hidden?
+ */
+ hiddenLabel?: boolean,
+ options?: SelectControlBase.SelectOption[],
+}
+
+/**
+ * Component for inputting textual values.
+ *
+ * This component supports multiline input and adjusts its layout accordingly.
+ */
+export const DropdownSelect = React.forwardRef(
+ (
+ {
+ label = '',
+ hint = '',
+ indicator,
+ size = 'medium' as const,
+ border = false,
+ block = false,
+ type = 'text' as const,
+ variant = 'default' as const,
+ hiddenLabel = false,
+ className,
+ options = [],
+ children,
+ ...etcProps
+ }: DropdownSelectProps,
+ ref,
+ ) => {
+ const labelId = React.useId();
+ console.log(children);
+
+ return (
+
+
+ {
+ label && (
+
+ )
+ }
+ {hint && (
+
+ )}
+ {indicator && (
+
+ {indicator}
+
+ )}
+ {
+ border && (
+
+ )
+ }
+
+ );
+ }
+);
+
+DropdownSelect.displayName = 'DropdownSelect';
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/MenuSelect/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/MenuSelect/index.tsx
new file mode 100644
index 0000000..db9c7e1
--- /dev/null
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/MenuSelect/index.tsx
@@ -0,0 +1,23 @@
+import * as React from 'react';
+
+type MenuSelectDerivedElement = HTMLSelectElement;
+
+export interface MenuSelectProps extends React.HTMLProps {
+
+}
+
+export const MenuSelect = React.forwardRef(({
+ children,
+ ...etcProps
+}, forwardedRef) => {
+ return (
+
+
+
+ )
+});
+
+MenuSelect.displayName = 'MenuSelect';
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/RadioButton/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/RadioButton/index.tsx
new file mode 100644
index 0000000..e15412e
--- /dev/null
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/RadioButton/index.tsx
@@ -0,0 +1,3 @@
+export const RadioButton = () => (
+
+);
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/RadioTickBox/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/RadioTickBox/index.tsx
new file mode 100644
index 0000000..417d395
--- /dev/null
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/RadioTickBox/index.tsx
@@ -0,0 +1,3 @@
+export const RadioTickBox = () => (
+
+);
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/RenderOptions/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/RenderOptions/index.tsx
new file mode 100644
index 0000000..6ebdb51
--- /dev/null
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/RenderOptions/index.tsx
@@ -0,0 +1,76 @@
+import * as SelectControlBase from '@/base/selectcontrol';
+import * as React from 'react';
+
+export interface RenderOptionsProps {
+ options: SelectControlBase.SelectOption[],
+ optionComponent?: React.ElementType,
+ optgroupComponent?: React.ElementType,
+ level?: number,
+}
+
+export const RenderOptions: React.FC = ({
+ options,
+ optionComponent: Option = 'option',
+ optgroupComponent: Optgroup = 'optgroup',
+ level = 0,
+}: RenderOptionsProps) => (
+ options.map((o) => {
+ if (typeof o === 'number' || typeof o === 'string') {
+ return (
+
+ );
+ }
+
+ if (typeof o.value !== 'undefined') {
+ return (
+
+ );
+ }
+
+ if (typeof o.children !== 'undefined') {
+ if (level === 0) {
+ return (
+
+ );
+ }
+ return (
+
+
+
+
+ );
+ }
+
+ return null;
+ })
+);
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/TagInput/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/TagInput/index.tsx
new file mode 100644
index 0000000..d355256
--- /dev/null
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/TagInput/index.tsx
@@ -0,0 +1,203 @@
+import * as React from 'react';
+import * as TextControlBase from '@tesseract-design/web-base-textcontrol';
+import clsx from 'clsx';
+
+type TagInputDerivedElement = HTMLInputElement;
+
+export interface TagInputProps extends Omit, 'size' | 'type' | 'style' | 'label' | 'list'> {
+ /**
+ * Short textual description indicating the nature of the component's value.
+ */
+ label?: React.ReactNode,
+ /**
+ * Short textual description as guidelines for valid input values.
+ */
+ hint?: React.ReactNode,
+ /**
+ * Size of the component.
+ */
+ size?: TextControlBase.TextControlSize,
+ /**
+ * Additional description, usually graphical, indicating the nature of the component's value.
+ */
+ indicator?: React.ReactNode,
+ /**
+ * Should the component display a border?
+ */
+ border?: boolean,
+ /**
+ * Should the component occupy the whole width of its parent?
+ */
+ block?: boolean,
+ /**
+ * Type of the component value.
+ */
+ type?: TextControlBase.TextControlInputType,
+ /**
+ * Style of the component.
+ */
+ variant?: TextControlBase.TextControlVariant,
+ /**
+ * Is the label hidden?
+ */
+ hiddenLabel?: boolean,
+}
+
+/**
+ * Component for inputting textual values.
+ *
+ * This component supports multiline input and adjusts its layout accordingly.
+ */
+export const TagInput = React.forwardRef(
+ (
+ {
+ label = '',
+ hint = '',
+ indicator,
+ size = 'medium' as const,
+ border = false,
+ block = false,
+ type = 'text' as const,
+ variant = 'default' as const,
+ hiddenLabel = false,
+ className,
+ ...etcProps
+ }: TagInputProps,
+ ref,
+ ) => {
+ const labelId = React.useId();
+
+ return (
+
+
+ {
+ label && (
+
+ )
+ }
+ {hint && (
+
+ )}
+ {indicator && (
+
+ {indicator}
+
+ )}
+ {
+ border && (
+
+ )
+ }
+
+ );
+ }
+);
+
+TagInput.displayName = 'TagInput';
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/ToggleButton/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/ToggleButton/index.tsx
new file mode 100644
index 0000000..357c4cc
--- /dev/null
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/ToggleButton/index.tsx
@@ -0,0 +1,3 @@
+export const ToggleButton = () => (
+
+);
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/ToggleSwitch/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/ToggleSwitch/index.tsx
new file mode 100644
index 0000000..22b25e7
--- /dev/null
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/ToggleSwitch/index.tsx
@@ -0,0 +1,3 @@
+export const ToggleSwitch = () => (
+
+);
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/components/ToggleTickBox/index.tsx b/packages/web-kitchensink-reactnext/src/categories/option/react/components/ToggleTickBox/index.tsx
new file mode 100644
index 0000000..4b7cb6b
--- /dev/null
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/components/ToggleTickBox/index.tsx
@@ -0,0 +1,3 @@
+export const ToggleTickBox = () => (
+
+);
diff --git a/packages/web-kitchensink-reactnext/src/categories/option/react/index.ts b/packages/web-kitchensink-reactnext/src/categories/option/react/index.ts
index 97e0183..af1c6fb 100644
--- a/packages/web-kitchensink-reactnext/src/categories/option/react/index.ts
+++ b/packages/web-kitchensink-reactnext/src/categories/option/react/index.ts
@@ -1 +1,10 @@
+export * from './components/ComboBox';
export * from './components/DropdownSelect';
+export * from './components/MenuSelect';
+export * from './components/RadioButton';
+export * from './components/RadioTickBox';
+export * from './components/RenderOptions';
+export * from './components/TagInput';
+export * from './components/ToggleButton';
+export * from './components/ToggleSwitch';
+export * from './components/ToggleTickBox';
diff --git a/packages/web-kitchensink-reactnext/src/pages/categories/number/index.tsx b/packages/web-kitchensink-reactnext/src/pages/categories/number/index.tsx
index ea6fc2b..104f5b2 100644
--- a/packages/web-kitchensink-reactnext/src/pages/categories/number/index.tsx
+++ b/packages/web-kitchensink-reactnext/src/pages/categories/number/index.tsx
@@ -21,16 +21,30 @@ const NumberPage: NextPage = () => {
+
+
+
+
+
+
+ >
+
+
+
A
diff --git a/packages/web-kitchensink-reactnext/src/pages/categories/option/index.tsx b/packages/web-kitchensink-reactnext/src/pages/categories/option/index.tsx
index fd58804..fca8afd 100644
--- a/packages/web-kitchensink-reactnext/src/pages/categories/option/index.tsx
+++ b/packages/web-kitchensink-reactnext/src/pages/categories/option/index.tsx
@@ -1,8 +1,6 @@
import { NextPage } from 'next';
-import { TextControlSize, TextControlVariant } from '@tesseract-design/web-base-textcontrol';
import * as Option from '@tesseract-design/web-option-react';
import * as SelectControlBase from '@tesseract-design/web-base-selectcontrol';
-import { ButtonSize, ButtonVariant } from '@tesseract-design/web-base-button';
import { DefaultLayout } from '@/components/DefaultLayout';
type Props = {
@@ -70,17 +68,20 @@ const OptionPage: NextPage = ({
+ >
+
+
= ({
= ({
= ({
{' '}
but you can call me
@@ -203,7 +204,7 @@ const OptionPage: NextPage = ({
.
@@ -216,8 +217,8 @@ const OptionPage: NextPage = ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
@@ -637,7 +638,7 @@ const OptionPage: NextPage = ({
@@ -655,7 +656,7 @@ const OptionPage: NextPage = ({
= ({
= ({
Button
@@ -705,8 +706,8 @@ const OptionPage: NextPage = ({
Button
@@ -716,7 +717,7 @@ const OptionPage: NextPage = ({
Button
@@ -726,8 +727,8 @@ const OptionPage: NextPage = ({
Button
@@ -737,7 +738,7 @@ const OptionPage: NextPage = ({
Button
@@ -747,8 +748,8 @@ const OptionPage: NextPage = ({
Button
@@ -776,7 +777,7 @@ const OptionPage: NextPage = ({
block
compact
border
- variant={ButtonVariant.FILLED}
+ variant="filled"
name="RadioButton"
>
Button
@@ -802,7 +803,7 @@ const OptionPage: NextPage = ({
block
compact
border
- variant={ButtonVariant.FILLED}
+ variant="filled"
name="RadioButton"
subtext={
<>
@@ -818,7 +819,7 @@ const OptionPage: NextPage = ({
block
compact
border
- size={ButtonSize.SMALL}
+ size="small"
name="RadioButton"
subtext={
<>
@@ -834,8 +835,8 @@ const OptionPage: NextPage = ({
block
compact
border
- variant={ButtonVariant.FILLED}
- size={ButtonSize.SMALL}
+ variant="filled"
+ size="small"
name="RadioButton"
subtext={
<>
@@ -887,7 +888,7 @@ const OptionPage: NextPage = ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
= ({
enhanced
border
block
- style={TextControlVariant.ALTERNATE}
- size={TextControlSize.LARGE}
+ variant="alternate"
+ size="large"
label="TagInput"
hint="Type anything here…"
indicator="A"
@@ -1043,7 +1044,7 @@ const OptionPage: NextPage = ({
= ({
= ({
Button
@@ -1105,7 +1106,7 @@ const OptionPage: NextPage = ({
Button
@@ -1121,7 +1122,7 @@ const OptionPage: NextPage = ({
@@ -1140,7 +1141,7 @@ const OptionPage: NextPage = ({
@@ -1159,7 +1160,7 @@ const OptionPage: NextPage = ({
@@ -1177,7 +1178,7 @@ const OptionPage: NextPage = ({
Button
@@ -1186,8 +1187,8 @@ const OptionPage: NextPage = ({
Button
@@ -1196,7 +1197,7 @@ const OptionPage: NextPage = ({
Button
@@ -1205,8 +1206,8 @@ const OptionPage: NextPage = ({
Button
@@ -1215,7 +1216,7 @@ const OptionPage: NextPage = ({
Button
@@ -1224,8 +1225,8 @@ const OptionPage: NextPage = ({
Button
@@ -1251,7 +1252,7 @@ const OptionPage: NextPage = ({
block
compact
border
- variant={ButtonVariant.FILLED}
+ variant="filled"
>
Button
@@ -1275,7 +1276,7 @@ const OptionPage: NextPage
= ({
block
compact
border
- variant={ButtonVariant.FILLED}
+ variant="filled"
subtext={
<>
Subtext
@@ -1290,7 +1291,7 @@ const OptionPage: NextPage = ({
block
compact
border
- size={ButtonSize.SMALL}
+ size="small"
subtext={
<>
Subtext
@@ -1305,8 +1306,8 @@ const OptionPage: NextPage = ({
block
compact
border
- variant={ButtonVariant.FILLED}
- size={ButtonSize.SMALL}
+ variant="filled"
+ size="small"
subtext={
<>
Subtext
@@ -1422,7 +1423,7 @@ const OptionPage: NextPage = ({