recourse 5.4.0 → 5.5.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fcfda63efd2c2320ea4e97b5805d1ba4aadeb0686b78d613c2b2c4ad71b9fc17
4
- data.tar.gz: ffaa33863a46cdf213c5ab2fab3266b7266bf4e73073e88be42928e72838471f
3
+ metadata.gz: 90b3afa1fb3432ce14d6b23b67dfbd972c9887db8077b03eef5a58e43359d079
4
+ data.tar.gz: 69c7047b6f440ca4228d19fc2418deb769a51a63890b0c98cf1289059a80195c
5
5
  SHA512:
6
- metadata.gz: 45bfd3ce50837e3a0d28a02f226f0eca777ebb2b25e880059db61052313a67ebd311b8c2404f0281b147713fa346d8cf3653effb9f180ba0743d998acba12a10
7
- data.tar.gz: 20f922caf3230244b441b47dcfd3fa4ca7fe7abd5045c1f765f47cad8ce54d737be6aabf22dce13c0d81720e15c1cc7803b9b8077df9fcbfda90ac5a9a4fd311
6
+ metadata.gz: 1c72dd551e37c712fdf67f2beb4dd0cbcb3c44c234bec7cf8423ddd30a510efbb1ff00151f3820709b58d9a00e59efaf7759ed32cd15b5cc16d22cc46169192d
7
+ data.tar.gz: 8528213a6a673cabc608d45be06311439f317d6eb56f90f5d9e36b4b25298bd7e0d29acfa8a6d28dd38c9b0cd61b40c6e5cd4e4e5436c864eeac7da308aa1665
data/CHANGELOG.md CHANGED
@@ -7,6 +7,30 @@ For more information about changelogs, check [Keep a Changelog](http://keepachan
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## 5.5.0 - 2026-09-17
11
+
12
+ * [Fix] A sorted heading has a mark again
13
+
14
+ The mark saying which way a column is sorted was a Bootstrap caret, and no caret is in the
15
+ icon font the pages link: the bundle carries a subset, and a name outside it gets no
16
+ `content` rule and no code point, so the `<i>` drew nothing at all. Since `design_assets`
17
+ every sorted heading has been bare, and the test asserting the mark passed throughout,
18
+ because what it asserts is a class name.
19
+
20
+ It is `unicon`'s `:sort_asc` and `:sort_desc` now, drawn through `icon_tag` like every
21
+ other icon here rather than by a class written out. Bootstrap draws them `sort-up` and
22
+ `sort-down` — named for the ordering rather than the arrow, since Bootstrap's four sort
23
+ glyphs point either way with either ordering. Both draw from the bundle this release
24
+ pins, whose subset carries `sort-up` beside the `sort-down` it already held.
25
+
26
+ * [Change] The pinned bundle is `houseaccount@0.13.0`
27
+
28
+ Two releases at once, since the pin was still at 0.11.0 while 0.12.0 came and went. It is
29
+ what carries the ascending sort glyph, so the fix above needs it; it also brings a card
30
+ that is as wide as what it holds, a form reading its rows from where their words start,
31
+ and a combobox the bundle searches. Moved at all three sites together — the layout's
32
+ stylesheet and script, and `THEMES_PATH`.
33
+
10
34
  ## 5.4.0 - 2026-09-17
11
35
 
12
36
  * [Feature] A table of events can be read as a week
@@ -26,7 +26,7 @@
26
26
  one and the CORS one a module script and a font are fetched over. -%>
27
27
  <link rel='preconnect' href='https://cdn.jsdelivr.net'>
28
28
  <link rel='preconnect' href='https://cdn.jsdelivr.net' crossorigin>
29
- <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/houseaccount@0.11.0/public/css/houseaccount.css'>
29
+ <link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/houseaccount@0.13.0/public/css/houseaccount.css'>
30
30
  <%# The one thing these screens set that the house's stylesheet does not: system faces
31
31
  at a compact size, for pages dense with figures. 14px as rem, so a browser's own
32
32
  text-size setting still scales it. After the stylesheet, since both are `:root`. -%>
@@ -50,7 +50,7 @@
50
50
  <%# Turbo, Bootstrap and a Stimulus application with every controller this markup
51
51
  names, started once under `window.Stimulus`. In the head, so a controller exists
52
52
  before the body's first `data-controller`. -%>
53
- <script type='module' src='https://cdn.jsdelivr.net/npm/houseaccount@0.11.0/public/js/houseaccount.js'></script>
53
+ <script type='module' src='https://cdn.jsdelivr.net/npm/houseaccount@0.13.0/public/js/houseaccount.js'></script>
54
54
  </head>
55
55
 
56
56
  <%# The reader's zone is told to the server here rather than from a page of its
@@ -1,10 +1,10 @@
1
1
  module Recourse
2
2
  module Helpers
3
- # The links in a table's headings, and the caret naming the order in force.
3
+ # The links in a table's headings, and the mark naming the order in force.
4
4
  module Sorts
5
- # Caret for the direction a column is sorted by. A column nobody sorted by
6
- # gets none: an arrow on every heading says nothing about the order in force.
7
- SORT_CARETS = { 'asc' => 'caret-up-fill', 'desc' => 'caret-down-fill' }.freeze
5
+ # The concept for each order a column can be sorted in. A column nobody sorted
6
+ # by gets neither: a mark on every heading says nothing about the order in force.
7
+ SORT_ICONS = { 'asc' => :sort_asc, 'desc' => :sort_desc }.freeze
8
8
 
9
9
  # A heading for a column: a link that sorts the table by it where the model
10
10
  # allows that, and the plain title everywhere else. Only the header row draws
@@ -21,7 +21,7 @@ module Recourse
21
21
 
22
22
  sort_link resource_search, column.to_sym,
23
23
  hide_indicator: true, page: nil, default_order: :desc do
24
- safe_join [title, sort_caret(column)].compact, ' '
24
+ safe_join [title, sort_mark(column)].compact, ' '
25
25
  end
26
26
  end
27
27
 
@@ -46,12 +46,12 @@ module Recourse
46
46
  # Whether the model lets a heading sort by this column.
47
47
  def sortable_column?(column) = resource_model.ransortable_attributes.include?(column.to_s)
48
48
 
49
- def sort_caret(column)
49
+ def sort_mark(column)
50
50
  sort = resource_search.sorts.find { |one| one.name == column.to_s }
51
- icon = SORT_CARETS[sort&.dir]
52
- return unless icon
51
+ concept = SORT_ICONS[sort&.dir]
52
+ return unless concept
53
53
 
54
- tag.i class: "bi bi-#{icon}"
54
+ icon_tag concept
55
55
  end
56
56
 
57
57
  # Carried through the form as a hidden field, so searching keeps the order a
@@ -25,7 +25,7 @@ module Recourse
25
25
  # Where the palettes are served from, named once: the layout links one, the layout's
26
26
  # own script puts back the one a reader chose, and the sidebar's controller swaps it.
27
27
  # The version is the one the layout links its stylesheet and script at.
28
- THEMES_PATH = 'https://cdn.jsdelivr.net/npm/houseaccount@0.11.0/public/theme'
28
+ THEMES_PATH = 'https://cdn.jsdelivr.net/npm/houseaccount@0.13.0/public/theme'
29
29
 
30
30
  # Where a reader's chosen palette and mode are kept in their browser. Named once for
31
31
  # the same reason: the sidebar's controller writes it and the layout reads it back.
@@ -1,4 +1,4 @@
1
1
  module Recourse
2
2
  # Version of the gem, read by the gemspec and by hosts checking compatibility.
3
- VERSION = '5.4.0'
3
+ VERSION = '5.5.0'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recourse
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.4.0
4
+ version: 5.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - claudiob
@@ -99,14 +99,14 @@ dependencies:
99
99
  requirements:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: '3.6'
102
+ version: '3.7'
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
- version: '3.6'
109
+ version: '3.7'
110
110
  description: Recourse adds a `recourses` method to config/routes.rb. One line draws
111
111
  the routes, controllers and views needed to browse and edit a resource, with no
112
112
  files added to the host app. Any controller, view or partial can be overridden by