@backstage/ui 0.7.0-next.2 → 0.7.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.
Files changed (114) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/css/styles.css +393 -196
  3. package/dist/components/Avatar/Avatar.esm.js.map +1 -1
  4. package/dist/components/Box/Box.esm.js.map +1 -1
  5. package/dist/components/Box/Box.props.esm.js.map +1 -1
  6. package/dist/components/Button/Button.esm.js.map +1 -1
  7. package/dist/components/ButtonIcon/ButtonIcon.esm.js.map +1 -1
  8. package/dist/components/ButtonLink/ButtonLink.esm.js.map +1 -1
  9. package/dist/components/Card/Card.esm.js +4 -4
  10. package/dist/components/Card/Card.esm.js.map +1 -1
  11. package/dist/components/Checkbox/Checkbox.esm.js +9 -9
  12. package/dist/components/Checkbox/Checkbox.esm.js.map +1 -1
  13. package/dist/components/Collapsible/Collapsible.esm.js.map +1 -1
  14. package/dist/components/Container/Container.esm.js.map +1 -1
  15. package/dist/components/FieldError/FieldError.esm.js.map +1 -1
  16. package/dist/components/FieldLabel/FieldLabel.esm.js.map +1 -1
  17. package/dist/components/Flex/Flex.esm.js.map +1 -1
  18. package/dist/components/Flex/Flex.props.esm.js.map +1 -1
  19. package/dist/components/Grid/Grid.esm.js.map +1 -1
  20. package/dist/components/Grid/Grid.props.esm.js.map +1 -1
  21. package/dist/components/Header/Header.esm.js +1 -12
  22. package/dist/components/Header/Header.esm.js.map +1 -1
  23. package/dist/components/Header/HeaderToolbar.esm.js +5 -125
  24. package/dist/components/Header/HeaderToolbar.esm.js.map +1 -1
  25. package/dist/components/HeaderPage/HeaderPage.esm.js +21 -30
  26. package/dist/components/HeaderPage/HeaderPage.esm.js.map +1 -1
  27. package/dist/components/Icon/Icon.esm.js.map +1 -1
  28. package/dist/components/Icon/context.esm.js.map +1 -1
  29. package/dist/components/Icon/icons.esm.js +1 -1
  30. package/dist/components/Icon/icons.esm.js.map +1 -1
  31. package/dist/components/Icon/provider.esm.js.map +1 -1
  32. package/dist/components/Link/Link.esm.js +1 -13
  33. package/dist/components/Link/Link.esm.js.map +1 -1
  34. package/dist/components/Menu/Menu.esm.js +144 -202
  35. package/dist/components/Menu/Menu.esm.js.map +1 -1
  36. package/dist/components/RadioGroup/RadioGroup.esm.js.map +1 -1
  37. package/dist/components/ScrollArea/ScrollArea.esm.js.map +1 -1
  38. package/dist/components/SearchField/SearchField.esm.js +27 -4
  39. package/dist/components/SearchField/SearchField.esm.js.map +1 -1
  40. package/dist/components/Select/Select.esm.js +0 -1
  41. package/dist/components/Select/Select.esm.js.map +1 -1
  42. package/dist/components/Skeleton/Skeleton.esm.js.map +1 -1
  43. package/dist/components/Switch/Switch.esm.js.map +1 -1
  44. package/dist/components/Table/components/Cell.esm.js +30 -0
  45. package/dist/components/Table/components/Cell.esm.js.map +1 -0
  46. package/dist/components/Table/components/CellProfile.esm.js +41 -0
  47. package/dist/components/Table/components/CellProfile.esm.js.map +1 -0
  48. package/dist/components/Table/components/Column.esm.js +17 -0
  49. package/dist/components/Table/components/Column.esm.js.map +1 -0
  50. package/dist/components/Table/components/Row.esm.js +38 -0
  51. package/dist/components/Table/components/Row.esm.js.map +1 -0
  52. package/dist/components/Table/components/Table.esm.js +18 -0
  53. package/dist/components/Table/components/Table.esm.js.map +1 -0
  54. package/dist/components/Table/components/TableBody.esm.js +11 -0
  55. package/dist/components/Table/components/TableBody.esm.js.map +1 -0
  56. package/dist/components/Table/components/TableHeader.esm.js +20 -0
  57. package/dist/components/Table/components/TableHeader.esm.js.map +1 -0
  58. package/dist/components/Table/hooks/useTable.esm.js +116 -0
  59. package/dist/components/Table/hooks/useTable.esm.js.map +1 -0
  60. package/dist/components/TablePagination/TablePagination.esm.js +127 -0
  61. package/dist/components/TablePagination/TablePagination.esm.js.map +1 -0
  62. package/dist/components/Tabs/Tabs.esm.js.map +1 -1
  63. package/dist/components/Tabs/TabsIndicators.esm.js.map +1 -1
  64. package/dist/components/TagGroup/TagGroup.esm.js +62 -0
  65. package/dist/components/TagGroup/TagGroup.esm.js.map +1 -0
  66. package/dist/components/Text/Text.esm.js.map +1 -1
  67. package/dist/components/TextField/TextField.esm.js.map +1 -1
  68. package/dist/components/Tooltip/Tooltip.esm.js.map +1 -1
  69. package/dist/hooks/useBreakpoint.esm.js.map +1 -1
  70. package/dist/hooks/useIsomorphicLayoutEffect.esm.js.map +1 -1
  71. package/dist/hooks/useMediaQuery.esm.js.map +1 -1
  72. package/dist/hooks/useStyles.esm.js.map +1 -1
  73. package/dist/index.d.ts +289 -157
  74. package/dist/index.esm.js +12 -4
  75. package/dist/index.esm.js.map +1 -1
  76. package/dist/props/display.props.esm.js.map +1 -1
  77. package/dist/props/gap-props.esm.js.map +1 -1
  78. package/dist/props/height.props.esm.js.map +1 -1
  79. package/dist/props/margin.props.esm.js.map +1 -1
  80. package/dist/props/padding.props.esm.js.map +1 -1
  81. package/dist/props/position.props.esm.js.map +1 -1
  82. package/dist/props/prop-def.esm.js.map +1 -1
  83. package/dist/props/spacing.props.esm.js.map +1 -1
  84. package/dist/props/width.props.esm.js.map +1 -1
  85. package/dist/utils/componentDefinitions.esm.js +32 -22
  86. package/dist/utils/componentDefinitions.esm.js.map +1 -1
  87. package/dist/utils/extractProps.esm.js.map +1 -1
  88. package/dist/utils/isExternalLink.esm.js +16 -0
  89. package/dist/utils/isExternalLink.esm.js.map +1 -0
  90. package/package.json +3 -15
  91. package/dist/components/DataTable/DataTable.esm.js +0 -26
  92. package/dist/components/DataTable/DataTable.esm.js.map +0 -1
  93. package/dist/components/DataTable/Pagination/DataTablePagination.esm.js +0 -84
  94. package/dist/components/DataTable/Pagination/DataTablePagination.esm.js.map +0 -1
  95. package/dist/components/DataTable/Root/DataTableRoot.esm.js +0 -24
  96. package/dist/components/DataTable/Root/DataTableRoot.esm.js.map +0 -1
  97. package/dist/components/DataTable/Table/DataTableTable.esm.js +0 -64
  98. package/dist/components/DataTable/Table/DataTableTable.esm.js.map +0 -1
  99. package/dist/components/Menu/Combobox.esm.js +0 -211
  100. package/dist/components/Menu/Combobox.esm.js.map +0 -1
  101. package/dist/components/Select/Select.styles.css.esm.js +0 -7
  102. package/dist/components/Select/Select.styles.css.esm.js.map +0 -1
  103. package/dist/components/Table/Table.esm.js +0 -68
  104. package/dist/components/Table/Table.esm.js.map +0 -1
  105. package/dist/components/Table/TableCell/TableCell.esm.js +0 -13
  106. package/dist/components/Table/TableCell/TableCell.esm.js.map +0 -1
  107. package/dist/components/Table/TableCellLink/TableCellLink.esm.js +0 -28
  108. package/dist/components/Table/TableCellLink/TableCellLink.esm.js.map +0 -1
  109. package/dist/components/Table/TableCellProfile/TableCellProfile.esm.js +0 -40
  110. package/dist/components/Table/TableCellProfile/TableCellProfile.esm.js.map +0 -1
  111. package/dist/components/Table/TableCellText/TableCellText.esm.js +0 -27
  112. package/dist/components/Table/TableCellText/TableCellText.esm.js.map +0 -1
  113. package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js +0 -29
  114. package/dist/node_modules_dist/style-inject/dist/style-inject.es.esm.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"height.props.esm.js","sources":["../../src/props/height.props.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 */\nimport type { PropDef, GetPropDefTypes } from './prop-def';\n\n/** @public */\nconst heightPropDefs = {\n height: {\n type: 'string',\n className: 'bui-h',\n customProperties: ['--height'],\n responsive: true,\n },\n minHeight: {\n type: 'string',\n className: 'bui-min-h',\n customProperties: ['--min-height'],\n responsive: true,\n },\n maxHeight: {\n type: 'string',\n className: 'bui-max-h',\n customProperties: ['--max-height'],\n responsive: true,\n },\n} satisfies {\n height: PropDef<string>;\n minHeight: PropDef<string>;\n maxHeight: PropDef<string>;\n};\n\n/** @public */\ntype HeightProps = GetPropDefTypes<typeof heightPropDefs>;\n\nexport { heightPropDefs };\nexport type { HeightProps };\n"],"names":[],"mappings":"AAkBA,MAAM,cAAiB,GAAA;AAAA,EACrB,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,QAAA;AAAA,IACN,SAAW,EAAA,OAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,UAAU,CAAA;AAAA,IAC7B,UAAY,EAAA;AAAA,GACd;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,QAAA;AAAA,IACN,SAAW,EAAA,WAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,cAAc,CAAA;AAAA,IACjC,UAAY,EAAA;AAAA,GACd;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,QAAA;AAAA,IACN,SAAW,EAAA,WAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,cAAc,CAAA;AAAA,IACjC,UAAY,EAAA;AAAA;AAEhB;;;;"}
1
+ {"version":3,"file":"height.props.esm.js","sources":["../../src/props/height.props.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 */\nimport type { PropDef, GetPropDefTypes } from './prop-def';\n\n/** @public */\nconst heightPropDefs = {\n height: {\n type: 'string',\n className: 'bui-h',\n customProperties: ['--height'],\n responsive: true,\n },\n minHeight: {\n type: 'string',\n className: 'bui-min-h',\n customProperties: ['--min-height'],\n responsive: true,\n },\n maxHeight: {\n type: 'string',\n className: 'bui-max-h',\n customProperties: ['--max-height'],\n responsive: true,\n },\n} satisfies {\n height: PropDef<string>;\n minHeight: PropDef<string>;\n maxHeight: PropDef<string>;\n};\n\n/** @public */\ntype HeightProps = GetPropDefTypes<typeof heightPropDefs>;\n\nexport { heightPropDefs };\nexport type { HeightProps };\n"],"names":[],"mappings":"AAkBA,MAAM,cAAA,GAAiB;AAAA,EACrB,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,EAAW,OAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,UAAU,CAAA;AAAA,IAC7B,UAAA,EAAY;AAAA,GACd;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,EAAW,WAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,cAAc,CAAA;AAAA,IACjC,UAAA,EAAY;AAAA,GACd;AAAA,EACA,SAAA,EAAW;AAAA,IACT,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,EAAW,WAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,cAAc,CAAA;AAAA,IACjC,UAAA,EAAY;AAAA;AAEhB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"margin.props.esm.js","sources":["../../src/props/margin.props.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 */\nimport type { PropDef, GetPropDefTypes } from './prop-def';\n\n/** @public */\nconst marginPropDefs = (spacingValues: string[]) =>\n ({\n m: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-m',\n customProperties: ['--m'],\n responsive: true,\n },\n mx: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-mx',\n customProperties: ['--mx'],\n responsive: true,\n },\n my: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-my',\n customProperties: ['--my'],\n responsive: true,\n },\n mt: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-mt',\n customProperties: ['--mt'],\n responsive: true,\n },\n mr: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-mr',\n customProperties: ['--mr'],\n responsive: true,\n },\n mb: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-mb',\n customProperties: ['--mb'],\n responsive: true,\n },\n ml: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-ml',\n customProperties: ['--ml'],\n responsive: true,\n },\n } satisfies {\n m: PropDef<(typeof spacingValues)[number]>;\n mx: PropDef<(typeof spacingValues)[number]>;\n my: PropDef<(typeof spacingValues)[number]>;\n mt: PropDef<(typeof spacingValues)[number]>;\n mr: PropDef<(typeof spacingValues)[number]>;\n mb: PropDef<(typeof spacingValues)[number]>;\n ml: PropDef<(typeof spacingValues)[number]>;\n });\n\n/** @public */\ntype MarginProps = GetPropDefTypes<typeof marginPropDefs>;\n\nexport { marginPropDefs };\nexport type { MarginProps };\n"],"names":[],"mappings":"AAkBM,MAAA,cAAA,GAAiB,CAAC,aACrB,MAAA;AAAA,EACC,CAAG,EAAA;AAAA,IACD,IAAM,EAAA,eAAA;AAAA,IACN,MAAQ,EAAA,aAAA;AAAA,IACR,SAAW,EAAA,OAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,KAAK,CAAA;AAAA,IACxB,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,MAAQ,EAAA,aAAA;AAAA,IACR,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,MAAQ,EAAA,aAAA;AAAA,IACR,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,MAAQ,EAAA,aAAA;AAAA,IACR,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,MAAQ,EAAA,aAAA;AAAA,IACR,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,MAAQ,EAAA,aAAA;AAAA,IACR,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,MAAQ,EAAA,aAAA;AAAA,IACR,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAY,EAAA;AAAA;AAEhB,CAAA;;;;"}
1
+ {"version":3,"file":"margin.props.esm.js","sources":["../../src/props/margin.props.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 */\nimport type { PropDef, GetPropDefTypes } from './prop-def';\n\n/** @public */\nconst marginPropDefs = (spacingValues: string[]) =>\n ({\n m: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-m',\n customProperties: ['--m'],\n responsive: true,\n },\n mx: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-mx',\n customProperties: ['--mx'],\n responsive: true,\n },\n my: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-my',\n customProperties: ['--my'],\n responsive: true,\n },\n mt: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-mt',\n customProperties: ['--mt'],\n responsive: true,\n },\n mr: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-mr',\n customProperties: ['--mr'],\n responsive: true,\n },\n mb: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-mb',\n customProperties: ['--mb'],\n responsive: true,\n },\n ml: {\n type: 'enum | string',\n values: spacingValues,\n className: 'bui-ml',\n customProperties: ['--ml'],\n responsive: true,\n },\n } satisfies {\n m: PropDef<(typeof spacingValues)[number]>;\n mx: PropDef<(typeof spacingValues)[number]>;\n my: PropDef<(typeof spacingValues)[number]>;\n mt: PropDef<(typeof spacingValues)[number]>;\n mr: PropDef<(typeof spacingValues)[number]>;\n mb: PropDef<(typeof spacingValues)[number]>;\n ml: PropDef<(typeof spacingValues)[number]>;\n });\n\n/** @public */\ntype MarginProps = GetPropDefTypes<typeof marginPropDefs>;\n\nexport { marginPropDefs };\nexport type { MarginProps };\n"],"names":[],"mappings":"AAkBA,MAAM,cAAA,GAAiB,CAAC,aAAA,MACrB;AAAA,EACC,CAAA,EAAG;AAAA,IACD,IAAA,EAAM,eAAA;AAAA,IACN,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,OAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,KAAK,CAAA;AAAA,IACxB,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,UAAA,EAAY;AAAA;AAEhB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"padding.props.esm.js","sources":["../../src/props/padding.props.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 */\nimport { PropDef } from './prop-def';\nimport { GetPropDefTypes } from './prop-def';\n\n/** @public */\nconst paddingPropDefs = (spacingValues: string[]) =>\n ({\n p: {\n type: 'enum | string',\n className: 'bui-p',\n customProperties: ['--p'],\n values: spacingValues,\n responsive: true,\n },\n px: {\n type: 'enum | string',\n className: 'bui-px',\n customProperties: ['--px'],\n values: spacingValues,\n responsive: true,\n },\n py: {\n type: 'enum | string',\n className: 'bui-py',\n customProperties: ['--py'],\n values: spacingValues,\n responsive: true,\n },\n pt: {\n type: 'enum | string',\n className: 'bui-pt',\n customProperties: ['--pt'],\n values: spacingValues,\n responsive: true,\n },\n pr: {\n type: 'enum | string',\n className: 'bui-pr',\n customProperties: ['--pr'],\n values: spacingValues,\n responsive: true,\n },\n pb: {\n type: 'enum | string',\n className: 'bui-pb',\n customProperties: ['--pb'],\n values: spacingValues,\n responsive: true,\n },\n pl: {\n type: 'enum | string',\n className: 'bui-pl',\n customProperties: ['--pl'],\n values: spacingValues,\n responsive: true,\n },\n } satisfies {\n p: PropDef<(typeof spacingValues)[number]>;\n px: PropDef<(typeof spacingValues)[number]>;\n py: PropDef<(typeof spacingValues)[number]>;\n pt: PropDef<(typeof spacingValues)[number]>;\n pr: PropDef<(typeof spacingValues)[number]>;\n pb: PropDef<(typeof spacingValues)[number]>;\n pl: PropDef<(typeof spacingValues)[number]>;\n });\n\n/** @public */\ntype PaddingProps = GetPropDefTypes<typeof paddingPropDefs>;\n\nexport { paddingPropDefs };\nexport type { PaddingProps };\n"],"names":[],"mappings":"AAmBM,MAAA,eAAA,GAAkB,CAAC,aACtB,MAAA;AAAA,EACC,CAAG,EAAA;AAAA,IACD,IAAM,EAAA,eAAA;AAAA,IACN,SAAW,EAAA,OAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,KAAK,CAAA;AAAA,IACxB,MAAQ,EAAA,aAAA;AAAA,IACR,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAQ,EAAA,aAAA;AAAA,IACR,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAQ,EAAA,aAAA;AAAA,IACR,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAQ,EAAA,aAAA;AAAA,IACR,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAQ,EAAA,aAAA;AAAA,IACR,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAQ,EAAA,aAAA;AAAA,IACR,UAAY,EAAA;AAAA,GACd;AAAA,EACA,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,eAAA;AAAA,IACN,SAAW,EAAA,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAQ,EAAA,aAAA;AAAA,IACR,UAAY,EAAA;AAAA;AAEhB,CAAA;;;;"}
1
+ {"version":3,"file":"padding.props.esm.js","sources":["../../src/props/padding.props.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 */\nimport { PropDef } from './prop-def';\nimport { GetPropDefTypes } from './prop-def';\n\n/** @public */\nconst paddingPropDefs = (spacingValues: string[]) =>\n ({\n p: {\n type: 'enum | string',\n className: 'bui-p',\n customProperties: ['--p'],\n values: spacingValues,\n responsive: true,\n },\n px: {\n type: 'enum | string',\n className: 'bui-px',\n customProperties: ['--px'],\n values: spacingValues,\n responsive: true,\n },\n py: {\n type: 'enum | string',\n className: 'bui-py',\n customProperties: ['--py'],\n values: spacingValues,\n responsive: true,\n },\n pt: {\n type: 'enum | string',\n className: 'bui-pt',\n customProperties: ['--pt'],\n values: spacingValues,\n responsive: true,\n },\n pr: {\n type: 'enum | string',\n className: 'bui-pr',\n customProperties: ['--pr'],\n values: spacingValues,\n responsive: true,\n },\n pb: {\n type: 'enum | string',\n className: 'bui-pb',\n customProperties: ['--pb'],\n values: spacingValues,\n responsive: true,\n },\n pl: {\n type: 'enum | string',\n className: 'bui-pl',\n customProperties: ['--pl'],\n values: spacingValues,\n responsive: true,\n },\n } satisfies {\n p: PropDef<(typeof spacingValues)[number]>;\n px: PropDef<(typeof spacingValues)[number]>;\n py: PropDef<(typeof spacingValues)[number]>;\n pt: PropDef<(typeof spacingValues)[number]>;\n pr: PropDef<(typeof spacingValues)[number]>;\n pb: PropDef<(typeof spacingValues)[number]>;\n pl: PropDef<(typeof spacingValues)[number]>;\n });\n\n/** @public */\ntype PaddingProps = GetPropDefTypes<typeof paddingPropDefs>;\n\nexport { paddingPropDefs };\nexport type { PaddingProps };\n"],"names":[],"mappings":"AAmBA,MAAM,eAAA,GAAkB,CAAC,aAAA,MACtB;AAAA,EACC,CAAA,EAAG;AAAA,IACD,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,OAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,KAAK,CAAA;AAAA,IACxB,MAAA,EAAQ,aAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAA,EAAQ,aAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAA,EAAQ,aAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAA,EAAQ,aAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAA,EAAQ,aAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAA,EAAQ,aAAA;AAAA,IACR,UAAA,EAAY;AAAA,GACd;AAAA,EACA,EAAA,EAAI;AAAA,IACF,IAAA,EAAM,eAAA;AAAA,IACN,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,MAAM,CAAA;AAAA,IACzB,MAAA,EAAQ,aAAA;AAAA,IACR,UAAA,EAAY;AAAA;AAEhB,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"position.props.esm.js","sources":["../../src/props/position.props.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 */\nimport type { PropDef, GetPropDefTypes } from './prop-def';\n\n/** @public */\nconst positionValues = [\n 'static',\n 'relative',\n 'absolute',\n 'fixed',\n 'sticky',\n] as const;\n\n/** @public */\nconst positionPropDefs = {\n position: {\n type: 'enum',\n className: 'bui-position',\n values: positionValues,\n responsive: true,\n },\n} satisfies {\n position: PropDef<(typeof positionValues)[number]>;\n};\n\n// Use all of the imported prop defs to ensure that JSDoc works\n/** @public */\ntype PositionProps = GetPropDefTypes<typeof positionPropDefs>;\n\nexport { positionPropDefs };\nexport type { PositionProps };\n"],"names":[],"mappings":"AAkBA,MAAM,cAAiB,GAAA;AAAA,EACrB,QAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA;AAGA,MAAM,gBAAmB,GAAA;AAAA,EACvB,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,SAAW,EAAA,cAAA;AAAA,IACX,MAAQ,EAAA,cAAA;AAAA,IACR,UAAY,EAAA;AAAA;AAEhB;;;;"}
1
+ {"version":3,"file":"position.props.esm.js","sources":["../../src/props/position.props.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 */\nimport type { PropDef, GetPropDefTypes } from './prop-def';\n\n/** @public */\nconst positionValues = [\n 'static',\n 'relative',\n 'absolute',\n 'fixed',\n 'sticky',\n] as const;\n\n/** @public */\nconst positionPropDefs = {\n position: {\n type: 'enum',\n className: 'bui-position',\n values: positionValues,\n responsive: true,\n },\n} satisfies {\n position: PropDef<(typeof positionValues)[number]>;\n};\n\n// Use all of the imported prop defs to ensure that JSDoc works\n/** @public */\ntype PositionProps = GetPropDefTypes<typeof positionPropDefs>;\n\nexport { positionPropDefs };\nexport type { PositionProps };\n"],"names":[],"mappings":"AAkBA,MAAM,cAAA,GAAiB;AAAA,EACrB,QAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA;AAGA,MAAM,gBAAA,GAAmB;AAAA,EACvB,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,MAAA;AAAA,IACN,SAAA,EAAW,cAAA;AAAA,IACX,MAAA,EAAQ,cAAA;AAAA,IACR,UAAA,EAAY;AAAA;AAEhB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"prop-def.esm.js","sources":["../../src/props/prop-def.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 */\nimport type { ReactNode } from 'react';\nimport type { Breakpoint, Responsive } from '../types';\n\n/** @public */\nconst breakpoints = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'] as Breakpoint[];\n\n/** @public */\nexport type BooleanPropDef = {\n type: 'boolean';\n default?: boolean;\n required?: boolean;\n className?: string;\n};\n\n/** @public */\nexport type StringPropDef = {\n type: 'string';\n default?: string;\n required?: boolean;\n};\n\n/** @public */\nexport type ReactNodePropDef = {\n type: 'ReactNode';\n default?: ReactNode;\n required?: boolean;\n};\n\n/** @public */\nexport type EnumPropDef<T> = {\n type: 'enum';\n values: readonly T[];\n default?: T;\n required?: boolean;\n};\n\n/** @public */\nexport type EnumOrStringPropDef<T> = {\n type: 'enum | string';\n values: readonly T[];\n default?: T | string;\n required?: boolean;\n};\n\n/** @public */\nexport type NonStylingPropDef = {\n className?: never;\n customProperties?: never;\n parseValue?: never;\n};\n\n/** @public */\nexport type StylingPropDef = {\n className: string;\n parseValue?: (value: string) => string | undefined;\n};\n\n/** @public */\nexport type ArbitraryStylingPropDef = {\n className: string;\n customProperties: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n};\n\n/** @public */\nexport type RegularPropDef<T> =\n | ReactNodePropDef\n | BooleanPropDef\n | (StringPropDef & ArbitraryStylingPropDef)\n | (StringPropDef & NonStylingPropDef)\n | (EnumPropDef<T> & StylingPropDef)\n | (EnumPropDef<T> & NonStylingPropDef)\n | (EnumOrStringPropDef<T> & ArbitraryStylingPropDef)\n | (EnumOrStringPropDef<T> & NonStylingPropDef);\n\n/** @public */\ntype ResponsivePropDef<T = any> = RegularPropDef<T> & {\n responsive: true;\n};\n\n/** @public */\ntype PropDef<T = any> = RegularPropDef<T> | ResponsivePropDef<T>;\n\n/** @public */\nexport type GetPropDefType<Def> = Def extends BooleanPropDef\n ? Def extends ResponsivePropDef\n ? Responsive<boolean>\n : boolean\n : Def extends StringPropDef\n ? Def extends ResponsivePropDef\n ? Responsive<string>\n : string\n : Def extends ReactNodePropDef\n ? Def extends ResponsivePropDef\n ? Responsive<ReactNode>\n : ReactNode\n : Def extends EnumOrStringPropDef<infer Type>\n ? Def extends ResponsivePropDef<infer Type extends string>\n ? Responsive<string | Type>\n : string | Type\n : Def extends EnumPropDef<infer Type>\n ? Def extends ResponsivePropDef<infer Type>\n ? Responsive<Type>\n : Type\n : never;\n\n/** @public */\ntype GetPropDefTypes<P> = {\n [K in keyof P]?: GetPropDefType<P[K]>;\n};\n\nexport { breakpoints };\nexport type {\n PropDef,\n GetPropDefTypes,\n ResponsivePropDef,\n Breakpoint,\n Responsive,\n};\n"],"names":[],"mappings":"AAmBA,MAAM,cAAc,CAAC,SAAA,EAAW,MAAM,IAAM,EAAA,IAAA,EAAM,MAAM,IAAI;;;;"}
1
+ {"version":3,"file":"prop-def.esm.js","sources":["../../src/props/prop-def.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 */\nimport type { ReactNode } from 'react';\nimport type { Breakpoint, Responsive } from '../types';\n\n/** @public */\nconst breakpoints = ['initial', 'xs', 'sm', 'md', 'lg', 'xl'] as Breakpoint[];\n\n/** @public */\nexport type BooleanPropDef = {\n type: 'boolean';\n default?: boolean;\n required?: boolean;\n className?: string;\n};\n\n/** @public */\nexport type StringPropDef = {\n type: 'string';\n default?: string;\n required?: boolean;\n};\n\n/** @public */\nexport type ReactNodePropDef = {\n type: 'ReactNode';\n default?: ReactNode;\n required?: boolean;\n};\n\n/** @public */\nexport type EnumPropDef<T> = {\n type: 'enum';\n values: readonly T[];\n default?: T;\n required?: boolean;\n};\n\n/** @public */\nexport type EnumOrStringPropDef<T> = {\n type: 'enum | string';\n values: readonly T[];\n default?: T | string;\n required?: boolean;\n};\n\n/** @public */\nexport type NonStylingPropDef = {\n className?: never;\n customProperties?: never;\n parseValue?: never;\n};\n\n/** @public */\nexport type StylingPropDef = {\n className: string;\n parseValue?: (value: string) => string | undefined;\n};\n\n/** @public */\nexport type ArbitraryStylingPropDef = {\n className: string;\n customProperties: `--${string}`[];\n parseValue?: (value: string) => string | undefined;\n};\n\n/** @public */\nexport type RegularPropDef<T> =\n | ReactNodePropDef\n | BooleanPropDef\n | (StringPropDef & ArbitraryStylingPropDef)\n | (StringPropDef & NonStylingPropDef)\n | (EnumPropDef<T> & StylingPropDef)\n | (EnumPropDef<T> & NonStylingPropDef)\n | (EnumOrStringPropDef<T> & ArbitraryStylingPropDef)\n | (EnumOrStringPropDef<T> & NonStylingPropDef);\n\n/** @public */\ntype ResponsivePropDef<T = any> = RegularPropDef<T> & {\n responsive: true;\n};\n\n/** @public */\ntype PropDef<T = any> = RegularPropDef<T> | ResponsivePropDef<T>;\n\n/** @public */\nexport type GetPropDefType<Def> = Def extends BooleanPropDef\n ? Def extends ResponsivePropDef\n ? Responsive<boolean>\n : boolean\n : Def extends StringPropDef\n ? Def extends ResponsivePropDef\n ? Responsive<string>\n : string\n : Def extends ReactNodePropDef\n ? Def extends ResponsivePropDef\n ? Responsive<ReactNode>\n : ReactNode\n : Def extends EnumOrStringPropDef<infer Type>\n ? Def extends ResponsivePropDef<infer Type extends string>\n ? Responsive<string | Type>\n : string | Type\n : Def extends EnumPropDef<infer Type>\n ? Def extends ResponsivePropDef<infer Type>\n ? Responsive<Type>\n : Type\n : never;\n\n/** @public */\ntype GetPropDefTypes<P> = {\n [K in keyof P]?: GetPropDefType<P[K]>;\n};\n\nexport { breakpoints };\nexport type {\n PropDef,\n GetPropDefTypes,\n ResponsivePropDef,\n Breakpoint,\n Responsive,\n};\n"],"names":[],"mappings":"AAmBA,MAAM,cAAc,CAAC,SAAA,EAAW,MAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"spacing.props.esm.js","sources":["../../src/props/spacing.props.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 */\nimport { paddingPropDefs } from './padding.props';\nimport { marginPropDefs } from './margin.props';\n\nexport const spacingValues = [\n '0.5',\n '1',\n '1.5',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '10',\n '11',\n '12',\n '13',\n '14',\n];\n\nexport const spacingPropDefs = {\n ...paddingPropDefs(spacingValues),\n ...marginPropDefs(spacingValues),\n};\n"],"names":[],"mappings":";;;AAkBO,MAAM,aAAgB,GAAA;AAAA,EAC3B,KAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF;AAEO,MAAM,eAAkB,GAAA;AAAA,EAC7B,GAAG,gBAAgB,aAAa,CAAA;AAAA,EAChC,GAAG,eAAe,aAAa;AACjC;;;;"}
1
+ {"version":3,"file":"spacing.props.esm.js","sources":["../../src/props/spacing.props.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 */\nimport { paddingPropDefs } from './padding.props';\nimport { marginPropDefs } from './margin.props';\n\nexport const spacingValues = [\n '0.5',\n '1',\n '1.5',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '10',\n '11',\n '12',\n '13',\n '14',\n];\n\nexport const spacingPropDefs = {\n ...paddingPropDefs(spacingValues),\n ...marginPropDefs(spacingValues),\n};\n"],"names":[],"mappings":";;;AAkBO,MAAM,aAAA,GAAgB;AAAA,EAC3B,KAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA;AACF;AAEO,MAAM,eAAA,GAAkB;AAAA,EAC7B,GAAG,gBAAgB,aAAa,CAAA;AAAA,EAChC,GAAG,eAAe,aAAa;AACjC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"width.props.esm.js","sources":["../../src/props/width.props.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 */\nimport type { GetPropDefTypes, PropDef } from './prop-def';\n\n/** @public */\nconst widthPropDefs = {\n width: {\n type: 'string',\n className: 'bui-w',\n customProperties: ['--width'],\n responsive: true,\n },\n minWidth: {\n type: 'string',\n className: 'bui-min-w',\n customProperties: ['--min-width'],\n responsive: true,\n },\n maxWidth: {\n type: 'string',\n className: 'bui-max-w',\n customProperties: ['--max-width'],\n responsive: true,\n },\n} satisfies {\n width: PropDef<string>;\n minWidth: PropDef<string>;\n maxWidth: PropDef<string>;\n};\n\n/** @public */\ntype WidthProps = GetPropDefTypes<typeof widthPropDefs>;\n\nexport { widthPropDefs };\nexport type { WidthProps };\n"],"names":[],"mappings":"AAkBA,MAAM,aAAgB,GAAA;AAAA,EACpB,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,QAAA;AAAA,IACN,SAAW,EAAA,OAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,SAAS,CAAA;AAAA,IAC5B,UAAY,EAAA;AAAA,GACd;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,QAAA;AAAA,IACN,SAAW,EAAA,WAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,aAAa,CAAA;AAAA,IAChC,UAAY,EAAA;AAAA,GACd;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,QAAA;AAAA,IACN,SAAW,EAAA,WAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,aAAa,CAAA;AAAA,IAChC,UAAY,EAAA;AAAA;AAEhB;;;;"}
1
+ {"version":3,"file":"width.props.esm.js","sources":["../../src/props/width.props.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 */\nimport type { GetPropDefTypes, PropDef } from './prop-def';\n\n/** @public */\nconst widthPropDefs = {\n width: {\n type: 'string',\n className: 'bui-w',\n customProperties: ['--width'],\n responsive: true,\n },\n minWidth: {\n type: 'string',\n className: 'bui-min-w',\n customProperties: ['--min-width'],\n responsive: true,\n },\n maxWidth: {\n type: 'string',\n className: 'bui-max-w',\n customProperties: ['--max-width'],\n responsive: true,\n },\n} satisfies {\n width: PropDef<string>;\n minWidth: PropDef<string>;\n maxWidth: PropDef<string>;\n};\n\n/** @public */\ntype WidthProps = GetPropDefTypes<typeof widthPropDefs>;\n\nexport { widthPropDefs };\nexport type { WidthProps };\n"],"names":[],"mappings":"AAkBA,MAAM,aAAA,GAAgB;AAAA,EACpB,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,EAAW,OAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,SAAS,CAAA;AAAA,IAC5B,UAAA,EAAY;AAAA,GACd;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,EAAW,WAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,aAAa,CAAA;AAAA,IAChC,UAAA,EAAY;AAAA,GACd;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,EAAW,WAAA;AAAA,IACX,gBAAA,EAAkB,CAAC,aAAa,CAAA;AAAA,IAChC,UAAA,EAAY;AAAA;AAEhB;;;;"}
@@ -90,10 +90,6 @@ const componentDefinitions = {
90
90
  toolbarControls: "bui-HeaderToolbarControls",
91
91
  toolbarIcon: "bui-HeaderToolbarIcon",
92
92
  toolbarName: "bui-HeaderToolbarName",
93
- breadcrumbs: "bui-HeaderBreadcrumbs",
94
- breadcrumb: "bui-HeaderBreadcrumb",
95
- breadcrumbLink: "bui-HeaderBreadcrumbLink",
96
- breadcrumbSeparator: "bui-HeaderBreadcrumbSeparator",
97
93
  tabsWrapper: "bui-HeaderTabsWrapper"
98
94
  }
99
95
  },
@@ -101,6 +97,7 @@ const componentDefinitions = {
101
97
  classNames: {
102
98
  root: "bui-HeaderPage",
103
99
  content: "bui-HeaderPageContent",
100
+ breadcrumbs: "bui-HeaderPageBreadcrumbs",
104
101
  tabsWrapper: "bui-HeaderPageTabsWrapper",
105
102
  controls: "bui-HeaderPageControls"
106
103
  }
@@ -138,21 +135,21 @@ const componentDefinitions = {
138
135
  },
139
136
  Menu: {
140
137
  classNames: {
141
- trigger: "bui-MenuTrigger",
142
- backdrop: "bui-MenuBackdrop",
143
- positioner: "bui-MenuPositioner",
144
- popup: "bui-MenuPopup",
145
- arrow: "bui-MenuArrow",
138
+ root: "bui-Menu",
139
+ popover: "bui-MenuPopover",
140
+ content: "bui-MenuContent",
141
+ section: "bui-MenuSection",
142
+ sectionHeader: "bui-MenuSectionHeader",
146
143
  item: "bui-MenuItem",
147
- group: "bui-MenuGroup",
148
- groupLabel: "bui-MenuGroupLabel",
149
- radioGroup: "bui-MenuRadioGroup",
150
- radioItem: "bui-MenuRadioItem",
151
- radioItemIndicator: "bui-MenuRadioItemIndicator",
152
- checkboxItem: "bui-MenuCheckboxItem",
153
- checkboxItemIndicator: "bui-MenuCheckboxItemIndicator",
154
- submenuTrigger: "bui-MenuSubmenuTrigger",
155
- separator: "bui-MenuSeparator"
144
+ itemListBox: "bui-MenuItemListBox",
145
+ itemListBoxCheck: "bui-MenuItemListBoxCheck",
146
+ itemContent: "bui-MenuItemContent",
147
+ itemArrow: "bui-MenuItemArrow",
148
+ separator: "bui-MenuSeparator",
149
+ searchField: "bui-MenuSearchField",
150
+ searchFieldInput: "bui-MenuSearchFieldInput",
151
+ searchFieldClear: "bui-MenuSearchFieldClear",
152
+ emptyState: "bui-MenuEmptyState"
156
153
  }
157
154
  },
158
155
  Popover: {
@@ -179,6 +176,9 @@ const componentDefinitions = {
179
176
  classNames: {
180
177
  root: "bui-SearchField",
181
178
  clear: "bui-InputClear"
179
+ },
180
+ dataAttributes: {
181
+ startCollapsed: [true, false]
182
182
  }
183
183
  },
184
184
  Select: {
@@ -209,16 +209,17 @@ const componentDefinitions = {
209
209
  },
210
210
  Table: {
211
211
  classNames: {
212
- root: "bui-TableRoot",
212
+ table: "bui-Table",
213
213
  header: "bui-TableHeader",
214
214
  body: "bui-TableBody",
215
215
  row: "bui-TableRow",
216
216
  head: "bui-TableHead",
217
+ headSortButton: "bui-TableHeadSortButton",
217
218
  caption: "bui-TableCaption",
218
219
  cell: "bui-TableCell",
219
- cellText: "bui-TableCellText",
220
- cellLink: "bui-TableCellLink",
221
- cellProfile: "bui-TableCellProfile",
220
+ cellContentWrapper: "bui-TableCellContentWrapper",
221
+ cellContent: "bui-TableCellContent",
222
+ cellIcon: "bui-TableCellIcon",
222
223
  cellProfileAvatar: "bui-TableCellProfileAvatar",
223
224
  cellProfileAvatarImage: "bui-TableCellProfileAvatarImage",
224
225
  cellProfileAvatarFallback: "bui-TableCellProfileAvatarFallback",
@@ -237,6 +238,15 @@ const componentDefinitions = {
237
238
  panel: "bui-TabPanel"
238
239
  }
239
240
  },
241
+ TagGroup: {
242
+ classNames: {
243
+ group: "bui-TagGroup",
244
+ list: "bui-TagList",
245
+ tag: "bui-Tag",
246
+ tagIcon: "bui-TagIcon",
247
+ tagRemoveButton: "bui-TagRemoveButton"
248
+ }
249
+ },
240
250
  Text: {
241
251
  classNames: {
242
252
  root: "bui-Text"
@@ -1 +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', 'tertiary'] 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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"}
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', 'tertiary'] 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 tabsWrapper: 'bui-HeaderTabsWrapper',\n },\n },\n HeaderPage: {\n classNames: {\n root: 'bui-HeaderPage',\n content: 'bui-HeaderPageContent',\n breadcrumbs: 'bui-HeaderPageBreadcrumbs',\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 root: 'bui-Menu',\n popover: 'bui-MenuPopover',\n content: 'bui-MenuContent',\n section: 'bui-MenuSection',\n sectionHeader: 'bui-MenuSectionHeader',\n item: 'bui-MenuItem',\n itemListBox: 'bui-MenuItemListBox',\n itemListBoxCheck: 'bui-MenuItemListBoxCheck',\n itemContent: 'bui-MenuItemContent',\n itemArrow: 'bui-MenuItemArrow',\n separator: 'bui-MenuSeparator',\n searchField: 'bui-MenuSearchField',\n searchFieldInput: 'bui-MenuSearchFieldInput',\n searchFieldClear: 'bui-MenuSearchFieldClear',\n emptyState: 'bui-MenuEmptyState',\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 dataAttributes: {\n startCollapsed: [true, false] as const,\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 table: 'bui-Table',\n header: 'bui-TableHeader',\n body: 'bui-TableBody',\n row: 'bui-TableRow',\n head: 'bui-TableHead',\n headSortButton: 'bui-TableHeadSortButton',\n caption: 'bui-TableCaption',\n cell: 'bui-TableCell',\n cellContentWrapper: 'bui-TableCellContentWrapper',\n cellContent: 'bui-TableCellContent',\n cellIcon: 'bui-TableCellIcon',\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 TagGroup: {\n classNames: {\n group: 'bui-TagGroup',\n list: 'bui-TagList',\n tag: 'bui-Tag',\n tagIcon: 'bui-TagIcon',\n tagRemoveButton: 'bui-TagRemoveButton',\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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"}
@@ -1 +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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"}
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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"}
@@ -0,0 +1,16 @@
1
+ function isExternalLink(href) {
2
+ if (!href) return false;
3
+ if (href.startsWith("http://") || href.startsWith("https://")) {
4
+ return true;
5
+ }
6
+ if (href.startsWith("//")) {
7
+ return true;
8
+ }
9
+ if (href.startsWith("mailto:") || href.startsWith("tel:")) {
10
+ return true;
11
+ }
12
+ return false;
13
+ }
14
+
15
+ export { isExternalLink };
16
+ //# sourceMappingURL=isExternalLink.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isExternalLink.esm.js","sources":["../../src/utils/isExternalLink.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\n/**\n * Determines if a link is external.\n * @param href - The href of the link.\n * @returns True if the link is external, false otherwise.\n * @internal\n */\nexport function isExternalLink(href?: string): boolean {\n if (!href) return false;\n\n // Check if it's an absolute URL with protocol\n if (href.startsWith('http://') || href.startsWith('https://')) {\n return true;\n }\n\n // Check if it's a protocol-relative URL\n if (href.startsWith('//')) {\n return true;\n }\n\n // Check if it's a mailto: or tel: link\n if (href.startsWith('mailto:') || href.startsWith('tel:')) {\n return true;\n }\n\n return false;\n}\n"],"names":[],"mappings":"AAsBO,SAAS,eAAe,IAAA,EAAwB;AACrD,EAAA,IAAI,CAAC,MAAM,OAAO,KAAA;AAGlB,EAAA,IAAI,KAAK,UAAA,CAAW,SAAS,KAAK,IAAA,CAAK,UAAA,CAAW,UAAU,CAAA,EAAG;AAC7D,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,IAAI,IAAA,CAAK,UAAA,CAAW,IAAI,CAAA,EAAG;AACzB,IAAA,OAAO,IAAA;AAAA,EACT;AAGA,EAAA,IAAI,KAAK,UAAA,CAAW,SAAS,KAAK,IAAA,CAAK,UAAA,CAAW,MAAM,CAAA,EAAG;AACzD,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA;AACT;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/ui",
3
- "version": "0.7.0-next.2",
3
+ "version": "0.7.0",
4
4
  "backstage": {
5
5
  "role": "web-library"
6
6
  },
@@ -28,7 +28,6 @@
28
28
  ],
29
29
  "scripts": {
30
30
  "build": "yarn build:app && yarn build:css",
31
- "build-storybook": "storybook build",
32
31
  "build:app": "backstage-cli package build",
33
32
  "build:css": "node scripts/build-css.mjs",
34
33
  "build:css:watch": "node scripts/build-css.mjs --watch",
@@ -36,33 +35,22 @@
36
35
  "lint": "backstage-cli package lint",
37
36
  "prepack": "backstage-cli package prepack",
38
37
  "postpack": "backstage-cli package postpack",
39
- "start": "concurrently \"yarn build:css:watch\" \"yarn storybook\"",
40
- "storybook": "storybook dev -p 6006",
41
38
  "test": "backstage-cli package test"
42
39
  },
43
40
  "dependencies": {
44
41
  "@base-ui-components/react": "1.0.0-alpha.7",
45
- "@gsap/react": "^2.1.2",
46
42
  "@remixicon/react": "^4.6.0",
43
+ "@storybook/test": "^8.6.12",
47
44
  "@tanstack/react-table": "^8.21.3",
48
45
  "clsx": "^2.1.1",
49
- "gsap": "^3.13.0",
50
46
  "react-aria-components": "^1.10.1"
51
47
  },
52
48
  "devDependencies": {
53
- "@backstage/cli": "0.34.0-next.1",
54
- "@storybook/addon-essentials": "^8.6.12",
55
- "@storybook/addon-interactions": "^8.6.12",
56
- "@storybook/addon-styling-webpack": "^1.0.1",
57
- "@storybook/addon-webpack5-compiler-swc": "^3.0.0",
58
- "@storybook/blocks": "^8.6.12",
49
+ "@backstage/cli": "^0.34.0",
59
50
  "@storybook/react": "^8.6.12",
60
- "@storybook/react-webpack5": "^8.6.12",
61
- "@storybook/test": "^8.6.12",
62
51
  "@types/react": "^18.0.0",
63
52
  "@types/react-dom": "^18.0.0",
64
53
  "chalk": "^5.4.1",
65
- "concurrently": "^9.2.0",
66
54
  "eslint-plugin-storybook": "^0.12.0",
67
55
  "glob": "^11.0.1",
68
56
  "globals": "^15.11.0",
@@ -1,26 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
3
- import { Table } from '../Table/Table.esm.js';
4
- import { DataTableRoot } from './Root/DataTableRoot.esm.js';
5
- import { DataTablePagination } from './Pagination/DataTablePagination.esm.js';
6
- import { DataTableTable } from './Table/DataTableTable.esm.js';
7
-
8
- const TableRoot = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Table.Root, { ref, ...props }));
9
- TableRoot.displayName = Table.Root.displayName;
10
- const DataTable = {
11
- Root: DataTableRoot,
12
- Pagination: DataTablePagination,
13
- Table: DataTableTable,
14
- TableRoot,
15
- TableHeader: Table.Header,
16
- TableBody: Table.Body,
17
- TableRow: Table.Row,
18
- TableCell: Table.Cell,
19
- TableCellText: Table.CellText,
20
- TableCellLink: Table.CellLink,
21
- TableCellProfile: Table.CellProfile,
22
- TableHead: Table.Head
23
- };
24
-
25
- export { DataTable };
26
- //# sourceMappingURL=DataTable.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataTable.esm.js","sources":["../../../src/components/DataTable/DataTable.tsx"],"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 { forwardRef } from 'react';\nimport { Table } from '../Table';\nimport { DataTableRoot } from './Root/DataTableRoot';\nimport { DataTablePagination } from './Pagination/DataTablePagination';\nimport { Table as TanstackTable } from '@tanstack/react-table';\nimport { DataTableTable } from './Table/DataTableTable';\n\nconst TableRoot = forwardRef<\n React.ElementRef<typeof Table.Root>,\n React.ComponentPropsWithoutRef<typeof Table.Root>\n>(({ className, ...props }, ref) => <Table.Root ref={ref} {...props} />);\nTableRoot.displayName = Table.Root.displayName;\n\n/**\n * DataTable component for displaying tabular data with pagination\n * @public\n */\nexport const DataTable = {\n Root: DataTableRoot as <TData>(\n props: {\n table: TanstackTable<TData>;\n } & React.HTMLAttributes<HTMLDivElement>,\n ) => JSX.Element,\n Pagination: DataTablePagination,\n Table: DataTableTable,\n TableRoot: TableRoot,\n TableHeader: Table.Header,\n TableBody: Table.Body,\n TableRow: Table.Row,\n TableCell: Table.Cell,\n TableCellText: Table.CellText,\n TableCellLink: Table.CellLink,\n TableCellProfile: Table.CellProfile,\n TableHead: Table.Head,\n};\n"],"names":[],"mappings":";;;;;;;AAuBA,MAAM,YAAY,UAGhB,CAAA,CAAC,EAAE,SAAA,EAAW,GAAG,KAAM,EAAA,EAAG,GAAQ,qBAAA,GAAA,CAAC,MAAM,IAAN,EAAA,EAAW,GAAW,EAAA,GAAG,OAAO,CAAE,CAAA;AACvE,SAAU,CAAA,WAAA,GAAc,MAAM,IAAK,CAAA,WAAA;AAM5B,MAAM,SAAY,GAAA;AAAA,EACvB,IAAM,EAAA,aAAA;AAAA,EAKN,UAAY,EAAA,mBAAA;AAAA,EACZ,KAAO,EAAA,cAAA;AAAA,EACP,SAAA;AAAA,EACA,aAAa,KAAM,CAAA,MAAA;AAAA,EACnB,WAAW,KAAM,CAAA,IAAA;AAAA,EACjB,UAAU,KAAM,CAAA,GAAA;AAAA,EAChB,WAAW,KAAM,CAAA,IAAA;AAAA,EACjB,eAAe,KAAM,CAAA,QAAA;AAAA,EACrB,eAAe,KAAM,CAAA,QAAA;AAAA,EACrB,kBAAkB,KAAM,CAAA,WAAA;AAAA,EACxB,WAAW,KAAM,CAAA;AACnB;;;;"}
@@ -1,84 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
3
- import { Text } from '../../Text/Text.esm.js';
4
- import { ButtonIcon } from '../../ButtonIcon/ButtonIcon.esm.js';
5
- import clsx from 'clsx';
6
- import { Select } from '../../Select/Select.esm.js';
7
- import { useDataTable } from '../Root/DataTableRoot.esm.js';
8
- import '@remixicon/react';
9
- import { Icon } from '../../Icon/Icon.esm.js';
10
- import '../../Icon/context.esm.js';
11
-
12
- const DataTablePagination = forwardRef(
13
- (props, ref) => {
14
- const { className, ...rest } = props;
15
- const { table } = useDataTable();
16
- const pageIndex = table?.getState().pagination.pageIndex;
17
- const pageSize = table?.getState().pagination.pageSize;
18
- const rowCount = table?.getRowCount();
19
- const fromCount = (pageIndex ?? 0) * (pageSize ?? 10) + 1;
20
- const toCount = Math.min(
21
- ((pageIndex ?? 0) + 1) * (pageSize ?? 10),
22
- rowCount
23
- );
24
- return /* @__PURE__ */ jsxs(
25
- "div",
26
- {
27
- ref,
28
- style: { minWidth: table?.getTotalSize() },
29
- className: clsx("bui-DataTablePagination", className),
30
- ...rest,
31
- children: [
32
- /* @__PURE__ */ jsx("div", { className: "bui-DataTablePagination--left", children: !table.options.manualPagination && /* @__PURE__ */ jsx(
33
- Select,
34
- {
35
- name: "pageSize",
36
- size: "small",
37
- placeholder: "Show 10 results",
38
- options: [
39
- { label: "Show 5 results", value: "5" },
40
- { label: "Show 10 results", value: "10" },
41
- { label: "Show 20 results", value: "20" },
42
- { label: "Show 30 results", value: "30" },
43
- { label: "Show 40 results", value: "40" },
44
- { label: "Show 50 results", value: "50" }
45
- ],
46
- selectedKey: pageSize?.toString(),
47
- onSelectionChange: (value) => {
48
- table?.setPageSize(Number(value));
49
- },
50
- className: "bui-DataTablePagination--select"
51
- }
52
- ) }),
53
- /* @__PURE__ */ jsxs("div", { className: "bui-DataTablePagination--right", children: [
54
- /* @__PURE__ */ jsx(Text, { variant: "body-medium", children: `${fromCount} - ${toCount} of ${rowCount}` }),
55
- /* @__PURE__ */ jsx(
56
- ButtonIcon,
57
- {
58
- variant: "secondary",
59
- size: "small",
60
- onClick: () => table?.previousPage(),
61
- isDisabled: !table?.getCanPreviousPage(),
62
- icon: /* @__PURE__ */ jsx(Icon, { name: "chevron-left" })
63
- }
64
- ),
65
- /* @__PURE__ */ jsx(
66
- ButtonIcon,
67
- {
68
- variant: "secondary",
69
- size: "small",
70
- onClick: () => table?.nextPage(),
71
- isDisabled: !table?.getCanNextPage(),
72
- icon: /* @__PURE__ */ jsx(Icon, { name: "chevron-right" })
73
- }
74
- )
75
- ] })
76
- ]
77
- }
78
- );
79
- }
80
- );
81
- DataTablePagination.displayName = "DataTablePagination";
82
-
83
- export { DataTablePagination };
84
- //# sourceMappingURL=DataTablePagination.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataTablePagination.esm.js","sources":["../../../../src/components/DataTable/Pagination/DataTablePagination.tsx"],"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 { forwardRef } from 'react';\nimport { Text } from '../../Text';\nimport { DataTablePaginationProps } from './types';\nimport { ButtonIcon } from '../../ButtonIcon';\nimport clsx from 'clsx';\nimport { Select } from '../../Select';\nimport { useDataTable } from '../Root/DataTableRoot';\nimport { Icon } from '../../Icon';\n\n/** @public */\nconst DataTablePagination = forwardRef(\n (\n props: DataTablePaginationProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) => {\n const { className, ...rest } = props;\n const { table } = useDataTable();\n const pageIndex = table?.getState().pagination.pageIndex;\n const pageSize = table?.getState().pagination.pageSize;\n const rowCount = table?.getRowCount();\n const fromCount = (pageIndex ?? 0) * (pageSize ?? 10) + 1;\n const toCount = Math.min(\n ((pageIndex ?? 0) + 1) * (pageSize ?? 10),\n rowCount,\n );\n\n return (\n <div\n ref={ref}\n style={{ minWidth: table?.getTotalSize() }}\n className={clsx('bui-DataTablePagination', className)}\n {...rest}\n >\n <div className=\"bui-DataTablePagination--left\">\n {!table.options.manualPagination && (\n <Select\n name=\"pageSize\"\n size=\"small\"\n placeholder=\"Show 10 results\"\n options={[\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 selectedKey={pageSize?.toString()}\n onSelectionChange={value => {\n table?.setPageSize(Number(value));\n }}\n className=\"bui-DataTablePagination--select\"\n />\n )}\n </div>\n <div className=\"bui-DataTablePagination--right\">\n <Text variant=\"body-medium\">{`${fromCount} - ${toCount} of ${rowCount}`}</Text>\n <ButtonIcon\n variant=\"secondary\"\n size=\"small\"\n onClick={() => table?.previousPage()}\n isDisabled={!table?.getCanPreviousPage()}\n icon={<Icon name=\"chevron-left\" />}\n />\n <ButtonIcon\n variant=\"secondary\"\n size=\"small\"\n onClick={() => table?.nextPage()}\n isDisabled={!table?.getCanNextPage()}\n icon={<Icon name=\"chevron-right\" />}\n />\n </div>\n </div>\n );\n },\n);\n\nDataTablePagination.displayName = 'DataTablePagination';\n\nexport { DataTablePagination };\n"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { createContext, forwardRef, useContext } from 'react';
3
- import clsx from 'clsx';
4
-
5
- const DataTableContext = createContext(
6
- null
7
- );
8
- const DataTableRoot = forwardRef(
9
- (props, ref) => {
10
- const { className, table, ...rest } = props;
11
- return /* @__PURE__ */ jsx(DataTableContext.Provider, { value: { table }, children: /* @__PURE__ */ jsx("div", { ref, className: clsx("bui-DataTable", className), ...rest }) });
12
- }
13
- );
14
- DataTableRoot.displayName = "DataTableRoot";
15
- function useDataTable() {
16
- const context = useContext(DataTableContext);
17
- if (!context) {
18
- throw new Error("useDataTable must be used within a DataTableRoot");
19
- }
20
- return context;
21
- }
22
-
23
- export { DataTableContext, DataTableRoot, useDataTable };
24
- //# sourceMappingURL=DataTableRoot.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataTableRoot.esm.js","sources":["../../../../src/components/DataTable/Root/DataTableRoot.tsx"],"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 { forwardRef, createContext, useContext } from 'react';\nimport clsx from 'clsx';\nimport { DataTableRootProps } from './types';\nimport { Table } from '@tanstack/react-table';\n\ntype DataTableContextType<TData> = {\n table: Table<TData>;\n};\n\n/** @public */\nexport const DataTableContext = createContext<DataTableContextType<any> | null>(\n null,\n);\n\n/** @public */\nconst DataTableRoot = forwardRef(\n <TData,>(\n props: DataTableRootProps<TData>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) => {\n const { className, table, ...rest } = props;\n\n return (\n <DataTableContext.Provider value={{ table }}>\n <div ref={ref} className={clsx('bui-DataTable', className)} {...rest} />\n </DataTableContext.Provider>\n );\n },\n);\n\nDataTableRoot.displayName = 'DataTableRoot';\n\nexport { DataTableRoot };\n\n/** @public */\nexport function useDataTable<TData>() {\n const context = useContext(DataTableContext);\n if (!context) {\n throw new Error('useDataTable must be used within a DataTableRoot');\n }\n return context as DataTableContextType<TData>;\n}\n"],"names":[],"mappings":";;;;AA0BO,MAAM,gBAAmB,GAAA,aAAA;AAAA,EAC9B;AACF;AAGA,MAAM,aAAgB,GAAA,UAAA;AAAA,EACpB,CACE,OACA,GACG,KAAA;AACH,IAAA,MAAM,EAAE,SAAA,EAAW,KAAO,EAAA,GAAG,MAAS,GAAA,KAAA;AAEtC,IAAA,2BACG,gBAAiB,CAAA,QAAA,EAAjB,EAA0B,KAAO,EAAA,EAAE,OAClC,EAAA,QAAA,kBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,GAAA,EAAU,WAAW,IAAK,CAAA,eAAA,EAAiB,SAAS,CAAI,EAAA,GAAG,MAAM,CACxE,EAAA,CAAA;AAAA;AAGN;AAEA,aAAA,CAAc,WAAc,GAAA,eAAA;AAKrB,SAAS,YAAsB,GAAA;AACpC,EAAM,MAAA,OAAA,GAAU,WAAW,gBAAgB,CAAA;AAC3C,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAM,MAAA,IAAI,MAAM,kDAAkD,CAAA;AAAA;AAEpE,EAAO,OAAA,OAAA;AACT;;;;"}