@scm-manager/ui-components 2.25.1-20211003-143409 → 2.26.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 (96) hide show
  1. package/package.json +10 -8
  2. package/src/Autocomplete.tsx +6 -6
  3. package/src/BranchSelector.stories.tsx +1 -1
  4. package/src/Breadcrumb.tsx +4 -1
  5. package/src/CardColumn.stories.tsx +2 -2
  6. package/src/CardColumn.tsx +1 -2
  7. package/src/HelpIcon.tsx +3 -1
  8. package/src/Icon.stories.tsx +3 -3
  9. package/src/Notification.stories.tsx +1 -1
  10. package/src/Paginator.test.tsx +16 -16
  11. package/src/ProtectedRoute.tsx +3 -3
  12. package/src/Tag.tsx +1 -1
  13. package/src/__resources__/Diff.markdown.ts +19 -21
  14. package/src/__resources__/changesets.tsx +73 -109
  15. package/src/__resources__/repository.ts +8 -8
  16. package/src/__snapshots__/storyshots.test.ts.snap +71237 -71286
  17. package/src/buttons/Button.tsx +63 -74
  18. package/src/buttons/ButtonAddons.tsx +1 -1
  19. package/src/buttons/ButtonGroup.tsx +1 -1
  20. package/src/buttons/SubmitButton.tsx +1 -1
  21. package/src/buttons/index.stories.tsx +5 -6
  22. package/src/comparators.test.ts +6 -6
  23. package/src/comparators.ts +1 -1
  24. package/src/devBuild.ts +1 -1
  25. package/src/forms/AddKeyValueEntryToTableField.stories.tsx +1 -1
  26. package/src/forms/AutocompleteAddEntryToTableField.tsx +1 -1
  27. package/src/forms/Checkbox.stories.tsx +4 -4
  28. package/src/forms/DropDown.stories.tsx +4 -4
  29. package/src/forms/DropDown.tsx +1 -1
  30. package/src/forms/FileInput.stories.tsx +1 -1
  31. package/src/forms/FilterInput.tsx +1 -1
  32. package/src/forms/InputField.stories.tsx +1 -1
  33. package/src/forms/MemberNameTagGroup.tsx +3 -3
  34. package/src/forms/PasswordConfirmation.tsx +4 -4
  35. package/src/forms/Radio.stories.tsx +2 -2
  36. package/src/forms/Select.stories.tsx +4 -5
  37. package/src/forms/Textarea.stories.tsx +1 -1
  38. package/src/languages.ts +1 -1
  39. package/src/layout/Footer.stories.tsx +3 -3
  40. package/src/layout/SecondaryNavigationColumn.tsx +1 -1
  41. package/src/layout/Title.tsx +2 -2
  42. package/src/markdown/MarkdownCodeRenderer.tsx +1 -1
  43. package/src/markdown/MarkdownHeadingRenderer.tsx +2 -2
  44. package/src/markdown/MarkdownLinkRenderer.test.tsx +1 -1
  45. package/src/markdown/MarkdownLinkRenderer.tsx +1 -1
  46. package/src/markdown/MarkdownView.stories.tsx +4 -4
  47. package/src/markdown/MarkdownView.tsx +9 -9
  48. package/src/markdown/createComponentList.ts +1 -1
  49. package/src/markdown/createMdastPlugin.ts +1 -1
  50. package/src/markdown/markdownExtensions.ts +1 -1
  51. package/src/markdown/remarkChangesetShortLinkParser.ts +7 -7
  52. package/src/markdown/remarkToRehypeRendererAdapters.ts +10 -9
  53. package/src/modals/ConfirmAlert.stories.tsx +5 -5
  54. package/src/modals/ConfirmAlert.tsx +2 -2
  55. package/src/modals/CreateTagModal.tsx +4 -4
  56. package/src/modals/Modal.stories.tsx +1 -1
  57. package/src/navigation/MenuContext.tsx +2 -2
  58. package/src/navigation/NavAction.tsx +3 -3
  59. package/src/navigation/SecondaryNavigation.stories.tsx +4 -4
  60. package/src/navigation/SubNavigation.tsx +2 -2
  61. package/src/popover/Popover.stories.tsx +37 -35
  62. package/src/popover/usePopover.ts +10 -10
  63. package/src/repos/Diff.stories.tsx +1 -1
  64. package/src/repos/DiffExpander.test.ts +39 -41
  65. package/src/repos/DiffExpander.ts +10 -10
  66. package/src/repos/RepositoryEntry.stories.tsx +1 -1
  67. package/src/repos/RepositoryFlag.tsx +1 -1
  68. package/src/repos/Tokenize.worker.ts +3 -3
  69. package/src/repos/TokenizedDiffView.tsx +1 -1
  70. package/src/repos/annotate/Annotate.stories.tsx +29 -29
  71. package/src/repos/changesets/ChangesetAuthor.tsx +4 -4
  72. package/src/repos/changesets/ChangesetDescription.tsx +2 -2
  73. package/src/repos/changesets/ChangesetDiff.test.ts +18 -18
  74. package/src/repos/changesets/ChangesetId.tsx +1 -1
  75. package/src/repos/changesets/ChangesetList.tsx +1 -1
  76. package/src/repos/changesets/ChangesetTagsCollapsed.tsx +1 -1
  77. package/src/repos/changesets/Changesets.stories.tsx +185 -142
  78. package/src/repos/changesets/SignatureIcon.tsx +4 -4
  79. package/src/repos/changesets/changesets.ts +1 -1
  80. package/src/repos/diffs.test.ts +3 -3
  81. package/src/repos/refractorAdapter.ts +3 -3
  82. package/src/repositories.test.ts +18 -18
  83. package/src/storyshots.test.ts +3 -3
  84. package/src/syntax-highlighting.module.css +17 -16
  85. package/src/syntax-highlighting.ts +59 -54
  86. package/src/table/Table.stories.tsx +7 -7
  87. package/src/table/Table.tsx +1 -1
  88. package/src/table/TextColumn.tsx +1 -1
  89. package/src/textSplitAndReplace.test.ts +3 -3
  90. package/src/textSplitAndReplace.ts +2 -2
  91. package/src/toast/Toast.tsx +2 -2
  92. package/src/toast/index.stories.tsx +2 -2
  93. package/src/toast/themes.ts +6 -6
  94. package/src/useDateFormatter.ts +3 -3
  95. package/src/validation.test.ts +6 -6
  96. package/src/validation.ts +1 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scm-manager/ui-components",
3
- "version": "2.25.1-20211003-143409",
3
+ "version": "2.26.0",
4
4
  "description": "UI Components for SCM-Manager and its plugins",
5
5
  "main": "src/index.ts",
6
6
  "files": [
@@ -25,10 +25,10 @@
25
25
  "@scm-manager/jest-preset": "^2.12.7",
26
26
  "@scm-manager/prettier-config": "^2.10.1",
27
27
  "@scm-manager/tsconfig": "^2.12.0",
28
- "@scm-manager/ui-tests": "^2.25.1-20211003-143409",
29
- "@storybook/addon-actions": "^6.1.17",
30
- "@storybook/addon-storyshots": "^6.1.17",
31
- "@storybook/react": "^6.1.17",
28
+ "@scm-manager/ui-tests": "^2.26.0",
29
+ "@storybook/addon-actions": "^6.3.12",
30
+ "@storybook/addon-storyshots": "^6.3.12",
31
+ "@storybook/react": "^6.3.12",
32
32
  "@types/classnames": "^2.2.9",
33
33
  "@types/css": "^0.0.31",
34
34
  "@types/enzyme": "^3.10.3",
@@ -52,16 +52,18 @@
52
52
  "fetch-mock": "^7.5.1",
53
53
  "gitdiff-parser": "^0.1.2",
54
54
  "i18next-fetch-backend": "^2.2.0",
55
+ "mini-css-extract-plugin": "^1.6.2",
55
56
  "raf": "^3.4.0",
56
57
  "react-test-renderer": "^17.0.1",
57
58
  "storybook-addon-i18next": "^1.3.0",
59
+ "storybook-addon-themes": "^6.1.0",
58
60
  "to-camel-case": "^1.0.0",
59
61
  "worker-plugin": "^3.2.0"
60
62
  },
61
63
  "dependencies": {
62
- "@scm-manager/ui-api": "^2.25.1-20211003-143409",
63
- "@scm-manager/ui-extensions": "^2.25.1-20211003-143409",
64
- "@scm-manager/ui-types": "^2.25.1-20211003-143409",
64
+ "@scm-manager/ui-api": "^2.26.0",
65
+ "@scm-manager/ui-extensions": "^2.26.0",
66
+ "@scm-manager/ui-types": "^2.26.0",
65
67
  "classnames": "^2.2.6",
66
68
  "date-fns": "^2.4.1",
67
69
  "deepmerge": "^4.2.2",
@@ -47,7 +47,7 @@ class Autocomplete extends React.Component<Props, State> {
47
47
  static defaultProps = {
48
48
  placeholder: "Type here",
49
49
  loadingMessage: "Loading...",
50
- noOptionsMessage: "No suggestion available"
50
+ noOptionsMessage: "No suggestion available",
51
51
  };
52
52
 
53
53
  handleInputChange = (newValue: ValueType<SelectValue>, action: ActionMeta) => {
@@ -64,7 +64,7 @@ class Autocomplete extends React.Component<Props, State> {
64
64
  selectValue: ValueType<SelectValue>,
65
65
  selectOptions: readonly SelectValue[]
66
66
  ): boolean => {
67
- const isNotDuplicated = !selectOptions.map(option => option.label).includes(inputValue);
67
+ const isNotDuplicated = !selectOptions.map((option) => option.label).includes(inputValue);
68
68
  const isNotEmpty = inputValue !== "";
69
69
  return isNotEmpty && isNotDuplicated;
70
70
  };
@@ -79,7 +79,7 @@ class Autocomplete extends React.Component<Props, State> {
79
79
  noOptionsMessage,
80
80
  loadSuggestions,
81
81
  creatable,
82
- className
82
+ className,
83
83
  } = this.props;
84
84
  return (
85
85
  <div className={classNames("field", className)}>
@@ -95,13 +95,13 @@ class Autocomplete extends React.Component<Props, State> {
95
95
  loadingMessage={() => loadingMessage}
96
96
  noOptionsMessage={() => noOptionsMessage}
97
97
  isValidNewOption={this.isValidNewOption}
98
- onCreateOption={value => {
98
+ onCreateOption={(value) => {
99
99
  this.selectValue({
100
100
  label: value,
101
101
  value: {
102
102
  id: value,
103
- displayName: value
104
- }
103
+ displayName: value,
104
+ },
105
105
  });
106
106
  }}
107
107
  />
@@ -41,5 +41,5 @@ const Wrapper = styled.div`
41
41
  `;
42
42
 
43
43
  storiesOf("BranchSelector", module)
44
- .addDecorator(storyFn => <Wrapper>{storyFn()}</Wrapper>)
44
+ .addDecorator((storyFn) => <Wrapper>{storyFn()}</Wrapper>)
45
45
  .add("Default", () => <BranchSelector branches={branches} onSelectBranch={branchSelected} label="Select Branch" />);
@@ -128,7 +128,10 @@ const Breadcrumb: FC<Props> = ({
128
128
  if (path) {
129
129
  const paths = path.split("/");
130
130
  return paths.map((pathFragment, index) => {
131
- let currPath = paths.slice(0, index + 1).map(encodeURIComponent).join("/");
131
+ let currPath = paths
132
+ .slice(0, index + 1)
133
+ .map(encodeURIComponent)
134
+ .join("/");
132
135
  if (!currPath.endsWith("/")) {
133
136
  currPath = currPath + "/";
134
137
  }
@@ -43,8 +43,8 @@ const footerRight = <small>right footer</small>;
43
43
  const baseDate = "2020-03-26T12:13:42+02:00";
44
44
 
45
45
  storiesOf("CardColumn", module)
46
- .addDecorator(story => <MemoryRouter initialEntries={["/"]}>{story()}</MemoryRouter>)
47
- .addDecorator(storyFn => <Wrapper>{storyFn()}</Wrapper>)
46
+ .addDecorator((story) => <MemoryRouter initialEntries={["/"]}>{story()}</MemoryRouter>)
47
+ .addDecorator((storyFn) => <Wrapper>{storyFn()}</Wrapper>)
48
48
  .add("Default", () => (
49
49
  <CardColumn
50
50
  link={link}
@@ -69,13 +69,12 @@ const CardColumn: FC<Props> = ({
69
69
  createLink = <Link className="overlay-column" to={link} />;
70
70
  } else if (action) {
71
71
  createLink = (
72
- <a
72
+ <button
73
73
  className="overlay-column"
74
74
  onClick={(e) => {
75
75
  e.preventDefault();
76
76
  action();
77
77
  }}
78
- href="#"
79
78
  />
80
79
  );
81
80
  }
package/src/HelpIcon.tsx CHANGED
@@ -28,6 +28,8 @@ type Props = {
28
28
  className?: string;
29
29
  };
30
30
 
31
- const HelpIcon: FC<Props> = ({ className }) => <Icon name="question-circle" color="blue-light" className={className} alt="" />;
31
+ const HelpIcon: FC<Props> = ({ className }) => (
32
+ <Icon name="question-circle" color="blue-light" className={className} alt="" />
33
+ );
32
34
 
33
35
  export default HelpIcon;
@@ -36,7 +36,7 @@ const colors = ["primary", "link", "info", "success", "warning", "danger", "whit
36
36
  const sizing = ["xs", "sm", "lg", "2x", "3x", "5x", "7x", "10x"];
37
37
 
38
38
  storiesOf("Icon", module)
39
- .addDecorator(storyFn => <Wrapper>{storyFn()}</Wrapper>)
39
+ .addDecorator((storyFn) => <Wrapper>{storyFn()}</Wrapper>)
40
40
  .add("Default", () => (
41
41
  <>
42
42
  <Icon name="cat" />
@@ -48,7 +48,7 @@ storiesOf("Icon", module)
48
48
  .add("Colors", () => (
49
49
  <>
50
50
  <Icon title="default color" name="cat" />
51
- {colors.map(color => (
51
+ {colors.map((color) => (
52
52
  <Icon key={color} title={color} name="cat" color={color} />
53
53
  ))}
54
54
  </>
@@ -56,7 +56,7 @@ storiesOf("Icon", module)
56
56
  .add("Sizing", () => (
57
57
  <>
58
58
  <Icon title="default size" name="cat" />
59
- {sizing.map(size => (
59
+ {sizing.map((size) => (
60
60
  <Icon key={size} title={"fa-" + size} name={"cat fa-" + size} />
61
61
  ))}
62
62
  </>
@@ -44,7 +44,7 @@ const RoutingDecorator = (story: () => ReactNode) => <MemoryRouter initialEntrie
44
44
 
45
45
  storiesOf("Notification", module)
46
46
  .addDecorator(RoutingDecorator)
47
- .addDecorator(storyFn => <Wrapper>{storyFn()}</Wrapper>)
47
+ .addDecorator((storyFn) => <Wrapper>{storyFn()}</Wrapper>)
48
48
  .add("Primary", () => <Notification type="primary">{content}</Notification>)
49
49
  .add("Success", () => <Notification type="success">{content}</Notification>)
50
50
  .add("Info", () => <Notification type="info">{content}</Notification>)
@@ -28,7 +28,7 @@ import Paginator from "./Paginator";
28
28
 
29
29
  xdescribe("paginator rendering tests", () => {
30
30
  const dummyLink = {
31
- href: "https://dummy"
31
+ href: "https://dummy",
32
32
  };
33
33
 
34
34
  it("should render all buttons but disabled, without links", () => {
@@ -36,13 +36,13 @@ xdescribe("paginator rendering tests", () => {
36
36
  page: 10,
37
37
  pageTotal: 20,
38
38
  _links: {},
39
- _embedded: {}
39
+ _embedded: {},
40
40
  };
41
41
 
42
42
  const paginator = shallow(<Paginator collection={collection} />);
43
43
  const buttons = paginator.find("Button");
44
44
  expect(buttons.length).toBe(7);
45
- buttons.forEach(button => {
45
+ buttons.forEach((button) => {
46
46
  // @ts-ignore ???
47
47
  expect(button.props.disabled).toBeTruthy();
48
48
  });
@@ -55,9 +55,9 @@ xdescribe("paginator rendering tests", () => {
55
55
  _links: {
56
56
  first: dummyLink,
57
57
  next: dummyLink,
58
- last: dummyLink
58
+ last: dummyLink,
59
59
  },
60
- _embedded: {}
60
+ _embedded: {},
61
61
  };
62
62
 
63
63
  const paginator = shallow(<Paginator collection={collection} />);
@@ -92,9 +92,9 @@ xdescribe("paginator rendering tests", () => {
92
92
  first: dummyLink,
93
93
  prev: dummyLink,
94
94
  next: dummyLink,
95
- last: dummyLink
95
+ last: dummyLink,
96
96
  },
97
- _embedded: {}
97
+ _embedded: {},
98
98
  };
99
99
 
100
100
  const paginator = shallow(<Paginator collection={collection} />);
@@ -132,9 +132,9 @@ xdescribe("paginator rendering tests", () => {
132
132
  pageTotal: 148,
133
133
  _links: {
134
134
  first: dummyLink,
135
- prev: dummyLink
135
+ prev: dummyLink,
136
136
  },
137
- _embedded: {}
137
+ _embedded: {},
138
138
  };
139
139
 
140
140
  const paginator = shallow(<Paginator collection={collection} />);
@@ -169,9 +169,9 @@ xdescribe("paginator rendering tests", () => {
169
169
  first: dummyLink,
170
170
  prev: dummyLink,
171
171
  next: dummyLink,
172
- last: dummyLink
172
+ last: dummyLink,
173
173
  },
174
- _embedded: {}
174
+ _embedded: {},
175
175
  };
176
176
 
177
177
  const paginator = shallow(<Paginator collection={collection} />);
@@ -211,9 +211,9 @@ xdescribe("paginator rendering tests", () => {
211
211
  first: dummyLink,
212
212
  prev: dummyLink,
213
213
  next: dummyLink,
214
- last: dummyLink
214
+ last: dummyLink,
215
215
  },
216
- _embedded: {}
216
+ _embedded: {},
217
217
  };
218
218
 
219
219
  const paginator = shallow(<Paginator collection={collection} />);
@@ -258,12 +258,12 @@ xdescribe("paginator rendering tests", () => {
258
258
  _links: {
259
259
  first: dummyLink,
260
260
  prev: {
261
- href: "https://www.scm-manager.org"
261
+ href: "https://www.scm-manager.org",
262
262
  },
263
263
  next: dummyLink,
264
- last: dummyLink
264
+ last: dummyLink,
265
265
  },
266
- _embedded: {}
266
+ _embedded: {},
267
267
  };
268
268
 
269
269
  let urlToOpen;
@@ -33,7 +33,7 @@ class ProtectedRoute extends Component<Props> {
33
33
  constructor(props: Props) {
34
34
  super(props);
35
35
  this.state = {
36
- error: undefined
36
+ error: undefined,
37
37
  };
38
38
  }
39
39
 
@@ -49,8 +49,8 @@ class ProtectedRoute extends Component<Props> {
49
49
  to={{
50
50
  pathname: "/login",
51
51
  state: {
52
- from: routeProps.location
53
- }
52
+ from: routeProps.location,
53
+ },
54
54
  }}
55
55
  />
56
56
  );
package/src/Tag.tsx CHANGED
@@ -64,7 +64,7 @@ const Tag: FC<Props> = ({
64
64
  }
65
65
  let showDelete = null;
66
66
  if (onRemove) {
67
- showDelete = <a className="tag is-delete" onClick={onRemove} />;
67
+ showDelete = <button className="tag is-delete" onClick={onRemove} />;
68
68
  }
69
69
 
70
70
  return (
@@ -46,40 +46,40 @@ export default {
46
46
  type: "normal",
47
47
  oldLineNumber: 5,
48
48
  newLineNumber: 5,
49
- isNormal: true
49
+ isNormal: true,
50
50
  },
51
51
  {
52
52
  content: "and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).",
53
53
  type: "normal",
54
54
  oldLineNumber: 6,
55
55
  newLineNumber: 6,
56
- isNormal: true
56
+ isNormal: true,
57
57
  },
58
58
  {
59
59
  content: "",
60
60
  type: "normal",
61
61
  oldLineNumber: 7,
62
62
  newLineNumber: 7,
63
- isNormal: true
63
+ isNormal: true,
64
64
  },
65
65
  {
66
66
  content: "## Unreleased",
67
67
  type: "delete",
68
68
  lineNumber: 8,
69
- isDelete: true
69
+ isDelete: true,
70
70
  },
71
71
  {
72
72
  content: "## [2.7.1] - 2020-10-14",
73
73
  type: "insert",
74
74
  lineNumber: 8,
75
- isInsert: true
75
+ isInsert: true,
76
76
  },
77
77
  {
78
78
  content: "### Fixed",
79
79
  type: "normal",
80
80
  oldLineNumber: 9,
81
81
  newLineNumber: 9,
82
- isNormal: true
82
+ isNormal: true,
83
83
  },
84
84
  {
85
85
  content:
@@ -87,7 +87,7 @@ export default {
87
87
  type: "normal",
88
88
  oldLineNumber: 10,
89
89
  newLineNumber: 10,
90
- isNormal: true
90
+ isNormal: true,
91
91
  },
92
92
  {
93
93
  content:
@@ -95,24 +95,22 @@ export default {
95
95
  type: "normal",
96
96
  oldLineNumber: 11,
97
97
  newLineNumber: 11,
98
- isNormal: true
99
- }
100
- ]
101
- }
98
+ isNormal: true,
99
+ },
100
+ ],
101
+ },
102
102
  ],
103
103
  _links: {
104
104
  lines: {
105
- href:
106
- "http://localhost:8081/scm/api/v2/repositories/scmadmin/scm-manager/content/fbffdea2a566dc4ac54ea38d4aade5aaf541e7f2/CHANGELOG.md?start={start}&end={end}",
107
- templated: true
108
- }
109
- }
110
- }
105
+ href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/scm-manager/content/fbffdea2a566dc4ac54ea38d4aade5aaf541e7f2/CHANGELOG.md?start={start}&end={end}",
106
+ templated: true,
107
+ },
108
+ },
109
+ },
111
110
  ],
112
111
  _links: {
113
112
  self: {
114
- href:
115
- "http://localhost:8081/scm/api/v2/repositories/scmadmin/scm-manager/diff/fbffdea2a566dc4ac54ea38d4aade5aaf541e7f2/parsed"
116
- }
117
- }
113
+ href: "http://localhost:8081/scm/api/v2/repositories/scmadmin/scm-manager/diff/fbffdea2a566dc4ac54ea38d4aade5aaf541e7f2/parsed",
114
+ },
115
+ },
118
116
  };