@studio-west/component-sw 0.12.20 → 0.12.22

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/README.md CHANGED
@@ -12,6 +12,10 @@ The `Component SW` library provides a set of ready-to-use UI components on Vue 3
12
12
 
13
13
  ### Содержание / Table of Contents
14
14
 
15
+ Интерактивный плейграунд последней версии с живыми примерами, демонстрацией компонентов в браузере: [studiowest.ru/component-sw](https://studiowest.ru/component-sw/).
16
+
17
+ Interactive playground of the latest version with live examples, demonstration of components in the browser: [studiowest.ru/component-sw](https://studiowest.ru/component-sw/).
18
+
15
19
  - [Установка / Install](#установка--install)
16
20
 
17
21
  - [SSR / Server-Side Rendering](#ssr--server-side-rendering)
@@ -136,18 +140,20 @@ if (typeof document !== 'undefined') {
136
140
 
137
141
  ### Свойства / Properties
138
142
 
139
- | Имя | Тип | по умолчанию | Значения/Описание |
140
- |------------|----------|-------------------|-----------------------------------------------------------------------------|
141
- | `class` | `String` | `sw-alert` | Добавляет пользовательский CSS-класс к компоненту. |
142
- | `size` | `String` | `` | Размер сообщения: `'large'`, `'small'`. |
143
- | `type` | `String` | `info` | Тип сообщения: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
144
- | `message` | `String` | `Default message` | Само сообщение. |
145
- | `duration` | `Number` | `6000` | Время отображения в миллисекундах. |
143
+ | Имя | Тип | по умолчанию | Значения/Описание |
144
+ |------------|----------|-------------------|-----------------------------------------------------------------------------------|
145
+ | `class` | `String` | `sw-alert` | Добавляет пользовательский CSS-класс к компоненту. |
146
+ | `size` | `String` | `` | Размер сообщения: `'large'`, `'small'`. |
147
+ | `type` | `String` | `info` | Тип сообщения: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
148
+ | `message` | `String` | `Default message` | Само сообщение. |
149
+ | `duration` | `Number` | `6000` | Время отображения в миллисекундах. |
146
150
  | `before` | `String` | `` | Иконка в начале: имя из SVG-спрайта или URL (`https://…`). См. [SwIcon](#swicon). |
147
- | `after` | `String` | `` | Иконка в конце (кнопка закрыть): имя из спрайта или URL. См. [SwIcon](#swicon). |
151
+ | `after` | `String` | `` | Иконка в конце (кнопка закрыть): имя из спрайта или URL. См. [SwIcon](#swicon). |
148
152
 
149
153
  ### Слоты / Slots
150
154
 
155
+ Default - текст описания или модуль / модули
156
+
151
157
  #prefix - Вставка перед текстом (если не передан `before`)
152
158
 
153
159
  #suffix - Вставка после текста (если не передан `after`)
@@ -167,6 +173,7 @@ import { inject, h } from "vue"
167
173
  import { components } from "@studio-west/component-sw"
168
174
  const Alert = inject('Alert')
169
175
  Alert({message: 'Alarm!', type: 'warning', suffix: h(components.SwIcon, { iconClass: 'https://cdn.jsdelivr.net/npm/@tabler/icons@3.19.0/icons/outline/info-circle.svg' })})
176
+
170
177
  //Options API:
171
178
  this.$Alert({message: 'Welcome!', type: 'success', prefix: 'Дополнительная информация'});
172
179
  ```
@@ -178,19 +185,19 @@ this.$Alert({message: 'Welcome!', type: 'success', prefix: 'Дополнител
178
185
 
179
186
  ### Свойства / Properties
180
187
 
181
- | Имя | Тип | по умолчанию | Значения/Описание |
182
- |------------|-----------|--------------|--------------------------------------------------------------------------------|
183
- | `class` | `String` | `sw-button` | Добавляет пользовательский CSS-класс к компоненту. |
184
- | `size` | `String` | `` | Размер кнопки: `'large'`, `'small'`. |
185
- | `type` | `String` | `info` | Тип кнопки: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
186
- | `round` | `Boolean` | `false` | Делает кнопку визуально закругленной. |
187
- | `text` | `Boolean` | `false` | Делает кнопку визуально похожей на текст (без фона только граница). |
188
- | `link` | `Boolean` | `false` | Преобразует кнопку в ссылку(без фона и границ). |
189
- | `href` | `String` | `` | URL, на который будет перенаправлен пользователь при клике (если `link=true`). |
190
- | `disabled` | `Boolean` | `false` | Блокирует кнопку, делая её неактивной. |
191
- | `label` | `String` | `` | Текст кнопки (альтернатива содержимому слота). |
188
+ | Имя | Тип | по умолчанию | Значения/Описание |
189
+ |------------|-----------|--------------|----------------------------------------------------------------------------------------|
190
+ | `class` | `String` | `sw-button` | Добавляет пользовательский CSS-класс к компоненту. |
191
+ | `size` | `String` | `` | Размер кнопки: `'large'`, `'small'`. |
192
+ | `type` | `String` | `info` | Тип кнопки: `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
193
+ | `round` | `Boolean` | `false` | Делает кнопку визуально закругленной. |
194
+ | `text` | `Boolean` | `false` | Делает кнопку визуально похожей на текст (без фона только граница). |
195
+ | `link` | `Boolean` | `false` | Преобразует кнопку в ссылку(без фона и границ). |
196
+ | `href` | `String` | `` | URL, на который будет перенаправлен пользователь при клике (если `link=true`). |
197
+ | `disabled` | `Boolean` | `false` | Блокирует кнопку, делая её неактивной. |
198
+ | `label` | `String` | `` | Текст кнопки (альтернатива содержимому слота). |
192
199
  | `prefix` | `String` | `` | Иконка перед текстом: имя из SVG-спрайта или URL (`https://…`). См. [SwIcon](#swicon). |
193
- | `postfix` | `String` | `` | Иконка после текста: имя из спрайта или URL. См. [SwIcon](#swicon). |
200
+ | `postfix` | `String` | `` | Иконка после текста: имя из спрайта или URL. См. [SwIcon](#swicon). |
194
201
 
195
202
  ### Слоты / Slots
196
203
 
@@ -229,7 +236,7 @@ Default - содержимое кнопки (текст, иконки или д
229
236
 
230
237
  ```html
231
238
  <sw-button
232
- :disabled="true"
239
+ disabled="true"
233
240
  type="primary"
234
241
  >
235
242
  Недоступно
@@ -367,14 +374,14 @@ input - событие выбора с данными {dateStart: "11.11.2011",
367
374
 
368
375
  ### Свойства / Properties
369
376
 
370
- | Имя | Тип | По умолчанию | Значения/Описание |
371
- |-------------|-----------|---------------|----------------------------------------------------------------------------------------------------------------------------------------|
372
- | `class` | `String` | `sw-dropdown` | Добавляет пользовательский CSS-класс к компоненту. |
373
- | `size` | `String` | `` | Размер поля: `'large'`, `'small'`. |
374
- | `type` | `String` | `info` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
375
- | `trigger` | `String` | `click` | `'click'`, `'hover'`, `'context'`,`'none'`. |
376
- | `placement` | `String` | `bottom-left` | Относительное место всплытия `'bottom-left'`, `'bottom'`, `'bottom-right'`, `'top-left'`, `'top'`, `'top-right'`, `'left'`, `'right'`. |
377
- | `maxWidth` | `Number` | `0` | Максимальная ширина меню в пикселях. 0 - без ограничений. |
377
+ | Имя | Тип | По умолчанию | Значения/Описание |
378
+ |-------------|-----------|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
379
+ | `class` | `String` | `sw-dropdown` | Добавляет пользовательский CSS-класс к компоненту. |
380
+ | `size` | `String` | `` | Размер поля: `'large'`, `'small'`. |
381
+ | `type` | `String` | `info` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
382
+ | `trigger` | `String` | `click` | Способ открытия: `'click'` — по клику, `'hover'` — при наведении, `'context'` — по правому клику, `'none'` — только через `model`, без автотриггера. |
383
+ | `placement` | `String` | `bottom-left` | Относительное место всплытия `'bottom-left'`, `'bottom'`, `'bottom-right'`, `'top-left'`, `'top'`, `'top-right'`, `'left'`, `'right'`. |
384
+ | `maxWidth` | `Number` | `0` | Максимальная ширина меню в пикселях. 0 - без ограничений. |
378
385
 
379
386
  ### Слоты / Slots
380
387
 
@@ -404,12 +411,12 @@ model - состояние меню, булевое значение откры
404
411
 
405
412
  ### Свойства / Properties
406
413
 
407
- | Имя | Тип | По умолчанию | Значения/Описание |
408
- |---------------|----------|--------------------|--------------------------------------------------------------|
409
- | `class` | `String` | `sw-dropdown-item` | Добавляет пользовательский CSS-класс к компоненту. |
410
- | `size` | `String` | `` | Размер поля: `'large'`, `'small'`. |
411
- | `type` | `String` | `info` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
412
- | `iconBefore` | `String` | `` | Иконка в начале: имя из спрайта или URL. См. [SwIcon](#swicon). |
414
+ | Имя | Тип | По умолчанию | Значения/Описание |
415
+ |---------------|----------|--------------------|------------------------------------------------------------------|
416
+ | `class` | `String` | `sw-dropdown-item` | Добавляет пользовательский CSS-класс к компоненту. |
417
+ | `size` | `String` | `` | Размер поля: `'large'`, `'small'`. |
418
+ | `type` | `String` | `info` | `'primary'`, `'success'`, `'info'`, `'warning'`, `'danger'`. |
419
+ | `iconBefore` | `String` | `` | Иконка в начале: имя из спрайта или URL. См. [SwIcon](#swicon). |
413
420
 
414
421
  ### Слоты / Slots
415
422
 
@@ -437,11 +444,11 @@ Default - текст названия или модуль
437
444
 
438
445
  ### Свойства / Properties
439
446
 
440
- | Имя | Тип | По умолчанию | Значения/Описание |
441
- |-------------|----------|--------------|----------------------------------------------------------------|
442
- | `iconClass` | `String` | `required` | Имя иконки в спрайте или URL (`https://…`). |
443
- | `prefix` | `String` | `icon` | Префикс символа в спрайте: `#prefix-iconClass`. |
444
- | `className` | `String` | `` | Дополнительный CSS-класс для элемента `<svg>`. |
447
+ | Имя | Тип | По умолчанию | Значения/Описание |
448
+ |-------------|----------|--------------|-------------------------------------------------|
449
+ | `iconClass` | `String` | `required` | Имя иконки в спрайте или URL (`https://…`). |
450
+ | `prefix` | `String` | `icon` | Префикс символа в спрайте: `#prefix-iconClass`. |
451
+ | `className` | `String` | `` | Дополнительный CSS-класс для элемента `<svg>`. |
445
452
 
446
453
  ### Пример использования / Example Usage
447
454
 
@@ -516,7 +523,7 @@ const steps = ref([
516
523
  | `name` | `String` | `required` | Обязателен! нужен для связывания через id input и label. |
517
524
  | `class` | `String` | `sw-input` | Добавляет пользовательский CSS-класс к компоненту. |
518
525
  | `size` | `String` | `` | Размер поля: `'large'`, `'small'`. |
519
- | `type` | `String` | `text` | Тип поля: `'text'`, `'phone'` (маска `+0 (___) ___-__-__` встроена в компонент), `'password'` |
526
+ | `type` | `String` | `text` | Тип поля: `'text'`, `'phone'` (маска `+_ (___) ___-__-__` встроена в компонент), `'password'` |
520
527
  | `inputMode` | `String` | `text` | Мобильная клавиатура: `'text'`- стандартная, `'search'`- поиск, `'numeric'`- цифры, `'decimal'` - числа, `'tel'` - телефон, `'url'` - адреса, `'email'` - почта |
521
528
  | `before` | `String` | `` | Иконка в начале: имя из спрайта или URL. См. [SwIcon](#swicon). |
522
529
  | `after` | `String` | `` | Иконка в конце: имя из спрайта или URL. См. [SwIcon](#swicon). |
@@ -529,9 +536,9 @@ const steps = ref([
529
536
 
530
537
  ### Слоты / Slots
531
538
 
532
- #prefix - вставка при отсутствии before не обязательно / Insertion when before is not used (optional).
539
+ #prefix - вставка при отсутствии before не обязательно.
533
540
 
534
- #suffix - вставка при отсутствии after не обязательно / Insertion when after is not used (optional).
541
+ #suffix - вставка при отсутствии after не обязательно.
535
542
 
536
543
  ### Модель / Model
537
544
 
@@ -576,10 +583,10 @@ const model = ref('')
576
583
 
577
584
  ### Свойства / Properties
578
585
 
579
- | Имя | Тип | По умолчанию | Значения/Описание |
580
- |-------------|------------------------|--------------|-------------------------------------------------------------------------------------------------------|
581
- | `menuItems` | `Object \| Array` | `required` | Конфигурация меню. Объект или массив объектов с компонентами и их настройками. |
582
- | `class` | `String` | `''` | Добавляет пользовательский CSS-класс к компоненту. |
586
+ | Имя | Тип | По умолчанию | Значения/Описание |
587
+ |-------------|------------------------|--------------|--------------------------------------------------------------------------------|
588
+ | `menuItems` | `Object \| Array` | `required` | Конфигурация меню. Объект или массив объектов с компонентами и их настройками. |
589
+ | `class` | `String` | `''` | Добавляет пользовательский CSS-класс к компоненту. |
583
590
 
584
591
  ### Модель / Model
585
592
 
@@ -886,16 +893,18 @@ const complexMenu = {
886
893
 
887
894
  ### Свойства / Properties
888
895
 
889
- | Имя | Тип | По умолчанию | Значения/Описание |
890
- |-------------|-----------|--------------|----------------------------------------------------------------------------|
891
- | `name` | `String` | `` | Добавляет текстовый заголовок, при отсутствии реализован слот `"header"`. |
892
- | `class` | `String` | `sw-section` | Добавляет пользовательский CSS-класс к компоненту. |
893
- | `iconAfter` | `String` | `` | Иконка кнопки закрытия (при заголовке): имя из спрайта или URL. См. [SwIcon](#swicon). |
896
+ | Имя | Тип | По умолчанию | Значения/Описание |
897
+ |-------------|-----------|--------------|-----------------------------------------------------------------------------------------|
898
+ | `name` | `String` | `` | Добавляет текстовый заголовок, при отсутствии реализован слот `"header"`. |
899
+ | `class` | `String` | `sw-section` | Добавляет пользовательский CSS-класс к компоненту. |
900
+ | `iconAfter` | `String` | `` | Иконка кнопки закрытия (при заголовке): имя из спрайта или URL. См. [SwIcon](#swicon). |
894
901
 
895
902
  ### Слоты / Slots
896
903
 
897
904
  #header - слот для заголовка окна.
898
905
 
906
+ Default - текст описания или модуль / модулия
907
+
899
908
  #footer - слот для подвала.
900
909
 
901
910
  ### Модель / Model
@@ -926,11 +935,11 @@ model - состояние компонента булевое значение,
926
935
 
927
936
  ### Свойства / Properties
928
937
 
929
- | Имя | Тип | По умолчанию | Значения/Описание |
930
- |-------------|-----------|--------------|----------------------------------------------------|
931
- | `name` | `String` | `` | Добавляет заголовок в секцию. |
932
- | `class` | `String` | `sw-section` | Добавляет пользовательский CSS-класс к компоненту. |
933
- | `iconAfter` | `String` | `` | Иконка в заголовке: имя из спрайта или URL. См. [SwIcon](#swicon). |
938
+ | Имя | Тип | По умолчанию | Значения/Описание |
939
+ |-------------|-----------|--------------|---------------------------------------------------------------------|
940
+ | `name` | `String` | `` | Добавляет заголовок в секцию. |
941
+ | `class` | `String` | `sw-section` | Добавляет пользовательский CSS-класс к компоненту. |
942
+ | `iconAfter` | `String` | `` | Иконка в заголовке: имя из спрайта или URL. См. [SwIcon](#swicon). |
934
943
 
935
944
  ### Слоты / Slots
936
945
 
@@ -1144,67 +1153,71 @@ model - состояние чекбокса (checked ) булевое знач
1144
1153
 
1145
1154
  The `SwTable` component is a dynamic table with nested headers, cell merging (`rowspan` / `colspan`), slot-based customization, row and column hover highlighting, column resizing, and sticky edge columns during horizontal scroll.
1146
1155
 
1147
- Колонки описываются дочерним компонентом `SwTableColumn`. / Columns are defined with the child `SwTableColumn` component.
1156
+ Колонки описываются дочерним компонентом `SwTableColumn`.
1157
+
1158
+ Columns are defined with the child `SwTableColumn` component.
1148
1159
 
1149
1160
  ### Свойства SwTable / SwTable Properties
1150
1161
 
1151
- | Имя / Name | Тип / Type | По умолчанию / Default | Значения/Описание / Values & Description |
1152
- |-------------|---------------------|------------------------|--------------------------------------------------------------------------------------------------------|
1153
- | `data` | `Array` | `required` | Данные таблицы — массив объектов. / Table data — an array of row objects. |
1154
- | `resizable` | `Boolean` | `true` | Разрешить изменение ширины колонок перетаскиванием края заголовка. / Allow resizing leaf columns by dragging the header edge. |
1155
- | `maxWidth` | `String` \| `Number`| | Максимальная ширина контейнера таблицы. При переполнении — горизонтальный скролл и активация `fixed`-колонок. / Max table container width; enables horizontal scroll and `fixed` columns when content overflows. |
1162
+ | Имя | Тип | По умолчанию | Значения/Описание |
1163
+ |-------------|----------------------|--------------|---------------------------------------------------------------------------------------------------------------|
1164
+ | `data` | `Array` | `required` | Данные таблицы — массив объектов. |
1165
+ | `resizable` | `Boolean` | `true` | Разрешить изменение ширины колонок перетаскиванием края заголовка. |
1166
+ | `maxWidth` | `String` \| `Number` | | Максимальная ширина контейнера таблицы. При переполнении — горизонтальный скролл и активация `fixed`-колонок. |
1156
1167
 
1157
1168
  ### События SwTable / SwTable Events
1158
1169
 
1159
- | Имя / Name | Параметры / Payload | Описание / Description |
1160
- |-----------------|-----------------------|--------------------------------------------------------------------------------|
1161
- | `column-resize` | `{ prop, width }` | Срабатывает после изменения ширины колонки (в px). / Fired after a column width change (px). |
1170
+ | Имя | Параметрыd | Описание |
1171
+ |-----------------|-------------------|----------------------------------------------------|
1172
+ | `column-resize` | `{ prop, width }` | Срабатывает после изменения ширины колонки (в px). |
1162
1173
 
1163
1174
  ### Свойства SwTableColumn / SwTableColumn Properties
1164
1175
 
1165
- | Имя / Name | Тип / Type | По умолчанию / Default | Значения/Описание / Values & Description |
1166
- |-------------|---------------------|------------------------|----------------------------------------------------------------------------------------------------------|
1167
- | `prop` | `String` | — | Ключ поля в объекте строки. Поддерживает вложенные пути: `speed.midl`. / Row field key; supports nested paths such as `speed.midl`. |
1168
- | `label` | `String` | `''` | Заголовок колонки. / Column header label. |
1169
- | `width` | `String` \| `Number`| `'auto'` | Ширина колонки, например `180` или `'180px'`. / Column width, e.g. `180` or `'180px'`. |
1170
- | `height` | `String` \| `Number`| `'auto'` | Минимальная высота ячейки заголовка. / Minimum header cell height. |
1171
- | `resizable` | `Boolean` | — | Разрешить ресайз конкретной колонки. По умолчанию наследует `resizable` таблицы. / Allow resizing this column; defaults to the table `resizable` value. |
1172
- | `minWidth` | `String` \| `Number`| `48` | Минимальная ширина при ресайзе (px). / Minimum width while resizing (px). |
1173
- | `fixed` | `String` | — | `'left'` \| `'right'` — фиксация колонки при горизонтальном скролле. / `'left'` \| `'right'` — sticky column during horizontal scroll. |
1176
+ | Имя | Тип | По умолчанию | Значения / Описание |
1177
+ |-------------|----------------------|--------------|----------------------------------------------------------------------------------|
1178
+ | `prop` | `String` | — | Ключ поля в объекте строки. Поддерживает вложенные пути: `speed.midl`. |
1179
+ | `label` | `String` | `''` | Заголовок колонки. |
1180
+ | `width` | `String` \| `Number` | `'auto'` | Ширина колонки, например `180` или `'180px'`. |
1181
+ | `height` | `String` \| `Number` | `'auto'` | Минимальная высота ячейки заголовка. |
1182
+ | `resizable` | `Boolean` | — | Разрешить ресайз конкретной колонки. По умолчанию наследует `resizable` таблицы. |
1183
+ | `minWidth` | `String` \| `Number` | `48` | Минимальная ширина при ресайзе (px). |
1184
+ | `fixed` | `String` | — | `'left'` \| `'right'` — фиксация колонки при горизонтальном скролле. |
1185
+
1186
+ `SwTableColumn` без `prop` используется как групповой заголовок; внутри него задаются дочерние `SwTableColumn`.
1174
1187
 
1175
- `SwTableColumn` без `prop` используется как групповой заголовок; внутри него задаются дочерние `SwTableColumn`. / A `SwTableColumn` without `prop` is a group header; place child `SwTableColumn` components inside it.
1188
+ A `SwTableColumn` without `prop` is a group header; place child `SwTableColumn` components inside it.
1176
1189
 
1177
1190
  ### Подсветка при наведении / Hover highlight
1178
1191
 
1179
- - **Строка** — при наведении на строку в `tbody` подсвечиваются все её ячейки (учитывается `rowspan`). / **Row** — hovering a `tbody` row highlights all of its cells (`rowspan` is respected).
1180
- - **Столбец** — при наведении на ячейку заголовка подсвечивается весь столбец; для группового заголовка с `colspan` — все вложенные колонки. / **Column** — hovering a header cell highlights the whole column; for a grouped header with `colspan`, all nested columns are highlighted.
1192
+ - **Row** — при наведении на строку в `tbody` подсвечиваются все её ячейки (учитывается `rowspan`).
1193
+ - **Column** — при наведении на ячейку заголовка подсвечивается весь столбец; для группового заголовка с `colspan` — все вложенные колонки.
1181
1194
 
1182
- Стили подсветки заданы в `component-sw.css` (классы `row-hover`, `col-hover`). / Hover styles are defined in `component-sw.css` (`row-hover`, `col-hover` classes).
1195
+ Стили подсветки заданы в `component-sw.css` (классы `row-hover`, `col-hover`).
1183
1196
 
1184
1197
  ### Фиксированные колонки / Fixed columns
1185
1198
 
1186
- Фиксация включается, когда одновременно: / Sticky columns activate when all of the following are true:
1199
+ Фиксация включается, когда одновременно:
1187
1200
 
1188
- 1. задан `max-width` у `SwTable`; / `max-width` is set on `SwTable`;
1189
- 2. у колонок указан `fixed="left"` или `fixed="right"`; / columns have `fixed="left"` or `fixed="right"`;
1190
- 3. суммарная ширина таблицы превышает контейнер. / total table width exceeds the container.
1201
+ 1. задан `max-width` у `SwTable`;
1202
+ 2. у колонок указан `fixed="left"` или `fixed="right"`;
1203
+ 3. суммарная ширина таблицы превышает контейнер.
1191
1204
 
1192
- Групповой заголовок фиксируется, если все его дочерние колонки имеют одинаковое значение `fixed`. / A group header is sticky when all of its child columns share the same `fixed` value.
1205
+ Групповой заголовок фиксируется, если все его дочерние колонки имеют одинаковое значение `fixed`.
1193
1206
 
1194
1207
  ### Слоты / Slots
1195
1208
 
1196
- `#<prop>` — именованный слот для конкретной колонки (приоритет выше `cell`). Параметры: `{ row, $index, value }` / Named slot for a specific column (higher priority than `cell`). Parameters: `{ row, $index, value }`
1209
+ `#<prop>` — именованный слот для конкретной колонки (приоритет выше `cell`). Параметры: `{ row, $index, value }`
1197
1210
 
1198
- `#cell` — универсальный слот для всех колонок (default-слот занят `SwTableColumn`). Параметры: `{ row, $index, column, value }` / Universal slot for all columns (`SwTableColumn` uses the default slot). Parameters: `{ row, $index, column, value }`
1211
+ `#cell` — универсальный слот для всех колонок (default-слот занят `SwTableColumn`). Параметры: `{ row, $index, column, value }`
1199
1212
 
1200
- - `row` — весь объект строки данных / the full row data object
1201
- - `$index` — индекс строки (начиная с 0) / row index (zero-based)
1202
- - `column` — имя колонки (`prop`) / column name (`prop`)
1203
- - `value` — значение ячейки / cell value
1213
+ - `row` — весь объект строки данных
1214
+ - `$index` — индекс строки (начиная с 0)
1215
+ - `column` — имя колонки (`prop`)
1216
+ - `value` — значение ячейки
1204
1217
 
1205
1218
  ### Пример использования / Example Usage
1206
1219
 
1207
- #### Базовый пример с вложенными колонками / Nested column headers:
1220
+ #### Базовый пример с вложенными колонками:
1208
1221
 
1209
1222
  ```html
1210
1223
  <script>
@@ -1227,7 +1240,7 @@ The `SwTable` component is a dynamic table with nested headers, cell merging (`r
1227
1240
  </sw-table>
1228
1241
  ```
1229
1242
 
1230
- #### Ресайз колонок / Column resize:
1243
+ #### Ресайз колонок:
1231
1244
 
1232
1245
  ```html
1233
1246
  <script setup>
@@ -1258,7 +1271,7 @@ function onColumnResize({ prop, width }) {
1258
1271
  </sw-table>
1259
1272
  ```
1260
1273
 
1261
- #### Фиксированные крайние колонки / Fixed edge columns:
1274
+ #### Фиксированные крайние колонки:
1262
1275
 
1263
1276
  ```html
1264
1277
  <script setup>
@@ -1281,7 +1294,7 @@ const rows = [
1281
1294
  </sw-table>
1282
1295
  ```
1283
1296
 
1284
- #### Пример с v-for для динамических колонок / Dynamic columns with v-for:
1297
+ #### Пример с v-for для динамических колонок:
1285
1298
 
1286
1299
  ```html
1287
1300
  <script setup>
@@ -1315,7 +1328,7 @@ const tableData = ref([
1315
1328
  </sw-table>
1316
1329
  ```
1317
1330
 
1318
- #### Пример с кастомизацией через слоты / Slot customization:
1331
+ #### Пример с кастомизацией через слоты:
1319
1332
 
1320
1333
  ```html
1321
1334
  <script setup>
@@ -1365,7 +1378,7 @@ const deleteUser = (id) => {
1365
1378
  </sw-table>
1366
1379
  ```
1367
1380
 
1368
- #### Пример с универсальным слотом cell / Universal `cell` slot:
1381
+ #### Пример с универсальным слотом cell:
1369
1382
 
1370
1383
  ```html
1371
1384
  <script setup>
@@ -1399,7 +1412,7 @@ const products = ref([
1399
1412
  </sw-table>
1400
1413
  ```
1401
1414
 
1402
- #### Пример с объединением ячеек (rowspan/colspan) / Cell merging (rowspan/colspan):
1415
+ #### Пример с объединением ячеек (rowspan/colspan):
1403
1416
 
1404
1417
  ```html
1405
1418
  <script setup>
@@ -1477,10 +1490,10 @@ model - индекс активной вкладки (по порядку в к
1477
1490
 
1478
1491
  ### Свойства / Properties
1479
1492
 
1480
- | Имя | Тип | По умолчанию | Значения/Описание |
1481
- |---------|-----------|--------------|-----------------------------------------------------------------------------------------|
1482
- | `title` | `String` | `` | Название унификатор - обязателен при отсутствии `label` будет взят за название вкладки. |
1483
- | `label` | `String` | `` | Название вкладки при отсутствии возьмется из `title`. |
1493
+ | Имя | Тип | По умолчанию | Значения/Описание |
1494
+ |---------|----------|--------------|-----------------------------------------------------------------------------------------|
1495
+ | `title` | `String` | `` | Название унификатор - обязателен при отсутствии `label` будет взят за название вкладки. |
1496
+ | `label` | `String` | `` | Название вкладки при отсутствии возьмется из `title`. |
1484
1497
 
1485
1498
  ### Слоты / Slots
1486
1499
 
@@ -1508,11 +1521,19 @@ Default - для вкладок
1508
1521
 
1509
1522
  **SwTable**
1510
1523
 
1511
- - Подсветка строки при наведении на строку в `tbody` (с учётом `rowspan`). / Row highlight on `tbody` row hover (`rowspan` supported).
1512
- - Подсветка столбца при наведении на ячейку заголовка; для группового заголовка с `colspan` — все вложенные колонки. / Column highlight on header cell hover; grouped headers with `colspan` highlight all nested columns.
1513
- - Изменение ширины колонок перетаскиванием края заголовка; проп `resizable` у таблицы и колонки, событие `column-resize`. / Resize leaf columns by dragging the header edge; table/column `resizable` prop and `column-resize` event.
1514
- - Фиксация крайних колонок (`fixed="left"` \| `fixed="right"` на `SwTableColumn`) при горизонтальном скролле; prop `maxWidth` у `SwTable`. / Sticky edge columns (`fixed="left"` \| `fixed="right"` on `SwTableColumn`) during horizontal scroll; `maxWidth` prop on `SwTable`.
1515
- - Колонки снова регистрируются корректно: `SwTable` и `SwTableColumn` монтируют слот через скрытый контейнер (`provide` / `inject`). / Columns register correctly again: `SwTable` and `SwTableColumn` mount the slot via a hidden container (`provide` / `inject`).
1524
+ - Подсветка строки при наведении на строку в `tbody` (с учётом `rowspan`).
1525
+ - Подсветка столбца при наведении на ячейку заголовка; для группового заголовка с `colspan` — все вложенные колонки.
1526
+ - Изменение ширины колонок перетаскиванием края заголовка; проп `resizable` у таблицы и колонки, событие `column-resize`.
1527
+ - Фиксация крайних колонок (`fixed="left"` \| `fixed="right"` на `SwTableColumn`) при горизонтальном скролле; prop `maxWidth` у `SwTable`.
1528
+ - Колонки снова регистрируются корректно: `SwTable` и `SwTableColumn` монтируют слот через скрытый контейнер (`provide` / `inject`).
1529
+
1530
+ ---
1531
+
1532
+ - Row highlight on `tbody` row hover (`rowspan` supported).
1533
+ - Column highlight on header cell hover; grouped headers with `colspan` highlight all nested columns.
1534
+ - Resize leaf columns by dragging the header edge; table/column `resizable` prop and `column-resize` event.
1535
+ - Sticky edge columns (`fixed="left"` \| `fixed="right"` on `SwTableColumn`) during horizontal scroll; `maxWidth` prop on `SwTable`.
1536
+ - Columns register correctly again: `SwTable` and `SwTableColumn` mount the slot via a hidden container (`provide` / `inject`).
1516
1537
 
1517
1538
  ---
1518
1539
 
@@ -1,2 +1,2 @@
1
- :root{--sw-color-default:#dfdfdf;--sw-color-primary:#3eaf4e;--sw-color-success:#75c6ff;--sw-color-info:silver;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-preholiday:#ffe78070;--sw-color-weekend:#ff808070;--sw-color-select:#007bff70;--sw-color-holiday:red;--sw-color-nowork:red;--sw-color-active:#5aaaff;--sw-text-color-primary:#333;--sw-text-color-secondary:#4c4c4c;--sw-text-color-third:#818181;--sw-text-color-revers:white;--sw-bg-color:#f4f4f4;--sw-bg-color-page:white;--sw-bg-color-second:#fafafa;--sw-bg-color-glass:#85858573;--sw-border-color:#d6d6d6;--sw-border-color-input:#cecece;--sw-font-size:1rem;--sw-font-size-small:.875rem;--sw-font-size-large:1.125rem;--sw-font-size-big:2.8rem;--sw-border-radius:.625rem;--sw-border-radius-small:.25rem;--sw-border-round:3.625rem;--sw-component-size-base:3rem;--sw-component-size-small:1.625rem;--sw-component-size-large:3.5rem;--sw-component-size-big:10.5rem;--sw-track-thickness:.375rem;--sw-border-thickness:.125rem;color:var(--sw-text-color-primary);background-color:var(--sw-bg-color);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}:root.dark{--sw-color-default:#4e4e4e;--sw-color-primary:#38a151;--sw-color-success:#0d588d;--sw-color-info:#808185;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-active:#007bff;--sw-text-color-primary:white;--sw-text-color-secondary:#fafafa;--sw-text-color-third:#fafafa;--sw-text-color-revers:white;--sw-bg-color:#182127;--sw-bg-color-page:#323741;--sw-bg-color-second:#232832;--sw-bg-color-glass:#1b21278c;--sw-border-color:#4e4e4e;--sw-border-color-input:#5c5e63;--sw-shadow:0 100px 80px #00000008, 0 41.7776px 33.4221px #00000005, 0 22.3363px 17.869px #00000005, 0 12.5216px 10.0172px #00000004, 0 6.6501px 5.32008px #00000003, 0 2.76726px 2.21381px #00000002}@media (prefers-color-scheme:dark){:root:not(.light){--sw-color-default:#4e4e4e;--sw-color-primary:#38a151;--sw-color-success:#0d588d;--sw-color-info:#808185;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-active:#007bff;--sw-text-color-primary:white;--sw-text-color-secondary:#fafafa;--sw-text-color-third:#fafafa;--sw-text-color-revers:white;--sw-bg-color:#182127;--sw-bg-color-page:#323741;--sw-bg-color-second:#232832;--sw-bg-color-glass:#1b21278c;--sw-border-color:#4e4e4e;--sw-border-color-input:#5c5e63;--sw-shadow:0 100px 80px #00000008, 0 41.7776px 33.4221px #00000005, 0 22.3363px 17.869px #00000005, 0 12.5216px 10.0172px #00000004, 0 6.6501px 5.32008px #00000003, 0 2.76726px 2.21381px #00000002}}.sw-alert-wrapper{top:max(env(safe-area-inset-top,0rem), env(titlebar-area-y,0rem));background:0 0;border:none;position:fixed}.sw-alert-wrapper .sw-alert{border-radius:var(--sw-border-radius);color:var(--sw-text-color-revers);margin:1rem auto 0;padding:.625rem 1rem}.sw-alert-wrapper .sw-alert .svg-icon{flex-shrink:0}.sw-alert-wrapper .sw-alert .svg-icon:first-child{margin-right:1rem}.sw-alert-wrapper .sw-alert .fade-enter-active,.sw-alert-wrapper .sw-alert .fade-leave-active{transition:opacity .5s}.sw-alert-wrapper .sw-alert .fade-enter-from,.sw-alert-wrapper .sw-alert .fade-leave-to{opacity:0}.sw-alert-wrapper .sw-alert footer{justify-content:flex-end;display:flex}.sw-table{border-collapse:collapse;width:100%}.sw-table.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.sw-table .row-hover,.sw-table .col-hover{background:color-mix(in srgb, var(--sw-color-active) 10%, transparent)}.sw-table .resizable{position:relative;overflow:hidden}.sw-table .resize-handle{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;width:6px;height:100%;position:absolute;top:0;right:0}.sw-table .resize-handle:hover{background:var(--sw-border-color)}.sw-table-wrapper{max-width:100%;overflow-x:auto}.sw-table-wrapper .sw-table{width:max-content;min-width:100%}.sw-table-wrapper.fixed-active .sw-table th.fixed-left,.sw-table-wrapper.fixed-active .sw-table th.fixed-right,.sw-table-wrapper.fixed-active .sw-table td.fixed-left,.sw-table-wrapper.fixed-active .sw-table td.fixed-right{background:var(--sw-bg-color-page)}.sw-table-wrapper.fixed-active .sw-table thead th.fixed-left,.sw-table-wrapper.fixed-active .sw-table thead th.fixed-right{background:var(--sw-bg-color-second)}.sw-table-wrapper.fixed-active .sw-table th.fixed-left,.sw-table-wrapper.fixed-active .sw-table td.fixed-left{box-shadow:2px 0 4px -2px color-mix(in srgb, var(--sw-border-color) 60%, transparent)}.sw-table-wrapper.fixed-active .sw-table th.fixed-right,.sw-table-wrapper.fixed-active .sw-table td.fixed-right{box-shadow:-2px 0 4px -2px color-mix(in srgb, var(--sw-border-color) 60%, transparent)}.sw-tabs{-webkit-user-select:none;user-select:none}.sw-tabs>header{border-bottom:2px solid var(--sw-color-info);color:var(--sw-color-info);-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size-small);margin-bottom:1.25rem;font-weight:400;transition:all .6s ease-out;display:flex}.sw-tabs>header span{cursor:pointer;background:0 0;border:none;border-radius:0;outline:none;padding:5px;position:relative;top:2px}.sw-tabs>header span.active{border-bottom:2px solid var(--sw-color-primary);color:var(--sw-color-primary);font-weight:700}.sw-tabs>header span:hover:not(.active){color:var(--sw-border-color)}.sw-input{border:1px solid var(--sw-border-color-input);border-radius:var(--sw-border-radius);align-items:center;gap:0 1.75rem;padding:0 1.2em;display:flex;position:relative}.sw-input>label{text-align:left;font-size:var(--sw-font-size);background:var(--sw-bg-color-page);line-height:1;transition:all .2s linear .2s;position:absolute;top:1.1rem}.sw-input>label+input::placeholder{opacity:0}.sw-input.sw-input--active>label{font-size:var(--sw-font-size-small);top:-.6em}.sw-input>input{line-height:var(--sw-component-size-base);width:100%;font-size:var(--sw-font-size-large);color:var(--sw-text-color-primary);background:0 0;border:none;outline:none}.sw-input>input::placeholder{color:var(--sw-text-color-secondary);opacity:1;transition:opacity .2s linear .2s}.sw-input>input:focus::placeholder{opacity:1}.sw-input .svg-icon{color:var(--sw-text-color-third);font-size:20px}.sw-input>svg+label{left:4rem}.sw-input.sw-small label{font-size:var(--sw-font-size-small);top:.3rem}.sw-input.sw-small.sw-input--active>label{top:-.6em}.sw-input.sw-small input{line-height:var(--sw-component-size-small)}.sw-input.sw-large label{font-size:var(--sw-font-size-large);top:1.22rem}.sw-input.sw-large.sw-input--active>label{font-size:var(--sw-font-size-small);top:-.6em}.sw-input.sw-large input{line-height:var(--sw-component-size-large)}.sw-button{border-radius:var(--sw-border-radius);border:1px solid var(--sw-color-default);min-height:var(--sw-component-size-base);font-size:var(--sw-font-size);cursor:pointer;background-color:var(--sw-color-default);color:var(--sw-text-color-revers);align-items:center;gap:.35em;padding:0 1.2em;font-weight:500;transition:border-color .25s;display:inline-flex}.sw-button .svg-icon,.sw-button .sw-external-icon{flex-shrink:0}.sw-button-group{--radius:var(--sw-border-radius);display:inline-flex}.sw-button-group.sw-round{--radius:var(--sw-border-round)}.sw-button-group>.sw-button{border-radius:0}.sw-button-group :first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.sw-button-group :last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.sw-button-group.sw-vertical :first-child{border-top-right-radius:var(--radius);border-bottom-left-radius:0}.sw-button-group.sw-vertical :last-child{border-top-right-radius:0;border-bottom-left-radius:var(--radius)}.sw-form-item{font-size:var(--sw-font-size-small);color:var(--sw-text-color-secondary);justify-content:space-between;gap:1rem;display:flex}.sw-form-item.sw-start{justify-content:flex-start}.sw-form-item.sw-end{justify-content:flex-end}.sw-form-item.sw-around{justify-content:space-around}.sw-form-item.sw-center{justify-content:center}.sw-dropdown{outline:none;display:inline-block;position:relative}.sw-dropdown-popup{z-index:3;-webkit-user-select:none;user-select:none;background-color:var(--sw-bg-color-second);border:1px solid var(--sw-border-color);border-radius:4px;min-width:200px;margin:0;padding:8px;box-shadow:0 2px 8px #0000001a}.sw-dropdown-popup.gide>header,.sw-dropdown-popup.gide>footer{justify-content:space-between;align-items:center;display:flex}.sw-dropdown-popup.gide>header .sw-button,.sw-dropdown-popup.gide>footer .sw-button{font-size:var(--sw-font-size-large);padding:.3em}.sw-dropdown-popup.gide>footer .sw-button{padding:.1em .6em}.sw-dropdown-popup.gide img{height:160px;position:absolute;right:-100px}.sw-dropdown-popup.gide img.reflect{left:-100px}.sw-dropdown-item{-webkit-user-select:none;user-select:none;outline:none;display:block}.sw-dropdown-item svg{margin-right:.5rem}.sw-dropdown-item:hover{color:var(--sw-color-primary)}.sw-collapse{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.sw-collapse.is-open{grid-template-rows:1fr}.sw-collapse__inner{min-height:0;overflow:hidden}.sw-slider{width:100%;height:var(--sw-component-size-small);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.sw-slider:not(.vertical) .track{height:var(--sw-track-thickness);width:100%;top:50%;left:0;transform:translateY(-50%)}.sw-slider.vertical{width:var(--sw-component-size-small);height:200px}.sw-slider.vertical .track{width:var(--sw-track-thickness);height:100%;top:0;left:50%;transform:translate(-50%)}.sw-slider .track{background:var(--sw-border-color);border-radius:var(--sw-border-radius-small);position:absolute}.sw-slider .track .fill{background:var(--sw-color-primary);border-radius:var(--sw-border-radius-small);width:100%;height:100%;transition:all .1s;position:absolute}.sw-slider .thumb{width:var(--sw-component-size-small);height:var(--sw-component-size-small);background:var(--sw-bg-color-page);border:var(--sw-border-thickness) solid var(--sw-color-primary);box-sizing:border-box;border-radius:var(--sw-border-round);cursor:grab;text-align:center;color:var(--sw-color-primary);line-height:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2);transition:all .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 4px #0003}.sw-slider .thumb:hover,.sw-slider .thumb:active{transform:translate(-50%,-50%)scale(1.1)}.sw-slider .thumb>*{width:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2);height:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2)}.sw-slider .thumb .tooltip{background:var(--sw-bg-color-page);color:var(--sw-text-color-primary);box-shadow:var(--sw-shadow);font-size:var(--sw-font-size-small);white-space:nowrap;z-index:10;padding:0;position:absolute;left:50%;transform:translate(-50%)}.sw-slider .thumb .tooltip.tooltip-vertical{top:50%;left:auto;transform:translateY(-50%)}.sw-switch{box-sizing:border-box;-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size);align-items:center;display:inline-flex}.sw-switch>input{display:none}.sw-switch>input:checked+label{background-color:var(--sw-color-primary)}.sw-switch>input:checked+label:before{color:var(--sw-text-color-revers);content:attr(data-onlabel);right:auto;left:calc(var(--sw-component-size-base) * .4);bottom:calc((var(--sw-component-size-base) - 1em) / 4)}.sw-switch>input:checked+label:after{left:calc(var(--sw-component-size-base) * 1.4);background:#f7f7f7}.sw-switch>label{background-color:var(--sw-color-info);border-radius:var(--sw-component-size-base);cursor:pointer;flex:0 0 calc(var(--sw-component-size-base) * 2.6);width:calc(var(--sw-component-size-base) * 2.6);height:var(--sw-component-size-base);margin-right:.5rem;transition:all .3s;position:relative}.sw-switch>label:before{color:var(--sw-text-color-revers);content:attr(data-offlabel);right:calc(var(--sw-component-size-base) * .4);bottom:calc((var(--sw-component-size-base) - 1em) / 4);font-size:1em;transition:all .3s;display:block;position:absolute}.sw-switch>label:after{background:var(--sw-text-color-revers);border:calc(var(--sw-border-thickness) / 2) solid var(--sw-color-info);content:"";left:calc(var(--sw-border-thickness) / -2);width:calc(var(--sw-component-size-base) * 1.2);height:calc(var(--sw-component-size-base) * 1.2);top:calc(var(--sw-component-size-base) * -.15);border-radius:50%;transition:all .3s;position:absolute}.sw-switch.sw-small{font-size:var(--sw-font-size-small)}.sw-switch.sw-small>label{border-radius:var(--sw-component-size-small);height:var(--sw-component-size-small);width:calc(var(--sw-component-size-small) * 1.9);flex:0 0 calc(var(--sw-component-size-small) * 1.9)}.sw-switch.sw-small>label:before{content:""}.sw-switch.sw-small>label:after{content:"";left:calc(var(--sw-border-thickness) / -2);width:calc(var(--sw-component-size-small) - var(--sw-border-thickness));height:calc(var(--sw-component-size-small) - var(--sw-border-thickness));top:0}.sw-switch.sw-small>input:checked+label:before{content:""}.sw-switch.sw-small>input:checked+label:after{left:calc(var(--sw-component-size-small) * .9)}.sw-switch.sw-checkbox label{border-radius:var(--sw-border-radius-small);background:var(--sw-bg-color-pag);border:1px solid var(--sw-border-color-input);flex:0 0 .875rem;height:.875rem}.sw-switch.sw-checkbox label:after{content:none}.sw-switch.sw-checkbox>input:checked+label{background:var(--sw-bg-color-page);color:var(--sw-color-primary)}.sw-switch.sw-checkbox>input:checked+label:before{content:"✔";text-rendering:geometricprecision;white-space:nowrap;width:1em;font-size:1.6rem;top:-.9rem;left:0}.sw-skeleton{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.sw-skeleton-item{min-height:var(--sw-component-size-base);background:var(--sw-bg-color-second);border-radius:var(--sw-border-radius);border:1px solid var(--sw-bg-color);box-sizing:border-box;width:100%;position:relative;overflow:hidden}.sw-skeleton-item>div{background:var(--sw-border-color-input);width:10px;height:100%;box-shadow:0 0 20px 20px var(--sw-border-color-input);animation:3s linear infinite sw-skeleton;display:inline-block;position:absolute;transform:skew(-20deg)}.sw-message{background-color:var(--sw-bg-color-page);border:1px solid var(--sw-border-color);border-radius:var(--sw-border-radius);box-sizing:border-box;min-width:16rem;max-width:95%;max-height:95%;padding:1.875rem;top:50%;left:50%;overflow-y:auto;transform:translateY(-50%)translate(-50%)}.sw-message::backdrop{background:var(--sw-bg-color-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sw-message>header{justify-content:space-between;gap:.5rem;margin-bottom:.5rem;display:flex}.sw-message>footer{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.sw-modal-footer{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.sw-data-picker{flex-wrap:wrap;justify-content:center;gap:2rem;display:flex}.sw-data-picker .month_year{justify-content:space-around;align-items:center;display:flex}.sw-data-picker .month_year span:not(.text) button{font-size:1.3em}.sw-data-picker button{color:var(--sw-text-color-primary);text-align:center;cursor:pointer;background:0 0;border:none;border-radius:.2rem;height:30px;line-height:30px;transition:all .3s}.sw-data-picker button:hover:not(.disabled):not(.active){color:var(--sw-color-primary)}.sw-data-picker .week{border-bottom:1px solid var(--sw-color-info);margin-bottom:.5rem}.sw-data-picker .month,.sw-data-picker .week{grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr;gap:.2rem;width:250px;display:grid}.sw-data-picker .month>button,.sw-data-picker .week>button{width:30px}.sw-data-picker .month>button.disabled,.sw-data-picker .week>button.disabled{color:var(--sw-color-info);cursor:not-allowed}.sw-data-picker .month>button.preholiday,.sw-data-picker .week>button.preholiday{background-color:var(--sw-color-preholiday)}.sw-data-picker .month>button.weekend,.sw-data-picker .week>button.weekend{background-color:var(--sw-color-weekend)}.sw-data-picker .month>button.select,.sw-data-picker .week>button.select{background-color:var(--sw-color-select)}.sw-data-picker .month>button.holiday,.sw-data-picker .week>button.holiday{background-color:var(--sw-color-holiday)}.sw-data-picker .month>button.nowork,.sw-data-picker .week>button.nowork{background-color:var(--sw-color-nowork)}.sw-data-picker .month>button.active,.sw-data-picker .week>button.active{background-color:var(--sw-color-active)}.sw-data-picker .year{border-top:1px solid var(--sw-color-info);grid-template-columns:1fr 1fr 1fr;gap:.2rem;width:250px;display:grid}.sw-data-picker .year>button.disabled{color:var(--sw-color-info);cursor:not-allowed}.sw-data-picker .year>button.active{color:var(--sw-color-active)}.sw-gide{z-index:1;grid-template:"overlay0 overlay0 overlay0"40%"overlay1 windows overlay2"0"overlay3 overlay3 overlay3"1fr/1fr 0 1fr;width:100%;height:100%;display:grid;position:absolute;top:0;left:0;overflow-x:hidden}.sw-gide .hole{height:100%}.sw-gide .overlay0,.sw-gide .overlay1,.sw-gide .overlay2,.sw-gide .overlay3{background:var(--sw-bg-color-glass);-webkit-backdrop-filter:blur(.8rem);backdrop-filter:blur(.8rem);grid-area:overlay0}.sw-gide .overlay1{grid-area:overlay1}.sw-gide .overlay2{grid-area:overlay2}.sw-gide .overlay3{grid-area:overlay3}.sw-icon{vertical-align:-.15em;width:1em;height:1em;fill:var(--icon-fill,currentColor);stroke:var(--icon-stroke,currentColor);overflow:hidden}.sw-external-icon{vertical-align:-.15em;background-color:var(--icon-bg,currentColor);flex-shrink:0;width:1em;height:1em;display:inline-block}.sw-revers{transform:scaleX(-1)}.sw-round{border-radius:var(--sw-border-round)}.sw-small{min-height:var(--sw-component-size-small)}.sw-large{min-height:var(--sw-component-size-large)}.sw-big{min-height:var(--sw-component-size-big)}.sw-primary{background-color:var(--sw-color-primary);border-color:var(--sw-color-primary)}.sw-success{background-color:var(--sw-color-success);border-color:var(--sw-color-success)}.sw-info{background-color:var(--sw-color-info);border-color:var(--sw-color-info)}.sw-warning{background-color:var(--sw-color-warning);border-color:var(--sw-color-warning)}.sw-danger{background-color:var(--sw-color-danger);border-color:var(--sw-color-danger)}.sw-vertical{flex-direction:column}.sw-disabled{opacity:.5;cursor:not-allowed}.sw-text{color:var(--sw-text-color-primary)}.sw-text:hover,.sw-text:active{opacity:.5}.sw-text:not(:hover),.sw-text:not(:active){background:0 0}.sw-text.sw-primary{color:var(--sw-color-primary)}.sw-text.sw-success{color:var(--sw-color-success)}.sw-text.sw-info{color:var(--sw-color-info)}.sw-text.sw-warning{color:var(--sw-color-warning)}.sw-text.sw-danger{color:var(--sw-color-danger)}.sw-link{color:var(--sw-text-color-secondary);background:0 0;border:none;min-height:1em;padding:0}.sw-link:hover.sw-primary{color:var(--sw-color-primary)}.sw-link:hover.sw-success{color:var(--sw-color-success)}.sw-link:hover.sw-info{color:var(--sw-color-info)}.sw-link:hover.sw-warning{color:var(--sw-color-warning)}.sw-link:hover.sw-danger{color:var(--sw-color-danger)}@keyframes sw-skeleton{0%{left:-50px}to{left:calc(50px + 100%)}}.popup{position:relative}.popup .wrapper{z-index:1;word-break:break-word;margin:10px 0 0;padding:0;font-size:.8rem;line-height:1.2;list-style:none;position:absolute}.popup .wrapper :before{content:"";border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);z-index:1;width:10px;height:10px;position:absolute;top:-6px;right:50%;transform:rotate(-45deg);border-bottom-color:#0000!important;border-left-color:#0000!important}.popup .scrollbar{box-shadow:0 0 0 1px var(--el-border-color);border-radius:var(--el-border-radius-base);background:#fff;margin:0;padding:.5rem 0}.popup .scrollbar li{white-space:nowrap;line-height:22px;font-size:var(--sw-font-size);color:var(--sw-text-color-secondary);cursor:pointer;outline:none;align-items:start;margin:0;padding:5px 16px;list-style:none;display:flex}.popup .scrollbar li:not(.is-disabled):focus{background:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}
1
+ :root{--sw-color-default:#dfdfdf;--sw-color-primary:#3eaf4e;--sw-color-success:#75c6ff;--sw-color-info:silver;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-preholiday:#ffe78070;--sw-color-weekend:#ff808070;--sw-color-select:#007bff70;--sw-color-holiday:red;--sw-color-nowork:red;--sw-color-active:#5aaaff;--sw-text-color-primary:#333;--sw-text-color-secondary:#4c4c4c;--sw-text-color-third:#818181;--sw-text-color-revers:white;--sw-bg-color:#f4f4f4;--sw-bg-color-page:white;--sw-bg-color-second:#fafafa;--sw-bg-color-glass:#85858573;--sw-border-color:#d6d6d6;--sw-border-color-input:#cecece;--sw-font-size:1rem;--sw-font-size-small:.875rem;--sw-font-size-large:1.125rem;--sw-font-size-big:2.8rem;--sw-border-radius:.625rem;--sw-border-radius-small:.25rem;--sw-border-round:3.625rem;--sw-component-size-base:3rem;--sw-component-size-small:1.625rem;--sw-component-size-large:3.5rem;--sw-component-size-big:10.5rem;--sw-track-thickness:.375rem;--sw-border-thickness:.125rem;color:var(--sw-text-color-primary);background-color:var(--sw-bg-color);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}:root.dark{--sw-color-default:#4e4e4e;--sw-color-primary:#38a151;--sw-color-success:#0d588d;--sw-color-info:#808185;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-active:#007bff;--sw-text-color-primary:white;--sw-text-color-secondary:#fafafa;--sw-text-color-third:#fafafa;--sw-text-color-revers:white;--sw-bg-color:#182127;--sw-bg-color-page:#323741;--sw-bg-color-second:#232832;--sw-bg-color-glass:#1b21278c;--sw-border-color:#4e4e4e;--sw-border-color-input:#5c5e63;--sw-shadow:0 100px 80px #00000008, 0 41.7776px 33.4221px #00000005, 0 22.3363px 17.869px #00000005, 0 12.5216px 10.0172px #00000004, 0 6.6501px 5.32008px #00000003, 0 2.76726px 2.21381px #00000002}@media (prefers-color-scheme:dark){:root:not(.light){--sw-color-default:#4e4e4e;--sw-color-primary:#38a151;--sw-color-success:#0d588d;--sw-color-info:#808185;--sw-color-warning:#ff7a00;--sw-color-danger:#cc2d4a;--sw-color-active:#007bff;--sw-text-color-primary:white;--sw-text-color-secondary:#fafafa;--sw-text-color-third:#fafafa;--sw-text-color-revers:white;--sw-bg-color:#182127;--sw-bg-color-page:#323741;--sw-bg-color-second:#232832;--sw-bg-color-glass:#1b21278c;--sw-border-color:#4e4e4e;--sw-border-color-input:#5c5e63;--sw-shadow:0 100px 80px #00000008, 0 41.7776px 33.4221px #00000005, 0 22.3363px 17.869px #00000005, 0 12.5216px 10.0172px #00000004, 0 6.6501px 5.32008px #00000003, 0 2.76726px 2.21381px #00000002}}.sw-alert-wrapper{top:max(env(safe-area-inset-top,0rem), env(titlebar-area-y,0rem));background:0 0;border:none;position:fixed}.sw-alert-wrapper .sw-alert{border-radius:var(--sw-border-radius);color:var(--sw-text-color-revers);margin:1rem auto 0;padding:.625rem 1rem}.sw-alert-wrapper .sw-alert .svg-icon{flex-shrink:0}.sw-alert-wrapper .sw-alert .svg-icon:first-child{margin-right:1rem}.sw-alert-wrapper .sw-alert .fade-enter-active,.sw-alert-wrapper .sw-alert .fade-leave-active{transition:opacity .5s}.sw-alert-wrapper .sw-alert .fade-enter-from,.sw-alert-wrapper .sw-alert .fade-leave-to{opacity:0}.sw-alert-wrapper .sw-alert footer{justify-content:flex-end;display:flex}.sw-table{border-collapse:collapse;width:100%}.sw-table.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.sw-table .row-hover,.sw-table .col-hover{background:color-mix(in srgb, var(--sw-color-active) 10%, transparent)}.sw-table .resizable{position:relative;overflow:hidden}.sw-table .resize-handle{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;width:6px;height:100%;position:absolute;top:0;right:0}.sw-table .resize-handle:hover{background:var(--sw-border-color)}.sw-table-wrapper{max-width:100%;overflow-x:auto}.sw-table-wrapper .sw-table{width:max-content;min-width:100%}.sw-table-wrapper.fixed-active .sw-table th.fixed-left,.sw-table-wrapper.fixed-active .sw-table th.fixed-right,.sw-table-wrapper.fixed-active .sw-table td.fixed-left,.sw-table-wrapper.fixed-active .sw-table td.fixed-right{background:var(--sw-bg-color-page)}.sw-table-wrapper.fixed-active .sw-table thead th.fixed-left,.sw-table-wrapper.fixed-active .sw-table thead th.fixed-right{background:var(--sw-bg-color-second)}.sw-table-wrapper.fixed-active .sw-table th.fixed-left,.sw-table-wrapper.fixed-active .sw-table td.fixed-left{box-shadow:2px 0 4px -2px color-mix(in srgb, var(--sw-border-color) 60%, transparent)}.sw-table-wrapper.fixed-active .sw-table th.fixed-right,.sw-table-wrapper.fixed-active .sw-table td.fixed-right{box-shadow:-2px 0 4px -2px color-mix(in srgb, var(--sw-border-color) 60%, transparent)}.sw-tabs{-webkit-user-select:none;user-select:none}.sw-tabs>header{border-bottom:2px solid var(--sw-color-info);color:var(--sw-color-info);-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size-small);margin-bottom:1.25rem;font-weight:400;transition:all .6s ease-out;display:flex}.sw-tabs>header span{cursor:pointer;background:0 0;border:none;border-radius:0;outline:none;padding:5px;position:relative;top:2px}.sw-tabs>header span.active{border-bottom:2px solid var(--sw-color-primary);color:var(--sw-color-primary);font-weight:700}.sw-tabs>header span:hover:not(.active){color:var(--sw-border-color)}.sw-input{border:1px solid var(--sw-border-color-input);border-radius:var(--sw-border-radius);align-items:center;gap:0 1.75rem;padding:0 1.2em;display:flex;position:relative}.sw-input>label{text-align:left;font-size:var(--sw-font-size);background:var(--sw-bg-color-page);line-height:1;transition:all .2s linear .2s;position:absolute;top:1.1rem}.sw-input>label+input::placeholder{opacity:0}.sw-input.sw-input--active>label{font-size:var(--sw-font-size-small);top:-.6em}.sw-input>input{line-height:var(--sw-component-size-base);width:100%;font-size:var(--sw-font-size-large);color:var(--sw-text-color-primary);background:0 0;border:none;outline:none}.sw-input>input::placeholder{color:var(--sw-text-color-secondary);opacity:1;transition:opacity .2s linear .2s}.sw-input>input:focus::placeholder{opacity:1}.sw-input .svg-icon{color:var(--sw-text-color-third);font-size:20px}.sw-input>svg+label{left:4rem}.sw-input.sw-small label{font-size:var(--sw-font-size-small);top:.3rem}.sw-input.sw-small.sw-input--active>label{top:-.6em}.sw-input.sw-small input{line-height:var(--sw-component-size-small)}.sw-input.sw-large label{font-size:var(--sw-font-size-large);top:1.22rem}.sw-input.sw-large.sw-input--active>label{font-size:var(--sw-font-size-small);top:-.6em}.sw-input.sw-large input{line-height:var(--sw-component-size-large)}.sw-button{border-radius:var(--sw-border-radius);border:1px solid var(--sw-color-default);min-height:var(--sw-component-size-base);font-size:var(--sw-font-size);cursor:pointer;background-color:var(--sw-color-default);color:var(--sw-text-color-revers);align-items:center;gap:.35em;padding:0 1.2em;font-weight:500;transition:border-color .25s;display:inline-flex}.sw-button .svg-icon,.sw-button .sw-external-icon{flex-shrink:0}.sw-button-group{--radius:var(--sw-border-radius);display:inline-flex}.sw-button-group.sw-round{--radius:var(--sw-border-round)}.sw-button-group>.sw-button{border-radius:0}.sw-button-group :first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.sw-button-group :last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.sw-button-group.sw-vertical :first-child{border-top-right-radius:var(--radius);border-bottom-left-radius:0}.sw-button-group.sw-vertical :last-child{border-top-right-radius:0;border-bottom-left-radius:var(--radius)}.sw-form-item{font-size:var(--sw-font-size-small);color:var(--sw-text-color-secondary);justify-content:space-between;gap:1rem;display:flex}.sw-form-item.sw-start{justify-content:flex-start}.sw-form-item.sw-end{justify-content:flex-end}.sw-form-item.sw-around{justify-content:space-around}.sw-form-item.sw-center{justify-content:center}.sw-dropdown{outline:none;display:inline-block;position:relative}.sw-dropdown-popup{z-index:3;-webkit-user-select:none;user-select:none;background-color:var(--sw-bg-color-second);border:1px solid var(--sw-border-color);border-radius:4px;min-width:200px;margin:0;padding:8px;box-shadow:0 2px 8px #0000001a}.sw-dropdown-popup.gide>header,.sw-dropdown-popup.gide>footer{justify-content:space-between;align-items:center;display:flex}.sw-dropdown-popup.gide>header .sw-button,.sw-dropdown-popup.gide>footer .sw-button{font-size:var(--sw-font-size-large);padding:.3em}.sw-dropdown-popup.gide>footer .sw-button{padding:.1em .6em}.sw-dropdown-popup.gide img{height:70px;position:absolute;right:-100px}.sw-dropdown-popup.gide img.reflect{left:-100px}.sw-dropdown-item{-webkit-user-select:none;user-select:none;outline:none;display:block}.sw-dropdown-item svg{margin-right:.5rem}.sw-dropdown-item:hover{color:var(--sw-color-primary)}.sw-collapse{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.sw-collapse.is-open{grid-template-rows:1fr}.sw-collapse__inner{min-height:0;overflow:hidden}.sw-slider{width:100%;height:var(--sw-component-size-small);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.sw-slider:not(.vertical) .track{height:var(--sw-track-thickness);width:100%;top:50%;left:0;transform:translateY(-50%)}.sw-slider.vertical{width:var(--sw-component-size-small);height:200px}.sw-slider.vertical .track{width:var(--sw-track-thickness);height:100%;top:0;left:50%;transform:translate(-50%)}.sw-slider .track{background:var(--sw-border-color);border-radius:var(--sw-border-radius-small);position:absolute}.sw-slider .track .fill{background:var(--sw-color-primary);border-radius:var(--sw-border-radius-small);width:100%;height:100%;transition:all .1s;position:absolute}.sw-slider .thumb{width:var(--sw-component-size-small);height:var(--sw-component-size-small);background:var(--sw-bg-color-page);border:var(--sw-border-thickness) solid var(--sw-color-primary);box-sizing:border-box;border-radius:var(--sw-border-round);cursor:grab;text-align:center;color:var(--sw-color-primary);line-height:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2);transition:all .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 4px #0003}.sw-slider .thumb:hover,.sw-slider .thumb:active{transform:translate(-50%,-50%)scale(1.1)}.sw-slider .thumb>*{width:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2);height:calc(var(--sw-component-size-small) - var(--sw-border-thickness) * 2)}.sw-slider .thumb .tooltip{background:var(--sw-bg-color-page);color:var(--sw-text-color-primary);box-shadow:var(--sw-shadow);font-size:var(--sw-font-size-small);white-space:nowrap;z-index:10;padding:0;position:absolute;left:50%;transform:translate(-50%)}.sw-slider .thumb .tooltip.tooltip-vertical{top:50%;left:auto;transform:translateY(-50%)}.sw-switch{box-sizing:border-box;-webkit-user-select:none;user-select:none;font-size:var(--sw-font-size);align-items:center;display:inline-flex}.sw-switch>input{display:none}.sw-switch>input:checked+label{background-color:var(--sw-color-primary)}.sw-switch>input:checked+label:before{color:var(--sw-text-color-revers);content:attr(data-onlabel);right:auto;left:calc(var(--sw-component-size-base) * .4);bottom:calc((var(--sw-component-size-base) - 1em) / 4)}.sw-switch>input:checked+label:after{left:calc(var(--sw-component-size-base) * 1.4);background:#f7f7f7}.sw-switch>label{background-color:var(--sw-color-info);border-radius:var(--sw-component-size-base);cursor:pointer;flex:0 0 calc(var(--sw-component-size-base) * 2.6);width:calc(var(--sw-component-size-base) * 2.6);height:var(--sw-component-size-base);margin-right:.5rem;transition:all .3s;position:relative}.sw-switch>label:before{color:var(--sw-text-color-revers);content:attr(data-offlabel);right:calc(var(--sw-component-size-base) * .4);bottom:calc((var(--sw-component-size-base) - 1em) / 4);font-size:1em;transition:all .3s;display:block;position:absolute}.sw-switch>label:after{background:var(--sw-text-color-revers);border:calc(var(--sw-border-thickness) / 2) solid var(--sw-color-info);content:"";left:calc(var(--sw-border-thickness) / -2);width:calc(var(--sw-component-size-base) * 1.2);height:calc(var(--sw-component-size-base) * 1.2);top:calc(var(--sw-component-size-base) * -.15);border-radius:50%;transition:all .3s;position:absolute}.sw-switch.sw-small{font-size:var(--sw-font-size-small)}.sw-switch.sw-small>label{border-radius:var(--sw-component-size-small);height:var(--sw-component-size-small);width:calc(var(--sw-component-size-small) * 1.9);flex:0 0 calc(var(--sw-component-size-small) * 1.9)}.sw-switch.sw-small>label:before{content:""}.sw-switch.sw-small>label:after{content:"";left:calc(var(--sw-border-thickness) / -2);width:calc(var(--sw-component-size-small) - var(--sw-border-thickness));height:calc(var(--sw-component-size-small) - var(--sw-border-thickness));top:0}.sw-switch.sw-small>input:checked+label:before{content:""}.sw-switch.sw-small>input:checked+label:after{left:calc(var(--sw-component-size-small) * .9)}.sw-switch.sw-checkbox label{border-radius:var(--sw-border-radius-small);background:var(--sw-bg-color-pag);border:1px solid var(--sw-border-color-input);flex:0 0 .875rem;height:.875rem}.sw-switch.sw-checkbox label:after{content:none}.sw-switch.sw-checkbox>input:checked+label{background:var(--sw-bg-color-page);color:var(--sw-color-primary)}.sw-switch.sw-checkbox>input:checked+label:before{content:"✔";text-rendering:geometricprecision;white-space:nowrap;width:1em;font-size:1.6rem;top:-.9rem;left:0}.sw-skeleton{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.sw-skeleton-item{min-height:var(--sw-component-size-base);background:var(--sw-bg-color-second);border-radius:var(--sw-border-radius);border:1px solid var(--sw-bg-color);box-sizing:border-box;width:100%;position:relative;overflow:hidden}.sw-skeleton-item>div{background:var(--sw-border-color-input);width:10px;height:100%;box-shadow:0 0 20px 20px var(--sw-border-color-input);animation:3s linear infinite sw-skeleton;display:inline-block;position:absolute;transform:skew(-20deg)}.sw-message{background-color:var(--sw-bg-color-page);border:1px solid var(--sw-border-color);border-radius:var(--sw-border-radius);box-sizing:border-box;min-width:16rem;max-width:95%;max-height:95%;padding:1.875rem;top:50%;left:50%;overflow-y:auto;transform:translateY(-50%)translate(-50%)}.sw-message::backdrop{background:var(--sw-bg-color-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.sw-message>header{justify-content:space-between;gap:.5rem;margin-bottom:.5rem;display:flex}.sw-message>footer{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;margin-top:.5rem;display:flex}.sw-modal-footer{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.sw-data-picker{flex-wrap:wrap;justify-content:center;gap:2rem;display:flex}.sw-data-picker .month_year{justify-content:space-around;align-items:center;display:flex}.sw-data-picker .month_year span:not(.text) button{font-size:1.3em}.sw-data-picker button{color:var(--sw-text-color-primary);text-align:center;cursor:pointer;background:0 0;border:none;border-radius:.2rem;height:30px;line-height:30px;transition:all .3s}.sw-data-picker button:hover:not(.disabled):not(.active){color:var(--sw-color-primary)}.sw-data-picker .week{border-bottom:1px solid var(--sw-color-info);margin-bottom:.5rem}.sw-data-picker .month,.sw-data-picker .week{grid-template-columns:1fr 1fr 1fr 1fr 1fr 1fr 1fr;gap:.2rem;width:250px;display:grid}.sw-data-picker .month>button,.sw-data-picker .week>button{width:30px}.sw-data-picker .month>button.disabled,.sw-data-picker .week>button.disabled{color:var(--sw-color-info);cursor:not-allowed}.sw-data-picker .month>button.preholiday,.sw-data-picker .week>button.preholiday{background-color:var(--sw-color-preholiday)}.sw-data-picker .month>button.weekend,.sw-data-picker .week>button.weekend{background-color:var(--sw-color-weekend)}.sw-data-picker .month>button.select,.sw-data-picker .week>button.select{background-color:var(--sw-color-select)}.sw-data-picker .month>button.holiday,.sw-data-picker .week>button.holiday{background-color:var(--sw-color-holiday)}.sw-data-picker .month>button.nowork,.sw-data-picker .week>button.nowork{background-color:var(--sw-color-nowork)}.sw-data-picker .month>button.active,.sw-data-picker .week>button.active{background-color:var(--sw-color-active)}.sw-data-picker .year{border-top:1px solid var(--sw-color-info);grid-template-columns:1fr 1fr 1fr;gap:.2rem;width:250px;display:grid}.sw-data-picker .year>button.disabled{color:var(--sw-color-info);cursor:not-allowed}.sw-data-picker .year>button.active{color:var(--sw-color-active)}.sw-gide{z-index:1;grid-template:"overlay0 overlay0 overlay0"40%"overlay1 windows overlay2"0"overlay3 overlay3 overlay3"1fr/1fr 0 1fr;width:100%;height:100%;display:grid;position:absolute;top:0;left:0;overflow-x:hidden}.sw-gide .hole{height:100%}.sw-gide .overlay0,.sw-gide .overlay1,.sw-gide .overlay2,.sw-gide .overlay3{background:var(--sw-bg-color-glass);-webkit-backdrop-filter:blur(.8rem);backdrop-filter:blur(.8rem);grid-area:overlay0}.sw-gide .overlay1{grid-area:overlay1}.sw-gide .overlay2{grid-area:overlay2}.sw-gide .overlay3{grid-area:overlay3}.sw-icon{vertical-align:-.15em;width:1em;height:1em;fill:var(--icon-fill,currentColor);stroke:var(--icon-stroke,currentColor);overflow:hidden}.sw-external-icon{vertical-align:-.15em;background-color:var(--icon-bg,currentColor);flex-shrink:0;width:1em;height:1em;display:inline-block}.sw-revers{transform:scaleX(-1)}.sw-round{border-radius:var(--sw-border-round)}.sw-small{min-height:var(--sw-component-size-small)}.sw-large{min-height:var(--sw-component-size-large)}.sw-big{min-height:var(--sw-component-size-big)}.sw-primary{background-color:var(--sw-color-primary);border-color:var(--sw-color-primary)}.sw-success{background-color:var(--sw-color-success);border-color:var(--sw-color-success)}.sw-info{background-color:var(--sw-color-info);border-color:var(--sw-color-info)}.sw-warning{background-color:var(--sw-color-warning);border-color:var(--sw-color-warning)}.sw-danger{background-color:var(--sw-color-danger);border-color:var(--sw-color-danger)}.sw-vertical{flex-direction:column}.sw-disabled{opacity:.5;cursor:not-allowed}.sw-text{color:var(--sw-text-color-primary)}.sw-text:hover,.sw-text:active{opacity:.5}.sw-text:not(:hover),.sw-text:not(:active){background:0 0}.sw-text.sw-primary{color:var(--sw-color-primary)}.sw-text.sw-success{color:var(--sw-color-success)}.sw-text.sw-info{color:var(--sw-color-info)}.sw-text.sw-warning{color:var(--sw-color-warning)}.sw-text.sw-danger{color:var(--sw-color-danger)}.sw-link{color:var(--sw-text-color-secondary);background:0 0;border:none;min-height:1em;padding:0}.sw-link:hover.sw-primary{color:var(--sw-color-primary)}.sw-link:hover.sw-success{color:var(--sw-color-success)}.sw-link:hover.sw-info{color:var(--sw-color-info)}.sw-link:hover.sw-warning{color:var(--sw-color-warning)}.sw-link:hover.sw-danger{color:var(--sw-color-danger)}@keyframes sw-skeleton{0%{left:-50px}to{left:calc(50px + 100%)}}.popup{position:relative}.popup .wrapper{z-index:1;word-break:break-word;margin:10px 0 0;padding:0;font-size:.8rem;line-height:1.2;list-style:none;position:absolute}.popup .wrapper :before{content:"";border:1px solid var(--el-border-color-light);background:var(--el-bg-color-overlay);z-index:1;width:10px;height:10px;position:absolute;top:-6px;right:50%;transform:rotate(-45deg);border-bottom-color:#0000!important;border-left-color:#0000!important}.popup .scrollbar{box-shadow:0 0 0 1px var(--el-border-color);border-radius:var(--el-border-radius-base);background:#fff;margin:0;padding:.5rem 0}.popup .scrollbar li{white-space:nowrap;line-height:22px;font-size:var(--sw-font-size);color:var(--sw-text-color-secondary);cursor:pointer;outline:none;align-items:start;margin:0;padding:5px 16px;list-style:none;display:flex}.popup .scrollbar li:not(.is-disabled):focus{background:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studio-west/component-sw",
3
- "version": "0.12.20",
3
+ "version": "0.12.22",
4
4
  "description": "Vue components of Component-SW collection.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -9,6 +9,7 @@
9
9
  "vue",
10
10
  "component-sw"
11
11
  ],
12
+ "homepage": "https://studiowest.ru/journal/component-sw",
12
13
  "files": [
13
14
  "dist",
14
15
  "types",