itube-specs 0.0.1041 → 0.0.1043

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/app.config.ts ADDED
@@ -0,0 +1,43 @@
1
+ import type { INavExtraItem, INavItemOverride, IQuickFilterScheme, ISecondNavItem } from './types';
2
+
3
+ export default defineAppConfig({
4
+ // Дефолты, чтобы слой собирался/тестировался standalone.
5
+ // Проект deep-merge'ит свои per-site значения поверх.
6
+ theme: 'dark',
7
+ quickVideoFilters: [] as IQuickFilterScheme[],
8
+ logoSize: null as { width: number, height: number } | null,
9
+ secondNav: [] as ISecondNavItem[],
10
+ /** Правки пунктов главной навигации слоя по их `title` (подпись, ссылка по нишам). */
11
+ navOverrides: {} as Record<string, INavItemOverride>,
12
+ /** Дополнительные пункты главной навигации, каждый — за пунктом слоя `after`. */
13
+ navExtraItems: [] as INavExtraItem[],
14
+ /** Есть ли у сайта сгруппированный вид категорий (`/categories` — группы, `/categories/all` — A–Z).
15
+ * `false` — `/categories` сам список A–Z: `CategoryNav` без табов Grouped / A-Z, «All» ведёт на `/categories`. */
16
+ categoriesGrouped: true,
17
+ /** Блок Live Cams в сетках листингов (при `FeatureWebcamsEnabled`), `null` — нет. `videos` — после какой строки
18
+ * карточек и сколько врезок вебкам-тумб (хвост того же списка) в сетке видео листинга (не похожие, не плейлист,
19
+ * не когда страница передала врезки сама); `models` — в основной сетке моделей (`priority`, не футер). */
20
+ gridWebcams: {
21
+ videos: null as { afterRows: number, inserts: number } | null,
22
+ models: null as { afterRows: number } | null,
23
+ },
24
+ /** Класс кликабельной части карточек в сетках видео и моделей — для сайтовых хуков (триггер попандера). */
25
+ cardTriggerClass: '',
26
+ /** Состав страницы видео. */
27
+ videoPage: {
28
+ /** Фразы, по которым пришли на ролик, — строкой над заголовком. */
29
+ refererPhrases: false,
30
+ /** Пагинация похожих. */
31
+ relatedPagination: true,
32
+ /** Карусель моделей под похожими. */
33
+ relatedModels: true,
34
+ /** Блок Live Cams после похожих (при `FeatureWebcamsEnabled`); врезки в похожие берут хвост того же списка. */
35
+ webcamsBlock: false,
36
+ /** Сколько моделей из хвоста списка уходит во врезки похожих, когда блок Live Cams включён. */
37
+ webcamInserts: 8,
38
+ /** Мета ролика как на старых движках: description — до трёх фраз перехода (недостающие — из тегов), без них —
39
+ * категории, склейка ключами `meta.videos-slug.tags_and` / `tags_tail`; в title доступен `{thirdText}` — название
40
+ * в Title Case. Выключено — description из описания ролика. */
41
+ metaFromPhrases: false,
42
+ },
43
+ });
@@ -25,6 +25,7 @@
25
25
 
26
26
  .main {
27
27
  display: grid;
28
+ grid-template-columns: minmax(0, 1fr);
28
29
  flex-grow: 1;
29
30
  }
30
31
 
@@ -18,6 +18,7 @@
18
18
  text-transform: uppercase;
19
19
  letter-spacing: var(--tracking-wide);
20
20
  font-weight: 700;
21
+ overflow-wrap: break-word;
21
22
 
22
23
  @include from-br(xm) {
23
24
  @include font-lg;
@@ -319,6 +319,7 @@ $updated-word-width: 240px;
319
319
  .card-playlist {
320
320
  position: relative;
321
321
  display: grid;
322
+ grid-template-columns: minmax(0, 1fr);
322
323
  width: 100%;
323
324
  container-type: inline-size;
324
325
  align-items: start;
@@ -383,8 +384,10 @@ $updated-word-width: 240px;
383
384
  .card-playlist__wrapper-header {
384
385
  display: flex;
385
386
  align-items: center;
387
+ flex-wrap: wrap;
386
388
  justify-content: space-between;
387
389
  column-gap: 24px;
390
+ row-gap: 4px;
388
391
  margin-bottom: 8px;
389
392
  }
390
393
 
@@ -29,6 +29,7 @@ function getLetter(letter: string) {
29
29
  <style lang="scss">
30
30
  .category-by-letter {
31
31
  display: grid;
32
+ grid-template-columns: minmax(0, 1fr);
32
33
  row-gap: 48px;
33
34
 
34
35
  @include to-br(sm) {
@@ -51,6 +51,7 @@ const { t } = useI18n();
51
51
  .category-list {
52
52
  overflow: hidden;
53
53
  width: 100%;
54
+ min-width: 0;
54
55
 
55
56
  @include to-br(sm) {
56
57
  display: flex;
@@ -88,6 +89,7 @@ const { t } = useI18n();
88
89
  margin-bottom: 6px;
89
90
  padding-block: 4px;
90
91
  width: max-content;
92
+ max-width: 100%;
91
93
  }
92
94
 
93
95
  @include to-br(sm) {
@@ -84,7 +84,15 @@ const resultItems = computed(() => {
84
84
  color: $breadcrumbs-text;
85
85
  }
86
86
 
87
+ .ui-breadcrumbs ol li:last-child {
88
+ min-width: 0;
89
+ }
90
+
87
91
  .ui-breadcrumbs ol li:last-child .ui-breadcrumbs__item {
92
+ min-width: 0;
93
+ overflow: hidden;
94
+ white-space: nowrap;
95
+ text-overflow: ellipsis;
88
96
  color: $breadcrumbs-text--current;
89
97
  text-transform: capitalize;
90
98
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "itube-specs",
3
3
  "type": "module",
4
- "version": "0.0.1041",
4
+ "version": "0.0.1043",
5
5
  "main": "./nuxt.config.ts",
6
6
  "types": "./types/index.d.ts",
7
7
  "scripts": {
@@ -86,6 +86,7 @@
86
86
  "scripts/spec.sh",
87
87
  "SITE_UPDATES.md",
88
88
  "nuxt.config.ts",
89
+ "app.config.ts",
89
90
  "DOCS/"
90
91
  ],
91
92
  "devDependencies": {