neba 1.4.0 → 1.6.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.
Files changed (135) hide show
  1. package/README.md +7 -5
  2. package/dist/components/alert/Alert.d.ts +9 -1
  3. package/dist/components/alert/Alert.js +1 -1
  4. package/dist/components/area-chart/AreaChart.d.ts +54 -0
  5. package/dist/components/area-chart/AreaChart.js +1 -0
  6. package/dist/components/area-chart/index.d.ts +2 -0
  7. package/dist/components/area-chart/index.js +1 -0
  8. package/dist/components/bar-chart/BarChart.d.ts +63 -0
  9. package/dist/components/bar-chart/BarChart.js +1 -0
  10. package/dist/components/bar-chart/index.d.ts +2 -0
  11. package/dist/components/bar-chart/index.js +1 -0
  12. package/dist/components/bottom-navigation/BottomNavigation.d.ts +99 -0
  13. package/dist/components/bottom-navigation/BottomNavigation.js +1 -0
  14. package/dist/components/bottom-navigation/index.d.ts +1 -0
  15. package/dist/components/bottom-navigation/index.js +1 -0
  16. package/dist/components/breadcrumb/Breadcrumb.d.ts +35 -2
  17. package/dist/components/breadcrumb/Breadcrumb.js +1 -1
  18. package/dist/components/button/Button.d.ts +16 -0
  19. package/dist/components/button/Button.js +1 -1
  20. package/dist/components/carousel/Carousel.d.ts +10 -4
  21. package/dist/components/carousel/Carousel.js +1 -1
  22. package/dist/components/chip/Chip.d.ts +9 -1
  23. package/dist/components/chip/Chip.js +1 -1
  24. package/dist/components/collapsible/Collapsible.d.ts +88 -0
  25. package/dist/components/collapsible/Collapsible.js +1 -0
  26. package/dist/components/collapsible/index.d.ts +1 -0
  27. package/dist/components/collapsible/index.js +1 -0
  28. package/dist/components/combobox/Combobox.d.ts +19 -7
  29. package/dist/components/combobox/Combobox.js +1 -1
  30. package/dist/components/dialog/Dialog.d.ts +11 -5
  31. package/dist/components/dialog/Dialog.js +1 -1
  32. package/dist/components/drawer/Drawer.d.ts +11 -5
  33. package/dist/components/drawer/Drawer.js +1 -1
  34. package/dist/components/file-picker/FilePicker.d.ts +1 -3
  35. package/dist/components/file-picker/FilePicker.js +1 -1
  36. package/dist/components/floating-action-button/FloatingActionButton.d.ts +146 -0
  37. package/dist/components/floating-action-button/FloatingActionButton.js +1 -0
  38. package/dist/components/floating-action-button/index.d.ts +1 -0
  39. package/dist/components/floating-action-button/index.js +1 -0
  40. package/dist/components/floating-bottom-navigation/FloatingBottomNavigation.d.ts +91 -0
  41. package/dist/components/floating-bottom-navigation/FloatingBottomNavigation.js +1 -0
  42. package/dist/components/floating-bottom-navigation/index.d.ts +2 -0
  43. package/dist/components/floating-bottom-navigation/index.js +1 -0
  44. package/dist/components/heatmap-chart/HeatmapChart.d.ts +69 -0
  45. package/dist/components/heatmap-chart/HeatmapChart.js +1 -0
  46. package/dist/components/heatmap-chart/index.d.ts +2 -0
  47. package/dist/components/heatmap-chart/index.js +1 -0
  48. package/dist/components/highlight/Highlight.js +1 -1
  49. package/dist/components/line-chart/LineChart.d.ts +74 -0
  50. package/dist/components/line-chart/LineChart.js +1 -0
  51. package/dist/components/line-chart/index.d.ts +2 -0
  52. package/dist/components/line-chart/index.js +1 -0
  53. package/dist/components/number-field/NumberField.d.ts +10 -6
  54. package/dist/components/number-field/NumberField.js +1 -1
  55. package/dist/components/overlay/Overlay.d.ts +11 -6
  56. package/dist/components/overlay/Overlay.js +1 -1
  57. package/dist/components/pagination/Pagination.d.ts +28 -6
  58. package/dist/components/pagination/Pagination.js +1 -1
  59. package/dist/components/panes/Panes.js +1 -1
  60. package/dist/components/pie-chart/PieChart.d.ts +58 -0
  61. package/dist/components/pie-chart/PieChart.js +1 -0
  62. package/dist/components/pie-chart/index.d.ts +2 -0
  63. package/dist/components/pie-chart/index.js +1 -0
  64. package/dist/components/popover/Popover.d.ts +11 -5
  65. package/dist/components/popover/Popover.js +1 -1
  66. package/dist/components/progress-box/ProgressBox.js +1 -1
  67. package/dist/components/progress-circular/ProgressCircular.js +1 -1
  68. package/dist/components/progress-linear/ProgressLinear.js +1 -1
  69. package/dist/components/rating/Rating.d.ts +100 -0
  70. package/dist/components/rating/Rating.js +1 -0
  71. package/dist/components/rating/index.d.ts +1 -0
  72. package/dist/components/rating/index.js +1 -0
  73. package/dist/components/scatter-chart/ScatterChart.d.ts +45 -0
  74. package/dist/components/scatter-chart/ScatterChart.js +1 -0
  75. package/dist/components/scatter-chart/index.d.ts +2 -0
  76. package/dist/components/scatter-chart/index.js +1 -0
  77. package/dist/components/scroll-zone/ScrollZone.d.ts +126 -0
  78. package/dist/components/scroll-zone/ScrollZone.js +1 -0
  79. package/dist/components/scroll-zone/index.d.ts +2 -0
  80. package/dist/components/scroll-zone/index.js +1 -0
  81. package/dist/components/select/Select.d.ts +1 -3
  82. package/dist/components/select/Select.js +1 -1
  83. package/dist/components/sparkline/Sparkline.d.ts +67 -0
  84. package/dist/components/sparkline/Sparkline.js +1 -0
  85. package/dist/components/sparkline/index.d.ts +2 -0
  86. package/dist/components/sparkline/index.js +1 -0
  87. package/dist/components/statistic/Statistic.d.ts +7 -0
  88. package/dist/components/statistic/Statistic.js +1 -1
  89. package/dist/components/table/Table.d.ts +13 -2
  90. package/dist/components/table/Table.js +1 -1
  91. package/dist/components/text-link/TextLink.js +1 -1
  92. package/dist/components/time-picker/TimePicker.js +1 -1
  93. package/dist/components/timeline-chart/TimelineChart.d.ts +44 -0
  94. package/dist/components/timeline-chart/TimelineChart.js +1 -0
  95. package/dist/components/timeline-chart/index.d.ts +2 -0
  96. package/dist/components/timeline-chart/index.js +1 -0
  97. package/dist/components/toast/Toast.d.ts +10 -2
  98. package/dist/components/toast/Toast.js +1 -1
  99. package/dist/components/tooltip/Tooltip.d.ts +2 -4
  100. package/dist/components/tooltip/Tooltip.js +1 -1
  101. package/dist/components/tree-view/TreeView.js +1 -1
  102. package/dist/components/window-pane/WindowPane.d.ts +178 -0
  103. package/dist/components/window-pane/WindowPane.js +1 -0
  104. package/dist/components/window-pane/index.d.ts +2 -0
  105. package/dist/components/window-pane/index.js +1 -0
  106. package/dist/index.d.ts +15 -0
  107. package/dist/index.js +1 -1
  108. package/dist/internal/animate.d.ts +0 -9
  109. package/dist/internal/animate.js +1 -1
  110. package/dist/internal/bottom-navigation.d.ts +57 -0
  111. package/dist/internal/bottom-navigation.js +1 -0
  112. package/dist/internal/calendar.js +1 -1
  113. package/dist/internal/chart-frame.d.ts +409 -0
  114. package/dist/internal/chart-frame.js +1 -0
  115. package/dist/internal/chart-line.d.ts +44 -0
  116. package/dist/internal/chart-line.js +1 -0
  117. package/dist/internal/chart.d.ts +456 -0
  118. package/dist/internal/chart.js +1 -0
  119. package/dist/internal/date.d.ts +0 -2
  120. package/dist/internal/date.js +1 -1
  121. package/dist/internal/format.d.ts +29 -0
  122. package/dist/internal/format.js +1 -0
  123. package/dist/internal/i18n.d.ts +143 -0
  124. package/dist/internal/i18n.js +1 -1
  125. package/dist/internal/icons.d.ts +2 -0
  126. package/dist/internal/icons.js +1 -1
  127. package/dist/internal/picker.d.ts +2 -4
  128. package/dist/internal/picker.js +1 -1
  129. package/dist/internal/progress.d.ts +1 -3
  130. package/dist/internal/window.d.ts +201 -0
  131. package/dist/internal/window.js +1 -0
  132. package/dist/styles.css +1 -1
  133. package/dist/tailwind.css +211 -0
  134. package/dist/types.d.ts +214 -0
  135. package/package.json +21 -17
@@ -32,6 +32,28 @@
32
32
  * language that has not caught up with it yet.
33
33
  */
34
34
  export interface NebaMessages {
35
+ /**
36
+ * The words more than one component needs.
37
+ *
38
+ * The one namespace here that is not a component, and it exists because five
39
+ * of them draw the same × and would otherwise each carry their own "Close" in
40
+ * eighteen languages. A reader meeting that button on a Dialog, a Drawer, a
41
+ * Popover and a Toast should hear the same word every time, which is easier to
42
+ * guarantee when there is only one of it.
43
+ */
44
+ action: {
45
+ /** The × on a Dialog, a Drawer, a Popover and a Toast. */
46
+ close: string;
47
+ /**
48
+ * And the one on an Alert, which is a different act: a dialog is closed
49
+ * because it has been answered, an alert is waved away.
50
+ */
51
+ dismiss: string;
52
+ /** The × that empties a Combobox. */
53
+ clear: string;
54
+ /** The × on a Chip. */
55
+ remove: string;
56
+ };
35
57
  /** TextLink. */
36
58
  link: {
37
59
  /**
@@ -101,6 +123,11 @@ export interface NebaMessages {
101
123
  range: string;
102
124
  /** How many rows are chosen. `{count}` is replaced the same way. */
103
125
  selected: string;
126
+ /**
127
+ * What a table with no rows in it says. Shared with Table, which has the
128
+ * same nothing to report and no chrome of its own to say it with.
129
+ */
130
+ empty: string;
104
131
  };
105
132
  /**
106
133
  * ColorPicker.
@@ -127,6 +154,122 @@ export interface NebaMessages {
127
154
  /** What the trigger reads before anything has been chosen. */
128
155
  empty: string;
129
156
  };
157
+ /**
158
+ * Rating.
159
+ *
160
+ * A row of stars is the same case the ColorPicker's rails are: the whole
161
+ * control is a picture, and without these it says nothing at all to a reader
162
+ * who is not looking at it.
163
+ */
164
+ rating: {
165
+ /** Names the group, when the caller has not named it themselves. */
166
+ label: string;
167
+ /**
168
+ * What one star — and the whole control, once it is read only — is called.
169
+ * `{value}` and `{max}` are replaced with the numbers, already formatted
170
+ * for the locale.
171
+ *
172
+ * A sentence with both numbers in it rather than "3 stars", because a count
173
+ * of stars is a plural in most languages and a fraction in none of them:
174
+ * "3 out of 5" is one string per locale, and "3 stars" is one per locale
175
+ * per plural form.
176
+ */
177
+ value: string;
178
+ /** And what it is called before anything has been chosen. */
179
+ empty: string;
180
+ };
181
+ /**
182
+ * NumberField.
183
+ *
184
+ * Two buttons with an arrow on each and nothing else, which is the same case
185
+ * the ColorPicker's rails are.
186
+ */
187
+ number: {
188
+ /** The stepper that goes up. */
189
+ increase: string;
190
+ /** And the one that goes down. */
191
+ decrease: string;
192
+ };
193
+ /**
194
+ * Pagination.
195
+ *
196
+ * Every string here names a control that is a number or an arrow, so without
197
+ * them the row reads out as a list of digits with no idea what they page
198
+ * through.
199
+ */
200
+ pagination: {
201
+ /** Names the `<nav>` landmark. */
202
+ label: string;
203
+ /** One page button. `{page}` is replaced with the number. */
204
+ page: string;
205
+ /**
206
+ * Where the reader is, read out rather than drawn. `{page}` and `{total}`
207
+ * are both replaced — one sentence rather than two fragments, because a
208
+ * count of pages and the page you are on go in opposite orders depending on
209
+ * the language.
210
+ */
211
+ status: string;
212
+ previous: string;
213
+ next: string;
214
+ first: string;
215
+ last: string;
216
+ };
217
+ /** Carousel. */
218
+ carousel: {
219
+ /** Names the region, beside the `carousel` roledescription. */
220
+ label: string;
221
+ /** One slide. `{index}` and `{total}` are replaced with the numbers. */
222
+ slide: string;
223
+ previous: string;
224
+ next: string;
225
+ };
226
+ /**
227
+ * ScrollZone.
228
+ *
229
+ * Both buttons are an arrow with nothing else on them, and which way the
230
+ * strip runs is a prop — so the words are logical rather than physical. A
231
+ * vertical zone's "back" is up, and under RTL a horizontal one's is to the
232
+ * right.
233
+ */
234
+ scroll: {
235
+ previous: string;
236
+ next: string;
237
+ };
238
+ /** Breadcrumb. */
239
+ breadcrumb: {
240
+ /** Names the `<nav>` landmark. */
241
+ label: string;
242
+ /** The `…` that puts the folded middle of the trail back. */
243
+ expand: string;
244
+ };
245
+ /** Combobox. */
246
+ combobox: {
247
+ /** The line where the list would be, when nothing matched what was typed. */
248
+ empty: string;
249
+ /** The × on one chosen entry. `{label}` is replaced with its own label. */
250
+ remove: string;
251
+ };
252
+ /** Overlay. */
253
+ overlay: {
254
+ /** Names the sheet that covers whatever it was wrapped around. */
255
+ label: string;
256
+ };
257
+ /**
258
+ * WindowPane.
259
+ *
260
+ * The three buttons on a title bar that are drawings of what they do, and the
261
+ * handle that has no drawing at all. The × is `action.close`, which every
262
+ * other component's close button already reads — a reader meeting it on a
263
+ * Dialog and on a window should hear the same word.
264
+ */
265
+ window: {
266
+ minimize: string;
267
+ maximize: string;
268
+ /** What the maximize button becomes once the window is maximized. */
269
+ restore: string;
270
+ /** Names the corner a pointer drags to resize. */
271
+ resize: string;
272
+ };
130
273
  }
131
274
  /**
132
275
  * The strings for a locale, merged over English.
@@ -1 +1 @@
1
- import*as e from"react";const a={link:{newTab:"(opens in a new tab)"},spoiler:{reveal:"Reveal",hide:"Hide",notice:"This may contain spoilers"},chat:{sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Not sent",typing:"Typing…"},empty:{title:"Nothing here"},table:{search:"Search",selectAll:"Select all rows",selectRow:"Select row",rowsPerPage:"Rows per page",range:"{start}–{end} of {total}",selected:"{count} selected"},color:{area:"Saturation and brightness",hue:"Hue",alpha:"Opacity",value:"Colour value",swatches:"Preset colours",clear:"Clear",empty:"Choose a colour"}},t={ko:{link:{newTab:"(새 창에서 열림)"},spoiler:{reveal:"내용 보기",hide:"숨기기",notice:"스포일러가 포함되어 있을 수 있습니다"},chat:{sending:"보내는 중",sent:"보냄",delivered:"전달됨",read:"읽음",failed:"전송 실패",typing:"입력 중…"},empty:{title:"내용이 없습니다"},table:{search:"검색",selectAll:"모든 행 선택",selectRow:"행 선택",rowsPerPage:"페이지당 행 수",range:"전체 {total}개 중 {start}–{end}",selected:"{count}개 선택됨"},color:{area:"채도와 명도",hue:"색상",alpha:"불투명도",value:"색상 값",swatches:"기본 색상",clear:"지우기",empty:"색상 선택"}},ja:{link:{newTab:"(新しいタブで開きます)"},spoiler:{reveal:"表示する",hide:"隠す",notice:"ネタバレを含む可能性があります"},chat:{sending:"送信中",sent:"送信済み",delivered:"配信済み",read:"既読",failed:"送信できませんでした",typing:"入力中…"},empty:{title:"表示するものがありません"},table:{search:"検索",selectAll:"すべての行を選択",selectRow:"行を選択",rowsPerPage:"1 ページの行数",range:"{total} 件中 {start}–{end} 件",selected:"{count} 件を選択中"},color:{area:"彩度と明度",hue:"色相",alpha:"不透明度",value:"カラー値",swatches:"プリセットの色",clear:"クリア",empty:"色を選択"}},"zh-hans":{link:{newTab:"(在新标签页中打开)"},spoiler:{reveal:"显示内容",hide:"隐藏",notice:"此内容可能包含剧透"},chat:{sending:"发送中",sent:"已发送",delivered:"已送达",read:"已读",failed:"发送失败",typing:"正在输入…"},empty:{title:"暂无内容"},table:{search:"搜索",selectAll:"全选所有行",selectRow:"选择此行",rowsPerPage:"每页行数",range:"第 {start}–{end} 行,共 {total} 行",selected:"已选择 {count} 行"},color:{area:"饱和度和明度",hue:"色相",alpha:"不透明度",value:"颜色值",swatches:"预设颜色",clear:"清除",empty:"选择颜色"}},"zh-hant":{link:{newTab:"(在新分頁中開啟)"},spoiler:{reveal:"顯示內容",hide:"隱藏",notice:"此內容可能包含劇透"},chat:{sending:"傳送中",sent:"已傳送",delivered:"已送達",read:"已讀",failed:"傳送失敗",typing:"正在輸入…"},empty:{title:"沒有內容"},table:{search:"搜尋",selectAll:"全選所有列",selectRow:"選擇此列",rowsPerPage:"每頁列數",range:"第 {start}–{end} 列,共 {total} 列",selected:"已選擇 {count} 列"},color:{area:"飽和度與明度",hue:"色相",alpha:"不透明度",value:"顏色值",swatches:"預設顏色",clear:"清除",empty:"選擇顏色"}},es:{link:{newTab:"(se abre en una pestaña nueva)"},spoiler:{reveal:"Mostrar",hide:"Ocultar",notice:"Puede contener spoilers"},chat:{sending:"Enviando",sent:"Enviado",delivered:"Entregado",read:"Leído",failed:"No enviado",typing:"Escribiendo…"},empty:{title:"No hay nada aquí"},table:{search:"Buscar",selectAll:"Seleccionar todas las filas",selectRow:"Seleccionar fila",rowsPerPage:"Filas por página",range:"{start}–{end} de {total}",selected:"{count} seleccionadas"},color:{area:"Saturación y brillo",hue:"Tono",alpha:"Opacidad",value:"Valor del color",swatches:"Colores predefinidos",clear:"Borrar",empty:"Elegir un color"}},pt:{link:{newTab:"(abre em uma nova aba)"},spoiler:{reveal:"Mostrar",hide:"Ocultar",notice:"Pode conter spoilers"},chat:{sending:"Enviando",sent:"Enviado",delivered:"Entregue",read:"Lido",failed:"Não enviado",typing:"Digitando…"},empty:{title:"Nada por aqui"},table:{search:"Pesquisar",selectAll:"Selecionar todas as linhas",selectRow:"Selecionar linha",rowsPerPage:"Linhas por página",range:"{start}–{end} de {total}",selected:"{count} selecionadas"},color:{area:"Saturação e brilho",hue:"Matiz",alpha:"Opacidade",value:"Valor da cor",swatches:"Cores predefinidas",clear:"Limpar",empty:"Escolher uma cor"}},fr:{link:{newTab:"(s’ouvre dans un nouvel onglet)"},spoiler:{reveal:"Afficher",hide:"Masquer",notice:"Peut contenir des spoilers"},chat:{sending:"Envoi en cours",sent:"Envoyé",delivered:"Distribué",read:"Lu",failed:"Non envoyé",typing:"En train d’écrire…"},empty:{title:"Rien ici"},table:{search:"Rechercher",selectAll:"Sélectionner toutes les lignes",selectRow:"Sélectionner la ligne",rowsPerPage:"Lignes par page",range:"{start}–{end} sur {total}",selected:"{count} sélectionnées"},color:{area:"Saturation et luminosité",hue:"Teinte",alpha:"Opacité",value:"Valeur de la couleur",swatches:"Couleurs prédéfinies",clear:"Effacer",empty:"Choisir une couleur"}},de:{link:{newTab:"(wird in einem neuen Tab geöffnet)"},spoiler:{reveal:"Anzeigen",hide:"Ausblenden",notice:"Kann Spoiler enthalten"},chat:{sending:"Wird gesendet",sent:"Gesendet",delivered:"Zugestellt",read:"Gelesen",failed:"Nicht gesendet",typing:"Schreibt…"},empty:{title:"Nichts vorhanden"},table:{search:"Suchen",selectAll:"Alle Zeilen auswählen",selectRow:"Zeile auswählen",rowsPerPage:"Zeilen pro Seite",range:"{start}–{end} von {total}",selected:"{count} ausgewählt"},color:{area:"Sättigung und Helligkeit",hue:"Farbton",alpha:"Deckkraft",value:"Farbwert",swatches:"Vorgegebene Farben",clear:"Löschen",empty:"Farbe auswählen"}},it:{link:{newTab:"(si apre in una nuova scheda)"},spoiler:{reveal:"Mostra",hide:"Nascondi",notice:"Può contenere spoiler"},chat:{sending:"Invio in corso",sent:"Inviato",delivered:"Consegnato",read:"Letto",failed:"Non inviato",typing:"Sta scrivendo…"},empty:{title:"Non c’è nulla"},table:{search:"Cerca",selectAll:"Seleziona tutte le righe",selectRow:"Seleziona riga",rowsPerPage:"Righe per pagina",range:"{start}–{end} di {total}",selected:"{count} selezionate"},color:{area:"Saturazione e luminosità",hue:"Tonalità",alpha:"Opacità",value:"Valore del colore",swatches:"Colori predefiniti",clear:"Cancella",empty:"Scegli un colore"}},nl:{link:{newTab:"(opent in een nieuw tabblad)"},spoiler:{reveal:"Tonen",hide:"Verbergen",notice:"Kan spoilers bevatten"},chat:{sending:"Wordt verzonden",sent:"Verzonden",delivered:"Afgeleverd",read:"Gelezen",failed:"Niet verzonden",typing:"Aan het typen…"},empty:{title:"Hier is niets"},table:{search:"Zoeken",selectAll:"Alle rijen selecteren",selectRow:"Rij selecteren",rowsPerPage:"Rijen per pagina",range:"{start}–{end} van {total}",selected:"{count} geselecteerd"},color:{area:"Verzadiging en helderheid",hue:"Kleurtoon",alpha:"Dekking",value:"Kleurwaarde",swatches:"Vooraf ingestelde kleuren",clear:"Wissen",empty:"Kies een kleur"}},pl:{link:{newTab:"(otwiera się w nowej karcie)"},spoiler:{reveal:"Pokaż",hide:"Ukryj",notice:"Może zawierać spoilery"},chat:{sending:"Wysyłanie",sent:"Wysłano",delivered:"Dostarczono",read:"Przeczytano",failed:"Nie wysłano",typing:"Pisze…"},empty:{title:"Nic tu nie ma"},table:{search:"Szukaj",selectAll:"Zaznacz wszystkie wiersze",selectRow:"Zaznacz wiersz",rowsPerPage:"Wierszy na stronę",range:"{start}–{end} z {total}",selected:"Zaznaczono: {count}"},color:{area:"Nasycenie i jasność",hue:"Barwa",alpha:"Krycie",value:"Wartość koloru",swatches:"Kolory predefiniowane",clear:"Wyczyść",empty:"Wybierz kolor"}},ru:{link:{newTab:"(откроется в новой вкладке)"},spoiler:{reveal:"Показать",hide:"Скрыть",notice:"Может содержать спойлеры"},chat:{sending:"Отправляется",sent:"Отправлено",delivered:"Доставлено",read:"Прочитано",failed:"Не отправлено",typing:"Печатает…"},empty:{title:"Здесь пусто"},table:{search:"Поиск",selectAll:"Выбрать все строки",selectRow:"Выбрать строку",rowsPerPage:"Строк на странице",range:"{start}–{end} из {total}",selected:"Выбрано: {count}"},color:{area:"Насыщенность и яркость",hue:"Оттенок",alpha:"Непрозрачность",value:"Значение цвета",swatches:"Готовые цвета",clear:"Очистить",empty:"Выберите цвет"}},tr:{link:{newTab:"(yeni sekmede açılır)"},spoiler:{reveal:"Göster",hide:"Gizle",notice:"Spoiler içerebilir"},chat:{sending:"Gönderiliyor",sent:"Gönderildi",delivered:"İletildi",read:"Okundu",failed:"Gönderilemedi",typing:"Yazıyor…"},empty:{title:"Burada bir şey yok"},table:{search:"Ara",selectAll:"Tüm satırları seç",selectRow:"Satırı seç",rowsPerPage:"Sayfa başına satır",range:"{total} kayıttan {start}–{end}",selected:"{count} seçildi"},color:{area:"Doygunluk ve parlaklık",hue:"Renk tonu",alpha:"Opaklık",value:"Renk değeri",swatches:"Hazır renkler",clear:"Temizle",empty:"Bir renk seçin"}},ar:{link:{newTab:"(يفتح في علامة تبويب جديدة)"},spoiler:{reveal:"إظهار",hide:"إخفاء",notice:"قد يحتوي على حرق للأحداث"},chat:{sending:"جارٍ الإرسال",sent:"تم الإرسال",delivered:"تم التسليم",read:"تمت القراءة",failed:"لم يتم الإرسال",typing:"يكتب الآن…"},empty:{title:"لا يوجد شيء هنا"},table:{search:"بحث",selectAll:"تحديد كل الصفوف",selectRow:"تحديد الصف",rowsPerPage:"صفوف لكل صفحة",range:"{start}–{end} من {total}",selected:"تم تحديد {count}"},color:{area:"التشبع والسطوع",hue:"درجة اللون",alpha:"العتامة",value:"قيمة اللون",swatches:"ألوان جاهزة",clear:"مسح",empty:"اختر لونًا"}},hi:{link:{newTab:"(नए टैब में खुलता है)"},spoiler:{reveal:"दिखाएँ",hide:"छिपाएँ",notice:"इसमें स्पॉइलर हो सकते हैं"},chat:{sending:"भेजा जा रहा है",sent:"भेजा गया",delivered:"डिलीवर हुआ",read:"पढ़ा गया",failed:"नहीं भेजा गया",typing:"टाइप कर रहे हैं…"},empty:{title:"यहाँ कुछ नहीं है"},table:{search:"खोजें",selectAll:"सभी पंक्तियाँ चुनें",selectRow:"पंक्ति चुनें",rowsPerPage:"प्रति पृष्ठ पंक्तियाँ",range:"{total} में से {start}–{end}",selected:"{count} चुनी गईं"},color:{area:"संतृप्ति और चमक",hue:"रंग",alpha:"अपारदर्शिता",value:"रंग मान",swatches:"पूर्व निर्धारित रंग",clear:"साफ़ करें",empty:"एक रंग चुनें"}},id:{link:{newTab:"(terbuka di tab baru)"},spoiler:{reveal:"Tampilkan",hide:"Sembunyikan",notice:"Mungkin mengandung spoiler"},chat:{sending:"Mengirim",sent:"Terkirim",delivered:"Diterima",read:"Dibaca",failed:"Gagal terkirim",typing:"Sedang mengetik…"},empty:{title:"Tidak ada apa-apa di sini"},table:{search:"Cari",selectAll:"Pilih semua baris",selectRow:"Pilih baris",rowsPerPage:"Baris per halaman",range:"{start}–{end} dari {total}",selected:"{count} dipilih"},color:{area:"Saturasi dan kecerahan",hue:"Rona",alpha:"Opasitas",value:"Nilai warna",swatches:"Warna preset",clear:"Hapus",empty:"Pilih warna"}},vi:{link:{newTab:"(mở trong tab mới)"},spoiler:{reveal:"Hiện nội dung",hide:"Ẩn",notice:"Có thể chứa nội dung tiết lộ"},chat:{sending:"Đang gửi",sent:"Đã gửi",delivered:"Đã nhận",read:"Đã xem",failed:"Chưa gửi được",typing:"Đang nhập…"},empty:{title:"Không có gì ở đây"},table:{search:"Tìm kiếm",selectAll:"Chọn tất cả các hàng",selectRow:"Chọn hàng",rowsPerPage:"Số hàng mỗi trang",range:"{start}–{end} trên {total}",selected:"Đã chọn {count}"},color:{area:"Độ bão hòa và độ sáng",hue:"Sắc độ",alpha:"Độ mờ đục",value:"Giá trị màu",swatches:"Màu dựng sẵn",clear:"Xóa",empty:"Chọn màu"}},th:{link:{newTab:"(เปิดในแท็บใหม่)"},spoiler:{reveal:"แสดงเนื้อหา",hide:"ซ่อน",notice:"อาจมีการเปิดเผยเนื้อหา"},chat:{sending:"กำลังส่ง",sent:"ส่งแล้ว",delivered:"ส่งถึงแล้ว",read:"อ่านแล้ว",failed:"ส่งไม่สำเร็จ",typing:"กำลังพิมพ์…"},empty:{title:"ไม่มีอะไรที่นี่"},table:{search:"ค้นหา",selectAll:"เลือกทุกแถว",selectRow:"เลือกแถวนี้",rowsPerPage:"จำนวนแถวต่อหน้า",range:"{start}–{end} จาก {total}",selected:"เลือกแล้ว {count} รายการ"},color:{area:"ความอิ่มตัวและความสว่าง",hue:"เฉดสี",alpha:"ความทึบ",value:"ค่าสี",swatches:"สีที่กำหนดไว้",clear:"ล้าง",empty:"เลือกสี"}}},l={zh:"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hk":"zh-hant","zh-mo":"zh-hant","zh-tw":"zh-hant"};const n=new Map([["",a]]);export function resolveMessages(e){const r=e?.trim()??"",i=n.get(r);if(i)return i;const s=function(e){const a=e.toLowerCase().split(/[-_]/).filter(Boolean),t=a[0];if(!t)return[];const l=a.slice(1),n=l.find(e=>/^[a-z]{4}$/.test(e)),r=l.find(e=>/^([a-z]{2}|\d{3})$/.test(e));return[n?`${t}-${n}`:"",r?`${t}-${r}`:"",t].filter(Boolean)}(r).map(e=>t[e]??t[l[e]??""]).find(Boolean),o=s?{link:{...a.link,...s.link},spoiler:{...a.spoiler,...s.spoiler},chat:{...a.chat,...s.chat},empty:{...a.empty,...s.empty},table:{...a.table,...s.table},color:{...a.color,...s.color}}:a;return n.set(r,o),o}export function useMessages(a){return e.useMemo(()=>resolveMessages(a),[a])}export function fillMessage(e,a){return e.replace(/\{(\w+)\}/g,(e,t)=>a[t]??e)}
1
+ import*as e from"react";const a={action:{close:"Close",dismiss:"Dismiss",clear:"Clear",remove:"Remove"},link:{newTab:"(opens in a new tab)"},spoiler:{reveal:"Reveal",hide:"Hide",notice:"This may contain spoilers"},chat:{sending:"Sending",sent:"Sent",delivered:"Delivered",read:"Read",failed:"Not sent",typing:"Typing…"},empty:{title:"Nothing here"},table:{search:"Search",selectAll:"Select all rows",selectRow:"Select row",rowsPerPage:"Rows per page",range:"{start}–{end} of {total}",selected:"{count} selected",empty:"No data"},color:{area:"Saturation and brightness",hue:"Hue",alpha:"Opacity",value:"Colour value",swatches:"Preset colours",clear:"Clear",empty:"Choose a colour"},rating:{label:"Rating",value:"{value} out of {max}",empty:"No rating"},number:{increase:"Increase",decrease:"Decrease"},pagination:{label:"Pagination",page:"Page {page}",status:"Page {page} of {total}",previous:"Previous page",next:"Next page",first:"First page",last:"Last page"},carousel:{label:"Carousel",slide:"Slide {index} of {total}",previous:"Previous slide",next:"Next slide"},scroll:{previous:"Scroll back",next:"Scroll forward"},breadcrumb:{label:"Breadcrumb",expand:"Show hidden steps"},combobox:{empty:"No matches",remove:"Remove {label}"},overlay:{label:"Overlay"},window:{minimize:"Minimize",maximize:"Maximize",restore:"Restore",resize:"Resize window"}},i={ko:{action:{close:"닫기",dismiss:"알림 닫기",clear:"지우기",remove:"삭제"},link:{newTab:"(새 창에서 열림)"},spoiler:{reveal:"내용 보기",hide:"숨기기",notice:"스포일러가 포함되어 있을 수 있습니다"},chat:{sending:"보내는 중",sent:"보냄",delivered:"전달됨",read:"읽음",failed:"전송 실패",typing:"입력 중…"},empty:{title:"내용이 없습니다"},table:{search:"검색",selectAll:"모든 행 선택",selectRow:"행 선택",rowsPerPage:"페이지당 행 수",range:"전체 {total}개 중 {start}–{end}",selected:"{count}개 선택됨",empty:"데이터 없음"},color:{area:"채도와 명도",hue:"색상",alpha:"불투명도",value:"색상 값",swatches:"기본 색상",clear:"지우기",empty:"색상 선택"},rating:{label:"별점",value:"{max}점 만점에 {value}점",empty:"별점 없음"},number:{increase:"값 늘리기",decrease:"값 줄이기"},pagination:{label:"페이지 매기기",page:"{page}페이지",status:"전체 {total}페이지 중 {page}페이지",previous:"이전 페이지",next:"다음 페이지",first:"첫 페이지",last:"마지막 페이지"},carousel:{label:"캐러셀",slide:"전체 {total}장 중 {index}장",previous:"이전 슬라이드",next:"다음 슬라이드"},scroll:{previous:"뒤로 스크롤",next:"앞으로 스크롤"},breadcrumb:{label:"탐색 경로",expand:"숨겨진 단계 보기"},combobox:{empty:"일치하는 항목 없음",remove:"{label} 삭제"},overlay:{label:"오버레이"},window:{minimize:"최소화",maximize:"최대화",restore:"이전 크기로 복원",resize:"창 크기 조절"}},ja:{action:{close:"閉じる",dismiss:"閉じる",clear:"クリア",remove:"削除"},link:{newTab:"(新しいタブで開きます)"},spoiler:{reveal:"表示する",hide:"隠す",notice:"ネタバレを含む可能性があります"},chat:{sending:"送信中",sent:"送信済み",delivered:"配信済み",read:"既読",failed:"送信できませんでした",typing:"入力中…"},empty:{title:"表示するものがありません"},table:{search:"検索",selectAll:"すべての行を選択",selectRow:"行を選択",rowsPerPage:"1 ページの行数",range:"{total} 件中 {start}–{end} 件",selected:"{count} 件を選択中",empty:"データがありません"},color:{area:"彩度と明度",hue:"色相",alpha:"不透明度",value:"カラー値",swatches:"プリセットの色",clear:"クリア",empty:"色を選択"},rating:{label:"評価",value:"{max} 段階中 {value}",empty:"評価なし"},number:{increase:"増やす",decrease:"減らす"},pagination:{label:"ページ送り",page:"{page} ページ",status:"{total} ページ中 {page} ページ",previous:"前のページ",next:"次のページ",first:"最初のページ",last:"最後のページ"},carousel:{label:"カルーセル",slide:"{total} 枚中 {index} 枚目",previous:"前のスライド",next:"次のスライド"},scroll:{previous:"前へスクロール",next:"次へスクロール"},breadcrumb:{label:"パンくずリスト",expand:"省略された階層を表示"},combobox:{empty:"一致する項目がありません",remove:"{label} を削除"},overlay:{label:"オーバーレイ"},window:{minimize:"最小化",maximize:"最大化",restore:"元のサイズに戻す",resize:"ウィンドウのサイズを変更"}},"zh-hans":{action:{close:"关闭",dismiss:"关闭",clear:"清除",remove:"移除"},link:{newTab:"(在新标签页中打开)"},spoiler:{reveal:"显示内容",hide:"隐藏",notice:"此内容可能包含剧透"},chat:{sending:"发送中",sent:"已发送",delivered:"已送达",read:"已读",failed:"发送失败",typing:"正在输入…"},empty:{title:"暂无内容"},table:{search:"搜索",selectAll:"全选所有行",selectRow:"选择此行",rowsPerPage:"每页行数",range:"第 {start}–{end} 行,共 {total} 行",selected:"已选择 {count} 行",empty:"暂无数据"},color:{area:"饱和度和明度",hue:"色相",alpha:"不透明度",value:"颜色值",swatches:"预设颜色",clear:"清除",empty:"选择颜色"},rating:{label:"评分",value:"{max} 分中的 {value} 分",empty:"未评分"},number:{increase:"增加",decrease:"减少"},pagination:{label:"分页",page:"第 {page} 页",status:"第 {page} 页,共 {total} 页",previous:"上一页",next:"下一页",first:"第一页",last:"最后一页"},carousel:{label:"轮播",slide:"第 {index} 张,共 {total} 张",previous:"上一张",next:"下一张"},scroll:{previous:"向前滚动",next:"向后滚动"},breadcrumb:{label:"面包屑导航",expand:"显示隐藏的层级"},combobox:{empty:"无匹配项",remove:"移除 {label}"},overlay:{label:"遮罩层"},window:{minimize:"最小化",maximize:"最大化",restore:"向下还原",resize:"调整窗口大小"}},"zh-hant":{action:{close:"關閉",dismiss:"關閉",clear:"清除",remove:"移除"},link:{newTab:"(在新分頁中開啟)"},spoiler:{reveal:"顯示內容",hide:"隱藏",notice:"此內容可能包含劇透"},chat:{sending:"傳送中",sent:"已傳送",delivered:"已送達",read:"已讀",failed:"傳送失敗",typing:"正在輸入…"},empty:{title:"沒有內容"},table:{search:"搜尋",selectAll:"全選所有列",selectRow:"選擇此列",rowsPerPage:"每頁列數",range:"第 {start}–{end} 列,共 {total} 列",selected:"已選擇 {count} 列",empty:"沒有資料"},color:{area:"飽和度與明度",hue:"色相",alpha:"不透明度",value:"顏色值",swatches:"預設顏色",clear:"清除",empty:"選擇顏色"},rating:{label:"評分",value:"{max} 分中的 {value} 分",empty:"未評分"},number:{increase:"增加",decrease:"減少"},pagination:{label:"分頁",page:"第 {page} 頁",status:"第 {page} 頁,共 {total} 頁",previous:"上一頁",next:"下一頁",first:"第一頁",last:"最後一頁"},carousel:{label:"輪播",slide:"第 {index} 張,共 {total} 張",previous:"上一張",next:"下一張"},scroll:{previous:"向前捲動",next:"向後捲動"},breadcrumb:{label:"麵包屑導覽",expand:"顯示隱藏的層級"},combobox:{empty:"沒有相符的項目",remove:"移除 {label}"},overlay:{label:"遮罩層"},window:{minimize:"最小化",maximize:"最大化",restore:"還原",resize:"調整視窗大小"}},es:{action:{close:"Cerrar",dismiss:"Descartar",clear:"Borrar",remove:"Quitar"},link:{newTab:"(se abre en una pestaña nueva)"},spoiler:{reveal:"Mostrar",hide:"Ocultar",notice:"Puede contener spoilers"},chat:{sending:"Enviando",sent:"Enviado",delivered:"Entregado",read:"Leído",failed:"No enviado",typing:"Escribiendo…"},empty:{title:"No hay nada aquí"},table:{search:"Buscar",selectAll:"Seleccionar todas las filas",selectRow:"Seleccionar fila",rowsPerPage:"Filas por página",range:"{start}–{end} de {total}",selected:"{count} seleccionadas",empty:"Sin datos"},color:{area:"Saturación y brillo",hue:"Tono",alpha:"Opacidad",value:"Valor del color",swatches:"Colores predefinidos",clear:"Borrar",empty:"Elegir un color"},rating:{label:"Valoración",value:"{value} de {max}",empty:"Sin valoración"},number:{increase:"Aumentar",decrease:"Disminuir"},pagination:{label:"Paginación",page:"Página {page}",status:"Página {page} de {total}",previous:"Página anterior",next:"Página siguiente",first:"Primera página",last:"Última página"},carousel:{label:"Carrusel",slide:"Diapositiva {index} de {total}",previous:"Diapositiva anterior",next:"Diapositiva siguiente"},scroll:{previous:"Desplazar hacia atrás",next:"Desplazar hacia adelante"},breadcrumb:{label:"Ruta de navegación",expand:"Mostrar los pasos ocultos"},combobox:{empty:"Sin coincidencias",remove:"Quitar {label}"},overlay:{label:"Superposición"},window:{minimize:"Minimizar",maximize:"Maximizar",restore:"Restaurar",resize:"Cambiar el tamaño de la ventana"}},pt:{action:{close:"Fechar",dismiss:"Dispensar",clear:"Limpar",remove:"Remover"},link:{newTab:"(abre em uma nova aba)"},spoiler:{reveal:"Mostrar",hide:"Ocultar",notice:"Pode conter spoilers"},chat:{sending:"Enviando",sent:"Enviado",delivered:"Entregue",read:"Lido",failed:"Não enviado",typing:"Digitando…"},empty:{title:"Nada por aqui"},table:{search:"Pesquisar",selectAll:"Selecionar todas as linhas",selectRow:"Selecionar linha",rowsPerPage:"Linhas por página",range:"{start}–{end} de {total}",selected:"{count} selecionadas",empty:"Sem dados"},color:{area:"Saturação e brilho",hue:"Matiz",alpha:"Opacidade",value:"Valor da cor",swatches:"Cores predefinidas",clear:"Limpar",empty:"Escolher uma cor"},rating:{label:"Avaliação",value:"{value} de {max}",empty:"Sem avaliação"},number:{increase:"Aumentar",decrease:"Diminuir"},pagination:{label:"Paginação",page:"Página {page}",status:"Página {page} de {total}",previous:"Página anterior",next:"Próxima página",first:"Primeira página",last:"Última página"},carousel:{label:"Carrossel",slide:"Slide {index} de {total}",previous:"Slide anterior",next:"Próximo slide"},scroll:{previous:"Rolar para trás",next:"Rolar para a frente"},breadcrumb:{label:"Trilha de navegação",expand:"Mostrar as etapas ocultas"},combobox:{empty:"Nenhuma correspondência",remove:"Remover {label}"},overlay:{label:"Sobreposição"},window:{minimize:"Minimizar",maximize:"Maximizar",restore:"Restaurar",resize:"Redimensionar a janela"}},fr:{action:{close:"Fermer",dismiss:"Ignorer",clear:"Effacer",remove:"Supprimer"},link:{newTab:"(s’ouvre dans un nouvel onglet)"},spoiler:{reveal:"Afficher",hide:"Masquer",notice:"Peut contenir des spoilers"},chat:{sending:"Envoi en cours",sent:"Envoyé",delivered:"Distribué",read:"Lu",failed:"Non envoyé",typing:"En train d’écrire…"},empty:{title:"Rien ici"},table:{search:"Rechercher",selectAll:"Sélectionner toutes les lignes",selectRow:"Sélectionner la ligne",rowsPerPage:"Lignes par page",range:"{start}–{end} sur {total}",selected:"{count} sélectionnées",empty:"Aucune donnée"},color:{area:"Saturation et luminosité",hue:"Teinte",alpha:"Opacité",value:"Valeur de la couleur",swatches:"Couleurs prédéfinies",clear:"Effacer",empty:"Choisir une couleur"},rating:{label:"Note",value:"{value} sur {max}",empty:"Aucune note"},number:{increase:"Augmenter",decrease:"Diminuer"},pagination:{label:"Pagination",page:"Page {page}",status:"Page {page} sur {total}",previous:"Page précédente",next:"Page suivante",first:"Première page",last:"Dernière page"},carousel:{label:"Carrousel",slide:"Diapositive {index} sur {total}",previous:"Diapositive précédente",next:"Diapositive suivante"},scroll:{previous:"Faire défiler vers l’arrière",next:"Faire défiler vers l’avant"},breadcrumb:{label:"Fil d’Ariane",expand:"Afficher les étapes masquées"},combobox:{empty:"Aucun résultat",remove:"Supprimer {label}"},overlay:{label:"Superposition"},window:{minimize:"Réduire",maximize:"Agrandir",restore:"Restaurer",resize:"Redimensionner la fenêtre"}},de:{action:{close:"Schließen",dismiss:"Ausblenden",clear:"Löschen",remove:"Entfernen"},link:{newTab:"(wird in einem neuen Tab geöffnet)"},spoiler:{reveal:"Anzeigen",hide:"Ausblenden",notice:"Kann Spoiler enthalten"},chat:{sending:"Wird gesendet",sent:"Gesendet",delivered:"Zugestellt",read:"Gelesen",failed:"Nicht gesendet",typing:"Schreibt…"},empty:{title:"Nichts vorhanden"},table:{search:"Suchen",selectAll:"Alle Zeilen auswählen",selectRow:"Zeile auswählen",rowsPerPage:"Zeilen pro Seite",range:"{start}–{end} von {total}",selected:"{count} ausgewählt",empty:"Keine Daten"},color:{area:"Sättigung und Helligkeit",hue:"Farbton",alpha:"Deckkraft",value:"Farbwert",swatches:"Vorgegebene Farben",clear:"Löschen",empty:"Farbe auswählen"},rating:{label:"Bewertung",value:"{value} von {max}",empty:"Keine Bewertung"},number:{increase:"Erhöhen",decrease:"Verringern"},pagination:{label:"Seitennavigation",page:"Seite {page}",status:"Seite {page} von {total}",previous:"Vorherige Seite",next:"Nächste Seite",first:"Erste Seite",last:"Letzte Seite"},carousel:{label:"Karussell",slide:"Folie {index} von {total}",previous:"Vorherige Folie",next:"Nächste Folie"},scroll:{previous:"Zurückscrollen",next:"Weiterscrollen"},breadcrumb:{label:"Breadcrumb-Navigation",expand:"Ausgeblendete Schritte anzeigen"},combobox:{empty:"Keine Treffer",remove:"{label} entfernen"},overlay:{label:"Overlay"},window:{minimize:"Minimieren",maximize:"Maximieren",restore:"Wiederherstellen",resize:"Fenstergröße ändern"}},it:{action:{close:"Chiudi",dismiss:"Ignora",clear:"Cancella",remove:"Rimuovi"},link:{newTab:"(si apre in una nuova scheda)"},spoiler:{reveal:"Mostra",hide:"Nascondi",notice:"Può contenere spoiler"},chat:{sending:"Invio in corso",sent:"Inviato",delivered:"Consegnato",read:"Letto",failed:"Non inviato",typing:"Sta scrivendo…"},empty:{title:"Non c’è nulla"},table:{search:"Cerca",selectAll:"Seleziona tutte le righe",selectRow:"Seleziona riga",rowsPerPage:"Righe per pagina",range:"{start}–{end} di {total}",selected:"{count} selezionate",empty:"Nessun dato"},color:{area:"Saturazione e luminosità",hue:"Tonalità",alpha:"Opacità",value:"Valore del colore",swatches:"Colori predefiniti",clear:"Cancella",empty:"Scegli un colore"},rating:{label:"Valutazione",value:"{value} su {max}",empty:"Nessuna valutazione"},number:{increase:"Aumenta",decrease:"Diminuisci"},pagination:{label:"Impaginazione",page:"Pagina {page}",status:"Pagina {page} di {total}",previous:"Pagina precedente",next:"Pagina successiva",first:"Prima pagina",last:"Ultima pagina"},carousel:{label:"Carosello",slide:"Diapositiva {index} di {total}",previous:"Diapositiva precedente",next:"Diapositiva successiva"},scroll:{previous:"Scorri indietro",next:"Scorri avanti"},breadcrumb:{label:"Percorso di navigazione",expand:"Mostra i passaggi nascosti"},combobox:{empty:"Nessun risultato",remove:"Rimuovi {label}"},overlay:{label:"Sovrapposizione"},window:{minimize:"Riduci a icona",maximize:"Ingrandisci",restore:"Ripristina",resize:"Ridimensiona la finestra"}},nl:{action:{close:"Sluiten",dismiss:"Negeren",clear:"Wissen",remove:"Verwijderen"},link:{newTab:"(opent in een nieuw tabblad)"},spoiler:{reveal:"Tonen",hide:"Verbergen",notice:"Kan spoilers bevatten"},chat:{sending:"Wordt verzonden",sent:"Verzonden",delivered:"Afgeleverd",read:"Gelezen",failed:"Niet verzonden",typing:"Aan het typen…"},empty:{title:"Hier is niets"},table:{search:"Zoeken",selectAll:"Alle rijen selecteren",selectRow:"Rij selecteren",rowsPerPage:"Rijen per pagina",range:"{start}–{end} van {total}",selected:"{count} geselecteerd",empty:"Geen gegevens"},color:{area:"Verzadiging en helderheid",hue:"Kleurtoon",alpha:"Dekking",value:"Kleurwaarde",swatches:"Vooraf ingestelde kleuren",clear:"Wissen",empty:"Kies een kleur"},rating:{label:"Beoordeling",value:"{value} van {max}",empty:"Geen beoordeling"},number:{increase:"Verhogen",decrease:"Verlagen"},pagination:{label:"Paginering",page:"Pagina {page}",status:"Pagina {page} van {total}",previous:"Vorige pagina",next:"Volgende pagina",first:"Eerste pagina",last:"Laatste pagina"},carousel:{label:"Carrousel",slide:"Dia {index} van {total}",previous:"Vorige dia",next:"Volgende dia"},scroll:{previous:"Terugscrollen",next:"Vooruitscrollen"},breadcrumb:{label:"Kruimelpad",expand:"Verborgen stappen tonen"},combobox:{empty:"Geen resultaten",remove:"{label} verwijderen"},overlay:{label:"Overlay"},window:{minimize:"Minimaliseren",maximize:"Maximaliseren",restore:"Vorig formaat",resize:"Venstergrootte wijzigen"}},pl:{action:{close:"Zamknij",dismiss:"Odrzuć",clear:"Wyczyść",remove:"Usuń"},link:{newTab:"(otwiera się w nowej karcie)"},spoiler:{reveal:"Pokaż",hide:"Ukryj",notice:"Może zawierać spoilery"},chat:{sending:"Wysyłanie",sent:"Wysłano",delivered:"Dostarczono",read:"Przeczytano",failed:"Nie wysłano",typing:"Pisze…"},empty:{title:"Nic tu nie ma"},table:{search:"Szukaj",selectAll:"Zaznacz wszystkie wiersze",selectRow:"Zaznacz wiersz",rowsPerPage:"Wierszy na stronę",range:"{start}–{end} z {total}",selected:"Zaznaczono: {count}",empty:"Brak danych"},color:{area:"Nasycenie i jasność",hue:"Barwa",alpha:"Krycie",value:"Wartość koloru",swatches:"Kolory predefiniowane",clear:"Wyczyść",empty:"Wybierz kolor"},rating:{label:"Ocena",value:"{value} z {max}",empty:"Brak oceny"},number:{increase:"Zwiększ",decrease:"Zmniejsz"},pagination:{label:"Paginacja",page:"Strona {page}",status:"Strona {page} z {total}",previous:"Poprzednia strona",next:"Następna strona",first:"Pierwsza strona",last:"Ostatnia strona"},carousel:{label:"Karuzela",slide:"Slajd {index} z {total}",previous:"Poprzedni slajd",next:"Następny slajd"},scroll:{previous:"Przewiń wstecz",next:"Przewiń dalej"},breadcrumb:{label:"Ścieżka nawigacji",expand:"Pokaż ukryte kroki"},combobox:{empty:"Brak wyników",remove:"Usuń {label}"},overlay:{label:"Nakładka"},window:{minimize:"Minimalizuj",maximize:"Maksymalizuj",restore:"Przywróć",resize:"Zmień rozmiar okna"}},ru:{action:{close:"Закрыть",dismiss:"Скрыть",clear:"Очистить",remove:"Удалить"},link:{newTab:"(откроется в новой вкладке)"},spoiler:{reveal:"Показать",hide:"Скрыть",notice:"Может содержать спойлеры"},chat:{sending:"Отправляется",sent:"Отправлено",delivered:"Доставлено",read:"Прочитано",failed:"Не отправлено",typing:"Печатает…"},empty:{title:"Здесь пусто"},table:{search:"Поиск",selectAll:"Выбрать все строки",selectRow:"Выбрать строку",rowsPerPage:"Строк на странице",range:"{start}–{end} из {total}",selected:"Выбрано: {count}",empty:"Нет данных"},color:{area:"Насыщенность и яркость",hue:"Оттенок",alpha:"Непрозрачность",value:"Значение цвета",swatches:"Готовые цвета",clear:"Очистить",empty:"Выберите цвет"},rating:{label:"Оценка",value:"{value} из {max}",empty:"Без оценки"},number:{increase:"Увеличить",decrease:"Уменьшить"},pagination:{label:"Постраничная навигация",page:"Страница {page}",status:"Страница {page} из {total}",previous:"Предыдущая страница",next:"Следующая страница",first:"Первая страница",last:"Последняя страница"},carousel:{label:"Карусель",slide:"Слайд {index} из {total}",previous:"Предыдущий слайд",next:"Следующий слайд"},scroll:{previous:"Прокрутить назад",next:"Прокрутить вперёд"},breadcrumb:{label:"Навигационная цепочка",expand:"Показать скрытые шаги"},combobox:{empty:"Совпадений нет",remove:"Удалить {label}"},overlay:{label:"Наложение"},window:{minimize:"Свернуть",maximize:"Развернуть",restore:"Восстановить",resize:"Изменить размер окна"}},tr:{action:{close:"Kapat",dismiss:"Yoksay",clear:"Temizle",remove:"Kaldır"},link:{newTab:"(yeni sekmede açılır)"},spoiler:{reveal:"Göster",hide:"Gizle",notice:"Spoiler içerebilir"},chat:{sending:"Gönderiliyor",sent:"Gönderildi",delivered:"İletildi",read:"Okundu",failed:"Gönderilemedi",typing:"Yazıyor…"},empty:{title:"Burada bir şey yok"},table:{search:"Ara",selectAll:"Tüm satırları seç",selectRow:"Satırı seç",rowsPerPage:"Sayfa başına satır",range:"{total} kayıttan {start}–{end}",selected:"{count} seçildi",empty:"Veri yok"},color:{area:"Doygunluk ve parlaklık",hue:"Renk tonu",alpha:"Opaklık",value:"Renk değeri",swatches:"Hazır renkler",clear:"Temizle",empty:"Bir renk seçin"},rating:{label:"Değerlendirme",value:"{max} üzerinden {value}",empty:"Değerlendirilmedi"},number:{increase:"Artır",decrease:"Azalt"},pagination:{label:"Sayfalama",page:"{page}. sayfa",status:"{total} sayfadan {page}. sayfa",previous:"Önceki sayfa",next:"Sonraki sayfa",first:"İlk sayfa",last:"Son sayfa"},carousel:{label:"Karusel",slide:"{total} slayttan {index}. slayt",previous:"Önceki slayt",next:"Sonraki slayt"},scroll:{previous:"Geri kaydır",next:"İleri kaydır"},breadcrumb:{label:"Gezinti yolu",expand:"Gizli adımları göster"},combobox:{empty:"Eşleşme yok",remove:"{label} kaldır"},overlay:{label:"Kaplama"},window:{minimize:"Simge durumuna küçült",maximize:"Ekranı kapla",restore:"Geri yükle",resize:"Pencereyi yeniden boyutlandır"}},ar:{action:{close:"إغلاق",dismiss:"تجاهل",clear:"مسح",remove:"إزالة"},link:{newTab:"(يفتح في علامة تبويب جديدة)"},spoiler:{reveal:"إظهار",hide:"إخفاء",notice:"قد يحتوي على حرق للأحداث"},chat:{sending:"جارٍ الإرسال",sent:"تم الإرسال",delivered:"تم التسليم",read:"تمت القراءة",failed:"لم يتم الإرسال",typing:"يكتب الآن…"},empty:{title:"لا يوجد شيء هنا"},table:{search:"بحث",selectAll:"تحديد كل الصفوف",selectRow:"تحديد الصف",rowsPerPage:"صفوف لكل صفحة",range:"{start}–{end} من {total}",selected:"تم تحديد {count}",empty:"لا توجد بيانات"},color:{area:"التشبع والسطوع",hue:"درجة اللون",alpha:"العتامة",value:"قيمة اللون",swatches:"ألوان جاهزة",clear:"مسح",empty:"اختر لونًا"},rating:{label:"التقييم",value:"{value} من {max}",empty:"بدون تقييم"},number:{increase:"زيادة",decrease:"إنقاص"},pagination:{label:"ترقيم الصفحات",page:"الصفحة {page}",status:"الصفحة {page} من {total}",previous:"الصفحة السابقة",next:"الصفحة التالية",first:"الصفحة الأولى",last:"الصفحة الأخيرة"},carousel:{label:"شريط عرض",slide:"الشريحة {index} من {total}",previous:"الشريحة السابقة",next:"الشريحة التالية"},scroll:{previous:"التمرير للخلف",next:"التمرير للأمام"},breadcrumb:{label:"مسار التنقل",expand:"إظهار الخطوات المخفية"},combobox:{empty:"لا توجد نتائج مطابقة",remove:"إزالة {label}"},overlay:{label:"تراكب"},window:{minimize:"تصغير",maximize:"تكبير",restore:"استعادة",resize:"تغيير حجم النافذة"}},hi:{action:{close:"बंद करें",dismiss:"खारिज करें",clear:"साफ़ करें",remove:"हटाएँ"},link:{newTab:"(नए टैब में खुलता है)"},spoiler:{reveal:"दिखाएँ",hide:"छिपाएँ",notice:"इसमें स्पॉइलर हो सकते हैं"},chat:{sending:"भेजा जा रहा है",sent:"भेजा गया",delivered:"डिलीवर हुआ",read:"पढ़ा गया",failed:"नहीं भेजा गया",typing:"टाइप कर रहे हैं…"},empty:{title:"यहाँ कुछ नहीं है"},table:{search:"खोजें",selectAll:"सभी पंक्तियाँ चुनें",selectRow:"पंक्ति चुनें",rowsPerPage:"प्रति पृष्ठ पंक्तियाँ",range:"{total} में से {start}–{end}",selected:"{count} चुनी गईं",empty:"कोई डेटा नहीं"},color:{area:"संतृप्ति और चमक",hue:"रंग",alpha:"अपारदर्शिता",value:"रंग मान",swatches:"पूर्व निर्धारित रंग",clear:"साफ़ करें",empty:"एक रंग चुनें"},rating:{label:"रेटिंग",value:"{max} में से {value}",empty:"कोई रेटिंग नहीं"},number:{increase:"बढ़ाएँ",decrease:"घटाएँ"},pagination:{label:"पृष्ठ क्रमांकन",page:"पृष्ठ {page}",status:"{total} में से पृष्ठ {page}",previous:"पिछला पृष्ठ",next:"अगला पृष्ठ",first:"पहला पृष्ठ",last:"अंतिम पृष्ठ"},carousel:{label:"कैरोसेल",slide:"{total} में से स्लाइड {index}",previous:"पिछली स्लाइड",next:"अगली स्लाइड"},scroll:{previous:"पीछे स्क्रॉल करें",next:"आगे स्क्रॉल करें"},breadcrumb:{label:"ब्रेडक्रंब",expand:"छिपे हुए चरण दिखाएँ"},combobox:{empty:"कोई मिलान नहीं",remove:"{label} हटाएँ"},overlay:{label:"ओवरले"},window:{minimize:"छोटा करें",maximize:"बड़ा करें",restore:"पुनर्स्थापित करें",resize:"विंडो का आकार बदलें"}},id:{action:{close:"Tutup",dismiss:"Abaikan",clear:"Bersihkan",remove:"Hapus"},link:{newTab:"(terbuka di tab baru)"},spoiler:{reveal:"Tampilkan",hide:"Sembunyikan",notice:"Mungkin mengandung spoiler"},chat:{sending:"Mengirim",sent:"Terkirim",delivered:"Diterima",read:"Dibaca",failed:"Gagal terkirim",typing:"Sedang mengetik…"},empty:{title:"Tidak ada apa-apa di sini"},table:{search:"Cari",selectAll:"Pilih semua baris",selectRow:"Pilih baris",rowsPerPage:"Baris per halaman",range:"{start}–{end} dari {total}",selected:"{count} dipilih",empty:"Tidak ada data"},color:{area:"Saturasi dan kecerahan",hue:"Rona",alpha:"Opasitas",value:"Nilai warna",swatches:"Warna preset",clear:"Hapus",empty:"Pilih warna"},rating:{label:"Peringkat",value:"{value} dari {max}",empty:"Belum ada peringkat"},number:{increase:"Tambah",decrease:"Kurangi"},pagination:{label:"Penomoran halaman",page:"Halaman {page}",status:"Halaman {page} dari {total}",previous:"Halaman sebelumnya",next:"Halaman berikutnya",first:"Halaman pertama",last:"Halaman terakhir"},carousel:{label:"Korsel",slide:"Slide {index} dari {total}",previous:"Slide sebelumnya",next:"Slide berikutnya"},scroll:{previous:"Gulir ke belakang",next:"Gulir ke depan"},breadcrumb:{label:"Remah roti",expand:"Tampilkan langkah tersembunyi"},combobox:{empty:"Tidak ada yang cocok",remove:"Hapus {label}"},overlay:{label:"Hamparan"},window:{minimize:"Perkecil",maximize:"Perbesar",restore:"Pulihkan",resize:"Ubah ukuran jendela"}},vi:{action:{close:"Đóng",dismiss:"Bỏ qua",clear:"Xóa",remove:"Gỡ bỏ"},link:{newTab:"(mở trong tab mới)"},spoiler:{reveal:"Hiện nội dung",hide:"Ẩn",notice:"Có thể chứa nội dung tiết lộ"},chat:{sending:"Đang gửi",sent:"Đã gửi",delivered:"Đã nhận",read:"Đã xem",failed:"Chưa gửi được",typing:"Đang nhập…"},empty:{title:"Không có gì ở đây"},table:{search:"Tìm kiếm",selectAll:"Chọn tất cả các hàng",selectRow:"Chọn hàng",rowsPerPage:"Số hàng mỗi trang",range:"{start}–{end} trên {total}",selected:"Đã chọn {count}",empty:"Không có dữ liệu"},color:{area:"Độ bão hòa và độ sáng",hue:"Sắc độ",alpha:"Độ mờ đục",value:"Giá trị màu",swatches:"Màu dựng sẵn",clear:"Xóa",empty:"Chọn màu"},rating:{label:"Đánh giá",value:"{value} trên {max}",empty:"Chưa đánh giá"},number:{increase:"Tăng",decrease:"Giảm"},pagination:{label:"Phân trang",page:"Trang {page}",status:"Trang {page} trên {total}",previous:"Trang trước",next:"Trang sau",first:"Trang đầu",last:"Trang cuối"},carousel:{label:"Băng chuyền",slide:"Trang chiếu {index} trên {total}",previous:"Trang chiếu trước",next:"Trang chiếu sau"},scroll:{previous:"Cuộn lùi lại",next:"Cuộn tới"},breadcrumb:{label:"Đường dẫn",expand:"Hiện các bước đã ẩn"},combobox:{empty:"Không có kết quả",remove:"Gỡ bỏ {label}"},overlay:{label:"Lớp phủ"},window:{minimize:"Thu nhỏ",maximize:"Phóng to",restore:"Khôi phục",resize:"Thay đổi kích thước cửa sổ"}},th:{action:{close:"ปิด",dismiss:"ปิดการแจ้งเตือน",clear:"ล้าง",remove:"นำออก"},link:{newTab:"(เปิดในแท็บใหม่)"},spoiler:{reveal:"แสดงเนื้อหา",hide:"ซ่อน",notice:"อาจมีการเปิดเผยเนื้อหา"},chat:{sending:"กำลังส่ง",sent:"ส่งแล้ว",delivered:"ส่งถึงแล้ว",read:"อ่านแล้ว",failed:"ส่งไม่สำเร็จ",typing:"กำลังพิมพ์…"},empty:{title:"ไม่มีอะไรที่นี่"},table:{search:"ค้นหา",selectAll:"เลือกทุกแถว",selectRow:"เลือกแถวนี้",rowsPerPage:"จำนวนแถวต่อหน้า",range:"{start}–{end} จาก {total}",selected:"เลือกแล้ว {count} รายการ",empty:"ไม่มีข้อมูล"},color:{area:"ความอิ่มตัวและความสว่าง",hue:"เฉดสี",alpha:"ความทึบ",value:"ค่าสี",swatches:"สีที่กำหนดไว้",clear:"ล้าง",empty:"เลือกสี"},rating:{label:"คะแนน",value:"{value} จาก {max}",empty:"ยังไม่มีคะแนน"},number:{increase:"เพิ่ม",decrease:"ลด"},pagination:{label:"การแบ่งหน้า",page:"หน้า {page}",status:"หน้า {page} จาก {total}",previous:"หน้าก่อนหน้า",next:"หน้าถัดไป",first:"หน้าแรก",last:"หน้าสุดท้าย"},carousel:{label:"ภาพเลื่อน",slide:"สไลด์ {index} จาก {total}",previous:"สไลด์ก่อนหน้า",next:"สไลด์ถัดไป"},scroll:{previous:"เลื่อนย้อนกลับ",next:"เลื่อนไปข้างหน้า"},breadcrumb:{label:"เส้นทางนำทาง",expand:"แสดงขั้นตอนที่ซ่อนอยู่"},combobox:{empty:"ไม่พบรายการที่ตรงกัน",remove:"นำ {label} ออก"},overlay:{label:"เลเยอร์ซ้อน"},window:{minimize:"ย่อ",maximize:"ขยาย",restore:"คืนค่า",resize:"ปรับขนาดหน้าต่าง"}}},r={zh:"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hk":"zh-hant","zh-mo":"zh-hant","zh-tw":"zh-hant"};const l=new Map([["",a]]);export function resolveMessages(e){const t=e?.trim()??"",n=l.get(t);if(n)return n;const s=function(e){const a=e.toLowerCase().split(/[-_]/).filter(Boolean),i=a[0];if(!i)return[];const r=a.slice(1),l=r.find(e=>/^[a-z]{4}$/.test(e)),t=r.find(e=>/^([a-z]{2}|\d{3})$/.test(e));return[l?`${i}-${l}`:"",t?`${i}-${t}`:"",i].filter(Boolean)}(t).map(e=>i[e]??i[r[e]??""]).find(Boolean),o=s?{action:{...a.action,...s.action},link:{...a.link,...s.link},spoiler:{...a.spoiler,...s.spoiler},chat:{...a.chat,...s.chat},empty:{...a.empty,...s.empty},table:{...a.table,...s.table},color:{...a.color,...s.color},rating:{...a.rating,...s.rating},number:{...a.number,...s.number},pagination:{...a.pagination,...s.pagination},carousel:{...a.carousel,...s.carousel},scroll:{...a.scroll,...s.scroll},breadcrumb:{...a.breadcrumb,...s.breadcrumb},combobox:{...a.combobox,...s.combobox},overlay:{...a.overlay,...s.overlay},window:{...a.window,...s.window}}:a;return l.set(t,o),o}export function useMessages(a){return e.useMemo(()=>resolveMessages(a),[a])}export function fillMessage(e,a){return e.replace(/\{(\w+)\}/g,(e,i)=>a[i]??e)}
@@ -90,6 +90,8 @@ export declare function ExternalLinkIcon(): React.JSX.Element;
90
90
  * the button that opens the collapsed middle of a trail.
91
91
  */
92
92
  export declare function EllipsisIcon(): React.JSX.Element;
93
+ export declare function StarIcon(): React.JSX.Element;
94
+ export declare function StarOutlineIcon(): React.JSX.Element;
93
95
  /** The filled dot: the chosen one of a set, where a tick would say "and". */
94
96
  export declare function DotIcon(): React.JSX.Element;
95
97
  /**
@@ -1 +1 @@
1
- import{jsx as r,jsxs as e}from"react/jsx-runtime";export function CloseIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"m4.5 4.5 7 7m0-7-7 7",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"})})}export function ChevronIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"m4.5 6.5 3.5 3.5 3.5-3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}export function CheckIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"m3.5 8.5 3 3 6-6",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})})}export function MinusIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"})})}export function PlusIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"})})}export function TrendUpIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M3 11 6.5 7.5 9 10l4-4",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),r("path",{d:"M9.5 6h3.5v3.5",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})]})}export function TrendDownIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M3 5 6.5 8.5 9 6l4 4",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),r("path",{d:"M9.5 10h3.5V6.5",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})]})}export function CalendarIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("rect",{x:"2",y:"3.25",width:"12",height:"10.75",rx:"2",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"M2 6.75h12",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"M5.25 1.75v2.5M10.75 1.75v2.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}export function ClockIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"8",cy:"8",r:"6.25",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"M8 4.5V8l2.4 1.6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}export function ArrowRightIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"M3 8h10m-3.5-3.5L13 8l-3.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}export function LinkIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M6.5 9.5a2.75 2.75 0 0 0 4 .25l1.75-1.75a2.75 2.75 0 0 0-3.9-3.9L7.75 5.2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),r("path",{d:"M9.5 6.5a2.75 2.75 0 0 0-4-.25L3.75 8a2.75 2.75 0 0 0 3.9 3.9l.6-.6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}export function ExternalLinkIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M12.75 9.25v2.5a1.5 1.5 0 0 1-1.5 1.5h-7a1.5 1.5 0 0 1-1.5-1.5v-7a1.5 1.5 0 0 1 1.5-1.5h2.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),r("path",{d:"M9.5 2.75h3.75V6.5M7.25 8.75l5.75-5.75",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}export function EllipsisIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"3.5",cy:"8",r:"1.15",fill:"currentColor"}),r("circle",{cx:"8",cy:"8",r:"1.15",fill:"currentColor"}),r("circle",{cx:"12.5",cy:"8",r:"1.15",fill:"currentColor"})]})}export function DotIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("circle",{cx:"8",cy:"8",r:"3.25",fill:"currentColor"})})}function o(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"8",cy:"8",r:"6.25",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"M8 7.25v4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),r("circle",{cx:"8",cy:"4.9",r:"0.85",fill:"currentColor"})]})}export const severityIcons={primary:r(o,{}),secondary:r(o,{}),info:r(o,{}),success:e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"8",cy:"8",r:"6.25",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"m5.25 8.25 1.9 1.9 3.6-3.9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),warning:e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M7.13 2.6 1.9 11.7a1 1 0 0 0 .87 1.5h10.46a1 1 0 0 0 .87-1.5L8.87 2.6a1 1 0 0 0-1.74 0Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),r("path",{d:"M8 6.1v3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),r("circle",{cx:"8",cy:"11.2",r:"0.85",fill:"currentColor"})]}),danger:e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"8",cy:"8",r:"6.25",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"m5.9 5.9 4.2 4.2m0-4.2-4.2 4.2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})};
1
+ import{jsx as r,jsxs as e}from"react/jsx-runtime";export function CloseIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"m4.5 4.5 7 7m0-7-7 7",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"})})}export function ChevronIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"m4.5 6.5 3.5 3.5 3.5-3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}export function CheckIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"m3.5 8.5 3 3 6-6",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})})}export function MinusIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"})})}export function PlusIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"})})}export function TrendUpIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M3 11 6.5 7.5 9 10l4-4",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),r("path",{d:"M9.5 6h3.5v3.5",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})]})}export function TrendDownIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M3 5 6.5 8.5 9 6l4 4",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),r("path",{d:"M9.5 10h3.5V6.5",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})]})}export function CalendarIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("rect",{x:"2",y:"3.25",width:"12",height:"10.75",rx:"2",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"M2 6.75h12",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"M5.25 1.75v2.5M10.75 1.75v2.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}export function ClockIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"8",cy:"8",r:"6.25",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"M8 4.5V8l2.4 1.6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}export function ArrowRightIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:"M3 8h10m-3.5-3.5L13 8l-3.5 3.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}export function LinkIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M6.5 9.5a2.75 2.75 0 0 0 4 .25l1.75-1.75a2.75 2.75 0 0 0-3.9-3.9L7.75 5.2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),r("path",{d:"M9.5 6.5a2.75 2.75 0 0 0-4-.25L3.75 8a2.75 2.75 0 0 0 3.9 3.9l.6-.6",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})}export function ExternalLinkIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M12.75 9.25v2.5a1.5 1.5 0 0 1-1.5 1.5h-7a1.5 1.5 0 0 1-1.5-1.5v-7a1.5 1.5 0 0 1 1.5-1.5h2.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),r("path",{d:"M9.5 2.75h3.75V6.5M7.25 8.75l5.75-5.75",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}export function EllipsisIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"3.5",cy:"8",r:"1.15",fill:"currentColor"}),r("circle",{cx:"8",cy:"8",r:"1.15",fill:"currentColor"}),r("circle",{cx:"12.5",cy:"8",r:"1.15",fill:"currentColor"})]})}const o="M8 1.4 9.71 5.65 14.28 5.96 10.76 8.9 11.88 13.34 8 10.9 4.12 13.34 5.24 8.9 1.72 5.96 6.29 5.65Z";export function StarIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:o,fill:"currentColor",stroke:"currentColor",strokeLinejoin:"round"})})}export function StarOutlineIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("path",{d:o,stroke:"currentColor",strokeWidth:"1.25",strokeLinejoin:"round"})})}export function DotIcon(){return r("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:r("circle",{cx:"8",cy:"8",r:"3.25",fill:"currentColor"})})}function n(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"8",cy:"8",r:"6.25",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"M8 7.25v4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),r("circle",{cx:"8",cy:"4.9",r:"0.85",fill:"currentColor"})]})}export const severityIcons={primary:r(n,{}),secondary:r(n,{}),info:r(n,{}),success:e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"8",cy:"8",r:"6.25",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"m5.25 8.25 1.9 1.9 3.6-3.9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),warning:e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("path",{d:"M7.13 2.6 1.9 11.7a1 1 0 0 0 .87 1.5h10.46a1 1 0 0 0 .87-1.5L8.87 2.6a1 1 0 0 0-1.74 0Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"}),r("path",{d:"M8 6.1v3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),r("circle",{cx:"8",cy:"11.2",r:"0.85",fill:"currentColor"})]}),danger:e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:[r("circle",{cx:"8",cy:"8",r:"6.25",stroke:"currentColor",strokeWidth:"1.5"}),r("path",{d:"m5.9 5.9 4.2 4.2m0-4.2-4.2 4.2",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]})};
@@ -41,7 +41,7 @@ export declare function popupSlots(color: NebaColor, elevation: NebaElevation):
41
41
  export declare const pickerPopupClasses: string;
42
42
  /** The popup's own padding, one track tighter than a control's. */
43
43
  export declare const popupPaddingClasses: Record<NebaSize, string>;
44
- export interface PickerShellProps extends NebaStyleProps {
44
+ export interface PickerShellProps extends NebaStyleProps, Omit<React.ComponentPropsWithoutRef<'div'>, 'color' | 'children' | 'defaultValue'> {
45
45
  elevation?: NebaElevation;
46
46
  /** Label above the trigger. */
47
47
  label?: React.ReactNode;
@@ -57,8 +57,6 @@ export interface PickerShellProps extends NebaStyleProps {
57
57
  readOnly?: boolean;
58
58
  required?: boolean;
59
59
  id?: string;
60
- className?: string;
61
- style?: React.CSSProperties;
62
60
  }
63
61
  interface InternalShellProps extends PickerShellProps {
64
62
  /** What the trigger reads. A placeholder when `empty`. */
@@ -95,7 +93,7 @@ interface InternalShellProps extends PickerShellProps {
95
93
  * and the way `invalid` re-points the whole colour family at `danger` so the
96
94
  * edge, the ring and the message turn over together.
97
95
  */
98
- export declare function PickerShell({ variant, size, color, density, elevation, label, description, error, invalid, startIcon, fullWidth, disabled, readOnly, required, id, className, style, display, samples, empty, clearable, onClear, open, onOpenChange, labels, hiddenValues, sideOffset, children, triggerRef }: InternalShellProps): React.JSX.Element;
96
+ export declare function PickerShell({ variant, size, color, density, elevation, label, description, error, invalid, startIcon, fullWidth, disabled, readOnly, required, id, className, style, display, samples, empty, clearable, onClear, open, onOpenChange, labels, hiddenValues, sideOffset, children, triggerRef, ...props }: InternalShellProps): React.JSX.Element;
99
97
  /**
100
98
  * The row of shortcuts under a picker's panel.
101
99
  *
@@ -1 +1 @@
1
- import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as a from"react";import{Field as i}from"@base-ui/react/field";import{Popover as t}from"@base-ui/react/popover";import{CloseIcon as l}from"./icons";import{WidthSizer as r}from"./sizer";import{chipRemoveClasses as o,controlHeightClasses as s,controlTextLeadingClasses as d,cx as c,disabledClasses as p,fieldReadOnlyClasses as u,fieldRestClasses as m,focusWithinRingClasses as f,gapClasses as b,iconClasses as h,metaTextClasses as x,paddingXClasses as g,radiusClasses as v,stackGapClasses as y,surfaceClasses as N,surfaceSlots as w,transitionClasses as P}from"./styles";export function popupSlots(e,n){return{...w(e,n),"--n-fill":`var(--neba-${e}-fill)`,"--n-fill-hover":`var(--neba-${e}-fill-hover)`,"--n-fill-active":`var(--neba-${e}-fill-active)`,"--n-on-solid":`var(--neba-${e}-on-solid)`}}const k=["group relative flex w-full items-center select-none","[-webkit-tap-highlight-color:transparent] [touch-action:manipulation]",P,"focus-within:[transition-duration:0ms]",f,h].join(" ");export const pickerPopupClasses=[N,"border bg-(--n-panel-press)","[border-color:var(--n-line)]","[box-shadow:var(--neba-shadow-3),var(--neba-plate-glass)]","[outline:none]","[transition:opacity_var(--neba-duration)_var(--neba-ease)]","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0"].join(" ");export const popupPaddingClasses={xs:"p-1.5",sm:"p-2",md:"p-2.5",lg:"p-3",xl:"p-3.5"};export function PickerShell({variant:f="outline",size:h="md",color:N="primary",density:P="default",elevation:C=0,label:$,description:j,error:O,invalid:z,startIcon:F,fullWidth:R=!1,disabled:S=!1,readOnly:q=!1,required:D=!1,id:I,className:_,style:B,display:E,samples:L,empty:T,clearable:V=!1,onClear:W,open:A,onOpenChange:G,labels:H,hiddenValues:J,sideOffset:K=6,children:M,triggerRef:Q}){const U=a.useId(),X=I??`${U}-trigger`,Y=`${U}-label`,Z=`${U}-description`,ee=`${U}-error`,ne=null!=O&&!1!==O&&""!==O,ae=z??ne,ie=ae?"danger":N,te=S||q,le=[j?Z:null,ne?ee:null].filter(Boolean).join(" ")||void 0;return n(i.Root,{disabled:S,invalid:ae,className:c("flex-col align-top",y[h],R?"flex w-full":"inline-flex",_),style:{...w(ie,C),...B},children:[$?e(i.Label,{id:Y,htmlFor:X,className:c(x[h],"font-medium",S?"text-(--neba-disabled-fg)":"text-(--neba-fg)"),children:$}):null,n(t.Root,{open:A,onOpenChange:e=>G(e),children:[n("span",{className:c(k,s[h],d[h],v[h],b[h],g[P][h],S?p[f]:q?u[f]:m[f]),children:[n(t.Trigger,{id:X,ref:Q,disabled:S,"aria-labelledby":$?Y:void 0,"aria-describedby":le,"aria-required":D||void 0,"aria-invalid":ae||void 0,className:c("flex min-w-0 flex-1 items-center bg-transparent text-start [font:inherit] text-inherit",b[h],"[outline:none]",te?"cursor-default":"cursor-pointer"),children:[F?e("span",{className:"flex h-[1lh] shrink-0 items-center text-(--neba-muted-fg) transition-[color] duration-(--neba-duration) group-focus-within:text-(--n-accent)",children:F}):null,n("span",{className:"flex min-w-0 flex-1 flex-col",children:[e("span",{className:c("w-full truncate",T?"text-(--neba-muted-fg)":"text-(--neba-fg)"),children:E}),e(r,{samples:L??[]})]})]}),!V||T||te?null:e("button",{type:"button","aria-label":H.clear,className:c(o,"text-(--neba-muted-fg)"),onClick:e=>{e.stopPropagation(),W()},children:e(l,{})})]}),e(t.Portal,{children:e(t.Positioner,{className:"neba-portal z-50 [outline:none]",sideOffset:K,align:"start",children:e(t.Popup,{initialFocus:!1,className:c(pickerPopupClasses,v[h],popupPaddingClasses[h],d[h]),style:popupSlots(ie,3),children:M})})})]}),j?e(i.Description,{id:Z,className:c(x[h],"text-(--neba-muted-fg)"),children:j}):null,ne?e(i.Error,{id:ee,match:!0,className:c(x[h],"text-(--n-accent)"),children:O}):null,J?.map((n,a)=>e("input",{type:"hidden",name:n.name,value:n.value},a))]})}export function PickerFooter({size:n,children:a}){return e("div",{className:c("flex items-center justify-end border-t pt-1.5","[border-color:var(--n-line)]",b[n]),children:a})}export function PickerDivider(){return e("div",{"aria-hidden":"true",className:"w-px self-stretch bg-(--n-line)"})}
1
+ import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as a from"react";import{Field as i}from"@base-ui/react/field";import{Popover as t}from"@base-ui/react/popover";import{CloseIcon as l}from"./icons";import{WidthSizer as r}from"./sizer";import{chipRemoveClasses as o,controlHeightClasses as s,controlTextLeadingClasses as d,cx as c,disabledClasses as p,fieldReadOnlyClasses as u,fieldRestClasses as m,focusWithinRingClasses as f,gapClasses as b,iconClasses as h,metaTextClasses as x,paddingXClasses as g,radiusClasses as v,stackGapClasses as y,surfaceClasses as N,surfaceSlots as w,transitionClasses as P}from"./styles";export function popupSlots(e,n){return{...w(e,n),"--n-fill":`var(--neba-${e}-fill)`,"--n-fill-hover":`var(--neba-${e}-fill-hover)`,"--n-fill-active":`var(--neba-${e}-fill-active)`,"--n-on-solid":`var(--neba-${e}-on-solid)`}}const k=["group relative flex w-full items-center select-none","[-webkit-tap-highlight-color:transparent] [touch-action:manipulation]",P,"focus-within:[transition-duration:0ms]",f,h].join(" ");export const pickerPopupClasses=[N,"border bg-(--n-panel-press)","[border-color:var(--n-line)]","[box-shadow:var(--neba-shadow-3),var(--neba-plate-glass)]","[outline:none]","[transition:opacity_var(--neba-duration)_var(--neba-ease)]","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0"].join(" ");export const popupPaddingClasses={xs:"p-1.5",sm:"p-2",md:"p-2.5",lg:"p-3",xl:"p-3.5"};export function PickerShell({variant:f="outline",size:h="md",color:N="primary",density:P="default",elevation:C=0,label:$,description:j,error:O,invalid:z,startIcon:F,fullWidth:R=!1,disabled:S=!1,readOnly:q=!1,required:D=!1,id:I,className:_,style:B,display:E,samples:L,empty:T,clearable:V=!1,onClear:W,open:A,onOpenChange:G,labels:H,hiddenValues:J,sideOffset:K=6,children:M,triggerRef:Q,...U}){const X=a.useId(),Y=I??`${X}-trigger`,Z=`${X}-label`,ee=`${X}-description`,ne=`${X}-error`,ae=null!=O&&!1!==O&&""!==O,ie=z??ae,te=ie?"danger":N,le=S||q,re=[j?ee:null,ae?ne:null].filter(Boolean).join(" ")||void 0;return n(i.Root,{disabled:S,invalid:ie,className:c("flex-col align-top",y[h],R?"flex w-full":"inline-flex",_),style:{...w(te,C),...B},...U,children:[$?e(i.Label,{id:Z,htmlFor:Y,className:c(x[h],"font-medium",S?"text-(--neba-disabled-fg)":"text-(--neba-fg)"),children:$}):null,n(t.Root,{open:A,onOpenChange:e=>G(e),children:[n("span",{className:c(k,s[h],d[h],v[h],b[h],g[P][h],S?p[f]:q?u[f]:m[f]),children:[n(t.Trigger,{id:Y,ref:Q,disabled:S,"aria-labelledby":$?Z:void 0,"aria-describedby":re,"aria-required":D||void 0,"aria-invalid":ie||void 0,className:c("flex min-w-0 flex-1 items-center bg-transparent text-start [font:inherit] text-inherit",b[h],"[outline:none]",le?"cursor-default":"cursor-pointer"),children:[F?e("span",{className:"flex h-[1lh] shrink-0 items-center text-(--neba-muted-fg) transition-[color] duration-(--neba-duration) group-focus-within:text-(--n-accent)",children:F}):null,n("span",{className:"flex min-w-0 flex-1 flex-col",children:[e("span",{className:c("w-full truncate",T?"text-(--neba-muted-fg)":"text-(--neba-fg)"),children:E}),e(r,{samples:L??[]})]})]}),!V||T||le?null:e("button",{type:"button","aria-label":H.clear,className:c(o,"text-(--neba-muted-fg)"),onClick:e=>{e.stopPropagation(),W()},children:e(l,{})})]}),e(t.Portal,{children:e(t.Positioner,{className:"neba-portal z-50 [outline:none]",sideOffset:K,align:"start",children:e(t.Popup,{initialFocus:!1,className:c(pickerPopupClasses,v[h],popupPaddingClasses[h],d[h]),style:popupSlots(te,3),children:M})})})]}),j?e(i.Description,{id:ee,className:c(x[h],"text-(--neba-muted-fg)"),children:j}):null,ae?e(i.Error,{id:ne,match:!0,className:c(x[h],"text-(--n-accent)"),children:O}):null,J?.map((n,a)=>e("input",{type:"hidden",name:n.name,value:n.value},a))]})}export function PickerFooter({size:n,children:a}){return e("div",{className:c("flex items-center justify-end border-t pt-1.5","[border-color:var(--n-line)]",b[n]),children:a})}export function PickerDivider(){return e("div",{"aria-hidden":"true",className:"w-px self-stretch bg-(--n-line)"})}
@@ -20,7 +20,7 @@ import type { NebaColor, NebaSize } from '../types';
20
20
  * `value` of `null` has to mean the same thing on a bar, a ring and a row of
21
21
  * plates, or the trio is three components that happen to share a prefix.
22
22
  */
23
- export interface ProgressSharedProps {
23
+ export interface ProgressSharedProps extends Omit<React.ComponentPropsWithoutRef<'div'>, 'color' | 'children'> {
24
24
  /**
25
25
  * How far along, between `min` and `max`.
26
26
  *
@@ -50,8 +50,6 @@ export interface ProgressSharedProps {
50
50
  * range nobody described.
51
51
  */
52
52
  format?: Intl.NumberFormatOptions;
53
- className?: string;
54
- style?: React.CSSProperties;
55
53
  }
56
54
  /**
57
55
  * The slots a progress indicator reads.
@@ -0,0 +1,201 @@
1
+ /**
2
+ * The chrome a WindowPane draws, and the tables that say how big it is.
3
+ *
4
+ * It lives here for the reason `internal/mockup.tsx` does. One component reads
5
+ * it, but what it holds is reference data rather than a piece of that component
6
+ * — four systems' worth of title bars, three buttons each, drawn four different
7
+ * ways — and a component file with all of that in it would be a table with a
8
+ * `forwardRef` at the bottom.
9
+ *
10
+ * Three conventions run through it:
11
+ *
12
+ * **Every length is a CSS pixel at `md`, scaled once by `size`.** A title bar is
13
+ * 32px on Windows 11 and 38px on macOS because those are the heights they are,
14
+ * not because a ladder in `internal/styles.ts` says so — this is the one place
15
+ * in the library where the numbers come from somewhere else. `size` multiplies
16
+ * them, which is why they are written as numbers rather than as utilities.
17
+ *
18
+ * **The buttons are drawings of what they do and carry no other party's marks.**
19
+ * A traffic light is three circles; a Windows control is a line, a box and a
20
+ * cross. Their names come from `internal/i18n.ts` and are read out; nothing here
21
+ * writes a word.
22
+ *
23
+ * **Nothing is mixed out of `currentColor`.** Every fill a control can take is a
24
+ * slot computed once in `windowSlots`, because a hover that changes the ink and
25
+ * a fill derived from the ink are the same declaration arguing with itself —
26
+ * which is exactly how a close button ends up white on white.
27
+ */
28
+ import * as React from 'react';
29
+ import type { NebaColor, NebaSize } from '../types';
30
+ /**
31
+ * Whose window this is a picture of.
32
+ *
33
+ * Versions are separate entries wherever the *title bar* is what changed, which
34
+ * is why Windows has five and the others have one or two. XP painted its bar in
35
+ * Luna blue and framed the window in it; 7 made it glass; 8 threw both away for
36
+ * a flat square sheet; 10 ruled the bar off from the body; 11 rounded the
37
+ * corners and made the two one Mica sheet again. `macosx` is Aqua — the striped
38
+ * grey bar, the glossy lights and the square bottom corners — against the flat
39
+ * `macos` that replaced it.
40
+ *
41
+ * They are named the way the systems are, so `windows11` rather than `win11`
42
+ * and `macos` rather than `mac`. Nothing here is a copy of any of them: what is
43
+ * drawn is a bar, a border and three buttons at the proportions the system used,
44
+ * and no mark, wordmark or icon belonging to anyone else.
45
+ */
46
+ export type NebaWindowOs = 'macos' | 'macosx' | 'windows11' | 'windows10' | 'windows8' | 'windows7' | 'windowsxp' | 'linux';
47
+ /** The three buttons a title bar can carry. */
48
+ export type NebaWindowControl = 'minimize' | 'maximize' | 'close';
49
+ /** How far the window has been dragged from where the layout put it. */
50
+ export interface NebaWindowOffset {
51
+ x: number;
52
+ y: number;
53
+ }
54
+ /** Everything the component needs to lay a title bar out, in CSS pixels. */
55
+ export interface WindowMetrics {
56
+ /** The title bar's height. */
57
+ bar: number;
58
+ /** The window's own corner, at the top. */
59
+ radius: number;
60
+ /** And at the bottom, which the older systems leave square. */
61
+ radiusBottom: number;
62
+ /** The hairline around the window. */
63
+ frame: number;
64
+ /**
65
+ * The *band* around it, which is a different thing: the stretch of the
66
+ * system's own colour that XP and Aero put down the sides of a window and
67
+ * along the bottom of it, with the content inset into it. Zero on the systems
68
+ * that have only a hairline.
69
+ */
70
+ band: {
71
+ side: number;
72
+ bottom: number;
73
+ };
74
+ /** The air at the leading edge of the bar. */
75
+ padX: number;
76
+ /** And at the trailing edge, which is nothing where the buttons run to it. */
77
+ padEnd: number;
78
+ /** Between one control and the next. */
79
+ gap: number;
80
+ /** The title's type size. */
81
+ title: number;
82
+ /** One control's box. */
83
+ control: {
84
+ width: number;
85
+ height: number;
86
+ };
87
+ /** The mark inside it. */
88
+ glyph: number;
89
+ /** How heavy the title is written. */
90
+ weight: number;
91
+ /** How much room the whole set of them takes, given how many are drawn. */
92
+ controlsWidth: (count: number) => number;
93
+ /** Aero's close button, which is wider than the two beside it. */
94
+ closeWidth: number;
95
+ }
96
+ interface WindowChrome {
97
+ bar: number;
98
+ radius: number;
99
+ /** Square on every system before the corners were rounded all the way round. */
100
+ radiusBottom: number;
101
+ padX: number;
102
+ /** The air at the trailing end, which is nothing where the buttons run to it. */
103
+ padEnd: number;
104
+ gap: number;
105
+ title: number;
106
+ glyph: number;
107
+ weight: number;
108
+ frame: number;
109
+ band: {
110
+ side: number;
111
+ bottom: number;
112
+ };
113
+ control: {
114
+ width: number;
115
+ height: number;
116
+ };
117
+ /** Aero's close button is wider than the two beside it. */
118
+ closeWidth?: number;
119
+ /** Where the title sits along the bar. */
120
+ titleAlign: 'start' | 'center';
121
+ /** Which end the controls are on. */
122
+ controlsSide: 'start' | 'end';
123
+ /**
124
+ * How one control is drawn.
125
+ *
126
+ * - `dot` — a flat traffic light, and `gloss-dot` the same one with Aqua's
127
+ * highlight and ring on it.
128
+ * - `square` — a flat rectangle running to the corner of the window.
129
+ * - `plate` — XP's coloured, gradient-filled button.
130
+ * - `aero` — a pane of glass hung off the top edge, close first among equals.
131
+ * - `circle` — GNOME's small disc.
132
+ */
133
+ shape: 'dot' | 'gloss-dot' | 'square' | 'plate' | 'aero' | 'circle';
134
+ /** Whether the bar is ruled off from the body. */
135
+ rule: boolean;
136
+ /** How thick the glyphs are drawn. */
137
+ stroke: number;
138
+ /** The corner on the maximize box: Windows 11 rounds it, Windows 10 does not. */
139
+ boxRadius: number;
140
+ /** How much of the page's ink is stirred into the bar, in front and behind. */
141
+ tint: [number, number];
142
+ /** Whether an accented window carries the colour into its border as well. */
143
+ accentBorder: boolean;
144
+ /**
145
+ * The chrome's own colours, for the systems that painted their title bar
146
+ * rather than taking the page's.
147
+ *
148
+ * Fixed values rather than theme tokens, exactly as `Mockup`'s finishes are:
149
+ * Luna blue is Luna blue on a page switched to dark, and a title bar that
150
+ * changed colour with the theme would be a drawing of the theme rather than
151
+ * of a window. `dark` says which way its own controls have to lighten.
152
+ */
153
+ paint: {
154
+ fill: string;
155
+ ink: string;
156
+ dark: boolean;
157
+ } | null;
158
+ /** What is laid over that fill: the gradient, the gloss, the stripes. */
159
+ image: string | null;
160
+ /** The title's own shadow — XP's hard one, Aero's glow, Aqua's emboss. */
161
+ shadow: string | null;
162
+ /** Whether the bar blurs what is behind it, which is what made Aero glass. */
163
+ glass: boolean;
164
+ }
165
+ export declare function windowMetrics(os: NebaWindowOs, size: NebaSize): WindowMetrics;
166
+ export declare function windowChrome(os: NebaWindowOs): WindowChrome;
167
+ export declare function orderControls(os: NebaWindowOs, controls: readonly NebaWindowControl[]): NebaWindowControl[];
168
+ export declare function windowSlots(options: {
169
+ os: NebaWindowOs;
170
+ color: NebaColor;
171
+ accent: boolean;
172
+ transparency: number;
173
+ active: boolean;
174
+ elevation: number;
175
+ }): React.CSSProperties;
176
+ export interface WindowControlsProps {
177
+ os: NebaWindowOs;
178
+ metrics: WindowMetrics;
179
+ controls: readonly NebaWindowControl[];
180
+ maximized: boolean;
181
+ active: boolean;
182
+ /** What each button is called, plus the word the maximize one takes once the
183
+ * window is maximized. */
184
+ labels: Record<NebaWindowControl | 'restore', string>;
185
+ onCommand: (control: NebaWindowControl) => void;
186
+ }
187
+ /**
188
+ * The buttons on a title bar.
189
+ *
190
+ * Real `<button>`s with real names, in every system: the whole point of drawing
191
+ * a window rather than a picture of one is that its controls work, and a
192
+ * `<div>` with a click handler on it is invisible to a keyboard. They also stop
193
+ * the press from reaching the bar underneath, or every close would begin by
194
+ * dragging the window half a pixel.
195
+ *
196
+ * Every fill is written into a slot and every state is a class that reads one,
197
+ * so no two declarations are ever left arguing about which of them paints the
198
+ * button — which is the bug that made a hovered close button vanish.
199
+ */
200
+ export declare function WindowControls({ os, metrics, controls, maximized, active, labels, onCommand }: WindowControlsProps): React.JSX.Element | null;
201
+ export {};