@backstage/ui 0.11.0-next.1 → 0.11.0
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/CHANGELOG.md +100 -0
- package/css/styles.css +2 -0
- package/dist/components/Accordion/Accordion.module.css.esm.js +2 -2
- package/dist/components/Avatar/Avatar.module.css.esm.js +2 -2
- package/dist/components/Box/Box.module.css.esm.js +2 -2
- package/dist/components/Button/Button.module.css.esm.js +2 -2
- package/dist/components/ButtonIcon/ButtonIcon.module.css.esm.js +2 -2
- package/dist/components/Card/Card.module.css.esm.js +2 -2
- package/dist/components/Checkbox/Checkbox.esm.js +10 -7
- package/dist/components/Checkbox/Checkbox.esm.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.module.css.esm.js +2 -2
- package/dist/components/Checkbox/definition.esm.js +2 -1
- package/dist/components/Checkbox/definition.esm.js.map +1 -1
- package/dist/components/Container/Container.module.css.esm.js +2 -2
- package/dist/components/Dialog/Dialog.module.css.esm.js +2 -2
- package/dist/components/FieldError/FieldError.module.css.esm.js +2 -2
- package/dist/components/FieldLabel/FieldLabel.module.css.esm.js +2 -2
- package/dist/components/Flex/Flex.module.css.esm.js +2 -2
- package/dist/components/Grid/Grid.module.css.esm.js +2 -2
- package/dist/components/Header/Header.module.css.esm.js +2 -2
- package/dist/components/HeaderPage/HeaderPage.module.css.esm.js +2 -2
- package/dist/components/Link/Link.module.css.esm.js +2 -2
- package/dist/components/Menu/Menu.esm.js +3 -26
- package/dist/components/Menu/Menu.esm.js.map +1 -1
- package/dist/components/Menu/Menu.module.css.esm.js +2 -2
- package/dist/components/Popover/Popover.esm.js +45 -0
- package/dist/components/Popover/Popover.esm.js.map +1 -0
- package/dist/components/Popover/Popover.module.css.esm.js +3 -3
- package/dist/components/Popover/definition.esm.js +3 -1
- package/dist/components/Popover/definition.esm.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.module.css.esm.js +2 -2
- package/dist/components/SearchField/SearchField.module.css.esm.js +2 -2
- package/dist/components/Select/Select.esm.js +5 -5
- package/dist/components/Select/Select.esm.js.map +1 -1
- package/dist/components/Select/Select.module.css.esm.js +2 -2
- package/dist/components/Select/SelectContent.esm.js +1 -0
- package/dist/components/Select/SelectContent.esm.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.module.css.esm.js +2 -2
- package/dist/components/Switch/Switch.module.css.esm.js +2 -2
- package/dist/components/Table/Table.module.css.esm.js +2 -2
- package/dist/components/Table/components/Column.esm.js +3 -3
- package/dist/components/Table/components/Column.esm.js.map +1 -1
- package/dist/components/Table/components/Row.esm.js +1 -0
- package/dist/components/Table/components/Row.esm.js.map +1 -1
- package/dist/components/Table/components/Table.esm.js +14 -6
- package/dist/components/Table/components/Table.esm.js.map +1 -1
- package/dist/components/Table/hooks/getEffectivePageSize.esm.js +25 -0
- package/dist/components/Table/hooks/getEffectivePageSize.esm.js.map +1 -0
- package/dist/components/Table/hooks/useCompletePagination.esm.js +3 -1
- package/dist/components/Table/hooks/useCompletePagination.esm.js.map +1 -1
- package/dist/components/Table/hooks/useCursorPagination.esm.js +2 -1
- package/dist/components/Table/hooks/useCursorPagination.esm.js.map +1 -1
- package/dist/components/Table/hooks/useOffsetPagination.esm.js +3 -1
- package/dist/components/Table/hooks/useOffsetPagination.esm.js.map +1 -1
- package/dist/components/Table/hooks/useTable.esm.js +26 -5
- package/dist/components/Table/hooks/useTable.esm.js.map +1 -1
- package/dist/components/TablePagination/TablePagination.esm.js +52 -16
- package/dist/components/TablePagination/TablePagination.esm.js.map +1 -1
- package/dist/components/TablePagination/TablePagination.module.css.esm.js +2 -2
- package/dist/components/Tabs/Tabs.module.css.esm.js +2 -2
- package/dist/components/TagGroup/TagGroup.module.css.esm.js +2 -2
- package/dist/components/Text/Text.module.css.esm.js +2 -2
- package/dist/components/TextField/TextField.module.css.esm.js +2 -2
- package/dist/components/ToggleButton/ToggleButton.module.css.esm.js +2 -2
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.module.css.esm.js +2 -2
- package/dist/components/Tooltip/Tooltip.module.css.esm.js +2 -2
- package/dist/components/VisuallyHidden/VisuallyHidden.module.css.esm.js +2 -2
- package/dist/index.d.ts +93 -14
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,16 +1,40 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
+
import { Text } from '../Text/Text.esm.js';
|
|
4
|
+
import { ButtonIcon } from '../ButtonIcon/ButtonIcon.esm.js';
|
|
5
|
+
import { Select } from '../Select/Select.esm.js';
|
|
3
6
|
import { useStyles } from '../../hooks/useStyles.esm.js';
|
|
4
7
|
import { TablePaginationDefinition } from './definition.esm.js';
|
|
5
8
|
import styles from './TablePagination.module.css.esm.js';
|
|
6
9
|
import { RiArrowLeftSLine, RiArrowRightSLine } from '@remixicon/react';
|
|
7
|
-
import { useId } from 'react';
|
|
8
|
-
import { Select } from '../Select/Select.esm.js';
|
|
9
|
-
import { ButtonIcon } from '../ButtonIcon/ButtonIcon.esm.js';
|
|
10
|
-
import { Text } from '../Text/Text.esm.js';
|
|
10
|
+
import { useId, useMemo } from 'react';
|
|
11
11
|
|
|
12
|
+
const DEFAULT_PAGE_SIZE_OPTIONS = [
|
|
13
|
+
{ label: "Show 5 results", value: 5 },
|
|
14
|
+
{ label: "Show 10 results", value: 10 },
|
|
15
|
+
{ label: "Show 20 results", value: 20 },
|
|
16
|
+
{ label: "Show 30 results", value: 30 },
|
|
17
|
+
{ label: "Show 40 results", value: 40 },
|
|
18
|
+
{ label: "Show 50 results", value: 50 }
|
|
19
|
+
];
|
|
20
|
+
function getOptionValue(option) {
|
|
21
|
+
return typeof option === "number" ? option : option.value;
|
|
22
|
+
}
|
|
23
|
+
function isNumberArray(options) {
|
|
24
|
+
return options.length > 0 && typeof options[0] === "number";
|
|
25
|
+
}
|
|
26
|
+
function normalizePageSizeOptions(options) {
|
|
27
|
+
if (isNumberArray(options)) {
|
|
28
|
+
return options.map((value) => ({
|
|
29
|
+
label: `Show ${value} results`,
|
|
30
|
+
value
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
return options;
|
|
34
|
+
}
|
|
12
35
|
function TablePagination({
|
|
13
36
|
pageSize,
|
|
37
|
+
pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,
|
|
14
38
|
offset,
|
|
15
39
|
totalCount,
|
|
16
40
|
hasNextPage,
|
|
@@ -23,13 +47,30 @@ function TablePagination({
|
|
|
23
47
|
}) {
|
|
24
48
|
const { classNames } = useStyles(TablePaginationDefinition, {});
|
|
25
49
|
const labelId = useId();
|
|
50
|
+
const normalizedOptions = useMemo(
|
|
51
|
+
() => normalizePageSizeOptions(pageSizeOptions),
|
|
52
|
+
[pageSizeOptions]
|
|
53
|
+
);
|
|
54
|
+
const effectivePageSize = useMemo(() => {
|
|
55
|
+
const isValid = pageSizeOptions.some(
|
|
56
|
+
(opt) => getOptionValue(opt) === pageSize
|
|
57
|
+
);
|
|
58
|
+
if (isValid) {
|
|
59
|
+
return pageSize;
|
|
60
|
+
}
|
|
61
|
+
const firstValue = getOptionValue(pageSizeOptions[0]);
|
|
62
|
+
console.warn(
|
|
63
|
+
`TablePagination: pageSize ${pageSize} is not in pageSizeOptions, using ${firstValue} instead`
|
|
64
|
+
);
|
|
65
|
+
return firstValue;
|
|
66
|
+
}, [pageSize, pageSizeOptions]);
|
|
26
67
|
const hasItems = totalCount !== void 0 && totalCount !== 0;
|
|
27
68
|
let label = `${totalCount} items`;
|
|
28
69
|
if (getLabel) {
|
|
29
|
-
label = getLabel({ pageSize, offset, totalCount });
|
|
70
|
+
label = getLabel({ pageSize: effectivePageSize, offset, totalCount });
|
|
30
71
|
} else if (offset !== void 0) {
|
|
31
72
|
const fromCount = offset + 1;
|
|
32
|
-
const toCount = Math.min(offset +
|
|
73
|
+
const toCount = Math.min(offset + effectivePageSize, totalCount ?? 0);
|
|
33
74
|
label = `${fromCount} - ${toCount} of ${totalCount}`;
|
|
34
75
|
}
|
|
35
76
|
return /* @__PURE__ */ jsxs("div", { className: clsx(classNames.root, styles[classNames.root]), children: [
|
|
@@ -39,16 +80,11 @@ function TablePagination({
|
|
|
39
80
|
name: "pageSize",
|
|
40
81
|
size: "small",
|
|
41
82
|
"aria-label": "Select table page size",
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
{ label: "Show 30 results", value: "30" },
|
|
48
|
-
{ label: "Show 40 results", value: "40" },
|
|
49
|
-
{ label: "Show 50 results", value: "50" }
|
|
50
|
-
],
|
|
51
|
-
defaultValue: pageSize.toString(),
|
|
83
|
+
options: normalizedOptions.map((opt) => ({
|
|
84
|
+
label: opt.label,
|
|
85
|
+
value: String(opt.value)
|
|
86
|
+
})),
|
|
87
|
+
defaultValue: effectivePageSize.toString(),
|
|
52
88
|
onChange: (value) => {
|
|
53
89
|
const newPageSize = Number(value);
|
|
54
90
|
onPageSizeChange?.(newPageSize);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TablePagination.esm.js","sources":["../../../src/components/TablePagination/TablePagination.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport clsx from 'clsx';\nimport { Text
|
|
1
|
+
{"version":3,"file":"TablePagination.esm.js","sources":["../../../src/components/TablePagination/TablePagination.tsx"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport clsx from 'clsx';\nimport { Text } from '../Text';\nimport { ButtonIcon } from '../ButtonIcon';\nimport { Select } from '../Select';\nimport type { TablePaginationProps, PageSizeOption } from './types';\nimport { useStyles } from '../../hooks/useStyles';\nimport { TablePaginationDefinition } from './definition';\nimport styles from './TablePagination.module.css';\nimport { RiArrowLeftSLine, RiArrowRightSLine } from '@remixicon/react';\nimport { useId, useMemo } from 'react';\n\nconst DEFAULT_PAGE_SIZE_OPTIONS: PageSizeOption[] = [\n { label: 'Show 5 results', value: 5 },\n { label: 'Show 10 results', value: 10 },\n { label: 'Show 20 results', value: 20 },\n { label: 'Show 30 results', value: 30 },\n { label: 'Show 40 results', value: 40 },\n { label: 'Show 50 results', value: 50 },\n];\n\nfunction getOptionValue(option: number | PageSizeOption): number {\n return typeof option === 'number' ? option : option.value;\n}\n\nfunction isNumberArray(\n options: number[] | PageSizeOption[],\n): options is number[] {\n return options.length > 0 && typeof options[0] === 'number';\n}\n\nfunction normalizePageSizeOptions(\n options: number[] | PageSizeOption[],\n): PageSizeOption[] {\n if (isNumberArray(options)) {\n return options.map(value => ({\n label: `Show ${value} results`,\n value,\n }));\n }\n return options;\n}\n\n/**\n * Pagination controls for Table components with page navigation and size selection.\n *\n * @public\n */\nexport function TablePagination({\n pageSize,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n offset,\n totalCount,\n hasNextPage,\n hasPreviousPage,\n onNextPage,\n onPreviousPage,\n onPageSizeChange,\n showPageSizeOptions = true,\n getLabel,\n}: TablePaginationProps) {\n const { classNames } = useStyles(TablePaginationDefinition, {});\n const labelId = useId();\n const normalizedOptions = useMemo(\n () => normalizePageSizeOptions(pageSizeOptions),\n [pageSizeOptions],\n );\n\n const effectivePageSize = useMemo(() => {\n const isValid = pageSizeOptions.some(\n opt => getOptionValue(opt) === pageSize,\n );\n if (isValid) {\n return pageSize;\n }\n const firstValue = getOptionValue(pageSizeOptions[0]);\n console.warn(\n `TablePagination: pageSize ${pageSize} is not in pageSizeOptions, using ${firstValue} instead`,\n );\n return firstValue;\n }, [pageSize, pageSizeOptions]);\n\n const hasItems = totalCount !== undefined && totalCount !== 0;\n\n let label = `${totalCount} items`;\n if (getLabel) {\n label = getLabel({ pageSize: effectivePageSize, offset, totalCount });\n } else if (offset !== undefined) {\n const fromCount = offset + 1;\n const toCount = Math.min(offset + effectivePageSize, totalCount ?? 0);\n label = `${fromCount} - ${toCount} of ${totalCount}`;\n }\n\n return (\n <div className={clsx(classNames.root, styles[classNames.root])}>\n <div className={clsx(classNames.left, styles[classNames.left])}>\n {showPageSizeOptions && (\n <Select\n name=\"pageSize\"\n size=\"small\"\n aria-label=\"Select table page size\"\n options={normalizedOptions.map(opt => ({\n label: opt.label,\n value: String(opt.value),\n }))}\n defaultValue={effectivePageSize.toString()}\n onChange={value => {\n const newPageSize = Number(value);\n onPageSizeChange?.(newPageSize);\n }}\n className={clsx(classNames.select, styles[classNames.select])}\n />\n )}\n </div>\n <div className={clsx(classNames.right, styles[classNames.right])}>\n {hasItems && (\n <Text as=\"p\" variant=\"body-medium\" id={labelId}>\n {label}\n </Text>\n )}\n <ButtonIcon\n variant=\"secondary\"\n size=\"small\"\n onClick={onPreviousPage}\n isDisabled={!hasPreviousPage}\n icon={<RiArrowLeftSLine />}\n aria-label=\"Previous table page\"\n aria-describedby={hasItems ? labelId : undefined}\n />\n <ButtonIcon\n variant=\"secondary\"\n size=\"small\"\n onClick={onNextPage}\n isDisabled={!hasNextPage}\n icon={<RiArrowRightSLine />}\n aria-label=\"Next table page\"\n aria-describedby={hasItems ? labelId : undefined}\n />\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .
|
|
4
|
-
var styles = {"bui-TablePagination":"
|
|
3
|
+
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .TablePagination_bui-TablePagination__60cf6cf213 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: var(--bui-space-5);\n }\n\n .TablePagination_bui-TablePaginationLeft__60cf6cf213 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .TablePagination_bui-TablePaginationRight__60cf6cf213 {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--bui-space-2);\n }\n\n .TablePagination_bui-TablePaginationSelect__60cf6cf213 {\n min-width: 10.5rem;\n }\n}\n";
|
|
4
|
+
var styles = {"bui-TablePagination":"TablePagination_bui-TablePagination__60cf6cf213","bui-TablePaginationLeft":"TablePagination_bui-TablePaginationLeft__60cf6cf213","bui-TablePaginationRight":"TablePagination_bui-TablePaginationRight__60cf6cf213","bui-TablePaginationSelect":"TablePagination_bui-TablePaginationSelect__60cf6cf213"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .
|
|
4
|
-
var styles = {"bui-Tabs":"
|
|
3
|
+
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .Tabs_bui-Tabs__6200292476 {\n /* Initialize CSS variables */\n --active-tab-left: 0px;\n --active-tab-right: 0px;\n --active-tab-top: 0px;\n --active-tab-bottom: 0px;\n --active-tab-width: 0px;\n --active-tab-height: 0px;\n --active-transition-duration: 0s;\n\n --hovered-tab-left: 0px;\n --hovered-tab-right: 0px;\n --hovered-tab-top: 0px;\n --hovered-tab-bottom: 0px;\n --hovered-tab-width: 0px;\n --hovered-tab-height: 0px;\n --hovered-tab-opacity: 0;\n --hovered-transition-duration: 0s;\n }\n\n .Tabs_bui-TabList__6200292476 {\n display: flex;\n flex-direction: row;\n }\n\n .Tabs_bui-TabListWrapper__6200292476 {\n position: relative;\n }\n\n .Tabs_bui-Tab__6200292476 {\n font-size: var(--bui-font-size-3);\n font-family: var(--bui-font-regular);\n font-weight: var(--bui-font-weight-regular);\n color: var(--bui-fg-secondary);\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n position: relative;\n z-index: 2;\n padding-inline: var(--bui-space-2);\n\n &[data-selected='true'] {\n color: var(--bui-fg-primary);\n }\n }\n\n .Tabs_bui-TabActive__6200292476 {\n content: '';\n position: absolute;\n left: calc(var(--active-tab-left) + var(--bui-space-2));\n bottom: -1px;\n width: calc(var(--active-tab-width) - var(--bui-space-4));\n height: 1px;\n background-color: var(--bui-fg-primary);\n border-radius: 4px;\n transition: left var(--active-transition-duration) ease-out,\n opacity 0.15s ease-out, width var(--active-transition-duration) ease-out;\n opacity: 1;\n }\n\n .Tabs_bui-TabHovered__6200292476 {\n content: '';\n position: absolute;\n left: var(--hovered-tab-left);\n top: calc(var(--hovered-tab-top) + 4px);\n width: var(--hovered-tab-width);\n height: calc(var(--hovered-tab-height) - 8px);\n background-color: var(--bui-gray-2);\n border-radius: 4px;\n opacity: var(--hovered-tab-opacity);\n transition: left var(--hovered-transition-duration) ease-out,\n top var(--hovered-transition-duration) ease-out,\n width var(--hovered-transition-duration) ease-out,\n height var(--hovered-transition-duration) ease-out, opacity 0.15s ease-out;\n }\n\n .Tabs_bui-TabPanel__6200292476 {\n padding-inline: var(--bui-space-2);\n padding-top: var(--bui-space-4);\n }\n}\n";
|
|
4
|
+
var styles = {"bui-Tabs":"Tabs_bui-Tabs__6200292476","bui-TabList":"Tabs_bui-TabList__6200292476","bui-TabListWrapper":"Tabs_bui-TabListWrapper__6200292476","bui-Tab":"Tabs_bui-Tab__6200292476","bui-TabActive":"Tabs_bui-TabActive__6200292476","bui-TabHovered":"Tabs_bui-TabHovered__6200292476","bui-TabPanel":"Tabs_bui-TabPanel__6200292476"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .
|
|
4
|
-
var styles = {"bui-TagList":"
|
|
3
|
+
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .TagGroup_bui-TagList__d4eb8d9a34 {\n display: flex;\n flex-wrap: wrap;\n gap: var(--bui-space-2);\n }\n\n .TagGroup_bui-Tag__d4eb8d9a34 {\n color: var(--bui-fg-primary);\n background-color: var(--bui-gray-2);\n border-radius: var(--bui-radius-2);\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: var(--bui-font-weight-regular);\n gap: var(--bui-space-1);\n transition-property: background-color, box-shadow, color;\n transition-duration: 0.2s;\n transition-timing-function: ease-in-out;\n box-sizing: border-box;\n }\n\n .TagGroup_bui-Tag__d4eb8d9a34[data-size='small'] {\n height: 26px;\n padding: 0 var(--bui-space-2);\n font-size: var(--bui-font-size-1);\n }\n\n .TagGroup_bui-Tag__d4eb8d9a34[data-size='medium'] {\n height: 32px;\n padding: 0 var(--bui-space-2);\n font-size: var(--bui-font-size-2);\n }\n\n .TagGroup_bui-Tag__d4eb8d9a34[data-hovered] {\n background-color: var(--bui-gray-3);\n cursor: pointer;\n }\n\n .TagGroup_bui-Tag__d4eb8d9a34[data-focus-visible] {\n outline: 2px solid var(--bui-ring);\n outline-offset: 1px;\n }\n\n .TagGroup_bui-Tag__d4eb8d9a34[data-selected] {\n box-shadow: inset 0 0 0 1px var(--bui-gray-8);\n }\n\n .TagGroup_bui-Tag__d4eb8d9a34[data-disabled] {\n color: var(--bui-fg-disabled);\n cursor: not-allowed;\n }\n\n .TagGroup_bui-TagRemoveButton__d4eb8d9a34 {\n background-color: transparent;\n border: none;\n cursor: pointer;\n color: var(--bui-fg-primary);\n padding: 0;\n margin: 0;\n width: 1rem;\n height: 1rem;\n }\n\n .TagGroup_bui-TagIcon__d4eb8d9a34 {\n display: flex;\n align-items: center;\n justify-content: center;\n transition: color 0.2s ease-in-out;\n\n svg {\n width: 1rem;\n height: 1rem;\n }\n }\n}\n";
|
|
4
|
+
var styles = {"bui-TagList":"TagGroup_bui-TagList__d4eb8d9a34","bui-Tag":"TagGroup_bui-Tag__d4eb8d9a34","bui-TagRemoveButton":"TagGroup_bui-TagRemoveButton__d4eb8d9a34","bui-TagIcon":"TagGroup_bui-TagIcon__d4eb8d9a34"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .
|
|
4
|
-
var styles = {"bui-Text":"
|
|
3
|
+
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .Text_bui-Text__8605f2b3b5 {\n font-family: var(--bui-font-regular);\n padding: 0;\n margin: 0;\n }\n\n .Text_bui-Text__8605f2b3b5[data-variant='title-large'] {\n font-size: var(--bui-font-size-8);\n line-height: 140%;\n }\n\n .Text_bui-Text__8605f2b3b5[data-variant='title-medium'] {\n font-size: var(--bui-font-size-7);\n line-height: 140%;\n }\n\n .Text_bui-Text__8605f2b3b5[data-variant='title-small'] {\n font-size: var(--bui-font-size-6);\n line-height: 140%;\n }\n\n .Text_bui-Text__8605f2b3b5[data-variant='title-x-small'] {\n font-size: var(--bui-font-size-5);\n line-height: 140%;\n }\n\n .Text_bui-Text__8605f2b3b5[data-variant='body-large'] {\n font-size: var(--bui-font-size-4);\n line-height: 140%;\n }\n\n .Text_bui-Text__8605f2b3b5[data-variant='body-medium'] {\n font-size: var(--bui-font-size-3);\n line-height: 140%;\n }\n\n .Text_bui-Text__8605f2b3b5[data-variant='body-small'] {\n font-size: var(--bui-font-size-2);\n line-height: 140%;\n }\n\n .Text_bui-Text__8605f2b3b5[data-variant='body-x-small'] {\n font-size: var(--bui-font-size-1);\n line-height: 140%;\n }\n\n .Text_bui-Text__8605f2b3b5[data-weight='regular'] {\n font-weight: var(--bui-font-weight-regular);\n }\n\n .Text_bui-Text__8605f2b3b5[data-weight='bold'] {\n font-weight: var(--bui-font-weight-bold);\n }\n\n .Text_bui-Text__8605f2b3b5[data-color='primary'] {\n color: var(--bui-fg-primary);\n }\n\n .Text_bui-Text__8605f2b3b5[data-color='secondary'] {\n color: var(--bui-fg-secondary);\n }\n\n .Text_bui-Text__8605f2b3b5[data-color='danger'] {\n color: var(--bui-fg-danger);\n }\n\n .Text_bui-Text__8605f2b3b5[data-color='warning'] {\n color: var(--bui-fg-warning);\n }\n\n .Text_bui-Text__8605f2b3b5[data-color='success'] {\n color: var(--bui-fg-success);\n }\n\n .Text_bui-Text__8605f2b3b5[data-truncate] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .Text_bui-Text__8605f2b3b5[data-as='span'],\n .Text_bui-Text__8605f2b3b5[data-as='label'],\n .Text_bui-Text__8605f2b3b5[data-as='strong'],\n .Text_bui-Text__8605f2b3b5[data-as='em'],\n .Text_bui-Text__8605f2b3b5[data-as='small'] {\n display: inline-block;\n }\n}\n";
|
|
4
|
+
var styles = {"bui-Text":"Text_bui-Text__8605f2b3b5"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .
|
|
4
|
-
var styles = {"bui-TextField":"
|
|
3
|
+
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .TextField_bui-TextField__ff62eb028a {\n display: flex;\n flex-direction: column;\n font-family: var(--bui-font-regular);\n width: 100%;\n flex-shrink: 0;\n }\n\n .TextField_bui-InputWrapper__ff62eb028a {\n position: relative;\n\n &[data-size='small'] .TextField_bui-Input__ff62eb028a {\n height: 2rem;\n }\n\n &[data-size='medium'] .TextField_bui-Input__ff62eb028a {\n height: 2.5rem;\n }\n\n &[data-size='small'] .TextField_bui-Input__ff62eb028a[data-icon] {\n padding-left: var(--bui-space-8);\n }\n\n &[data-size='medium'] .TextField_bui-Input__ff62eb028a[data-icon] {\n padding-left: var(--bui-space-9);\n }\n }\n\n .TextField_bui-InputIcon__ff62eb028a {\n position: absolute;\n left: var(--bui-space-3);\n top: 50%;\n transform: translateY(-50%);\n margin-right: var(--bui-space-1);\n color: var(--bui-fg-primary);\n flex-shrink: 0;\n pointer-events: none;\n /* To animate the icon when the input is collapsed */\n transition: left 0.2s ease-in-out;\n\n &[data-size='small'],\n &[data-size='small'] svg {\n width: 1rem;\n height: 1rem;\n }\n\n &[data-size='medium'],\n &[data-size='medium'] svg {\n width: 1.25rem;\n height: 1.25rem;\n }\n }\n\n .TextField_bui-Input__ff62eb028a {\n display: flex;\n align-items: center;\n padding: 0 var(--bui-space-3);\n border-radius: var(--bui-radius-2);\n border: 1px solid var(--bui-border);\n background-color: var(--bui-bg-surface-1);\n font-size: var(--bui-font-size-3);\n font-family: var(--bui-font-regular);\n font-weight: var(--bui-font-weight-regular);\n color: var(--bui-fg-primary);\n transition: border-color 0.2s ease-in-out, outline-color 0.2s ease-in-out;\n width: 100%;\n height: 100%;\n cursor: inherit;\n\n &::-webkit-search-cancel-button,\n &::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n &::placeholder {\n color: var(--bui-fg-secondary);\n }\n\n &[data-focused] {\n outline-color: var(--bui-border-pressed);\n outline-width: 0px;\n }\n\n &[data-hovered] {\n border-color: var(--bui-border-hover);\n }\n\n &[data-focused] {\n border-color: var(--bui-border-pressed);\n outline-width: 0px;\n }\n\n &[data-invalid] {\n border-color: var(--bui-fg-danger);\n }\n\n &[data-disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n border: 1px solid var(--bui-border-disabled);\n }\n }\n}\n";
|
|
4
|
+
var styles = {"bui-TextField":"TextField_bui-TextField__ff62eb028a","bui-InputWrapper":"TextField_bui-InputWrapper__ff62eb028a","bui-Input":"TextField_bui-Input__ff62eb028a","bui-InputIcon":"TextField_bui-InputIcon__ff62eb028a"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .
|
|
4
|
-
var styles = {"bui-ToggleButton":"
|
|
3
|
+
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .ToggleButton_bui-ToggleButton__bf99926b51 {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--bui-space-1_5);\n border: none;\n border-radius: var(--bui-radius-2);\n background: var(--bui-bg-surface-1);\n color: var(--bui-fg-primary);\n font-family: var(--bui-font-regular);\n font-weight: var(--bui-font-weight-bold);\n padding: 0 var(--bui-space-2);\n cursor: pointer;\n transition: background-color 150ms ease, box-shadow 150ms ease,\n color 150ms ease, transform 100ms ease;\n\n &[data-selected],\n &[data-pressed] {\n background: var(--bui-bg-solid);\n color: var(--bui-fg-solid);\n }\n\n &:not([data-selected])[data-hovered] {\n background: var(--bui-bg-surface-2);\n }\n\n &[data-disabled] {\n background: var(--bui-bg-neutral-on-surface-0-disabled);\n color: var(--bui-fg-disabled);\n }\n\n &[data-disabled][data-hovered] {\n background: var(--bui-bg-neutral-on-surface-0-disabled);\n }\n\n &[data-disabled][data-selected] {\n background: var(--bui-bg-solid-disabled);\n color: var(--bui-fg-disabled);\n }\n }\n\n .ToggleButton_bui-ToggleButton__bf99926b51[data-focus-visible] {\n outline: none;\n box-shadow: inset 0 0 0 2px var(--bui-ring);\n }\n\n .ToggleButton_bui-ToggleButton__bf99926b51[data-disabled] {\n cursor: not-allowed;\n }\n\n .ToggleButton_bui-ToggleButton__bf99926b51[data-pressed] {\n transform: scale(0.98);\n }\n\n .ToggleButton_bui-ToggleButton__bf99926b51[data-disabled][data-pressed] {\n transform: none;\n }\n\n .ToggleButton_bui-ToggleButton__bf99926b51[data-size='small'] {\n height: 2rem;\n font-size: var(--bui-font-size-3);\n padding: 0 var(--bui-space-2);\n\n svg {\n width: 1rem;\n height: 1rem;\n }\n }\n\n .ToggleButton_bui-ToggleButton__bf99926b51[data-size='medium'] {\n height: 2.5rem;\n font-size: var(--bui-font-size-4);\n padding: 0 var(--bui-space-3);\n\n svg {\n width: 1.25rem;\n height: 1.25rem;\n }\n }\n\n .ToggleButton_bui-ToggleButtonContent__bf99926b51 {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--bui-space-1_5);\n height: 100%;\n width: 100%;\n }\n}\n";
|
|
4
|
+
var styles = {"bui-ToggleButton":"ToggleButton_bui-ToggleButton__bf99926b51","bui-ToggleButtonContent":"ToggleButton_bui-ToggleButtonContent__bf99926b51"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .
|
|
4
|
-
var styles = {"bui-ToggleButtonGroup":"
|
|
3
|
+
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0 {\n display: inline-flex;\n align-items: center;\n flex-wrap: nowrap;\n border-radius: var(--bui-radius-2);\n overflow: hidden;\n box-shadow: inset 0 0 0 1px var(--bui-border);\n width: fit-content;\n }\n\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0[data-orientation='vertical'] {\n flex-direction: column;\n align-items: stretch;\n width: fit-content;\n }\n\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0 > .bui-ToggleButton {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n border: 0;\n }\n\n /* Horizontal radius rules (default orientation) */\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0:not([data-orientation='vertical'])\n > .bui-ToggleButton {\n border-radius: 0;\n }\n\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0:not([data-orientation='vertical'])\n > .bui-ToggleButton:first-child {\n border-radius: var(--bui-radius-2) 0 0 var(--bui-radius-2);\n }\n\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0:not([data-orientation='vertical'])\n > .bui-ToggleButton:last-child {\n border-radius: 0 var(--bui-radius-2) var(--bui-radius-2) 0;\n }\n\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0:not([data-orientation='vertical'])\n > .bui-ToggleButton:only-child {\n border-radius: var(--bui-radius-2);\n }\n\n /* Horizontal dividers */\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0:not([data-orientation='vertical'])\n .bui-ToggleButton\n + .bui-ToggleButton {\n border-left: 1px solid var(--bui-border);\n }\n\n /* Vertical dividers */\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0[data-orientation='vertical']\n .bui-ToggleButton {\n width: 100%;\n }\n\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0[data-orientation='vertical']\n .bui-ToggleButton\n + .bui-ToggleButton {\n border-top: 1px solid var(--bui-border);\n }\n\n /* Vertical radius rules */\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0[data-orientation='vertical']\n > .bui-ToggleButton {\n border-radius: 0;\n }\n\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0[data-orientation='vertical']\n > .bui-ToggleButton:first-child {\n border-radius: var(--bui-radius-2) var(--bui-radius-2) 0 0;\n }\n\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0[data-orientation='vertical']\n > .bui-ToggleButton:last-child {\n border-radius: 0 0 var(--bui-radius-2) var(--bui-radius-2);\n }\n\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0[data-orientation='vertical']\n > .bui-ToggleButton:only-child {\n border-radius: var(--bui-radius-2);\n }\n\n /* Focus ring on group surface */\n .ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0:focus-visible {\n outline: 2px solid var(--bui-ring);\n outline-offset: 2px;\n }\n}\n";
|
|
4
|
+
var styles = {"bui-ToggleButtonGroup":"ToggleButtonGroup_bui-ToggleButtonGroup__ac6b6d15f0"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .
|
|
4
|
-
var styles = {"bui-Tooltip":"
|
|
3
|
+
var css_248z = "/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .Tooltip_bui-Tooltip__5c27c14a83 {\n box-shadow: var(--bui-shadow);\n border-radius: 4px;\n background: var(--bui-bg-surface-1);\n border: 1px solid var(--bui-gray-3);\n forced-color-adjust: none;\n outline: none;\n padding: var(--bui-space-2) var(--bui-space-3);\n max-width: 240px;\n /* fixes FF gap */\n transform: translate3d(0, 0, 0);\n transition: transform 200ms, opacity 200ms;\n font-size: var(--bui-font-size-3);\n font-family: var(--bui-font-regular);\n color: var(--bui-fg-primary);\n\n &[data-entering],\n &[data-exiting] {\n transform: var(--origin);\n opacity: 0;\n }\n\n --tooltip-offset: var(--bui-space-3);\n\n &[data-placement='top'] {\n margin-bottom: var(--tooltip-offset);\n --origin: translateY(4px);\n }\n\n &[data-placement='right'] {\n margin-left: var(--tooltip-offset);\n --origin: translateX(-4px);\n }\n\n &[data-placement='bottom'] {\n margin-top: var(--tooltip-offset);\n --origin: translateY(-4px);\n }\n\n &[data-placement='left'] {\n margin-right: var(--tooltip-offset);\n --origin: translateX(4px);\n }\n }\n\n .Tooltip_bui-TooltipArrow__5c27c14a83 {\n & svg {\n display: block;\n\n /* The tooltip is rendered overlaying the main\n tooltip element by 1px. This causes the borders\n to overlap, which causes minor visual artifacts\n with transparent border colors. To mitigate this,\n we split the stroke and fill across separate\n elements in order to guarantee that the stroke is\n always overlaying a consistent color. */\n path:nth-child(1) {\n fill: var(--bui-bg-surface-1);\n }\n\n path:nth-child(2) {\n fill: var(--bui-gray-3);\n }\n\n /* The arrow svg overlaps the tooltip by 2px, so we\n need to adjust the margins accordingly. */\n --tooltip-arrow-overlap: -2px;\n }\n\n &[data-placement='top'] svg {\n margin-top: var(--tooltip-arrow-overlap);\n }\n\n &[data-placement='bottom'] svg {\n margin-bottom: var(--tooltip-arrow-overlap);\n transform: rotate(180deg);\n }\n\n &[data-placement='right'] svg {\n margin-right: var(--tooltip-arrow-overlap);\n transform: rotate(90deg);\n }\n\n &[data-placement='left'] svg {\n margin-left: var(--tooltip-arrow-overlap);\n transform: rotate(-90deg);\n }\n }\n\n [data-theme='dark'] {\n .Tooltip_bui-Tooltip__5c27c14a83 {\n background: var(--bui-bg-surface-2);\n box-shadow: none;\n border: 1px solid var(--bui-gray-4);\n }\n\n .Tooltip_bui-TooltipArrow__5c27c14a83 {\n svg path:nth-child(1) {\n fill: var(--bui-bg-surface-2);\n }\n\n svg path:nth-child(2) {\n fill: var(--bui-gray-4);\n }\n }\n }\n}\n";
|
|
4
|
+
var styles = {"bui-Tooltip":"Tooltip_bui-Tooltip__5c27c14a83","bui-TooltipArrow":"Tooltip_bui-TooltipArrow__5c27c14a83"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../node_modules_dist/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .
|
|
4
|
-
var styles = {"bui-VisuallyHidden":"
|
|
3
|
+
var css_248z = "/*\n * Copyright 2024 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n@layer tokens, base, components, utilities;\n\n@layer components {\n .VisuallyHidden_bui-VisuallyHidden__d7c24c3780 {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n clip-path: inset(100%);\n white-space: nowrap;\n border: 0;\n }\n}\n";
|
|
4
|
+
var styles = {"bui-VisuallyHidden":"VisuallyHidden_bui-VisuallyHidden__d7c24c3780"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { styles as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactElement, ReactNode, ElementType, ComponentPropsWithRef, ComponentProps } from 'react';
|
|
3
|
-
import { ButtonProps as ButtonProps$1, DisclosureProps, HeadingProps, DisclosurePanelProps, DisclosureGroupProps, DialogTriggerProps as DialogTriggerProps$1, ModalOverlayProps, TabsProps as TabsProps$1, TabListProps as TabListProps$1, TabProps as TabProps$1, TabPanelProps as TabPanelProps$1, LinkProps as LinkProps$1, CheckboxProps as CheckboxProps$1, RadioGroupProps as RadioGroupProps$1, RadioProps as RadioProps$1, TableProps as TableProps$1, ColumnProps as ColumnProps$1, CellProps as CellProps$1, TableHeaderProps, TableBodyProps, RowProps, TagGroupProps as TagGroupProps$1, TagListProps, TagProps as TagProps$1, TextFieldProps as TextFieldProps$1, TooltipProps as TooltipProps$1, TooltipTriggerComponentProps, MenuTriggerProps as MenuTriggerProps$1, SubmenuTriggerProps as SubmenuTriggerProps$1, MenuProps as MenuProps$1, PopoverProps, ListBoxProps, MenuItemProps as MenuItemProps$1, ListBoxItemProps, MenuSectionProps as MenuSectionProps$1, SeparatorProps, SearchFieldProps as SearchFieldProps$1, SelectProps as SelectProps$1, SwitchProps as SwitchProps$1, ToggleButtonProps as ToggleButtonProps$1, ToggleButtonGroupProps as ToggleButtonGroupProps$1 } from 'react-aria-components';
|
|
3
|
+
import { ButtonProps as ButtonProps$1, DisclosureProps, HeadingProps, DisclosurePanelProps, DisclosureGroupProps, DialogTriggerProps as DialogTriggerProps$1, ModalOverlayProps, TabsProps as TabsProps$1, TabListProps as TabListProps$1, TabProps as TabProps$1, TabPanelProps as TabPanelProps$1, LinkProps as LinkProps$1, CheckboxProps as CheckboxProps$1, RadioGroupProps as RadioGroupProps$1, RadioProps as RadioProps$1, TableProps as TableProps$1, ColumnProps as ColumnProps$1, CellProps as CellProps$1, TableHeaderProps, TableBodyProps, RowProps, TagGroupProps as TagGroupProps$1, TagListProps, TagProps as TagProps$1, TextFieldProps as TextFieldProps$1, TooltipProps as TooltipProps$1, TooltipTriggerComponentProps, MenuTriggerProps as MenuTriggerProps$1, SubmenuTriggerProps as SubmenuTriggerProps$1, MenuProps as MenuProps$1, PopoverProps as PopoverProps$1, ListBoxProps, MenuItemProps as MenuItemProps$1, ListBoxItemProps, MenuSectionProps as MenuSectionProps$1, SeparatorProps, SearchFieldProps as SearchFieldProps$1, SelectProps as SelectProps$1, SwitchProps as SwitchProps$1, ToggleButtonProps as ToggleButtonProps$1, ToggleButtonGroupProps as ToggleButtonGroupProps$1 } from 'react-aria-components';
|
|
4
4
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
5
5
|
import { NavigateOptions } from 'react-router-dom';
|
|
6
6
|
import { SortDescriptor as SortDescriptor$1 } from 'react-stately';
|
|
7
|
+
import { ColumnSize, ColumnStaticSize } from '@react-types/table';
|
|
7
8
|
|
|
8
9
|
/** @public */
|
|
9
10
|
type Breakpoint = 'initial' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
@@ -842,6 +843,7 @@ declare const CheckboxDefinition: {
|
|
|
842
843
|
};
|
|
843
844
|
readonly dataAttributes: {
|
|
844
845
|
readonly selected: readonly [true, false];
|
|
846
|
+
readonly indeterminate: readonly [true, false];
|
|
845
847
|
};
|
|
846
848
|
};
|
|
847
849
|
|
|
@@ -870,9 +872,15 @@ declare const RadioGroupDefinition: {
|
|
|
870
872
|
};
|
|
871
873
|
};
|
|
872
874
|
|
|
875
|
+
/** @public */
|
|
876
|
+
interface PageSizeOption {
|
|
877
|
+
label: string;
|
|
878
|
+
value: number;
|
|
879
|
+
}
|
|
873
880
|
/** @public */
|
|
874
881
|
interface TablePaginationProps {
|
|
875
882
|
pageSize: number;
|
|
883
|
+
pageSizeOptions?: number[] | PageSizeOption[];
|
|
876
884
|
offset?: number;
|
|
877
885
|
totalCount?: number;
|
|
878
886
|
hasNextPage: boolean;
|
|
@@ -893,7 +901,7 @@ interface TablePaginationProps {
|
|
|
893
901
|
*
|
|
894
902
|
* @public
|
|
895
903
|
*/
|
|
896
|
-
declare function TablePagination({ pageSize, offset, totalCount, hasNextPage, hasPreviousPage, onNextPage, onPreviousPage, onPageSizeChange, showPageSizeOptions, getLabel, }: TablePaginationProps): react_jsx_runtime.JSX.Element;
|
|
904
|
+
declare function TablePagination({ pageSize, pageSizeOptions, offset, totalCount, hasNextPage, hasPreviousPage, onNextPage, onPreviousPage, onPageSizeChange, showPageSizeOptions, getLabel, }: TablePaginationProps): react_jsx_runtime.JSX.Element;
|
|
897
905
|
|
|
898
906
|
/**
|
|
899
907
|
* Component definition for TablePagination
|
|
@@ -966,7 +974,10 @@ interface ColumnConfig<T extends TableItem> {
|
|
|
966
974
|
header?: () => ReactNode;
|
|
967
975
|
isSortable?: boolean;
|
|
968
976
|
isHidden?: boolean;
|
|
969
|
-
width?:
|
|
977
|
+
width?: ColumnSize | null;
|
|
978
|
+
defaultWidth?: ColumnSize | null;
|
|
979
|
+
minWidth?: ColumnStaticSize | null;
|
|
980
|
+
maxWidth?: ColumnStaticSize | null;
|
|
970
981
|
isRowHeader?: boolean;
|
|
971
982
|
}
|
|
972
983
|
/** @public */
|
|
@@ -999,10 +1010,12 @@ interface TableProps<T extends TableItem> {
|
|
|
999
1010
|
rowConfig?: RowConfig<T> | RowRenderFn<T>;
|
|
1000
1011
|
selection?: TableSelection;
|
|
1001
1012
|
emptyState?: ReactNode;
|
|
1013
|
+
className?: string;
|
|
1014
|
+
style?: React.CSSProperties;
|
|
1002
1015
|
}
|
|
1003
1016
|
|
|
1004
1017
|
/** @public */
|
|
1005
|
-
declare function Table<T extends TableItem>({ columnConfig, data, loading, isStale, error, pagination, sort, rowConfig, selection, emptyState, }: TableProps<T>): react_jsx_runtime.JSX.Element;
|
|
1018
|
+
declare function Table<T extends TableItem>({ columnConfig, data, loading, isStale, error, pagination, sort, rowConfig, selection, emptyState, className, style, }: TableProps<T>): react_jsx_runtime.JSX.Element;
|
|
1006
1019
|
|
|
1007
1020
|
/** @public */
|
|
1008
1021
|
declare const TableRoot: (props: TableRootProps) => react_jsx_runtime.JSX.Element;
|
|
@@ -1057,11 +1070,8 @@ interface QueryOptions<TFilter> {
|
|
|
1057
1070
|
onSearchChange?: (search: string) => void;
|
|
1058
1071
|
}
|
|
1059
1072
|
/** @public */
|
|
1060
|
-
interface PaginationOptions {
|
|
1061
|
-
pageSize?: number;
|
|
1073
|
+
interface PaginationOptions extends Partial<Pick<TablePaginationProps, 'pageSize' | 'pageSizeOptions' | 'onPageSizeChange' | 'onNextPage' | 'onPreviousPage' | 'showPageSizeOptions' | 'getLabel'>> {
|
|
1062
1074
|
initialOffset?: number;
|
|
1063
|
-
showPageSizeOptions?: boolean;
|
|
1064
|
-
getLabel?: TablePaginationProps['getLabel'];
|
|
1065
1075
|
}
|
|
1066
1076
|
/** @public */
|
|
1067
1077
|
interface OffsetParams<TFilter> {
|
|
@@ -1319,14 +1329,14 @@ interface SubmenuTriggerProps extends SubmenuTriggerProps$1 {
|
|
|
1319
1329
|
}
|
|
1320
1330
|
/** @public */
|
|
1321
1331
|
interface MenuProps<T> extends MenuProps$1<T>, Omit<MenuProps$1<T>, 'children'> {
|
|
1322
|
-
placement?: PopoverProps['placement'];
|
|
1332
|
+
placement?: PopoverProps$1['placement'];
|
|
1323
1333
|
virtualized?: boolean;
|
|
1324
1334
|
maxWidth?: string;
|
|
1325
1335
|
maxHeight?: string;
|
|
1326
1336
|
}
|
|
1327
1337
|
/** @public */
|
|
1328
1338
|
interface MenuListBoxProps<T> extends ListBoxProps<T>, Omit<ListBoxProps<T>, 'children'> {
|
|
1329
|
-
placement?: PopoverProps['placement'];
|
|
1339
|
+
placement?: PopoverProps$1['placement'];
|
|
1330
1340
|
virtualized?: boolean;
|
|
1331
1341
|
maxWidth?: string;
|
|
1332
1342
|
maxHeight?: string;
|
|
@@ -1334,7 +1344,7 @@ interface MenuListBoxProps<T> extends ListBoxProps<T>, Omit<ListBoxProps<T>, 'ch
|
|
|
1334
1344
|
/** @public */
|
|
1335
1345
|
interface MenuAutocompleteProps<T> extends MenuProps$1<T>, Omit<MenuProps$1<T>, 'children'> {
|
|
1336
1346
|
placeholder?: string;
|
|
1337
|
-
placement?: PopoverProps['placement'];
|
|
1347
|
+
placement?: PopoverProps$1['placement'];
|
|
1338
1348
|
virtualized?: boolean;
|
|
1339
1349
|
maxWidth?: string;
|
|
1340
1350
|
maxHeight?: string;
|
|
@@ -1342,7 +1352,7 @@ interface MenuAutocompleteProps<T> extends MenuProps$1<T>, Omit<MenuProps$1<T>,
|
|
|
1342
1352
|
/** @public */
|
|
1343
1353
|
interface MenuAutocompleteListBoxProps<T> extends ListBoxProps<T>, Omit<ListBoxProps<T>, 'children'> {
|
|
1344
1354
|
placeholder?: string;
|
|
1345
|
-
placement?: PopoverProps['placement'];
|
|
1355
|
+
placement?: PopoverProps$1['placement'];
|
|
1346
1356
|
virtualized?: boolean;
|
|
1347
1357
|
maxWidth?: string;
|
|
1348
1358
|
maxHeight?: string;
|
|
@@ -1412,6 +1422,75 @@ declare const MenuDefinition: {
|
|
|
1412
1422
|
};
|
|
1413
1423
|
};
|
|
1414
1424
|
|
|
1425
|
+
/**
|
|
1426
|
+
* Properties for {@link Popover}
|
|
1427
|
+
*
|
|
1428
|
+
* @public
|
|
1429
|
+
*/
|
|
1430
|
+
interface PopoverProps extends Omit<PopoverProps$1, 'children'> {
|
|
1431
|
+
/**
|
|
1432
|
+
* The content to display inside the popover.
|
|
1433
|
+
* Content is automatically wrapped with padding and scroll behavior.
|
|
1434
|
+
*/
|
|
1435
|
+
children: React.ReactNode;
|
|
1436
|
+
/**
|
|
1437
|
+
* Whether to hide the arrow pointing to the trigger element.
|
|
1438
|
+
* Arrow is also automatically hidden for MenuTrigger and SubmenuTrigger contexts.
|
|
1439
|
+
*
|
|
1440
|
+
* @defaultValue false
|
|
1441
|
+
*/
|
|
1442
|
+
hideArrow?: boolean;
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
/**
|
|
1446
|
+
* A popover component built on React Aria Components that displays floating
|
|
1447
|
+
* content anchored to a trigger element.
|
|
1448
|
+
*
|
|
1449
|
+
* @remarks
|
|
1450
|
+
* The Popover component supports multiple placements (top, right, bottom, left),
|
|
1451
|
+
* automatic viewport-constrained scrolling, and conditional arrow rendering. It
|
|
1452
|
+
* automatically handles positioning, collision detection, and ARIA attributes for
|
|
1453
|
+
* accessibility. Content is automatically padded and scrollable when it exceeds
|
|
1454
|
+
* available space.
|
|
1455
|
+
*
|
|
1456
|
+
* @example
|
|
1457
|
+
* Basic usage with DialogTrigger:
|
|
1458
|
+
* ```tsx
|
|
1459
|
+
* <DialogTrigger>
|
|
1460
|
+
* <Button>Open Popover</Button>
|
|
1461
|
+
* <Popover>
|
|
1462
|
+
* <Text>Popover content</Text>
|
|
1463
|
+
* </Popover>
|
|
1464
|
+
* </DialogTrigger>
|
|
1465
|
+
* ```
|
|
1466
|
+
*
|
|
1467
|
+
* @example
|
|
1468
|
+
* With custom placement and no arrow:
|
|
1469
|
+
* ```tsx
|
|
1470
|
+
* <DialogTrigger>
|
|
1471
|
+
* <Button>Open</Button>
|
|
1472
|
+
* <Popover placement="right" hideArrow>
|
|
1473
|
+
* <Text>Content without arrow</Text>
|
|
1474
|
+
* </Popover>
|
|
1475
|
+
* </DialogTrigger>
|
|
1476
|
+
* ```
|
|
1477
|
+
*
|
|
1478
|
+
* @public
|
|
1479
|
+
*/
|
|
1480
|
+
declare const Popover: react.ForwardRefExoticComponent<PopoverProps & react.RefAttributes<HTMLDivElement>>;
|
|
1481
|
+
|
|
1482
|
+
/**
|
|
1483
|
+
* Component definition for Popover
|
|
1484
|
+
* @public
|
|
1485
|
+
*/
|
|
1486
|
+
declare const PopoverDefinition: {
|
|
1487
|
+
readonly classNames: {
|
|
1488
|
+
readonly root: "bui-Popover";
|
|
1489
|
+
readonly arrow: "bui-PopoverArrow";
|
|
1490
|
+
readonly content: "bui-PopoverContent";
|
|
1491
|
+
};
|
|
1492
|
+
};
|
|
1493
|
+
|
|
1415
1494
|
/** @public */
|
|
1416
1495
|
interface SearchFieldProps extends SearchFieldProps$1, Omit<FieldLabelProps, 'htmlFor' | 'id' | 'className'> {
|
|
1417
1496
|
/**
|
|
@@ -1680,5 +1759,5 @@ declare const useBreakpoint: () => {
|
|
|
1680
1759
|
down: (key: Breakpoint) => boolean;
|
|
1681
1760
|
};
|
|
1682
1761
|
|
|
1683
|
-
export { Accordion, AccordionDefinition, AccordionGroup, AccordionPanel, AccordionTrigger, Avatar, AvatarDefinition, Box, BoxDefinition, Button, ButtonDefinition, ButtonIcon, ButtonIconDefinition, ButtonLink, ButtonLinkDefinition, Card, CardBody, CardDefinition, CardFooter, CardHeader, Cell, CellProfile, CellText, Checkbox, CheckboxDefinition, Column, Container, ContainerDefinition, Dialog, DialogBody, DialogDefinition, DialogFooter, DialogHeader, DialogTrigger, FieldLabel, FieldLabelDefinition, Flex, FlexDefinition, Grid, GridDefinition, GridItemDefinition, Header, HeaderDefinition, HeaderPage, HeaderPageDefinition, Link, LinkDefinition, Menu, MenuAutocomplete, MenuAutocompleteListbox, MenuDefinition, MenuItem, MenuListBox, MenuListBoxItem, MenuSection, MenuSeparator, MenuTrigger, Radio, RadioGroup, RadioGroupDefinition, Row, SearchField, SearchFieldDefinition, Select, SelectDefinition, Skeleton, SkeletonDefinition, SubmenuTrigger, Switch, SwitchDefinition, Tab, TabList, TabPanel, Table, TableBody, TableDefinition, TableHeader, TablePagination, TablePaginationDefinition, TableRoot, Tabs, TabsDefinition, Tag, TagGroup, TagGroupDefinition, Text, TextDefinition, TextField, TextFieldDefinition, ToggleButton, ToggleButtonDefinition, ToggleButtonGroup, ToggleButtonGroupDefinition, Tooltip, TooltipDefinition, TooltipTrigger, VisuallyHidden, VisuallyHiddenDefinition, useBreakpoint, useTable };
|
|
1684
|
-
export type { AccordionGroupProps, AccordionPanelProps, AccordionProps, AccordionTriggerProps, AlignItems, AvatarProps, Border, BorderRadius, BoxProps, Breakpoint, ButtonIconProps, ButtonLinkProps, ButtonProps, CardBodyProps, CardFooterProps, CardHeaderProps, CardProps, CellProfileProps, CellProps, CellTextProps, CheckboxProps, ClassNamesMap, ColumnConfig, ColumnProps, Columns, ComponentDefinition, ContainerProps, CursorParams, CursorResponse, DataAttributeValues, DataAttributesMap, DialogBodyProps, DialogHeaderProps, DialogProps, DialogTriggerProps, Display, FieldLabelProps, FilterState, FlexDirection, FlexProps, FlexWrap, GridItemProps, GridProps, HeaderPageBreadcrumb, HeaderPageProps, HeaderProps, HeaderTab, JustifyContent, LinkProps, MenuAutocompleteListBoxProps, MenuAutocompleteProps, MenuItemProps, MenuListBoxItemProps, MenuListBoxProps, MenuProps, MenuSectionProps, MenuSeparatorProps, MenuTriggerProps, NoPagination, OffsetParams, OffsetResponse, Option, PagePagination, PaginationOptions, QueryOptions, RadioGroupProps, RadioProps, Responsive, RowConfig, RowRenderFn, SearchFieldProps, SearchState, SelectProps, SkeletonProps, SortDescriptor, SortState, Space, SpaceProps, SubmenuTriggerProps, Surface, SwitchProps, TabListProps, TabMatchStrategy, TabPanelProps, TabProps, TableItem, TablePaginationProps, TablePaginationType, TableProps, TableRootProps, TableSelection, TabsProps, TagGroupProps, TagProps, TextColorStatus, TextColors, TextFieldProps, TextOwnProps, TextProps, TextVariants, TextWeights, ToggleButtonGroupProps, ToggleButtonProps, TooltipProps, UseTableCompleteOptions, UseTableCursorOptions, UseTableOffsetOptions, UseTableOptions, UseTableResult, UtilityProps, VisuallyHiddenProps };
|
|
1762
|
+
export { Accordion, AccordionDefinition, AccordionGroup, AccordionPanel, AccordionTrigger, Avatar, AvatarDefinition, Box, BoxDefinition, Button, ButtonDefinition, ButtonIcon, ButtonIconDefinition, ButtonLink, ButtonLinkDefinition, Card, CardBody, CardDefinition, CardFooter, CardHeader, Cell, CellProfile, CellText, Checkbox, CheckboxDefinition, Column, Container, ContainerDefinition, Dialog, DialogBody, DialogDefinition, DialogFooter, DialogHeader, DialogTrigger, FieldLabel, FieldLabelDefinition, Flex, FlexDefinition, Grid, GridDefinition, GridItemDefinition, Header, HeaderDefinition, HeaderPage, HeaderPageDefinition, Link, LinkDefinition, Menu, MenuAutocomplete, MenuAutocompleteListbox, MenuDefinition, MenuItem, MenuListBox, MenuListBoxItem, MenuSection, MenuSeparator, MenuTrigger, Popover, PopoverDefinition, Radio, RadioGroup, RadioGroupDefinition, Row, SearchField, SearchFieldDefinition, Select, SelectDefinition, Skeleton, SkeletonDefinition, SubmenuTrigger, Switch, SwitchDefinition, Tab, TabList, TabPanel, Table, TableBody, TableDefinition, TableHeader, TablePagination, TablePaginationDefinition, TableRoot, Tabs, TabsDefinition, Tag, TagGroup, TagGroupDefinition, Text, TextDefinition, TextField, TextFieldDefinition, ToggleButton, ToggleButtonDefinition, ToggleButtonGroup, ToggleButtonGroupDefinition, Tooltip, TooltipDefinition, TooltipTrigger, VisuallyHidden, VisuallyHiddenDefinition, useBreakpoint, useTable };
|
|
1763
|
+
export type { AccordionGroupProps, AccordionPanelProps, AccordionProps, AccordionTriggerProps, AlignItems, AvatarProps, Border, BorderRadius, BoxProps, Breakpoint, ButtonIconProps, ButtonLinkProps, ButtonProps, CardBodyProps, CardFooterProps, CardHeaderProps, CardProps, CellProfileProps, CellProps, CellTextProps, CheckboxProps, ClassNamesMap, ColumnConfig, ColumnProps, Columns, ComponentDefinition, ContainerProps, CursorParams, CursorResponse, DataAttributeValues, DataAttributesMap, DialogBodyProps, DialogHeaderProps, DialogProps, DialogTriggerProps, Display, FieldLabelProps, FilterState, FlexDirection, FlexProps, FlexWrap, GridItemProps, GridProps, HeaderPageBreadcrumb, HeaderPageProps, HeaderProps, HeaderTab, JustifyContent, LinkProps, MenuAutocompleteListBoxProps, MenuAutocompleteProps, MenuItemProps, MenuListBoxItemProps, MenuListBoxProps, MenuProps, MenuSectionProps, MenuSeparatorProps, MenuTriggerProps, NoPagination, OffsetParams, OffsetResponse, Option, PagePagination, PageSizeOption, PaginationOptions, PopoverProps, QueryOptions, RadioGroupProps, RadioProps, Responsive, RowConfig, RowRenderFn, SearchFieldProps, SearchState, SelectProps, SkeletonProps, SortDescriptor, SortState, Space, SpaceProps, SubmenuTriggerProps, Surface, SwitchProps, TabListProps, TabMatchStrategy, TabPanelProps, TabProps, TableItem, TablePaginationProps, TablePaginationType, TableProps, TableRootProps, TableSelection, TabsProps, TagGroupProps, TagProps, TextColorStatus, TextColors, TextFieldProps, TextOwnProps, TextProps, TextVariants, TextWeights, ToggleButtonGroupProps, ToggleButtonProps, TooltipProps, UseTableCompleteOptions, UseTableCursorOptions, UseTableOffsetOptions, UseTableOptions, UseTableResult, UtilityProps, VisuallyHiddenProps };
|
package/dist/index.esm.js
CHANGED
|
@@ -55,6 +55,8 @@ export { Tooltip, TooltipTrigger } from './components/Tooltip/Tooltip.esm.js';
|
|
|
55
55
|
export { TooltipDefinition } from './components/Tooltip/definition.esm.js';
|
|
56
56
|
export { Menu, MenuAutocomplete, MenuAutocompleteListbox, MenuItem, MenuListBox, MenuListBoxItem, MenuSection, MenuSeparator, MenuTrigger, SubmenuTrigger } from './components/Menu/Menu.esm.js';
|
|
57
57
|
export { MenuDefinition } from './components/Menu/definition.esm.js';
|
|
58
|
+
export { Popover } from './components/Popover/Popover.esm.js';
|
|
59
|
+
export { PopoverDefinition } from './components/Popover/definition.esm.js';
|
|
58
60
|
export { SearchField } from './components/SearchField/SearchField.esm.js';
|
|
59
61
|
export { SearchFieldDefinition } from './components/SearchField/definition.esm.js';
|
|
60
62
|
export { Link } from './components/Link/Link.esm.js';
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/ui",
|
|
3
|
-
"version": "0.11.0
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"backstage": {
|
|
5
5
|
"role": "web-library"
|
|
6
6
|
},
|
|
@@ -40,14 +40,14 @@
|
|
|
40
40
|
"test": "backstage-cli package test"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@backstage/version-bridge": "1.0.11",
|
|
43
|
+
"@backstage/version-bridge": "^1.0.11",
|
|
44
44
|
"@remixicon/react": "^4.6.0",
|
|
45
45
|
"@tanstack/react-table": "^8.21.3",
|
|
46
46
|
"clsx": "^2.1.1",
|
|
47
47
|
"react-aria-components": "^1.13.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@backstage/cli": "0.35.2
|
|
50
|
+
"@backstage/cli": "^0.35.2",
|
|
51
51
|
"@types/react": "^18.0.0",
|
|
52
52
|
"@types/react-dom": "^18.0.0",
|
|
53
53
|
"chalk": "^5.4.1",
|