nuance-ui 0.2.8 → 0.2.9

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/LICENSE.md +9 -9
  2. package/README.md +75 -75
  3. package/dist/module.json +1 -1
  4. package/dist/runtime/components/action-icon/action-icon-group.vue +3 -3
  5. package/dist/runtime/components/action-icon/action-icon.vue +23 -23
  6. package/dist/runtime/components/app-shell/app-shell-aside.vue +30 -30
  7. package/dist/runtime/components/app-shell/app-shell-footer.vue +29 -29
  8. package/dist/runtime/components/app-shell/app-shell-header.vue +30 -30
  9. package/dist/runtime/components/app-shell/app-shell-main.vue +18 -18
  10. package/dist/runtime/components/app-shell/app-shell-navbar.vue +34 -34
  11. package/dist/runtime/components/app-shell/app-shell-section.vue +10 -10
  12. package/dist/runtime/components/app-shell/app-shell.vue +34 -34
  13. package/dist/runtime/components/box.vue +3 -3
  14. package/dist/runtime/components/breadcrumbs.vue +78 -78
  15. package/dist/runtime/components/button/button.vue +40 -40
  16. package/dist/runtime/components/button/unstyled-button.vue +23 -23
  17. package/dist/runtime/components/calendar/calendar.vue +60 -60
  18. package/dist/runtime/components/calendar/ui/core/calendar-header.vue +95 -95
  19. package/dist/runtime/components/calendar/ui/core/calendar-root.vue +3 -3
  20. package/dist/runtime/components/calendar/ui/levels/calendar-decade.vue +40 -40
  21. package/dist/runtime/components/calendar/ui/levels/calendar-month.vue +77 -77
  22. package/dist/runtime/components/calendar/ui/levels/calendar-year.vue +40 -40
  23. package/dist/runtime/components/card/card-section.vue +3 -3
  24. package/dist/runtime/components/card/card.vue +3 -3
  25. package/dist/runtime/components/checkbox/checkbox-card.vue +37 -37
  26. package/dist/runtime/components/checkbox/checkbox-indicator.vue +117 -117
  27. package/dist/runtime/components/checkbox/checkbox.vue +139 -139
  28. package/dist/runtime/components/chip/chip-group.vue +2 -2
  29. package/dist/runtime/components/chip/chip.vue +200 -200
  30. package/dist/runtime/components/combobox/combobox-dropdown.vue +14 -14
  31. package/dist/runtime/components/combobox/combobox-empty.vue +3 -3
  32. package/dist/runtime/components/combobox/combobox-group.vue +21 -21
  33. package/dist/runtime/components/combobox/combobox-option-list.vue +3 -3
  34. package/dist/runtime/components/combobox/combobox-option.vue +22 -22
  35. package/dist/runtime/components/combobox/combobox-options-dropdown.vue +29 -29
  36. package/dist/runtime/components/combobox/combobox-root.vue +3 -3
  37. package/dist/runtime/components/combobox/combobox-target.vue +3 -3
  38. package/dist/runtime/components/container.vue +8 -8
  39. package/dist/runtime/components/date-time-picker.d.vue.ts +3 -3
  40. package/dist/runtime/components/date-time-picker.vue +66 -66
  41. package/dist/runtime/components/date-time-picker.vue.d.ts +3 -3
  42. package/dist/runtime/components/dialog/ui/dialog-close-button.vue +11 -11
  43. package/dist/runtime/components/dialog/ui/dialog-header.vue +5 -5
  44. package/dist/runtime/components/dialog/ui/dialog-title.vue +5 -5
  45. package/dist/runtime/components/drawer/drawer-close-button.vue +3 -3
  46. package/dist/runtime/components/drawer/drawer-header.vue +3 -3
  47. package/dist/runtime/components/drawer/drawer-root.vue +15 -15
  48. package/dist/runtime/components/drawer/drawer-title.vue +3 -3
  49. package/dist/runtime/components/files/file-upload-button.vue +12 -12
  50. package/dist/runtime/components/files/file-upload-icon.vue +1 -1
  51. package/dist/runtime/components/input/date-picker.vue +85 -85
  52. package/dist/runtime/components/input/email-input.vue +19 -19
  53. package/dist/runtime/components/input/number-input.vue +134 -134
  54. package/dist/runtime/components/input/password-input.vue +28 -28
  55. package/dist/runtime/components/input/text-input.vue +35 -35
  56. package/dist/runtime/components/input/ui/input-inline.vue +105 -105
  57. package/dist/runtime/components/input/ui/input-wrapper.vue +54 -54
  58. package/dist/runtime/components/link/link-button.vue +16 -16
  59. package/dist/runtime/components/link/link.vue +10 -10
  60. package/dist/runtime/components/loader/_loaders/bars-loader.vue +5 -5
  61. package/dist/runtime/components/loader/_loaders/dots-loader.vue +5 -5
  62. package/dist/runtime/components/loader/_loaders/oval-loader.vue +1 -1
  63. package/dist/runtime/components/modal/modal-close-button.vue +3 -3
  64. package/dist/runtime/components/modal/modal-header.vue +3 -3
  65. package/dist/runtime/components/modal/modal-root.vue +13 -13
  66. package/dist/runtime/components/modal/modal-title.vue +3 -3
  67. package/dist/runtime/components/nav-link/nav-icon-link.vue +15 -15
  68. package/dist/runtime/components/nav-link/nav-link.vue +132 -132
  69. package/dist/runtime/components/paper.vue +33 -33
  70. package/dist/runtime/components/popover/popover-dropdown.vue +69 -70
  71. package/dist/runtime/components/popover/popover-target.vue +8 -8
  72. package/dist/runtime/components/popover/popover.vue +1 -1
  73. package/dist/runtime/components/progress/progress-label.vue +3 -3
  74. package/dist/runtime/components/progress/progress-root.vue +3 -3
  75. package/dist/runtime/components/progress/progress-section.vue +8 -8
  76. package/dist/runtime/components/progress/progress.vue +9 -9
  77. package/dist/runtime/components/renderless/renderless.vue +3 -3
  78. package/dist/runtime/components/roving-focus/roving-focus-item.vue +14 -14
  79. package/dist/runtime/components/select.vue +63 -63
  80. package/dist/runtime/components/switch/switch-group.vue +16 -16
  81. package/dist/runtime/components/table/table.d.ts +30 -30
  82. package/dist/runtime/components/table/ui/table-sortable-header.vue +11 -11
  83. package/dist/runtime/components/tabs/tabs-list.vue +10 -10
  84. package/dist/runtime/components/tabs/tabs-panel.vue +11 -11
  85. package/dist/runtime/components/tabs/tabs-root.vue +8 -8
  86. package/dist/runtime/components/tabs/tabs-tab.vue +22 -22
  87. package/dist/runtime/components/text.vue +67 -67
  88. package/dist/runtime/components/textarea.vue +36 -36
  89. package/dist/runtime/components/title.vue +14 -14
  90. package/dist/runtime/components/transition.vue +3 -3
  91. package/dist/runtime/components/tree/_ui/tree-item.vue +128 -129
  92. package/dist/runtime/components/tree/_ui/tree-root.vue +21 -21
  93. package/dist/runtime/components/visually-hidden/visually-hidden-input.vue +1 -1
  94. package/dist/runtime/components/visually-hidden/visually-hidden.vue +9 -9
  95. package/dist/runtime/styles/dark-theme.css +1 -1
  96. package/package.json +1 -1
@@ -52,61 +52,61 @@ const style = computed(() => ({
52
52
  </script>
53
53
 
54
54
  <template>
55
- <div :style :class='$style.wrapper'>
56
- <InputLabel
57
- :data-v-hidden='!label && !$slots.label || null'
58
- :for='uid'
59
- :class='$style.label'
60
- :size
61
- :required
62
- >
63
- <slot name='label'>
64
- {{ label }}
65
- </slot>
66
- </InputLabel>
67
-
68
- <slot />
69
-
70
- <p v-if='error' :class='$style.error'>
71
- <slot name='error'>
72
- {{ error }}
73
- </slot>
74
- </p>
75
-
76
- <p v-else-if='description || $slots.description' :class='$style.description'>
77
- <slot name='description'>
78
- {{ description }}
79
- </slot>
80
- </p>
81
- </div>
55
+ <div :style :class='$style.wrapper'>
56
+ <InputLabel
57
+ :data-v-hidden='!label && !$slots.label || null'
58
+ :for='uid'
59
+ :class='$style.label'
60
+ :size
61
+ :required
62
+ >
63
+ <slot name='label'>
64
+ {{ label }}
65
+ </slot>
66
+ </InputLabel>
67
+
68
+ <slot />
69
+
70
+ <p v-if='error' :class='$style.error'>
71
+ <slot name='error'>
72
+ {{ error }}
73
+ </slot>
74
+ </p>
75
+
76
+ <p v-else-if='description || $slots.description' :class='$style.description'>
77
+ <slot name='description'>
78
+ {{ description }}
79
+ </slot>
80
+ </p>
81
+ </div>
82
82
  </template>
83
83
 
84
84
  <style lang="postcss" module>
85
- .wrapper {
86
- --input-error-size: calc(var(--font-size-sm) - rem(2px));
87
- --input-description-size: calc(var(--font-size-sm) - rem(2px));
88
-
89
- line-height: var(--line-height);
90
- }
91
-
92
- .error,
93
- .description {
94
- display: block;
95
-
96
- margin: 0;
97
- padding: 0;
98
-
99
- line-height: 1.2;
100
- overflow-wrap: break-word;
101
- }
102
-
103
- .error {
104
- font-size: var(--input-error-size);
105
- color: var(--color-error);
106
- }
107
-
108
- .description {
109
- font-size: var(--input-description-size, calc(var(--font-size-sm) - rem(2px)));
110
- color: var(--color-dimmed);
111
- }
85
+ .wrapper {
86
+ --input-error-size: calc(var(--font-size-sm) - rem(2px));
87
+ --input-description-size: calc(var(--font-size-sm) - rem(2px));
88
+
89
+ line-height: var(--line-height);
90
+ }
91
+
92
+ .error,
93
+ .description {
94
+ display: block;
95
+
96
+ margin: 0;
97
+ padding: 0;
98
+
99
+ line-height: 1.2;
100
+ overflow-wrap: break-word;
101
+ }
102
+
103
+ .error {
104
+ font-size: var(--input-error-size);
105
+ color: var(--color-error);
106
+ }
107
+
108
+ .description {
109
+ font-size: var(--input-description-size, calc(var(--font-size-sm) - rem(2px)));
110
+ color: var(--color-dimmed);
111
+ }
112
112
  </style>
@@ -37,26 +37,26 @@ const { link, rest } = pickLinkProps(props);
37
37
  </script>
38
38
 
39
39
  <template>
40
- <NuxtLink v-slot='{ href, navigate, ...linkProps }' v-bind='link' custom>
41
- <Button
40
+ <NuxtLink v-slot='{ href, navigate, ...linkProps }' v-bind='link' custom>
41
+ <Button
42
42
  v-bind='{
43
43
  ...rest,
44
44
  is: rest?.is || "a",
45
45
  href,
46
46
  rel: "rel" in linkProps ? linkProps.rel : void 0,
47
47
  target: "target" in linkProps ? linkProps.target : void 0
48
- }'
49
- @click='navigate'
50
- >
51
- <template v-if='$slots.leftSection' #leftSection>
52
- <slot name='leftSection' />
53
- </template>
54
-
55
- <slot />
56
-
57
- <template v-if='$slots.rightSection' #rightSection>
58
- <slot name='rightSection' />
59
- </template>
60
- </Button>
61
- </NuxtLink>
48
+ }'
49
+ @click='navigate'
50
+ >
51
+ <template v-if='$slots.leftSection' #leftSection>
52
+ <slot name='leftSection' />
53
+ </template>
54
+
55
+ <slot />
56
+
57
+ <template v-if='$slots.rightSection' #rightSection>
58
+ <slot name='rightSection' />
59
+ </template>
60
+ </Button>
61
+ </NuxtLink>
62
62
  </template>
@@ -37,22 +37,22 @@ const { link, rest: { underline, ...rest } } = pickLinkProps(props);
37
37
  </script>
38
38
 
39
39
  <template>
40
- <NuxtLink v-slot='{ href, navigate, ...linkProps }' v-bind='link' custom>
41
- <Text
42
- is='a'
43
- :class='[$style.root, { [$style.underline]: underline }]'
40
+ <NuxtLink v-slot='{ href, navigate, ...linkProps }' v-bind='link' custom>
41
+ <Text
42
+ is='a'
43
+ :class='[$style.root, { [$style.underline]: underline }]'
44
44
  v-bind='{
45
45
  ...rest,
46
46
  ...$attrs,
47
47
  href,
48
48
  rel: "rel" in linkProps ? linkProps.rel : void 0,
49
49
  target: "target" in linkProps ? linkProps.target : void 0
50
- }'
51
- @click='navigate'
52
- >
53
- <slot />
54
- </Text>
55
- </NuxtLink>
50
+ }'
51
+ @click='navigate'
52
+ >
53
+ <slot />
54
+ </Text>
55
+ </NuxtLink>
56
56
  </template>
57
57
 
58
58
  <style module>
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <span :class='$style.root'>
3
- <span :class='$style.bar' />
4
- <span :class='$style.bar' />
5
- <span :class='$style.bar' />
6
- </span>
2
+ <span :class='$style.root'>
3
+ <span :class='$style.bar' />
4
+ <span :class='$style.bar' />
5
+ <span :class='$style.bar' />
6
+ </span>
7
7
  </template>
8
8
 
9
9
  <style module>
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <span :class='$style.root'>
3
- <span :class='$style.dot' />
4
- <span :class='$style.dot' />
5
- <span :class='$style.dot' />
6
- </span>
2
+ <span :class='$style.root'>
3
+ <span :class='$style.dot' />
4
+ <span :class='$style.dot' />
5
+ <span :class='$style.dot' />
6
+ </span>
7
7
  </template>
8
8
 
9
9
  <style module>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <span :class='$style.root' />
2
+ <span :class='$style.root' />
3
3
  </template>
4
4
 
5
5
  <style module>
@@ -15,7 +15,7 @@ const props = defineProps({
15
15
  </script>
16
16
 
17
17
  <template>
18
- <DialogCloseButton v-bind='props'>
19
- <slot />
20
- </DialogCloseButton>
18
+ <DialogCloseButton v-bind='props'>
19
+ <slot />
20
+ </DialogCloseButton>
21
21
  </template>
@@ -7,7 +7,7 @@ const props = defineProps({
7
7
  </script>
8
8
 
9
9
  <template>
10
- <DialogHeader v-bind='props'>
11
- <slot />
12
- </DialogHeader>
10
+ <DialogHeader v-bind='props'>
11
+ <slot />
12
+ </DialogHeader>
13
13
  </template>
@@ -31,17 +31,17 @@ const opened = defineModel("open", { type: Boolean, ...{ default: false } });
31
31
  </script>
32
32
 
33
33
  <template>
34
- <DialogRoot
35
- v-model:open='opened'
36
- :mod='[{ centered, "full-screen": fullScreen }, mod]'
37
- :root-class='css.root'
38
- :within-portal
39
- :close-on-click-outside
40
- :without-overlay
41
- v-bind='rest'
42
- @open='$emit("open")'
43
- @close='$emit("close")'
44
- >
45
- <slot />
46
- </DialogRoot>
34
+ <DialogRoot
35
+ v-model:open='opened'
36
+ :mod='[{ centered, "full-screen": fullScreen }, mod]'
37
+ :root-class='css.root'
38
+ :within-portal
39
+ :close-on-click-outside
40
+ :without-overlay
41
+ v-bind='rest'
42
+ @open='$emit("open")'
43
+ @close='$emit("close")'
44
+ >
45
+ <slot />
46
+ </DialogRoot>
47
47
  </template>
@@ -19,7 +19,7 @@ const props = defineProps({
19
19
  </script>
20
20
 
21
21
  <template>
22
- <DialogTitle v-bind='props'>
23
- <slot />
24
- </DialogTitle>
22
+ <DialogTitle v-bind='props'>
23
+ <slot />
24
+ </DialogTitle>
25
25
  </template>
@@ -40,19 +40,19 @@ const { link, rest } = pickLinkProps(etc);
40
40
  </script>
41
41
 
42
42
  <template>
43
- <NuxtLink v-slot='{ href, navigate, isActive, ...linkProps }' v-bind='link' custom>
44
- <ActionIcon
45
- is='a'
46
- v-bind='{ ...rest, ...$attrs }'
47
- :href
48
- :variant='isActive ? active : notActive'
49
- :mod='[{ active: isActive }, mod]'
50
- :aria-current="isActive ? 'page' : void 0"
51
- :rel='"rel" in linkProps ? linkProps?.rel : void 0'
52
- :target='"target" in linkProps ? linkProps?.target : void 0'
53
- @click='navigate'
54
- >
55
- <slot />
56
- </ActionIcon>
57
- </NuxtLink>
43
+ <NuxtLink v-slot='{ href, navigate, isActive, ...linkProps }' v-bind='link' custom>
44
+ <ActionIcon
45
+ is='a'
46
+ v-bind='{ ...rest, ...$attrs }'
47
+ :href
48
+ :variant='isActive ? active : notActive'
49
+ :mod='[{ active: isActive }, mod]'
50
+ :aria-current="isActive ? 'page' : void 0"
51
+ :rel='"rel" in linkProps ? linkProps?.rel : void 0'
52
+ :target='"target" in linkProps ? linkProps?.target : void 0'
53
+ @click='navigate'
54
+ >
55
+ <slot />
56
+ </ActionIcon>
57
+ </NuxtLink>
58
58
  </template>
@@ -57,139 +57,139 @@ const style = computed(() => useStyleResolver((theme) => {
57
57
  </script>
58
58
 
59
59
  <template>
60
- <NuxtLink v-slot='{ href, navigate, isActive, ...linkProps }' v-bind='link' custom>
61
- <UnstyledButton
62
- is='a'
63
- :href
64
- :style
65
- :class='$style.root'
66
- :mod='[{ active: isActive, disabled }, mod]'
67
- :aria-current="isActive ? 'page' : void 0"
68
- :rel='"rel" in linkProps ? linkProps?.rel : void 0'
69
- :target='"target" in linkProps ? linkProps?.target : void 0'
70
- @click='navigate'
71
- >
72
- <span v-if='$slots.leftSection || icon' :class='$style.section' data-position='left'>
73
- <slot name='leftSection'>
74
- <Icon v-if='icon' :name='icon' />
75
- </slot>
76
- </span>
77
-
78
- <Box :class='$style.body' :mod='{ "no-wrap": noWrap }'>
79
- <span :class='$style.label'>
80
- <slot />
81
- </span>
82
- <Box :class='$style.description' :mod='{ active }'>
83
- <slot name='description'>
84
- {{ description }}
85
- </slot>
86
- </Box>
87
- </Box>
88
-
89
- <span v-if='$slots.rightSection' :class='$style.section' data-position='right'>
90
- <slot name='rightSection' />
91
- </span>
92
- </UnstyledButton>
93
- </NuxtLink>
60
+ <NuxtLink v-slot='{ href, navigate, isActive, ...linkProps }' v-bind='link' custom>
61
+ <UnstyledButton
62
+ is='a'
63
+ :href
64
+ :style
65
+ :class='$style.root'
66
+ :mod='[{ active: isActive, disabled }, mod]'
67
+ :aria-current="isActive ? 'page' : void 0"
68
+ :rel='"rel" in linkProps ? linkProps?.rel : void 0'
69
+ :target='"target" in linkProps ? linkProps?.target : void 0'
70
+ @click='navigate'
71
+ >
72
+ <span v-if='$slots.leftSection || icon' :class='$style.section' data-position='left'>
73
+ <slot name='leftSection'>
74
+ <Icon v-if='icon' :name='icon' />
75
+ </slot>
76
+ </span>
77
+
78
+ <Box :class='$style.body' :mod='{ "no-wrap": noWrap }'>
79
+ <span :class='$style.label'>
80
+ <slot />
81
+ </span>
82
+ <Box :class='$style.description' :mod='{ active }'>
83
+ <slot name='description'>
84
+ {{ description }}
85
+ </slot>
86
+ </Box>
87
+ </Box>
88
+
89
+ <span v-if='$slots.rightSection' :class='$style.section' data-position='right'>
90
+ <slot name='rightSection' />
91
+ </span>
92
+ </UnstyledButton>
93
+ </NuxtLink>
94
94
  </template>
95
95
 
96
96
  <style module lang="postcss">
97
- .root {
98
- --nl-spacing-xs: .25rem;
99
- --nl-spacing-sm: .5rem;
100
- --nl-spacing-md: .75rem;
101
- --nl-spacing-lg: 1rem;
102
- --nl-spacing-xl: 1.25rem;
103
-
104
- --nl-bg: var(--color-primary-light);
105
- --nl-hover: var(--color-primary-light-hover);
106
- --nl-color: var(--color-primary-light-color);
107
- --nl-spacing: var(--nl-spacing-xs);
108
-
109
- user-select: none;
110
-
111
- display: flex;
112
- gap: var(--nl-spacing);
113
- align-items: center;
114
-
115
- width: 100%;
116
- padding: .25rem var(--spacing-sm);
117
- border-radius: var(--radius-default);
118
-
119
- &:where([data-disabled]) {
120
- pointer-events: none;
121
-
122
- opacity: 0.4;
123
- }
124
-
125
- &:hover {
126
- @mixin where-light {
127
- background-color: var(--color-gray-0);
128
- }
129
-
130
- @mixin where-dark {
131
- background-color: var(--color-dark-6);
132
- }
133
- }
134
-
135
- &:where([data-active]) {
136
- color: var(--nl-color);
137
-
138
- background-color: var(--nl-bg);
139
-
140
- .description {
141
- --description-opacity: 0.9;
142
- --description-color: var(--nl-color);
143
- }
144
-
145
- &:hover {
146
- background-color: var(--nl-hover);
147
- }
148
- }
149
- }
150
-
151
- .section {
152
- display: flex;
153
- align-items: center;
154
- justify-content: center;
155
-
156
- transition: transform 150ms ease;
157
-
158
- &>svg {
159
- display: block;
160
- }
161
-
162
- &:where([data-rotate]) {
163
- transform: rotate(90deg);
164
- }
165
- }
166
-
167
- .label {
168
- font-size: var(--font-size-sm);
169
- }
170
-
171
- .body {
172
- overflow: hidden;
173
- flex: 1;
174
-
175
- text-overflow: ellipsis;
176
-
177
- &:where([data-no-wrap]) {
178
- white-space: nowrap;
179
- }
180
- }
181
-
182
- .description {
183
- overflow: hidden;
184
-
185
- font-size: var(--font-size-xs);
186
- color: var(--description-color, var(--color-dimmed));
187
- text-overflow: ellipsis;
188
-
189
- opacity: var(--description-opacity, 1);
190
-
191
- :where([data-no-wrap]) & {
192
- white-space: nowrap;
193
- }
194
- }
97
+ .root {
98
+ --nl-spacing-xs: .25rem;
99
+ --nl-spacing-sm: .5rem;
100
+ --nl-spacing-md: .75rem;
101
+ --nl-spacing-lg: 1rem;
102
+ --nl-spacing-xl: 1.25rem;
103
+
104
+ --nl-bg: var(--color-primary-light);
105
+ --nl-hover: var(--color-primary-light-hover);
106
+ --nl-color: var(--color-primary-light-color);
107
+ --nl-spacing: var(--nl-spacing-xs);
108
+
109
+ user-select: none;
110
+
111
+ display: flex;
112
+ gap: var(--nl-spacing);
113
+ align-items: center;
114
+
115
+ width: 100%;
116
+ padding: .25rem var(--spacing-sm);
117
+ border-radius: var(--radius-default);
118
+
119
+ &:where([data-disabled]) {
120
+ pointer-events: none;
121
+
122
+ opacity: 0.4;
123
+ }
124
+
125
+ &:hover {
126
+ @mixin where-light {
127
+ background-color: var(--color-gray-0);
128
+ }
129
+
130
+ @mixin where-dark {
131
+ background-color: var(--color-dark-6);
132
+ }
133
+ }
134
+
135
+ &:where([data-active]) {
136
+ color: var(--nl-color);
137
+
138
+ background-color: var(--nl-bg);
139
+
140
+ .description {
141
+ --description-opacity: 0.9;
142
+ --description-color: var(--nl-color);
143
+ }
144
+
145
+ &:hover {
146
+ background-color: var(--nl-hover);
147
+ }
148
+ }
149
+ }
150
+
151
+ .section {
152
+ display: flex;
153
+ align-items: center;
154
+ justify-content: center;
155
+
156
+ transition: transform 150ms ease;
157
+
158
+ &>svg {
159
+ display: block;
160
+ }
161
+
162
+ &:where([data-rotate]) {
163
+ transform: rotate(90deg);
164
+ }
165
+ }
166
+
167
+ .label {
168
+ font-size: var(--font-size-sm);
169
+ }
170
+
171
+ .body {
172
+ overflow: hidden;
173
+ flex: 1;
174
+
175
+ text-overflow: ellipsis;
176
+
177
+ &:where([data-no-wrap]) {
178
+ white-space: nowrap;
179
+ }
180
+ }
181
+
182
+ .description {
183
+ overflow: hidden;
184
+
185
+ font-size: var(--font-size-xs);
186
+ color: var(--description-color, var(--color-dimmed));
187
+ text-overflow: ellipsis;
188
+
189
+ opacity: var(--description-opacity, 1);
190
+
191
+ :where([data-no-wrap]) & {
192
+ white-space: nowrap;
193
+ }
194
+ }
195
195
  </style>