itube-specs 0.0.898 → 0.0.899

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.
@@ -997,9 +997,6 @@ $library-feed-meta-dot: $color-zinc-600;
997
997
  $library-feed-title: $color-zinc-500;
998
998
 
999
999
  // ─── Page: library ───
1000
- $page-library-heading: $color-white;
1001
- $page-library-heading-icon: $color-white;
1002
- $page-library-heading-icon-bg: $mono-white-10;
1003
1000
  $page-library-toggle-text: $color-zinc-300;
1004
1001
  $page-library-confirm-text: $color-zinc-300;
1005
1002
 
@@ -1025,9 +1025,6 @@ $library-feed-meta-dot: $color-gray-400;
1025
1025
  $library-feed-title: $color-gray-500;
1026
1026
 
1027
1027
  // ─── Page: library ───
1028
- $page-library-heading: $color-gray-900;
1029
- $page-library-heading-icon: $color-gray-900;
1030
- $page-library-heading-icon-bg: $color-gray-200;
1031
1028
  $page-library-toggle-text: $color-gray-700;
1032
1029
  $page-library-confirm-text: $color-gray-700;
1033
1030
 
@@ -6,6 +6,7 @@
6
6
  :title="title || t('top_models')"
7
7
  :count="count ?? items.length"
8
8
  :icon="icon"
9
+ :size="size"
9
10
  class="section-swiper-cards__title"
10
11
  title-tag="h2"
11
12
  />
@@ -69,6 +70,8 @@ withDefaults(defineProps<{
69
70
  /** Счётчик в шапке; по умолчанию — число карточек */
70
71
  count?: string | number
71
72
  icon?: string
73
+ /** Размер заголовка секции — см. `UiSectionTitle` */
74
+ size?: 'lg' | 'xl'
72
75
  placeholderAvatar?: string
73
76
  /** Карточки только с аватаром и названием, без счётчика роликов */
74
77
  withoutCount?: boolean
@@ -10,18 +10,19 @@
10
10
  >
11
11
  <h1
12
12
  v-if="titleTag === 'h1'"
13
- class="ui-section-title__title _title"
13
+ :class="titleClass"
14
14
  >{{ title }}</h1>
15
15
  <h2
16
16
  v-else-if="titleTag === 'h2'"
17
- class="ui-section-title__title _title"
17
+ :class="titleClass"
18
18
  >{{ title }}</h2>
19
19
  <h3
20
20
  v-else-if="titleTag === 'h3'"
21
- class="ui-section-title__title _title"
21
+ :class="titleClass"
22
22
  >{{ title }}</h3>
23
+ <!-- Без счётчика остаётся тот же чип, только с одной иконкой -->
23
24
  <UiCount
24
- v-if="count"
25
+ v-if="count || icon"
25
26
  :icon="icon"
26
27
  class="ui-section-title__count"
27
28
  >{{ count }}</UiCount>
@@ -29,15 +30,23 @@
29
30
  </template>
30
31
 
31
32
  <script setup lang="ts">
32
- withDefaults(defineProps<{
33
+ const props = withDefaults(defineProps<{
33
34
  count?: string | number
34
35
  titleTag?: string
35
36
  title: string
36
37
  icon?: string
37
38
  img?: string
39
+ /** `lg` — страничный заголовок (18px, капс); `xl` — заголовок секции (20px, без капса) */
40
+ size?: 'lg' | 'xl'
38
41
  }>(), {
39
- titleTag: 'h1'
42
+ titleTag: 'h1',
43
+ size: 'lg'
40
44
  });
45
+
46
+ const titleClass = computed(() => [
47
+ 'ui-section-title__title',
48
+ props.size === 'xl' ? '--xl' : '_title'
49
+ ]);
41
50
  </script>
42
51
 
43
52
  <style lang="scss">
@@ -48,6 +57,12 @@ withDefaults(defineProps<{
48
57
  vertical-align: middle;
49
58
  }
50
59
 
60
+ .ui-section-title__title.--xl {
61
+ @include font-xl;
62
+
63
+ font-weight: 600;
64
+ }
65
+
51
66
  .ui-section-title__flag,
52
67
  .ui-section-title__count.ui-count {
53
68
  display: inline-flex;
@@ -10,33 +10,6 @@ export const profileNavigationItems = [
10
10
  title: 'library',
11
11
  icon: 'library',
12
12
  group: 1,
13
- childs: [
14
- {
15
- value: '/user/profile?edit=true',
16
- title: 'videos',
17
- icon: 'video-camera',
18
- },
19
- {
20
- value: '/user/profile?edit=true',
21
- title: 'watch_later',
22
- icon: 'time',
23
- },
24
- {
25
- value: '/user/profile?edit=true',
26
- title: 'playlists',
27
- icon: 'list',
28
- },
29
- {
30
- value: '/user/profile?edit=true',
31
- title: 'models',
32
- icon: 'user',
33
- },
34
- {
35
- value: '/user/profile?edit=true',
36
- title: 'channels',
37
- icon: 'play-circle',
38
- },
39
- ]
40
13
  },
41
14
  {
42
15
  value: '/user/settings',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "itube-specs",
3
3
  "type": "module",
4
- "version": "0.0.898",
4
+ "version": "0.0.899",
5
5
  "main": "./nuxt.config.ts",
6
6
  "types": "./types/index.d.ts",
7
7
  "scripts": {
@@ -17,6 +17,7 @@
17
17
  :header-link-text="t('following.all_models')"
18
18
  all-link="/library/models"
19
19
  icon="user"
20
+ size="xl"
20
21
  placeholder-avatar="/img/model-placeholder.webp"
21
22
  class="following__section"
22
23
  without-count
@@ -31,6 +32,7 @@
31
32
  :header-link-text="t('following.all_channels')"
32
33
  all-link="/library/channels"
33
34
  icon="play-circle"
35
+ size="xl"
34
36
  placeholder-avatar="/img/logo-placeholder.svg"
35
37
  class="following__section"
36
38
  without-count
@@ -43,6 +45,7 @@
43
45
  :count="t('following.updates', { count: categoriesUpdates })"
44
46
  icon="grid"
45
47
  title-tag="h2"
48
+ size="xl"
46
49
  />
47
50
 
48
51
  <!-- На мобиле плитки «все» в гриде нет, поэтому ссылка вынесена в шапку -->
@@ -76,6 +79,7 @@
76
79
  :count="t('following.updates', { count: playlistsUpdates })"
77
80
  icon="playlist"
78
81
  title-tag="h2"
82
+ size="xl"
79
83
  />
80
84
 
81
85
  <UiLink
@@ -21,15 +21,12 @@
21
21
  class="library__section"
22
22
  >
23
23
  <header class="library__section-header">
24
- <h2 class="library__heading">
25
- <span class="library__heading-icon">
26
- <UiIcon
27
- name="history"
28
- size="16"
29
- />
30
- </span>
31
- {{ t('library.continue_watching') }}
32
- </h2>
24
+ <UiSectionTitle
25
+ :title="t('library.continue_watching')"
26
+ icon="history"
27
+ title-tag="h2"
28
+ size="xl"
29
+ />
33
30
 
34
31
  <UiLink
35
32
  :to="generateLink('/history')"
@@ -59,15 +56,12 @@
59
56
 
60
57
  <section class="library__section">
61
58
  <header class="library__section-header">
62
- <h2 class="library__heading">
63
- <span class="library__heading-icon">
64
- <UiIcon
65
- name="layers"
66
- size="16"
67
- />
68
- </span>
69
- {{ t('library.collections') }}
70
- </h2>
59
+ <UiSectionTitle
60
+ :title="t('library.collections')"
61
+ icon="layers"
62
+ title-tag="h2"
63
+ size="xl"
64
+ />
71
65
  </header>
72
66
 
73
67
  <ul class="library__grid">
@@ -87,15 +81,12 @@
87
81
 
88
82
  <section class="library__section">
89
83
  <header class="library__section-header">
90
- <h2 class="library__heading">
91
- <span class="library__heading-icon">
92
- <UiIcon
93
- name="plus"
94
- size="16"
95
- />
96
- </span>
97
- {{ t('library.following') }}
98
- </h2>
84
+ <UiSectionTitle
85
+ :title="t('library.following')"
86
+ icon="plus"
87
+ title-tag="h2"
88
+ size="xl"
89
+ />
99
90
 
100
91
  <UiLink
101
92
  :to="generateLink('/following')"
@@ -307,28 +298,6 @@ const breadcrumbs = [
307
298
  margin-bottom: 16px;
308
299
  }
309
300
 
310
- .library__heading {
311
- @include font-xl;
312
-
313
- display: flex;
314
- align-items: center;
315
- column-gap: 8px;
316
- margin: 0;
317
- font-weight: 600;
318
- color: $page-library-heading;
319
- }
320
-
321
- .library__heading-icon {
322
- display: grid;
323
- place-content: center;
324
- flex-shrink: 0;
325
- width: 24px;
326
- height: 24px;
327
- color: $page-library-heading-icon;
328
- background-color: $page-library-heading-icon-bg;
329
- border-radius: $radius-md;
330
- }
331
-
332
301
  .library__continue {
333
302
  display: grid;
334
303
  gap: 16px;