@boobooking/dashboard-ui-components 0.15.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +171 -51
- package/dist/index.js +612 -409
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -65,31 +65,49 @@ Vue не ниже 3.5, ESM, сборщик, умеющий импорт CSS из
|
|
|
65
65
|
Tailwind, `@tailwindcss/forms`, Inertia и какие-либо токены в CSS приложения
|
|
66
66
|
пакету не нужны.
|
|
67
67
|
|
|
68
|
-
Меню `DropdownButtonWithAction` и `HamburgerMenu`, список `SelectSingle
|
|
69
|
-
календари `SelectDateInterval` стоят на Popover API
|
|
70
|
-
Chrome 114+, Firefox 125+. В браузерах старше меню,
|
|
71
|
-
видны в потоке всегда.
|
|
68
|
+
Меню `DropdownButtonWithAction` и `HamburgerMenu`, список `SelectSingle`,
|
|
69
|
+
календари `SelectDateInterval` и подсказка `TextPopover` стоят на Popover API
|
|
70
|
+
браузера: Safari 17+, Chrome 114+, Firefox 125+. В браузерах старше меню,
|
|
71
|
+
список, календари и подсказка видны в потоке всегда.
|
|
72
|
+
|
|
73
|
+
## Цвета
|
|
74
|
+
|
|
75
|
+
У пакета один список цветов, и все компоненты с цветом берут его:
|
|
76
|
+
`gray`, `green`, `yellow`, `red`, `indigo`, `purple`. Цвет передаётся
|
|
77
|
+
именем; другое имя валидатор отклоняет, а компонент рисуется без цвета.
|
|
78
|
+
Смысл цвета — какой статус зелёный — задаёт проект своей картой
|
|
79
|
+
«значение → имя».
|
|
80
|
+
|
|
81
|
+
| Где | Вид цвета `<тон>` |
|
|
82
|
+
| --- | --- |
|
|
83
|
+
| `InfoPill`, `ActionPill` | фон `-100`, текст `-800`; у `ActionPill` при наведении текст `-600` |
|
|
84
|
+
| основная кнопка и стрелка `DropdownButtonWithAction` | фон `-100`, рамка `-300`, текст `-800`, при наведении фон `-200` |
|
|
85
|
+
| пункт меню `DropdownButtonWithAction` и `HamburgerMenu` | текст `-800`, в фокусе фон `-100` |
|
|
86
|
+
| `Dot`, полоска строки `DataTable` | `-500` |
|
|
87
|
+
|
|
88
|
+
Без цвета кнопка белая с серой рамкой, пункт меню серый, строка таблицы без
|
|
89
|
+
полоски — это вид компонента по умолчанию, в список он не входит.
|
|
72
90
|
|
|
73
91
|
## Компоненты
|
|
74
92
|
|
|
75
|
-
Пакет экспортирует
|
|
76
|
-
`Search`, `SelectDateInterval`, `SelectSingle`, `
|
|
77
|
-
`ErrorMessages`, `
|
|
93
|
+
Пакет экспортирует шестнадцать компонентов: `Dot`, `RussianMobileFilter`,
|
|
94
|
+
`Search`, `SelectDateInterval`, `SelectSingle`, `InfoPill`,
|
|
95
|
+
`ErrorMessages`, `ActionPill`, `ConfirmationModal`,
|
|
78
96
|
`DropdownButtonWithAction`, `HamburgerMenu`, `DataTable`,
|
|
79
|
-
`NavigationMenuElement`, `PageCard`, `NotificationMessage`
|
|
80
|
-
`dashboardUi`. В архив пакета
|
|
81
|
-
|
|
82
|
-
коде.
|
|
97
|
+
`NavigationMenuElement`, `PageCard`, `NotificationMessage`, `TextPopover`,
|
|
98
|
+
функцию `downloadFile` и плагин `dashboardUi`. В архив пакета
|
|
99
|
+
(`files: ["dist"]`) исходники не попадают, поэтому контракт каждого
|
|
100
|
+
компонента — здесь и в playground, а не в исходном коде.
|
|
83
101
|
|
|
84
102
|
### Dot
|
|
85
103
|
|
|
86
|
-
|
|
104
|
+
Индикатор-точка любого цвета из списка, с пульсацией или без.
|
|
87
105
|
|
|
88
106
|
<dot color="green" :with-pulse="isLive" />
|
|
89
107
|
|
|
90
108
|
| Проп | Тип | По умолчанию | Описание |
|
|
91
109
|
| --- | --- | --- | --- |
|
|
92
|
-
| `color` | `String` | обязателен |
|
|
110
|
+
| `color` | `String` | обязателен | Имя из списка цветов (раздел «Цвета») |
|
|
93
111
|
| `withPulse` | `Boolean` | `false` | Добавляет анимацию пульсации |
|
|
94
112
|
|
|
95
113
|
Событий нет. Значения у `Dot` тоже нет — см. раздел
|
|
@@ -224,16 +242,17 @@ Chrome 114+, Firefox 125+. В браузерах старше меню, спис
|
|
|
224
242
|
внутри списка — нет. Открытие другого списка, календаря или меню
|
|
225
243
|
закрывает предыдущее.
|
|
226
244
|
|
|
227
|
-
###
|
|
245
|
+
### InfoPill
|
|
228
246
|
|
|
229
|
-
|
|
247
|
+
Пилюля, которая только показывает текст: статус, счётчик, флаг, пометку.
|
|
248
|
+
Текст не переносится.
|
|
230
249
|
|
|
231
|
-
<
|
|
250
|
+
<info-pill text="доставлено" color="green" />
|
|
232
251
|
|
|
233
252
|
| Проп | Тип | По умолчанию | Описание |
|
|
234
253
|
| --- | --- | --- | --- |
|
|
235
|
-
| `text` | `String` | обязателен | Текст
|
|
236
|
-
| `color` | `String` | обязателен |
|
|
254
|
+
| `text` | `String` | обязателен | Текст пилюли |
|
|
255
|
+
| `color` | `String` | обязателен | Имя из списка цветов |
|
|
237
256
|
|
|
238
257
|
Событий нет.
|
|
239
258
|
|
|
@@ -251,19 +270,60 @@ Chrome 114+, Firefox 125+. В браузерах старше меню, спис
|
|
|
251
270
|
|
|
252
271
|
Событий нет.
|
|
253
272
|
|
|
254
|
-
###
|
|
273
|
+
### ActionPill
|
|
255
274
|
|
|
256
|
-
|
|
275
|
+
Пилюля, которой запускают действие: скачать отчёт, запросить статусы. Что
|
|
276
|
+
делает действие, пилюля не знает — страница слушает `click` и сама передаёт
|
|
277
|
+
`isLoading`, пока действие идёт.
|
|
257
278
|
|
|
258
|
-
<
|
|
279
|
+
<action-pill
|
|
280
|
+
icon="download"
|
|
281
|
+
title="скачать xlsx"
|
|
282
|
+
loading-text="формируется отчёт"
|
|
283
|
+
:is-loading="exportLoading"
|
|
284
|
+
@click="exportOrders"
|
|
285
|
+
/>
|
|
259
286
|
|
|
260
287
|
| Проп | Тип | По умолчанию | Описание |
|
|
261
288
|
| --- | --- | --- | --- |
|
|
262
|
-
| `
|
|
263
|
-
| `
|
|
264
|
-
| `
|
|
289
|
+
| `title` | `String` | обязателен | Подпись и всплывающая подсказка |
|
|
290
|
+
| `icon` | `String` | обязателен | `"download"` или `"refresh"` |
|
|
291
|
+
| `color` | `String` | `"purple"` | Имя из списка цветов |
|
|
292
|
+
| `isLoading` | `Boolean` | `false` | Идёт работа |
|
|
293
|
+
| `loadingText` | `String` | `null` | Подпись на время работы; без неё остаётся `title` |
|
|
265
294
|
|
|
266
|
-
|
|
295
|
+
Событие: `click` без аргументов.
|
|
296
|
+
|
|
297
|
+
Пока идёт работа, пилюля погашена и недоступна — второй клик не проходит,
|
|
298
|
+
вместо иконки бегут стрелки часов, подпись — `loadingText`. При системной
|
|
299
|
+
настройке «уменьшить движение» стрелки стоят. Иконки пакета — `download`
|
|
300
|
+
и `refresh`; новое действие с новой иконкой — новая иконка в пакете.
|
|
301
|
+
|
|
302
|
+
### downloadFile
|
|
303
|
+
|
|
304
|
+
Функция: скачивает файл запросом и отдаёт его браузеру. Страница знает,
|
|
305
|
+
когда файл пришёл, — так показывается работа на `ActionPill`.
|
|
306
|
+
|
|
307
|
+
```js
|
|
308
|
+
import { downloadFile } from '@boobooking/dashboard-ui-components'
|
|
309
|
+
|
|
310
|
+
exportOrders() {
|
|
311
|
+
this.exportLoading = true;
|
|
312
|
+
downloadFile(this.exportUrl)
|
|
313
|
+
.catch(() => { this.exportFailure = "Попробуйте ещё раз"; })
|
|
314
|
+
.finally(() => { this.exportLoading = false; });
|
|
315
|
+
}
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
- Запрос — `GET` с cookie сессии (`credentials: 'same-origin'`).
|
|
319
|
+
- Promise отклоняется: при ответе не `2xx` (код в тексте ошибки), при
|
|
320
|
+
перенаправлении — обычно на страницу входа после истёкшей сессии — и при
|
|
321
|
+
сетевой ошибке.
|
|
322
|
+
- Имя файла — из `Content-Disposition` (`filename*=UTF-8''…`, затем
|
|
323
|
+
`filename`), без него — последний сегмент пути адреса, без пути —
|
|
324
|
+
`download`.
|
|
325
|
+
- Таймаута нет; уход со страницы скачивание не прерывает. Файл до
|
|
326
|
+
сохранения целиком в памяти вкладки.
|
|
267
327
|
|
|
268
328
|
### ConfirmationModal
|
|
269
329
|
|
|
@@ -331,7 +391,7 @@ ConfirmationModal нет v-model».
|
|
|
331
391
|
| `label` | `String`, обязательно | Текст кнопки или пункта меню |
|
|
332
392
|
| `href` | `String` | Переход: обычный клик уходит в `navigate` плагина `dashboardUi`, клик с Cmd/Ctrl/Shift и средней кнопкой — браузеру; без `navigate` — обычная ссылка |
|
|
333
393
|
| `onSelect` | `Function` | Действие: вызывается без аргументов |
|
|
334
|
-
| `color` | `
|
|
394
|
+
| `color` | `String` | Имя из списка цветов; без поля — обычный |
|
|
335
395
|
|
|
336
396
|
Основная кнопка работает как пункт меню: переход — ссылка, действие —
|
|
337
397
|
кнопка, и `onSelect` вызывает сам компонент — по клику, Enter и пробелу.
|
|
@@ -339,10 +399,9 @@ ConfirmationModal нет v-model».
|
|
|
339
399
|
разбираться в разметке компонента.
|
|
340
400
|
|
|
341
401
|
Цвет первого действия красит основную кнопку вместе со стрелкой, цвет
|
|
342
|
-
пункта меню — только этот пункт.
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
своего цвета, при подсветке светлый фон того же цвета.
|
|
402
|
+
пункта меню — только этот пункт. Без цвета кнопка белая с серой рамкой,
|
|
403
|
+
пункт — серый текст и серый фон при подсветке; с цветом — по разделу
|
|
404
|
+
«Цвета».
|
|
346
405
|
|
|
347
406
|
Неверный список Vue отмечает предупреждением о пропе в режиме разработки,
|
|
348
407
|
а компонент не падает: элементы-необъекты пропускает, кнопка без функции
|
|
@@ -404,7 +463,7 @@ ConfirmationModal нет v-model».
|
|
|
404
463
|
|
|
405
464
|
Пункты, их проверка и вид — как у `DropdownButtonWithAction`: переход —
|
|
406
465
|
`{ label, href }`, действие — `{ label, onSelect }`, цвет —
|
|
407
|
-
`color:
|
|
466
|
+
`color: имя из списка цветов`. Выход запросом DELETE — действие:
|
|
408
467
|
Inertia пакет не импортирует, `router.delete` вызывает страница.
|
|
409
468
|
|
|
410
469
|
Событий и `v-model` нет: меню открывают и закрывают кнопка, клик вне меню,
|
|
@@ -441,10 +500,10 @@ Escape, клик по пункту, прокрутка и изменение р
|
|
|
441
500
|
empty-text="Не найдено ордеров"
|
|
442
501
|
>
|
|
443
502
|
<template #results-actions>
|
|
444
|
-
<
|
|
503
|
+
<action-pill icon="download" title="скачать xlsx" :is-loading="exportLoading" @click="exportOrders" />
|
|
445
504
|
</template>
|
|
446
505
|
<template #cell-status="{ row }">
|
|
447
|
-
<
|
|
506
|
+
<info-pill :text="row.statusLabel" :color="row.statusColor" />
|
|
448
507
|
</template>
|
|
449
508
|
</data-table>
|
|
450
509
|
|
|
@@ -467,7 +526,7 @@ Escape, клик по пункту, прокрутка и изменение р
|
|
|
467
526
|
| `foundText` | `String` | `null` | «Найдено ордеров» → бейдж «Найдено ордеров: 100», когда записи есть |
|
|
468
527
|
| `emptyText` | `String` | `null` | «Не найдено ордеров» — бейдж, когда записей нет |
|
|
469
528
|
| `variant` | `String` | `"page"` | `"page"` — отдельная карточка с тенью; `"card"` — таблица внутри карточки страницы, только линия сверху |
|
|
470
|
-
| `
|
|
529
|
+
| `rowStripe` | `Function` | `null` | `row => имя цвета \| null` — полоска слева в первой ячейке строки; строки полосатые всегда |
|
|
471
530
|
| `lang` | `String` | язык плагина | `"ru"` или `"en"` — тексты пагинации |
|
|
472
531
|
|
|
473
532
|
Столбец:
|
|
@@ -692,17 +751,39 @@ sm:rounded-lg`, `box-sizing: border-box`. Отступов у неё нет: ф
|
|
|
692
751
|
уведомление. `class` и атрибуты попадают на корень на весь экран, так что
|
|
693
752
|
страница может поднять его своим классом, например `class="z-30"`.
|
|
694
753
|
|
|
754
|
+
### TextPopover
|
|
755
|
+
|
|
756
|
+
Иконка-глаз, по клику — подсказка со скрытым текстом: длинный текст SMS,
|
|
757
|
+
значение ключа. Пустой текст — компонента нет.
|
|
758
|
+
|
|
759
|
+
<text-popover :text="row.message" />
|
|
760
|
+
|
|
761
|
+
| Проп | Тип | По умолчанию | Описание |
|
|
762
|
+
| --- | --- | --- | --- |
|
|
763
|
+
| `text` | `String` | обязателен | Скрытый текст; `null` и `""` — компонента нет |
|
|
764
|
+
| `modelValue` | `Boolean` | `false` | Открыта ли подсказка; `v-model` необязателен |
|
|
765
|
+
| `lang` | `String` | язык плагина | `"ru"` или `"en"` |
|
|
766
|
+
|
|
767
|
+
Событие: `update:modelValue` — когда подсказка открылась или закрылась сама:
|
|
768
|
+
кнопкой, кликом вне, Escape, прокруткой, изменением размера окна, опустевшим
|
|
769
|
+
текстом. Значение, пришедшее от родителя, эхом не возвращается.
|
|
770
|
+
|
|
771
|
+
Подсказка открывается в верхнем слое браузера (Popover API): правым краем по
|
|
772
|
+
правому краю иконки, шириной до 384 px, вниз, если помещается, иначе туда,
|
|
773
|
+
где места больше; длинный текст прокручивается внутри, в том числе с
|
|
774
|
+
клавиатуры. Пока подсказка открыта, остальная страница не выделяется:
|
|
775
|
+
тройной клик и протяжка мышью выделяют только её текст. У левого края окна
|
|
776
|
+
подсказка сужается до места слева от иконки, как и меню.
|
|
777
|
+
|
|
695
778
|
## Языки
|
|
696
779
|
|
|
697
780
|
Тексты пакета есть на русском и английском. Язык компонента — проп `lang`, если
|
|
698
781
|
он задан, иначе язык плагина `dashboardUi`, иначе русский. Явно переданный текст
|
|
699
|
-
главнее языка: `cancel-button-text` у `ConfirmationModal
|
|
700
|
-
`DownloadLink`.
|
|
782
|
+
главнее языка: `cancel-button-text` у `ConfirmationModal`.
|
|
701
783
|
|
|
702
784
|
| Компонент | `ru` | `en` |
|
|
703
785
|
| --- | --- | --- |
|
|
704
786
|
| `ConfirmationModal` — кнопка отмены | Отмена | Cancel |
|
|
705
|
-
| `DownloadLink` — подпись | Скачать | Download |
|
|
706
787
|
| `DropdownButtonWithAction` — подпись стрелки для скринридера | Открыть меню | Open menu |
|
|
707
788
|
| `HamburgerMenu` — подпись кнопки для скринридера | Открыть меню | Open menu |
|
|
708
789
|
| `SelectDateInterval` — месяцы, дни недели, кнопки календарей | по-русски | in English |
|
|
@@ -710,6 +791,7 @@ sm:rounded-lg`, `box-sizing: border-box`. Отступов у неё нет: ф
|
|
|
710
791
|
| `DataTable` — пагинация | Предыдущая / Следующая / Показаны результаты X - Y из Z | Previous / Next / Showing X - Y of Z results |
|
|
711
792
|
| `PageCard` — доступное имя крестика | Назад | Back |
|
|
712
793
|
| `NotificationMessage` — подпись крестика для скринридера | Закрыть | Close |
|
|
794
|
+
| `TextPopover` — подпись кнопки и имя области | Показать текст / Полный текст | Show text / Full text |
|
|
713
795
|
|
|
714
796
|
Формат даты — `дд.мм.гггг` в обоих языках: это формат значения, а не текст.
|
|
715
797
|
Неделя начинается с понедельника. Календари `SelectDateInterval` берут язык
|
|
@@ -756,20 +838,20 @@ Inertia SSR), а серверная разметка гидратируется
|
|
|
756
838
|
`class`, в `:class` и в пропсах `*-class` у `<transition>`; варианты идут
|
|
757
839
|
после префикса: `bb:sm:inline-block`, `bb:hover:bg-red-700`. Утилита без
|
|
758
840
|
префикса не сгенерируется. Классы в `:class` пишутся литералами — ключами
|
|
759
|
-
объекта, ветками тернарного оператора, элементами массива.
|
|
841
|
+
объекта, ветками тернарного оператора, элементами массива. Цветовые классы
|
|
842
|
+
компонент не пишет сам — берёт из `src/colors.js` вызовом
|
|
843
|
+
`colorClass(имя, набор)`, и эту форму тест тоже принимает. Оба правила
|
|
760
844
|
проверяет `tests/utilityPrefix.test.js`.
|
|
761
845
|
- Тексты интерфейса — только в `src/i18n.js`, в словарях `ru` и `en` с
|
|
762
846
|
одинаковыми ключами; компонент берёт их через миксин `withLang`
|
|
763
847
|
(`this.texts`) и получает проп `lang`.
|
|
764
848
|
- Ссылка компонента — настоящий `<a href>`; обычный клик — через
|
|
765
849
|
`followLink($event, href)` миксина `withNavigation`, который отдаёт его
|
|
766
|
-
`navigate` плагина. Ни Inertia, ни роутер пакет не импортирует.
|
|
767
|
-
`
|
|
768
|
-
|
|
769
|
-
`
|
|
770
|
-
|
|
771
|
-
`PageCard` — кнопка, а не ссылка: адрес возврата он тоже отдаёт
|
|
772
|
-
`navigate`.
|
|
850
|
+
`navigate` плагина. Ни Inertia, ни роутер пакет не импортирует. Через `navigate` ходят
|
|
851
|
+
`DataTable` (его пагинация), `NavigationMenuElement`, основная
|
|
852
|
+
кнопка-переход и пункты-переходы `DropdownButtonWithAction` и
|
|
853
|
+
пункты-переходы `HamburgerMenu`. Крестик `PageCard` — кнопка, а не ссылка:
|
|
854
|
+
адрес возврата он тоже отдаёт `navigate`.
|
|
773
855
|
- Компонент обращается к `window`, `document` и другим API браузера только
|
|
774
856
|
в `mounted()`, `beforeUnmount()` и обработчиках событий; загрузка модуля,
|
|
775
857
|
`data()`, `computed` и рендер работают без браузера. Так пакет
|
|
@@ -804,7 +886,7 @@ Inertia SSR), а серверная разметка гидратируется
|
|
|
804
886
|
|
|
805
887
|
npm run playground
|
|
806
888
|
|
|
807
|
-
Поднимает демо-страницы со всеми
|
|
889
|
+
Поднимает демо-страницы со всеми шестнадцатью компонентами в двух окружениях:
|
|
808
890
|
голом (без Tailwind и стилей приложения) и в окружении приложения (с
|
|
809
891
|
Tailwind, `@tailwindcss/forms` и типографикой, как у потребителя). Это
|
|
810
892
|
основной способ посмотреть, как компоненты выглядят и ведут себя, а не
|
|
@@ -820,6 +902,38 @@ Tailwind, `@tailwindcss/forms` и типографикой, как у потре
|
|
|
820
902
|
Правила номера телефона в `RussianMobileFilter` — российские; язык текстов
|
|
821
903
|
задаётся, см. «Языки».
|
|
822
904
|
|
|
905
|
+
## Обновление с 0.15
|
|
906
|
+
|
|
907
|
+
| Было | Стало |
|
|
908
|
+
| --- | --- |
|
|
909
|
+
| `SmallBadge` | `InfoPill`, пропы те же; цвета `blue` нет |
|
|
910
|
+
| `<download-link :url="exportUrl" title="скачать xlsx" />` | `<action-pill icon="download" title="скачать xlsx" loading-text="формируется отчёт" :is-loading="exportLoading" @click="exportOrders" />` и `downloadFile(exportUrl)` в методе страницы |
|
|
911
|
+
| своя пилюля-кнопка с `loading` и событием `clicked` | `ActionPill`: `isLoading`, событие `click` |
|
|
912
|
+
| `rowColor` у `DataTable` — заливка строки | `rowStripe` — полоска слева; строки полосатые всегда |
|
|
913
|
+
| `color` пункта меню — `yellow` или `red`; `Dot` — `red` или `green` | любое имя из списка цветов |
|
|
914
|
+
| красная кнопка и красный пункт — `red-50`/`red-700` | `red-100`/`red-800`, как все цвета списка |
|
|
915
|
+
| предупреждения о поле `danger` и слотах `actions`, `button` | их нет: пункт с `danger` — обычный пункт, слоты не рисуются |
|
|
916
|
+
| свой `TextPopover` проекта | `TextPopover` пакета; пустой текст — компонента нет |
|
|
917
|
+
|
|
918
|
+
Цвета `InfoPill` и `ActionPill` теперь подчиняются одной схеме. По
|
|
919
|
+
сравнению с `SmallBadge` зелёный ярче, с зелёным текстом; серый — с более
|
|
920
|
+
светлым фоном и более тёмным текстом; индиго — с индиго-текстом.
|
|
921
|
+
|
|
922
|
+
Метод страницы для «скачать xlsx»:
|
|
923
|
+
|
|
924
|
+
```js
|
|
925
|
+
exportOrders() {
|
|
926
|
+
this.exportFailure = "";
|
|
927
|
+
this.exportLoading = true;
|
|
928
|
+
downloadFile(this.exportUrl)
|
|
929
|
+
.catch(() => { this.exportFailure = "Попробуйте ещё раз"; })
|
|
930
|
+
.finally(() => { this.exportLoading = false; });
|
|
931
|
+
}
|
|
932
|
+
```
|
|
933
|
+
|
|
934
|
+
`0.16.0` не подтянется по `^0.15.x`: для версий `0.x` знак `^` пропускает
|
|
935
|
+
только патчи. Обновление — `npm install @boobooking/dashboard-ui-components@^0.16.0`.
|
|
936
|
+
|
|
823
937
|
## Обновление с 0.14
|
|
824
938
|
|
|
825
939
|
- Меню профиля в шапке переходит с `Popup` на `HamburgerMenu`: кнопку ☰,
|
|
@@ -883,6 +997,8 @@ Tailwind, `@tailwindcss/forms` и типографикой, как у потре
|
|
|
883
997
|
- `DropdownButtonWithAction` строится из списка действий: первое действие —
|
|
884
998
|
основная кнопка, остальные — меню. Слота `button` нет: переданный слот
|
|
885
999
|
не рисуется, а в режиме разработки в консоль уходит предупреждение.
|
|
1000
|
+
Предупреждение было только в 0.15, с 0.16.0 его нет: оставшийся слот
|
|
1001
|
+
молча игнорируется.
|
|
886
1002
|
Отступы и шрифт основной кнопки задаёт компонент (`px-4 py-2 text-sm
|
|
887
1003
|
font-medium`). Было:
|
|
888
1004
|
|
|
@@ -954,7 +1070,8 @@ Tailwind, `@tailwindcss/forms` и типографикой, как у потре
|
|
|
954
1070
|
`retryFromDropdown` удаляется: он полагался на разметку пакета.
|
|
955
1071
|
- Поле `danger` заменено цветом: `danger: true` → `color: 'red'`. Пункт
|
|
956
1072
|
с `danger` рисуется обычным, а в режиме разработки в консоль уходит
|
|
957
|
-
предупреждение с заменой.
|
|
1073
|
+
предупреждение с заменой. Предупреждение было только в 0.15, с 0.16.0
|
|
1074
|
+
его нет: оставшееся поле молча игнорируется. Новый цвет — `color: 'yellow'`. Цвета есть
|
|
958
1075
|
и у пунктов `HamburgerMenu`.
|
|
959
1076
|
- Красный пункт меню — мягкий: красный текст, при подсветке светлый
|
|
960
1077
|
красный фон, а не заливка `red-400` с белым текстом.
|
|
@@ -992,7 +1109,9 @@ Tailwind, `@tailwindcss/forms` и типографикой, как у потре
|
|
|
992
1109
|
]"
|
|
993
1110
|
|
|
994
1111
|
Меню со старым слотом остаётся без пунктов и без стрелки; в режиме
|
|
995
|
-
разработки компонент пишет об этом в консоль.
|
|
1112
|
+
разработки компонент пишет об этом в консоль. Это предупреждение было
|
|
1113
|
+
в 0.14–0.15, с 0.16.0 его нет: оставшийся слот молча игнорируется, а
|
|
1114
|
+
`DropdownButtonWithAction` без `actions` ничего не рисует.
|
|
996
1115
|
- `0.14.0` не подтянется по `^0.13.0`: для версий `0.x` знак `^` пропускает
|
|
997
1116
|
только патчи. Обновление — `npm install @boobooking/dashboard-ui-components@^0.14.0`.
|
|
998
1117
|
|
|
@@ -1026,9 +1145,10 @@ Tailwind, `@tailwindcss/forms` и типографикой, как у потре
|
|
|
1026
1145
|
приложения нет: вид компонентов не зависит ни от того, какие утилиты
|
|
1027
1146
|
генерирует приложение, ни от его палитры. Общими остаются только служебные
|
|
1028
1147
|
переменные Tailwind `--tw-*` с их `@property` — на одной версии Tailwind у
|
|
1029
|
-
пакета и приложения они объявлены одинаково — и
|
|
1030
|
-
(
|
|
1031
|
-
`pulse`, победит тот,
|
|
1148
|
+
пакета и приложения они объявлены одинаково — и глобальные `@keyframes pulse` и
|
|
1149
|
+
`spin` (их используют `bb:animate-pulse` у `Dot` и стрелки часов
|
|
1150
|
+
`ActionPill`): если приложение объявит свой `pulse` или `spin`, победит тот,
|
|
1151
|
+
что подключён позже.
|
|
1032
1152
|
|
|
1033
1153
|
Порядок «стили пакета до стилей приложения» по-прежнему нужен: классы,
|
|
1034
1154
|
которые приложение передаёт на корень компонента, — его собственные
|