@keepkit/ui 0.18.0 → 0.19.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 +6 -2
- package/dist/index.d.ts +51 -7
- package/dist/index.js +574 -236
- package/dist/index.js.map +1 -1
- package/dist/styles/collection.css +42 -0
- package/dist/styles/status.css +32 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -107,6 +107,13 @@ var DE_LABELS = {
|
|
|
107
107
|
allTags: "Alle",
|
|
108
108
|
tags: "Tags",
|
|
109
109
|
filterTags: "Gespeicherte Elemente nach Tag filtern",
|
|
110
|
+
activeFilters: "Aktive Filter",
|
|
111
|
+
clearFilters: "Filter l\xF6schen",
|
|
112
|
+
clearAllFilters: "Alle Filter l\xF6schen",
|
|
113
|
+
removeFilter: "entfernen",
|
|
114
|
+
noFilteredItems: "Keine passenden Elemente gefunden.",
|
|
115
|
+
noFilteredItemsDescription: "Passe die Suche an oder entferne einen Tag-Filter.",
|
|
116
|
+
emptyStorageDescription: "Speichere ein Element, damit es hier angezeigt wird.",
|
|
110
117
|
note: "Notiz",
|
|
111
118
|
saveNote: "Notiz speichern",
|
|
112
119
|
noItems: "Keine gespeicherten Elemente.",
|
|
@@ -186,6 +193,13 @@ var EN_LABELS = {
|
|
|
186
193
|
allTags: "All",
|
|
187
194
|
tags: "Tags",
|
|
188
195
|
filterTags: "Filter saved items by tag",
|
|
196
|
+
activeFilters: "Active filters",
|
|
197
|
+
clearFilters: "Clear filters",
|
|
198
|
+
clearAllFilters: "Clear all filters",
|
|
199
|
+
removeFilter: "Remove",
|
|
200
|
+
noFilteredItems: "No matching items found.",
|
|
201
|
+
noFilteredItemsDescription: "Try adjusting your search or removing a tag filter.",
|
|
202
|
+
emptyStorageDescription: "Save an item to see it here.",
|
|
189
203
|
note: "Note",
|
|
190
204
|
saveNote: "Save note",
|
|
191
205
|
noItems: "No saved items.",
|
|
@@ -265,6 +279,13 @@ var ES_LABELS = {
|
|
|
265
279
|
allTags: "Todos",
|
|
266
280
|
tags: "Etiquetas",
|
|
267
281
|
filterTags: "Filtrar elementos guardados por etiqueta",
|
|
282
|
+
activeFilters: "Filtros activos",
|
|
283
|
+
clearFilters: "Borrar filtros",
|
|
284
|
+
clearAllFilters: "Borrar todos los filtros",
|
|
285
|
+
removeFilter: "quitar",
|
|
286
|
+
noFilteredItems: "No se encontraron elementos coincidentes.",
|
|
287
|
+
noFilteredItemsDescription: "Ajusta la b\xFAsqueda o quita un filtro de etiqueta.",
|
|
288
|
+
emptyStorageDescription: "Guarda un elemento para verlo aqu\xED.",
|
|
268
289
|
note: "Nota",
|
|
269
290
|
saveNote: "Guardar nota",
|
|
270
291
|
noItems: "No hay elementos guardados.",
|
|
@@ -344,6 +365,13 @@ var FIL_LABELS = {
|
|
|
344
365
|
allTags: "Lahat",
|
|
345
366
|
tags: "Mga tag",
|
|
346
367
|
filterTags: "I-filter ang mga naka-save na item ayon sa tag",
|
|
368
|
+
activeFilters: "Mga aktibong filter",
|
|
369
|
+
clearFilters: "I-clear ang mga filter",
|
|
370
|
+
clearAllFilters: "I-clear ang lahat ng filter",
|
|
371
|
+
removeFilter: "alisin",
|
|
372
|
+
noFilteredItems: "Walang nakitang tumutugmang item.",
|
|
373
|
+
noFilteredItemsDescription: "Baguhin ang paghahanap o alisin ang filter ng tag.",
|
|
374
|
+
emptyStorageDescription: "Mag-save ng item para makita ito rito.",
|
|
347
375
|
note: "Tala",
|
|
348
376
|
saveNote: "I-save ang tala",
|
|
349
377
|
noItems: "Walang naka-save na item.",
|
|
@@ -423,6 +451,13 @@ var FR_LABELS = {
|
|
|
423
451
|
allTags: "Tous",
|
|
424
452
|
tags: "\xC9tiquettes",
|
|
425
453
|
filterTags: "Filtrer les \xE9l\xE9ments enregistr\xE9s par \xE9tiquette",
|
|
454
|
+
activeFilters: "Filtres actifs",
|
|
455
|
+
clearFilters: "Effacer les filtres",
|
|
456
|
+
clearAllFilters: "Effacer tous les filtres",
|
|
457
|
+
removeFilter: "supprimer",
|
|
458
|
+
noFilteredItems: "Aucun \xE9l\xE9ment correspondant trouv\xE9.",
|
|
459
|
+
noFilteredItemsDescription: "Modifiez votre recherche ou supprimez un filtre de tag.",
|
|
460
|
+
emptyStorageDescription: "Enregistrez un \xE9l\xE9ment pour le voir ici.",
|
|
426
461
|
note: "Note",
|
|
427
462
|
saveNote: "Enregistrer la note",
|
|
428
463
|
noItems: "Aucun \xE9l\xE9ment enregistr\xE9.",
|
|
@@ -502,6 +537,13 @@ var ID_LABELS = {
|
|
|
502
537
|
allTags: "Semua",
|
|
503
538
|
tags: "Tag",
|
|
504
539
|
filterTags: "Filter item tersimpan berdasarkan tag",
|
|
540
|
+
activeFilters: "Filter aktif",
|
|
541
|
+
clearFilters: "Hapus filter",
|
|
542
|
+
clearAllFilters: "Hapus semua filter",
|
|
543
|
+
removeFilter: "hapus",
|
|
544
|
+
noFilteredItems: "Tidak ada item yang cocok.",
|
|
545
|
+
noFilteredItemsDescription: "Ubah pencarian atau hapus filter tag.",
|
|
546
|
+
emptyStorageDescription: "Simpan item untuk melihatnya di sini.",
|
|
505
547
|
note: "Catatan",
|
|
506
548
|
saveNote: "Simpan catatan",
|
|
507
549
|
noItems: "Belum ada item tersimpan.",
|
|
@@ -581,6 +623,13 @@ var IT_LABELS = {
|
|
|
581
623
|
allTags: "Tutti",
|
|
582
624
|
tags: "Tag",
|
|
583
625
|
filterTags: "Filtra gli elementi salvati per tag",
|
|
626
|
+
activeFilters: "Filtri attivi",
|
|
627
|
+
clearFilters: "Cancella filtri",
|
|
628
|
+
clearAllFilters: "Cancella tutti i filtri",
|
|
629
|
+
removeFilter: "rimuovi",
|
|
630
|
+
noFilteredItems: "Nessun elemento corrispondente trovato.",
|
|
631
|
+
noFilteredItemsDescription: "Modifica la ricerca o rimuovi un filtro tag.",
|
|
632
|
+
emptyStorageDescription: "Salva un elemento per visualizzarlo qui.",
|
|
584
633
|
note: "Nota",
|
|
585
634
|
saveNote: "Salva nota",
|
|
586
635
|
noItems: "Nessun elemento salvato.",
|
|
@@ -660,6 +709,13 @@ var JA_LABELS = {
|
|
|
660
709
|
allTags: "\u3059\u3079\u3066",
|
|
661
710
|
tags: "\u30BF\u30B0",
|
|
662
711
|
filterTags: "\u4FDD\u5B58\u30A2\u30A4\u30C6\u30E0\u3092\u30BF\u30B0\u3067\u7D5E\u308A\u8FBC\u3080",
|
|
712
|
+
activeFilters: "\u9069\u7528\u4E2D\u306E\u6761\u4EF6",
|
|
713
|
+
clearFilters: "\u30D5\u30A3\u30EB\u30BF\u30FC\u3092\u30AF\u30EA\u30A2",
|
|
714
|
+
clearAllFilters: "\u3059\u3079\u3066\u306E\u6761\u4EF6\u3092\u30AF\u30EA\u30A2",
|
|
715
|
+
removeFilter: "\u3092\u89E3\u9664",
|
|
716
|
+
noFilteredItems: "\u4E00\u81F4\u3059\u308B\u30A2\u30A4\u30C6\u30E0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F",
|
|
717
|
+
noFilteredItemsDescription: "\u691C\u7D22\u8A9E\u3092\u5909\u66F4\u3059\u308B\u304B\u3001\u30BF\u30B0\u306E\u7D5E\u308A\u8FBC\u307F\u3092\u89E3\u9664\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
718
|
+
emptyStorageDescription: "\u30A2\u30A4\u30C6\u30E0\u3092\u4FDD\u5B58\u3059\u308B\u3068\u3001\u3053\u3053\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002",
|
|
663
719
|
note: "\u30E1\u30E2",
|
|
664
720
|
saveNote: "\u30E1\u30E2\u3092\u4FDD\u5B58",
|
|
665
721
|
noItems: "\u4FDD\u5B58\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u306F\u3042\u308A\u307E\u305B\u3093\u3002",
|
|
@@ -739,6 +795,13 @@ var KO_LABELS = {
|
|
|
739
795
|
allTags: "\uBAA8\uB450",
|
|
740
796
|
tags: "\uD0DC\uADF8",
|
|
741
797
|
filterTags: "\uD0DC\uADF8\uB85C \uC800\uC7A5 \uD56D\uBAA9 \uD544\uD130\uB9C1",
|
|
798
|
+
activeFilters: "\uD65C\uC131 \uD544\uD130",
|
|
799
|
+
clearFilters: "\uD544\uD130 \uC9C0\uC6B0\uAE30",
|
|
800
|
+
clearAllFilters: "\uBAA8\uB4E0 \uD544\uD130 \uC9C0\uC6B0\uAE30",
|
|
801
|
+
removeFilter: "\uC81C\uAC70",
|
|
802
|
+
noFilteredItems: "\uC77C\uCE58\uD558\uB294 \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",
|
|
803
|
+
noFilteredItemsDescription: "\uAC80\uC0C9\uC5B4\uB97C \uBC14\uAFB8\uAC70\uB098 \uD0DC\uADF8 \uD544\uD130\uB97C \uC81C\uAC70\uD574 \uBCF4\uC138\uC694.",
|
|
804
|
+
emptyStorageDescription: "\uD56D\uBAA9\uC744 \uC800\uC7A5\uD558\uBA74 \uC5EC\uAE30\uC5D0 \uD45C\uC2DC\uB429\uB2C8\uB2E4.",
|
|
742
805
|
note: "\uBA54\uBAA8",
|
|
743
806
|
saveNote: "\uBA54\uBAA8 \uC800\uC7A5",
|
|
744
807
|
noItems: "\uC800\uC7A5\uB41C \uD56D\uBAA9\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.",
|
|
@@ -818,6 +881,13 @@ var MS_LABELS = {
|
|
|
818
881
|
allTags: "Semua",
|
|
819
882
|
tags: "Tag",
|
|
820
883
|
filterTags: "Tapis item yang disimpan mengikut tag",
|
|
884
|
+
activeFilters: "Penapis aktif",
|
|
885
|
+
clearFilters: "Kosongkan penapis",
|
|
886
|
+
clearAllFilters: "Kosongkan semua penapis",
|
|
887
|
+
removeFilter: "alih keluar",
|
|
888
|
+
noFilteredItems: "Tiada item yang sepadan ditemui.",
|
|
889
|
+
noFilteredItemsDescription: "Laraskan carian atau alih keluar penapis tag.",
|
|
890
|
+
emptyStorageDescription: "Simpan item untuk melihatnya di sini.",
|
|
821
891
|
note: "Nota",
|
|
822
892
|
saveNote: "Simpan nota",
|
|
823
893
|
noItems: "Tiada item disimpan.",
|
|
@@ -897,6 +967,13 @@ var PT_BR_LABELS = {
|
|
|
897
967
|
allTags: "Todos",
|
|
898
968
|
tags: "Tags",
|
|
899
969
|
filterTags: "Filtrar itens salvos por tag",
|
|
970
|
+
activeFilters: "Filtros ativos",
|
|
971
|
+
clearFilters: "Limpar filtros",
|
|
972
|
+
clearAllFilters: "Limpar todos os filtros",
|
|
973
|
+
removeFilter: "remover",
|
|
974
|
+
noFilteredItems: "Nenhum item correspondente encontrado.",
|
|
975
|
+
noFilteredItemsDescription: "Ajuste sua busca ou remova um filtro de tag.",
|
|
976
|
+
emptyStorageDescription: "Salve um item para v\xEA-lo aqui.",
|
|
900
977
|
note: "Nota",
|
|
901
978
|
saveNote: "Salvar nota",
|
|
902
979
|
noItems: "Nenhum item salvo.",
|
|
@@ -976,6 +1053,13 @@ var RU_LABELS = {
|
|
|
976
1053
|
allTags: "\u0412\u0441\u0435",
|
|
977
1054
|
tags: "\u0422\u0435\u0433\u0438",
|
|
978
1055
|
filterTags: "\u0424\u0438\u043B\u044C\u0442\u0440\u043E\u0432\u0430\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043F\u043E \u0442\u0435\u0433\u0443",
|
|
1056
|
+
activeFilters: "\u0410\u043A\u0442\u0438\u0432\u043D\u044B\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B",
|
|
1057
|
+
clearFilters: "\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\u044B",
|
|
1058
|
+
clearAllFilters: "\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u0432\u0441\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B",
|
|
1059
|
+
removeFilter: "\u0443\u0434\u0430\u043B\u0438\u0442\u044C",
|
|
1060
|
+
noFilteredItems: "\u041F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u0438\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B.",
|
|
1061
|
+
noFilteredItemsDescription: "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u0435 \u043F\u043E\u0438\u0441\u043A \u0438\u043B\u0438 \u0443\u0434\u0430\u043B\u0438\u0442\u0435 \u0444\u0438\u043B\u044C\u0442\u0440 \u0442\u0435\u0433\u0430.",
|
|
1062
|
+
emptyStorageDescription: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u0435 \u044D\u043B\u0435\u043C\u0435\u043D\u0442, \u0447\u0442\u043E\u0431\u044B \u0443\u0432\u0438\u0434\u0435\u0442\u044C \u0435\u0433\u043E \u0437\u0434\u0435\u0441\u044C.",
|
|
979
1063
|
note: "\u0417\u0430\u043C\u0435\u0442\u043A\u0430",
|
|
980
1064
|
saveNote: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0443",
|
|
981
1065
|
noItems: "\u041D\u0435\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D\u043D\u044B\u0445 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432.",
|
|
@@ -1055,6 +1139,13 @@ var TH_LABELS = {
|
|
|
1055
1139
|
allTags: "\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",
|
|
1056
1140
|
tags: "\u0E41\u0E17\u0E47\u0E01",
|
|
1057
1141
|
filterTags: "\u0E01\u0E23\u0E2D\u0E07\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E14\u0E49\u0E27\u0E22\u0E41\u0E17\u0E47\u0E01",
|
|
1142
|
+
activeFilters: "\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07\u0E17\u0E35\u0E48\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19\u0E2D\u0E22\u0E39\u0E48",
|
|
1143
|
+
clearFilters: "\u0E25\u0E49\u0E32\u0E07\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07",
|
|
1144
|
+
clearAllFilters: "\u0E25\u0E49\u0E32\u0E07\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14",
|
|
1145
|
+
removeFilter: "\u0E19\u0E33\u0E2D\u0E2D\u0E01",
|
|
1146
|
+
noFilteredItems: "\u0E44\u0E21\u0E48\u0E1E\u0E1A\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E15\u0E23\u0E07\u0E01\u0E31\u0E19",
|
|
1147
|
+
noFilteredItemsDescription: "\u0E25\u0E2D\u0E07\u0E1B\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E04\u0E49\u0E19\u0E2B\u0E32\u0E2B\u0E23\u0E37\u0E2D\u0E19\u0E33\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07\u0E41\u0E17\u0E47\u0E01\u0E2D\u0E2D\u0E01",
|
|
1148
|
+
emptyStorageDescription: "\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E39\u0E17\u0E35\u0E48\u0E19\u0E35\u0E48",
|
|
1058
1149
|
note: "\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E22\u0E48\u0E2D",
|
|
1059
1150
|
saveNote: "\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E22\u0E48\u0E2D",
|
|
1060
1151
|
noItems: "\u0E44\u0E21\u0E48\u0E21\u0E35\u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E17\u0E35\u0E48\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E44\u0E27\u0E49",
|
|
@@ -1134,6 +1225,13 @@ var VI_LABELS = {
|
|
|
1134
1225
|
allTags: "T\u1EA5t c\u1EA3",
|
|
1135
1226
|
tags: "Th\u1EBB",
|
|
1136
1227
|
filterTags: "L\u1ECDc m\u1EE5c \u0111\xE3 l\u01B0u theo th\u1EBB",
|
|
1228
|
+
activeFilters: "B\u1ED9 l\u1ECDc \u0111ang d\xF9ng",
|
|
1229
|
+
clearFilters: "X\xF3a b\u1ED9 l\u1ECDc",
|
|
1230
|
+
clearAllFilters: "X\xF3a t\u1EA5t c\u1EA3 b\u1ED9 l\u1ECDc",
|
|
1231
|
+
removeFilter: "x\xF3a",
|
|
1232
|
+
noFilteredItems: "Kh\xF4ng t\xECm th\u1EA5y m\u1EE5c ph\xF9 h\u1EE3p.",
|
|
1233
|
+
noFilteredItemsDescription: "H\xE3y \u0111i\u1EC1u ch\u1EC9nh t\xECm ki\u1EBFm ho\u1EB7c x\xF3a b\u1ED9 l\u1ECDc th\u1EBB.",
|
|
1234
|
+
emptyStorageDescription: "L\u01B0u m\u1ED9t m\u1EE5c \u0111\u1EC3 xem m\u1EE5c \u0111\xF3 t\u1EA1i \u0111\xE2y.",
|
|
1137
1235
|
note: "Ghi ch\xFA",
|
|
1138
1236
|
saveNote: "L\u01B0u ghi ch\xFA",
|
|
1139
1237
|
noItems: "Ch\u01B0a c\xF3 m\u1EE5c n\xE0o \u0111\u01B0\u1EE3c l\u01B0u.",
|
|
@@ -1213,6 +1311,13 @@ var ZH_HANS_LABELS = {
|
|
|
1213
1311
|
allTags: "\u5168\u90E8",
|
|
1214
1312
|
tags: "\u6807\u7B7E",
|
|
1215
1313
|
filterTags: "\u6309\u6807\u7B7E\u7B5B\u9009\u5DF2\u4FDD\u5B58\u9879\u76EE",
|
|
1314
|
+
activeFilters: "\u5F53\u524D\u7B5B\u9009\u6761\u4EF6",
|
|
1315
|
+
clearFilters: "\u6E05\u9664\u7B5B\u9009",
|
|
1316
|
+
clearAllFilters: "\u6E05\u9664\u6240\u6709\u7B5B\u9009\u6761\u4EF6",
|
|
1317
|
+
removeFilter: "\u79FB\u9664",
|
|
1318
|
+
noFilteredItems: "\u672A\u627E\u5230\u5339\u914D\u9879\u76EE\u3002",
|
|
1319
|
+
noFilteredItemsDescription: "\u8BF7\u8C03\u6574\u641C\u7D22\u6761\u4EF6\u6216\u79FB\u9664\u6807\u7B7E\u7B5B\u9009\u3002",
|
|
1320
|
+
emptyStorageDescription: "\u4FDD\u5B58\u9879\u76EE\u540E\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002",
|
|
1216
1321
|
note: "\u5907\u6CE8",
|
|
1217
1322
|
saveNote: "\u4FDD\u5B58\u5907\u6CE8",
|
|
1218
1323
|
noItems: "\u6CA1\u6709\u5DF2\u4FDD\u5B58\u7684\u9879\u76EE\u3002",
|
|
@@ -1292,6 +1397,13 @@ var ZH_HANT_LABELS = {
|
|
|
1292
1397
|
allTags: "\u5168\u90E8",
|
|
1293
1398
|
tags: "\u6A19\u7C64",
|
|
1294
1399
|
filterTags: "\u4F9D\u6A19\u7C64\u7BE9\u9078\u5DF2\u5132\u5B58\u9805\u76EE",
|
|
1400
|
+
activeFilters: "\u76EE\u524D\u7BE9\u9078\u689D\u4EF6",
|
|
1401
|
+
clearFilters: "\u6E05\u9664\u7BE9\u9078",
|
|
1402
|
+
clearAllFilters: "\u6E05\u9664\u6240\u6709\u7BE9\u9078\u689D\u4EF6",
|
|
1403
|
+
removeFilter: "\u79FB\u9664",
|
|
1404
|
+
noFilteredItems: "\u627E\u4E0D\u5230\u76F8\u7B26\u9805\u76EE\u3002",
|
|
1405
|
+
noFilteredItemsDescription: "\u8ACB\u8ABF\u6574\u641C\u5C0B\u689D\u4EF6\u6216\u79FB\u9664\u6A19\u7C64\u7BE9\u9078\u3002",
|
|
1406
|
+
emptyStorageDescription: "\u5132\u5B58\u9805\u76EE\u5F8C\u6703\u986F\u793A\u5728\u9019\u88E1\u3002",
|
|
1295
1407
|
note: "\u5099\u8A3B",
|
|
1296
1408
|
saveNote: "\u5132\u5B58\u5099\u8A3B",
|
|
1297
1409
|
noItems: "\u6C92\u6709\u5DF2\u5132\u5B58\u7684\u9805\u76EE\u3002",
|
|
@@ -1664,10 +1776,62 @@ function sortToValue(sort) {
|
|
|
1664
1776
|
function resolveContent(content, state) {
|
|
1665
1777
|
return typeof content === "function" ? content(state) : content;
|
|
1666
1778
|
}
|
|
1779
|
+
function chainedFunction(childHandler, parentHandler) {
|
|
1780
|
+
if (!childHandler) return parentHandler;
|
|
1781
|
+
if (!parentHandler) return childHandler;
|
|
1782
|
+
return ((...args) => {
|
|
1783
|
+
childHandler(...args);
|
|
1784
|
+
parentHandler(...args);
|
|
1785
|
+
});
|
|
1786
|
+
}
|
|
1787
|
+
function mergeProps(childProps, parentProps) {
|
|
1788
|
+
const merged = { ...parentProps, ...childProps };
|
|
1789
|
+
const className = mergeClassNames(childProps.className, parentProps.className);
|
|
1790
|
+
if (className) merged.className = className;
|
|
1791
|
+
const style = mergeStyles(childProps.style, parentProps.style);
|
|
1792
|
+
if (style) merged.style = style;
|
|
1793
|
+
for (const key of Object.keys(parentProps)) {
|
|
1794
|
+
if (!isEventProp(key)) continue;
|
|
1795
|
+
const chained = chainedFunction(getHandler(childProps[key]), getHandler(parentProps[key]));
|
|
1796
|
+
if (chained) merged[key] = chained;
|
|
1797
|
+
}
|
|
1798
|
+
for (const [key, value] of Object.entries(merged)) {
|
|
1799
|
+
if (value === void 0 && key.startsWith("aria-") && childProps[key] !== void 0) {
|
|
1800
|
+
merged[key] = childProps[key];
|
|
1801
|
+
}
|
|
1802
|
+
}
|
|
1803
|
+
return merged;
|
|
1804
|
+
}
|
|
1805
|
+
function getHandler(value) {
|
|
1806
|
+
return typeof value === "function" ? value : void 0;
|
|
1807
|
+
}
|
|
1808
|
+
function isEventProp(key) {
|
|
1809
|
+
return key.startsWith("on") && key.length > 2 && key[2] === key[2]?.toUpperCase();
|
|
1810
|
+
}
|
|
1811
|
+
function mergeClassNames(childClassName, parentClassName) {
|
|
1812
|
+
const values = [childClassName, parentClassName].filter(
|
|
1813
|
+
(value) => typeof value === "string" && Boolean(value)
|
|
1814
|
+
);
|
|
1815
|
+
return values.length > 0 ? values.join(" ") : void 0;
|
|
1816
|
+
}
|
|
1817
|
+
function mergeStyles(childStyle, parentStyle) {
|
|
1818
|
+
if (!childStyle && !parentStyle) return void 0;
|
|
1819
|
+
return {
|
|
1820
|
+
...isObject(childStyle) ? childStyle : {},
|
|
1821
|
+
...isObject(parentStyle) ? parentStyle : {}
|
|
1822
|
+
};
|
|
1823
|
+
}
|
|
1824
|
+
function isObject(value) {
|
|
1825
|
+
return typeof value === "object" && value !== null;
|
|
1826
|
+
}
|
|
1827
|
+
function createSlot(child, props, body) {
|
|
1828
|
+
const nextProps = body === void 0 ? props : { ...props, children: body };
|
|
1829
|
+
return cloneElement(child, mergeProps(child.props, nextProps));
|
|
1830
|
+
}
|
|
1667
1831
|
function renderRoot(asChild, child, props, body, componentName) {
|
|
1668
1832
|
if (asChild) {
|
|
1669
1833
|
if (!isValidElement(child)) throw new Error(`${componentName} with asChild requires a single React element child.`);
|
|
1670
|
-
return
|
|
1834
|
+
return createSlot(child, props, body);
|
|
1671
1835
|
}
|
|
1672
1836
|
return /* @__PURE__ */ jsx3("div", { ...props, children: body });
|
|
1673
1837
|
}
|
|
@@ -2087,8 +2251,93 @@ function KeepUndo({ children, label, ...props }) {
|
|
|
2087
2251
|
// src/features/collection/KeepCollection.tsx
|
|
2088
2252
|
import { KeepErrorBoundary as KeepErrorBoundary2 } from "@keepkit/core/react";
|
|
2089
2253
|
|
|
2090
|
-
// src/features/query/
|
|
2254
|
+
// src/features/query/KeepActiveFiltersSummary.tsx
|
|
2091
2255
|
import { isValidElement as isValidElement2 } from "react";
|
|
2256
|
+
import { Fragment as Fragment4, jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
2257
|
+
function KeepActiveFiltersSummary({
|
|
2258
|
+
query,
|
|
2259
|
+
search: providedSearch,
|
|
2260
|
+
tags: providedTags,
|
|
2261
|
+
onSearchChange,
|
|
2262
|
+
onTagChange,
|
|
2263
|
+
onClear,
|
|
2264
|
+
children,
|
|
2265
|
+
asChild = false,
|
|
2266
|
+
className,
|
|
2267
|
+
...rootProps
|
|
2268
|
+
}) {
|
|
2269
|
+
const search = (providedSearch ?? query?.search?.query ?? "").trim();
|
|
2270
|
+
const tags = normalizeTags(providedTags ?? query?.tags ?? []);
|
|
2271
|
+
const hasFilters = Boolean(search) || tags.length > 0;
|
|
2272
|
+
const activeFiltersLabel = useUiLabel("activeFilters");
|
|
2273
|
+
const clearAllLabel = useUiLabel("clearAllFilters");
|
|
2274
|
+
const clearLabel = useUiLabel("clearFilters");
|
|
2275
|
+
const removeLabel = useUiLabel("removeFilter");
|
|
2276
|
+
const state = {
|
|
2277
|
+
search,
|
|
2278
|
+
tags,
|
|
2279
|
+
hasFilters,
|
|
2280
|
+
clear: () => onClear?.(),
|
|
2281
|
+
removeSearch: () => onSearchChange?.(""),
|
|
2282
|
+
removeTag: (tag) => onTagChange?.(tag)
|
|
2283
|
+
};
|
|
2284
|
+
const contentChildren = asChild && isElement(children) ? void 0 : children;
|
|
2285
|
+
const body = typeof contentChildren === "function" ? contentChildren(state) : contentChildren ?? (hasFilters ? /* @__PURE__ */ jsxs5(Fragment4, { children: [
|
|
2286
|
+
/* @__PURE__ */ jsx8("span", { "data-active-filters-label": "true", children: activeFiltersLabel }),
|
|
2287
|
+
/* @__PURE__ */ jsxs5("ul", { "data-active-filters-list": "true", children: [
|
|
2288
|
+
search ? /* @__PURE__ */ jsxs5("li", { "data-filter-kind": "search", children: [
|
|
2289
|
+
/* @__PURE__ */ jsx8("span", { "data-filter-value": "true", children: search }),
|
|
2290
|
+
/* @__PURE__ */ jsx8(
|
|
2291
|
+
"button",
|
|
2292
|
+
{
|
|
2293
|
+
type: "button",
|
|
2294
|
+
"data-keep-action": "remove-search-filter",
|
|
2295
|
+
"aria-label": `${search} ${removeLabel}`,
|
|
2296
|
+
onClick: state.removeSearch,
|
|
2297
|
+
children: "\xD7"
|
|
2298
|
+
}
|
|
2299
|
+
)
|
|
2300
|
+
] }) : null,
|
|
2301
|
+
tags.map((tag) => /* @__PURE__ */ jsxs5("li", { "data-filter-kind": "tag", children: [
|
|
2302
|
+
/* @__PURE__ */ jsx8("span", { "data-filter-value": "true", children: tag }),
|
|
2303
|
+
/* @__PURE__ */ jsx8(
|
|
2304
|
+
"button",
|
|
2305
|
+
{
|
|
2306
|
+
type: "button",
|
|
2307
|
+
"data-keep-action": "remove-tag-filter",
|
|
2308
|
+
"aria-label": `${tag} ${removeLabel}`,
|
|
2309
|
+
onClick: () => state.removeTag(tag),
|
|
2310
|
+
children: "\xD7"
|
|
2311
|
+
}
|
|
2312
|
+
)
|
|
2313
|
+
] }, tag))
|
|
2314
|
+
] }),
|
|
2315
|
+
/* @__PURE__ */ jsx8("button", { type: "button", "data-keep-action": "clear-filters", onClick: state.clear, children: clearAllLabel || clearLabel })
|
|
2316
|
+
] }) : null);
|
|
2317
|
+
if (!hasFilters && !asChild && contentChildren === void 0) return null;
|
|
2318
|
+
return renderRoot(
|
|
2319
|
+
asChild,
|
|
2320
|
+
isElement(children) ? children : void 0,
|
|
2321
|
+
{
|
|
2322
|
+
...rootProps,
|
|
2323
|
+
className,
|
|
2324
|
+
"data-keepkit": "active-filters",
|
|
2325
|
+
"data-state": hasFilters ? "active" : "idle",
|
|
2326
|
+
"aria-label": rootProps["aria-label"] ?? activeFiltersLabel
|
|
2327
|
+
},
|
|
2328
|
+
body,
|
|
2329
|
+
"KeepActiveFiltersSummary"
|
|
2330
|
+
);
|
|
2331
|
+
}
|
|
2332
|
+
function normalizeTags(tags) {
|
|
2333
|
+
return [...new Set(tags.map((tag) => tag.trim()).filter(Boolean))];
|
|
2334
|
+
}
|
|
2335
|
+
function isElement(value) {
|
|
2336
|
+
return isValidElement2(value);
|
|
2337
|
+
}
|
|
2338
|
+
|
|
2339
|
+
// src/features/query/KeepTagFilter.tsx
|
|
2340
|
+
import { isValidElement as isValidElement3 } from "react";
|
|
2092
2341
|
|
|
2093
2342
|
// src/features/query/hooks/useKeepTagFilter.ts
|
|
2094
2343
|
import { useKeepList as useKeepList2 } from "@keepkit/core/react";
|
|
@@ -2121,7 +2370,7 @@ function useKeepTagFilter(options) {
|
|
|
2121
2370
|
}
|
|
2122
2371
|
|
|
2123
2372
|
// src/features/query/KeepTagFilter.tsx
|
|
2124
|
-
import { jsx as
|
|
2373
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2125
2374
|
function KeepTagFilter({
|
|
2126
2375
|
query,
|
|
2127
2376
|
value: controlledValue,
|
|
@@ -2138,10 +2387,10 @@ function KeepTagFilter({
|
|
|
2138
2387
|
...rootProps
|
|
2139
2388
|
}) {
|
|
2140
2389
|
const view = useKeepTagFilter({ query, controlledValue, defaultValue, onChange, onValueChange });
|
|
2141
|
-
const contentChildren = asChild &&
|
|
2142
|
-
const body = render ? render(view.state) : typeof contentChildren === "function" ? contentChildren(view.state) : contentChildren ?? /* @__PURE__ */
|
|
2143
|
-
/* @__PURE__ */
|
|
2144
|
-
/* @__PURE__ */
|
|
2390
|
+
const contentChildren = asChild && isValidElement3(children) ? void 0 : children;
|
|
2391
|
+
const body = render ? render(view.state) : typeof contentChildren === "function" ? contentChildren(view.state) : contentChildren ?? /* @__PURE__ */ jsxs6("fieldset", { children: [
|
|
2392
|
+
/* @__PURE__ */ jsx9("legend", { children: ariaLabel ?? view.labels.aria }),
|
|
2393
|
+
/* @__PURE__ */ jsx9(
|
|
2145
2394
|
"button",
|
|
2146
2395
|
{
|
|
2147
2396
|
type: "button",
|
|
@@ -2151,7 +2400,7 @@ function KeepTagFilter({
|
|
|
2151
2400
|
children: allLabel ?? view.labels.all
|
|
2152
2401
|
}
|
|
2153
2402
|
),
|
|
2154
|
-
view.state.tags.map((tag) => /* @__PURE__ */
|
|
2403
|
+
view.state.tags.map((tag) => /* @__PURE__ */ jsxs6(
|
|
2155
2404
|
"button",
|
|
2156
2405
|
{
|
|
2157
2406
|
type: "button",
|
|
@@ -2160,7 +2409,7 @@ function KeepTagFilter({
|
|
|
2160
2409
|
onClick: () => view.state.select(tag),
|
|
2161
2410
|
children: [
|
|
2162
2411
|
renderTag ? renderTag(tag, view.state.tagCounts[tag] ?? 0, view.state.value === tag) : tag,
|
|
2163
|
-
/* @__PURE__ */
|
|
2412
|
+
/* @__PURE__ */ jsxs6("span", { children: [
|
|
2164
2413
|
" (",
|
|
2165
2414
|
view.state.tagCounts[tag] ?? 0,
|
|
2166
2415
|
")"
|
|
@@ -2172,7 +2421,7 @@ function KeepTagFilter({
|
|
|
2172
2421
|
] });
|
|
2173
2422
|
return renderRoot(
|
|
2174
2423
|
asChild,
|
|
2175
|
-
|
|
2424
|
+
isValidElement3(children) ? children : void 0,
|
|
2176
2425
|
{
|
|
2177
2426
|
...rootProps,
|
|
2178
2427
|
className,
|
|
@@ -2258,7 +2507,7 @@ function getVisiblePages(currentPage, pageCount, maxPageButtons) {
|
|
|
2258
2507
|
}
|
|
2259
2508
|
|
|
2260
2509
|
// src/features/query/query-controls.tsx
|
|
2261
|
-
import { Fragment as
|
|
2510
|
+
import { Fragment as Fragment5, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2262
2511
|
function KeepSearchInput({
|
|
2263
2512
|
value: controlledValue,
|
|
2264
2513
|
defaultValue = "",
|
|
@@ -2269,7 +2518,7 @@ function KeepSearchInput({
|
|
|
2269
2518
|
...props
|
|
2270
2519
|
}) {
|
|
2271
2520
|
const view = useKeepSearchInput({ controlledValue, defaultValue, debounceMs, onValueChange });
|
|
2272
|
-
return /* @__PURE__ */
|
|
2521
|
+
return /* @__PURE__ */ jsx10(
|
|
2273
2522
|
"input",
|
|
2274
2523
|
{
|
|
2275
2524
|
...props,
|
|
@@ -2294,13 +2543,13 @@ function KeepSortSelect({
|
|
|
2294
2543
|
...props
|
|
2295
2544
|
}) {
|
|
2296
2545
|
const view = useKeepSortSelect({ controlledValue, defaultValue, onValueChange });
|
|
2297
|
-
const options = children ?? /* @__PURE__ */
|
|
2298
|
-
/* @__PURE__ */
|
|
2299
|
-
/* @__PURE__ */
|
|
2300
|
-
/* @__PURE__ */
|
|
2301
|
-
/* @__PURE__ */
|
|
2546
|
+
const options = children ?? /* @__PURE__ */ jsxs7(Fragment5, { children: [
|
|
2547
|
+
/* @__PURE__ */ jsx10("option", { value: "updatedAt:desc", children: view.labels.updatedNewest }),
|
|
2548
|
+
/* @__PURE__ */ jsx10("option", { value: "updatedAt:asc", children: view.labels.updatedOldest }),
|
|
2549
|
+
/* @__PURE__ */ jsx10("option", { value: "savedAt:desc", children: view.labels.savedNewest }),
|
|
2550
|
+
/* @__PURE__ */ jsx10("option", { value: "savedAt:asc", children: view.labels.savedOldest })
|
|
2302
2551
|
] });
|
|
2303
|
-
return /* @__PURE__ */
|
|
2552
|
+
return /* @__PURE__ */ jsx10(
|
|
2304
2553
|
"select",
|
|
2305
2554
|
{
|
|
2306
2555
|
...props,
|
|
@@ -2332,9 +2581,9 @@ function KeepPagination({
|
|
|
2332
2581
|
"data-state": view.pageCount > 1 ? "active" : "idle"
|
|
2333
2582
|
};
|
|
2334
2583
|
if (render)
|
|
2335
|
-
return /* @__PURE__ */
|
|
2336
|
-
return /* @__PURE__ */
|
|
2337
|
-
/* @__PURE__ */
|
|
2584
|
+
return /* @__PURE__ */ jsx10("nav", { ...navProps, children: render({ page: view.currentPage, pageCount: view.pageCount, goToPage: view.goToPage }) });
|
|
2585
|
+
return /* @__PURE__ */ jsxs7("nav", { ...navProps, children: [
|
|
2586
|
+
/* @__PURE__ */ jsx10(
|
|
2338
2587
|
"button",
|
|
2339
2588
|
{
|
|
2340
2589
|
type: "button",
|
|
@@ -2344,7 +2593,7 @@ function KeepPagination({
|
|
|
2344
2593
|
children: view.labels.previous
|
|
2345
2594
|
}
|
|
2346
2595
|
),
|
|
2347
|
-
view.visiblePages.map((nextPage) => /* @__PURE__ */
|
|
2596
|
+
view.visiblePages.map((nextPage) => /* @__PURE__ */ jsx10(
|
|
2348
2597
|
"button",
|
|
2349
2598
|
{
|
|
2350
2599
|
type: "button",
|
|
@@ -2356,7 +2605,7 @@ function KeepPagination({
|
|
|
2356
2605
|
},
|
|
2357
2606
|
nextPage
|
|
2358
2607
|
)),
|
|
2359
|
-
/* @__PURE__ */
|
|
2608
|
+
/* @__PURE__ */ jsx10(
|
|
2360
2609
|
"button",
|
|
2361
2610
|
{
|
|
2362
2611
|
type: "button",
|
|
@@ -2389,7 +2638,7 @@ function useKeepCollection({
|
|
|
2389
2638
|
};
|
|
2390
2639
|
const [searchValue, setSearchValue] = useState6(query.search?.query ?? "");
|
|
2391
2640
|
const [sort, setSort] = useState6(query.sort ?? { by: "updatedAt", direction: "desc" });
|
|
2392
|
-
const [
|
|
2641
|
+
const [activeTags, setActiveTags] = useState6(query.tags ?? []);
|
|
2393
2642
|
const [page, setPage] = useState6(query.pagination?.page ?? 1);
|
|
2394
2643
|
const resolvedPageSize = query.pagination?.pageSize ?? pageSize;
|
|
2395
2644
|
const resolvedQuery = useMemo3(
|
|
@@ -2397,10 +2646,10 @@ function useKeepCollection({
|
|
|
2397
2646
|
...query,
|
|
2398
2647
|
search: enabled.search ? { ...query.search, query: searchValue } : query.search,
|
|
2399
2648
|
sort: enabled.sort ? sort : query.sort,
|
|
2400
|
-
tags:
|
|
2649
|
+
tags: activeTags.length > 0 ? activeTags : void 0,
|
|
2401
2650
|
pagination: enabled.pagination ? { ...query.pagination, page, pageSize: resolvedPageSize } : query.pagination
|
|
2402
2651
|
}),
|
|
2403
|
-
[enabled.pagination, enabled.search, enabled.sort, page, query, resolvedPageSize, searchValue, sort
|
|
2652
|
+
[activeTags, enabled.pagination, enabled.search, enabled.sort, page, query, resolvedPageSize, searchValue, sort]
|
|
2404
2653
|
);
|
|
2405
2654
|
useKeepUrlSync({
|
|
2406
2655
|
enabled: Boolean(urlSync),
|
|
@@ -2409,21 +2658,23 @@ function useKeepCollection({
|
|
|
2409
2658
|
const next = typeof nextOrUpdater === "function" ? nextOrUpdater(resolvedQuery) : nextOrUpdater;
|
|
2410
2659
|
setSearchValue(next.search?.query ?? "");
|
|
2411
2660
|
setSort(next.sort ?? { by: "updatedAt", direction: "desc" });
|
|
2412
|
-
|
|
2661
|
+
setActiveTags(next.tags ?? []);
|
|
2413
2662
|
setPage(next.pagination?.page ?? 1);
|
|
2414
2663
|
},
|
|
2415
2664
|
options: typeof urlSync === "object" ? urlSync : {},
|
|
2416
2665
|
adapter: urlAdapter
|
|
2417
2666
|
});
|
|
2418
2667
|
const list = useKeepList3(resolvedQuery);
|
|
2668
|
+
const allState = useKeepList3({});
|
|
2419
2669
|
return {
|
|
2420
2670
|
enabled,
|
|
2421
2671
|
searchValue,
|
|
2422
2672
|
sortValue: sortToValue(sort),
|
|
2423
|
-
|
|
2673
|
+
activeTags,
|
|
2424
2674
|
resolvedPageSize,
|
|
2425
2675
|
resolvedQuery,
|
|
2426
2676
|
list,
|
|
2677
|
+
allState,
|
|
2427
2678
|
setSearchValue: (value) => {
|
|
2428
2679
|
setSearchValue(value);
|
|
2429
2680
|
setPage(1);
|
|
@@ -2433,7 +2684,16 @@ function useKeepCollection({
|
|
|
2433
2684
|
setPage(1);
|
|
2434
2685
|
},
|
|
2435
2686
|
setTag: (value) => {
|
|
2436
|
-
|
|
2687
|
+
setActiveTags(value ? [value] : []);
|
|
2688
|
+
setPage(1);
|
|
2689
|
+
},
|
|
2690
|
+
removeTag: (tagToRemove) => {
|
|
2691
|
+
setActiveTags((current) => current.filter((tag) => tag !== tagToRemove));
|
|
2692
|
+
setPage(1);
|
|
2693
|
+
},
|
|
2694
|
+
clearFilters: () => {
|
|
2695
|
+
setSearchValue("");
|
|
2696
|
+
setActiveTags([]);
|
|
2437
2697
|
setPage(1);
|
|
2438
2698
|
},
|
|
2439
2699
|
setPage
|
|
@@ -2442,13 +2702,13 @@ function useKeepCollection({
|
|
|
2442
2702
|
|
|
2443
2703
|
// src/features/collection/KeepList.tsx
|
|
2444
2704
|
import { KeepErrorBoundary } from "@keepkit/core/react";
|
|
2445
|
-
import { isValidElement as
|
|
2705
|
+
import { isValidElement as isValidElement6 } from "react";
|
|
2446
2706
|
|
|
2447
2707
|
// src/features/item/KeepItemCard.tsx
|
|
2448
2708
|
import {
|
|
2449
2709
|
createContext as createContext3,
|
|
2450
2710
|
createElement as createElement2,
|
|
2451
|
-
isValidElement as
|
|
2711
|
+
isValidElement as isValidElement4,
|
|
2452
2712
|
useContext as useContext3,
|
|
2453
2713
|
useEffect as useEffect5,
|
|
2454
2714
|
useState as useState8
|
|
@@ -2494,10 +2754,10 @@ function getDisplayStatus(status) {
|
|
|
2494
2754
|
}
|
|
2495
2755
|
|
|
2496
2756
|
// src/features/item/KeepItemStatusBadge.tsx
|
|
2497
|
-
import { Fragment as
|
|
2757
|
+
import { Fragment as Fragment6, jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2498
2758
|
function KeepItemStatusBadge({ status = "available", label, className, ...props }) {
|
|
2499
2759
|
const view = useKeepItemStatusBadge(status);
|
|
2500
|
-
return /* @__PURE__ */
|
|
2760
|
+
return /* @__PURE__ */ jsxs8(
|
|
2501
2761
|
"span",
|
|
2502
2762
|
{
|
|
2503
2763
|
...props,
|
|
@@ -2508,14 +2768,14 @@ function KeepItemStatusBadge({ status = "available", label, className, ...props
|
|
|
2508
2768
|
"data-status": status,
|
|
2509
2769
|
"data-item-status": view.resolvedStatus,
|
|
2510
2770
|
children: [
|
|
2511
|
-
/* @__PURE__ */
|
|
2512
|
-
/* @__PURE__ */
|
|
2771
|
+
/* @__PURE__ */ jsx11(StatusIcon, { name: view.icon }),
|
|
2772
|
+
/* @__PURE__ */ jsx11("span", { "data-status-label": "true", children: label ?? view.statusLabel })
|
|
2513
2773
|
]
|
|
2514
2774
|
}
|
|
2515
2775
|
);
|
|
2516
2776
|
}
|
|
2517
2777
|
function StatusIcon({ name }) {
|
|
2518
|
-
return /* @__PURE__ */
|
|
2778
|
+
return /* @__PURE__ */ jsxs8(
|
|
2519
2779
|
"svg",
|
|
2520
2780
|
{
|
|
2521
2781
|
"data-status-icon": name,
|
|
@@ -2530,18 +2790,18 @@ function StatusIcon({ name }) {
|
|
|
2530
2790
|
"aria-hidden": "true",
|
|
2531
2791
|
focusable: "false",
|
|
2532
2792
|
children: [
|
|
2533
|
-
name === "check" ? /* @__PURE__ */
|
|
2534
|
-
name === "clock" ? /* @__PURE__ */
|
|
2535
|
-
/* @__PURE__ */
|
|
2536
|
-
/* @__PURE__ */
|
|
2793
|
+
name === "check" ? /* @__PURE__ */ jsx11("path", { d: "m5 12 4 4L19 6" }) : null,
|
|
2794
|
+
name === "clock" ? /* @__PURE__ */ jsxs8(Fragment6, { children: [
|
|
2795
|
+
/* @__PURE__ */ jsx11("circle", { cx: "12", cy: "12", r: "8" }),
|
|
2796
|
+
/* @__PURE__ */ jsx11("path", { d: "M12 7v5l3 2" })
|
|
2537
2797
|
] }) : null,
|
|
2538
|
-
name === "ban" ? /* @__PURE__ */
|
|
2539
|
-
/* @__PURE__ */
|
|
2540
|
-
/* @__PURE__ */
|
|
2798
|
+
name === "ban" ? /* @__PURE__ */ jsxs8(Fragment6, { children: [
|
|
2799
|
+
/* @__PURE__ */ jsx11("circle", { cx: "12", cy: "12", r: "8" }),
|
|
2800
|
+
/* @__PURE__ */ jsx11("path", { d: "m6.5 6.5 11 11" })
|
|
2541
2801
|
] }) : null,
|
|
2542
|
-
name === "lock" ? /* @__PURE__ */
|
|
2543
|
-
/* @__PURE__ */
|
|
2544
|
-
/* @__PURE__ */
|
|
2802
|
+
name === "lock" ? /* @__PURE__ */ jsxs8(Fragment6, { children: [
|
|
2803
|
+
/* @__PURE__ */ jsx11("rect", { x: "5", y: "10", width: "14", height: "10", rx: "2" }),
|
|
2804
|
+
/* @__PURE__ */ jsx11("path", { d: "M8 10V7a4 4 0 0 1 8 0v3" })
|
|
2545
2805
|
] }) : null
|
|
2546
2806
|
]
|
|
2547
2807
|
}
|
|
@@ -2638,7 +2898,7 @@ function useKeepPruneStale({ statuses, onPruned }) {
|
|
|
2638
2898
|
}
|
|
2639
2899
|
|
|
2640
2900
|
// src/features/status/KeepStaleNotice.tsx
|
|
2641
|
-
import { jsx as
|
|
2901
|
+
import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2642
2902
|
function KeepStaleNotice({
|
|
2643
2903
|
item,
|
|
2644
2904
|
onRetry,
|
|
@@ -2650,11 +2910,11 @@ function KeepStaleNotice({
|
|
|
2650
2910
|
...props
|
|
2651
2911
|
}) {
|
|
2652
2912
|
const view = useKeepStaleNotice({ item, onRetry, onRemoved });
|
|
2653
|
-
return /* @__PURE__ */
|
|
2654
|
-
/* @__PURE__ */
|
|
2655
|
-
children ?? (item.statusReason ? /* @__PURE__ */
|
|
2656
|
-
/* @__PURE__ */
|
|
2657
|
-
/* @__PURE__ */
|
|
2913
|
+
return /* @__PURE__ */ jsxs9("aside", { ...props, className, "data-keepkit": "stale-notice", "data-state": view.error ? "error" : "stale", children: [
|
|
2914
|
+
/* @__PURE__ */ jsx12(KeepItemStatusBadge, { status: view.status }),
|
|
2915
|
+
children ?? (item.statusReason ? /* @__PURE__ */ jsx12("p", { children: item.statusReason }) : null),
|
|
2916
|
+
/* @__PURE__ */ jsxs9("div", { children: [
|
|
2917
|
+
/* @__PURE__ */ jsx12(
|
|
2658
2918
|
"button",
|
|
2659
2919
|
{
|
|
2660
2920
|
type: "button",
|
|
@@ -2664,7 +2924,7 @@ function KeepStaleNotice({
|
|
|
2664
2924
|
children: retryLabel ?? view.labels.retry
|
|
2665
2925
|
}
|
|
2666
2926
|
),
|
|
2667
|
-
/* @__PURE__ */
|
|
2927
|
+
/* @__PURE__ */ jsx12(
|
|
2668
2928
|
"button",
|
|
2669
2929
|
{
|
|
2670
2930
|
type: "button",
|
|
@@ -2675,7 +2935,7 @@ function KeepStaleNotice({
|
|
|
2675
2935
|
}
|
|
2676
2936
|
)
|
|
2677
2937
|
] }),
|
|
2678
|
-
view.error ? /* @__PURE__ */
|
|
2938
|
+
view.error ? /* @__PURE__ */ jsx12("p", { role: "alert", children: view.error instanceof Error ? view.error.message : view.labels.error }) : null
|
|
2679
2939
|
] });
|
|
2680
2940
|
}
|
|
2681
2941
|
function KeepPruneStaleButton({
|
|
@@ -2687,7 +2947,7 @@ function KeepPruneStaleButton({
|
|
|
2687
2947
|
...props
|
|
2688
2948
|
}) {
|
|
2689
2949
|
const view = useKeepPruneStale({ statuses, onPruned });
|
|
2690
|
-
return /* @__PURE__ */
|
|
2950
|
+
return /* @__PURE__ */ jsx12(
|
|
2691
2951
|
"button",
|
|
2692
2952
|
{
|
|
2693
2953
|
...props,
|
|
@@ -2800,7 +3060,7 @@ function getDisplayStatus2(status) {
|
|
|
2800
3060
|
}
|
|
2801
3061
|
|
|
2802
3062
|
// src/features/item/KeepItemCard.tsx
|
|
2803
|
-
import { Fragment as
|
|
3063
|
+
import { Fragment as Fragment7, jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2804
3064
|
var KeepItemCardContext = createContext3(null);
|
|
2805
3065
|
function useKeepItemCardCompound(part) {
|
|
2806
3066
|
const context = useContext3(KeepItemCardContext);
|
|
@@ -2850,7 +3110,7 @@ function KeepItemCardRoot({
|
|
|
2850
3110
|
});
|
|
2851
3111
|
const contextQuery = useKeepSearchQuery();
|
|
2852
3112
|
const searchQuery = highlightQuery ?? contextQuery;
|
|
2853
|
-
const contentChildren = asChild &&
|
|
3113
|
+
const contentChildren = asChild && isValidElement4(children) ? void 0 : children;
|
|
2854
3114
|
function renderLink(content) {
|
|
2855
3115
|
if (!view.href || !view.isAvailable) return content;
|
|
2856
3116
|
const linkProps = {
|
|
@@ -2860,12 +3120,12 @@ function KeepItemCardRoot({
|
|
|
2860
3120
|
onClick: (event) => onOpen?.(item, event),
|
|
2861
3121
|
children: content
|
|
2862
3122
|
};
|
|
2863
|
-
return LinkComponent ? /* @__PURE__ */
|
|
3123
|
+
return LinkComponent ? /* @__PURE__ */ jsx13(LinkComponent, { ...linkProps }) : /* @__PURE__ */ jsx13("a", { ...linkProps });
|
|
2864
3124
|
}
|
|
2865
3125
|
function renderTitle(content) {
|
|
2866
3126
|
if (linkTarget !== "title") return content;
|
|
2867
3127
|
if (view.isAvailable) return renderLink(content);
|
|
2868
|
-
return view.href ? /* @__PURE__ */
|
|
3128
|
+
return view.href ? /* @__PURE__ */ jsx13("span", { "aria-disabled": "true", "data-link-disabled": "true", children: content }) : content;
|
|
2869
3129
|
}
|
|
2870
3130
|
const resolvedImageProps = view.imageProps ? { ...view.imageProps, alt: imageAlt ?? view.imageProps.alt } : void 0;
|
|
2871
3131
|
const imageSource = resolvedImageProps?.src;
|
|
@@ -2888,21 +3148,21 @@ function KeepItemCardRoot({
|
|
|
2888
3148
|
setImageStatus("error");
|
|
2889
3149
|
}
|
|
2890
3150
|
};
|
|
2891
|
-
image = renderImage?.(imagePropsWithHandlers, item) ?? (ImageComponent ? /* @__PURE__ */
|
|
3151
|
+
image = renderImage?.(imagePropsWithHandlers, item) ?? (ImageComponent ? /* @__PURE__ */ jsx13(ImageComponent, { ...imagePropsWithHandlers }) : /* @__PURE__ */ jsx13("img", { ...imagePropsWithHandlers, alt: imagePropsWithHandlers.alt }));
|
|
2892
3152
|
}
|
|
2893
3153
|
const tags = showTags ? item.tags ?? [] : [];
|
|
2894
3154
|
const renderedTags = showTags && tags.length > 0 ? renderTags?.(tags, item) ?? null : null;
|
|
2895
|
-
const meta = showSavedAt ? /* @__PURE__ */
|
|
2896
|
-
/* @__PURE__ */
|
|
3155
|
+
const meta = showSavedAt ? /* @__PURE__ */ jsxs10("div", { "data-card-meta": true, children: [
|
|
3156
|
+
/* @__PURE__ */ jsxs10("span", { children: [
|
|
2897
3157
|
view.labels.savedAt,
|
|
2898
3158
|
":"
|
|
2899
3159
|
] }),
|
|
2900
3160
|
" ",
|
|
2901
|
-
/* @__PURE__ */
|
|
3161
|
+
/* @__PURE__ */ jsx13("time", { dateTime: new Date(item.savedAt).toISOString(), children: formatSavedAt(item.savedAt) })
|
|
2902
3162
|
] }) : null;
|
|
2903
|
-
const error = view.itemState.error ? /* @__PURE__ */
|
|
2904
|
-
const actions = view.statusLabel ? /* @__PURE__ */
|
|
2905
|
-
showSaveButton ? /* @__PURE__ */
|
|
3163
|
+
const error = view.itemState.error ? /* @__PURE__ */ jsx13("p", { role: "alert", children: getErrorMessage2(view.itemState.error, view.labels.error) }) : null;
|
|
3164
|
+
const actions = view.statusLabel ? /* @__PURE__ */ jsx13(KeepStaleNotice, { item, onRetry, onRemoved }) : /* @__PURE__ */ jsxs10(Fragment7, { children: [
|
|
3165
|
+
showSaveButton ? /* @__PURE__ */ jsx13(
|
|
2906
3166
|
KeepButton,
|
|
2907
3167
|
{
|
|
2908
3168
|
item: toKeepButtonItem(item),
|
|
@@ -2910,7 +3170,7 @@ function KeepItemCardRoot({
|
|
|
2910
3170
|
getAriaLabel: (buttonState) => `${buttonState.isSaved ? view.labels.remove : view.labels.save} ${String(view.resolvedTitle)}`
|
|
2911
3171
|
}
|
|
2912
3172
|
) : null,
|
|
2913
|
-
/* @__PURE__ */
|
|
3173
|
+
/* @__PURE__ */ jsx13(
|
|
2914
3174
|
"button",
|
|
2915
3175
|
{
|
|
2916
3176
|
type: "button",
|
|
@@ -2933,18 +3193,18 @@ function KeepItemCardRoot({
|
|
|
2933
3193
|
meta,
|
|
2934
3194
|
error,
|
|
2935
3195
|
actions,
|
|
2936
|
-
renderText: (content) => /* @__PURE__ */
|
|
3196
|
+
renderText: (content) => /* @__PURE__ */ jsx13(KeepHighlight, { query: searchQuery, children: content })
|
|
2937
3197
|
};
|
|
2938
|
-
const defaultBody = /* @__PURE__ */
|
|
2939
|
-
/* @__PURE__ */
|
|
2940
|
-
/* @__PURE__ */
|
|
2941
|
-
/* @__PURE__ */
|
|
3198
|
+
const defaultBody = /* @__PURE__ */ jsxs10(Fragment7, { children: [
|
|
3199
|
+
/* @__PURE__ */ jsx13(KeepItemCardMedia, {}),
|
|
3200
|
+
/* @__PURE__ */ jsx13(KeepItemCardContent, {}),
|
|
3201
|
+
/* @__PURE__ */ jsx13(KeepItemCardActions, {})
|
|
2942
3202
|
] });
|
|
2943
3203
|
const body = render ? render(view.state) : typeof contentChildren === "function" ? contentChildren(view.state) : contentChildren ?? defaultBody;
|
|
2944
3204
|
const linkedBody = linkTarget === "card" && view.isAvailable ? renderLink(body) : body;
|
|
2945
3205
|
const root = renderRoot(
|
|
2946
3206
|
asChild,
|
|
2947
|
-
|
|
3207
|
+
isValidElement4(children) ? children : void 0,
|
|
2948
3208
|
{
|
|
2949
3209
|
...rootProps,
|
|
2950
3210
|
className,
|
|
@@ -2959,18 +3219,18 @@ function KeepItemCardRoot({
|
|
|
2959
3219
|
linkedBody,
|
|
2960
3220
|
"KeepItemCard"
|
|
2961
3221
|
);
|
|
2962
|
-
return /* @__PURE__ */
|
|
3222
|
+
return /* @__PURE__ */ jsx13(KeepItemCardContext.Provider, { value: compoundValue, children: root });
|
|
2963
3223
|
}
|
|
2964
3224
|
function KeepItemCardMedia({ children, fallback, ...props }) {
|
|
2965
3225
|
const context = useKeepItemCardCompound("Media");
|
|
2966
|
-
return /* @__PURE__ */
|
|
3226
|
+
return /* @__PURE__ */ jsx13("div", { ...props, "data-keep-card-part": "media", "data-media-status": context.imageStatus, "data-aspect-ratio": "1/1", children: children ?? context.image ?? /* @__PURE__ */ jsx13("span", { role: "img", "aria-label": context.fallbackLabel, "data-keep-card-fallback": "true", children: fallback ?? /* @__PURE__ */ jsx13(KeepMediaPlaceholderIcon, {}) }) });
|
|
2967
3227
|
}
|
|
2968
3228
|
function KeepItemCardContent({ children, ...props }) {
|
|
2969
3229
|
const context = useKeepItemCardCompound("Content");
|
|
2970
|
-
return /* @__PURE__ */
|
|
2971
|
-
/* @__PURE__ */
|
|
3230
|
+
return /* @__PURE__ */ jsx13("div", { ...props, "data-keep-card-part": "content", children: children === void 0 ? /* @__PURE__ */ jsxs10(Fragment7, { children: [
|
|
3231
|
+
/* @__PURE__ */ jsx13(KeepItemCardTitle, {}),
|
|
2972
3232
|
context.meta,
|
|
2973
|
-
/* @__PURE__ */
|
|
3233
|
+
/* @__PURE__ */ jsx13(KeepItemCardTags, {}),
|
|
2974
3234
|
context.error
|
|
2975
3235
|
] }) : context.renderText(children) });
|
|
2976
3236
|
}
|
|
@@ -2983,8 +3243,8 @@ function KeepItemCardTitle({ as = "h3", children, ...props }) {
|
|
|
2983
3243
|
);
|
|
2984
3244
|
}
|
|
2985
3245
|
function KeepMediaPlaceholderIcon() {
|
|
2986
|
-
return /* @__PURE__ */
|
|
2987
|
-
/* @__PURE__ */
|
|
3246
|
+
return /* @__PURE__ */ jsxs10("svg", { "data-media-fallback-icon": "true", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
|
|
3247
|
+
/* @__PURE__ */ jsx13(
|
|
2988
3248
|
"path",
|
|
2989
3249
|
{
|
|
2990
3250
|
d: "M4 5.5A1.5 1.5 0 0 1 5.5 4h13A1.5 1.5 0 0 1 20 5.5v13a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 18.5v-13Z",
|
|
@@ -2992,19 +3252,19 @@ function KeepMediaPlaceholderIcon() {
|
|
|
2992
3252
|
stroke: "currentColor"
|
|
2993
3253
|
}
|
|
2994
3254
|
),
|
|
2995
|
-
/* @__PURE__ */
|
|
2996
|
-
/* @__PURE__ */
|
|
3255
|
+
/* @__PURE__ */ jsx13("circle", { cx: "9", cy: "9", r: "1.5", fill: "currentColor" }),
|
|
3256
|
+
/* @__PURE__ */ jsx13("path", { d: "m5.5 18 4.5-4.5 3 3 2-2L19 18", fill: "none", stroke: "currentColor" })
|
|
2997
3257
|
] });
|
|
2998
3258
|
}
|
|
2999
3259
|
function KeepItemCardTags({ children, ...props }) {
|
|
3000
3260
|
const context = useKeepItemCardCompound("Tags");
|
|
3001
3261
|
if (children === void 0 && context.renderedTags) return context.renderedTags;
|
|
3002
3262
|
if (children === void 0 && context.tags.length === 0) return null;
|
|
3003
|
-
return /* @__PURE__ */
|
|
3263
|
+
return /* @__PURE__ */ jsx13("ul", { ...props, "aria-label": props["aria-label"] ?? context.tagsLabel, "data-keep-card-part": "tags", children: children ?? context.tags.map((tag) => /* @__PURE__ */ jsx13("li", { children: tag }, tag)) });
|
|
3004
3264
|
}
|
|
3005
3265
|
function KeepItemCardActions({ children, ...props }) {
|
|
3006
3266
|
const context = useKeepItemCardCompound("Actions");
|
|
3007
|
-
return /* @__PURE__ */
|
|
3267
|
+
return /* @__PURE__ */ jsx13("div", { ...props, "data-keep-card-part": "actions", children: children ?? context.actions });
|
|
3008
3268
|
}
|
|
3009
3269
|
var KeepItemCard = Object.assign(KeepItemCardRoot, {
|
|
3010
3270
|
Media: KeepItemCardMedia,
|
|
@@ -3014,12 +3274,12 @@ var KeepItemCard = Object.assign(KeepItemCardRoot, {
|
|
|
3014
3274
|
Actions: KeepItemCardActions
|
|
3015
3275
|
});
|
|
3016
3276
|
function KeepItemCardSkeleton({ layout = "list", ...props }) {
|
|
3017
|
-
return /* @__PURE__ */
|
|
3018
|
-
/* @__PURE__ */
|
|
3019
|
-
/* @__PURE__ */
|
|
3020
|
-
/* @__PURE__ */
|
|
3021
|
-
/* @__PURE__ */
|
|
3022
|
-
/* @__PURE__ */
|
|
3277
|
+
return /* @__PURE__ */ jsxs10("article", { ...props, "aria-hidden": "true", "data-keepkit": "card-skeleton", "data-layout": layout, "data-state": "loading", children: [
|
|
3278
|
+
/* @__PURE__ */ jsx13("span", { "data-skeleton-part": "media" }),
|
|
3279
|
+
/* @__PURE__ */ jsx13("span", { "data-skeleton-part": "title" }),
|
|
3280
|
+
/* @__PURE__ */ jsx13("span", { "data-skeleton-part": "meta" }),
|
|
3281
|
+
/* @__PURE__ */ jsx13("span", { "data-skeleton-part": "tag" }),
|
|
3282
|
+
/* @__PURE__ */ jsx13("span", { "data-skeleton-part": "tag" })
|
|
3023
3283
|
] });
|
|
3024
3284
|
}
|
|
3025
3285
|
function formatSavedAt(timestamp) {
|
|
@@ -3029,11 +3289,47 @@ function getErrorMessage2(error, fallback) {
|
|
|
3029
3289
|
return error instanceof Error ? error.message : fallback;
|
|
3030
3290
|
}
|
|
3031
3291
|
|
|
3292
|
+
// src/features/status/KeepEmptyState.tsx
|
|
3293
|
+
import { isValidElement as isValidElement5 } from "react";
|
|
3294
|
+
import { Fragment as Fragment8, jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3295
|
+
function KeepEmptyState({
|
|
3296
|
+
title,
|
|
3297
|
+
description,
|
|
3298
|
+
action,
|
|
3299
|
+
children,
|
|
3300
|
+
variant,
|
|
3301
|
+
onClearFilters,
|
|
3302
|
+
asChild = false,
|
|
3303
|
+
className,
|
|
3304
|
+
...rootProps
|
|
3305
|
+
}) {
|
|
3306
|
+
const resolvedVariant = variant ?? "empty-storage";
|
|
3307
|
+
const defaultTitle = useUiLabel(resolvedVariant === "empty-filtered" ? "noFilteredItems" : "noItems");
|
|
3308
|
+
const defaultDescription = useUiLabel(
|
|
3309
|
+
resolvedVariant === "empty-filtered" ? "noFilteredItemsDescription" : "emptyStorageDescription"
|
|
3310
|
+
);
|
|
3311
|
+
const clearLabel = useUiLabel("clearFilters");
|
|
3312
|
+
const contentChildren = asChild && isValidElement5(children) ? void 0 : children;
|
|
3313
|
+
const body = contentChildren ?? /* @__PURE__ */ jsxs11(Fragment8, { children: [
|
|
3314
|
+
/* @__PURE__ */ jsx14("h2", { children: title ?? defaultTitle }),
|
|
3315
|
+
description ?? /* @__PURE__ */ jsx14("p", { children: defaultDescription }),
|
|
3316
|
+
action ?? (resolvedVariant === "empty-filtered" && onClearFilters ? /* @__PURE__ */ jsx14("button", { type: "button", "data-keep-action": "clear-filters", onClick: onClearFilters, children: clearLabel }) : null)
|
|
3317
|
+
] });
|
|
3318
|
+
return renderRoot(
|
|
3319
|
+
asChild,
|
|
3320
|
+
children,
|
|
3321
|
+
{ ...rootProps, className, "data-keepkit": "empty-state", "data-state": variant ?? "empty" },
|
|
3322
|
+
body,
|
|
3323
|
+
"KeepEmptyState"
|
|
3324
|
+
);
|
|
3325
|
+
}
|
|
3326
|
+
|
|
3032
3327
|
// src/features/collection/hooks/useKeepListView.ts
|
|
3033
3328
|
import { useKeepList as useKeepList4 } from "@keepkit/core/react";
|
|
3034
3329
|
function useKeepListView(query) {
|
|
3035
3330
|
return {
|
|
3036
3331
|
state: useKeepList4(query),
|
|
3332
|
+
allState: useKeepList4({}),
|
|
3037
3333
|
labels: {
|
|
3038
3334
|
loading: useUiLabel("loadingItems"),
|
|
3039
3335
|
empty: useUiLabel("noItems"),
|
|
@@ -3108,12 +3404,12 @@ function useRovingTabIndex() {
|
|
|
3108
3404
|
}
|
|
3109
3405
|
|
|
3110
3406
|
// src/features/collection/KeepList.tsx
|
|
3111
|
-
import { Fragment as
|
|
3407
|
+
import { Fragment as Fragment9, jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3112
3408
|
function KeepList(props) {
|
|
3113
3409
|
const { fallback, onBoundaryError, boundaryResetKey, ...listProps } = props;
|
|
3114
|
-
const content = /* @__PURE__ */
|
|
3410
|
+
const content = /* @__PURE__ */ jsx15(KeepListContent, { ...listProps });
|
|
3115
3411
|
if (fallback === void 0 && onBoundaryError === void 0) return content;
|
|
3116
|
-
return /* @__PURE__ */
|
|
3412
|
+
return /* @__PURE__ */ jsx15(KeepErrorBoundary, { fallback, onError: onBoundaryError, resetKey: boundaryResetKey, children: content });
|
|
3117
3413
|
}
|
|
3118
3414
|
function KeepListContent({
|
|
3119
3415
|
query,
|
|
@@ -3124,6 +3420,7 @@ function KeepListContent({
|
|
|
3124
3420
|
loadingCount = 6,
|
|
3125
3421
|
empty,
|
|
3126
3422
|
error: errorContent,
|
|
3423
|
+
onClearFilters,
|
|
3127
3424
|
itemCardProps,
|
|
3128
3425
|
layout = "list",
|
|
3129
3426
|
asChild = false,
|
|
@@ -3141,14 +3438,17 @@ function KeepListContent({
|
|
|
3141
3438
|
loading: renderLoading !== void 0 ? renderLoading : loading,
|
|
3142
3439
|
loadingCount,
|
|
3143
3440
|
loadingLabel: view.labels.loading,
|
|
3144
|
-
empty
|
|
3441
|
+
empty,
|
|
3145
3442
|
error: errorContent ?? view.labels.error,
|
|
3443
|
+
onClearFilters,
|
|
3444
|
+
allItemCount: view.allState.totalCount,
|
|
3445
|
+
query,
|
|
3146
3446
|
itemCardProps,
|
|
3147
3447
|
layout
|
|
3148
3448
|
});
|
|
3149
3449
|
return renderRoot(
|
|
3150
3450
|
asChild,
|
|
3151
|
-
asChild &&
|
|
3451
|
+
asChild && isValidElement6(children) ? children : void 0,
|
|
3152
3452
|
{
|
|
3153
3453
|
...rootProps,
|
|
3154
3454
|
className,
|
|
@@ -3169,7 +3469,7 @@ function KeepListContent({
|
|
|
3169
3469
|
if (!event.defaultPrevented) roving.onFocusCapture(event);
|
|
3170
3470
|
}
|
|
3171
3471
|
},
|
|
3172
|
-
/* @__PURE__ */
|
|
3472
|
+
/* @__PURE__ */ jsx15(KeepSearchQueryProvider, { query: query?.search?.query, children: body }),
|
|
3173
3473
|
"KeepList"
|
|
3174
3474
|
);
|
|
3175
3475
|
}
|
|
@@ -3184,29 +3484,44 @@ function getListBody(state, options) {
|
|
|
3184
3484
|
if (state.isLoading && !state.isHydrated) {
|
|
3185
3485
|
if (options.loading !== void 0) return resolveContent(options.loading, state);
|
|
3186
3486
|
const count = Number.isFinite(options.loadingCount) ? Math.max(0, Math.floor(options.loadingCount)) : 6;
|
|
3187
|
-
return /* @__PURE__ */
|
|
3188
|
-
/* @__PURE__ */
|
|
3189
|
-
/* @__PURE__ */
|
|
3487
|
+
return /* @__PURE__ */ jsxs12(Fragment9, { children: [
|
|
3488
|
+
/* @__PURE__ */ jsx15("span", { role: "status", "data-keepkit": "loading-label", children: options.loadingLabel }),
|
|
3489
|
+
/* @__PURE__ */ jsx15("ul", { "data-keepkit": "skeleton-list", "data-layout": options.layout, children: Array.from({ length: count }, (_, index) => (
|
|
3190
3490
|
// biome-ignore lint/suspicious/noArrayIndexKey: Static loading placeholders never reorder.
|
|
3191
|
-
/* @__PURE__ */
|
|
3491
|
+
/* @__PURE__ */ jsx15("li", { children: /* @__PURE__ */ jsx15(KeepItemCardSkeleton, { layout: options.layout }) }, index)
|
|
3192
3492
|
)) })
|
|
3193
3493
|
] });
|
|
3194
3494
|
}
|
|
3195
|
-
if (state.isHydrated && state.items.length === 0)
|
|
3495
|
+
if (state.isHydrated && state.items.length === 0) {
|
|
3496
|
+
if (options.empty !== void 0) return resolveContent(options.empty, state);
|
|
3497
|
+
return /* @__PURE__ */ jsx15(
|
|
3498
|
+
KeepEmptyState,
|
|
3499
|
+
{
|
|
3500
|
+
variant: options.allItemCount > 0 && hasActiveQueryFilters(options.query) ? "empty-filtered" : "empty-storage",
|
|
3501
|
+
onClearFilters: options.onClearFilters
|
|
3502
|
+
}
|
|
3503
|
+
);
|
|
3504
|
+
}
|
|
3196
3505
|
if (typeof options.children === "function") return options.children(state);
|
|
3197
|
-
if (options.children !== void 0 && !
|
|
3198
|
-
return /* @__PURE__ */
|
|
3199
|
-
(item) => options.renderItem ? options.renderItem(item, state) : /* @__PURE__ */
|
|
3506
|
+
if (options.children !== void 0 && !isValidElement6(options.children)) return options.children;
|
|
3507
|
+
return /* @__PURE__ */ jsx15("ul", { "data-layout": options.layout, children: state.items.map(
|
|
3508
|
+
(item) => options.renderItem ? options.renderItem(item, state) : /* @__PURE__ */ jsx15("li", { children: /* @__PURE__ */ jsx15(KeepItemCard, { item, ...options.itemCardProps }) }, item.id)
|
|
3200
3509
|
) });
|
|
3201
3510
|
}
|
|
3511
|
+
function hasActiveQueryFilters(query) {
|
|
3512
|
+
if (!query) return false;
|
|
3513
|
+
return Boolean(
|
|
3514
|
+
query.search?.query?.trim() || query.tags?.some((tag) => tag.trim()) || query.targetType || query.savedBetween || query.filter
|
|
3515
|
+
);
|
|
3516
|
+
}
|
|
3202
3517
|
|
|
3203
3518
|
// src/features/collection/KeepCollection.tsx
|
|
3204
|
-
import { jsx as
|
|
3519
|
+
import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3205
3520
|
function KeepCollection(props) {
|
|
3206
3521
|
const { fallback, onBoundaryError, boundaryResetKey, ...collectionProps } = props;
|
|
3207
|
-
const content = /* @__PURE__ */
|
|
3522
|
+
const content = /* @__PURE__ */ jsx16(KeepCollectionContent, { ...collectionProps });
|
|
3208
3523
|
if (fallback === void 0 && onBoundaryError === void 0) return content;
|
|
3209
|
-
return /* @__PURE__ */
|
|
3524
|
+
return /* @__PURE__ */ jsx16(KeepErrorBoundary2, { fallback, onError: onBoundaryError, resetKey: boundaryResetKey, children: content });
|
|
3210
3525
|
}
|
|
3211
3526
|
function KeepCollectionContent({
|
|
3212
3527
|
query = {},
|
|
@@ -3220,13 +3535,14 @@ function KeepCollectionContent({
|
|
|
3220
3535
|
loading,
|
|
3221
3536
|
renderLoading,
|
|
3222
3537
|
loadingCount,
|
|
3538
|
+
activeFilters,
|
|
3223
3539
|
empty,
|
|
3224
3540
|
error,
|
|
3225
3541
|
className,
|
|
3226
3542
|
...rootProps
|
|
3227
3543
|
}) {
|
|
3228
3544
|
const view = useKeepCollection({ query, pageSize, urlSync, urlAdapter, features });
|
|
3229
|
-
return /* @__PURE__ */
|
|
3545
|
+
return /* @__PURE__ */ jsxs13(
|
|
3230
3546
|
"section",
|
|
3231
3547
|
{
|
|
3232
3548
|
...rootProps,
|
|
@@ -3237,12 +3553,22 @@ function KeepCollectionContent({
|
|
|
3237
3553
|
"data-state": getCollectionState(view.list),
|
|
3238
3554
|
"data-loading": view.list.isLoading || view.list.isMutating ? "true" : void 0,
|
|
3239
3555
|
children: [
|
|
3240
|
-
/* @__PURE__ */
|
|
3241
|
-
view.enabled.search ? /* @__PURE__ */
|
|
3242
|
-
view.enabled.sort ? /* @__PURE__ */
|
|
3243
|
-
view.enabled.tagFilter ? /* @__PURE__ */
|
|
3556
|
+
/* @__PURE__ */ jsxs13("div", { children: [
|
|
3557
|
+
view.enabled.search ? /* @__PURE__ */ jsx16(KeepSearchInput, { value: view.searchValue, onValueChange: view.setSearchValue }) : null,
|
|
3558
|
+
view.enabled.sort ? /* @__PURE__ */ jsx16(KeepSortSelect, { value: view.sortValue, onValueChange: view.setSortValue }) : null,
|
|
3559
|
+
view.enabled.tagFilter ? /* @__PURE__ */ jsx16(KeepTagFilter, { query, value: view.activeTags[0], onValueChange: view.setTag }) : null
|
|
3244
3560
|
] }),
|
|
3245
|
-
/* @__PURE__ */
|
|
3561
|
+
activeFilters === void 0 ? /* @__PURE__ */ jsx16(
|
|
3562
|
+
KeepActiveFiltersSummary,
|
|
3563
|
+
{
|
|
3564
|
+
search: view.searchValue,
|
|
3565
|
+
tags: view.activeTags,
|
|
3566
|
+
onSearchChange: view.setSearchValue,
|
|
3567
|
+
onTagChange: view.removeTag,
|
|
3568
|
+
onClear: view.clearFilters
|
|
3569
|
+
}
|
|
3570
|
+
) : resolveContent(activeFilters, view.list),
|
|
3571
|
+
/* @__PURE__ */ jsx16(
|
|
3246
3572
|
KeepList,
|
|
3247
3573
|
{
|
|
3248
3574
|
query: view.resolvedQuery,
|
|
@@ -3252,11 +3578,12 @@ function KeepCollectionContent({
|
|
|
3252
3578
|
loading,
|
|
3253
3579
|
renderLoading,
|
|
3254
3580
|
loadingCount,
|
|
3255
|
-
|
|
3581
|
+
onClearFilters: view.clearFilters,
|
|
3582
|
+
empty: view.list.totalCount === 0 && view.allState.totalCount > 0 ? void 0 : empty,
|
|
3256
3583
|
error
|
|
3257
3584
|
}
|
|
3258
3585
|
),
|
|
3259
|
-
view.enabled.pagination ? /* @__PURE__ */
|
|
3586
|
+
view.enabled.pagination ? /* @__PURE__ */ jsx16(
|
|
3260
3587
|
KeepPagination,
|
|
3261
3588
|
{
|
|
3262
3589
|
totalCount: view.list.totalCount,
|
|
@@ -3265,7 +3592,7 @@ function KeepCollectionContent({
|
|
|
3265
3592
|
onPageChange: view.setPage
|
|
3266
3593
|
}
|
|
3267
3594
|
) : null,
|
|
3268
|
-
view.enabled.bulkActions ? /* @__PURE__ */
|
|
3595
|
+
view.enabled.bulkActions ? /* @__PURE__ */ jsx16(KeepBulkActions, { query: view.resolvedQuery }) : null
|
|
3269
3596
|
]
|
|
3270
3597
|
}
|
|
3271
3598
|
);
|
|
@@ -3278,12 +3605,12 @@ function getCollectionState(list) {
|
|
|
3278
3605
|
}
|
|
3279
3606
|
|
|
3280
3607
|
// src/features/collection/KeepLayout.tsx
|
|
3281
|
-
import { jsx as
|
|
3608
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
3282
3609
|
function KeepLayout({ layout = "list", children, onKeyDown, onFocusCapture, ...props }) {
|
|
3283
3610
|
const roving = useRovingTabIndex();
|
|
3284
3611
|
return (
|
|
3285
3612
|
// biome-ignore lint/a11y/noStaticElementInteractions: The group manages keyboard focus for descendant cards.
|
|
3286
|
-
/* @__PURE__ */
|
|
3613
|
+
/* @__PURE__ */ jsx17(
|
|
3287
3614
|
"div",
|
|
3288
3615
|
{
|
|
3289
3616
|
...props,
|
|
@@ -3308,7 +3635,7 @@ function KeepLayout({ layout = "list", children, onKeyDown, onFocusCapture, ...p
|
|
|
3308
3635
|
|
|
3309
3636
|
// src/features/collection/KeepReorderableList.tsx
|
|
3310
3637
|
import { useState as useState9 } from "react";
|
|
3311
|
-
import { jsx as
|
|
3638
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
3312
3639
|
function KeepReorderableList({
|
|
3313
3640
|
items,
|
|
3314
3641
|
onReorder,
|
|
@@ -3342,7 +3669,7 @@ function KeepReorderableList({
|
|
|
3342
3669
|
if (next[index] === id) return;
|
|
3343
3670
|
commit(next);
|
|
3344
3671
|
}
|
|
3345
|
-
return /* @__PURE__ */
|
|
3672
|
+
return /* @__PURE__ */ jsx18("ul", { ...props, "data-keepkit": "reorderable-list", children: items.map((item, index) => {
|
|
3346
3673
|
const moveUp = () => move(index, index - 1);
|
|
3347
3674
|
const moveDown = () => move(index, index + 1);
|
|
3348
3675
|
const onHandleKeyDown = (event) => {
|
|
@@ -3377,7 +3704,7 @@ function KeepReorderableList({
|
|
|
3377
3704
|
onKeyDown: onHandleKeyDown
|
|
3378
3705
|
}
|
|
3379
3706
|
};
|
|
3380
|
-
return /* @__PURE__ */
|
|
3707
|
+
return /* @__PURE__ */ jsx18(
|
|
3381
3708
|
"li",
|
|
3382
3709
|
{
|
|
3383
3710
|
"data-reorder-index": index,
|
|
@@ -3409,7 +3736,23 @@ function KeepReorderableList({
|
|
|
3409
3736
|
}
|
|
3410
3737
|
|
|
3411
3738
|
// src/features/editor/KeepNoteEditor.tsx
|
|
3412
|
-
import { isValidElement as
|
|
3739
|
+
import { isValidElement as isValidElement7 } from "react";
|
|
3740
|
+
|
|
3741
|
+
// src/features/navigation/KeepShortcutHint.tsx
|
|
3742
|
+
import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3743
|
+
function KeepShortcutHint({ shortcut, separator = "+", ...props }) {
|
|
3744
|
+
const keys = typeof shortcut === "string" ? shortcut.split("+") : [...shortcut];
|
|
3745
|
+
const occurrences = /* @__PURE__ */ new Map();
|
|
3746
|
+
const keyedKeys = keys.map((key) => {
|
|
3747
|
+
const occurrence = occurrences.get(key) ?? 0;
|
|
3748
|
+
occurrences.set(key, occurrence + 1);
|
|
3749
|
+
return { id: `${key}-${occurrence}`, value: key };
|
|
3750
|
+
});
|
|
3751
|
+
return /* @__PURE__ */ jsx19("span", { ...props, "data-keepkit": "shortcut-hint", "aria-hidden": props["aria-hidden"] ?? true, children: keyedKeys.map((key, index) => /* @__PURE__ */ jsxs14("span", { children: [
|
|
3752
|
+
index > 0 ? /* @__PURE__ */ jsx19("span", { "data-shortcut-separator": "true", children: separator }) : null,
|
|
3753
|
+
/* @__PURE__ */ jsx19("kbd", { children: key.value.trim() })
|
|
3754
|
+
] }, key.id)) });
|
|
3755
|
+
}
|
|
3413
3756
|
|
|
3414
3757
|
// src/features/editor/hooks/useKeepNoteEditor.ts
|
|
3415
3758
|
import { useKeepItem as useKeepItem3 } from "@keepkit/core/react";
|
|
@@ -3468,13 +3811,14 @@ function useKeepNoteEditor({ item, debounceMs, onSaved, onSaveError }) {
|
|
|
3468
3811
|
}
|
|
3469
3812
|
|
|
3470
3813
|
// src/features/editor/KeepNoteEditor.tsx
|
|
3471
|
-
import { Fragment as
|
|
3814
|
+
import { Fragment as Fragment10, jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3472
3815
|
function KeepNoteEditor({
|
|
3473
3816
|
item,
|
|
3474
3817
|
label,
|
|
3475
3818
|
saveLabel,
|
|
3476
3819
|
placeholder,
|
|
3477
3820
|
debounceMs = 300,
|
|
3821
|
+
showShortcutHint = false,
|
|
3478
3822
|
onSaved,
|
|
3479
3823
|
onSaveError,
|
|
3480
3824
|
render,
|
|
@@ -3485,11 +3829,11 @@ function KeepNoteEditor({
|
|
|
3485
3829
|
}) {
|
|
3486
3830
|
const view = useKeepNoteEditor({ item, debounceMs, onSaved, onSaveError });
|
|
3487
3831
|
const { error, isDirty, isSaving, note, setNote } = view.state;
|
|
3488
|
-
const contentChildren = asChild &&
|
|
3489
|
-
const body = render ? render(view.state) : typeof contentChildren === "function" ? contentChildren(view.state) : contentChildren ?? /* @__PURE__ */
|
|
3490
|
-
/* @__PURE__ */
|
|
3832
|
+
const contentChildren = asChild && isValidElement7(children) ? void 0 : children;
|
|
3833
|
+
const body = render ? render(view.state) : typeof contentChildren === "function" ? contentChildren(view.state) : contentChildren ?? /* @__PURE__ */ jsxs15(Fragment10, { children: [
|
|
3834
|
+
/* @__PURE__ */ jsxs15("label", { children: [
|
|
3491
3835
|
label ?? view.labels.note,
|
|
3492
|
-
/* @__PURE__ */
|
|
3836
|
+
/* @__PURE__ */ jsx20(
|
|
3493
3837
|
"textarea",
|
|
3494
3838
|
{
|
|
3495
3839
|
"data-keep-action": "edit-note",
|
|
@@ -3501,10 +3845,13 @@ function KeepNoteEditor({
|
|
|
3501
3845
|
}
|
|
3502
3846
|
)
|
|
3503
3847
|
] }),
|
|
3504
|
-
/* @__PURE__ */
|
|
3848
|
+
/* @__PURE__ */ jsxs15("button", { type: "submit", "data-keep-action": "save-note", disabled: isSaving, "aria-busy": isSaving, children: [
|
|
3849
|
+
saveLabel ?? view.labels.save,
|
|
3850
|
+
showShortcutHint ? /* @__PURE__ */ jsx20(KeepShortcutHint, { shortcut: "Ctrl+Enter" }) : null
|
|
3851
|
+
] })
|
|
3505
3852
|
] });
|
|
3506
3853
|
if (!asChild) {
|
|
3507
|
-
return /* @__PURE__ */
|
|
3854
|
+
return /* @__PURE__ */ jsxs15(
|
|
3508
3855
|
"form",
|
|
3509
3856
|
{
|
|
3510
3857
|
...formProps,
|
|
@@ -3517,14 +3864,14 @@ function KeepNoteEditor({
|
|
|
3517
3864
|
"data-disabled": isSaving ? "true" : void 0,
|
|
3518
3865
|
children: [
|
|
3519
3866
|
body,
|
|
3520
|
-
error ? /* @__PURE__ */
|
|
3867
|
+
error ? /* @__PURE__ */ jsx20("p", { role: "alert", children: getErrorMessage3(error, view.labels.error) }) : null
|
|
3521
3868
|
]
|
|
3522
3869
|
}
|
|
3523
3870
|
);
|
|
3524
3871
|
}
|
|
3525
3872
|
return renderRoot(
|
|
3526
3873
|
true,
|
|
3527
|
-
|
|
3874
|
+
isValidElement7(children) ? children : void 0,
|
|
3528
3875
|
{
|
|
3529
3876
|
...formProps,
|
|
3530
3877
|
className,
|
|
@@ -3597,7 +3944,7 @@ function useKeepTagEditor({ item, onSaved, onSaveError }) {
|
|
|
3597
3944
|
}
|
|
3598
3945
|
|
|
3599
3946
|
// src/features/editor/KeepTagEditor.tsx
|
|
3600
|
-
import { Fragment as
|
|
3947
|
+
import { Fragment as Fragment11, jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3601
3948
|
function KeepTagEditor({
|
|
3602
3949
|
item,
|
|
3603
3950
|
availableTags = [],
|
|
@@ -3608,10 +3955,10 @@ function KeepTagEditor({
|
|
|
3608
3955
|
}) {
|
|
3609
3956
|
const view = useKeepTagEditor({ item, onSaved, onSaveError });
|
|
3610
3957
|
const { isSaving, tags } = view.state;
|
|
3611
|
-
const body = render ? render(view.state) : /* @__PURE__ */
|
|
3612
|
-
/* @__PURE__ */
|
|
3958
|
+
const body = render ? render(view.state) : /* @__PURE__ */ jsxs16(Fragment11, { children: [
|
|
3959
|
+
/* @__PURE__ */ jsxs16("label", { children: [
|
|
3613
3960
|
view.labels.tags,
|
|
3614
|
-
/* @__PURE__ */
|
|
3961
|
+
/* @__PURE__ */ jsx21(
|
|
3615
3962
|
"input",
|
|
3616
3963
|
{
|
|
3617
3964
|
"data-keep-action": "edit-tags",
|
|
@@ -3622,14 +3969,14 @@ function KeepTagEditor({
|
|
|
3622
3969
|
}
|
|
3623
3970
|
)
|
|
3624
3971
|
] }),
|
|
3625
|
-
availableTags.length > 0 ? /* @__PURE__ */
|
|
3626
|
-
/* @__PURE__ */
|
|
3972
|
+
availableTags.length > 0 ? /* @__PURE__ */ jsx21("datalist", { id: `keep-tags-${item.id}`, children: availableTags.map((tag) => /* @__PURE__ */ jsx21("option", { value: tag }, tag)) }) : null,
|
|
3973
|
+
/* @__PURE__ */ jsx21("ul", { "aria-label": view.labels.tags, children: tags.map((tag) => /* @__PURE__ */ jsxs16("li", { children: [
|
|
3627
3974
|
tag,
|
|
3628
|
-
/* @__PURE__ */
|
|
3975
|
+
/* @__PURE__ */ jsx21("button", { type: "button", "data-keep-action": "remove-tag", onClick: () => view.removeTag(tag), children: view.labels.remove })
|
|
3629
3976
|
] }, tag)) }),
|
|
3630
|
-
/* @__PURE__ */
|
|
3977
|
+
/* @__PURE__ */ jsx21("button", { type: "submit", "data-keep-action": "apply-tags", disabled: isSaving, "aria-busy": isSaving, children: view.labels.apply })
|
|
3631
3978
|
] });
|
|
3632
|
-
return /* @__PURE__ */
|
|
3979
|
+
return /* @__PURE__ */ jsxs16(
|
|
3633
3980
|
"form",
|
|
3634
3981
|
{
|
|
3635
3982
|
...props,
|
|
@@ -3641,7 +3988,7 @@ function KeepTagEditor({
|
|
|
3641
3988
|
"data-disabled": isSaving ? "true" : void 0,
|
|
3642
3989
|
children: [
|
|
3643
3990
|
body,
|
|
3644
|
-
view.error ? /* @__PURE__ */
|
|
3991
|
+
view.error ? /* @__PURE__ */ jsx21("p", { role: "alert", children: getErrorMessage4(view.error, view.labels.error) }) : null
|
|
3645
3992
|
]
|
|
3646
3993
|
}
|
|
3647
3994
|
);
|
|
@@ -3707,7 +4054,7 @@ function isEditableTarget(target) {
|
|
|
3707
4054
|
}
|
|
3708
4055
|
|
|
3709
4056
|
// src/features/navigation/KeepTourBar.tsx
|
|
3710
|
-
import { Fragment as
|
|
4057
|
+
import { Fragment as Fragment12, jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3711
4058
|
function KeepTourBar({
|
|
3712
4059
|
navigation: providedNavigation,
|
|
3713
4060
|
currentId,
|
|
@@ -3723,9 +4070,12 @@ function KeepTourBar({
|
|
|
3723
4070
|
nextLabel,
|
|
3724
4071
|
backLabel,
|
|
3725
4072
|
keyboardShortcuts = false,
|
|
4073
|
+
showShortcutHint = false,
|
|
3726
4074
|
shortcutOptions,
|
|
3727
4075
|
progress,
|
|
3728
4076
|
getItemTitle = (item) => getMetaTitle(item.meta) ?? item.id,
|
|
4077
|
+
children,
|
|
4078
|
+
asChild = false,
|
|
3729
4079
|
...props
|
|
3730
4080
|
}) {
|
|
3731
4081
|
const ownNavigation = useKeepNavigator({ currentId, initialIndex });
|
|
@@ -3746,16 +4096,17 @@ function KeepTourBar({
|
|
|
3746
4096
|
return resolvedPrev();
|
|
3747
4097
|
}
|
|
3748
4098
|
});
|
|
3749
|
-
|
|
3750
|
-
showProgress ? /* @__PURE__ */
|
|
3751
|
-
/* @__PURE__ */
|
|
4099
|
+
const body = /* @__PURE__ */ jsxs17(Fragment12, { children: [
|
|
4100
|
+
showProgress ? /* @__PURE__ */ jsx22("span", { "data-keepkit": "tour-progress", "aria-live": "polite", children: progress ?? `${navigation.currentPosition ?? 0} / ${navigation.items.length}` }) : null,
|
|
4101
|
+
/* @__PURE__ */ jsx22(
|
|
3752
4102
|
TourAction,
|
|
3753
4103
|
{
|
|
3754
4104
|
href: prevHref,
|
|
3755
4105
|
disabled: !navigation.hasPrev,
|
|
3756
4106
|
onClick: prevHref ? onPrev : resolvedPrev,
|
|
3757
4107
|
"data-keep-action": "tour-prev",
|
|
3758
|
-
|
|
4108
|
+
shortcut: showShortcutHint ? shortcutOptions?.prevKeys?.[0] ?? "K" : void 0,
|
|
4109
|
+
preview: navigation.prevItem ? /* @__PURE__ */ jsxs17(Fragment12, { children: [
|
|
3759
4110
|
previousLabel,
|
|
3760
4111
|
": ",
|
|
3761
4112
|
getItemTitle(navigation.prevItem)
|
|
@@ -3763,14 +4114,15 @@ function KeepTourBar({
|
|
|
3763
4114
|
children: previousLabel
|
|
3764
4115
|
}
|
|
3765
4116
|
),
|
|
3766
|
-
/* @__PURE__ */
|
|
4117
|
+
/* @__PURE__ */ jsx22(
|
|
3767
4118
|
TourAction,
|
|
3768
4119
|
{
|
|
3769
4120
|
href: nextHref,
|
|
3770
4121
|
disabled: !navigation.hasNext,
|
|
3771
4122
|
onClick: nextHref ? onNext : resolvedNext,
|
|
3772
4123
|
"data-keep-action": "tour-next",
|
|
3773
|
-
|
|
4124
|
+
shortcut: showShortcutHint ? shortcutOptions?.nextKeys?.[0] ?? "J" : void 0,
|
|
4125
|
+
preview: navigation.nextItem ? /* @__PURE__ */ jsxs17(Fragment12, { children: [
|
|
3774
4126
|
nextItemLabel,
|
|
3775
4127
|
": ",
|
|
3776
4128
|
getItemTitle(navigation.nextItem)
|
|
@@ -3778,17 +4130,25 @@ function KeepTourBar({
|
|
|
3778
4130
|
children: nextItemLabel
|
|
3779
4131
|
}
|
|
3780
4132
|
),
|
|
3781
|
-
backHref || onBack ? /* @__PURE__ */
|
|
4133
|
+
backHref || onBack ? /* @__PURE__ */ jsx22(TourAction, { href: backHref, onClick: onBack, "data-keep-action": "tour-back", children: listLabel }) : null
|
|
3782
4134
|
] });
|
|
4135
|
+
return renderRoot(
|
|
4136
|
+
asChild,
|
|
4137
|
+
children,
|
|
4138
|
+
{ ...props, "data-keepkit": "tour-bar", "aria-label": props["aria-label"] ?? labels.pagination },
|
|
4139
|
+
body,
|
|
4140
|
+
"KeepTourBar"
|
|
4141
|
+
);
|
|
3783
4142
|
}
|
|
3784
|
-
function TourAction({ href, disabled = false, onClick, children, preview, ...props }) {
|
|
4143
|
+
function TourAction({ href, disabled = false, onClick, children, preview, shortcut, ...props }) {
|
|
3785
4144
|
const previewId = useId();
|
|
3786
|
-
const content = /* @__PURE__ */
|
|
3787
|
-
/* @__PURE__ */
|
|
3788
|
-
|
|
4145
|
+
const content = /* @__PURE__ */ jsxs17(Fragment12, { children: [
|
|
4146
|
+
/* @__PURE__ */ jsx22("span", { "data-tour-label": "true", children }),
|
|
4147
|
+
shortcut ? /* @__PURE__ */ jsx22(KeepShortcutHint, { shortcut }) : null,
|
|
4148
|
+
preview ? /* @__PURE__ */ jsx22("small", { id: previewId, "data-tour-preview": "true", children: preview }) : null
|
|
3789
4149
|
] });
|
|
3790
4150
|
if (href && !disabled) {
|
|
3791
|
-
return /* @__PURE__ */
|
|
4151
|
+
return /* @__PURE__ */ jsx22(
|
|
3792
4152
|
"a",
|
|
3793
4153
|
{
|
|
3794
4154
|
...props,
|
|
@@ -3800,7 +4160,7 @@ function TourAction({ href, disabled = false, onClick, children, preview, ...pro
|
|
|
3800
4160
|
}
|
|
3801
4161
|
);
|
|
3802
4162
|
}
|
|
3803
|
-
return /* @__PURE__ */
|
|
4163
|
+
return /* @__PURE__ */ jsx22(
|
|
3804
4164
|
"button",
|
|
3805
4165
|
{
|
|
3806
4166
|
...props,
|
|
@@ -3820,14 +4180,11 @@ function navigateTo(item, href) {
|
|
|
3820
4180
|
}
|
|
3821
4181
|
|
|
3822
4182
|
// src/features/status/status.tsx
|
|
3823
|
-
import { isValidElement as
|
|
4183
|
+
import { isValidElement as isValidElement8 } from "react";
|
|
3824
4184
|
|
|
3825
4185
|
// src/features/status/hooks/useStatusViews.ts
|
|
3826
4186
|
import { useKeepContext as useKeepContext4 } from "@keepkit/core/react";
|
|
3827
4187
|
import { useEffect as useEffect10, useRef as useRef6, useState as useState12 } from "react";
|
|
3828
|
-
function useKeepEmptyState() {
|
|
3829
|
-
return useUiLabel("noItems").replace(/\.$/, "");
|
|
3830
|
-
}
|
|
3831
4188
|
function useKeepStatus(status) {
|
|
3832
4189
|
const context = useKeepContext4();
|
|
3833
4190
|
const resolvedStatus = status ?? getDerivedStatus(context);
|
|
@@ -3874,31 +4231,7 @@ function getStatusLabelKey3(status) {
|
|
|
3874
4231
|
}
|
|
3875
4232
|
|
|
3876
4233
|
// src/features/status/status.tsx
|
|
3877
|
-
import {
|
|
3878
|
-
function KeepEmptyState({
|
|
3879
|
-
title,
|
|
3880
|
-
description,
|
|
3881
|
-
action,
|
|
3882
|
-
children,
|
|
3883
|
-
asChild = false,
|
|
3884
|
-
className,
|
|
3885
|
-
...rootProps
|
|
3886
|
-
}) {
|
|
3887
|
-
const defaultTitle = useKeepEmptyState();
|
|
3888
|
-
const contentChildren = asChild && isValidElement6(children) ? void 0 : children;
|
|
3889
|
-
const body = contentChildren ?? /* @__PURE__ */ jsxs15(Fragment11, { children: [
|
|
3890
|
-
/* @__PURE__ */ jsx20("h2", { children: title ?? defaultTitle }),
|
|
3891
|
-
description ? /* @__PURE__ */ jsx20("p", { children: description }) : null,
|
|
3892
|
-
action
|
|
3893
|
-
] });
|
|
3894
|
-
return renderRoot(
|
|
3895
|
-
asChild,
|
|
3896
|
-
children,
|
|
3897
|
-
{ ...rootProps, className, "data-keepkit": "empty-state", "data-state": "empty" },
|
|
3898
|
-
body,
|
|
3899
|
-
"KeepEmptyState"
|
|
3900
|
-
);
|
|
3901
|
-
}
|
|
4234
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
3902
4235
|
function KeepStatus({
|
|
3903
4236
|
status,
|
|
3904
4237
|
labels,
|
|
@@ -3909,12 +4242,12 @@ function KeepStatus({
|
|
|
3909
4242
|
...rootProps
|
|
3910
4243
|
}) {
|
|
3911
4244
|
const view = useKeepStatus(status);
|
|
3912
|
-
const contentChildren = asChild &&
|
|
4245
|
+
const contentChildren = asChild && isValidElement8(children) ? void 0 : children;
|
|
3913
4246
|
const body = render ? render(view.state) : typeof contentChildren === "function" ? contentChildren(view.state) : contentChildren ?? labels?.[view.state.status] ?? view.defaultLabel;
|
|
3914
4247
|
const role = rootProps.role ?? (view.state.status === "error" ? "alert" : "status");
|
|
3915
4248
|
return renderRoot(
|
|
3916
4249
|
asChild,
|
|
3917
|
-
|
|
4250
|
+
isValidElement8(children) ? children : void 0,
|
|
3918
4251
|
{
|
|
3919
4252
|
...rootProps,
|
|
3920
4253
|
className,
|
|
@@ -3930,7 +4263,7 @@ function KeepStatus({
|
|
|
3930
4263
|
}
|
|
3931
4264
|
function KeepAnnouncements({ messages, ...props }) {
|
|
3932
4265
|
const message = useKeepAnnouncements(messages);
|
|
3933
|
-
return /* @__PURE__ */
|
|
4266
|
+
return /* @__PURE__ */ jsx23(
|
|
3934
4267
|
"div",
|
|
3935
4268
|
{
|
|
3936
4269
|
...props,
|
|
@@ -4029,7 +4362,7 @@ function useKeepSyncRecoveryDialog(options) {
|
|
|
4029
4362
|
}
|
|
4030
4363
|
|
|
4031
4364
|
// src/features/sync/KeepSyncRecoveryDialog.tsx
|
|
4032
|
-
import { jsx as
|
|
4365
|
+
import { jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4033
4366
|
function KeepSyncRecoveryDialog({
|
|
4034
4367
|
open,
|
|
4035
4368
|
onOpenChange,
|
|
@@ -4044,7 +4377,7 @@ function KeepSyncRecoveryDialog({
|
|
|
4044
4377
|
}) {
|
|
4045
4378
|
const view = useKeepSyncRecoveryDialog({ open, onOpenChange, conflicts, onManualMerge });
|
|
4046
4379
|
if (!view.isOpen) return null;
|
|
4047
|
-
return /* @__PURE__ */
|
|
4380
|
+
return /* @__PURE__ */ jsxs18(
|
|
4048
4381
|
"section",
|
|
4049
4382
|
{
|
|
4050
4383
|
...props,
|
|
@@ -4058,17 +4391,17 @@ function KeepSyncRecoveryDialog({
|
|
|
4058
4391
|
"data-state": view.conflictList.length > 0 ? "conflict" : "error",
|
|
4059
4392
|
"data-loading": view.busyId !== void 0 ? "true" : void 0,
|
|
4060
4393
|
children: [
|
|
4061
|
-
/* @__PURE__ */
|
|
4062
|
-
/* @__PURE__ */
|
|
4063
|
-
/* @__PURE__ */
|
|
4394
|
+
/* @__PURE__ */ jsxs18("header", { children: [
|
|
4395
|
+
/* @__PURE__ */ jsx24("h2", { id: "keepkit-sync-recovery-title", children: title ?? view.labels.title }),
|
|
4396
|
+
/* @__PURE__ */ jsx24("button", { type: "button", "data-keep-action": "close-dialog", onClick: view.close, "aria-label": view.labels.close, children: view.labels.close })
|
|
4064
4397
|
] }),
|
|
4065
4398
|
children,
|
|
4066
|
-
view.conflictList.length > 0 ? /* @__PURE__ */
|
|
4067
|
-
/* @__PURE__ */
|
|
4068
|
-
view.conflictList.map((conflict) => /* @__PURE__ */
|
|
4069
|
-
/* @__PURE__ */
|
|
4070
|
-
/* @__PURE__ */
|
|
4071
|
-
/* @__PURE__ */
|
|
4399
|
+
view.conflictList.length > 0 ? /* @__PURE__ */ jsxs18("div", { children: [
|
|
4400
|
+
/* @__PURE__ */ jsx24("p", { children: view.labels.conflict }),
|
|
4401
|
+
view.conflictList.map((conflict) => /* @__PURE__ */ jsxs18("article", { "data-conflict-id": conflict.id, children: [
|
|
4402
|
+
/* @__PURE__ */ jsx24("h3", { children: getMetaTitle(conflict.operation.item?.meta) ?? conflict.id }),
|
|
4403
|
+
/* @__PURE__ */ jsxs18("div", { "data-conflict-preview": true, children: [
|
|
4404
|
+
/* @__PURE__ */ jsx24(
|
|
4072
4405
|
ConflictPreview,
|
|
4073
4406
|
{
|
|
4074
4407
|
item: conflict.operation.item,
|
|
@@ -4078,7 +4411,7 @@ function KeepSyncRecoveryDialog({
|
|
|
4078
4411
|
side: "local"
|
|
4079
4412
|
}
|
|
4080
4413
|
),
|
|
4081
|
-
/* @__PURE__ */
|
|
4414
|
+
/* @__PURE__ */ jsx24(
|
|
4082
4415
|
ConflictPreview,
|
|
4083
4416
|
{
|
|
4084
4417
|
item: conflict.remote,
|
|
@@ -4089,8 +4422,8 @@ function KeepSyncRecoveryDialog({
|
|
|
4089
4422
|
}
|
|
4090
4423
|
)
|
|
4091
4424
|
] }),
|
|
4092
|
-
/* @__PURE__ */
|
|
4093
|
-
/* @__PURE__ */
|
|
4425
|
+
/* @__PURE__ */ jsxs18("div", { children: [
|
|
4426
|
+
/* @__PURE__ */ jsx24(
|
|
4094
4427
|
"button",
|
|
4095
4428
|
{
|
|
4096
4429
|
type: "button",
|
|
@@ -4100,7 +4433,7 @@ function KeepSyncRecoveryDialog({
|
|
|
4100
4433
|
children: view.labels.keepLocal
|
|
4101
4434
|
}
|
|
4102
4435
|
),
|
|
4103
|
-
/* @__PURE__ */
|
|
4436
|
+
/* @__PURE__ */ jsx24(
|
|
4104
4437
|
"button",
|
|
4105
4438
|
{
|
|
4106
4439
|
type: "button",
|
|
@@ -4110,7 +4443,7 @@ function KeepSyncRecoveryDialog({
|
|
|
4110
4443
|
children: view.labels.useServer
|
|
4111
4444
|
}
|
|
4112
4445
|
),
|
|
4113
|
-
/* @__PURE__ */
|
|
4446
|
+
/* @__PURE__ */ jsx24(
|
|
4114
4447
|
"button",
|
|
4115
4448
|
{
|
|
4116
4449
|
type: "button",
|
|
@@ -4123,12 +4456,12 @@ function KeepSyncRecoveryDialog({
|
|
|
4123
4456
|
] })
|
|
4124
4457
|
] }, conflict.id))
|
|
4125
4458
|
] }) : null,
|
|
4126
|
-
view.showBackupRecovery ? /* @__PURE__ */
|
|
4127
|
-
/* @__PURE__ */
|
|
4128
|
-
/* @__PURE__ */
|
|
4129
|
-
backup ?? (showBackupControls ? /* @__PURE__ */
|
|
4459
|
+
view.showBackupRecovery ? /* @__PURE__ */ jsxs18("section", { "data-recovery": "backup", children: [
|
|
4460
|
+
/* @__PURE__ */ jsx24("h3", { children: view.labels.backupRecovery }),
|
|
4461
|
+
/* @__PURE__ */ jsx24("p", { children: view.labels.backupRecoveryDescription }),
|
|
4462
|
+
backup ?? (showBackupControls ? /* @__PURE__ */ jsx24(KeepBackup, {}) : null)
|
|
4130
4463
|
] }) : null,
|
|
4131
|
-
view.error ? /* @__PURE__ */
|
|
4464
|
+
view.error ? /* @__PURE__ */ jsx24("p", { id: "keepkit-sync-recovery-error", role: "alert", "aria-live": "assertive", children: view.error instanceof Error ? view.error.message : view.labels.error }) : null
|
|
4132
4465
|
]
|
|
4133
4466
|
}
|
|
4134
4467
|
);
|
|
@@ -4140,16 +4473,16 @@ function ConflictPreview({
|
|
|
4140
4473
|
noteLabel,
|
|
4141
4474
|
side
|
|
4142
4475
|
}) {
|
|
4143
|
-
return /* @__PURE__ */
|
|
4144
|
-
/* @__PURE__ */
|
|
4145
|
-
/* @__PURE__ */
|
|
4146
|
-
/* @__PURE__ */
|
|
4147
|
-
/* @__PURE__ */
|
|
4148
|
-
/* @__PURE__ */
|
|
4476
|
+
return /* @__PURE__ */ jsxs18("article", { "data-conflict-version": side, "aria-label": heading, children: [
|
|
4477
|
+
/* @__PURE__ */ jsx24("h4", { children: heading }),
|
|
4478
|
+
/* @__PURE__ */ jsxs18("dl", { children: [
|
|
4479
|
+
/* @__PURE__ */ jsxs18("div", { children: [
|
|
4480
|
+
/* @__PURE__ */ jsx24("dt", { children: updatedAtLabel }),
|
|
4481
|
+
/* @__PURE__ */ jsx24("dd", { children: item ? /* @__PURE__ */ jsx24("time", { dateTime: new Date(item.updatedAt).toISOString(), children: formatConflictDate(item.updatedAt) }) : "\u2014" })
|
|
4149
4482
|
] }),
|
|
4150
|
-
/* @__PURE__ */
|
|
4151
|
-
/* @__PURE__ */
|
|
4152
|
-
/* @__PURE__ */
|
|
4483
|
+
/* @__PURE__ */ jsxs18("div", { children: [
|
|
4484
|
+
/* @__PURE__ */ jsx24("dt", { children: noteLabel }),
|
|
4485
|
+
/* @__PURE__ */ jsx24("dd", { children: item?.note || "\u2014" })
|
|
4153
4486
|
] })
|
|
4154
4487
|
] })
|
|
4155
4488
|
] });
|
|
@@ -4193,7 +4526,7 @@ function getErrorMessage5(error) {
|
|
|
4193
4526
|
}
|
|
4194
4527
|
|
|
4195
4528
|
// src/features/sync/KeepSyncStatusBanner.tsx
|
|
4196
|
-
import { jsx as
|
|
4529
|
+
import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4197
4530
|
function KeepSyncStatusBanner({
|
|
4198
4531
|
onRetry,
|
|
4199
4532
|
onResolveConflicts,
|
|
@@ -4203,7 +4536,7 @@ function KeepSyncStatusBanner({
|
|
|
4203
4536
|
}) {
|
|
4204
4537
|
const view = useKeepSyncStatusBanner({ onRetry, children });
|
|
4205
4538
|
if (view.status === "idle" && !view.hasConflicts) return null;
|
|
4206
|
-
return /* @__PURE__ */
|
|
4539
|
+
return /* @__PURE__ */ jsxs19(
|
|
4207
4540
|
"aside",
|
|
4208
4541
|
{
|
|
4209
4542
|
...props,
|
|
@@ -4213,8 +4546,8 @@ function KeepSyncStatusBanner({
|
|
|
4213
4546
|
"data-keepkit": "sync-status",
|
|
4214
4547
|
"data-state": view.status,
|
|
4215
4548
|
children: [
|
|
4216
|
-
/* @__PURE__ */
|
|
4217
|
-
view.showRetry ? /* @__PURE__ */
|
|
4549
|
+
/* @__PURE__ */ jsx25("p", { children: view.message }),
|
|
4550
|
+
view.showRetry ? /* @__PURE__ */ jsx25(
|
|
4218
4551
|
"button",
|
|
4219
4552
|
{
|
|
4220
4553
|
type: "button",
|
|
@@ -4224,7 +4557,7 @@ function KeepSyncStatusBanner({
|
|
|
4224
4557
|
children: view.retryLabel
|
|
4225
4558
|
}
|
|
4226
4559
|
) : null,
|
|
4227
|
-
view.hasConflicts ? /* @__PURE__ */
|
|
4560
|
+
view.hasConflicts ? /* @__PURE__ */ jsx25(
|
|
4228
4561
|
"button",
|
|
4229
4562
|
{
|
|
4230
4563
|
type: "button",
|
|
@@ -4240,8 +4573,8 @@ function KeepSyncStatusBanner({
|
|
|
4240
4573
|
}
|
|
4241
4574
|
|
|
4242
4575
|
// src/foundation/theme.tsx
|
|
4243
|
-
import {
|
|
4244
|
-
import { jsx as
|
|
4576
|
+
import { isValidElement as isValidElement9 } from "react";
|
|
4577
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
4245
4578
|
var keepThemeNames = [
|
|
4246
4579
|
"default",
|
|
4247
4580
|
"ocean",
|
|
@@ -4296,11 +4629,11 @@ function KeepThemeProvider({
|
|
|
4296
4629
|
"data-reduced-motion": reducedMotion ? "true" : void 0
|
|
4297
4630
|
};
|
|
4298
4631
|
if (asChild) {
|
|
4299
|
-
if (!
|
|
4632
|
+
if (!isValidElement9(children))
|
|
4300
4633
|
throw new Error("KeepThemeProvider with asChild requires a single React element child.");
|
|
4301
|
-
return
|
|
4634
|
+
return createSlot(children, rootProps);
|
|
4302
4635
|
}
|
|
4303
|
-
return /* @__PURE__ */
|
|
4636
|
+
return /* @__PURE__ */ jsx26("div", { ...rootProps, children });
|
|
4304
4637
|
}
|
|
4305
4638
|
|
|
4306
4639
|
// src/index.tsx
|
|
@@ -4324,7 +4657,7 @@ import {
|
|
|
4324
4657
|
LocalStorageSyncQueueAdapter,
|
|
4325
4658
|
SyncStorageAdapter
|
|
4326
4659
|
} from "@keepkit/core/storage";
|
|
4327
|
-
import { jsx as
|
|
4660
|
+
import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4328
4661
|
function KeepKitProvider({
|
|
4329
4662
|
labels,
|
|
4330
4663
|
locale,
|
|
@@ -4344,7 +4677,7 @@ function KeepKitProvider({
|
|
|
4344
4677
|
children,
|
|
4345
4678
|
...providerProps
|
|
4346
4679
|
}) {
|
|
4347
|
-
return /* @__PURE__ */
|
|
4680
|
+
return /* @__PURE__ */ jsx27(KeepUiProvider, { labels, locale, labelResolver, onFeedback, children: /* @__PURE__ */ jsx27(
|
|
4348
4681
|
KeepThemeProvider,
|
|
4349
4682
|
{
|
|
4350
4683
|
theme,
|
|
@@ -4358,10 +4691,10 @@ function KeepKitProvider({
|
|
|
4358
4691
|
className: themeClassName,
|
|
4359
4692
|
style: themeStyle,
|
|
4360
4693
|
asChild: themeAsChild,
|
|
4361
|
-
children: /* @__PURE__ */
|
|
4362
|
-
/* @__PURE__ */
|
|
4694
|
+
children: /* @__PURE__ */ jsxs20(CoreKeepProvider, { ...providerProps, children: [
|
|
4695
|
+
/* @__PURE__ */ jsx27(KeepSyncFeedbackObserver, {}),
|
|
4363
4696
|
children,
|
|
4364
|
-
/* @__PURE__ */
|
|
4697
|
+
/* @__PURE__ */ jsx27(KeepAnnouncements, {})
|
|
4365
4698
|
] })
|
|
4366
4699
|
}
|
|
4367
4700
|
) });
|
|
@@ -4388,7 +4721,7 @@ function createKeepKit(options = {}) {
|
|
|
4388
4721
|
} = options;
|
|
4389
4722
|
const coreKit = createCoreKeepKit(coreOptions);
|
|
4390
4723
|
return {
|
|
4391
|
-
Provider: (props) => /* @__PURE__ */
|
|
4724
|
+
Provider: (props) => /* @__PURE__ */ jsx27(
|
|
4392
4725
|
KeepKitProvider,
|
|
4393
4726
|
{
|
|
4394
4727
|
...coreOptions,
|
|
@@ -4409,9 +4742,9 @@ function createKeepKit(options = {}) {
|
|
|
4409
4742
|
...props
|
|
4410
4743
|
}
|
|
4411
4744
|
),
|
|
4412
|
-
Button: (props) => /* @__PURE__ */
|
|
4413
|
-
Backup: (props) => /* @__PURE__ */
|
|
4414
|
-
Collection: (props) => /* @__PURE__ */
|
|
4745
|
+
Button: (props) => /* @__PURE__ */ jsx27(KeepButton, { ...props }),
|
|
4746
|
+
Backup: (props) => /* @__PURE__ */ jsx27(KeepBackup, { ...props }),
|
|
4747
|
+
Collection: (props) => /* @__PURE__ */ jsx27(
|
|
4415
4748
|
KeepCollection,
|
|
4416
4749
|
{
|
|
4417
4750
|
...props,
|
|
@@ -4433,6 +4766,7 @@ export {
|
|
|
4433
4766
|
FallbackStorageAdapter,
|
|
4434
4767
|
IndexedDBAdapter,
|
|
4435
4768
|
IndexedDBSyncQueueAdapter,
|
|
4769
|
+
KeepActiveFiltersSummary,
|
|
4436
4770
|
KeepAnnouncements,
|
|
4437
4771
|
KeepAnnouncer,
|
|
4438
4772
|
KeepBackup,
|
|
@@ -4456,6 +4790,7 @@ export {
|
|
|
4456
4790
|
KeepPruneStaleButton,
|
|
4457
4791
|
KeepReorderableList,
|
|
4458
4792
|
KeepSearchInput,
|
|
4793
|
+
KeepShortcutHint,
|
|
4459
4794
|
KeepSortSelect,
|
|
4460
4795
|
KeepStaleNotice,
|
|
4461
4796
|
KeepStatus,
|
|
@@ -4470,15 +4805,18 @@ export {
|
|
|
4470
4805
|
LocalStorageAdapter,
|
|
4471
4806
|
LocalStorageSyncQueueAdapter,
|
|
4472
4807
|
SyncStorageAdapter,
|
|
4808
|
+
chainedFunction,
|
|
4473
4809
|
createAuthenticatedSyncKit,
|
|
4474
4810
|
createBrowserStorageAdapter,
|
|
4475
4811
|
createKeepKit,
|
|
4476
4812
|
createNextPagesRouterAdapter,
|
|
4813
|
+
createSlot,
|
|
4477
4814
|
createStorageAdapter,
|
|
4478
4815
|
getKeepLocaleLabels,
|
|
4479
4816
|
highlightText,
|
|
4480
4817
|
isAllSelected,
|
|
4481
4818
|
keepThemeNames,
|
|
4819
|
+
mergeProps,
|
|
4482
4820
|
toggleSelectAll,
|
|
4483
4821
|
useKeepContext8 as useKeepContext,
|
|
4484
4822
|
useKeepItem5 as useKeepItem,
|