@backstage/ui 0.0.0-nightly-20250722024836

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.
Files changed (135) hide show
  1. package/CHANGELOG.md +294 -0
  2. package/README.md +18 -0
  3. package/css/styles.css +10823 -0
  4. package/dist/components/Avatar/Avatar.esm.js +29 -0
  5. package/dist/components/Avatar/Avatar.esm.js.map +1 -0
  6. package/dist/components/Box/Box.esm.js +34 -0
  7. package/dist/components/Box/Box.esm.js.map +1 -0
  8. package/dist/components/Box/Box.props.esm.js +7 -0
  9. package/dist/components/Box/Box.props.esm.js.map +1 -0
  10. package/dist/components/Button/Button.esm.js +41 -0
  11. package/dist/components/Button/Button.esm.js.map +1 -0
  12. package/dist/components/ButtonIcon/ButtonIcon.esm.js +37 -0
  13. package/dist/components/ButtonIcon/ButtonIcon.esm.js.map +1 -0
  14. package/dist/components/ButtonLink/ButtonLink.esm.js +42 -0
  15. package/dist/components/ButtonLink/ButtonLink.esm.js.map +1 -0
  16. package/dist/components/Card/Card.esm.js +53 -0
  17. package/dist/components/Card/Card.esm.js.map +1 -0
  18. package/dist/components/Checkbox/Checkbox.esm.js +74 -0
  19. package/dist/components/Checkbox/Checkbox.esm.js.map +1 -0
  20. package/dist/components/Collapsible/Collapsible.esm.js +50 -0
  21. package/dist/components/Collapsible/Collapsible.esm.js.map +1 -0
  22. package/dist/components/Container/Container.esm.js +35 -0
  23. package/dist/components/Container/Container.esm.js.map +1 -0
  24. package/dist/components/DataTable/DataTable.esm.js +26 -0
  25. package/dist/components/DataTable/DataTable.esm.js.map +1 -0
  26. package/dist/components/DataTable/Pagination/DataTablePagination.esm.js +84 -0
  27. package/dist/components/DataTable/Pagination/DataTablePagination.esm.js.map +1 -0
  28. package/dist/components/DataTable/Root/DataTableRoot.esm.js +24 -0
  29. package/dist/components/DataTable/Root/DataTableRoot.esm.js.map +1 -0
  30. package/dist/components/DataTable/Table/DataTableTable.esm.js +64 -0
  31. package/dist/components/DataTable/Table/DataTableTable.esm.js.map +1 -0
  32. package/dist/components/FieldError/FieldError.esm.js +22 -0
  33. package/dist/components/FieldError/FieldError.esm.js.map +1 -0
  34. package/dist/components/FieldLabel/FieldLabel.esm.js +27 -0
  35. package/dist/components/FieldLabel/FieldLabel.esm.js.map +1 -0
  36. package/dist/components/Flex/Flex.esm.js +26 -0
  37. package/dist/components/Flex/Flex.esm.js.map +1 -0
  38. package/dist/components/Flex/Flex.props.esm.js +31 -0
  39. package/dist/components/Flex/Flex.props.esm.js.map +1 -0
  40. package/dist/components/Grid/Grid.esm.js +43 -0
  41. package/dist/components/Grid/Grid.esm.js.map +1 -0
  42. package/dist/components/Grid/Grid.props.esm.js +58 -0
  43. package/dist/components/Grid/Grid.props.esm.js.map +1 -0
  44. package/dist/components/Header/Header.esm.js +27 -0
  45. package/dist/components/Header/Header.esm.js.map +1 -0
  46. package/dist/components/Header/HeaderToolbar.esm.js +121 -0
  47. package/dist/components/Header/HeaderToolbar.esm.js.map +1 -0
  48. package/dist/components/HeaderPage/HeaderPage.esm.js +48 -0
  49. package/dist/components/HeaderPage/HeaderPage.esm.js.map +1 -0
  50. package/dist/components/Heading/Heading.esm.js +37 -0
  51. package/dist/components/Heading/Heading.esm.js.map +1 -0
  52. package/dist/components/Icon/Icon.esm.js +29 -0
  53. package/dist/components/Icon/Icon.esm.js.map +1 -0
  54. package/dist/components/Icon/context.esm.js +10 -0
  55. package/dist/components/Icon/context.esm.js.map +1 -0
  56. package/dist/components/Icon/icons.esm.js +63 -0
  57. package/dist/components/Icon/icons.esm.js.map +1 -0
  58. package/dist/components/Icon/provider.esm.js +12 -0
  59. package/dist/components/Icon/provider.esm.js.map +1 -0
  60. package/dist/components/Link/Link.esm.js +63 -0
  61. package/dist/components/Link/Link.esm.js.map +1 -0
  62. package/dist/components/Menu/Combobox.esm.js +212 -0
  63. package/dist/components/Menu/Combobox.esm.js.map +1 -0
  64. package/dist/components/Menu/Menu.esm.js +224 -0
  65. package/dist/components/Menu/Menu.esm.js.map +1 -0
  66. package/dist/components/RadioGroup/RadioGroup.esm.js +71 -0
  67. package/dist/components/RadioGroup/RadioGroup.esm.js.map +1 -0
  68. package/dist/components/ScrollArea/ScrollArea.esm.js +63 -0
  69. package/dist/components/ScrollArea/ScrollArea.esm.js.map +1 -0
  70. package/dist/components/SearchField/SearchField.esm.js +107 -0
  71. package/dist/components/SearchField/SearchField.esm.js.map +1 -0
  72. package/dist/components/Select/Select.esm.js +89 -0
  73. package/dist/components/Select/Select.esm.js.map +1 -0
  74. package/dist/components/Select/Select.styles.css.esm.js +7 -0
  75. package/dist/components/Select/Select.styles.css.esm.js.map +1 -0
  76. package/dist/components/Skeleton/Skeleton.esm.js +22 -0
  77. package/dist/components/Skeleton/Skeleton.esm.js.map +1 -0
  78. package/dist/components/Switch/Switch.esm.js +18 -0
  79. package/dist/components/Switch/Switch.esm.js.map +1 -0
  80. package/dist/components/Table/Table.esm.js +68 -0
  81. package/dist/components/Table/Table.esm.js.map +1 -0
  82. package/dist/components/Table/TableCell/TableCell.esm.js +13 -0
  83. package/dist/components/Table/TableCell/TableCell.esm.js.map +1 -0
  84. package/dist/components/Table/TableCellLink/TableCellLink.esm.js +28 -0
  85. package/dist/components/Table/TableCellLink/TableCellLink.esm.js.map +1 -0
  86. package/dist/components/Table/TableCellProfile/TableCellProfile.esm.js +40 -0
  87. package/dist/components/Table/TableCellProfile/TableCellProfile.esm.js.map +1 -0
  88. package/dist/components/Table/TableCellText/TableCellText.esm.js +27 -0
  89. package/dist/components/Table/TableCellText/TableCellText.esm.js.map +1 -0
  90. package/dist/components/Tabs/Tabs.esm.js +127 -0
  91. package/dist/components/Tabs/Tabs.esm.js.map +1 -0
  92. package/dist/components/Tabs/TabsIndicators.esm.js +140 -0
  93. package/dist/components/Tabs/TabsIndicators.esm.js.map +1 -0
  94. package/dist/components/Text/Text.esm.js +39 -0
  95. package/dist/components/Text/Text.esm.js.map +1 -0
  96. package/dist/components/TextField/TextField.esm.js +88 -0
  97. package/dist/components/TextField/TextField.esm.js.map +1 -0
  98. package/dist/components/Tooltip/Tooltip.esm.js +31 -0
  99. package/dist/components/Tooltip/Tooltip.esm.js.map +1 -0
  100. package/dist/hooks/useBreakpoint.esm.js +43 -0
  101. package/dist/hooks/useBreakpoint.esm.js.map +1 -0
  102. package/dist/hooks/useIsomorphicLayoutEffect.esm.js +6 -0
  103. package/dist/hooks/useIsomorphicLayoutEffect.esm.js.map +1 -0
  104. package/dist/hooks/useMediaQuery.esm.js +44 -0
  105. package/dist/hooks/useMediaQuery.esm.js.map +1 -0
  106. package/dist/hooks/useStyles.esm.js +46 -0
  107. package/dist/hooks/useStyles.esm.js.map +1 -0
  108. package/dist/index.d.ts +1399 -0
  109. package/dist/index.esm.js +40 -0
  110. package/dist/index.esm.js.map +1 -0
  111. package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js +29 -0
  112. package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js.map +1 -0
  113. package/dist/props/display.props.esm.js +12 -0
  114. package/dist/props/display.props.esm.js.map +1 -0
  115. package/dist/props/gap-props.esm.js +15 -0
  116. package/dist/props/gap-props.esm.js.map +1 -0
  117. package/dist/props/height.props.esm.js +23 -0
  118. package/dist/props/height.props.esm.js.map +1 -0
  119. package/dist/props/margin.props.esm.js +54 -0
  120. package/dist/props/margin.props.esm.js.map +1 -0
  121. package/dist/props/padding.props.esm.js +54 -0
  122. package/dist/props/padding.props.esm.js.map +1 -0
  123. package/dist/props/position.props.esm.js +18 -0
  124. package/dist/props/position.props.esm.js.map +1 -0
  125. package/dist/props/prop-def.esm.js +4 -0
  126. package/dist/props/prop-def.esm.js.map +1 -0
  127. package/dist/props/spacing.props.esm.js +28 -0
  128. package/dist/props/spacing.props.esm.js.map +1 -0
  129. package/dist/props/width.props.esm.js +23 -0
  130. package/dist/props/width.props.esm.js.map +1 -0
  131. package/dist/utils/componentDefinitions.esm.js +272 -0
  132. package/dist/utils/componentDefinitions.esm.js.map +1 -0
  133. package/dist/utils/extractProps.esm.js +49 -0
  134. package/dist/utils/extractProps.esm.js.map +1 -0
  135. package/package.json +93 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"componentDefinitions.esm.js","sources":["../../src/utils/componentDefinitions.ts"],"sourcesContent":["/*\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\nimport type { ComponentDefinition } from '../types';\n\n/**\n * Component definitions for the Backstage UI library\n * @public\n */\nexport const componentDefinitions = {\n Avatar: {\n classNames: {\n root: 'bui-AvatarRoot',\n image: 'bui-AvatarImage',\n fallback: 'bui-AvatarFallback',\n },\n dataAttributes: {\n size: ['small', 'medium', 'large'] as const,\n },\n },\n Box: {\n classNames: {\n root: 'bui-Box',\n },\n },\n Button: {\n classNames: {\n root: 'bui-Button',\n },\n dataAttributes: {\n size: ['small', 'medium', 'large'] as const,\n variant: ['primary', 'secondary', 'ghost'] as const,\n },\n },\n ButtonIcon: {\n classNames: {\n root: 'bui-ButtonIcon',\n },\n },\n ButtonLink: {\n classNames: {\n root: 'bui-ButtonLink',\n },\n },\n Card: {\n classNames: {\n root: 'bui-Card',\n header: 'bui-CardHeader',\n body: 'bui-CardBody',\n footer: 'bui-CardFooter',\n },\n },\n Checkbox: {\n classNames: {\n root: 'bui-CheckboxRoot',\n label: 'bui-CheckboxLabel',\n indicator: 'bui-CheckboxIndicator',\n },\n dataAttributes: {\n checked: [true, false] as const,\n },\n },\n Collapsible: {\n classNames: {\n root: 'bui-CollapsibleRoot',\n trigger: 'bui-CollapsibleTrigger',\n panel: 'bui-CollapsiblePanel',\n },\n },\n Container: {\n classNames: {\n root: 'bui-Container',\n },\n },\n FieldLabel: {\n classNames: {\n root: 'bui-FieldLabelWrapper',\n label: 'bui-FieldLabel',\n secondaryLabel: 'bui-FieldSecondaryLabel',\n description: 'bui-FieldDescription',\n },\n },\n Flex: {\n classNames: {\n root: 'bui-Flex',\n },\n },\n Grid: {\n classNames: {\n root: 'bui-Grid',\n item: 'bui-GridItem',\n },\n },\n Header: {\n classNames: {\n toolbar: 'bui-HeaderToolbar',\n toolbarWrapper: 'bui-HeaderToolbarWrapper',\n toolbarContent: 'bui-HeaderToolbarContent',\n toolbarControls: 'bui-HeaderToolbarControls',\n toolbarIcon: 'bui-HeaderToolbarIcon',\n toolbarName: 'bui-HeaderToolbarName',\n breadcrumbs: 'bui-HeaderBreadcrumbs',\n breadcrumb: 'bui-HeaderBreadcrumb',\n breadcrumbLink: 'bui-HeaderBreadcrumbLink',\n breadcrumbSeparator: 'bui-HeaderBreadcrumbSeparator',\n tabsWrapper: 'bui-HeaderTabsWrapper',\n },\n },\n HeaderPage: {\n classNames: {\n root: 'bui-HeaderPage',\n content: 'bui-HeaderPageContent',\n tabsWrapper: 'bui-HeaderPageTabsWrapper',\n controls: 'bui-HeaderPageControls',\n },\n },\n Heading: {\n classNames: {\n root: 'bui-Heading',\n },\n dataAttributes: {\n variant: ['title1', 'title2', 'title3', 'subtitle'] as const,\n color: ['primary', 'secondary', 'muted'] as const,\n truncate: [true, false] as const,\n },\n },\n Icon: {\n classNames: {\n root: 'bui-Icon',\n },\n },\n Link: {\n classNames: {\n root: 'bui-Link',\n },\n dataAttributes: {\n variant: ['subtitle', 'body', 'caption', 'label'] as const,\n weight: ['regular', 'bold'] as const,\n },\n },\n List: {\n classNames: {\n root: 'bui-List',\n row: 'bui-ListRow',\n label: 'bui-ListLabel',\n },\n },\n Menu: {\n classNames: {\n trigger: 'bui-MenuTrigger',\n backdrop: 'bui-MenuBackdrop',\n positioner: 'bui-MenuPositioner',\n popup: 'bui-MenuPopup',\n arrow: 'bui-MenuArrow',\n item: 'bui-MenuItem',\n group: 'bui-MenuGroup',\n groupLabel: 'bui-MenuGroupLabel',\n radioGroup: 'bui-MenuRadioGroup',\n radioItem: 'bui-MenuRadioItem',\n radioItemIndicator: 'bui-MenuRadioItemIndicator',\n checkboxItem: 'bui-MenuCheckboxItem',\n checkboxItemIndicator: 'bui-MenuCheckboxItemIndicator',\n submenuTrigger: 'bui-MenuSubmenuTrigger',\n separator: 'bui-MenuSeparator',\n },\n },\n Popover: {\n classNames: {\n root: 'bui-Popover',\n },\n },\n RadioGroup: {\n classNames: {\n root: 'bui-RadioGroup',\n content: 'bui-RadioGroupContent',\n radio: 'bui-Radio',\n },\n },\n ScrollArea: {\n classNames: {\n root: 'bui-ScrollAreaRoot',\n viewport: 'bui-ScrollAreaViewport',\n scrollbar: 'bui-ScrollAreaScrollbar',\n thumb: 'bui-ScrollAreaThumb',\n },\n },\n SearchField: {\n classNames: {\n root: 'bui-SearchField',\n clear: 'bui-InputClear',\n },\n },\n Select: {\n classNames: {\n root: 'bui-Select',\n trigger: 'bui-SelectTrigger',\n value: 'bui-SelectValue',\n icon: 'bui-SelectIcon',\n list: 'bui-SelectList',\n item: 'bui-SelectItem',\n itemIndicator: 'bui-SelectItemIndicator',\n itemLabel: 'bui-SelectItemLabel',\n },\n dataAttributes: {\n size: ['small', 'medium'] as const,\n },\n },\n Skeleton: {\n classNames: {\n root: 'bui-Skeleton',\n },\n },\n Switch: {\n classNames: {\n root: 'bui-Switch',\n indicator: 'bui-SwitchIndicator',\n },\n },\n Table: {\n classNames: {\n root: 'bui-TableRoot',\n header: 'bui-TableHeader',\n body: 'bui-TableBody',\n row: 'bui-TableRow',\n head: 'bui-TableHead',\n caption: 'bui-TableCaption',\n cell: 'bui-TableCell',\n cellText: 'bui-TableCellText',\n cellLink: 'bui-TableCellLink',\n cellProfile: 'bui-TableCellProfile',\n cellProfileAvatar: 'bui-TableCellProfileAvatar',\n cellProfileAvatarImage: 'bui-TableCellProfileAvatarImage',\n cellProfileAvatarFallback: 'bui-TableCellProfileAvatarFallback',\n cellProfileName: 'bui-TableCellProfileName',\n cellProfileLink: 'bui-TableCellProfileLink',\n },\n },\n Tabs: {\n classNames: {\n tabs: 'bui-Tabs',\n tabList: 'bui-TabList',\n tabListWrapper: 'bui-TabListWrapper',\n tab: 'bui-Tab',\n tabActive: 'bui-TabActive',\n tabHovered: 'bui-TabHovered',\n panel: 'bui-TabPanel',\n },\n },\n Text: {\n classNames: {\n root: 'bui-Text',\n },\n dataAttributes: {\n variant: ['subtitle', 'body', 'caption', 'label'] as const,\n weight: ['regular', 'bold'] as const,\n color: ['primary', 'secondary', 'danger', 'warning', 'success'] as const,\n truncate: [true, false] as const,\n },\n },\n TextField: {\n classNames: {\n root: 'bui-TextField',\n inputWrapper: 'bui-InputWrapper',\n input: 'bui-Input',\n inputIcon: 'bui-InputIcon',\n },\n dataAttributes: {\n invalid: [true, false] as const,\n disabled: [true, false] as const,\n },\n },\n Tooltip: {\n classNames: {\n tooltip: 'bui-Tooltip',\n arrow: 'bui-TooltipArrow',\n },\n },\n} as const satisfies Record<string, ComponentDefinition>;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ function extractProps(props, propDefs) {
2
+ let className = (props.className || "").split(" ");
3
+ let style = { ...props.style };
4
+ for (const key in propDefs) {
5
+ const propDef = propDefs[key];
6
+ if (!Object.hasOwn(props, key) && !propDef.hasOwnProperty("default")) {
7
+ continue;
8
+ }
9
+ const value = Object.hasOwn(props, key) ? props[key] : propDefs[key].default;
10
+ const propDefsValues = propDef.values;
11
+ const propDefsCustomProperties = propDef.customProperties;
12
+ const propDefsClassName = propDef.className;
13
+ const isResponsive = propDef.responsive;
14
+ const handleValue = (val, prefix = "") => {
15
+ if (key === "as") return;
16
+ if (propDefsValues?.includes(val)) {
17
+ className.push(`${prefix}${propDefsClassName}-${val}`);
18
+ } else {
19
+ if (propDefsCustomProperties) {
20
+ for (const customProperty of propDefsCustomProperties) {
21
+ const customPropertyKey = isResponsive && prefix ? `${customProperty}-${prefix.slice(0, -1)}` : customProperty;
22
+ style[customPropertyKey] = val;
23
+ }
24
+ }
25
+ className.push(`${prefix}${propDefsClassName}`);
26
+ }
27
+ };
28
+ if (isResponsive && typeof value === "object" && value !== null) {
29
+ const breakpointValues = value;
30
+ for (const breakpoint in breakpointValues) {
31
+ const prefix = breakpoint === "initial" ? "" : `${breakpoint}:`;
32
+ handleValue(breakpointValues[breakpoint], prefix);
33
+ }
34
+ } else {
35
+ handleValue(value);
36
+ }
37
+ }
38
+ const cleanedProps = Object.keys(props).reduce((acc, key) => {
39
+ if (!propDefs.hasOwnProperty(key)) {
40
+ acc[key] = props[key];
41
+ }
42
+ return acc;
43
+ }, {});
44
+ const newClassNames = className.filter((name) => name && name.trim() !== "").join(" ");
45
+ return { ...cleanedProps, className: newClassNames, style };
46
+ }
47
+
48
+ export { extractProps };
49
+ //# sourceMappingURL=extractProps.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractProps.esm.js","sources":["../../src/utils/extractProps.ts"],"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\ntype BasePropDef = {\n type: string;\n values?: readonly unknown[];\n default?: unknown;\n required?: boolean;\n className?: string;\n responsive?: true;\n customProperties?: string[];\n};\n\nexport function extractProps(\n props: {\n className?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n as?: keyof JSX.IntrinsicElements;\n [key: string]: any;\n },\n propDefs: { [name in string]: BasePropDef },\n) {\n let className: string[] = (props.className || '').split(' ');\n let style: React.CSSProperties = { ...props.style };\n\n for (const key in propDefs) {\n const propDef = propDefs[key];\n\n // Check if the prop is present or has a default value\n if (!Object.hasOwn(props, key) && !propDef.hasOwnProperty('default')) {\n continue; // Skip processing if neither is present\n }\n\n const value = Object.hasOwn(props, key)\n ? (props[key] as unknown)\n : propDefs[key].default;\n const propDefsValues = propDef.values;\n const propDefsCustomProperties = propDef.customProperties;\n const propDefsClassName = propDef.className;\n const isResponsive = propDef.responsive;\n\n const handleValue = (val: unknown, prefix: string = '') => {\n // Skip adding class name if the key is \"as\"\n if (key === 'as') return;\n\n if (propDefsValues?.includes(val)) {\n className.push(`${prefix}${propDefsClassName}-${val}`);\n } else {\n if (propDefsCustomProperties) {\n for (const customProperty of propDefsCustomProperties) {\n const customPropertyKey =\n isResponsive && prefix\n ? `${customProperty}-${prefix.slice(0, -1)}`\n : customProperty;\n style[customPropertyKey as keyof typeof style] = val as any;\n }\n }\n className.push(`${prefix}${propDefsClassName}`);\n }\n };\n\n if (isResponsive && typeof value === 'object' && value !== null) {\n const breakpointValues = value as { [key: string]: unknown };\n // Handle responsive object values\n for (const breakpoint in breakpointValues) {\n const prefix = breakpoint === 'initial' ? '' : `${breakpoint}:`;\n handleValue(breakpointValues[breakpoint], prefix);\n }\n } else {\n handleValue(value);\n }\n }\n\n // Ensure keys from props that are defined in propDefs are removed\n const cleanedProps = Object.keys(props).reduce((acc, key) => {\n if (!propDefs.hasOwnProperty(key)) {\n acc[key] = props[key];\n }\n return acc;\n }, {} as { [key: string]: any });\n\n const newClassNames = className\n .filter(name => name && name.trim() !== '')\n .join(' ');\n\n return { ...cleanedProps, className: newClassNames, style };\n}\n"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,93 @@
1
+ {
2
+ "name": "@backstage/ui",
3
+ "version": "0.0.0-nightly-20250722024836",
4
+ "backstage": {
5
+ "role": "web-library"
6
+ },
7
+ "publishConfig": {
8
+ "access": "public",
9
+ "main": "dist/index.esm.js",
10
+ "types": "dist/index.d.ts"
11
+ },
12
+ "keywords": [
13
+ "backstage"
14
+ ],
15
+ "homepage": "https://ui.backstage.io",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/backstage/backstage",
19
+ "directory": "packages/ui"
20
+ },
21
+ "license": "Apache-2.0",
22
+ "sideEffects": true,
23
+ "main": "dist/index.esm.js",
24
+ "types": "dist/index.d.ts",
25
+ "files": [
26
+ "dist",
27
+ "css"
28
+ ],
29
+ "scripts": {
30
+ "build": "yarn build:app && yarn build:css",
31
+ "build-storybook": "storybook build",
32
+ "build:app": "backstage-cli package build",
33
+ "build:css": "node scripts/build-css.mjs",
34
+ "build:css:watch": "node scripts/build-css.mjs --watch",
35
+ "clean": "backstage-cli package clean",
36
+ "lint": "backstage-cli package lint",
37
+ "prepack": "backstage-cli package prepack",
38
+ "postpack": "backstage-cli package postpack",
39
+ "start": "concurrently \"yarn build:css:watch\" \"yarn storybook\"",
40
+ "storybook": "storybook dev -p 6006",
41
+ "test": "backstage-cli package test"
42
+ },
43
+ "dependencies": {
44
+ "@base-ui-components/react": "1.0.0-alpha.7",
45
+ "@remixicon/react": "^4.6.0",
46
+ "@tanstack/react-table": "^8.21.3",
47
+ "clsx": "^2.1.1",
48
+ "motion": "^12.20.1",
49
+ "react-aria-components": "^1.10.1"
50
+ },
51
+ "devDependencies": {
52
+ "@backstage/cli": "0.33.1",
53
+ "@storybook/addon-essentials": "^8.6.12",
54
+ "@storybook/addon-interactions": "^8.6.12",
55
+ "@storybook/addon-styling-webpack": "^1.0.1",
56
+ "@storybook/addon-webpack5-compiler-swc": "^3.0.0",
57
+ "@storybook/blocks": "^8.6.12",
58
+ "@storybook/react": "^8.6.12",
59
+ "@storybook/react-webpack5": "^8.6.12",
60
+ "@storybook/test": "^8.6.12",
61
+ "@types/react": "^18.0.0",
62
+ "@types/react-dom": "^18.0.0",
63
+ "chalk": "^5.4.1",
64
+ "eslint-plugin-storybook": "^0.12.0",
65
+ "glob": "^11.0.1",
66
+ "globals": "^15.11.0",
67
+ "lightningcss": "^1.29.1",
68
+ "mini-css-extract-plugin": "^2.9.2",
69
+ "react": "^18.0.2",
70
+ "react-dom": "^18.0.2",
71
+ "react-router-dom": "^6.3.0",
72
+ "storybook": "^8.6.12"
73
+ },
74
+ "peerDependencies": {
75
+ "@types/react": "^17.0.0 || ^18.0.0",
76
+ "react": "^17.0.0 || ^18.0.0",
77
+ "react-dom": "^17.0.0 || ^18.0.0",
78
+ "react-router-dom": "^6.3.0"
79
+ },
80
+ "peerDependenciesMeta": {
81
+ "@types/react": {
82
+ "optional": true
83
+ }
84
+ },
85
+ "typesVersions": {
86
+ "*": {
87
+ "package.json": [
88
+ "package.json"
89
+ ]
90
+ }
91
+ },
92
+ "module": "./dist/index.esm.js"
93
+ }