@panneau/ui 5.0.0-alpha.4 → 5.0.0-alpha.6
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/README.md +55 -2
- package/dist/command-palette/CommandPalette.css +299 -0
- package/dist/command-palette/CommandPalette.d.ts +37 -0
- package/dist/command-palette/CommandPalette.d.ts.map +1 -0
- package/dist/command-palette/CommandPalette.js +194 -0
- package/dist/command-palette/CommandPalette.js.map +1 -0
- package/dist/command-palette/CommandPalette.module.js +62 -0
- package/dist/command-palette/CommandPalette.module.js.map +1 -0
- package/dist/command-palette/match.d.ts +39 -0
- package/dist/command-palette/match.d.ts.map +1 -0
- package/dist/command-palette/match.js +44 -0
- package/dist/command-palette/match.js.map +1 -0
- package/dist/command-palette/tokens.d.ts +3 -0
- package/dist/command-palette/tokens.d.ts.map +1 -0
- package/dist/command-palette/tokens.js +23 -0
- package/dist/command-palette/tokens.js.map +1 -0
- package/dist/command-palette/useCommandShortcut.d.ts +12 -0
- package/dist/command-palette/useCommandShortcut.d.ts.map +1 -0
- package/dist/command-palette/useCommandShortcut.js +29 -0
- package/dist/command-palette/useCommandShortcut.js.map +1 -0
- package/dist/date-picker/DatePicker.css +40 -0
- package/dist/date-picker/DatePicker.d.ts +2 -1
- package/dist/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/date-picker/DatePicker.js +54 -8
- package/dist/date-picker/DatePicker.js.map +1 -1
- package/dist/date-picker/DatePicker.module.js +5 -1
- package/dist/date-picker/DatePicker.module.js.map +1 -1
- package/dist/dialog/Dialog.css +36 -2
- package/dist/dialog/Dialog.d.ts +15 -3
- package/dist/dialog/Dialog.d.ts.map +1 -1
- package/dist/dialog/Dialog.js +22 -14
- package/dist/dialog/Dialog.js.map +1 -1
- package/dist/dialog/Dialog.module.js +8 -2
- package/dist/dialog/Dialog.module.js.map +1 -1
- package/dist/dialog/tokens.d.ts +1 -1
- package/dist/dialog/tokens.d.ts.map +1 -1
- package/dist/dialog/tokens.js +2 -0
- package/dist/dialog/tokens.js.map +1 -1
- package/dist/field/Field.css +9 -0
- package/dist/field/Field.module.js.map +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/menu/Menu.css +84 -0
- package/dist/menu/Menu.d.ts +33 -6
- package/dist/menu/Menu.d.ts.map +1 -1
- package/dist/menu/Menu.js +110 -25
- package/dist/menu/Menu.js.map +1 -1
- package/dist/menu/Menu.module.js +22 -0
- package/dist/menu/Menu.module.js.map +1 -0
- package/dist/menu/tokens.d.ts +3 -0
- package/dist/menu/tokens.d.ts.map +1 -0
- package/dist/menu/tokens.js +31 -0
- package/dist/menu/tokens.js.map +1 -0
- package/dist/number-input/NumberInput.css +18 -0
- package/dist/number-input/NumberInput.js +1 -1
- package/dist/number-input/NumberInput.js.map +1 -1
- package/dist/number-input/NumberInput.module.js +3 -1
- package/dist/number-input/NumberInput.module.js.map +1 -1
- package/dist/pill-trigger/PillTrigger.css +104 -0
- package/dist/pill-trigger/PillTrigger.d.ts +20 -0
- package/dist/pill-trigger/PillTrigger.d.ts.map +1 -0
- package/dist/pill-trigger/PillTrigger.js +38 -0
- package/dist/pill-trigger/PillTrigger.js.map +1 -0
- package/dist/pill-trigger/PillTrigger.module.js +18 -0
- package/dist/pill-trigger/PillTrigger.module.js.map +1 -0
- package/dist/pill-trigger/tokens.d.ts +3 -0
- package/dist/pill-trigger/tokens.d.ts.map +1 -0
- package/dist/pill-trigger/tokens.js +37 -0
- package/dist/pill-trigger/tokens.js.map +1 -0
- package/dist/radio-group/RadioGroup.css +90 -0
- package/dist/radio-group/RadioGroup.d.ts +22 -3
- package/dist/radio-group/RadioGroup.d.ts.map +1 -1
- package/dist/radio-group/RadioGroup.js +42 -21
- package/dist/radio-group/RadioGroup.js.map +1 -1
- package/dist/radio-group/RadioGroup.module.js +12 -2
- package/dist/radio-group/RadioGroup.module.js.map +1 -1
- package/dist/radio-group/tokens.d.ts +2 -2
- package/dist/radio-group/tokens.d.ts.map +1 -1
- package/dist/radio-group/tokens.js +22 -2
- package/dist/radio-group/tokens.js.map +1 -1
- package/dist/segmented-control/SegmentedControl.css +83 -0
- package/dist/segmented-control/SegmentedControl.d.ts +35 -0
- package/dist/segmented-control/SegmentedControl.d.ts.map +1 -0
- package/dist/segmented-control/SegmentedControl.js +44 -0
- package/dist/segmented-control/SegmentedControl.js.map +1 -0
- package/dist/segmented-control/SegmentedControl.module.js +16 -0
- package/dist/segmented-control/SegmentedControl.module.js.map +1 -0
- package/dist/segmented-control/tokens.d.ts +3 -0
- package/dist/segmented-control/tokens.d.ts.map +1 -0
- package/dist/segmented-control/tokens.js +29 -0
- package/dist/segmented-control/tokens.js.map +1 -0
- package/dist/select/ListBox.css +23 -1
- package/dist/select/ListBox.module.js +2 -2
- package/dist/select/ListBox.module.js.map +1 -1
- package/dist/select/listBoxTokens.d.ts +1 -1
- package/dist/select/listBoxTokens.d.ts.map +1 -1
- package/dist/select/listBoxTokens.js +2 -0
- package/dist/select/listBoxTokens.js.map +1 -1
- package/dist/slider/Slider.css +84 -0
- package/dist/slider/Slider.d.ts +20 -0
- package/dist/slider/Slider.d.ts.map +1 -0
- package/dist/slider/Slider.js +70 -0
- package/dist/slider/Slider.js.map +1 -0
- package/dist/slider/Slider.module.js +20 -0
- package/dist/slider/Slider.module.js.map +1 -0
- package/dist/tags-input/TagsInput.css +60 -0
- package/dist/tags-input/TagsInput.d.ts +32 -0
- package/dist/tags-input/TagsInput.d.ts.map +1 -0
- package/dist/tags-input/TagsInput.js +160 -0
- package/dist/tags-input/TagsInput.js.map +1 -0
- package/dist/tags-input/TagsInput.module.js +20 -0
- package/dist/tags-input/TagsInput.module.js.map +1 -0
- package/dist/text-input/TextInput.d.ts.map +1 -1
- package/dist/text-input/TextInput.js +2 -0
- package/dist/text-input/TextInput.js.map +1 -1
- package/dist/theme/components.d.ts +7 -3
- package/dist/theme/components.d.ts.map +1 -1
- package/dist/theme/components.js +8 -0
- package/dist/theme/components.js.map +1 -1
- package/package.json +3 -3
package/dist/dialog/Dialog.d.ts
CHANGED
|
@@ -5,6 +5,11 @@ export interface DialogProps extends Pick<ModalOverlayProps, 'isOpen' | 'default
|
|
|
5
5
|
title: ReactNode;
|
|
6
6
|
/** Content, or a function that gets `close()`. */
|
|
7
7
|
children?: ReactNode | ((close: () => void) => ReactNode);
|
|
8
|
+
/**
|
|
9
|
+
* More content in the header, between the title and the close button: a switcher, a few
|
|
10
|
+
* actions. On phones, it goes under the title. A function gets `close()`.
|
|
11
|
+
*/
|
|
12
|
+
headerContent?: ReactNode | ((close: () => void) => ReactNode);
|
|
8
13
|
/** Buttons at the bottom, or a function that gets `close()`. */
|
|
9
14
|
footer?: ReactNode | ((close: () => void) => ReactNode);
|
|
10
15
|
/**
|
|
@@ -14,7 +19,13 @@ export interface DialogProps extends Pick<ModalOverlayProps, 'isOpen' | 'default
|
|
|
14
19
|
isDismissable?: boolean;
|
|
15
20
|
/** `alertdialog` for confirmations and interruptions. Defaults to `dialog`. */
|
|
16
21
|
role?: 'dialog' | 'alertdialog';
|
|
17
|
-
|
|
22
|
+
/** Maximum width: `sm`, `md` (the default), `lg`, or `xl` for pickers and editors. */
|
|
23
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
24
|
+
/**
|
|
25
|
+
* On phones, takes the whole screen instead of opening as a sheet at the bottom: for dialogs
|
|
26
|
+
* that need all the room they can get, such as pickers.
|
|
27
|
+
*/
|
|
28
|
+
fullScreenOnPhone?: boolean;
|
|
18
29
|
className?: string;
|
|
19
30
|
overlayClassName?: string;
|
|
20
31
|
headerClassName?: string;
|
|
@@ -24,8 +35,9 @@ export interface DialogProps extends Pick<ModalOverlayProps, 'isOpen' | 'default
|
|
|
24
35
|
/**
|
|
25
36
|
* A modal dialog. Controlled with `isOpen` and `onOpenChange`, or inside a `DialogTrigger` with
|
|
26
37
|
* its button as the first child. It traps focus, closes with Escape, and returns focus when it
|
|
27
|
-
* closes. On phones, it opens as a sheet at the bottom of the screen
|
|
38
|
+
* closes. On phones, it opens as a sheet at the bottom of the screen, or takes the whole screen with
|
|
39
|
+
* `fullScreenOnPhone`.
|
|
28
40
|
*/
|
|
29
|
-
export declare function Dialog({ title, children, footer, isDismissable, role, size, className, overlayClassName, headerClassName, bodyClassName, footerClassName, ...props }: DialogProps): import("react").JSX.Element | null;
|
|
41
|
+
export declare function Dialog({ title, children, headerContent, footer, isDismissable, role, size, fullScreenOnPhone, className, overlayClassName, headerClassName, bodyClassName, footerClassName, ...props }: DialogProps): import("react").JSX.Element | null;
|
|
30
42
|
export { DialogTrigger } from 'react-aria-components';
|
|
31
43
|
//# sourceMappingURL=Dialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/dialog/Dialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAKH,KAAK,iBAAiB,EACzB,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,WAAY,SAAQ,IAAI,CACrC,iBAAiB,EACjB,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,2BAA2B,CAC1E;IACG,mDAAmD;IACnD,KAAK,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IAC1D,gEAAgE;IAChE,MAAM,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IACxD;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IAChC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../src/dialog/Dialog.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAKH,KAAK,iBAAiB,EACzB,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,WAAY,SAAQ,IAAI,CACrC,iBAAiB,EACjB,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,2BAA2B,CAC1E;IACG,mDAAmD;IACnD,KAAK,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IAC1D;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IAC/D,gEAAgE;IAChE,MAAM,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IACxD;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;IAChC,sFAAsF;IACtF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,EACnB,KAAK,EACL,QAAQ,EACR,aAAa,EACb,MAAM,EACN,aAAoB,EACpB,IAAe,EACf,IAAW,EACX,iBAAyB,EACzB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,eAAe,EACf,GAAG,KAAK,EACX,EAAE,WAAW,sCA0Db;AAED,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/dialog/Dialog.js
CHANGED
|
@@ -11,9 +11,10 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
11
11
|
/**
|
|
12
12
|
* A modal dialog. Controlled with `isOpen` and `onOpenChange`, or inside a `DialogTrigger` with
|
|
13
13
|
* its button as the first child. It traps focus, closes with Escape, and returns focus when it
|
|
14
|
-
* closes. On phones, it opens as a sheet at the bottom of the screen
|
|
14
|
+
* closes. On phones, it opens as a sheet at the bottom of the screen, or takes the whole screen with
|
|
15
|
+
* `fullScreenOnPhone`.
|
|
15
16
|
*/
|
|
16
|
-
function Dialog$1({ title, children, footer, isDismissable = true, role = "dialog", size = "md", className, overlayClassName, headerClassName, bodyClassName, footerClassName, ...props }) {
|
|
17
|
+
function Dialog$1({ title, children, headerContent, footer, isDismissable = true, role = "dialog", size = "md", fullScreenOnPhone = false, className, overlayClassName, headerClassName, bodyClassName, footerClassName, ...props }) {
|
|
17
18
|
const intl = usePanneauIntl();
|
|
18
19
|
const container = usePortalContainer();
|
|
19
20
|
if (container === null) return null;
|
|
@@ -23,24 +24,31 @@ function Dialog$1({ title, children, footer, isDismissable = true, role = "dialo
|
|
|
23
24
|
className: cx(Dialog_module_default.overlay, overlayClassName),
|
|
24
25
|
UNSTABLE_portalContainer: container,
|
|
25
26
|
children: /* @__PURE__ */ jsx(Modal, {
|
|
26
|
-
className: cx(Dialog_module_default.modal, Dialog_module_default[size]),
|
|
27
|
+
className: cx(Dialog_module_default.modal, Dialog_module_default[size], fullScreenOnPhone && Dialog_module_default.fullScreenOnPhone),
|
|
27
28
|
children: /* @__PURE__ */ jsx(Dialog, {
|
|
28
29
|
role,
|
|
29
30
|
className: cx("panneau-dialog", Dialog_module_default.dialog, className),
|
|
30
31
|
children: ({ close }) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
31
32
|
/* @__PURE__ */ jsxs("div", {
|
|
32
33
|
className: cx(Dialog_module_default.header, headerClassName),
|
|
33
|
-
children: [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ jsx(Heading, {
|
|
36
|
+
slot: "title",
|
|
37
|
+
className: Dialog_module_default.title,
|
|
38
|
+
children: title
|
|
39
|
+
}),
|
|
40
|
+
headerContent !== void 0 && headerContent !== null ? /* @__PURE__ */ jsx("div", {
|
|
41
|
+
className: Dialog_module_default.headerContent,
|
|
42
|
+
children: typeof headerContent === "function" ? headerContent(close) : headerContent
|
|
43
|
+
}) : null,
|
|
44
|
+
isDismissable ? /* @__PURE__ */ jsx(IconButton, {
|
|
45
|
+
icon: X,
|
|
46
|
+
size: "sm",
|
|
47
|
+
label: intl.formatMessage(messages.close),
|
|
48
|
+
showTooltip: false,
|
|
49
|
+
onPress: close
|
|
50
|
+
}) : null
|
|
51
|
+
]
|
|
44
52
|
}),
|
|
45
53
|
/* @__PURE__ */ jsx("div", {
|
|
46
54
|
className: cx(Dialog_module_default.body, bodyClassName),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","names":["Dialog","styles","AriaDialog","_Fragment"],"sources":["../../src/dialog/Dialog.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport {\n Dialog as AriaDialog,\n Heading,\n Modal,\n ModalOverlay,\n type ModalOverlayProps,\n} from 'react-aria-components';\n\nimport { IconButton } from '../icon-button/IconButton';\nimport { messages } from '../intl/messages';\nimport { usePanneauIntl } from '../intl/usePanneauIntl';\nimport { usePortalContainer } from '../root/PanneauRoot';\nimport { cx } from '../utils/cx';\nimport styles from './Dialog.module.css';\n\nexport interface DialogProps extends Pick<\n ModalOverlayProps,\n 'isOpen' | 'defaultOpen' | 'onOpenChange' | 'isKeyboardDismissDisabled'\n> {\n /** Heading of the dialog, which also labels it. */\n title: ReactNode;\n /** Content, or a function that gets `close()`. */\n children?: ReactNode | ((close: () => void) => ReactNode);\n /** Buttons at the bottom, or a function that gets `close()`. */\n footer?: ReactNode | ((close: () => void) => ReactNode);\n /**\n * Closes on a click outside and shows a close button. Defaults to true. Turn it off for dialogs\n * that need an answer.\n */\n isDismissable?: boolean;\n /** `alertdialog` for confirmations and interruptions. Defaults to `dialog`. */\n role?: 'dialog' | 'alertdialog';\n size?: 'sm' | 'md' | 'lg';\n className?: string;\n overlayClassName?: string;\n headerClassName?: string;\n bodyClassName?: string;\n footerClassName?: string;\n}\n\n/**\n * A modal dialog. Controlled with `isOpen` and `onOpenChange`, or inside a `DialogTrigger` with\n * its button as the first child. It traps focus, closes with Escape, and returns focus when it\n * closes. On phones, it opens as a sheet at the bottom of the screen
|
|
1
|
+
{"version":3,"file":"Dialog.js","names":["Dialog","styles","AriaDialog","_Fragment"],"sources":["../../src/dialog/Dialog.tsx"],"sourcesContent":["import { X } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport {\n Dialog as AriaDialog,\n Heading,\n Modal,\n ModalOverlay,\n type ModalOverlayProps,\n} from 'react-aria-components';\n\nimport { IconButton } from '../icon-button/IconButton';\nimport { messages } from '../intl/messages';\nimport { usePanneauIntl } from '../intl/usePanneauIntl';\nimport { usePortalContainer } from '../root/PanneauRoot';\nimport { cx } from '../utils/cx';\nimport styles from './Dialog.module.css';\n\nexport interface DialogProps extends Pick<\n ModalOverlayProps,\n 'isOpen' | 'defaultOpen' | 'onOpenChange' | 'isKeyboardDismissDisabled'\n> {\n /** Heading of the dialog, which also labels it. */\n title: ReactNode;\n /** Content, or a function that gets `close()`. */\n children?: ReactNode | ((close: () => void) => ReactNode);\n /**\n * More content in the header, between the title and the close button: a switcher, a few\n * actions. On phones, it goes under the title. A function gets `close()`.\n */\n headerContent?: ReactNode | ((close: () => void) => ReactNode);\n /** Buttons at the bottom, or a function that gets `close()`. */\n footer?: ReactNode | ((close: () => void) => ReactNode);\n /**\n * Closes on a click outside and shows a close button. Defaults to true. Turn it off for dialogs\n * that need an answer.\n */\n isDismissable?: boolean;\n /** `alertdialog` for confirmations and interruptions. Defaults to `dialog`. */\n role?: 'dialog' | 'alertdialog';\n /** Maximum width: `sm`, `md` (the default), `lg`, or `xl` for pickers and editors. */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n /**\n * On phones, takes the whole screen instead of opening as a sheet at the bottom: for dialogs\n * that need all the room they can get, such as pickers.\n */\n fullScreenOnPhone?: boolean;\n className?: string;\n overlayClassName?: string;\n headerClassName?: string;\n bodyClassName?: string;\n footerClassName?: string;\n}\n\n/**\n * A modal dialog. Controlled with `isOpen` and `onOpenChange`, or inside a `DialogTrigger` with\n * its button as the first child. It traps focus, closes with Escape, and returns focus when it\n * closes. On phones, it opens as a sheet at the bottom of the screen, or takes the whole screen with\n * `fullScreenOnPhone`.\n */\nexport function Dialog({\n title,\n children,\n headerContent,\n footer,\n isDismissable = true,\n role = 'dialog',\n size = 'md',\n fullScreenOnPhone = false,\n className,\n overlayClassName,\n headerClassName,\n bodyClassName,\n footerClassName,\n ...props\n}: DialogProps) {\n const intl = usePanneauIntl();\n const container = usePortalContainer();\n if (container === null) {\n return null;\n }\n return (\n <ModalOverlay\n {...props}\n isDismissable={isDismissable}\n className={cx(styles.overlay, overlayClassName)}\n UNSTABLE_portalContainer={container}\n >\n <Modal\n className={cx(\n styles.modal,\n styles[size],\n fullScreenOnPhone && styles.fullScreenOnPhone,\n )}\n >\n <AriaDialog role={role} className={cx('panneau-dialog', styles.dialog, className)}>\n {({ close }) => (\n <>\n <div className={cx(styles.header, headerClassName)}>\n <Heading slot=\"title\" className={styles.title}>\n {title}\n </Heading>\n {headerContent !== undefined && headerContent !== null ? (\n <div className={styles.headerContent}>\n {typeof headerContent === 'function'\n ? headerContent(close)\n : headerContent}\n </div>\n ) : null}\n {isDismissable ? (\n <IconButton\n icon={X}\n size=\"sm\"\n label={intl.formatMessage(messages.close)}\n showTooltip={false}\n onPress={close}\n />\n ) : null}\n </div>\n <div className={cx(styles.body, bodyClassName)}>\n {typeof children === 'function' ? children(close) : children}\n </div>\n {footer !== undefined && footer !== null ? (\n <div className={cx(styles.footer, footerClassName)}>\n {typeof footer === 'function' ? footer(close) : footer}\n </div>\n ) : null}\n </>\n )}\n </AriaDialog>\n </Modal>\n </ModalOverlay>\n );\n}\n\nexport { DialogTrigger } from 'react-aria-components';\n"],"mappings":";;;;;;;;;;;;;;;;AA2DA,SAAgBA,SAAO,EACnB,OACA,UACA,eACA,QACA,gBAAgB,MAChB,OAAO,UACP,OAAO,MACP,oBAAoB,OACpB,WACA,kBACA,iBACA,eACA,iBACA,GAAG,SACS;CACZ,MAAM,OAAO,eAAe;CAC5B,MAAM,YAAY,mBAAmB;CACrC,IAAI,cAAc,MACd,OAAO;CAEX,OACI,oBAAC,cAAD;EACI,GAAI;EACW;EACf,WAAW,GAAGC,sBAAO,SAAS,gBAAgB;EAC9C,0BAA0B;EAE1B,UAAA,oBAAC,OAAD;GACI,WAAW,GACPA,sBAAO,OACPA,sBAAO,OACP,qBAAqBA,sBAAO,iBAChC;GAEA,UAAA,oBAACC,QAAD;IAAkB;IAAM,WAAW,GAAG,kBAAkBD,sBAAO,QAAQ,SAAS;IAC1E,WAAA,EAAE,YACA,qBAAAE,UAAA,EAAA,UAAA;KACI,qBAAC,OAAD;MAAK,WAAW,GAAGF,sBAAO,QAAQ,eAAe;MAAjD,UAAA;OACI,oBAAC,SAAD;QAAS,MAAK;QAAQ,WAAWA,sBAAO;QACnC,UAAA;OACI,CAAA;OACR,kBAAkB,KAAA,KAAa,kBAAkB,OAC9C,oBAAC,OAAD;QAAK,WAAWA,sBAAO;QAClB,UAAA,OAAO,kBAAkB,aACpB,cAAc,KAAK,IACnB;OACL,CAAA,IACL;OACH,gBACG,oBAAC,YAAD;QACI,MAAM;QACN,MAAK;QACL,OAAO,KAAK,cAAc,SAAS,KAAK;QACxC,aAAa;QACb,SAAS;OAAM,CAAA,IAEnB;MACH;;KACL,oBAAC,OAAD;MAAK,WAAW,GAAGA,sBAAO,MAAM,aAAa;MACxC,UAAA,OAAO,aAAa,aAAa,SAAS,KAAK,IAAI;KACnD,CAAA;KACJ,WAAW,KAAA,KAAa,WAAW,OAChC,oBAAC,OAAD;MAAK,WAAW,GAAGA,sBAAO,QAAQ,eAAe;MAC5C,UAAA,OAAO,WAAW,aAAa,OAAO,KAAK,IAAI;KAC/C,CAAA,IACL;IACR,EAAA,CAAA;GAEI,CAAA;EACT,CAAA;CACG,CAAA;AAEtB"}
|
|
@@ -5,26 +5,32 @@ var fade = "panneau-dialog-fade";
|
|
|
5
5
|
var modal = "panneau-dialog-modal";
|
|
6
6
|
var sm = "panneau-dialog-sm";
|
|
7
7
|
var lg = "panneau-dialog-lg";
|
|
8
|
+
var xl = "panneau-dialog-xl";
|
|
8
9
|
var rise = "panneau-dialog-rise";
|
|
9
10
|
var dialog = "panneau-dialog";
|
|
10
11
|
var header = "panneau-dialog-header";
|
|
12
|
+
var headerContent = "panneau-dialog-header-content";
|
|
11
13
|
var title = "panneau-dialog-title";
|
|
12
14
|
var body = "panneau-dialog-body";
|
|
13
15
|
var footer = "panneau-dialog-footer";
|
|
16
|
+
var fullScreenOnPhone = "panneau-dialog-full-screen-on-phone";
|
|
14
17
|
var Dialog_module_default = {
|
|
15
18
|
overlay,
|
|
16
19
|
fade,
|
|
17
20
|
modal,
|
|
18
21
|
sm,
|
|
19
22
|
lg,
|
|
23
|
+
xl,
|
|
20
24
|
rise,
|
|
21
25
|
dialog,
|
|
22
26
|
header,
|
|
27
|
+
headerContent,
|
|
23
28
|
title,
|
|
24
29
|
body,
|
|
25
|
-
footer
|
|
30
|
+
footer,
|
|
31
|
+
fullScreenOnPhone
|
|
26
32
|
};
|
|
27
33
|
//#endregion
|
|
28
|
-
export { body, Dialog_module_default as default, dialog, fade, footer, header, lg, modal, overlay, rise, sm, title };
|
|
34
|
+
export { body, Dialog_module_default as default, dialog, fade, footer, fullScreenOnPhone, header, headerContent, lg, modal, overlay, rise, sm, title, xl };
|
|
29
35
|
|
|
30
36
|
//# sourceMappingURL=Dialog.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.module.js","names":[],"sources":["../../src/dialog/Dialog.module.css"],"sourcesContent":[".overlay {\n position: fixed;\n inset: 0;\n z-index: var(--panneau-z-overlay);\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100dvh;\n padding: var(--panneau-space-4);\n background-color: var(--panneau-dialog-backdrop, var(--panneau-color-backdrop));\n}\n\n.overlay[data-entering] {\n animation: fade var(--panneau-duration) ease-out;\n}\n\n.overlay[data-exiting] {\n animation: fade var(--panneau-duration) ease-in reverse;\n}\n\n.modal {\n display: flex;\n width: 100%;\n max-width: var(--panneau-dialog-width, 32rem);\n max-height: calc(100dvh - 2 * var(--panneau-space-4));\n outline: none;\n}\n\n.sm {\n max-width: var(--panneau-dialog-width-sm, 24rem);\n}\n\n.lg {\n max-width: var(--panneau-dialog-width-lg, 48rem);\n}\n\n.modal[data-entering] {\n animation: rise var(--panneau-duration) ease-out;\n}\n\n.dialog {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: inherit;\n color: var(--panneau-color-text);\n background-color: var(--panneau-dialog-bg, var(--panneau-color-surface-raised));\n border-radius: var(--panneau-dialog-radius, var(--panneau-radius-lg));\n box-shadow: var(--panneau-dialog-shadow, var(--panneau-shadow-lg));\n outline: none;\n}\n\n.header {\n display: flex;\n align-items: flex-start;\n gap: var(--panneau-space-3);\n padding: var(--panneau-space-4) var(--panneau-space-4) 0\n var(--panneau-dialog-padding-x, var(--panneau-space-5));\n}\n\n.title {\n flex: 1 1
|
|
1
|
+
{"version":3,"file":"Dialog.module.js","names":[],"sources":["../../src/dialog/Dialog.module.css"],"sourcesContent":[".overlay {\n position: fixed;\n inset: 0;\n z-index: var(--panneau-z-overlay);\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100dvh;\n padding: var(--panneau-space-4);\n background-color: var(--panneau-dialog-backdrop, var(--panneau-color-backdrop));\n}\n\n.overlay[data-entering] {\n animation: fade var(--panneau-duration) ease-out;\n}\n\n.overlay[data-exiting] {\n animation: fade var(--panneau-duration) ease-in reverse;\n}\n\n.modal {\n display: flex;\n width: 100%;\n max-width: var(--panneau-dialog-width, 32rem);\n max-height: calc(100dvh - 2 * var(--panneau-space-4));\n outline: none;\n}\n\n.sm {\n max-width: var(--panneau-dialog-width-sm, 24rem);\n}\n\n.lg {\n max-width: var(--panneau-dialog-width-lg, 48rem);\n}\n\n.xl {\n max-width: var(--panneau-dialog-width-xl, 72rem);\n}\n\n.modal[data-entering] {\n animation: rise var(--panneau-duration) ease-out;\n}\n\n.dialog {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: inherit;\n color: var(--panneau-color-text);\n background-color: var(--panneau-dialog-bg, var(--panneau-color-surface-raised));\n border-radius: var(--panneau-dialog-radius, var(--panneau-radius-lg));\n box-shadow: var(--panneau-dialog-shadow, var(--panneau-shadow-lg));\n outline: none;\n}\n\n.header {\n display: flex;\n align-items: flex-start;\n gap: var(--panneau-space-3);\n padding: var(--panneau-space-4) var(--panneau-space-4) 0\n var(--panneau-dialog-padding-x, var(--panneau-space-5));\n}\n\n.headerContent {\n display: flex;\n flex: 0 1 auto;\n align-items: center;\n gap: var(--panneau-space-2);\n min-width: 0;\n}\n\n.title {\n flex: 1 1 12rem;\n min-width: 0;\n padding-top: var(--panneau-space-1);\n font-size: var(--panneau-dialog-title-font-size, var(--panneau-font-size-lg));\n font-weight: var(--panneau-dialog-title-font-weight, var(--panneau-font-weight-bold));\n line-height: var(--panneau-line-height-tight);\n overflow-wrap: anywhere;\n margin: 0;\n}\n\n.body {\n flex: 1 1 auto;\n min-height: 0;\n padding: var(--panneau-space-3) var(--panneau-dialog-padding-x, var(--panneau-space-5))\n var(--panneau-space-4);\n overflow-y: auto;\n}\n\n.footer {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--panneau-space-2);\n padding: var(--panneau-space-3) var(--panneau-dialog-padding-x, var(--panneau-space-5))\n var(--panneau-space-4);\n border-top: var(--panneau-border-width) solid var(--panneau-color-border);\n}\n\n/* Phones: the dialog is a sheet at the bottom, with full-width buttons. */\n@media (max-width: 30rem) {\n .overlay {\n align-items: flex-end;\n padding: 0;\n }\n\n .modal,\n .sm,\n .lg,\n .xl {\n max-width: none;\n max-height: calc(100dvh - var(--panneau-space-8));\n }\n\n .dialog {\n border-end-start-radius: 0;\n border-end-end-radius: 0;\n padding-bottom: env(safe-area-inset-bottom);\n }\n\n /* The whole screen, under the notch. */\n .fullScreenOnPhone {\n height: 100dvh;\n max-height: 100dvh;\n }\n\n .fullScreenOnPhone .dialog {\n border-radius: 0;\n padding-top: env(safe-area-inset-top);\n }\n\n /* The header's content goes under the title and the close button. */\n .header {\n flex-wrap: wrap;\n }\n\n .headerContent {\n flex: 1 1 100%;\n order: 1;\n }\n\n .footer {\n flex-direction: column-reverse;\n }\n\n .footer > * {\n width: 100%;\n }\n}\n\n@keyframes fade {\n from {\n opacity: 0;\n }\n}\n\n@keyframes rise {\n from {\n opacity: 0;\n transform: translateY(0.5rem);\n }\n}\n"],"mappings":""}
|
package/dist/dialog/tokens.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/** Tokens of Dialog. */
|
|
2
|
-
export declare const dialogTokens: import("..").ComponentTokens<"dialog", "panneau-dialog-width" | "panneau-dialog-radius" | "panneau-dialog-padding-x" | "panneau-dialog-title-font-weight" | "panneau-dialog-bg" | "panneau-dialog-shadow" | "panneau-dialog-title-font-size" | "panneau-dialog-width-sm" | "panneau-dialog-width-lg" | "panneau-dialog-backdrop">;
|
|
2
|
+
export declare const dialogTokens: import("..").ComponentTokens<"dialog", "panneau-dialog-width" | "panneau-dialog-radius" | "panneau-dialog-padding-x" | "panneau-dialog-title-font-weight" | "panneau-dialog-bg" | "panneau-dialog-shadow" | "panneau-dialog-title-font-size" | "panneau-dialog-width-sm" | "panneau-dialog-width-lg" | "panneau-dialog-width-xl" | "panneau-dialog-backdrop">;
|
|
3
3
|
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/dialog/tokens.ts"],"names":[],"mappings":"AAEA,wBAAwB;AACxB,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/dialog/tokens.ts"],"names":[],"mappings":"AAEA,wBAAwB;AACxB,eAAO,MAAM,YAAY,+VAuBvB,CAAC"}
|
package/dist/dialog/tokens.js
CHANGED
|
@@ -10,6 +10,8 @@ var dialogTokens = defineComponentTokens("dialog", {
|
|
|
10
10
|
"width-sm": "24rem",
|
|
11
11
|
/** Maximum width of the large size. */
|
|
12
12
|
"width-lg": "48rem",
|
|
13
|
+
/** Maximum width of the extra large size, for pickers and editors. */
|
|
14
|
+
"width-xl": "72rem",
|
|
13
15
|
/** Background. */
|
|
14
16
|
bg: "var(--panneau-color-surface-raised)",
|
|
15
17
|
/** Corner radius. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","names":[],"sources":["../../src/dialog/tokens.ts"],"sourcesContent":["import { defineComponentTokens } from '../theme/componentTokens';\n\n/** Tokens of Dialog. */\nexport const dialogTokens = defineComponentTokens('dialog', {\n /** Color of the backdrop. */\n backdrop: 'var(--panneau-color-backdrop)',\n /** Maximum width of the default size. */\n width: '32rem',\n /** Maximum width of the small size. */\n 'width-sm': '24rem',\n /** Maximum width of the large size. */\n 'width-lg': '48rem',\n /** Background. */\n bg: 'var(--panneau-color-surface-raised)',\n /** Corner radius. */\n radius: 'var(--panneau-radius-lg)',\n /** Shadow. */\n shadow: 'var(--panneau-shadow-lg)',\n /** Horizontal padding. */\n 'padding-x': 'var(--panneau-space-5)',\n /** Font size of the title. */\n 'title-font-size': 'var(--panneau-font-size-lg)',\n /** Font weight of the title. */\n 'title-font-weight': 'var(--panneau-font-weight-bold)',\n});\n"],"mappings":";;;AAGA,IAAa,eAAe,sBAAsB,UAAU;;CAExD,UAAU;;CAEV,OAAO;;CAEP,YAAY;;CAEZ,YAAY;;CAEZ,IAAI;;CAEJ,QAAQ;;CAER,QAAQ;;CAER,aAAa;;CAEb,mBAAmB;;CAEnB,qBAAqB;AACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"tokens.js","names":[],"sources":["../../src/dialog/tokens.ts"],"sourcesContent":["import { defineComponentTokens } from '../theme/componentTokens';\n\n/** Tokens of Dialog. */\nexport const dialogTokens = defineComponentTokens('dialog', {\n /** Color of the backdrop. */\n backdrop: 'var(--panneau-color-backdrop)',\n /** Maximum width of the default size. */\n width: '32rem',\n /** Maximum width of the small size. */\n 'width-sm': '24rem',\n /** Maximum width of the large size. */\n 'width-lg': '48rem',\n /** Maximum width of the extra large size, for pickers and editors. */\n 'width-xl': '72rem',\n /** Background. */\n bg: 'var(--panneau-color-surface-raised)',\n /** Corner radius. */\n radius: 'var(--panneau-radius-lg)',\n /** Shadow. */\n shadow: 'var(--panneau-shadow-lg)',\n /** Horizontal padding. */\n 'padding-x': 'var(--panneau-space-5)',\n /** Font size of the title. */\n 'title-font-size': 'var(--panneau-font-size-lg)',\n /** Font weight of the title. */\n 'title-font-weight': 'var(--panneau-font-weight-bold)',\n});\n"],"mappings":";;;AAGA,IAAa,eAAe,sBAAsB,UAAU;;CAExD,UAAU;;CAEV,OAAO;;CAEP,YAAY;;CAEZ,YAAY;;CAEZ,YAAY;;CAEZ,IAAI;;CAEJ,QAAQ;;CAER,QAAQ;;CAER,aAAa;;CAEb,mBAAmB;;CAEnB,qBAAqB;AACzB,CAAC"}
|
package/dist/field/Field.css
CHANGED
|
@@ -132,6 +132,15 @@
|
|
|
132
132
|
margin-inline-start: var(--panneau-space-2);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
/* A text before or after the value reads with it, as one URL or one amount: `/pages/home`. */
|
|
136
|
+
.panneau-field-adornment[data-text]:first-child {
|
|
137
|
+
margin-inline-end: 0;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.panneau-field-adornment[data-text]:last-child {
|
|
141
|
+
margin-inline-start: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
135
144
|
.panneau-field-fieldset {
|
|
136
145
|
display: flex;
|
|
137
146
|
flex-direction: column;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.module.js","names":[],"sources":["../../src/field/Field.module.css"],"sourcesContent":["/* Shared look of labelled controls: label, description, errors and the control itself. */\n\n.field {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-field-gap, var(--panneau-space-1));\n min-width: 0;\n}\n\n.label {\n font-size: var(--panneau-field-label-font-size, var(--panneau-font-size-md));\n font-weight: var(--panneau-field-label-font-weight, var(--panneau-font-weight-medium));\n line-height: var(--panneau-line-height-tight);\n color: var(--panneau-color-text);\n overflow-wrap: anywhere;\n}\n\n.required {\n margin-inline-start: 0.2em;\n color: var(--panneau-color-danger);\n}\n\n.description {\n font-size: var(--panneau-font-size-sm);\n color: var(--panneau-color-text-muted);\n}\n\n.errors {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-space-1);\n font-size: var(--panneau-font-size-sm);\n color: var(--panneau-color-danger);\n}\n\n.error {\n display: block;\n}\n\n.control {\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n min-height: var(--panneau-control-height);\n padding: 0 var(--panneau-input-padding-x, var(--panneau-control-padding-x));\n font-size: var(--panneau-font-size-control);\n line-height: var(--panneau-line-height-tight);\n color: var(--panneau-color-text);\n background-color: var(--panneau-input-bg, var(--panneau-color-surface));\n border: var(--panneau-input-border-width, var(--panneau-border-width)) solid\n var(--panneau-input-border-color, var(--panneau-color-border-control));\n border-radius: var(--panneau-input-radius, var(--panneau-radius-md));\n transition:\n border-color var(--panneau-duration),\n box-shadow var(--panneau-duration);\n}\n\n.control::placeholder {\n color: var(--panneau-color-text-muted);\n opacity: 1;\n}\n\n.control[data-hovered],\n.control:hover {\n border-color: var(--panneau-input-border-color-hover, var(--panneau-color-text-muted));\n}\n\n.control[data-focused],\n.control[data-focus-within],\n.control[data-focus-visible],\n.control:focus-within {\n border-color: var(--panneau-color-focus);\n outline: none;\n box-shadow: 0 0 0 1px var(--panneau-color-focus);\n}\n\n.control[data-invalid] {\n border-color: var(--panneau-color-danger);\n}\n\n.control[data-invalid][data-focused],\n.control[data-invalid][data-focus-within],\n.control[data-invalid]:focus-within {\n box-shadow: 0 0 0 1px var(--panneau-color-danger);\n}\n\n.control[data-disabled] {\n cursor: not-allowed;\n opacity: 0.6;\n background-color: var(--panneau-color-surface-sunken);\n}\n\n.control[data-readonly],\n.control[readonly] {\n background-color: var(--panneau-color-surface-sunken);\n}\n\n/* An input inside a control (with adornments, segments or buttons): the control draws the box. */\n.bare {\n flex: 1 1 auto;\n min-width: 0;\n height: 100%;\n min-height: calc(var(--panneau-control-height) - 2 * var(--panneau-border-width));\n padding: 0;\n font: inherit;\n color: inherit;\n background: transparent;\n border: 0;\n outline: none;\n}\n\n.bare::placeholder {\n color: var(--panneau-color-text-muted);\n opacity: 1;\n}\n\n.adornment {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--panneau-space-1);\n color: var(--panneau-color-text-muted);\n white-space: nowrap;\n}\n\n.adornment:first-child {\n margin-inline-end: var(--panneau-space-2);\n}\n\n.adornment:last-child {\n margin-inline-start: var(--panneau-space-2);\n}\n\n.fieldset {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-space-2);\n min-width: 0;\n}\n\n.legend {\n display: block;\n float: none;\n width: 100%;\n margin: 0 0 var(--panneau-space-1);\n padding: 0;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Field.module.js","names":[],"sources":["../../src/field/Field.module.css"],"sourcesContent":["/* Shared look of labelled controls: label, description, errors and the control itself. */\n\n.field {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-field-gap, var(--panneau-space-1));\n min-width: 0;\n}\n\n.label {\n font-size: var(--panneau-field-label-font-size, var(--panneau-font-size-md));\n font-weight: var(--panneau-field-label-font-weight, var(--panneau-font-weight-medium));\n line-height: var(--panneau-line-height-tight);\n color: var(--panneau-color-text);\n overflow-wrap: anywhere;\n}\n\n.required {\n margin-inline-start: 0.2em;\n color: var(--panneau-color-danger);\n}\n\n.description {\n font-size: var(--panneau-font-size-sm);\n color: var(--panneau-color-text-muted);\n}\n\n.errors {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-space-1);\n font-size: var(--panneau-font-size-sm);\n color: var(--panneau-color-danger);\n}\n\n.error {\n display: block;\n}\n\n.control {\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n min-height: var(--panneau-control-height);\n padding: 0 var(--panneau-input-padding-x, var(--panneau-control-padding-x));\n font-size: var(--panneau-font-size-control);\n line-height: var(--panneau-line-height-tight);\n color: var(--panneau-color-text);\n background-color: var(--panneau-input-bg, var(--panneau-color-surface));\n border: var(--panneau-input-border-width, var(--panneau-border-width)) solid\n var(--panneau-input-border-color, var(--panneau-color-border-control));\n border-radius: var(--panneau-input-radius, var(--panneau-radius-md));\n transition:\n border-color var(--panneau-duration),\n box-shadow var(--panneau-duration);\n}\n\n.control::placeholder {\n color: var(--panneau-color-text-muted);\n opacity: 1;\n}\n\n.control[data-hovered],\n.control:hover {\n border-color: var(--panneau-input-border-color-hover, var(--panneau-color-text-muted));\n}\n\n.control[data-focused],\n.control[data-focus-within],\n.control[data-focus-visible],\n.control:focus-within {\n border-color: var(--panneau-color-focus);\n outline: none;\n box-shadow: 0 0 0 1px var(--panneau-color-focus);\n}\n\n.control[data-invalid] {\n border-color: var(--panneau-color-danger);\n}\n\n.control[data-invalid][data-focused],\n.control[data-invalid][data-focus-within],\n.control[data-invalid]:focus-within {\n box-shadow: 0 0 0 1px var(--panneau-color-danger);\n}\n\n.control[data-disabled] {\n cursor: not-allowed;\n opacity: 0.6;\n background-color: var(--panneau-color-surface-sunken);\n}\n\n.control[data-readonly],\n.control[readonly] {\n background-color: var(--panneau-color-surface-sunken);\n}\n\n/* An input inside a control (with adornments, segments or buttons): the control draws the box. */\n.bare {\n flex: 1 1 auto;\n min-width: 0;\n height: 100%;\n min-height: calc(var(--panneau-control-height) - 2 * var(--panneau-border-width));\n padding: 0;\n font: inherit;\n color: inherit;\n background: transparent;\n border: 0;\n outline: none;\n}\n\n.bare::placeholder {\n color: var(--panneau-color-text-muted);\n opacity: 1;\n}\n\n.adornment {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--panneau-space-1);\n color: var(--panneau-color-text-muted);\n white-space: nowrap;\n}\n\n.adornment:first-child {\n margin-inline-end: var(--panneau-space-2);\n}\n\n.adornment:last-child {\n margin-inline-start: var(--panneau-space-2);\n}\n\n/* A text before or after the value reads with it, as one URL or one amount: `/pages/home`. */\n.adornment[data-text]:first-child {\n margin-inline-end: 0;\n}\n\n.adornment[data-text]:last-child {\n margin-inline-start: 0;\n}\n\n.fieldset {\n display: flex;\n flex-direction: column;\n gap: var(--panneau-space-2);\n min-width: 0;\n}\n\n.legend {\n display: block;\n float: none;\n width: 100%;\n margin: 0 0 var(--panneau-space-1);\n padding: 0;\n}\n"],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ export { Alert, type AlertAppearance, type AlertProps, type AlertTone, type Aler
|
|
|
2
2
|
export { Badge, type BadgeAppearance, type BadgeProps, type BadgeTone, type BadgeVariants, } from './badge/Badge';
|
|
3
3
|
export { Button, type ButtonAppearance, type ButtonProps, type ButtonVariant, type ButtonVariants, } from './button/Button';
|
|
4
4
|
export { Card, type CardProps } from './card/Card';
|
|
5
|
+
export { CommandPalette, type CommandPaletteProps } from './command-palette/CommandPalette';
|
|
6
|
+
export { type CommandPaletteGroup, type CommandPaletteItem, matchCommands, normalizeSearch, } from './command-palette/match';
|
|
7
|
+
export { isApplePlatform, useCommandShortcut } from './command-palette/useCommandShortcut';
|
|
5
8
|
export { Container, type ContainerProps } from './container/Container';
|
|
6
9
|
export { Divider, type DividerProps } from './divider/Divider';
|
|
7
10
|
export { Grid, GridItem, type GridItemProps, type GridProps } from './grid/Grid';
|
|
@@ -18,12 +21,16 @@ export { Icon, type IconComponent, type IconProps, type IconSize } from './icon/
|
|
|
18
21
|
export { type NamedIconLoader, getNamedIcon, loadNamedIcon } from './icon/namedIcons';
|
|
19
22
|
export { IconButton, type IconButtonProps } from './icon-button/IconButton';
|
|
20
23
|
export { usePanneauIntl } from './intl/usePanneauIntl';
|
|
21
|
-
export { Menu, MenuItem, type MenuItemProps, type MenuProps, MenuSeparator, MenuTrigger, } from './menu/Menu';
|
|
24
|
+
export { Menu, MenuItem, type MenuItemProps, type MenuProps, MenuSection, type MenuSectionProps, MenuSeparator, MenuTrigger, } from './menu/Menu';
|
|
22
25
|
export { NumberInput, type NumberInputProps } from './number-input/NumberInput';
|
|
26
|
+
export { Slider, type SliderProps } from './slider/Slider';
|
|
27
|
+
export { type TagSuggestion, TagsInput, type TagsInputProps } from './tags-input/TagsInput';
|
|
28
|
+
export { PillTrigger, type PillTriggerProps } from './pill-trigger/PillTrigger';
|
|
23
29
|
export { Popover, type PopoverProps, PopoverTrigger } from './popover/Popover';
|
|
24
|
-
export { RadioGroup, type RadioGroupProps } from './radio-group/RadioGroup';
|
|
30
|
+
export { RadioGroup, type RadioGroupAppearance, type RadioGroupOption, type RadioGroupProps, } from './radio-group/RadioGroup';
|
|
25
31
|
export { PanneauRoot, type PanneauRootProps, usePortalContainer } from './root/PanneauRoot';
|
|
26
32
|
export { ThemeScope, type ThemeScopeProps } from './root/ThemeScope';
|
|
33
|
+
export { SegmentedControl, type SegmentedControlOption, type SegmentedControlProps, } from './segmented-control/SegmentedControl';
|
|
27
34
|
export { type MultipleSelectProps, type OptionValue, Select, type SelectBaseProps, type SelectOption, type SelectProps, type SingleSelectProps, } from './select/Select';
|
|
28
35
|
export { Inline, type InlineProps } from './inline/Inline';
|
|
29
36
|
export { BREAKPOINTS, type Breakpoint, type Justification, type Responsive, type Space, } from './layout/responsive';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,aAAa,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,KAAK,EACL,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,aAAa,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,MAAM,EACN,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,KAAK,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACH,IAAI,EACJ,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,aAAa,EACb,WAAW,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,9 @@ import { IconButton } from "./icon-button/IconButton.js";
|
|
|
11
11
|
import { Alert } from "./alert/Alert.js";
|
|
12
12
|
import { Badge } from "./badge/Badge.js";
|
|
13
13
|
import { Card } from "./card/Card.js";
|
|
14
|
+
import { matchCommands, normalizeSearch } from "./command-palette/match.js";
|
|
15
|
+
import { CommandPalette } from "./command-palette/CommandPalette.js";
|
|
16
|
+
import { isApplePlatform, useCommandShortcut } from "./command-palette/useCommandShortcut.js";
|
|
14
17
|
import { Container } from "./container/Container.js";
|
|
15
18
|
import { Divider } from "./divider/Divider.js";
|
|
16
19
|
import { BREAKPOINTS } from "./layout/responsive.js";
|
|
@@ -19,14 +22,19 @@ import { Heading } from "./heading/Heading.js";
|
|
|
19
22
|
import { Checkbox } from "./checkbox/Checkbox.js";
|
|
20
23
|
import { Popover, PopoverTrigger } from "./popover/Popover.js";
|
|
21
24
|
import { ComboBox } from "./combo-box/ComboBox.js";
|
|
25
|
+
import { TimeInput } from "./time-input/TimeInput.js";
|
|
22
26
|
import { DatePicker } from "./date-picker/DatePicker.js";
|
|
23
27
|
import { Dialog, DialogTrigger } from "./dialog/Dialog.js";
|
|
24
28
|
import { Disclosure } from "./disclosure/Disclosure.js";
|
|
25
29
|
import { Fieldset } from "./field/Fieldset.js";
|
|
26
|
-
import { Menu, MenuItem, MenuSeparator, MenuTrigger } from "./menu/Menu.js";
|
|
30
|
+
import { Menu, MenuItem, MenuSection, MenuSeparator, MenuTrigger } from "./menu/Menu.js";
|
|
27
31
|
import { NumberInput } from "./number-input/NumberInput.js";
|
|
32
|
+
import { Slider } from "./slider/Slider.js";
|
|
33
|
+
import { TagsInput } from "./tags-input/TagsInput.js";
|
|
34
|
+
import { PillTrigger } from "./pill-trigger/PillTrigger.js";
|
|
28
35
|
import { RadioGroup } from "./radio-group/RadioGroup.js";
|
|
29
36
|
import { ThemeScope } from "./root/ThemeScope.js";
|
|
37
|
+
import { SegmentedControl } from "./segmented-control/SegmentedControl.js";
|
|
30
38
|
import { Select } from "./select/Select.js";
|
|
31
39
|
import { Inline } from "./inline/Inline.js";
|
|
32
40
|
import { Prose } from "./prose/Prose.js";
|
|
@@ -44,5 +52,4 @@ import { defineComponentTokens } from "./theme/componentTokens.js";
|
|
|
44
52
|
import { componentTokens } from "./theme/components.js";
|
|
45
53
|
import { SEMANTIC_TOKENS } from "./theme/semanticTokens.js";
|
|
46
54
|
import { defineTheme, findUnknownTokens, mergeThemes } from "./theme/defineTheme.js";
|
|
47
|
-
|
|
48
|
-
export { Alert, BREAKPOINTS, BUILT_IN_TONES, Badge, Button, CHART_CATEGORICAL_COUNT, CHART_SEQUENTIAL_COUNT, Card, Checkbox, ComboBox, Container, DatePicker, Dialog, DialogTrigger, Disclosure, Divider, Fieldset, Grid, GridItem, Heading, Icon, IconButton, Inline, Menu, MenuItem, MenuSeparator, MenuTrigger, NumberInput, PanneauRoot, Popover, PopoverTrigger, Prose, RadioGroup, SEMANTIC_TOKENS, Select, Spinner, Stack, Switch, Tab, TabList, TabPanel, Tabs, Text, TextArea, TextInput, ThemeScope, TimeInput, Tooltip, bootstrapTheme, bootstrapTone, chartColors, checkColorDifferences, checkTheme, componentTokens, defineComponentTokens, defineTheme, deriveTone, findUnknownTokens, getNamedIcon, loadNamedIcon, mergeThemes, toneClassName, usePanneauIntl, usePortalContainer, useToast };
|
|
55
|
+
export { Alert, BREAKPOINTS, BUILT_IN_TONES, Badge, Button, CHART_CATEGORICAL_COUNT, CHART_SEQUENTIAL_COUNT, Card, Checkbox, ComboBox, CommandPalette, Container, DatePicker, Dialog, DialogTrigger, Disclosure, Divider, Fieldset, Grid, GridItem, Heading, Icon, IconButton, Inline, Menu, MenuItem, MenuSection, MenuSeparator, MenuTrigger, NumberInput, PanneauRoot, PillTrigger, Popover, PopoverTrigger, Prose, RadioGroup, SEMANTIC_TOKENS, SegmentedControl, Select, Slider, Spinner, Stack, Switch, Tab, TabList, TabPanel, Tabs, TagsInput, Text, TextArea, TextInput, ThemeScope, TimeInput, Tooltip, bootstrapTheme, bootstrapTone, chartColors, checkColorDifferences, checkTheme, componentTokens, defineComponentTokens, defineTheme, deriveTone, findUnknownTokens, getNamedIcon, isApplePlatform, loadNamedIcon, matchCommands, mergeThemes, normalizeSearch, toneClassName, useCommandShortcut, usePanneauIntl, usePortalContainer, useToast };
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/* Parts of menus on top of the options of ListBox.module.css: sections, footer, media, selection. */
|
|
2
|
+
|
|
3
|
+
/* A menu with a footer: the items scroll, the footer stays under them. */
|
|
4
|
+
.panneau-menu-layout {
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
max-height: inherit;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.panneau-menu-layout > [role='menu'] {
|
|
11
|
+
flex: 1 1 auto;
|
|
12
|
+
min-height: 0;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.panneau-menu-section + .panneau-menu-section {
|
|
16
|
+
margin-top: var(--panneau-space-1);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.panneau-menu-header {
|
|
20
|
+
padding: var(--panneau-space-2) var(--panneau-list-box-item-padding-x, var(--panneau-space-2))
|
|
21
|
+
var(--panneau-space-1);
|
|
22
|
+
font-size: var(--panneau-menu-header-font-size, var(--panneau-font-size-xs));
|
|
23
|
+
font-weight: var(--panneau-menu-header-font-weight, var(--panneau-font-weight-medium));
|
|
24
|
+
line-height: var(--panneau-line-height-tight);
|
|
25
|
+
color: var(--panneau-menu-header-color, var(--panneau-color-text-muted));
|
|
26
|
+
text-transform: var(--panneau-menu-header-text-transform, uppercase);
|
|
27
|
+
letter-spacing: var(--panneau-menu-header-letter-spacing, 0.04em);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.panneau-menu-footer {
|
|
31
|
+
flex: 0 0 auto;
|
|
32
|
+
padding: var(--panneau-space-2)
|
|
33
|
+
calc(
|
|
34
|
+
var(--panneau-list-box-padding, var(--panneau-space-1)) +
|
|
35
|
+
var(--panneau-list-box-item-padding-x, var(--panneau-space-2))
|
|
36
|
+
);
|
|
37
|
+
font-size: var(--panneau-menu-footer-font-size, var(--panneau-font-size-xs));
|
|
38
|
+
line-height: var(--panneau-line-height-tight);
|
|
39
|
+
color: var(--panneau-menu-footer-color, var(--panneau-color-text-muted));
|
|
40
|
+
border-top: var(--panneau-border-width) solid var(--panneau-color-border);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.panneau-menu-media {
|
|
44
|
+
display: inline-flex;
|
|
45
|
+
flex: 0 0 auto;
|
|
46
|
+
align-items: center;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
width: var(--panneau-menu-media-size, 1.5rem);
|
|
49
|
+
height: var(--panneau-menu-media-size, 1.5rem);
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
border-radius: var(--panneau-menu-media-radius, var(--panneau-radius-full));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.panneau-menu-item:has([slot='description']) .panneau-menu-media {
|
|
55
|
+
width: var(--panneau-menu-media-size-described, 2rem);
|
|
56
|
+
height: var(--panneau-menu-media-size-described, 2rem);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.panneau-menu-media > :is(img, svg, video, picture) {
|
|
60
|
+
width: 100%;
|
|
61
|
+
height: 100%;
|
|
62
|
+
object-fit: cover;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* The check of a selected item, at its end. */
|
|
66
|
+
.panneau-menu-check {
|
|
67
|
+
display: inline-flex;
|
|
68
|
+
flex: 0 0 auto;
|
|
69
|
+
justify-content: flex-end;
|
|
70
|
+
width: 1rem;
|
|
71
|
+
color: var(--panneau-color-text);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.panneau-menu-item[data-selected] {
|
|
75
|
+
background-color: var(--panneau-menu-item-bg-selected, var(--panneau-color-surface-sunken));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* A focused or hovered selected item: the hover color over the selected background. */
|
|
79
|
+
.panneau-menu-item[data-selected]:is([data-focused], [data-hovered]) {
|
|
80
|
+
background-image: linear-gradient(
|
|
81
|
+
var(--panneau-list-box-item-bg-hover, var(--panneau-color-hover)),
|
|
82
|
+
var(--panneau-list-box-item-bg-hover, var(--panneau-color-hover))
|
|
83
|
+
);
|
|
84
|
+
}
|
package/dist/menu/Menu.d.ts
CHANGED
|
@@ -1,26 +1,53 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { type MenuItemProps as AriaMenuItemProps, type MenuProps as AriaMenuProps } from 'react-aria-components';
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type MenuItemProps as AriaMenuItemProps, type MenuProps as AriaMenuProps, type MenuSectionProps as AriaMenuSectionProps } from 'react-aria-components';
|
|
3
3
|
import { type IconComponent } from '../icon/Icon';
|
|
4
4
|
export interface MenuProps<T extends object> extends Omit<AriaMenuProps<T>, 'className' | 'style'> {
|
|
5
5
|
className?: string;
|
|
6
6
|
popoverClassName?: string;
|
|
7
7
|
placement?: 'bottom start' | 'bottom end' | 'top start' | 'top end';
|
|
8
|
+
/**
|
|
9
|
+
* A short note under the items, after a line, such as "Only this step changes.". It isn't an
|
|
10
|
+
* item and can't be focused: the menu is described by it.
|
|
11
|
+
*/
|
|
12
|
+
footer?: ReactNode;
|
|
13
|
+
footerClassName?: string;
|
|
8
14
|
}
|
|
9
15
|
/**
|
|
10
16
|
* A menu of actions, inside a `MenuTrigger` with its button as the first child. Arrow keys move
|
|
11
|
-
* between items, and typing a letter jumps to an item.
|
|
17
|
+
* between items, and typing a letter jumps to an item. With `selectionMode` (`single` or
|
|
18
|
+
* `multiple`) and `selectedKeys`, its items are choices, and the selected ones have a check.
|
|
12
19
|
*/
|
|
13
|
-
export declare function Menu<T extends object>({ className, popoverClassName, placement, ...props }: MenuProps<T>): import("react").JSX.Element;
|
|
20
|
+
export declare function Menu<T extends object>({ className, popoverClassName, placement, footer, footerClassName, ...props }: MenuProps<T>): import("react").JSX.Element;
|
|
14
21
|
export interface MenuItemProps extends Omit<AriaMenuItemProps, 'className' | 'style' | 'children'> {
|
|
15
22
|
children?: ReactNode;
|
|
16
23
|
icon?: IconComponent;
|
|
24
|
+
/**
|
|
25
|
+
* Leading media instead of an icon, such as an avatar or an image, sized with the item: larger
|
|
26
|
+
* when the item has a description.
|
|
27
|
+
*/
|
|
28
|
+
media?: ReactNode;
|
|
17
29
|
description?: string;
|
|
18
30
|
/** Styles the item as destructive. */
|
|
19
31
|
isDanger?: boolean;
|
|
20
32
|
className?: string;
|
|
21
33
|
}
|
|
22
|
-
/**
|
|
23
|
-
|
|
34
|
+
/**
|
|
35
|
+
* An item of a `Menu`. In a menu with a `selectionMode`, a selected item has a check at its end,
|
|
36
|
+
* and the role of a radio (single) or a checkbox (multiple) item.
|
|
37
|
+
*/
|
|
38
|
+
export declare function MenuItem({ children, icon, media, description, isDanger, className, textValue, ...props }: MenuItemProps): import("react").JSX.Element;
|
|
39
|
+
export interface MenuSectionProps<T extends object> extends Omit<AriaMenuSectionProps<T>, 'className' | 'style' | 'children' | 'items'> {
|
|
40
|
+
/**
|
|
41
|
+
* The header of the section, a small muted eyebrow above its items, such as "Publish on". It
|
|
42
|
+
* labels the group. Without it, give the section an `aria-label`.
|
|
43
|
+
*/
|
|
44
|
+
title?: ReactNode;
|
|
45
|
+
children?: ReactNode;
|
|
46
|
+
className?: string;
|
|
47
|
+
headerClassName?: string;
|
|
48
|
+
}
|
|
49
|
+
/** A group of items of a `Menu`, with a header. */
|
|
50
|
+
export declare function MenuSection<T extends object>({ title, children, className, headerClassName, ...props }: MenuSectionProps<T>): import("react").JSX.Element;
|
|
24
51
|
/** A line between groups of menu items. */
|
|
25
52
|
export declare function MenuSeparator(): import("react").JSX.Element;
|
|
26
53
|
export { MenuTrigger } from 'react-aria-components';
|
package/dist/menu/Menu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/menu/Menu.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/menu/Menu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAC9C,OAAO,EAGH,KAAK,aAAa,IAAI,iBAAiB,EACvC,KAAK,SAAS,IAAI,aAAa,EAE/B,KAAK,gBAAgB,IAAI,oBAAoB,EAIhD,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAQ,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAMxD,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;IACpE;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,EACnC,SAAS,EACT,gBAAgB,EAChB,SAA0B,EAC1B,MAAM,EACN,eAAe,EACf,GAAG,KAAK,EACX,EAAE,SAAS,CAAC,CAAC,CAAC,+BA4Bd;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,iBAAiB,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;IAC9F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACrB,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAgB,EAChB,SAAS,EACT,SAAS,EACT,GAAG,KAAK,EACX,EAAE,aAAa,+BAkCf;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAC5D,oBAAoB,CAAC,CAAC,CAAC,EACvB,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAC/C;IACG;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,mDAAmD;AACnD,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,EAC1C,KAAK,EACL,QAAQ,EACR,SAAS,EACT,eAAe,EACf,GAAG,KAAK,EACX,EAAE,gBAAgB,CAAC,CAAC,CAAC,+BASrB;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,gCAE5B;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
|