@ttoss/fsl-ui 0.2.4
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.
- package/LICENSE +21 -0
- package/README.md +76 -0
- package/dist/_virtual/_rolldown/runtime.cjs +30 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.cjs +129 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.cts +61 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.mts +61 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.mjs +126 -0
- package/dist/components/Button/Button.cjs +80 -0
- package/dist/components/Button/Button.d.cts +68 -0
- package/dist/components/Button/Button.d.mts +68 -0
- package/dist/components/Button/Button.mjs +79 -0
- package/dist/components/Checkbox/Checkbox.cjs +183 -0
- package/dist/components/Checkbox/Checkbox.d.cts +45 -0
- package/dist/components/Checkbox/Checkbox.d.mts +45 -0
- package/dist/components/Checkbox/Checkbox.mjs +182 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.cjs +97 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.d.cts +56 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.d.mts +56 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.mjs +96 -0
- package/dist/components/FileTrigger/FileTrigger.cjs +51 -0
- package/dist/components/FileTrigger/FileTrigger.d.cts +52 -0
- package/dist/components/FileTrigger/FileTrigger.d.mts +52 -0
- package/dist/components/FileTrigger/FileTrigger.mjs +50 -0
- package/dist/components/GridList/GridList.cjs +220 -0
- package/dist/components/GridList/GridList.d.cts +72 -0
- package/dist/components/GridList/GridList.d.mts +72 -0
- package/dist/components/GridList/GridList.mjs +217 -0
- package/dist/components/Group/Group.cjs +77 -0
- package/dist/components/Group/Group.d.cts +61 -0
- package/dist/components/Group/Group.d.mts +61 -0
- package/dist/components/Group/Group.mjs +74 -0
- package/dist/components/Icon/Icon.cjs +52 -0
- package/dist/components/Icon/Icon.mjs +52 -0
- package/dist/components/Icon/glyphs.cjs +72 -0
- package/dist/components/Icon/glyphs.mjs +63 -0
- package/dist/components/Link/Link.cjs +62 -0
- package/dist/components/Link/Link.d.cts +38 -0
- package/dist/components/Link/Link.d.mts +38 -0
- package/dist/components/Link/Link.mjs +61 -0
- package/dist/components/ListBox/ListBox.cjs +126 -0
- package/dist/components/ListBox/ListBox.d.cts +63 -0
- package/dist/components/ListBox/ListBox.d.mts +63 -0
- package/dist/components/ListBox/ListBox.mjs +123 -0
- package/dist/components/Meter/Meter.cjs +126 -0
- package/dist/components/Meter/Meter.d.cts +63 -0
- package/dist/components/Meter/Meter.d.mts +63 -0
- package/dist/components/Meter/Meter.mjs +125 -0
- package/dist/components/NumberField/NumberField.cjs +221 -0
- package/dist/components/NumberField/NumberField.d.cts +68 -0
- package/dist/components/NumberField/NumberField.d.mts +68 -0
- package/dist/components/NumberField/NumberField.mjs +220 -0
- package/dist/components/ProgressBar/ProgressBar.cjs +132 -0
- package/dist/components/ProgressBar/ProgressBar.d.cts +56 -0
- package/dist/components/ProgressBar/ProgressBar.d.mts +56 -0
- package/dist/components/ProgressBar/ProgressBar.mjs +129 -0
- package/dist/components/RadioGroup/RadioGroup.cjs +218 -0
- package/dist/components/RadioGroup/RadioGroup.d.cts +82 -0
- package/dist/components/RadioGroup/RadioGroup.d.mts +82 -0
- package/dist/components/RadioGroup/RadioGroup.mjs +215 -0
- package/dist/components/Select/Select.cjs +253 -0
- package/dist/components/Select/Select.d.cts +86 -0
- package/dist/components/Select/Select.d.mts +86 -0
- package/dist/components/Select/Select.mjs +250 -0
- package/dist/components/Separator/Separator.cjs +64 -0
- package/dist/components/Separator/Separator.d.cts +44 -0
- package/dist/components/Separator/Separator.d.mts +44 -0
- package/dist/components/Separator/Separator.mjs +63 -0
- package/dist/components/Slider/Slider.cjs +160 -0
- package/dist/components/Slider/Slider.d.cts +45 -0
- package/dist/components/Slider/Slider.d.mts +45 -0
- package/dist/components/Slider/Slider.mjs +159 -0
- package/dist/components/Switch/Switch.cjs +176 -0
- package/dist/components/Switch/Switch.d.cts +43 -0
- package/dist/components/Switch/Switch.d.mts +43 -0
- package/dist/components/Switch/Switch.mjs +175 -0
- package/dist/components/Tabs/Tabs.cjs +180 -0
- package/dist/components/Tabs/Tabs.d.cts +85 -0
- package/dist/components/Tabs/Tabs.d.mts +85 -0
- package/dist/components/Tabs/Tabs.mjs +173 -0
- package/dist/components/Toast/Toast.cjs +218 -0
- package/dist/components/Toast/Toast.d.cts +96 -0
- package/dist/components/Toast/Toast.d.mts +96 -0
- package/dist/components/Toast/Toast.mjs +214 -0
- package/dist/components/ToggleButton/ToggleButton.cjs +125 -0
- package/dist/components/ToggleButton/ToggleButton.d.cts +43 -0
- package/dist/components/ToggleButton/ToggleButton.d.mts +43 -0
- package/dist/components/ToggleButton/ToggleButton.mjs +124 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.cjs +48 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.d.cts +41 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.d.mts +41 -0
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.mjs +47 -0
- package/dist/components/Toolbar/Toolbar.cjs +67 -0
- package/dist/components/Toolbar/Toolbar.d.cts +60 -0
- package/dist/components/Toolbar/Toolbar.d.mts +60 -0
- package/dist/components/Toolbar/Toolbar.mjs +66 -0
- package/dist/composites/Accordion/Accordion.cjs +279 -0
- package/dist/composites/Accordion/Accordion.d.cts +176 -0
- package/dist/composites/Accordion/Accordion.d.mts +176 -0
- package/dist/composites/Accordion/Accordion.mjs +270 -0
- package/dist/composites/ConfirmationDialog/ConfirmationDialog.cjs +206 -0
- package/dist/composites/ConfirmationDialog/ConfirmationDialog.d.cts +166 -0
- package/dist/composites/ConfirmationDialog/ConfirmationDialog.d.mts +166 -0
- package/dist/composites/ConfirmationDialog/ConfirmationDialog.mjs +203 -0
- package/dist/composites/Dialog/Dialog.cjs +372 -0
- package/dist/composites/Dialog/Dialog.d.cts +234 -0
- package/dist/composites/Dialog/Dialog.d.mts +234 -0
- package/dist/composites/Dialog/Dialog.mjs +360 -0
- package/dist/composites/Disclosure/Disclosure.cjs +214 -0
- package/dist/composites/Disclosure/Disclosure.d.cts +118 -0
- package/dist/composites/Disclosure/Disclosure.d.mts +118 -0
- package/dist/composites/Disclosure/Disclosure.mjs +207 -0
- package/dist/composites/Form/Form.cjs +161 -0
- package/dist/composites/Form/Form.d.cts +176 -0
- package/dist/composites/Form/Form.d.mts +176 -0
- package/dist/composites/Form/Form.mjs +156 -0
- package/dist/composites/Menu/Menu.cjs +190 -0
- package/dist/composites/Menu/Menu.d.cts +158 -0
- package/dist/composites/Menu/Menu.d.mts +158 -0
- package/dist/composites/Menu/Menu.mjs +186 -0
- package/dist/composites/Popover/Popover.cjs +80 -0
- package/dist/composites/Popover/Popover.d.cts +56 -0
- package/dist/composites/Popover/Popover.d.mts +56 -0
- package/dist/composites/Popover/Popover.mjs +78 -0
- package/dist/composites/SearchField/SearchField.cjs +194 -0
- package/dist/composites/SearchField/SearchField.d.cts +81 -0
- package/dist/composites/SearchField/SearchField.d.mts +81 -0
- package/dist/composites/SearchField/SearchField.mjs +189 -0
- package/dist/composites/TagGroup/TagGroup.cjs +212 -0
- package/dist/composites/TagGroup/TagGroup.d.cts +84 -0
- package/dist/composites/TagGroup/TagGroup.d.mts +84 -0
- package/dist/composites/TagGroup/TagGroup.mjs +209 -0
- package/dist/composites/TextArea/TextArea.cjs +190 -0
- package/dist/composites/TextArea/TextArea.d.cts +95 -0
- package/dist/composites/TextArea/TextArea.d.mts +95 -0
- package/dist/composites/TextArea/TextArea.mjs +181 -0
- package/dist/composites/TextField/TextField.cjs +200 -0
- package/dist/composites/TextField/TextField.d.cts +111 -0
- package/dist/composites/TextField/TextField.d.mts +111 -0
- package/dist/composites/TextField/TextField.mjs +191 -0
- package/dist/composites/Tooltip/Tooltip.cjs +79 -0
- package/dist/composites/Tooltip/Tooltip.d.cts +53 -0
- package/dist/composites/Tooltip/Tooltip.d.mts +53 -0
- package/dist/composites/Tooltip/Tooltip.mjs +77 -0
- package/dist/composites/Wizard/Wizard.cjs +333 -0
- package/dist/composites/Wizard/Wizard.d.cts +206 -0
- package/dist/composites/Wizard/Wizard.d.mts +206 -0
- package/dist/composites/Wizard/Wizard.mjs +324 -0
- package/dist/composites/scope.cjs +124 -0
- package/dist/composites/scope.mjs +121 -0
- package/dist/index.cjs +186 -0
- package/dist/index.d.cts +37 -0
- package/dist/index.d.mts +37 -0
- package/dist/index.mjs +39 -0
- package/dist/semantics/componentMeta.d.cts +37 -0
- package/dist/semantics/componentMeta.d.mts +37 -0
- package/dist/semantics/index.cjs +16 -0
- package/dist/semantics/index.d.cts +4 -0
- package/dist/semantics/index.d.mts +4 -0
- package/dist/semantics/index.mjs +3 -0
- package/dist/semantics/taxonomy.cjs +150 -0
- package/dist/semantics/taxonomy.d.cts +153 -0
- package/dist/semantics/taxonomy.d.mts +153 -0
- package/dist/semantics/taxonomy.mjs +140 -0
- package/dist/tokens/escapeHatch.cjs +13 -0
- package/dist/tokens/escapeHatch.mjs +13 -0
- package/dist/tokens/focusRing.cjs +28 -0
- package/dist/tokens/focusRing.mjs +28 -0
- package/dist/tokens/keyframes.cjs +76 -0
- package/dist/tokens/keyframes.mjs +75 -0
- package/dist/tokens/resolveInteractiveStyle.cjs +41 -0
- package/dist/tokens/resolveInteractiveStyle.mjs +41 -0
- package/llms.txt +142 -0
- package/package.json +70 -0
- package/src/tokens/CONTRACT.md +505 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
|
|
2
|
+
const require_focusRing = require('../../tokens/focusRing.cjs');
|
|
3
|
+
let _ttoss_fsl_theme_vars = require("@ttoss/fsl-theme/vars");
|
|
4
|
+
let react_aria_components = require("react-aria-components");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
|
|
7
|
+
//#region src/components/ToggleButton/ToggleButton.tsx
|
|
8
|
+
/** Formal semantic identity — ToggleButton root (Action entity, toggle). */
|
|
9
|
+
var toggleButtonMeta = {
|
|
10
|
+
displayName: "ToggleButton",
|
|
11
|
+
entity: "Action",
|
|
12
|
+
structure: "root"
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Background cascade: disabled ▸ transient press (`active`) ▸ persistent
|
|
16
|
+
* toggle (`pressed`) ▸ hover ▸ default. The `active` level dominates
|
|
17
|
+
* `pressed` so a click on an engaged toggle still gives press feedback.
|
|
18
|
+
*/
|
|
19
|
+
var resolveToggleBackground = (bg, {
|
|
20
|
+
isDisabled,
|
|
21
|
+
isPressed,
|
|
22
|
+
isSelected,
|
|
23
|
+
isHovered
|
|
24
|
+
}) => {
|
|
25
|
+
if (isDisabled) return bg.disabled;
|
|
26
|
+
if (isPressed) return bg.active;
|
|
27
|
+
if (isSelected) return bg.pressed;
|
|
28
|
+
if (isHovered) return bg.hover;
|
|
29
|
+
return bg.default;
|
|
30
|
+
};
|
|
31
|
+
/** Text cascade — same order, with `?? default` since not every voice defines every state. */
|
|
32
|
+
var resolveToggleText = (text, {
|
|
33
|
+
isDisabled,
|
|
34
|
+
isPressed,
|
|
35
|
+
isSelected,
|
|
36
|
+
isHovered
|
|
37
|
+
}) => {
|
|
38
|
+
if (isDisabled) return text.disabled;
|
|
39
|
+
if (isPressed) return text.active ?? text.default;
|
|
40
|
+
if (isSelected) return text.pressed ?? text.default;
|
|
41
|
+
if (isHovered) return text.hover ?? text.default;
|
|
42
|
+
return text.default;
|
|
43
|
+
};
|
|
44
|
+
/** Border cascade: focus ring wins ▸ disabled ▸ toggle-on ▸ default. */
|
|
45
|
+
var resolveToggleBorder = (border, {
|
|
46
|
+
isFocusVisible,
|
|
47
|
+
isDisabled,
|
|
48
|
+
isSelected
|
|
49
|
+
}) => {
|
|
50
|
+
if (isFocusVisible) return border.focused;
|
|
51
|
+
if (isDisabled) return border.disabled;
|
|
52
|
+
if (isSelected) return border.pressed ?? border.default;
|
|
53
|
+
return border.default;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* A two-state toggle button (Action entity). Unlike `Button`, its selection
|
|
57
|
+
* is persistent: the engaged state renders the `pressed` color (not the
|
|
58
|
+
* transient `active`), and React Aria exposes it via `aria-pressed`.
|
|
59
|
+
*
|
|
60
|
+
* Use for toolbar toggles ("Bold", "Italic") and single on/off controls that
|
|
61
|
+
* read as buttons. For a set of mutually-related toggles, wrap them in
|
|
62
|
+
* `ToggleButtonGroup`.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```tsx
|
|
66
|
+
* <ToggleButton>Bold</ToggleButton>
|
|
67
|
+
* <ToggleButton defaultSelected>Grid view</ToggleButton>
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
var ToggleButton = ({
|
|
71
|
+
evaluation = "primary",
|
|
72
|
+
...props
|
|
73
|
+
}) => {
|
|
74
|
+
const colors = _ttoss_fsl_theme_vars.vars.colors.action[evaluation];
|
|
75
|
+
return /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.ToggleButton, {
|
|
76
|
+
...props,
|
|
77
|
+
"data-scope": "toggle-button",
|
|
78
|
+
"data-part": "root",
|
|
79
|
+
"data-evaluation": evaluation,
|
|
80
|
+
style: ({
|
|
81
|
+
isHovered,
|
|
82
|
+
isPressed,
|
|
83
|
+
isSelected,
|
|
84
|
+
isDisabled,
|
|
85
|
+
isFocusVisible
|
|
86
|
+
}) => {
|
|
87
|
+
const flags = {
|
|
88
|
+
isHovered,
|
|
89
|
+
isPressed,
|
|
90
|
+
isSelected,
|
|
91
|
+
isDisabled
|
|
92
|
+
};
|
|
93
|
+
return {
|
|
94
|
+
boxSizing: "border-box",
|
|
95
|
+
display: "inline-flex",
|
|
96
|
+
alignItems: "center",
|
|
97
|
+
justifyContent: "center",
|
|
98
|
+
cursor: isDisabled ? "not-allowed" : "pointer",
|
|
99
|
+
borderRadius: _ttoss_fsl_theme_vars.vars.radii.control,
|
|
100
|
+
borderWidth: _ttoss_fsl_theme_vars.vars.border.outline.control.width,
|
|
101
|
+
borderStyle: _ttoss_fsl_theme_vars.vars.border.outline.control.style,
|
|
102
|
+
minHeight: _ttoss_fsl_theme_vars.vars.sizing.hit.base,
|
|
103
|
+
paddingBlock: _ttoss_fsl_theme_vars.vars.spacing.inset.control.sm,
|
|
104
|
+
paddingInline: _ttoss_fsl_theme_vars.vars.spacing.inset.control.lg,
|
|
105
|
+
..._ttoss_fsl_theme_vars.vars.text.label.md,
|
|
106
|
+
transitionDuration: _ttoss_fsl_theme_vars.vars.motion.feedback.duration,
|
|
107
|
+
transitionTimingFunction: _ttoss_fsl_theme_vars.vars.motion.feedback.easing,
|
|
108
|
+
transitionProperty: "background-color, border-color, color",
|
|
109
|
+
backgroundColor: colors?.background ? resolveToggleBackground(colors.background, flags) : void 0,
|
|
110
|
+
borderColor: colors?.border ? resolveToggleBorder(colors.border, {
|
|
111
|
+
isFocusVisible,
|
|
112
|
+
isDisabled,
|
|
113
|
+
isSelected
|
|
114
|
+
}) : void 0,
|
|
115
|
+
color: colors?.text ? resolveToggleText(colors.text, flags) : void 0,
|
|
116
|
+
outline: require_focusRing.focusRingOutline(isFocusVisible)
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
ToggleButton.displayName = toggleButtonMeta.displayName;
|
|
122
|
+
|
|
123
|
+
//#endregion
|
|
124
|
+
exports.ToggleButton = ToggleButton;
|
|
125
|
+
exports.toggleButtonMeta = toggleButtonMeta;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
|
|
2
|
+
import { EvaluationsFor } from "../../semantics/taxonomy.cjs";
|
|
3
|
+
import { ToggleButtonProps } from "react-aria-components";
|
|
4
|
+
|
|
5
|
+
//#region src/components/ToggleButton/ToggleButton.d.ts
|
|
6
|
+
/** Formal semantic identity — ToggleButton root (Action entity, toggle). */
|
|
7
|
+
declare const toggleButtonMeta: {
|
|
8
|
+
readonly displayName: "ToggleButton";
|
|
9
|
+
readonly entity: "Action";
|
|
10
|
+
readonly structure: "root";
|
|
11
|
+
};
|
|
12
|
+
/** Props for the ToggleButton component. */
|
|
13
|
+
interface ToggleButtonProps$1 extends Omit<ToggleButtonProps, 'style'> {
|
|
14
|
+
/**
|
|
15
|
+
* Semantic emphasis.
|
|
16
|
+
* @default 'primary'
|
|
17
|
+
*/
|
|
18
|
+
evaluation?: EvaluationsFor<(typeof toggleButtonMeta)['entity']>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A two-state toggle button (Action entity). Unlike `Button`, its selection
|
|
22
|
+
* is persistent: the engaged state renders the `pressed` color (not the
|
|
23
|
+
* transient `active`), and React Aria exposes it via `aria-pressed`.
|
|
24
|
+
*
|
|
25
|
+
* Use for toolbar toggles ("Bold", "Italic") and single on/off controls that
|
|
26
|
+
* read as buttons. For a set of mutually-related toggles, wrap them in
|
|
27
|
+
* `ToggleButtonGroup`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <ToggleButton>Bold</ToggleButton>
|
|
32
|
+
* <ToggleButton defaultSelected>Grid view</ToggleButton>
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare const ToggleButton: {
|
|
36
|
+
({
|
|
37
|
+
evaluation,
|
|
38
|
+
...props
|
|
39
|
+
}: ToggleButtonProps$1): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
displayName: "ToggleButton";
|
|
41
|
+
};
|
|
42
|
+
//#endregion
|
|
43
|
+
export { ToggleButton, ToggleButtonProps$1 as ToggleButtonProps, toggleButtonMeta };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
|
|
2
|
+
import { EvaluationsFor } from "../../semantics/taxonomy.mjs";
|
|
3
|
+
import { ToggleButtonProps } from "react-aria-components";
|
|
4
|
+
|
|
5
|
+
//#region src/components/ToggleButton/ToggleButton.d.ts
|
|
6
|
+
/** Formal semantic identity — ToggleButton root (Action entity, toggle). */
|
|
7
|
+
declare const toggleButtonMeta: {
|
|
8
|
+
readonly displayName: "ToggleButton";
|
|
9
|
+
readonly entity: "Action";
|
|
10
|
+
readonly structure: "root";
|
|
11
|
+
};
|
|
12
|
+
/** Props for the ToggleButton component. */
|
|
13
|
+
interface ToggleButtonProps$1 extends Omit<ToggleButtonProps, 'style'> {
|
|
14
|
+
/**
|
|
15
|
+
* Semantic emphasis.
|
|
16
|
+
* @default 'primary'
|
|
17
|
+
*/
|
|
18
|
+
evaluation?: EvaluationsFor<(typeof toggleButtonMeta)['entity']>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A two-state toggle button (Action entity). Unlike `Button`, its selection
|
|
22
|
+
* is persistent: the engaged state renders the `pressed` color (not the
|
|
23
|
+
* transient `active`), and React Aria exposes it via `aria-pressed`.
|
|
24
|
+
*
|
|
25
|
+
* Use for toolbar toggles ("Bold", "Italic") and single on/off controls that
|
|
26
|
+
* read as buttons. For a set of mutually-related toggles, wrap them in
|
|
27
|
+
* `ToggleButtonGroup`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <ToggleButton>Bold</ToggleButton>
|
|
32
|
+
* <ToggleButton defaultSelected>Grid view</ToggleButton>
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
declare const ToggleButton$1: {
|
|
36
|
+
({
|
|
37
|
+
evaluation,
|
|
38
|
+
...props
|
|
39
|
+
}: ToggleButtonProps$1): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
displayName: "ToggleButton";
|
|
41
|
+
};
|
|
42
|
+
//#endregion
|
|
43
|
+
export { ToggleButton$1 as ToggleButton, ToggleButtonProps$1 as ToggleButtonProps, toggleButtonMeta };
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
|
|
2
|
+
import { focusRingOutline } from "../../tokens/focusRing.mjs";
|
|
3
|
+
import { vars } from "@ttoss/fsl-theme/vars";
|
|
4
|
+
import { ToggleButton } from "react-aria-components";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region src/components/ToggleButton/ToggleButton.tsx
|
|
8
|
+
/** Formal semantic identity — ToggleButton root (Action entity, toggle). */
|
|
9
|
+
var toggleButtonMeta = {
|
|
10
|
+
displayName: "ToggleButton",
|
|
11
|
+
entity: "Action",
|
|
12
|
+
structure: "root"
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Background cascade: disabled ▸ transient press (`active`) ▸ persistent
|
|
16
|
+
* toggle (`pressed`) ▸ hover ▸ default. The `active` level dominates
|
|
17
|
+
* `pressed` so a click on an engaged toggle still gives press feedback.
|
|
18
|
+
*/
|
|
19
|
+
var resolveToggleBackground = (bg, {
|
|
20
|
+
isDisabled,
|
|
21
|
+
isPressed,
|
|
22
|
+
isSelected,
|
|
23
|
+
isHovered
|
|
24
|
+
}) => {
|
|
25
|
+
if (isDisabled) return bg.disabled;
|
|
26
|
+
if (isPressed) return bg.active;
|
|
27
|
+
if (isSelected) return bg.pressed;
|
|
28
|
+
if (isHovered) return bg.hover;
|
|
29
|
+
return bg.default;
|
|
30
|
+
};
|
|
31
|
+
/** Text cascade — same order, with `?? default` since not every voice defines every state. */
|
|
32
|
+
var resolveToggleText = (text, {
|
|
33
|
+
isDisabled,
|
|
34
|
+
isPressed,
|
|
35
|
+
isSelected,
|
|
36
|
+
isHovered
|
|
37
|
+
}) => {
|
|
38
|
+
if (isDisabled) return text.disabled;
|
|
39
|
+
if (isPressed) return text.active ?? text.default;
|
|
40
|
+
if (isSelected) return text.pressed ?? text.default;
|
|
41
|
+
if (isHovered) return text.hover ?? text.default;
|
|
42
|
+
return text.default;
|
|
43
|
+
};
|
|
44
|
+
/** Border cascade: focus ring wins ▸ disabled ▸ toggle-on ▸ default. */
|
|
45
|
+
var resolveToggleBorder = (border, {
|
|
46
|
+
isFocusVisible,
|
|
47
|
+
isDisabled,
|
|
48
|
+
isSelected
|
|
49
|
+
}) => {
|
|
50
|
+
if (isFocusVisible) return border.focused;
|
|
51
|
+
if (isDisabled) return border.disabled;
|
|
52
|
+
if (isSelected) return border.pressed ?? border.default;
|
|
53
|
+
return border.default;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* A two-state toggle button (Action entity). Unlike `Button`, its selection
|
|
57
|
+
* is persistent: the engaged state renders the `pressed` color (not the
|
|
58
|
+
* transient `active`), and React Aria exposes it via `aria-pressed`.
|
|
59
|
+
*
|
|
60
|
+
* Use for toolbar toggles ("Bold", "Italic") and single on/off controls that
|
|
61
|
+
* read as buttons. For a set of mutually-related toggles, wrap them in
|
|
62
|
+
* `ToggleButtonGroup`.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```tsx
|
|
66
|
+
* <ToggleButton>Bold</ToggleButton>
|
|
67
|
+
* <ToggleButton defaultSelected>Grid view</ToggleButton>
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
var ToggleButton$1 = ({
|
|
71
|
+
evaluation = "primary",
|
|
72
|
+
...props
|
|
73
|
+
}) => {
|
|
74
|
+
const colors = vars.colors.action[evaluation];
|
|
75
|
+
return /* @__PURE__ */jsx(ToggleButton, {
|
|
76
|
+
...props,
|
|
77
|
+
"data-scope": "toggle-button",
|
|
78
|
+
"data-part": "root",
|
|
79
|
+
"data-evaluation": evaluation,
|
|
80
|
+
style: ({
|
|
81
|
+
isHovered,
|
|
82
|
+
isPressed,
|
|
83
|
+
isSelected,
|
|
84
|
+
isDisabled,
|
|
85
|
+
isFocusVisible
|
|
86
|
+
}) => {
|
|
87
|
+
const flags = {
|
|
88
|
+
isHovered,
|
|
89
|
+
isPressed,
|
|
90
|
+
isSelected,
|
|
91
|
+
isDisabled
|
|
92
|
+
};
|
|
93
|
+
return {
|
|
94
|
+
boxSizing: "border-box",
|
|
95
|
+
display: "inline-flex",
|
|
96
|
+
alignItems: "center",
|
|
97
|
+
justifyContent: "center",
|
|
98
|
+
cursor: isDisabled ? "not-allowed" : "pointer",
|
|
99
|
+
borderRadius: vars.radii.control,
|
|
100
|
+
borderWidth: vars.border.outline.control.width,
|
|
101
|
+
borderStyle: vars.border.outline.control.style,
|
|
102
|
+
minHeight: vars.sizing.hit.base,
|
|
103
|
+
paddingBlock: vars.spacing.inset.control.sm,
|
|
104
|
+
paddingInline: vars.spacing.inset.control.lg,
|
|
105
|
+
...vars.text.label.md,
|
|
106
|
+
transitionDuration: vars.motion.feedback.duration,
|
|
107
|
+
transitionTimingFunction: vars.motion.feedback.easing,
|
|
108
|
+
transitionProperty: "background-color, border-color, color",
|
|
109
|
+
backgroundColor: colors?.background ? resolveToggleBackground(colors.background, flags) : void 0,
|
|
110
|
+
borderColor: colors?.border ? resolveToggleBorder(colors.border, {
|
|
111
|
+
isFocusVisible,
|
|
112
|
+
isDisabled,
|
|
113
|
+
isSelected
|
|
114
|
+
}) : void 0,
|
|
115
|
+
color: colors?.text ? resolveToggleText(colors.text, flags) : void 0,
|
|
116
|
+
outline: focusRingOutline(isFocusVisible)
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
ToggleButton$1.displayName = toggleButtonMeta.displayName;
|
|
122
|
+
|
|
123
|
+
//#endregion
|
|
124
|
+
export { ToggleButton$1 as ToggleButton, toggleButtonMeta };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
|
|
2
|
+
let _ttoss_fsl_theme_vars = require("@ttoss/fsl-theme/vars");
|
|
3
|
+
let react_aria_components = require("react-aria-components");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
|
|
6
|
+
//#region src/components/ToggleButtonGroup/ToggleButtonGroup.tsx
|
|
7
|
+
/** Formal semantic identity — ToggleButtonGroup root (Selection entity). */
|
|
8
|
+
var toggleButtonGroupMeta = {
|
|
9
|
+
displayName: "ToggleButtonGroup",
|
|
10
|
+
entity: "Selection",
|
|
11
|
+
structure: "root"
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Groups related `ToggleButton`s into a single selectable set (Selection
|
|
15
|
+
* entity). React Aria manages selection (`selectionMode` `single` | `multiple`)
|
|
16
|
+
* and arrow-key navigation between the toggles; each child is a `ToggleButton`
|
|
17
|
+
* with an `id`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <ToggleButtonGroup selectionMode="single" defaultSelectedKeys={['grid']}>
|
|
22
|
+
* <ToggleButton id="grid">Grid</ToggleButton>
|
|
23
|
+
* <ToggleButton id="list">List</ToggleButton>
|
|
24
|
+
* </ToggleButtonGroup>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
var ToggleButtonGroup = ({
|
|
28
|
+
orientation = "horizontal",
|
|
29
|
+
...props
|
|
30
|
+
}) => {
|
|
31
|
+
return /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.ToggleButtonGroup, {
|
|
32
|
+
...props,
|
|
33
|
+
orientation,
|
|
34
|
+
"data-scope": "toggle-button-group",
|
|
35
|
+
"data-part": "root",
|
|
36
|
+
style: {
|
|
37
|
+
boxSizing: "border-box",
|
|
38
|
+
display: "inline-flex",
|
|
39
|
+
flexDirection: orientation === "vertical" ? "column" : "row",
|
|
40
|
+
gap: _ttoss_fsl_theme_vars.vars.spacing.gap.inline.sm
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
ToggleButtonGroup.displayName = toggleButtonGroupMeta.displayName;
|
|
45
|
+
|
|
46
|
+
//#endregion
|
|
47
|
+
exports.ToggleButtonGroup = ToggleButtonGroup;
|
|
48
|
+
exports.toggleButtonGroupMeta = toggleButtonGroupMeta;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
|
|
2
|
+
import { ToggleButtonGroupProps } from "react-aria-components";
|
|
3
|
+
|
|
4
|
+
//#region src/components/ToggleButtonGroup/ToggleButtonGroup.d.ts
|
|
5
|
+
/** Formal semantic identity — ToggleButtonGroup root (Selection entity). */
|
|
6
|
+
declare const toggleButtonGroupMeta: {
|
|
7
|
+
readonly displayName: "ToggleButtonGroup";
|
|
8
|
+
readonly entity: "Selection";
|
|
9
|
+
readonly structure: "root";
|
|
10
|
+
};
|
|
11
|
+
/** Props for the ToggleButtonGroup component. */
|
|
12
|
+
interface ToggleButtonGroupProps$1 extends Omit<ToggleButtonGroupProps, 'style'> {
|
|
13
|
+
/**
|
|
14
|
+
* Layout direction of the toggles.
|
|
15
|
+
* @default 'horizontal'
|
|
16
|
+
*/
|
|
17
|
+
orientation?: ToggleButtonGroupProps['orientation'];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Groups related `ToggleButton`s into a single selectable set (Selection
|
|
21
|
+
* entity). React Aria manages selection (`selectionMode` `single` | `multiple`)
|
|
22
|
+
* and arrow-key navigation between the toggles; each child is a `ToggleButton`
|
|
23
|
+
* with an `id`.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* <ToggleButtonGroup selectionMode="single" defaultSelectedKeys={['grid']}>
|
|
28
|
+
* <ToggleButton id="grid">Grid</ToggleButton>
|
|
29
|
+
* <ToggleButton id="list">List</ToggleButton>
|
|
30
|
+
* </ToggleButtonGroup>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
declare const ToggleButtonGroup: {
|
|
34
|
+
({
|
|
35
|
+
orientation,
|
|
36
|
+
...props
|
|
37
|
+
}: ToggleButtonGroupProps$1): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
displayName: "ToggleButtonGroup";
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
export { ToggleButtonGroup, ToggleButtonGroupProps$1 as ToggleButtonGroupProps, toggleButtonGroupMeta };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
|
|
2
|
+
import { ToggleButtonGroupProps } from "react-aria-components";
|
|
3
|
+
|
|
4
|
+
//#region src/components/ToggleButtonGroup/ToggleButtonGroup.d.ts
|
|
5
|
+
/** Formal semantic identity — ToggleButtonGroup root (Selection entity). */
|
|
6
|
+
declare const toggleButtonGroupMeta: {
|
|
7
|
+
readonly displayName: "ToggleButtonGroup";
|
|
8
|
+
readonly entity: "Selection";
|
|
9
|
+
readonly structure: "root";
|
|
10
|
+
};
|
|
11
|
+
/** Props for the ToggleButtonGroup component. */
|
|
12
|
+
interface ToggleButtonGroupProps$1 extends Omit<ToggleButtonGroupProps, 'style'> {
|
|
13
|
+
/**
|
|
14
|
+
* Layout direction of the toggles.
|
|
15
|
+
* @default 'horizontal'
|
|
16
|
+
*/
|
|
17
|
+
orientation?: ToggleButtonGroupProps['orientation'];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Groups related `ToggleButton`s into a single selectable set (Selection
|
|
21
|
+
* entity). React Aria manages selection (`selectionMode` `single` | `multiple`)
|
|
22
|
+
* and arrow-key navigation between the toggles; each child is a `ToggleButton`
|
|
23
|
+
* with an `id`.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* <ToggleButtonGroup selectionMode="single" defaultSelectedKeys={['grid']}>
|
|
28
|
+
* <ToggleButton id="grid">Grid</ToggleButton>
|
|
29
|
+
* <ToggleButton id="list">List</ToggleButton>
|
|
30
|
+
* </ToggleButtonGroup>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
declare const ToggleButtonGroup$1: {
|
|
34
|
+
({
|
|
35
|
+
orientation,
|
|
36
|
+
...props
|
|
37
|
+
}: ToggleButtonGroupProps$1): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
displayName: "ToggleButtonGroup";
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
export { ToggleButtonGroup$1 as ToggleButtonGroup, ToggleButtonGroupProps$1 as ToggleButtonGroupProps, toggleButtonGroupMeta };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
|
|
2
|
+
import { vars } from "@ttoss/fsl-theme/vars";
|
|
3
|
+
import { ToggleButtonGroup } from "react-aria-components";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/ToggleButtonGroup/ToggleButtonGroup.tsx
|
|
7
|
+
/** Formal semantic identity — ToggleButtonGroup root (Selection entity). */
|
|
8
|
+
var toggleButtonGroupMeta = {
|
|
9
|
+
displayName: "ToggleButtonGroup",
|
|
10
|
+
entity: "Selection",
|
|
11
|
+
structure: "root"
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Groups related `ToggleButton`s into a single selectable set (Selection
|
|
15
|
+
* entity). React Aria manages selection (`selectionMode` `single` | `multiple`)
|
|
16
|
+
* and arrow-key navigation between the toggles; each child is a `ToggleButton`
|
|
17
|
+
* with an `id`.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <ToggleButtonGroup selectionMode="single" defaultSelectedKeys={['grid']}>
|
|
22
|
+
* <ToggleButton id="grid">Grid</ToggleButton>
|
|
23
|
+
* <ToggleButton id="list">List</ToggleButton>
|
|
24
|
+
* </ToggleButtonGroup>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
var ToggleButtonGroup$1 = ({
|
|
28
|
+
orientation = "horizontal",
|
|
29
|
+
...props
|
|
30
|
+
}) => {
|
|
31
|
+
return /* @__PURE__ */jsx(ToggleButtonGroup, {
|
|
32
|
+
...props,
|
|
33
|
+
orientation,
|
|
34
|
+
"data-scope": "toggle-button-group",
|
|
35
|
+
"data-part": "root",
|
|
36
|
+
style: {
|
|
37
|
+
boxSizing: "border-box",
|
|
38
|
+
display: "inline-flex",
|
|
39
|
+
flexDirection: orientation === "vertical" ? "column" : "row",
|
|
40
|
+
gap: vars.spacing.gap.inline.sm
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
ToggleButtonGroup$1.displayName = toggleButtonGroupMeta.displayName;
|
|
45
|
+
|
|
46
|
+
//#endregion
|
|
47
|
+
export { ToggleButtonGroup$1 as ToggleButtonGroup, toggleButtonGroupMeta };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
|
|
2
|
+
let _ttoss_fsl_theme_vars = require("@ttoss/fsl-theme/vars");
|
|
3
|
+
let react_aria_components = require("react-aria-components");
|
|
4
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
+
|
|
6
|
+
//#region src/components/Toolbar/Toolbar.tsx
|
|
7
|
+
/** Formal semantic identity — Toolbar root (Structure entity, actions bar). */
|
|
8
|
+
var toolbarMeta = {
|
|
9
|
+
displayName: "Toolbar",
|
|
10
|
+
entity: "Structure",
|
|
11
|
+
structure: "root"
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* A semantic toolbar built on React Aria's `Toolbar` (`role="toolbar"`).
|
|
15
|
+
*
|
|
16
|
+
* Entity = Structure → reads `vars.colors.informational.{primary|muted}` for
|
|
17
|
+
* the bar surface and border, `vars.radii.surface` for the corner, and
|
|
18
|
+
* `vars.spacing.inset.surface` for padding. Groups related actions (a text
|
|
19
|
+
* formatting bar, a view-mode switch, a set of table controls) under one
|
|
20
|
+
* region with arrow-key navigation. Non-interactive itself — hover/press
|
|
21
|
+
* chrome belongs to the `Button` / `ToggleButton` children.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <Toolbar aria-label="Text formatting">
|
|
26
|
+
* <ToggleButton aria-label="Bold">B</ToggleButton>
|
|
27
|
+
* <ToggleButton aria-label="Italic">I</ToggleButton>
|
|
28
|
+
* <Separator orientation="vertical" />
|
|
29
|
+
* <Button aria-label="Link">Link</Button>
|
|
30
|
+
* </Toolbar>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
var Toolbar = ({
|
|
34
|
+
orientation = "horizontal",
|
|
35
|
+
evaluation = "primary",
|
|
36
|
+
children,
|
|
37
|
+
...props
|
|
38
|
+
}) => {
|
|
39
|
+
const c = _ttoss_fsl_theme_vars.vars.colors.informational[evaluation];
|
|
40
|
+
const isVertical = orientation === "vertical";
|
|
41
|
+
return /* @__PURE__ */(0, react_jsx_runtime.jsx)(react_aria_components.Toolbar, {
|
|
42
|
+
...props,
|
|
43
|
+
orientation,
|
|
44
|
+
"data-scope": "toolbar",
|
|
45
|
+
"data-part": "root",
|
|
46
|
+
"data-evaluation": evaluation,
|
|
47
|
+
style: {
|
|
48
|
+
boxSizing: "border-box",
|
|
49
|
+
display: "inline-flex",
|
|
50
|
+
flexDirection: isVertical ? "column" : "row",
|
|
51
|
+
alignItems: "center",
|
|
52
|
+
gap: _ttoss_fsl_theme_vars.vars.spacing.gap.inline.sm,
|
|
53
|
+
padding: _ttoss_fsl_theme_vars.vars.spacing.inset.surface.sm,
|
|
54
|
+
borderRadius: _ttoss_fsl_theme_vars.vars.radii.surface,
|
|
55
|
+
borderWidth: _ttoss_fsl_theme_vars.vars.border.outline.surface.width,
|
|
56
|
+
borderStyle: _ttoss_fsl_theme_vars.vars.border.outline.surface.style,
|
|
57
|
+
borderColor: c?.border?.default ?? "transparent",
|
|
58
|
+
backgroundColor: c?.background?.default
|
|
59
|
+
},
|
|
60
|
+
children
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
Toolbar.displayName = toolbarMeta.displayName;
|
|
64
|
+
|
|
65
|
+
//#endregion
|
|
66
|
+
exports.Toolbar = Toolbar;
|
|
67
|
+
exports.toolbarMeta = toolbarMeta;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
import { EvaluationsFor } from "../../semantics/taxonomy.cjs";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { ToolbarProps } from "react-aria-components";
|
|
5
|
+
|
|
6
|
+
//#region src/components/Toolbar/Toolbar.d.ts
|
|
7
|
+
/** Formal semantic identity — Toolbar root (Structure entity, actions bar). */
|
|
8
|
+
declare const toolbarMeta: {
|
|
9
|
+
readonly displayName: "Toolbar";
|
|
10
|
+
readonly entity: "Structure";
|
|
11
|
+
readonly structure: "root";
|
|
12
|
+
};
|
|
13
|
+
/** Props for the Toolbar component. */
|
|
14
|
+
interface ToolbarProps$1 extends Omit<ToolbarProps, 'style' | 'className' | 'children'> {
|
|
15
|
+
/**
|
|
16
|
+
* Layout + roving-focus axis. `horizontal` uses Left/Right arrows;
|
|
17
|
+
* `vertical` uses Up/Down.
|
|
18
|
+
* @default 'horizontal'
|
|
19
|
+
*/
|
|
20
|
+
orientation?: ToolbarProps['orientation'];
|
|
21
|
+
/**
|
|
22
|
+
* Authorial emphasis of the bar surface. `primary` is the standard toolbar
|
|
23
|
+
* chrome; `muted` is a subdued variant for dense or secondary bars.
|
|
24
|
+
* @default 'primary'
|
|
25
|
+
*/
|
|
26
|
+
evaluation?: EvaluationsFor<(typeof toolbarMeta)['entity']>;
|
|
27
|
+
/** The interactive controls to lay out in the bar. */
|
|
28
|
+
children?: React.ReactNode;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A semantic toolbar built on React Aria's `Toolbar` (`role="toolbar"`).
|
|
32
|
+
*
|
|
33
|
+
* Entity = Structure → reads `vars.colors.informational.{primary|muted}` for
|
|
34
|
+
* the bar surface and border, `vars.radii.surface` for the corner, and
|
|
35
|
+
* `vars.spacing.inset.surface` for padding. Groups related actions (a text
|
|
36
|
+
* formatting bar, a view-mode switch, a set of table controls) under one
|
|
37
|
+
* region with arrow-key navigation. Non-interactive itself — hover/press
|
|
38
|
+
* chrome belongs to the `Button` / `ToggleButton` children.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* <Toolbar aria-label="Text formatting">
|
|
43
|
+
* <ToggleButton aria-label="Bold">B</ToggleButton>
|
|
44
|
+
* <ToggleButton aria-label="Italic">I</ToggleButton>
|
|
45
|
+
* <Separator orientation="vertical" />
|
|
46
|
+
* <Button aria-label="Link">Link</Button>
|
|
47
|
+
* </Toolbar>
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
declare const Toolbar: {
|
|
51
|
+
({
|
|
52
|
+
orientation,
|
|
53
|
+
evaluation,
|
|
54
|
+
children,
|
|
55
|
+
...props
|
|
56
|
+
}: ToolbarProps$1): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
displayName: "Toolbar";
|
|
58
|
+
};
|
|
59
|
+
//#endregion
|
|
60
|
+
export { Toolbar, ToolbarProps$1 as ToolbarProps, toolbarMeta };
|