@gravity-ui/blog-constructor 5.5.0 → 5.6.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.
@@ -123,7 +123,27 @@ export declare const Header: {
123
123
  };
124
124
  controls: {
125
125
  type: string;
126
- enum: string[];
126
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
127
+ };
128
+ customControlsOptions: {
129
+ type: string;
130
+ additionalProperties: boolean;
131
+ properties: {
132
+ type: {
133
+ type: string;
134
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
135
+ };
136
+ muteButtonShown: {
137
+ type: string;
138
+ };
139
+ positioning: {
140
+ type: string;
141
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
142
+ };
143
+ };
144
+ };
145
+ ariaLabel: {
146
+ type: string;
127
147
  };
128
148
  };
129
149
  } & {
@@ -271,7 +291,27 @@ export declare const Header: {
271
291
  };
272
292
  controls: {
273
293
  type: string;
274
- enum: string[];
294
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
295
+ };
296
+ customControlsOptions: {
297
+ type: string;
298
+ additionalProperties: boolean;
299
+ properties: {
300
+ type: {
301
+ type: string;
302
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
303
+ };
304
+ muteButtonShown: {
305
+ type: string;
306
+ };
307
+ positioning: {
308
+ type: string;
309
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
310
+ };
311
+ };
312
+ };
313
+ ariaLabel: {
314
+ type: string;
275
315
  };
276
316
  };
277
317
  };
@@ -388,6 +428,9 @@ export declare const Header: {
388
428
  };
389
429
  })[];
390
430
  };
431
+ ratio: {
432
+ type: string;
433
+ };
391
434
  };
392
435
  } & {
393
436
  optionName: string;
@@ -109,7 +109,27 @@ export declare const Media: {
109
109
  };
110
110
  controls: {
111
111
  type: string;
112
- enum: string[];
112
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
113
+ };
114
+ customControlsOptions: {
115
+ type: string;
116
+ additionalProperties: boolean;
117
+ properties: {
118
+ type: {
119
+ type: string;
120
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
121
+ };
122
+ muteButtonShown: {
123
+ type: string;
124
+ };
125
+ positioning: {
126
+ type: string;
127
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
128
+ };
129
+ };
130
+ };
131
+ ariaLabel: {
132
+ type: string;
113
133
  };
114
134
  };
115
135
  };
@@ -226,6 +246,9 @@ export declare const Media: {
226
246
  };
227
247
  })[];
228
248
  };
249
+ ratio: {
250
+ type: string;
251
+ };
229
252
  paddingTop: {
230
253
  type: string;
231
254
  enum: string[];
@@ -11,7 +11,7 @@ const CustomSwitcher_1 = require("../CustomSwitcher/CustomSwitcher");
11
11
  const b = (0, cn_1.block)('feed-controls');
12
12
  const renderSwitcher = ({ initial, list, defaultLabel }) =>
13
13
  // eslint-disable-next-line react/display-name
14
- ({ onClick, ref }) => (react_1.default.createElement(CustomSwitcher_1.CustomSwitcher, { initial: initial, defaultLabel: defaultLabel, list: list, controlRef: ref, onClick: onClick }));
14
+ ({ onClick, ref, onKeyDown, open }) => (react_1.default.createElement(CustomSwitcher_1.CustomSwitcher, { initial: initial, defaultLabel: defaultLabel, list: list, controlRef: ref, onClick: onClick, onKeyDown: onKeyDown, open: open }));
15
15
  exports.renderSwitcher = renderSwitcher;
16
16
  const renderFilter = ({ value, ref, onChange, onKeyDown }) => (react_1.default.createElement(uikit_1.TextInput, { controlRef: ref, controlProps: { size: 1 }, value: value, view: "clear", placeholder: (0, i18n_1.i18)(i18n_1.Keyset.Search), onUpdate: onChange, onKeyDown: onKeyDown, className: b('popup-filter') }));
17
17
  exports.renderFilter = renderFilter;
@@ -12,6 +12,17 @@ unpredictable css rules order in build */
12
12
  border-radius: var(--g-border-radius-xl);
13
13
  width: 100%;
14
14
  line-height: 42px;
15
+ text-align: initial;
16
+ font-family: inherit;
17
+ padding: 0;
18
+ margin: 0;
19
+ }
20
+ .bc-feed-custom-switcher__custom-switcher:focus {
21
+ outline: 2px solid var(--g-color-line-focus);
22
+ outline-offset: 0;
23
+ }
24
+ .bc-feed-custom-switcher__custom-switcher:focus:not(:focus-visible) {
25
+ outline: 0;
15
26
  }
16
27
  .bc-feed-custom-switcher__custom-switcher + .yc-popup.yc-popup_open {
17
28
  position: absolute !important;
@@ -8,5 +8,5 @@ export type CustomSwitcherProps = {
8
8
  list: SelectItem[];
9
9
  controlRef: RenderControlParameters['ref'];
10
10
  } & Omit<RenderControlParameters, 'ref'>;
11
- export declare const CustomSwitcher: ({ initial, defaultLabel, list, onClick, controlRef, }: CustomSwitcherProps) => React.JSX.Element;
11
+ export declare const CustomSwitcher: ({ initial, defaultLabel, list, onClick, controlRef, onKeyDown, open, }: CustomSwitcherProps) => React.JSX.Element;
12
12
  export {};
@@ -8,7 +8,7 @@ const DropdownArrow_1 = require("../../../../icons/DropdownArrow");
8
8
  const cn_1 = require("../../../../utils/cn");
9
9
  const b = (0, cn_1.block)('feed-custom-switcher');
10
10
  const ICON_SIZE = 12;
11
- const CustomSwitcher = ({ initial, defaultLabel, list, onClick, controlRef, }) => {
11
+ const CustomSwitcher = ({ initial, defaultLabel, list, onClick, controlRef, onKeyDown, open, }) => {
12
12
  const itemsNames = (0, react_1.useMemo)(() => {
13
13
  const items = list
14
14
  .filter((item) => initial.includes(item.value))
@@ -16,7 +16,7 @@ const CustomSwitcher = ({ initial, defaultLabel, list, onClick, controlRef, }) =
16
16
  return items.length ? items : [defaultLabel];
17
17
  }, [defaultLabel, initial, list]);
18
18
  const hasCounter = itemsNames.length > 1;
19
- return (react_1.default.createElement("div", { className: b('custom-switcher'), onClick: onClick, ref: controlRef },
19
+ return (react_1.default.createElement("button", { className: b('custom-switcher'), onClick: onClick, ref: controlRef, onKeyDown: onKeyDown, "aria-expanded": open },
20
20
  react_1.default.createElement("div", { className: b('custom-switcher-element', { content: true }) }, itemsNames === null || itemsNames === void 0 ? void 0 : itemsNames.join(', ')),
21
21
  hasCounter && (react_1.default.createElement("div", { className: b('custom-switcher-element', { counter: true }) }, itemsNames.length)),
22
22
  react_1.default.createElement("div", { className: b('custom-switcher-element', { arrow: true }) },
@@ -109,10 +109,20 @@ unpredictable css rules order in build */
109
109
  }
110
110
  .yfm_blog a {
111
111
  color: var(--g-color-text-link);
112
+ border-radius: var(--g-focus-border-radius);
112
113
  }
113
114
  .yfm_blog a:hover {
114
115
  color: var(--g-color-text-link-hover);
115
116
  }
117
+ .yfm_blog a:focus {
118
+ box-shadow: 0 0 0 2px var(--g-color-line-focus);
119
+ }
120
+ .yfm_blog a:focus:not(:focus-visible) {
121
+ box-shadow: none;
122
+ }
123
+ .yfm_blog a:focus {
124
+ outline: 0;
125
+ }
116
126
  .yfm_blog .yfm-tab:hover, .yfm_blog .yfm-tab:active {
117
127
  color: var(--g-color-text-link-hover);
118
128
  }
@@ -194,6 +204,7 @@ unpredictable css rules order in build */
194
204
  color: var(--g-color-text-link);
195
205
  text-decoration: none;
196
206
  cursor: pointer;
207
+ border-radius: var(--g-focus-border-radius);
197
208
  }
198
209
  .utilityfocus .yfm_constructor a:focus {
199
210
  outline: 2px solid #ffdb4d;
@@ -202,6 +213,12 @@ unpredictable css rules order in build */
202
213
  --pc-text-header-color: var(--g-color-text-link-hover);
203
214
  color: var(--g-color-text-link-hover);
204
215
  }
216
+ .yfm_constructor a:focus {
217
+ box-shadow: 0 0 0 2px var(--g-color-line-focus);
218
+ }
219
+ .yfm_constructor a:focus:not(:focus-visible) {
220
+ box-shadow: none;
221
+ }
205
222
  .yfm_constructor table {
206
223
  color: var(--g-color-text-primary);
207
224
  border: 1px solid var(--g-color-line-generic);
@@ -131,7 +131,27 @@ export declare const schemasForCustom: {
131
131
  };
132
132
  controls: {
133
133
  type: string;
134
- enum: string[];
134
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
135
+ };
136
+ customControlsOptions: {
137
+ type: string;
138
+ additionalProperties: boolean;
139
+ properties: {
140
+ type: {
141
+ type: string;
142
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
143
+ };
144
+ muteButtonShown: {
145
+ type: string;
146
+ };
147
+ positioning: {
148
+ type: string;
149
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
150
+ };
151
+ };
152
+ };
153
+ ariaLabel: {
154
+ type: string;
135
155
  };
136
156
  };
137
157
  } & {
@@ -279,7 +299,27 @@ export declare const schemasForCustom: {
279
299
  };
280
300
  controls: {
281
301
  type: string;
282
- enum: string[];
302
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
303
+ };
304
+ customControlsOptions: {
305
+ type: string;
306
+ additionalProperties: boolean;
307
+ properties: {
308
+ type: {
309
+ type: string;
310
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
311
+ };
312
+ muteButtonShown: {
313
+ type: string;
314
+ };
315
+ positioning: {
316
+ type: string;
317
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
318
+ };
319
+ };
320
+ };
321
+ ariaLabel: {
322
+ type: string;
283
323
  };
284
324
  };
285
325
  };
@@ -396,6 +436,9 @@ export declare const schemasForCustom: {
396
436
  };
397
437
  })[];
398
438
  };
439
+ ratio: {
440
+ type: string;
441
+ };
399
442
  };
400
443
  } & {
401
444
  optionName: string;
@@ -1226,7 +1269,27 @@ export declare const schemasForCustom: {
1226
1269
  };
1227
1270
  controls: {
1228
1271
  type: string;
1229
- enum: string[];
1272
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
1273
+ };
1274
+ customControlsOptions: {
1275
+ type: string;
1276
+ additionalProperties: boolean;
1277
+ properties: {
1278
+ type: {
1279
+ type: string;
1280
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
1281
+ };
1282
+ muteButtonShown: {
1283
+ type: string;
1284
+ };
1285
+ positioning: {
1286
+ type: string;
1287
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
1288
+ };
1289
+ };
1290
+ };
1291
+ ariaLabel: {
1292
+ type: string;
1230
1293
  };
1231
1294
  };
1232
1295
  };
@@ -1343,6 +1406,9 @@ export declare const schemasForCustom: {
1343
1406
  };
1344
1407
  })[];
1345
1408
  };
1409
+ ratio: {
1410
+ type: string;
1411
+ };
1346
1412
  paddingTop: {
1347
1413
  type: string;
1348
1414
  enum: string[];
@@ -123,7 +123,27 @@ export declare const Header: {
123
123
  };
124
124
  controls: {
125
125
  type: string;
126
- enum: string[];
126
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
127
+ };
128
+ customControlsOptions: {
129
+ type: string;
130
+ additionalProperties: boolean;
131
+ properties: {
132
+ type: {
133
+ type: string;
134
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
135
+ };
136
+ muteButtonShown: {
137
+ type: string;
138
+ };
139
+ positioning: {
140
+ type: string;
141
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
142
+ };
143
+ };
144
+ };
145
+ ariaLabel: {
146
+ type: string;
127
147
  };
128
148
  };
129
149
  } & {
@@ -271,7 +291,27 @@ export declare const Header: {
271
291
  };
272
292
  controls: {
273
293
  type: string;
274
- enum: string[];
294
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
295
+ };
296
+ customControlsOptions: {
297
+ type: string;
298
+ additionalProperties: boolean;
299
+ properties: {
300
+ type: {
301
+ type: string;
302
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
303
+ };
304
+ muteButtonShown: {
305
+ type: string;
306
+ };
307
+ positioning: {
308
+ type: string;
309
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
310
+ };
311
+ };
312
+ };
313
+ ariaLabel: {
314
+ type: string;
275
315
  };
276
316
  };
277
317
  };
@@ -388,6 +428,9 @@ export declare const Header: {
388
428
  };
389
429
  })[];
390
430
  };
431
+ ratio: {
432
+ type: string;
433
+ };
391
434
  };
392
435
  } & {
393
436
  optionName: string;
@@ -109,7 +109,27 @@ export declare const Media: {
109
109
  };
110
110
  controls: {
111
111
  type: string;
112
- enum: string[];
112
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
113
+ };
114
+ customControlsOptions: {
115
+ type: string;
116
+ additionalProperties: boolean;
117
+ properties: {
118
+ type: {
119
+ type: string;
120
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
121
+ };
122
+ muteButtonShown: {
123
+ type: string;
124
+ };
125
+ positioning: {
126
+ type: string;
127
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
128
+ };
129
+ };
130
+ };
131
+ ariaLabel: {
132
+ type: string;
113
133
  };
114
134
  };
115
135
  };
@@ -226,6 +246,9 @@ export declare const Media: {
226
246
  };
227
247
  })[];
228
248
  };
249
+ ratio: {
250
+ type: string;
251
+ };
229
252
  paddingTop: {
230
253
  type: string;
231
254
  enum: string[];
@@ -8,6 +8,6 @@ import './Controls.css';
8
8
  const b = block('feed-controls');
9
9
  export const renderSwitcher = ({ initial, list, defaultLabel }) =>
10
10
  // eslint-disable-next-line react/display-name
11
- ({ onClick, ref }) => (React.createElement(CustomSwitcher, { initial: initial, defaultLabel: defaultLabel, list: list, controlRef: ref, onClick: onClick }));
11
+ ({ onClick, ref, onKeyDown, open }) => (React.createElement(CustomSwitcher, { initial: initial, defaultLabel: defaultLabel, list: list, controlRef: ref, onClick: onClick, onKeyDown: onKeyDown, open: open }));
12
12
  export const renderFilter = ({ value, ref, onChange, onKeyDown }) => (React.createElement(TextInput, { controlRef: ref, controlProps: { size: 1 }, value: value, view: "clear", placeholder: i18(Keyset.Search), onUpdate: onChange, onKeyDown: onKeyDown, className: b('popup-filter') }));
13
13
  export const renderOption = (option) => (React.createElement(CustomSelectOption, { data: option }));
@@ -12,6 +12,17 @@ unpredictable css rules order in build */
12
12
  border-radius: var(--g-border-radius-xl);
13
13
  width: 100%;
14
14
  line-height: 42px;
15
+ text-align: initial;
16
+ font-family: inherit;
17
+ padding: 0;
18
+ margin: 0;
19
+ }
20
+ .bc-feed-custom-switcher__custom-switcher:focus {
21
+ outline: 2px solid var(--g-color-line-focus);
22
+ outline-offset: 0;
23
+ }
24
+ .bc-feed-custom-switcher__custom-switcher:focus:not(:focus-visible) {
25
+ outline: 0;
15
26
  }
16
27
  .bc-feed-custom-switcher__custom-switcher + .yc-popup.yc-popup_open {
17
28
  position: absolute !important;
@@ -9,5 +9,5 @@ export type CustomSwitcherProps = {
9
9
  list: SelectItem[];
10
10
  controlRef: RenderControlParameters['ref'];
11
11
  } & Omit<RenderControlParameters, 'ref'>;
12
- export declare const CustomSwitcher: ({ initial, defaultLabel, list, onClick, controlRef, }: CustomSwitcherProps) => React.JSX.Element;
12
+ export declare const CustomSwitcher: ({ initial, defaultLabel, list, onClick, controlRef, onKeyDown, open, }: CustomSwitcherProps) => React.JSX.Element;
13
13
  export {};
@@ -5,7 +5,7 @@ import { block } from '../../../../utils/cn';
5
5
  import './CustomSwitcher.css';
6
6
  const b = block('feed-custom-switcher');
7
7
  const ICON_SIZE = 12;
8
- export const CustomSwitcher = ({ initial, defaultLabel, list, onClick, controlRef, }) => {
8
+ export const CustomSwitcher = ({ initial, defaultLabel, list, onClick, controlRef, onKeyDown, open, }) => {
9
9
  const itemsNames = useMemo(() => {
10
10
  const items = list
11
11
  .filter((item) => initial.includes(item.value))
@@ -13,7 +13,7 @@ export const CustomSwitcher = ({ initial, defaultLabel, list, onClick, controlRe
13
13
  return items.length ? items : [defaultLabel];
14
14
  }, [defaultLabel, initial, list]);
15
15
  const hasCounter = itemsNames.length > 1;
16
- return (React.createElement("div", { className: b('custom-switcher'), onClick: onClick, ref: controlRef },
16
+ return (React.createElement("button", { className: b('custom-switcher'), onClick: onClick, ref: controlRef, onKeyDown: onKeyDown, "aria-expanded": open },
17
17
  React.createElement("div", { className: b('custom-switcher-element', { content: true }) }, itemsNames === null || itemsNames === void 0 ? void 0 : itemsNames.join(', ')),
18
18
  hasCounter && (React.createElement("div", { className: b('custom-switcher-element', { counter: true }) }, itemsNames.length)),
19
19
  React.createElement("div", { className: b('custom-switcher-element', { arrow: true }) },
@@ -109,10 +109,20 @@ unpredictable css rules order in build */
109
109
  }
110
110
  .yfm_blog a {
111
111
  color: var(--g-color-text-link);
112
+ border-radius: var(--g-focus-border-radius);
112
113
  }
113
114
  .yfm_blog a:hover {
114
115
  color: var(--g-color-text-link-hover);
115
116
  }
117
+ .yfm_blog a:focus {
118
+ box-shadow: 0 0 0 2px var(--g-color-line-focus);
119
+ }
120
+ .yfm_blog a:focus:not(:focus-visible) {
121
+ box-shadow: none;
122
+ }
123
+ .yfm_blog a:focus {
124
+ outline: 0;
125
+ }
116
126
  .yfm_blog .yfm-tab:hover, .yfm_blog .yfm-tab:active {
117
127
  color: var(--g-color-text-link-hover);
118
128
  }
@@ -194,6 +204,7 @@ unpredictable css rules order in build */
194
204
  color: var(--g-color-text-link);
195
205
  text-decoration: none;
196
206
  cursor: pointer;
207
+ border-radius: var(--g-focus-border-radius);
197
208
  }
198
209
  .utilityfocus .yfm_constructor a:focus {
199
210
  outline: 2px solid #ffdb4d;
@@ -202,6 +213,12 @@ unpredictable css rules order in build */
202
213
  --pc-text-header-color: var(--g-color-text-link-hover);
203
214
  color: var(--g-color-text-link-hover);
204
215
  }
216
+ .yfm_constructor a:focus {
217
+ box-shadow: 0 0 0 2px var(--g-color-line-focus);
218
+ }
219
+ .yfm_constructor a:focus:not(:focus-visible) {
220
+ box-shadow: none;
221
+ }
205
222
  .yfm_constructor table {
206
223
  color: var(--g-color-text-primary);
207
224
  border: 1px solid var(--g-color-line-generic);
@@ -131,7 +131,27 @@ export declare const schemasForCustom: {
131
131
  };
132
132
  controls: {
133
133
  type: string;
134
- enum: string[];
134
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
135
+ };
136
+ customControlsOptions: {
137
+ type: string;
138
+ additionalProperties: boolean;
139
+ properties: {
140
+ type: {
141
+ type: string;
142
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
143
+ };
144
+ muteButtonShown: {
145
+ type: string;
146
+ };
147
+ positioning: {
148
+ type: string;
149
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
150
+ };
151
+ };
152
+ };
153
+ ariaLabel: {
154
+ type: string;
135
155
  };
136
156
  };
137
157
  } & {
@@ -279,7 +299,27 @@ export declare const schemasForCustom: {
279
299
  };
280
300
  controls: {
281
301
  type: string;
282
- enum: string[];
302
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
303
+ };
304
+ customControlsOptions: {
305
+ type: string;
306
+ additionalProperties: boolean;
307
+ properties: {
308
+ type: {
309
+ type: string;
310
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
311
+ };
312
+ muteButtonShown: {
313
+ type: string;
314
+ };
315
+ positioning: {
316
+ type: string;
317
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
318
+ };
319
+ };
320
+ };
321
+ ariaLabel: {
322
+ type: string;
283
323
  };
284
324
  };
285
325
  };
@@ -396,6 +436,9 @@ export declare const schemasForCustom: {
396
436
  };
397
437
  })[];
398
438
  };
439
+ ratio: {
440
+ type: string;
441
+ };
399
442
  };
400
443
  } & {
401
444
  optionName: string;
@@ -1226,7 +1269,27 @@ export declare const schemasForCustom: {
1226
1269
  };
1227
1270
  controls: {
1228
1271
  type: string;
1229
- enum: string[];
1272
+ enum: import("@gravity-ui/page-constructor").MediaVideoControlsType[];
1273
+ };
1274
+ customControlsOptions: {
1275
+ type: string;
1276
+ additionalProperties: boolean;
1277
+ properties: {
1278
+ type: {
1279
+ type: string;
1280
+ enum: import("@gravity-ui/page-constructor").CustomControlsType[];
1281
+ };
1282
+ muteButtonShown: {
1283
+ type: string;
1284
+ };
1285
+ positioning: {
1286
+ type: string;
1287
+ enum: import("@gravity-ui/page-constructor").CustomControlsButtonPositioning[];
1288
+ };
1289
+ };
1290
+ };
1291
+ ariaLabel: {
1292
+ type: string;
1230
1293
  };
1231
1294
  };
1232
1295
  };
@@ -1343,6 +1406,9 @@ export declare const schemasForCustom: {
1343
1406
  };
1344
1407
  })[];
1345
1408
  };
1409
+ ratio: {
1410
+ type: string;
1411
+ };
1346
1412
  paddingTop: {
1347
1413
  type: string;
1348
1414
  enum: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/blog-constructor",
3
- "version": "5.5.0",
3
+ "version": "5.6.0",
4
4
  "description": "Gravity UI Blog Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -78,8 +78,8 @@
78
78
  },
79
79
  "peerDependencies": {
80
80
  "@doc-tools/transform": "^3.3.2",
81
- "@gravity-ui/page-constructor": "^4.0.0",
82
- "@gravity-ui/uikit": "^5.1.0",
81
+ "@gravity-ui/page-constructor": "^4.26.0",
82
+ "@gravity-ui/uikit": "^5.12.0",
83
83
  "react": "^16.0.0 || ^17.0.0 || ^18.0.0"
84
84
  },
85
85
  "devDependencies": {
@@ -89,11 +89,11 @@
89
89
  "@commitlint/config-conventional": "^17.4.3",
90
90
  "@doc-tools/transform": "^3.3.2",
91
91
  "@gravity-ui/eslint-config": "^2.0.0",
92
- "@gravity-ui/page-constructor": "^4.20.2",
92
+ "@gravity-ui/page-constructor": "^4.26.0",
93
93
  "@gravity-ui/prettier-config": "^1.0.1",
94
94
  "@gravity-ui/stylelint-config": "^1.0.0",
95
95
  "@gravity-ui/tsconfig": "^1.0.0",
96
- "@gravity-ui/uikit": "^5.11.0",
96
+ "@gravity-ui/uikit": "^5.12.0",
97
97
  "@storybook/addon-essentials": "^7.0.27",
98
98
  "@storybook/cli": "^7.0.27",
99
99
  "@storybook/preset-scss": "^1.0.3",
package/styles/yfm.css CHANGED
@@ -85,10 +85,20 @@ unpredictable css rules order in build */
85
85
  }
86
86
  .yfm_blog a {
87
87
  color: var(--g-color-text-link);
88
+ border-radius: var(--g-focus-border-radius);
88
89
  }
89
90
  .yfm_blog a:hover {
90
91
  color: var(--g-color-text-link-hover);
91
92
  }
93
+ .yfm_blog a:focus {
94
+ box-shadow: 0 0 0 2px var(--g-color-line-focus);
95
+ }
96
+ .yfm_blog a:focus:not(:focus-visible) {
97
+ box-shadow: none;
98
+ }
99
+ .yfm_blog a:focus {
100
+ outline: 0;
101
+ }
92
102
  .yfm_blog .yfm-tab:hover, .yfm_blog .yfm-tab:active {
93
103
  color: var(--g-color-text-link-hover);
94
104
  }
package/styles/yfm.scss CHANGED
@@ -98,10 +98,17 @@
98
98
 
99
99
  a {
100
100
  color: var(--g-color-text-link);
101
+ border-radius: var(--g-focus-border-radius);
101
102
 
102
103
  &:hover {
103
104
  color: var(--g-color-text-link-hover);
104
105
  }
106
+
107
+ @include focusable(0, 'box-shadow');
108
+
109
+ &:focus {
110
+ outline: 0;
111
+ }
105
112
  }
106
113
 
107
114
  .yfm-tab {