@jetbrains/ring-ui 5.0.55 → 5.0.56

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.
@@ -19,6 +19,23 @@
19
19
  line-height: 28px;
20
20
  }
21
21
 
22
+ .headingWrapperButton {
23
+ margin: 0;
24
+ padding: 0;
25
+
26
+ color: inherit;
27
+
28
+ border: none;
29
+ border-radius: var(--ring-border-radius);
30
+ background: inherit;
31
+
32
+ font-size: inherit;
33
+
34
+ &:focus {
35
+ outline: 1px solid var(--ring-border-hover-color);
36
+ }
37
+ }
38
+
22
39
  .heading {
23
40
  padding: 6px 0;
24
41
 
@@ -3,6 +3,10 @@ import { Levels } from '../heading/heading';
3
3
  import { Size } from '../input/input';
4
4
  export { Levels };
5
5
  export { Size };
6
+ export interface EditableHeadingTranslations {
7
+ save: string;
8
+ cancel: string;
9
+ }
6
10
  export declare type EditableHeadingProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'size'> & {
7
11
  level?: Levels;
8
12
  headingClassName?: string | null;
@@ -19,6 +23,7 @@ export declare type EditableHeadingProps = Omit<InputHTMLAttributes<HTMLInputEle
19
23
  'data-test'?: string | null;
20
24
  error?: string;
21
25
  renderMenu?: () => React.ReactNode;
26
+ translations?: EditableHeadingTranslations;
22
27
  };
23
28
  export declare const EditableHeading: (props: EditableHeadingProps) => JSX.Element;
24
29
  declare const _default: React.MemoExoticComponent<(props: EditableHeadingProps) => JSX.Element>;
@@ -11,7 +11,10 @@ export { Levels };
11
11
  export { Size };
12
12
  function noop() { }
13
13
  export const EditableHeading = (props) => {
14
- const { level = Levels.H1, className, headingClassName, inputClassName, children, isEditing = false, isSavingPossible = false, isSaving = false, embedded = false, size = Size.L, onEdit = noop, onSave = noop, onCancel = noop, autoFocus = true, 'data-test': dataTest, error, disabled, renderMenu = () => null, ...restProps } = props;
14
+ const { level = Levels.H1, className, headingClassName, inputClassName, children, isEditing = false, isSavingPossible = false, isSaving = false, embedded = false, size = Size.L, onEdit = noop, onSave = noop, onCancel = noop, autoFocus = true, 'data-test': dataTest, error, disabled, renderMenu = () => null, translations = {
15
+ save: 'Save',
16
+ cancel: 'Cancel'
17
+ }, ...restProps } = props;
15
18
  const [shortcutsScope] = React.useState(getUID('ring-editable-heading-'));
16
19
  const [isInFocus, setIsInFocus] = React.useState(false);
17
20
  const hasError = error !== undefined;
@@ -50,14 +53,16 @@ export const EditableHeading = (props) => {
50
53
 
51
54
  <input className={inputClasses} value={children} autoFocus={autoFocus} data-test={dataTest} disabled={isSaving} onFocus={onInputFocus} onBlur={onInputBlur} {...restProps}/>
52
55
  </>)
53
- : (<Heading className={headingClasses} level={level} onClick={onHeadingClick} data-test={dataTest}>{children}</Heading>)}
56
+ : (<button type="button" className={styles.headingWrapperButton} onClick={onHeadingClick}>
57
+ <Heading className={headingClasses} level={level} data-test={dataTest}>{children}</Heading>
58
+ </button>)}
54
59
 
55
60
  {!isEditing && (renderMenu())}
56
61
 
57
62
  {isEditing && !embedded && (<>
58
- <Button className={styles.button} primary disabled={isSaveDisabled} loader={isSaving} onClick={onSave}>{'Save'}</Button>
63
+ <Button className={styles.button} primary disabled={isSaveDisabled} loader={isSaving} onClick={onSave}>{translations.save}</Button>
59
64
 
60
- <Button className={styles.button} disabled={isCancelDisabled} onClick={onCancel}>{'Cancel'}</Button>
65
+ <Button className={styles.button} disabled={isCancelDisabled} onClick={onCancel}>{translations.cancel}</Button>
61
66
  </>)}
62
67
  </div>
63
68
 
@@ -3,6 +3,10 @@ import { Levels } from '../heading/heading';
3
3
  import { Size } from '../input/input';
4
4
  export { Levels };
5
5
  export { Size };
6
+ export interface EditableHeadingTranslations {
7
+ save: string;
8
+ cancel: string;
9
+ }
6
10
  export declare type EditableHeadingProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'size'> & {
7
11
  level?: Levels;
8
12
  headingClassName?: string | null;
@@ -19,6 +23,7 @@ export declare type EditableHeadingProps = Omit<InputHTMLAttributes<HTMLInputEle
19
23
  'data-test'?: string | null;
20
24
  error?: string;
21
25
  renderMenu?: () => React.ReactNode;
26
+ translations?: EditableHeadingTranslations;
22
27
  };
23
28
  export declare const EditableHeading: (props: EditableHeadingProps) => JSX.Element;
24
29
  declare const _default: React.MemoExoticComponent<(props: EditableHeadingProps) => JSX.Element>;
@@ -30,7 +30,7 @@ import 'combokeys';
30
30
  import '../global/sniffer.js';
31
31
  import 'sniffr';
32
32
 
33
- var modules_6e69b0fe = {"unit":"8px","editableHeading":"editableHeading_rui_0870","fullSize":"fullSize_rui_0870","isEditing":"isEditing_rui_0870","heading":"heading_rui_0870","disabled":"disabled_rui_0870","input":"input_rui_0870","error":"error_rui_0870","button":"button_rui_0870","errorText":"errorText_rui_0870","level1":"level1_rui_0870","level2":"level2_rui_0870","level3":"level3_rui_0870"};
33
+ var modules_6e69b0fe = {"unit":"8px","editableHeading":"editableHeading_rui_0870","fullSize":"fullSize_rui_0870","isEditing":"isEditing_rui_0870","heading":"heading_rui_0870","headingWrapperButton":"headingWrapperButton_rui_0870","disabled":"disabled_rui_0870","input":"input_rui_0870","error":"error_rui_0870","button":"button_rui_0870","errorText":"errorText_rui_0870","level1":"level1_rui_0870","level2":"level2_rui_0870","level3":"level3_rui_0870"};
34
34
 
35
35
  function noop() {}
36
36
  const EditableHeading = props => {
@@ -53,6 +53,10 @@ const EditableHeading = props => {
53
53
  error,
54
54
  disabled,
55
55
  renderMenu = () => null,
56
+ translations = {
57
+ save: 'Save',
58
+ cancel: 'Cancel'
59
+ },
56
60
  ...restProps
57
61
  } = props;
58
62
  const [shortcutsScope] = React.useState(getUID('ring-editable-heading-'));
@@ -99,22 +103,25 @@ const EditableHeading = props => {
99
103
  disabled: isSaving,
100
104
  onFocus: onInputFocus,
101
105
  onBlur: onInputBlur
102
- }, restProps))) : /*#__PURE__*/React.createElement(Heading, {
106
+ }, restProps))) : /*#__PURE__*/React.createElement("button", {
107
+ type: "button",
108
+ className: modules_6e69b0fe.headingWrapperButton,
109
+ onClick: onHeadingClick
110
+ }, /*#__PURE__*/React.createElement(Heading, {
103
111
  className: headingClasses,
104
112
  level: level,
105
- onClick: onHeadingClick,
106
113
  "data-test": dataTest
107
- }, children), !isEditing && renderMenu(), isEditing && !embedded && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
114
+ }, children)), !isEditing && renderMenu(), isEditing && !embedded && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
108
115
  className: modules_6e69b0fe.button,
109
116
  primary: true,
110
117
  disabled: isSaveDisabled,
111
118
  loader: isSaving,
112
119
  onClick: onSave
113
- }, 'Save'), /*#__PURE__*/React.createElement(Button, {
120
+ }, translations.save), /*#__PURE__*/React.createElement(Button, {
114
121
  className: modules_6e69b0fe.button,
115
122
  disabled: isCancelDisabled,
116
123
  onClick: onCancel
117
- }, 'Cancel'))), isEditing && error && /*#__PURE__*/React.createElement("div", {
124
+ }, translations.cancel))), isEditing && error && /*#__PURE__*/React.createElement("div", {
118
125
  className: classNames(modules_6e69b0fe.errorText, modules_88cfaf40[`size${size}`])
119
126
  }, error));
120
127
  };