poetry-ui 0.1.12 → 0.1.13
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fd69e4a483a5ff3e4ab764d00853296fb1719e0ccb37d93b576412d578464dbb
|
|
4
|
+
data.tar.gz: 4574dd426ea32bbff47837b78ccdc4a60599f87a007252ec3850387ba1a2535a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 93efa9fe4b2ac3e533988fd3e499d37d2f7db28c68282723de8f6326716833ac988b3f9934fe84802c2f28203a67353eaa24cecb84384e2f148bad4abb9cd4f3
|
|
7
|
+
data.tar.gz: 1a94d395feea2e02280c6eb3d214b51aeddf6dea6a097e926816a8769f8c9d5d2080fdc3872f1f0a559d81a390ca129f6d74aef3f161f5fc36a65c07f8245c87
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.13] - 2026-10-13
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- `poetry:add` rewrites `config/controllers_manifest.json` when a registry item installs a Stimulus controller under `app/javascript/controllers`, as `poetry:stimulus:manifest` would. A component that names its controller by Symbol now loads after the install instead of raising until the host ran the task by hand. The generator says to commit the manifest and restart a running server.
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- `poetry:check` no longer warns about `poetry_native_select_option` and `poetry_native_select_optgroup` inside a loop. They render plain `<option>` and `<optgroup>` tags with no id to keep stable, and the `key:` the warning asked for would only leak into the HTML as an attribute. The registry's helpers section declares both identity-free, like the table parts.
|
|
12
|
+
|
|
3
13
|
## [0.1.12] - 2026-10-07
|
|
4
14
|
|
|
5
15
|
### Fixed
|
|
@@ -972,9 +972,11 @@ module Poetry
|
|
|
972
972
|
# these literals statically (the crash class: a helper-only literal
|
|
973
973
|
# like align: :leading that no component contract covers, failing
|
|
974
974
|
# only at render). Plain wrapper helpers need no entry here;
|
|
975
|
-
# registry generation lists them name-only. The table parts
|
|
976
|
-
#
|
|
977
|
-
#
|
|
975
|
+
# registry generation lists them name-only. The table parts and the
|
|
976
|
+
# native select's option and optgroup declare identity false: they
|
|
977
|
+
# mint no id, so the stable-identity rules have nothing to ask of
|
|
978
|
+
# them (a keyed row derives its id; key: on an option would only
|
|
979
|
+
# leak as an HTML attribute).
|
|
978
980
|
HELPER_CONTRACTS = {
|
|
979
981
|
"poetry_table_header" => { "identity" => false },
|
|
980
982
|
"poetry_table_body" => { "identity" => false },
|
|
@@ -983,6 +985,8 @@ module Poetry
|
|
|
983
985
|
"poetry_table_head" => { "identity" => false },
|
|
984
986
|
"poetry_table_cell" => { "identity" => false },
|
|
985
987
|
"poetry_table_caption" => { "identity" => false },
|
|
988
|
+
"poetry_native_select_option" => { "identity" => false },
|
|
989
|
+
"poetry_native_select_optgroup" => { "identity" => false },
|
|
986
990
|
"poetry_toast_trigger" => {
|
|
987
991
|
"options" => [
|
|
988
992
|
{ "name" => "template", "type" => "string",
|
|
@@ -12160,8 +12160,10 @@ helpers:
|
|
|
12160
12160
|
poetry_kbd_group: {}
|
|
12161
12161
|
poetry_message_group: {}
|
|
12162
12162
|
poetry_message_scroller_item: {}
|
|
12163
|
-
poetry_native_select_optgroup:
|
|
12164
|
-
|
|
12163
|
+
poetry_native_select_optgroup:
|
|
12164
|
+
identity: false
|
|
12165
|
+
poetry_native_select_option:
|
|
12166
|
+
identity: false
|
|
12165
12167
|
poetry_navigation_menu_link: {}
|
|
12166
12168
|
poetry_optimistic_form:
|
|
12167
12169
|
yields: the form builder - form.optimistic_template authors the predicted turbo-stream(s);
|
|
@@ -35,6 +35,9 @@ module Poetry
|
|
|
35
35
|
MANIFEST = "config/poetry_components.yml"
|
|
36
36
|
# The host's Tailwind entry stylesheet (for @source injection).
|
|
37
37
|
TAILWIND_ENTRY = "app/assets/tailwind/application.css"
|
|
38
|
+
# Where an item's Stimulus controllers land; a write here refreshes the
|
|
39
|
+
# app's controllers manifest.
|
|
40
|
+
CONTROLLERS_DIR = "app/javascript/controllers/"
|
|
38
41
|
|
|
39
42
|
desc "Copy poetry components/blocks (plus dependencies) into the app, from the gems or any registry address"
|
|
40
43
|
|
|
@@ -116,10 +119,29 @@ module Poetry
|
|
|
116
119
|
plan.writes.each { |write| create_file write.target, write.content, skip: true }
|
|
117
120
|
plan.block_installs.each { |name| install_block(name) }
|
|
118
121
|
apply_css(plan)
|
|
122
|
+
refresh_controllers_manifest(plan)
|
|
119
123
|
report(plan)
|
|
120
124
|
record_in_manifest(plan.manifest)
|
|
121
125
|
end
|
|
122
126
|
|
|
127
|
+
# An item that brings a Stimulus controller joins the app's controllers
|
|
128
|
+
# manifest straight away (as `bin/rails poetry:stimulus:manifest` would),
|
|
129
|
+
# so the component that names it by Symbol loads, and check validates
|
|
130
|
+
# its wiring. The manifest is read at boot: a running server restarts.
|
|
131
|
+
def refresh_controllers_manifest(plan)
|
|
132
|
+
return if options[:pretend] || behavior == :revoke
|
|
133
|
+
return unless plan.writes.any? { |write| write.target.to_s.start_with?(CONTROLLERS_DIR) }
|
|
134
|
+
|
|
135
|
+
result = Poetry::Core::Stimulus::HostManifest.generate!(root: Pathname(destination_root))
|
|
136
|
+
count = result.definitions.size
|
|
137
|
+
say_status :stimulus, "wrote config/controllers_manifest.json (#{count} controller#{"s" unless count == 1}) - " \
|
|
138
|
+
"commit it, and restart a running server so components that name them load", :green
|
|
139
|
+
result.skipped.each do |skip|
|
|
140
|
+
say_status :stimulus,
|
|
141
|
+
"skipped #{skip.identifier}: #{skip.reason} (unvalidated until written by hand)", :yellow
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
123
145
|
# The install plan for remote addresses through the registry client.
|
|
124
146
|
def build_plan(remote)
|
|
125
147
|
config = manifest_config
|
data/lib/poetry/ui/version.rb
CHANGED
|
@@ -271,6 +271,10 @@ def poetry_design_report(plan, written)
|
|
|
271
271
|
out << " contrast (merged set, AA floor):"
|
|
272
272
|
plan.contrast.each { |result| out << " #{result}" }
|
|
273
273
|
end
|
|
274
|
+
if plan.edges.any?
|
|
275
|
+
out << " faint edges (shipped; border and input vanish on these surfaces):"
|
|
276
|
+
plan.edges.each { |edge| out << " #{edge}" }
|
|
277
|
+
end
|
|
274
278
|
if plan.dropped.any?
|
|
275
279
|
out << " dropped (never guessed):"
|
|
276
280
|
plan.dropped.each { |drop| out << " #{drop.name}: #{drop.reason}" }
|
|
@@ -295,6 +299,10 @@ def poetry_design_report_json(plan, written)
|
|
|
295
299
|
{ "mode" => r.mode, "pair" => r.label, "ratio" => r.ratio.round(2), "pass" => r.pass,
|
|
296
300
|
"suggestion" => r.suggestion, "shipped_failing" => r.shipped }.compact
|
|
297
301
|
end,
|
|
302
|
+
"edges" => plan.edges.map do |e|
|
|
303
|
+
{ "mode" => e.mode, "edge" => e.edge, "surface" => e.surface, "ratio" => e.ratio.round(2),
|
|
304
|
+
"suggestion" => e.suggestion }.compact
|
|
305
|
+
end,
|
|
298
306
|
"dropped" => plan.dropped.map do |d|
|
|
299
307
|
{ "name" => d.name, "value" => d.value, "mode" => d.mode, "reason" => d.reason }.compact
|
|
300
308
|
end,
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: poetry-ui
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Matt Solt
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-10-
|
|
10
|
+
date: 2026-10-13 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: poetry-core
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - '='
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: 0.1.
|
|
18
|
+
version: 0.1.13
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - '='
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: 0.1.
|
|
25
|
+
version: 0.1.13
|
|
26
26
|
description: 'The component library of Poetry, the AI-native frontend framework for
|
|
27
27
|
Rails: accessible, themeable, agent-legible ViewComponents built entirely on poetry-core''s
|
|
28
28
|
public DSL.'
|