From b3d1c0c8db6f201ac8f1b482722331ba9f65b74c Mon Sep 17 00:00:00 2001 From: Albert Yu Date: Mon, 10 Feb 2025 13:48:24 +0800 Subject: [PATCH] WIP triggers --- .../(private)/experiments/toolbar/_icons.tsx | 29 +++++ .../experiments/toolbar/triggers.module.css | 14 +++ .../experiments/toolbar/triggers.tsx | 102 ++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 docs/src/app/(private)/experiments/toolbar/triggers.module.css create mode 100644 docs/src/app/(private)/experiments/toolbar/triggers.tsx diff --git a/docs/src/app/(private)/experiments/toolbar/_icons.tsx b/docs/src/app/(private)/experiments/toolbar/_icons.tsx index 797951a748..5394cdcdc8 100644 --- a/docs/src/app/(private)/experiments/toolbar/_icons.tsx +++ b/docs/src/app/(private)/experiments/toolbar/_icons.tsx @@ -171,3 +171,32 @@ export function ChevronRightIcon(props: React.ComponentProps<'svg'>) { ); } + +export function MessageCircleIcon(props: React.ComponentProps<'svg'>) { + return ( + + + + ); +} + +export function MousePointerIcon(props: React.ComponentProps<'svg'>) { + return ( + + + + + ); +} diff --git a/docs/src/app/(private)/experiments/toolbar/triggers.module.css b/docs/src/app/(private)/experiments/toolbar/triggers.module.css new file mode 100644 index 0000000000..2b27ea64a6 --- /dev/null +++ b/docs/src/app/(private)/experiments/toolbar/triggers.module.css @@ -0,0 +1,14 @@ +.Root { + background-color: var(--color-gray-100); + padding: 0 0.75rem; +} + +.Toggle { + margin-block: 0.5rem; +} + +.Separator[data-orientation='vertical'] { + width: 1px; + align-self: stretch; + background-color: var(--color-gray-200); +} diff --git a/docs/src/app/(private)/experiments/toolbar/triggers.tsx b/docs/src/app/(private)/experiments/toolbar/triggers.tsx new file mode 100644 index 0000000000..363e9eb575 --- /dev/null +++ b/docs/src/app/(private)/experiments/toolbar/triggers.tsx @@ -0,0 +1,102 @@ +'use client'; +import * as React from 'react'; +import { Toolbar } from '@base-ui-components/react/toolbar'; +import { Toggle } from '@base-ui-components/react/toggle'; +import { Switch } from '@base-ui-components/react/switch'; +import { Dialog } from '@base-ui-components/react/dialog'; +import toolbarClasses from './toolbar.module.css'; +import triggerToolbarClasses from './triggers.module.css'; +import switchClasses from '../../../(public)/(content)/react/components/switch/demos/hero/css-modules/index.module.css'; +import dialogClasses from '../../../(public)/(content)/react/components/alert-dialog/demos/hero/css-modules/index.module.css'; +import popoverClasses from '../../../(public)/(content)/react/components/popover/demos/hero/css-modules/index.module.css'; +import { MessageCircleIcon } from './_icons'; + +const styles = { + demo: triggerToolbarClasses, + toolbar: toolbarClasses, + switch: switchClasses, + dialog: dialogClasses, +}; + +const TEXT = `Shows toolbar buttons as various triggers: +- Menu.Trigger +- Dialog.Trigger +- Popover.Trigger +`; + +const DISABLED = false; + +function classNames(...c: Array) { + return c.filter(Boolean).join(' '); +} + +export default function App() { + return ( + + +

Toolbar pattern

+
+
+ + + + + + } + /> + + + + + + Write a comment + +