@hypothesis/frontend-shared
Version:
Shared components, styles and utilities for Hypothesis projects
82 lines • 2.46 kB
JavaScript
var _jsxFileName = "/home/runner/work/frontend-shared/frontend-shared/src/pattern-library/examples/select-non-popover-listbox.tsx";
import { useId, useState } from 'preact/hooks';
import { Select } from '../..';
import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "preact/jsx-dev-runtime";
const items = [{
id: '1',
name: 'All students'
}, {
id: '2',
name: 'Albert Banana'
}, {
id: '3',
name: 'Bernard California'
}, {
id: '4',
name: 'Cecelia Davenport'
}, {
id: '5',
name: 'Doris Evanescence'
}];
export default function App() {
const [value, setValue] = useState();
const buttonId = useId();
return _jsxDEV("div", {
className: "w-full",
children: [_jsxDEV("p", {
children: ["When not using the ", _jsxDEV("code", {
children: "popover"
}, void 0, false, {
fileName: _jsxFileName,
lineNumber: 26,
columnNumber: 28
}, this), " API, the listbox may be clipped by parent elements that are styled to hide overflow."]
}, void 0, true, {
fileName: _jsxFileName,
lineNumber: 25,
columnNumber: 7
}, this), _jsxDEV("div", {
className: "w-96 h-32 mx-auto overflow-auto",
children: _jsxDEV(_Fragment, {
children: [_jsxDEV("label", {
htmlFor: buttonId,
children: "Select a person"
}, void 0, false, {
fileName: _jsxFileName,
lineNumber: 31,
columnNumber: 11
}, this), _jsxDEV(Select, {
listboxAsPopover: false,
buttonId: buttonId,
value: value,
onChange: setValue,
buttonContent: value ? value.name : _jsxDEV(_Fragment, {
children: "Select one\u2026"
}, void 0, false),
children: items.map(item => _jsxDEV(Select.Option, {
value: item,
disabled: item.disabled,
children: item.name
}, item.id, false, {
fileName: _jsxFileName,
lineNumber: 40,
columnNumber: 15
}, this))
}, void 0, false, {
fileName: _jsxFileName,
lineNumber: 32,
columnNumber: 11
}, this)]
}, void 0, true)
}, void 0, false, {
fileName: _jsxFileName,
lineNumber: 29,
columnNumber: 7
}, this)]
}, void 0, true, {
fileName: _jsxFileName,
lineNumber: 24,
columnNumber: 5
}, this);
}
//# sourceMappingURL=select-non-popover-listbox.js.map