pagy 9.4.0 → 43.0.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 (168) hide show
  1. checksums.yaml +4 -4
  2. data/apps/calendar.ru +546 -551
  3. data/apps/demo.ru +222 -179
  4. data/apps/index.rb +3 -1
  5. data/apps/keynav.ru +258 -0
  6. data/apps/{keyset_ar.ru → keyset.ru} +26 -32
  7. data/apps/{keyset_s.ru → keyset_sequel.ru} +23 -29
  8. data/apps/rails.ru +51 -48
  9. data/apps/repro.ru +46 -43
  10. data/bin/pagy +20 -21
  11. data/config/pagy.rb +35 -207
  12. data/javascripts/ai_widget.js +76 -0
  13. data/javascripts/pagy.js +151 -0
  14. data/javascripts/pagy.js.map +10 -0
  15. data/javascripts/pagy.min.js +1 -4
  16. data/javascripts/pagy.mjs +111 -63
  17. data/javascripts/wand.js +1166 -0
  18. data/lib/pagy/classes/calendar/calendar.rb +98 -0
  19. data/lib/pagy/{calendar → classes/calendar}/day.rb +7 -11
  20. data/lib/pagy/{calendar → classes/calendar}/month.rb +5 -10
  21. data/lib/pagy/{calendar → classes/calendar}/quarter.rb +10 -15
  22. data/lib/pagy/classes/calendar/unit.rb +93 -0
  23. data/lib/pagy/{calendar → classes/calendar}/week.rb +5 -9
  24. data/lib/pagy/{calendar → classes/calendar}/year.rb +5 -6
  25. data/lib/pagy/classes/exceptions.rb +33 -0
  26. data/lib/pagy/classes/keyset/active_record.rb +11 -0
  27. data/lib/pagy/classes/keyset/adapters/active_record.rb +50 -0
  28. data/lib/pagy/classes/keyset/adapters/sequel.rb +63 -0
  29. data/lib/pagy/classes/keyset/keynav/active_record.rb +13 -0
  30. data/lib/pagy/classes/keyset/keynav/sequel.rb +13 -0
  31. data/lib/pagy/classes/keyset/keynav.rb +78 -0
  32. data/lib/pagy/classes/keyset/keyset.rb +126 -0
  33. data/lib/pagy/classes/keyset/sequel.rb +11 -0
  34. data/lib/pagy/classes/offset/countless.rb +56 -0
  35. data/lib/pagy/classes/offset/offset.rb +55 -0
  36. data/lib/pagy/classes/offset/search.rb +38 -0
  37. data/lib/pagy/classes/request.rb +36 -0
  38. data/lib/pagy/modules/abilities/configurable.rb +36 -0
  39. data/lib/pagy/modules/abilities/linkable.rb +60 -0
  40. data/lib/pagy/modules/abilities/rangeable.rb +15 -0
  41. data/lib/pagy/modules/abilities/shiftable.rb +12 -0
  42. data/lib/pagy/{b64.rb → modules/b64.rb} +3 -7
  43. data/lib/pagy/modules/console.rb +38 -0
  44. data/lib/pagy/modules/i18n/i18n.rb +48 -0
  45. data/lib/pagy/modules/i18n/p11n/arabic.rb +29 -0
  46. data/lib/pagy/modules/i18n/p11n/east_slavic.rb +26 -0
  47. data/lib/pagy/modules/i18n/p11n/one_other.rb +15 -0
  48. data/lib/pagy/modules/i18n/p11n/one_upto_two_other.rb +15 -0
  49. data/lib/pagy/modules/i18n/p11n/other.rb +13 -0
  50. data/lib/pagy/modules/i18n/p11n/polish.rb +26 -0
  51. data/lib/pagy/modules/i18n/p11n/west_slavic.rb +22 -0
  52. data/lib/pagy/modules/i18n/p11n.rb +16 -0
  53. data/lib/pagy/modules/searcher.rb +20 -0
  54. data/lib/pagy/toolbox/helpers/anchor_tags.rb +25 -0
  55. data/lib/pagy/toolbox/helpers/bootstrap/input_nav_js.rb +24 -0
  56. data/lib/pagy/toolbox/helpers/bootstrap/previous_next_html.rb +18 -0
  57. data/lib/pagy/toolbox/helpers/bootstrap/series_nav.rb +29 -0
  58. data/lib/pagy/toolbox/helpers/bootstrap/series_nav_js.rb +21 -0
  59. data/lib/pagy/toolbox/helpers/bulma/input_nav_js.rb +21 -0
  60. data/lib/pagy/toolbox/helpers/bulma/previous_next_html.rb +19 -0
  61. data/lib/pagy/toolbox/helpers/bulma/series_nav.rb +28 -0
  62. data/lib/pagy/toolbox/helpers/bulma/series_nav_js.rb +20 -0
  63. data/lib/pagy/toolbox/helpers/data_hash.rb +27 -0
  64. data/lib/pagy/toolbox/helpers/headers_hash.rb +24 -0
  65. data/lib/pagy/toolbox/helpers/info_tag.rb +26 -0
  66. data/lib/pagy/toolbox/helpers/input_nav_js.rb +18 -0
  67. data/lib/pagy/toolbox/helpers/limit_tag_js.rb +23 -0
  68. data/lib/pagy/toolbox/helpers/loader.rb +33 -0
  69. data/lib/pagy/toolbox/helpers/page_url.rb +23 -0
  70. data/lib/pagy/toolbox/helpers/series_nav.rb +28 -0
  71. data/lib/pagy/toolbox/helpers/series_nav_js.rb +18 -0
  72. data/lib/pagy/toolbox/helpers/support/a_lambda.rb +35 -0
  73. data/lib/pagy/toolbox/helpers/support/data_pagy_attribute.rb +15 -0
  74. data/lib/pagy/toolbox/helpers/support/nav_aria_label_attribute.rb +12 -0
  75. data/lib/pagy/toolbox/helpers/support/series.rb +38 -0
  76. data/lib/pagy/toolbox/helpers/support/wrap_input_nav_js.rb +20 -0
  77. data/lib/pagy/toolbox/helpers/support/wrap_series_nav.rb +17 -0
  78. data/lib/pagy/toolbox/helpers/support/wrap_series_nav_js.rb +36 -0
  79. data/lib/pagy/toolbox/helpers/urls_hash.rb +13 -0
  80. data/lib/pagy/toolbox/paginators/calendar.rb +30 -0
  81. data/lib/pagy/toolbox/paginators/countless.rb +25 -0
  82. data/lib/pagy/toolbox/paginators/elasticsearch_rails.rb +32 -0
  83. data/lib/pagy/toolbox/paginators/keynav_js.rb +29 -0
  84. data/lib/pagy/toolbox/paginators/keyset.rb +18 -0
  85. data/lib/pagy/toolbox/paginators/meilisearch.rb +32 -0
  86. data/lib/pagy/toolbox/paginators/method.rb +26 -0
  87. data/lib/pagy/toolbox/paginators/offset.rb +33 -0
  88. data/lib/pagy/toolbox/paginators/searchkick.rb +32 -0
  89. data/lib/pagy.rb +59 -97
  90. data/locales/ar.yml +9 -6
  91. data/locales/be.yml +9 -6
  92. data/locales/bg.yml +9 -6
  93. data/locales/bs.yml +9 -6
  94. data/locales/ca.yml +9 -6
  95. data/locales/ckb.yml +8 -6
  96. data/locales/cs.yml +9 -6
  97. data/locales/da.yml +9 -6
  98. data/locales/de.yml +9 -6
  99. data/locales/dz.yml +9 -6
  100. data/locales/en.yml +9 -6
  101. data/locales/es.yml +9 -6
  102. data/locales/fr.yml +9 -6
  103. data/locales/hr.yml +9 -6
  104. data/locales/id.yml +9 -6
  105. data/locales/it.yml +9 -6
  106. data/locales/ja.yml +9 -6
  107. data/locales/km.yml +9 -6
  108. data/locales/ko.yml +9 -6
  109. data/locales/nb.yml +9 -6
  110. data/locales/nl.yml +9 -6
  111. data/locales/nn.yml +9 -6
  112. data/locales/pl.yml +9 -6
  113. data/locales/pt-BR.yml +10 -7
  114. data/locales/pt.yml +10 -7
  115. data/locales/ru.yml +9 -6
  116. data/locales/sk.yml +9 -6
  117. data/locales/sr.yml +9 -6
  118. data/locales/sv-SE.yml +9 -6
  119. data/locales/sv.yml +9 -6
  120. data/locales/sw.yml +12 -9
  121. data/locales/ta.yml +9 -6
  122. data/locales/tr.yml +9 -6
  123. data/locales/uk.yml +9 -6
  124. data/locales/vi.yml +9 -6
  125. data/locales/zh-CN.yml +9 -6
  126. data/locales/zh-HK.yml +9 -6
  127. data/locales/zh-TW.yml +9 -6
  128. data/stylesheets/pagy-tailwind.css +64 -0
  129. data/stylesheets/pagy.css +63 -27
  130. metadata +112 -51
  131. data/javascripts/pagy.min.js.map +0 -10
  132. data/lib/pagy/backend.rb +0 -44
  133. data/lib/pagy/calendar/unit.rb +0 -103
  134. data/lib/pagy/calendar.rb +0 -84
  135. data/lib/pagy/console.rb +0 -23
  136. data/lib/pagy/countless.rb +0 -38
  137. data/lib/pagy/exceptions.rb +0 -25
  138. data/lib/pagy/extras/arel.rb +0 -28
  139. data/lib/pagy/extras/array.rb +0 -19
  140. data/lib/pagy/extras/bootstrap.rb +0 -97
  141. data/lib/pagy/extras/bulma.rb +0 -93
  142. data/lib/pagy/extras/calendar.rb +0 -79
  143. data/lib/pagy/extras/countless.rb +0 -32
  144. data/lib/pagy/extras/elasticsearch_rails.rb +0 -71
  145. data/lib/pagy/extras/gearbox.rb +0 -55
  146. data/lib/pagy/extras/headers.rb +0 -54
  147. data/lib/pagy/extras/i18n.rb +0 -26
  148. data/lib/pagy/extras/js_tools.rb +0 -70
  149. data/lib/pagy/extras/jsonapi.rb +0 -88
  150. data/lib/pagy/extras/keyset.rb +0 -30
  151. data/lib/pagy/extras/limit.rb +0 -63
  152. data/lib/pagy/extras/meilisearch.rb +0 -57
  153. data/lib/pagy/extras/metadata.rb +0 -42
  154. data/lib/pagy/extras/overflow.rb +0 -81
  155. data/lib/pagy/extras/pagy.rb +0 -82
  156. data/lib/pagy/extras/searchkick.rb +0 -59
  157. data/lib/pagy/extras/size.rb +0 -40
  158. data/lib/pagy/extras/standalone.rb +0 -60
  159. data/lib/pagy/extras/trim.rb +0 -29
  160. data/lib/pagy/frontend.rb +0 -99
  161. data/lib/pagy/i18n.rb +0 -167
  162. data/lib/pagy/keyset/active_record.rb +0 -44
  163. data/lib/pagy/keyset/sequel.rb +0 -57
  164. data/lib/pagy/keyset.rb +0 -118
  165. data/lib/pagy/shared_methods.rb +0 -26
  166. data/lib/pagy/url_helpers.rb +0 -26
  167. data/stylesheets/pagy.scss +0 -48
  168. data/stylesheets/pagy.tailwind.css +0 -21
data/locales/pt-BR.yml CHANGED
@@ -1,21 +1,24 @@
1
- # :one_other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  pt-BR:
3
4
  pagy:
5
+ p11n: 'OneOther'
4
6
  aria_label:
5
- nav:
7
+ nav:
6
8
  one: "Página"
7
9
  other: "Páginas"
8
- prev: "Anterior"
10
+ previous: "Anterior"
9
11
  next: "Próximo"
10
- prev: "<"
12
+ previous: "<"
11
13
  next: ">"
12
14
  gap: "…"
13
15
  item_name:
14
16
  one: "item"
15
17
  other: "itens"
16
- info:
18
+ info_tag:
19
+ no_count: "Página %{page} de %{pages}"
17
20
  no_items: "Sem resultados"
18
21
  single_page: "Mostrando %{count} %{item_name}"
19
22
  multiple_pages: "Mostrando %{item_name} %{from}-%{to} do total de %{count}"
20
- combo_nav_js: "Página %{page_input} de %{pages}"
21
- limit_selector_js: "Mostrar %{limit_input} %{item_name} por página"
23
+ input_nav_js: "Página %{page_input} de %{pages}"
24
+ limit_tag_js: "Mostrar %{limit_input} %{item_name} por página"
data/locales/pt.yml CHANGED
@@ -1,21 +1,24 @@
1
- # :one_other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  pt:
3
4
  pagy:
5
+ p11n: 'OneOther'
4
6
  aria_label:
5
- nav:
7
+ nav:
6
8
  one: "Página"
7
9
  other: "Páginas"
8
- prev: "Anterior"
10
+ previous: "Anterior"
9
11
  next: "Próximo"
10
- prev: "<"
12
+ previous: "<"
11
13
  next: ">"
12
14
  gap: "…"
13
15
  item_name:
14
16
  one: "item"
15
17
  other: "itens"
16
- info:
18
+ info_tag:
19
+ no_count: "Página %{page} de %{pages}"
17
20
  no_items: "Sem resultados"
18
21
  single_page: "Mostrando %{count} %{item_name}"
19
22
  multiple_pages: "Mostrando %{item_name} %{from}-%{to} de um total de %{count}"
20
- combo_nav_js: "Página %{page_input} de %{pages}"
21
- limit_selector_js: "Mostrar %{limit_input} %{item_name} por página"
23
+ input_nav_js: "Página %{page_input} de %{pages}"
24
+ limit_tag_js: "Mostrar %{limit_input} %{item_name} por página"
data/locales/ru.yml CHANGED
@@ -1,15 +1,17 @@
1
- # :east_slavic pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  ru:
3
4
  pagy:
5
+ p11n: 'EastSlavic'
4
6
  aria_label:
5
7
  nav:
6
8
  one: "Страница"
7
9
  few: "Страницы"
8
10
  many: "Страниц"
9
11
  other: "Страниц"
10
- prev: "Назад"
12
+ previous: "Назад"
11
13
  next: "Вперёд"
12
- prev: "<"
14
+ previous: "<"
13
15
  next: ">"
14
16
  gap: "…"
15
17
  item_name:
@@ -17,9 +19,10 @@ ru:
17
19
  few: "записи"
18
20
  many: "записей"
19
21
  other: "записей"
20
- info:
22
+ info_tag:
23
+ no_count: "Страница %{page} из %{pages}"
21
24
  no_items: "Пока %{item_name} нет"
22
25
  single_page: "%{count} %{item_name}"
23
26
  multiple_pages: "Всего %{count} %{item_name}, показаны с %{from} по %{to}"
24
- combo_nav_js: "Страница %{page_input} из %{pages}"
25
- limit_selector_js: "Показать %{limit_input} %{item_name} на странице"
27
+ input_nav_js: "Страница %{page_input} из %{pages}"
28
+ limit_tag_js: "Показать %{limit_input} %{item_name} на странице"
data/locales/sk.yml CHANGED
@@ -1,23 +1,26 @@
1
- # :west_slavic pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  sk:
3
4
  pagy:
5
+ p11n: 'WestSlavic'
4
6
  aria_label:
5
7
  nav:
6
8
  one: "Stránka"
7
9
  few: "Stránky"
8
10
  other: "Stránky"
9
- prev: "Predchádzajúca"
11
+ previous: "Predchádzajúca"
10
12
  next: "Ďalšia"
11
- prev: "<"
13
+ previous: "<"
12
14
  next: ">"
13
15
  gap: "…"
14
16
  item_name:
15
17
  one: "položka"
16
18
  few: "položky"
17
19
  other: "položiek"
18
- info:
20
+ info_tag:
21
+ no_count: "Strana %{page} z %{pages}"
19
22
  no_items: "Nič nebolo nájdené"
20
23
  single_page: "Zobrazené %{count} %{item_name}"
21
24
  multiple_pages: "Zobrazené položky %{from}-%{to} z %{count} celkom"
22
- combo_nav_js: "Strana %{page_input} z %{pages}"
23
- limit_selector_js: "Zobraziť %{limit_input} %{item_name} na stránke"
25
+ input_nav_js: "Strana %{page_input} z %{pages}"
26
+ limit_tag_js: "Zobraziť %{limit_input} %{item_name} na stránke"
data/locales/sr.yml CHANGED
@@ -1,15 +1,17 @@
1
- # :east_slavic pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  sr:
3
4
  pagy:
5
+ p11n: 'EastSlavic'
4
6
  aria_label:
5
7
  nav:
6
8
  one: "Страница"
7
9
  few: "Странице"
8
10
  many: "Страница"
9
11
  other: "Странице"
10
- prev: "Претходна"
12
+ previous: "Претходна"
11
13
  next: "Следећa "
12
- prev: "<"
14
+ previous: "<"
13
15
  next: ">"
14
16
  gap: "…"
15
17
  item_name:
@@ -17,9 +19,10 @@ sr:
17
19
  few: "ставкe"
18
20
  many: "ставки"
19
21
  other: "ставки"
20
- info:
22
+ info_tag:
23
+ no_count: "Страниca %{page} од %{pages}"
21
24
  no_items: "Нema пронађених %{item_name}"
22
25
  single_page: "Приказује се %{count} %{item_name}"
23
26
  multiple_pages: "Приказ %{item_name} %{from}-%{to} од %{count} укупно"
24
- combo_nav_js: "Страниca %{page_input} од %{pages}"
25
- limit_selector_js: "Прикажи %{limit_input} %{item_name} по страниcи"
27
+ input_nav_js: "Страниca %{page_input} од %{pages}"
28
+ limit_tag_js: "Прикажи %{limit_input} %{item_name} по страниcи"
data/locales/sv-SE.yml CHANGED
@@ -1,21 +1,24 @@
1
- # :one_other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  sv-SE:
3
4
  pagy:
5
+ p11n: 'OneOther'
4
6
  aria_label:
5
7
  nav:
6
8
  one: "Sida"
7
9
  other: "Sidor"
8
- prev: "Föregående"
10
+ previous: "Föregående"
9
11
  next: "Nästa"
10
- prev: "<"
12
+ previous: "<"
11
13
  next: ">"
12
14
  gap: "…"
13
15
  item_name:
14
16
  one: "resultat"
15
17
  other: "resultat"
16
- info:
18
+ info_tag:
19
+ no_count: "Sida %{page} av %{pages}"
17
20
  no_items: "Inga %{item_name} hittade"
18
21
  single_page: "Visar %{count} %{item_name}"
19
22
  multiple_pages: "Visar %{item_name} %{from}-%{to} av %{count} totalt"
20
- combo_nav_js: "Sida %{page_input} av %{pages}"
21
- limit_selector_js: "Visa %{limit_input} %{item_name} per sida"
23
+ input_nav_js: "Sida %{page_input} av %{pages}"
24
+ limit_tag_js: "Visa %{limit_input} %{item_name} per sida"
data/locales/sv.yml CHANGED
@@ -1,21 +1,24 @@
1
- # :one_other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  sv:
3
4
  pagy:
5
+ p11n: 'OneOther'
4
6
  aria_label:
5
7
  nav:
6
8
  one: "Sida"
7
9
  other: "Sidor"
8
- prev: "Föregående"
10
+ previous: "Föregående"
9
11
  next: "Nästa"
10
- prev: "<"
12
+ previous: "<"
11
13
  next: ">"
12
14
  gap: "…"
13
15
  item_name:
14
16
  one: "resultat"
15
17
  other: "resultat"
16
- info:
18
+ info_tag:
19
+ no_count: "Sida %{page} av %{pages}"
17
20
  no_items: "Inga %{item_name} hittade"
18
21
  single_page: "Visar %{count} %{item_name}"
19
22
  multiple_pages: "Visar %{item_name} %{from}-%{to} av %{count} totalt"
20
- combo_nav_js: "Sida %{page_input} av %{pages}"
21
- limit_selector_js: "Visa %{limit_input} %{item_name} per sida"
23
+ input_nav_js: "Sida %{page_input} av %{pages}"
24
+ limit_tag_js: "Visa %{limit_input} %{item_name} per sida"
data/locales/sw.yml CHANGED
@@ -1,25 +1,28 @@
1
- # :one_other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  sw:
3
4
  pagy:
5
+ p11n: 'OneOther'
4
6
  # please add a comment in the https://github.com/ddnexus/pagy/issues/603
5
7
  # posting the translation of the following "Page"/"Pages" with the plurals for this locale
6
8
  # Please change the final test in 18n_loacles_test.rb to remove the sw.yml exclusion
7
9
  # after you make these changes.
8
10
  aria_label:
9
- nav: "Pages"
10
- # one: ""
11
- # other: ""
12
- prev: "Awali"
11
+ nav:
12
+ one: "Page"
13
+ other: "Pages"
14
+ previous: "Awali"
13
15
  next: "Ifuatayo"
14
- prev: "<"
16
+ previous: "<"
15
17
  next: ">"
16
18
  gap: "…"
17
19
  item_name:
18
20
  one: "kifaa"
19
21
  other: "vifaa"
20
- info:
22
+ info_tag:
23
+ no_count: "Kurasa %{page} ya %{pages}"
21
24
  no_items: "Hamna %{item_name} vilivyopatikana"
22
25
  single_page: "Inaonyesha %{item_name} %{count}"
23
26
  multiple_pages: "Inaonyesha %{item_name} %{from}-%{to} ya %{count} kwa jumla"
24
- combo_nav_js: "Kurasa %{page_input} ya %{pages}"
25
- limit_selector_js: "Onyesha %{limit_input} %{item_name} kwa kila ukurasa"
27
+ input_nav_js: "Kurasa %{page_input} ya %{pages}"
28
+ limit_tag_js: "Onyesha %{limit_input} %{item_name} kwa kila ukurasa"
data/locales/ta.yml CHANGED
@@ -1,21 +1,24 @@
1
- # :one_other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  ta:
3
4
  pagy:
5
+ p11n: 'OneOther'
4
6
  aria_label:
5
7
  nav:
6
8
  one: "பக்கம்"
7
9
  other: "பக்கங்கள்"
8
- prev: "முந்தையது"
10
+ previous: "முந்தையது"
9
11
  next: "அடுத்தது"
10
- prev: "<"
12
+ previous: "<"
11
13
  next: ">"
12
14
  gap: "…"
13
15
  item_name:
14
16
  one: "பதிவு"
15
17
  other: "பதிவுகள்"
16
- info:
18
+ info_tag:
19
+ no_count: "%{pages}-இல் %{page}-வது பக்கம்"
17
20
  no_items: "%{item_name} கிடைக்கவில்லை"
18
21
  single_page: "%{count} %{item_name} காட்டப்படுகின்றது"
19
22
  multiple_pages: "மொத்தம் %{count} %{item_name}, காட்டப்படுபவை %{from}-%{to}"
20
- combo_nav_js: "%{pages}-இல் %{page_input}-வது பக்கம்"
21
- limit_selector_js: "ஒரு பக்கத்திற்கு %{limit_input} %{item_name} காட்டு"
23
+ input_nav_js: "%{pages}-இல் %{page_input}-வது பக்கம்"
24
+ limit_tag_js: "ஒரு பக்கத்திற்கு %{limit_input} %{item_name} காட்டு"
data/locales/tr.yml CHANGED
@@ -1,19 +1,22 @@
1
- # :other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  tr:
3
4
  pagy:
5
+ p11n: 'Other'
4
6
  aria_label:
5
7
  # please add a comment in the https://github.com/ddnexus/pagy/issues/605
6
8
  # posting the translation of the following "Page"/"Pages" with the plurals for this locale
7
9
  nav: "Pages"
8
- prev: "Önceki"
10
+ previous: "Önceki"
9
11
  next: "Sonraki"
10
- prev: "<"
12
+ previous: "<"
11
13
  next: ">"
12
14
  gap: "…"
13
15
  item_name: "kayıt"
14
- info:
16
+ info_tag:
17
+ no_count: "Sayfa %{page} / %{pages}"
15
18
  no_items: "Hiç %{item_name} bulunamadı"
16
19
  single_page: "Toplam %{count} %{item_name} gösteriliyor"
17
20
  multiple_pages: "%{count} %{item_name} içerisinden %{from}-%{to} kadarı gösteriliyor"
18
- combo_nav_js: "Sayfa %{page_input} / %{pages}"
19
- limit_selector_js: "Sayfada %{limit_input} %{item_name} göster"
21
+ input_nav_js: "Sayfa %{page_input} / %{pages}"
22
+ limit_tag_js: "Sayfada %{limit_input} %{item_name} göster"
data/locales/uk.yml CHANGED
@@ -1,15 +1,17 @@
1
- # :east_slavic pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  uk:
3
4
  pagy:
5
+ p11n: 'EastSlavic'
4
6
  aria_label:
5
7
  nav:
6
8
  one: "Сторінка"
7
9
  few: "Сторінки"
8
10
  many: "Сторінок"
9
11
  other: "Сторінки"
10
- prev: "Назад"
12
+ previous: "Назад"
11
13
  next: "Далі"
12
- prev: "<"
14
+ previous: "<"
13
15
  next: ">"
14
16
  gap: "…"
15
17
  item_name:
@@ -17,9 +19,10 @@ uk:
17
19
  few: "записів"
18
20
  many: "записів"
19
21
  other: "записів"
20
- info:
22
+ info_tag:
23
+ no_count: "Сторінка %{page} з %{pages}"
21
24
  no_items: "Більше %{item_name} немає"
22
25
  single_page: "%{count} %{item_name}"
23
26
  multiple_pages: "Загалом %{count} %{item_name}, показані з %{from} по %{to}"
24
- combo_nav_js: "Сторінка %{page_input} з %{pages}"
25
- limit_selector_js: "Показати %{limit_input} %{item_name} на сторінці"
27
+ input_nav_js: "Сторінка %{page_input} з %{pages}"
28
+ limit_tag_js: "Показати %{limit_input} %{item_name} на сторінці"
data/locales/vi.yml CHANGED
@@ -1,17 +1,20 @@
1
- # :other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  vi:
3
4
  pagy:
5
+ p11n: 'Other'
4
6
  aria_label:
5
7
  nav: "Trang"
6
- prev: "Trang trước"
8
+ previous: "Trang trước"
7
9
  next: "Trang sau"
8
- prev: "<"
10
+ previous: "<"
9
11
  next: ">"
10
12
  gap: "…"
11
13
  item_name: "kết quả"
12
- info:
14
+ info_tag:
15
+ no_count: "Trang %{page} trên %{pages}"
13
16
  no_items: "Không tìm thấy %{item_name} nào"
14
17
  single_page: "%{count} %{item_name}"
15
18
  multiple_pages: "Đang hiển thị %{from}-%{to} trong tổng số %{count} %{item_name}"
16
- combo_nav_js: "Trang %{page_input} trên %{pages}"
17
- limit_selector_js: "Hiển thị %{limit_input} %{item_name} mỗi trang"
19
+ input_nav_js: "Trang %{page_input} trên %{pages}"
20
+ limit_tag_js: "Hiển thị %{limit_input} %{item_name} mỗi trang"
data/locales/zh-CN.yml CHANGED
@@ -1,17 +1,20 @@
1
- # :other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  zh-CN:
3
4
  pagy:
5
+ p11n: 'Other'
4
6
  aria_label:
5
7
  nav: "页"
6
- prev: "上一页"
8
+ previous: "上一页"
7
9
  next: "下一页"
8
- prev: "<"
10
+ previous: "<"
9
11
  next: ">"
10
12
  gap: "…"
11
13
  item_name: "项"
12
- info:
14
+ info_tag:
15
+ no_count: "第 %{page} 页,共 %{pages} 页"
13
16
  no_items: "未找到任何 %{item_name}"
14
17
  single_page: "显示 %{count} 项 %{item_name}"
15
18
  multiple_pages: "共 %{count} 项 %{item_name},显示第 %{from}-%{to} 项"
16
- combo_nav_js: "第 %{page_input} 页,共 %{pages} 页"
17
- limit_selector_js: "每页显示 %{limit_input} 项 %{item_name}"
19
+ input_nav_js: "第 %{page_input} 页,共 %{pages} 页"
20
+ limit_tag_js: "每页显示 %{limit_input} 项 %{item_name}"
data/locales/zh-HK.yml CHANGED
@@ -1,17 +1,20 @@
1
- # :other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  zh-HK:
3
4
  pagy:
5
+ p11n: 'Other'
4
6
  aria_label:
5
7
  nav: "頁"
6
- prev: "上一頁"
8
+ previous: "上一頁"
7
9
  next: "下一頁"
8
- prev: "<"
10
+ previous: "<"
9
11
  next: ">"
10
12
  gap: "…"
11
13
  item_name: "項"
12
- info:
14
+ info_tag:
15
+ no_count: "第 %{page} 頁,共 %{pages} 頁"
13
16
  no_items: "搵唔到任何 %{item_name}"
14
17
  single_page: "顯示 %{count} 項 %{item_name}"
15
18
  multiple_pages: "總共 %{count} 項 %{item_name},顯示第 %{from} 至 %{to} 項"
16
- combo_nav_js: "第 %{page_input} 頁,共 %{pages} 頁"
17
- limit_selector_js: "每頁顯示 %{limit_input} 項 %{item_name}"
19
+ input_nav_js: "第 %{page_input} 頁,共 %{pages} 頁"
20
+ limit_tag_js: "每頁顯示 %{limit_input} 項 %{item_name}"
data/locales/zh-TW.yml CHANGED
@@ -1,17 +1,20 @@
1
- # :other pluralization (see https://github.com/ddnexus/pagy/blob/master/gem/lib/pagy/i18n.rb)
1
+ # See https://ddnexus.github.io/pagy/resources/i18n
2
+
2
3
  zh-TW:
3
4
  pagy:
5
+ p11n: 'Other'
4
6
  aria_label:
5
7
  nav: "頁"
6
- prev: "上一頁"
8
+ previous: "上一頁"
7
9
  next: "下一頁"
8
- prev: "<"
10
+ previous: "<"
9
11
  next: ">"
10
12
  gap: "…"
11
13
  item_name: "項"
12
- info:
14
+ info_tag:
15
+ no_count: "第 %{page} 頁,共 %{pages} 頁"
13
16
  no_items: "未找到任何 %{item_name}"
14
17
  single_page: "顯示 %{count} 項 %{item_name}"
15
18
  multiple_pages: "共 %{count} 項 %{item_name},顯示第 %{from} 至 %{to} 項"
16
- combo_nav_js: "第 %{page_input} 頁,共 %{pages} 頁"
17
- limit_selector_js: "每頁顯示 %{limit_input} 項 %{item_name}"
19
+ input_nav_js: "第 %{page_input} 頁,共 %{pages} 頁"
20
+ limit_tag_js: "每頁顯示 %{limit_input} 項 %{item_name}"
@@ -0,0 +1,64 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ @layer components {
6
+ .pagy {
7
+ --B: 1;
8
+ --H: 0;
9
+ --S: 0;
10
+ --L: 50;
11
+ --spacing: 0.125rem;
12
+ --padding: 0.75rem;
13
+ --rounding: 1.75rem;
14
+ --border-width: 0rem;
15
+ --font-size: 0.875rem;
16
+ --font-weight: 600;
17
+ --line-height: 1.75;
18
+
19
+ --text: hsl(var(--H) var(--S) calc(var(--L) - (30 * var(--B))));
20
+ --text-hover: hsl(var(--H) var(--S) calc(var(--L) - (33 * var(--B))));
21
+ --text-current: hsl(var(--H) var(--S) calc(100 * (var(--B) + 1)));
22
+ --background: hsl(var(--H) var(--S) calc(var(--L) + (30 * var(--B))));
23
+ --background-hover: hsl(var(--H) var(--S) calc(var(--L) + (20 * var(--B))));
24
+ --background-current: hsl(var(--H) var(--S) var(--L));
25
+ --background-input: hsl(var(--H) var(--S) calc(var(--L) + (45 * var(--B))));
26
+ --opacity: 1;
27
+
28
+ @apply flex space-x-[var(--spacing)] font-[var(--font-weight)]
29
+ text-[length:var(--font-size)] text-[var(--text)]
30
+ leading-[var(--line-height)];
31
+
32
+ a:not([role="separator"]) { /* all but gaps */
33
+ @apply block rounded-[var(--rounding)] px-[var(--padding)] py-[calc(var(--padding)/3)] bg-[var(--background)]
34
+ border-solid border-[var(--background-current)] border-[length:var(--border-width)] opacity-[var(--opacity)];
35
+ }
36
+
37
+ a[href]:hover { /* all links on hover */
38
+ @apply bg-[var(--background-hover)] text-[var(--text-hover)];
39
+ }
40
+
41
+ a:not([href]) { /* all but links */
42
+ @apply cursor-default
43
+ }
44
+
45
+ a[role="link"]:not([aria-current]) { /* disabled links */
46
+ @apply opacity-[calc(var(--opacity)*.6)];
47
+ }
48
+
49
+ a[aria-current] { /* current page */
50
+ @apply bg-[var(--background-current)] text-[var(--text-current)];
51
+ }
52
+
53
+ label {
54
+ @apply inline-block whitespace-nowrap rounded-[var(--rounding)] px-[var(--padding)]
55
+ py-[calc(var(--padding)/3-var(--border-width))]
56
+ bg-[var(--background)] border-solid border-[length:var(--border-width)] border-[var(--background-current)];
57
+
58
+ input {
59
+ @apply text-[var(--text)] text-[length:var(--font-size)] leading-[var(--line-height)] rounded-[calc(var(--rounding)/2)]
60
+ font-[var(--font-weight)] bg-[var(--background-input)] border-[length:var(--border-width)] border-[var(--background-current)];
61
+ }
62
+ }
63
+ }
64
+ }
data/stylesheets/pagy.css CHANGED
@@ -1,46 +1,82 @@
1
1
  .pagy {
2
+ --B: 1;
3
+ --H: 0;
4
+ --S: 0;
5
+ --L: 50;
6
+ --A: 1;
7
+ --spacing: 0.125rem;
8
+ --padding: 0.75rem;
9
+ --rounding: 1.75rem;
10
+ --border-width: 0rem;
11
+ --font-size: 0.875rem;
12
+ --font-weight: 600;
13
+ --line-height: 1.75;
14
+
15
+ --text: hsla(var(--H) var(--S) calc(var(--L) - (25 * var(--B))) / var(--A));
16
+ --text-hover: hsla(var(--H) var(--S) calc(var(--L) - (30 * var(--B))) / var(--A));
17
+ --text-current: hsla(var(--H) var(--S) calc(100 * (var(--B) + 1)) / var(--A));
18
+ --background: hsla(var(--H) var(--S) calc(var(--L) + (30 * var(--B))) / var(--A));
19
+ --background-hover: hsla(var(--H) var(--S) calc(var(--L) + (20 * var(--B))) / var(--A));
20
+ --background-current: hsla(var(--H) var(--S) var(--L) / var(--A));
21
+ --background-input: hsla(var(--H) var(--S) calc(var(--L) + (45 * var(--B))) / var(--A));
22
+
23
+ color: var(--text);
24
+ font-size: var(--font-size);
25
+ line-height: var(--line-height);
26
+ font-weight: var(--font-weight);
2
27
  display: flex;
3
- font-family: sans-serif;
4
- font-size: 0.875rem;
5
- line-height: 1.25rem;
6
- font-weight: 600;
7
- color: #6b7280;
8
28
  }
29
+
9
30
  .pagy > :not([hidden]) ~ :not([hidden]) {
10
- --space-reverse: 0;
11
- margin-right: calc(0.25rem * var(--space-reverse));
12
- margin-left: calc(0.25rem * calc(1 - var(--space-reverse)));
31
+ margin-left: calc(var(--spacing) * (1 - var(--space-reverse, 0)));
32
+ margin-right: calc(var(--spacing) * var(--space-reverse, 0));
13
33
  }
14
- .pagy a:not(.gap) {
34
+
35
+ .rtl .pagy > :not([hidden]) ~ :not([hidden]) {
36
+ --space-reverse: 1;
37
+ }
38
+
39
+ .pagy a:not([role="separator"]) { /* all but gaps */
15
40
  display: block;
16
41
  text-decoration: none;
17
- border-radius: 0.5rem;
18
- background-color: #e5e7eb;
19
- padding: 0.25rem 0.75rem;
42
+ background-color: var(--background);
43
+ padding: calc(var(--padding) / 3) var(--padding);
44
+ border: var(--border-width) solid var(--background-current);
45
+ border-radius: var(--rounding);
20
46
  color: inherit;
21
47
  }
22
- .pagy a:not(.gap):hover {
23
- background-color: #d1d5db;
48
+
49
+ .pagy a[href]:hover { /* all links on hover */
50
+ background-color: var(--background-hover);
51
+ color: var(--text-hover)
24
52
  }
25
- .pagy a:not(.gap):not([href]) { /* disabled links */
53
+
54
+ .pagy a:not([href]) { /* all but links */
26
55
  cursor: default;
27
- background-color: #f3f4f6;
28
- color: #d1d5db;
29
56
  }
30
- .pagy a:not(.gap).current {
31
- background-color: #9ca3af;
32
- color: white;
57
+
58
+ .pagy a[role="link"]:not([aria-current]) { /* disabled links */
59
+ opacity: .6;
60
+ }
61
+
62
+ .pagy a[aria-current] { /* current page */
63
+ background-color: var(--background-current);
64
+ color: var(--text-current);
65
+ border-color: var(--text);
33
66
  }
67
+
34
68
  .pagy label {
35
69
  white-space: nowrap;
36
70
  display: inline-block;
37
- border-radius: 0.5rem;
38
- background-color: #e5e7eb;
39
- padding: 0.125rem 0.75rem;
71
+ border: var(--border-width) solid var(--background-current);
72
+ border-radius: var(--rounding);
73
+ background-color: var(--background);
74
+ padding: calc((var(--padding) / 3) - var(--border-width)) var(--padding);
40
75
  }
76
+
41
77
  .pagy label input {
42
- line-height: 1.5rem;
43
- border-radius: 0.375rem;
44
- border-style: none;
45
- background-color: #f3f4f6;
78
+ all: unset;
79
+ border: var(--border-width) solid var(--background-current);
80
+ border-radius: calc(var(--rounding) / 2) !important;
81
+ background-color: var(--background-input);
46
82
  }