@scm-manager/ui-components 4.0.0-REACT19-20250920-130317 → 4.0.0-REACT19-20250922-115826

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scm-manager/ui-components",
3
- "version": "4.0.0-REACT19-20250920-130317",
3
+ "version": "4.0.0-REACT19-20250922-115826",
4
4
  "description": "UI Components for SCM-Manager and its plugins",
5
5
  "main": "src/index.ts",
6
6
  "files": [
@@ -36,10 +36,8 @@
36
36
  "@scm-manager/eslint-config": "^2.18.2",
37
37
  "@scm-manager/prettier-config": "^2.12.0",
38
38
  "@scm-manager/tsconfig": "^2.13.0",
39
- "@scm-manager/ui-shortcuts": "4.0.0-REACT19-20250920-130317",
40
- "@scm-manager/ui-syntaxhighlighting": "4.0.0-REACT19-20250920-130317",
41
- "@scm-manager/ui-text": "4.0.0-REACT19-20250920-130317",
42
- "@scm-manager/ui-types": "4.0.0-REACT19-20250920-130317",
39
+ "@scm-manager/ui-syntaxhighlighting": "4.0.0-REACT19-20250922-115826",
40
+ "@scm-manager/ui-types": "4.0.0-REACT19-20250922-115826",
43
41
  "@storybook/addon-actions": "^9.0.8",
44
42
  "@storybook/addon-docs": "^9.1.5",
45
43
  "@storybook/addon-essentials": "^9.0.0-alpha.12",
@@ -70,12 +68,9 @@
70
68
  "vitest": "^3.2.4"
71
69
  },
72
70
  "dependencies": {
73
- "@scm-manager/ui-api": "4.0.0-REACT19-20250920-130317",
74
- "@scm-manager/ui-buttons": "4.0.0-REACT19-20250920-130317",
75
- "@scm-manager/ui-core": "4.0.0-REACT19-20250920-130317",
76
- "@scm-manager/ui-extensions": "4.0.0-REACT19-20250920-130317",
77
- "@scm-manager/ui-layout": "4.0.0-REACT19-20250920-130317",
78
- "@scm-manager/ui-overlays": "4.0.0-REACT19-20250920-130317",
71
+ "@scm-manager/ui-api": "4.0.0-REACT19-20250922-115826",
72
+ "@scm-manager/ui-core": "4.0.0-REACT19-20250922-115826",
73
+ "@scm-manager/ui-extensions": "4.0.0-REACT19-20250922-115826",
79
74
  "deepmerge": "^4.2.2",
80
75
  "hast-util-sanitize": "^3.0.2",
81
76
  "react-diff-view": "2.6.0",
package/src/Tooltip.tsx CHANGED
@@ -144,7 +144,7 @@ type Props = {
144
144
  export type TooltipLocation = "bottom" | "right" | "top" | "left";
145
145
 
146
146
  /**
147
- * @deprecated use {@link ui-overlays/Tooltip} instead
147
+ * @deprecated Use Tooltip from ui-core instead
148
148
  */
149
149
  const Tooltip: FC<Props> = ({ className, message, location = "right", multiline, children, id }) => {
150
150
  const [open, setOpen] = useState(false);
@@ -18,7 +18,7 @@ import React from "react";
18
18
  import Button, { ButtonProps } from "./Button";
19
19
 
20
20
  /**
21
- * @deprecated Use {@link ui-buttons/src/Button.tsx} instead
21
+ * @deprecated Use Button from ui-core instead
22
22
  */
23
23
  class AddButton extends React.Component<ButtonProps> {
24
24
  render() {
@@ -24,7 +24,7 @@ const Wrapper = styled.div`
24
24
  `;
25
25
 
26
26
  /**
27
- * @deprecated Use {@link ui-buttons/src/Button.tsx} instead
27
+ * @deprecated Use Button from ui-core instead
28
28
  */
29
29
  export default class CreateButton extends React.Component<ButtonProps> {
30
30
  render() {
@@ -18,7 +18,7 @@ import React from "react";
18
18
  import Button, { ButtonProps } from "./Button";
19
19
 
20
20
  /**
21
- * @deprecated Use {@link ui-buttons/src/Button.tsx} instead
21
+ * @deprecated Use Button from ui-core instead
22
22
  */
23
23
  class DeleteButton extends React.Component<ButtonProps> {
24
24
  render() {
@@ -18,7 +18,7 @@ import React from "react";
18
18
  import Button, { ButtonProps } from "./Button";
19
19
 
20
20
  /**
21
- * @deprecated Use {@link ui-buttons/src/Button.tsx} instead
21
+ * @deprecated Use Button from ui-core instead
22
22
  */
23
23
  class EditButton extends React.Component<ButtonProps> {
24
24
  render() {
@@ -18,7 +18,7 @@ import styled from "styled-components";
18
18
  import NoStyleButton from "./NoStyleButton";
19
19
 
20
20
  /**
21
- * @deprecated Use {@link ui-buttons/src/Button.tsx} instead
21
+ * @deprecated Use Button from ui-core instead
22
22
  */
23
23
  const LinkStyleButton = styled(NoStyleButton)`
24
24
  text-decoration: underline;
@@ -14,12 +14,11 @@
14
14
  * along with this program. If not, see https://www.gnu.org/licenses/.
15
15
  */
16
16
 
17
- import * as React from "react";
18
- import { FC, ReactNode, useState } from "react";
17
+ import React, { FC, ReactNode, useState } from "react";
19
18
  import { useTranslation } from "react-i18next";
20
19
  import styled from "styled-components";
20
+ import { Tooltip } from "@scm-manager/ui-core";
21
21
  import FullscreenModal from "../modals/FullscreenModal";
22
- import { Tooltip } from "@scm-manager/ui-overlays";
23
22
 
24
23
  type Props = {
25
24
  modalTitle: string;
@@ -23,7 +23,7 @@ type SubmitButtonProps = ButtonProps & {
23
23
  };
24
24
 
25
25
  /**
26
- * @deprecated Use {@link ui-buttons/src/Button.tsx} instead
26
+ * @deprecated Use Button from ui-core instead
27
27
  */
28
28
  class SubmitButton extends React.Component<SubmitButtonProps> {
29
29
  static defaultProps = {
package/src/index.ts CHANGED
@@ -74,8 +74,7 @@ export { default as CardColumn } from "./CardColumn";
74
74
  export { default as CardColumnSmall } from "./CardColumnSmall";
75
75
  export { default as CommaSeparatedList } from "./CommaSeparatedList";
76
76
  export { default as PreformattedCodeBlock } from "./PreformattedCodeBlock";
77
- export { SplitAndReplace, type Replacement } from "@scm-manager/ui-text";
78
- export { useShortcut } from "@scm-manager/ui-shortcuts";
77
+ export { SplitAndReplace, useShortcut, type Replacement } from "@scm-manager/ui-core";
79
78
  export { regExpPattern as changesetShortLinkRegex } from "./markdown/remarkChangesetShortLinkParser";
80
79
  export * from "./markdown/PluginApi";
81
80
  export * from "./devices";
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import React, { FC, ReactNode } from "react";
18
- import { CardList, Collapsible } from "@scm-manager/ui-layout";
18
+ import { CardList, Collapsible } from "@scm-manager/ui-core";
19
19
 
20
20
  type Props = {
21
21
  namespaceHeader: ReactNode;
@@ -16,10 +16,10 @@
16
16
 
17
17
  import React, { FC, ReactNode } from "react";
18
18
  import { useTranslation } from "react-i18next";
19
+ import { Link } from "react-router-dom";
19
20
  import { useLocalStorage } from "@scm-manager/ui-api";
20
- import { CardList, Collapsible } from "@scm-manager/ui-layout";
21
+ import { CardList, Collapsible } from "@scm-manager/ui-core";
21
22
  import { RepositoryGroup } from "@scm-manager/ui-types";
22
- import { Link } from "react-router-dom";
23
23
  import { Icon } from "../index";
24
24
 
25
25
  type Props = {
@@ -15,10 +15,10 @@
15
15
  */
16
16
 
17
17
  import React, { FC, ReactNode } from "react";
18
- import styled from "styled-components";
19
18
  import { useTranslation } from "react-i18next";
19
+ import styled from "styled-components";
20
+ import { Button } from "@scm-manager/ui-core";
20
21
  import { useSecondaryNavigation } from "../useSecondaryNavigation";
21
- import { Button } from "@scm-manager/ui-buttons";
22
22
 
23
23
  type Props = {
24
24
  label: string;
@@ -65,7 +65,7 @@ const PopoverHeading = styled.div`
65
65
  `;
66
66
 
67
67
  /**
68
- * @deprecated use {@link ui-overlays/popover} instead
68
+ * @deprecated Use Popover from ui-core instead
69
69
  */
70
70
  const Popover: FC<Props> = (props) => {
71
71
  if (!props.show) {
@@ -16,7 +16,7 @@
16
16
 
17
17
  import React, { FC, MouseEvent } from "react";
18
18
  import styled from "styled-components";
19
- import { Tooltip } from "@scm-manager/ui-overlays";
19
+ import { Tooltip } from "@scm-manager/ui-core";
20
20
 
21
21
  const Button = styled.button`
22
22
  width: 50px;
@@ -15,9 +15,9 @@
15
15
  */
16
16
 
17
17
  import React, { FC } from "react";
18
- import styled from "styled-components";
19
18
  import { Link } from "react-router-dom";
20
- import { Tooltip } from "@scm-manager/ui-overlays";
19
+ import styled from "styled-components";
20
+ import { Tooltip } from "@scm-manager/ui-core";
21
21
  import Icon from "../Icon";
22
22
 
23
23
  const Button = styled(Link)`
@@ -15,18 +15,15 @@
15
15
  */
16
16
 
17
17
  import React, { FC } from "react";
18
+ import { useTranslation } from "react-i18next";
19
+ import { Link } from "react-router-dom";
20
+ import styled from "styled-components";
21
+ import { Card, Icon, Menu, useKeyboardIteratorTargetV2 } from "@scm-manager/ui-core";
22
+ import { ExtensionPoint, extensionPoints } from "@scm-manager/ui-extensions";
18
23
  import { Repository } from "@scm-manager/ui-types";
19
24
  import DateFromNow from "../DateFromNow";
20
25
  import RepositoryAvatar from "./RepositoryAvatar";
21
- import { ExtensionPoint, extensionPoints } from "@scm-manager/ui-extensions";
22
26
  import RepositoryFlags from "./RepositoryFlags";
23
- import styled from "styled-components";
24
- import { useTranslation } from "react-i18next";
25
- import { Card } from "@scm-manager/ui-layout";
26
- import { Link } from "react-router-dom";
27
- import { Menu } from "@scm-manager/ui-overlays";
28
- import { Icon } from "@scm-manager/ui-buttons";
29
- import { useKeyboardIteratorTargetV2 } from "@scm-manager/ui-core";
30
27
 
31
28
  type DateProp = Date | string;
32
29
 
@@ -15,10 +15,8 @@
15
15
  */
16
16
 
17
17
  import React, { FC, ReactNode } from "react";
18
+ import { Card, CardVariant, Tooltip } from "@scm-manager/ui-core";
18
19
  import { Color, Size } from "../styleConstants";
19
- import { Card } from "@scm-manager/ui-layout";
20
- import { CardVariant } from "@scm-manager/ui-core";
21
- import { Tooltip } from "@scm-manager/ui-overlays";
22
20
  import { TooltipLocation } from "../Tooltip";
23
21
 
24
22
  type Props = {
@@ -15,9 +15,9 @@
15
15
  */
16
16
 
17
17
  import React, { FC } from "react";
18
- import { Changeset } from "@scm-manager/ui-types";
18
+ import { Replacement, SplitAndReplace } from "@scm-manager/ui-core";
19
19
  import { extensionPoints, useBinder } from "@scm-manager/ui-extensions";
20
- import { Replacement, SplitAndReplace } from "@scm-manager/ui-text";
20
+ import { Changeset } from "@scm-manager/ui-types";
21
21
 
22
22
  type Props = {
23
23
  changeset: Changeset;
@@ -14,10 +14,10 @@
14
14
  * along with this program. If not, see https://www.gnu.org/licenses/.
15
15
  */
16
16
 
17
- import ChangesetRow from "./ChangesetRow";
18
17
  import React, { FC } from "react";
18
+ import { KeyboardIterator } from "@scm-manager/ui-core";
19
19
  import { Branch, Changeset, File, Repository } from "@scm-manager/ui-types";
20
- import { KeyboardIterator } from "@scm-manager/ui-shortcuts";
20
+ import ChangesetRow from "./ChangesetRow";
21
21
 
22
22
  type Props = {
23
23
  repository: Repository;
@@ -17,11 +17,11 @@
17
17
  import React, { FC } from "react";
18
18
  import classNames from "classnames";
19
19
  import styled from "styled-components";
20
+ import { useKeyboardIteratorTarget } from "@scm-manager/ui-core";
20
21
  import { ExtensionPoint, extensionPoints } from "@scm-manager/ui-extensions";
21
22
  import { Branch, Changeset, File, Repository } from "@scm-manager/ui-types";
22
23
  import ChangesetButtonGroup from "./ChangesetButtonGroup";
23
24
  import SingleChangeset from "./SingleChangeset";
24
- import { useKeyboardIteratorTarget } from "@scm-manager/ui-shortcuts";
25
25
 
26
26
  type Props = {
27
27
  repository: Repository;
@@ -26,9 +26,8 @@
26
26
  // import hitchhiker from "../../__resources__/hitchhiker.png";
27
27
  // import { Person } from "../../avatar/Avatar";
28
28
  // import { Changeset } from "@scm-manager/ui-types";
29
- // import { Replacement } from "@scm-manager/ui-text";
29
+ // import { Replacement, ShortcutDocsContextProvider } from "@scm-manager/ui-core";
30
30
  // import ChangesetList from "./ChangesetList";
31
- // import { ShortcutDocsContextProvider } from "@scm-manager/ui-shortcuts";
32
31
  //
33
32
  // const Wrapper = styled.div`
34
33
  // margin: 25rem 4rem;
@@ -289,23 +288,19 @@
289
288
  // ));
290
289
 
291
290
  import React from "react";
291
+ import { MemoryRouter } from "react-router-dom";
292
292
  import styled from "styled-components";
293
293
  import type { Meta, StoryObj } from "@storybook/react";
294
+ import { Replacement, ShortcutDocsContextProvider } from "@scm-manager/ui-core";
294
295
  import { Binder, BinderContext } from "@scm-manager/ui-extensions";
295
- import { ShortcutDocsContextProvider } from "@scm-manager/ui-shortcuts";
296
296
  import { Changeset } from "@scm-manager/ui-types";
297
- import { Replacement } from "@scm-manager/ui-text";
298
-
299
- import ChangesetRow from "./ChangesetRow";
300
- import ChangesetList from "./ChangesetList";
301
297
  import repository from "../../__resources__/repository";
302
298
  import { five, four, one, three, two } from "../../__resources__/changesets";
303
299
  // @ts-ignore
304
300
  import hitchhiker from "../../__resources__/hitchhiker.png";
305
301
  import { Person } from "../../avatar/Avatar";
306
- import { MemoryRouter } from "react-router-dom";
307
-
308
- // --- Helfer-Funktionen und Mock-Daten (aus der Original-Story übernommen) ---
302
+ import ChangesetRow from "./ChangesetRow";
303
+ import ChangesetList from "./ChangesetList";
309
304
 
310
305
  const Wrapper = styled.div`
311
306
  margin: 2rem 4rem;
@@ -340,8 +335,6 @@ function copy<T>(input: T): T {
340
335
  return JSON.parse(JSON.stringify(input));
341
336
  }
342
337
 
343
- // --- Storybook Metadaten ---
344
-
345
338
  const meta: Meta<typeof ChangesetRow> = {
346
339
  title: "Repositories/Changesets",
347
340
  component: ChangesetRow,
@@ -354,11 +347,8 @@ const meta: Meta<typeof ChangesetRow> = {
354
347
 
355
348
  export default meta;
356
349
 
357
- // --- Story-Definitionen ---
358
-
359
350
  type Story = StoryObj<typeof meta>;
360
351
 
361
- // Einfache Stories mit `args`
362
352
  export const Default: Story = {
363
353
  args: { repository, changeset: three },
364
354
  };
@@ -375,7 +365,6 @@ export const WithMultipleCoAuthors: Story = {
375
365
  args: { repository, changeset: four },
376
366
  };
377
367
 
378
- // Komplexe Stories mit `render`
379
368
  export const WithAvatar: Story = {
380
369
  render: () => withAvatarFactory(() => hitchhiker, three),
381
370
  };
@@ -402,7 +391,6 @@ export const Replacements: Story = {
402
391
  },
403
392
  };
404
393
 
405
- // Stories für Signaturen
406
394
  export const WithUnknownSignature: Story = {
407
395
  render: () => {
408
396
  const changeset = copy(three);
@@ -469,7 +457,6 @@ export const WithMultipleSignaturesValid: Story = {
469
457
  },
470
458
  };
471
459
 
472
- // Story für die ChangesetList
473
460
  export const ListWithNavigation: Story = {
474
461
  name: "List With Navigation",
475
462
  render: () => (
@@ -17,25 +17,24 @@
17
17
  import React, { FC, useCallback, useEffect, useMemo, useState } from "react";
18
18
  import { useTranslation } from "react-i18next";
19
19
  import classNames from "classnames";
20
- import { ButtonGroup } from "../../buttons";
21
- import { Icon } from "@scm-manager/ui-buttons";
20
+ import styled from "styled-components";
21
+ import { useContentType } from "@scm-manager/ui-api";
22
+ import { ErrorNotification, Icon } from "@scm-manager/ui-core";
22
23
  import { Hunk as HunkType, Link } from "@scm-manager/ui-types";
23
- import TokenizedDiffView from "../TokenizedDiffView";
24
- import DiffButton from "../DiffButton";
25
- import { MenuContext } from "../../navigation/MenuContext";
24
+ import { ButtonGroup } from "../../buttons";
26
25
  import OpenInFullscreenButton from "../../buttons/OpenInFullscreenButton";
27
- import DiffExpander from "../DiffExpander";
28
26
  import { Modal } from "../../modals";
29
- import { ErrorNotification } from "@scm-manager/ui-core";
30
- import FileTitle from "./FileTitle";
31
- import { DiffFilePanel, FullWidthTitleHeader, MarginlessModalContent, PanelHeading } from "./styledElements";
27
+ import { MenuContext } from "../../navigation";
28
+ import DiffButton from "../DiffButton";
29
+ import BinaryDiffFileContent, { canDisplayBinaryFile } from "./BinaryDiffFileContent";
30
+ import DiffExpander from "../DiffExpander";
31
+ import TokenizedDiffView from "../TokenizedDiffView";
32
32
  import ChangeTag from "./ChangeTag";
33
- import { getAnchorId, hasContent as determineHasContent, hoverFileTitle } from "./helpers";
34
33
  import DiffFileHunk from "./DiffFileHunk";
34
+ import FileTitle from "./FileTitle";
35
+ import { getAnchorId, hasContent as determineHasContent, hoverFileTitle } from "./helpers";
36
+ import { DiffFilePanel, FullWidthTitleHeader, MarginlessModalContent, PanelHeading } from "./styledElements";
35
37
  import { DiffFileProps } from "./types";
36
- import { useContentType } from "@scm-manager/ui-api";
37
- import BinaryDiffFileContent, { canDisplayBinaryFile } from "./BinaryDiffFileContent";
38
- import styled from "styled-components";
39
38
 
40
39
  type Props = DiffFileProps;
41
40