@allxsmith/bestax-bulma 5.67.8 → 5.67.10
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 +3 -3
- package/dist/bestax.css +1 -1
- package/dist/bestax.css.map +1 -1
- package/dist/esm/components/ContextMenu.js +2 -2
- package/dist/esm/components/ContextMenu.js.map +1 -1
- package/dist/esm/components/DataTable.js +2 -1
- package/dist/esm/components/DataTable.js.map +1 -1
- package/dist/esm/components/HoverCard.js.map +1 -1
- package/dist/esm/components/Panel.js.map +1 -1
- package/dist/esm/components/Popover.js.map +1 -1
- package/dist/esm/components/Sidebar.js.map +1 -1
- package/dist/esm/form/ColorInputBase.js.map +1 -1
- package/dist/esm/form/Combobox.js.map +1 -1
- package/dist/esm/form/DateInputBase.js.map +1 -1
- package/dist/esm/form/DateRangeInputBase.js.map +1 -1
- package/dist/esm/form/DateTimeInputBase.js.map +1 -1
- package/dist/esm/form/TimeInputBase.js.map +1 -1
- package/dist/esm/form/TreeSelect.js.map +1 -1
- package/dist/esm/helpers/Config.js.map +1 -1
- package/dist/esm/helpers/portal.js +8 -3
- package/dist/esm/helpers/portal.js.map +1 -1
- package/dist/esm/layout/AppFrame.js +9 -3
- package/dist/esm/layout/AppFrame.js.map +1 -1
- package/dist/extras.css +1 -1
- package/dist/extras.css.map +1 -1
- package/dist/index.cjs +19 -8
- package/dist/index.cjs.map +1 -1
- package/dist/types/components/DataTable.d.ts +2 -1
- package/dist/types/components/HoverCard.d.ts +11 -11
- package/dist/types/components/Panel.d.ts +6 -1
- package/dist/types/components/Popover.d.ts +6 -6
- package/dist/types/components/Sidebar.d.ts +10 -1
- package/dist/types/form/ColorInputBase.d.ts +2 -2
- package/dist/types/form/Combobox.d.ts +6 -6
- package/dist/types/form/DateInputBase.d.ts +2 -2
- package/dist/types/form/DateRangeInputBase.d.ts +2 -2
- package/dist/types/form/DateTimeInputBase.d.ts +2 -2
- package/dist/types/form/TimeInputBase.d.ts +2 -2
- package/dist/types/form/TreeSelect.d.ts +1 -1
- package/dist/types/helpers/Config.d.ts +9 -5
- package/dist/types/helpers/portal.d.ts +7 -3
- package/dist/types/layout/AppFrame.d.ts +5 -1
- package/dist/types-cjs/components/DataTable.d.ts +2 -1
- package/dist/types-cjs/components/HoverCard.d.ts +11 -11
- package/dist/types-cjs/components/Panel.d.ts +6 -1
- package/dist/types-cjs/components/Popover.d.ts +6 -6
- package/dist/types-cjs/components/Sidebar.d.ts +10 -1
- package/dist/types-cjs/form/ColorInputBase.d.ts +2 -2
- package/dist/types-cjs/form/Combobox.d.ts +6 -6
- package/dist/types-cjs/form/DateInputBase.d.ts +2 -2
- package/dist/types-cjs/form/DateRangeInputBase.d.ts +2 -2
- package/dist/types-cjs/form/DateTimeInputBase.d.ts +2 -2
- package/dist/types-cjs/form/TimeInputBase.d.ts +2 -2
- package/dist/types-cjs/form/TreeSelect.d.ts +1 -1
- package/dist/types-cjs/helpers/Config.d.ts +9 -5
- package/dist/types-cjs/helpers/portal.d.ts +7 -3
- package/dist/types-cjs/layout/AppFrame.d.ts +5 -1
- package/dist/versions/bestax-no-dark-mode.css +1 -1
- package/dist/versions/bestax-no-dark-mode.css.map +1 -1
- package/dist/versions/bestax-no-helpers-prefixed.css +1 -1
- package/dist/versions/bestax-no-helpers-prefixed.css.map +1 -1
- package/dist/versions/bestax-no-helpers.css +1 -1
- package/dist/versions/bestax-no-helpers.css.map +1 -1
- package/dist/versions/bestax-prefixed.css +1 -1
- package/dist/versions/bestax-prefixed.css.map +1 -1
- package/package.json +2 -2
- package/src/scss/components/_datatable.scss +14 -2
- package/src/scss/components/_index.scss +1 -0
- package/src/scss/components/_panel.scss +31 -0
|
@@ -61,7 +61,8 @@ export interface DataTableProps<TRow> extends DataTableStateOptions<TRow>, Omit<
|
|
|
61
61
|
/**
|
|
62
62
|
* Shows a page of skeleton rows under the header in place of the rows,
|
|
63
63
|
* and marks the table busy. For data on its way, as from a server with
|
|
64
|
-
* `manual`.
|
|
64
|
+
* `manual`. A skeleton row is as tall as a row of one line of text, so rows
|
|
65
|
+
* of text replace it without the table changing height.
|
|
65
66
|
*/
|
|
66
67
|
loading?: boolean;
|
|
67
68
|
/**
|
|
@@ -85,17 +85,17 @@ export interface HoverCardProps extends Omit<React.HTMLAttributes<HTMLSpanElemen
|
|
|
85
85
|
position?: HoverCardPosition;
|
|
86
86
|
/**
|
|
87
87
|
* Render the card through `Portal`, into the `portalContainer` a
|
|
88
|
-
* `ConfigProvider` sets, else the
|
|
89
|
-
*
|
|
90
|
-
* `overflow`, `transform` or stacking context can't clip it. A
|
|
91
|
-
* running text needs it too, since the card's block content
|
|
92
|
-
* inside a `<p>`. The card then shows from the commit after
|
|
93
|
-
* never in server markup, and it sits in the Tab order where its
|
|
94
|
-
* is. At the end of `<body>` or of
|
|
95
|
-
* rest of the page or the
|
|
96
|
-
* closes it, so keyboard users can open it, read it and
|
|
97
|
-
* Escape, and whatever it links to has to be reachable from
|
|
98
|
-
* well. Theming variables set on an ancestor of the trigger reach it only
|
|
88
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
89
|
+
* such as a `Modal`, else `document.body`, fixed to the viewport, so an
|
|
90
|
+
* ancestor's `overflow`, `transform` or stacking context can't clip it. A
|
|
91
|
+
* trigger in running text needs it too, since the card's block content
|
|
92
|
+
* can't sit inside a `<p>`. The card then shows from the commit after
|
|
93
|
+
* hydration, never in server markup, and it sits in the Tab order where its
|
|
94
|
+
* container is. At the end of `<body>` or of an overlay, Tab reaches it
|
|
95
|
+
* only after the rest of the page or the overlay, and focus leaving the
|
|
96
|
+
* trigger on the way closes it, so keyboard users can open it, read it and
|
|
97
|
+
* close it with Escape, and whatever it links to has to be reachable from
|
|
98
|
+
* the page as well. Theming variables set on an ancestor of the trigger reach it only
|
|
99
99
|
* when its container is inside that ancestor.
|
|
100
100
|
* @defaultValue false
|
|
101
101
|
*/
|
|
@@ -14,7 +14,12 @@ export interface PanelProps extends React.HTMLAttributes<HTMLElement>, Omit<Bulm
|
|
|
14
14
|
* `aria-labelledby` pointing at the `id` of its `Panel.Heading`.
|
|
15
15
|
*/
|
|
16
16
|
as?: 'nav' | 'article' | 'section' | 'aside' | 'div';
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Bulma color modifier for the panel. With none, the heading takes the
|
|
19
|
+
* text color, with its title in the page background's color so it reads on
|
|
20
|
+
* both schemes. On the dark scheme that title color comes from bestax's
|
|
21
|
+
* stylesheets: Bulma's CSS alone writes it white on light gray there.
|
|
22
|
+
*/
|
|
18
23
|
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
|
|
19
24
|
/** Additional CSS classes. */
|
|
20
25
|
className?: string;
|
|
@@ -58,12 +58,12 @@ export interface PopoverProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
58
58
|
position?: PopoverPosition;
|
|
59
59
|
/**
|
|
60
60
|
* Render the panel through `Portal`, into the `portalContainer` a
|
|
61
|
-
* `ConfigProvider` sets, else the
|
|
62
|
-
*
|
|
63
|
-
* `overflow`, `transform` or stacking context can't clip it.
|
|
64
|
-
* then shows from the commit after hydration, never in server
|
|
65
|
-
* Theming variables set on an ancestor of the trigger reach it
|
|
66
|
-
* its container is inside that ancestor.
|
|
61
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
62
|
+
* such as a `Modal`, else `document.body`, fixed to the viewport, so an
|
|
63
|
+
* ancestor's `overflow`, `transform` or stacking context can't clip it.
|
|
64
|
+
* The panel then shows from the commit after hydration, never in server
|
|
65
|
+
* markup. Theming variables set on an ancestor of the trigger reach it
|
|
66
|
+
* only when its container is inside that ancestor.
|
|
67
67
|
* @defaultValue false
|
|
68
68
|
*/
|
|
69
69
|
appendToBody?: boolean;
|
|
@@ -58,7 +58,16 @@ export interface SidebarProps extends Omit<React.HTMLAttributes<HTMLElement>, 'c
|
|
|
58
58
|
escapeClose?: boolean;
|
|
59
59
|
/** Allow closing the sidebar. Default: true. */
|
|
60
60
|
canCancel?: boolean;
|
|
61
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Content to display in the sidebar. A popup in it that portals, such as a
|
|
63
|
+
* Popover's or a date picker's panel with `appendToBody`, goes to the end
|
|
64
|
+
* of the page and renders under an open sidebar. To show it above, wrap
|
|
65
|
+
* the popup in a `ConfigProvider` whose `portalContainer` is an element of
|
|
66
|
+
* your own outside the sidebar that stacks above it, such as one with
|
|
67
|
+
* `position: relative` and a higher `z-index`. With an overlay, the
|
|
68
|
+
* sidebar's `aria-modal` still hides the popup there from screen readers
|
|
69
|
+
* that honor it.
|
|
70
|
+
*/
|
|
62
71
|
children?: React.ReactNode;
|
|
63
72
|
/**
|
|
64
73
|
* Renders inline instead of using a portal. Without it, the sidebar renders
|
|
@@ -76,8 +76,8 @@ export interface ColorInputBaseProps extends Omit<React.InputHTMLAttributes<HTML
|
|
|
76
76
|
position?: PickerPosition;
|
|
77
77
|
/**
|
|
78
78
|
* Renders the panel through a portal, into the `portalContainer` a
|
|
79
|
-
* `ConfigProvider` sets, else the
|
|
80
|
-
*
|
|
79
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
80
|
+
* such as a `Modal`, else `document.body`.
|
|
81
81
|
*/
|
|
82
82
|
appendToBody?: boolean;
|
|
83
83
|
/** Bulma color modifier for the field. */
|
|
@@ -97,12 +97,12 @@ interface ComboboxBaseProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
|
|
|
97
97
|
position?: PopoverPosition;
|
|
98
98
|
/**
|
|
99
99
|
* Renders the menu through `Portal`, into the `portalContainer` a
|
|
100
|
-
* `ConfigProvider` sets, else the
|
|
101
|
-
*
|
|
102
|
-
* container that clips its overflow can't cut it off. It then
|
|
103
|
-
* the commit after hydration, never in server markup. Theming
|
|
104
|
-
* on an ancestor reach it only when the portal's container
|
|
105
|
-
* ancestor, as with Popover.
|
|
100
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
101
|
+
* such as a `Modal`, else `document.body`, fixed to the viewport at the
|
|
102
|
+
* field, so a container that clips its overflow can't cut it off. It then
|
|
103
|
+
* shows from the commit after hydration, never in server markup. Theming
|
|
104
|
+
* variables set on an ancestor reach it only when the portal's container
|
|
105
|
+
* is inside that ancestor, as with Popover.
|
|
106
106
|
* @defaultValue false
|
|
107
107
|
*/
|
|
108
108
|
appendToBody?: boolean;
|
|
@@ -135,8 +135,8 @@ export interface DateInputBaseProps extends Omit<React.InputHTMLAttributes<HTMLI
|
|
|
135
135
|
position?: PickerPosition;
|
|
136
136
|
/**
|
|
137
137
|
* Render the popover through a portal, into the `portalContainer` a
|
|
138
|
-
* `ConfigProvider` sets, else the
|
|
139
|
-
*
|
|
138
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
139
|
+
* such as a `Modal`, else `document.body`.
|
|
140
140
|
*/
|
|
141
141
|
appendToBody?: boolean;
|
|
142
142
|
/**
|
|
@@ -120,8 +120,8 @@ export interface DateRangeInputBaseProps extends Omit<React.HTMLAttributes<HTMLD
|
|
|
120
120
|
position?: PickerPosition;
|
|
121
121
|
/**
|
|
122
122
|
* Render the popover through a portal, into the `portalContainer` a
|
|
123
|
-
* `ConfigProvider` sets, else the
|
|
124
|
-
*
|
|
123
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
124
|
+
* such as a `Modal`, else `document.body`.
|
|
125
125
|
*/
|
|
126
126
|
appendToBody?: boolean;
|
|
127
127
|
/**
|
|
@@ -111,8 +111,8 @@ export interface DateTimeInputBaseProps extends Omit<React.InputHTMLAttributes<H
|
|
|
111
111
|
position?: PickerPosition;
|
|
112
112
|
/**
|
|
113
113
|
* Render the popover through a portal, into the `portalContainer` a
|
|
114
|
-
* `ConfigProvider` sets, else the
|
|
115
|
-
*
|
|
114
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
115
|
+
* such as a `Modal`, else `document.body`.
|
|
116
116
|
*/
|
|
117
117
|
appendToBody?: boolean;
|
|
118
118
|
/**
|
|
@@ -86,8 +86,8 @@ export interface TimeInputBaseProps extends Omit<React.InputHTMLAttributes<HTMLI
|
|
|
86
86
|
position?: PickerPosition;
|
|
87
87
|
/**
|
|
88
88
|
* Render the popover through a portal, into the `portalContainer` a
|
|
89
|
-
* `ConfigProvider` sets, else the
|
|
90
|
-
*
|
|
89
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
90
|
+
* such as a `Modal`, else `document.body`. On a narrow screen
|
|
91
91
|
* an in-place popover spans the bottom of the viewport, while a portaled
|
|
92
92
|
* one stays on its `position` corner.
|
|
93
93
|
*/
|
|
@@ -164,7 +164,7 @@ interface TreeSelectBaseProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
164
164
|
* @defaultValue 'bottom-left'
|
|
165
165
|
*/
|
|
166
166
|
position?: PickerPosition;
|
|
167
|
-
/** Renders the panel through a portal, into a `ConfigProvider`'s `portalContainer`, else the
|
|
167
|
+
/** Renders the panel through a portal, into a `ConfigProvider`'s `portalContainer`, else the overlay it's in that takes its popups, such as a `Modal`, else `document.body`. */
|
|
168
168
|
appendToBody?: boolean;
|
|
169
169
|
/** The visible and accessible strings, in your app's language. */
|
|
170
170
|
labels?: TreeSelectLabels;
|
|
@@ -36,11 +36,15 @@ export interface ConfigProviderProps {
|
|
|
36
36
|
* set to `true`, or a `Toast`. An element, or a `document.querySelector`
|
|
37
37
|
* selector. Unset, or a selector that matches nothing, that content goes to
|
|
38
38
|
* `document.body`, except a popup, such as Popover's panel or a picker's,
|
|
39
|
-
* opened inside
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
39
|
+
* opened inside an overlay that takes its popups. A `Modal`, a `Dialog`
|
|
40
|
+
* and a `Command.Dialog` do, so screen readers that honor their
|
|
41
|
+
* `aria-modal` reach the popup, and so does AppFrame's nav while it's a
|
|
42
|
+
* drawer, so the popup shows above it. A `Sidebar` doesn't, so Popover's
|
|
43
|
+
* or a picker's panel opened in an open one renders under it. Set, it
|
|
44
|
+
* takes those popups too, which is how one in a `Sidebar` shows above it:
|
|
45
|
+
* point it at an element of your own outside the sidebar that stacks above
|
|
46
|
+
* it. A target a component is given, such as a `Toast`'s `container`,
|
|
47
|
+
* still wins, and nothing portals that would otherwise render in place.
|
|
44
48
|
*
|
|
45
49
|
* The overlays and panels this moves are `position: fixed`, so pick an
|
|
46
50
|
* element with no ancestor that has a `transform`, `filter`,
|
|
@@ -35,15 +35,19 @@ export declare function usePortalContainer(): (container?: string | HTMLElement)
|
|
|
35
35
|
* the popups inside it portal, unless a `ConfigProvider` sets a
|
|
36
36
|
* `portalContainer`. Modal, Dialog and Command.Dialog wrap their content in
|
|
37
37
|
* it, each with the element that carries their `aria-modal`, since a screen
|
|
38
|
-
* reader that honors it hides everything outside that element.
|
|
39
|
-
*
|
|
38
|
+
* reader that honors it hides everything outside that element. AppFrame's
|
|
39
|
+
* nav does too while it's a drawer, which draws over the page, so its popups
|
|
40
|
+
* show above it. The nearest one wins, so a Dialog's own box wins over the
|
|
41
|
+
* Modal it renders. An `undefined` node leaves the scope around it in place,
|
|
42
|
+
* for a part that only takes its popups some of the time, so its content
|
|
43
|
+
* keeps one tree either way.
|
|
40
44
|
*
|
|
41
45
|
* @function PortalScope
|
|
42
46
|
* @param props - `node`, the element popups portal into, and `children`.
|
|
43
47
|
* @returns The children, inside the scope.
|
|
44
48
|
*/
|
|
45
49
|
export declare function PortalScope({ node, children, }: {
|
|
46
|
-
node: HTMLElement | null;
|
|
50
|
+
node: HTMLElement | null | undefined;
|
|
47
51
|
children?: React.ReactNode;
|
|
48
52
|
}): React.JSX.Element;
|
|
49
53
|
/**
|
|
@@ -118,7 +118,11 @@ export interface AppFrameNavProps extends Omit<React.HTMLAttributes<HTMLElement>
|
|
|
118
118
|
* Usually a `Menu`. A nav taller than the window scrolls on its own. With
|
|
119
119
|
* `overlay`, the rest of the frame is inert while the drawer is open, so an
|
|
120
120
|
* overlay opened from the drawer, such as a `Modal`, goes inside the nav or
|
|
121
|
-
* renders outside the frame (Modal's `portal`).
|
|
121
|
+
* renders outside the frame (Modal's `portal`). While the nav is a drawer,
|
|
122
|
+
* a popup opened in it, such as a Popover's `appendToBody` panel, portals
|
|
123
|
+
* into the nav, so it shows above the drawer, unless a `ConfigProvider`
|
|
124
|
+
* sets a `portalContainer`. In the column it portals to the end of the
|
|
125
|
+
* page, as it does anywhere else.
|
|
122
126
|
*/
|
|
123
127
|
children?: React.ReactNode;
|
|
124
128
|
/**
|
|
@@ -61,7 +61,8 @@ export interface DataTableProps<TRow> extends DataTableStateOptions<TRow>, Omit<
|
|
|
61
61
|
/**
|
|
62
62
|
* Shows a page of skeleton rows under the header in place of the rows,
|
|
63
63
|
* and marks the table busy. For data on its way, as from a server with
|
|
64
|
-
* `manual`.
|
|
64
|
+
* `manual`. A skeleton row is as tall as a row of one line of text, so rows
|
|
65
|
+
* of text replace it without the table changing height.
|
|
65
66
|
*/
|
|
66
67
|
loading?: boolean;
|
|
67
68
|
/**
|
|
@@ -85,17 +85,17 @@ export interface HoverCardProps extends Omit<React.HTMLAttributes<HTMLSpanElemen
|
|
|
85
85
|
position?: HoverCardPosition;
|
|
86
86
|
/**
|
|
87
87
|
* Render the card through `Portal`, into the `portalContainer` a
|
|
88
|
-
* `ConfigProvider` sets, else the
|
|
89
|
-
*
|
|
90
|
-
* `overflow`, `transform` or stacking context can't clip it. A
|
|
91
|
-
* running text needs it too, since the card's block content
|
|
92
|
-
* inside a `<p>`. The card then shows from the commit after
|
|
93
|
-
* never in server markup, and it sits in the Tab order where its
|
|
94
|
-
* is. At the end of `<body>` or of
|
|
95
|
-
* rest of the page or the
|
|
96
|
-
* closes it, so keyboard users can open it, read it and
|
|
97
|
-
* Escape, and whatever it links to has to be reachable from
|
|
98
|
-
* well. Theming variables set on an ancestor of the trigger reach it only
|
|
88
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
89
|
+
* such as a `Modal`, else `document.body`, fixed to the viewport, so an
|
|
90
|
+
* ancestor's `overflow`, `transform` or stacking context can't clip it. A
|
|
91
|
+
* trigger in running text needs it too, since the card's block content
|
|
92
|
+
* can't sit inside a `<p>`. The card then shows from the commit after
|
|
93
|
+
* hydration, never in server markup, and it sits in the Tab order where its
|
|
94
|
+
* container is. At the end of `<body>` or of an overlay, Tab reaches it
|
|
95
|
+
* only after the rest of the page or the overlay, and focus leaving the
|
|
96
|
+
* trigger on the way closes it, so keyboard users can open it, read it and
|
|
97
|
+
* close it with Escape, and whatever it links to has to be reachable from
|
|
98
|
+
* the page as well. Theming variables set on an ancestor of the trigger reach it only
|
|
99
99
|
* when its container is inside that ancestor.
|
|
100
100
|
* @defaultValue false
|
|
101
101
|
*/
|
|
@@ -14,7 +14,12 @@ export interface PanelProps extends React.HTMLAttributes<HTMLElement>, Omit<Bulm
|
|
|
14
14
|
* `aria-labelledby` pointing at the `id` of its `Panel.Heading`.
|
|
15
15
|
*/
|
|
16
16
|
as?: 'nav' | 'article' | 'section' | 'aside' | 'div';
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Bulma color modifier for the panel. With none, the heading takes the
|
|
19
|
+
* text color, with its title in the page background's color so it reads on
|
|
20
|
+
* both schemes. On the dark scheme that title color comes from bestax's
|
|
21
|
+
* stylesheets: Bulma's CSS alone writes it white on light gray there.
|
|
22
|
+
*/
|
|
18
23
|
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
|
|
19
24
|
/** Additional CSS classes. */
|
|
20
25
|
className?: string;
|
|
@@ -58,12 +58,12 @@ export interface PopoverProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
58
58
|
position?: PopoverPosition;
|
|
59
59
|
/**
|
|
60
60
|
* Render the panel through `Portal`, into the `portalContainer` a
|
|
61
|
-
* `ConfigProvider` sets, else the
|
|
62
|
-
*
|
|
63
|
-
* `overflow`, `transform` or stacking context can't clip it.
|
|
64
|
-
* then shows from the commit after hydration, never in server
|
|
65
|
-
* Theming variables set on an ancestor of the trigger reach it
|
|
66
|
-
* its container is inside that ancestor.
|
|
61
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
62
|
+
* such as a `Modal`, else `document.body`, fixed to the viewport, so an
|
|
63
|
+
* ancestor's `overflow`, `transform` or stacking context can't clip it.
|
|
64
|
+
* The panel then shows from the commit after hydration, never in server
|
|
65
|
+
* markup. Theming variables set on an ancestor of the trigger reach it
|
|
66
|
+
* only when its container is inside that ancestor.
|
|
67
67
|
* @defaultValue false
|
|
68
68
|
*/
|
|
69
69
|
appendToBody?: boolean;
|
|
@@ -58,7 +58,16 @@ export interface SidebarProps extends Omit<React.HTMLAttributes<HTMLElement>, 'c
|
|
|
58
58
|
escapeClose?: boolean;
|
|
59
59
|
/** Allow closing the sidebar. Default: true. */
|
|
60
60
|
canCancel?: boolean;
|
|
61
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Content to display in the sidebar. A popup in it that portals, such as a
|
|
63
|
+
* Popover's or a date picker's panel with `appendToBody`, goes to the end
|
|
64
|
+
* of the page and renders under an open sidebar. To show it above, wrap
|
|
65
|
+
* the popup in a `ConfigProvider` whose `portalContainer` is an element of
|
|
66
|
+
* your own outside the sidebar that stacks above it, such as one with
|
|
67
|
+
* `position: relative` and a higher `z-index`. With an overlay, the
|
|
68
|
+
* sidebar's `aria-modal` still hides the popup there from screen readers
|
|
69
|
+
* that honor it.
|
|
70
|
+
*/
|
|
62
71
|
children?: React.ReactNode;
|
|
63
72
|
/**
|
|
64
73
|
* Renders inline instead of using a portal. Without it, the sidebar renders
|
|
@@ -76,8 +76,8 @@ export interface ColorInputBaseProps extends Omit<React.InputHTMLAttributes<HTML
|
|
|
76
76
|
position?: PickerPosition;
|
|
77
77
|
/**
|
|
78
78
|
* Renders the panel through a portal, into the `portalContainer` a
|
|
79
|
-
* `ConfigProvider` sets, else the
|
|
80
|
-
*
|
|
79
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
80
|
+
* such as a `Modal`, else `document.body`.
|
|
81
81
|
*/
|
|
82
82
|
appendToBody?: boolean;
|
|
83
83
|
/** Bulma color modifier for the field. */
|
|
@@ -97,12 +97,12 @@ interface ComboboxBaseProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
|
|
|
97
97
|
position?: PopoverPosition;
|
|
98
98
|
/**
|
|
99
99
|
* Renders the menu through `Portal`, into the `portalContainer` a
|
|
100
|
-
* `ConfigProvider` sets, else the
|
|
101
|
-
*
|
|
102
|
-
* container that clips its overflow can't cut it off. It then
|
|
103
|
-
* the commit after hydration, never in server markup. Theming
|
|
104
|
-
* on an ancestor reach it only when the portal's container
|
|
105
|
-
* ancestor, as with Popover.
|
|
100
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
101
|
+
* such as a `Modal`, else `document.body`, fixed to the viewport at the
|
|
102
|
+
* field, so a container that clips its overflow can't cut it off. It then
|
|
103
|
+
* shows from the commit after hydration, never in server markup. Theming
|
|
104
|
+
* variables set on an ancestor reach it only when the portal's container
|
|
105
|
+
* is inside that ancestor, as with Popover.
|
|
106
106
|
* @defaultValue false
|
|
107
107
|
*/
|
|
108
108
|
appendToBody?: boolean;
|
|
@@ -135,8 +135,8 @@ export interface DateInputBaseProps extends Omit<React.InputHTMLAttributes<HTMLI
|
|
|
135
135
|
position?: PickerPosition;
|
|
136
136
|
/**
|
|
137
137
|
* Render the popover through a portal, into the `portalContainer` a
|
|
138
|
-
* `ConfigProvider` sets, else the
|
|
139
|
-
*
|
|
138
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
139
|
+
* such as a `Modal`, else `document.body`.
|
|
140
140
|
*/
|
|
141
141
|
appendToBody?: boolean;
|
|
142
142
|
/**
|
|
@@ -120,8 +120,8 @@ export interface DateRangeInputBaseProps extends Omit<React.HTMLAttributes<HTMLD
|
|
|
120
120
|
position?: PickerPosition;
|
|
121
121
|
/**
|
|
122
122
|
* Render the popover through a portal, into the `portalContainer` a
|
|
123
|
-
* `ConfigProvider` sets, else the
|
|
124
|
-
*
|
|
123
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
124
|
+
* such as a `Modal`, else `document.body`.
|
|
125
125
|
*/
|
|
126
126
|
appendToBody?: boolean;
|
|
127
127
|
/**
|
|
@@ -111,8 +111,8 @@ export interface DateTimeInputBaseProps extends Omit<React.InputHTMLAttributes<H
|
|
|
111
111
|
position?: PickerPosition;
|
|
112
112
|
/**
|
|
113
113
|
* Render the popover through a portal, into the `portalContainer` a
|
|
114
|
-
* `ConfigProvider` sets, else the
|
|
115
|
-
*
|
|
114
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
115
|
+
* such as a `Modal`, else `document.body`.
|
|
116
116
|
*/
|
|
117
117
|
appendToBody?: boolean;
|
|
118
118
|
/**
|
|
@@ -86,8 +86,8 @@ export interface TimeInputBaseProps extends Omit<React.InputHTMLAttributes<HTMLI
|
|
|
86
86
|
position?: PickerPosition;
|
|
87
87
|
/**
|
|
88
88
|
* Render the popover through a portal, into the `portalContainer` a
|
|
89
|
-
* `ConfigProvider` sets, else the
|
|
90
|
-
*
|
|
89
|
+
* `ConfigProvider` sets, else the overlay it's in that takes its popups,
|
|
90
|
+
* such as a `Modal`, else `document.body`. On a narrow screen
|
|
91
91
|
* an in-place popover spans the bottom of the viewport, while a portaled
|
|
92
92
|
* one stays on its `position` corner.
|
|
93
93
|
*/
|
|
@@ -164,7 +164,7 @@ interface TreeSelectBaseProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
164
164
|
* @defaultValue 'bottom-left'
|
|
165
165
|
*/
|
|
166
166
|
position?: PickerPosition;
|
|
167
|
-
/** Renders the panel through a portal, into a `ConfigProvider`'s `portalContainer`, else the
|
|
167
|
+
/** Renders the panel through a portal, into a `ConfigProvider`'s `portalContainer`, else the overlay it's in that takes its popups, such as a `Modal`, else `document.body`. */
|
|
168
168
|
appendToBody?: boolean;
|
|
169
169
|
/** The visible and accessible strings, in your app's language. */
|
|
170
170
|
labels?: TreeSelectLabels;
|
|
@@ -36,11 +36,15 @@ export interface ConfigProviderProps {
|
|
|
36
36
|
* set to `true`, or a `Toast`. An element, or a `document.querySelector`
|
|
37
37
|
* selector. Unset, or a selector that matches nothing, that content goes to
|
|
38
38
|
* `document.body`, except a popup, such as Popover's panel or a picker's,
|
|
39
|
-
* opened inside
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
39
|
+
* opened inside an overlay that takes its popups. A `Modal`, a `Dialog`
|
|
40
|
+
* and a `Command.Dialog` do, so screen readers that honor their
|
|
41
|
+
* `aria-modal` reach the popup, and so does AppFrame's nav while it's a
|
|
42
|
+
* drawer, so the popup shows above it. A `Sidebar` doesn't, so Popover's
|
|
43
|
+
* or a picker's panel opened in an open one renders under it. Set, it
|
|
44
|
+
* takes those popups too, which is how one in a `Sidebar` shows above it:
|
|
45
|
+
* point it at an element of your own outside the sidebar that stacks above
|
|
46
|
+
* it. A target a component is given, such as a `Toast`'s `container`,
|
|
47
|
+
* still wins, and nothing portals that would otherwise render in place.
|
|
44
48
|
*
|
|
45
49
|
* The overlays and panels this moves are `position: fixed`, so pick an
|
|
46
50
|
* element with no ancestor that has a `transform`, `filter`,
|
|
@@ -35,15 +35,19 @@ export declare function usePortalContainer(): (container?: string | HTMLElement)
|
|
|
35
35
|
* the popups inside it portal, unless a `ConfigProvider` sets a
|
|
36
36
|
* `portalContainer`. Modal, Dialog and Command.Dialog wrap their content in
|
|
37
37
|
* it, each with the element that carries their `aria-modal`, since a screen
|
|
38
|
-
* reader that honors it hides everything outside that element.
|
|
39
|
-
*
|
|
38
|
+
* reader that honors it hides everything outside that element. AppFrame's
|
|
39
|
+
* nav does too while it's a drawer, which draws over the page, so its popups
|
|
40
|
+
* show above it. The nearest one wins, so a Dialog's own box wins over the
|
|
41
|
+
* Modal it renders. An `undefined` node leaves the scope around it in place,
|
|
42
|
+
* for a part that only takes its popups some of the time, so its content
|
|
43
|
+
* keeps one tree either way.
|
|
40
44
|
*
|
|
41
45
|
* @function PortalScope
|
|
42
46
|
* @param props - `node`, the element popups portal into, and `children`.
|
|
43
47
|
* @returns The children, inside the scope.
|
|
44
48
|
*/
|
|
45
49
|
export declare function PortalScope({ node, children, }: {
|
|
46
|
-
node: HTMLElement | null;
|
|
50
|
+
node: HTMLElement | null | undefined;
|
|
47
51
|
children?: React.ReactNode;
|
|
48
52
|
}): React.JSX.Element;
|
|
49
53
|
/**
|
|
@@ -118,7 +118,11 @@ export interface AppFrameNavProps extends Omit<React.HTMLAttributes<HTMLElement>
|
|
|
118
118
|
* Usually a `Menu`. A nav taller than the window scrolls on its own. With
|
|
119
119
|
* `overlay`, the rest of the frame is inert while the drawer is open, so an
|
|
120
120
|
* overlay opened from the drawer, such as a `Modal`, goes inside the nav or
|
|
121
|
-
* renders outside the frame (Modal's `portal`).
|
|
121
|
+
* renders outside the frame (Modal's `portal`). While the nav is a drawer,
|
|
122
|
+
* a popup opened in it, such as a Popover's `appendToBody` panel, portals
|
|
123
|
+
* into the nav, so it shows above the drawer, unless a `ConfigProvider`
|
|
124
|
+
* sets a `portalContainer`. In the column it portals to the end of the
|
|
125
|
+
* page, as it does anywhere else.
|
|
122
126
|
*/
|
|
123
127
|
children?: React.ReactNode;
|
|
124
128
|
/**
|